IP数据报的格式
- 格式:pdf
- 大小:103.42 KB
- 文档页数:2
IP数据报的格式
IP协议具有什么功能从数据报的格式中就能够知道,⼀个IP数据报被分为了⾸部和数据两个部分,在⾸部中有20个字节是固定的,还有⼀些可选字段长度是可变的,下⾯是IP数据报的具体格式:
IP数据报各个字段的意义
1.版本号
版本号占4位,指使⽤的IP协议的版本,通信双⽅使⽤的版本要⼀致才能通信,⽬前的版本有IPv4和IPv6,
2.⾸部长度
指数据报的⾸部的长度,占4位,注意这⾥的⾸部长度的单位是4个字节,所以最⼤的⾸部长度可以达到 15 * 4 = 60 个字节,当⾸部长
度不是4个整数倍的时候,就要使⽤填充字段进⾏填充。
3.区分服务
占8位,⽤来获得更好的服务,只有在使⽤区分服务的时候,这个字段才有⽤,⼀般情况下,都不使⽤这个字段
4.总长度
⾸部和数据部分长度之和,占16位,因此IP数据报的最⼤长度位2的16次⽅ - 1, 即65535个字节,然⽽这样长度的数据报是极少遇到
的,我们知道在数据链层规定了MTU的⼤⼩(常⽤的以太⽹的MTU为1500字节),当数据报的⼤⼩超过MTU时,就要进⾏分⽚处理。
IP协议规定所有的主机和路由器,必须能够接受长度不超过576字节的数据报,当要发送的数据包的长度超过576个字节时,就应该先
了解⽬的主机是否能够接受所发送的数据报的长度,否则就要进⾏分⽚处理了。
5.标识
占16位,IP软件在存储器中维持⼀个计数器,每产⽣⼀个数据报,就将计数器加⼀,并将此值赋值给标识字段,当数据报的长度,超过
⽹络的MTU时,就必须进⾏分⽚处理,这个标识将会赋值到所有的分⽚中,也就是说⼀个数据报经过分⽚之后的形成的多个数据报的标识是
⼀样的,这样做是为了将它们组成⼀个完整的数据报。
6.标志
占3位,但⽬前只有两位有意义,
标志字段的最低位为MF,当MF = 1 时,表⽰后⾯还有分⽚,MF = 0表⽰这是最后⼀个分⽚
中间位位DF,DF的意思是不能分⽚,当DF=0时,才允许分⽚
7.⽚位移
占13位,分⽚之后的每⼀⽚在原来的数据报中的位置,即相对于数据报的起点位置,该⽚从何处开始,⽚位移以8个字节位单位,
8.⽣存时间
占8位,英⽂缩写为TTL(Time To Live),这个字段指明数据报在⽹络中的⽣存时间,每当数据报经过⼀个路由器,TTL就减1,当TTL为0时,路由器就丢弃该数据报,⽽不进⾏转发了,这样做的⽬的是为了防⽌数据报 在⽹络中“兜圈⼦”⽽⽩⽩消耗⽹络资源,⼀般的操作
系统都有默认的TTL:
Linux 64
Windows 128
Unix 256
9.协议
占8位,协议字段指出数据包的数据部分使⽤的是何种协议,以便使⽬的主机的IP层知道应该将数据报中的数据交给哪个部分来处理,
常见的协议和对应的字段值如下:
ICMP 1
IGMP 2
IP 4 , IP数据报再封装到IP数据报中
TCP 6
IGP 9
UDP 17
IPv6 41
ESP 50
OSPF 89
10.⾸部检验和
占16位,只将⾸部检验过后的检验和填⼊此字段中,不检验数据报的数据部分,数据报每经过⼀个路由器都要重新计算检验和,检验和的计算过程如下:
先将检验和字段设置为全0,
然后将IP数据报的⾸部划分位以16位为⼀个单位的序列,将这些字段进⾏反码算术运算求和,
将得到的结果取反,并写⼊检验和字段,注意这个取反后的结果和原来的结果相加为全1
接收⽅收到数据报之后,也将IP数据报的⾸部划分位以16位为⼀个单位的序列,将这些字段进⾏反码算术运算求和,
若将得到的结果取反不为0,那么证明出错了,则丢弃该数据报,若取反结果为0,将数据报上交。
11.源地址和⽬的地址
各占32位
12.可变部分
IP⾸部的可变部分就是⼀个选项字段,选项字段可以⽤来⽀持排错、测量以及安全等措施,内容丰富,选项字段最多为40个字节,最⼩
为0个字节,实际上这些字段都是很少⽤的,因为这样⼀来减⼩了开销,IPv6版本的IP数据报的⾸部就是固定长度的,