第十一章 UDP 用户数据包协议

11.6   ICMP不可达差错(需要分片)

发生ICMP不可达差错的另一种情况是,当路由器收到一份需要分片的数据报,而在 IP 部又设置了不分片( DF)的标志比特。如果某个程序需要判断到达目的端的路途中最小 MTU 是多少—称作路径 MTU发现机制(  2.9节),那么这个差错就可以被该程序使用。

11.10  最大UDP数据报长度

理论上, IP数据报的最大长度是 65535字节,这是由 IP首部(图 3-116比特总长度字段所 限制的。去除 20字节的 IP首部和 8个字节的 UDP首部, UDP数据报中用户数据的最长长度为 65507字节。但是,大多数实现所提供的长度比这个最大值小。

我们将遇到两个限制因素。第一,应用程序可能会受到其程序接口的限制。 socket API 供了一个可供应用程序调用的函数,以设置接收和发送缓存的长度。对于 UDP socket ,这个 长度与应用程序可以读写的最大 UDP数据报的长度直接相关。现在的大部分系统都默认提供 了可读写大于 8192字节的 UDP数据报(使用这个默认值是因为 8192NFS读写用户数据数的 默认值

第二个限制来自于 TCP/IP的内核实现。可能存在一些实现特性(或差错使IP数据报长度小于65535字节。

11.11  ICMP源站抑制差错

我们同样也可以使用 UDP产生ICMP“源站抑制 (source   quench) ”差错。当一个系统(路 由器或主机)接收数据报的速度比其处理速度快时,可能产生这个差错。注意限定词“可能”。 即使一个系统已经没有缓存并丢弃数据报,也不要求它一定要发送源站抑制报文。

你可能感兴趣的:(第十一章 UDP 用户数据包协议)