I have a wired network connection from my Ubuntu (10.10) PC (call it PC-A) to a Netgear MR314 router and from there to a Thompson TG585v7 ADSL modem. The only devices connected (by ethernet cable) to the Netgear router are a network printer and the PC in question (PC-A). Connected (by ethernet cable) to the Thompson ADSL modem are two PCs (one Ubuntu 10.10 - call it PC-B, one with OpenFSG- call it PC-C) and the Netgear router as well as some part-time devices on the Wireless connection. So, ignoring wireless, it looks something like this:
The World via ADSL! | | PC-C ------ Modem ------- PC-B | | | Printer --- Netgear Router --- PC-A
This seems to work without any problems under normal operation.
However, if I try to upload large files from the problem PC (PC-A) to either PC-B or PC-C, the data is transferred for a while, but after around 5 minutes the network connection disconnects briefly. This also sometimes (but less consistently) happens if the transfer is going in the other direction. I've tried the transfers with scp, rsync-over-ssh and plain rsync. All suffer the same problem.
I can tell this has happened as a notification window appears at the top of the screen saying "Wired network. Disconnected: you are now offline" and a few seconds later a notification window appears saying "Auto eth0. Connection Established" and the network works again. Unfortunately, this results in the transfer stalling and not necessarily being recoverable (depending on the type of transfer).
I can consistently transfer files by scp or rsync between PC-C and PC-B (in either direction) without any problems at all and I've never noticed having problems downloading large files from the web onto PC-A.
In a quick test I just performed, I opened a terminal on PC-A and tried to scp a 700MB file from PC-B to PC-A and the connection dropped after 200MB. I then opened Google Chrome and downloaded a 693MB file from the web and the connection didn't drop at all.
When the connection drops,
/var/log/messages shows this:
Jan 27 19:37:58 morat kernel: [ 4065.023469] e1000e: eth0 NIC Link is Down Jan 27 19:38:07 morat kernel: [ 4074.083848] e1000e: eth0 NIC Link is Up 100 Mbps Full Duplex, Flow Control: RX Jan 27 19:38:07 morat kernel: [ 4074.083852] e1000e 0000:00:19.0: eth0: 10/100 speed: disabling TSO
The time between "NIC Link is Down" and "NIC Link is Up" seems to be consistently 9 seconds.
I'm thoroughly confused. I probably haven't provided enough information to get to the bottom of this, so if there's anything else that would be useful, please say in the comments or wherever and I'll add whatever detail I can.
Thanks in advance for any help you can offer.