Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 27 Aug 2002 20:57:13 -0700
From:      Jason Eggleston <JEggleston@wwwn.com>
To:        "'freebsd-bugs@freebsd.org'" <freebsd-bugs@freebsd.org>
Subject:   TCP RFC 1323 bug
Message-ID:  <1B588B0FBBADD311A69F00EA00E000E0BF3D11@exchange.wwwn.com>

next in thread | raw e-mail | index | archive | help
Hi,

I have a standard FreeBSD 4.6.2 install running qmail and saw a whole bunch
of TCP sessions that weren't moving along very quickly.  Looks like a bug in
FreeBSD's implimentation of RFC 1323 (which is turned on by default).  I
turned RFC 1323 off, and my problem went away.  Here is the problem that is
hopefully fixed (maybe by PR kern/41552, I don't know).  Basically, up until
frame 23 everything appears fine, but there's no good reason to wait 64
seconds and start retransmitting old data, when the TCP window hasn't been
reached... or I don't understand TCP.

I've included the syn and syn-ack, frame 23 and 24, and an overall list of
the conversation taken from ethereal with the payloads mostly deleted.

Please let me know if this is fixed or if there is anything I can do to fix
it.  I have the complete packet dump for the TCP session.

Thanks,
 -Jason Eggleston

Frame 1 (74 on wire, 74 captured)
    Arrival Time: Aug 26, 2002 14:48:52.991788000
    Time delta from previous packet: 0.000000000 seconds
    Time relative to first packet: 0.000000000 seconds
    Frame Number: 1
    Packet Length: 74 bytes
    Capture Length: 74 bytes
Ethernet II
    Destination: 00:90:69:6f:2c:22 (00:90:69:6f:2c:22)
    Source: 00:90:27:52:11:02 (00:90:27:52:11:02)
    Type: IP (0x0800)
Internet Protocol, Src Addr: 216.237.6.33 (216.237.6.33), Dst Addr:
208.139.198.9 (208.139.198.9)
    Version: 4
    Header length: 20 bytes
    Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00)
        0000 00.. = Differentiated Services Codepoint: Default (0x00)
        .... ..0. = ECN-Capable Transport (ECT): 0
        .... ...0 = ECN-CE: 0
    Total Length: 60
    Identification: 0x497c
    Flags: 0x04
        .1.. = Don't fragment: Set
        ..0. = More fragments: Not set
    Fragment offset: 0
    Time to live: 64
    Protocol: TCP (0x06)
    Header checksum: 0x7b9c (correct)
    Source: 216.237.6.33 (216.237.6.33)
    Destination: 208.139.198.9 (208.139.198.9)
Transmission Control Protocol, Src Port: 1863 (1863), Dst Port: 25 (25),
Seq: 1644315094, Ack: 0
    Source port: 1863 (1863)
    Destination port: 25 (25)
    Sequence number: 1644315094
    Header length: 40 bytes
    Flags: 0x0002 (SYN)
        0... .... = Congestion Window Reduced (CWR): Not set
        .0.. .... = ECN-Echo: Not set
        ..0. .... = Urgent: Not set
        ...0 .... = Acknowledgment: Not set
        .... 0... = Push: Not set
        .... .0.. = Reset: Not set
        .... ..1. = Syn: Set
        .... ...0 = Fin: Not set
    Window size: 57344
    Checksum: 0x35a8 (correct)
    Options: (20 bytes)
        Maximum segment size: 1460 bytes
        NOP
        Window scale: 0 bytes
        NOP
        NOP
        Time stamp: tsval 24777481, tsecr 0

Frame 2 (74 on wire, 74 captured)
    Arrival Time: Aug 26, 2002 14:48:53.051685000
    Time delta from previous packet: 0.059897000 seconds
    Time relative to first packet: 0.059897000 seconds
    Frame Number: 2
    Packet Length: 74 bytes
    Capture Length: 74 bytes
Ethernet II
    Destination: 00:90:27:52:11:02 (00:90:27:52:11:02)
    Source: 00:90:69:6f:2c:22 (00:90:69:6f:2c:22)
    Type: IP (0x0800)
