c/c++语言开发共享在Linux / Mac / Windows上,是否可以在连接的TCP套接字的用户空间中访问TCP时间戳和/或RTT?

在Linux / Mac / Windows上,是否可以在连接的TCP套接字的用户空间中访问TCP时间戳和/或RTT? 我指的是RFC 1323启用的TCP时间戳和相关的RTT计算。 显然,我可以使用原始套接字,但套接字既不会连接也不能在Windows上发送TCP数据包(我相信XP Update 3之后)。

    在Windows上(EstatsType = TcpConnectionEstatsFineRtt):
    GetPerTcp6ConnectionEStats
    GetPerTcpConnectionEStats

    在Linux上(tcp_info.tcpi_rtt):
    测量TCP拥塞Windows(getsockopt)

    在Mac上(xtcpcb64.t_srtt):
    sysctl TCPCTL_PCBLIST获取xtcpcb64结构

    我想补充更多信息。

    对于iOS / MacOSX,我发现了另一种与Linux tcp_info非常相似的方法。 它是struct tcp_connection_info 。 您可以在iOS / MacOSX xcode sdk的usr/include/netinet/tcp.h中找到它。 您可以将其用作以下内容:

     int length = sizeof(struct tcp_connection_info); getsockopt(socket_fd, IPPROTO_TCP, TCP_CONNECTION_INFO, (void *)info, (socklen_t *)&length); 

    我在iOS 10.2上测试过它。

      以上就是c/c++开发分享在Linux / Mac / Windows上,是否可以在连接的TCP套接字的用户空间中访问TCP时间戳和/或RTT?相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注(计算机技术网)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请点击右边联系管理员删除。

      如若转载,请注明出处:https://www.ctvol.com/c-cdevelopment/519860.html

      (0)
      上一篇 2020年12月5日
      下一篇 2020年12月5日

      精彩推荐