Date: Sat, 26 May 2001 21:34:42 +0200 From: Jesper Skriver <jesper@FreeBSD.org> To: freebsd-net@FreeBSD.org Subject: control TCP send/recieve window size based on port numbers ? and a bug(?) in sendpipe/recvpipe handling ... Message-ID: <20010526213442.A95985@skriver.dk>
next in thread | raw e-mail | index | archive | help
Hi, I'm currently looking at ways to tune a ftp server, and when tuning net.inet.tcp.sendspace/net.inet.tcp.recvspace and NMBCLUSTERS, I came to think that in a ftp server role, half the TCP sessions will be control sessions, which doesn't transfer much data, so there is no reason to reserve the same number of buffers for sendspace/recvspace for these, compared to the data sessions. I was thinking of adding 3 new sysctl's net.inet.tcp.override_sendspace net.inet.tcp.override_recvspace net.inet.tcp.override_ports The latter controls which (if any) src/dst ports, trigger the session to get the overridden send and recv-space applied. Does this make any sense ? For my own testing I'm using <http://people.FreeBSD.org/~jesper/tcp_override.diff> which do this with one exception, it only allow's one port to be listed as override, I was to lazy to go into a comma separeted list for my initial testing. And I need to add these 3 sysctl's to tcp(4). My testing show that it doesn't seem to have any effect, but that actually show a different problem, as the sendpipe/recvpipe doesn't seem to have any effect either. On a box running stock -current as of may 16th root@tam% route change default -sendpipe 1024 change net default root@tam% route change default -recvpipe 1024 change net default root@tam% route get default route to: default destination: default mask: default gateway: dhcp129.skriver.dk interface: xl0 flags: <UP,GATEWAY,DONE,STATIC,PRCLONING> recvpipe sendpipe ssthresh rtt,msec rttvar hopcount mtu expire 1024 1024 0 0 0 0 1500 0 And then I get a file from the http server on this host, but netstat -a give me root@tam% netstat -a|head -3 Active Internet connections (including servers) Proto Recv-Q Send-Q Local Address Foreign Address (state) tcp4 0 17520 dhcp138.skriver..http freesbee.wheel.d.1162 ESTABLISHED So the send queue is the default 16k, regardless of the fact that I've overridden the default via the route Ok, perhaps I have to change it at the cloned route. root@tam% route get 193.162.159.97 route to: freesbee.wheel.dk destination: freesbee.wheel.dk gateway: dhcp129.skriver.dk interface: xl0 flags: <UP,GATEWAY,HOST,DONE,WASCLONED,PROTO3> recvpipe sendpipe ssthresh rtt,msec rttvar hopcount mtu expire 0 0 139462230 79 7 0 1500 3421 root@tam% route change 193.162.159.97 -sendpipe 1024 -recvpipe 1024 change host 193.162.159.97 root@tam% route get 193.162.159.97 route to: freesbee.wheel.dk destination: freesbee.wheel.dk gateway: dhcp129.skriver.dk interface: xl0 flags: <UP,GATEWAY,HOST,DONE,WASCLONED,PROTO3> recvpipe sendpipe ssthresh rtt,msec rttvar hopcount mtu expire 1024 1024 139462230 79 7 0 1500 3390 But still I get jesper@tam% netstat -a | head -3 Active Internet connections (including servers) Proto Recv-Q Send-Q Local Address Foreign Address (state) tcp4 0 16384 dhcp138.skriver..http freesbee.wheel.d.1177 ESTABLISHED Any ideas ? /Jesper -- Jesper Skriver, jesper(at)skriver(dot)dk - CCIE #5456 Work: Network manager @ AS3292 (Tele Danmark DataNetworks) Private: FreeBSD committer @ AS2109 (A much smaller network ;-) One Unix to rule them all, One Resolver to find them, One IP to bring them all and in the zone to bind them. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-net" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010526213442.A95985>