本文介绍了如何在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?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-15 00:14