Operating System - Tru64 Unix
1752671 Members
5660 Online
108789 Solutions
New Discussion юеВ

TCP slow from 5.1b machine to XP over long link

 
SOLVED
Go to solution
Denver York
Advisor

TCP slow from 5.1b machine to XP over long link

When trying to send a large file from a 5.1b machine to an XP machine over a long(ish) link (15 miles), I see slow transfer speeds and strange patterns in network traffic. This problem does not exist when both machines are local or when going from the XP machine to the 5.1b machine.

While watching network traffic on the XP machine, I observe bursts of traffic followed by silence. The bursts last between 1 and 15 seconds. The length of the silence will be between 29 and 15 seconds ... making the time from start of the first burst to the start of the second burst always 30 seconds.

Here are my parameters from the 5.1b machine:

root@ekpcras1# sysconfig -q inet
inet:
icmp_redirecttimeout = 0
icmp_rejectcodemask = 0
inifaddr_hsize = 32
ip_max_frag_index = 64
ipdefttl = 64
ipdirected_broadcast = 0
ipforwarding = 0
ipfragttl = 60
ipgateway = 0
ipport_userreserved = 65535
ipport_userreserved_min = 1024
ipqmaxlen = 65535
ipqs = 16
ipsendredirects = 1
ipsrcroute = 1
pmtu_decrease_intvl = 1200
pmtu_enabled = 1
pmtu_increase_intvl = 240
pmtu_rt_check_intvl = 20
subnetsarelocal = 1
tcbhashnum = 1
tcbhashsize = 1024
tcbquicklisten = 1
tcp_compat_42 = 1
tcp_cwnd_segments = 8
tcp_dont_winscale = 0
tcp_keepalive_default = 1
tcp_keepcnt = 8
tcp_keepidle = 30
tcp_keepinit = 150
tcp_keepintvl = 30
tcp_msl = 60
tcp_mssdflt = 536
tcpnodelack = 0
tcp_recvspace = 262144
tcp_rexmit_interval_min = 2
tcp_rexmtmax = 128
tcprexmtthresh = 3
tcp_rttdflt = 3
tcp_sendspace = 65536
tcp_ttl = 128
tcptwreorder = 0
tcp_urgent_42 = 1
udpcksum = 1
udp_recvspace = 262144
udp_sendspace = 262144
udp_ttl = 128

Thanks for any help,
D.
27 REPLIES 27
Ivan Ferreira
Honored Contributor

Re: TCP slow from 5.1b machine to XP over long link

Slow connections in one direction only usually is a problem with the network adapter/switch autonegotiation.

You could try manually setting the network adapter speed with lan_config. You can also disable the autonegotiation at the switch.

Check the output of netstat -ni, if you have errors and collitions, this is the most likely cause.
Por que hacerlo dificil si es posible hacerlo facil? - Why do it the hard way, when you can do it the easy way?
Denver York
Advisor

Re: TCP slow from 5.1b machine to XP over long link

Thanks for the input.

I've manually set the speed and duplex already.

The problems actually exist either direction across the link, but depend upon which OS is used as the sender (Unix-XP = bad, Unix-Unix=bad, XP-Unix=good, XP-XP=good).

Ideas?

D.
Ivan Ferreira
Honored Contributor

Re: TCP slow from 5.1b machine to XP over long link

You could try incresing:

tcbhashsize

You can double the values. The maximum size is 16384.

Also, you could disable PMTU.

pmtu_enabled

Do you have errors in the netstat -ni output?
Por que hacerlo dificil si es posible hacerlo facil? - Why do it the hard way, when you can do it the easy way?
Michael Schulte zur Sur
Honored Contributor

Re: TCP slow from 5.1b machine to XP over long link

Hi,

what kind of nic and network equipment do you have?

greetings,

Michael
Al Licause
Trusted Contributor
Solution

Re: TCP slow from 5.1b machine to XP over long link

Try running tcpdump on the Tru64 side and/or Ethereal on the PC side. In particular look for the window sizes.

What you might find is that one or the other, usually the PC, is shutting down the window size indicating that it's buffers are full or it can't take any additional input. In particular, look for the window size to shrink to zero.

If this is not the case, try to identify which side has sent the last packet and see who is waiting on who.

