Satellite Internet

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 any day.

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
PING ( 56 octets data
64 octets from icmp_seq=0 ttl=242 time=983.5 ms
64 octets from icmp_seq=1 ttl=242 time=982.5 ms
64 octets from icmp_seq=2 ttl=242 time=859.4 ms
64 octets from icmp_seq=3 ttl=242 time=919.3 ms
64 octets from 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:,3257394~root=sat~mode=flat

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:

cat /proc/sys/net/core/rmem_max
cat /proc/sys/net/core/rmem_default
cat /proc/sys/net/ipv4/tcp_timestamps
ifconfig eth0

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 the hood.)

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 the
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.
searchSearch Index