以太网的传输协议包括tcp/ip 协议(tcp/ip协议中又包括tcp,udp等)。
MTU :最大传输单元;其值越大,传输效率越高,但出错率高。
以太网的最大传输单元为1500byte,其中ip包大小为20byte,udp包头大小为8bye。所以UDP数据报的数据区最大长度为1472字节。
这个1472字节就是我们可以使用的字节数。
当数据大于1472字节时会发生分片重组。发送时分片,接收时重组,如果重组失败,udp就会丢掉整个数据(数据接收失败),tcp则会重发。所以tcp是安全的;
分片方式如下:
假设数据报文为2000字节,再加上20byte的IP包头,总的大小为2020字节。
一次发送的数据的ip净=1500-20=1480;
2020/1480=1.3 所以分两次发送,第一次1500(1480+20) ,第二次560(540+20)
因此,在普通的局域网环境下,需将UDP的数据控制在1472字节以下。
Internet上的标准MTU值为576字节,所以在进行Internet的UDP编程时.
最好将UDP的数据长度控件在548字节(576-8-20)以内。
tcp协议编程时不需要考虑MTU(会丢包重发),udp必须考虑。