Operating System - HP-UX
1834142 Members
2246 Online
110064 Solutions
New Discussion

Does rcp support TCP Window Scaling (RFC1323)

 
Satyavrat Purohit
Occasional Contributor

Does rcp support TCP Window Scaling (RFC1323)

On HPUX 11i, has anyone any experience with using rcp options -S and
-R ?

eg.

rcp -S 131072 -R 131072 bar user@foo:/foo/bar

I was expecting this to result in TCP Window Scaling factor of 2. The Window Scale option does appear within the SYN/SYN_ACK but the window scaling appears to be set to 0 (the option looks like 0x"030300" i.e. window scale of 2**0 = no window scale)

I hadn't modified ndd tcp_recv/xmit_hiwater_def/lnp/lfp values and I'm testing it over a LAN. HPUX doc suggests that all you need to do is set so_recvbuf and you get the window scaling you need and from rcp documentation it seemed that the -S and -R options were designed to do just that. It doesn't seem to work that way though.

Separately, I tried setting tcp_recv/xmit_hiwater_def to 131072. This resulted in the source host advertising a scaled window, but the dest host still responds with an unscaled window.

The ONLY way I could get rcp to do tcp window scaling was -
1. Set tcp_recv_hiwater_def = 131072
2. issue a "pull" rcp rather than a push i.e. rcp .

This results in the initiator advertising a recv window scale of 2 (0x"030302"). The responder still exhibits the lame 0x"030300" i.e. no window scaling, but since the initiator is the receiver of the file it works fine and I can observe close to 131072 (128K) of outstandin TCP window being pulled.

There is no need to specify -R or -S in this case (in fact I'm beginning to suspect that -R/-S have a max of 65535 and if you supply a higher value it gets cut down)

Any authoritative knowledge of RCP (how far will -R -S go towards a larger TCP window) and any real experience making RFC 1323 work for RCP would be appreciated.

Thanks
1 REPLY 1
rick jones
Honored Contributor

Re: Does rcp support TCP Window Scaling (RFC1323)

Certainly older versions of rcp (and ftp) didn't do more than 56 KB socket buffers no matter what size of option you used.

To make sure that you have a new enough version (I know patches happened for FTP, but I'm not sure if they did for rcp) you should try taking a tusc trace of an rcp session and look for the setsockopt() calls.

(When I asked for the patches, I also asked that a value of "0" mean "take the system default." I don't recall if they actually implemented that, I think they've left the default to 56K)

ftp://ftp.cup.hp.com/dist/networking/tools/ has the latest 7.6 version of tusc.

If you want to make sure that automagic enabling of window scaling happens, you can install netperf and run a TCP_STREAM test setting -s and -S to say 128K

http://www.netperf.org/

there is no rest for the wicked yet the virtuous have no pillows