注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

phperwuhan的博客

记载一个phper的历程!phperwuhan.blog.163.com

 
 
 

日志

 
 

IP数据报的分片与重组分析  

2009-08-28 14:56:41|  分类: 抓包 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

来源:http://net.zdnet.com.cn/network_security_zone/2009/0723/1416446.shtml

前言

  前面的文章中,我们了解了IP数据报的TTL字段在网络分析中的作用,以及通过TTL如何分析网络故障,请大家参考:http://www.csna.cn/viewthread.php?tid=15824。其实在IP协议的报头中,除了TTL字段,还有几个字段是非常重要的,这就是我们今天要讨论的标识符、标志位以及偏移量,这3个字段在IP数据报的分片与重组中,是非常重要的字段。

  我们都知道,不同类型的网络,其MTU(最大传输单元)各不相同,如以太网中,最大的传输帧为1518字节,FDDI为4500字节,令牌环帧在4500字节到17800字节之间,而IP协议的一个重要功能,就是能够对传输的数据大于硬件接口的MTU时,对其进行分段传输。即大于MTU的数据报将被分为2个或多个的合适的大小被传输。一个分片在到达接收主机的路径中,还可能被继续分片,因此,分片的IP数据报可能会以不同的路径传输到接收主机,接收主机通过一系列的重组,将其还原为一个完整的IP数据报,再提交给上层协议处理。

  IP标识符

  IP标识符、标志、偏移量3个字段在IP报头中的位置如下图1所示:

IP数据报的分片与重组分析

图1

  在发送数据报前,发送主机给每个数据报一个ID值,放在16位的标识符字段中。此ID用于标识唯一的数据报或数据流。接收主机利用此ID对收到的数据报进行重组。正如前面所说,当分片的IP数据报从源地址发送到目的地址的时候,由于网络延迟或者不同的传输路径的关系,在到达目的主机时,这些分片数据报并不总是有序的排列,而是处于一种无序状态,因此,接收主机便用此ID判断接收的这些分片数据报是否属于同一个数据流,然后再进行重组(重组将在偏移量中讨论)。

  标志

  标志字段在IP报头中占3位,第1位作为保留,置0;第2位,分段,有两个不同的取值:该位置0,表示可以分段;该位置1,表示不能分段;第3位,更多分段,同样有两个取值:该位置0,表示这是数据流中的最后一个分段,该位置1,表示数据流未完,后续还有分段,当一个数据报没有分段时,则该位置0,表示这是唯一的一个分段。见下图2:

IP数据报的分片与重组分析

图2

  当目的主机接收到一个IP数据报时,会首先查看该数据报的标识符,并且检查标志位的第3位是置0或置1,以确定是否还有更多的分段,如果还有后续报文,接收主机则将接收到的报文放在缓存直到接收完所有具有相同标识符的数据报,然后再进行重组。

  更多分段位能够让接收主机判断分片的数据报是否发送完毕;而分段位除了能够将将数据报分段,而且还能够实现另一个用途,在某些情况下,可以利用分段位动态的找到网络端到端的MTU大小。如果路由器配置时,置此位为0,则当主机尝试发送一个比传输路径上的数据报大的帧时,路由器不转发该帧,而是丢弃,并给源主机发送ICMP报文,说明该数据报太大,源主机利用此信息调整数据报大小,再重新发送。

  偏移量

  13位的偏移量字段用来表示分段的数据报在整个数据流中的位置,即相当于分片数据报的顺序号。发送主机对第一个数据报的偏移量置为0,而后续的分片数据报的偏移量则以网络的MTU大小赋值。偏移量对于接收方进行数据重组的时候,这是一个关键的字段。对于分片的数据段(单位:字节)必须为8的整数倍,否则IP无法表达其偏移量。如下图3所示:

IP数据报的分片与重组分析

图3

  以太网中,源主机如果需要通过UDP传送3000字节的数据到目的主机,这时的分段情况如下图4所示(在同一网段):

IP数据报的分片与重组分析

图4

  此处需要注意的是对于分片1的报头,相对于其他两个分片的报头而言,要多出8个字节UDP协议的报头开销,因此,在计算实际传输的数据净载荷时,分片1要多减去8字节UDP报头。最后,接收主机通过此偏移值将数据重组成完整的数据报。

  总结

  IP协议虽然是我们司空见惯的一个协议,但是,对于其报头结构,报头中每个字段的含义,还是需要我们不断学习,才能真正理解IP协议的精髓。

科来网络通讯分析系统下载地址:
http://www.colasoft.com.cn/download/capsa.php

  评论这张
 
阅读(526)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017