加载中…
个人资料
追梦的小鸟
追梦的小鸟
  • 博客等级:
  • 博客积分:0
  • 博客访问:396,714
  • 关注人气:46
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
谁看过这篇博文
加载中…
正文 字体大小:

IP分片和TCP流重组杂记

(2012-11-21 17:30:19)
标签:

杂谈

分类: Network

----------------------------------------------------------------------------------------------    我们都知道,在以太网中,如果源主机向目标主机发送的数据包大于网关MTU,则该数据包在传输过程中会被IP协议分片传输具体的分片过程是怎样的呢?我们通过协议分析软件抓包来进行详细的查看(抓包软件使用科来网络分析系统)。

因为以太网默认的MTU值为1500Byte,所以,为了达到分片的效果,我们应该传输大于1500Byte字节的数据包,才能使该数据包分段传输。
    我们从本机(192.168.6.11)发送一个2000字节的数据包到局域网的另一台主机(192.168.0.208)为例,在传输的过程中,开启软件抓包,就能够查看到详细的分片结果。
我们以ping为例,在Windows命令提示符下输入:ping 192.168.0.208 –l 2000
通过科来网络分析系统抓包,我们看到,该数据包被分片了,由于我们重复Ping4次,所以,抓到了4次同样的请求与回显的数据包。如下图:

IP分片和TCP流重组杂记

         查看详细的数据包解码(见下图):

IP分片和TCP流重组杂记

  

分析:因为ping的长度是2000字节,大于了MTU的值,所以会分片发送,如上图。捕获的这个数据包总长度为1500字节,更多分段位置1,表示还有数据分段。s,偏移量为0,需要注意的是IP头部的总长度字段值(这里是1500字节)并不全是数据的净载荷长度,这里还包括了IP以及ICMP的头部长度,分别是20字节和8字节
另外,IP协议的头部总长度并不一定就是MTU1500字节,这个值与网络环境、操作系统等因素有关。
    下图是第一个分片包。

IP分片和TCP流重组杂记
 

分析:IP字段的标识0x787F,与第一个包相同,说明这是同一个数据包,只是被分片了。
    偏移量为185,表示相对第一个包的位置,以便接收主机根据偏移量进行数据重组。
    需要注意的是此处分片包并没有ICMP字段,接收主机会可以根据偏移重组成完整的ICMP数据包。
最后,我们来计算一下该数据包的长度:第一个数据包的总长度为1500字节,减去IP头部长度20字节,减去ICMP头部长度8字节,即1500-20-81472字节;第二个数据包的总长度为548字节,减去IP头部长度20字节,即548-20528字节,两个数据包的净载荷1472+5282000,正好是我们发送的数据长度。

-------------------------------------------------------------------------------------------------

1.IP分片产生的原因是网络层的MTU;TCP分段产生原因是MSS.

2.IP分片由网络层完成,也在网络层进行重组;TCP分段是在传输层完成,并在传输层进行重组.   //透明性

3.对于以太网,MSS为1460字节,而MUT(默认为1500)往往会大于MSS.

 

故采用TCP协议进行数据传输,是不会造成IP分片的。若数据过大,只会在传输层进行数据分段,到了IP层就不用分片。

-------------------------------------------------------------------------------------------------

附:MSSMaximum Segment Size,最大报文长度),是TCP协议定义的一个选项,MSS选项用于在TCP连接建立时,收发双方协商通信时每一个报文段所能承载的最大数据长度。
    为了达到最佳的传输效能,TCP协议在建立连接的时候通常要协商双方的MSS值,这个值TCP协议在实现的时候往往用MTU值代替(需要减去IP数据包包头的大小20BytesTCP数据段的包头20Bytes)所以一般MSS1460
通讯双方会根据双方提供的MSS值得最小值确定为这次连接的最大MSS值。
注:最大报文段长度MSS这个名词很容易引起误解。MSSTCP报文段中的数据字段的最大长度。数据字段加上TCP首部才等于整个的TCP报文段。所以MSS并不是TCP报文段的最大长度,而是:MSS=TCP报文段长度-TCP首部长度。

 

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有