最初只是硬件厂商自家硬件设备的网络连接 并不认识起他厂商的网络技术 所以无法彼此连接

   全录公司的 Ethernet 技术

   IBM 研发的 Token-Ring 技术


1960 年代末期 美国国防部尖端研究企画署(DARPA) 研究了不同的网络硬件上面运行的软件技术

   —>ARPANET网络系统诞生(tcp/ip雏形)

      —>1980 年正式推出 —>TCP/IP 技术

         —>与柏克莱 (Berkeley) 大学合作,将 TCP/IP 植入 BSD Unix 系统内

            —>这种连接网络的技术被称为Internet

               —>只要能够支持 TCP/IP 技术的硬件与操作系统,连接上网络, 你就进入了全球的Internet 世界

软硬件标准的成功制定:IEEE标准规范

   网络的硬件与软件种类很多 最成功的却是以太网络 (Ethernet) 与 Internet 因为他们被“标准”所支持原因


Ethernet以太网(基本硬件网络设备

以太网络最初是由全录 (Xerox PARC) 所建构

    —>而后透过 DEC, Intel 与 Xerox 合作将以太网络标准化

      —>IEEE (Institute of Electrical and Electronic Engineers) 国际专业组织利用 802 的专案制定出标准

          —>19 家公司宣布支持 IEEE 所发布的 802.3 标准

             —>1989 年国际标准组织 ISO (International Organization for Standard) 

                   将以太网络编入 IS88023 标准

                    —>大家依据这个标准来配置与开发自己的硬件 就可以加入以太网络世界

                        —>Novell 网络操作系统支持以太网络

                                —>支持 IBM 的个人计算机

                                    —>以太网得以流行


Internet的TCP/IP通讯协议(软件协议

    编写符合TCP/IP协议的程序 就可以连接上 Internet


网络组件

    节点(node):          具有网络地址(IP)的设备 如:pc linux服务器 打印机 ADSL等 hub不具有IP

    服务器主机(server):             提供数据响应给用户的主机

    客户端(client):                     主动发起联机请求数据的主机

    工作站(workstation):高端的通用微型计算机。 单用户使用并提供比个人电脑更强大的性能

    网卡(Network Interface Card ,NIC): 内建或外插在主机上 大都使用RJ-45接头的以太网络卡

    网络接口:     利用软件设计出来的 主要提供IP的任务 主机都有一个内部的网络接口loopback(lo)

    网络形态或拓扑(topology):                 节点在网络上的连接方式 一般讲的是物理连接方式

    网关(route)或通讯闸(gateway):      具有两个以上的网络接口 可以连接两个以上的不同网段


网络区域范围

    早期定义为局域网(Local Area Network,LAN)和广域网(Wide Area Network,WAN)和所谓都会网(Metropolitan Area Network,MAN)

        局域网:距离近 使用较为昂贵的联机材料例如光纤或CAT6等 速度较快 联机质量可靠 因此用于科学运算 分布式系统 云端负荷分担等

        广域网:距离远 联机材料使用的较为便宜 比如电话线 网络应用大多类似email ftp www等

        都会网:比较少提及

    现在可以使用速度作为网络区域范围的区分

网络协议 OSI七层协议(Open System Interconnection)

    只是帮助理解网络传输情况 实际的联网程序代码是交给TCP/IP来处理


网络协议 TCP/IP四层协议

    同样是分层的架构 但没有OSI七层那么过于严谨 程序撰写比较容易 1990年email www的流行 使TCP/IP被大家接受得以发展成现在网络社会

    wKioL1guZCuCVxUiAAA4mgz3IoM401.gif-wh_50

TCP/IP的工作过程

  1. 应用程序阶段:妳打开浏览器,在浏览器上面输入网址列,按下 [Enter]。此时网址列与相关数据会被浏览器包成一个数据, 并向下传给 TCP/IP 的应用层;

  2. 应用层:由应用层提供的 HTTP 通讯协议,将来自浏览器的数据报起来,并给予一个应用层表头,再向传送层丢去;

  3. 传送层:由于 HTTP 为可靠联机,因此将该数据丢入 TCP 封包内,并给予一个 TCP 封包的表头,向网络层丢去;

  4. 网络层:将 TCP 包裹包进 IP 封包内,再给予一个 IP 表头 (主要就是来源与目标的 IP 啰),向链结层丢去;

  5. 链结层:如果使用以太网络时,此时 IP 会依据 CSMA/CD 的标准,包裹到 MAC 讯框中,并给予 MAC 表头,再转成位串后, 利用传输媒体传送到远程主机上。


TCP/IP中的硬件与链结层协议

广域网使用的设备

       传统电话拨接:透过 ppp 协议 电话和网络不能同时

       非对称数位用路回路 (Asymmetric Digital Subscriber Line, ADSL):透过 pppoe 协定 电话和网络可以同时使用

       电缆调制解调器 (Cable modem) 透过有线电视使用的线缆 同样需要ADSL


局域网使用的设备--以太网络

     最初IEEE制订以太网标准 802.3 的IEEE 10BASE5

         10 代表传输速度为 10Mbps

         BASE 表至采用基频信号来进行传输,

         5 则是指每个网络节点之间最长可达 500 米

         网络的传输信息就是 0 与 1(位:bit) 因此数据传输的单位为每秒多少 bit  即 M bits/second, Mbps

         所以ISP上写的10/100Mbps 可不是10MB和100MB 要除以8才是实际的MB


以太网的速度

    早期同轴电缆(一条同轴电缆线连结所有的计算机的 bus 连线

        —>类似传统电话线的双绞线

            >IEEE 将这种线路的以太网络传输方法制订成为 10BASE-T 的标准

                    (10Mbps全速运行且采用无遮蔽式双绞线 (UTP) 的网络线)

                >10BASE-T 的 UTP 网络线可以使用星形连线(star)(一个集线器为中心来串连各网络设备)

                    >IEEE 制订 802.3u 标准(100BASE-T )

                        (100Mbps 采用更精良的双绞线即八蕊网络线,称为等级五 (Category 5, CAT5) 的网络线)

                        >这种传输速度的以太网络就被称为 Fast ethernet 

                            > Gigabit 网络速度 1000 Mbps (Gigabit ethernet) 需要更精良的网络线(CAT 6)


以太网的网络接头

     大多使用RJ-45的八蕊接头

     

接头名称\蕊线顺序12345678
568A白绿绿白橙白蓝白棕
568B白橙白绿白蓝绿白棕
  • 跳线:一边为 568A 一边为 568B 的接头时称为跳线,用在直接链接两部主机的网络卡。

  • 并行线:两边接头同为 568A 或同为 568B 时称为并行线,用在链接主机网络卡与集线器之间的线材;


以太网的传输协议 CSMA/CD

     以太网络的传输主要就是网络卡对网络卡之间的数据传递

     网络卡出厂时,都有一个独一无二的卡号 就是 MAC (Media Access Control) 

     IEEE 802.3 的标准 CSMA/CD

          集线器(hub)网络共享媒体在单一时间点内, 仅能被一部主机所使用

          集线器+CSMA/CD的传输流程

               1.监听:主机监听hub使用情况 无使用发送讯框

                         --》如果发送一个大文件 由于标准的讯框数据在网络卡与其他以太网络媒体一次

                                     只能传输 1500bytes,因此我的 100MB 档案就得要拆成多个小数据报,然后一个一个的传送

                                     每次都使用CSMA/CD的机制 所以即使数据很大 大家也可以同时联机

                         --》也存在超大讯框(Jumbo frame  9000bytes)但多数在内网使用 因为遇到不支持的设备会丢弃

               2.多点传输:hub收到数据 复制一份 发给所有连接的主机 主机各自判定是否给自己 不是则丢弃

                         --》所以hub上的多个灯闪个不停

                         --》所以可以监听hub发出不是给本人的数据

               3.碰撞侦测:如果多主机同时间发送数据给hub 则数据损害 等待一段时间 重复第一步


MAC的封装格式

     CSMA/CD传送出去的讯框数据就称为MAC(frame):因为讯框内两个重要的数据就是目标与来源网卡卡号

     只是在局域网传输时才使用MAC地址  不能跨越路由器router

     MAC是网络数据传送的最小单位

     硬件地址最小由 00:00:00:00:00:00 到 FF:FF:FF:FF:FF:FF  前 3bytes 为厂商的代码,后 3bytes 则是该厂商自行设定的装置码

     CSMA/CD机制为了侦测碰撞 数据最小也需要46Bytes 数据不足 自动填充


集线器,交换机与相关机制

     交换机(switch):非网络共享媒体

     交换机内有内存记录每个switch port的Mac地址

     每个port都具有独立带宽 但如果同时向一部主机传输时就非独立了

     选购可以支持全双工/半双工,以及支持 Jumbo frame 的为佳!

     全双工/半双工:如果两个pc都支持全双工 那么input/output均可达到最大网速

     hub的网线脚位缘故 不支持全双工 switch则支持 

     新的switch/hub具有自动协调网速机制 亦即是 Gigabit 网络卡可以与早期的 10/100Mbps 网络卡链接而不会发生问题

     switch 若含有auto MDI/MDIX 的功能时不需要分辨是跳线还是并行线


TCP/IP的网络层相关封包与数据

IP封包的封装

    IPv4 记录的地址由于仅有 32 位,预计在 2020 年前后就会分发完毕

    IPv6 的地址可以达到 128 位

    IP封包可达到 65535 bytes 


IP表头内容

    

4 bits4 bits8 bits3 bits13 bits
VersionIHLType of ServiceTotal Length
IdentificationFlagsFragmentation Offset
Time To LiveProtocolHeader Checksum
Source Address
Destination Address
OptionsPadding
Data

以上每一行占用的位数是32bits

  • Version(版本)
    宣告这个 IP 封包的版本,例如目前惯用的还是 IPv4 这个版本就在这里宣告。

  • IHL(Internet Header Length, IP表头的长度)
    告知这个 IP 封包的表头长度,使用的单位应该是字组 (word) ,一个字组为 4bytes 大小喔。

  • Type of Service(服务类型)
    这个项目的内容为『PPPDTRUU』,表示这个 IP 封包的服务类型,主要分为:
    PPP:表示此 IP 封包的优先度,目前很少使用;
    D:若为 0 表示一般延迟(delay),若为 1 表示为低延迟;
    T:若为 0 表示为一般传输量 (throughput),若为 1 表示为高传输量;
    R:若为 0 表示为一般可靠度(reliability),若为 1 表示高可靠度。
    UU:保留尚未被使用。
    举例来说,gigabit 以太网络的种种相关规格可以让这个 IP 封包加速且降低延迟,某些特殊的标志就是在这里说明的。

  • Total Length(总长度)
    指这个 IP 封包的总容量,包括表头与内容 (Data) 部分。最大可达 65535 bytes。

  • Identification(辨别码)
    我们前面提到 IP 袋子必须要放在 MAC 袋子当中。不过,如果 IP 袋子太大的话,就得先要将 IP 再重组成较小的袋子然后再放到 MAC 当中。而当 IP 被重组时,每个来自同一个 IP 的小袋子就得要有个标识符以告知接收端这些小袋子其实是来自同一个 IP 封包才行。 也就是说,假如 IP 封包其实是 65536 那么大 (前一个 Total Length 有规定), 那么这个 IP 就得要再被分成更小的 IP 分段后才能塞进 MAC 讯框中。那么每个小 IP 分段是否来自同一个 IP 资料,呵呵!那就是这个标识符的功用啦!

  • Flags(特殊旗标)
    这个地方的内容为『0DM』,其意义为:
    D:若为 0 表示可以分段,若为 1 表示不可分段
    M:若为 0 表示此 IP 为最后分段,若为 1 表示非最后分段。

  • Fragment Offset(分段偏移)
    表示目前这个 IP 分段在原始的 IP 封包中所占的位置。就有点像是序号啦,有这个序号才能将所有的小 IP 分段组合成为原本的 IP 封包大小嘛!透过 Total Length, Identification, Flags 以及这个 Fragment Offset 就能够将小 IP 分段在收受端组合起来啰!

  • Time To Live(TTL, 存活时间)
    表示这个 IP 封包的存活时间,范围为 0-255。当这个 IP 封包通过一个路由器时, TTL 就会减一,当 TTL 为 0 时,这个封包将会被直接丢弃。说实在的,要让 IP 封包通过 255 个路由器,还挺难的~ ^_^

  • Protocol Number(协定代码)
    来自传输层与网络层本身的其他数据都是放置在 IP 封包当中的, 这个字段就是记载每种数据封包协议名称

    IP 内的号码封包协议名称(全名)
    1ICMP (Internet Control Message Protocol)
    2IGMP (Internet Group Management Protocol)
    3GGP (Gateway-to-Gateway Protocol)
    4IP (IP in IP encapsulation)
    6TCP (Transmission Control Protocol)
    8EGP (Exterior Gateway Protocol)
    17UDP (User Datagram Protocol)

    比较常见到的是TCP, UDP, ICMP 

  • Header Checksum(表头检查码)
    用来检查这个 IP 表头的错误检验之用。

  • Source Address
    还用讲吗?当然是来源的 IP 地址,从这里我们也知道 IP 是 32 位喔!

  • Destination Address
    有来源还需要有目标才能传送,这里就是目标的 IP 地址。

  • Options (其他参数)
    这个是额外的功能,提供包括安全处理机制、路由纪录、时间戳、严格与宽松之来源路由等。

  • Padding(补齐项目)
    由于 Options 的内容不一定有多大,但是我们知道 IP 每个数据都必须要是 32 bits,所以,若 Options 的数据不足 32 bits 时,则由 padding 主动补齐。


IP地址的组成与分级

    IP封包的表头最重要就是其中32位的来源与目标地址!这32bits的数值称为IP地址

    人们习惯十进制 就将32bits的IP分成四小段 每段8个bits 再将8个bits换算成十进制 所以是0.0.0.0~255.255.255.255

    同一网域(网段)的定义:在同一个物理网段内,每部主机的 IP 具有相同的 Net_ID ,并且具有独特的 Host_ID    

    同一物理网段之内 可以依据不同的IP设定 设定成多个IP网段

    同一物理网段的主机的联机 都透过CSMA/CD的功能直接在网段内用广播进行网络联机 即直接网卡对网卡(MAC讯框)传递数据

    不同网段的联机 由于广播地址不同 需要路由器(router)将两个网段连结在一起来联机

    假设192.168.0为Net_ID

    Network IP:192.168.0.0                 Host_ID全为0整个网段的地址

    Broadcast IP: 192.168.0.255             Host_ID全为1为广播地址

    192.168.0.1~254                               网段内可分配的主机IP 其中有一台是路由器 与非本网段的主机联机使用


InterNIC将整个IP网段分为五种等级

Class A :   0.xx.xx.xx ~ 127.xx.xx.xx
Class B : 128.xx.xx.xx ~ 191.xx.xx.xx
Class C : 192.xx.xx.xx ~ 223.xx.xx.xx
Class D : 224.xx.xx.xx ~ 239.xx.xx.xx 用来群播(multicast)的特殊功能(常用在大批计算机的网络还原)
Class E : 240.xx.xx.xx ~ 255.xx.xx.xx 保留未使用


担心IP数量不够分配所以设定了私有IP 在ABC三类中各保留一段作为私有IP

  • Class A:10.0.0.0    - 10.255.255.255

  • Class B:172.16.0.0  - 172.31.255.255

  • Class C:192.168.0.0 - 192.168.255.255

      

  • 私有 IP 的路由信息不能对外散播 (只能存在内部网络);

  • 使用私有 IP 作为来源或目的地址的封包,不能透过 Internet 来转送 (不然网络会混乱);

  • 关于私有 IP 的参考纪录(如 DNS),只能限于内部网络使用 (一样的原理啦)


回环网卡(lo) 127.0.0.1

    提供给系统内部原本就需要使用网络接口的服务 (daemon) 所使用

    127.0.0.0/8 Class A中特殊的网段

    127.0.0.1/8 默认主机IP


私有IP连接Internet    

    设定一个简单的防火墙加上 NAT (Network Address Transfer) 服务,你就可以透过 IP 伪装  来使私有 IP 的计算机也可以连上 Internet !


Netmask: 子网掩码 用来辅助IP 区分和划分网段使用 

    Net_ID 和 Host_ID可以相互转换

    使用Network/Netmask 来表示网域  因为知道了Netmask就知道该网域的最大IP即Broadcast

    Class C举例 192.168.0.0/24

    先记住八个位对应的数值  每位为1时其他位为0时 分别是 128 64 32 16 8 4 2 1

    增加Net_ID的位数 对应减少Host_ID位数 可以增加子网段的划分  

        比如增加2位Net_ID

            网段个数 = 2^位数 = 4

            每个网段的Network分别是  0 和 256/网段个数 及其倍数  =192.168.0.0/64/128/192

            Netmask = 255.255.255.增加几位就是 上边八个数字的前几个数字相加 = 255.255.255.192

    减少Net_ID的位数  对应增加Host_ID位数 可以增加将合并多个网段 进而增加网段的主机IP的数量

        比如减少1位 

            IP范围到了 192.168.0.0~192.168.1.255 

            Netmask = 255.255.254.0(23)

            IP数量为 2^8 * 2^位数


CIDR:网络细分的情况太严重,为了担心路由信息过于庞大导致网络效能不佳 所以

    减少Net_ID增加Host_ID 由Clacc C 变为 Class B  192.168.0.0/16 192开头的变成了Class B类 IP 就被称为CIDR 无等级网络间路由


路由概念

    每部主机都有自己的路由表

    Gateway / Router :网关/路由器的功能就是在负责不同网域之间的封包转递 (IP Forwarding)

    静态路由传输过程

        主机查询IP封包表头的目标IP地址

        分析自己的路由表 对比目标IP是否与自己的IP在同一网域

        如果不在同一网域 查询是否有其他相符合的路由设定, 如果没有直接将该IP封包送到预设路由器(default gateway)

        路由器同样会依据上述流程继续传输

        事实上, Internet 上面的路由协议与变化是相当复杂的并非静态

    观察主机路由

[root@www ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref  Use Iface192.168.0.0     0.0.0.0         255.255.255.0   U     0      0      0 eth0
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0      0 lo
0.0.0.0         192.168.0.254   0.0.0.0         UG    0      0      0 eth0# 上面输出的数据共有八个字段,你需要注意的有几个地方:
# Destination :其实就是 Network 的意思;
# Gateway     :就是该接口的 Gateway 那个 IP 啦!若为 0.0.0.0 表示不需要额外的 IP;
# Genmask     :就是 Netmask 啦!与 Destination 组合成为一部主机或网域;
# Flags       :共有多个旗标可以来表示该网域或主机代表的意义:
#               U:代表该路由可用;
#               G:代表该网域需要经由 Gateway 来帮忙转递;
#               H:代表该行路由为一部主机,而非一整个网域;
# Iface       :Interface (网络接口) 的意思。

     IP与MAC:链结层的ARP与RARP协定

        确定某个IP是属于哪个以太网络卡上时 主机会对整个网段放出ARP封包

        对方收到ARP封包会回传他的MAC给主机 主机在ARP table(内存内)记录20分钟

[root@www ~]# arp -[nd] hostname
[root@www ~]# arp -s hostname(IP) Hardware_address选项与参数:
-n :将主机名以 IP 的型态显示
-d :将 hostname 的 hardware_address 由 ARP table 当中删除掉
-s :设定某个 IP 或 hostname 的 MAC 到 ARP table 当中 范例一:列出目前主机上面记载的 IP/MAC 对应的 ARP 表格[root@www ~]# arp -nAddress            HWtype  HWaddress           Flags Mask    Iface
192.168.1.100      ether   00:01:03:01:02:03      C          eth0
192.168.1.240      ether   00:01:03:01:DE:0A      C          eth0
192.168.1.254      ether   00:01:03:55:74:AB      C          eth0范例二:将 192.168.1.100 那部主机的网卡卡号直接写入 ARP 表格中[root@www ~]# arp -s 192.168.1.100  01:00:2D:23:A1:0E# 这个指令的目的在建立静态 ARP

    ICMP协议

        ICMP 也是网络层的重要封包之一

        因为Internet上有传输能力的就只有IP封包,所以ICMP被纳入到IP封包中传送

        命令 ping 和traceroute 就是利用的ICMP协议

        ICMP的类别

类别代号类别名称与意义
0Echo Reply (代表一个响应信息)
3Destination Unreachable (表示目的地不可到达)
4Source Quench (当 router 的负载过高时,此类别码可用来让发送端停止发送讯息)
5Redirect (用来重新导向路由路径的信息)
8Echo Request (请求响应消息)
11Time Exceeded for a Datagram (当数据封包在某些路由传送的现象中造成逾时状态,此类别码可告知来源该封包已被忽略的讯息)
12Parameter Problem on a Datagram (当一个 ICMP 封包重复之前的错误时,会回复来源主机关于参数错误的讯息)
13Timestamp Request (要求对方送出时间讯息,用以计算路由时间的差异,以满足同步性协议的要求)
14Timestamp Reply (此讯息纯粹是响应 Timestamp Request 用的)
15Information Request (在 RARP 协议应用之前,此讯息是用来在开机时取得网络信息)
16Information Reply (用以响应 Infromation Request 讯息)
17Address Mask Request (这讯息是用来查询子网 mask 设定信息)
18Address Mask Reply (响应子网 mask 查询讯息的) 




TCP/IP的传输层相关封包与数据

被传送出去的IP封包 到底会不会被接受,或者是有没有被正确的接收 是传送层的任务之一

传输层封包表头信息

4 bits6 bits6 bits8 bits8 bits
Source PortDestination Port
Sequence Number
Acknowledge Number
Data
Offset
ReservedCodeWindow
ChecksumUrgent Pointer
OptionsPadding
Data
  • Source Port & Destination Port (来源端口 & 目标端口)

  • Sequence Number (封包序号)
    如果 TCP 数据大于要装入的 IP 封包, 就得要进行分段。这个 Sequence Number 就是记录每个封包的序号,可以让收受端重新将 TCP 的数据组合起来。

  • Acknowledge Number (回应序号)
    当一端收到另一端这个确认码时,就能够确定之前传递的封包已经被正确的收下了。

  • Data Offset (资料补偿)
    IP封包中需要options项填补不足 而为了要确认整个 TCP 封包的大小,就需要这个标志来说明整个封包区段的起始位置。

  • Reserved (保留)
    未使用的保留字段。

  • Code (Control Flag, 控制标志码)
    联机需要联机的状态,好让接收端了解这个封包的主要动作。这个字段共有 6 个 bits ,分别代表 6 个句柄,若为 1 则为启动。分别说明如下:

    其实每个项目都很重要,不过我们这里仅对 ACK/SYN 有兴趣而已,这样未来在谈到防火墙的时候,你才会比较清楚为啥每个 TCP 封包都有所谓的『状态』条件!那就是因为联机方向的不同所致啊!


    • URG(Urgent):若为 1 则代表该封包为紧急封包, 接收端应该要紧急处理,且 Urgent Pointer 字段也会被启用。

    • ACK(Acknowledge):若为 1 代表这个封包为响应封包, 则与上面提到的 Acknowledge Number 有关。

    • PSH(Push function):若为 1 时,代表要求对方立即传送缓冲区内的其他对应封包,而无须等待缓冲区满了才送。 

    • RST(Reset):如果 RST 为 1 的时候,表示联机会被马上结束,而无需等待终止确认手续。这也就是说, 这是个强制结束的联机,且发送端已断线。

    • SYN(Synchronous):若为 1,表示发送端希望双方建立同步处理, 也就是要求建立联机。通常带有 SYN 标志的封包表示『主动』要连接到对方的意思。

    • FIN(Finish):若为 1 ,表示传送结束,所以通知对方数据传毕, 是否同意断线,只是发送者还在等待对方的响应而已。

  • Window (滑动窗口)
    主要是用来控制封包的流量的,可以告知对方目前本身有的缓冲器容量(Receive Buffer) 还可以接收封包。当 Window=0 时,代表缓冲器已经额满,所以应该要暂停传输数据。 Window 的单位是 byte。

  • Checksum(确认检查码)
    当数据要由发送端送出前,会进行一个检验的动作,并将该动作的检验值标注在这个字段上; 而接收者收到这个封包之后,会再次的对封包进行验证,并且比对原发送的 Checksum 值是否相符,如果相符就接受,若不符就会假设该封包已经损毁,进而要求对方重新发送此封包!

  • Urgent Pointer(紧急资料)
    这个字段是在 Code 字段内的 URG = 1 时才会产生作用。可以告知紧急数据所在的位置。

  • Options(任意资料)
    目前此字段仅应用于表示接收端可以接收的最大数据区段容量,若此字段不使用, 表示可以使用任意资料区段的大小。这个字段较少使用。

  • Padding(补足字段)
    如同 IP 封包需要有固定的 32bits 表头一样, Options 由于字段为非固定, 所以也需要 Padding 字段来加以补齐才行。同样也是 32 bits 的整数。

特殊端口 port

    root才可以启动1024一下的端口

端口服务名称与内容
20FTP-data,文件传输协议所使用的主动数据传输端口
21FTP,文件传输协议的命令通道
22SSH,较为安全的远程联机服务器
23Telnet,早期的远程联机服务器软件
25SMTP,简单邮件传递协议,用在作为 mail server 的埠口
53DNS,用在作为名称解析的领域名服务器
80WWW,这个重要吧!就是全球信息网服务器
110POP3,邮件收信协议,办公室用的收信软件都是透过他
443https,有安全加密机制的WWW服务器

Socket Pair

  • 来源 IP + 来源埠口 (Source Address + Source Port)

  • 目的 IP + 目的埠口 (Destination Address + Destination Port)

TCP的三次握手

wKiom1guZNfywVZeAABaveBfjqw753.png-wh_50

非连接导向的UDP协议

16 bits16 bits
Source PortDestination Port
Message LengthChecksum
Data

表头数据较少,所以 UDP 就可以在 Data 处填入更多的资料

UDP 比较适合需要实时反应的一些数据流,例如影像实时传送软件

查询主机名的 DNS 服务就同时提供了 UDP/TCP