您如何获得 tcp 套接字的当前 RTT 估计值?

How do you get the current RTT estimation for a tcp socket?

特别是在 C 中,用于 *nix 系统。

您可以为此使用 linux-specific 套接字选项 TCP_INFO(在 linux/tcp.h 中定义)

struct tcp_info ti;
socklen_t tisize = sizeof(ti);
getsockopt(fd, IPPROTO_TCP, TCP_INFO, &ti, &tisize);

现在rtt-estimation在ti.tcpi_rtt(单位是毫秒)。还有几个更有趣的值,看看结构 tcp_info.