From owner-freebsd-hackers@FreeBSD.ORG Sat Dec 3 01:26:12 2005 Return-Path: X-Original-To: freebsd-hackers@freebsd.org Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1A46D16A422; Sat, 3 Dec 2005 01:26:12 +0000 (GMT) (envelope-from aanton@spintech.ro) Received: from smtpx.spintech.ro (smtpx.spintech.ro [81.180.92.70]) by mx1.FreeBSD.org (Postfix) with ESMTP id CF70D43D5E; Sat, 3 Dec 2005 01:26:00 +0000 (GMT) (envelope-from aanton@spintech.ro) Received: from laura-axiomeda (unknown [11.0.0.25]) by smtpx.spintech.ro (Postfix) with ESMTP id 705E73A4AC; Sat, 3 Dec 2005 01:33:28 +0000 (UTC) X-Laura: version 0.0.1b10-frustratus proxied X-Laura-Remote-IP: 10.0.0.2 Received: from [10.0.0.2] (beastie [10.0.0.2]) by smtpx.spintech.ro (Postfix) with ESMTP id D15223A4A6; Sat, 3 Dec 2005 01:33:27 +0000 (UTC) Message-ID: <4390F425.5060600@spintech.ro> Date: Sat, 03 Dec 2005 03:25:57 +0200 From: Alin-Adrian Anton Organization: Spintech Security Systems User-Agent: Mozilla Thunderbird 1.0 (X11/20041229) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Robert Watson References: <438F00D8.4040302@spintech.ro> <79722fad0512010559n29e957f5j47c99586ebbd3a0f@mail.gmail.com> <20051201150949.W56270@fledge.watson.org> In-Reply-To: <20051201150949.W56270@fledge.watson.org> X-Enigmail-Version: 0.89.5.0 X-Enigmail-Supports: pgp-inline, pgp-mime Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-hackers@freebsd.org, Vlad GALU Subject: Re: cwnd and sstresh monitor X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: aanton@spintech.ro List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Dec 2005 01:26:12 -0000 Robert Watson wrote: > > On Thu, 1 Dec 2005, Vlad GALU wrote: > >> On 12/1/05, Alin-Adrian Anton wrote: >> >>> Dear Hackers, >>> >>> I would like to monitor the changes of cwnd and sstresh >>> values during >>> TCP traffic, in order to plot graphs and interpret congestion. >>> >>> So I need (cwnd, timestamp) and (sstresh, timestamp) records >>> to be >>> taken everytime one of the two variables is modified. >>> >>> I'd like to ask you for suggestions, which would be the best >>> aproach >>> (kernel patch, kernel module, etc?), and how would this be done best? >>> (the interception of values, the storage of snapshots, etc)? >>> >> >> Does exporting them via sysctl, and graph them using anything >> (rrdtool) sound reasonable ? I thought about this too, however, this loses precision and provides constant units of time. Knowing the timestamps for each packet may be interesting to underline timeouts on the graphic. > > > I've not used it, but there is a TCPDEBUG kernel option that gathers TCP > state information for debugging and tracing purposes. I know this has > been used quite effectively in the past for this sort of work, but > unfortunately I know very little about it. With all the TCP changes in > the last few years (SACK, etc), it could be that it needs some > enhancements, cleanups, fixes, etc. > I used it now, and with a small patch it shows exactly what I need (seq, ack, timestamp, cwnd and ssthresh). I just added my knob to trpt.c . I also modified the iptime() function to provide microsecond resolution instead of miliseconds, because most of the packets have the same timestamp attached. Still, a decent number of packets have the same timestamp. I'm looking at them only on one side of the connection (the transmitter), I wonder if there is any better solution then timestamping them on both sides - and mixing the values. Thanks guys for the precious information, it helped a lot! Yours Sincerely, -- Alin-Adrian Anton GPG keyID 0x183087BA (B129 E8F4 7B34 15A9 0785 2F7C 5823 ABA0 1830 87BA) gpg --keyserver pgp.mit.edu --recv-keys 0x183087BA "It is dangerous to be right when the government is wrong." - Voltaire