IP、TCP、UDP首部详解( 二 )


32位序列号:
用来标识从TCP发端向TCP收端发送的数据字节流,它表示当前报文段的第一个数据字节占整个字节流的相对位置 。序号是32bit的无符号数,序号到达2^32 - 1后又从0开始 。
32位确认号:
表示接收端希望接收的数据序号,为上次接收到数据报的序号+1,当ACK标志位为1时才生效 。
4位首部长度:
指出首部中32bit字的数目 。需要这个值是因为选项字段的长度是可变的 。这个字段占4bit,因此TCP最多有60字节的首部,通常情况下没有选项字段,TCP的首部长度是20个字节 。
6位标志位:
URG:紧急指针有效,当URG=1时生效 。
ACK:确认序号有效,当ACK=1时生效 。
PSH:接受方应该尽快将这个报文段交给应用层,而不是等待缓冲区满 。
RST:重建链接 。
SYN:同步序号,用来发起一个连接 。
FIN:发端完成发送任务 。
16位窗口大小:
TCP的流量控制由连接的每一端通过声明的窗口大小来控制 。它表示接收方可接受数据字节数 。窗口大小是一个16bit字段,因而窗口大小最大为65535字节 。
16位TCP校验和:
校验和覆盖了整个TCP报文段包括TCP首部和TCP数据 。这是一个强制性的字段,一定是由发端计算和存储,并由收端进行验证 。
16位紧急指针:
只有当URG标志置1时紧急指针才有效 。紧急指针是一个正的偏移量,和序号字段中的值相加表示紧急数据最后一个字节的序号,用于TCP紧急数据发送 。
选项:
最常见的可选字段是最长报文大小,又称为MSS 。每个连接方通常在通信的第一个报文段(为建立连接而设置SYN标志的那个段)中指明这个选项 。它指明本端所有接收的最大长度的报文段 。
数据:
TCP中的数据部分也是可选的 。在一个TCP连接的建立和终止时,双发交换的报文段仅有TCP首部 。
UDP首部 封装UDP数据报的IP数据报

IP、TCP、UDP首部详解

文章插图
UDP首部字段图
IP、TCP、UDP首部详解

文章插图
UDP首部字段详情
16位源端口、目的端口:
用来标识源端和目标端的应用进程 。
16位UDP长度:
该字段表示UDP首部和UDP数据的字节长度 。该字段的最小值为8字节(发送0字节的UDP数据报是OK的) 。
16位UDP校验和:
UDP校验和覆盖了UDP首部和UDP数据 。UDP的校验和是可选的,而TCP的校验和是必需的 。