Date: Thu, 15 Jul 1999 11:49:47 -0400 (EDT) From: "John W. DeBoskey" <jwd@unx.sas.com> To: freebsd-hackers@freebsd.org Cc: dillon@apollo.backplane.com (Matthew Dillon) Subject: Re: tcp windowsize query? Message-ID: <199907151549.LAA78679@bb01f39.unx.sas.com> In-Reply-To: From Matthew Dillon at "Jul 14, 1999 1:40: 7 pm"
next in thread | raw e-mail | index | archive | help
Hi,
Thanks for the reply(s)... If I understand you correctly, then:
%route -n get netapp01
route to: 192.168.21.52
destination: 192.168.21.52
interface: fxp1
flags: <UP,HOST,DONE,LLINFO,WASCLONED>
recvpipe sendpipe ssthresh rtt,msec rttvar hopcount mtu expire
0 0 0 0 0 0 1500 10
says that I have a specific interface route to get to the
fileserver... The recv/send values being 0 means that we are using
the default memory/window sizes. I'm not sure what the 3rd & 4th
columns are... (possibly what I'm looking for below)...
From SunOS, I can get the following values:
tcp_cwnd_max == 262144 <-- same as recv/send sizes, or windowsize ??
tcp_xmit_hiwat == 8192
tcp_recv_hiwat == 8192
udp_xmit_hiwat == 8192
udp_recv_hiwat == 8192
I'm now trying to determine how to get the hi & lo water marks
from FreeBSD...
net.inet.tcp.rfc1323: 0
net.inet.tcp.rfc1644: 0
net.inet.tcp.mssdflt: 512
net.inet.tcp.rttdflt: 3
net.inet.tcp.keepidle: 14400
net.inet.tcp.keepintvl: 150
net.inet.tcp.sendspace: 16384 <-- SunOS uses 260k...
net.inet.tcp.recvspace: 16384 <-- are these small?
net.inet.tcp.keepinit: 150
net.inet.tcp.log_in_vain: 0
net.inet.tcp.delayed_ack: 1
net.inet.tcp.path_mtu_discovery: 1
net.inet.tcp.pcbcount: 155
net.inet.tcp.always_keepalive: 1
net.inet.udp.checksum: 1
net.inet.udp.maxdgram: 9216
net.inet.udp.recvspace: 41600
net.inet.udp.log_in_vain: 0
If I may re-phrase.. How do I determine if the send/recv spaces
are large enough, and if not, how many times I bumped into the
wall?
Thanks!
John
> :> net.inet.tcp.recvspace: 16384
> :...
> :> send/recv space might be what I'm looking for...
> :
> :They're the default send/receive window sizes, yes. You can tweak them
> :with socket ioctls on a per-socket basis.
> :
> :> delayed ack sounds interesting....
> :
> :Turning that off disables TCP slow-start. It's a huge performance
> :booster for things like SMB service, where you have lots of short-lived
> :TCP connections on a local net.
>
> Note that you can also tweak TCP send/receive window sizes on a
> per-route basis. The recvpipe and sendpipe parameters in route
> table entries can be changed. This will override the sysctl defaults.
>
> However, it may be a little complex for some people to grasp. The
> route table is a radix tree. In order to set the send/receive pipes
> for particular ip addresses you may have to create a route to that
> IP address in order to effect it rather then a more global route.
>
> For example, if I am getting the route to some host that runs through
> my default gateway, I get my default route entry. If I were to
> change this route entry I would be changing it for default, not just
> for idiom.com:
>
> route -n get idiom.com
>
> # route -n get idiom.com
> route to: 209.157.64.1
> destination: default
> mask: default <----- this is not a host route!
> gateway: 209.157.86.1 <----- this is not a host route!
> interface: de0
> flags: <UP,GATEWAY,DONE,STATIC,PRCLONING>
> recvpipe sendpipe ssthresh rtt,msec rttvar hopcount mtu expire
> 0 0 0 0 0 0 1500 0
>
>
> On the other hand, a route to another host on the same ethernet is usually
> specific:
>
> # route -n get lander
> route to: 209.157.86.6
> destination: 209.157.86.6
> interface: de0
> flags: <UP,HOST,DONE,LLINFO,WASCLONED>
> recvpipe sendpipe ssthresh rtt,msec rttvar hopcount mtu expire
> 0 0 10411044 172 219 0 1500 1131
>
>
> To change the pipes associated with a route, I would do the following.
> But in this example if I were to try to change the pipe size to idiom.com,
> I would actually wind up changing the pipe size for my default route.
>
> route -n change idiom.com -sendpipe BYTES -recvpipe BYTES
> route -n change 209.157.86.6 -sendpipe BYTES -recvpipe BYTES
>
> If I really want to change the pipe size just to idiom.com, I would have
> to first create a specific route to idiom.com, then change that.
>
> route add idiom.com default
> route -n change idiom.com -sendpipe BYTES -recvpipe BYTES
>
> -Matt
> Matthew Dillon
> <dillon@backplane.com>
>
>
>
> To Unsubscribe: send mail to majordomo@FreeBSD.org
> with "unsubscribe freebsd-hackers" in the body of the message
>
> ------------------------------
>
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199907151549.LAA78679>
