Networking FreeDOS - mTCP
mTCP:
In 2009 Michael B. Brutman (see: http://www.brutman.com/), a programmer
and DOS enthusiast, wrote a new TCP/IP Kernel for DOS called "mTCP"
(see: http://www.brutman.com/mTCP/).
He tested this kernel on a PCjr (see: http://en.wikipedia.org/wiki/
IBM_PCjr) from 1983. According to his website, he wants to create a
modern TCP/IP kernel that has a small size and high performance. The
program is already working great, it is updated frequently.
License:
mTCP is Free Software. On May 27, 2011 Michael Brutmann released it
under the terms of the GPL v3. The source code is available at
http://code.google.com/p/mtcp/.
Applications:
Like WatTCP, mTCP is a library that is linked with the application code,
i.e. it is built into the applications. In summer 2010 the following
applications were available from his website:
* dhcp.exe -- a DHCP client
* ftpsrv.exe -- a FTP server
* dnstest.exe -- a DNS resolver
* ftp.exe -- an FTP client
* ircjr.exe -- an IRC client
* nc.exe -- a netcat utility
* telnet.exe -- Telnet
* sntp.exe -- a NTP (Network Time Protocol) client
* ping.exe -- Ping utility
Configuration:
mTCP uses packet drivers. It needs a configuration file on a location
specified by an environment variable, e.g.:
set MTCPCFG=c:\mtcp\tcp.cfg
The configuration file looks like this:
--- TCP.CFG ---
PACKETINT 0x60
IPADDR 192.168.1.50
NETMASK 255.255.255.0
GATEWAY 192.168.1.1
NAMESERVER 192.168.1.1
MTU 1500
If you have a DHCP server running on your network, you don't need to
write down static addresses. Instead you only have to define the vector
of the packet driver and the name of the machine in TCP.CFG:
--- TCP.CFG ---
PACKETINT 0x60
HOSTNAME PCjr
Afterwards run DHCP.EXE. The program will update the configuration file
with all the info it gets from the server.
Performance:
In a first test the FTP application of mTCP was faster than all other
programs tested. In fact it downloaded a binary file seven times faster
than Arachne and ten times faster than NCSA Telnet!
The computer used for testing was a Compaq Contura Aero 486SL with 33
Mhz and 20 MB RAM. The OS was FreeDOS 1.0. The file downloaded was a
mp3 with a file size of 4 megabyte.
Results:
mTCP FTP 15 sec.
curl 23 sec.
WatTCP FTP 51 sec.
Watt-32 FTP32 51 sec.
Datalight Sockets FTP client 69 sec.
Arachne 1.93 104 sec.
NCSA Telnet FTP 149 sec.
CUTCP FTP v. 2.2 155 sec.
EZ-NOS2 231 sec.
Of course the results depend on the hardware used for testing. For
comparison: On a more modern laptop (IBM X60T, 3 GB RAM, OS: Ubuntu 8.04)
the same file was downloaded by Filezilla in five seconds.
Conclusion:
mTCP seems to work fine. Its performance looks very promising. It's
release as Free Software in 2011 is a great step forward for FreeDOS.
The development of mTCP should be monitored closely by everyone
interested in DOS and FreeDOS networking.
Copyright © 2007 Ulrich Hansen, Mainz (Germany), modified 2010
by W.Spiegl.
For more information see here.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.1 or
any later version published by the Free Software Foundation.
A copy of the license is included in the section entitled
"GNU Free Documentation License"