Dacaramo Asked: 2021-05-28 12:42:00 +0800 CST2021-05-28 12:42:00 +0800 CST 2021-05-28 12:42:00 +0800 CST 为什么 TCP MSS(最大分段大小)为 1460 字节? 772 我想知道为什么 TCP 标头中的 MSS 值为 1460 字节。我知道以太网的 MTU 是 1500 字节,IP 标头是 20 字节,TCP 标头是 20 字节……但是,为什么是 1460 字节?就不能低于或高于吗? networking ip 1 个回答 Voted Best Answer Spiff 2021-05-28T13:45:20+08:002021-05-28T13:45:20+08:00 1460不是最大 MSS。MSS 计算为 MTU 减去 IP 和 TCP 标头大小。在路径 MTU 高于 1500 的网络上(例如:使用非标准 6k 或 9k 巨型以太网帧的数据中心网络),MSS 会更大。在路径 MTU 低于 1500 的网络上(例如:PPPoE,在 DSL 上很常见,对于 1492 的 MTU 有 8 个额外字节的开销),MSS 会更低。MSS 的目的是通过最大化每个数据包中可以发送的数据量来优化性能,从而最大限度地减少协议头的开销和强制性的链路层数据包间间隙。避免发送过大的段也可以避免让路由器产生碎片,这也是一个很好的优化,因为碎片会引入延迟和其他开销。 值 1460 仅在 20 世纪后期才常见,因为以太网很常见,以太网帧具有标准的 1500 字节有效负载容量(即成为 IP MTU),而 IP 和 TCP 标头在当时都是 20 字节长。然而,在 21 世纪之交,网络已经变得足够快,以至于 TCP 需要添加 12 字节 TCP 时间戳选项来防止包装的 TCP 序列号,因此典型的 TCP 标头现在是 32 字节长,导致典型的 1448字节 TCP MSS 在标准 1500 字节 MTU 以太网网络上。因此,在 21 世纪,1448 是比 1460 更常见的 TCP MSS。您从后续评论中链接到的 Cloudflare 图有点误导,因为尽管它 IPv4 的最大数据报大小(它可以填充的最大 MTU)为 2^16 字节(即 64KiB 或 65535 字节)。因此,按照今天的标准,最大 TCP MSS 是 65,483 字节(启用 TCP 时间戳)或 65,495(禁用它们)。 但是,具有以太网标准 1500 字节 MTU 的以太网和类似以太网的网络非常普遍,以至于在公共 Internet 上看到大于 1500 字节的路径 MTU 是很少见的,因此很少看到大于 1448 字节的 TCP MSS。
1460不是最大 MSS。MSS 计算为 MTU 减去 IP 和 TCP 标头大小。在路径 MTU 高于 1500 的网络上(例如:使用非标准 6k 或 9k 巨型以太网帧的数据中心网络),MSS 会更大。在路径 MTU 低于 1500 的网络上(例如:PPPoE,在 DSL 上很常见,对于 1492 的 MTU 有 8 个额外字节的开销),MSS 会更低。MSS 的目的是通过最大化每个数据包中可以发送的数据量来优化性能,从而最大限度地减少协议头的开销和强制性的链路层数据包间间隙。避免发送过大的段也可以避免让路由器产生碎片,这也是一个很好的优化,因为碎片会引入延迟和其他开销。
值 1460 仅在 20 世纪后期才常见,因为以太网很常见,以太网帧具有标准的 1500 字节有效负载容量(即成为 IP MTU),而 IP 和 TCP 标头在当时都是 20 字节长。然而,在 21 世纪之交,网络已经变得足够快,以至于 TCP 需要添加 12 字节 TCP 时间戳选项来防止包装的 TCP 序列号,因此典型的 TCP 标头现在是 32 字节长,导致典型的 1448字节 TCP MSS 在标准 1500 字节 MTU 以太网网络上。因此,在 21 世纪,1448 是比 1460 更常见的 TCP MSS。您从后续评论中链接到的 Cloudflare 图有点误导,因为尽管它
IPv4 的最大数据报大小(它可以填充的最大 MTU)为 2^16 字节(即 64KiB 或 65535 字节)。因此,按照今天的标准,最大 TCP MSS 是 65,483 字节(启用 TCP 时间戳)或 65,495(禁用它们)。
但是,具有以太网标准 1500 字节 MTU 的以太网和类似以太网的网络非常普遍,以至于在公共 Internet 上看到大于 1500 字节的路径 MTU 是很少见的,因此很少看到大于 1448 字节的 TCP MSS。