我通过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?
答案 0 :(得分:2)
该数据包包括:
总计: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分段数据包。