好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

IP分片技术及其故障处理.doc

6页
  • 卖家[上传人]:ji****72
  • 文档编号:37512781
  • 上传时间:2018-04-17
  • 文档格式:DOC
  • 文档大小:592KB
  • / 6 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 课题分类:现场维护类主题 : IP 分片技术课题名称:IP 分片技术及其故障处理作者: 赵亚群技术职称:助理工程师单位:铁通新疆分公司直属通信段网络支撑中心联系:0991-7923616投稿日期:2009 年 4 月 12 日IPIP 分片技术原理及其故障处理分片技术原理及其故障处理赵亚群(铁通新疆公司网络支撑中心)摘要摘要: :本文简要介绍了 IP 分片技术的原理,并由此引伸出当高层协议不允许分片时可能产生的问题,以及针对这种问题的分析、处理方法关键字关键字: :IP 分片 MTU MSS引言引言 现有的 Internet 网络是基于 TCP/IP 体系架构的,其数据交换方式采用的是分组交换 技术分组交换也称为包交换,发送信息的源站点将用户要传送的数据按一定长度分割成 若干个数据段,这些数据段叫做“分组”(或称包)传输过程中,需在每个分组前加上控 制信息和地址标识(即分组头),然后在网络中以“存储-转发”的方式进行传送到了目的 地,接收信息的站点将分组头去掉,把分割的数据段按顺序装好,还原成发端的数据交给 收端用户,这一过程称为分组交换。

      IPIP 分片原理分片原理 在 TCP/IP 协议族中,每种链路层协议对数据帧的长度都有一个限制,其中我们常用 的以太网的最大长度是 1500 字节,链路层的这个特性称作 MTU(Maxitum Transmission Unit) ,即最大传输单元(表一是几种网络的最大传输单元) 而 IP 报头长度为 20 字节到 60 字节,其中有 16 比特的总长度字段,用于指示整个 IP 数据报的长度(单位为字节) , 也就是说,IP 数据报的长度最大可达 65535 字节尽管可以传送一个长达 65535 字节的 IP 数据报,但是大多数的链路层都会对它进行分片(fragmentation) ,把数据报文分成若干 片进行传输表一:几种网络的最大传输单元网络MTU 字节超通道65535FDDI4352 以太网1500IEEE802.3/802.21492X.25576 点对点(低时延)296把一份 IP 数据报文分片以后,只有到达目的地才进行重新组装,这里的目的地是指 IP 报文传送的下一站,而不是最终的目的地,因此分片和重新组装的过程对传输层是透明 的在 IP 报头中,标识、标志、段偏移就是用于 IP 报文的分片与重组的。

      其中标识字段 长度为 16 比特,用于标识一个 IP 数据报也就是说当发送端将某个较大的 IP 报文分片进 行传输时,其中每个分片的标识字段都是相同的,代表这些分片是属于同一个数据报段 偏移字段 13 比特,用于指示该片在原始数据报中所处的位置标志字段有三位,其中第一 位未使用;第二位用于指出是否要对数据报分段,称为“请勿分段(DF)”位,如果该位 的值设置为 1,表示该数据报不能分段如果必须对数据报分段,而 DF 位又置为 1,则数 据报会被丢弃,并向源端发送一个 ICMP 差错报文;第三位用于指出当前分段后面是否还有 更多的分段,如果此位置 0,表示当前分段是数据报的最后一个分段 IP 分片的优点是它为上层协议提供了一个透明的传输通道,使上层协议不必关心底层 不同的硬件技术但是它也有缺点:在传输过程中,即使只丢失其中的一片数据也要重传 整个数据报,因为 IP 层的传输机制是“尽力而为”的,它本身没有超时重传机制,无法保证数据的可靠性,其可靠性是由高层协议来实现的——TCP 本身具有超时和重传机制,UDP 没有,但一些 UDP 应用程序本身执行超时和重传最大报文段长度最大报文段长度最大报文段长度——MSS(Maxitum Segment Size)表示 TCP 每次能够传输的最大数据 块的长度。

      TCP 协议在建立连接的时候通常要协商双方的 MSS 值,通讯双方会将双方提供 的 MSS 的最小值确定为这次连接的最大 MSS 值,这个值 TCP 协议在实现的时候往往用 MTU 值减去固定的 IP 首部(20 字节)和 TCP 首部(20 字节)长度,因此对于以太网而言,其 MSS 值通常是 1460当然,在实际的网络环境中,情况往往比较复杂,例如对于 PPPOE 报文——基于以太网的 点对点协议,因为采用了二次封装(增加了 PPP 的报头,其开销为 8 字节),导致以太网帧的 实际净荷减小了,其 MTU 值变为 1500-8=1492 字节,此时,如果高层协议因为某些原因不允 许网络层对其数据包进行分片,就有可能导致某些应用无法通信实际应用分析实际应用分析在实际的组网应用中,因 IP 不允许分片而导致报文丢弃的故障现象通常是:网络层可 达,某些网站和应用没问题,而有些网站无法浏览,某些应用(如收发邮件等)无法正常 使用等这时,我们可以通过抓包工具和测试命令来判断、定位故障点首先,通过抓包查看建立 TCP 连接的两个主机之间协商的 MSS 值的大小如下图所示, 通过获取的报文可以看到:主机 116.245.111.254 与服务器 61.172.201.209 之间在进行 TCP 握手时,协商的 MSS 值的大小为 1460。

      在 IP 协议的标志位(flags 字段),可以看到 DF 位的设置,如下图所示,DF 位被置 为 1,即不允许报文分片这就要求主机与服务器之间所有的设备的 MTU 值必须都要大于等于 1500 字节,否则, 当要传送的报文较大需要分片时,会因为 DF 的设置不允许分片而将报文丢弃在确定了 MSS 值后,通过 tracert、ping 命令,可以查看整个网络路径的每一跳的 MTU 值的设置是多少如下图所示,先使用 tracert 命令跟踪到目的网络的转发路径然后使用 ping 命令测试其允许通过的最大传输单元值(MTU)如下图所示,ping 搜 狐网站,在不允许分片的情况下,1472 字节的包能够正常通过,1473 字节的包未通过,说 明整个路径的最小 MTU 值是 1500(因 ping 命令使用的是 ICMP 报文,1472 字节的净荷加上 8 字节的 ICMP 报头,再加上 20 字节的 IP 报头,就是链路层的 MTU 值:1500)现网中,各种 VPN 应用越来越广泛,其报文封装格式及大小因采用的技术不同会有比 较大的差异,因此更要格外注意报文经过多次封装后,MTU 值的变化情况。

      通常情况下, 大部分应用程序都会允许报文分片的,但总有部分应用协议因为某种原因不允许报文分片, 这就要求 TCP 协商的 MSS 值在经过多次封装后,其字节数不能超过链路层的最大传输单元 当有这种情况出现时,可以通过以下几种方法解决: 一、修改网络设备的 MTU 值,使其能够容纳更大的上层报文 二、修改主机(或服务器)的 MTU 值,通过减小 MTU 值,间接减小与对端主机协 商的 MSS 值 三、在 internet 的所有设备上启用 MTU 自动发现功能但因公网上很多设备都 会拒绝 ICMP 报文,使得 PMTUD 失效,因此这一方法实现起来比较困难结束语结束语 万变不离其宗,了解了 IP 分片技术的原理,掌握了各种协议报文的封装过程后,再遇 到此类问题,就可以根据具体情况采取相应的措施解决问题参考文献参考文献1、《TCP/IP 详解》 (美)W.Richard Stevens 著 范建华 胥光辉 张涛 等译。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.