ArticleslgStudy

computer science

TCP offload engine

TCP offload engine is a computer science topic covered in the lgStudy science library. This page brings together a partial reference excerpt, illustrations, worked examples, real-world applications and a short study plan, so you can understand TCP offload engine rather than just read about it. In short: TCP offload engine (TOE) is a technology used in some network interface cards (NIC) to offload processing of the entire TCP/IP stack to the network controller. It is primarily used with high-speed network interfaces, such as gigabit Ethernet and 10 Gigabit Ethernet, where the processing overhead of the network stack becomes significant.

Key takeaways

  • TCP offload engine belongs to computer science; place it in that map before memorising details.
  • Learn the definition first, then one example that makes the definition concrete.
  • Connect TCP offload engine to a quantity you can measure, compute or draw — that is where exam questions come from.
  • Reproduce the core statement of TCP offload engine from memory before moving on to harder problems.

Reference excerpt

TCP offload engine (TOE) is a technology used in some network interface cards (NIC) to offload processing of the entire TCP/IP stack to the network controller. It is primarily used with high-speed network interfaces, such as gigabit Ethernet and 10 Gigabit Ethernet, where the processing overhead of the network stack becomes significant. TOEs are often used as a way to reduce the overhead associated with Internet Protocol (IP) storage protocols such as iSCSI and Network File System (NFS).

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 backbone transmission speeds (using Optical Carrier, Gigabit Ethernet and 10 Gigabit Ethernet links) and faster and more reliable access mechanisms (such as DSL and cable modems), it is frequently used in data centers and desktop PC environments at speeds of over one gigabit per second. At these speeds, the TCP software implementations on host systems require significant computing power. In the early 2000s, full-duplex gigabit TCP communication could consume more than 80% of a 2.4 GHz Pentium 4 processor, resulting in small or no processing resources left for the applications to run on the system. TCP is a connection-oriented protocol which adds complexity and processing overhead. These aspects include:

Connection establishment using the "three-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.

Freed-up CPU cycles A generally accepted rule of thumb is that a CPU cycle is needed for each bit sent or received (i.e., one hertz of CPU processing is required to send or receive 1 bit/s of TCP/IP). For example, 5 Gbit/s (625 MB/s) of network traffic requires 5 GHz of CPU processing. This implies that two entire cores of a 2.5 GHz multi-core processor will be required to handle the TCP/IP processing associated with 5 Gbit/s of TCP/IP traffic. Since Ethernet (10GE in this example) is bidirectional, it is possible to send and receive 10 Gbit/s (for an aggregate throughput of 20 Gbit/s). Using the one-cycle-per-bit rule, this equates to eight 2.5 GHz cores. Many of the CPU cycles used for TCP/IP processing are freed-up by TCP/IP offload and may be used by the CPU (usually a server CPU) to perform other tasks, such as file system processing (in a file server) or indexing (in a backup media server). In other words, a server with TCP/IP offload can do more server work than a server without TCP/IP offload NICs.

Reduction of PCI traffic In addition to the protocol overhead that TOE can address, it can also address some architectural issues that affect a large percentage of host-based (server and PC) endpoints. Many older endpoint hosts are PCI bus based, which provides a standard interface for the addition of certain peripherals such as Network Interfaces to Servers and PCs. PCI is inefficient for transferring small bursts of data from main memory across the PCI bus to the network interface ICs, but its efficiency improves as the data burst size increases. Within the TCP protocol, a large number of small packets are created (e.g., acknowledgements), and as these are typically generated on the host CPU and transmitted across the PCI bus and out the network physical interface, this impacts the host computer's IO throughput. A TOE solution, located on the network interface, is located on the other side of the PCI bus from the CPU host so it can address this I/O efficiency issue, as the data to be sent across the TCP connection can be sent to the TOE from the CPU across the PCI bus using large data burst sizes with none of the smaller TCP packets having to traverse the PCI bus.

