tcp_info是一个结构体,定义在<netinet/tcp.h>头文件中,用于获取TCP相关信息。它的定义如下:

struct tcp_info { __u8 tcpi_state; /* TCP状态 / __u8 tcpi_ca_state; / 拥塞控制状态 / __u8 tcpi_retransmits; / 重传次数 / __u8 tcpi_probes; / 探测次数 / __u8 tcpi_backoff; / 退避指数 / __u8 tcpi_options; / TCP选项 / __u8 tcpi_snd_wscale : 4, / 发送窗口缩放因子 / tcpi_rcv_wscale : 4; / 接收窗口缩放因子 */

__u32   tcpi_rto;            /* 超时重传时间 */
__u32   tcpi_ato;            /* 延迟确认时间 */
__u32   tcpi_snd_mss;        /* 最大发送段大小 */
__u32   tcpi_rcv_mss;        /* 最大接收段大小 */

__u32   tcpi_unacked;        /* 未确认段数 */
__u32   tcpi_sacked;         /* SACK段数 */
__u32   tcpi_lost;           /* 丢失段数 */
__u32   tcpi_retrans;        /* 重传段数 */

__u32   tcpi_fackets;        /* FACK段数 */
/* Times. */
__u32   tcpi_last_data_sent;    /* 最后一个数据包的发送时间 */
__u32   tcpi_last_ack_sent;     /* 最后一个ACK包的发送时间 */
__u32   tcpi_last_data_recv;    /* 最后一个数据包的接收时间 */
__u32   tcpi_last_ack_recv;     /* 最后一个ACK包的接收时间 */

/* Metrics. */
__u32   tcpi_pmtu;           /* Path MTU Discovery的路径MTU */
__u32   tcpi_rcv_ssthresh;   /* 接收方拥塞窗口阈值 */
__u32   tcpi_rtt;            /* 平滑往返时间 */
__u32   tcpi_rttvar;         /* 往返时间变化 */
__u32   tcpi_snd_ssthresh;   /* 发送方拥塞窗口阈值 */
__u32   tcpi_snd_cwnd;       /* 发送方拥塞窗口 */
__u32   tcpi_advmss;         /* 允许的最大段大小 */
__u32   tcpi_reordering;     /* 段重排序个数 */

__u32   tcpi_rcv_rtt;        /* 接收方平滑往返时间 */
__u32   tcpi_rcv_space;      /* 当前接收缓冲区大小 */
__u32   tcpi_total_retrans;  /* 总重传个数 */

__u64   tcpi_pacing_rate;    /* pacing速率 */
__u64   tcpi_max_pacing_rate;    /* 最大pacing速率 */
__u64   tcpi_bytes_acked;    /* 已确认字节数 */
__u64   tcpi_bytes_received; /* 已接收字节数 */
__u32   tcpi_segs_out;       /* 发送的段数 */
__u32   tcpi_segs_in;        /* 接收的段数 */

};

其中,tcpi_state表示TCP的状态,tcpi_ca_state表示拥塞控制状态,tcpi_retransmits表示重传次数,tcpi_probes表示探测次数,tcpi_backoff表示退避指数,tcpi_options表示TCP选项,tcpi_snd_wscale表示发送窗口缩放因子,tcpi_rcv_wscale表示接收窗口缩放因子等等。

这些字段包含了TCP连接的状态信息、拥塞控制相关的信息、重传次数、延迟确认时间、最大发送/接收段大小、未确认段数、丢失段数、重传段数、平滑往返时间等等。

使用该结构体,可以通过调用getsockopt函数并传入TCP_INFO参数来获取TCP连接的详细信息

tcp_info结构说明

原文地址: https://www.cveoy.top/t/topic/isUy 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录