首页 理论教育IP数据报格式及其应用技术

IP数据报格式及其应用技术

【摘要】:IP数据报的格式分为报头区和数据区两大部分,其中报头区是为了正确传输高层数据而加的各种控制信息;数据区包括高层协议需要传输的数据。IP数据报的格式如图8-8所示。图8-8 IP数据报格式1.IP数据报各字段的功能IP数据报中的每一个域包含了IP报文所携带的一些信息,正是用这些信息来完成IP协议功能的,现说明如下。总长度总长度用16位二进制数表示,总长度字段是指整个IP数据报的长度,以字节为单位。

IP协议是TCP/IP协议族中最为核心的协议,前面我们已经讨论过,它提供不可靠、无连接的数据报传输服务。IP层提供的服务是通过IP层对数据报的封装与拆封来实现的。IP数据报的格式分为报头区和数据区两大部分,其中报头区是为了正确传输高层数据而加的各种控制信息;数据区包括高层协议需要传输的数据。IP数据报的格式如图8-8所示。

图8-8中表示的数据,最高位在左边,记为0位;最低位在右边,记为31位。在网络中传输数据时,先传输0~7位,其次是8~15位,然后传输16~23位,最后传输24~31位。由于TCP/IP协议头部中所有的二进制数在网络中传输时都要求以这种顺序进行,因此把它称为网络字节顺序。在进行程序设计时,以其他形式存储的二进制数必须在传输数据之前,把头部转换成网络字节顺序。

978-7-111-35607-3-Chapter08-9.jpg

图8-8 IP数据报格式

1.IP数据报各字段的功能

IP数据报中的每一个域包含了IP报文所携带的一些信息,正是用这些信息来完成IP协议功能的,现说明如下。

(1)版本号

版本号占用4位二进制数,表示该IP数据报使用的是哪个版本的IP协议。目前在In-ternet中使用的TCP/IP协议族中,IP协议的版本号为4,所以也常称为IPv4。下一个IP协议的版本号为6,即IPv6,当前正在试验中。

(2)头长度

头长度用4位二进制数表示,此域指出整个报头的长度(包括选项),该长度是以32位二进制数为一个计数单位的,接收端通过此域可以计算出报文头在何处结束及从何处开始读数据。普通IP数据报(没有任何选项)该字段的值是5(即20个字节的长度)。

(3)服务类型(Type Of Service,TOS)

服务类型用8位二进制数表示,规定对本数据报的处理方式。

(4)总长度

总长度用16位二进制数表示,总长度字段是指整个IP数据报的长度,以字节为单位。利用头部长度字段和总长度字段,就可以计算出IP数据报中数据内容的起始位置和长度。由于该字段长度为16位二进制数,所以从理论上来说,IP数据报最长可达65535字节(实际由于受物理网络的限制,要比这个数值小得多)。

(5)生存时间(Time To Live,TTL)

生存时间用8位二进制数表示,它指定了数据报可以在网络中传输的最长时间。在实际应用中为了简化处理过程,把生存时间字段设置成了数据报可以经过的最大路由器数。TTL的初始值由源主机设置(通常为32、64、128或者256),一旦经过一个处理它的路由器,它的值就减去1。当该字段的值减为0时,数据报就被丢弃,并发送ICMP报文(本书的8.4节介绍)通知源主机,这样可以防止进入一个循环回路时,数据报无休止地传输。

(6)上层协议标识

上层协议标识用8位二进制数表示,从图8-4可知,IP协议可以承载多种上层协议,目的端根据协议标识,就可以把收到的IP数据报送至TCP或UDP等处理此报文的上层协议。表8-2给出了常用的网际协议编号。(www.chuimin.cn)

表8-2 常用网际协议编号

978-7-111-35607-3-Chapter08-10.jpg

(7)头部校验和

头部校验和用16位二进制数表示,这个域用于协议头数据有效性的校验,可以保证IP报头区在传输时的正确性和完整性。

头部校验和字段是根据IP协议头部计算出的校验和码,它不对头部后面的数据进行计算。

(8)源IP地址

源IP地址是用32位二进制数表示的发送端IP地址。

(9)目的IP地址

目的IP地址是用32位二进制数表示的目的端IP地址。

2.IP数据报分片与重组

(1)最大传输单元

IP数据报在互联网上传输,可能要经过多个物理网络才能从源端传输到目的端。不同的网络由于链路层和介质的物理特性不同,因此在进行数据传输时,对数据帧的最大长度都有一个限制,这个限制值称为最大传输单元(Maximum Transmission Unit,MTU)。

(2)分片

当一个IP数据报要通过链路层进行传输时,如果IP数据报的长度比链路层MTU的值大,那么IP层就需要对将要发送的IP数据报进行分片,把一个IP数据报分成若干长度小于或等于链路层MTU的IP数据报,才能经过链路层进行传输。这种把一个数据报为了适合网络传输而分成多个数据报的过程称为分片(Fragmentation)。一定要注意,被分片后的各个IP数据报可能经过不同的路径到达目的主机。

(3)重组

当分了片的IP数据报被传输到最终目的主机时,目的主机要对收到的各分片重新进行组装,以恢复成源主机发送时的IP数据报,这个过程称为IP数据报的重组。