Dac*_*amo 2 networking tcp ip mtu
我想知道为什么 TCP 标头中的 MSS 值为 1460 字节。我知道以太网的 MTU 是 1500 字节,IP 报头是 20 字节,TCP 报头是 20 字节......但是,为什么是 1460 字节?不能低于或高于那个吗?
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标准 1500 字节 MTU 以太网网络上的字节 TCP MSS。因此,在 21 世纪,1448 是比 1460 更常见的 TCP MSS。您从您的后续评论中链接到的 Cloudflare 图有点误导,因为尽管它“
IPv4 的最大数据报大小(它可以填充的最大 MTU)是 2^16 字节(即 64KiB 或 65535 字节)。因此,按照今天的标准,最大 TCP MSS 是 65,483 字节(开启 TCP 时间戳),或 65,495 字节(禁用它们)。
但是,具有以太网标准 1500 字节 MTU 的以太网和类似以太网的网络是如此普遍,以至于很少看到跨公共 Internet 的路径 MTU 大于 1500 字节,因此很少看到 TCP MSS 大于 1448 字节。
归档时间: |
|
查看次数: |
601 次 |
最近记录: |