打印输出tcp拥塞窗口

简介: 打印输出tcp拥塞窗口 在内核的函数tcp_getsockopt的代码中,可以看到这个选项TCP_INFO,返回了几乎所有的参数,同时还有其他的许多参数可以得到一些其他的信息。具体每个参数的含义可以参考内核中的注释。

打印输出tcp拥塞窗口

在内核的函数tcp_getsockopt的代码中,可以看到这个选项TCP_INFO,返回了几乎所有的参数,同时还有其他的许多参数可以得到一些其他的信息。具体每个参数的含义可以参考内核中的注释。

示例

#include <string>
#include <string.h>
#include <cstdlib>
#include <ctime>
#include <unistd.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/tcp.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <sys/time.h>
#include <linux/ip.h>

void read_cwnd(int tcp_socket)
{
    struct tcp_info info;
    int length = sizeof(struct tcp_info);
   
    if (getsockopt( tcp_socket, IPPROTO_TCP, TCP_INFO, (void *)&info, (socklen_t *)&length ) == 0 )
    {
       printf("%u %u %u %u %u %u %u %u %u %u %u %u\n",
            info.tcpi_snd_cwnd,
            info.tcpi_snd_ssthresh,
            info.tcpi_rcv_ssthresh,
            info.tcpi_rtt,
            info.tcpi_rttvar,
            info.tcpi_unacked,
            info.tcpi_sacked,
            info.tcpi_lost,
            info.tcpi_retrans,
            info.tcpi_fackets,
            info.tcpi_ca_state,
            info.tcpi_reordering
           );  
   } 
}

int main()
{
    sockaddr_in in;
    memset(&in,'\0',sizeof(in));
    in.sin_family=AF_INET;
    in.sin_port=htons(8888);
    in.sin_addr.s_addr=INADDR_ANY;
   
    int reuse0=1;
    int serv=socket(AF_INET, SOCK_STREAM, 0);
   
    read_cwnd(serv);
    return 1;
}

原文

http://www.cnblogs.com/fll/archive/2009/03/20/1418091.html

目录
相关文章
|
网络协议 Python
Python 技术篇-socket套接字实现两个窗口间消息传递实例演示,TCP实现
Python 技术篇-socket套接字实现两个窗口间消息传递实例演示,TCP实现
283 0
Python 技术篇-socket套接字实现两个窗口间消息传递实例演示,TCP实现
|
缓存 网络协议 网络性能优化
|
网络协议 缓存 网络性能优化
|
网络协议 Linux
TCP窗口调节
TCP的窗口机制是接收段的数据流控Q:有人抱怨说美国和日本之间的一个128ms时延、速率为256 000b/s的链路吞吐量为120 000b/s(利用率47%)而当链路通过卫星时其吞吐量则为33 000 b/s(利用率为13%)。
849 0
|
6月前
|
机器学习/深度学习 人工智能 网络协议
TCP/IP五层(或四层)模型,IP和TCP到底在哪层?
TCP/IP五层(或四层)模型,IP和TCP到底在哪层?
121 4
|
监控 网络协议 网络架构
IP协议【图解TCP/IP(笔记九)】
IP协议【图解TCP/IP(笔记九)】
148 0
|
域名解析 网络协议
IP协议, TCP协议 和DNS 服务分别是干什么的?
大家好,我是阿萨。昨天讲解了网络四层协议[TCP/IP协议族分为哪4层?]今天我们学习下IP 协议, TCP 协议和DNS 协议分别是干什么的。
297 0
IP协议, TCP协议 和DNS 服务分别是干什么的?
|
网络协议
ACK的累加规则-wireshark抓包分析-不包含tcp头部、ip头部、数据链路层头部等。
ACK的累加规则-wireshark抓包分析-不包含tcp头部、ip头部、数据链路层头部等。
ACK的累加规则-wireshark抓包分析-不包含tcp头部、ip头部、数据链路层头部等。
|
网络协议 网络架构
六、TCP/IP模型 和 5层参考模型
六、TCP/IP模型 和 5层参考模型
六、TCP/IP模型 和 5层参考模型
|
网络协议
TCP/IP协议族有哪些?
大家好,我是阿萨。昨天我们学习了[URI 和URL 的区别是什么?]了解了URI 和URL的区别。 学习HTTP, 绕不开TCP/IP,那么TCP/IP 协议族分为哪4层?
318 0
TCP/IP协议族有哪些?