CINXE.COM

TCP offload engine - Wikipedia

<!DOCTYPE html> <html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-toc-available" lang="en" dir="ltr"> <head> <meta charset="UTF-8"> <title>TCP offload engine - Wikipedia</title> <script>(function(){var className="client-js vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-toc-available";var cookie=document.cookie.match(/(?:^|; )enwikimwclientpreferences=([^;]+)/);if(cookie){cookie[1].split('%2C').forEach(function(pref){className=className.replace(new RegExp('(^| )'+pref.replace(/-clientpref-\w+$|[^\w-]+/g,'')+'-clientpref-\\w+( |$)'),'$1'+pref+'$2');});}document.documentElement.className=className;}());RLCONF={"wgBreakFrames":false,"wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy", "wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgRequestId":"b70cb0d1-3385-4629-8eb6-e53d3f5737bd","wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"TCP_offload_engine","wgTitle":"TCP offload engine","wgCurRevisionId":1195629047,"wgRevisionId":1195629047,"wgArticleId":849531,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["Articles with short description","Short description matches Wikidata","Articles containing potentially dated statements from April 2007","All articles containing potentially dated statements","Articles containing potentially dated statements from 2014","Networking hardware","Network acceleration","Transmission Control Protocol"],"wgPageViewLanguage":"en","wgPageContentLanguage":"en","wgPageContentModel":"wikitext","wgRelevantPageName":"TCP_offload_engine", "wgRelevantArticleId":849531,"wgIsProbablyEditable":true,"wgRelevantPageIsProbablyEditable":true,"wgRestrictionEdit":[],"wgRestrictionMove":[],"wgNoticeProject":"wikipedia","wgCiteReferencePreviewsActive":false,"wgFlaggedRevsParams":{"tags":{"status":{"levels":1}}},"wgMediaViewerOnClick":true,"wgMediaViewerEnabledByDefault":true,"wgPopupsFlags":0,"wgVisualEditor":{"pageLanguageCode":"en","pageLanguageDir":"ltr","pageVariantFallbacks":"en"},"wgMFDisplayWikibaseDescriptions":{"search":true,"watchlist":true,"tagline":false,"nearby":true},"wgWMESchemaEditAttemptStepOversample":false,"wgWMEPageLength":20000,"wgRelatedArticlesCompat":[],"wgCentralAuthMobileDomain":false,"wgEditSubmitButtonLabelPublish":true,"wgULSPosition":"interlanguage","wgULSisCompactLinksEnabled":false,"wgVector2022LanguageInHeader":true,"wgULSisLanguageSelectorEmpty":false,"wgWikibaseItemId":"Q840738","wgCheckUserClientHintsHeadersJsApi":["brands","architecture","bitness","fullVersionList","mobile","model","platform", "platformVersion"],"GEHomepageSuggestedEditsEnableTopics":true,"wgGETopicsMatchModeEnabled":false,"wgGEStructuredTaskRejectionReasonTextInputEnabled":false,"wgGELevelingUpEnabledForUser":false};RLSTATE={"ext.globalCssJs.user.styles":"ready","site.styles":"ready","user.styles":"ready","ext.globalCssJs.user":"ready","user":"ready","user.options":"loading","ext.cite.styles":"ready","skins.vector.search.codex.styles":"ready","skins.vector.styles":"ready","skins.vector.icons":"ready","ext.wikimediamessages.styles":"ready","ext.visualEditor.desktopArticleTarget.noscript":"ready","ext.uls.interlanguage":"ready","wikibase.client.init":"ready","ext.wikimediaBadges":"ready"};RLPAGEMODULES=["ext.cite.ux-enhancements","site","mediawiki.page.ready","mediawiki.toc","skins.vector.js","ext.centralNotice.geoIP","ext.centralNotice.startUp","ext.gadget.ReferenceTooltips","ext.gadget.switcher","ext.urlShortener.toolbar","ext.centralauth.centralautologin","ext.popups", "ext.visualEditor.desktopArticleTarget.init","ext.visualEditor.targetLoader","ext.echo.centralauth","ext.eventLogging","ext.wikimediaEvents","ext.navigationTiming","ext.uls.interface","ext.cx.eventlogging.campaigns","ext.cx.uls.quick.actions","wikibase.client.vector-2022","ext.checkUser.clientHints","ext.growthExperiments.SuggestedEditSession","wikibase.sidebar.tracking"];</script> <script>(RLQ=window.RLQ||[]).push(function(){mw.loader.impl(function(){return["user.options@12s5i",function($,jQuery,require,module){mw.user.tokens.set({"patrolToken":"+\\","watchToken":"+\\","csrfToken":"+\\"}); }];});});</script> <link rel="stylesheet" href="/w/load.php?lang=en&amp;modules=ext.cite.styles%7Cext.uls.interlanguage%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediaBadges%7Cext.wikimediamessages.styles%7Cskins.vector.icons%2Cstyles%7Cskins.vector.search.codex.styles%7Cwikibase.client.init&amp;only=styles&amp;skin=vector-2022"> <script async="" src="/w/load.php?lang=en&amp;modules=startup&amp;only=scripts&amp;raw=1&amp;skin=vector-2022"></script> <meta name="ResourceLoaderDynamicStyles" content=""> <link rel="stylesheet" href="/w/load.php?lang=en&amp;modules=site.styles&amp;only=styles&amp;skin=vector-2022"> <meta name="generator" content="MediaWiki 1.44.0-wmf.4"> <meta name="referrer" content="origin"> <meta name="referrer" content="origin-when-cross-origin"> <meta name="robots" content="max-image-preview:standard"> <meta name="format-detection" content="telephone=no"> <meta name="viewport" content="width=1120"> <meta property="og:title" content="TCP offload engine - Wikipedia"> <meta property="og:type" content="website"> <link rel="alternate" media="only screen and (max-width: 640px)" href="//en.m.wikipedia.org/wiki/TCP_offload_engine"> <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/w/index.php?title=TCP_offload_engine&amp;action=edit"> <link rel="apple-touch-icon" href="/static/apple-touch/wikipedia.png"> <link rel="icon" href="/static/favicon/wikipedia.ico"> <link rel="search" type="application/opensearchdescription+xml" href="/w/rest.php/v1/search" title="Wikipedia (en)"> <link rel="EditURI" type="application/rsd+xml" href="//en.wikipedia.org/w/api.php?action=rsd"> <link rel="canonical" href="https://en.wikipedia.org/wiki/TCP_offload_engine"> <link rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en"> <link rel="alternate" type="application/atom+xml" title="Wikipedia Atom feed" href="/w/index.php?title=Special:RecentChanges&amp;feed=atom"> <link rel="dns-prefetch" href="//meta.wikimedia.org" /> <link rel="dns-prefetch" href="//login.wikimedia.org"> </head> <body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject mw-editable page-TCP_offload_engine rootpage-TCP_offload_engine skin-vector-2022 action-view"><a class="mw-jump-link" href="#bodyContent">Jump to content</a> <div class="vector-header-container"> <header class="vector-header mw-header"> <div class="vector-header-start"> <nav class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-dropdown" class="vector-dropdown vector-main-menu-dropdown vector-button-flush-left vector-button-flush-right" > <input type="checkbox" id="vector-main-menu-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-main-menu-dropdown" class="vector-dropdown-checkbox " aria-label="Main menu" > <label id="vector-main-menu-dropdown-label" for="vector-main-menu-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-menu mw-ui-icon-wikimedia-menu"></span> <span class="vector-dropdown-label-text">Main menu</span> </label> <div class="vector-dropdown-content"> <div id="vector-main-menu-unpinned-container" class="vector-unpinned-container"> <div id="vector-main-menu" class="vector-main-menu vector-pinnable-element"> <div class="vector-pinnable-header vector-main-menu-pinnable-header vector-pinnable-header-unpinned" data-feature-name="main-menu-pinned" data-pinnable-element-id="vector-main-menu" data-pinned-container-id="vector-main-menu-pinned-container" data-unpinned-container-id="vector-main-menu-unpinned-container" > <div class="vector-pinnable-header-label">Main menu</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-main-menu.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-main-menu.unpin">hide</button> </div> <div id="p-navigation" class="vector-menu mw-portlet mw-portlet-navigation" > <div class="vector-menu-heading"> Navigation </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-mainpage-description" class="mw-list-item"><a href="/wiki/Main_Page" title="Visit the main page [z]" accesskey="z"><span>Main page</span></a></li><li id="n-contents" class="mw-list-item"><a href="/wiki/Wikipedia:Contents" title="Guides to browsing Wikipedia"><span>Contents</span></a></li><li id="n-currentevents" class="mw-list-item"><a href="/wiki/Portal:Current_events" title="Articles related to current events"><span>Current events</span></a></li><li id="n-randompage" class="mw-list-item"><a href="/wiki/Special:Random" title="Visit a randomly selected article [x]" accesskey="x"><span>Random article</span></a></li><li id="n-aboutsite" class="mw-list-item"><a href="/wiki/Wikipedia:About" title="Learn about Wikipedia and how it works"><span>About Wikipedia</span></a></li><li id="n-contactpage" class="mw-list-item"><a href="//en.wikipedia.org/wiki/Wikipedia:Contact_us" title="How to contact Wikipedia"><span>Contact us</span></a></li> </ul> </div> </div> <div id="p-interaction" class="vector-menu mw-portlet mw-portlet-interaction" > <div class="vector-menu-heading"> Contribute </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-help" class="mw-list-item"><a href="/wiki/Help:Contents" title="Guidance on how to use and edit Wikipedia"><span>Help</span></a></li><li id="n-introduction" class="mw-list-item"><a href="/wiki/Help:Introduction" title="Learn how to edit Wikipedia"><span>Learn to edit</span></a></li><li id="n-portal" class="mw-list-item"><a href="/wiki/Wikipedia:Community_portal" title="The hub for editors"><span>Community portal</span></a></li><li id="n-recentchanges" class="mw-list-item"><a href="/wiki/Special:RecentChanges" title="A list of recent changes to Wikipedia [r]" accesskey="r"><span>Recent changes</span></a></li><li id="n-upload" class="mw-list-item"><a href="/wiki/Wikipedia:File_upload_wizard" title="Add images or other media for use on Wikipedia"><span>Upload file</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> <a href="/wiki/Main_Page" class="mw-logo"> <img class="mw-logo-icon" src="/static/images/icons/wikipedia.png" alt="" aria-hidden="true" height="50" width="50"> <span class="mw-logo-container skin-invert"> <img class="mw-logo-wordmark" alt="Wikipedia" src="/static/images/mobile/copyright/wikipedia-wordmark-en.svg" style="width: 7.5em; height: 1.125em;"> <img class="mw-logo-tagline" alt="The Free Encyclopedia" src="/static/images/mobile/copyright/wikipedia-tagline-en.svg" width="117" height="13" style="width: 7.3125em; height: 0.8125em;"> </span> </a> </div> <div class="vector-header-end"> <div id="p-search" role="search" class="vector-search-box-vue vector-search-box-collapses vector-search-box-show-thumbnail vector-search-box-auto-expand-width vector-search-box"> <a href="/wiki/Special:Search" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only search-toggle" title="Search Wikipedia [f]" accesskey="f"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span> <span>Search</span> </a> <div class="vector-typeahead-search-container"> <div class="cdx-typeahead-search cdx-typeahead-search--show-thumbnail cdx-typeahead-search--auto-expand-width"> <form action="/w/index.php" id="searchform" class="cdx-search-input cdx-search-input--has-end-button"> <div id="simpleSearch" class="cdx-search-input__input-wrapper" data-search-loc="header-moved"> <div class="cdx-text-input cdx-text-input--has-start-icon"> <input class="cdx-text-input__input" type="search" name="search" placeholder="Search Wikipedia" aria-label="Search Wikipedia" autocapitalize="sentences" title="Search Wikipedia [f]" accesskey="f" id="searchInput" > <span class="cdx-text-input__icon cdx-text-input__start-icon"></span> </div> <input type="hidden" name="title" value="Special:Search"> </div> <button class="cdx-button cdx-search-input__end-button">Search</button> </form> </div> </div> </div> <nav class="vector-user-links vector-user-links-wide" aria-label="Personal tools"> <div class="vector-user-links-main"> <div id="p-vector-user-menu-preferences" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-userpage" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <nav class="vector-appearance-landmark" aria-label="Appearance"> <div id="vector-appearance-dropdown" class="vector-dropdown " title="Change the appearance of the page&#039;s font size, width, and color" > <input type="checkbox" id="vector-appearance-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-appearance-dropdown" class="vector-dropdown-checkbox " aria-label="Appearance" > <label id="vector-appearance-dropdown-label" for="vector-appearance-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-appearance mw-ui-icon-wikimedia-appearance"></span> <span class="vector-dropdown-label-text">Appearance</span> </label> <div class="vector-dropdown-content"> <div id="vector-appearance-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <div id="p-vector-user-menu-notifications" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-overflow" class="vector-menu mw-portlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="https://donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&amp;utm_medium=sidebar&amp;utm_campaign=C13_en.wikipedia.org&amp;uselang=en" class=""><span>Donate</span></a> </li> <li id="pt-createaccount-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:CreateAccount&amp;returnto=TCP+offload+engine" title="You are encouraged to create an account and log in; however, it is not mandatory" class=""><span>Create account</span></a> </li> <li id="pt-login-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:UserLogin&amp;returnto=TCP+offload+engine" title="You&#039;re encouraged to log in; however, it&#039;s not mandatory. [o]" accesskey="o" class=""><span>Log in</span></a> </li> </ul> </div> </div> </div> <div id="vector-user-links-dropdown" class="vector-dropdown vector-user-menu vector-button-flush-right vector-user-menu-logged-out" title="Log in and more options" > <input type="checkbox" id="vector-user-links-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-user-links-dropdown" class="vector-dropdown-checkbox " aria-label="Personal tools" > <label id="vector-user-links-dropdown-label" for="vector-user-links-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-ellipsis mw-ui-icon-wikimedia-ellipsis"></span> <span class="vector-dropdown-label-text">Personal tools</span> </label> <div class="vector-dropdown-content"> <div id="p-personal" class="vector-menu mw-portlet mw-portlet-personal user-links-collapsible-item" title="User menu" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport" class="user-links-collapsible-item mw-list-item"><a href="https://donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&amp;utm_medium=sidebar&amp;utm_campaign=C13_en.wikipedia.org&amp;uselang=en"><span>Donate</span></a></li><li id="pt-createaccount" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:CreateAccount&amp;returnto=TCP+offload+engine" title="You are encouraged to create an account and log in; however, it is not mandatory"><span class="vector-icon mw-ui-icon-userAdd mw-ui-icon-wikimedia-userAdd"></span> <span>Create account</span></a></li><li id="pt-login" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:UserLogin&amp;returnto=TCP+offload+engine" title="You&#039;re encouraged to log in; however, it&#039;s not mandatory. [o]" accesskey="o"><span class="vector-icon mw-ui-icon-logIn mw-ui-icon-wikimedia-logIn"></span> <span>Log in</span></a></li> </ul> </div> </div> <div id="p-user-menu-anon-editor" class="vector-menu mw-portlet mw-portlet-user-menu-anon-editor" > <div class="vector-menu-heading"> Pages for logged out editors <a href="/wiki/Help:Introduction" aria-label="Learn more about editing"><span>learn more</span></a> </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-anoncontribs" class="mw-list-item"><a href="/wiki/Special:MyContributions" title="A list of edits made from this IP address [y]" accesskey="y"><span>Contributions</span></a></li><li id="pt-anontalk" class="mw-list-item"><a href="/wiki/Special:MyTalk" title="Discussion about edits from this IP address [n]" accesskey="n"><span>Talk</span></a></li> </ul> </div> </div> </div> </div> </nav> </div> </header> </div> <div class="mw-page-container"> <div class="mw-page-container-inner"> <div class="vector-sitenotice-container"> <div id="siteNotice"><!-- CentralNotice --></div> </div> <div class="vector-column-start"> <div class="vector-main-menu-container"> <div id="mw-navigation"> <nav id="mw-panel" class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-pinned-container" class="vector-pinned-container"> </div> </nav> </div> </div> <div class="vector-sticky-pinned-container"> <nav id="mw-panel-toc" aria-label="Contents" data-event-name="ui.sidebar-toc" class="mw-table-of-contents-container vector-toc-landmark"> <div id="vector-toc-pinned-container" class="vector-pinned-container"> <div id="vector-toc" class="vector-toc vector-pinnable-element"> <div class="vector-pinnable-header vector-toc-pinnable-header vector-pinnable-header-pinned" data-feature-name="toc-pinned" data-pinnable-element-id="vector-toc" > <h2 class="vector-pinnable-header-label">Contents</h2> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-toc.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-toc.unpin">hide</button> </div> <ul class="vector-toc-contents" id="mw-panel-toc-list"> <li id="toc-mw-content-text" class="vector-toc-list-item vector-toc-level-1"> <a href="#" class="vector-toc-link"> <div class="vector-toc-text">(Top)</div> </a> </li> <li id="toc-Purpose" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Purpose"> <div class="vector-toc-text"> <span class="vector-toc-numb">1</span> <span>Purpose</span> </div> </a> <button aria-controls="toc-Purpose-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle Purpose subsection</span> </button> <ul id="toc-Purpose-sublist" class="vector-toc-list"> <li id="toc-Freed-up_CPU_cycles" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Freed-up_CPU_cycles"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.1</span> <span>Freed-up CPU cycles</span> </div> </a> <ul id="toc-Freed-up_CPU_cycles-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Reduction_of_PCI_traffic" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Reduction_of_PCI_traffic"> <div class="vector-toc-text"> <span class="vector-toc-numb">1.2</span> <span>Reduction of PCI traffic</span> </div> </a> <ul id="toc-Reduction_of_PCI_traffic-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-History" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#History"> <div class="vector-toc-text"> <span class="vector-toc-numb">2</span> <span>History</span> </div> </a> <ul id="toc-History-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Types" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Types"> <div class="vector-toc-text"> <span class="vector-toc-numb">3</span> <span>Types</span> </div> </a> <button aria-controls="toc-Types-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle Types subsection</span> </button> <ul id="toc-Types-sublist" class="vector-toc-list"> <li id="toc-Parallel-stack_full_offload" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Parallel-stack_full_offload"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.1</span> <span>Parallel-stack full offload</span> </div> </a> <ul id="toc-Parallel-stack_full_offload-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-HBA_full_offload" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#HBA_full_offload"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.2</span> <span>HBA full offload</span> </div> </a> <ul id="toc-HBA_full_offload-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-TCP_chimney_partial_offload" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#TCP_chimney_partial_offload"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.3</span> <span>TCP chimney partial offload</span> </div> </a> <ul id="toc-TCP_chimney_partial_offload-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Large_receive_offload" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Large_receive_offload"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.4</span> <span>Large receive offload</span> </div> </a> <ul id="toc-Large_receive_offload-sublist" class="vector-toc-list"> <li id="toc-Generic_receive_offload" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Generic_receive_offload"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.4.1</span> <span>Generic receive offload</span> </div> </a> <ul id="toc-Generic_receive_offload-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Large_send_offload" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Large_send_offload"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.5</span> <span>Large send offload</span> </div> </a> <ul id="toc-Large_send_offload-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Support_in_Linux" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Support_in_Linux"> <div class="vector-toc-text"> <span class="vector-toc-numb">4</span> <span>Support in Linux</span> </div> </a> <ul id="toc-Support_in_Linux-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Suppliers" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Suppliers"> <div class="vector-toc-text"> <span class="vector-toc-numb">5</span> <span>Suppliers</span> </div> </a> <ul id="toc-Suppliers-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-See_also" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#See_also"> <div class="vector-toc-text"> <span class="vector-toc-numb">6</span> <span>See also</span> </div> </a> <ul id="toc-See_also-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-References" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#References"> <div class="vector-toc-text"> <span class="vector-toc-numb">7</span> <span>References</span> </div> </a> <ul id="toc-References-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-External_links" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#External_links"> <div class="vector-toc-text"> <span class="vector-toc-numb">8</span> <span>External links</span> </div> </a> <ul id="toc-External_links-sublist" class="vector-toc-list"> </ul> </li> </ul> </div> </div> </nav> </div> </div> <div class="mw-content-container"> <main id="content" class="mw-body"> <header class="mw-body-header vector-page-titlebar"> <nav aria-label="Contents" class="vector-toc-landmark"> <div id="vector-page-titlebar-toc" class="vector-dropdown vector-page-titlebar-toc vector-button-flush-left" > <input type="checkbox" id="vector-page-titlebar-toc-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-titlebar-toc" class="vector-dropdown-checkbox " aria-label="Toggle the table of contents" > <label id="vector-page-titlebar-toc-label" for="vector-page-titlebar-toc-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-listBullet mw-ui-icon-wikimedia-listBullet"></span> <span class="vector-dropdown-label-text">Toggle the table of contents</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-titlebar-toc-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">TCP offload engine</span></h1> <div id="p-lang-btn" class="vector-dropdown mw-portlet mw-portlet-lang" > <input type="checkbox" id="p-lang-btn-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-p-lang-btn" class="vector-dropdown-checkbox mw-interlanguage-selector" aria-label="Go to an article in another language. Available in 5 languages" > <label id="p-lang-btn-label" for="p-lang-btn-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--action-progressive mw-portlet-lang-heading-5" aria-hidden="true" ><span class="vector-icon mw-ui-icon-language-progressive mw-ui-icon-wikimedia-language-progressive"></span> <span class="vector-dropdown-label-text">5 languages</span> </label> <div class="vector-dropdown-content"> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="interlanguage-link interwiki-de mw-list-item"><a href="https://de.wikipedia.org/wiki/TCP_Offload_Engine" title="TCP Offload Engine – German" lang="de" hreflang="de" data-title="TCP Offload Engine" data-language-autonym="Deutsch" data-language-local-name="German" class="interlanguage-link-target"><span>Deutsch</span></a></li><li class="interlanguage-link interwiki-fa mw-list-item"><a href="https://fa.wikipedia.org/wiki/%D9%85%D9%88%D8%AA%D9%88%D8%B1_%D8%A8%D8%A7%D8%B1%DA%AF%D8%B0%D8%A7%D8%B1%DB%8C_%D8%AC%D8%A7%D9%86%D8%A8%DB%8C_%D8%AA%DB%8C%E2%80%8C%D8%B3%DB%8C%E2%80%8C%D9%BE%DB%8C" title="موتور بارگذاری جانبی تی‌سی‌پی – Persian" lang="fa" hreflang="fa" data-title="موتور بارگذاری جانبی تی‌سی‌پی" data-language-autonym="فارسی" data-language-local-name="Persian" class="interlanguage-link-target"><span>فارسی</span></a></li><li class="interlanguage-link interwiki-pt mw-list-item"><a href="https://pt.wikipedia.org/wiki/TCP_offload_engine" title="TCP offload engine – Portuguese" lang="pt" hreflang="pt" data-title="TCP offload engine" data-language-autonym="Português" data-language-local-name="Portuguese" class="interlanguage-link-target"><span>Português</span></a></li><li class="interlanguage-link interwiki-ru mw-list-item"><a href="https://ru.wikipedia.org/wiki/TCP_Offload_Engine" title="TCP Offload Engine – Russian" lang="ru" hreflang="ru" data-title="TCP Offload Engine" data-language-autonym="Русский" data-language-local-name="Russian" class="interlanguage-link-target"><span>Русский</span></a></li><li class="interlanguage-link interwiki-zh mw-list-item"><a href="https://zh.wikipedia.org/wiki/TCP%E5%8D%B8%E8%BC%89%E5%BC%95%E6%93%8E" title="TCP卸載引擎 – Chinese" lang="zh" hreflang="zh" data-title="TCP卸載引擎" data-language-autonym="中文" data-language-local-name="Chinese" class="interlanguage-link-target"><span>中文</span></a></li> </ul> <div class="after-portlet after-portlet-lang"><span class="wb-langlinks-edit wb-langlinks-link"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q840738#sitelinks-wikipedia" title="Edit interlanguage links" class="wbc-editpage">Edit links</a></span></div> </div> </div> </div> </header> <div class="vector-page-toolbar"> <div class="vector-page-toolbar-container"> <div id="left-navigation"> <nav aria-label="Namespaces"> <div id="p-associated-pages" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-associated-pages" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-nstab-main" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/TCP_offload_engine" title="View the content page [c]" accesskey="c"><span>Article</span></a></li><li id="ca-talk" class="vector-tab-noicon mw-list-item"><a href="/wiki/Talk:TCP_offload_engine" rel="discussion" title="Discuss improvements to the content page [t]" accesskey="t"><span>Talk</span></a></li> </ul> </div> </div> <div id="vector-variants-dropdown" class="vector-dropdown emptyPortlet" > <input type="checkbox" id="vector-variants-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-variants-dropdown" class="vector-dropdown-checkbox " aria-label="Change language variant" > <label id="vector-variants-dropdown-label" for="vector-variants-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">English</span> </label> <div class="vector-dropdown-content"> <div id="p-variants" class="vector-menu mw-portlet mw-portlet-variants emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> </div> </div> </nav> </div> <div id="right-navigation" class="vector-collapsible"> <nav aria-label="Views"> <div id="p-views" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-views" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-view" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/TCP_offload_engine"><span>Read</span></a></li><li id="ca-edit" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=TCP_offload_engine&amp;action=edit" title="Edit this page [e]" accesskey="e"><span>Edit</span></a></li><li id="ca-history" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=TCP_offload_engine&amp;action=history" title="Past revisions of this page [h]" accesskey="h"><span>View history</span></a></li> </ul> </div> </div> </nav> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-dropdown" class="vector-dropdown vector-page-tools-dropdown" > <input type="checkbox" id="vector-page-tools-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-tools-dropdown" class="vector-dropdown-checkbox " aria-label="Tools" > <label id="vector-page-tools-dropdown-label" for="vector-page-tools-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">Tools</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-tools-unpinned-container" class="vector-unpinned-container"> <div id="vector-page-tools" class="vector-page-tools vector-pinnable-element"> <div class="vector-pinnable-header vector-page-tools-pinnable-header vector-pinnable-header-unpinned" data-feature-name="page-tools-pinned" data-pinnable-element-id="vector-page-tools" data-pinned-container-id="vector-page-tools-pinned-container" data-unpinned-container-id="vector-page-tools-unpinned-container" > <div class="vector-pinnable-header-label">Tools</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-page-tools.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-page-tools.unpin">hide</button> </div> <div id="p-cactions" class="vector-menu mw-portlet mw-portlet-cactions emptyPortlet vector-has-collapsible-items" title="More options" > <div class="vector-menu-heading"> Actions </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-more-view" class="selected vector-more-collapsible-item mw-list-item"><a href="/wiki/TCP_offload_engine"><span>Read</span></a></li><li id="ca-more-edit" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=TCP_offload_engine&amp;action=edit" title="Edit this page [e]" accesskey="e"><span>Edit</span></a></li><li id="ca-more-history" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=TCP_offload_engine&amp;action=history"><span>View history</span></a></li> </ul> </div> </div> <div id="p-tb" class="vector-menu mw-portlet mw-portlet-tb" > <div class="vector-menu-heading"> General </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-whatlinkshere" class="mw-list-item"><a href="/wiki/Special:WhatLinksHere/TCP_offload_engine" title="List of all English Wikipedia pages containing links to this page [j]" accesskey="j"><span>What links here</span></a></li><li id="t-recentchangeslinked" class="mw-list-item"><a href="/wiki/Special:RecentChangesLinked/TCP_offload_engine" rel="nofollow" title="Recent changes in pages linked from this page [k]" accesskey="k"><span>Related changes</span></a></li><li id="t-upload" class="mw-list-item"><a href="/wiki/Wikipedia:File_Upload_Wizard" title="Upload files [u]" accesskey="u"><span>Upload file</span></a></li><li id="t-specialpages" class="mw-list-item"><a href="/wiki/Special:SpecialPages" title="A list of all special pages [q]" accesskey="q"><span>Special pages</span></a></li><li id="t-permalink" class="mw-list-item"><a href="/w/index.php?title=TCP_offload_engine&amp;oldid=1195629047" title="Permanent link to this revision of this page"><span>Permanent link</span></a></li><li id="t-info" class="mw-list-item"><a href="/w/index.php?title=TCP_offload_engine&amp;action=info" title="More information about this page"><span>Page information</span></a></li><li id="t-cite" class="mw-list-item"><a href="/w/index.php?title=Special:CiteThisPage&amp;page=TCP_offload_engine&amp;id=1195629047&amp;wpFormIdentifier=titleform" title="Information on how to cite this page"><span>Cite this page</span></a></li><li id="t-urlshortener" class="mw-list-item"><a href="/w/index.php?title=Special:UrlShortener&amp;url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FTCP_offload_engine"><span>Get shortened URL</span></a></li><li id="t-urlshortener-qrcode" class="mw-list-item"><a href="/w/index.php?title=Special:QrCode&amp;url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FTCP_offload_engine"><span>Download QR code</span></a></li> </ul> </div> </div> <div id="p-coll-print_export" class="vector-menu mw-portlet mw-portlet-coll-print_export" > <div class="vector-menu-heading"> Print/export </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="coll-download-as-rl" class="mw-list-item"><a href="/w/index.php?title=Special:DownloadAsPdf&amp;page=TCP_offload_engine&amp;action=show-download-screen" title="Download this page as a PDF file"><span>Download as PDF</span></a></li><li id="t-print" class="mw-list-item"><a href="/w/index.php?title=TCP_offload_engine&amp;printable=yes" title="Printable version of this page [p]" accesskey="p"><span>Printable version</span></a></li> </ul> </div> </div> <div id="p-wikibase-otherprojects" class="vector-menu mw-portlet mw-portlet-wikibase-otherprojects" > <div class="vector-menu-heading"> In other projects </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-wikibase" class="wb-otherproject-link wb-otherproject-wikibase-dataitem mw-list-item"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q840738" title="Structured data on this page hosted by Wikidata [g]" accesskey="g"><span>Wikidata item</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> </div> </div> </div> <div class="vector-column-end"> <div class="vector-sticky-pinned-container"> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-pinned-container" class="vector-pinned-container"> </div> </nav> <nav class="vector-appearance-landmark" aria-label="Appearance"> <div id="vector-appearance-pinned-container" class="vector-pinned-container"> <div id="vector-appearance" class="vector-appearance vector-pinnable-element"> <div class="vector-pinnable-header vector-appearance-pinnable-header vector-pinnable-header-pinned" data-feature-name="appearance-pinned" data-pinnable-element-id="vector-appearance" data-pinned-container-id="vector-appearance-pinned-container" data-unpinned-container-id="vector-appearance-unpinned-container" > <div class="vector-pinnable-header-label">Appearance</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-appearance.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-appearance.unpin">hide</button> </div> </div> </div> </nav> </div> </div> <div id="bodyContent" class="vector-body" aria-labelledby="firstHeading" data-mw-ve-target-container> <div class="vector-body-before-content"> <div class="mw-indicators"> </div> <div id="siteSub" class="noprint">From Wikipedia, the free encyclopedia</div> </div> <div id="contentSub"><div id="mw-content-subtitle"></div></div> <div id="mw-content-text" class="mw-body-content"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr"><div class="shortdescription nomobile noexcerpt noprint searchaux" style="display:none">Technology used in network interface cards</div> <p><b>TCP offload engine</b> (<b>TOE</b>) is a technology used in some <a href="/wiki/Network_interface_card" class="mw-redirect" title="Network interface card">network interface cards</a> (NIC) to offload processing of the entire <a href="/wiki/TCP/IP" class="mw-redirect" title="TCP/IP">TCP/IP</a> stack to the network controller. It is primarily used with high-speed network interfaces, such as <a href="/wiki/Gigabit_Ethernet" title="Gigabit Ethernet">gigabit Ethernet</a> and <a href="/wiki/10_Gigabit_Ethernet" title="10 Gigabit Ethernet">10 Gigabit Ethernet</a>, where processing overhead of the network stack becomes significant. TOEs are often used<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">&#91;</span>1<span class="cite-bracket">&#93;</span></a></sup> as a way to reduce the overhead associated with <a href="/wiki/Internet_Protocol" title="Internet Protocol">Internet Protocol</a> (IP) storage protocols such as <a href="/wiki/ISCSI" title="ISCSI">iSCSI</a> and <a href="/wiki/Network_File_System" title="Network File System">Network File System</a> (NFS). </p> <meta property="mw:PageProp/toc" /> <div class="mw-heading mw-heading2"><h2 id="Purpose">Purpose</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=TCP_offload_engine&amp;action=edit&amp;section=1" title="Edit section: Purpose"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Originally <a href="/wiki/Transmission_Control_Protocol" title="Transmission Control Protocol">TCP</a> was designed for unreliable low speed networks (such as early <a href="/wiki/Dial-up" class="mw-redirect" title="Dial-up">dial-up</a> <a href="/wiki/Modem" title="Modem">modems</a>) but with the growth of the Internet in terms of <a href="/wiki/Internet_backbone" title="Internet backbone">backbone</a> transmission speeds (using <a href="/wiki/Optical_Carrier" class="mw-redirect" title="Optical Carrier">Optical Carrier</a>, <a href="/wiki/Gigabit_Ethernet" title="Gigabit Ethernet">Gigabit Ethernet</a> and <a href="/wiki/10_Gigabit_Ethernet" title="10 Gigabit Ethernet">10 Gigabit Ethernet</a> links) and faster and more reliable access mechanisms (such as <a href="/wiki/Digital_subscriber_line" title="Digital subscriber line">DSL</a> and <a href="/wiki/Cable_modem" title="Cable modem">cable modems</a>) it is frequently used in <a href="/wiki/Data_center" title="Data center">data centers</a> and desktop <a href="/wiki/Personal_computer" title="Personal computer">PC</a> environments at speeds of over 1 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&#160;GHz <a href="/wiki/Pentium_4" title="Pentium 4">Pentium 4</a> processor,<sup id="cite_ref-Foong_2-0" class="reference"><a href="#cite_note-Foong-2"><span class="cite-bracket">&#91;</span>2<span class="cite-bracket">&#93;</span></a></sup> resulting in small or no processing resources left for the applications to run on the system. </p><p>TCP is a <a href="/wiki/Connection-oriented_protocol" class="mw-redirect" title="Connection-oriented protocol">connection-oriented protocol</a> which adds complexity and processing overhead. These aspects include: </p> <ul><li><a href="/wiki/Transmission_Control_Protocol#Connection_establishment" title="Transmission Control Protocol">Connection establishment</a> using the "3-way handshake" (SYNchronize; SYNchronize-ACKnowledge; ACKnowledge).</li> <li>Acknowledgment of packets as they are received by the far end, adding to the message flow between the endpoints and thus the protocol load.</li> <li><a href="/wiki/Checksum" title="Checksum">Checksum</a> and sequence number calculations - again a burden on a general purpose CPU to perform.</li> <li><a href="/wiki/Sliding_window" class="mw-redirect" title="Sliding window">Sliding window</a> calculations for packet acknowledgement and <a href="/wiki/Congestion_control" class="mw-redirect" title="Congestion control">congestion control</a>.</li> <li><a href="/wiki/Transmission_Control_Protocol" title="Transmission Control Protocol">Connection termination</a>.</li></ul> <p>Moving some or all of these functions to dedicated hardware, a TCP offload engine, frees the system's main <a href="/wiki/CPU" class="mw-redirect" title="CPU">CPU</a> for other tasks. </p> <div class="mw-heading mw-heading3"><h3 id="Freed-up_CPU_cycles">Freed-up CPU cycles</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=TCP_offload_engine&amp;action=edit&amp;section=2" title="Edit section: Freed-up CPU cycles"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>A generally accepted rule of thumb is that 1 Hertz of CPU processing is required to send or receive <span class="nowrap"><span data-sort-value="7000100000000000000♠"></span>1&#160;<a href="/wiki/Bit_per_second" class="mw-redirect" title="Bit per second">bit/s</a></span> of TCP/IP.<sup id="cite_ref-Foong_2-1" class="reference"><a href="#cite_note-Foong-2"><span class="cite-bracket">&#91;</span>2<span class="cite-bracket">&#93;</span></a></sup> For example, 5&#160;Gbit/s (625&#160;MB/s) of network traffic requires 5&#160;GHz of CPU processing. This implies that 2 entire cores of a 2.5&#160;GHz <a href="/wiki/Multi-core_processor" title="Multi-core processor">multi-core processor</a> will be required to handle the TCP/IP processing associated with 5&#160;Gbit/s of TCP/IP traffic. Since Ethernet (10GE in this example) is bidirectional, it is possible to send and receive 10&#160;Gbit/s (for an aggregate throughput of 20&#160;Gbit/s). Using the 1&#160;Hz/(bit/s) rule this equates to eight 2.5&#160;GHz cores. </p><p>Many of the CPU cycles used for TCP/IP processing are <i>freed-up</i> by TCP/IP offload and may be used by the CPU (usually a <a href="/wiki/Server_(computing)" title="Server (computing)">server</a> 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 <b>server</b> work than a server without TCP/IP offload NICs. </p> <div class="mw-heading mw-heading3"><h3 id="Reduction_of_PCI_traffic">Reduction of PCI traffic</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=TCP_offload_engine&amp;action=edit&amp;section=3" title="Edit section: Reduction of PCI traffic"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>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 end point hosts are <a href="/wiki/Peripheral_Component_Interconnect" title="Peripheral Component Interconnect">PCI</a> bus based, which provides a standard interface for the addition of certain <a href="/wiki/Peripherals" class="mw-redirect" title="Peripherals">peripherals</a> such as Network Interfaces to <a href="/wiki/Server_(computing)" title="Server (computing)">Servers</a> 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 IO throughput. </p><p>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. </p> <div class="mw-heading mw-heading2"><h2 id="History">History</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=TCP_offload_engine&amp;action=edit&amp;section=4" title="Edit section: History"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>One of the first patents in this technology, for UDP offload, was issued to <a href="/wiki/Auspex_Systems" title="Auspex Systems">Auspex Systems</a> in early 1990.<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">&#91;</span>3<span class="cite-bracket">&#93;</span></a></sup> 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.<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">&#91;</span>4<span class="cite-bracket">&#93;</span></a></sup> </p><p>By 2002, as the emergence of TCP-based storage such as <a href="/wiki/ISCSI" title="ISCSI">iSCSI</a> 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."<sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">&#91;</span>5<span class="cite-bracket">&#93;</span></a></sup> </p><p>In 2005 <a href="/wiki/Microsoft" title="Microsoft">Microsoft</a> 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. </p> <div class="mw-heading mw-heading2"><h2 id="Types">Types</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=TCP_offload_engine&amp;action=edit&amp;section=5" title="Edit section: Types"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>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. <a href="/wiki/TCP_checksum_offload" class="mw-redirect" title="TCP checksum offload">TCP checksum offload</a> and <a href="/wiki/Large_segment_offload" class="mw-redirect" title="Large segment offload">large segment offload</a> are supported by the majority of today's Ethernet NICs. Newer techniques like <a href="/wiki/Large_receive_offload" class="mw-redirect" title="Large receive offload">large receive offload</a> and TCP acknowledgment offload are already implemented in some high-end Ethernet hardware, but are effective even when implemented purely in software.<sup id="cite_ref-lwn-lro_6-0" class="reference"><a href="#cite_note-lwn-lro-6"><span class="cite-bracket">&#91;</span>6<span class="cite-bracket">&#93;</span></a></sup><sup id="cite_ref-menon_7-0" class="reference"><a href="#cite_note-menon-7"><span class="cite-bracket">&#91;</span>7<span class="cite-bracket">&#93;</span></a></sup> </p> <div class="mw-heading mw-heading3"><h3 id="Parallel-stack_full_offload">Parallel-stack full offload</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=TCP_offload_engine&amp;action=edit&amp;section=6" title="Edit section: Parallel-stack full offload"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>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 <a href="/wiki/Internet_protocol_suite#Application_layer" title="Internet protocol suite">Application Layer</a> and the <a href="/wiki/Internet_protocol_suite#Transport_layer" title="Internet protocol suite">Transport Layer (TCP)</a> 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. </p> <div class="mw-heading mw-heading3"><h3 id="HBA_full_offload">HBA full offload</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=TCP_offload_engine&amp;action=edit&amp;section=7" title="Edit section: HBA full offload"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>HBA (Host Bus Adapter) full offload is found in iSCSI <a href="/wiki/Host_adapter" title="Host adapter">host adapters</a> which present themselves as disk controllers to the host system while connecting (via TCP/IP) to an <a href="/wiki/ISCSI" title="ISCSI">iSCSI</a> storage device. This type of TCP offload not only offloads TCP/IP processing but it also offloads the iSCSI initiator function. Because the HBA appears to the host as a disk controller, it can only be used with iSCSI devices and is not appropriate for general TCP/IP offload. </p> <div class="mw-heading mw-heading3"><h3 id="TCP_chimney_partial_offload">TCP chimney partial offload</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=TCP_offload_engine&amp;action=edit&amp;section=8" title="Edit section: TCP chimney partial offload"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>TCP chimney offload addresses the major security criticism of parallel-stack full offload. In partial offload, the main system stack controls all connections to the host. After a connection has been established between the local host (usually a server) and a foreign host (usually a client) the connection and its state are passed to the TCP offload engine. The heavy lifting of data transmit and receive is handled by the offload device. Almost all TCP offload engines use some type of TCP/IP hardware implementation to perform the data transfer without host CPU intervention. When the connection is closed, the connection state is returned from the offload engine to the main system stack. Maintaining control of TCP connections allows the main system stack to implement and control connection security. </p> <div class="mw-heading mw-heading3"><h3 id="Large_receive_offload">Large receive offload</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=TCP_offload_engine&amp;action=edit&amp;section=9" title="Edit section: Large receive offload"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p><b>Large receive offload</b> (<b>LRO</b>) is a technique for increasing inbound <a href="/wiki/Throughput" class="mw-redirect" title="Throughput">throughput</a> of high-<a href="/wiki/Bandwidth_(computing)" title="Bandwidth (computing)">bandwidth</a> network connections by reducing <a href="/wiki/Central_processing_unit" title="Central processing unit">central processing unit</a> (CPU) overhead. It works by aggregating multiple incoming <a href="/wiki/Packet_(information_technology)" class="mw-redirect" title="Packet (information technology)">packets</a> from a single <a href="/wiki/Stream_(computing)" title="Stream (computing)">stream</a> into a larger buffer before they are passed higher up the networking stack, thus reducing the number of packets that have to be processed. <a href="/wiki/Linux" title="Linux">Linux</a> implementations generally use LRO in conjunction with the <a href="/wiki/New_API" title="New API">New API</a> (NAPI) to also reduce the number of <a href="/wiki/Interrupt" title="Interrupt">interrupts</a>. </p><p>According to benchmarks, even implementing this technique entirely in software can increase network performance significantly.<sup id="cite_ref-lwn-lro_6-1" class="reference"><a href="#cite_note-lwn-lro-6"><span class="cite-bracket">&#91;</span>6<span class="cite-bracket">&#93;</span></a></sup><sup id="cite_ref-menon_7-1" class="reference"><a href="#cite_note-menon-7"><span class="cite-bracket">&#91;</span>7<span class="cite-bracket">&#93;</span></a></sup><sup id="cite_ref-8" class="reference"><a href="#cite_note-8"><span class="cite-bracket">&#91;</span>8<span class="cite-bracket">&#93;</span></a></sup> As of April&#160; 2007<sup class="plainlinks noexcerpt noprint asof-tag update" style="display:none;"><a class="external text" href="https://en.wikipedia.org/w/index.php?title=TCP_offload_engine&amp;action=edit">&#91;update&#93;</a></sup>, the <a href="/wiki/Linux_kernel" title="Linux kernel">Linux kernel</a> supports LRO for <a href="/wiki/Transmission_Control_Protocol" title="Transmission Control Protocol">TCP</a> in software only. <a href="/wiki/FreeBSD" title="FreeBSD">FreeBSD</a> 8 supports LRO in hardware on adapters that support it.<sup id="cite_ref-9" class="reference"><a href="#cite_note-9"><span class="cite-bracket">&#91;</span>9<span class="cite-bracket">&#93;</span></a></sup><sup id="cite_ref-10" class="reference"><a href="#cite_note-10"><span class="cite-bracket">&#91;</span>10<span class="cite-bracket">&#93;</span></a></sup><sup id="cite_ref-11" class="reference"><a href="#cite_note-11"><span class="cite-bracket">&#91;</span>11<span class="cite-bracket">&#93;</span></a></sup> <sup id="cite_ref-vmxnet-lro_12-0" class="reference"><a href="#cite_note-vmxnet-lro-12"><span class="cite-bracket">&#91;</span>12<span class="cite-bracket">&#93;</span></a></sup> </p><p>LRO should not operate on machines acting as routers, as it breaks the <a href="/wiki/End-to-end_principle" title="End-to-end principle">end-to-end principle</a> and can significantly impact performance.<sup id="cite_ref-13" class="reference"><a href="#cite_note-13"><span class="cite-bracket">&#91;</span>13<span class="cite-bracket">&#93;</span></a></sup><sup id="cite_ref-14" class="reference"><a href="#cite_note-14"><span class="cite-bracket">&#91;</span>14<span class="cite-bracket">&#93;</span></a></sup> </p> <div class="mw-heading mw-heading4"><h4 id="Generic_receive_offload">Generic receive offload</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=TCP_offload_engine&amp;action=edit&amp;section=10" title="Edit section: Generic receive offload"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p><b>Generic receive offload</b> (<b>GRO</b>) implements a generalised LRO in software that isn't restricted to TCP/<a href="/wiki/IPv4" title="IPv4">IPv4</a> or have the issues created by LRO.<sup id="cite_ref-15" class="reference"><a href="#cite_note-15"><span class="cite-bracket">&#91;</span>15<span class="cite-bracket">&#93;</span></a></sup><sup id="cite_ref-16" class="reference"><a href="#cite_note-16"><span class="cite-bracket">&#91;</span>16<span class="cite-bracket">&#93;</span></a></sup> </p> <div class="mw-heading mw-heading3"><h3 id="Large_send_offload">Large send offload</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=TCP_offload_engine&amp;action=edit&amp;section=11" title="Edit section: Large send offload"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>In <a href="/wiki/Computer_network" title="Computer network">computer networking</a>, <b>large send offload</b> (<b>LSO</b>) is a technique for increasing egress <a href="/wiki/Throughput" class="mw-redirect" title="Throughput">throughput</a> of high-<a href="/wiki/Bandwidth_(computing)" title="Bandwidth (computing)">bandwidth</a> network connections by reducing <a href="/wiki/Central_processing_unit" title="Central processing unit">CPU</a> overhead. It works by passing a multipacket buffer to the <a href="/wiki/Network_interface_card" class="mw-redirect" title="Network interface card">network interface card</a> (NIC). The NIC then splits this buffer into separate packets. The technique is also called <b>TCP segmentation offload</b> (<b>TSO</b>) or <b>generic segmentation offload</b> (<b>GSO</b>) when applied to <a href="/wiki/Transmission_Control_Protocol" title="Transmission Control Protocol">TCP</a>. LSO and LRO are independent and use of one does not require the use of the other. </p><p>When a system needs to send large chunks of data out over a computer network, the chunks first need breaking down into smaller segments that can pass through all the network elements like routers and switches between the source and destination computers. This process is referred to as <i><a href="/wiki/Packet_segmentation" title="Packet segmentation">segmentation</a></i>. Often the TCP protocol in the host computer performs this segmentation. Offloading this work to the NIC is called <i>TCP segmentation offload</i> (TSO). </p><p>For example, a unit of 64 KiB (65,536 bytes) of data is usually segmented to 45 segments of 1460 bytes each before it is sent through the NIC and over the network. With some intelligence in the NIC, the host CPU can hand over the 64 KB of data to the NIC in a single transmit-request, the NIC can break that data down into smaller segments of 1460 bytes, add the TCP, <a href="/wiki/Internet_Protocol" title="Internet Protocol">IP</a>, and data link layer protocol headers — according to a template provided by the host's TCP/IP stack — to each segment, and send the resulting frames over the network. This significantly reduces the work done by the CPU. As of 2014<sup class="plainlinks noexcerpt noprint asof-tag update" style="display:none;"><a class="external text" href="https://en.wikipedia.org/w/index.php?title=TCP_offload_engine&amp;action=edit">&#91;update&#93;</a></sup> many new NICs on the market support TSO. </p><p>Some network cards implement TSO generically enough that it can be used for offloading fragmentation of other <a href="/wiki/Transport_layer" title="Transport layer">transport layer</a> protocols, or for doing <a href="/wiki/IP_fragmentation" title="IP fragmentation">IP fragmentation</a> for protocols that don't support fragmentation by themselves, such as <a href="/wiki/User_Datagram_Protocol" title="User Datagram Protocol">UDP</a>. </p> <div class="mw-heading mw-heading2"><h2 id="Support_in_Linux">Support in Linux</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=TCP_offload_engine&amp;action=edit&amp;section=12" title="Edit section: Support in Linux"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Unlike other operating systems, such as FreeBSD, the Linux kernel does not include support for TOE (not to be confused with other types of network offload).<sup id="cite_ref-17" class="reference"><a href="#cite_note-17"><span class="cite-bracket">&#91;</span>17<span class="cite-bracket">&#93;</span></a></sup> While there are patches from the hardware manufacturers such as <a href="/wiki/Chelsio" class="mw-redirect" title="Chelsio">Chelsio</a> or <a href="/wiki/Qlogic" class="mw-redirect" title="Qlogic">Qlogic</a> that add TOE support, the Linux kernel developers are opposed to this technology for several reasons:<sup id="cite_ref-18" class="reference"><a href="#cite_note-18"><span class="cite-bracket">&#91;</span>18<span class="cite-bracket">&#93;</span></a></sup> </p> <ul><li><i>Security</i> – because TOE is implemented in hardware, patches must be applied to the TOE <a href="/wiki/Firmware" title="Firmware">firmware</a>, instead of just software, to address any security vulnerabilities found in a particular TOE implementation. This is further compounded by the newness and vendor-specificity of this hardware, as compared to a well tested TCP/IP stack as is found in an operating system that does not use TOE.</li> <li><i>Limitations</i> of hardware – because connections are buffered and processed on the TOE chip, resource starvation can more easily occur as compared to the generous CPU and memory available to the operating system.</li> <li><i>Complexity</i> – TOE breaks the assumption that kernels make about having access to all resources at all times – details such as memory used by open connections are not available with TOE. TOE also requires very large changes to a networking stack in order to be supported properly, and even when that is done, features like <a href="/wiki/Quality_of_service" title="Quality of service">quality of service</a> and <a href="/wiki/Packet_filtering" class="mw-redirect" title="Packet filtering">packet filtering</a> might not work.</li> <li><i>Proprietary</i> – TOE is implemented differently by each hardware vendor. This means more code must be rewritten to deal with the various TOE implementations, at a cost of the aforementioned complexity and, possibly, security. Furthermore, TOE firmware cannot be easily modified since it is closed-source.</li> <li><i>Obsolescence</i> – Each TOE NIC has a limited lifetime of usefulness, because system hardware rapidly catches up to TOE performance levels, and eventually exceeds TOE performance levels.</li></ul> <div class="mw-heading mw-heading2"><h2 id="Suppliers">Suppliers</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=TCP_offload_engine&amp;action=edit&amp;section=13" title="Edit section: Suppliers"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Much of the current work on TOE technology is by manufacturers of 10 Gigabit Ethernet interface cards, such as <a href="/wiki/Broadcom" title="Broadcom">Broadcom</a>, <a href="/wiki/Chelsio_Communications" title="Chelsio Communications">Chelsio Communications</a>, <a href="/wiki/Emulex" title="Emulex">Emulex</a>, <a href="/wiki/Mellanox_Technologies" title="Mellanox Technologies">Mellanox Technologies</a>, <a href="/wiki/QLogic" title="QLogic">QLogic</a>. </p> <div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=TCP_offload_engine&amp;action=edit&amp;section=14" title="Edit section: See also"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><a href="/wiki/Scalable_Networking_Pack" title="Scalable Networking Pack">Scalable Networking Pack</a></li> <li><a href="/wiki/I/O_Acceleration_Technology" title="I/O Acceleration Technology">I/O Acceleration Technology</a> (I/OAT)</li> <li><a href="/wiki/Energy_Efficient_Ethernet" class="mw-redirect" title="Energy Efficient Ethernet">Energy Efficient Ethernet</a> (EEE)</li> <li><a href="/wiki/Autonomous_peripheral_operation" title="Autonomous peripheral operation">Autonomous peripheral operation</a></li></ul> <div class="mw-heading mw-heading2"><h2 id="References">References</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=TCP_offload_engine&amp;action=edit&amp;section=15" title="Edit section: References"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <style data-mw-deduplicate="TemplateStyles:r1239543626">.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}</style><div class="reflist reflist-columns references-column-width" style="column-width: 30em;"> <ol class="references"> <li id="cite_note-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-1">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("//upload.wikimedia.org/wikipedia/commons/6/65/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("//upload.wikimedia.org/wikipedia/commons/d/d6/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("//upload.wikimedia.org/wikipedia/commons/a/aa/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("//upload.wikimedia.org/wikipedia/commons/4/4c/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}</style><cite id="CITEREFJeffrey_C._Mogul2003" class="citation conference cs1">Jeffrey C. Mogul (2003-05-18). <a rel="nofollow" class="external text" href="https://www.usenix.org/conference/hotos-ix/tcp-offload-dumb-idea-whose-time-has-come"><i>TCP Offload Is a Dumb Idea Whose Time Has Come</i></a>. HotOS. <a href="/wiki/Usenix" class="mw-redirect" title="Usenix">Usenix</a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=conference&amp;rft.btitle=TCP+Offload+Is+a+Dumb+Idea+Whose+Time+Has+Come&amp;rft.pub=Usenix&amp;rft.date=2003-05-18&amp;rft.au=Jeffrey+C.+Mogul&amp;rft_id=https%3A%2F%2Fwww.usenix.org%2Fconference%2Fhotos-ix%2Ftcp-offload-dumb-idea-whose-time-has-come&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ATCP+offload+engine" class="Z3988"></span></span> </li> <li id="cite_note-Foong-2"><span class="mw-cite-backlink">^ <a href="#cite_ref-Foong_2-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-Foong_2-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFAnnie_P._FoongThomas_R._HuffHerbert_H._HumJaidev_P._Patwardhan2003" class="citation conference cs1">Annie P. Foong; Thomas R. Huff; Herbert H. Hum; Jaidev P. Patwardhan; Greg J. Regnier (2003-04-02). <a rel="nofollow" class="external text" href="http://www.nanogrids.org/jaidev/papers/ispass03.pdf"><i>TCP performance re-visited</i></a> <span class="cs1-format">(PDF)</span>. Proceedings of the International Symposium on Performance Analysis of Systems and Software (ISPASS). Austin, Texas.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=conference&amp;rft.btitle=TCP+performance+re-visited&amp;rft.place=Austin%2C+Texas&amp;rft.date=2003-04-02&amp;rft.au=Annie+P.+Foong&amp;rft.au=Thomas+R.+Huff&amp;rft.au=Herbert+H.+Hum&amp;rft.au=Jaidev+P.+Patwardhan&amp;rft.au=Greg+J.+Regnier&amp;rft_id=http%3A%2F%2Fwww.nanogrids.org%2Fjaidev%2Fpapers%2Fispass03.pdf&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ATCP+offload+engine" class="Z3988"></span></span> </li> <li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text"> <a rel="nofollow" class="external text" href="http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO1&amp;Sect2=HITOFF&amp;d=PALL&amp;p=1&amp;u=%2Fnetahtml%2FPTO%2Fsrchnum.htm&amp;r=1&amp;f=G&amp;l=50&amp;s1=5355453.PN.&amp;OS=PN/5355453&amp;RS=PN/5355453">United States Patent: 5355453 <i>"Parallel I/O network file server architecture category"</i></a></span> </li> <li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text"> <a rel="nofollow" class="external text" href="http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO1&amp;Sect2=HITOFF&amp;d=PALL&amp;p=1&amp;u=%2Fnetahtml%2FPTO%2Fsrchnum.htm&amp;r=1&amp;f=G&amp;l=50&amp;s1=6247060.PN.&amp;OS=PN/6247060&amp;RS=PN/6247060">United States Patent: 6247060 <i>"Passing a Communication Block from Host to a Local Device such that a message is processed on the Device"</i></a></span> </li> <li id="cite_note-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-5">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://www.eetimes.com/electronics-news/4143213/Newcomers-spin-storage-network-silicon">"Newcomers spin storage network silicon "</a>, Rick Merritt, 10/21/2002, EE Times</span> </li> <li id="cite_note-lwn-lro-6"><span class="mw-cite-backlink">^ <a href="#cite_ref-lwn-lro_6-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-lwn-lro_6-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFJonathan_Corbet2007" class="citation news cs1">Jonathan Corbet (2007-08-01). <a rel="nofollow" class="external text" href="https://lwn.net/Articles/243949/">"Large receive offload"</a>. <a href="/wiki/LWN.net" title="LWN.net">LWN.net</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2007-08-22</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.atitle=Large+receive+offload&amp;rft.date=2007-08-01&amp;rft.au=Jonathan+Corbet&amp;rft_id=https%3A%2F%2Flwn.net%2FArticles%2F243949%2F&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ATCP+offload+engine" class="Z3988"></span></span> </li> <li id="cite_note-menon-7"><span class="mw-cite-backlink">^ <a href="#cite_ref-menon_7-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-menon_7-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFAravind_MenonWilly_Zwaenepoel2008" class="citation conference cs1">Aravind Menon; Willy Zwaenepoel (2008-04-28). <a rel="nofollow" class="external text" href="http://www.usenix.org/event/usenix08/tech/full_papers/menon/menon_html/paper.html"><i>Optimizing TCP Receive Performance</i></a>. USENIX Annual Technical Conference. USENIX.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=conference&amp;rft.btitle=Optimizing+TCP+Receive+Performance&amp;rft.pub=USENIX&amp;rft.date=2008-04-28&amp;rft.au=Aravind+Menon&amp;rft.au=Willy+Zwaenepoel&amp;rft_id=http%3A%2F%2Fwww.usenix.org%2Fevent%2Fusenix08%2Ftech%2Ffull_papers%2Fmenon%2Fmenon_html%2Fpaper.html&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ATCP+offload+engine" class="Z3988"></span></span> </li> <li id="cite_note-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-8">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFAndrew_Gallatin2007" class="citation mailinglist cs1">Andrew Gallatin (2007-07-25). <a rel="nofollow" class="external text" href="https://lkml.org/lkml/2007/7/25/313">"lro: Generic Large Receive Offload for TCP traffic"</a>. <i>linux-kernel</i> (Mailing list)<span class="reference-accessdate">. Retrieved <span class="nowrap">2007-08-22</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=unknown&amp;rft.btitle=lro%3A+Generic+Large+Receive+Offload+for+TCP+traffic&amp;rft.date=2007-07-25&amp;rft.au=Andrew+Gallatin&amp;rft_id=https%3A%2F%2Flkml.org%2Flkml%2F2007%2F7%2F25%2F313&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ATCP+offload+engine" class="Z3988"></span></span> </li> <li id="cite_note-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-9">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.freebsd.org/cgi/man.cgi?cxgb">"Cxgb"</a>. <i>Freebsd.org</i><span class="reference-accessdate">. Retrieved <span class="nowrap">12 July</span> 2018</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=unknown&amp;rft.jtitle=Freebsd.org&amp;rft.atitle=Cxgb&amp;rft_id=http%3A%2F%2Fwww.freebsd.org%2Fcgi%2Fman.cgi%3Fcxgb&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ATCP+offload+engine" class="Z3988"></span></span> </li> <li id="cite_note-10"><span class="mw-cite-backlink"><b><a href="#cite_ref-10">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.freebsd.org/cgi/man.cgi?mxge">"Mxge"</a>. <i>Freebsd.org</i><span class="reference-accessdate">. Retrieved <span class="nowrap">12 July</span> 2018</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=unknown&amp;rft.jtitle=Freebsd.org&amp;rft.atitle=Mxge&amp;rft_id=http%3A%2F%2Fwww.freebsd.org%2Fcgi%2Fman.cgi%3Fmxge&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ATCP+offload+engine" class="Z3988"></span></span> </li> <li id="cite_note-11"><span class="mw-cite-backlink"><b><a href="#cite_ref-11">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.freebsd.org/cgi/man.cgi?nxge">"Nxge"</a>. <i>Freebsd.org</i><span class="reference-accessdate">. Retrieved <span class="nowrap">12 July</span> 2018</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=unknown&amp;rft.jtitle=Freebsd.org&amp;rft.atitle=Nxge&amp;rft_id=http%3A%2F%2Fwww.freebsd.org%2Fcgi%2Fman.cgi%3Fnxge&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ATCP+offload+engine" class="Z3988"></span></span> </li> <li id="cite_note-vmxnet-lro-12"><span class="mw-cite-backlink"><b><a href="#cite_ref-vmxnet-lro_12-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation news cs1"><a rel="nofollow" class="external text" href="http://kb.vmware.com/kb/1027511">"Poor TCP performance can occur in Linux virtual machines with LRO enabled"</a>. <a href="/wiki/VMware" title="VMware">VMware</a>. 2011-07-04<span class="reference-accessdate">. Retrieved <span class="nowrap">2011-08-17</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=article&amp;rft.atitle=Poor+TCP+performance+can+occur+in+Linux+virtual+machines+with+LRO+enabled&amp;rft.date=2011-07-04&amp;rft_id=http%3A%2F%2Fkb.vmware.com%2Fkb%2F1027511&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ATCP+offload+engine" class="Z3988"></span></span> </li> <li id="cite_note-13"><span class="mw-cite-backlink"><b><a href="#cite_ref-13">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://downloadmirror.intel.com/14687/eng/readme.txt">"Linux* Base Driver for the Intel(R) Ethernet 10 Gigabit PCI Express Family of Adapters"</a>. <a href="/wiki/Intel_Corporation" class="mw-redirect" title="Intel Corporation">Intel Corporation</a>. 2013-02-12<span class="reference-accessdate">. Retrieved <span class="nowrap">2013-04-24</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=unknown&amp;rft.btitle=Linux%2A+Base+Driver+for+the+Intel%28R%29+Ethernet+10+Gigabit+PCI+Express+Family+of+Adapters&amp;rft.pub=Intel+Corporation&amp;rft.date=2013-02-12&amp;rft_id=http%3A%2F%2Fdownloadmirror.intel.com%2F14687%2Feng%2Freadme.txt&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ATCP+offload+engine" class="Z3988"></span></span> </li> <li id="cite_note-14"><span class="mw-cite-backlink"><b><a href="#cite_ref-14">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://bugzilla.redhat.com/show_bug.cgi?id=772317">"Disable LRO for all NICs that have LRO enabled"</a>. <a href="/wiki/Red_Hat,_Inc." class="mw-redirect" title="Red Hat, Inc.">Red Hat, Inc.</a> 2013-01-10<span class="reference-accessdate">. Retrieved <span class="nowrap">2013-04-24</span></span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=unknown&amp;rft.btitle=Disable+LRO+for+all+NICs+that+have+LRO+enabled&amp;rft.pub=Red+Hat%2C+Inc.&amp;rft.date=2013-01-10&amp;rft_id=https%3A%2F%2Fbugzilla.redhat.com%2Fshow_bug.cgi%3Fid%3D772317&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ATCP+offload+engine" class="Z3988"></span></span> </li> <li id="cite_note-15"><span class="mw-cite-backlink"><b><a href="#cite_ref-15">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://lwn.net/Articles/358910/">"JLS2009: Generic receive offload"</a>. <i><a href="/wiki/Lwn.net" class="mw-redirect" title="Lwn.net">lwn.net</a></i>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&amp;rft.genre=unknown&amp;rft.jtitle=lwn.net&amp;rft.atitle=JLS2009%3A+Generic+receive+offload&amp;rft_id=https%3A%2F%2Flwn.net%2FArticles%2F358910%2F&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ATCP+offload+engine" class="Z3988"></span></span> </li> <li id="cite_note-16"><span class="mw-cite-backlink"><b><a href="#cite_ref-16">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFHuangBaldine2012" class="citation conference cs1">Huang, Shu; Baldine, Ilia (March 2012). Schmitt, Jens B. (ed.). <a rel="nofollow" class="external text" href="https://books.google.com/books?id=C3wQBwAAQBAJ"><i>Performance Evaluation of 10GE NICs with SR-IOV Support: I/O Virtualization and network Stack Optimizations</i></a>. Measurement, Modeling, and Evaluation of Computing Systems and Dependability and Fault Tolerance: 16th International GI/ITG Conference, MMB &amp; DFT 2012. Lecture Notes in Computer Science. Vol.&#160;7201. Kaiserslautern, Germany: Springer (published 2012). p.&#160;198. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&#160;<a href="/wiki/Special:BookSources/9783642285400" title="Special:BookSources/9783642285400"><bdi>9783642285400</bdi></a><span class="reference-accessdate">. Retrieved <span class="nowrap">2016-10-11</span></span>. <q>Large-Receive-Offload (LRO) reduces the per-packet processing overhead by aggregating smaller packets into larger ones and passing them up to the network stack. Generic-Receive-Offload (GRO) provides a generalized software version of LRO [...].</q></cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=conference&amp;rft.btitle=Performance+Evaluation+of+10GE+NICs+with+SR-IOV+Support%3A+I%2FO+Virtualization+and+network+Stack+Optimizations&amp;rft.place=Kaiserslautern%2C+Germany&amp;rft.series=Lecture+Notes+in+Computer+Science&amp;rft.pages=198&amp;rft.pub=Springer&amp;rft.date=2012-03&amp;rft.isbn=9783642285400&amp;rft.aulast=Huang&amp;rft.aufirst=Shu&amp;rft.au=Baldine%2C+Ilia&amp;rft_id=https%3A%2F%2Fbooks.google.com%2Fbooks%3Fid%3DC3wQBwAAQBAJ&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ATCP+offload+engine" class="Z3988"></span></span> </li> <li id="cite_note-17"><span class="mw-cite-backlink"><b><a href="#cite_ref-17">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://lwn.net/Articles/148697/">"Linux and TCP offload engines"</a>, August 22, 2005, LWN.net</span> </li> <li id="cite_note-18"><span class="mw-cite-backlink"><b><a href="#cite_ref-18">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation cs2"><a rel="nofollow" class="external text" href="https://wiki.linuxfoundation.org/networking/toe"><i>Networking:TOE</i></a>, Linux Foundation</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=book&amp;rft.btitle=Networking%3ATOE&amp;rft.pub=Linux+Foundation&amp;rft_id=https%3A%2F%2Fwiki.linuxfoundation.org%2Fnetworking%2Ftoe&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ATCP+offload+engine" class="Z3988"></span>.</span> </li> </ol></div> <div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=TCP_offload_engine&amp;action=edit&amp;section=16" title="Edit section: External links"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li>Article: <a rel="nofollow" class="external text" href="https://web.archive.org/web/20041028124133/http://acmqueue.com/modules.php?name=Content&amp;pa=showpage&amp;pid=154">TCP Offload to the Rescue</a> by Andy Currid at <a rel="nofollow" class="external text" href="http://www.acmqueue.com/">ACM Queue</a></li> <li><a rel="nofollow" class="external text" href="http://appft1.uspto.gov/netacgi/nph-Parser?Sect1=PTO1&amp;Sect2=HITOFF&amp;d=PG01&amp;p=1&amp;u=%2Fnetahtml%2FPTO%2Fsrchnum.html&amp;r=1&amp;f=G&amp;l=50&amp;s1=%2220040042487%22.PGNR.&amp;OS=DN/20040042487&amp;RS=DN/20040042487">Patent Application 20040042487 </a></li> <li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFMogul2003" class="citation conference cs1">Mogul, Jeffrey C. (2003). <a rel="nofollow" class="external text" href="http://www.usenix.org/events/hotos03/tech/full_papers/mogul/mogul.pdf">"TCP offload is a dumb idea whose time has come"</a> <span class="cs1-format">(PDF)</span>. <i>Proceedings of HotOS IX: The 9th Workshop on Hot Topics in Operating Systems</i>. USENIX Association<span class="reference-accessdate">. Retrieved <span class="nowrap">23 July</span> 2006</span>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=conference&amp;rft.atitle=TCP+offload+is+a+dumb+idea+whose+time+has+come&amp;rft.btitle=Proceedings+of+HotOS+IX%3A+The+9th+Workshop+on+Hot+Topics+in+Operating+Systems&amp;rft.pub=USENIX+Association&amp;rft.date=2003&amp;rft.aulast=Mogul&amp;rft.aufirst=Jeffrey+C.&amp;rft_id=http%3A%2F%2Fwww.usenix.org%2Fevents%2Fhotos03%2Ftech%2Ffull_papers%2Fmogul%2Fmogul.pdf&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ATCP+offload+engine" class="Z3988"></span></li> <li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://line-provider.com/whitepapers/tcpip-offload-engine-toe/">"TCP/IP offload Engine (TOE)"</a>. <a href="/wiki/10_Gigabit_Ethernet_Alliance" title="10 Gigabit Ethernet Alliance">10 Gigabit Ethernet Alliance</a>. April 2002.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=unknown&amp;rft.btitle=TCP%2FIP+offload+Engine+%28TOE%29&amp;rft.pub=10+Gigabit+Ethernet+Alliance&amp;rft.date=2002-04&amp;rft_id=http%3A%2F%2Fline-provider.com%2Fwhitepapers%2Ftcpip-offload-engine-toe%2F&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3ATCP+offload+engine" class="Z3988"></span></li> <li><a rel="nofollow" class="external text" href="https://docs.microsoft.com/en-us/windows-hardware/drivers/network/offloading-the-segmentation-of-large-tcp-packets">Windows Network Task Offload</a></li> <li><a rel="nofollow" class="external text" href="http://www.linuxfoundation.org/collaborate/workgroups/networking/gso">GSO in Linux</a></li> <li><a rel="nofollow" class="external text" href="https://wiki.geant.org/pages/releaseview.action?pageId=121340564">Brief Description of LSO in Linux</a></li> <li><a rel="nofollow" class="external text" href="https://wiki.geant.org/display/public/EK/Case+Studies">Case Studies of Performance issues with LSO and Traffic Shaping (Linux)</a></li> <li><a rel="nofollow" class="external text" href="http://www.onlamp.com/pub/a/bsd/2008/02/26/whats-new-in-freebsd-70.html?page=1">FreeBSD 7.0 new features, brief discussion on TSO support</a></li></ul> <!-- NewPP limit report Parsed by mw‐web.eqiad.main‐5dc468848‐qz7dw Cached time: 20241122140918 Cache expiry: 2592000 Reduced expiry: false Complications: [vary‐revision‐sha1, show‐toc] CPU time usage: 0.308 seconds Real time usage: 0.401 seconds Preprocessor visited node count: 1497/1000000 Post‐expand include size: 28288/2097152 bytes Template argument size: 1617/2097152 bytes Highest expansion depth: 22/100 Expensive parser function count: 3/500 Unstrip recursion depth: 1/20 Unstrip post‐expand size: 54553/5000000 bytes Lua time usage: 0.177/10.000 seconds Lua memory usage: 7211986/52428800 bytes Number of Wikibase entities loaded: 0/400 --> <!-- Transclusion expansion time report (%,ms,calls,template) 100.00% 359.208 1 -total 49.56% 178.033 1 Template:Reflist 30.86% 110.861 5 Template:Cite_conference 25.81% 92.713 1 Template:Short_description 11.81% 42.423 2 Template:Pagetype 10.53% 37.809 5 Template:Main_other 10.37% 37.238 1 Template:Val 8.33% 29.921 2 Template:As_of 7.99% 28.688 7 Template:Cite_web 5.47% 19.661 1 Template:SDcat --> <!-- Saved in parser cache with key enwiki:pcache:idhash:849531-0!canonical and timestamp 20241122140918 and revision id 1195629047. Rendering was triggered because: page-view --> </div><!--esi <esi:include src="/esitest-fa8a495983347898/content" /> --><noscript><img src="https://login.wikimedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" width="1" height="1" style="border: none; position: absolute;"></noscript> <div class="printfooter" data-nosnippet="">Retrieved from "<a dir="ltr" href="https://en.wikipedia.org/w/index.php?title=TCP_offload_engine&amp;oldid=1195629047">https://en.wikipedia.org/w/index.php?title=TCP_offload_engine&amp;oldid=1195629047</a>"</div></div> <div id="catlinks" class="catlinks" data-mw="interface"><div id="mw-normal-catlinks" class="mw-normal-catlinks"><a href="/wiki/Help:Category" title="Help:Category">Categories</a>: <ul><li><a href="/wiki/Category:Networking_hardware" title="Category:Networking hardware">Networking hardware</a></li><li><a href="/wiki/Category:Network_acceleration" title="Category:Network acceleration">Network acceleration</a></li><li><a href="/wiki/Category:Transmission_Control_Protocol" title="Category:Transmission Control Protocol">Transmission Control Protocol</a></li></ul></div><div id="mw-hidden-catlinks" class="mw-hidden-catlinks mw-hidden-cats-hidden">Hidden categories: <ul><li><a href="/wiki/Category:Articles_with_short_description" title="Category:Articles with short description">Articles with short description</a></li><li><a href="/wiki/Category:Short_description_matches_Wikidata" title="Category:Short description matches Wikidata">Short description matches Wikidata</a></li><li><a href="/wiki/Category:Articles_containing_potentially_dated_statements_from_April_2007" title="Category:Articles containing potentially dated statements from April 2007">Articles containing potentially dated statements from April 2007</a></li><li><a href="/wiki/Category:All_articles_containing_potentially_dated_statements" title="Category:All articles containing potentially dated statements">All articles containing potentially dated statements</a></li><li><a href="/wiki/Category:Articles_containing_potentially_dated_statements_from_2014" title="Category:Articles containing potentially dated statements from 2014">Articles containing potentially dated statements from 2014</a></li></ul></div></div> </div> </main> </div> <div class="mw-footer-container"> <footer id="footer" class="mw-footer" > <ul id="footer-info"> <li id="footer-info-lastmod"> This page was last edited on 14 January 2024, at 17:09<span class="anonymous-show">&#160;(UTC)</span>.</li> <li id="footer-info-copyright">Text is available under the <a href="/wiki/Wikipedia:Text_of_the_Creative_Commons_Attribution-ShareAlike_4.0_International_License" title="Wikipedia:Text of the Creative Commons Attribution-ShareAlike 4.0 International License">Creative Commons Attribution-ShareAlike 4.0 License</a>; additional terms may apply. By using this site, you agree to the <a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Terms_of_Use" class="extiw" title="foundation:Special:MyLanguage/Policy:Terms of Use">Terms of Use</a> and <a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy" class="extiw" title="foundation:Special:MyLanguage/Policy:Privacy policy">Privacy Policy</a>. Wikipedia® is a registered trademark of the <a rel="nofollow" class="external text" href="https://wikimediafoundation.org/">Wikimedia Foundation, Inc.</a>, a non-profit organization.</li> </ul> <ul id="footer-places"> <li id="footer-places-privacy"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy">Privacy policy</a></li> <li id="footer-places-about"><a href="/wiki/Wikipedia:About">About Wikipedia</a></li> <li id="footer-places-disclaimers"><a href="/wiki/Wikipedia:General_disclaimer">Disclaimers</a></li> <li id="footer-places-contact"><a href="//en.wikipedia.org/wiki/Wikipedia:Contact_us">Contact Wikipedia</a></li> <li id="footer-places-wm-codeofconduct"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Universal_Code_of_Conduct">Code of Conduct</a></li> <li id="footer-places-developers"><a href="https://developer.wikimedia.org">Developers</a></li> <li id="footer-places-statslink"><a href="https://stats.wikimedia.org/#/en.wikipedia.org">Statistics</a></li> <li id="footer-places-cookiestatement"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Cookie_statement">Cookie statement</a></li> <li id="footer-places-mobileview"><a href="//en.m.wikipedia.org/w/index.php?title=TCP_offload_engine&amp;mobileaction=toggle_view_mobile" class="noprint stopMobileRedirectToggle">Mobile view</a></li> </ul> <ul id="footer-icons" class="noprint"> <li id="footer-copyrightico"><a href="https://wikimediafoundation.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/static/images/footer/wikimedia-button.svg" width="84" height="29" alt="Wikimedia Foundation" loading="lazy"></a></li> <li id="footer-poweredbyico"><a href="https://www.mediawiki.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/w/resources/assets/poweredby_mediawiki.svg" alt="Powered by MediaWiki" width="88" height="31" loading="lazy"></a></li> </ul> </footer> </div> </div> </div> <div class="vector-settings" id="p-dock-bottom"> <ul></ul> </div><script>(RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgHostname":"mw-web.codfw.main-f69cdc8f6-d8f47","wgBackendResponseTime":121,"wgPageParseReport":{"limitreport":{"cputime":"0.308","walltime":"0.401","ppvisitednodes":{"value":1497,"limit":1000000},"postexpandincludesize":{"value":28288,"limit":2097152},"templateargumentsize":{"value":1617,"limit":2097152},"expansiondepth":{"value":22,"limit":100},"expensivefunctioncount":{"value":3,"limit":500},"unstrip-depth":{"value":1,"limit":20},"unstrip-size":{"value":54553,"limit":5000000},"entityaccesscount":{"value":0,"limit":400},"timingprofile":["100.00% 359.208 1 -total"," 49.56% 178.033 1 Template:Reflist"," 30.86% 110.861 5 Template:Cite_conference"," 25.81% 92.713 1 Template:Short_description"," 11.81% 42.423 2 Template:Pagetype"," 10.53% 37.809 5 Template:Main_other"," 10.37% 37.238 1 Template:Val"," 8.33% 29.921 2 Template:As_of"," 7.99% 28.688 7 Template:Cite_web"," 5.47% 19.661 1 Template:SDcat"]},"scribunto":{"limitreport-timeusage":{"value":"0.177","limit":"10.000"},"limitreport-memusage":{"value":7211986,"limit":52428800}},"cachereport":{"origin":"mw-web.eqiad.main-5dc468848-qz7dw","timestamp":"20241122140918","ttl":2592000,"transientcontent":false}}});});</script> <script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"Article","name":"TCP offload engine","url":"https:\/\/en.wikipedia.org\/wiki\/TCP_offload_engine","sameAs":"http:\/\/www.wikidata.org\/entity\/Q840738","mainEntity":"http:\/\/www.wikidata.org\/entity\/Q840738","author":{"@type":"Organization","name":"Contributors to Wikimedia projects"},"publisher":{"@type":"Organization","name":"Wikimedia Foundation, Inc.","logo":{"@type":"ImageObject","url":"https:\/\/www.wikimedia.org\/static\/images\/wmf-hor-googpub.png"}},"datePublished":"2004-07-22T13:48:12Z","dateModified":"2024-01-14T17:09:50Z","headline":"technology used in network interface cards"}</script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10