6LoWPAN:无线嵌入式互联网的技术剖析
1. IP 数据包大小与 MTU 问题
IP 数据包大小各异。最小的 IPv6 数据包仅含 40 字节的 IP 头,总大小 40 字节,有效负载长度为 0 字节。最大的 IPv6 数据包可通过巨型数据包选项定义,允许高达 4,294,967,295 字节的有效负载;若不使用该选项,IPv6 数据包的有效负载最多可达 65,535 字节,总大小可达 65,575 字节。然而,很少有子网能高效传输如此大的数据包,大多数子网定义的最大传输单元(MTU)远低于此,例如标准以太网的 MTU 为 1500 字节。
在单接口主机上,通常可得知该接口的 MTU,应用程序能据此调整发送数据包的大小。但在多接口情况下,选择变得模糊。而且,MTU 可能在数据包传输过程中逐跳变化,这让应用程序难以选择能在所有链路传输的数据包大小。
IPv4 对链路 MTU 的要求宽松,IPv4 子网至少能传输 68 字节的数据包。但多数链路能处理更大的数据包,因此限制应用程序发送 68 字节或更小的数据包并不合理。所以,IPv4 要求每个节点(源主机或路由器)能将数据包分割成多个较小的片段,每个最终目的地能重新组装这些片段。为区分完整数据包和其片段,完整数据包常被称为数据报。
IPv4 的最小 MTU 常与更大的最小重组缓冲区大小混淆,每个 IPv4 目的地必须能接收 576 字节的数据报,可完整接收或接收片段后重组。一些协议如原始 DNS 限制自身不发送更大的数据报。TCP 可在连接建立时通过最大段大小(MSS)选项协商更大的数据报大小,此选项的实现对提升 TCP 性能至关重要。
使用更大的数据报大小只有在数据报传输过程中不被分段时才
超级会员免费看
订阅专栏 解锁全文
26

被折叠的 条评论
为什么被折叠?



