TCP Offload Engine - Purpose

Purpose

Originally TCP was designed for unreliable low speed networks (such as early dial-up modems) but with the growth of the Internet in terms of internet backbone transmission speeds (Optical Carrier, gigabit Ethernet and 10 Gigabit Ethernet links) and faster and more reliable access mechanisms (such as digital subscriber line and cable modems) it is frequently used in datacenters and desktop PC environments at speeds over 1 gigabit per second. The TCP software implementations on host systems require extensive computing power. Full duplex gigabit TCP communication using software processing alone is enough to consume more than 80% of a 2.4 GHz Pentium 4 processor (see freed-up CPU cycles), resulting in little or no processing resources left for the applications to run on the system.

As TCP is a connection-oriented protocol, this adds to the complexity and processing overhead of the protocol. These aspects include:

  • Connection establishment using the "3-way handshake" (SYNchronize; SYNchronize-ACKnowledge; ACKnowledge).
  • Acknowledgment of packets as they are received by the far end, adding to the message flow between the endpoints and thus the protocol load.
  • Checksum and sequence number calculations - again a burden on a general purpose CPU to perform.
  • Sliding window calculations for packet acknowledgement and congestion control.
  • Connection termination.

Moving some or all of these functions to dedicated hardware, a TCP offload engine, frees the system's main CPU for other tasks. As of 2012, very few consumer network interface cards support TOE.

Instead of replacing the TCP stack with a TOE entirely, there are alternative techniques to offload some operations in co-operation with the operating system's TCP stack. TCP checksum offload and large segment offload are supported by the majority of today's Ethernet NICs. Newer techniques like large receive offload and TCP acknowledgment offload are already implemented in some high-end Ethernet hardware, but are effective even when implemented purely in software.

Read more about this topic:  TCP Offload Engine

Famous quotes containing the word purpose:

    Productive collaborations between family and school, therefore, will demand that parents and teachers recognize the critical importance of each other’s participation in the life of the child. This mutuality of knowledge, understanding, and empathy comes not only with a recognition of the child as the central purpose for the collaboration but also with a recognition of the need to maintain roles and relationships with children that are comprehensive, dynamic, and differentiated.
    Sara Lawrence Lightfoot (20th century)

    Along the journey we commonly forget its goal. Almost every vocation is chosen and entered upon as a means to a purpose but is ultimately continued as a final purpose in itself. Forgetting our objectives is the most frequent stupidity in which we indulge ourselves.
    Friedrich Nietzsche (1844–1900)

    Any historian of the literature of the modern age will take virtually for granted the adversary intention, the actually subversive intention, that characterizes modern writing—he will perceive its clear purpose of detaching the reader from the habits of thought and feeling that the larger culture imposes, of giving him a ground and a vantage point from which to judge and condemn, and perhaps revise, the culture that produces him.
    Lionel Trilling (1905–1975)