TCP/IP for MS-DOS
by Greg Covey
20 September, 1999
This document outlines using the University of Waterloo TCP (WATTCP) clients under MS-DOS. There are a few commercial TCP/IP stacks available for MS-DOS, along with Microsoft's own version (found on the NT4.0 server CD), but the WATTCP clients are entirely free. With that, they are completely unsupported by the original author. Monkeying around with these utilities is merely a hobby. I did not write the WATTCP libraries nor any of the clients. I simply find it interesting and wish to share my experiences with you here.
The Waterloo TCP is not actually a TCP/IP stack. It is merely a set of programming libraries used for making TCP/IP socket connections. Since each of the WATTCP clients is pre-complied, the necessary library commands used in each one are complied into the binary. This means that the overhead to use these clients is quite low. The only drawback is that the computer running the WATTCP clients is not actually a true host on the IP network. You can't ping it, for example, from another box unless it's running a daemon (see below).
Over the past few days, I have experimented with these programs. The box I'm using is an Intel Pentium 133 with 32Mb of ram, with a Connor 120Mb fixed hard drive. I've installed MS-DOS version 6.22 along with the packet driver for my net card (Samsung 1200-tx). My local network consists of two NT4 servers and an NT4 workstation. All of this is connected to the Internet through a SDSL router.
The only hard part to using the WATTCP clients is finding and loading the packet driver for your particular net card. Usually this is a single file, with the '.com' extension, and can be found on the floppy that came with your net card. If you don't have the original floppy disk that came with your net card, check the manufacturers web site for downloadable drivers. It is possible that some manufacturers don't write (or support) packet drivers for their products. Once you obtain the packet driver, copy it to your boot drive of your DOS install. Then, load it with a command in the AUTOEXEC.BAT file, like this:
where 'SC1200' is the name of the packet driver. (In this example, my netcard is a Samsung SC1200-tx.) That's all you have to do. Some packet drivers may require more memory than others. If you're loading other devices, try loading them into upper memory using the DEVICEHIGH command in CONFIG.SYS, or the LOADHIGH command in AUTOEXEC.BAT
The WATTCP.CFG file
Each of the WATTCP clients expects to see the WATTCP.CFG file somewhere in the current path. This file defines basic information about your host, and how it will interact with other hosts on the network. Here's a sample WATTCP.CFG file. The '#' indicates a comment and is not required.
my_ip=192.168.0.69 #The ip address of my dos box
netmask=255.255.255.0 #The subnet mask for my ip
nameserver=192.168.0.2 #The nameserver for my domain
gateway=192.168.0.1 #The gateway for my subnet
hostname=lala.smashco.com #The hostname of my dos box
DO NOT use these settings! Make sure to configure your WATTCP.CFG file correctly. This example is used to show the reader the basic requirements in the WATTCP.CFG file, and define the correct syntax.
I'm assuming the reader will understand each entry. This is the basic information that ANY host needs to participate on a TCP/IP network. Some WATTCP clients require more entries in this file. More on that later.
Organize your files
I like to put all the WATTCP clients, along with the WATTCP.CFG file, into one directory. Call it what you will, and to make your life easier, add it to the SET PATH command in AUTOEXEC.BAT.
This is not an exhaustive list. There may be more utilities, or different versions, available. This list represents the archives I was able to find at the time of writing. I have only tested about a third of these utilities. A useful method of tracking down other WATTCP utilities is to use the Lycos FAST-FTP search engine.
|apps.zip||Contains many basic IP clients: ping, finger, daytime, etc.|
|beholder.zip||The SNMP-able Ethernet Monitor|
|comd.zip||COMD is a program which lets you share serial devices such as modems over a network.|
|ftp.zip||Version .6 of the FTP client. Kind of buggy, check out version .7|
|ftpbeta.zip||Version .65 of the FTP client.|
|ftp07.zip||Version .7 of the FTP client. Works much better.|
|gophserv.zip||Gopher server. One of two daemons I have found.|
|htget102.zip||Retrieve an HTML document without a browser.|
|irc101.zip||An IRC client.|
|lynx_386.zip||The Lynx Web Browser. The version referenced in this archive are specifically for WATTCP. There are other versions for other IP stacks.|
|nslb01a.zip||Nslookup and nsquery|
|nutil011.zip||Companion Applications For Tsoft's NFS Driver for MS-DOS.|
|The venerable mail & news reader, Pine. The versions referenced in this archive are specifically for WATTCP. There are other versions for other IP stacks. Note that version 3.91 is much slimmer than 3.96.|
|pprd200.zip||PPRD is a small program that turns an XT or AT running DOS into a dedicated LPD printer server. You can send jobs to the printers from any machine running LPR.|
|rdemo01a.zip||These are the three simple demo programs from SunRPC compiled with the WatTCP tcp/ip library and a port of SunRPC to DOS.|
|rmtd091.zip||Remote MagTape Protocol Daemon.|
|simplftp.zip||Trivial FTP client|
|smbpd094.zip||SMBPD is a small program that turns an XT or AT running DOS into a dedicated SMB printer server.|
|smtpserv.zip||SMTPSERV is a program which runs on your pc and allows it to accept SMTP based mail from other sources, even from several sources at one time.|
|A simple talk client. I haven't tested it, but I'm sure v13 is most stable.|
|telnetd.zip||A buggy telnet daemon. When remote user disconnects, the server re-boots the computer!|
|trtb01b.zip||A port of the Unix 'traceroute' program, built with a slightly modified version of the WATTCP libraries.|
If you have found any of this information useful, please
. I'd be very interested in your experiences with WATTCP, and why you decided to try it out in the first place.