Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 03 Mar 2004 12:29:32 +0700
From:      Eugene Grosbein <eugen@kuzbass.ru>
To:        net@freebsd.org
Subject:   Frozen connections
Message-ID:  <40456D3C.773A3C29@kuzbass.ru>

next in thread | raw e-mail | index | archive | help
H!

I'm experiencing strange problems with HTTP connections between
two machines connected using 100Mbit ethernet switch.
Client is Windows 2000 SP4 (named kost),
server is FreeBSD 4.9/Apache 1.3.27 (named www).

Plain HTTP GET request starts the thansfer and it freezes often
and reproducably. I've traced this at the server side using
tcpdump -n -p -lenx -s 1518 host kost and tcp port 80 | tcpshow -cooked

[skip]

Packet 84
TIME:   12:06:40.902236 (4.996904)
LINK:   00:90:27:AB:08:88 -> 00:90:27:35:05:1B type=IP
  IP:   www -> kost hlen=20 TOS=00 dgramlen=1335 id=608D
        MF/DF=0/1 frag=0 TTL=64 proto=TCP cksum=A720
 TCP:   port http -> 2136 seq=0249739568 ack=1566419520
        hlen=20 (data=1295) UAPRSF=010000 wnd=58400 cksum=AB01 urg=0
DATA:   mic content such as CGI output,
            SSI pages, and server-generated directory listings will
            generally not use Keep-Alive connections to HTTP/1.0 cli
        ents.
            For HTTP/1.1 clients, persistent connections are the def
        ault
            unless otherwise specified. If the client requests it, c
        hunked
            encoding will be used in order to send content of unknow
        n
            length over persistent connections.</p>

            <p><strong>Apache 1.1 only</strong>: Set <em>max-request
        s</em>
            to the maximum number of requests you want Apache to ent
        ertain
            per connection. A limit is imposed to prevent a client f
        rom
            hogging your server resources. Set this to <code>0</code
        > to
            disable support. In Apache 1.2 and 1.3, this is controll
        ed
            through the MaxKeepAliveRequests directive instead.</p>

            <p>See also <a
            href="#maxkeepaliverequests">MaxKeepAliveRequests</a>.</
        p>
            <hr />

            <h2><a id="keepalivetimeout"
            name="keepalivetimeout">KeepAliveTimeout directive</a></
        h2>
            <a href="directive-dict.html#Syntax"
            rel="Help"><strong>Syntax:</strong></a> KeepAliveTimeout
            <em>seconds</em><br />
             <a href="directive-dict.html#Default"
            rel="Help"><strong>Default:</strong></a> <code>KeepAlive
        Timeout
            15</code><br />
             <a href="directive-dict.html#Context"
            rel="Help"><s
---------------------------------------------------------------------------
Packet 85
TIME:   12:06:41.011671 (0.109435)
LINK:   00:90:27:35:05:1B -> 00:90:27:AB:08:88 type=IP
  IP:   kost -> www hlen=20 TOS=00 dgramlen=40 id=10B8
        MF/DF=0/1 frag=0 TTL=128 proto=TCP cksum=BC04
 TCP:   port 2136 -> http seq=1566419520 ack=0249740863
        hlen=20 (data=0) UAPRSF=010000 wnd=0 cksum=A459 urg=0
DATA:   <No data>
---------------------------------------------------------------------------
Packet 86
TIME:   12:06:46.000344 (4.988673)
LINK:   00:90:27:AB:08:88 -> 00:90:27:35:05:1B type=IP
  IP:   www -> kost hlen=20 TOS=00 dgramlen=41 id=85FD
        MF/DF=0/1 frag=0 TTL=64 proto=TCP cksum=86BE
 TCP:   port http -> 2136 seq=0249740863 ack=1566419520
        hlen=20 (data=1) UAPRSF=010000 wnd=58400 cksum=4C37 urg=0
DATA:   t
---------------------------------------------------------------------------
Packet 87
TIME:   12:06:46.000689 (0.000345)
LINK:   00:90:27:35:05:1B -> 00:90:27:AB:08:88 type=IP
  IP:   kost -> www hlen=20 TOS=00 dgramlen=40 id=10D3
        MF/DF=0/1 frag=0 TTL=128 proto=TCP cksum=BBE9
 TCP:   port 2136 -> http seq=1566419520 ack=0249740863
        hlen=20 (data=0) UAPRSF=010000 wnd=0 cksum=A459 urg=0
DATA:   <No data>
---------------------------------------------------------------------------
Packet 88
TIME:   12:06:50.998475 (4.997786)
LINK:   00:90:27:AB:08:88 -> 00:90:27:35:05:1B type=IP
  IP:   www -> kost hlen=20 TOS=00 dgramlen=41 id=6A94
        MF/DF=0/1 frag=0 TTL=64 proto=TCP cksum=A227
 TCP:   port http -> 2136 seq=0249740863 ack=1566419520
        hlen=20 (data=1) UAPRSF=010000 wnd=58400 cksum=4C37 urg=0
DATA:   t
---------------------------------------------------------------------------
Packet 89
TIME:   12:06:50.998828 (0.000353)
LINK:   00:90:27:35:05:1B -> 00:90:27:AB:08:88 type=IP
  IP:   kost -> www hlen=20 TOS=00 dgramlen=40 id=10E5
        MF/DF=0/1 frag=0 TTL=128 proto=TCP cksum=BBD7
 TCP:   port 2136 -> http seq=1566419520 ack=0249740863
        hlen=20 (data=0) UAPRSF=010000 wnd=0 cksum=A459 urg=0
DATA:   <No data>
---------------------------------------------------------------------------
Packet 90
TIME:   12:06:51.278337 (0.279509)
LINK:   00:90:27:AB:08:88 -> 00:90:27:35:05:1B type=IP
  IP:   www -> kost hlen=20 TOS=00 dgramlen=41 id=64CE
        MF/DF=0/1 frag=0 TTL=64 proto=TCP cksum=A7ED
 TCP:   port http -> 2134 seq=1179931920 ack=1524903532
        hlen=20 (data=1) UAPRSF=010000 wnd=58400 cksum=FC43 urg=0
DATA:   t
---------------------------------------------------------------------------
Packet 91
TIME:   12:06:51.278615 (0.000278)
LINK:   00:90:27:35:05:1B -> 00:90:27:AB:08:88 type=IP
  IP:   kost -> www hlen=20 TOS=00 dgramlen=40 id=10E6
        MF/DF=0/1 frag=0 TTL=128 proto=TCP cksum=BBD6
 TCP:   port 2134 -> http seq=1524903532 ack=1179931920
        hlen=20 (data=0) UAPRSF=010000 wnd=0 cksum=5466 urg=0
DATA:   <No data>

As you see, last pair of packets repeats many times
and transfer is stalled here. What's wrong and who is guilty?

Eugene Grosbein



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?40456D3C.773A3C29>