DMH TCP/IP Stack and TCP Module

The TCP source-package is an optional extension module to the basic UDP/IP protocol stack. TCP is needed in system where TCP based applications are used. Typical TCP applications are Telnet Server, HTTP (web) Server and more.

TCP stands for Transmission Control Protocol. It provides reliable data transfer through a technique known as positive acknowledgment with retransmission. The technique requires the sender to communicate with the source, sending back an acknowledgment message as it receives data. The sender keeps a record of each packet it sends and waits for an acknowledgment before sending the next packet. The sender also starts a timer when it sends a packet, and retransmits a packet if the time expires before an acknowledgment protocol arrives. TCP uses the sliding window protocol for flow control and error control. TCP assumes IP is unreliable and provides 16-bit checksum of the entire message.

The protocol specifies how TCP software distinguishes among multiple destinations on a given machine. The protocol also specifies how two computers initiate a "TCP connection " and how they agree when it is complete.

Some of the TCP properties are:

  • Sending acknowledgments
  • Ordering out-of-sequence segments
  • Retransmission
  • Data validation
  • Stream model of operation

TCP module features

  • Flexible configuration, compile and run-time configuration of operational parameters, e.g., user defined buffer sizes, in order to accommodate the most variable demands.
  • Simple Integration using a well defined and minimal BSD socket like API.
  • Compact code size.
  • Limited data size: buffer sizes defined per application, as needed (typical 2KB per session).
  • Versatile: designed for both preemptive and non-preemptive operating systems
  • Ready for Telnet server application via CLI (Command Line Interface) API.) Telnet server is useful for remote console applications.
  • Proprietary application: TCP can be used for proprietary user application where reliability is required.
  • Simple to integrate with the hosting-system (your system).
  • Portability to Different Platforms Including 16 & 32 bit, RISC & CISC, big and little endian.