我需要在套接字(AF_INET
,SOCK_RAW
,IPPROTO_TCP
)中设置或获取RTT。
接下来在插座编程中控制此类RTT需要做什么?换句话说,如何找到这样的RTT参数?
答案 0 :(得分:1)
要测量往返时间(RTT),请编写一个简单的客户端 - 服务器应用程序,其中包含一个节点:
clock_gettime()
write()
向其他节点发送消息
read()
clock_gettime()
RTT是两次之间的差异。
答案 1 :(得分:1)
在Linux上,您可以通过getsockopt()
调用TCP_INFO
来获取RTT:
#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);