是否可以通过UDP发送非常大的数据?

时间:2015-03-26 07:40:28

标签: sockets networking udp tcp-ip

我想通过UDP发送非常大的数据 我知道我可以通过UDP发送64K(64 * 1024字节),我将拥有UDP协议支持的碎片。
但如果我有超过64K的数据要发送...我怎么发送它?

我知道我可以接受这个大数据=>将它转换为字节数组并将此字节数组分成较小的部分(64K)并将其作为单个包发送...并使用这种方式发送所有包。

但有没有办法在没有自己划分的情况下做到这一点? 是否有可能使用内置(IP层)UDP / TCP碎片或我丢失的东西?

1 个答案:

答案 0 :(得分:6)

  

我知道我可以通过UDP发送64K(64 * 1024字节)

不,你不能。 UDP数据报有效负载的绝对最大大小为65507字节。

普遍接受的实际限制为534字节。

相当不同。

  

我将拥有UDP协议支持的碎片。

UDP协议不支持分段。它受 IP 协议支持。如果你足够幸运,碎片数据报的碎片全部到达,IP将重组它并将其传递给UDP。如果没有,不是。 UDP本身并不参与此过程。

  

但如果我有超过64K的数据要发送......我该如何发送?

一次一件,具有序列编号,基于ACK或NACK的协议,重复拒绝,重新排序,重组,起搏,指数退避,......换句话说,TCP。