Networking FreeDOS - mTCP

mTCP:

  In 2009 Michael B. Brutman, see: http://www.brutman.com/ (*01), a
  programmer and DOS enthusiast, wrote a new TCP/IP Kernel for DOS
  called "mTCP", see: http://www.brutman.com/mTCP/ (*02). He tested
  this kernel on a PCjr, see: http://en.wikipedia.org/wiki/IBM_PCjr
  (*03) 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://www.brutman.com/mTCP/mTCP.html (*04).

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 MiB RAM. The OS was FreeDOS 1.0. The file downloaded was a
  mp3 with a file size of 4 MiB.
  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 GiB 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.

  (*01) Link is still OK, see also:
https://web.archive.org/web/20220806055530/http://www.brutman.com/
  (*02) Link is still OK, see also:
https://web.archive.org/web/20220902221003/http://www.brutman.com/mTCP/
  (*03) Link is still OK, see also:
        http://www.brutman.com/PCjr/pcjr.html
  (*04) Link is still OK, see also:
https://web.archive.org/web/20220906052213/https://www.brutman.com/
mTCP/mTCP.html
        (everything in ONE LINE, NO free space!)

  Copyright © 2007 Ulrich Hansen, Mainz (Germany), updated 2010,
  2020 and 2022 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.2 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 1.2".