Remote Access technologies with ML/PPP Performance -
Squeezing out all the performance you can
The Point-to-Point protocol (PPP -
RFC 1661) is an amazing technology that with a remote access connetion ( modes,
ISDN, ADSL, etc) makes your machine become part of the Internet.
The problem is that with all the added functionality, the processing
overhead can slow down your link. But wait! There are things
you can do to optimize the link as best as you can. This site covers topics
such as serial UARTS, MTU settings, 56Kb/s modems, ISDN, xDSL, and cablemodem
technologies. This page also covers optimal settings for many popular TCP/IP stacks
In addition to this WWW page, I also highly recommend
reading the following RFCs (very technical) and web pages:
RFC 1144) - IP Compression over slow link (SLIP/CSLIP MTUs)
RFC 1334) - PPP Authentication Protocols (PAP/CHAP) RFC 1570) - PPP Link Control Protocol (LCP) RFC 1661) - PPP Protocol RFC 1962) - PPP Compression Control Protocols (CCP) RFC 1990) - Multi Link PPP negotiation (MLPPP)
This great shareware PPP package FAQ has some excellent tips.
xDSL: The next generation of high speed remote access for the masses
The term "xDSL" is an abbreviation for a grouping of WAN
connectivity technologies. Originally designed by AT&T's Bell Labs for
copper wire, xDSL is being slated as the next generation method of high
speed universial communication. First, the xDSL abbreviations:
ADSL - Asmetrical
Digital Subscriber line : Typically 1.5Mb/s to the customer and 384Kb/s to
the remote network (internet) [MAX: Rx: 8.192Mb/s Tx: 640Kb/s]
HDSL - High bit-rate
Subscriber line : Typically a symmetrical 1.54Mb/s (T1) link [very
VHDSL - Very highspeed
Digital Subcriber Line : Slated towards 60Mb/s [doesn't exist in any
productional enviroment yet]
Concidering that ADSL will be brought to the consumer market, let's
concentrate on ADSL for the moment. With ADSL, there are currently two
main competing transmission standards and one weaker contender:
QAM - Quadrature
Amplitude/Phase Modulation [Found in most Cablemodems]
Currently, only DMT has been accepted by ANSI (American National Standards
Institute) as an official ADSL transport though 90% of the current xDSL market
is based on CAP technology. I don't see any end to this raging debated except
that the ANSI standards group is developing a CAP-based standard now. It is
entirely possible that two standards might have to co-exist in the same market.
Anyway, some of the major benefits of ADSL are:
ADSL can co-exist
with a POTS (Plain Old Telephone Service) connection! This means you can
have both your normal telephone services *and* ADSL running over the same
DMT ADSL breaks the connection
into multiple 4Khz sub-channels. By dividing the line into these
increments, ADSL can adaptively reduce the use of specific sub-channels
based upon noise, line impairments, etc.
RADSL (CAP) connections try to
optimize the connection for maximum performance though bandwidth can be
reduced by the carrier for pricing reasons.
Finally, most of the current ADSL trials being conducted by many of the
TELCOs are implimenting this technology with ATM (Asyncronous Transfer
Mode). By running the user's data over ADSL with ATM, different
levels of quality of service (QoS) can be established. QoS can assure
that one user's FTP transfer will not effect another user on the same
link's simultaneous audio or video transfer.
But, with the implimentation of ATM as a transport, both network
traffic overhead and administration will become an issue.
For more information on the various xDSL technologies (ADSL,
RADSL, HDSL, SDSL, VHDSL, etc) and technical info on the differences
between CAP and DMT, check out this EXCELLENT URL:
Recently, a friend sent me an e-mail asking about the new 56k
modems and which one I recommended. Here is my detailed reply:
>I was wondering, do you have a comprehensive list of modems? I'm looking
>for a modem for a friend of mine. Who has the best one? Is the 56K ones worth
>it? Which brand? etc/etc/etc....
56k connections: *ALL* of these connections will depend on a few things:
56K connections require that your ISP's modem connections
are *fully* digital. These connections can be ISDN BRIs,
channelized T1s, or ISDN PRIs but they CANNOT be POTS
lines. Most major ISPs have been installing digital lines for
some time but most Mom & Pop ISPs are all analog based. So this
means that you should put some research in picking a ISP.
Check out my notes on picking an ISP for tips, ideas, etc.
Note: Some of the older digital modems out there in
units like the Ascend Max400x are NOT capable
of supporting 56k connections. The reason for this is
that they took the quick route and just
converted the digital signal BACK into a analog signal
for the modem chipsets since it was easier
for their engineers to impliment. If your ISP uses Ascend
Max equipment, ask them if they are using the new 12-modem
cards. If they aren't, they won't be able to support
56k connections until they replace the cards.
USR's x2 and Rockwell/Lucent's
K56 56k technologies aren't compatible
right now so until a standard is established, buy a modem that
is compatible with your ISP's modems. If you go with USR,
the Courier is GREAT but the Sportster is a better unit for the common user.
If you want to go with a Rockwell/Lucent 56k unit, buy a modem that uses the Lucent
Picking a modem: There are basically three kinds of modems out there right now:
(old Hayes and Telebit (Cisco) chipsets don't count right now)
USR (Sportsters are good, Courier are GREAT (expensive though))
though both units are flash upgradable.
[ Sportster, Courier, some USR-based Megahertz PCMCIA cards]
Couriers are excellent with bad lines but they don't always
work very well with cheap Rockwell-based modems
USR's x2 56k code has been out and working for some time. I
personally setup a 56k server code running on a USR Courier
I-Modem. I can connect to it at 48K while a few other uses usually get
Rockwell (most common modem chipset out there)
[ Supra, Zoom, Cardinal, Motorola, Boca, etc]
Good connection rates but the connections are prone to hanging up
on crappy lines
Their new K56 56k code is coming out very soon but no ones
knows how well it will work. As a FYI, Rockwell already
recalled many of their initial K56 chipsets since they didn't
work to expectations.
[ If you are aware of which modems out there are based on the ]
[ Lucent chipset, I would appreciate a e-mail! ]
Better than Rockwell chipsets for connectivity over bad lines
Lucent implements the K56 56k standard and it sounds like their
implementation is better than Rockwell's design.
Check out this e-mail I
received about how the new 56k modem technology works, what is the current state of the public
telephone (POTS) network and how to determine if the 56Kb/s modem
technologies will even be possible for you!
ML/PPP for Linux: The Choice of the GNU Generation!
Are you an aspiring new Linux user? Looking to get anything from
just PPP to full Dial-on-Demand (DIALD) and IP Masquerading running? You
can either slog through all the FAQs, HOWTOs, etc like I did or use my
Cliff Notes (tm) pages on how cheat effectively!
TrinityOS: A step-by-step guide to installing Linux with PPP,
Diald, MASQ, DNS, and several other things (SAMBA, etc). Check it
Check out my PPP notes v1.3 to get Linux
the net with PAP authentication
Also check out my IP Masq notes v1.05 for
setting Linux up to not only establish PPP session *on-demand* when your
traffic is bound for the Internet but to also let you do full LAN
emulation behind one TCP/IP address (other machines uses the Linux
box's PPP connect for their Internet connection) via IP Masquerading!
configs: Is CHAT just not cutting it for you? Want to try multiple
phone numbers? Do you want to use DIALD's? FIFOs? Automatic Mail
exchange? Check out Ed Doolittle's excellent notes on a
*Old Stuff*: Windows95
setup document for CSU, Chico's Netblazers
(serial port hardware, MTU calculation, and PPP
for most standard PPP stacks, Netmanage Chameleon, FTP OnNet, and Trumpet
Serial Port Driver Updates:
If you run Microsoft Windows v3.x, upgrade your Windows's COMM.DRV to
something like CyberComm.
CyberComm replaces the brain dead serial port driver for Windows and will
allow you to increase the serial port speed to 115200 bits/sec. This
increase will gain you overall modem performance under Windows.
Serial Port UART Upgrades:
Make sure you have at least a 16550 serial port or better. The 16550 serial
chip lets Windows ignore incoming data while it does other things. Otherwise, when
Windows isn't looking at the serial port for any given time, data could be lost.
So you aren't sure if you have a 16/5/6/750? Run the program called "C:\MSDOS\MSD"
which is included with MS DOS v5.0+. From here, goto the "COM Ports" menu. At the
bottom of the listing, you will see the text: "UART Chip used:" For more detailed
info on serial ports and their benefits, check out my
ISDN / Serial / ISP Pros and Cons
Page. Anyway, here's a quick intro on the available chips:
8250 (very old: If you have one.. you MUST be on an XT or something.)
16450 (fine for non-multistasking systems ie. DOS)
16550 (16 byte buffer: Common Max Speed: 115200 : good for a common non-server Windows computer)
16650 (32 byte buffer: Common Max Speed: 460800 : the next generation serial port is become more common.)
So, you don't have a 16550? Its possible to upgrade some serial cards (old
ones with the 40-pin UART chip socketed to the card) but any serial ports
built into the motherboard or internal modem card cannot be upgraded.
You will also begin to hear about USB:
USB - Universial Serial Bus: Much like the keyboard/mouse bus on the
Apple Macintosh. This new high performance bus will become common in a
few years and solve all this IRQ, slow serial port problems associated
Serial Port DTE Speed Optimization:
Lock your modem's serial port speed to the fastest setting available. The
reason for this is that your modem has the ability to do compression and you
want to provide it with as much data at one time as possible. So for a
normal text file
that would take 1 minute to transfer over, it can take less than 30 seconds with
compression. For 14.4kmodems, lock your port speed to at least 57,600 bits/s and
for 28.8k users, lock it to 115,200 bits/s. If you can't change the settings in
your Chameleon Sampler, see belote for more info!
TCP/IP Stack PPP MTU/MRU optimization:
Change your PPP MTU and MRU settings. MTU stands for Maximum Transfer Unit
and MRU stands for Maximum Receive Unit. Check out the RFC on PPP to get all the
hard core details if you wish. Basically, these two settings refer to the
number of bits sent per TCP/IP
packet. Smaller the number, the better the responce from things like Telnet but data
throughput using programs like FTP can decline drastically. The exact reverse happens
when you use too large of a MTU/MRU number.
So what numbers are the best? Follow this rule of thumb from RFC 1144
at the bottom of page 19:
[ MTU = ping time / 10 * bits/s ]
For a 28.8k modem usually gets about 150ms ping times (mileage will
0.150 / 10 * 28800 = 432
A 14.4k modem usually gets about 175ms ping times so:
0.175 / 10 * 14400 = 252
I've found through experimentation that an MTU of 470 is a good performer
for 33.6k Telnet and ftp connections. Mileage will vary with the quality of
your modem, the connection clarity, the alignment of the moons, etc.
The Trumpet Stack also lets you change the Maximum Segment Size
and Receive Window which is negotiated when you connect to another
The rule of thumb for MSS is 2 to the power of some number MINUS
40 which is LESS than your MTU number. Why the -40? The 40 is the
common byte size of the TCP/IP header in every TCP/IP packet.
[ MSS= highest power of 2 minus 40 ]
MSS= 2^8 = 256
= 2^9 = 512 - 40 = 472 (this is the setting I use w/ a MTU of
470. Yes, this doesn't exactly follow
the rule of thumb but it works well.)
The rule of thumb for RWIN is 3 to 4 times the MSS number.
[ RWIN= 3 or 4 * MSS ] (3 for lousy connections / 4 for clean ones)
RWIN= 4 * 256 = 1024
= 4 * 512 = 2048 (for the higher MSS/MTU that I use)
All I can say is play with it, do some benchmarks of FTP's, cat'ing some
text files in a telnet session, and time them all.
Chameleon is one of the best packages available for Windows-based TCP/IP networking.
Their applications are easy to use and the package comes with a ton of
them. Check out their Web page for more
info about Chameleon and their other products.
Chameleon comes in several versions: 4.01, 4.5, and now 4.6 (32-bit).
Version 3.11 was their inital release that was
fairly stable and is now their
Sampler package (free working demo). The main problem with the sampler package is
the serial port speed is limited to 19,200 bit/s. Check out this
newsgroup post I found for possibly fixing that to allow for 115.2K serial speeds.
Version 4.6 is Netmanage's new package. Now with
a new interface and over 45 applications in the packages, v4.6 is a awesome
product and is Windows 95 compatible.
Changing the MTU for Chameleon: In the WIN.INI file, do a text search for
"TCPIP". This will take you to the Chameleon setup area. Here, add the
PPPMTU=xyz (xyz being the MTU value calculated from above)
Changing the port speed: Under Chameleon's CUSTOM program, goto
SETUP and then PORT. Under this menu, select the fastest setting
available. See above for more information.
Trumpet (aka TCPMAN) is a shareware SLIP/PPP package that is very flexable,
affordable and reliable. The only problems I have experienced with Trumpet is
that the 2.0b version is not compatible with Shiva's older LanRover
products but the newer versions ARE compatible. Trumpet v2.0b is a nice
package since it allows users to use it after the 30 day shareware licence
has expired. The new version of Trumpet (currently 2.1f) is much better
in terms of performance but once 30 days goes by, the software refuses
to run unless you register it.
The makers of Trumpet have now come out with a 32-bit version of their stack that
seems to perform better than Windows 95's included stack and its easier to configure
too! Go ahead and check out Trumpet's WWW site for more info.
While TCPMAN is loaded, goto FILE and then setup. The TCP MTU, TCP
RWIN, and TCP MSS should be all calculated from the above for optimal
performance. So, you should have at LEAST the following:
FTP Corporation's Pc/TCP TCP/IP stack has been long reknown for their
high performance software. Currently, there is:
v3.1 for Windows v3.x computers
OnNet32 for Windows95 machines
The major advantage to this TCP/IP is that its kernel based. Your able
to make significant alterations to buffers, window sizes, etc that can
make a dramatic performance difference. Though I don't use Pc/TCP for
modem PPP connections, here are my kernel optimizations to make TCP/IP
fly on a Ethernet network:
In your PCTCP.INI file, make the following changes and/or additions
to each section:
One note about Pc/TCP: I've never been a massive fan of their FTP
clients. But since they are Winsock-compatible, you can use a shareware
client but get all the performance!!!
You are graphical user
(for this main page) since 8/28/99