Also look for dropped packets, often indicated as duplicates or duplicate acks and/or the same packet sent multiple times.

For this situation, packet tracing is often the best method for troubleshooting.
Denver York
Advisor

Re: TCP slow from 5.1b machine to XP over long link

Thanks guys!

Ivan, I've increased tcbhashsize with no help. I've also tried disabling pmtu with no help either. Thanks though.

Michael, I don't know the details of the NICs or other network equipment involved, but I'm pretty sure it's not hardware related because of:

1. It's only a problem for Unix-MS and not the other way around.
2. It's not a problem when the machines are both local.

Could I be wrong? Absolutely, but I'm looking at the software side of things first.

Al, I suppose I'm gonna have to pull out some of these tools. Never used them before as this is not my primary function (Generation Control Engineer for an electric power utility), but I gotta do what I gotta do.

I'll post with what I find.

Denver
Michael Schulte zur Sur
Honored Contributor

Re: TCP slow from 5.1b machine to XP over long link

Can you post

netstat -Iee0 -s
?
ee0 is the name of your nic.
ifconfig -a shows all.

Michael
Hein van den Heuvel
Honored Contributor

Re: TCP slow from 5.1b machine to XP over long link


- For Gigabit you need autonegotian on right?

- The software knob I woudl try first is: nodelack=1

- I've seen this behaviour mostly with switch/cable/nic incompatibilities but software can help to avoid/trigger the problem.

fwiw,
Hein.

Denver York
Advisor

Re: TCP slow from 5.1b machine to XP over long link

Guys, I forgot to mention that I see no errors or collisions in netstat -ni.

Michael:

nr0 Ethernet counters at Wed Feb 1 09:49:06 2006

17854564 seconds since last zeroed
3692816193673 bytes received
2987168843752 bytes sent
4624875346 data blocks received
4214565833 data blocks sent
2128188743 multicast bytes received
31032427 multicast blocks received
2985954 multicast bytes sent
46731 multicast blocks sent
0 blocks sent, initially deferred
0 blocks sent, single collision
0 blocks sent, multiple collisions
0 send failures
0 receive failures
# netstat -Itu0 -s

tu0 Ethernet counters at Wed Feb 1 09:49:16 2006

17854574 seconds since last zeroed
3692816695497 bytes received
2987168884141 bytes sent
4624876004 data blocks received
4214566284 data blocks sent
2128189511 multicast bytes received
31032439 multicast blocks received
2985954 multicast bytes sent
46731 multicast blocks sent
0 blocks sent, initially deferred
0 blocks sent, single collision
0 blocks sent, multiple collisions
0 send failures
0 receive failures
# netstat -Itu1 -s

tu1 Ethernet counters at Wed Feb 1 09:49:19 2006

17854577 seconds since last zeroed
2202036771 bytes received
76882857 bytes sent
32134714 data blocks received
1149301 data blocks sent
2128259185 multicast bytes received
31033556 multicast blocks received
3103998 multicast bytes sent
48124 multicast blocks sent
0 blocks sent, initially deferred
0 blocks sent, single collision
0 blocks sent, multiple collisions
0 send failures
0 receive failures


Al, I've tried to run tcpdump but get:

root@ekpcras1# tcpdump 'host 192.168.3.205 and (port ftp or ftp-data)'
tcpdump: pfopen: nr0: No such file or directory
tcpdump: your system may not be properly configured; see "man packetfilter"
root@ekpcras1# sysconfig -q net
net:
arpkillc = 1200
arpkilli = 180
arprefresh = 120
arpunicast = 1
ether_cl_scheduler = 0
ifqmaxlen = 65535
lo_devs = 1
lo_def_ip_mtu = 4096
netisrfair = 1
netisrpriority = 33
netisrthreads = 1
netisrwakeupthreshold = 1
npacketfilter = 256
nslip = 1
route_rate_limit = 0
screen_cachedepth = 8
screen_cachewidth = 8
screen_maxpend = 32

Does ether_cl_scheduler=0 imply that my kernel isn't configured to use this tool?

I'll work on installing ethereal on the PC.

Hein, I've got everything on 100 MB. I'll try the nodelack though.

Thanks guys,
Denver