zoukankan      html  css  js  c++  java
  • TCP/IP详解--TCP网络传输数据包1460MSS和1448负载

      当我们进行技术研讨会时,参与者的一个常见问题与路由器接口上的最大传输单元 (MTU) 大小操作及其与 TCP 最大段大小 (MSS) 的关系有关。我将尝试从网络工程师的角度详细讨论这个问题。

    最大传输单元 (MTU) 是一种协议在一个实例中可以传输的最大数据长度。以以太网接口为例,以太网接口的MTU大小默认为1500字节,不包括以太网帧头和帧尾。这意味着接口不能携带任何大于 1500 字节的帧。如果我们查看帧内部,我们有一个 20 字节的 IP 标头 + 20 字节的 TCP 标头,剩下 1460 字节的有效载荷可以在一帧中传输。这就是我们所说的 TCP MSS。下图形象化了这个概念:

     

    在正常传输情况下,如果没有在传输路由器上进行额外的封装(即 IPsec、MPLS 等),源设备可以使用 1460 字节的最大有效载荷长度,而没有任何潜在的数据包分片风险/降低。这是在源主机和目标主机之间的 TCP 三向握手阶段协商的。

    现在在一个可能的情况下,传输中的路由器正在执行额外的封装,即 MPLS 标签交换,这将添加一个额外的标签头,如下所示:

    tcp-mss-mpls

    这最终会增加退出中转路由器的帧的大小(在上述情况下为 1508 字节。)它还会为 IPv4 隧道中的 IPSec 和 IPv6 等创建类似的问题。

    接口的最大 MTU 将取决于硬件平台,但 IEEE 802.3 标准要求最小 MTU 为 1500 字节。此外,如果您注意到路由器上的以下 CLI,则最大 IP MTU 的上限为 1500 字节的以太网 MTU。

    接口-mtu

    问题是我们不能增加路由器以太网接口上的 IP MTU 大小,因为 MPLS 标签封装帧大小可能会超过最大 MTU。如果源设备创建一个完整大小的数据包,其 TCP MSS 为 1460 字节,则此传输路由器很可能会丢弃/分段数据包。这对我们的网络性能不利。

    解决这个问题的最佳方法是什么?

    将接口上的 IP MTU 缩小到 1448 字节将为 MPLS 标签标头上的 12 个额外字节创造空间 [如果您考虑最多 3 个 MPLS 标签 LDP + VPN + TE] 加上一个 20 字节 TCP + 20 字节 IP 标头内的1500 字节以太网 MTU。

    请记住,当我们缩小传输路由器上的 IP MTU 时,也会将最大可能的 TCP MSS 大小从源设备缩小到 1448 字节。如果路由器在 TCP 握手期间没有向源和目标发出信号,则最佳 TCP MSS 可能会产生丢弃/分段问题。

    以下是解决此问题的步骤:

    传输流量(通过此路由器的流量):

    Router1(config)#int ethernet 1/0
    Router1(config-if)#ip mtu 1448

    上述命令将接口上的 IP MTU 缩小到 1448 字节,为 MPLS 标签头创建一个 12 字节的空间。

    Router1(config-if)#ip tcp adjust-mss ?
    <500-1460>
    Router1(config-if)#ip tcp adjust-mss 1448

    上述命令将在三向握手期间向源设备和目标设备发送信号以使用 1448 字节的 TCP MSS 大小,以便如果它们创建完整大小的数据包,则路由器上仍然不会有任何丢弃/分段。 

    终止流量(执行 SSH,telnet 到此路由器):

    Router1(config)# ip tcp mss 1448?
    <68-10000> MSS

    我希望这篇博文能帮助您了解如何处理路由器接口上的 IP MTU 和 TCP MSS 大小。

     一般额外扩展有一个 options 扩展字段占12 字节,因此通过数据包我们看到经常是1448 字节

  • 相关阅读:
    QTableWidget的使用和美工总结
    pyqt下QTableWidget使用方法小结(转)
    改变QTableWidget 行高(转)
    Qt中 文件对话框QFileDialog 的使用
    Qt:拖拽图片到QLabel上并显示(转)
    Qt获取组合键(转)
    Qt图片显示效率的比较(转)
    QComboBox用法小列(转)
    TinyXML:一个优秀的C++ XML解析器(转)
    JZOJ 3099. Vigenère密码 NOIP2012
  • 原文地址:https://www.cnblogs.com/zy09/p/14956592.html
Copyright © 2011-2022 走看看