📜  MTU 和 MSS 如何影响网络?

📅  最后修改于: 2022-05-13 01:57:02.323000             🧑  作者: Mango

MTU 和 MSS 如何影响网络?

TCP是网络协议族的重要协议之一。 TCP是一种面向连接的可靠数据传输协议。 TCP 使用 MTU(最大传输单元)来标识任何数据包的最大大小,并使用 MSS(最大段大小)来指定可以通过网络发送的数据包的最大大小。在本文中,我们将讨论 MTU 和 MSS 的大小对网络的影响。

最大传输单位:

最大传输单元 (MTU) 是计算机网络中的一种度量,它表示网络设备将接受的最大数据包。大于 MTU 的数据包会被分割成更小的部分以便通过。这个过程称为分片,由网络层完成。如果不允许分段,路由器将丢弃任何超过 MTU 的数据包。

网络层的限制直接来自数据链路层。帧用于数据链路层,每个帧都有一个最大尺寸。

例如,以太网标准规定最大帧大小为 1518 字节。以太网报头长 18 个字节,为数据包提供 1500 个字节的工作空间。结果,数据包的 MTU 为 1500 字节。

最大传输单位

最大传输单位

网络的 MTU 大小会对性能产生重大影响。

更大的 MTU 大小对网络的影响:

好处:

  • 更大的 MTU 可以将更多数据放入更少的数据包中,从而实现更快、更高效的传输。
  • 较低的开销与较大的 MTU 相关联。
  • 对于相同数量的数据,更大的 MTU 需要处理更少的数据包。
  • 较大的数据包会降低操作系统必须执行的处理量。

缺点:

  • 大数据包在慢速链路上比小数据包占用更多带宽,导致后续数据包延迟时间更长并增加网络延迟。
  • 增加 MTU 可能需要昂贵的硬件更改。
  • 如果工作负载只发送小消息,则增加的 MTU 大小将无济于事。

较小的 MTU 大小对网络的影响:

好处:

  • 当 MTU 较小时,网络延迟会减少。
  • 较小的 MTU 大小改进了以太网的 CRC-32 算法,该算法用于数据的错误检测和纠正。

缺点:

  • 更多的带宽被浪费在标头上。
  • 操作系统的工作量增加。

最大段大小:

MSS(最大段大小)指定可以通过网络发送的数据包的最大大小。它是 TCP 标头的选项字段中的一个参数。几个标头附加到数据包中,每个标头都包含有关数据包源和目标的信息。数据包的非标头部分,通常称为有效载荷,由 MSS 测量。

注意:该值是一个段可以存储的最大数据量,不包括 TCP 标头。因此,如果 MSS 为 100,则实际的最大段大小可能是 120(对于标准 TCP 标头)甚至更大。

MSS 的值来源于 MTU 的值。考虑以下场景:您有 2460 字节的数据要发送。如果MTU为1500,IP头+TCP头为40字节,第一个IP包只能发送1460字节的数据。在第二个 IP 数据包中,将传递剩余的 1000 个字节。因此,如果 MSS = 1000,则 MTU 必须至少为 1040。

最大段大小

最大段大小

MSS 对网络的影响:

好处:

  • 可以通过减小最大 TCP 数据包大小来减少网络延迟。
  • MSS 通常在 TCP 三向握手期间确定。 MSS 不是为每个数据包协商的,而是为整个 TCP 会话协商的。
  • 操作系统可用于设置或更改最大大小。

缺点:

  • MSS 通常在 TCP 三向握手期间确定。如果 MSS 设置得太低,网络流量流会被分解成大量的小数据包,这会对性能产生负面影响。
  • 超过网络上最大 MSS 的数据包将被简单地丢弃。