# Networking FreeDOS - Loading the TCP/IP Kernel (Stack)

## Overview

      Modern operating systems have their own TCP/IP kernel already built-in:
      Microsoft systems come with "Winsock" since Windows 95. In GNU/Linux the
      TCP/IP stack is part of the Linux kernel. DOS however comes without
      kernel. So after we had installed our packet driver, we have to give the
      TCP/IP kernel a thought.

#### [Main menu] [top] [How it works] [Configuration] [Examples]

## How it works

      The TCP/IP kernel is also called "stack" or "protocol stack", because it
      consists of two layers: IP and TCP. IP runs on top of the hardware driver
      and TCP on top of IP, providing an interface to network applications. For
      DOS different types of TCP/IP kernels are available.

      (Picture of TCP/IP kernel)

      As we see in the figure above, they can either work as external programs
      or they are already built into the applications.
        * An external TCP/IP kernel is typically started by AUTOEXEC.BAT or by
          a batch-file. It stays memory resident, so it can answer ping
          requests for instance.
        * Other network applications come with TCP/IP kernel functions already
          built-in and do not need an external TSR kernel. An application with
          built-in TCP kernel has the advantage that it doesn't need another
          driver which consumes precious DOS memory. On the other hand TCP/IP
          functions are limited to those of the network application and are
          only provided as long as it runs.

#### [Main menu] [top] (How it works) [Configuration] [Examples]

## Configuration needed

      Every TCP/IP kernel must be configured with general information about
      the network, as IP address, netmask, nameservers and gateway, or it
      must be told to get this information via a BOOTP or DHCP server.

#### [Main menu] [top] [How it works] (Configuration) [Examples]

## Examples

      Examples for external TCP/IP kernels for DOS are
        * the free Trumpet TCP kernel NTCPDRV.EXE,
        * the TCP/IP kernel of Novell NetWare TCPIP.EXE,
        * Microsoft MS client's TCPTSR.EXE and
        * FTP Software Inc.'s ETHDRV.EXE.
      Examples for TCP/IP kernels built into DOS applications are
        * WatTCP, which is f.i. already built-in the graphical web browser
          "Arachne",
        * the mTCP kernel, written in 2009,
        * the KA9Q kernel which is part of that program,
        * the NCSA Telnet kernel which is built into the applications included
          in this suite,
        * the CUTCP kernel and
        * the University of Minnesota stack, which is part of "MINUET".
      More than half of the DOS networking applications available use the
      WatTCP kernel says Jeffrey L. Hayes from the retrocomputing website
      http://www.oldskool.org (see: ftp://ftp.oldskool.org/pub/tvdog/
      internet/readme.txt).
      So most of us will not have to install a TCP/IP kernel at all. Instead
      we only have to care about the WATTCP.CFG configuration file for those
      networking applications.
      The next chapter takes a closer look at WatTCP and its successor
      Watt-32. Then we will examine NTCPDRV which is the only free external
      TCP/IP kernel available. Afterwards we briefly look at other external
      TCP/IP kernels.
        * [WatTCP/Watt-32]
        * [TCPDRV]/[NTCPDRV]
        * [mTCP]
        * [Others]

#### [Main menu] [top] [How it works] [Configuration] (Examples)

      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"