Ah, the joys of DOS networking .. getting a 5150 on the Internet is actually pretty easy.
Option: Connect to a more modern PC with a serial cable and use as a terminal
This is equivalent to using your machine as a terminal - almost no intelligence is required. The machine you are connected to (Linux? Some other Unix?) is doing the heavy lifting of connecting to the outside world, sending your computer the proper screen handling codes, etc.
I used my PCjr for years as a terminal to the various Unix machines on campus I was connecting to. Back then that was state of the art. This solution works well for machines that are limited by CPU speed or memory because it doesn't take a lot to manage the serial port and to emulate a terminal. You are not running TCP/IP on the PC so that overhead is not a factor.
You will need a null modem adapter and you will need to set up your other machine to drive a hardwired terminal. It is not that complicated though.
Option: Connect to a more modern PC with a serial cable and run PPP or SLIP
With this option you are actually running TCP/IP on the machine and using the serial port as your point-to-point link to another machine. The other machine has to be capable of serving as a gateway so that your TCP/IP traffic can be routed elsewhere. (Well, technically this is not true, but most Linux/Unix machines can do this anyway.)
At 4800 or 9600 BPS this technique is tolerable for Telnet, IRC and other applications that spend more time waiting for people to respond. It is pretty slow for FTP and anything else that needs to do a lot of data transfer. You effectively are adding the overhead of TCP/IP processing to the very small bandwidth that you have. For FTP traffic you can expect 0.7KB/sec transfer rates.
There should be a variation of this that uses the parallel port and a Laplink style cable instead. That would give you some fairly decent speeds compared to the serial port.
Option: Put in an 8 bit ISA Ethernet card
This is the best option if you are going to use the machine a lot. But it takes a precious slot and requires some setup.
With an Ethernet card and a packet driver you can run TCP/IP over the Ethernet at some pretty good speeds. I've measured my XT sending and receiving data at around 30KB/sec using FTP, and that includes the overhead of the disk I/O. IRC and Telnet are very fast too - you will not be tapping your fingers waiting for anything.
This page explains the theory of packet drivers in more details:
Option: Use one of those Xircom parallel port to Ethernet devices
This option is a hybrid - it gives you an Ethernet connection without tying up a slot in your machine. The Ethernet connection is not as fast as the one that a real Ethernet card would provide, but it is easy to do and the software can't tell the difference.
This page has some details on the Xircom PE3-10BT:
I've used the Xircom PE3-10BT on a wide variety of machines. On a standard parallel port (not bi-directional) receiving data will be half the speed of sending data, but it is more than fast enough to be useful. The Xircom can be configured not to require an IRQ which is a bonus for systems where IRQs are tight.
Other "pocket ethernet" devices are similar in operation, but I've not tried them.
Software
And lastly, you need software for all of this ...
The oldest and most widely used software is based on a library called WATTCP written by Erick Engelke (
http://www.erickengelke.com/wattcp/). It has been around for a long time, which is both a good thing and a bad thing.
NCSA Telnet provides a good Telnet client and a slightly usable FTP server, but it is very old code at this point. It also does not run on an 8088 - you will need an 80286 or a NEC V20 in your 5150 to run it.
Trumpet (NTCPDRV) is a TSR that provides a TCP/IP stack. While Trumpet is very flexible about what programs can access it and use it, it is not very high performance and it has a reputation for being flaky.
I have a personal bias here, but I think the best software to use is my own! I looked at Trumpet and decided that the TSR approach that Trumpet uses is too unstable and adds overhead, so I wrote my own TCP/IP library and applications. Applications include DHCP, Telnet, FTP, IRC, FTP server, SNTP, Netcat, and Ping. You can find documentation, binaries and source code at
http://www.brutman.com/mTCP .