c-sendto和recvfrom之间的性能不同



我注意到sendto和recvfrom(UDP)之间存在性能差异。我使用WiFi从服务器向客户端发送大约100K字节(估计双向带宽约为30Mb/s),发送时间约为4-5ms(具体取决于情况,但这个值与理想值3ms相当)。在客户端上,接收时间要高出10-15倍,比如50-60ms。我希望这两个经过的时间非常相似。知道吗?

发送时间约为4-5ms(取决于情况,但该值与理想值3ms相当)

30Mb/s(其中b表示)大约为(考虑报头等)3 MB/s(其中b表示bytes。)。传输100kBytes大约需要30毫秒。

sendto在将所有数据写入发送机器的网络堆栈的本地缓冲区时立即返回。recv显然必须等待数据的传输,包括延迟和所有协议层所需的东西。

最新更新