【问题标题】:How do you get the current RTT estimation for a tcp socket?您如何获得 tcp 套接字的当前 RTT 估计值?
【发布时间】:2016-05-03 06:16:43
【问题描述】:

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

【问题讨论】:

  • 如果您询问如何获取 TCP 堆栈为给定套接字计算的 RTT,您无法做到。当然你可以自己测量。

标签: c linux tcp posix


【解决方案1】:

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

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

现在 rtt 估计在 ti.tcpi_rtt (单位是毫秒)。还有几个比较有趣的值,看结构tcp_info就行了。

【讨论】:

  • 谢谢,这看起来很完美,有没有可能在 Windows 上运行?我确实找到了另一种方法,但如果我可以一起忽略操作系统就好了。 msdn.microsoft.com/en-us/library/bb485738(VS.85).aspx
  • @Keynan 我认为这是非常特定于 linux 的。事实上,如果在任何标准(如 posix 或类似标准)中都能找到这样的功能,我会感到非常惊讶,因为它太专业了。
  • 有谁可能知道我在哪里可以找到所有这些记录在案的指标。我的/usr/include/linux/tcp.h在解释上不是很慷慨。
猜你喜欢
  • 2021-06-27
  • 2011-10-30
  • 1970-01-01
  • 1970-01-01
  • 2010-09-22
  • 1970-01-01
  • 2014-09-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多