Link to home
Start Free TrialLog in
Avatar of diggz
diggz

asked on

slow transfers on 100mbit connection

i have two machines, "1" and "2":

1: windows98 + linux 2.2.15
nic: dec tulip 100mbit

2: win98 + linux 2.2.15
nic: 3com 905b 100mbit

the machines are connected with a crossover tp cable.

now, when i try transfering files with both machines in linux, the transfer rate drops to 2Kbytes/sec. with machine 1 in linux and 2 in win98, the transferrate is somewhat similar - 2k/sec. with 1 in win98 and 2 in win98 OR linux, the transfer rate easily goes up to 4 MB/sec!.. when both are in linux, it seems transfers go faster from 2 to 1 than from 1 to 2.

what might be causing this, and how do i fix it?

regards
diggz

Avatar of jlevie
jlevie

The two NIC's are probably not correctly negotiating the correct speed and mode when connect via a cross-over cable. They probably would with a hub as it's live all the time. With a cross-over cable you can wind up in a catch-22 situation in that each side needs to see the other in the correct mode in order to properly set the speed and mode.

You ought to be able to force the cards to at least 100MBps HDX (and perhaps 100Mbps FDX) and get significantly better data rates. For the 905 this can be done with the 3Com configuration program. The tulip card may need to set each time the OS boots. In Linux this can be done with options in /etc/conf.modules. There's information on what the options are at http://www.scyld.com/network/tulip.html.
You probably want 3 for HDX or 5 for FDX.
Avatar of diggz

ASKER

Adjusted points from 300 to 400
Avatar of diggz

ASKER

about using a hub.. i did that too, but the transfer-rate got so slow, it seemed like it stopped (while using the linux - linux and linux - windows setup)

therefore i tried the crossover cable.

i'll try configuring the cards properly, but it seems the tulip card is correctly set up, so i'll try fix the 3com first.

i'll post the results soon

Usually, but not always, the cards will correctly auto-negotiate with a hub. If it's not been locked to a specific speed/mode, I'd expect the 905 to properly configure itself. I've seen more problems with tulip based cards.

Of course another possibility is that one of the cards is simply bad, or possibly conflicting with some other device. Linux won't let you get away with an IRQ conflict, but I have seen windows sort of get away with it.
Check this out to see if it helps. Even though it is not a high delay link... This fixed retransmission problems on my home Win 98 machine networked with 3 linux and 1 NT machine...

http://www.microsoft.com/downloads/release.asp?ReleaseID=16519
Try to isolate the problem in the same way you did by trying the different OS combinations. Here are some things to check/try.

In Linux look at ifconfig. The typical setting for MTU on the ethernet card is 1500 and you should see low or 0 counts in the error stats.

Try a different program. Were you using ftp? Try samba.

Eliminate a disk by routing the received data to /dev/null

Try only going to localhost - ie. "ftp localhost" and try both routing the received data to disk and to /dev/null.

Check top to see if there are any cpu hogs while you are trying these tests (M$ has wintop which you can download - I think it's in the powertools or kernel toys)

Try a flood-ping (only root can flood-ping) with "ping -f -s 1400 the.other.machine.ip" to try pinging with 1400 byte packets at a minimum rate of 100/second. It displays a series of dots indicating packets sent but not returned yet. It will get a bit behind but does it take a few seconds to fill a line or do the dots just start rapidly filling the page? Ctrl-C stops the flood. Note: it's bad form to flood-ping on a live network and especially bad form to flood-ping your boss.

Recheck ifconfig after the flood.

As a last resort run tcpdump (again only as root) with "tcpdump -n -i eth0 > mydumpfile" and try your transfer. Stop tcpdump with Ctrl-C and read the output. It will take a while to grok the output but you may find out where the delay is happening.
Avatar of diggz

ASKER

hold on a sec
Avatar of diggz

ASKER

i should have posted this some time ago, but lynx doesnt like to submit.

i tried jlevie's tips, and it worked perfectly. I am now running both machines on 100mbit half duplex. full duplex only worked fine from machine 1 to 2, but stopped when transfering from 2 to 1.

when i modprobe the cards, i append module options, like full_duplex=0 and media_select=3 .. max transferrate is about 2-2.5 MB/sec.. why is this? i thought 100mbit networks should do maximum 10MB/sec.. my harddrives do about 5-6 mb/sec.. any ideas?

anyway, now the problem is solved, please post an answer, jlevie, and ill give you the points.. might be quite a bit more points than it was worth, but ..wellwell

regards

ASKER CERTIFIED SOLUTION
Avatar of jlevie
jlevie

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of diggz

ASKER

case closed. thanks