- 论坛徽章:
- 0
|
tcp/ip 详解卷1第11章第10节:
理论上,I P数据报的最大长度是6 5 5 3 5字节,这是由I P首部(图3 - 1)1 6比特总长度字段所
限制的。去除2 0字节的I P首部和8个字节的U D P首部, U D P数据报中用户数据的最长长度为
6 5 5 0 7字节。但是,大多数实现所提供的长度比这个最大值小。
我们将遇到两个限制因素。第一,应用程序可能会受到其程序接口的限制。socket API提
供了一个可供应用程序调用的函数,以设置接收和发送缓存的长度。对于UDP socket,这个
长度与应用程序可以读写的最大U D P数据报的长度直接相关。现在的大部分系统都默认提供
了可读写大于8 1 9 2字节的U D P数据报(使用这个默认值是因为8 1 9 2是N F S读写用户数据数的
默认值)。
第二个限制来自于T C P / I P的内核实现。可能存在一些实现特性(或差错),使I P数据报长
度小于6 5 5 3 5字节。
另外, 还有一个限制是书中没有提到的,就是如果发送和接收端处在不同的网络中,还会受到路由器(防火墙)的限制.例如UDP负载超出MTU大小,而需要分片发送,则可能会被拦截掉分片的ip包(为了更安全,更和谐).从而在接收端无法还原udp包,而造成该包的丢弃. |
|