【转】IP报文格式详解
- 格式:pdf
- 大小:314.30 KB
- 文档页数:2
【转】IP报⽂格式详解
下图为常见的IP报⽂格式表:
上⾯是IP的报⽂格式,接下来我们先说明各个字段的意义。然后,⽤Etheral软件转包分析IP的报⽂格式。1.版本:ip报⽂中,版本占了4位,⽤来表⽰该协议采⽤的是那⼀个版本的ip,相同版本的ip才能进⾏通信。⼀般此处的值为4,表⽰ipv4。
2.头长度:该字段⽤四位表⽰,表⽰整个ip包头的长度,其中数的单位是4字节。即⼆进制数0000-1111(⼗进制数0-15),其中⼀个最⼩长度为0字节,最⼤长度为60字节。⼀般来说此处的值为0101,表⽰头长度为20字节。
3.Tos服务字段:该字段⽤8位表⽰。该字段⼀般情况下不使⽤。
4..总长度:该字段表⽰整个ip报⽂的长度,单位是1字节。能表⽰的最⼤字节为2^16-1=65535字节。不过由于链路层的MTU限制。超过1480字节后就会被分⽚(以太帧MTU为1500的情况下,除去20字节的包头)
5.标识:该字段是ip软件实现的时候⾃动产⽣的,该字段的⽬的不是为了接受⽅的按序接受⽽设置的,⽽是在ip分⽚以后,⽤来标识同⼀⽚分⽚的。⽅便ip分⽚的重组。
6.标志:该字段是与ip分⽚有关的。其中有三位,但只有两位是有效的,分别为MF,DF,MF。MF标识后⾯是否还有分⽚,为1时,表⽰后⾯还有分⽚。DF标识是否能分⽚,为0表⽰可以分⽚。
7.⽚偏移:该字段是与ip分⽚后,相应的ip⽚在总的ip⽚的位置。该字段的单位是8字节。⽐如,⼀个长度为4000字节的ip报⽂,到达路由器。这是超过了链路层的MTU,需要进⾏分⽚,4000字节中,20字节为包头,3980字节为数据,需要分成3个ip⽚(链路层MTU为1500),那么第⼀个分⽚的⽚偏移就是0,表⽰该分⽚在3980的第0位开始,第1479位结束。第⼆个ip⽚的⽚偏移为185(1480/8),表⽰该分⽚开始的位置在原来ip的第1480位,结束在2959。第三⽚的⽚偏移为370(2960/8),表⽰开始的时候是2960位,结束的时候在3979位。
8.TTL:该⽚表⽰⽣存周期,该值占8位。ip分⽚每经过⼀个路由器该值减⼀,它的出现是为了防⽌路由环路,浪费带宽的问题。⽐如,该ip在R1路由器发送到R2路由器。R2路由器⼜发给R1路由器。防⽌这种循环。window系统默认为128.
9.协议:该值标识上层的协议。占8位。其中1,标识ICMP、2标识IGMP、6标识TCP、17标识UDP、89标识OSPF。
10校验和:该值是对整个数据包的包头进⾏的校验。占16位。
11.源地址和⽬的地址。标识发送ip⽚的源和⽬的ip,32位
12.接下来是可选的部分,⼀般⼀些特殊的要求会加在这个部分。
13:数据
j接下来,我们⽤⼀个具体的ip报⽂来进⾏分析。该报⽂是Etheral报⽂分析软件抓的包。
这是是ip报⽂的第⼀⾏,Version是版本,Header length是头长度,Differentiated Services Field就是区分服务,Total Lehgth为总长度。
其中,45 00 05 dc 为上⾯的四个信息的传输过程中的值,这⾥⾯⼀个数代表4位⼆进制数。其中,4和5分别表⽰版本,头长度,00表⽰TOS为0。05,
这是ip报⽂的第⼆⾏,Identification 位标识,FLags为标志,在这⾥可以看到MF为 set 标识还有分⽚,DF为not set可以分⽚。⽚偏移为0.标识这是初始的ip⽚
90 ad 20 00 为上⾯的标识字段,90 ad 标识该ip的标识, 2转换为⼆进制为0010,其中前三位001位标志,后⾯的0,是13位的标识的⼀部分。
这是 TTL 协议 检验和这⼏部分。可以看到TTL为12,上层协议为ICMP,头部检验和为true.
80 01 ef 05为相应字段的值80位⽣存时间转换成10进制为128. 01为协议。ef 05为⾸部检验和。
上⾯是源和⽬的IP,
下⾯是相应的编码
c0 a8 0a 0e 为源ip
c0 a8 0a of 为⽬的ip
以上就是我对于ip报⽂的理解。