History One of the first patents in this technology, for UDP offload, was issued to Auspex Systems in early 1990. Auspex founder Larry Boucher and a number of Auspex engineers went on to found Alacritech in 1997 with the idea of extending the concept of network stack offload to TCP and implementing it in custom silicon. They introduced the first parallel-stack full offload network card in early 1999; the company's SLIC (Session Layer Interface Card) was the predecessor to its current TOE offerings. Alacritech holds a number of patents in the area of TCP/IP offload. By 2002, as the emergence of TCP-based storage such as iSCSI spurred interest, it was said that "At least a dozen newcomers, most founded toward the end of the dot-com bubble, are chasing the opportunity for merchant semiconductor accelerators for storage protocols and applications, vying with half a dozen entrenched vendors and in-house ASIC designs." In 2005, Microsoft licensed Alacritech's patent base and, along with Alacritech, created the partial TCP offload architecture that has become known as TCP chimney offload. TCP chimney offload centers on the Alacritech "Communication Block Passing Patent". At the same time, Broadcom also obtained a license to build TCP chimney offload chips.

Types Instead of replacing the TCP stack with a TOE entirely, there are alternative techniques to offload some operations in cooperation 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.

Parallel-stack full offload Parallel-stack full offload gets its name from the concept of two parallel TCP/IP Stacks. The first is the main host stack, which is included with the host OS. The second or "parallel stack" is connected between the Application Layer and the Transport Layer (TCP) using a "vampire tap". The vampire tap intercepts TCP connection requests by applications and is responsible for TCP connection management as well as TCP data transfer. Many of the criticisms in the following section relate to this type of TCP offload.

… excerpt ends here. Continue reading the full article.

Worked examples

Example 1 — a first encounter with TCP offload engine

Start with the simplest possible case. Write down what TCP offload engine claims or describes in one sentence, then invent the smallest concrete situation in which that sentence is true. In computer science, the smallest case is usually a single object, a single equation or a single measurement. Check that every symbol or term in your sentence has a meaning in that case.

Example 2 — changing one variable

Take the situation from Example 1 and change exactly one quantity: double it, halve it, or set it to zero. Predict what should happen to TCP offload engine before you calculate. Comparing your prediction with the result is the fastest way to find out whether you understand the idea or only the words.

Example 3 — an exam-style question

Typical questions about TCP offload engine ask you to (a) state it precisely, (b) apply it to given data, and (c) explain a limitation. Practise writing all three answers in under five minutes; the third part is what separates a full-mark answer from an average one.

Applications of TCP offload engine

In research
TCP offload engine appears in computer science research whenever the underlying quantities have to be modelled precisely. Papers usually cite it as a starting assumption and then explore where it breaks down.
In technology and industry
Engineering practice reuses TCP offload engine in design rules, simulations and safety margins. Knowing the idea lets you read a specification sheet and understand why the numbers look the way they do.
In the classroom
TCP offload engine is common in secondary-school and first-year university syllabi. It links to neighbouring topics Network acceleration, Networking hardware, Transmission Control Protocol, so understanding it makes those chapters shorter.
In everyday life
Look for TCP offload engine outside the textbook — in sport, cooking, traffic, electronics or the sky above you. An example you found yourself is remembered far longer than one you were given.

Affiliate

Preply — study more efficiently by working with a personal tutor. 50% off.

How to study TCP offload engine in 20 minutes

  1. Read the reference excerpt below once, without taking notes.
  2. Close the page and write down what TCP offload engine means in your own words.
  3. Compare your version with the excerpt and mark what you missed.
  4. Work through the three examples above with pen and paper.
  5. Explain TCP offload engine out loud to somebody else — or to Teacher Smith in the lgStudy chat.

Frequently asked questions

What is TCP offload engine in simple terms?

TCP offload engine (TOE) is a technology used in some network interface cards (NIC) to offload processing of the entire TCP/IP stack to the network controller. It is primarily used with high-speed network interfaces, such as gigabit Ethernet and 10 Gigabit Ethernet, where the processing overhead of…

Why does TCP offload engine matter?

Because it connects several computer science ideas at once: it gives you a definition you can apply, a quantity you can calculate, and a way to check whether a result is plausible.

How should I study TCP offload engine?

Read the excerpt, restate it from memory, then work through the examples and applications listed on this page. The five-step study plan above takes about twenty minutes.

What does this page cover?

It gives you a compact reference excerpt plus original lgStudy explanations, examples, applications and study material on TCP offload engine.

Tags

  • Network acceleration
  • Networking hardware
  • Transmission Control Protocol

Keep exploring