UDP发送信息时有两种情况:1K以内和大于1K。当数据量大于1K时,UDP协议会自己把数据分包发送。这里又有一个优化在里面:如果小于1K即一个包,不管ARP是否解析出MAC地址都会直接发送;当大于1K即两个包以上,为了减少网络资源的浪费,在ARP解析到真实MAC地址之前不会自动发送,直到sendto函数超时。
在我的程序中的数据块是1400B,所以会在发送时花很长时间,而我做实验的是1000B,才造成错误不能重现。
在我的程序中的数据块是1400B,所以会在发送时花很长时间,而我做实验的是1000B,才造成错误不能重现。
本文探讨了UDP协议在发送不同大小数据包时的行为特点,特别是对于大于1K的数据如何进行分包处理,并分析了这一过程对网络资源的影响。

1万+

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



