首先是理论情况下,UDP最大包长度是2^16-1个字节,再减去UDP包头的8个字节,也就是65507个字节。但我们知道,UDP是一种传输层协议,它需要受到下层网络层和数据链路层的制约。 位于数据链路层的以太网数据帧中的数据区最大传输单元MTU为1500字节,这1500个字节就作为网络层IP数据报的长度限制,又因为IP数据报的首部为20字节,所以IP数据报中数据区最大为1480个字节,这1480字节就是来存放UDP传来的数据报的,又因为UDP数据报首部为8字节,所以UDP数据报的数据区最大长度为1472个字节,这个就是我们可以使用的字节数。 当然上面说的是处于局域网中,MTU一般是1500字节,而在Internet编程时,MTU的大小可能不一样,一般的标准是576字节,换算下来,UDP数据控制在548字节以内为好。
