IP数据报的格式

IP数据报的格式能够说明IP协议具有什么功能,在TCP/IP的标准中,各种数据格式常以32位(4字节)为单位来描述。

一个IP数据包有首部和数据两部分组成。首部的前一部分是固定长度,占20字节,是所有IP必须有的。在首部的固定后面是一些可选字段,其长度是可变的。

(1)版本:占4位,指IP协议的版本。双方通信的版本必须一致。目前使用的版本号是4,即IPv4.

(2)首部长度:占4位,可表示的十进制数是15(二进制:1111) 。首部长度的字段所表示数的单位是32位字(1个32位字长是4字节)。最小固定长度是20字节,因此首部最小长度十进制数是5,二进制数是0101;当首部长度为最大值1111(15)时,就表明首部长度最大值为15个32位字长,为60字节。当IP首部长度不是4字节的整数倍时,必须用填充部分填充。

(3)区分服务:占8位,用来获取更好的服务。在旧的标准中叫做服务类型。一般情况下不使用这个字段。

(4)总长度:总长度=首部长度+数据长度。单位为字节,总长度字段占16位,即2字节,因此数据报的最大长度是2^16-1=65535字节。但是在实际中极少遇到传输这么多的数据字节,因为在链路层中规定了一个数据帧中的数据字段的最大长度,称为最大传送单元MTU(Maximun Transfer Unit).IP数据报封装成链路层的帧时,数据包的总长度不能超过链路层的最大传送单元MTU.如果数据报的数据较大,就必须数据报进行分片处理。

(5)标识:占16位。IP软件在存储中维持一个计数器,每产生一个数据包,计数器加1,并将此赋值给标识字段。当数据包由于长度超过网络的MTU而必须分片时,这个标识字段的值就被复制到所有的数据报片的标识字段中。相同的标识字段的值使分片后的各数据报片最后在正确地重装成为原来的数据报。

(6)标志(flag):占3位,但是目前只有2位有意义。标志字段中最低位为MF(more fragment)。MF=1,表示还有分片的数据报。MF=0,表示是若干个数据报片中的最后一个。标志字段中的一位记为MF(Don't fragment),意思是不能分片。只有当DF=0时才可以分片。

(7)偏移片:占13位。偏移片指出:较长的分组在分片后,某片在原分组中对的相对位置。也就是说,相对于用户数据字段的起点,该片从何处开始。偏移片以8个字节为偏移单位。这就是说,每个分片的长度一定是8(64位)的整数倍。

例如:一个数据报的总长度为3820字节,其数据部分为3800字节长,需要分片为长度不超过1420字节的数据报片。首部固定20字节,因此每个数据部分长度不能超过1400字节。于是分为3个数据报片。其数据部分长度分别为1400,1400,1000字节。原始数据报首部被复制为各个数据报片的首部,但必须修改有关字段。

数据报片的分段举例:

 IP首部中与分片有关字段中的值,其中标识字段任意给定12345,具有相同的标识在数据到达目的后就可以无误的重组。

 FM=1表示还有分片,DF=0表示可以再分片。

(8)生存时间:占8位,生存时间字段常用的英文缩写TTL(Time to Live),表明数据报片在网络中的寿命。

(9)协议:占8位,协议字段指出此数据报携带的数据是何种协议,以便使用目的主机的IP层知道应将数据部分上交给哪个协议进行处理:

(10)首部检验和:占16位。这个字段只是校验数据报的首部,不包括数据部分。

(11)源地址:占32位,Ip地址;

(12)目的地址:占32位,IP地址 ;

(13)可选字段:用来支持排错,测量以及安全等措施,内容丰富。长度从1到40字节不等。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值