Internet Protocol, Src Addr: 208.139.198.9 (208.139.198.9), Dst Addr:
216.237.6.33 (216.237.6.33)
    Version: 4
    Header length: 20 bytes
    Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00)
        0000 00.. = Differentiated Services Codepoint: Default (0x00)
        .... ..0. = ECN-Capable Transport (ECT): 0
        .... ...0 = ECN-CE: 0
    Total Length: 60
    Identification: 0x6a75
    Flags: 0x04
        .1.. = Don't fragment: Set
        ..0. = More fragments: Not set
    Fragment offset: 0
    Time to live: 108
    Protocol: TCP (0x06)
    Header checksum: 0x2ea3 (correct)
    Source: 208.139.198.9 (208.139.198.9)
    Destination: 216.237.6.33 (216.237.6.33)
Transmission Control Protocol, Src Port: 25 (25), Dst Port: 1863 (1863),
Seq: 481092603, Ack: 1644315095
    Source port: 25 (25)
    Destination port: 1863 (1863)
    Sequence number: 481092603
    Acknowledgement number: 1644315095
    Header length: 40 bytes
    Flags: 0x0012 (SYN, ACK)
        0... .... = Congestion Window Reduced (CWR): Not set
        .0.. .... = ECN-Echo: Not set
        ..0. .... = Urgent: Not set
        ...1 .... = Acknowledgment: Set
        .... 0... = Push: Not set
        .... .0.. = Reset: Not set
        .... ..1. = Syn: Set
        .... ...0 = Fin: Not set
    Window size: 64240
    Checksum: 0x2e82 (correct)
    Options: (20 bytes)
        Maximum segment size: 1460 bytes
        NOP
        Window scale: 0 bytes
        NOP
        NOP
        Time stamp: tsval 0, tsecr 0

Frame 23 (1514 on wire, 1514 captured)
    Arrival Time: Aug 26, 2002 14:48:53.635669000
    Time delta from previous packet: 0.000124000 seconds
    Time relative to first packet: 0.643881000 seconds
    Frame Number: 23
    Packet Length: 1514 bytes
    Capture Length: 1514 bytes
Ethernet II
    Destination: 00:90:69:6f:2c:22 (00:90:69:6f:2c:22)
    Source: 00:90:27:52:11:02 (00:90:27:52:11:02)
    Type: IP (0x0800)
Internet Protocol, Src Addr: 216.237.6.33 (216.237.6.33), Dst Addr:
208.139.198.9 (208.139.198.9)
    Version: 4
    Header length: 20 bytes
    Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00)
        0000 00.. = Differentiated Services Codepoint: Default (0x00)
        .... ..0. = ECN-Capable Transport (ECT): 0
        .... ...0 = ECN-CE: 0
    Total Length: 1500
    Identification: 0x49d6
    Flags: 0x04
        .1.. = Don't fragment: Set
        ..0. = More fragments: Not set
    Fragment offset: 0
    Time to live: 64
    Protocol: TCP (0x06)
    Header checksum: 0x75a2 (correct)
    Source: 216.237.6.33 (216.237.6.33)
    Destination: 208.139.198.9 (208.139.198.9)
Transmission Control Protocol, Src Port: 1863 (1863), Dst Port: 25 (25),
Seq: 1644322640, Ack: 481092996
    Source port: 1863 (1863)
    Destination port: 25 (25)
    Sequence number: 1644322640
    Next sequence number: 1644324088
    Acknowledgement number: 481092996
    Header length: 32 bytes
    Flags: 0x0010 (ACK)
        0... .... = Congestion Window Reduced (CWR): Not set
        .0.. .... = ECN-Echo: Not set
        ..0. .... = Urgent: Not set
        ...1 .... = Acknowledgment: Set
        .... 0... = Push: Not set
        .... .0.. = Reset: Not set
        .... ..0. = Syn: Not set
        .... ...0 = Fin: Not set
    Window size: 57920
    Checksum: 0xbca2 (correct)
    Options: (12 bytes)
        NOP
        NOP
        Time stamp: tsval 24777546, tsecr 1098818

