赞
踩
IP数据报文格式及首部中各字段
图1-1
首部各字段意义
4位首部长度:
指首部占32bit字的数目,包括选项区,也就是说单位是4个字节,如图1-1首部是20个字节,那首部字段值为5,即0101,首部最大值是1111,也就是说首部长度字段最大可表示15(1111)*4 = 60字节长度(包含选项段)。普通IP数据报(没有任何选项),该字段的值是5,即160比特=20字节。
8位服务类型(TOS):
TOS字段包含一个3bit的优先权字段(现已被忽略),4bit的TOS字段和1bit未用但必须置0。4bit的TOS分别代表:最小时延、最大吞吐量、最高可靠性和最小费用。4bit中只能置其中1bit,如果所有4bit均为0,表示一般服务。
16位总长度:
总长度字段是指整个IP数据报的长度,以字节为单位。通过首部长度字段和总长度字段,就可以知道IP数据报中数据内容的起始位置和长度。由于该字段长16bit,所以IP数据报最长可达65535字节,当数据报被分片时,该字段的值也随着变化。
32位选项:
用来定义一些任选项:如记录路径、时间戳等。这些选项很少被使用,同时并不是所有主机和路由器都支持这些选项。可选项字段的长度必须是32比特的整数倍,如果不足,必须填充0以达到此长度要求,这样可以保证IP首部始终是32bit的整数倍(这是首部长度字段所要求的)。
图2-1
图2-2
首部各字段意义
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首部。
图3-1
图3-2
16位源端口、目的端口:
用来标识源端和目标端的应用进程。
16位UDP长度:
该字段表示UDP首部和UDP数据的字节长度。该字段的最小值为8字节(发送0字节的UDP数据报是OK的)。
16位UDP校验和:
UDP校验和覆盖了UDP首部和UDP数据。UDP的校验和是可选的,而TCP的校验和是必需的。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。