在Windows上的环回接口上使用tcp/ip的延迟可以预期什么?

Tor*_*eif 3 c++ windows network-programming loopback boost-asio

我正在通过环回接口测量Windows上的TCP/IP连接的延迟,并且从收到的消息发送到响应时获得大约4ms的时间.

出于RPC目的,在TCP/IP之上有一个TCF层.除了TCF成帧之外,发送和接收的消息仅包含单个字符作为有效负载.

处理命令的"服务器"使用boost asio在C++中实现."client"发送命令是一个使用Python TCF参考实现的Python脚本.

我已经尝试将套接字选项设置为TCP_NODELAY以禁用Nagle算法并尝试使用各种缓冲区来实现套接字,但是往返时间仍然保持在4ms左右.我原以为它要低一点.

在C++方面进行分析表明,它花费大约50%的执行时间等待命令,因此下一步将尝试用C++实现替换python脚本,但知道一个人可以期待什么会很好环回接口的往返时间.

这个问题:
启用TCP_NODELAY的Linux Loopback性能 是相关的,但并没有完全回答我的问题.

Rob*_*obᵩ 6

您可以使用延迟建立下限ping localhost.它报告的数字是一个发送的数据包,一个收到.

如果您的TCP消息是在现有连接上发送的,则可能会出现几乎延迟.

如果您的测量时间包括TCP连接设置,则可能会延迟10倍.