本文介绍了如何在linux socket编程中设置/获取socket RTT?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我需要在 socket(AF_INET
, SOCK_RAW
, IPPROTO_TCP
) 方式中设置或获取 RTT.
I need to set or get RTT in socket(AF_INET
, SOCK_RAW
, IPPROTO_TCP
) way.
接下来我需要做什么来控制套接字编程中的这种RTT?换句话说,如何找到这样的RTT参数?
What do I need to do next to control such RTT in socket programming? In other words, how to find such RTT parameter?
推荐答案
在 Linux 上,您可以通过使用 TCP_INFO
调用 getsockopt()
来获取 RTT:
On Linux you can get the RTT by calling getsockopt()
with TCP_INFO
:
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
/* ... */
tcp_info info;
socklen_t tcp_info_length = sizeof info;
ret = getsockopt(sock, SOL_TCP, TCP_INFO, &info, &tcp_info_length);
printf("rtt: %us microseconds\n", info.tcpi_rtt);
这篇关于如何在linux socket编程中设置/获取socket RTT?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!