Frame 24 (1514 on wire, 1514 captured)
    Arrival Time: Aug 26, 2002 14:49:57.632424000
    Time delta from previous packet: 63.996755000 seconds
    Time relative to first packet: 64.640636000 seconds
    Frame Number: 24
    Packet Length: 1514 bytes
    Capture Length: 1514 bytes
Ethernet II
    Destination: 00:90:69:6f:2c:22 (00:90:69:6f:2c:22)
    Source: 00:90:27:52:11:02 (00:90:27:52:11:02)
    Type: IP (0x0800)
Internet Protocol, Src Addr: 216.237.6.33 (216.237.6.33), Dst Addr:
208.139.198.9 (208.139.198.9)
    Version: 4
    Header length: 20 bytes
    Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00)
        0000 00.. = Differentiated Services Codepoint: Default (0x00)
        .... ..0. = ECN-Capable Transport (ECT): 0
        .... ...0 = ECN-CE: 0
    Total Length: 1500
    Identification: 0x9aa1
    Flags: 0x04
        .1.. = Don't fragment: Set
        ..0. = More fragments: Not set
    Fragment offset: 0
    Time to live: 64
    Protocol: TCP (0x06)
    Header checksum: 0x24d7 (correct)
    Source: 216.237.6.33 (216.237.6.33)
    Destination: 208.139.198.9 (208.139.198.9)
Transmission Control Protocol, Src Port: 1863 (1863), Dst Port: 25 (25),
Seq: 1644316640, Ack: 481092996
    Source port: 1863 (1863)
    Destination port: 25 (25)
    Sequence number: 1644316640
    Next sequence number: 1644318088
    Acknowledgement number: 481092996
    Header length: 32 bytes
    Flags: 0x0010 (ACK)
        0... .... = Congestion Window Reduced (CWR): Not set
        .0.. .... = ECN-Echo: Not set
        ..0. .... = Urgent: Not set
        ...1 .... = Acknowledgment: Set
        .... 0... = Push: Not set
        .... .0.. = Reset: Not set
        .... ..0. = Syn: Not set
        .... ...0 = Fin: Not set
    Window size: 57920
    Checksum: 0xf924 (correct)
    Options: (12 bytes)
        NOP
        NOP
        Time stamp: tsval 24783946, tsecr 1098818


    No. Time        Source                Destination           Protocol
Info
      1 0.000000    216.237.6.33          208.139.198.9         TCP
1863 > 25 [SYN] Seq=1644315094 Ack=0 Win=57344 Len=0
      2 0.059897    208.139.198.9         216.237.6.33          TCP      25
> 1863 [SYN, ACK] Seq=481092603 Ack=1644315095 Win=64240 Len=0
      3 0.059995    216.237.6.33          208.139.198.9         TCP
1863 > 25 [ACK] Seq=1644315095 Ack=481092604 Win=57920 Len=0
      4 0.062078    208.139.198.9         216.237.6.33          SMTP
Response: 220 rocky.extendthereach.com ESMTP Server (Microsoft Exchange
Internet Mail Service 5.5.2656.59) ready
      5 0.062258    216.237.6.33          208.139.198.9         SMTP
Command: EHLO mail.globalpac.com
      6 0.122730    208.139.198.9         216.237.6.33          SMTP
Response: 250-rocky.extendthereach.com Hello [mail.globalpac.com]
      7 0.122958    216.237.6.33          208.139.198.9         SMTP
Command: MAIL FROM:<> SIZE=33467
      8 0.257376    208.139.198.9         216.237.6.33          SMTP
Response: 250 OK - mail from <>; can accomodate 33467 bytes
      9 0.257536    216.237.6.33          208.139.198.9         SMTP
Command: RCPT TO:<barmstrong@extendthereach.com>
     10 0.322357    208.139.198.9         216.237.6.33          SMTP
Response: 250 OK - Recipient <BARMSTRONG@EXTENDTHEREACH.COM>
     11 0.322459    216.237.6.33          208.139.198.9         SMTP
Command: DATA
     12 0.426724    208.139.198.9         216.237.6.33          SMTP
