UDP有效载荷长度和分组传输

时间:2015-04-30 17:44:06

标签: networking header udp packet payload

我通过UDP over IPv4传输数据1245 MB。 为了计算从A到B的预期分组传输数,然后B中继到C,如果以320字节大小的块(即有效载荷= 320字节)发送数据,并且报头是20字节,我们从320减去20或加入?

For instance, 
1245MB = 1305477120 bytes
Total UDP Payload = 320 - 20 or 320 + 20?

2 个答案:

答案 0 :(得分:2)

该数据包包括:

  • IP标头(20个字节)
  • UDP标头(8字节)
  • 您的有效负载(320字节)。

总计:348字节。

答案 1 :(得分:1)

要计算数据包的数量,您不需要考虑传输或网络层标头的大小。您指定的有效负载大小为320字节,这完全在没有分段的UDP有效负载的最大大小范围内。

每次调用send()或sendto()时,都会创建一个数据报(数据包),因此数学运算只是将总大小除以320字节的块:

1305477120/320 = 4079616包

作为一个侧面点,如果您要使UDP有效负载更大,那将减少数据包的总数。在很多网络上,MTU是1500字节,所以你可以发送:

1500字节 - IP标头(20字节) - UDP标头(8)字节=有效负载的1472字节

作为第二个方面,如果您的UDP有效负载太大,即有效负载+ IP / UDP报头超过MTU,那么您对send()的单次调用将导致多个IP分段数据包。