CINXE.COM
Network congestion - 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>Network congestion - 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":"71174617-dbb6-48f4-bd0f-e5eb38b4523d","wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"Network_congestion","wgTitle":"Network congestion","wgCurRevisionId":1250337576,"wgRevisionId":1250337576,"wgArticleId":430522,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["Articles with short description","Short description is different from Wikidata","Use American English from June 2022","All Wikipedia articles written in American English","Articles needing additional references from May 2013","All articles needing additional references","All articles with unsourced statements","Articles with unsourced statements from February 2019","Webarchive template wayback links","Network performance","Teletraffic","Transport layer protocols", "Technological failures","Packets (information technology)","Queue management"],"wgPageViewLanguage":"en","wgPageContentLanguage":"en","wgPageContentModel":"wikitext","wgRelevantPageName":"Network_congestion","wgRelevantArticleId":430522,"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":"Q180368","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","ext.math.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","mmv.bootstrap","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&modules=ext.cite.styles%7Cext.math.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&only=styles&skin=vector-2022"> <script async="" src="/w/load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector-2022"></script> <meta name="ResourceLoaderDynamicStyles" content=""> <link rel="stylesheet" href="/w/load.php?lang=en&modules=site.styles&only=styles&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="Network congestion - Wikipedia"> <meta property="og:type" content="website"> <link rel="preconnect" href="//upload.wikimedia.org"> <link rel="alternate" media="only screen and (max-width: 640px)" href="//en.m.wikipedia.org/wiki/Network_congestion"> <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/w/index.php?title=Network_congestion&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/Network_congestion"> <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&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-Network_congestion rootpage-Network_congestion 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'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&utm_medium=sidebar&utm_campaign=C13_en.wikipedia.org&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&returnto=Network+congestion" 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&returnto=Network+congestion" title="You're encouraged to log in; however, it'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&utm_medium=sidebar&utm_campaign=C13_en.wikipedia.org&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&returnto=Network+congestion" 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&returnto=Network+congestion" title="You're encouraged to log in; however, it'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-Network_capacity" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Network_capacity"> <div class="vector-toc-text"> <span class="vector-toc-numb">1</span> <span>Network capacity</span> </div> </a> <ul id="toc-Network_capacity-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Congestive_collapse" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Congestive_collapse"> <div class="vector-toc-text"> <span class="vector-toc-numb">2</span> <span>Congestive collapse</span> </div> </a> <ul id="toc-Congestive_collapse-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Congestion_control" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Congestion_control"> <div class="vector-toc-text"> <span class="vector-toc-numb">3</span> <span>Congestion control</span> </div> </a> <button aria-controls="toc-Congestion_control-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 Congestion control subsection</span> </button> <ul id="toc-Congestion_control-sublist" class="vector-toc-list"> <li id="toc-Theory_of_congestion_control" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Theory_of_congestion_control"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.1</span> <span>Theory of congestion control</span> </div> </a> <ul id="toc-Theory_of_congestion_control-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Classification_of_congestion_control_algorithms" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Classification_of_congestion_control_algorithms"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.2</span> <span>Classification of congestion control algorithms</span> </div> </a> <ul id="toc-Classification_of_congestion_control_algorithms-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Mitigation" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Mitigation"> <div class="vector-toc-text"> <span class="vector-toc-numb">4</span> <span>Mitigation</span> </div> </a> <button aria-controls="toc-Mitigation-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 Mitigation subsection</span> </button> <ul id="toc-Mitigation-sublist" class="vector-toc-list"> <li id="toc-Practical_network_congestion_avoidance" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Practical_network_congestion_avoidance"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.1</span> <span>Practical network congestion avoidance</span> </div> </a> <ul id="toc-Practical_network_congestion_avoidance-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-TCP/IP_congestion_avoidance" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#TCP/IP_congestion_avoidance"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.2</span> <span>TCP/IP congestion avoidance</span> </div> </a> <ul id="toc-TCP/IP_congestion_avoidance-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Active_queue_management" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Active_queue_management"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.3</span> <span>Active queue management</span> </div> </a> <ul id="toc-Active_queue_management-sublist" class="vector-toc-list"> <li id="toc-Random_early_detection" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Random_early_detection"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.3.1</span> <span>Random early detection</span> </div> </a> <ul id="toc-Random_early_detection-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Robust_random_early_detection" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Robust_random_early_detection"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.3.2</span> <span>Robust random early detection</span> </div> </a> <ul id="toc-Robust_random_early_detection-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Flow-based_WRED" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Flow-based_WRED"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.3.3</span> <span>Flow-based WRED</span> </div> </a> <ul id="toc-Flow-based_WRED-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Explicit_Congestion_Notification" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Explicit_Congestion_Notification"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.3.4</span> <span>Explicit Congestion Notification</span> </div> </a> <ul id="toc-Explicit_Congestion_Notification-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-TCP_window_shaping" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#TCP_window_shaping"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.3.5</span> <span>TCP window shaping</span> </div> </a> <ul id="toc-TCP_window_shaping-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Backward_ECN" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Backward_ECN"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.3.6</span> <span>Backward ECN</span> </div> </a> <ul id="toc-Backward_ECN-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> </ul> </li> <li id="toc-Side_effects_of_congestive_collapse_avoidance" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Side_effects_of_congestive_collapse_avoidance"> <div class="vector-toc-text"> <span class="vector-toc-numb">5</span> <span>Side effects of congestive collapse avoidance</span> </div> </a> <button aria-controls="toc-Side_effects_of_congestive_collapse_avoidance-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 Side effects of congestive collapse avoidance subsection</span> </button> <ul id="toc-Side_effects_of_congestive_collapse_avoidance-sublist" class="vector-toc-list"> <li id="toc-Radio_links" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Radio_links"> <div class="vector-toc-text"> <span class="vector-toc-numb">5.1</span> <span>Radio links</span> </div> </a> <ul id="toc-Radio_links-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Short-lived_connections" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Short-lived_connections"> <div class="vector-toc-text"> <span class="vector-toc-numb">5.2</span> <span>Short-lived connections</span> </div> </a> <ul id="toc-Short-lived_connections-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Admission_control" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Admission_control"> <div class="vector-toc-text"> <span class="vector-toc-numb">6</span> <span>Admission control</span> </div> </a> <ul id="toc-Admission_control-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">7</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">8</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">9</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">Network congestion</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 23 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-23" 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">23 languages</span> </label> <div class="vector-dropdown-content"> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="interlanguage-link interwiki-ar mw-list-item"><a href="https://ar.wikipedia.org/wiki/%D8%A7%D8%B2%D8%AF%D8%AD%D8%A7%D9%85_%D8%A7%D9%84%D8%B4%D8%A8%D9%83%D8%A9" title="ازدحام الشبكة – Arabic" lang="ar" hreflang="ar" data-title="ازدحام الشبكة" data-language-autonym="العربية" data-language-local-name="Arabic" class="interlanguage-link-target"><span>العربية</span></a></li><li class="interlanguage-link interwiki-ca mw-list-item"><a href="https://ca.wikipedia.org/wiki/Congesti%C3%B3_de_xarxa" title="Congestió de xarxa – Catalan" lang="ca" hreflang="ca" data-title="Congestió de xarxa" data-language-autonym="Català" data-language-local-name="Catalan" class="interlanguage-link-target"><span>Català</span></a></li><li class="interlanguage-link interwiki-cs mw-list-item"><a href="https://cs.wikipedia.org/wiki/Zahlcen%C3%AD_s%C3%ADt%C4%9B" title="Zahlcení sítě – Czech" lang="cs" hreflang="cs" data-title="Zahlcení sítě" data-language-autonym="Čeština" data-language-local-name="Czech" class="interlanguage-link-target"><span>Čeština</span></a></li><li class="interlanguage-link interwiki-da mw-list-item"><a href="https://da.wikipedia.org/wiki/Undg%C3%A5else_af_datanet-trafikforstoppelse" title="Undgåelse af datanet-trafikforstoppelse – Danish" lang="da" hreflang="da" data-title="Undgåelse af datanet-trafikforstoppelse" data-language-autonym="Dansk" data-language-local-name="Danish" class="interlanguage-link-target"><span>Dansk</span></a></li><li class="interlanguage-link interwiki-de mw-list-item"><a href="https://de.wikipedia.org/wiki/%C3%9Cberlastkontrolle" title="Überlastkontrolle – German" lang="de" hreflang="de" data-title="Überlastkontrolle" data-language-autonym="Deutsch" data-language-local-name="German" class="interlanguage-link-target"><span>Deutsch</span></a></li><li class="interlanguage-link interwiki-es mw-list-item"><a href="https://es.wikipedia.org/wiki/Congesti%C3%B3n_de_red" title="Congestión de red – Spanish" lang="es" hreflang="es" data-title="Congestión de red" data-language-autonym="Español" data-language-local-name="Spanish" class="interlanguage-link-target"><span>Español</span></a></li><li class="interlanguage-link interwiki-eu mw-list-item"><a href="https://eu.wikipedia.org/wiki/Kongestio" title="Kongestio – Basque" lang="eu" hreflang="eu" data-title="Kongestio" data-language-autonym="Euskara" data-language-local-name="Basque" class="interlanguage-link-target"><span>Euskara</span></a></li><li class="interlanguage-link interwiki-fa mw-list-item"><a href="https://fa.wikipedia.org/wiki/%DA%A9%D9%86%D8%AA%D8%B1%D9%84_%D8%A7%D8%B2%D8%AF%D8%AD%D8%A7%D9%85" 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-fr mw-list-item"><a href="https://fr.wikipedia.org/wiki/Congestion_(r%C3%A9seau)" title="Congestion (réseau) – French" lang="fr" hreflang="fr" data-title="Congestion (réseau)" data-language-autonym="Français" data-language-local-name="French" class="interlanguage-link-target"><span>Français</span></a></li><li class="interlanguage-link interwiki-ko mw-list-item"><a href="https://ko.wikipedia.org/wiki/%ED%98%BC%EC%9E%A1_%EC%A0%9C%EC%96%B4" title="혼잡 제어 – Korean" lang="ko" hreflang="ko" data-title="혼잡 제어" data-language-autonym="한국어" data-language-local-name="Korean" class="interlanguage-link-target"><span>한국어</span></a></li><li class="interlanguage-link interwiki-it mw-list-item"><a href="https://it.wikipedia.org/wiki/Controllo_della_congestione" title="Controllo della congestione – Italian" lang="it" hreflang="it" data-title="Controllo della congestione" data-language-autonym="Italiano" data-language-local-name="Italian" class="interlanguage-link-target"><span>Italiano</span></a></li><li class="interlanguage-link interwiki-lv mw-list-item"><a href="https://lv.wikipedia.org/wiki/T%C4%ABkla_p%C4%81rslodze" title="Tīkla pārslodze – Latvian" lang="lv" hreflang="lv" data-title="Tīkla pārslodze" data-language-autonym="Latviešu" data-language-local-name="Latvian" class="interlanguage-link-target"><span>Latviešu</span></a></li><li class="interlanguage-link interwiki-mk mw-list-item"><a href="https://mk.wikipedia.org/wiki/%D0%9C%D1%80%D0%B5%D0%B6%D0%B5%D0%BD_%D0%B7%D0%B0%D1%81%D1%82%D0%BE%D1%98" title="Мрежен застој – Macedonian" lang="mk" hreflang="mk" data-title="Мрежен застој" data-language-autonym="Македонски" data-language-local-name="Macedonian" class="interlanguage-link-target"><span>Македонски</span></a></li><li class="interlanguage-link interwiki-ml mw-list-item"><a href="https://ml.wikipedia.org/wiki/%E0%B4%A8%E0%B5%86%E0%B4%B1%E0%B5%8D%E0%B4%B1%E0%B5%8D%E0%B4%B5%E0%B5%BC%E0%B4%95%E0%B5%8D%E0%B4%95%E0%B5%8D_%E0%B4%95%E0%B5%BA%E0%B4%9C%E0%B4%B7%E0%B5%BB" title="നെറ്റ്വർക്ക് കൺജഷൻ – Malayalam" lang="ml" hreflang="ml" data-title="നെറ്റ്വർക്ക് കൺജഷൻ" data-language-autonym="മലയാളം" data-language-local-name="Malayalam" class="interlanguage-link-target"><span>മലയാളം</span></a></li><li class="interlanguage-link interwiki-nl mw-list-item"><a href="https://nl.wikipedia.org/wiki/Congestie_(data)" title="Congestie (data) – Dutch" lang="nl" hreflang="nl" data-title="Congestie (data)" data-language-autonym="Nederlands" data-language-local-name="Dutch" class="interlanguage-link-target"><span>Nederlands</span></a></li><li class="interlanguage-link interwiki-ja mw-list-item"><a href="https://ja.wikipedia.org/wiki/%E8%BC%BB%E8%BC%B3%E5%88%B6%E5%BE%A1" title="輻輳制御 – Japanese" lang="ja" hreflang="ja" data-title="輻輳制御" data-language-autonym="日本語" data-language-local-name="Japanese" class="interlanguage-link-target"><span>日本語</span></a></li><li class="interlanguage-link interwiki-pl mw-list-item"><a href="https://pl.wikipedia.org/wiki/Zapobieganie_przeci%C4%85%C5%BCeniu" title="Zapobieganie przeciążeniu – Polish" lang="pl" hreflang="pl" data-title="Zapobieganie przeciążeniu" data-language-autonym="Polski" data-language-local-name="Polish" class="interlanguage-link-target"><span>Polski</span></a></li><li class="interlanguage-link interwiki-ru mw-list-item"><a href="https://ru.wikipedia.org/wiki/%D0%9F%D0%B5%D1%80%D0%B5%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B0_%D1%81%D0%B5%D1%82%D0%B8" title="Перегрузка сети – Russian" lang="ru" hreflang="ru" data-title="Перегрузка сети" data-language-autonym="Русский" data-language-local-name="Russian" class="interlanguage-link-target"><span>Русский</span></a></li><li class="interlanguage-link interwiki-sq mw-list-item"><a href="https://sq.wikipedia.org/wiki/Mbingarkimi_i_rrjetit" title="Mbingarkimi i rrjetit – Albanian" lang="sq" hreflang="sq" data-title="Mbingarkimi i rrjetit" data-language-autonym="Shqip" data-language-local-name="Albanian" class="interlanguage-link-target"><span>Shqip</span></a></li><li class="interlanguage-link interwiki-sr mw-list-item"><a href="https://sr.wikipedia.org/wiki/%D0%9C%D1%80%D0%B5%D0%B6%D0%BD%D0%BE_%D0%B7%D0%B0%D0%B3%D1%83%D1%88%D0%B5%D1%9A%D0%B5" title="Мрежно загушење – Serbian" lang="sr" hreflang="sr" data-title="Мрежно загушење" data-language-autonym="Српски / srpski" data-language-local-name="Serbian" class="interlanguage-link-target"><span>Српски / srpski</span></a></li><li class="interlanguage-link interwiki-fi mw-list-item"><a href="https://fi.wikipedia.org/wiki/Tukkeutuminen" title="Tukkeutuminen – Finnish" lang="fi" hreflang="fi" data-title="Tukkeutuminen" data-language-autonym="Suomi" data-language-local-name="Finnish" class="interlanguage-link-target"><span>Suomi</span></a></li><li class="interlanguage-link interwiki-tr mw-list-item"><a href="https://tr.wikipedia.org/wiki/A%C4%9F_t%C4%B1kan%C4%B1kl%C4%B1%C4%9F%C4%B1" title="Ağ tıkanıklığı – Turkish" lang="tr" hreflang="tr" data-title="Ağ tıkanıklığı" data-language-autonym="Türkçe" data-language-local-name="Turkish" class="interlanguage-link-target"><span>Türkçe</span></a></li><li class="interlanguage-link interwiki-zh mw-list-item"><a href="https://zh.wikipedia.org/wiki/%E6%8B%A5%E5%A1%9E%E6%8E%A7%E5%88%B6" title="拥塞控制 – Chinese" lang="zh" hreflang="zh" data-title="拥塞控制" 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/Q180368#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/Network_congestion" 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:Network_congestion" 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/Network_congestion"><span>Read</span></a></li><li id="ca-edit" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Network_congestion&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=Network_congestion&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/Network_congestion"><span>Read</span></a></li><li id="ca-more-edit" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Network_congestion&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=Network_congestion&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/Network_congestion" 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/Network_congestion" 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=Network_congestion&oldid=1250337576" 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=Network_congestion&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&page=Network_congestion&id=1250337576&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&url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FNetwork_congestion"><span>Get shortened URL</span></a></li><li id="t-urlshortener-qrcode" class="mw-list-item"><a href="/w/index.php?title=Special:QrCode&url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FNetwork_congestion"><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&page=Network_congestion&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=Network_congestion&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/Q180368" 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">Reduced quality of service due to high network traffic</div> <p class="mw-empty-elt"> </p><p><b>Network congestion</b> in <a href="/wiki/Data_networking" class="mw-redirect" title="Data networking">data networking</a> and <a href="/wiki/Queueing_theory" title="Queueing theory">queueing theory</a> is the reduced <a href="/wiki/Quality_of_service" title="Quality of service">quality of service</a> that occurs when a network node or link is carrying more data than it can handle. Typical effects include <a href="/wiki/Queueing_delay" class="mw-redirect" title="Queueing delay">queueing delay</a>, <a href="/wiki/Packet_loss" title="Packet loss">packet loss</a> or the blocking of new connections. A consequence of congestion is that an incremental increase in <a href="/wiki/Offered_load" title="Offered load">offered load</a> leads either only to a small increase or even a decrease in network <a href="/wiki/Throughput" class="mw-redirect" title="Throughput">throughput</a>.<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> </p><p><a href="/wiki/Network_protocol" class="mw-redirect" title="Network protocol">Network protocols</a> that use aggressive <a href="/wiki/Retransmission_(data_networks)" title="Retransmission (data networks)">retransmissions</a> to compensate for packet loss due to congestion can increase congestion, even after the initial load has been reduced to a level that would not normally have induced network congestion. Such networks exhibit two stable states under the same level of load. The stable state with low throughput is known as <b>congestive collapse</b>. </p><p>Networks use <b>congestion control</b> and <b>congestion avoidance</b> techniques to try to avoid collapse. These include: <a href="/wiki/Exponential_backoff" title="Exponential backoff">exponential backoff</a> in protocols such as <a href="/wiki/CSMA/CA" class="mw-redirect" title="CSMA/CA">CSMA/CA</a> in <a href="/wiki/802.11" class="mw-redirect" title="802.11">802.11</a> and the similar <a href="/wiki/CSMA/CD" class="mw-redirect" title="CSMA/CD">CSMA/CD</a> in the original <a href="/wiki/Ethernet" title="Ethernet">Ethernet</a>, <a href="/wiki/Sliding_window" class="mw-redirect" title="Sliding window">window</a> reduction in <a href="/wiki/Transmission_control_protocol" class="mw-redirect" title="Transmission control protocol">TCP</a>, and <a href="/wiki/Fair_queueing" class="mw-redirect" title="Fair queueing">fair queueing</a> in devices such as <a href="/wiki/Router_(computing)" title="Router (computing)">routers</a> and <a href="/wiki/Network_switch" title="Network switch">network switches</a>. Other techniques that address congestion include priority schemes which transmit some packets with higher priority ahead of others and the explicit allocation of network resources to specific flows through the use of <a href="/wiki/Admission_control" title="Admission control">admission control</a>. </p> <meta property="mw:PageProp/toc" /> <div class="mw-heading mw-heading2"><h2 id="Network_capacity">Network capacity</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Network_congestion&action=edit&section=1" title="Edit section: Network capacity"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Network resources are limited, including <a href="/wiki/Router_(computing)" title="Router (computing)">router</a> processing time and link <a href="/wiki/Throughput" class="mw-redirect" title="Throughput">throughput</a>. <a href="/wiki/Resource_contention" title="Resource contention">Resource contention</a> may occur on networks in several common circumstances. A <a href="/wiki/Wireless_LAN" title="Wireless LAN">wireless LAN</a> is easily filled by a single personal computer.<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> Even on fast computer networks, the <a href="/wiki/Backbone_network" title="Backbone network">backbone</a> can easily be congested by a few servers and client PCs. <a href="/wiki/Denial-of-service_attack" title="Denial-of-service attack">Denial-of-service attacks</a> by <a href="/wiki/Botnet" title="Botnet">botnets</a> are capable of filling even the largest <a href="/wiki/Internet_backbone" title="Internet backbone">Internet backbone</a> network links, generating large-scale network congestion. In telephone networks, a <a href="/wiki/Mass_call_event" title="Mass call event">mass call event</a> can overwhelm digital telephone circuits, in what can otherwise be defined as a denial-of-service attack. </p> <div class="mw-heading mw-heading2"><h2 id="Congestive_collapse">Congestive collapse</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Network_congestion&action=edit&section=2" title="Edit section: Congestive collapse"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Congestive collapse (or congestion collapse) is the condition in which congestion prevents or limits useful communication. Congestion collapse generally occurs at choke points in the network, where incoming traffic exceeds outgoing bandwidth. Connection points between a <a href="/wiki/Local_area_network" title="Local area network">local area network</a> and a <a href="/wiki/Wide_area_network" title="Wide area network">wide area network</a> are common choke points. When a network is in this condition, it settles into a stable state where traffic demand is high but little useful throughput is available, during which <a href="/wiki/Packet_delay" class="mw-redirect" title="Packet delay">packet delay</a> and loss occur and <a href="/wiki/Quality_of_service" title="Quality of service">quality of service</a> is extremely poor. </p><p>Congestive collapse was identified as a possible problem by 1984.<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup> It was first observed on the early Internet in October 1986,<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup> when the <a href="/wiki/NSFNET" class="mw-redirect" title="NSFNET">NSFNET</a> phase-I backbone dropped three orders of magnitude from its capacity of 32 kbit/s to 40 bit/s,<sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> which continued until end nodes started implementing <a href="/wiki/Van_Jacobson" title="Van Jacobson">Van Jacobson</a> and <a href="/wiki/Sally_Floyd" title="Sally Floyd">Sally Floyd</a>'s congestion control between 1987 and 1988.<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup> When more <a href="/wiki/Packet_(information_technology)" class="mw-redirect" title="Packet (information technology)">packets</a> were sent than could be handled by intermediate routers, the intermediate routers discarded many packets, expecting the endpoints of the network to retransmit the information. However, early TCP implementations had poor retransmission behavior. When this packet loss occurred, the endpoints sent extra packets that repeated the information lost, doubling the incoming rate. </p> <div class="mw-heading mw-heading2"><h2 id="Congestion_control">Congestion control</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Network_congestion&action=edit&section=3" title="Edit section: Congestion control"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Congestion control modulates traffic entry into a telecommunications network in order to avoid congestive collapse resulting from oversubscription.<sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> This is typically accomplished by reducing the rate of packets. Whereas congestion control prevents senders from overwhelming the <i>network</i>, <a href="/wiki/Flow_control_(data)" title="Flow control (data)">flow control</a> prevents the sender from overwhelming the <i>receiver</i>. </p> <div class="mw-heading mw-heading3"><h3 id="Theory_of_congestion_control">Theory of congestion control</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Network_congestion&action=edit&section=4" title="Edit section: Theory of congestion control"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <style data-mw-deduplicate="TemplateStyles:r1251242444">.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}@media print{body.ns-0 .mw-parser-output .ambox{display:none!important}}</style><table class="box-Unreferenced_section plainlinks metadata ambox ambox-content ambox-Unreferenced" role="presentation"><tbody><tr><td class="mbox-image"><div class="mbox-image-div"><span typeof="mw:File"><a href="/wiki/File:Question_book-new.svg" class="mw-file-description"><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/9/99/Question_book-new.svg/50px-Question_book-new.svg.png" decoding="async" width="50" height="39" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/9/99/Question_book-new.svg/75px-Question_book-new.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/9/99/Question_book-new.svg/100px-Question_book-new.svg.png 2x" data-file-width="512" data-file-height="399" /></a></span></div></td><td class="mbox-text"><div class="mbox-text-span">This section <b>does not <a href="/wiki/Wikipedia:Citing_sources" title="Wikipedia:Citing sources">cite</a> any <a href="/wiki/Wikipedia:Verifiability" title="Wikipedia:Verifiability">sources</a></b>.<span class="hide-when-compact"> Please help <a href="/wiki/Special:EditPage/Network_congestion" title="Special:EditPage/Network congestion">improve this section</a> by <a href="/wiki/Help:Referencing_for_beginners" title="Help:Referencing for beginners">adding citations to reliable sources</a>. Unsourced material may be challenged and <a href="/wiki/Wikipedia:Verifiability#Burden_of_evidence" title="Wikipedia:Verifiability">removed</a>.</span> <span class="date-container"><i>(<span class="date">May 2013</span>)</i></span><span class="hide-when-compact"><i> (<small><a href="/wiki/Help:Maintenance_template_removal" title="Help:Maintenance template removal">Learn how and when to remove this message</a></small>)</i></span></div></td></tr></tbody></table> <p>The theory of congestion control was pioneered by <a href="/wiki/Frank_Kelly_(professor)" class="mw-redirect" title="Frank Kelly (professor)">Frank Kelly</a>, who applied <a href="/wiki/Microeconomic_theory" class="mw-redirect" title="Microeconomic theory">microeconomic theory</a> and <a href="/wiki/Convex_optimization" title="Convex optimization">convex optimization</a> theory to describe how individuals controlling their own rates can interact to achieve an <i>optimal</i> network-wide rate allocation. Examples of <i>optimal</i> rate allocation are <a href="/wiki/Max-min_fairness" title="Max-min fairness">max-min fair allocation</a> and Kelly's suggestion of <a href="/wiki/Proportionally_fair" class="mw-redirect" title="Proportionally fair">proportionally fair</a> allocation, although many others are possible. </p><p>Let <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle x_{i}}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <msub> <mi>x</mi> <mrow class="MJX-TeXAtom-ORD"> <mi>i</mi> </mrow> </msub> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle x_{i}}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/e87000dd6142b81d041896a30fe58f0c3acb2158" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:2.129ex; height:2.009ex;" alt="{\displaystyle x_{i}}"></span> be the rate of flow <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle i}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mi>i</mi> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle i}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/add78d8608ad86e54951b8c8bd6c8d8416533d20" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:0.802ex; height:2.176ex;" alt="{\displaystyle i}"></span>, <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle c_{l}}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <msub> <mi>c</mi> <mrow class="MJX-TeXAtom-ORD"> <mi>l</mi> </mrow> </msub> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle c_{l}}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/161bd00c9b87a82436365401180e618862a74b57" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:1.729ex; height:2.009ex;" alt="{\displaystyle c_{l}}"></span> be the capacity of link <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle l}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mi>l</mi> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle l}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/829091f745070b9eb97a80244129025440a1cfac" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:0.693ex; height:2.176ex;" alt="{\displaystyle l}"></span>, and <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle r_{li}}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <msub> <mi>r</mi> <mrow class="MJX-TeXAtom-ORD"> <mi>l</mi> <mi>i</mi> </mrow> </msub> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle r_{li}}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/d9ca9bc1d312360fe8b833b1d3a40c31f6b5a9b2" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; width:2.339ex; height:2.009ex;" alt="{\displaystyle r_{li}}"></span> be 1 if flow <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle i}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mi>i</mi> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle i}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/add78d8608ad86e54951b8c8bd6c8d8416533d20" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:0.802ex; height:2.176ex;" alt="{\displaystyle i}"></span> uses link <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle l}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mi>l</mi> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle l}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/829091f745070b9eb97a80244129025440a1cfac" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:0.693ex; height:2.176ex;" alt="{\displaystyle l}"></span> and 0 otherwise. Let <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle x}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mi>x</mi> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle x}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/87f9e315fd7e2ba406057a97300593c4802b53e4" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.33ex; height:1.676ex;" alt="{\displaystyle x}"></span>, <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle c}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mi>c</mi> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle c}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/86a67b81c2de995bd608d5b2df50cd8cd7d92455" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.007ex; height:1.676ex;" alt="{\displaystyle c}"></span> and <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle R}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mi>R</mi> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle R}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/4b0bfb3769bf24d80e15374dc37b0441e2616e33" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.764ex; height:2.176ex;" alt="{\displaystyle R}"></span> be the corresponding vectors and matrix. Let <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle U(x)}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mi>U</mi> <mo stretchy="false">(</mo> <mi>x</mi> <mo stretchy="false">)</mo> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle U(x)}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/6d626d3a1e65c94535c811c73fa83389cfb76683" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.838ex; width:4.922ex; height:2.843ex;" alt="{\displaystyle U(x)}"></span> be an increasing, strictly <a href="/wiki/Concave_function" title="Concave function">concave function</a>, called the <a href="/wiki/Utility" title="Utility">utility</a>, which measures how much benefit a user obtains by transmitting at rate <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle x}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mi>x</mi> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle x}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/87f9e315fd7e2ba406057a97300593c4802b53e4" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:1.33ex; height:1.676ex;" alt="{\displaystyle x}"></span>. The optimal rate allocation then satisfies </p> <dl><dd><span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle \max \limits _{x}\sum _{i}U(x_{i})}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <munder> <mo form="prefix">max</mo> <mrow class="MJX-TeXAtom-ORD"> <mi>x</mi> </mrow> </munder> <munder> <mo>∑<!-- ∑ --></mo> <mrow class="MJX-TeXAtom-ORD"> <mi>i</mi> </mrow> </munder> <mi>U</mi> <mo stretchy="false">(</mo> <msub> <mi>x</mi> <mrow class="MJX-TeXAtom-ORD"> <mi>i</mi> </mrow> </msub> <mo stretchy="false">)</mo> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle \max \limits _{x}\sum _{i}U(x_{i})}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/74ba73a4843c9154d4e270c927c20ff6386c4969" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -3.005ex; width:14.176ex; height:5.509ex;" alt="{\displaystyle \max \limits _{x}\sum _{i}U(x_{i})}"></span></dd></dl> <dl><dd>such that <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle Rx\leq c}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mi>R</mi> <mi>x</mi> <mo>≤<!-- ≤ --></mo> <mi>c</mi> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle Rx\leq c}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/b4e4c372141f3f56d786d87cd24e6d407dfd88e0" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.505ex; width:7.199ex; height:2.343ex;" alt="{\displaystyle Rx\leq c}"></span></dd></dl> <p>The <a href="/wiki/Lagrange_duality" class="mw-redirect" title="Lagrange duality">Lagrange dual</a> of this problem decouples so that each flow sets its own rate, based only on a <i>price</i> signaled by the network. Each link capacity imposes a constraint, which gives rise to a <a href="/wiki/Lagrange_multiplier" title="Lagrange multiplier">Lagrange multiplier</a>, <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle p_{l}}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <msub> <mi>p</mi> <mrow class="MJX-TeXAtom-ORD"> <mi>l</mi> </mrow> </msub> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle p_{l}}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/8a6fe795eb4b6eb46accb014678dd510e755503f" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; margin-left: -0.089ex; width:1.981ex; height:2.009ex;" alt="{\displaystyle p_{l}}"></span>. The sum of these multipliers, <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle y_{i}=\sum _{l}p_{l}r_{li},}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <msub> <mi>y</mi> <mrow class="MJX-TeXAtom-ORD"> <mi>i</mi> </mrow> </msub> <mo>=</mo> <munder> <mo>∑<!-- ∑ --></mo> <mrow class="MJX-TeXAtom-ORD"> <mi>l</mi> </mrow> </munder> <msub> <mi>p</mi> <mrow class="MJX-TeXAtom-ORD"> <mi>l</mi> </mrow> </msub> <msub> <mi>r</mi> <mrow class="MJX-TeXAtom-ORD"> <mi>l</mi> <mi>i</mi> </mrow> </msub> <mo>,</mo> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle y_{i}=\sum _{l}p_{l}r_{li},}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/75b8fc164439700db351c945a0f8ce8c35084cc2" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -3.005ex; width:13.657ex; height:5.509ex;" alt="{\displaystyle y_{i}=\sum _{l}p_{l}r_{li},}"></span> is the price to which the flow responds. </p><p>Congestion control then becomes a distributed optimization algorithm. Many current congestion control algorithms can be modeled in this framework, with <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle p_{l}}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <msub> <mi>p</mi> <mrow class="MJX-TeXAtom-ORD"> <mi>l</mi> </mrow> </msub> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle p_{l}}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/8a6fe795eb4b6eb46accb014678dd510e755503f" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.671ex; margin-left: -0.089ex; width:1.981ex; height:2.009ex;" alt="{\displaystyle p_{l}}"></span> being either the loss probability or the queueing delay at link <span class="mwe-math-element"><span class="mwe-math-mathml-inline mwe-math-mathml-a11y" style="display: none;"><math xmlns="http://www.w3.org/1998/Math/MathML" alttext="{\displaystyle l}"> <semantics> <mrow class="MJX-TeXAtom-ORD"> <mstyle displaystyle="true" scriptlevel="0"> <mi>l</mi> </mstyle> </mrow> <annotation encoding="application/x-tex">{\displaystyle l}</annotation> </semantics> </math></span><img src="https://wikimedia.org/api/rest_v1/media/math/render/svg/829091f745070b9eb97a80244129025440a1cfac" class="mwe-math-fallback-image-inline mw-invert skin-invert" aria-hidden="true" style="vertical-align: -0.338ex; width:0.693ex; height:2.176ex;" alt="{\displaystyle l}"></span>. A major weakness is that it assigns the same price to all flows, while sliding window flow control causes <a href="/wiki/Burst_transmission" title="Burst transmission">burstiness</a> that causes different flows to observe different loss or delay at a given link. </p> <div class="mw-heading mw-heading3"><h3 id="Classification_of_congestion_control_algorithms">Classification of congestion control algorithms</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Network_congestion&action=edit&section=5" title="Edit section: Classification of congestion control algorithms"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <style data-mw-deduplicate="TemplateStyles:r1236090951">.mw-parser-output .hatnote{font-style:italic}.mw-parser-output div.hatnote{padding-left:1.6em;margin-bottom:0.5em}.mw-parser-output .hatnote i{font-style:normal}.mw-parser-output .hatnote+link+.hatnote{margin-top:-0.5em}@media print{body.ns-0 .mw-parser-output .hatnote{display:none!important}}</style><div role="note" class="hatnote navigation-not-searchable">See also: <a href="/wiki/TCP_congestion_control" title="TCP congestion control">TCP congestion control</a></div> <p>Among the ways to classify congestion control algorithms are: </p> <ul><li>By type and amount of feedback received from the network: Loss; delay; single-bit or multi-bit explicit signals</li> <li>By incremental deployability: Only sender needs modification; sender and receiver need modification; only router needs modification; sender, receiver and routers need modification.</li> <li>By performance aspect: high bandwidth-delay product networks; lossy links; fairness; advantage to short flows; variable-rate links</li> <li>By fairness criterion: Max-min fairness; proportionally fair; <a href="/w/index.php?title=Controlled_delay&action=edit&redlink=1" class="new" title="Controlled delay (page does not exist)">controlled delay</a></li></ul> <div class="mw-heading mw-heading2"><h2 id="Mitigation">Mitigation</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Network_congestion&action=edit&section=6" title="Edit section: Mitigation"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Mechanisms have been invented to prevent network congestion or to deal with a network collapse: </p> <ul><li><a href="/wiki/Network_scheduler" title="Network scheduler">Network scheduler</a> –  <a href="/wiki/Active_queue_management" title="Active queue management">active queue management</a> which reorders or selectively drops network packets in the presence of congestion</li> <li><a href="/wiki/Explicit_Congestion_Notification" title="Explicit Congestion Notification">Explicit Congestion Notification</a> –  an extension to IP and TCP communications protocols that adds a flow control mechanism</li> <li><a href="/wiki/TCP_congestion_control" title="TCP congestion control">TCP congestion control</a> –  various implementations of efforts to deal with network congestion</li></ul> <p>The correct endpoint behavior is usually to repeat dropped information, but progressively slow the repetition rate. Provided all endpoints do this, the congestion lifts and the network resumes normal behavior.<sup class="noprint Inline-Template Template-Fact" style="white-space:nowrap;">[<i><a href="/wiki/Wikipedia:Citation_needed" title="Wikipedia:Citation needed"><span title="This claim needs references to reliable sources. (February 2019)">citation needed</span></a></i>]</sup> Other strategies such as <a href="/wiki/TCP_congestion_control#Slow_start" title="TCP congestion control">slow start</a> ensure that new connections don't overwhelm the router before congestion detection initiates. </p><p>Common router congestion avoidance mechanisms include <a href="/wiki/Fair_queuing" title="Fair queuing">fair queuing</a> and other <a href="/wiki/Scheduling_algorithms" class="mw-redirect" title="Scheduling algorithms">scheduling algorithms</a>, and <a href="/wiki/Random_early_detection" title="Random early detection">random early detection</a> (RED) where packets are randomly dropped as congestion is detected. This proactively triggers the endpoints to slow transmission before congestion collapse occurs. </p><p>Some end-to-end protocols are designed to behave well under congested conditions; TCP is a well known example. The first TCP implementations to handle congestion were described in 1984,<sup id="cite_ref-8" class="reference"><a href="#cite_note-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> but Van Jacobson's inclusion of an open source solution in the Berkeley Standard Distribution UNIX ("<a href="/wiki/BSD" class="mw-redirect" title="BSD">BSD</a>") in 1988 first provided good behavior. </p><p><a href="/wiki/User_Datagram_Protocol" title="User Datagram Protocol">UDP</a> does not control congestion. Protocols built atop UDP must handle congestion independently. Protocols that transmit at a fixed rate, independent of congestion, can be problematic. Real-time streaming protocols, including many <a href="/wiki/Voice_over_IP" title="Voice over IP">Voice over IP</a> protocols, have this property. Thus, special measures, such as quality of service, must be taken to keep packets from being dropped in the presence of congestion. </p> <div class="mw-heading mw-heading3"><h3 id="Practical_network_congestion_avoidance">Practical network congestion avoidance</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Network_congestion&action=edit&section=7" title="Edit section: Practical network congestion avoidance"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p><a href="/wiki/Connection-oriented_communication" title="Connection-oriented communication">Connection-oriented protocols</a>, such as the widely used TCP protocol, watch for <a href="/wiki/Packet_loss" title="Packet loss">packet loss</a> or <a href="/wiki/Queuing_delay" title="Queuing delay">queuing delay</a> to adjust their transmission rate. Various network congestion avoidance processes support different trade-offs.<sup id="cite_ref-9" class="reference"><a href="#cite_note-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading3"><h3 id="TCP/IP_congestion_avoidance"><span id="TCP.2FIP_congestion_avoidance"></span>TCP/IP congestion avoidance</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Network_congestion&action=edit&section=8" title="Edit section: TCP/IP congestion avoidance"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The <a href="/wiki/TCP_congestion_avoidance_algorithm" class="mw-redirect" title="TCP congestion avoidance algorithm">TCP congestion avoidance algorithm</a> is the primary basis for congestion control on the Internet.<sup id="cite_ref-10" class="reference"><a href="#cite_note-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-11" class="reference"><a href="#cite_note-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-12" class="reference"><a href="#cite_note-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-13" class="reference"><a href="#cite_note-13"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-14" class="reference"><a href="#cite_note-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup> </p><p>Problems occur when concurrent TCP flows experience <a href="/wiki/Tail-drop" class="mw-redirect" title="Tail-drop">tail-drops</a>, especially when <a href="/wiki/Bufferbloat" title="Bufferbloat">bufferbloat</a> is present. This delayed packet loss interferes with TCP's automatic congestion avoidance. All flows that experience this packet loss begin a TCP retrain at the same moment – this is called <a href="/wiki/TCP_global_synchronization" title="TCP global synchronization">TCP global synchronization</a>. </p> <div class="mw-heading mw-heading3"><h3 id="Active_queue_management">Active queue management</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Network_congestion&action=edit&section=9" title="Edit section: Active queue management"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p><a href="/wiki/Active_queue_management" title="Active queue management">Active queue management</a> (AQM) is the reordering or dropping of network packets inside a transmit buffer that is associated with a <a href="/wiki/Network_interface_controller" title="Network interface controller">network interface controller</a> (NIC). This task is performed by the <a href="/wiki/Network_scheduler" title="Network scheduler">network scheduler</a>. </p> <div class="mw-heading mw-heading4"><h4 id="Random_early_detection">Random early detection</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Network_congestion&action=edit&section=10" title="Edit section: Random early detection"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>One solution is to use <a href="/wiki/Random_early_detection" title="Random early detection">random early detection</a> (RED) on the network equipment's egress queue.<sup id="cite_ref-FloydRED_15-0" class="reference"><a href="#cite_note-FloydRED-15"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-16" class="reference"><a href="#cite_note-16"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup> On <a href="/wiki/Networking_hardware" title="Networking hardware">networking hardware</a> ports with more than one egress queue, <a href="/wiki/Weighted_random_early_detection" title="Weighted random early detection">weighted random early detection</a> (WRED) can be used. </p><p>RED indirectly signals TCP sender and receiver by dropping some packets, e.g. when the average queue length is more than a threshold (e.g. 50%) and deletes <a href="/wiki/Linear" class="mw-redirect" title="Linear">linearly</a> or <a href="/wiki/Cubic_function" title="Cubic function">cubically</a> more packets,<sup id="cite_ref-17" class="reference"><a href="#cite_note-17"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup> up to e.g. 100%, as the queue fills further. </p> <div class="mw-heading mw-heading4"><h4 id="Robust_random_early_detection">Robust random early detection</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Network_congestion&action=edit&section=11" title="Edit section: Robust random early detection"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The <a href="/wiki/Robust_random_early_detection" title="Robust random early detection">robust random early detection</a> (RRED) algorithm was proposed to improve the TCP throughput against denial-of-service (DoS) attacks, particularly low-rate denial-of-service (LDoS) attacks. Experiments confirmed that RED-like algorithms were vulnerable under LDoS attacks due to the oscillating TCP queue size caused by the attacks.<sup id="cite_ref-RRED_18-0" class="reference"><a href="#cite_note-RRED-18"><span class="cite-bracket">[</span>18<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading4"><h4 id="Flow-based_WRED">Flow-based WRED</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Network_congestion&action=edit&section=12" title="Edit section: Flow-based WRED"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Some network equipment is equipped with ports that can follow and measure each flow and are thereby able to signal a too big bandwidth flow according to some quality of service policy. A policy could then divide the bandwidth among all flows by some criteria.<sup id="cite_ref-19" class="reference"><a href="#cite_note-19"><span class="cite-bracket">[</span>19<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading4"><h4 id="Explicit_Congestion_Notification">Explicit Congestion Notification</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Network_congestion&action=edit&section=13" title="Edit section: Explicit Congestion Notification"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Another approach is to use <a href="/wiki/Explicit_Congestion_Notification" title="Explicit Congestion Notification">Explicit Congestion Notification</a> (ECN).<sup id="cite_ref-20" class="reference"><a href="#cite_note-20"><span class="cite-bracket">[</span>20<span class="cite-bracket">]</span></a></sup> ECN is used only when two hosts signal that they want to use it. With this method, a protocol bit is used to signal explicit congestion. This is better than the indirect congestion notification signaled by packet loss by the RED/WRED algorithms, but it requires support by both hosts.<sup id="cite_ref-21" class="reference"><a href="#cite_note-21"><span class="cite-bracket">[</span>21<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-FloydRED_15-1" class="reference"><a href="#cite_note-FloydRED-15"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup> </p><p>When a router receives a packet marked as ECN-capable and the router anticipates congestion, it sets the ECN flag, notifying the sender of congestion. The sender should respond by decreasing its transmission bandwidth, e.g., by decreasing its sending rate by reducing the TCP window size or by other means. </p> <div class="mw-heading mw-heading4"><h4 id="TCP_window_shaping">TCP window shaping</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Network_congestion&action=edit&section=14" title="Edit section: TCP window shaping"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1236090951"><div role="note" class="hatnote navigation-not-searchable">See also: <a href="/wiki/TCP_window_scale_option" title="TCP window scale option">TCP window scale option</a></div> <p>Congestion avoidance can be achieved efficiently by reducing traffic. When an application requests a large file, graphic or web page, it usually advertises a <i>window</i> of between 32K and 64K. This results in the server sending a full window of data (assuming the file is larger than the window). When many applications simultaneously request downloads, this data can create a congestion point at an upstream provider. By reducing the window advertisement, the remote servers send less data, thus reducing the congestion.<sup id="cite_ref-22" class="reference"><a href="#cite_note-22"><span class="cite-bracket">[</span>22<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-23" class="reference"><a href="#cite_note-23"><span class="cite-bracket">[</span>23<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading4"><h4 id="Backward_ECN"><span class="anchor" id="BECN"></span>Backward ECN</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Network_congestion&action=edit&section=15" title="Edit section: Backward ECN"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Backward ECN (BECN) is another proposed congestion notification mechanism. It uses <a href="/wiki/ICMP_source_quench" class="mw-redirect" title="ICMP source quench">ICMP source quench</a> messages as an IP signaling mechanism to implement a basic ECN mechanism for IP networks, keeping congestion notifications at the IP level and requiring no negotiation between network endpoints. Effective congestion notifications can be propagated to transport layer protocols, such as TCP and UDP, for the appropriate adjustments.<sup id="cite_ref-24" class="reference"><a href="#cite_note-24"><span class="cite-bracket">[</span>24<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading2"><h2 id="Side_effects_of_congestive_collapse_avoidance">Side effects of congestive collapse avoidance</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Network_congestion&action=edit&section=16" title="Edit section: Side effects of congestive collapse avoidance"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-heading mw-heading3"><h3 id="Radio_links">Radio links</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Network_congestion&action=edit&section=17" title="Edit section: Radio links"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The protocols that avoid congestive collapse generally assume that data loss is caused by congestion. On wired networks, errors during transmission are rare. <a href="/wiki/WiFi" class="mw-redirect" title="WiFi">WiFi</a>, <a href="/wiki/3G" title="3G">3G</a> and other networks with a radio layer are susceptible to data loss due to interference and may experience poor throughput in some cases. The TCP connections running over a radio-based <a href="/wiki/Physical_layer" title="Physical layer">physical layer</a> see the data loss and tend to erroneously believe that congestion is occurring. </p> <div class="mw-heading mw-heading3"><h3 id="Short-lived_connections">Short-lived connections</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Network_congestion&action=edit&section=18" title="Edit section: Short-lived connections"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The slow-start protocol performs badly for short connections. Older <a href="/wiki/Web_browser" title="Web browser">web browsers</a> created many short-lived connections and opened and closed the connection for each file. This kept most connections in the slow start mode. Initial performance can be poor, and many connections never get out of the slow-start regime, significantly increasing latency. To avoid this problem, modern browsers either open multiple connections simultaneously or <a href="/wiki/HTTP_persistent_connections" class="mw-redirect" title="HTTP persistent connections">reuse one connection</a> for all files requested from a particular server. </p> <div class="mw-heading mw-heading2"><h2 id="Admission_control">Admission control</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Network_congestion&action=edit&section=19" title="Edit section: Admission control"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p><a href="/wiki/Admission_control" title="Admission control">Admission control</a> is any system that requires devices to receive permission before establishing new network connections. If the new connection risks creating congestion, permission can be denied. Examples include Contention-Free Transmission Opportunities (CFTXOPs) in the ITU-T <a href="/wiki/G.hn" title="G.hn">G.hn</a> standard for home networking over legacy wiring, <a href="/wiki/Resource_Reservation_Protocol" title="Resource Reservation Protocol">Resource Reservation Protocol</a> for IP networks and <a href="/wiki/Stream_Reservation_Protocol" title="Stream Reservation Protocol">Stream Reservation Protocol</a> for <a href="/wiki/Ethernet" title="Ethernet">Ethernet</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=Network_congestion&action=edit&section=20" title="Edit section: See also"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><a href="/wiki/Bandwidth_management" title="Bandwidth management">Bandwidth management</a> – Capacity control on a communications network</li> <li><a href="/wiki/Cascading_failure" title="Cascading failure">Cascading failure</a> – Systemic risk of failure</li> <li><a href="/wiki/Choke_exchange" title="Choke exchange">Choke exchange</a> – Telephone exchange designed to handle many simultaneous call attempts</li> <li><a href="/wiki/Erlang_(unit)" title="Erlang (unit)">Erlang (unit)</a> – Load measure in telecommunications</li> <li><a href="/wiki/Sorcerer%27s_Apprentice_syndrome" title="Sorcerer's Apprentice syndrome">Sorcerer's Apprentice syndrome</a> – Network protocol flaw in the original versions of TFTP</li> <li><a href="/wiki/Teletraffic_engineering" title="Teletraffic engineering">Teletraffic engineering</a> – Application of traffic engineering theory to telecommunications</li> <li><a href="/wiki/Thrashing_(computer_science)" title="Thrashing (computer science)">Thrashing</a> – Constant exchange between memory and storage</li> <li><a href="/wiki/Traffic_shaping" title="Traffic shaping">Traffic shaping</a> – Communication bandwidth management technique</li> <li><a href="/wiki/Reliability_(computer_networking)" title="Reliability (computer networking)">Reliability (computer networking)</a> – Protocol acknowledgement capability</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=Network_congestion&action=edit&section=21" 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"> <div class="mw-references-wrap mw-references-columns"><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">(Al-Bahadili, 2012, p. 282) Al-Bahadili, H. (2012). <a rel="nofollow" class="external text" href="https://books.google.com/books?id=uNlplf2C03QC&dq=network+congestion+occurs+when+a+link+or+node+is+carrying+so+much+data+that+its+quality+of+service+deteriorates.&pg=PA282">Simulation in computer network design and modeling: Use and analysis</a>. Hershey, PA: IGI Global.</span> </li> <li id="cite_note-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-2">^</a></b></span> <span class="reference-text">den Hartog, F., Raschella, A., Bouhafs, F., Kempker, P., Boltjes, B., & Seyedebrahimi, M. (2017, November). <a rel="nofollow" class="external text" href="http://unsworks.unsw.edu.au/fapi/datastream/unsworks:50254/bin458a10d9-f568-479c-a9b5-5c185ef64e78?view=true">A Pathway to solving the Wi-Fi Tragedy of the Commons in apartment blocks</a>. In 2017 27th International Telecommunication Networks and Applications Conference (ITNAC) (pp. 1-6). IEEE.</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"><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><a href="/wiki/RFC_(identifier)" class="mw-redirect" title="RFC (identifier)">RFC</a> <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc896">896</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"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFFall,_K.R.Stevens,_W.R.2011" class="citation book cs1">Fall, K.R.; Stevens, W.R. (2011). <a rel="nofollow" class="external text" href="https://books.google.com/books?id=a23OAn5i8R0C"><i>TCP/IP Illustrated, Volume 1: The Protocols</i></a> (2 ed.). Pearson Education. p. 739. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/9780132808187" title="Special:BookSources/9780132808187"><bdi>9780132808187</bdi></a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=TCP%2FIP+Illustrated%2C+Volume+1%3A+The+Protocols&rft.pages=739&rft.edition=2&rft.pub=Pearson+Education&rft.date=2011&rft.isbn=9780132808187&rft.au=Fall%2C+K.R.&rft.au=Stevens%2C+W.R.&rft_id=https%3A%2F%2Fbooks.google.com%2Fbooks%3Fid%3Da23OAn5i8R0C&rfr_id=info%3Asid%2Fen.wikipedia.org%3ANetwork+congestion" class="Z3988"></span></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"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFVan_JacobsonMichael_J._Karels1988" class="citation cs2">Van Jacobson; Michael J. Karels (November 1988), <a rel="nofollow" class="external text" href="https://ee.lbl.gov/papers/congavoid.pdf"><i>Congestion Avoidance and Control</i></a> <span class="cs1-format">(PDF)</span>, <q>In October of '86, the Internet had the first of what became a series of 'congestion collapses'. During this period, the data throughput from LBL to UC Berkeley (sites separatedby 400 yards and two IMP hops) dropped from 32 Kbps to 40 bps. We were fascinated by this sudden factor-of-thousand drop in bandwidth and embarked on an investigation of why things had gotten so bad. In particular, we wondered if the 4.3BSD (Berkeley UNIX) TCP was mis-behaving or if it could be tuned to work better under abysmal network conditions.The answer to both of these questions was "yes".</q></cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Congestion+Avoidance+and+Control&rft.date=1988-11&rft.au=Van+Jacobson&rft.au=Michael+J.+Karels&rft_id=https%3A%2F%2Fee.lbl.gov%2Fpapers%2Fcongavoid.pdf&rfr_id=info%3Asid%2Fen.wikipedia.org%3ANetwork+congestion" class="Z3988"></span></span> </li> <li id="cite_note-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-6">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="floyd69" class="citation news cs1">Hafner, Katie (4 September 2019). <a rel="nofollow" class="external text" href="https://www.nytimes.com/2019/09/04/science/sally-floyd-dead.html">"Sally Floyd, Who Helped Things Run Smoothly Online, Dies at 69"</a>. <i>New York Times</i><span class="reference-accessdate">. Retrieved <span class="nowrap">5 September</span> 2019</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.jtitle=New+York+Times&rft.atitle=Sally+Floyd%2C+Who+Helped+Things+Run+Smoothly+Online%2C+Dies+at+69&rft.date=2019-09-04&rft.aulast=Hafner&rft.aufirst=Katie&rft_id=https%3A%2F%2Fwww.nytimes.com%2F2019%2F09%2F04%2Fscience%2Fsally-floyd-dead.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3ANetwork+congestion" class="Z3988"></span></span> </li> <li id="cite_note-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-7">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFNanda2000" class="citation journal cs1">Nanda, Priyadarsi (2000-11-01). <a rel="nofollow" class="external text" href="https://www.sciencedirect.com/science/article/pii/S1474667017367356">"A Control Theory Approach for Congestion Control in Intranetwork"</a>. <i>IFAC Proceedings Volumes</i>. 16th IFAC Workshop on Distributed Computer Control Systems (DCCS 2000), Sydney, Australia, 29 November-1 December 2000. <b>33</b> (30): 91–94. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1016%2FS1474-6670%2817%2936735-6">10.1016/S1474-6670(17)36735-6</a>. <a href="/wiki/ISSN_(identifier)" class="mw-redirect" title="ISSN (identifier)">ISSN</a> <a rel="nofollow" class="external text" href="https://search.worldcat.org/issn/1474-6670">1474-6670</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.jtitle=IFAC+Proceedings+Volumes&rft.atitle=A+Control+Theory+Approach+for+Congestion+Control+in+Intranetwork&rft.volume=33&rft.issue=30&rft.pages=91-94&rft.date=2000-11-01&rft_id=info%3Adoi%2F10.1016%2FS1474-6670%2817%2936735-6&rft.issn=1474-6670&rft.aulast=Nanda&rft.aufirst=Priyadarsi&rft_id=https%3A%2F%2Fwww.sciencedirect.com%2Fscience%2Farticle%2Fpii%2FS1474667017367356&rfr_id=info%3Asid%2Fen.wikipedia.org%3ANetwork+congestion" 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="CITEREFVinton_G._CerfRobert_E._Kahn1974" class="citation journal cs1">Vinton G. Cerf; Robert E. Kahn (May 1974). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20160304150203/http://ece.ut.ac.ir/Classpages/F84/PrincipleofNetworkDesign/Papers/CK74.pdf">"A Protocol for Packet Network Intercommunication"</a> <span class="cs1-format">(PDF)</span>. <i>IEEE Transactions on Communications</i>. <b>22</b> (5): 637–648. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1109%2Ftcom.1974.1092259">10.1109/tcom.1974.1092259</a>. Archived from <a rel="nofollow" class="external text" href="http://ece.ut.ac.ir/Classpages/F84/PrincipleofNetworkDesign/Papers/CK74.pdf">the original</a> <span class="cs1-format">(PDF)</span> on March 4, 2016.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.jtitle=IEEE+Transactions+on+Communications&rft.atitle=A+Protocol+for+Packet+Network+Intercommunication&rft.volume=22&rft.issue=5&rft.pages=637-648&rft.date=1974-05&rft_id=info%3Adoi%2F10.1109%2Ftcom.1974.1092259&rft.au=Vinton+G.+Cerf&rft.au=Robert+E.+Kahn&rft_id=http%3A%2F%2Fece.ut.ac.ir%2FClasspages%2FF84%2FPrincipleofNetworkDesign%2FPapers%2FCK74.pdf&rfr_id=info%3Asid%2Fen.wikipedia.org%3ANetwork+congestion" 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 id="CITEREFLeeBalanJacobSeah2000" class="citation cs2">Lee, B.P.; Balan, R.K.; Jacob, L.; Seah, W.K.G.; Ananda, A.L. (2000), "TCP Tunnels: Avoiding Congestion Collapse", <i>Proceedings 25th Annual IEEE Conference on Local Computer Networks. LCN 2000</i>, pp. 408–417, <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1109%2FLCN.2000.891077">10.1109/LCN.2000.891077</a>, <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/0-7695-0912-6" title="Special:BookSources/0-7695-0912-6"><bdi>0-7695-0912-6</bdi></a>, <a href="/wiki/S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a> <a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:34447400">34447400</a></cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=bookitem&rft.atitle=TCP+Tunnels%3A+Avoiding+Congestion+Collapse&rft.btitle=Proceedings+25th+Annual+IEEE+Conference+on+Local+Computer+Networks.+LCN+2000&rft.pages=408-417&rft.date=2000&rft_id=https%3A%2F%2Fapi.semanticscholar.org%2FCorpusID%3A34447400%23id-name%3DS2CID&rft_id=info%3Adoi%2F10.1109%2FLCN.2000.891077&rft.isbn=0-7695-0912-6&rft.aulast=Lee&rft.aufirst=B.P.&rft.au=Balan%2C+R.K.&rft.au=Jacob%2C+L.&rft.au=Seah%2C+W.K.G.&rft.au=Ananda%2C+A.L.&rfr_id=info%3Asid%2Fen.wikipedia.org%3ANetwork+congestion" 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"><a href="/wiki/Van_Jacobson" title="Van Jacobson">Van Jacobson</a>, <a href="/wiki/Michael_J._Karels" title="Michael J. Karels">Michael J. Karels</a>. <a rel="nofollow" class="external text" href="http://citeseer.ist.psu.edu/484335.html">Congestion Avoidance and Control</a> (1988). <i>Proceedings of the Sigcomm '88 Symposium</i>, vol.18(4): pp.314–329. Stanford, CA. August, 1988. This paper originated many of the congestion avoidance algorithms used in TCP/IP.</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">RFC 2001 - TCP Slow Start, Congestion Avoidance, Fast Retransmit, and Fast Recovery Algorithms</span> </li> <li id="cite_note-12"><span class="mw-cite-backlink"><b><a href="#cite_ref-12">^</a></b></span> <span class="reference-text">RFC 2581 - TCP Congestion Control</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">RFC 3390 - TCP Increasing TCP's Initial Window</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"><a rel="nofollow" class="external text" href="http://www.eventhelix.com/RealtimeMantra/Networking/TCP_Congestion_Avoidance.pdf">TCP Congestion Avoidance Explained via a Sequence Diagram</a></span> </li> <li id="cite_note-FloydRED-15"><span class="mw-cite-backlink">^ <a href="#cite_ref-FloydRED_15-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-FloydRED_15-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://www.icir.org/floyd/red.html">Sally Floyd: RED (Random Early Detection) Queue Management</a></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">Sally Floyd, Van Jacobson. <a rel="nofollow" class="external text" href="http://citeseer.ist.psu.edu/462978.html">Random Early Detection Gateways for Congestion Avoidance</a> (1993). <i>IEEE/ACM Transactions on Networking</i>, vol.1(4): pp.397–413. Invented Random Early Detection (RED) gateways.</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"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation cs2"><i>An Analytical RED Function Design Guaranteeing Stable System Behavior</i>, <a href="/wiki/CiteSeerX_(identifier)" class="mw-redirect" title="CiteSeerX (identifier)">CiteSeerX</a> <span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.105.5995">10.1.1.105.5995</a></span>, <q>...The advantage of this function lies not only in avoiding heavy oscillations but also in avoiding link under-utilization at low loads. The applicability of the derived function is independent of the load range, no parameters are to be adjusted. Compared to the original linear drop function applicability is extended by far...Our example with realistic system parameters gives an approximation function of the cubic of the queue size...</q></cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=An+Analytical+RED+Function+Design+Guaranteeing+Stable+System+Behavior&rft_id=https%3A%2F%2Fciteseerx.ist.psu.edu%2Fviewdoc%2Fsummary%3Fdoi%3D10.1.1.105.5995%23id-name%3DCiteSeerX&rfr_id=info%3Asid%2Fen.wikipedia.org%3ANetwork+congestion" class="Z3988"></span></span> </li> <li id="cite_note-RRED-18"><span class="mw-cite-backlink"><b><a href="#cite_ref-RRED_18-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFZhangYinCaiChen2010" class="citation journal cs1">Zhang, Changwang; Yin, Jianping; Cai, Zhiping; Chen, Weifeng (2010). <a rel="nofollow" class="external text" href="https://sites.google.com/site/cwzhangres/home/files/RREDRobustREDAlgorithmtoCounterLow-rateDenial-of-ServiceAttacks.pdf?attredirects=0">"RRED: Robust RED Algorithm to Counter Low-rate Denial-of-Service Attacks"</a> <span class="cs1-format">(PDF)</span>. <i>IEEE Communications Letters</i>. <b>14</b> (5). <a href="/wiki/IEEE" class="mw-redirect" title="IEEE">IEEE</a>: 489–491. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1109%2FLCOMM.2010.05.091407">10.1109/LCOMM.2010.05.091407</a>. <a href="/wiki/S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a> <a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:1121461">1121461</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.jtitle=IEEE+Communications+Letters&rft.atitle=RRED%3A+Robust+RED+Algorithm+to+Counter+Low-rate+Denial-of-Service+Attacks&rft.volume=14&rft.issue=5&rft.pages=489-491&rft.date=2010&rft_id=info%3Adoi%2F10.1109%2FLCOMM.2010.05.091407&rft_id=https%3A%2F%2Fapi.semanticscholar.org%2FCorpusID%3A1121461%23id-name%3DS2CID&rft.aulast=Zhang&rft.aufirst=Changwang&rft.au=Yin%2C+Jianping&rft.au=Cai%2C+Zhiping&rft.au=Chen%2C+Weifeng&rft_id=http%3A%2F%2Fsites.google.com%2Fsite%2Fcwzhangres%2Fhome%2Ffiles%2FRREDRobustREDAlgorithmtoCounterLow-rateDenial-of-ServiceAttacks.pdf%3Fattredirects%3D0&rfr_id=info%3Asid%2Fen.wikipedia.org%3ANetwork+congestion" class="Z3988"></span></span> </li> <li id="cite_note-19"><span class="mw-cite-backlink"><b><a href="#cite_ref-19">^</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://www.cisco.com/c/en/us/td/docs/ios/qos/configuration/guide/12_2sr/qos_12_2sr_book/congestion_avoidance.html">"Congestion Avoidance Overview"</a>. <a href="/wiki/Cisco_Systems" class="mw-redirect" title="Cisco Systems">Cisco Systems</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2020-08-07</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Congestion+Avoidance+Overview&rft.pub=Cisco+Systems&rft_id=https%3A%2F%2Fwww.cisco.com%2Fc%2Fen%2Fus%2Ftd%2Fdocs%2Fios%2Fqos%2Fconfiguration%2Fguide%2F12_2sr%2Fqos_12_2sr_book%2Fcongestion_avoidance.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3ANetwork+congestion" class="Z3988"></span></span> </li> <li id="cite_note-20"><span class="mw-cite-backlink"><b><a href="#cite_ref-20">^</a></b></span> <span class="reference-text">RFC 3168 - The Addition of Explicit Congestion Notification (ECN) to IP</span> </li> <li id="cite_note-21"><span class="mw-cite-backlink"><b><a href="#cite_ref-21">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://citeseer.ist.psu.edu/bagal99comparative.html">Comparative study of RED, ECN and TCP Rate Control (1999)</a></span> </li> <li id="cite_note-22"><span class="mw-cite-backlink"><b><a href="#cite_ref-22">^</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="http://nrlweb.cs.ucla.edu/nrlweb/publication/download/162/2002-ett-0.pdf"><i>Generalized Window Advertising for TCP CongestionControl</i></a> <span class="cs1-format">(PDF)</span><span class="reference-accessdate">, retrieved <span class="nowrap">2020-11-13</span></span></cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Generalized+Window+Advertising+for+TCP+CongestionControl&rft_id=http%3A%2F%2Fnrlweb.cs.ucla.edu%2Fnrlweb%2Fpublication%2Fdownload%2F162%2F2002-ett-0.pdf&rfr_id=info%3Asid%2Fen.wikipedia.org%3ANetwork+congestion" class="Z3988"></span></span> </li> <li id="cite_note-23"><span class="mw-cite-backlink"><b><a href="#cite_ref-23">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFPopMoldovánSimonBíró2000" class="citation cs2">Pop, O.; Moldován, I.; Simon, Cs.; Bíró, J.; Koike, A.; Ishii, H. (2000), "Advertised Window-Based TCP Flow Control in Routers", <i>Telecommunication Network Intelligence</i>, pp. 197–218, <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1007%2F978-0-387-35522-1_12">10.1007/978-0-387-35522-1_12</a></span>, <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/978-1-4757-6693-6" title="Special:BookSources/978-1-4757-6693-6"><bdi>978-1-4757-6693-6</bdi></a></cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=bookitem&rft.atitle=Advertised+Window-Based+TCP+Flow+Control+in+Routers&rft.btitle=Telecommunication+Network+Intelligence&rft.pages=197-218&rft.date=2000&rft_id=info%3Adoi%2F10.1007%2F978-0-387-35522-1_12&rft.isbn=978-1-4757-6693-6&rft.aulast=Pop&rft.aufirst=O.&rft.au=Moldov%C3%A1n%2C+I.&rft.au=Simon%2C+Cs.&rft.au=B%C3%ADr%C3%B3%2C+J.&rft.au=Koike%2C+A.&rft.au=Ishii%2C+H.&rfr_id=info%3Asid%2Fen.wikipedia.org%3ANetwork+congestion" class="Z3988"></span></span> </li> <li id="cite_note-24"><span class="mw-cite-backlink"><b><a href="#cite_ref-24">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://tools.ietf.org/html/draft-salim-jhsbnns-ecn-00">A proposal for Backward ECN for the Internet Protocol</a></span> </li> </ol></div></div> <style data-mw-deduplicate="TemplateStyles:r1239549316">.mw-parser-output .refbegin{margin-bottom:0.5em}.mw-parser-output .refbegin-hanging-indents>ul{margin-left:0}.mw-parser-output .refbegin-hanging-indents>ul>li{margin-left:0;padding-left:3.2em;text-indent:-3.2em}.mw-parser-output .refbegin-hanging-indents ul,.mw-parser-output .refbegin-hanging-indents ul li{list-style:none}@media(max-width:720px){.mw-parser-output .refbegin-hanging-indents>ul>li{padding-left:1.6em;text-indent:-1.6em}}.mw-parser-output .refbegin-columns{margin-top:0.3em}.mw-parser-output .refbegin-columns ul{margin-top:0}.mw-parser-output .refbegin-columns li{page-break-inside:avoid;break-inside:avoid-column}@media screen{.mw-parser-output .refbegin{font-size:90%}}</style><div class="refbegin" style=""> <ul><li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFJohn_EvansClarence_Filsfils2007" class="citation book cs1">John Evans; Clarence Filsfils (2007). <i>Deploying IP and MPLS QoS for Multiservice Networks: Theory and Practice</i>. Morgan Kaufmann. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/978-0-12-370549-5" title="Special:BookSources/978-0-12-370549-5"><bdi>978-0-12-370549-5</bdi></a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Deploying+IP+and+MPLS+QoS+for+Multiservice+Networks%3A+Theory+and+Practice&rft.pub=Morgan+Kaufmann&rft.date=2007&rft.isbn=978-0-12-370549-5&rft.au=John+Evans&rft.au=Clarence+Filsfils&rfr_id=info%3Asid%2Fen.wikipedia.org%3ANetwork+congestion" class="Z3988"></span></li> <li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFSally_Floyd2000" class="citation cs1">Sally Floyd (September 2000). <i>Congestion Control Principles</i>. <a href="/wiki/RFC_(identifier)" class="mw-redirect" title="RFC (identifier)">RFC</a> <span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://tools.ietf.org/html/rfc2914">2914</a></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Congestion+Control+Principles&rft.date=2000-09&rft_id=https%3A%2F%2Ftools.ietf.org%2Fhtml%2Frfc2914%23id-name%3DRFC&rft.au=Sally+Floyd&rfr_id=info%3Asid%2Fen.wikipedia.org%3ANetwork+congestion" class="Z3988"></span></li> <li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFJohn_Nagle1984" class="citation cs1">John Nagle (6 January 1984). <i>Congestion Control in IP/TCP</i>. <a href="/wiki/RFC_(identifier)" class="mw-redirect" title="RFC (identifier)">RFC</a> <span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://tools.ietf.org/html/rfc896">896</a></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Congestion+Control+in+IP%2FTCP&rft.date=1984-01-06&rft_id=https%3A%2F%2Ftools.ietf.org%2Fhtml%2Frfc896%23id-name%3DRFC&rft.au=John+Nagle&rfr_id=info%3Asid%2Fen.wikipedia.org%3ANetwork+congestion" class="Z3988"></span></li> <li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFVan_JacobsonMichael_J._Karels1988" class="citation web cs1">Van Jacobson; Michael J. Karels (November 1988). <a rel="nofollow" class="external text" href="http://ee.lbl.gov/papers/congavoid.pdf">"Congestion Avoidance and Control"</a> <span class="cs1-format">(PDF)</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Congestion+Avoidance+and+Control&rft.date=1988-11&rft.au=Van+Jacobson&rft.au=Michael+J.+Karels&rft_id=http%3A%2F%2Fee.lbl.gov%2Fpapers%2Fcongavoid.pdf&rfr_id=info%3Asid%2Fen.wikipedia.org%3ANetwork+congestion" class="Z3988"></span></li></ul> </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=Network_congestion&action=edit&section=22" title="Edit section: External links"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li>Floyd, S. and K. Fall, <i><a rel="nofollow" class="external text" href="http://www.aciri.org/floyd/end2end-paper.html">Promoting the Use of End-to-End Congestion Control in the Internet</a></i> (IEEE/ACM Transactions on Networking, August 1999)</li> <li>Sally Floyd, <i><a rel="nofollow" class="external text" href="http://www.ima.umn.edu/talks/workshops/10-22-24.99/floyd/floyd.pdf">On the Evolution of End-to-end Congestion Control in the Internet: An Idiosyncratic View</a></i> (IMA Workshop on Scaling Phenomena in Communication Networks, October 1999) (<i><a href="/wiki/Pdf" class="mw-redirect" title="Pdf">pdf</a> format</i>)</li> <li><a rel="nofollow" class="external text" href="http://www.linktionary.com/q/queuing.html">Linktionary term: Queuing</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20030308154423/http://www.linktionary.com/q/queuing.html">Archived</a> 2003-03-08 at the <a href="/wiki/Wayback_Machine" title="Wayback Machine">Wayback Machine</a></li> <li><a rel="nofollow" class="external text" href="https://www.cse.wustl.edu/~jain/papers/mecn_cth.htm">Pierre-Francois Quet, Sriram Chellappan, Arjan Durresi, Mukundan Sridharan, Hitay Ozbay, Raj Jain, "Guidelines for optimizing Multi-Level ECN, using fluid flow based TCP model"</a></li> <li><a rel="nofollow" class="external text" href="http://www.cs.washington.edu/homes/ratul/red-pd/">Sally Floyd, Ratul Mahajan, David Wetherall: RED-PD: RED with Preferential Dropping</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20030402201326/http://www.cs.washington.edu/homes/ratul/red-pd/">Archived</a> 2003-04-02 at the <a href="/wiki/Wayback_Machine" title="Wayback Machine">Wayback Machine</a></li> <li><a rel="nofollow" class="external text" href="https://code.google.com/p/guduz/">A Generic Simple RED Simulator for educational purposes by Mehmet Suzen</a></li> <li><a rel="nofollow" class="external text" href="https://web.archive.org/web/20140221123729/http://utopia.duth.gr/~emamatas/jie2007.pdf">Approaches to Congestion Control in Packet Networks</a></li> <li><a rel="nofollow" class="external text" href="https://web.archive.org/web/20100611055219/http://www.ecse.rpi.edu/Homepages/shivkuma/research/cong-papers.html">Papers in Congestion Control</a></li> <li><a rel="nofollow" class="external text" href="http://www.icir.org/floyd/red.html">Random Early Detection Homepage</a></li> <li><a rel="nofollow" class="external text" href="http://www.icir.org/floyd/ecn.html">Explicit Congestion Notification Homepage</a></li> <li><a rel="nofollow" class="external text" href="http://www.icir.org/tfrc/">TFRC Homepage</a></li> <li><a rel="nofollow" class="external text" href="https://web.archive.org/web/20090113204941/http://www.ccs.neu.edu/home/ladrian/abstract/aimdfc.html">AIMD-FC Homepage</a></li> <li><a rel="nofollow" class="external text" href="https://sites.google.com/site/cwzhangres/home/posts/recentpublicationsinlow-ratedosattacks">Recent Publications in low-rate denial-of-service (DoS) attacks</a></li></ul> <!-- NewPP limit report Parsed by mw‐api‐ext.codfw.main‐7556f8b5dd‐hj8wp Cached time: 20241122142004 Cache expiry: 2592000 Reduced expiry: false Complications: [vary‐revision‐sha1, show‐toc] CPU time usage: 0.536 seconds Real time usage: 0.780 seconds Preprocessor visited node count: 3472/1000000 Post‐expand include size: 44995/2097152 bytes Template argument size: 2051/2097152 bytes Highest expansion depth: 16/100 Expensive parser function count: 6/500 Unstrip recursion depth: 1/20 Unstrip post‐expand size: 63159/5000000 bytes Lua time usage: 0.314/10.000 seconds Lua memory usage: 21564977/52428800 bytes Number of Wikibase entities loaded: 1/400 --> <!-- Transclusion expansion time report (%,ms,calls,template) 100.00% 652.380 1 -total 28.63% 186.757 1 Template:Reflist 26.98% 176.007 9 Template:Annotated_link 10.76% 70.187 1 Template:Short_description 8.92% 58.223 2 Template:Cite_book 7.57% 49.370 1 Template:Unreferenced_section 7.25% 47.278 1 Template:Unreferenced 6.92% 45.142 1 Template:Ambox 6.00% 39.129 2 Template:Pagetype 5.86% 38.202 1 Template:IETF_RFC --> <!-- Saved in parser cache with key enwiki:pcache:idhash:430522-0!canonical and timestamp 20241122142004 and revision id 1250337576. Rendering was triggered because: unknown --> </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=Network_congestion&oldid=1250337576">https://en.wikipedia.org/w/index.php?title=Network_congestion&oldid=1250337576</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:Network_performance" title="Category:Network performance">Network performance</a></li><li><a href="/wiki/Category:Teletraffic" title="Category:Teletraffic">Teletraffic</a></li><li><a href="/wiki/Category:Transport_layer_protocols" title="Category:Transport layer protocols">Transport layer protocols</a></li><li><a href="/wiki/Category:Technological_failures" title="Category:Technological failures">Technological failures</a></li><li><a href="/wiki/Category:Packets_(information_technology)" title="Category:Packets (information technology)">Packets (information technology)</a></li><li><a href="/wiki/Category:Queue_management" title="Category:Queue management">Queue management</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_is_different_from_Wikidata" title="Category:Short description is different from Wikidata">Short description is different from Wikidata</a></li><li><a href="/wiki/Category:Use_American_English_from_June_2022" title="Category:Use American English from June 2022">Use American English from June 2022</a></li><li><a href="/wiki/Category:All_Wikipedia_articles_written_in_American_English" title="Category:All Wikipedia articles written in American English">All Wikipedia articles written in American English</a></li><li><a href="/wiki/Category:Articles_needing_additional_references_from_May_2013" title="Category:Articles needing additional references from May 2013">Articles needing additional references from May 2013</a></li><li><a href="/wiki/Category:All_articles_needing_additional_references" title="Category:All articles needing additional references">All articles needing additional references</a></li><li><a href="/wiki/Category:All_articles_with_unsourced_statements" title="Category:All articles with unsourced statements">All articles with unsourced statements</a></li><li><a href="/wiki/Category:Articles_with_unsourced_statements_from_February_2019" title="Category:Articles with unsourced statements from February 2019">Articles with unsourced statements from February 2019</a></li><li><a href="/wiki/Category:Webarchive_template_wayback_links" title="Category:Webarchive template wayback links">Webarchive template wayback links</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 9 October 2024, at 20:42<span class="anonymous-show"> (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=Network_congestion&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-ktpz4","wgBackendResponseTime":139,"wgPageParseReport":{"limitreport":{"cputime":"0.536","walltime":"0.780","ppvisitednodes":{"value":3472,"limit":1000000},"postexpandincludesize":{"value":44995,"limit":2097152},"templateargumentsize":{"value":2051,"limit":2097152},"expansiondepth":{"value":16,"limit":100},"expensivefunctioncount":{"value":6,"limit":500},"unstrip-depth":{"value":1,"limit":20},"unstrip-size":{"value":63159,"limit":5000000},"entityaccesscount":{"value":1,"limit":400},"timingprofile":["100.00% 652.380 1 -total"," 28.63% 186.757 1 Template:Reflist"," 26.98% 176.007 9 Template:Annotated_link"," 10.76% 70.187 1 Template:Short_description"," 8.92% 58.223 2 Template:Cite_book"," 7.57% 49.370 1 Template:Unreferenced_section"," 7.25% 47.278 1 Template:Unreferenced"," 6.92% 45.142 1 Template:Ambox"," 6.00% 39.129 2 Template:Pagetype"," 5.86% 38.202 1 Template:IETF_RFC"]},"scribunto":{"limitreport-timeusage":{"value":"0.314","limit":"10.000"},"limitreport-memusage":{"value":21564977,"limit":52428800}},"cachereport":{"origin":"mw-api-ext.codfw.main-7556f8b5dd-hj8wp","timestamp":"20241122142004","ttl":2592000,"transientcontent":false}}});});</script> <script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"Article","name":"Network congestion","url":"https:\/\/en.wikipedia.org\/wiki\/Network_congestion","sameAs":"http:\/\/www.wikidata.org\/entity\/Q180368","mainEntity":"http:\/\/www.wikidata.org\/entity\/Q180368","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-01-14T12:40:37Z","dateModified":"2024-10-09T20:42:26Z","headline":"reduced quality of service due to high traffic on a computer network"}</script> </body> </html>