A TCP monitoring /proc/net file

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

For a graduate network class at UCSD I implemented some TCP performance
monitors in the Linux TCP stack (ipv4). I have added a file to the proc
filesystem (/proc/net/tcphealth) that monitors the "health" of all tcp
connections on a machine. The tcphealth file tracks smoothed
Round-Trip-Times, duplicate acks, and duplicate incoming packets for
each established tcp connection.

I believe that there is lots of good monitoring information that can be
gleaned from this file. It is designed to help answer the question: "Why
is my network connection so slow?", and work on all TCP connections
without the cooperation of the remote server.

I also wrote a module for the sweet GKrellM monitor that shows sender
and receiver retransmissions (receiver side metric is 3 consecutive
dupAcks - a retransmission request), and average SRTT over all open
connections.

In the code I have taken care not to disrupt the fast path in
tcp_rcv_established(), and generally have tried to step lightly. I have
patched kernel versions 2.2.14 and 2.2.16, and tested it on an ix86, a
SUN, and a
PPC. If there is any interest, I will submit the patch to the
appropriate maintainer.

Sincerely,
Federico David Sacerdoti

PS. This is my first time communicating with the kernel developers so
please forgive any of my breaches of protocol. My team wrote a short
paper on these Network Health Monitors and ran some interesting
experiments using them. If interested the link is:

http://www-cse.ucsd.edu/classes/wi01/cse222/projects/reports/net-health-14.pdf


A Sample Output (fairly health connections - 11Mbps wireless eth):
 
[fds@sandpiper fds]$ cat /proc/net/tcphealth
TCP Health Monitoring
 -Duplicate ACKs are normal and indicate lost/reordered packets.
 -Duplicate Packets are Bad and show an inefficient connection.
id Local Address        Remote Address       RttEst AcksSent DupAcksSent
PktsRecv DupPktsRecv
1: 132.239.10.189:1150 207.25.71.146:80       80        3       
0        3        0

6: 132.239.10.189:1145 207.25.71.146:80       66       29       13      
37        0
 
7: 132.239.10.189:1141 208.48.26.229:80      112        8        0      
12        0
 
8: 132.239.10.189:1131 208.48.26.226:80       77       12        0      
23        0
 
9: 132.239.10.189:1077 132.239.55.100:993       28        9       
0       20        0
  
[fds@sandpiper
fds]$
-
: send the line "unsubscribe linux-net" in
the body of a message to majordomo@vger.kernel.org


[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux 802.1Q VLAN]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Git]     [Bugtraq]     [Yosemite News and Information]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux PCI]     [Linux Admin]     [Samba]

  Powered by Linux