【问题标题】:Different performance between sendto and recvfromsendto 和 recvfrom 的性能不同
【发布时间】:2013-07-29 16:16:48
【问题描述】:

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

【问题讨论】:

    标签: c sockets udp sendto elapsedtime


    【解决方案1】:

    发送时间约为 4-5 毫秒(视情况而定,但此值与理想值 3 毫秒相当)

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

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

    【讨论】:

    • 抱歉发送时间估计错误。那么,如果4-5ms的经过时间实际上就是将数据写入本地缓冲区的时间,那么即使没有真正发送所有数据,sendto也会返回?
    猜你喜欢
    • 1970-01-01
    • 2015-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-07
    • 1970-01-01
    • 1970-01-01
    • 2021-10-10
    相关资源
    最近更新 更多