TCP和UDP的MTU路径发现.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
小宝系列教程之TCP 和UDP 的MTU 路径发现 TCP UDP 的MTU 路径发现 路径MTU的概念:这是当前在两个主机之间的路径上任何网络设备上的最 MTU。路径MTU发现在IP首部中继承并设置 “不要分片(DF)”比特,来发现当前 路径上的路由器是否需要对正在发送的IP数据报进行分片。 物理网络层一般要限制每次发送数据帧的最大长度。任何时候IP层接收到一 份要发送的IP数据报时,它要判断向本地哪个接口发送数据(选路),并查 询 接口获得其MTU。IP把MTU与数据报长度进行比较,如果需要则进行分片。分 片可以发生在原始发送端主机上,也可以发生在中间路由器上。把一份IP数据报 分片以后,只有到达目的地才进行重新组装(这里的重新组装与其他网络协议不 同,它们要求在下一站就进行进行重新组装,而不是在最终的目的地)。重新组 装由目的端的IP层来完成,其目的是使分片和重新组装过程对运输层(TCP和UDP) 是透明的,除了某些可能的越级操作外。已经分片过的数据报有可能会再次进行 分片(可能不止一次)。 IP首部中包含的数据为分片和重新组装提供了足够的信息。 尽管IP分片过程看起来是透明的,但有一点让人不想使用它:即使只丢失一片数 据也要重传整个数据报。为什么会发生这种情况呢?因为IP层本身没有 时重传 的机制——由更高层来负责 时和重传 (TCP有 时和重传机制,但UDP没有。一 些UDP应用程序本身也执行 时和重传)。当来自TCP报文段的某一片丢失后,TCP 在 时后会重发整个TCP报文段, 报文段对应于一份IP数据报。没有办法只重 传数据报中的一个数据报片。事实上,如果对数据报分片的是中间路由器,而不 是起始端系统,那么起始端系统就无法知道数据报是如何被分片的。就这个原因, 经常要避免分片。 ICMP不可达差错信息(需要分片)type=3,code=4: 先了解一下路径发现要用到ICMP 中的错误信息 (type=3,code=4) ICMP 域: 类型:3 代码: 0=网络不可达; 1=主机不可达; 2=协议不可用; 3=端口不可达; - 1 - 小宝系列教程之TCP 和UDP 的MTU 路径发现 4=需要分段和DF 设置; 5=源路由失败; 发生ICMP不可达差错的另一种情况是,当路由器收到一份需要分片的数据报,而 在IP首部又设置了不分片(DF)的标志比特。 上图是ICMP 不可达信息的包头格式 如果路由器没有提供这种新的ICMP差错报文格式,那么下一站的MTU就设为 0。新版的路由器需求RFC[Almquist1993]声明,在发生这种ICMP不可达差错时, 路由器必须生成这种新格式的报文,现在的路由器一般都支持新报文,也就是说 返回的时候能返回下一跳网络接口的MTU。 TCP 的路径MTU 发现: TCP 的路径MTU 发现按如下方式进行:和对端tcp 建立连接的程序时候,双 方要在第一个syn 中通报自己接口的mtu,(在ip 包tcp 部分的optional 中) 然后采用双方中最小的那个mtu 传输数据,如果一方没有通报mtu,协商不 成功的时候,就用默认的mtu576 来传输数据。一旦选定了起始的报文段大小, 在 连接上的所有被TCP 发送的IP 数据报都将被设置DF 比特。如果某个中间路 由器的接口不能发送1500 的ip 包的时候则需要对一个设置了DF 标志的数据报 进行分片,它就丢弃这个数据报,并产生一个ICMP 的“不能分片”差错。 如果发送端收到这个ICMP 差错,TCP 就减少段大小并进行重传: 如果路由器产生的是一个较新的 类 ICMP 差错,则报文段大 被设置为下一跳 的MTU 减去IP 和TCP 的首部长度。 如果是一个较旧的 类ICMP 差错,则必须尝试下一个可能的最 MTU。 由于路由可以动态变化,因此在最后一次减少路径MTU 的一段时间以后,可以尝 试使用一个较大的值 (直到等于对端声明的MSS 或用新版icmp 输出接口MTU 的 最 值)。RFC1191 推荐这个时间间隔为10 分钟 我们来看一个例子,这是摘自TCP/IP 详解中的一个例子,是用tcpdump 抓的包, 可能看的时候有点难度,不过没关系,我详

文档评论(0)

cjp823 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:7060131150000004

1亿VIP精品文档

相关文档