From: Wesley Eddy (weddy@elitists.net)
Date: 09/24/03
Date: Wed, 24 Sep 2003 12:38:58 -0400 From: Wesley Eddy <weddy@elitists.net> Subject: tcptrace-bugs [owner-tcptrace@tcptrace.org: BOUNCE tcptrace@tcptrace.org: Non-member submission from [ulisses@pusa.informat.uv.es]] Message-ID: <20030924163858.GB8819@irg.cs.ohiou.edu>
----- Forwarded message from owner-tcptrace@tcptrace.org -----
Date: Wed, 24 Sep 2003 04:25:35 -0400 (EDT)
X-Authentication-Warning: masaka.cs.ohiou.edu: majordomo set sender to owner-tcptrace@tcptrace.org using -f
To: tcptrace-approval@tcptrace.org
From: owner-tcptrace@tcptrace.org
Subject: BOUNCE tcptrace@tcptrace.org: Non-member submission from [ulisses@pusa.informat.uv.es]
X-Spam-Status: No, hits=-5.6 required=5.0
tests=BAYES_01,EMAIL_ATTRIBUTION,NO_REAL_NAME,QUOTED_EMAIL_TEXT,
X_AUTH_WARNING
version=2.55
X-Spam-Level:
X-Spam-Checker-Version: SpamAssassin 2.55 (1.174.2.19-2003-05-19-exp)
>From weddy Wed Sep 24 04:25:34 2003
Received: from pusa.informat.uv.es (mail@pusa.informat.uv.es [147.156.10.98])
by masaka.cs.ohiou.edu (8.12.10/8.12.8) with ESMTP id h8O8PXGj023458
for <tcptrace@tcptrace.org>; Wed, 24 Sep 2003 04:25:34 -0400 (EDT)
Received: from ulisses by pusa.informat.uv.es with local (Exim 3.35 #1 (Debian))
id 1A24xo-0005j4-00; Wed, 24 Sep 2003 10:25:32 +0200
Date: Wed, 24 Sep 2003 10:25:32 +0200
From: ulisses@pusa.informat.uv.es
To: tcptrace@tcptrace.org
Subject: Re: bug in RTT 3WHS code
Message-ID: <20030924082532.GB13442@pusa.informat.uv.es>
References: <20030924070842.GA13442@pusa.informat.uv.es>
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
In-Reply-To: <20030924070842.GA13442@pusa.informat.uv.es>
User-Agent: Mutt/1.3.28i
Hi all again
On Wed, Sep 24, 2003 at 09:08:42AM +0200, ulisses@pusa.informat.uv.es wrote:
> Hi all,
>
> the following trace triggers a bug in 3WHS RTT code, in this case tcptrace
> doesn't calculate the SYN+ACK/ACK RTT
>
> 1063983733.559421 81.203.68.223.4354 > 147.156.10.98.80: S 3824823627:3824823627(0) win 0 <mss 1460,nop,wscale 4,nop,nop,sackOK> (DF)
> 1063983733.559477 147.156.10.98.80 > 81.203.68.223.4354: S 201111435:201111435(0) ack 3824823628 win 5840 <mss 1460,nop,nop,sackOK,nop,wscale 0> (DF)
> 1063983733.714187 81.203.68.223.4354 > 147.156.10.98.80: . ack 201111436 win 32768 (DF)
>
> full dump is available at http://pusa/~ulisses/81.203.68.223:4354.dump
>
> I'm trying to find the bug...
I think I found the bug, it's because initial SYN segment has window 0 so...
/* do rexmit stats */
retrans = FALSE;
probe = FALSE;
out_order = FALSE;
retrans_num_bytes = 0;
if (SYN_SET(ptcp) || FIN_SET(ptcp) || tcp_data_length > 0) {
int len = tcp_data_length;
int retrans_cnt=0;
if (SYN_SET(ptcp)) ++len;
if (FIN_SET(ptcp)) ++len;
/* Don't consider for rexmit, if the send window is 0 */
/* We are probably doing window probing.. */
if(otherdir->win_last==0 && otherdir->packets > 0){
probe=TRUE;
thisdir->num_zwnd_probes++;
thisdir->zwnd_probe_bytes += tcp_data_length;
}
else
retrans_cnt = retrans_num_bytes = rexmit(thisdir,start, len, &out_order);
so.... rexmit() is not called on second segment, which is the normal to
assign the quadrant with the whichquad() function, but instead the quadrant
is assigned with a call from ack_in, with the wrong arguments
I patch will be posted soon
Ulisses
>
> Ulisses
>
> the output of tcptrace
>
> 1 arg remaining, starting with '/home/ulisses/dumps/81.203.68.223:4354.dump'
> Ostermann's tcptrace -- version 6.4.2 -- Sat May 3, 2003
>
> 84 packets seen, 84 TCP packets traced
> elapsed wallclock time: 0:00:00.001791, 46901 pkts/sec analyzed
> trace file elapsed time: 0:00:33.754474
> TCP connection info:
> 1 TCP connection traced:
> TCP connection 1:
> host a: 81.203.68.223:4354
> host b: 147.156.10.98:80
> complete conn: yes
> first packet: Fri Sep 19 15:02:13.559421 2003
> last packet: Fri Sep 19 15:02:47.313896 2003
> elapsed time: 0:00:33.754474
> total packets: 84
> filename: /home/ulisses/dumps/81.203.68.223:4354.dump
> a->b: b->a:
> total packets: 37 total packets: 47
> ack pkts sent: 36 ack pkts sent: 47
> pure acks sent: 21 pure acks sent: 1
> sack pkts sent: 5 sack pkts sent: 0
> max sack blks/ack: 1 max sack blks/ack: 0
> unique bytes sent: 6339 unique bytes sent: 52319
> actual data pkts: 14 actual data pkts: 44
> actual data bytes: 6339 actual data bytes: 53779
> rexmt data pkts: 0 rexmt data pkts: 1
> rexmt data bytes: 0 rexmt data bytes: 1460
> zwnd probe pkts: 0 zwnd probe pkts: 1
> zwnd probe bytes: 0 zwnd probe bytes: 0
> outoforder pkts: 0 outoforder pkts: 0
> pushed data pkts: 14 pushed data pkts: 16
> SYN/FIN pkts sent: 1/1 SYN/FIN pkts sent: 1/1
> req 1323 ws/ts: Y/N req 1323 ws/ts: Y/N
> adv wind scale: 4 adv wind scale: 0
> req sack: Y req sack: Y
> sacks sent: 5 sacks sent: 0
> urgent data pkts: 0 pkts urgent data pkts: 0 pkts
> urgent data bytes: 0 bytes urgent data bytes: 0 bytes
> mss requested: 1460 bytes mss requested: 1460 bytes
> max segm size: 555 bytes max segm size: 1460 bytes
> min segm size: 435 bytes min segm size: 68 bytes
> avg segm size: 452 bytes avg segm size: 1222 bytes
> max win adv: 524288 bytes max win adv: 20535 bytes
> min win adv: 522880 bytes min win adv: 5840 bytes
> zero win adv: 0 times zero win adv: 0 times
> avg win adv: 509858 bytes avg win adv: 12601 bytes
> initial window: 503 bytes initial window: 2920 bytes
> initial window: 1 pkts initial window: 2 pkts
> ttl stream length: 6339 bytes ttl stream length: 52319 bytes
> missed data: 0 bytes missed data: 0 bytes
> truncated data: 5751 bytes truncated data: 51931 bytes
> truncated packets: 14 pkts truncated packets: 44 pkts
> data xmit time: 15.782 secs data xmit time: 17.395 secs
> idletime max: 15823.2 ms idletime max: 16074.1 ms
> throughput: 188 Bps throughput: 1550 Bps
>
> RTT samples: 16 RTT samples: 26
> RTT min: 0.0 ms RTT min: 27.6 ms
> RTT max: 1.4 ms RTT max: 839.1 ms
> RTT avg: 0.4 ms RTT avg: 452.4 ms
> RTT stdev: 0.3 ms RTT stdev: 257.9 ms
>
> RTT from 3WHS: 0.1 ms RTT from 3WHS: 0.0 ms
>
> RTT full_sz smpls: 1 RTT full_sz smpls: 11
> RTT full_sz min: 1.4 ms RTT full_sz min: 235.5 ms
> RTT full_sz max: 1.4 ms RTT full_sz max: 839.1 ms
> RTT full_sz avg: 1.4 ms RTT full_sz avg: 533.5 ms
> RTT full_sz stdev: 0.0 ms RTT full_sz stdev: 190.0 ms
>
> post-loss acks: 0 post-loss acks: 1
> segs cum acked: 0 segs cum acked: 17
> duplicate acks: 0 duplicate acks: 5
> triple dupacks: 0 triple dupacks: 1
> max # retrans: 0 max # retrans: 1
> min retr time: 0.0 ms min retr time: 870.9 ms
> max retr time: 0.0 ms max retr time: 870.9 ms
> avg retr time: 0.0 ms avg retr time: 870.9 ms
> sdv retr time: 0.0 ms sdv retr time: 0.0 ms
>
> Debian GNU/Linux: a dream come true
> -----------------------------------------------------------------------------
> "Computers are useless. They can only give answers." Pablo Picasso
>
> ---> Visita http://www.valux.org/ para saber acerca de la <---
> ---> Asociación Valenciana de Usuarios de Linux <---
>
-- Debian GNU/Linux: a dream come true ----------------------------------------------------------------------------- "Computers are useless. They can only give answers." Pablo Picasso ---> Visita http://www.valux.org/ para saber acerca de la <--- ---> Asociación Valenciana de Usuarios de Linux <--- ----- End forwarded message -----
This archive was generated by hypermail 2.1.7 : 09/25/03 EDT