摘要:通信工程师考试传输与接入IP分组格式:IP分组由分组头和数据区两部分组成。其中,分组头部分用来存放IP协议的具体控制信息,而数据区则包含了上层协议(如TCP)提交给IP协议传送的数据。IP分组的格式如图10.14所示。
10.4 IP 协 议
10.4.1 IP分组格式
IP分组由分组头和数据区两部分组成。其中,分组头部分用来存放IP协议的具体控制信息,而数据区则包含了上层协议(如TCP)提交给IP协议传送的数据。IP分组的格式如图10.14所示。
IP分组头由以下字段组成:
(1) 版本:长度为4 bit,表示与IP分组对应的IP协议版本号。在处理IP分组前,IP软件都要检查IP分组的版本字段,以保证分组格式与软件期待的一致。目前的协议版本号是4,因此IP有时也称作IPv4。
(2) 分组头长度:长度为4 bit,用于指明IP分组头的长度,其单位是4个字节(32 bit),即分组头部是4个字节整数倍的数目。由于IP分组头的长度是可变的,因此,该字段是必不可少的。
(3) 服务类型(TOS):长度为8 bit,用于指明IP分组所希望得到的有关优先级、可靠性、吞吐量、时延等方面的服务质量要求, 如图10.15所示。它包括一个3 bit的优先级子字段,优先级取值范围0~7;D、T、R各占1 bit,表示该分组所期望的服务类型。D为最小时延,T为最大吞吐量, R为较高可靠性。如果所有比特位均为0, 那么就意味着该服务为普遍服务。
(4) 总长度:长度为16个比特,用于指名整个IP数据报的长度,以字节为单位。它包括分组头和数据区的长度,利用分组头部长度字段和总长度字段,我们就可以知道IP分组中数据内容的起始位置和长度。由于该字段长16 bit,所以IP分组最长可达65 535字节。当数据报被分片时,该字段的值也随着变化。
总长度字段是IP分组头中必要的内容,因为一些数据链路(如以太网)需要填充一些数据以达到最小长度。例如,以太网的最小帧长为46字节,但是IP分组可能会更短。如果没有总长度字段,那么IP层就不知道46字节中有多少是IP数据报的内容。
(5) 标识符:长度为16个bit,和源地址、目的地址、用户协议一起惟一地标识主机发送的每一个分组。通常每发送一个分组它的值就会加1。我们在10.5节介绍分片和重组时再详细讨论它。同样,在讨论分片时我们再来分析标志字段和片偏移字段。
(6) 标志:长度为3 bit,在3 bit中1位保留,另两位DF和MF分别用于指明IP分组不分片和分片。
(7) 分片偏移量:长度为13 bit,以8字节为1单位,用于指明当前分组片在原始分组中的位置,这是分段和重组所必需的。
(8) 生存时间TTL(Time-To-Live):长度为8 bit,用于指明IP分组可在网络中传输的最长时间,TTL的初始值由源主机设置(通常为32位或64位),一旦经过一个处理它的路由器,它的值就减去1。当该字段的值减为0时,该分组被丢弃,并发送ICMP消息通知源主机。这个字段用于保证IP分组不会在网络出错时无休止地传输。
(9) 协议:长度为8 bit,用于指明调用IP协议进行传输的高层协议,高层协议的号码由TCP/IP管理机构统一分配。例如,ICMP的值为1,TCP的值为6,UDP的值为17。
(10) 分组头校验和:长度为16 bit,用于保证IP分组头的完整性。只对IP分组头部(不对分组头部后面的数据区)计算的检验和。其算法为:该字段初始值为0,然后对IP分组头以每16位为单位进行求异或,并将结果求反,便得到校验和。
(11) 源IP地址:长度为32 bit,用于指明发送IP分组的源主机IP地址。
(12) 目的地址:长度为32 bit,用于指明接收IP分组的目标主机IP地址。
(13) 任选项:长度可变,该字段允许在以后版本中包括在当前设计的分组头中未出现的信息,其使用有一些特殊的规定。目前,这些任选项定义如下:
安全和处理限制(用于军事领域,详细内容参见RFC 1108);
记录路径(让每个路由器都记下它的IP地址,见7.3节);
时间戳(让每个路由器都记下它的IP地址和时间,见7.4节);
宽松的源站选路(为分组指定一系列必须经过的IP地址);
严格的源站选路(与宽松的源站选路类似,但是它要求只能经过指定的这些地址,不能经过其他的地址)。
这些选项很少被使用,并非所有的主机和路由器都支持这些选项。
(14) 填充:长度不定,由于IP分组头必须是4字节的整数倍(这是分组头长度字段所要求的),因此,当使用任选项的IP分组头长度不足4字节的整数倍时,必须用0填入填充字段来满足这一要求。
返回目录:
通信工程师备考资料免费领取
去领取