Response: 354 Send data.  End with CRLF.CRLF
     13 0.435471    216.237.6.33          208.139.198.9         SMTP
Message Body
     14 0.435482    216.237.6.33          208.139.198.9         SMTP
Message Body
     15 0.435934    216.237.6.33          208.139.198.9         SMTP
Message Body
     16 0.435945    216.237.6.33          208.139.198.9         SMTP
Message Body
     17 0.436398    216.237.6.33          208.139.198.9         SMTP
Message Body
     18 0.436409    216.237.6.33          208.139.198.9         SMTP
Message Body
     19 0.436851    216.237.6.33          208.139.198.9         SMTP
Message Body
     20 0.436862    216.237.6.33          208.139.198.9         SMTP
Message Body
     21 0.643440    208.139.198.9         216.237.6.33          TCP      25
> 1863 [ACK] Seq=481092996 Ack=1644316640 Win=64240 Len=0
     22 0.643757    216.237.6.33          208.139.198.9         SMTP
Message Body
     23 0.643881    216.237.6.33          208.139.198.9         SMTP
Message Body
     24 64.640636   216.237.6.33          208.139.198.9         SMTP
Message Body
     25 64.860303   208.139.198.9         216.237.6.33          TCP      25
> 1863 [ACK] Seq=481092996 Ack=1644318088 Win=62792 Len=0
     26 64.860662   216.237.6.33          208.139.198.9         SMTP
Message Body
     27 64.860788   216.237.6.33          208.139.198.9         SMTP
Message Body
     28 128.860708  216.237.6.33          208.139.198.9         SMTP
Message Body
     29 129.049428  208.139.198.9         216.237.6.33          TCP      25
> 1863 [ACK] Seq=481092996 Ack=1644319536 Win=64240 Len=0
     30 129.049791  216.237.6.33          208.139.198.9         SMTP
Message Body
     31 129.049913  216.237.6.33          208.139.198.9         SMTP
Message Body
     32 193.040784  216.237.6.33          208.139.198.9         SMTP
Message Body
     33 193.252186  208.139.198.9         216.237.6.33          TCP      25
> 1863 [ACK] Seq=481092996 Ack=1644320984 Win=62792 Len=0
     34 193.252551  216.237.6.33          208.139.198.9         SMTP
Message Body
     35 193.252675  216.237.6.33          208.139.198.9         SMTP
Message Body
     36 257.250940  216.237.6.33          208.139.198.9         SMTP
Message Body
     37 257.456253  208.139.198.9         216.237.6.33          TCP      25
> 1863 [ACK] Seq=481092996 Ack=1644322432 Win=64240 Len=0
     38 257.456649  216.237.6.33          208.139.198.9         SMTP
Message Body
     39 257.456773  216.237.6.33          208.139.198.9         SMTP
Message Body
     40 321.450986  216.237.6.33          208.139.198.9         SMTP
Message Body
     41 321.657035  208.139.198.9         216.237.6.33          TCP      25
> 1863 [ACK] Seq=481092996 Ack=1644323880 Win=62792 Len=0
     42 321.657404  216.237.6.33          208.139.198.9         SMTP
Message Body
     43 321.657523  216.237.6.33          208.139.198.9         SMTP
Message Body
     44 385.651102  216.237.6.33          208.139.198.9         SMTP
Message Body
     45 385.970251  208.139.198.9         216.237.6.33          TCP      25
> 1863 [ACK] Seq=481092996 Ack=1644325328 Win=64240 Len=0
     46 385.970591  216.237.6.33          208.139.198.9         SMTP
Message Body
     47 385.970714  216.237.6.33          208.139.198.9         SMTP
Message Body
     48 449.961154  216.237.6.33          208.139.198.9         SMTP
Message Body
     49 450.173323  208.139.198.9         216.237.6.33          TCP      25
> 1863 [ACK] Seq=481092996 Ack=1644326776 Win=62792 Len=0
     50 450.173636  216.237.6.33          208.139.198.9         SMTP
Message Body
     51 450.173755  216.237.6.33          208.139.198.9         SMTP
Message Body

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1B588B0FBBADD311A69F00EA00E000E0BF3D11>