我正在通过环回接口测量 Windows 上 TCP/IP 连接的延迟,并且从发送消息到收到响应的时间大约为 4 毫秒。
对于 RPC 目的,在 TCP/IP 之上有一个TCF层。除了 TCF 帧之外,发送和接收的消息仅包含一个字符作为有效负载。
处理命令的“服务器”是在 C++ 中使用 boost asio 实现的。“客户端”发送命令是一个使用 Python TCF 参考实现的 Python 脚本。
我尝试将套接字选项设置为 TCP_NODELAY 以禁用 Nagle 算法,并尝试了套接字的各种缓冲区大小,但往返时间保持在 4 毫秒左右。我原以为它会低很多。
C++ 端的分析表明它花费了大约 50% 的执行时间等待命令,因此下一步将尝试用 C++ 实现替换 python 脚本,但很高兴知道人们可以期待什么环回接口上的往返时间。
这个 SO,问题:
启用 TCP_NODELAY 的 Linux Loopback performance
是相关的,但并没有完全回答我的问题。