我想通过UDP发送非常大的数据
我知道我可以通过UDP发送64K(64 * 1024字节),我将拥有UDP协议支持的碎片。
但如果我有超过64K的数据要发送...我怎么发送它?
我知道我可以接受这个大数据=>将它转换为字节数组并将此字节数组分成较小的部分(64K)并将其作为单个包发送...并使用这种方式发送所有包。
但有没有办法在没有自己划分的情况下做到这一点? 是否有可能使用内置(IP层)UDP / TCP碎片或我丢失的东西?
答案 0 :(得分:6)
我知道我可以通过UDP发送64K(64 * 1024字节)
不,你不能。 UDP数据报有效负载的绝对最大大小为65507字节。
普遍接受的实际限制为534字节。
相当不同。
我将拥有UDP协议支持的碎片。
UDP协议不支持分段。它受 IP 协议支持。如果你足够幸运,碎片数据报的碎片全部到达,IP将重组它并将其传递给UDP。如果没有,不是。 UDP本身并不参与此过程。
但如果我有超过64K的数据要发送......我该如何发送?
一次一件,具有序列编号,基于ACK或NACK的协议,重复拒绝,重新排序,重组,起搏,指数退避,......换句话说,TCP。