Frozen connections
Eugene Grosbein
eugen at kuzbass.ru
Tue Mar 2 21:29:38 PST 2004
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
More information about the freebsd-net
mailing list