Written by Michael Hipp on 18-June-2002.
If you live out in The Sticks (tm) like I do, your only choice for affordable
broadband Internet may be satellite. I purchased a Hughes DirecWay
(2-way; satellite return) system 3 months ago. While not nearly as
good as landline broadband Internet, it works much better than I thought
it would and overall I'm glad I have it. It beats 24,600 bps dialup
Except for on Linux.
The worst feature of the satellite Internet is that the USB modems that do
the uplink/downlink must connect to a Windows host. That's where the
Hughes software runs. No Linux software is available. Which means
the Windows box is acting as a router/gateway for any Linux systems on your
LAN. A backwards arrangement if there ever was one. (To be fair, a
Win2k box does an adequate job of it. But security is an ever-present worry.)
Linux out-of-the-box just doesn't work well with it. Surfing frequently
doesn't load pages. Email won't download. Simple HTTP or FTP
file transfers won't complete. It works just enough to survive but
just barely. And to be sure this is an overall LInux issue, nothing
something specific to a paritcular install: I've seen the identical problem
with Caldera COL 3.1.1, SuSE Pro 7.3 and most recently Gentoo. I've
tried Kmail, Sylpheed, and mozilla mail and none of them will download email
without frequent lock-ups and failures. (And none of these symptoms have
ever appeared on a Win box attached to the same LAN - however there is a
multitude of tuning help available for making it work.) So I (rightly,
I think) began to suspect a simple tuning issue with Linux as regards the
fast, but very high latency satellite network:
# ping www.redhat.com
PING www.redhat.com (22.214.171.124): 56 octets data
64 octets from 126.96.36.199: icmp_seq=0 ttl=242 time=983.5 ms
64 octets from 188.8.131.52: icmp_seq=1 ttl=242 time=982.5 ms
64 octets from 184.108.40.206: icmp_seq=2 ttl=242 time=859.4 ms
64 octets from 220.127.116.11: icmp_seq=3 ttl=242 time=919.3 ms
64 octets from 18.104.22.168: icmp_seq=4 ttl=242 time=1167.1 ms
This is typical.
To shorten this story, I stumbled across a topic in a satellite internet forum that saved the day:
So all you have to do is put this:
echo 134900 > /proc/sys/net/core/rmem_default
echo 134900 > /proc/sys/net/core/rmem_max
echo 0 > /proc/sys/net/ipv4/tcp_timestamps
ifconfig eth0 mtu 1460
Somewhere it will execute everytime the network is brought up but after the
network is fully running. For most distros this would be runlevel 3.
In Gentoo I put it at the end of /etc/conf.d/local.start. In Red Hat
it would go in /etc/rc.local .
If I were a Guru, I'd go into a long, impressive-sounding explanation of
what the four commands above do. I'm not. So I won't even try.
Anyone who knows where to find such an explanation can email me at
But suffice to say those parameter changes tell the network to talk
loud and take big bites to counter the long round-robin time of the satellite.
If you want to see the parameters before or after they are changed, enter this:
Some of this will get better if Hughes ever releases the promised DW4020
gateway that gets the Windows host out of the loop. As of this writing
(June 2002) it is still a few months away and may be too expensive for us
little people. Stay tuned. (Rumors are the DW4020 uses Linux under
Anyway, after making the above simple changes, my system now works great.
Kmail doesn't choke. And when I do 'emerge rsync' on Gentoo (keeps
package portage tree up-to-date by rsync'ing some 15,000+ files) it will
succeed every time, even when hitting the mirror down in Venezuela. Before
it would succeed maybe 1 of 5 times even with nearby N. American mirrors.
Nice to have my Linux box no longer seeming like a crippled stepchild on the satellite Internet.