From owner-freebsd-net@FreeBSD.ORG Tue Mar 2 21:29:37 2004 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E8E6E16A4CE for ; Tue, 2 Mar 2004 21:29:37 -0800 (PST) Received: from www.svzserv.kemerovo.su (www.svzserv.kemerovo.su [213.184.65.80]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0C7BF43D31 for ; Tue, 2 Mar 2004 21:29:36 -0800 (PST) (envelope-from eugen@kuzbass.ru) Received: from kuzbass.ru (kost [213.184.65.82])i235TXrx090880 for ; Wed, 3 Mar 2004 12:29:33 +0700 (KRAT) (envelope-from eugen@kuzbass.ru) Message-ID: <40456D3C.773A3C29@kuzbass.ru> Date: Wed, 03 Mar 2004 12:29:32 +0700 From: Eugene Grosbein Organization: SVZServ X-Mailer: Mozilla 4.8 [en] (Windows NT 5.0; U) X-Accept-Language: ru,en MIME-Version: 1.0 To: net@freebsd.org Content-Type: text/plain; charset=koi8-r Content-Transfer-Encoding: 7bit Subject: Frozen connections X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 03 Mar 2004 05:29:38 -0000 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.

Apache 1.1 only: Set max-request s 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 0 to disable support. In Apache 1.2 and 1.3, this is controll ed through the MaxKeepAliveRequests directive instead.

See also MaxKeepAliveRequests.


KeepAliveTimeout directive Syntax: KeepAliveTimeout seconds
Default: KeepAlive Timeout 15
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: --------------------------------------------------------------------------- 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: --------------------------------------------------------------------------- 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: --------------------------------------------------------------------------- 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: As you see, last pair of packets repeats many times and transfer is stalled here. What's wrong and who is guilty? Eugene Grosbein