互联网

最大传输单元 (MTU)

最大传输单元 (MTU)

在计算机网络中,术语最大传输单元 (MTU) 是指通信协议的给定层可以向前传递的最大 PDU 的大小(以字节为单位)。 MTU 参数通常与通信接口(NIC、串行端口等)相关联。 MTU 可以由标准固定(如以太网的情况)或在连接时决定(如通常的点对点串行链路的情况)。 更高的 MTU 带来更高的效率,因为每个数据包携带更多的用户数据,而协议开销(例如标头或底层每个数据包的延迟)保持固定,更高的效率意味着批量协议吞吐量略有提高。 但是,大数据包会占用慢速链路一段时间,从而导致更大的数据包延迟并增加延迟和最小延迟。 例如,一个 1500 字节的数据包,是以太网在网络层(以及大部分互联网)允许的最大数据包,将占用 14.4k 调制解调器大约一秒钟。

路径 MTU 发现
Internet 协议将 Internet 传输路径的“路径 MTU”定义为源和目的地之间“路径”的任何 IP 跃点的最小 MTU。 换句话说,路径 MTU 是在不遭受碎片的情况下遍历该路径的最大数据包大小。

RFC 1191 描述了“路径 MTU 发现”,这是一种用于确定两个 IP 主机之间的路径 MTU 的技术。 它的工作原理是在传出数据包的 IP 标头中设置 DF(不分段)选项。 MTU 小于数据包的路径上的任何设备都将丢弃此类数据包并发送回包含其 MTU 的 ICMP“目标不可达(数据报太大)”消息,从而允许源主机适当地减少其假定的路径 MTU。 重复该过程,直到 MTU 小到足以遍历整个路径而不会出现碎片。

您可能还有兴趣查看:  2 线路由器配置

不幸的是,越来越多的网络会丢弃 ICMP 流量(例如,为了防止拒绝服务攻击),这会阻止路径 MTU 发现工作。 在连接适用于少量数据但一旦主机一次发送大量数据就挂起的情况下,人们通常会检测到这种阻塞。 例如,使用 IRC,连接的客户端可能会看到 ping 消息,但之后没有响应。 这是因为大量欢迎消息是以比实际 MTU 大的数据包发送的。 此外,在 IP 网络中,从源地址到目标地址的路径通常会动态修改,以响应各种事件(负载平衡、拥塞、输出等)——这可能导致路径 MTU 发生变化(有时重复),这可能会在主机找到新的安全 MTU 之前引入进一步的数据包丢失。

大多数以太网 LAN 使用 1500 字节的 MTU(现代 LAN 可以使用巨型帧,允许 MTU 高达 9000 字节),但是像 PPPoE 这样的边界协议会减少这种情况。 这会导致路径 MTU 发现生效,可能导致无法访问配置错误的防火墙后面的某些站点。 一个人可以解决这个问题,这取决于一个人控制的网络的哪一部分; 例如,您可以更改在防火墙上建立 TCP 连接的初始数据包中的 MSS(最大段大小)。

自从引入了“下一代 TCP/IP 堆栈”的 Windows Vista 推出以来,这个问题就更加频繁地浮出水面。 这实现了“接收窗口自动调整,通过测量带宽延迟乘积和应用程序检索率不断确定最佳接收窗口大小,并根据不断变化的网络条件调整最大接收窗口大小。”[2] 这已被视为与似乎可与其他操作系统一起使用的旧路由器和防火墙失败。 它最常出现在 ADSL 路由器中,通常可以通过固件更新来纠正。

您可能还有兴趣查看:  在隔离医院服用的药物

ATM 骨干网,MTU 调优示例
有时,从效率的角度来看,最好在软件中人为地声明减少的 MTU 低于支持的真正最大可能长度。 其中一个例子是 IP 流量通过 ATM(异步传输模式)网络传输的情况。 一些提供商,尤其是那些有电话背景的提供商,在其内部骨干网上使用 ATM。

当数据包长度是 48 字节的倍数时,可以以最佳效率使用 ATM。 这是因为 ATM 以固定长度数据包(称为“信元”)流的形式发送,每个信元可以携带 48 字节的用户数据的有效载荷和 5 字节的开销,每个信元的总成本为 53 字节。 所以传输的数据长度的总长度为53 * ncells字节,其中ncells = = INT((payload_length+47)/48)的所需信元数。 所以在最坏的情况下,总长度 = (48*n+1) 字节,需要一个额外的信元来传输有效载荷的最后一个字节,最后一个信元需要额外的 53 个传输字节,其中 47 个是填充字节。 出于这个原因,通过使 ATM AAL5 总有效载荷长度尽可能成为 48 字节的倍数,人为地在软件中声明减少的 MTU 可以最大限度地提高 ATM 层的协议效率。

例如,31 个完全填充的 ATM 信元承载 31*48=1488 字节的有效载荷。 取这个数字 1488 并从中减去所有相关更高协议贡献的任何开销,我们可以获得人为减少的最佳 MTU 的建议值。 在用户通常发送 1500 字节数据包的情况下,在 1489 和 1536 字节之间发送需要额外的 53 字节传输固定成本,以一个额外的 ATM 信元的形式。

您可能还有兴趣查看:  如何在 zxhn h108n 中添加 MTU

对于使用 PPPoA/VC-MUX 的 IP over DSL 连接的示例,再次选择像以前一样填充 31 个 ATM 信元,我们获得了理想的优化减少的 MTU 数字 1478 = 31*48-10 考虑到 10 个字节的开销,包括2 字节的点对点协议开销和 5 字节的 AAL8 开销。 这给出了从传递到 PPPoA 的 31 字节数据包通过 ATM 传输的 53*1643=1478 字节的总成本。 在使用 PPPoA 通过 ADSL 发送 IP 的情况下,1478 的数字将是包括 IP 报头在内的 IP 数据包的总长度。 因此,在此示例中,与发送总长度为 1478 的 IP 数据包相比,保持自强减少的 MTU 为 1500,在 ATM 层每个数据包节省 53 个字节,代价是 IP 数据包的长度减少 22 个字节。

根据 RFC 1492,PPPoE/DSL 连接的最大 MTU 为 2516:6 字节是 PPPoE 标头,为 1488 字节的有效载荷或 31 个完整的 ATM 单元留出足够的空间。

最后: MTU的标准值为1492.... 如果出现浏览问题或 MSN 连接问题,应将其降低到值 1422 和 1420。

文献参考: 维基百科上的数据

诚挚的问候

السابق
Cat 5、Cat 5e、Cat 6 网线的传输速度
التالي
如何在 MAC、Linux、Win XP&Vista&7&8 上刷新 DNS

一则评论

添加评论

  1. 兰大师 他说:

    您好,感谢您的有用文章

发表评论