来源:自学PHP网 时间:2015-04-17 17:13 作者: 阅读:次
[导读] 路径MTU是当前两个主机之间的路径上任何网络上的最小MTU。路径MTU发现在IP首部继承并设置不要分片(DF)比特,来发现当前路径上的路由器是否需要对正在发送的IP数据报进行分片。如...
路径MTU是当前两个主机之间的路径上任何网络上的最小MTU。路径MTU发现在IP首部继承并设置不要分片(DF)比特, 来发现当前路径上的路由器是否需要对正在发送的IP数据报进行分片。如果一个待转发的IP数据报被设置DF比特,而其长度 又超过了MTU,那么路由器将返回ICMP不可达的差错。 TCP的路径MTU发现按如下方式进行:在连接建立时,TCP使用输出接口或对端声明的MSS中最小的MTU作为起始的报文 段大小。路径MTU发现不允许TCP超过对端声明的MSS。如果对端没有指定一个MSS,则默认为536。 一旦选定了起始的报文段大小,在该连接上的所有被TCP发送的IP数据报都被设置了DF比特。如果某个中间路由器需要 对一个设置了DF标志的数据报进行分片,它就丢弃这个数据报,并产生一个ICMP不能分片差错。 如果收到这个ICMP差错,TCP就减少段大小并进行重传。如果路由器产生的一个较新的该类ICMP差错,则报文段大小被 设置为下一跳的MTU减去IP和TCP的首部长度。如果是一个较旧的该类ICMP差错,则必须尝试下一个可能的最小MTU。当这个 ICMP差错引起的重传发生时,拥塞窗口不需要变化,但要启动慢启动。由于路由可以动态变化,因此在最后一次减少路径MTU 的一段时间以后,可以使用一个较大的值。 在对非本地目的地,默认的MSS通常为536字节,路径MTU发现可以避免在通过MTU小于576的中间链路时进行分片。对于 本地目的主机,也可以避免在中间链路的MTU小于端点网络的情况下进行分片。但为了能使路径MTU更有用和充分利用MTU大于 576的广域网,一个实现必须停止使用为非本地目的的制定的536MTU默认值。MSS的一个较好的选择是输出接口的MTU。 |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com