This document may be freely copied and distributed, provided that: this copyright notice is included, the entire body of text is included, and the textual content of this document is unchanged.
For written permission to use portions of this document in other publications, send email to bfree@graphcomp.com.
This is a work in progress.
A TCP stack is essentially a driver that is responsible for receiving data packets from your network and reassembling them into a data stream; and the reverse - breaking up a data stream into datagram packets (UDP) and sending them to the network.
Traditionally, TCP stacks on PCs were handled as Terminate-Stay-Resident (TSR) drivers installed on DOS; Windows would then use a Dynamic Link Library (DLL) to interface with the TSR. The standard DLL interface for using TCP on MS Windows is called Winsock, which is described in the following page.
Some Winsock implementations require no TSR stack. The newest implementations, particularly those for use with Windows9x, use VXDs (virtual drivers). VXD-based TCP implementations tend to be the fastest and most robust way to go.
Note: you do not need Winsock if you intend to access the internet via DOS - however, you will generally be limited to text-based internet access. Several text-based programs (clients) are available that will run on DOS, including ping, ftp and some email and news clients.
Most commercial TCP packages for PCs are bundled with a Winsock DLL.