CINXE.COM
Transmission Control Protocol - 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="ja" dir="ltr"> <head> <meta charset="UTF-8"> <title>Transmission Control Protocol - 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(/(?:^|; )jawikimwclientpreferences=([^;]+)/);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":"ja", "wgMonthNames":["","1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],"wgRequestId":"8a5cac2f-5053-413b-9d2f-3e39bb52bb47","wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"Transmission_Control_Protocol","wgTitle":"Transmission Control Protocol","wgCurRevisionId":101701021,"wgRevisionId":101701021,"wgArticleId":9089,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["ISBNマジックリンクを使用しているページ","Transmission Control Protocol","トランスポート層プロトコル","RFC"],"wgPageViewLanguage":"ja","wgPageContentLanguage":"ja","wgPageContentModel":"wikitext","wgRelevantPageName":"Transmission_Control_Protocol","wgRelevantArticleId":9089,"wgIsProbablyEditable":true,"wgRelevantPageIsProbablyEditable":true,"wgRestrictionEdit":[],"wgRestrictionMove":[],"wgNoticeProject":"wikipedia","wgCiteReferencePreviewsActive": true,"wgMediaViewerOnClick":true,"wgMediaViewerEnabledByDefault":true,"wgPopupsFlags":0,"wgVisualEditor":{"pageLanguageCode":"ja","pageLanguageDir":"ltr","pageVariantFallbacks":"ja"},"wgMFDisplayWikibaseDescriptions":{"search":true,"watchlist":true,"tagline":true,"nearby":true},"wgWMESchemaEditAttemptStepOversample":false,"wgWMEPageLength":80000,"wgRelatedArticlesCompat":[],"wgEditSubmitButtonLabelPublish":true,"wgULSPosition":"interlanguage","wgULSisCompactLinksEnabled":false,"wgVector2022LanguageInHeader":true,"wgULSisLanguageSelectorEmpty":false,"wgWikibaseItemId":"Q8803","wgCheckUserClientHintsHeadersJsApi":["brands","architecture","bitness","fullVersionList","mobile","model","platform","platformVersion"],"GEHomepageSuggestedEditsEnableTopics":true,"wgGETopicsMatchModeEnabled":false,"wgGEStructuredTaskRejectionReasonTextInputEnabled":false,"wgGELevelingUpEnabledForUser":false};RLSTATE={"ext.gadget.PDFLinkIcon":"ready","ext.gadget.RedirectColor":"ready","ext.globalCssJs.user.styles" :"ready","site.styles":"ready","user.styles":"ready","ext.globalCssJs.user":"ready","user":"ready","user.options":"loading","ext.cite.styles":"ready","skins.vector.search.codex.styles":"ready","skins.vector.styles":"ready","skins.vector.icons":"ready","jquery.makeCollapsible.styles":"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","mediawiki.page.media","site","mediawiki.page.ready","jquery.makeCollapsible","mediawiki.toc","skins.vector.js","ext.centralNotice.geoIP","ext.centralNotice.startUp","ext.gadget.NormalizeCharWidth","ext.gadget.suppressEnterAtSummaryBox","ext.gadget.checkSignature","ext.gadget.charinsert","ext.gadget.WikiMiniAtlas","ext.gadget.switcher","ext.gadget.protectionIndicator","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.quicksurveys.init","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=ja&modules=ext.cite.styles%7Cext.uls.interlanguage%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediaBadges%7Cext.wikimediamessages.styles%7Cjquery.makeCollapsible.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=ja&modules=startup&only=scripts&raw=1&skin=vector-2022"></script> <meta name="ResourceLoaderDynamicStyles" content=""> <link rel="stylesheet" href="/w/load.php?lang=ja&modules=ext.gadget.PDFLinkIcon%2CRedirectColor&only=styles&skin=vector-2022"> <link rel="stylesheet" href="/w/load.php?lang=ja&modules=site.styles&only=styles&skin=vector-2022"> <meta name="generator" content="MediaWiki 1.44.0-wmf.5"> <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="Transmission Control Protocol - 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="//ja.m.wikipedia.org/wiki/Transmission_Control_Protocol"> <link rel="alternate" type="application/x-wiki" title="編集" href="/w/index.php?title=Transmission_Control_Protocol&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 (ja)"> <link rel="EditURI" type="application/rsd+xml" href="//ja.wikipedia.org/w/api.php?action=rsd"> <link rel="canonical" href="https://ja.wikipedia.org/wiki/Transmission_Control_Protocol"> <link rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/deed.ja"> <link rel="alternate" type="application/atom+xml" title="WikipediaのAtomフィード" href="/w/index.php?title=%E7%89%B9%E5%88%A5:%E6%9C%80%E8%BF%91%E3%81%AE%E6%9B%B4%E6%96%B0&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-Transmission_Control_Protocol rootpage-Transmission_Control_Protocol skin-vector-2022 action-view"><a class="mw-jump-link" href="#bodyContent">コンテンツにスキップ</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="サイト"> <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="メインメニュー" > <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">メインメニュー</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">メインメニュー</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-main-menu.pin">サイドバーに移動</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-main-menu.unpin">非表示</button> </div> <div id="p-navigation" class="vector-menu mw-portlet mw-portlet-navigation" > <div class="vector-menu-heading"> 案内 </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-mainpage-description" class="mw-list-item"><a href="/wiki/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8" title="メインページに移動する [z]" accesskey="z"><span>メインページ</span></a></li><li id="n-portal" class="mw-list-item"><a href="/wiki/Wikipedia:%E3%82%B3%E3%83%9F%E3%83%A5%E3%83%8B%E3%83%86%E3%82%A3%E3%83%BB%E3%83%9D%E3%83%BC%E3%82%BF%E3%83%AB" title="このプロジェクトについて、できること、情報を入手する場所"><span>コミュニティ・ポータル</span></a></li><li id="n-currentevents" class="mw-list-item"><a href="/wiki/Portal:%E6%9C%80%E8%BF%91%E3%81%AE%E5%87%BA%E6%9D%A5%E4%BA%8B" title="最近の出来事の背景を知る"><span>最近の出来事</span></a></li><li id="n-newpages" class="mw-list-item"><a href="/wiki/%E7%89%B9%E5%88%A5:%E6%96%B0%E3%81%97%E3%81%84%E3%83%9A%E3%83%BC%E3%82%B8" title="最近新規に作成されたページの一覧"><span>新しいページ</span></a></li><li id="n-recentchanges" class="mw-list-item"><a href="/wiki/%E7%89%B9%E5%88%A5:%E6%9C%80%E8%BF%91%E3%81%AE%E6%9B%B4%E6%96%B0" title="このウィキにおける最近の更新の一覧 [r]" accesskey="r"><span>最近の更新</span></a></li><li id="n-randompage" class="mw-list-item"><a href="/wiki/%E7%89%B9%E5%88%A5:%E3%81%8A%E3%81%BE%E3%81%8B%E3%81%9B%E8%A1%A8%E7%A4%BA" title="無作為に選択されたページを読み込む [x]" accesskey="x"><span>おまかせ表示</span></a></li><li id="n-sandbox" class="mw-list-item"><a href="/wiki/Wikipedia:%E3%82%B5%E3%83%B3%E3%83%89%E3%83%9C%E3%83%83%E3%82%AF%E3%82%B9" title="練習用のページ"><span>練習用ページ</span></a></li><li id="n-commonsupload" class="mw-list-item"><a href="//commons.wikimedia.org/wiki/Special:UploadWizard?uselang=ja" title="画像やメディアファイルをウィキメディア・コモンズにアップロード"><span>アップロード (ウィキメディア・コモンズ)</span></a></li> </ul> </div> </div> <div id="p-help" class="vector-menu mw-portlet mw-portlet-help" > <div class="vector-menu-heading"> ヘルプ </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-help" class="mw-list-item"><a href="/wiki/Help:%E7%9B%AE%E6%AC%A1" title="情報を得る場所"><span>ヘルプ</span></a></li><li id="n-villagepump" class="mw-list-item"><a href="/wiki/Wikipedia:%E4%BA%95%E6%88%B8%E7%AB%AF" title="プロジェクトについての意見交換"><span>井戸端</span></a></li><li id="n-notice" class="mw-list-item"><a href="/wiki/Wikipedia:%E3%81%8A%E7%9F%A5%E3%82%89%E3%81%9B" title="プロジェクトについてのお知らせ"><span>お知らせ</span></a></li><li id="n-bugreportspage" class="mw-list-item"><a href="/wiki/Wikipedia:%E3%83%90%E3%82%B0%E3%81%AE%E5%A0%B1%E5%91%8A" title="ウィキペディア・ソフトウェアのバグ報告"><span>バグの報告</span></a></li><li id="n-contact" class="mw-list-item"><a href="/wiki/Wikipedia:%E9%80%A3%E7%B5%A1%E5%85%88" title="ウィキペディアやウィキメディア財団に関する連絡先"><span>ウィキペディアに関するお問い合わせ</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> <a href="/wiki/%E3%83%A1%E3%82%A4%E3%83%B3%E3%83%9A%E3%83%BC%E3%82%B8" 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-ja.svg" style="width: 7.5em; height: 1.25em;"> <img class="mw-logo-tagline" alt="" src="/static/images/mobile/copyright/wikipedia-tagline-ja.svg" width="100" height="14" style="width: 6.25em; height: 0.875em;"> </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/%E7%89%B9%E5%88%A5:%E6%A4%9C%E7%B4%A2" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only search-toggle" title="Wikipedia内を検索 [f]" accesskey="f"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span> <span>検索</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="Wikipedia内を検索" aria-label="Wikipedia内を検索" autocapitalize="sentences" title="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="特別:検索"> </div> <button class="cdx-button cdx-search-input__end-button">検索</button> </form> </div> </div> </div> <nav class="vector-user-links vector-user-links-wide" aria-label="個人用ツール"> <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="表示"> <div id="vector-appearance-dropdown" class="vector-dropdown " title="ページのフォントサイズ、幅、色の外観を変更する" > <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="表示" > <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">表示</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="//donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&utm_medium=sidebar&utm_campaign=C13_ja.wikipedia.org&uselang=ja" class=""><span>寄付</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=%E7%89%B9%E5%88%A5:%E3%82%A2%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88%E4%BD%9C%E6%88%90&returnto=Transmission+Control+Protocol" title="アカウントを作成してログインすることをお勧めしますが、必須ではありません" class=""><span>アカウント作成</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=%E7%89%B9%E5%88%A5:%E3%83%AD%E3%82%B0%E3%82%A4%E3%83%B3&returnto=Transmission+Control+Protocol" title="ログインすることを推奨します。ただし、必須ではありません。 [o]" accesskey="o" class=""><span>ログイン</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="その他の操作" > <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="個人用ツール" > <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">個人用ツール</span> </label> <div class="vector-dropdown-content"> <div id="p-personal" class="vector-menu mw-portlet mw-portlet-personal user-links-collapsible-item" title="利用者メニュー" > <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="//donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&utm_medium=sidebar&utm_campaign=C13_ja.wikipedia.org&uselang=ja"><span>寄付</span></a></li><li id="pt-createaccount" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=%E7%89%B9%E5%88%A5:%E3%82%A2%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88%E4%BD%9C%E6%88%90&returnto=Transmission+Control+Protocol" title="アカウントを作成してログインすることをお勧めしますが、必須ではありません"><span class="vector-icon mw-ui-icon-userAdd mw-ui-icon-wikimedia-userAdd"></span> <span>アカウント作成</span></a></li><li id="pt-login" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=%E7%89%B9%E5%88%A5:%E3%83%AD%E3%82%B0%E3%82%A4%E3%83%B3&returnto=Transmission+Control+Protocol" title="ログインすることを推奨します。ただし、必須ではありません。 [o]" accesskey="o"><span class="vector-icon mw-ui-icon-logIn mw-ui-icon-wikimedia-logIn"></span> <span>ログイン</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"> ログアウトした編集者のページ <a href="/wiki/Wikipedia:%E3%82%A6%E3%82%A3%E3%82%AD%E3%83%9A%E3%83%87%E3%82%A3%E3%82%A2%E3%81%B8%E3%82%88%E3%81%86%E3%81%93%E3%81%9D" aria-label="編集の詳細"><span>もっと詳しく</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/%E7%89%B9%E5%88%A5:%E8%87%AA%E5%88%86%E3%81%AE%E6%8A%95%E7%A8%BF%E8%A8%98%E9%8C%B2" title="このIPアドレスからなされた編集の一覧 [y]" accesskey="y"><span>投稿記録</span></a></li><li id="pt-anontalk" class="mw-list-item"><a href="/wiki/%E7%89%B9%E5%88%A5:%E3%83%88%E3%83%BC%E3%82%AF%E3%83%9A%E3%83%BC%E3%82%B8" title="このIPアドレスからなされた編集についての議論 [n]" accesskey="n"><span>トーク</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="サイト"> <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="目次" 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">目次</h2> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-toc.pin">サイドバーに移動</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-toc.unpin">非表示</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">ページ先頭</div> </a> </li> <li id="toc-概要" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#概要"> <div class="vector-toc-text"> <span class="vector-toc-numb">1</span> <span>概要</span> </div> </a> <ul id="toc-概要-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-起源" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#起源"> <div class="vector-toc-text"> <span class="vector-toc-numb">2</span> <span>起源</span> </div> </a> <ul id="toc-起源-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-機能" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#機能"> <div class="vector-toc-text"> <span class="vector-toc-numb">3</span> <span>機能</span> </div> </a> <button aria-controls="toc-機能-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>機能サブセクションを切り替えます</span> </button> <ul id="toc-機能-sublist" class="vector-toc-list"> <li id="toc-アプリケーション間通信" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#アプリケーション間通信"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.1</span> <span>アプリケーション間通信</span> </div> </a> <ul id="toc-アプリケーション間通信-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-到達保証" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#到達保証"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.2</span> <span>到達保証</span> </div> </a> <ul id="toc-到達保証-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-ストリーム送信" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#ストリーム送信"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.3</span> <span>ストリーム送信</span> </div> </a> <ul id="toc-ストリーム送信-sublist" class="vector-toc-list"> <li id="toc-順序制御" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#順序制御"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.3.1</span> <span>順序制御</span> </div> </a> <ul id="toc-順序制御-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-コネクション型通信" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#コネクション型通信"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.4</span> <span>コネクション型通信</span> </div> </a> <ul id="toc-コネクション型通信-sublist" class="vector-toc-list"> <li id="toc-流量制御" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#流量制御"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.4.1</span> <span>流量制御</span> </div> </a> <ul id="toc-流量制御-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-輻輳制御" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#輻輳制御"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.4.2</span> <span>輻輳制御</span> </div> </a> <ul id="toc-輻輳制御-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> </ul> </li> <li id="toc-特性" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#特性"> <div class="vector-toc-text"> <span class="vector-toc-numb">4</span> <span>特性</span> </div> </a> <ul id="toc-特性-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-利用" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#利用"> <div class="vector-toc-text"> <span class="vector-toc-numb">5</span> <span>利用</span> </div> </a> <ul id="toc-利用-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-TCPセグメント構造" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#TCPセグメント構造"> <div class="vector-toc-text"> <span class="vector-toc-numb">6</span> <span>TCPセグメント構造</span> </div> </a> <ul id="toc-TCPセグメント構造-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-プロトコル操作" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#プロトコル操作"> <div class="vector-toc-text"> <span class="vector-toc-numb">7</span> <span>プロトコル操作</span> </div> </a> <button aria-controls="toc-プロトコル操作-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>プロトコル操作サブセクションを切り替えます</span> </button> <ul id="toc-プロトコル操作-sublist" class="vector-toc-list"> <li id="toc-コネクション確立" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#コネクション確立"> <div class="vector-toc-text"> <span class="vector-toc-numb">7.1</span> <span>コネクション確立</span> </div> </a> <ul id="toc-コネクション確立-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-リソースの使い方" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#リソースの使い方"> <div class="vector-toc-text"> <span class="vector-toc-numb">7.2</span> <span>リソースの使い方</span> </div> </a> <ul id="toc-リソースの使い方-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-データ転送" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#データ転送"> <div class="vector-toc-text"> <span class="vector-toc-numb">7.3</span> <span>データ転送</span> </div> </a> <ul id="toc-データ転送-sublist" class="vector-toc-list"> <li id="toc-高信頼転送" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#高信頼転送"> <div class="vector-toc-text"> <span class="vector-toc-numb">7.3.1</span> <span>高信頼転送</span> </div> </a> <ul id="toc-高信頼転送-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-誤り検出" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#誤り検出"> <div class="vector-toc-text"> <span class="vector-toc-numb">7.3.2</span> <span>誤り検出</span> </div> </a> <ul id="toc-誤り検出-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-フロー制御" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#フロー制御"> <div class="vector-toc-text"> <span class="vector-toc-numb">7.3.3</span> <span>フロー制御</span> </div> </a> <ul id="toc-フロー制御-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-輻輳制御_2" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#輻輳制御_2"> <div class="vector-toc-text"> <span class="vector-toc-numb">7.3.4</span> <span>輻輳制御</span> </div> </a> <ul id="toc-輻輳制御_2-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-遅延送信" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#遅延送信"> <div class="vector-toc-text"> <span class="vector-toc-numb">7.3.5</span> <span>遅延送信</span> </div> </a> <ul id="toc-遅延送信-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-最大セグメントサイズ" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#最大セグメントサイズ"> <div class="vector-toc-text"> <span class="vector-toc-numb">7.4</span> <span>最大セグメントサイズ</span> </div> </a> <ul id="toc-最大セグメントサイズ-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-選択確認応答" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#選択確認応答"> <div class="vector-toc-text"> <span class="vector-toc-numb">7.5</span> <span>選択確認応答</span> </div> </a> <ul id="toc-選択確認応答-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-ウィンドウスケーリング" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#ウィンドウスケーリング"> <div class="vector-toc-text"> <span class="vector-toc-numb">7.6</span> <span>ウィンドウスケーリング</span> </div> </a> <ul id="toc-ウィンドウスケーリング-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-TCPタイムスタンプ" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#TCPタイムスタンプ"> <div class="vector-toc-text"> <span class="vector-toc-numb">7.7</span> <span>TCPタイムスタンプ</span> </div> </a> <ul id="toc-TCPタイムスタンプ-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-帯域外データ" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#帯域外データ"> <div class="vector-toc-text"> <span class="vector-toc-numb">7.8</span> <span>帯域外データ</span> </div> </a> <ul id="toc-帯域外データ-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-強制的データ送出" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#強制的データ送出"> <div class="vector-toc-text"> <span class="vector-toc-numb">7.9</span> <span>強制的データ送出</span> </div> </a> <ul id="toc-強制的データ送出-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-コネクション終了" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#コネクション終了"> <div class="vector-toc-text"> <span class="vector-toc-numb">7.10</span> <span>コネクション終了</span> </div> </a> <ul id="toc-コネクション終了-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-脆弱性" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#脆弱性"> <div class="vector-toc-text"> <span class="vector-toc-numb">8</span> <span>脆弱性</span> </div> </a> <button aria-controls="toc-脆弱性-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>脆弱性サブセクションを切り替えます</span> </button> <ul id="toc-脆弱性-sublist" class="vector-toc-list"> <li id="toc-DoS攻撃" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#DoS攻撃"> <div class="vector-toc-text"> <span class="vector-toc-numb">8.1</span> <span>DoS攻撃</span> </div> </a> <ul id="toc-DoS攻撃-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-コネクション乗っ取り" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#コネクション乗っ取り"> <div class="vector-toc-text"> <span class="vector-toc-numb">8.2</span> <span>コネクション乗っ取り</span> </div> </a> <ul id="toc-コネクション乗っ取り-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-TCPポート" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#TCPポート"> <div class="vector-toc-text"> <span class="vector-toc-numb">9</span> <span>TCPポート</span> </div> </a> <ul id="toc-TCPポート-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-発展" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#発展"> <div class="vector-toc-text"> <span class="vector-toc-numb">10</span> <span>発展</span> </div> </a> <ul id="toc-発展-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-無線ネットワークでのTCP" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#無線ネットワークでのTCP"> <div class="vector-toc-text"> <span class="vector-toc-numb">11</span> <span>無線ネットワークでのTCP</span> </div> </a> <ul id="toc-無線ネットワークでのTCP-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-デバッグ" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#デバッグ"> <div class="vector-toc-text"> <span class="vector-toc-numb">12</span> <span>デバッグ</span> </div> </a> <ul id="toc-デバッグ-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-代替となる選択肢" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#代替となる選択肢"> <div class="vector-toc-text"> <span class="vector-toc-numb">13</span> <span>代替となる選択肢</span> </div> </a> <ul id="toc-代替となる選択肢-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-チェックサムの計算" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#チェックサムの計算"> <div class="vector-toc-text"> <span class="vector-toc-numb">14</span> <span>チェックサムの計算</span> </div> </a> <button aria-controls="toc-チェックサムの計算-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>チェックサムの計算サブセクションを切り替えます</span> </button> <ul id="toc-チェックサムの計算-sublist" class="vector-toc-list"> <li id="toc-IPv4でのTCPチェックサム" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#IPv4でのTCPチェックサム"> <div class="vector-toc-text"> <span class="vector-toc-numb">14.1</span> <span>IPv4でのTCPチェックサム</span> </div> </a> <ul id="toc-IPv4でのTCPチェックサム-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-IPv6でのTCPチェックサム" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#IPv6でのTCPチェックサム"> <div class="vector-toc-text"> <span class="vector-toc-numb">14.2</span> <span>IPv6でのTCPチェックサム</span> </div> </a> <ul id="toc-IPv6でのTCPチェックサム-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-チェックサム・オフロード" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#チェックサム・オフロード"> <div class="vector-toc-text"> <span class="vector-toc-numb">14.3</span> <span>チェックサム・オフロード</span> </div> </a> <ul id="toc-チェックサム・オフロード-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-脚注・出典" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#脚注・出典"> <div class="vector-toc-text"> <span class="vector-toc-numb">15</span> <span>脚注・出典</span> </div> </a> <ul id="toc-脚注・出典-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-参考文献" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#参考文献"> <div class="vector-toc-text"> <span class="vector-toc-numb">16</span> <span>参考文献</span> </div> </a> <ul id="toc-参考文献-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-学習用参考書" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#学習用参考書"> <div class="vector-toc-text"> <span class="vector-toc-numb">17</span> <span>学習用参考書</span> </div> </a> <ul id="toc-学習用参考書-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-関連項目" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#関連項目"> <div class="vector-toc-text"> <span class="vector-toc-numb">18</span> <span>関連項目</span> </div> </a> <ul id="toc-関連項目-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-外部リンク" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#外部リンク"> <div class="vector-toc-text"> <span class="vector-toc-numb">19</span> <span>外部リンク</span> </div> </a> <button aria-controls="toc-外部リンク-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>外部リンクサブセクションを切り替えます</span> </button> <ul id="toc-外部リンク-sublist" class="vector-toc-list"> <li id="toc-RFC" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#RFC"> <div class="vector-toc-text"> <span class="vector-toc-numb">19.1</span> <span>RFC</span> </div> </a> <ul id="toc-RFC-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-その他" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#その他"> <div class="vector-toc-text"> <span class="vector-toc-numb">19.2</span> <span>その他</span> </div> </a> <ul id="toc-その他-sublist" class="vector-toc-list"> </ul> </li> </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="目次" 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="目次の表示・非表示を切り替え" > <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">目次の表示・非表示を切り替え</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">Transmission Control Protocol</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="特定の記事の別の言語版に移動します。 利用可能な言語71件" > <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-71" 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">71の言語版</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%A8%D8%B1%D9%88%D8%AA%D9%88%D9%83%D9%88%D9%84_%D8%A7%D9%84%D8%AA%D8%AD%D9%83%D9%85_%D8%A8%D8%A7%D9%84%D8%A5%D8%B1%D8%B3%D8%A7%D9%84" title="アラビア語: بروتوكول التحكم بالإرسال" lang="ar" hreflang="ar" data-title="بروتوكول التحكم بالإرسال" data-language-autonym="العربية" data-language-local-name="アラビア語" class="interlanguage-link-target"><span>العربية</span></a></li><li class="interlanguage-link interwiki-ast mw-list-item"><a href="https://ast.wikipedia.org/wiki/Transmission_Control_Protocol" title="アストゥリアス語: Transmission Control Protocol" lang="ast" hreflang="ast" data-title="Transmission Control Protocol" data-language-autonym="Asturianu" data-language-local-name="アストゥリアス語" class="interlanguage-link-target"><span>Asturianu</span></a></li><li class="interlanguage-link interwiki-az mw-list-item"><a href="https://az.wikipedia.org/wiki/TCP" title="アゼルバイジャン語: TCP" lang="az" hreflang="az" data-title="TCP" data-language-autonym="Azərbaycanca" data-language-local-name="アゼルバイジャン語" class="interlanguage-link-target"><span>Azərbaycanca</span></a></li><li class="interlanguage-link interwiki-be mw-list-item"><a href="https://be.wikipedia.org/wiki/TCP" title="ベラルーシ語: TCP" lang="be" hreflang="be" data-title="TCP" data-language-autonym="Беларуская" data-language-local-name="ベラルーシ語" class="interlanguage-link-target"><span>Беларуская</span></a></li><li class="interlanguage-link interwiki-bg mw-list-item"><a href="https://bg.wikipedia.org/wiki/TCP" title="ブルガリア語: TCP" lang="bg" hreflang="bg" data-title="TCP" data-language-autonym="Български" data-language-local-name="ブルガリア語" class="interlanguage-link-target"><span>Български</span></a></li><li class="interlanguage-link interwiki-bn mw-list-item"><a href="https://bn.wikipedia.org/wiki/%E0%A6%9F%E0%A7%8D%E0%A6%B0%E0%A6%BE%E0%A6%A8%E0%A7%8D%E0%A6%B8%E0%A6%AE%E0%A6%BF%E0%A6%B6%E0%A6%A8_%E0%A6%95%E0%A6%A8%E0%A7%8D%E0%A6%9F%E0%A7%8D%E0%A6%B0%E0%A7%8B%E0%A6%B2_%E0%A6%AA%E0%A7%8D%E0%A6%B0%E0%A7%8B%E0%A6%9F%E0%A7%8B%E0%A6%95%E0%A6%B2" title="ベンガル語: ট্রান্সমিশন কন্ট্রোল প্রোটোকল" lang="bn" hreflang="bn" data-title="ট্রান্সমিশন কন্ট্রোল প্রোটোকল" data-language-autonym="বাংলা" data-language-local-name="ベンガル語" class="interlanguage-link-target"><span>বাংলা</span></a></li><li class="interlanguage-link interwiki-br mw-list-item"><a href="https://br.wikipedia.org/wiki/Transmission_Control_Protocol" title="ブルトン語: Transmission Control Protocol" lang="br" hreflang="br" data-title="Transmission Control Protocol" data-language-autonym="Brezhoneg" data-language-local-name="ブルトン語" class="interlanguage-link-target"><span>Brezhoneg</span></a></li><li class="interlanguage-link interwiki-bs mw-list-item"><a href="https://bs.wikipedia.org/wiki/Transmisijski_kontrolni_protokol" title="ボスニア語: Transmisijski kontrolni protokol" lang="bs" hreflang="bs" data-title="Transmisijski kontrolni protokol" data-language-autonym="Bosanski" data-language-local-name="ボスニア語" class="interlanguage-link-target"><span>Bosanski</span></a></li><li class="interlanguage-link interwiki-ca mw-list-item"><a href="https://ca.wikipedia.org/wiki/Transmission_Control_Protocol" title="カタロニア語: Transmission Control Protocol" lang="ca" hreflang="ca" data-title="Transmission Control Protocol" data-language-autonym="Català" data-language-local-name="カタロニア語" 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/Transmission_Control_Protocol" title="チェコ語: Transmission Control Protocol" lang="cs" hreflang="cs" data-title="Transmission Control Protocol" data-language-autonym="Čeština" data-language-local-name="チェコ語" 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/TCP" title="デンマーク語: TCP" lang="da" hreflang="da" data-title="TCP" data-language-autonym="Dansk" data-language-local-name="デンマーク語" 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/Transmission_Control_Protocol" title="ドイツ語: Transmission Control Protocol" lang="de" hreflang="de" data-title="Transmission Control Protocol" data-language-autonym="Deutsch" data-language-local-name="ドイツ語" class="interlanguage-link-target"><span>Deutsch</span></a></li><li class="interlanguage-link interwiki-el mw-list-item"><a href="https://el.wikipedia.org/wiki/%CE%A0%CF%81%CF%89%CF%84%CF%8C%CE%BA%CE%BF%CE%BB%CE%BB%CE%BF_%CE%95%CE%BB%CE%AD%CE%B3%CF%87%CE%BF%CF%85_%CE%9C%CE%B5%CF%84%CE%B1%CF%86%CE%BF%CF%81%CE%AC%CF%82" title="ギリシャ語: Πρωτόκολλο Ελέγχου Μεταφοράς" lang="el" hreflang="el" data-title="Πρωτόκολλο Ελέγχου Μεταφοράς" data-language-autonym="Ελληνικά" data-language-local-name="ギリシャ語" class="interlanguage-link-target"><span>Ελληνικά</span></a></li><li class="interlanguage-link interwiki-en mw-list-item"><a href="https://en.wikipedia.org/wiki/Transmission_Control_Protocol" title="英語: Transmission Control Protocol" lang="en" hreflang="en" data-title="Transmission Control Protocol" data-language-autonym="English" data-language-local-name="英語" class="interlanguage-link-target"><span>English</span></a></li><li class="interlanguage-link interwiki-eo mw-list-item"><a href="https://eo.wikipedia.org/wiki/TCP" title="エスペラント語: TCP" lang="eo" hreflang="eo" data-title="TCP" data-language-autonym="Esperanto" data-language-local-name="エスペラント語" class="interlanguage-link-target"><span>Esperanto</span></a></li><li class="interlanguage-link interwiki-es mw-list-item"><a href="https://es.wikipedia.org/wiki/Protocolo_de_control_de_transmisi%C3%B3n" title="スペイン語: Protocolo de control de transmisión" lang="es" hreflang="es" data-title="Protocolo de control de transmisión" data-language-autonym="Español" data-language-local-name="スペイン語" class="interlanguage-link-target"><span>Español</span></a></li><li class="interlanguage-link interwiki-et mw-list-item"><a href="https://et.wikipedia.org/wiki/Edastusohje_protokoll" title="エストニア語: Edastusohje protokoll" lang="et" hreflang="et" data-title="Edastusohje protokoll" data-language-autonym="Eesti" data-language-local-name="エストニア語" class="interlanguage-link-target"><span>Eesti</span></a></li><li class="interlanguage-link interwiki-eu mw-list-item"><a href="https://eu.wikipedia.org/wiki/Transmission_Control_Protocol" title="バスク語: Transmission Control Protocol" lang="eu" hreflang="eu" data-title="Transmission Control Protocol" data-language-autonym="Euskara" data-language-local-name="バスク語" 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/%D9%BE%D8%B1%D9%88%D8%AA%DA%A9%D9%84_%D9%87%D8%AF%D8%A7%DB%8C%D8%AA_%D8%A7%D9%86%D8%AA%D9%82%D8%A7%D9%84" title="ペルシア語: پروتکل هدایت انتقال" lang="fa" hreflang="fa" data-title="پروتکل هدایت انتقال" data-language-autonym="فارسی" data-language-local-name="ペルシア語" class="interlanguage-link-target"><span>فارسی</span></a></li><li class="interlanguage-link interwiki-fi mw-list-item"><a href="https://fi.wikipedia.org/wiki/TCP" title="フィンランド語: TCP" lang="fi" hreflang="fi" data-title="TCP" data-language-autonym="Suomi" data-language-local-name="フィンランド語" class="interlanguage-link-target"><span>Suomi</span></a></li><li class="interlanguage-link interwiki-fr mw-list-item"><a href="https://fr.wikipedia.org/wiki/Transmission_Control_Protocol" title="フランス語: Transmission Control Protocol" lang="fr" hreflang="fr" data-title="Transmission Control Protocol" data-language-autonym="Français" data-language-local-name="フランス語" class="interlanguage-link-target"><span>Français</span></a></li><li class="interlanguage-link interwiki-gl mw-list-item"><a href="https://gl.wikipedia.org/wiki/TCP" title="ガリシア語: TCP" lang="gl" hreflang="gl" data-title="TCP" data-language-autonym="Galego" data-language-local-name="ガリシア語" class="interlanguage-link-target"><span>Galego</span></a></li><li class="interlanguage-link interwiki-gu mw-list-item"><a href="https://gu.wikipedia.org/wiki/%E0%AA%AA%E0%AB%8D%E0%AA%B0%E0%AA%B8%E0%AA%BE%E0%AA%B0%E0%AA%A3_%E0%AA%A8%E0%AA%BF%E0%AA%AF%E0%AA%82%E0%AA%A4%E0%AB%8D%E0%AA%B0%E0%AA%A3_%E0%AA%AA%E0%AB%8D%E0%AA%B0%E0%AB%8B%E0%AA%9F%E0%AB%8B%E0%AA%95%E0%AB%8B%E0%AA%B2" title="グジャラート語: પ્રસારણ નિયંત્રણ પ્રોટોકોલ" lang="gu" hreflang="gu" data-title="પ્રસારણ નિયંત્રણ પ્રોટોકોલ" data-language-autonym="ગુજરાતી" data-language-local-name="グジャラート語" class="interlanguage-link-target"><span>ગુજરાતી</span></a></li><li class="interlanguage-link interwiki-he mw-list-item"><a href="https://he.wikipedia.org/wiki/Transmission_Control_Protocol" title="ヘブライ語: Transmission Control Protocol" lang="he" hreflang="he" data-title="Transmission Control Protocol" data-language-autonym="עברית" data-language-local-name="ヘブライ語" class="interlanguage-link-target"><span>עברית</span></a></li><li class="interlanguage-link interwiki-hi mw-list-item"><a href="https://hi.wikipedia.org/wiki/%E0%A4%9F%E0%A5%8D%E0%A4%B0%E0%A4%BE%E0%A4%82%E0%A4%B8%E0%A4%AE%E0%A4%BF%E0%A4%B6%E0%A4%A8_%E0%A4%95%E0%A4%82%E0%A4%9F%E0%A5%8D%E0%A4%B0%E0%A5%8B%E0%A4%B2_%E0%A4%AA%E0%A5%8D%E0%A4%B0%E0%A5%8B%E0%A4%9F%E0%A5%8B%E0%A4%95%E0%A5%89%E0%A4%B2" title="ヒンディー語: ट्रांसमिशन कंट्रोल प्रोटोकॉल" lang="hi" hreflang="hi" data-title="ट्रांसमिशन कंट्रोल प्रोटोकॉल" data-language-autonym="हिन्दी" data-language-local-name="ヒンディー語" class="interlanguage-link-target"><span>हिन्दी</span></a></li><li class="interlanguage-link interwiki-hr mw-list-item"><a href="https://hr.wikipedia.org/wiki/TCP" title="クロアチア語: TCP" lang="hr" hreflang="hr" data-title="TCP" data-language-autonym="Hrvatski" data-language-local-name="クロアチア語" class="interlanguage-link-target"><span>Hrvatski</span></a></li><li class="interlanguage-link interwiki-hu mw-list-item"><a href="https://hu.wikipedia.org/wiki/Transmission_Control_Protocol" title="ハンガリー語: Transmission Control Protocol" lang="hu" hreflang="hu" data-title="Transmission Control Protocol" data-language-autonym="Magyar" data-language-local-name="ハンガリー語" class="interlanguage-link-target"><span>Magyar</span></a></li><li class="interlanguage-link interwiki-hy mw-list-item"><a href="https://hy.wikipedia.org/wiki/%D5%93%D5%B8%D5%AD%D5%A1%D5%B6%D6%81%D5%B4%D5%A1%D5%B6_%D5%AF%D5%A1%D5%BC%D5%A1%D5%BE%D5%A1%D6%80%D5%B4%D5%A1%D5%B6_%D5%B0%D5%A1%D5%B2%D5%B8%D6%80%D5%A4%D5%A1%D5%AF%D5%A1%D6%80%D5%A3" title="アルメニア語: Փոխանցման կառավարման հաղորդակարգ" lang="hy" hreflang="hy" data-title="Փոխանցման կառավարման հաղորդակարգ" data-language-autonym="Հայերեն" data-language-local-name="アルメニア語" class="interlanguage-link-target"><span>Հայերեն</span></a></li><li class="interlanguage-link interwiki-id mw-list-item"><a href="https://id.wikipedia.org/wiki/Protokol_Kontrol_Transmisi" title="インドネシア語: Protokol Kontrol Transmisi" lang="id" hreflang="id" data-title="Protokol Kontrol Transmisi" data-language-autonym="Bahasa Indonesia" data-language-local-name="インドネシア語" class="interlanguage-link-target"><span>Bahasa Indonesia</span></a></li><li class="interlanguage-link interwiki-is mw-list-item"><a href="https://is.wikipedia.org/wiki/TCP" title="アイスランド語: TCP" lang="is" hreflang="is" data-title="TCP" data-language-autonym="Íslenska" data-language-local-name="アイスランド語" class="interlanguage-link-target"><span>Íslenska</span></a></li><li class="interlanguage-link interwiki-it mw-list-item"><a href="https://it.wikipedia.org/wiki/Transmission_Control_Protocol" title="イタリア語: Transmission Control Protocol" lang="it" hreflang="it" data-title="Transmission Control Protocol" data-language-autonym="Italiano" data-language-local-name="イタリア語" class="interlanguage-link-target"><span>Italiano</span></a></li><li class="interlanguage-link interwiki-kk mw-list-item"><a href="https://kk.wikipedia.org/wiki/TCP" title="カザフ語: TCP" lang="kk" hreflang="kk" data-title="TCP" data-language-autonym="Қазақша" data-language-local-name="カザフ語" class="interlanguage-link-target"><span>Қазақша</span></a></li><li class="interlanguage-link interwiki-ko mw-list-item"><a href="https://ko.wikipedia.org/wiki/%EC%A0%84%EC%86%A1_%EC%A0%9C%EC%96%B4_%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C" title="韓国語: 전송 제어 프로토콜" lang="ko" hreflang="ko" data-title="전송 제어 프로토콜" data-language-autonym="한국어" data-language-local-name="韓国語" class="interlanguage-link-target"><span>한국어</span></a></li><li class="interlanguage-link interwiki-lb mw-list-item"><a href="https://lb.wikipedia.org/wiki/Transmission_Control_Protocol" title="ルクセンブルク語: Transmission Control Protocol" lang="lb" hreflang="lb" data-title="Transmission Control Protocol" data-language-autonym="Lëtzebuergesch" data-language-local-name="ルクセンブルク語" class="interlanguage-link-target"><span>Lëtzebuergesch</span></a></li><li class="interlanguage-link interwiki-lmo mw-list-item"><a href="https://lmo.wikipedia.org/wiki/Transmission_Control_Protocol" title="ロンバルド語: Transmission Control Protocol" lang="lmo" hreflang="lmo" data-title="Transmission Control Protocol" data-language-autonym="Lombard" data-language-local-name="ロンバルド語" class="interlanguage-link-target"><span>Lombard</span></a></li><li class="interlanguage-link interwiki-lt mw-list-item"><a href="https://lt.wikipedia.org/wiki/TCP" title="リトアニア語: TCP" lang="lt" hreflang="lt" data-title="TCP" data-language-autonym="Lietuvių" data-language-local-name="リトアニア語" class="interlanguage-link-target"><span>Lietuvių</span></a></li><li class="interlanguage-link interwiki-lv mw-list-item"><a href="https://lv.wikipedia.org/wiki/TCP" title="ラトビア語: TCP" lang="lv" hreflang="lv" data-title="TCP" data-language-autonym="Latviešu" data-language-local-name="ラトビア語" 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/TCP" title="マケドニア語: TCP" lang="mk" hreflang="mk" data-title="TCP" data-language-autonym="Македонски" data-language-local-name="マケドニア語" 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%9F%E0%B5%8D%E0%B4%B0%E0%B4%BE%E0%B5%BB%E0%B4%B8%E0%B5%8D%E0%B4%AE%E0%B4%BF%E0%B4%B7%E0%B5%BB_%E0%B4%95%E0%B5%BA%E0%B4%9F%E0%B5%8D%E0%B4%B0%E0%B5%8B%E0%B5%BE_%E0%B4%AA%E0%B5%8D%E0%B4%B0%E0%B5%8B%E0%B4%9F%E0%B5%8D%E0%B4%9F%E0%B5%8B%E0%B4%95%E0%B5%8B%E0%B5%BE" title="マラヤーラム語: ട്രാൻസ്മിഷൻ കൺട്രോൾ പ്രോട്ടോകോൾ" lang="ml" hreflang="ml" data-title="ട്രാൻസ്മിഷൻ കൺട്രോൾ പ്രോട്ടോകോൾ" data-language-autonym="മലയാളം" data-language-local-name="マラヤーラム語" class="interlanguage-link-target"><span>മലയാളം</span></a></li><li class="interlanguage-link interwiki-mn mw-list-item"><a href="https://mn.wikipedia.org/wiki/Transmission_Control_Protocol" title="モンゴル語: Transmission Control Protocol" lang="mn" hreflang="mn" data-title="Transmission Control Protocol" data-language-autonym="Монгол" data-language-local-name="モンゴル語" class="interlanguage-link-target"><span>Монгол</span></a></li><li class="interlanguage-link interwiki-ms mw-list-item"><a href="https://ms.wikipedia.org/wiki/Protokol_Kawalan_Penghantaran" title="マレー語: Protokol Kawalan Penghantaran" lang="ms" hreflang="ms" data-title="Protokol Kawalan Penghantaran" data-language-autonym="Bahasa Melayu" data-language-local-name="マレー語" class="interlanguage-link-target"><span>Bahasa Melayu</span></a></li><li class="interlanguage-link interwiki-nl mw-list-item"><a href="https://nl.wikipedia.org/wiki/Transmission_Control_Protocol" title="オランダ語: Transmission Control Protocol" lang="nl" hreflang="nl" data-title="Transmission Control Protocol" data-language-autonym="Nederlands" data-language-local-name="オランダ語" class="interlanguage-link-target"><span>Nederlands</span></a></li><li class="interlanguage-link interwiki-nn mw-list-item"><a href="https://nn.wikipedia.org/wiki/Transmission_Control_Protocol" title="ノルウェー語(ニーノシュク): Transmission Control Protocol" lang="nn" hreflang="nn" data-title="Transmission Control Protocol" data-language-autonym="Norsk nynorsk" data-language-local-name="ノルウェー語(ニーノシュク)" class="interlanguage-link-target"><span>Norsk nynorsk</span></a></li><li class="interlanguage-link interwiki-no mw-list-item"><a href="https://no.wikipedia.org/wiki/TCP" title="ノルウェー語(ブークモール): TCP" lang="nb" hreflang="nb" data-title="TCP" data-language-autonym="Norsk bokmål" data-language-local-name="ノルウェー語(ブークモール)" class="interlanguage-link-target"><span>Norsk bokmål</span></a></li><li class="interlanguage-link interwiki-pa mw-list-item"><a href="https://pa.wikipedia.org/wiki/%E0%A8%9F%E0%A8%B0%E0%A8%BE%E0%A8%82%E0%A8%B8%E0%A8%AE%E0%A8%BF%E0%A8%B8%E0%A8%BC%E0%A8%A8_%E0%A8%95%E0%A9%B0%E0%A8%9F%E0%A8%B0%E0%A9%8B%E0%A8%B2_%E0%A8%AA%E0%A9%8D%E0%A8%B0%E0%A9%8B%E0%A8%9F%E0%A9%8B%E0%A8%95%E0%A9%8B%E0%A8%B2" title="パンジャブ語: ਟਰਾਂਸਮਿਸ਼ਨ ਕੰਟਰੋਲ ਪ੍ਰੋਟੋਕੋਲ" lang="pa" hreflang="pa" data-title="ਟਰਾਂਸਮਿਸ਼ਨ ਕੰਟਰੋਲ ਪ੍ਰੋਟੋਕੋਲ" data-language-autonym="ਪੰਜਾਬੀ" data-language-local-name="パンジャブ語" class="interlanguage-link-target"><span>ਪੰਜਾਬੀ</span></a></li><li class="interlanguage-link interwiki-pam mw-list-item"><a href="https://pam.wikipedia.org/wiki/Transmission_Control_Protocol" title="パンパンガ語: Transmission Control Protocol" lang="pam" hreflang="pam" data-title="Transmission Control Protocol" data-language-autonym="Kapampangan" data-language-local-name="パンパンガ語" class="interlanguage-link-target"><span>Kapampangan</span></a></li><li class="interlanguage-link interwiki-pl mw-list-item"><a href="https://pl.wikipedia.org/wiki/Protok%C3%B3%C5%82_sterowania_transmisj%C4%85" title="ポーランド語: Protokół sterowania transmisją" lang="pl" hreflang="pl" data-title="Protokół sterowania transmisją" data-language-autonym="Polski" data-language-local-name="ポーランド語" class="interlanguage-link-target"><span>Polski</span></a></li><li class="interlanguage-link interwiki-pt mw-list-item"><a href="https://pt.wikipedia.org/wiki/Protocolo_de_Controle_de_Transmiss%C3%A3o" title="ポルトガル語: Protocolo de Controle de Transmissão" lang="pt" hreflang="pt" data-title="Protocolo de Controle de Transmissão" data-language-autonym="Português" data-language-local-name="ポルトガル語" class="interlanguage-link-target"><span>Português</span></a></li><li class="interlanguage-link interwiki-ro mw-list-item"><a href="https://ro.wikipedia.org/wiki/Transmission_Control_Protocol" title="ルーマニア語: Transmission Control Protocol" lang="ro" hreflang="ro" data-title="Transmission Control Protocol" data-language-autonym="Română" data-language-local-name="ルーマニア語" class="interlanguage-link-target"><span>Română</span></a></li><li class="interlanguage-link interwiki-ru mw-list-item"><a href="https://ru.wikipedia.org/wiki/TCP" title="ロシア語: TCP" lang="ru" hreflang="ru" data-title="TCP" data-language-autonym="Русский" data-language-local-name="ロシア語" class="interlanguage-link-target"><span>Русский</span></a></li><li class="interlanguage-link interwiki-sh mw-list-item"><a href="https://sh.wikipedia.org/wiki/Transmisioni_kontrolni_protokol" title="セルボ・クロアチア語: Transmisioni kontrolni protokol" lang="sh" hreflang="sh" data-title="Transmisioni kontrolni protokol" data-language-autonym="Srpskohrvatski / српскохрватски" data-language-local-name="セルボ・クロアチア語" class="interlanguage-link-target"><span>Srpskohrvatski / српскохрватски</span></a></li><li class="interlanguage-link interwiki-simple mw-list-item"><a href="https://simple.wikipedia.org/wiki/Transmission_Control_Protocol" title="シンプル英語: Transmission Control Protocol" lang="en-simple" hreflang="en-simple" data-title="Transmission Control Protocol" data-language-autonym="Simple English" data-language-local-name="シンプル英語" class="interlanguage-link-target"><span>Simple English</span></a></li><li class="interlanguage-link interwiki-sk mw-list-item"><a href="https://sk.wikipedia.org/wiki/Protokol_riadenia_prenosu" title="スロバキア語: Protokol riadenia prenosu" lang="sk" hreflang="sk" data-title="Protokol riadenia prenosu" data-language-autonym="Slovenčina" data-language-local-name="スロバキア語" class="interlanguage-link-target"><span>Slovenčina</span></a></li><li class="interlanguage-link interwiki-sq badge-Q70893996 mw-list-item" title=""><a href="https://sq.wikipedia.org/wiki/Transmission_Control_Protocol" title="アルバニア語: Transmission Control Protocol" lang="sq" hreflang="sq" data-title="Transmission Control Protocol" data-language-autonym="Shqip" data-language-local-name="アルバニア語" 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%A2%D1%80%D0%B0%D0%BD%D1%81%D0%BC%D0%B8%D1%81%D0%B8%D0%BE%D0%BD%D0%B8_%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D0%BD%D0%B8_%D0%BF%D1%80%D0%BE%D1%82%D0%BE%D0%BA%D0%BE%D0%BB" title="セルビア語: Трансмисиони контролни протокол" lang="sr" hreflang="sr" data-title="Трансмисиони контролни протокол" data-language-autonym="Српски / srpski" data-language-local-name="セルビア語" class="interlanguage-link-target"><span>Српски / srpski</span></a></li><li class="interlanguage-link interwiki-sv mw-list-item"><a href="https://sv.wikipedia.org/wiki/Transmission_Control_Protocol" title="スウェーデン語: Transmission Control Protocol" lang="sv" hreflang="sv" data-title="Transmission Control Protocol" data-language-autonym="Svenska" data-language-local-name="スウェーデン語" class="interlanguage-link-target"><span>Svenska</span></a></li><li class="interlanguage-link interwiki-sw mw-list-item"><a href="https://sw.wikipedia.org/wiki/Itifaki_ya_Kidhibiti_Peleshi" title="スワヒリ語: Itifaki ya Kidhibiti Peleshi" lang="sw" hreflang="sw" data-title="Itifaki ya Kidhibiti Peleshi" data-language-autonym="Kiswahili" data-language-local-name="スワヒリ語" class="interlanguage-link-target"><span>Kiswahili</span></a></li><li class="interlanguage-link interwiki-ta mw-list-item"><a href="https://ta.wikipedia.org/wiki/%E0%AE%AA%E0%AE%B0%E0%AE%AA%E0%AF%8D%E0%AE%AA%E0%AF%81%E0%AE%95%E0%AF%88_%E0%AE%95%E0%AE%9F%E0%AF%8D%E0%AE%9F%E0%AF%81%E0%AE%AA%E0%AF%8D%E0%AE%AA%E0%AE%BE%E0%AE%9F%E0%AF%81_%E0%AE%A8%E0%AF%86%E0%AE%B1%E0%AE%BF%E0%AE%AE%E0%AF%81%E0%AE%B1%E0%AF%88" title="タミル語: பரப்புகை கட்டுப்பாடு நெறிமுறை" lang="ta" hreflang="ta" data-title="பரப்புகை கட்டுப்பாடு நெறிமுறை" data-language-autonym="தமிழ்" data-language-local-name="タミル語" class="interlanguage-link-target"><span>தமிழ்</span></a></li><li class="interlanguage-link interwiki-th mw-list-item"><a href="https://th.wikipedia.org/wiki/%E0%B8%97%E0%B8%B5%E0%B8%8B%E0%B8%B5%E0%B8%9E%E0%B8%B5" title="タイ語: ทีซีพี" lang="th" hreflang="th" data-title="ทีซีพี" data-language-autonym="ไทย" data-language-local-name="タイ語" class="interlanguage-link-target"><span>ไทย</span></a></li><li class="interlanguage-link interwiki-tl mw-list-item"><a href="https://tl.wikipedia.org/wiki/TCP" title="タガログ語: TCP" lang="tl" hreflang="tl" data-title="TCP" data-language-autonym="Tagalog" data-language-local-name="タガログ語" class="interlanguage-link-target"><span>Tagalog</span></a></li><li class="interlanguage-link interwiki-tr mw-list-item"><a href="https://tr.wikipedia.org/wiki/TCP" title="トルコ語: TCP" lang="tr" hreflang="tr" data-title="TCP" data-language-autonym="Türkçe" data-language-local-name="トルコ語" class="interlanguage-link-target"><span>Türkçe</span></a></li><li class="interlanguage-link interwiki-uk mw-list-item"><a href="https://uk.wikipedia.org/wiki/TCP" title="ウクライナ語: TCP" lang="uk" hreflang="uk" data-title="TCP" data-language-autonym="Українська" data-language-local-name="ウクライナ語" class="interlanguage-link-target"><span>Українська</span></a></li><li class="interlanguage-link interwiki-ur mw-list-item"><a href="https://ur.wikipedia.org/wiki/%D8%AA%D8%B6%D8%A8%DB%8C%D8%B7_%D8%AA%D8%B1%D8%B3%DB%8C%D9%84_%D8%AF%D8%B3%D8%AA%D9%88%D8%B1" title="ウルドゥー語: تضبیط ترسیل دستور" lang="ur" hreflang="ur" data-title="تضبیط ترسیل دستور" data-language-autonym="اردو" data-language-local-name="ウルドゥー語" class="interlanguage-link-target"><span>اردو</span></a></li><li class="interlanguage-link interwiki-uz mw-list-item"><a href="https://uz.wikipedia.org/wiki/TCP" title="ウズベク語: TCP" lang="uz" hreflang="uz" data-title="TCP" data-language-autonym="Oʻzbekcha / ўзбекча" data-language-local-name="ウズベク語" class="interlanguage-link-target"><span>Oʻzbekcha / ўзбекча</span></a></li><li class="interlanguage-link interwiki-vi mw-list-item"><a href="https://vi.wikipedia.org/wiki/TCP" title="ベトナム語: TCP" lang="vi" hreflang="vi" data-title="TCP" data-language-autonym="Tiếng Việt" data-language-local-name="ベトナム語" class="interlanguage-link-target"><span>Tiếng Việt</span></a></li><li class="interlanguage-link interwiki-wuu mw-list-item"><a href="https://wuu.wikipedia.org/wiki/%E4%BC%A0%E8%BE%93%E6%8E%A7%E5%88%B6%E5%8D%8F%E8%AE%AE" title="呉語: 传输控制协议" lang="wuu" hreflang="wuu" data-title="传输控制协议" data-language-autonym="吴语" data-language-local-name="呉語" class="interlanguage-link-target"><span>吴语</span></a></li><li class="interlanguage-link interwiki-yo mw-list-item"><a href="https://yo.wikipedia.org/wiki/Transmission_Control_Protocol" title="ヨルバ語: Transmission Control Protocol" lang="yo" hreflang="yo" data-title="Transmission Control Protocol" data-language-autonym="Yorùbá" data-language-local-name="ヨルバ語" class="interlanguage-link-target"><span>Yorùbá</span></a></li><li class="interlanguage-link interwiki-zh mw-list-item"><a href="https://zh.wikipedia.org/wiki/%E4%BC%A0%E8%BE%93%E6%8E%A7%E5%88%B6%E5%8D%8F%E8%AE%AE" title="中国語: 传输控制协议" lang="zh" hreflang="zh" data-title="传输控制协议" data-language-autonym="中文" data-language-local-name="中国語" class="interlanguage-link-target"><span>中文</span></a></li><li class="interlanguage-link interwiki-zh-min-nan mw-list-item"><a href="https://zh-min-nan.wikipedia.org/wiki/Transmission_Control_Protocol" title="閩南語: Transmission Control Protocol" lang="nan" hreflang="nan" data-title="Transmission Control Protocol" data-language-autonym="閩南語 / Bân-lâm-gú" data-language-local-name="閩南語" class="interlanguage-link-target"><span>閩南語 / Bân-lâm-gú</span></a></li><li class="interlanguage-link interwiki-zh-yue mw-list-item"><a href="https://zh-yue.wikipedia.org/wiki/%E5%82%B3%E8%BC%B8%E6%8E%A7%E5%88%B6%E5%8D%94%E8%AD%B0" title="広東語: 傳輸控制協議" lang="yue" hreflang="yue" data-title="傳輸控制協議" data-language-autonym="粵語" data-language-local-name="広東語" class="interlanguage-link-target"><span>粵語</span></a></li><li class="interlanguage-link interwiki-zu mw-list-item"><a href="https://zu.wikipedia.org/wiki/IGumelo_lokulawula_ukufufukisa" title="ズールー語: IGumelo lokulawula ukufufukisa" lang="zu" hreflang="zu" data-title="IGumelo lokulawula ukufufukisa" data-language-autonym="IsiZulu" data-language-local-name="ズールー語" class="interlanguage-link-target"><span>IsiZulu</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/Q8803#sitelinks-wikipedia" title="言語間リンクを編集" class="wbc-editpage">リンクを編集</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="名前空間"> <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/Transmission_Control_Protocol" title="本文を閲覧 [c]" accesskey="c"><span>ページ</span></a></li><li id="ca-talk" class="vector-tab-noicon mw-list-item"><a href="/wiki/%E3%83%8E%E3%83%BC%E3%83%88:Transmission_Control_Protocol" rel="discussion" title="本文ページについての議論 [t]" accesskey="t"><span>ノート</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="別の言語に切り替える" > <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">日本語</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="表示"> <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/Transmission_Control_Protocol"><span>閲覧</span></a></li><li id="ca-edit" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Transmission_Control_Protocol&action=edit" title="このページのソースコードを編集する [e]" accesskey="e"><span>編集</span></a></li><li id="ca-history" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Transmission_Control_Protocol&action=history" title="このページの過去の版 [h]" accesskey="h"><span>履歴表示</span></a></li> </ul> </div> </div> </nav> <nav class="vector-page-tools-landmark" aria-label="ページツール"> <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="ツール" > <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">ツール</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">ツール</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-page-tools.pin">サイドバーに移動</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-page-tools.unpin">非表示</button> </div> <div id="p-cactions" class="vector-menu mw-portlet mw-portlet-cactions emptyPortlet vector-has-collapsible-items" title="その他の操作" > <div class="vector-menu-heading"> 操作 </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/Transmission_Control_Protocol"><span>閲覧</span></a></li><li id="ca-more-edit" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Transmission_Control_Protocol&action=edit" title="このページのソースコードを編集する [e]" accesskey="e"><span>編集</span></a></li><li id="ca-more-history" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Transmission_Control_Protocol&action=history"><span>履歴表示</span></a></li> </ul> </div> </div> <div id="p-tb" class="vector-menu mw-portlet mw-portlet-tb" > <div class="vector-menu-heading"> 全般 </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-whatlinkshere" class="mw-list-item"><a href="/wiki/%E7%89%B9%E5%88%A5:%E3%83%AA%E3%83%B3%E3%82%AF%E5%85%83/Transmission_Control_Protocol" title="ここにリンクしている全ウィキページの一覧 [j]" accesskey="j"><span>リンク元</span></a></li><li id="t-recentchangeslinked" class="mw-list-item"><a href="/wiki/%E7%89%B9%E5%88%A5:%E9%96%A2%E9%80%A3%E3%83%9A%E3%83%BC%E3%82%B8%E3%81%AE%E6%9B%B4%E6%96%B0%E7%8A%B6%E6%B3%81/Transmission_Control_Protocol" rel="nofollow" title="このページからリンクしているページの最近の更新 [k]" accesskey="k"><span>関連ページの更新状況</span></a></li><li id="t-upload" class="mw-list-item"><a href="/wiki/Wikipedia:%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E3%82%A2%E3%83%83%E3%83%97%E3%83%AD%E3%83%BC%E3%83%89" title="ファイルをアップロードする [u]" accesskey="u"><span>ファイルをアップロード</span></a></li><li id="t-specialpages" class="mw-list-item"><a href="/wiki/%E7%89%B9%E5%88%A5:%E7%89%B9%E5%88%A5%E3%83%9A%E3%83%BC%E3%82%B8%E4%B8%80%E8%A6%A7" title="特別ページの一覧 [q]" accesskey="q"><span>特別ページ</span></a></li><li id="t-permalink" class="mw-list-item"><a href="/w/index.php?title=Transmission_Control_Protocol&oldid=101701021" title="このページのこの版への固定リンク"><span>この版への固定リンク</span></a></li><li id="t-info" class="mw-list-item"><a href="/w/index.php?title=Transmission_Control_Protocol&action=info" title="このページについての詳細情報"><span>ページ情報</span></a></li><li id="t-cite" class="mw-list-item"><a href="/w/index.php?title=%E7%89%B9%E5%88%A5:%E3%81%93%E3%81%AE%E3%83%9A%E3%83%BC%E3%82%B8%E3%82%92%E5%BC%95%E7%94%A8&page=Transmission_Control_Protocol&id=101701021&wpFormIdentifier=titleform" title="このページの引用方法"><span>このページを引用</span></a></li><li id="t-urlshortener" class="mw-list-item"><a href="/w/index.php?title=%E7%89%B9%E5%88%A5:UrlShortener&url=https%3A%2F%2Fja.wikipedia.org%2Fwiki%2FTransmission_Control_Protocol"><span>短縮URLを取得する</span></a></li><li id="t-urlshortener-qrcode" class="mw-list-item"><a href="/w/index.php?title=%E7%89%B9%E5%88%A5:QrCode&url=https%3A%2F%2Fja.wikipedia.org%2Fwiki%2FTransmission_Control_Protocol"><span>QRコードをダウンロード</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"> 印刷/書き出し </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="coll-create_a_book" class="mw-list-item"><a href="/w/index.php?title=%E7%89%B9%E5%88%A5:%E3%83%96%E3%83%83%E3%82%AF&bookcmd=book_creator&referer=Transmission+Control+Protocol"><span>ブックの新規作成</span></a></li><li id="coll-download-as-rl" class="mw-list-item"><a href="/w/index.php?title=%E7%89%B9%E5%88%A5:DownloadAsPdf&page=Transmission_Control_Protocol&action=show-download-screen"><span>PDF 形式でダウンロード</span></a></li><li id="t-print" class="mw-list-item"><a href="/w/index.php?title=Transmission_Control_Protocol&printable=yes" title="このページの印刷用ページ [p]" accesskey="p"><span>印刷用バージョン</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"> 他のプロジェクト </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="wb-otherproject-link wb-otherproject-commons mw-list-item"><a href="https://commons.wikimedia.org/wiki/Transmission_Control_Protocol" hreflang="en"><span>コモンズ</span></a></li><li class="wb-otherproject-link wb-otherproject-wikibooks mw-list-item"><a href="https://ja.wikibooks.org/wiki/TCP/IP%E5%85%A5%E9%96%80" hreflang="ja"><span>ウィキブックス</span></a></li><li id="t-wikibase" class="wb-otherproject-link wb-otherproject-wikibase-dataitem mw-list-item"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q8803" title="関連付けられたデータリポジトリ項目へのリンク [g]" accesskey="g"><span>ウィキデータ項目</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="ページツール"> <div id="vector-page-tools-pinned-container" class="vector-pinned-container"> </div> </nav> <nav class="vector-appearance-landmark" aria-label="表示"> <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">表示</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-appearance.pin">サイドバーに移動</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-appearance.unpin">非表示</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">出典: フリー百科事典『ウィキペディア(Wikipedia)』</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="ja" dir="ltr"><style data-mw-deduplicate="TemplateStyles:r101384370">.mw-parser-output .sidebar{width:auto;float:right;clear:right;margin:0.5em 0 1em 1em;background:var(--background-color-neutral-subtle,#f8f9fa);border:1px solid var(--border-color-base,#a2a9b1);padding:0.2em;text-align:center;line-height:1.4em;font-size:88%;border-collapse:collapse;display:table}body.skin-minerva .mw-parser-output .sidebar{display:table!important;float:right!important;margin:0.5em 0 1em 1em!important}.mw-parser-output .sidebar-subgroup{width:100%;margin:0;border-spacing:0}.mw-parser-output .sidebar-left{float:left;clear:left;margin:0.5em 1em 1em 0}.mw-parser-output .sidebar-none{float:none;clear:both;margin:0.5em 1em 1em 0}.mw-parser-output .sidebar-outer-title{padding:0 0.4em 0.2em;font-size:125%;line-height:1.2em;font-weight:bold}.mw-parser-output .sidebar-top-image{padding:0.4em}.mw-parser-output .sidebar-top-caption,.mw-parser-output .sidebar-pretitle-with-top-image,.mw-parser-output .sidebar-caption{padding:0.2em 0.4em 0;line-height:1.2em}.mw-parser-output .sidebar-pretitle{padding:0.4em 0.4em 0;line-height:1.2em}.mw-parser-output .sidebar-title,.mw-parser-output .sidebar-title-with-pretitle{padding:0.2em 0.8em;font-size:145%;line-height:1.2em}.mw-parser-output .sidebar-title-with-pretitle{padding:0 0.4em}.mw-parser-output .sidebar-image{padding:0.2em 0.4em 0.4em}.mw-parser-output .sidebar-heading{padding:0.1em 0.4em}.mw-parser-output .sidebar-content{padding:0 0.5em 0.4em}.mw-parser-output .sidebar-content-with-subgroup{padding:0.1em 0.4em 0.2em}.mw-parser-output .sidebar-above,.mw-parser-output .sidebar-below{padding:0.3em 0.8em;font-weight:bold}.mw-parser-output .sidebar-collapse .sidebar-above,.mw-parser-output .sidebar-collapse .sidebar-below{border-top:1px solid #aaa;border-bottom:1px solid #aaa}.mw-parser-output .sidebar-navbar{text-align:right;font-size:75%;padding:0 0.4em 0.4em}.mw-parser-output .sidebar-list-title{padding:0 0.4em;text-align:left;font-weight:bold;line-height:1.6em;font-size:105%}.mw-parser-output .sidebar-list-title-c{padding:0 0.4em;text-align:center;margin:0 3.3em}@media(max-width:720px){body.mediawiki .mw-parser-output .sidebar{width:100%!important;clear:both;float:none!important;margin-left:0!important;margin-right:0!important}}</style><table class="sidebar nomobile nowraplinks" style="width:20em; font-size:90%;"><tbody><tr><th class="sidebar-title" style="background-color:#adb;"><a href="/wiki/%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%8D%E3%83%83%E3%83%88%E3%83%BB%E3%83%97%E3%83%AD%E3%83%88%E3%82%B3%E3%83%AB%E3%83%BB%E3%82%B9%E3%82%A4%E3%83%BC%E3%83%88" title="インターネット・プロトコル・スイート">TCP/IP群</a></th></tr><tr><th class="sidebar-heading" style="background-color:#cfc;"> <a href="/wiki/%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E5%B1%A4" title="アプリケーション層">アプリケーション層</a></th></tr><tr><td class="sidebar-content hlist"> <ul><li><a href="/wiki/Border_Gateway_Protocol" title="Border Gateway Protocol">BGP</a></li> <li><a href="/wiki/Dynamic_Host_Configuration_Protocol" title="Dynamic Host Configuration Protocol">DHCP</a></li> <li><a href="/wiki/Domain_Name_System" title="Domain Name System">DNS</a></li> <li><a href="/wiki/File_Transfer_Protocol" title="File Transfer Protocol">FTP</a></li> <li><a href="/wiki/Hypertext_Transfer_Protocol" title="Hypertext Transfer Protocol">HTTP</a></li> <li><a href="/wiki/Internet_Message_Access_Protocol" title="Internet Message Access Protocol">IMAP</a></li> <li><a href="/wiki/Internet_Relay_Chat" title="Internet Relay Chat">IRC</a></li> <li><a href="/wiki/Lightweight_Directory_Access_Protocol" title="Lightweight Directory Access Protocol">LDAP</a></li> <li><a href="/wiki/MGCP" title="MGCP">MGCP</a></li> <li><a href="/wiki/MQTT" title="MQTT">MQTT</a></li> <li><a href="/wiki/Network_News_Transfer_Protocol" title="Network News Transfer Protocol">NNTP</a></li> <li><a href="/wiki/Network_Time_Protocol" title="Network Time Protocol">NTP</a></li> <li><a href="/wiki/Simple_Network_Time_Protocol" title="Simple Network Time Protocol">SNTP</a></li> <li><a href="/wiki/Time_Protocol" title="Time Protocol">TIME</a></li> <li><a href="/wiki/Post_Office_Protocol" title="Post Office Protocol">POP</a></li> <li><a href="/wiki/Routing_Information_Protocol" title="Routing Information Protocol">RIP</a></li> <li><a href="/wiki/Open_Shortest_Path_First" title="Open Shortest Path First">OSPF</a></li> <li><a href="/wiki/Open_Network_Computing_Remote_Procedure_Call" title="Open Network Computing Remote Procedure Call">ONC RPC</a></li> <li><a href="/wiki/Real-time_Transport_Protocol" title="Real-time Transport Protocol">RTP</a></li> <li><a href="/wiki/Session_Initiation_Protocol" title="Session Initiation Protocol">SIP</a></li> <li><a href="/wiki/Simple_Mail_Transfer_Protocol" title="Simple Mail Transfer Protocol">SMTP</a></li> <li><a href="/wiki/Simple_Network_Management_Protocol" title="Simple Network Management Protocol">SNMP</a></li> <li><a href="/wiki/Secure_Shell" title="Secure Shell">SSH</a></li> <li><a href="/wiki/Telnet" title="Telnet">Telnet</a></li> <li><a href="/wiki/Trivial_File_Transfer_Protocol" title="Trivial File Transfer Protocol">TFTP</a></li> <li><a href="/wiki/Transport_Layer_Security" title="Transport Layer Security">TLS/SSL</a></li> <li><a href="/wiki/Extensible_Messaging_and_Presence_Protocol" title="Extensible Messaging and Presence Protocol">XMPP</a></li></ul> <a href="/wiki/Category:%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E5%B1%A4%E3%83%97%E3%83%AD%E3%83%88%E3%82%B3%E3%83%AB" title="Category:アプリケーション層プロトコル">カテゴリ</a></td> </tr><tr><th class="sidebar-heading" style="background-color:#cfc;"> <a href="/wiki/%E3%83%88%E3%83%A9%E3%83%B3%E3%82%B9%E3%83%9D%E3%83%BC%E3%83%88%E5%B1%A4" title="トランスポート層">トランスポート層</a></th></tr><tr><td class="sidebar-content hlist"> <ul><li><a class="mw-selflink selflink">TCP</a></li> <li><a href="/wiki/User_Datagram_Protocol" title="User Datagram Protocol">UDP</a></li> <li><a href="/wiki/Datagram_Congestion_Control_Protocol" title="Datagram Congestion Control Protocol">DCCP</a></li> <li><a href="/wiki/Stream_Control_Transmission_Protocol" title="Stream Control Transmission Protocol">SCTP</a></li> <li><a href="/wiki/Resource_Reservation_Protocol" title="Resource Reservation Protocol">RSVP</a></li> <li><a href="/wiki/QUIC" title="QUIC">QUIC</a></li></ul> <a href="/wiki/Category:%E3%83%88%E3%83%A9%E3%83%B3%E3%82%B9%E3%83%9D%E3%83%BC%E3%83%88%E5%B1%A4%E3%83%97%E3%83%AD%E3%83%88%E3%82%B3%E3%83%AB" title="Category:トランスポート層プロトコル">カテゴリ</a></td> </tr><tr><th class="sidebar-heading" style="background-color:#cfc;"> <a href="/wiki/%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%8D%E3%83%83%E3%83%88%E5%B1%A4" title="インターネット層">インターネット層</a></th></tr><tr><td class="sidebar-content hlist"> <ul><li><a href="/wiki/Internet_Protocol" title="Internet Protocol">IP</a> <ul><li><a href="/wiki/IPv4" title="IPv4">IPv4</a></li> <li><a href="/wiki/IPv6" title="IPv6">IPv6</a></li></ul></li> <li><a href="/wiki/Internet_Control_Message_Protocol" title="Internet Control Message Protocol">ICMP</a></li> <li><a href="/wiki/Internet_Control_Message_Protocol_for_IPv6" title="Internet Control Message Protocol for IPv6">ICMPv6</a></li> <li><a href="/wiki/%E8%BF%91%E9%9A%A3%E6%8E%A2%E7%B4%A2%E3%83%97%E3%83%AD%E3%83%88%E3%82%B3%E3%83%AB" title="近隣探索プロトコル">NDP</a></li> <li><a href="/wiki/Internet_Group_Management_Protocol" title="Internet Group Management Protocol">IGMP</a></li> <li><a href="/wiki/IPsec" title="IPsec">IPsec</a></li></ul> <a href="/wiki/Category:%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%8D%E3%83%83%E3%83%88%E5%B1%A4%E3%83%97%E3%83%AD%E3%83%88%E3%82%B3%E3%83%AB" title="Category:インターネット層プロトコル">カテゴリ</a></td> </tr><tr><th class="sidebar-heading" style="background-color:#cfc;"> <a href="/wiki/%E3%83%AA%E3%83%B3%E3%82%AF%E5%B1%A4" title="リンク層">リンク層</a></th></tr><tr><td class="sidebar-content hlist"> <ul><li><a href="/wiki/Address_Resolution_Protocol" title="Address Resolution Protocol">ARP</a></li> <li><a href="/wiki/IEEE_802.1aq" title="IEEE 802.1aq">SPB</a></li> <li><a href="/wiki/%E3%83%88%E3%83%B3%E3%83%8D%E3%83%AA%E3%83%B3%E3%82%B0" title="トンネリング">トンネリング</a> <ul><li><a href="/wiki/Layer_2_Tunneling_Protocol" title="Layer 2 Tunneling Protocol">L2TP</a></li></ul></li> <li><a href="/wiki/Point-to-Point_Protocol" title="Point-to-Point Protocol">PPP</a></li> <li><a href="/wiki/%E5%AA%92%E4%BD%93%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E5%88%B6%E5%BE%A1" title="媒体アクセス制御">MAC</a> <ul><li><a href="/wiki/%E3%82%A4%E3%83%BC%E3%82%B5%E3%83%8D%E3%83%83%E3%83%88" title="イーサネット">イーサネット</a></li> <li><a href="/wiki/IEEE_802.11" title="IEEE 802.11">IEEE 802.11</a></li> <li><a href="/wiki/%E3%83%87%E3%82%B8%E3%82%BF%E3%83%AB%E5%8A%A0%E5%85%A5%E8%80%85%E7%B7%9A" title="デジタル加入者線">DSL</a></li> <li><a href="/wiki/ISDN" title="ISDN">ISDN</a></li></ul></li></ul> <a href="/wiki/Category:%E3%83%AA%E3%83%B3%E3%82%AF%E5%B1%A4%E3%83%97%E3%83%AD%E3%83%88%E3%82%B3%E3%83%AB" title="Category:リンク層プロトコル">カテゴリ</a></td> </tr><tr><td class="sidebar-navbar"><style data-mw-deduplicate="TemplateStyles:r99966302">.mw-parser-output .hlist ul,.mw-parser-output .hlist ol{padding-left:0}.mw-parser-output .hlist li,.mw-parser-output .hlist dd,.mw-parser-output .hlist dt{margin-right:0;display:inline-block;white-space:nowrap}.mw-parser-output .hlist dt:after,.mw-parser-output .hlist dd:after,.mw-parser-output .hlist li:after{white-space:normal}.mw-parser-output .hlist li:after,.mw-parser-output .hlist dd:after{content:" ·\a0 ";font-weight:bold}.mw-parser-output .hlist dt:after{content:": "}.mw-parser-output .hlist-pipe dd:after,.mw-parser-output .hlist-pipe li:after{content:" |\a0 ";font-weight:normal}.mw-parser-output .hlist-hyphen dd:after,.mw-parser-output .hlist-hyphen li:after{content:" -\a0 ";font-weight:normal}.mw-parser-output .hlist-comma dd:after,.mw-parser-output .hlist-comma li:after{content:"、";font-weight:normal}.mw-parser-output .hlist-slash dd:after,.mw-parser-output .hlist-slash li:after{content:" /\a0 ";font-weight:normal}.mw-parser-output .hlist dd:last-child:after,.mw-parser-output .hlist dt:last-child:after,.mw-parser-output .hlist li:last-child:after{content:none}.mw-parser-output .hlist dd dd:first-child:before,.mw-parser-output .hlist dd dt:first-child:before,.mw-parser-output .hlist dd li:first-child:before,.mw-parser-output .hlist dt dd:first-child:before,.mw-parser-output .hlist dt dt:first-child:before,.mw-parser-output .hlist dt li:first-child:before,.mw-parser-output .hlist li dd:first-child:before,.mw-parser-output .hlist li dt:first-child:before,.mw-parser-output .hlist li li:first-child:before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child:after,.mw-parser-output .hlist dd dt:last-child:after,.mw-parser-output .hlist dd li:last-child:after,.mw-parser-output .hlist dt dd:last-child:after,.mw-parser-output .hlist dt dt:last-child:after,.mw-parser-output .hlist dt li:last-child:after,.mw-parser-output .hlist li dd:last-child:after,.mw-parser-output .hlist li dt:last-child:after,.mw-parser-output .hlist li li:last-child:after{content:")\a0 ";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li:before{content:" "counter(listitem)" ";white-space:nowrap}.mw-parser-output .hlist dd ol>li:first-child:before,.mw-parser-output .hlist dt ol>li:first-child:before,.mw-parser-output .hlist li ol>li:first-child:before{content:" ("counter(listitem)" "}</style><style data-mw-deduplicate="TemplateStyles:r96787822">.mw-parser-output .navbar{display:inline;font-size:75%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}.mw-parser-output .infobox .navbar{font-size:88%}.mw-parser-output .navbox .navbar{display:block;font-size:88%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}</style><div class="navbar plainlinks hlist navbar-mini"><ul><li class="nv-view"><a href="/wiki/Template:IPstack" title="Template:IPstack"><abbr title="参照先のページを表示します。">表</abbr></a></li><li class="nv-talk"><a href="/wiki/Template%E2%80%90%E3%83%8E%E3%83%BC%E3%83%88:IPstack" title="Template‐ノート:IPstack"><abbr title="参照先のノートを表示します。">話</abbr></a></li><li class="nv-edit"><a class="external text" href="https://ja.wikipedia.org/w/index.php?title=Template:IPstack&action=edit"><abbr title="参照先のページを編集します。">編</abbr></a></li><li class="nv-hist"><a class="external text" href="https://ja.wikipedia.org/w/index.php?title=Template:IPstack&action=history"><abbr title="参照先のページの履歴を表示します。">歴</abbr></a></li></ul></div></td></tr></tbody></table> <p><b>Transmission Control Protocol</b>(トランスミッション コントロール プロトコル、<b>TCP</b>)は<a href="/wiki/Internet_Protocol" title="Internet Protocol">IP</a><a href="/wiki/%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF" title="コンピュータネットワーク">ネットワーク</a>上のアプリ間・コネクション型・高信頼性・ストリーム指向の<a href="/wiki/%E9%80%9A%E4%BF%A1%E3%83%97%E3%83%AD%E3%83%88%E3%82%B3%E3%83%AB" title="通信プロトコル">通信プロトコル</a>である<sup id="cite_ref-:02_1-0" class="reference"><a href="#cite_note-:02-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup>。伝送制御プロトコルとも呼ばれる。 </p> <meta property="mw:PageProp/toc" /> <div class="mw-heading mw-heading2"><h2 id="概要"><span id=".E6.A6.82.E8.A6.81"></span>概要</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Transmission_Control_Protocol&action=edit&section=1" title="節を編集: 概要"><span>編集</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>TCPは<a href="/wiki/%E9%80%9A%E4%BF%A1%E3%83%97%E3%83%AD%E3%83%88%E3%82%B3%E3%83%AB" title="通信プロトコル">通信プロトコル</a>である。TCPではポート、ソケット、コネクションの概念が導入され、<a href="/wiki/Internet_Protocol" title="Internet Protocol">IP</a><a href="/wiki/%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF" title="コンピュータネットワーク">ネットワーク</a>のホスト上にあるアプリケーション同士がコネクションを通じて通信する。確立されたコネクションはTCPが定める制御機構によって到着が保証され、破壊が検出され、流量や輻輳が制御されており、これを通信路としてバイトストリームが伝達される<sup id="cite_ref-:02_1-1" class="reference"><a href="#cite_note-:02-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup>。 </p><p>TCPを用いることで<a href="/wiki/%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%8D%E3%83%83%E3%83%88" title="インターネット">インターネット</a>における到達保証付きアプリケーション間メッセージ通信が可能になるため、ファイル転送、<a href="/wiki/%E9%9B%BB%E5%AD%90%E3%83%A1%E3%83%BC%E3%83%AB" title="電子メール">電子メール</a>、<a href="/wiki/World_Wide_Web" title="World Wide Web">World Wide Web</a>、<span title="リンク先の項目はまだありません。新規の執筆や他言語版からの翻訳が望まれます。"><a href="/w/index.php?title=%E3%83%AA%E3%83%A2%E3%83%BC%E3%83%88%E7%AE%A1%E7%90%86&action=edit&redlink=1" class="new" title="「リモート管理」 (存在しないページ)">リモート管理</a><span style="font-size: 0.77em; font-weight: normal;" class="noprint">(<a href="https://en.wikipedia.org/wiki/remote_administration" class="extiw" title="en:remote administration">英語版</a>)</span></span>など様々な<a href="/wiki/%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%8D%E3%83%83%E3%83%88" title="インターネット">インターネット</a>・アプリケーションで利用される。上位プロトコルには<a href="/wiki/Hypertext_Transfer_Protocol" title="Hypertext Transfer Protocol">HTTP</a>、<a href="/wiki/File_Transfer_Protocol" title="File Transfer Protocol">FTP</a>、<a href="/wiki/Telnet" title="Telnet">Telnet</a>、<a href="/wiki/Secure_Shell" title="Secure Shell">SSH</a>などがある。 </p><p>TCPは<a href="/wiki/%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%8D%E3%83%83%E3%83%88%E3%83%BB%E3%83%97%E3%83%AD%E3%83%88%E3%82%B3%E3%83%AB%E3%83%BB%E3%82%B9%E3%82%A4%E3%83%BC%E3%83%88" title="インターネット・プロトコル・スイート">インターネット・プロトコル・スイート</a>を構成し、<a href="/wiki/Internet_Protocol" title="Internet Protocol">Internet Protocol</a>の上位プロトコルとして使われる。また<a href="/wiki/OSI%E5%8F%82%E7%85%A7%E3%83%A2%E3%83%87%E3%83%AB" title="OSI参照モデル">OSI参照モデル</a>に当てはめるなら<a href="/wiki/%E3%83%88%E3%83%A9%E3%83%B3%E3%82%B9%E3%83%9D%E3%83%BC%E3%83%88%E5%B1%A4" title="トランスポート層">トランスポート層</a>にあたる。その仕様は<a href="/wiki/Internet_Engineering_Task_Force" title="Internet Engineering Task Force">IETF</a>により<style data-mw-deduplicate="TemplateStyles:r101121245">.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation.cs-ja1 q,.mw-parser-output .citation.cs-ja2 q{quotes:"「""」""『""』"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free a,.mw-parser-output .citation .cs1-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 a,.mw-parser-output .id-lock-registration a,.mw-parser-output .citation .cs1-lock-limited a,.mw-parser-output .citation .cs1-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 a,.mw-parser-output .citation .cs1-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}.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:var(--color-success,#3a3);margin-left:0.3em}.mw-parser-output .cs1-format{font-size:95%}.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}</style><a href="/wiki/Request_for_Comments" title="Request for Comments">RFC</a> <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc9293">9293</a> (STD 7) として標準化されている。なお、IPヘッダでの<a href="/wiki/%E3%83%97%E3%83%AD%E3%83%88%E3%82%B3%E3%83%AB%E7%95%AA%E5%8F%B7" class="mw-redirect" title="プロトコル番号">プロトコル番号</a>は6である。 </p><p>対比されるプロトコルに<a href="/wiki/User_Datagram_Protocol" title="User Datagram Protocol">User Datagram Protocol</a> (UDP) がある。UDPは信頼性よりもシンプルさ・低<a href="/wiki/%E3%83%AC%E3%82%A4%E3%83%86%E3%83%B3%E3%82%B7" title="レイテンシ">レイテンシ</a>を重視した<a href="/wiki/%E3%83%87%E3%83%BC%E3%82%BF%E3%82%B0%E3%83%A9%E3%83%A0" title="データグラム">データグラム</a>通信を提供する。TCPはより信頼性が高くその分オーバーヘッドがある。 </p> <div class="mw-heading mw-heading2"><h2 id="起源"><span id=".E8.B5.B7.E6.BA.90"></span>起源</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Transmission_Control_Protocol&action=edit&section=2" title="節を編集: 起源"><span>編集</span></a><span class="mw-editsection-bracket">]</span></span></div> <p><a href="/wiki/1974%E5%B9%B4" title="1974年">1974年</a>5月、Institute of Electrical and Electronic Engineers (<a href="/wiki/IEEE" title="IEEE">IEEE</a>) が "<i>A Protocol for Packet Network Interconnection</i>" と題した論文を出版<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>。著者は<a href="/wiki/%E3%83%B4%E3%82%A3%E3%83%B3%E3%83%88%E3%83%B3%E3%83%BB%E3%82%B5%E3%83%BC%E3%83%95" title="ヴィントン・サーフ">ヴィントン・サーフ</a>と<a href="/wiki/%E3%83%AD%E3%83%90%E3%83%BC%E3%83%88%E3%83%BB%E3%82%AB%E3%83%BC%E3%83%B3" title="ロバート・カーン">ロバート・カーン</a>で、ノード間で<a href="/wiki/%E3%83%91%E3%82%B1%E3%83%83%E3%83%88%E9%80%9A%E4%BF%A1" title="パケット通信">パケット通信</a>を使い資源を共有する<a href="/wiki/%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AD%E3%83%B3%E3%82%B0" title="インターネットワーキング">インターネットワーキング</a>のプロトコルを記述したものである。このモデルでの中核制御コンポーネントが <i>Transmission Control Program</i> で、ホスト間のコネクション指向のリンクと<a href="/wiki/%E3%83%87%E3%83%BC%E3%82%BF%E3%82%B0%E3%83%A9%E3%83%A0" title="データグラム">データグラム</a>サービスの両方を含んでいた。当初一体だった Transmission Control Program は後に<a href="/wiki/%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E5%8C%96" class="mw-redirect" title="モジュール化">モジュール化</a>されたアーキテクチャに分割され、コネクション指向部分の <i>Transmission Control Protocol</i> とデータグラムサービス部分の <i>Internet Protocol</i> に分けられた。このモデルを一般に TCP/IP と呼ぶが、公式には<a href="/wiki/%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%8D%E3%83%83%E3%83%88%E3%83%BB%E3%83%97%E3%83%AD%E3%83%88%E3%82%B3%E3%83%AB%E3%83%BB%E3%82%B9%E3%82%A4%E3%83%BC%E3%83%88" title="インターネット・プロトコル・スイート">インターネット・プロトコル・スイート</a>と呼ぶようになった。 </p> <div class="mw-heading mw-heading2"><h2 id="機能"><span id=".E6.A9.9F.E8.83.BD"></span>機能</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Transmission_Control_Protocol&action=edit&section=3" title="節を編集: 機能"><span>編集</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>TCPは<a href="/wiki/Internet_Protocol" title="Internet Protocol">IP</a>ネットワーク上で利用され以下の機能を提供する。これらの機能を実現する機構は<a class="mw-selflink-fragment" href="#プロトコル操作">#プロトコル操作</a>を参照。 </p> <div class="mw-heading mw-heading3"><h3 id="アプリケーション間通信"><span id=".E3.82.A2.E3.83.97.E3.83.AA.E3.82.B1.E3.83.BC.E3.82.B7.E3.83.A7.E3.83.B3.E9.96.93.E9.80.9A.E4.BF.A1"></span>アプリケーション間通信</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Transmission_Control_Protocol&action=edit&section=4" title="節を編集: アプリケーション間通信"><span>編集</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>IPはホスト間通信を可能にするが、そのままだとホストへの全信号を1つのアプリケーションのみが受け取る。TCPはポート機能を提供することで、1ホスト内複数アプリケーションへの通信振り分けを可能にする<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>。すなわちアプリケーション間通信を提供する。 </p> <div class="mw-heading mw-heading3"><h3 id="到達保証"><span id=".E5.88.B0.E9.81.94.E4.BF.9D.E8.A8.BC"></span>到達保証</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Transmission_Control_Protocol&action=edit&section=5" title="節を編集: 到達保証"><span>編集</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>IPはパケットの送出を可能にするがパケットの到達を保証しない。TCPは到達確認とデータ再送要求を提供することで、送出されたセグメントが宛先へ到達することを保証する<sup id="cite_ref-comer_4-0" class="reference"><a href="#cite_note-comer-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup>。 </p> <div class="mw-heading mw-heading3"><h3 id="ストリーム送信"><span id=".E3.82.B9.E3.83.88.E3.83.AA.E3.83.BC.E3.83.A0.E9.80.81.E4.BF.A1"></span>ストリーム送信</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Transmission_Control_Protocol&action=edit&section=6" title="節を編集: ストリーム送信"><span>編集</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>IPは独立したパケットを送信するため、パケット間の関係性を扱わない。TCPはバイトストリーム入出力機能を提供することで<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>、実用されるIPパケットサイズを超えた、ファイルやデータストリームの送信を可能にする。 </p> <div class="mw-heading mw-heading4"><h4 id="順序制御"><span id=".E9.A0.86.E5.BA.8F.E5.88.B6.E5.BE.A1"></span>順序制御</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Transmission_Control_Protocol&action=edit&section=7" title="節を編集: 順序制御"><span>編集</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>ネットワークの輻輳や負荷分散、その他ネットワークの予測できない振る舞いにより、IP<a href="/wiki/%E3%83%91%E3%82%B1%E3%83%83%E3%83%88" title="パケット">パケット</a>は遅延し順序がばらばらに届きうる。ストリームをパケットに分割して送出しそれを到着順に再構成した場合、元のストリームを復元できる保証がない。TCPは順序制御を提供することで、パケット群からストリームを再構築できることを保証する。 </p> <div class="mw-heading mw-heading3"><h3 id="コネクション型通信"><span id=".E3.82.B3.E3.83.8D.E3.82.AF.E3.82.B7.E3.83.A7.E3.83.B3.E5.9E.8B.E9.80.9A.E4.BF.A1"></span>コネクション型通信</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Transmission_Control_Protocol&action=edit&section=8" title="節を編集: コネクション型通信"><span>編集</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>IPは疎通の確認なくパケットを送信するため、コネクション(<a href="/wiki/%E4%BB%AE%E6%83%B3%E5%9B%9E%E7%B7%9A" title="仮想回線">仮想回線</a>)の概念を持たない。TCPはソケット対に基づくコネクションを定義することでコネクション型通信を提供する。ストリーム送信や各種制御はコネクション単位で管理されるため、単一のアプリケーションが複数のコネクション(宛先アプリケーション)を独立して扱えるようになる。 </p> <div class="mw-heading mw-heading4"><h4 id="流量制御"><span id=".E6.B5.81.E9.87.8F.E5.88.B6.E5.BE.A1"></span>流量制御</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Transmission_Control_Protocol&action=edit&section=9" title="節を編集: 流量制御"><span>編集</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>通信先にとって過剰量のデータがコネクションへ流れ込まないよう、TCPは流量制御を提供する。 </p> <div class="mw-heading mw-heading4"><h4 id="輻輳制御"><span id=".E8.BC.BB.E8.BC.B3.E5.88.B6.E5.BE.A1"></span>輻輳制御</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Transmission_Control_Protocol&action=edit&section=10" title="節を編集: 輻輳制御"><span>編集</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>IPネットワークへ無秩序にパケットが送出されるとネットワークの混雑(<a href="/wiki/%E8%BC%BB%E8%BC%B3" title="輻輳">輻輳</a>)を引き起こす。TCPはそれらの問題を検出し、ネットワークの混雑が起きにくくなるよう制御して他の問題が発生する可能性を低くする。 </p> <div class="mw-heading mw-heading2"><h2 id="特性"><span id=".E7.89.B9.E6.80.A7"></span>特性</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Transmission_Control_Protocol&action=edit&section=11" title="節を編集: 特性"><span>編集</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>TCPは高速さよりも完全性に重きを置く(高信頼ストリーム配送サービス)。ゆえにパケットの到達が保証され、データを正しく並べかえることができる。その反面、メッセージの順序がばらばらだったり、喪失したメッセージの再送を待ったりすることがあると、秒のオーダーの比較的長い遅延が生じることがある。よってリアルタイム性を要求されないが、1ビットの誤りも許されないファイル転送などの用途が主である。TCPは完全性よりもリアルタイム性を求められる<a href="/wiki/VoIP" title="VoIP">VoIP</a>などのアプリケーションには向いていない(多少のパケットの欠損には耐えうるため完全性は多少は緩めても良い)。そのような用途には一般に <a href="/wiki/User_Datagram_Protocol" title="User Datagram Protocol">User Datagram Protocol</a> (UDP) 上の <a href="/wiki/Real-time_Transport_Protocol" title="Real-time Transport Protocol">Real-time Transport Protocol</a> (RTP) などのプロトコルが推奨される<sup id="cite_ref-comer_4-1" class="reference"><a href="#cite_note-comer-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup>。 </p> <div class="mw-heading mw-heading2"><h2 id="利用"><span id=".E5.88.A9.E7.94.A8"></span>利用</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Transmission_Control_Protocol&action=edit&section=12" title="節を編集: 利用"><span>編集</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>TCPの利用例として<a href="/wiki/World_Wide_Web" title="World Wide Web">World Wide Web (WWW)</a>、<a href="/wiki/%E9%9B%BB%E5%AD%90%E3%83%A1%E3%83%BC%E3%83%AB" title="電子メール">電子メール</a>、<a href="/wiki/File_Transfer_Protocol" title="File Transfer Protocol">File Transfer Protocol</a>、<a href="/wiki/Secure_Shell" title="Secure Shell">Secure Shell</a>、<a href="/wiki/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E5%85%B1%E6%9C%89%E3%82%BD%E3%83%95%E3%83%88" title="ファイル共有ソフト">ファイル共有</a>、一部の<a href="/wiki/%E3%82%B9%E3%83%88%E3%83%AA%E3%83%BC%E3%83%9F%E3%83%B3%E3%82%B0" title="ストリーミング">ストリーミング</a>が挙げられる。 </p> <div class="mw-heading mw-heading2"><h2 id="TCPセグメント構造"><span id="TCP.E3.82.BB.E3.82.B0.E3.83.A1.E3.83.B3.E3.83.88.E6.A7.8B.E9.80.A0"></span>TCPセグメント構造</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Transmission_Control_Protocol&action=edit&section=13" title="節を編集: TCPセグメント構造"><span>編集</span></a><span class="mw-editsection-bracket">]</span></span></div> <p><b>TCPセグメント</b>(<a href="/wiki/%E8%8B%B1%E8%AA%9E" title="英語">英</a>: <span lang="en">TCP segment</span>)はTCPにおける送受信単位である<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>。 </p><p>TCPは上位から受け取ったデータを分割し、それにTCPヘッダを付与してTCPセグメントを作成する。TCPセグメントはさらに <a href="/wiki/Internet_Protocol" title="Internet Protocol">Internet Protocol</a> (IP) データグラムに<a href="/wiki/%E3%82%AB%E3%83%97%E3%82%BB%E3%83%AB%E5%8C%96_(%E9%80%9A%E4%BF%A1)" title="カプセル化 (通信)">カプセル化</a>される。TCPセグメントは「データを相手と交換するためにTCPが使う情報の束」である<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>。 </p><p>なお、非公式に「TCPパケット」という用語が使われることがあるが、最近の用法では TCP PDU (<a href="/wiki/Protocol_Data_Unit" title="Protocol Data Unit">Protocol Data Unit</a>) は「セグメント」、IP PDU は「<a href="/wiki/%E3%83%87%E3%83%BC%E3%82%BF%E3%82%B0%E3%83%A9%E3%83%A0" title="データグラム">データグラム</a>」<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>、<a href="/wiki/%E3%83%87%E3%83%BC%E3%82%BF%E3%83%AA%E3%83%B3%E3%82%AF%E5%B1%A4" title="データリンク層">データリンク層</a>のPDUは「フレーム」と呼ぶのが一般的である。 </p> <blockquote> <p>プロセスはTCPを呼び出し、データを格納したバッファを引数で渡すことでデータを送信する。TCPはそれらのバッファ内のデータをセグメント群にパッケージし、インターネット・モジュール(例えばIP)を呼び出すことで宛先のTCPへ各セグメントを送信する。<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> </blockquote> <p>TCPセグメントは、セグメント・ヘッダとデータ部分から成る。TCPヘッダは10の必須フィールドとオプションの拡張フィールドを含む(テーブルではオプション部分をオレンジで示している)。 </p><p>データ部はヘッダ部の後に続いている。その内容はアプリケーションに渡すべきデータである。データ部の長さはTCPセグメントのヘッダには記されておらず、IPヘッダにあるIPデータグラム長からIPヘッダとTCPヘッダの長さを差し引いて計算できる。 </p> <table class="wikitable" style="text-align:center"> <caption>TCPヘッダ </caption> <tbody><tr> <th style="border-bottom:none; border-right:none;"><i>オフセット</i> </th> <th style="border-left:none;"><a href="/wiki/%E3%82%AA%E3%82%AF%E3%83%86%E3%83%83%E3%83%88_(%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF)" title="オクテット (コンピュータ)">オクテット</a> </th> <th colspan="8">0 </th> <th colspan="8">1 </th> <th colspan="8">2 </th> <th colspan="8">3 </th></tr> <tr> <th style="border-top: none">オクテット </th> <th><tt><a href="/wiki/%E3%83%93%E3%83%83%E3%83%88" title="ビット">ビット</a></tt></th> <th><tt style="font-size:7.5pt; line-height:1"> 0</tt></th> <th><tt style="font-size:7.5pt; line-height:1"> 1</tt></th> <th><tt style="font-size:7.5pt; line-height:1"> 2</tt></th> <th><tt style="font-size:7.5pt; line-height:1"> 3</tt></th> <th><tt style="font-size:7.5pt; line-height:1"> 4</tt></th> <th><tt style="font-size:7.5pt; line-height:1"> 5</tt></th> <th><tt style="font-size:7.5pt; line-height:1"> 6</tt></th> <th><tt style="font-size:7.5pt; line-height:1"> 7</tt></th> <th><tt style="font-size:7.5pt; line-height:1"> 8</tt></th> <th><tt style="font-size:7.5pt; line-height:1"> 9</tt></th> <th><tt style="font-size:7.5pt; line-height:1">10</tt></th> <th><tt style="font-size:7.5pt; line-height:1">11</tt></th> <th><tt style="font-size:7.5pt; line-height:1">12</tt></th> <th><tt style="font-size:7.5pt; line-height:1">13</tt></th> <th><tt style="font-size:7.5pt; line-height:1">14</tt></th> <th><tt style="font-size:7.5pt; line-height:1;">15</tt></th> <th><tt style="font-size:7.5pt; line-height:1">16</tt></th> <th><tt style="font-size:7.5pt; line-height:1">17</tt></th> <th><tt style="font-size:7.5pt; line-height:1">18</tt></th> <th><tt style="font-size:7.5pt; line-height:1">19</tt></th> <th><tt style="font-size:7.5pt; line-height:1">20</tt></th> <th><tt style="font-size:7.5pt; line-height:1">21</tt></th> <th><tt style="font-size:7.5pt; line-height:1">22</tt></th> <th><tt style="font-size:7.5pt; line-height:1">23</tt></th> <th><tt style="font-size:7.5pt; line-height:1">24</tt></th> <th><tt style="font-size:7.5pt; line-height:1">25</tt></th> <th><tt style="font-size:7.5pt; line-height:1">26</tt></th> <th><tt style="font-size:7.5pt; line-height:1">27</tt></th> <th><tt style="font-size:7.5pt; line-height:1">28</tt></th> <th><tt style="font-size:7.5pt; line-height:1">29</tt></th> <th><tt style="font-size:7.5pt; line-height:1">30</tt></th> <th><tt style="font-size:7.5pt; line-height:1">31</tt> </th></tr> <tr> <th>0 </th> <th><tt>  0</tt> </th> <td colspan="16">送信元ポート</td> <td colspan="16">送信先ポート </td></tr> <tr> <th>4 </th> <th><tt> 32</tt> </th> <td colspan="32">シーケンス番号 </td></tr> <tr> <th>8 </th> <th><tt> 64</tt> </th> <td colspan="32">確認応答番号(<tt>ACK</tt> がセットされている場合) </td></tr> <tr> <th>12 </th> <th><tt> 96</tt> </th> <td colspan="4">ヘッダ長</td> <td colspan="3">予約<br /><tt style="font-size:8pt; line-height:1"><b>0 0 0</b></tt></td> <td colspan="1"><tt style="font-size:8pt; line-height:1">N<br />S</tt></td> <td colspan="1"><tt style="font-size:8pt; line-height:1">C<br />W<br />R</tt></td> <td colspan="1"><tt style="font-size:8pt; line-height:1">E<br />C<br />E</tt></td> <td colspan="1"><tt style="font-size:8pt; line-height:1">U<br />R<br />G</tt></td> <td colspan="1"><tt style="font-size:8pt; line-height:1">A<br />C<br />K</tt></td> <td colspan="1"><tt style="font-size:8pt; line-height:1">P<br />S<br />H</tt></td> <td colspan="1"><tt style="font-size:8pt; line-height:1">R<br />S<br />T</tt></td> <td colspan="1"><tt style="font-size:8pt; line-height:1">S<br />Y<br />N</tt></td> <td colspan="1"><tt style="font-size:8pt; line-height:1">F<br />I<br />N</tt></td> <td colspan="16">ウィンドウサイズ </td></tr> <tr> <th>16 </th> <th><tt>128</tt> </th> <td colspan="16">チェックサム</td> <td colspan="16">緊急ポインタ(<tt>URG</tt>がセットされている場合) </td></tr> <tr> <th>20<br />... </th> <th><tt>160<br />...</tt> </th> <td colspan="32" bgcolor="#FFCC88">オプション(ヘッダ長が5より大きければ、必要に応じて最後まで0でパディングする)<br />... </td></tr></tbody></table> <ul><li>送信元<a href="/wiki/%E3%83%9D%E3%83%BC%E3%83%88_(%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF)" title="ポート (コンピュータネットワーク)">ポート</a>(16ビット) – 送信側のポート番号</li> <li>送信先ポート(16ビット) – 受信側のポート番号</li> <li>シーケンス番号(32ビット) – 2つの役割がある。 <ul><li><tt>SYN</tt>フラグがセットされている場合 (1)、初期シーケンス番号である。実際の先頭データバイトのシーケンス番号と対応する確認応答の確認応答番号は、このシーケンス番号に1を加えた値になる。</li> <li><tt>SYN</tt>フラグがセットされていない場合 (0)、このセッションにおけるこのパケットの先頭データバイトの累積シーケンス番号である。</li></ul></li> <li>確認応答番号(32ビット) – <tt>ACK</tt>フラグがセットされている場合、受信側が期待する次のシーケンス番号を格納している。(もしあれば)それまでの全バイト列の受信を確認済みであることを示す。最初に互いに<tt>ACK</tt>を送る際は、相手側の初期シーケンス番号を確認するだけで、データは含めない。</li> <li>ヘッダ長(4ビット) – TCPヘッダのサイズを32ビットワード単位で表す。ヘッダの最小サイズは5ワードで、最大サイズは15ワードである。すなわち、ヘッダ部は20バイトから60バイトまでの大きさであり、21バイトめからの40バイトはオプションとなる。TCPセグメント内の実際にデータが始まる位置を示すことにもなるため、データオフセットとも呼ぶ。</li> <li>予約(3ビット) – 将来の利用のために予約されたビット列であり、常に 0 をセットする。</li> <li>フラグあるいは制御ビット列(9ビット) – 9個の1ビットのフラグがある。 <ul><li><tt>NS</tt>(1ビット) – ECN-nonce 輻輳保護(<link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r101121245"><a href="/wiki/Request_for_Comments" title="Request for Comments">RFC</a> <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc3540">3540</a> でヘッダに追加)</li> <li><tt>CWR</tt>(1ビット) – 輻輳制御ウィンドウ縮小 (Congestion Window Reduced)。<tt>ECE</tt>フラグがセットされたTCPセグメントを受信した際、輻輳制御機構で応答するときにセットする。(<link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r101121245"><a href="/wiki/Request_for_Comments" title="Request for Comments">RFC</a> <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc3168">3168</a> でヘッダに追加)</li> <li><tt>ECE</tt>(1ビット) – ECN-Echo を示す。 <ul><li><tt>SYN</tt>フラグがセットされている場合 (1)、<span title="リンク先の項目はまだありません。新規の執筆や他言語版からの翻訳が望まれます。"><a href="/w/index.php?title=%E6%98%8E%E7%A4%BA%E7%9A%84%E8%BC%BB%E8%BC%B3%E9%80%9A%E7%9F%A5&action=edit&redlink=1" class="new" title="「明示的輻輳通知」 (存在しないページ)">ECN</a><span style="font-size: 0.77em; font-weight: normal;" class="noprint">(<a href="https://en.wikipedia.org/wiki/Explicit_Congestion_Notification" class="extiw" title="en:Explicit Congestion Notification">英語版</a>)</span></span>を利用可能であることを示す。</li> <li><tt>SYN</tt>フラグがセットされていない場合 (0)、通常送受信時にIPヘッダに Congestion Experienced フラグがセットされたパケットを受信したことを示す。(<link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r101121245"><a href="/wiki/Request_for_Comments" title="Request for Comments">RFC</a> <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc3168">3168</a> でヘッダに追加)</li></ul></li> <li><tt>URG</tt>(1ビット) – 緊急ポインタ・フィールドが有効であることを示す。</li> <li><tt>ACK</tt>(1ビット) – 確認応答番号フィールドが有効であることを示す。最初の<tt>SYN</tt>パケットを除く以降の全パケットでこのフラグをセットする。</li> <li><tt>PSH</tt>(1ビット) – プッシュ機能。バッファに蓄えたデータをアプリケーションにプッシュする(押しやる)ことを依頼する。</li> <li><tt>RST</tt>(1ビット) – コネクションをリセットする。</li> <li><tt>SYN</tt>(1ビット) – シーケンス番号の同期。通信する両方で最初のパケットだけ、このフラグをセットする。他のフラグはこのフラグの値によって意味が変化したり、このフラグの値によって有効/無効が決まる。</li> <li><tt>FIN</tt>(1ビット) – 送信終了を示す。</li></ul></li> <li>ウィンドウサイズ(16ビット) – 受信ウィンドウの大きさ。このセグメントの送信側がその時点(確認応答番号フィールドにあるシーケンス番号以降)で受信可能なバイト数を指定する。詳しくは<a href="#フロー制御">フロー制御</a>の節と<a href="#ウィンドウスケーリング">ウィンドウスケーリング</a>の節を参照。</li> <li>チェックサム(16ビット) – ヘッダおよびデータの誤り検出用の16ビット<a href="/wiki/%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF%E3%82%B5%E3%83%A0" title="チェックサム">チェックサム</a>。後述の<a href="#誤り検出">#誤り検出</a>と<a href="#チェックサムの計算">#チェックサムの計算</a>も参照。</li> <li>緊急ポインタ(16ビット) – <tt>URG</tt>フラグがセットされている場合、最新の緊急データバイトのシーケンス番号からのオフセットを示す。</li> <li>オプション(0から320ビットまで可変で、32ビット単位で変化する) – ヘッダ長フィールドによって、このフィールドの長さが決まる。個々のオプションは、オプション種別(1バイト)、オプション長(1バイト)、オプションデータ(可変)から成る。オプション種別フィールドはオプションの種類を示し、オプションとしては必ず存在するフィールドである。オプションの種類によって扱い方が違い、後続の2つのフィールドの有無も異なる。存在する場合、オプション長フィールドはそのオプションの全長が格納されており、オプションデータ・フィールドにはオプションに関わる値が格納されている。例えば、オプション種別が 0x01 の場合、No-Op オプションであることを意味し、オプション長やオプションデータは存在しない。オプション種別が0の場合、End Of Options オプションであることを意味し、この場合も1バイトだけである。オプション種別が 0x02 の場合、<a href="/wiki/%E6%9C%80%E5%A4%A7%E3%82%BB%E3%82%B0%E3%83%A1%E3%83%B3%E3%83%88%E3%82%B5%E3%82%A4%E3%82%BA" title="最大セグメントサイズ">最大セグメントサイズ</a> (MSS) オプションであることを意味し、その後ろに1バイトのMSSフィールド長を指定するフィールドがある(値は 0x04)。この長さはオプションの全長であるため、オプション種別フィールドとオプション長フィールドのぶんも含んでいる。従って、MSS値は通常2バイトで表され、オプション長は4(バイト)となる。例えば、MSS値が 0x05B4 なら、MSSオプション全体の値は (0x02 0x04 0x05B4) となる。</li> <li>パディング – TCPヘッダが32ビット境界で終わるようにするために使われる。パディングは常に0である<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>。</li></ul> <p>一部のオプションは<tt>SYN</tt>がセットされているときだけ送信される。それらは以下で <sup><tt style="color:#000; background-color:#CCC;">[SYN]</tt></sup> で示している。各行の先頭は「オプション種別[, オプション長, オプション値](全ビット数)」の形式で示す。 </p> <ul><li><ul><li>0(8ビット) - オプションリストの終了</li> <li>1(8ビット) - 何もしない(NOP、パディング)。オプション・フィールドを32ビット境界に揃えるのに使う。</li> <li>2,4,<i>SS</i>(32ビット) - 最大セグメント長(<a href="/wiki/%E6%9C%80%E5%A4%A7%E3%82%BB%E3%82%B0%E3%83%A1%E3%83%B3%E3%83%88%E3%82%B5%E3%82%A4%E3%82%BA" title="最大セグメントサイズ">最大セグメントサイズ</a> を参照) <sup><tt style="color:#000; background-color:#CCC;">[SYN]</tt></sup></li> <li>3,3,<i>S</i>(24ビット) - ウィンドウスケール(詳しくは<a href="#ウィンドウスケーリング">ウィンドウスケーリング</a>参照)<sup><tt style="color:#000; background-color:#CCC;">[SYN]</tt></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></li> <li>4,2(16ビット) - 選択確認応答が可能。<sup><tt style="color:#000; background-color:#CCC;">[SYN]</tt></sup> (<a href="#選択確認応答">選択確認応答</a>を参照)<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></li> <li>5,<i>N,BBBB,EEEE,...</i>(可変長、<i>N</i> は 10, 18, 26, 34 のいずれか) - 選択確認応答 (SACK)<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>。最初の2バイトの後に選択確認応答される1から4ブロックのリストを32ビットの開始/終了ポインタで示す。</li> <li>8,10,<i>TTTT,EEEE</i>(80ビット) - タイムスタンプと前のタイムスタンプのエコー(<a href="#TCPタイムスタンプ">TCPタイムスタンプ</a>を参照)<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></li> <li>14,3,<i>S</i>(24ビット) - チェックサム方式変更要求。<sup><tt style="color:#000; background-color:#CCC;">[SYN]</tt></sup><sup id="cite_ref-15" class="reference"><a href="#cite_note-15"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup></li> <li>15,<i>N,...</i>(可変長) - チェックサム方式が変更されて、そのチェックサムが16ビットより長い場合にこれでチェックサム値を示す。</li></ul></li></ul> <p>他のオプションは既に使われていないもの、実験的なもの、標準になっていないものなどである。 </p> <div class="mw-heading mw-heading2"><h2 id="プロトコル操作"><span id=".E3.83.97.E3.83.AD.E3.83.88.E3.82.B3.E3.83.AB.E6.93.8D.E4.BD.9C"></span>プロトコル操作</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Transmission_Control_Protocol&action=edit&section=14" title="節を編集: プロトコル操作"><span>編集</span></a><span class="mw-editsection-bracket">]</span></span></div> <figure class="mw-halign-right" typeof="mw:File/Thumb"><a href="/wiki/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Tcp_start.svg" class="mw-file-description"><img src="//upload.wikimedia.org/wikipedia/commons/thumb/2/27/Tcp_start.svg/250px-Tcp_start.svg.png" decoding="async" width="250" height="217" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/2/27/Tcp_start.svg/375px-Tcp_start.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/2/27/Tcp_start.svg/500px-Tcp_start.svg.png 2x" data-file-width="230" data-file-height="200" /></a><figcaption>3ウェイ・ハンドシェイクにおける典型的な状態遷移。遷移に使われる<a href="/wiki/%E3%82%BD%E3%82%B1%E3%83%83%E3%83%88_(BSD)" title="ソケット (BSD)">ソケット</a>呼び出しを付記した。</figcaption></figure> <figure class="mw-halign-right" typeof="mw:File/Thumb"><a href="/wiki/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Tcp_end.svg" class="mw-file-description"><img src="//upload.wikimedia.org/wikipedia/commons/thumb/5/5f/Tcp_end.svg/250px-Tcp_end.svg.png" decoding="async" width="250" height="270" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/5/5f/Tcp_end.svg/375px-Tcp_end.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/5/5f/Tcp_end.svg/500px-Tcp_end.svg.png 2x" data-file-width="250" data-file-height="270" /></a><figcaption>通信終了の際の、ソケットを閉じるまでの典型的な状態遷移。</figcaption></figure> <p>TCPプロトコル操作は3つのフェーズに分けられる。コネクションは多段階のハンドシェイクプロセスで正しく確立する必要があり(コネクション確立フェーズ)、その後「データ転送フェーズ」に入る。データ転送が完了したら「コネクション終了フェーズ」で仮想回線を閉じ、確保していたリソースを解放する。 </p><p>TCPコネクションは<a href="/wiki/%E3%82%AA%E3%83%9A%E3%83%AC%E3%83%BC%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0" title="オペレーティングシステム">オペレーティングシステム</a>が<a href="/wiki/%E3%82%BD%E3%82%B1%E3%83%83%E3%83%88_(BSD)" title="ソケット (BSD)">ソケット</a>というプログラミングインタフェースを通して管理する。TCPコネクションが存在する間、以下のような状態間で遷移する<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>。 </p> <ol><li>LISTENING : サーバの場合、任意のリモートクライアントからのコネクション要求を待ち受ける。</li> <li>SYN-SENT : SYNフラグとACKフラグをセットしたTCPセグメントを相手側が送ってくるのを待つ状態(通常、クライアント側)。</li> <li>SYN-RECEIVED : コネクション確立要求に対して確認応答を返した後、相手側が確認応答を返してくるのを待つ状態(通常、サーバ側)。</li> <li>ESTABLISHED : 相手側とコネクションが確立し、指定ポートでのデータの送受信が可能な状態。</li> <li>FIN-WAIT-1 : FINフラグをセットしたTCPセグメントを先に相手に送り、確認応答が返ってくるのを待つ状態。</li> <li>FIN-WAIT-2 : FINに対する確認応答を受け取り、相手からのFINを待つ状態。</li> <li>CLOSE-WAIT : 相手から先にFINを受け取り、アプリケーションがクローズ可能となるのを待つ状態。クローズ可能になったら相手にFINに対する確認応答を送る。</li> <li>LAST-ACK : FINセグメントを送って、その確認応答を待っている状態。</li> <li>TIME-WAIT : 「FIN-WAIT2」でFINセグメントを受信し、確認応答を返した状態。相手が確認応答を受信完了することを保証するため、十分な時間待つ。<link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r101121245"><a href="/wiki/Request_for_Comments" title="Request for Comments">RFC</a> <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc793">793</a> では最大4分間この状態でコネクションを保つことができるとされており、これをMSL (maximum segment lifetime) と呼ぶ。</li> <li>CLOSED : コネクションがクローズした状態。</li></ol> <div class="mw-heading mw-heading3"><h3 id="コネクション確立"><span id=".E3.82.B3.E3.83.8D.E3.82.AF.E3.82.B7.E3.83.A7.E3.83.B3.E7.A2.BA.E7.AB.8B"></span>コネクション確立</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Transmission_Control_Protocol&action=edit&section=15" title="節を編集: コネクション確立"><span>編集</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="rellink" style="margin-bottom: 0.5em; padding-left: 2em; font-size: 90%;" role="note">→詳細は「<a href="/wiki/3%E3%82%A6%E3%82%A7%E3%82%A4%E3%83%BB%E3%83%8F%E3%83%B3%E3%83%89%E3%82%B7%E3%82%A7%E3%82%A4%E3%82%AF" title="3ウェイ・ハンドシェイク">3ウェイ・ハンドシェイク</a>」を参照</div> <p>コネクションを確立する際、TCPでは<a href="/wiki/3%E3%82%A6%E3%82%A7%E3%82%A4%E3%83%BB%E3%83%8F%E3%83%B3%E3%83%89%E3%82%B7%E3%82%A7%E3%82%A4%E3%82%AF" title="3ウェイ・ハンドシェイク">3ウェイ・ハンドシェイク</a>を行う。 </p><p>クライアントがサーバと接続する前、サーバはコネクション可能なようにポートをバインドしておかなければならない。これをパッシブ・オープンと呼ぶ。サーバ側がパッシブ・オープンになっていれば、クライアントはアクティブ・オープンを開始できる。コネクションを確立するための3ウェイ・ハンドシェイクは次のようになる。 </p> <ol><li><b>SYN</b>: クライアントはサーバにSYNを送り、アクティブ・オープンを行う。クライアントはこの際に無作為な値Aを選び、SYNセグメントのシーケンス番号とする。</li> <li><b>SYN-ACK</b>: それに対してサーバはSYN+ACKを返す。確認応答番号は受信したSYNセグメントのシーケンス番号に1を加えたもの (A + 1) とし、SYN+ACK のシーケンス番号は別の無作為な値 B とする。</li> <li><b>ACK</b>: クライアントがサーバからの SYN+ACK に対して ACK を返す。その際のシーケンス番号は受信した SYN+ACK の確認応答番号 (A + 1) とし、確認応答番号は SYN+ACK のシーケンス番号に1を加えた値 (B + 1) とする。</li></ol> <p>この時点でクライアントとサーバ双方がコネクション確立の確認応答を受け取ったことになる。 </p> <div class="mw-heading mw-heading3"><h3 id="リソースの使い方"><span id=".E3.83.AA.E3.82.BD.E3.83.BC.E3.82.B9.E3.81.AE.E4.BD.BF.E3.81.84.E6.96.B9"></span>リソースの使い方</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Transmission_Control_Protocol&action=edit&section=16" title="節を編集: リソースの使い方"><span>編集</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>多くの実装では、テーブルの1エントリを動作中のOSプロセスとのセッションにマッピングする。TCPセグメントにはセッション識別子がないため、通信している双方でクライアントのアドレスとポートでセッションを識別する。パケットを受信すると、TCPソフトウェアはそのテーブルを参照して、対応するプロセスを見つける。 </p><p>サーバ側でのセッション数はメモリ容量にのみ制限され、コネクション確立要求がくるたびに増えていく。しかし、クライアントはサーバに最初のSYNセグメントを送る前に無作為にポートを選んで確保しなければならない。このポートはコネクションをクローズするまで確保され続け、実質的にクライアントの持つIPアドレス毎の外に出て行くコネクション数を制限している。アプリケーションが不要になったコネクションをクローズしそこねると、空いているポートが足りなくなり、新たなTCPコネクションを確立できなくなる。 </p><p>また、通信する双方で確認応答を受け取っていない送信済みデータとアプリケーションに渡す前の受信データを格納しておく領域を確保する必要がある。 </p> <div class="mw-heading mw-heading3"><h3 id="データ転送"><span id=".E3.83.87.E3.83.BC.E3.82.BF.E8.BB.A2.E9.80.81"></span>データ転送</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Transmission_Control_Protocol&action=edit&section=17" title="節を編集: データ転送"><span>編集</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>TCPが提供する機能(<a class="mw-selflink-fragment" href="#機能">#機能</a>を参照)は以下の機構で提供される。 </p> <ul><li>順序保証: 受信側でシーケンス番号を使って並べ替え<sup id="cite_ref-comer_4-2" class="reference"><a href="#cite_note-comer-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup></li> <li>到達保証/再送: 確認応答のないセグメントは再送<sup id="cite_ref-comer_4-3" class="reference"><a href="#cite_note-comer-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup></li> <li>誤りのないデータ転送: チェックサム<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></li> <li>フロー制御: 受信側は常にどのくらいのデータを受け取れるかを知らせている(スライディングウィンドウで制御している)。受信側のバッファが一杯になると、次の確認応答ではウィンドウサイズを0とするので送信が停止し、バッファ内のデータを処理する余裕ができる<sup id="cite_ref-comer_4-4" class="reference"><a href="#cite_note-comer-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup>。</li></ul> <div class="mw-heading mw-heading4"><h4 id="高信頼転送"><span id=".E9.AB.98.E4.BF.A1.E9.A0.BC.E8.BB.A2.E9.80.81"></span>高信頼転送</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Transmission_Control_Protocol&action=edit&section=18" title="節を編集: 高信頼転送"><span>編集</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>TCPは「シーケンス番号」を使ってデータの各バイトを識別する。シーケンス番号は双方のホストが送信するバイト列に先頭から振られる番号であり、それによってデータがどう分割されても、順番が入れ替わっても、転送中に失われても、元のデータを復元できる。ペイロードの各バイトを送るたびにシーケンス番号をインクリメントしなければならない。3ウェイ・ハンドシェイクの最初の2ステップで、双方のホストは初期シーケンス番号 (ISN) をやりとりする。この番号は任意であり、<a href="/wiki/TCP%E3%82%B7%E3%83%BC%E3%82%B1%E3%83%B3%E3%82%B9%E7%95%AA%E5%8F%B7%E4%BA%88%E6%B8%AC%E6%94%BB%E6%92%83" title="TCPシーケンス番号予測攻撃">TCPシーケンス番号予測攻撃</a>への防御のために予測不可能な値とすべきである。 </p><p>TCPは「累積確認応答」方式を採用しており、受信側が確認応答を返すとき、そのセグメントで示されている確認応答番号は、対応するシーケンス番号未満のデータを全て受信済みであることを示している。送信側はペイロードの先頭バイトのシーケンス番号をそのセグメントのシーケンス番号として設定する。受信側は次に受信することを期待しているバイトのシーケンス番号を確認応答番号に設定して確認応答を返す。例えば、送信側が4バイトのペイロードをシーケンス番号 100 で送信する場合、そのペイロードの4バイトのシーケンス番号は順に 100、101、102、103 である。受信側がこのセグメントを受信すると、その確認応答での確認応答番号は 104 となり、次のパケットで送られてくるペイロードの先頭バイトのシーケンス番号となっている。 </p><p>累積確認応答に加えて、受信側は<a href="#選択確認応答">選択確認応答</a>でさらなる情報を送ることができる。 </p><p>送信側がネットワーク内でデータが失われたと判断した場合、データの再送を行う。 </p> <div class="mw-heading mw-heading4"><h4 id="誤り検出"><span id=".E8.AA.A4.E3.82.8A.E6.A4.9C.E5.87.BA"></span>誤り検出</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Transmission_Control_Protocol&action=edit&section=19" title="節を編集: 誤り検出"><span>編集</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>後述の<a href="#チェックサムの計算">#チェックサムの計算</a>も参照。 シーケンス番号と確認応答は、パケットの重複、喪失パケットの再送、データの順序通りの並べ替えなどを扱っている。受信したパケットの内容が正しいことを確認するため、TCPには<a href="/wiki/%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF%E3%82%B5%E3%83%A0" title="チェックサム">チェックサム</a>フィールドがある。チェックサムフィールドは設定必須の項目であり省略できない。 </p><p>TCPチェックサムは、現在の標準から見れば弱い。データリンク層のビット誤り率が高ければ、TCPチェックサムとは別の<a href="/wiki/%E8%AA%A4%E3%82%8A%E6%A4%9C%E5%87%BA%E8%A8%82%E6%AD%A3" title="誤り検出訂正">誤り検出訂正</a>機能が必要である。TCP/IPの下層である<a href="/wiki/%E3%83%87%E3%83%BC%E3%82%BF%E3%83%AA%E3%83%B3%E3%82%AF%E5%B1%A4" title="データリンク層">データリンク層</a>には一般に<a href="/wiki/%E5%B7%A1%E5%9B%9E%E5%86%97%E9%95%B7%E6%A4%9C%E6%9F%BB" title="巡回冗長検査">CRC</a>などのもっと強力な検査機構があり、TCPチェックサムの弱さを一部補っている(例えば、<a href="/wiki/Point-to-Point_Protocol" title="Point-to-Point Protocol">PPP</a>や<a href="/wiki/%E3%82%A4%E3%83%BC%E3%82%B5%E3%83%8D%E3%83%83%E3%83%88" title="イーサネット">イーサネット</a>)。しかし、だからといって16ビットのTCPチェックサムが無駄というわけではない。実際、CRCで保護された通信路でパケットに誤りが残ることはよくあるが、<a href="/wiki/%E3%82%A8%E3%83%B3%E3%83%89%E3%83%84%E3%83%BC%E3%82%A8%E3%83%B3%E3%83%89%E5%8E%9F%E7%90%86" title="エンドツーエンド原理">エンドツーエンド</a>の16ビットTCPチェックサムがそういった単純な誤りを捉えている<sup id="cite_ref-18" class="reference"><a href="#cite_note-18"><span class="cite-bracket">[</span>18<span class="cite-bracket">]</span></a></sup>。これは<a href="/wiki/%E3%82%A8%E3%83%B3%E3%83%89%E3%83%84%E3%83%BC%E3%82%A8%E3%83%B3%E3%83%89%E5%8E%9F%E7%90%86" title="エンドツーエンド原理">エンドツーエンド原理</a>が機能している例である。 </p> <div class="mw-heading mw-heading4"><h4 id="フロー制御"><span id=".E3.83.95.E3.83.AD.E3.83.BC.E5.88.B6.E5.BE.A1"></span>フロー制御</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Transmission_Control_Protocol&action=edit&section=20" title="節を編集: フロー制御"><span>編集</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>TCPはエンドツーエンドの<a href="/wiki/%E3%83%95%E3%83%AD%E3%83%BC%E5%88%B6%E5%BE%A1" title="フロー制御">フロー制御</a>プロトコルを使い、送信ペースが受信側にとって速すぎる状態になるのを防いでいる。様々な性能の機器が接続されたネットワークでは、フロー制御は欠かせない機構である。例えば、PCから性能の劣るPDAにデータを送る場合、PDAの性能に合わせて送信ペースを調整する必要がある<sup id="cite_ref-comer_4-5" class="reference"><a href="#cite_note-comer-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup>。 </p><p>TCPは<a href="/wiki/%E3%82%B9%E3%83%A9%E3%82%A4%E3%83%87%E3%82%A3%E3%83%B3%E3%82%B0%E3%82%A6%E3%82%A3%E3%83%B3%E3%83%89%E3%82%A6" title="スライディングウィンドウ">スライディングウィンドウ</a>によるフロー制御を採用している。各TCPセグメントについて、受信側は「ウィンドウサイズ」フィールドで、そのコネクション用のバッファの空き容量に相当する今後受信可能なデータの量(バイト単位)を示す。送信側は確認応答を待ち合わせるまでに、そのフィールドで指定された量までのデータを送り、新たな確認応答でウィンドウサイズ・フィールドを確認してさらに送信できるデータ量を更新する。 </p> <figure class="mw-halign-right" typeof="mw:File/Thumb"><a href="/wiki/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Tcp.svg" class="mw-file-description"><img src="//upload.wikimedia.org/wikipedia/commons/thumb/d/db/Tcp.svg/250px-Tcp.svg.png" decoding="async" width="250" height="229" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/d/db/Tcp.svg/375px-Tcp.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/d/db/Tcp.svg/500px-Tcp.svg.png 2x" data-file-width="600" data-file-height="550" /></a><figcaption>TCPシーケンス番号と受信ウィンドウサイズは、時計のような振る舞いをする。受信ウィンドウは新たなセグメントのデータを受信したときと確認応答を返したときにずれていく。シーケンス番号は最大値までいくと0に戻る。</figcaption></figure> <p>受信側がウィンドウサイズを0としたとき、送信側は送信を停止してタイマ (persist timer) を起動する。このタイマは受信側のウィンドウサイズの更新セグメントが喪失して<a href="/wiki/%E3%83%87%E3%83%83%E3%83%89%E3%83%AD%E3%83%83%E3%82%AF" title="デッドロック">デッドロック</a>状態になるのを防ぐためのものである(受信側がウィンドウサイズを更新しないと送信を再開できないため)。タイマがタイムアウトすると、送信側は小さなパケットを送り、その確認応答で受信側のウィンドウサイズが回復したかを調べる。 </p><p>受信側での受信データの処理が遅いと、ウィンドウサイズの指定は小さいままとなる。これを<span title="リンク先の項目はまだありません。新規の執筆や他言語版からの翻訳が望まれます。"><a href="/w/index.php?title=Silly_Window_Syndrome&action=edit&redlink=1" class="new" title="「Silly Window Syndrome」 (存在しないページ)">Silly Window Syndrome</a><span style="font-size: 0.77em; font-weight: normal;" class="noprint">(<a href="https://en.wikipedia.org/wiki/silly_window_syndrome" class="extiw" title="en:silly window syndrome">英語版</a>)</span></span> (SWS)と呼び、送信側は1度に数バイトのデータしか送れなくなり、TCPヘッダの方が大きな割合を占めるため転送効率が極端に低下する。そのような状況に陥らないようにするためのウィンドウ・アルゴリズムが <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r101121245"><a href="/wiki/Request_for_Comments" title="Request for Comments">RFC</a> <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc813">813</a> (Window and acknowledgement strategy in TCP) に記載されている。 </p> <div class="mw-heading mw-heading4"><h4 id="輻輳制御_2"><span id=".E8.BC.BB.E8.BC.B3.E5.88.B6.E5.BE.A1_2"></span>輻輳制御</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Transmission_Control_Protocol&action=edit&section=21" title="節を編集: 輻輳制御"><span>編集</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>TCPは高性能を達成し<a href="/wiki/%E8%BC%BB%E8%BC%B3" title="輻輳">輻輳</a>崩壊(ネットワーク性能が数桁のオーダーで低下する現象)を防ぐため、<a href="/wiki/%E8%BC%BB%E8%BC%B3%E5%88%B6%E5%BE%A1" title="輻輳制御">輻輳制御</a>機構をいくつか備えている。ネットワークに流入させるデータレートを制御し、崩壊のきっかけとなるようなレート未満でデータを送るよう保つ。また、おおまかに<span title="リンク先の項目はまだありません。新規の執筆や他言語版からの翻訳が望まれます。"><a href="/w/index.php?title=%E6%9C%80%E5%A4%A7%E6%9C%80%E5%B0%8F%E5%85%AC%E5%B9%B3%E6%80%A7&action=edit&redlink=1" class="new" title="「最大最小公平性」 (存在しないページ)">最大最小公平</a><span style="font-size: 0.77em; font-weight: normal;" class="noprint">(<a href="https://en.wikipedia.org/wiki/Max-min_fairness" class="extiw" title="en:Max-min fairness">英語版</a>)</span></span>なフロー割り当てを目指す。 </p><p>送信データへの ACK (確認応答)の有無は、送信側でネットワークの状態を推測する材料となる。これをタイマと組み合わせ、データのフローの振る舞いを変化させることができる。これを一般に輻輳制御またはネットワーク輻輳回避などと呼ぶ。 </p><p>最近のTCP実装では、<span title="リンク先の項目はまだありません。新規の執筆や他言語版からの翻訳が望まれます。"><a href="/w/index.php?title=%E3%82%B9%E3%83%AD%E3%83%BC%E3%82%B9%E3%82%BF%E3%83%BC%E3%83%88_(TCP)&action=edit&redlink=1" class="new" title="「スロースタート (TCP)」 (存在しないページ)">スロースタート</a><span style="font-size: 0.77em; font-weight: normal;" class="noprint">(<a href="https://en.wikipedia.org/wiki/Slow-start" class="extiw" title="en:Slow-start">英語版</a>)</span></span>、<span title="リンク先の項目はまだありません。新規の執筆や他言語版からの翻訳が望まれます。"><a href="/w/index.php?title=TCP%E8%BC%BB%E8%BC%B3%E5%9B%9E%E9%81%BF%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0&action=edit&redlink=1" class="new" title="「TCP輻輳回避アルゴリズム」 (存在しないページ)">輻輳回避</a><span style="font-size: 0.77em; font-weight: normal;" class="noprint">(<a href="https://en.wikipedia.org/wiki/TCP_congestion_avoidance_algorithm" class="extiw" title="en:TCP congestion avoidance algorithm">英語版</a>)</span></span>、<span title="リンク先の項目はまだありません。新規の執筆や他言語版からの翻訳が望まれます。"><a href="/w/index.php?title=TCP%E9%AB%98%E9%80%9F%E5%86%8D%E9%80%81%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0&action=edit&redlink=1" class="new" title="「TCP高速再送アルゴリズム」 (存在しないページ)">TCP高速再送アルゴリズム</a><span style="font-size: 0.77em; font-weight: normal;" class="noprint">(<a href="https://en.wikipedia.org/wiki/fast_retransmit" class="extiw" title="en:fast retransmit">英語版</a>)</span></span>、ファストリカバリ(<a href="https://en.wikipedia.org/wiki/Slow-start#Fast_recovery" class="extiw" title="en:Slow-start">en</a>, <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r101121245"><a href="/wiki/Request_for_Comments" title="Request for Comments">RFC</a> <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc5681">5681</a>) という4つの相互にからみあったアルゴリズムを使用している。 </p><p>スループットをあげるため輻輳しない限界まで送信側はスライディングウィンドウを大きくする必要があるが、ウィンドウサイズを調整する輻輳回避アルゴリズムは長年研究されている。一覧は <a href="https://en.wikipedia.org/wiki/TCP_congestion_avoidance_algorithm" class="extiw" title="w:TCP congestion avoidance algorithm">w:TCP congestion avoidance algorithm</a> を参照。かつては、輻輳するとパケットロスが発生することを利用し、パケットロスをベースにした <a href="/w/index.php?title=TCP_Reno&action=edit&redlink=1" class="new" title="「TCP Reno」 (存在しないページ)">TCP Reno</a> およびそれを改良した <a href="/w/index.php?title=TCP_NewReno&action=edit&redlink=1" class="new" title="「TCP NewReno」 (存在しないページ)">TCP NewReno</a> (<link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r101121245"><a href="/wiki/Request_for_Comments" title="Request for Comments">RFC</a> <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc3782">3782</a>) がよく使われていたが、現在では、送信側のスライディングウィンドウにどれだけの時間とどまっていたかを元にしたアルゴリズム (Delay-based Congestion Avoidance) が中心になっており、<a href="/wiki/Microsoft_Windows" title="Microsoft Windows">Microsoft Windows</a> では、<a href="/wiki/Windows_Vista" class="mw-redirect" title="Windows Vista">Windows Vista</a> 以降は、<span title="リンク先の項目はまだありません。新規の執筆や他言語版からの翻訳が望まれます。"><a href="/w/index.php?title=Compound_TCP&action=edit&redlink=1" class="new" title="「Compound TCP」 (存在しないページ)">Compound TCP</a><span style="font-size: 0.77em; font-weight: normal;" class="noprint">(<a href="https://en.wikipedia.org/wiki/Compound_TCP" class="extiw" title="en:Compound TCP">英語版</a>)</span></span> が採用され、<a href="/wiki/Linux" title="Linux">Linux</a> では 2.6.8〜2.6.18 は <span title="リンク先の項目はまだありません。新規の執筆や他言語版からの翻訳が望まれます。"><a href="/w/index.php?title=BIC_TCP&action=edit&redlink=1" class="new" title="「BIC TCP」 (存在しないページ)">BIC TCP</a><span style="font-size: 0.77em; font-weight: normal;" class="noprint">(<a href="https://en.wikipedia.org/wiki/BIC_TCP" class="extiw" title="en:BIC TCP">英語版</a>)</span></span> が、2.6.19 以降は <span title="リンク先の項目はまだありません。新規の執筆や他言語版からの翻訳が望まれます。"><a href="/w/index.php?title=CUBIC_TCP&action=edit&redlink=1" class="new" title="「CUBIC TCP」 (存在しないページ)">CUBIC TCP</a><span style="font-size: 0.77em; font-weight: normal;" class="noprint">(<a href="https://en.wikipedia.org/wiki/CUBIC_TCP" class="extiw" title="en:CUBIC TCP">英語版</a>)</span></span> が使われている。 </p><p>さらに送信側には「再送タイムアウト (RTO)」があり、送信してから確認応答が戻るまでの時間である<a href="/wiki/%E3%83%A9%E3%82%A6%E3%83%B3%E3%83%89%E3%83%88%E3%83%AA%E3%83%83%E3%83%97%E3%82%BF%E3%82%A4%E3%83%A0" title="ラウンドトリップタイム">ラウンドトリップタイム</a> (RTT) を推算し、ばらつきも考慮して設定する。このタイマの動作は <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r101121245"><a href="/wiki/Request_for_Comments" title="Request for Comments">RFC</a> <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc2988">2988</a> で規定されている。RTTの推算には微妙な点がある。例えば、再送パケットのRTTを計算する場合は注意しなければならず、一般に<span title="リンク先の項目はまだありません。新規の執筆や他言語版からの翻訳が望まれます。"><a href="/w/index.php?title=%E3%82%AB%E3%83%BC%E3%83%B3%E3%81%AE%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0&action=edit&redlink=1" class="new" title="「カーンのアルゴリズム」 (存在しないページ)">カーンのアルゴリズム</a><span style="font-size: 0.77em; font-weight: normal;" class="noprint">(<a href="https://en.wikipedia.org/wiki/Karn%27s_Algorithm" class="extiw" title="en:Karn's Algorithm">英語版</a>)</span></span>やTCPタイムスタンプ(<link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r101121245"><a href="/wiki/Request_for_Comments" title="Request for Comments">RFC</a> <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc1323">1323</a> 参照)を使う。個々のRTTの標本から時系列で平均をとり、<a href="/wiki/%E3%83%90%E3%83%B3%E3%83%BB%E3%82%B8%E3%82%A7%E3%82%A4%E3%82%B3%E3%83%96%E3%82%BD%E3%83%B3" title="バン・ジェイコブソン">ジェイコブソン</a>のアルゴリズムを使って Smoothed Round Trip Time (SRTT) を生成する。最終的にSRTT値がRTTの推算に使われる。 </p><p>TCPを拡張して、喪失を高信頼に扱ったり、誤りを最小化したり、輻輳を制御してより高速化しようという試みが今も行われている。 </p> <div class="mw-heading mw-heading4"><h4 id="遅延送信"><span id=".E9.81.85.E5.BB.B6.E9.80.81.E4.BF.A1"></span>遅延送信</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Transmission_Control_Protocol&action=edit&section=22" title="節を編集: 遅延送信"><span>編集</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="rellink" style="margin-bottom: 0.5em; padding-left: 2em; font-size: 90%;" role="note">→詳細は「<a href="/wiki/Nagle%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0" title="Nagleアルゴリズム">Nagleアルゴリズム</a>」を参照</div> <div class="rellink" style="margin-bottom: 0.5em; padding-left: 2em; font-size: 90%;" role="note">→詳細は「<a href="/wiki/TCP%E9%81%85%E5%BB%B6ACK" title="TCP遅延ACK">TCP遅延ACK</a>」を参照</div> <p><a href="/wiki/%E6%9C%80%E5%A4%A7%E3%82%BB%E3%82%B0%E3%83%A1%E3%83%B3%E3%83%88%E3%82%B5%E3%82%A4%E3%82%BA" title="最大セグメントサイズ">最大セグメントサイズ</a>以下の小さなパケットをばらばらと送るのは非効率なので、送信を遅延し、それらを1つのTCPパケットにまとめるのが、<a href="/wiki/Nagle%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0" title="Nagleアルゴリズム">Nagleアルゴリズム</a>である。同様に、複数のACKを1つにまとめるのが、<a href="/wiki/TCP%E9%81%85%E5%BB%B6ACK" title="TCP遅延ACK">TCP遅延ACK</a>である。どちらも、送信を遅延させるという点においては同じだが、相互に影響し合い、遅延が増大するという問題があり、詳細は<a href="/wiki/Nagle%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0" title="Nagleアルゴリズム">Nagleアルゴリズム</a>を参照。 </p> <div class="mw-heading mw-heading3"><h3 id="最大セグメントサイズ"><span id=".E6.9C.80.E5.A4.A7.E3.82.BB.E3.82.B0.E3.83.A1.E3.83.B3.E3.83.88.E3.82.B5.E3.82.A4.E3.82.BA"></span>最大セグメントサイズ</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Transmission_Control_Protocol&action=edit&section=23" title="節を編集: 最大セグメントサイズ"><span>編集</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="rellink" style="margin-bottom: 0.5em; padding-left: 2em; font-size: 90%;" role="note">→詳細は「<a href="/wiki/%E6%9C%80%E5%A4%A7%E3%82%BB%E3%82%B0%E3%83%A1%E3%83%B3%E3%83%88%E3%82%B5%E3%82%A4%E3%82%BA" title="最大セグメントサイズ">最大セグメントサイズ</a>」を参照</div> <p><a href="/wiki/%E6%9C%80%E5%A4%A7%E3%82%BB%E3%82%B0%E3%83%A1%E3%83%B3%E3%83%88%E3%82%B5%E3%82%A4%E3%82%BA" title="最大セグメントサイズ">最大セグメントサイズ</a> (MSS) はバイト単位で指定され、単一のセグメントとして受信可能な最大データ量を示す。性能を最大限発揮するには<a href="/wiki/IP%E3%83%95%E3%83%A9%E3%82%B0%E3%83%A1%E3%83%B3%E3%83%86%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3" title="IPフラグメンテーション">IPフラグメンテーション</a>を十分防げる程度に小さくする必要がある。IPフラグメンテーションが行われると、パケット喪失時の再送に時間がかかることになる。一般にコネクション確立時にMSSオプションを使って双方のMSSを通知するので、適切なMSSを決めるには<a href="/wiki/%E3%83%87%E3%83%BC%E3%82%BF%E3%83%AA%E3%83%B3%E3%82%AF%E5%B1%A4" title="データリンク層">データリンク層</a>の <a href="/wiki/Maximum_Transmission_Unit" title="Maximum Transmission Unit">Maximum Transmission Unit</a> (MTU) から導出したMSSを通知すればよい。さらに送信側は<a href="/wiki/%E7%B5%8C%E8%B7%AFMTU%E6%8E%A2%E7%B4%A2" class="mw-redirect" title="経路MTU探索">経路MTU探索</a>を使うことができ、通信相手との間にある経路でMTUが最小の部分を推定し、それを使ってMSSを動的に調整しIPフラグメンテーションを防ぐことができる。 </p><p>MSS通知は「MSSネゴシエーション」とも呼ばれる。ネゴシエーションというと送信側と受信側が交渉して合意に達するかのように思われるが、実際には異なり、送信する方向によってそれぞれ異なるMSSが設定可能である<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>。これは例えば一方がメモリ容量が小さいため、バッファ領域を大きくとれない場合などに起きる(発見したパスMTUより小さいこともありうる)。 </p> <div class="mw-heading mw-heading3"><h3 id="選択確認応答"><span id=".E9.81.B8.E6.8A.9E.E7.A2.BA.E8.AA.8D.E5.BF.9C.E7.AD.94"></span>選択確認応答</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Transmission_Control_Protocol&action=edit&section=24" title="節を編集: 選択確認応答"><span>編集</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>もともとのTCPプロトコルで採用されている累積確認応答方式を使うと、パケットを喪失したときに非効率になる可能性がある。例えば、10,000バイトのデータを10個のTCPセグメントで送信し、その最初のパケットが喪失したとする。もともとの累積確認応答プロトコルでは、受信側は1,000から9,999までのバイトは受信成功、ただし0から999までのバイトを含む先頭パケットの受信に失敗したという風に伝えることができないので、送信側は10,000バイト全体を再送しなければならない。 </p><p>このため <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r101121245"><a href="/wiki/Request_for_Comments" title="Request for Comments">RFC</a> <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc2018">2018</a> で「選択確認応答 (SACK)」オプションが追加された。これは、通常の累積確認応答とは別に、受信側が不連続なブロックを正しく受信したという確認応答を返せるようにしたものである。選択確認応答にはオプション部分にいくつかのSACKブロックを指定し、SACKブロックには正しく受信できた連続な範囲のシーケンス番号の開始点と終了点を指定する。例えば、先ほどの例では 1000 と 9999 のシーケンス番号をSACKオプションで示せばよい。すると送信側は 0 から 999 までのバイトを含む最初のパケットだけを再送する。 </p><p>SACKオプションの拡張として <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r101121245"><a href="/wiki/Request_for_Comments" title="Request for Comments">RFC</a> <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc2883">2883</a> で定義されたデュプリケートSACK (D-SACK) オプションがある。パケットの順序がばらばらになると、送信側への確認応答も順序どおりにならないため送信側でパケット喪失と勘違いし、喪失したと思われるパケットを再送することがあり、同時にネットワーク輻輳を防ぐため送信ペースを落とす。このとき、受信側が D-SACK オプションで再送パケットが重複していることを通知すれば、遅くなっていた送信ペースを元に戻すことができる。 </p><p>SACKオプションは必須ではなく、両者がサポートしている場合だけ使われる。これはコネクション確立時に調整される。SACKオプションは主なTCPスタックでサポートされており、広く使われている。選択確認応答は <a href="/wiki/Stream_Control_Transmission_Protocol" title="Stream Control Transmission Protocol">Stream Control Transmission Protocol</a> (SCTP) でも使われている。 </p> <div class="mw-heading mw-heading3"><h3 id="ウィンドウスケーリング"><span id=".E3.82.A6.E3.82.A3.E3.83.B3.E3.83.89.E3.82.A6.E3.82.B9.E3.82.B1.E3.83.BC.E3.83.AA.E3.83.B3.E3.82.B0"></span>ウィンドウスケーリング</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Transmission_Control_Protocol&action=edit&section=25" title="節を編集: ウィンドウスケーリング"><span>編集</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>広帯域ネットワークをより効率的に使うには、TCPウィンドウのサイズを大きくする必要がある。TCPヘッダのウィンドウサイズのフィールドは16ビットで、2バイトから65,535バイトまでしか設定できない。 </p><p>ウィンドウサイズ・フィールドは拡張できないので、<span title="リンク先の項目はまだありません。新規の執筆や他言語版からの翻訳が望まれます。"><a href="/w/index.php?title=%E3%82%B9%E3%82%B1%E3%83%BC%E3%83%AB%E3%83%95%E3%82%A1%E3%82%AF%E3%82%BF_(%E8%A8%88%E7%AE%97%E6%A9%9F%E7%A7%91%E5%AD%A6)&action=edit&redlink=1" class="new" title="「スケールファクタ (計算機科学)」 (存在しないページ)">スケールファクタ</a><span style="font-size: 0.77em; font-weight: normal;" class="noprint">(<a href="https://en.wikipedia.org/wiki/Scale_factor_(computer_science)" class="extiw" title="en:Scale factor (computer science)">英語版</a>)</span></span>が導入されている。<link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r101121245"><a href="/wiki/Request_for_Comments" title="Request for Comments">RFC</a> <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc7323">7323</a> で定義されているウィンドウスケール・オプションを使えば、最大ウィンドウサイズを 65,535 バイトから 1 ギガバイトに拡張できる。ウィンドウサイズのスケールアップはTCPのチューニング (<a href="https://en.wikipedia.org/wiki/TCP_Tuning" class="extiw" title="en:TCP Tuning">en</a>) に必須の要素である。 </p><p>ウィンドウスケール・オプションは3ウェイ・ハンドシェイクの際にしか使われない。ウィンドウスケール・オプションのオプション値は、16ビットのウィンドウサイズ・フィールドの値を左にシフトするビット数を表している。ウィンドウスケールの値は0(シフトしない)から14まで指定でき、通信の双方向で別々に設定できる。どちらの方向もSYNセグメントのオプションとして通知する。 </p><p>一部の<a href="/wiki/%E3%83%AB%E3%83%BC%E3%82%BF%E3%83%BC" title="ルーター">ルーター</a>や<a href="/wiki/%E3%83%95%E3%82%A1%E3%82%A4%E3%82%A2%E3%82%A6%E3%82%A9%E3%83%BC%E3%83%AB" title="ファイアウォール">ファイアウォール</a>は、このスケールファクタを転送時に書き換えることがある。すると送信側と受信側でウィンドウサイズの認識が異なることになり、トラフィックが不安定になって、非常に低速になることがある<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>。 </p> <div class="mw-heading mw-heading3"><h3 id="TCPタイムスタンプ"><span id="TCP.E3.82.BF.E3.82.A4.E3.83.A0.E3.82.B9.E3.82.BF.E3.83.B3.E3.83.97"></span>TCPタイムスタンプ</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Transmission_Control_Protocol&action=edit&section=26" title="節を編集: TCPタイムスタンプ"><span>編集</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>TCPタイムスタンプは <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r101121245"><a href="/wiki/Request_for_Comments" title="Request for Comments">RFC</a> <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc1323">1323</a> で定義されており、パケット送出の順序をTCPレベルで知ることが出来る。TCPタイムスタンプはシステムクロックに合わせているわけではなく、無作為な値から開始する。多くのOSはこのタイムスタンプ値をミリ秒単位でインクリメントする。ただし、RFCは単に時間経過に比例して増加すべきだとしているだけである。 </p><p>タイムスタンプのフィールドは2つある。 </p> <ul><li>4バイトの送信側タイムスタンプ値(自分のタイムスタンプ)</li> <li>4バイトの応答タイムスタンプ値(相手から直近に受け取ったタイムスタンプ値)</li></ul> <p>TCPタイムスタンプは PAWS (Protection Against Wrapped Sequences) と呼ばれるアルゴリズム(<link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r101121245"><a href="/wiki/Request_for_Comments" title="Request for Comments">RFC</a> <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc1323">1323</a> 参照)で利用する。PAWSは、2の32乗まであるシーケンス番号が一周してしまう場合に使われる。シーケンス番号はデータバイト毎に振られるので、最大4ギガバイトしか表せないが、最近の高速ネットワークでは1分以内に一周する可能性があり、再送が必要になったとき、現在の周回なのか前の周回なのかを識別するのにタイムスタンプを使う。 </p><p><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r101121245"><a href="/wiki/Request_for_Comments" title="Request for Comments">RFC</a> <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc1323">1323</a> の2.2節では、ウィンドウサイズは1ギガバイトまでとされているため、多くの実装でスケールオプションの最大値を14までとしている。 </p><p>また、Eifel detection アルゴリズム (<link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r101121245"><a href="/wiki/Request_for_Comments" title="Request for Comments">RFC</a> <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc3522">3522</a>) でもTCPタイムスタンプを使っており、再送の原因がパケット喪失なのか順序がばらばらになったせいなのかを判断する。 </p> <div class="mw-heading mw-heading3"><h3 id="帯域外データ"><span id=".E5.B8.AF.E5.9F.9F.E5.A4.96.E3.83.87.E3.83.BC.E3.82.BF"></span>帯域外データ</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Transmission_Control_Protocol&action=edit&section=27" title="節を編集: 帯域外データ"><span>編集</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>ストリームが完了するのを待たずに、キューイングされたストリームに割り込むことができる。この場合、緊急 (urgent) と指定したデータを使う。それによって受信側プログラムが緊急データをすぐさま処理すべきであることを知らせる。その処理が終了すると、もとのストリーム・キューの処理を再開する。例えば、リモートログインのセッションにTCPを使っているとき、ユーザーが実行中のプログラムをアボートさせるキーシーケンスを送るときなどに使われる。プログラムが暴走したときなど、そのプログラムの出力を待っているのではなく、強引にアボートさせたいときに必須となる<sup id="cite_ref-comer_4-6" class="reference"><a href="#cite_note-comer-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup>。 </p><p>帯域外データの概念は現在のインターネット向けの設計ではない。緊急ポインタは相手ホストでの処理を変えるものであって、ネットワーク上の処理は何も変わらない。緊急ポインタのあるセグメントがリモートホストに到着したとき、若干異なる2つのプロトコルの解釈があり、単一バイトの帯域外データしか信頼できないという状況になっている。そのため滅多に使われず、実装も貧弱になる傾向がある <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-22" class="reference"><a href="#cite_note-22"><span class="cite-bracket">[</span>22<span class="cite-bracket">]</span></a></sup>。 </p> <div class="mw-heading mw-heading3"><h3 id="強制的データ送出"><span id=".E5.BC.B7.E5.88.B6.E7.9A.84.E3.83.87.E3.83.BC.E3.82.BF.E9.80.81.E5.87.BA"></span>強制的データ送出</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Transmission_Control_Protocol&action=edit&section=28" title="節を編集: 強制的データ送出"><span>編集</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>通常、TCPは送信すべきデータが<a href="/wiki/%E6%9C%80%E5%A4%A7%E3%82%BB%E3%82%B0%E3%83%A1%E3%83%B3%E3%83%88%E3%82%B5%E3%82%A4%E3%82%BA" title="最大セグメントサイズ">最大セグメントサイズ</a> (MSS) まで溜まるか、200ミリ秒経過するまで待つ(<a href="/wiki/Nagle%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0" title="Nagleアルゴリズム">Nagleアルゴリズム</a>で小さいメッセージを単一パケットにまとめようとするため)。これは例えばファイル転送のような一定の送信が要求される場合に問題となることがある。例えば、送信ブロックが一般的な4KBで、MSSも一般的な1460バイトだとする。すると1ブロックが3セグメントで送信され、最後の1セグメントはMSSに満たないことになる。すると、2パケットまでは約1.2ミリ秒で送信され、1176バイトの3パケット目は197ミリ秒待ってから送信ということになる。 </p><p><a href="/wiki/Telnet" title="Telnet">Telnet</a>の場合、ユーザーがキーを押下するたびに通信先からエコーバックされて画面に文字が表示される。すると、1文字押下するたびに200ミリ秒待たされることになり、非常にストレスになる。 </p><p>この場合、<a href="/wiki/%E3%82%BD%E3%82%B1%E3%83%83%E3%83%88_(BSD)" title="ソケット (BSD)">ソケット</a>のオプション <code>TCP_NODELAY</code> を使ってデフォルトの200ミリ秒の送信遅延を変更することができる。 </p><p>RFCには <code>PSH</code> フラグを使って「受信側TCPスタックでそのデータを即座にアプリケーションに送る」という機能が定義されている<sup id="cite_ref-comer_4-7" class="reference"><a href="#cite_note-comer-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup>。しかし<a href="/wiki/%E3%82%BD%E3%82%B1%E3%83%83%E3%83%88_(BSD)" title="ソケット (BSD)">ソケット</a>にはこれを制御するインタフェースがなく、<a href="/wiki/%E3%83%97%E3%83%AD%E3%83%88%E3%82%B3%E3%83%AB%E3%82%B9%E3%82%BF%E3%83%83%E3%82%AF" title="プロトコルスタック">プロトコルスタック</a>の実装に任されている<sup id="cite_ref-Stevens2006_23-0" class="reference"><a href="#cite_note-Stevens2006-23"><span class="cite-bracket">[</span>23<span class="cite-bracket">]</span></a></sup>。 </p> <div class="mw-heading mw-heading3"><h3 id="コネクション終了"><span id=".E3.82.B3.E3.83.8D.E3.82.AF.E3.82.B7.E3.83.A7.E3.83.B3.E7.B5.82.E4.BA.86"></span>コネクション終了</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Transmission_Control_Protocol&action=edit&section=29" title="節を編集: コネクション終了"><span>編集</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>コネクション終了フェーズは多くの場合「4ウェイ・<a href="/wiki/%E3%83%8F%E3%83%B3%E3%83%89%E3%82%B7%E3%82%A7%E3%82%A4%E3%82%AF" title="ハンドシェイク">ハンドシェイク</a>」を使い、コネクションの双方がそれぞれ独立に終了できる。一方がコネクションを終了したい場合、FINセグメントを送信し、相手がそのACKを返す。相手も同様にFINを送ってACKを受信することでコネクションを終了する。両方のFIN/ACK交換が済むと、最後にACKを送った側(先にFINを送った側)がタイマを設定してタイムアウトするまで当該ポートを別のコネクションに再利用できないようにする。これによって配送が遅れていたパケットが新たなコネクションで受信されて混乱するのを防ぐ。 </p><p>コネクションは「ハーフオープン」という状態にもでき、一方だけ終了していても、もう一方はデータを送り続けることができる。終了した側はもう一方が終了するまで受信可能の状態を継続する。 </p><p>コネクション終了を3ウェイ・ハンドシェイクで行うこともでき、ホストAのFIN送信に対してホストBが FIN+ACK で応答し、ホストAがACK応答する<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><p>両方から同時にFINセグメントを送りあい、双方がACKを返すということもありうる。FIN/ACKシーケンスが並行して行われるため、2ウェイ・ハンドシェイクと呼ぶこともできる。 </p> <div class="mw-heading mw-heading2"><h2 id="脆弱性"><span id=".E8.84.86.E5.BC.B1.E6.80.A7"></span>脆弱性</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Transmission_Control_Protocol&action=edit&section=30" title="節を編集: 脆弱性"><span>編集</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>TCPは様々な方法で攻撃される可能性がある。TCPの完全なセキュリティアセスメントの結果は、認識されていた問題の考えうる対策と共に2009年に公表され<sup id="cite_ref-25" class="reference"><a href="#cite_note-25"><span class="cite-bracket">[</span>25<span class="cite-bracket">]</span></a></sup>、その後も<a href="/wiki/Internet_Engineering_Task_Force" title="Internet Engineering Task Force">IETF</a>内で進められている<sup id="cite_ref-26" class="reference"><a href="#cite_note-26"><span class="cite-bracket">[</span>26<span class="cite-bracket">]</span></a></sup>。 </p> <div class="mw-heading mw-heading3"><h3 id="DoS攻撃"><span id="DoS.E6.94.BB.E6.92.83"></span>DoS攻撃</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Transmission_Control_Protocol&action=edit&section=31" title="節を編集: DoS攻撃"><span>編集</span></a><span class="mw-editsection-bracket">]</span></span></div> <p><a href="/wiki/IP%E3%82%B9%E3%83%97%E3%83%BC%E3%83%95%E3%82%A3%E3%83%B3%E3%82%B0" title="IPスプーフィング">IPスプーフィング</a>を使い、悪意を持って作ったSYNパケットを繰り返し送信することで、偽の接続に対処するために対象サーバの多大な量のリソースを消費させることができる。これを <a href="/wiki/SYN_flood" title="SYN flood">SYN flood</a> 攻撃と呼ぶ。この問題への対策として提案された方法として、<a href="/wiki/SYN_cookies" title="SYN cookies">SYN cookies</a> や暗号的パズルがある。<a href="https://en.wikipedia.org/wiki/Sockstress" class="extiw" title="en:Sockstress">Sockstress</a> も類似の攻撃法だが、システムのリソース管理によって効果を和らげることができる<sup id="cite_ref-27" class="reference"><a href="#cite_note-27"><span class="cite-bracket">[</span>27<span class="cite-bracket">]</span></a></sup>。オンラインマガジン <a href="/wiki/Phrack" title="Phrack">Phrack</a> 66号では、TCPの Persist Timer に存在する脆弱性を利用した改良型<a href="/wiki/DoS%E6%94%BB%E6%92%83" title="DoS攻撃">DoS攻撃</a>の分析を行っている<sup id="cite_ref-28" class="reference"><a href="#cite_note-28"><span class="cite-bracket">[</span>28<span class="cite-bracket">]</span></a></sup>。 </p> <div class="mw-heading mw-heading3"><h3 id="コネクション乗っ取り"><span id=".E3.82.B3.E3.83.8D.E3.82.AF.E3.82.B7.E3.83.A7.E3.83.B3.E4.B9.97.E3.81.A3.E5.8F.96.E3.82.8A"></span>コネクション乗っ取り</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Transmission_Control_Protocol&action=edit&section=32" title="節を編集: コネクション乗っ取り"><span>編集</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="rellink" style="margin-bottom: 0.5em; padding-left: 2em; font-size: 90%;" role="note">→詳細は「<a href="/wiki/TCP%E3%82%B7%E3%83%BC%E3%82%B1%E3%83%B3%E3%82%B9%E7%95%AA%E5%8F%B7%E4%BA%88%E6%B8%AC%E6%94%BB%E6%92%83" title="TCPシーケンス番号予測攻撃">TCPシーケンス番号予測攻撃</a>」を参照</div> <p>TCPセッションを盗聴できパケットをリダイレクトできる攻撃者は、TCPコネクションを乗っ取ることができる。その場合、攻撃者は進行中の通信からシーケンス番号を読み取り、ストリームにおける次のセグメントを装った偽のセグメントを作る。そのような簡単な乗っ取りで、通信中の一方に1つのパケットを誤って受け取らせることができる。受け取ったホストが余分なセグメントへの確認応答をコネクションのもう一方に返すと、同期が失われる。ARPまたはルーティング攻撃を組合わせることで、乗っ取ったTCPコネクションの制御を完全に奪うことができる<sup id="cite_ref-29" class="reference"><a href="#cite_note-29"><span class="cite-bracket">[</span>29<span class="cite-bracket">]</span></a></sup>。 </p><p><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r101121245"><a href="/wiki/Request_for_Comments" title="Request for Comments">RFC</a> <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc1948">1948</a> が登場する以前は異なるIPアドレスを真似ることは難しくなく、初期シーケンス番号は容易に推測可能だった。そのため攻撃者はARP/ルーティング攻撃を併用することなく、適当な一連のパケットを受信者に送信し、異なるIPアドレスからのものだと信じさせることができた。その際、偽装したIPアドレスの本来のホストがダウンしていれば十分であり、Dos攻撃でそのホストをダウンさせればよかった。以上のような理由から、初期シーケンス番号のランダムな選択が行われるようになった。 </p> <div class="mw-heading mw-heading2"><h2 id="TCPポート"><span id="TCP.E3.83.9D.E3.83.BC.E3.83.88"></span>TCPポート</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Transmission_Control_Protocol&action=edit&section=33" title="節を編集: TCPポート"><span>編集</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="rellink" style="margin-bottom: 0.5em; padding-left: 2em; font-size: 90%;" role="note">→詳細は「<a href="/wiki/%E3%83%9D%E3%83%BC%E3%83%88_(%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF)" title="ポート (コンピュータネットワーク)">ポート (コンピュータネットワーク)</a>」を参照</div> <p>TCPにおける<b>ポート</b>は「ホスト内アドレス」である<sup id="cite_ref-:0_30-0" class="reference"><a href="#cite_note-:0-30"><span class="cite-bracket">[</span>30<span class="cite-bracket">]</span></a></sup>。 </p><p>単一のホストでは複数のプロセス(≒ アプリケーション)が動作している。TCPはホスト内の"部屋番号"に相当する<i><b>ポート<sup id="cite_ref-:0_30-1" class="reference"><a href="#cite_note-:0-30"><span class="cite-bracket">[</span>30<span class="cite-bracket">]</span></a></sup></b></i>、ポートとインターネットアドレスの組み合わせである<b>ソケット</b>(<a href="/wiki/%E8%8B%B1%E8%AA%9E" title="英語">英</a>: <span lang="en">socket</span>)を定義し<sup id="cite_ref-31" class="reference"><a href="#cite_note-31"><span class="cite-bracket">[</span>31<span class="cite-bracket">]</span></a></sup>、このソケット-ソケット間で通信を行う。単一ホスト内に複数ポートが存在することで、単一のホスト上で複数のプロセスが同時にTCP通信できる(多重化)<sup id="cite_ref-32" class="reference"><a href="#cite_note-32"><span class="cite-bracket">[</span>32<span class="cite-bracket">]</span></a></sup>。各ポートは<b>ポート番号</b>として知られるポート識別子が設定されており<sup id="cite_ref-33" class="reference"><a href="#cite_note-33"><span class="cite-bracket">[</span>33<span class="cite-bracket">]</span></a></sup>、プロセスとポートを結びつけることでそのプロセスへの通信を可能にする<sup id="cite_ref-34" class="reference"><a href="#cite_note-34"><span class="cite-bracket">[</span>34<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-35" class="reference"><a href="#cite_note-35"><span class="cite-bracket">[</span>35<span class="cite-bracket">]</span></a></sup>。ポート番号は16ビット符号なし整数 (0-65535) の範囲をもつ。 </p><p><b>コネクション</b>(<a href="/wiki/%E8%8B%B1%E8%AA%9E" title="英語">英</a>: <span lang="en">connection</span>)は一組のソケットで識別される論理的通信路である<sup id="cite_ref-36" class="reference"><a href="#cite_note-36"><span class="cite-bracket">[</span>36<span class="cite-bracket">]</span></a></sup>。すなわち「ソケット <code>172.16.0.0:1024</code> とソケット <code>192.168.0.0:80</code> を繋ぐ論理的通信路」といった形で識別されるものがコネクションである。受信したTCPセグメントは特定のコネクションに属すると識別される。 </p><p>ポート番号は大きく3つに分類されており、ウェルノウン (well-known)、レジスタード (registered)、ダイナミック/プライベート (dynamic/private) がある。ウェルノウンポート番号は <a href="/wiki/Internet_Assigned_Numbers_Authority" title="Internet Assigned Numbers Authority">Internet Assigned Numbers Authority</a> (IANA) が割り当てを行っており、主にシステムレベルや重要なプロセスで使われている。サーバとして動作する有名なアプリケーションは、それらのポートを使いコネクション確立要求を待ち受けているのが一般的である。例えば、<a href="/wiki/File_Transfer_Protocol" title="File Transfer Protocol">FTP</a> (20, 21)、<a href="/wiki/Secure_Shell" title="Secure Shell">SSH</a> (22)、<a href="/wiki/Telnet" title="Telnet">TELNET</a> (23)、<a href="/wiki/Simple_Mail_Transfer_Protocol" title="Simple Mail Transfer Protocol">SMTP</a> (25)、<a href="/wiki/Hypertext_Transfer_Protocol" title="Hypertext Transfer Protocol">HTTP</a> (80) などがある。レジスタードポート番号は一般にエンドユーザー用アプリケーションが送信元の<a href="/wiki/%E3%82%A8%E3%83%95%E3%82%A7%E3%83%A1%E3%83%A9%E3%83%AB%E3%83%9D%E3%83%BC%E3%83%88" title="エフェメラルポート">エフェメラルポート</a>としてサーバに接続するのに使うが、サードパーティが登録した名前を持ったサービスの識別にも使われている。ダイナミック/プライベートポート番号もエンドユーザーのアプリケーションで使えるが、一般にそのような使い方は少ない。ダイナミック/プライベートポート番号は、それを使っている特定のTCPコネクションでしか意味を持たない。 </p> <div class="mw-heading mw-heading2"><h2 id="発展"><span id=".E7.99.BA.E5.B1.95"></span>発展</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Transmission_Control_Protocol&action=edit&section=34" title="節を編集: 発展"><span>編集</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>TCPは複雑なプロトコルである。長年重大な改良が実施されたり提案されたりしてきたが、1974年に <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r101121245"><a href="/wiki/Request_for_Comments" title="Request for Comments">RFC</a> <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc675">675</a> で最初の仕様が登場し、1981年9月に <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r101121245"><a href="/wiki/Request_for_Comments" title="Request for Comments">RFC</a> <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc793">793</a> でバージョン4が登場して以来、基本的動作はほとんど変わっていない。<link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r101121245"><a href="/wiki/Request_for_Comments" title="Request for Comments">RFC</a> <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc1122">1122</a> (Host Requirements for Internet Hosts) はTCPプロトコルの実装時の要求仕様を何点か明確にし、近年最も重要なTCP関連のRFCの1つである <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r101121245"><a href="/wiki/Request_for_Comments" title="Request for Comments">RFC</a> <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc2581">2581</a> (TCP Congestion Control) は輻輳を防ぐための新たなアルゴリズムを提示している。2001年、<link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r101121245"><a href="/wiki/Request_for_Comments" title="Request for Comments">RFC</a> <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc3168">3168</a> で<span title="リンク先の項目はまだありません。新規の執筆や他言語版からの翻訳が望まれます。"><a href="/w/index.php?title=%E6%98%8E%E7%A4%BA%E7%9A%84%E8%BC%BB%E8%BC%B3%E9%80%9A%E7%9F%A5&action=edit&redlink=1" class="new" title="「明示的輻輳通知」 (存在しないページ)">明示的輻輳通知</a><span style="font-size: 0.77em; font-weight: normal;" class="noprint">(<a href="https://en.wikipedia.org/wiki/Explicit_Congestion_Notification" class="extiw" title="en:Explicit Congestion Notification">英語版</a>)</span></span> (ECN) が提示された。2022年8月には、<link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r101121245"><a href="/wiki/Request_for_Comments" title="Request for Comments">RFC</a> <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc675">675</a>とそれ以降の拡張をまとめた<link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r101121245"><a href="/wiki/Request_for_Comments" title="Request for Comments">RFC</a> <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc9293">9293</a>が公開されている。 </p><p>当初の<span title="リンク先の項目はまだありません。新規の執筆や他言語版からの翻訳が望まれます。"><a href="/w/index.php?title=TCP%E8%BC%BB%E8%BC%B3%E5%9B%9E%E9%81%BF%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0&action=edit&redlink=1" class="new" title="「TCP輻輳回避アルゴリズム」 (存在しないページ)">TCP輻輳回避アルゴリズム</a><span style="font-size: 0.77em; font-weight: normal;" class="noprint">(<a href="https://en.wikipedia.org/wiki/TCP_congestion_avoidance_algorithm" class="extiw" title="en:TCP congestion avoidance algorithm">英語版</a>)</span></span>は "TCP Tahoe" と呼ばれているが、代替アルゴリズムも多数提案されている(<a href="https://en.wikipedia.org/wiki/TCP_Reno" class="extiw" title="en:TCP Reno">TCP Reno</a>、<a href="https://en.wikipedia.org/wiki/TCP_Vegas" class="extiw" title="en:TCP Vegas">TCP Vegas</a>、<a href="https://en.wikipedia.org/wiki/FAST_TCP" class="extiw" title="en:FAST TCP">FAST TCP</a>、<a href="https://en.wikipedia.org/wiki/TCP_New_Reno" class="extiw" title="en:TCP New Reno">TCP New Reno</a>、<a href="https://en.wikipedia.org/wiki/TCP_Hybla" class="extiw" title="en:TCP Hybla">TCP Hybla</a> など)。 </p><p>マルチパスTCP (MPTCP)<sup id="cite_ref-37" class="reference"><a href="#cite_note-37"><span class="cite-bracket">[</span>37<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-38" class="reference"><a href="#cite_note-38"><span class="cite-bracket">[</span>38<span class="cite-bracket">]</span></a></sup>は<a href="/wiki/Internet_Engineering_Task_Force" title="Internet Engineering Task Force">IETF</a>で近年進行中の改良で、リソース利用効率と冗長性を高めるためにTCPコネクションを複数経路にする試みである。Multipath TCP による冗長性は、無線ネットワークでリソースの<a href="/wiki/%E7%B5%B1%E8%A8%88%E5%A4%9A%E9%87%8D%E5%8C%96" title="統計多重化">統計多重化</a>を可能にし、TCPのスループットを劇的に高める<sup id="cite_ref-39" class="reference"><a href="#cite_note-39"><span class="cite-bracket">[</span>39<span class="cite-bracket">]</span></a></sup>。マルチパスTCP はデータセンター環境にも性能面の利点をもたらす<sup id="cite_ref-40" class="reference"><a href="#cite_note-40"><span class="cite-bracket">[</span>40<span class="cite-bracket">]</span></a></sup>。Multipath TCP の<a href="/wiki/%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9%E5%AE%9F%E8%A3%85" title="リファレンス実装">リファレンス実装</a><sup id="cite_ref-41" class="reference"><a href="#cite_note-41"><span class="cite-bracket">[</span>41<span class="cite-bracket">]</span></a></sup>が<a href="/wiki/Linux%E3%82%AB%E3%83%BC%E3%83%8D%E3%83%AB" title="Linuxカーネル">Linuxカーネル</a>向けに開発されている<sup id="cite_ref-42" class="reference"><a href="#cite_note-42"><span class="cite-bracket">[</span>42<span class="cite-bracket">]</span></a></sup>。 </p><p><a href="https://en.wikipedia.org/wiki/TCP_Cookie_Transactions" class="extiw" title="en:TCP Cookie Transactions">TCP Cookie Transactions</a> (TCPCT) は2009年12月に提案された拡張で、サーバをDoS攻撃から守ることを意図している。<a href="/wiki/SYN_cookies" title="SYN cookies">SYN cookies</a> とは異なり、TCPCTはウィンドウスケーリングなどの他のTCP拡張と共存できる。TCPCTは、短命なTCPコネクションをサーバが多数処理しなければならない<a href="/wiki/DNS_Security_Extensions" title="DNS Security Extensions">DNSSEC</a>での必要から設計された。 </p><p><a href="https://en.wikipedia.org/wiki/tcpcrypt" class="extiw" title="en:tcpcrypt">tcpcrypt</a> は2010年7月に提案された拡張で、TCP自身で直接暗号化するものである。透過的に動作可能なように設計されており、設定変更は不要である。<a href="/wiki/Transport_Layer_Security" title="Transport Layer Security">TLS</a> (SSL) とは異なり、tcpcrypt 自体は認証機構を持たないが、そのための簡単なプリミティブをアプリケーションに提供する。2010年現在、<a href="/wiki/Internet_Engineering_Task_Force" title="Internet Engineering Task Force">IETF</a> による最初のドラフトが公表されており、いくつかの主要プラットフォームでの実装が存在する。その後、2019年には実験的(Experimental)のステータスの<link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r101121245"><a href="/wiki/Request_for_Comments" title="Request for Comments">RFC</a> <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc8547">8547</a>および<link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r101121245"><a href="/wiki/Request_for_Comments" title="Request for Comments">RFC</a> <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc8548">8548</a>が公開されている。 </p> <div class="mw-heading mw-heading2"><h2 id="無線ネットワークでのTCP"><span id=".E7.84.A1.E7.B7.9A.E3.83.8D.E3.83.83.E3.83.88.E3.83.AF.E3.83.BC.E3.82.AF.E3.81.A7.E3.81.AETCP"></span>無線ネットワークでのTCP</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Transmission_Control_Protocol&action=edit&section=35" title="節を編集: 無線ネットワークでのTCP"><span>編集</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>TCPは有線ネットワーク向けに最適化されてきた。一般にパケット喪失は<a href="/wiki/%E8%BC%BB%E8%BC%B3%E5%88%B6%E5%BE%A1" title="輻輳制御">ネットワーク輻輳</a>の結果と判断され、予防のために輻輳ウィンドウサイズが大幅に縮小される。しかし無線の場合、減衰、影に入る、<a href="/wiki/%E3%83%8F%E3%83%B3%E3%83%89%E3%82%AA%E3%83%BC%E3%83%90%E3%83%BC" title="ハンドオーバー">ハンドオーバー</a>などの無線特有の原因でパケットを喪失することがあり、輻輳が原因とは限らない。無線パケット喪失による(誤った)輻輳ウィンドウサイズ縮小後、輻輳回避のための保守的なウィンドウサイズの縮小も行われる可能性がある。これにより無線リンクの効率が低下する。このような問題への対策が広く研究されている。提案されている対策としては、エンドツーエンド型の対策(クライアントとサーバの修正が必要)<sup id="cite_ref-Microsoft_Academic_Research_43-0" class="reference"><a href="#cite_note-Microsoft_Academic_Research-43"><span class="cite-bracket">[</span>43<span class="cite-bracket">]</span></a></sup>と<a href="/wiki/%E3%83%AA%E3%83%B3%E3%82%AF%E5%B1%A4" title="リンク層">リンク層</a>の対策(<a href="https://en.wikipedia.org/wiki/Radio_Link_Protocol" class="extiw" title="en:Radio Link Protocol">RLP</a>など)とプロキシを使った対策(端点以外のネットワークの何らかの変更が必要)<sup id="cite_ref-Microsoft_Academic_Research_43-1" class="reference"><a href="#cite_note-Microsoft_Academic_Research-43"><span class="cite-bracket">[</span>43<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-IEEE_Computer_Society_44-0" class="reference"><a href="#cite_note-IEEE_Computer_Society-44"><span class="cite-bracket">[</span>44<span class="cite-bracket">]</span></a></sup>がある。 </p> <div class="mw-heading mw-heading2"><h2 id="デバッグ"><span id=".E3.83.87.E3.83.90.E3.83.83.E3.82.B0"></span>デバッグ</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Transmission_Control_Protocol&action=edit&section=36" title="節を編集: デバッグ"><span>編集</span></a><span class="mw-editsection-bracket">]</span></span></div> <p><a href="/wiki/LAN%E3%82%A2%E3%83%8A%E3%83%A9%E3%82%A4%E3%82%B6" title="LANアナライザ">LANアナライザ</a>はネットワークリンク上のTCPトラフィックをインターセプトできる機器で、リンク上を通るパケットの内容を表示でき、ネットワーク、プロトコルスタック、TCPを使っているアプリケーションの<a href="/wiki/%E3%83%87%E3%83%90%E3%83%83%E3%82%B0" title="デバッグ">デバッグ</a>に有効である。一部の実装ではソケットの <tt>setsockopt()</tt> で <tt>SO_DEBUG</tt> オプションを指定でき、全パケット、TCPのステータス、ソケット上のイベントなどを出力でき、デバッグに有効である。他に、<a href="/wiki/Netstat" title="Netstat">netstat</a>もデバッグに使われる。 </p> <div class="mw-heading mw-heading2"><h2 id="代替となる選択肢"><span id=".E4.BB.A3.E6.9B.BF.E3.81.A8.E3.81.AA.E3.82.8B.E9.81.B8.E6.8A.9E.E8.82.A2"></span>代替となる選択肢</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Transmission_Control_Protocol&action=edit&section=37" title="節を編集: 代替となる選択肢"><span>編集</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>TCPの使用で明らかになった主要な問題は、ヘッドオブラインブロッキングとマルチホーミングの欠如による、コールシグナリングに許容できない遅延の発生である。さらに、TCPの多くの用途は適切とはいえない。(少なくとも通常の実装での)最大の問題は、喪失パケットの再送を受信してからでないと受信済みの後続のパケットをアプリケーションで利用できない点である。特に<a href="/wiki/%E3%82%B9%E3%83%88%E3%83%AA%E3%83%BC%E3%83%9F%E3%83%B3%E3%82%B0" title="ストリーミング">ストリーミング</a>、オンラインゲーム、<a href="/wiki/VoIP" title="VoIP">VoIP</a>などのリアルタイム型アプリケーションで重要な問題であり、データの順序性よりも適時性が重要である。 </p><p>歴史的・性能的理由により、<a href="/wiki/%E3%82%B9%E3%83%88%E3%83%AC%E3%83%BC%E3%82%B8%E3%82%A8%E3%83%AA%E3%82%A2%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF" title="ストレージエリアネットワーク">ストレージエリアネットワーク</a> (SAN) はTCP/IPよりも<a href="/wiki/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%90%E3%83%BC%E3%83%81%E3%83%A3%E3%83%8D%E3%83%AB" title="ファイバーチャネル">ファイバーチャネル</a>プロトコルを採用することが多い。 </p><p><a href="/wiki/%E7%B5%84%E3%81%BF%E8%BE%BC%E3%81%BF%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0" title="組み込みシステム">組み込みシステム</a>でも、<a href="/wiki/%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E3%83%96%E3%83%BC%E3%83%88" class="mw-redirect" title="ネットワークブート">ネットワークブート</a>や多数のクライアントからの簡単な要求を受け付けるサーバ(例えば<a href="/wiki/Domain_Name_System" title="Domain Name System">DNS</a>サーバ)でTCPの複雑さが問題となる可能性がある。さらには、<a href="/wiki/STUN" title="STUN">STUN</a>などの <a href="/wiki/NAT_traversal" title="NAT traversal">NAT traversal</a> 技法では相対的に複雑なTCPを使わずに、遥かに単純な方法で実現している。 </p><p>一般にTCPが適さない場合は <a href="/wiki/User_Datagram_Protocol" title="User Datagram Protocol">User Datagram Protocol</a> (UDP) を使用する。UDPはTCPと同様にアプリケーション<a href="/wiki/%E5%A4%9A%E9%87%8D%E5%8C%96" title="多重化">多重化</a>とチェックサム機構を提供するが、ストリームの構築や再送を行わず、アプリケーションにそういった機能の実装を任せている。 </p><p><a href="/wiki/Stream_Control_Transmission_Protocol" title="Stream Control Transmission Protocol">SCTP</a>は、TCPとよく似たストリーム指向のサービスを提供するプロトコルである。TCPより新しくさらに複雑であり、広く普及したとは言い難い。しかし、信頼性とリアルタイム性を同時に必要とする用途を意図して設計されている。 </p><p>TCPは広帯域環境でも問題を抱えている。<span title="リンク先の項目はまだありません。新規の執筆や他言語版からの翻訳が望まれます。"><a href="/w/index.php?title=TCP%E8%BC%BB%E8%BC%B3%E5%9B%9E%E9%81%BF%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0&action=edit&redlink=1" class="new" title="「TCP輻輳回避アルゴリズム」 (存在しないページ)">TCP輻輳回避アルゴリズム</a><span style="font-size: 0.77em; font-weight: normal;" class="noprint">(<a href="https://en.wikipedia.org/wiki/TCP_congestion_avoidance_algorithm" class="extiw" title="en:TCP congestion avoidance algorithm">英語版</a>)</span></span>は、送信者が事前にわからない場当たり的な環境ではうまく機能するが、通信パターンが予測可能な環境では <a href="/wiki/Asynchronous_Transfer_Mode" title="Asynchronous Transfer Mode">Asynchronous Transfer Mode</a> (ATM) のようなタイミングに基づくプロトコルの方がオーバーヘッドが小さく、うまく機能する。 </p> <div class="mw-heading mw-heading2"><h2 id="チェックサムの計算"><span id=".E3.83.81.E3.82.A7.E3.83.83.E3.82.AF.E3.82.B5.E3.83.A0.E3.81.AE.E8.A8.88.E7.AE.97"></span>チェックサムの計算</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Transmission_Control_Protocol&action=edit&section=38" title="節を編集: チェックサムの計算"><span>編集</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-heading mw-heading3"><h3 id="IPv4でのTCPチェックサム"><span id="IPv4.E3.81.A7.E3.81.AETCP.E3.83.81.E3.82.A7.E3.83.83.E3.82.AF.E3.82.B5.E3.83.A0"></span>IPv4でのTCPチェックサム</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Transmission_Control_Protocol&action=edit&section=39" title="節を編集: IPv4でのTCPチェックサム"><span>編集</span></a><span class="mw-editsection-bracket">]</span></span></div> <p><a href="/wiki/IPv4" title="IPv4">IPv4</a>上のTCPの場合、チェックサム計算法は <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r101121245"><a href="/wiki/Request_for_Comments" title="Request for Comments">RFC</a> <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc793">793</a> で定義されている。 </p> <blockquote> <p>チェックサム・フィールドは、ヘッダおよびテキストの全16ビットワードの1の補数の総和の1の補数の下位16ビットである。オクテット数が奇数の場合、最後のオクテットの右にゼロの列をパディングして16ビットワードにしてからチェックサムを計算する。このパディングはセグメントの一部として送信することはない。チェックサム計算時、チェックサム・フィールド自体はゼロとして計算する。 </p> </blockquote> <p>言い換えれば、正しくパディングした後、全16ビットワードを<a href="/wiki/%E7%AC%A6%E5%8F%B7%E4%BB%98%E6%95%B0%E5%80%A4%E8%A1%A8%E7%8F%BE#1の補数" title="符号付数値表現">1の補数表現</a>で加算していく。そして総和をビット毎に反転してチェックサム・フィールドに挿入する。チェックサム計算時には、IPv4パケットヘッダを真似た擬似ヘッダも含めて行うことになっている。擬似ヘッダを含めたチェックサム計算範囲を以下に示す。 </p> <table class="wikitable" style="text-align:center"> <caption>チェックサム計算用TCP擬似ヘッダ (IPv4) </caption> <tbody><tr> <th>ビットオフセット </th> <th colspan="4" width="11%">0–3 </th> <th colspan="4" width="11%">4–7 </th> <th colspan="8" width="22%">8–15 </th> <th colspan="16" width="44%">16–31 </th></tr> <tr> <th>0 </th> <td colspan="32" bgcolor="#FFDDDD">送信元<a href="/wiki/IP%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9" title="IPアドレス">IPアドレス</a> </td></tr> <tr> <th>32 </th> <td colspan="32" bgcolor="#FFDDDD">あて先<a href="/wiki/IP%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9" title="IPアドレス">IPアドレス</a> </td></tr> <tr> <th>64 </th> <td colspan="8" bgcolor="#FFDDDD">ゼロ </td> <td colspan="8" bgcolor="#FFDDDD"><a href="/wiki/%E3%83%97%E3%83%AD%E3%83%88%E3%82%B3%E3%83%AB%E7%95%AA%E5%8F%B7" class="mw-redirect" title="プロトコル番号">プロトコル番号</a> (6) </td> <td colspan="16" bgcolor="#FFDDDD">パケット長 </td></tr> <tr> <th>96 </th> <td colspan="16">送信元ポート </td> <td colspan="16">送信先ポート </td></tr> <tr> <th>128 </th> <td colspan="32"><a href="/w/index.php?title=%E3%82%B7%E3%83%BC%E3%82%B1%E3%83%B3%E3%82%B9%E7%95%AA%E5%8F%B7&action=edit&redlink=1" class="new" title="「シーケンス番号」 (存在しないページ)">シーケンス番号</a> </td></tr> <tr> <th>160 </th> <td colspan="32"><a href="/w/index.php?title=%E7%A2%BA%E8%AA%8D%E5%BF%9C%E7%AD%94%E7%95%AA%E5%8F%B7&action=edit&redlink=1" class="new" title="「確認応答番号」 (存在しないページ)">確認応答番号</a> </td></tr> <tr> <th>192 </th> <td colspan="4">ヘッダ長 </td> <td colspan="4">予約 </td> <td colspan="8">フラグ群 </td> <td colspan="16"><a href="/wiki/%E3%82%A6%E3%82%A3%E3%83%B3%E3%83%89%E3%82%A6%E3%82%B5%E3%82%A4%E3%82%BA" class="mw-redirect" title="ウィンドウサイズ">ウィンドウサイズ</a> </td></tr> <tr> <th>224 </th> <td colspan="16" bgcolor="#FFDDDD">チェックサム </td> <td colspan="16">緊急ポインタ </td></tr> <tr> <th>256 </th> <td colspan="32">オプション(あれば) </td></tr> <tr> <th>256/288+ </th> <td colspan="32"> <br />データ<br />  </td></tr></tbody></table> <p>上のピンクの部分はIPv4ヘッダの一部である。<a href="/wiki/%E3%83%97%E3%83%AD%E3%83%88%E3%82%B3%E3%83%AB%E7%95%AA%E5%8F%B7" class="mw-redirect" title="プロトコル番号">プロトコル番号</a>はTCPでは 6 である。パケット長はTCPヘッダとデータの合計の長さである。 </p> <div class="mw-heading mw-heading3"><h3 id="IPv6でのTCPチェックサム"><span id="IPv6.E3.81.A7.E3.81.AETCP.E3.83.81.E3.82.A7.E3.83.83.E3.82.AF.E3.82.B5.E3.83.A0"></span>IPv6でのTCPチェックサム</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Transmission_Control_Protocol&action=edit&section=40" title="節を編集: IPv6でのTCPチェックサム"><span>編集</span></a><span class="mw-editsection-bracket">]</span></span></div> <p><a href="/wiki/IPv6" title="IPv6">IPv6</a>上のTCPの場合、チェックサム計算法は <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r101121245"><a href="/wiki/Request_for_Comments" title="Request for Comments">RFC</a> <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc2460">2460</a> で示すように変更されている。 </p> <blockquote> <p>チェックサム計算にIPヘッダのアドレスを含める上位層のプロトコルでは、IPv4の32ビットアドレスの代わりにIPv6の128ビットのアドレスを使うよう変更しなければならない。 </p> </blockquote> <p>チェックサム計算で使うIPv6ヘッダを真似た擬似ヘッダは次のようになる。 </p> <table class="wikitable" style="text-align: center;"> <caption>チェックサム計算用TCP擬似ヘッダ (IPv6) </caption> <tbody><tr> <th>Bit offset </th> <th colspan="8" width="22%">0 - 7 </th> <th colspan="8" width="22%">8–15 </th> <th colspan="8" width="22%">16–23 </th> <th colspan="8" width="22%">24–31 </th></tr> <tr> <th>0 </th> <td colspan="32" rowspan="4" bgcolor="#FFDDDD">送信元IPアドレス </td></tr> <tr> <th>32 </th></tr> <tr> <th>64 </th></tr> <tr> <th>96 </th></tr> <tr> <th>128 </th> <td colspan="32" rowspan="4" bgcolor="#FFDDDD">あて先IPアドレス </td></tr> <tr> <th>160 </th></tr> <tr> <th>192 </th></tr> <tr> <th>224 </th></tr> <tr> <th>256 </th> <td colspan="32" bgcolor="#FFDDDD">パケット長 </td></tr> <tr> <th>288 </th> <td colspan="24" bgcolor="#FFDDDD">ゼロ </td> <td colspan="8" bgcolor="#FFDDDD">次のヘッダ </td></tr> <tr> <th>320 </th> <td colspan="16">送信元ポート </td> <td colspan="16">送信先ポート </td></tr> <tr> <th>352 </th> <td colspan="32">シーケンス番号 </td></tr> <tr> <th>384 </th> <td colspan="32">確認応答番号 </td></tr> <tr> <th>416 </th> <td colspan="4">ヘッダ長 </td> <td colspan="4">予約 </td> <td colspan="8">フラグ </td> <td colspan="16">ウィンドウサイズ </td></tr> <tr> <th>448 </th> <td colspan="16" bgcolor="#FFDDDD">チェックサム </td> <td colspan="16">緊急ポインタ </td></tr> <tr> <th>480 </th> <td colspan="32">オプション(あれば) </td></tr> <tr> <th>480/512+ </th> <td colspan="32"> <br />データ<br />  </td></tr></tbody></table> <ul><li>送信元IPアドレス - IPv6ヘッダにあるもの</li> <li>あて先IPアドレス - 最終送信先。ルーティングヘッダがある場合、TCPは最終のあて先アドレスを使用する。発信元ノードでは、そのアドレスはルーティングヘッダの最後の要素にあり、受信側ではIPv6ヘッダの着信アドレスフィールドにある。</li> <li>パケット長 - TCPのヘッダとデータをあわせた全長</li> <li>次のヘッダ - TCPの<a href="/wiki/%E3%83%97%E3%83%AD%E3%83%88%E3%82%B3%E3%83%AB%E7%95%AA%E5%8F%B7" class="mw-redirect" title="プロトコル番号">プロトコル番号</a></li></ul> <div class="mw-heading mw-heading3"><h3 id="チェックサム・オフロード"><span id=".E3.83.81.E3.82.A7.E3.83.83.E3.82.AF.E3.82.B5.E3.83.A0.E3.83.BB.E3.82.AA.E3.83.95.E3.83.AD.E3.83.BC.E3.83.89"></span>チェックサム・オフロード</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Transmission_Control_Protocol&action=edit&section=41" title="節を編集: チェックサム・オフロード"><span>編集</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="rellink" style="margin-bottom: 0.5em; padding-left: 2em; font-size: 90%;" role="note">→詳細は「<a href="/wiki/%E3%82%AA%E3%83%95%E3%83%AD%E3%83%BC%E3%83%89_(%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E7%94%A8%E8%AA%9E)" title="オフロード (コンピュータ用語)">オフロード (コンピュータ用語)</a>」を参照</div> <p>多くのTCP/IPスタック実装では、<a href="/wiki/%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E3%82%AB%E3%83%BC%E3%83%89" title="ネットワークカード">ネットワークカード</a>による自動チェックサム計算を補助的に使うオプションを用意している。これによりCPUサイクルをチェックサム計算に費やすコストを低減でき、ネットワーク性能を向上させることができる。 </p><p>なお、送信時にチェックサム計算をネットワークカードに任せていると、<a href="/wiki/LAN%E3%82%A2%E3%83%8A%E3%83%A9%E3%82%A4%E3%82%B6" title="LANアナライザ">LANアナライザ</a>がチェックサムエラーを検出することがある。 </p> <div class="mw-heading mw-heading2"><h2 id="脚注・出典"><span id=".E8.84.9A.E6.B3.A8.E3.83.BB.E5.87.BA.E5.85.B8"></span>脚注・出典</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Transmission_Control_Protocol&action=edit&section=42" title="節を編集: 脚注・出典"><span>編集</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="reflist" style="-moz-column-count:auto; -webkit-column-count:auto; column-count:auto; -moz-column-width: 30em; -webkit-column-width: 30em; column-width: 30em; list-style-type: decimal;"> <ol class="references"> <li id="cite_note-:02-1">^ <a href="#cite_ref-:02_1-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-:02_1-1"><sup><i><b>b</b></i></sup></a> <span class="reference-text">"Transmission Control Protocol (TCP) ... TCP provides a reliable, in-order, byte-stream service to applications. ... TCP is connection oriented" <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r101121245"><a href="/wiki/Request_for_Comments" title="Request for Comments">RFC</a> <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc9293">9293</a>.</span> </li> <li id="cite_note-2"><b><a href="#cite_ref-2">^</a></b> <span class="reference-text"><cite style="font-style:normal" class="citation journal">Vinton G. Cerf, Robert E. Kahn, (May 1974). <a rel="nofollow" class="external text" href="http://ece.ut.ac.ir/Classpages/F84/PrincipleofNetworkDesign/Papers/CK74.pdf">“<i>A Protocol for Packet Network Intercommunication</i>”</a>. <i>IEEE Transactions on Communications</i> <b>22</b> (5): 637-648<span style="display:none;">. <a rel="nofollow" class="external free" href="http://ece.ut.ac.ir/Classpages/F84/PrincipleofNetworkDesign/Papers/CK74.pdf">http://ece.ut.ac.ir/Classpages/F84/PrincipleofNetworkDesign/Papers/CK74.pdf</a></span>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=%27%27A+Protocol+for+Packet+Network+Intercommunication%27%27&rft.jtitle=IEEE+Transactions+on+Communications&rft.aulast=Vinton+G.+Cerf%2C+Robert+E.+Kahn%2C&rft.au=Vinton+G.+Cerf%2C+Robert+E.+Kahn%2C&rft.date=May+1974&rft.volume=22&rft.issue=5&rft.pages=637-648&rft_id=http%3A%2F%2Fece.ut.ac.ir%2FClasspages%2FF84%2FPrincipleofNetworkDesign%2FPapers%2FCK74.pdf&rfr_id=info:sid/ja.wikipedia.org:Transmission_Control_Protocol"><span style="display: none;"> </span></span></span> </li> <li id="cite_note-3"><b><a href="#cite_ref-3">^</a></b> <span class="reference-text">"TCP uses port numbers to identify application services and to multiplex distinct flows between hosts." <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r101121245"><a href="/wiki/Request_for_Comments" title="Request for Comments">RFC</a> <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc9293">9293</a>.</span> </li> <li id="cite_note-comer-4">^ <a href="#cite_ref-comer_4-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-comer_4-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-comer_4-2"><sup><i><b>c</b></i></sup></a> <a href="#cite_ref-comer_4-3"><sup><i><b>d</b></i></sup></a> <a href="#cite_ref-comer_4-4"><sup><i><b>e</b></i></sup></a> <a href="#cite_ref-comer_4-5"><sup><i><b>f</b></i></sup></a> <a href="#cite_ref-comer_4-6"><sup><i><b>g</b></i></sup></a> <a href="#cite_ref-comer_4-7"><sup><i><b>h</b></i></sup></a> <span class="reference-text"><cite style="font-style:normal" class="citation book"><a href="/wiki/%E3%83%80%E3%82%B0%E3%83%A9%E3%82%B9%E3%83%BB%E3%82%AB%E3%83%9E%E3%83%BC" title="ダグラス・カマー">Comer, Douglas E.</a> (2006). <i>Internetworking with TCP/IP:Principles, Protocols, and Architecture</i>. <b>1</b> (5th ed.). Prentice Hall. <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r101121245"><a href="/wiki/ISBN" title="ISBN">ISBN</a> <a href="/wiki/%E7%89%B9%E5%88%A5:%E6%96%87%E7%8C%AE%E8%B3%87%E6%96%99/0131876716" title="特別:文献資料/0131876716">0131876716</a></cite><span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Internetworking+with+TCP%2FIP%3APrinciples%2C+Protocols%2C+and+Architecture&rft.aulast=Comer&rft.aufirst=Douglas+E.&rft.au=Comer%2C%26%2332%3BDouglas+E.&rft.date=2006&rft.volume=1&rft.edition=5th&rft.pub=Prentice+Hall&rft.isbn=0131876716&rfr_id=info:sid/ja.wikipedia.org:Transmission_Control_Protocol"><span style="display: none;"> </span></span></span> </li> <li id="cite_note-5"><b><a href="#cite_ref-5">^</a></b> <span class="reference-text">"The application byte-stream is conveyed over the network via TCP segments" <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r101121245"><a href="/wiki/Request_for_Comments" title="Request for Comments">RFC</a> <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc9293">9293</a>.</span> </li> <li id="cite_note-6"><b><a href="#cite_ref-6">^</a></b> <span class="reference-text">"a TCP segment is the unit of data transferred between a pair of TCP modules." <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r101121245"><a href="/wiki/Request_for_Comments" title="Request for Comments">RFC</a> <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc9293">9293</a>.</span> </li> <li id="cite_note-7"><b><a href="#cite_ref-7">^</a></b> <span class="reference-text"><a rel="nofollow" class="external text" href="http://www.linktionary.com/t/tcp.html">TCP (Linktionary term)</a></span> </li> <li id="cite_note-8"><b><a href="#cite_ref-8">^</a></b> <span class="reference-text"><a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc791#section-2.1">RFC 791 - section 2.1</a></span> </li> <li id="cite_note-9"><b><a href="#cite_ref-9">^</a></b> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r101121245"><a href="/wiki/Request_for_Comments" title="Request for Comments">RFC</a> <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc793">793</a></span> </li> <li id="cite_note-10"><b><a href="#cite_ref-10">^</a></b> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r101121245"><a href="/wiki/Request_for_Comments" title="Request for Comments">RFC</a> <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc793">793</a> section 3.1</span> </li> <li id="cite_note-11"><b><a href="#cite_ref-11">^</a></b> <span class="reference-text"><a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc1323#page-9">RFC 1323, TCP Extensions for High Performance, Section 2.2</a></span> </li> <li id="cite_note-12"><b><a href="#cite_ref-12">^</a></b> <span class="reference-text"><a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc2018#section-2">RFC 2018, TCP Selective Acknowledgement Options, Section 2</a></span> </li> <li id="cite_note-13"><b><a href="#cite_ref-13">^</a></b> <span class="reference-text"><a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc2018#section-3">RFC 2018, TCP Selective Acknowledgement Options, Section 3</a></span> </li> <li id="cite_note-14"><b><a href="#cite_ref-14">^</a></b> <span class="reference-text"><a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc1323#page-11">RFC 1323, TCP Extensions for High Performance, Section 3.2</a></span> </li> <li id="cite_note-15"><b><a href="#cite_ref-15">^</a></b> <span class="reference-text"><a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc1146#page-2">RFC 1146, TCP Alternate Checksum Options</a></span> </li> <li id="cite_note-16"><b><a href="#cite_ref-16">^</a></b> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r101121245"><a href="/wiki/Request_for_Comments" title="Request for Comments">RFC</a> <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc793">793</a> Section 3.2</span> </li> <li id="cite_note-17"><b><a href="#cite_ref-17">^</a></b> <span class="reference-text"><cite class="citation web" style="font-style:normal">“<a rel="nofollow" class="external text" href="http://www.linfo.org/tcp.html">TCP Definition</a>”. <span title="">2011年3月12日</span>閲覧。</cite></span> </li> <li id="cite_note-18"><b><a href="#cite_ref-18">^</a></b> <span class="reference-text"><cite style="font-style:normal" class="citation journal">Stone; Partridge (2000). <a rel="nofollow" class="external text" href="http://dl.acm.org/citation.cfm?id=347561&dl=ACM&coll=DL&CFID=67856317&CFTOKEN=90549758">“When The CRC and TCP Checksum Disagree”</a>. <i>Sigcomm</i><span style="display:none;">. <a rel="nofollow" class="external free" href="http://dl.acm.org/citation.cfm?id=347561&dl=ACM&coll=DL&CFID=67856317&CFTOKEN=90549758">http://dl.acm.org/citation.cfm?id=347561&dl=ACM&coll=DL&CFID=67856317&CFTOKEN=90549758</a></span>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=When+The+CRC+and+TCP+Checksum+Disagree&rft.jtitle=Sigcomm&rft.aulast=Stone&rft.au=Stone&rft.au=Partridge&rft.date=2000&rft_id=http%3A%2F%2Fdl.acm.org%2Fcitation.cfm%3Fid%3D347561%26dl%3DACM%26coll%3DDL%26CFID%3D67856317%26CFTOKEN%3D90549758&rfr_id=info:sid/ja.wikipedia.org:Transmission_Control_Protocol"><span style="display: none;"> </span></span></span> </li> <li id="cite_note-19"><b><a href="#cite_ref-19">^</a></b> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r101121245"><cite id="CITEREFPostel1983" class="citation cs1 cs1-prop-foreign-lang-source"><a href="/wiki/%E3%82%B8%E3%83%A7%E3%83%B3%E3%83%BB%E3%83%9D%E3%82%B9%E3%83%86%E3%83%AB" title="ジョン・ポステル">Postel, J.</a> (November 1983). <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc879#section-3">"3. The TCP Maximum Segment Size Option"</a>. <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc879"><i>The TCP Maximum Segment Size and Related Topics</i></a> (英語). <a href="/wiki/Internet_Engineering_Task_Force" title="Internet Engineering Task Force">IETF</a>. sec. 3. <a href="/wiki/Doi_(%E8%AD%98%E5%88%A5%E5%AD%90)" class="mw-redirect" title="Doi (識別子)">doi</a>:<span class="cs1-lock-free" title="無料閲覧可"><a rel="nofollow" class="external text" href="https://doi.org/10.17487%2FRFC0879">10.17487/RFC0879</a></span>. <a href="/wiki/Request_for_Comments" title="Request for Comments">RFC</a> <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc879">879</a><span class="reference-accessdate">. 2024年9月2日閲覧</span>。<q>The MSS can be used completely independently in each direction of data flow. The result may be quite different maximum sizes in the two directions.</q></cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=bookitem&rft.atitle=3.+The+TCP+Maximum+Segment+Size+Option&rft.btitle=The+TCP+Maximum+Segment+Size+and+Related+Topics&rft.pages=sec.-3&rft.pub=IETF&rft.date=1983-11&rft_id=info%3Adoi%2F10.17487%2FRFC0879&rft.aulast=Postel&rft.aufirst=J.&rft_id=https%3A%2F%2Fdatatracker.ietf.org%2Fdoc%2Fhtml%2Frfc879%26%23035%3Bsection-3&rfr_id=info%3Asid%2Fja.wikipedia.org%3ATransmission+Control+Protocol" class="Z3988"></span></span> </li> <li id="cite_note-20"><b><a href="#cite_ref-20">^</a></b> <span class="reference-text"><a rel="nofollow" class="external text" href="http://lwn.net/Articles/92727/">TCP window scaling and broken routers</a> lwn.net</span> </li> <li id="cite_note-21"><b><a href="#cite_ref-21">^</a></b> <span class="reference-text"><cite class="citation web" style="font-style:normal">Gont, Fernando (2008年11月). “<a rel="nofollow" class="external text" href="http://www.gont.com.ar/talks/IETF73/ietf73-tcpm-urgent-data.ppt">On the implementation of TCP urgent data</a>”.  73rd IETF meeting. <span title="">2009年1月4日</span>閲覧。</cite></span> </li> <li id="cite_note-22"><b><a href="#cite_ref-22">^</a></b> <span class="reference-text"><cite style="font-style:normal" class="citation book">Peterson, Larry (2003). <i>Computer Networks</i>. Morgan Kaufmann. pp. 401. <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r101121245"><a href="/wiki/ISBN" title="ISBN">ISBN</a> <a href="/wiki/%E7%89%B9%E5%88%A5:%E6%96%87%E7%8C%AE%E8%B3%87%E6%96%99/155860832X" title="特別:文献資料/155860832X">155860832X</a></cite><span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Computer+Networks&rft.aulast=Peterson&rft.aufirst=Larry&rft.au=Peterson%2C%26%2332%3BLarry&rft.date=2003&rft.pages=pp.%26nbsp%3B401&rft.pub=Morgan+Kaufmann&rft.isbn=155860832X&rfr_id=info:sid/ja.wikipedia.org:Transmission_Control_Protocol"><span style="display: none;"> </span></span></span> </li> <li id="cite_note-Stevens2006-23"><b><a href="#cite_ref-Stevens2006_23-0">^</a></b> <span class="reference-text"><cite style="font-style:normal" class="citation book">Richard W. Stevens (2006). <a rel="nofollow" class="external text" href="https://books.google.com/books?id=b2elQwAACAAJ"><i>TCP/IP Illustrated. Vol. 1, The protocols</i></a>. Addison-Wesley. pp. Chapter 20. <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r101121245"><a href="/wiki/ISBN" title="ISBN">ISBN</a> <a href="/wiki/%E7%89%B9%E5%88%A5:%E6%96%87%E7%8C%AE%E8%B3%87%E6%96%99/978-0-201-63346-7" title="特別:文献資料/978-0-201-63346-7">978-0-201-63346-7</a><span style="display:none;">. <a rel="nofollow" class="external free" href="https://books.google.com/books?id=b2elQwAACAAJ">https://books.google.com/books?id=b2elQwAACAAJ</a></span> <span class="reference-accessdate"><span title="">2011年11月14日</span>閲覧。</span></cite><span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=TCP%2FIP+Illustrated.+Vol.+1%2C+The+protocols&rft.aulast=Richard+W.+Stevens&rft.au=Richard+W.+Stevens&rft.date=2006&rft.pages=pp.%26nbsp%3BChapter+20&rft.pub=Addison-Wesley&rft.isbn=978-0-201-63346-7&rft_id=https%3A%2F%2Fbooks.google.com%2Fbooks%3Fid%3Db2elQwAACAAJ&rfr_id=info:sid/ja.wikipedia.org:Transmission_Control_Protocol"><span style="display: none;"> </span></span></span> </li> <li id="cite_note-24"><b><a href="#cite_ref-24">^</a></b> <span class="reference-text"><cite style="font-style:normal" class="citation book"><a href="/wiki/%E3%82%A2%E3%83%B3%E3%83%89%E3%83%AA%E3%83%A5%E3%83%BC%E3%83%BB%E3%82%BF%E3%83%8D%E3%83%B3%E3%83%90%E3%82%A6%E3%83%A0" title="アンドリュー・タネンバウム">Tanenbaum, Andrew S.</a> (2003-03-17). <i>Computer Networks</i> (Fourth ed.). Prentice Hall. <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r101121245"><a href="/wiki/ISBN" title="ISBN">ISBN</a> <a href="/wiki/%E7%89%B9%E5%88%A5:%E6%96%87%E7%8C%AE%E8%B3%87%E6%96%99/0-13-066102-3" title="特別:文献資料/0-13-066102-3">0-13-066102-3</a></cite><span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Computer+Networks&rft.aulast=Tanenbaum&rft.aufirst=Andrew+S.&rft.au=Tanenbaum%2C%26%2332%3BAndrew+S.&rft.date=2003-03-17&rft.edition=Fourth&rft.pub=Prentice+Hall&rft.isbn=0-13-066102-3&rfr_id=info:sid/ja.wikipedia.org:Transmission_Control_Protocol"><span style="display: none;"> </span></span></span> </li> <li id="cite_note-25"><b><a href="#cite_ref-25">^</a></b> <span class="reference-text"><a rel="nofollow" class="external text" href="http://www.cgisecurity.com/2009/02/security-assessment-of-the-transmission-control-protocol-tcp.html">Security Assessment of the Transmission Control Protocol (TCP)</a></span> </li> <li id="cite_note-26"><b><a href="#cite_ref-26">^</a></b> <span class="reference-text"><a rel="nofollow" class="external text" href="http://tools.ietf.org/html/draft-ietf-tcpm-tcp-security">Security Assessment of the Transmission Control Protocol (TCP)</a></span> </li> <li id="cite_note-27"><b><a href="#cite_ref-27">^</a></b> <span class="reference-text"><a rel="nofollow" class="external free" href="http://www.gont.com.ar/talks/hacklu2009/fgont-hacklu2009-tcp-security.pdf">http://www.gont.com.ar/talks/hacklu2009/fgont-hacklu2009-tcp-security.pdf</a> Some insights about the recent TCP DoS (Denial of Service) vulnerabilities</span> </li> <li id="cite_note-28"><b><a href="#cite_ref-28">^</a></b> <span class="reference-text"><a rel="nofollow" class="external text" href="http://phrack.org/issues.html?issue=66&id=9#article">Exploiting TCP and the Persist Timer Infiniteness</a></span> </li> <li id="cite_note-29"><b><a href="#cite_ref-29">^</a></b> <span class="reference-text"><a rel="nofollow" class="external text" href="http://www.usenix.org/publications/library/proceedings/security95/joncheray.html">Laurent Joncheray, <i>Simple Active Attack Against TCP</i>, 1995</a></span> </li> <li id="cite_note-:0-30">^ <a href="#cite_ref-:0_30-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-:0_30-1"><sup><i><b>b</b></i></sup></a> <span class="reference-text">the TCP provides a set of addresses or ports within each host. [rfc:793 <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r101121245"><a href="/wiki/Request_for_Comments" title="Request for Comments">RFC</a> <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc793">793</a> - TRANSMISSION CONTROL PROTOCOL]</span> </li> <li id="cite_note-31"><b><a href="#cite_ref-31">^</a></b> <span class="reference-text">"Glossary ... socket ... An address that specifically includes a port identifier, that is, the concatenation of an Internet Address with a TCP port." <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r101121245"><a href="/wiki/Request_for_Comments" title="Request for Comments">RFC</a> <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc9293">9293</a>.</span> </li> <li id="cite_note-32"><b><a href="#cite_ref-32">^</a></b> <span class="reference-text">To allow for many processes within a single Host to use TCP communication facilities simultaneously, the TCP provides a set of addresses or ports within each host. [rfc:793 <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r101121245"><a href="/wiki/Request_for_Comments" title="Request for Comments">RFC</a> <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc793">793</a> - TRANSMISSION CONTROL PROTOCOL]</span> </li> <li id="cite_note-33"><b><a href="#cite_ref-33">^</a></b> <span class="reference-text">To identify the separate data streams that a TCP may handle, the TCP provides a port identifier. [rfc:793 <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r101121245"><a href="/wiki/Request_for_Comments" title="Request for Comments">RFC</a> <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc793">793</a> - TRANSMISSION CONTROL PROTOCOL]</span> </li> <li id="cite_note-34"><b><a href="#cite_ref-34">^</a></b> <span class="reference-text">Since a process may need to distinguish among several communication streams between itself and another process (or processes), we imagine that each process may have a number of ports through which it communicates with the ports of other processes. [rfc:793 <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r101121245"><a href="/wiki/Request_for_Comments" title="Request for Comments">RFC</a> <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc793">793</a> - TRANSMISSION CONTROL PROTOCOL]</span> </li> <li id="cite_note-35"><b><a href="#cite_ref-35">^</a></b> <span class="reference-text">uniquely allocating a group of ports to a given process [rfc:793 <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r101121245"><a href="/wiki/Request_for_Comments" title="Request for Comments">RFC</a> <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc793">793</a> - TRANSMISSION CONTROL PROTOCOL]</span> </li> <li id="cite_note-36"><b><a href="#cite_ref-36">^</a></b> <span class="reference-text">"Glossary ... connection A logical communication path identified by a pair of sockets." <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r101121245"><a href="/wiki/Request_for_Comments" title="Request for Comments">RFC</a> <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc9293">9293</a>.</span> </li> <li id="cite_note-37"><b><a href="#cite_ref-37">^</a></b> <span class="reference-text"><a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc6182">RFC 6182 Architectural Guidelines for Multipath TCP Development</a></span> </li> <li id="cite_note-38"><b><a href="#cite_ref-38">^</a></b> <span class="reference-text"><a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc8684">RFC 8684 TCP Extensions for Multipath Operation with Multiple Addresses</a></span> </li> <li id="cite_note-39"><b><a href="#cite_ref-39">^</a></b> <span class="reference-text"><a rel="nofollow" class="external text" href="http://portal.acm.org/citation.cfm?id=1794199">TCP with feed-forward source coding for wireless downlink networks</a></span> </li> <li id="cite_note-40"><b><a href="#cite_ref-40">^</a></b> <span class="reference-text"><cite style="font-style:normal" class="citation journal">Raiciu; Barre; Pluntke; Greenhalgh; Wischik; Handley (2011). <a rel="nofollow" class="external text" href="http://inl.info.ucl.ac.be/publications/improving-datacenter-performance-and-robustness-multipath-tcp">“Improving datacenter performance and robustness with multipath TCP”</a>. <i>Sigcomm</i><span style="display:none;">. <a rel="nofollow" class="external free" href="http://inl.info.ucl.ac.be/publications/improving-datacenter-performance-and-robustness-multipath-tcp">http://inl.info.ucl.ac.be/publications/improving-datacenter-performance-and-robustness-multipath-tcp</a></span>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=Improving+datacenter+performance+and+robustness+with+multipath+TCP&rft.jtitle=Sigcomm&rft.aulast=Raiciu&rft.au=Raiciu&rft.au=Barre&rft.au=Pluntke&rft.au=Greenhalgh&rft.au=Wischik&rft.au=Handley&rft.date=2011&rft_id=http%3A%2F%2Finl.info.ucl.ac.be%2Fpublications%2Fimproving-datacenter-performance-and-robustness-multipath-tcp&rfr_id=info:sid/ja.wikipedia.org:Transmission_Control_Protocol"><span style="display: none;"> </span></span></span> </li> <li id="cite_note-41"><b><a href="#cite_ref-41">^</a></b> <span class="reference-text"><a rel="nofollow" class="external text" href="http://mptcp.info.ucl.ac.be">MultiPath TCP - Linux Kernel implementation</a></span> </li> <li id="cite_note-42"><b><a href="#cite_ref-42">^</a></b> <span class="reference-text"><cite style="font-style:normal" class="citation journal">Barre; Paasch; Bonaventure (2011). <a rel="nofollow" class="external text" href="http://inl.info.ucl.ac.be/publications/multipath-tcp-theory-practice">“MultiPath TCP: From Theory to Practice”</a>. <i>IFIP Networking</i><span style="display:none;">. <a rel="nofollow" class="external free" href="http://inl.info.ucl.ac.be/publications/multipath-tcp-theory-practice">http://inl.info.ucl.ac.be/publications/multipath-tcp-theory-practice</a></span>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=MultiPath+TCP%3A+From+Theory+to+Practice&rft.jtitle=IFIP+Networking&rft.aulast=Barre&rft.au=Barre&rft.au=Paasch&rft.au=Bonaventure&rft.date=2011&rft_id=http%3A%2F%2Finl.info.ucl.ac.be%2Fpublications%2Fmultipath-tcp-theory-practice&rfr_id=info:sid/ja.wikipedia.org:Transmission_Control_Protocol"><span style="display: none;"> </span></span></span> </li> <li id="cite_note-Microsoft_Academic_Research-43">^ <a href="#cite_ref-Microsoft_Academic_Research_43-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-Microsoft_Academic_Research_43-1"><sup><i><b>b</b></i></sup></a> <span class="reference-text"><cite class="citation web" style="font-style:normal">“<a rel="nofollow" class="external text" href="http://academic.research.microsoft.com/Paper/3352358.aspx">TCP performance over CDMA2000 RLP</a>”. <span title="">2010年8月30日</span>閲覧。</cite></span> </li> <li id="cite_note-IEEE_Computer_Society-44"><b><a href="#cite_ref-IEEE_Computer_Society_44-0">^</a></b> <span class="reference-text"><cite style="font-style:normal" class="citation journal">Muhammad Adeel & Ahmad Ali Iqbal (2004). <a rel="nofollow" class="external text" href="http://www.computer.org/portal/web/csdl/doi/10.1109/ITNG.2007.190">“TCP Congestion Window Optimization for CDMA2000 Packet Data Networks”</a>. <i>International Conference on Information Technology (ITNG'07)</i>: 31-35. <a href="/wiki/Doi_(%E8%AD%98%E5%88%A5%E5%AD%90)" class="mw-redirect" title="Doi (識別子)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1109%2FITNG.2007.190">10.1109/ITNG.2007.190</a>. <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r101121245"><a href="/wiki/ISBN" title="ISBN">ISBN</a> <a href="/wiki/%E7%89%B9%E5%88%A5:%E6%96%87%E7%8C%AE%E8%B3%87%E6%96%99/978-0-7695-2776-5" title="特別:文献資料/978-0-7695-2776-5">978-0-7695-2776-5</a><span style="display:none;">. <a rel="nofollow" class="external free" href="http://www.computer.org/portal/web/csdl/doi/10.1109/ITNG.2007.190">http://www.computer.org/portal/web/csdl/doi/10.1109/ITNG.2007.190</a></span>.</cite><span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=TCP+Congestion+Window+Optimization+for+CDMA2000+Packet+Data+Networks&rft.jtitle=International+Conference+on+Information+Technology+%28ITNG%2707%29&rft.aulast=Muhammad+Adeel+%26+Ahmad+Ali+Iqbal&rft.au=Muhammad+Adeel+%26+Ahmad+Ali+Iqbal&rft.date=2004&rft.pages=31-35&rft_id=info:doi/10.1109%2FITNG.2007.190&rft.isbn=978-0-7695-2776-5&rft_id=http%3A%2F%2Fwww.computer.org%2Fportal%2Fweb%2Fcsdl%2Fdoi%2F10.1109%2FITNG.2007.190&rfr_id=info:sid/ja.wikipedia.org:Transmission_Control_Protocol"><span style="display: none;"> </span></span></span> </li> </ol></div> <div class="mw-heading mw-heading2"><h2 id="参考文献"><span id=".E5.8F.82.E8.80.83.E6.96.87.E7.8C.AE"></span>参考文献</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Transmission_Control_Protocol&action=edit&section=43" title="節を編集: 参考文献"><span>編集</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><a href="/wiki/W%E3%83%BB%E3%83%AA%E3%83%81%E3%83%A3%E3%83%BC%E3%83%89%E3%83%BB%E3%82%B9%E3%83%86%E3%82%A3%E3%83%BC%E3%83%B4%E3%83%B3%E3%82%B9" title="W・リチャード・スティーヴンス">W. Richard Stevens</a>. TCP/IP Illustrated, Volume 1: The Protocols. <a href="/wiki/%E7%89%B9%E5%88%A5:%E6%96%87%E7%8C%AE%E8%B3%87%E6%96%99/0201633469" class="internal mw-magiclink-isbn">ISBN 0-201-63346-9</a></li> <li><a href="/wiki/W%E3%83%BB%E3%83%AA%E3%83%81%E3%83%A3%E3%83%BC%E3%83%89%E3%83%BB%E3%82%B9%E3%83%86%E3%82%A3%E3%83%BC%E3%83%B4%E3%83%B3%E3%82%B9" title="W・リチャード・スティーヴンス">W. Richard Stevens</a> and Gary R. Wright. TCP/IP Illustrated, Volume 2: The Implementation. <a href="/wiki/%E7%89%B9%E5%88%A5:%E6%96%87%E7%8C%AE%E8%B3%87%E6%96%99/020163354X" class="internal mw-magiclink-isbn">ISBN 0-201-63354-X</a></li> <li><a href="/wiki/W%E3%83%BB%E3%83%AA%E3%83%81%E3%83%A3%E3%83%BC%E3%83%89%E3%83%BB%E3%82%B9%E3%83%86%E3%82%A3%E3%83%BC%E3%83%B4%E3%83%B3%E3%82%B9" title="W・リチャード・スティーヴンス">W. Richard Stevens</a>. TCP/IP Illustrated, Volume 3: <a href="https://en.wikipedia.org/wiki/T/TCP" class="extiw" title="en:T/TCP">TCP for Transactions</a>, <a href="/wiki/Hypertext_Transfer_Protocol" title="Hypertext Transfer Protocol">HTTP</a>, <a href="/wiki/Network_News_Transfer_Protocol" title="Network News Transfer Protocol">NNTP</a>, and the <a href="https://en.wikipedia.org/wiki/unix_domain_sockets" class="extiw" title="en:unix domain sockets">UNIX Domain</a> Protocols. <a href="/wiki/%E7%89%B9%E5%88%A5:%E6%96%87%E7%8C%AE%E8%B3%87%E6%96%99/0201634953" class="internal mw-magiclink-isbn">ISBN 0-201-63495-3</a></li></ul> <div class="mw-heading mw-heading2"><h2 id="学習用参考書"><span id=".E5.AD.A6.E7.BF.92.E7.94.A8.E5.8F.82.E8.80.83.E6.9B.B8"></span>学習用参考書</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Transmission_Control_Protocol&action=edit&section=44" title="節を編集: 学習用参考書"><span>編集</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li>小口正人:「コンピュータネットワーク入門―TCP/IPプロトコル群とセキュリティ」、サイエンス社、<a href="/wiki/%E7%89%B9%E5%88%A5:%E6%96%87%E7%8C%AE%E8%B3%87%E6%96%99/9784781911663" class="internal mw-magiclink-isbn">ISBN 978-4781911663</a> (2007年5月)。</li> <li>村公保:「基礎からわかるTCP/IP ネットワークコンピューティング入門 第3版」、オーム社、<a href="/wiki/%E7%89%B9%E5%88%A5:%E6%96%87%E7%8C%AE%E8%B3%87%E6%96%99/9784274050732" class="internal mw-magiclink-isbn">ISBN 978-4274050732</a>(2015年2月26日)。</li> <li>安永遼真、中山悠、丸田一輝:「TCP技術入門 ――進化を続ける基本プロトコル」、技術評論社、<a href="/wiki/%E7%89%B9%E5%88%A5:%E6%96%87%E7%8C%AE%E8%B3%87%E6%96%99/9784297106232" class="internal mw-magiclink-isbn">ISBN 978-4297106232</a>(2019年7月6日)。</li> <li>みやたひろし:「図解入門TCP/IP 仕組み・動作が見てわかる」、SBクリエイティブ、<a href="/wiki/%E7%89%B9%E5%88%A5:%E6%96%87%E7%8C%AE%E8%B3%87%E6%96%99/9784815604974" class="internal mw-magiclink-isbn">ISBN 978-4815604974</a>(2020年12月22日)。</li></ul> <div class="mw-heading mw-heading2"><h2 id="関連項目"><span id=".E9.96.A2.E9.80.A3.E9.A0.85.E7.9B.AE"></span>関連項目</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Transmission_Control_Protocol&action=edit&section=45" title="節を編集: 関連項目"><span>編集</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><a href="/wiki/%E3%83%9D%E3%83%BC%E3%83%88%E7%95%AA%E5%8F%B7" class="mw-redirect" title="ポート番号">ポート番号</a></li> <li><a href="/wiki/TCP%E3%82%84UDP%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8B%E3%83%9D%E3%83%BC%E3%83%88%E7%95%AA%E5%8F%B7%E3%81%AE%E4%B8%80%E8%A6%A7" title="TCPやUDPにおけるポート番号の一覧">TCPやUDPにおけるポート番号の一覧</a></li> <li><a href="/wiki/Maximum_Transmission_Unit" title="Maximum Transmission Unit">Maximum Transmission Unit</a> (MTU)</li> <li><a href="/wiki/%E6%9C%80%E5%A4%A7%E3%82%BB%E3%82%B0%E3%83%A1%E3%83%B3%E3%83%88%E3%82%B5%E3%82%A4%E3%82%BA" title="最大セグメントサイズ">最大セグメントサイズ</a> (MSS)</li> <li><a href="/wiki/SYN_flood" title="SYN flood">SYN flood</a></li> <li><a href="/wiki/SYN_cookies" title="SYN cookies">SYN cookies</a></li> <li><a href="/wiki/User_Datagram_Protocol" title="User Datagram Protocol">User Datagram Protocol</a></li> <li><a href="/wiki/Stream_Control_Transmission_Protocol" title="Stream Control Transmission Protocol">Stream Control Transmission Protocol</a> (SCTP)</li> <li><a href="/wiki/Datagram_Congestion_Control_Protocol" title="Datagram Congestion Control Protocol">Datagram Congestion Control Protocol</a> (DCCP)</li> <li><a href="/wiki/%E3%83%88%E3%83%A9%E3%83%B3%E3%82%B9%E3%83%9D%E3%83%BC%E3%83%88%E5%B1%A4" title="トランスポート層">トランスポート層</a></li> <li><a href="/wiki/%E3%82%A8%E3%83%B3%E3%83%89%E3%83%84%E3%83%BC%E3%82%A8%E3%83%B3%E3%83%89%E5%8E%9F%E7%90%86" title="エンドツーエンド原理">エンドツーエンド原理</a></li> <li><a href="/wiki/%E4%BA%8C%E4%BA%BA%E3%81%AE%E5%B0%86%E8%BB%8D%E5%95%8F%E9%A1%8C" title="二人の将軍問題">二人の将軍問題</a></li> <li><a href="/wiki/%E3%82%A6%E3%82%A3%E3%83%B3%E3%83%89%E3%82%A6%E3%82%B5%E3%82%A4%E3%82%BA" class="mw-redirect" title="ウィンドウサイズ">ウィンドウサイズ</a> - <a href="/wiki/%E3%82%B9%E3%83%A9%E3%82%A4%E3%83%87%E3%82%A3%E3%83%B3%E3%82%B0%E3%82%A6%E3%82%A3%E3%83%B3%E3%83%89%E3%82%A6" title="スライディングウィンドウ">スライディングウィンドウ</a> - <a href="/wiki/%E3%83%95%E3%83%AD%E3%83%BC%E5%88%B6%E5%BE%A1" title="フロー制御">フロー制御</a></li> <li><a href="/wiki/Bufferbloat" title="Bufferbloat">Bufferbloat</a></li></ul> <div class="mw-heading mw-heading2"><h2 id="外部リンク"><span id=".E5.A4.96.E9.83.A8.E3.83.AA.E3.83.B3.E3.82.AF"></span>外部リンク</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Transmission_Control_Protocol&action=edit&section=46" title="節を編集: 外部リンク"><span>編集</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-heading mw-heading3"><h3 id="RFC">RFC</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Transmission_Control_Protocol&action=edit&section=47" title="節を編集: RFC"><span>編集</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r101121245"><a href="/wiki/Request_for_Comments" title="Request for Comments">RFC</a> <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc675">675</a> - Specification of Internet Transmission Control Program 1974年12月版</li> <li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r101121245"><a href="/wiki/Request_for_Comments" title="Request for Comments">RFC</a> <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc1122">1122</a> - Requirements for Internet Hosts -- Communication Layers (TCP に関する細かい修正が含まれている)</li> <li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r101121245"><a href="/wiki/Request_for_Comments" title="Request for Comments">RFC</a> <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc7323">7323</a> - TCP Extensions for High Performance</li> <li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r101121245"><a href="/wiki/Request_for_Comments" title="Request for Comments">RFC</a> <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc2018">2018</a> - TCP Selective Acknowledgment Options</li> <li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r101121245"><a href="/wiki/Request_for_Comments" title="Request for Comments">RFC</a> <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc6298">6298</a> - Computing TCP's Retransmission Timer</li> <li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r101121245"><a href="/wiki/Request_for_Comments" title="Request for Comments">RFC</a> <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc3390">3390</a> - Increasing TCP's Initial Window</li> <li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r101121245"><a href="/wiki/Request_for_Comments" title="Request for Comments">RFC</a> <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc6582">6582</a> - The NewReno Modification to TCP's Fast Recovery Algorithm</li> <li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r101121245"><a href="/wiki/Request_for_Comments" title="Request for Comments">RFC</a> <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc7414">7414</a> - A Roadmap for TCP Specification Documents</li> <li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r101121245"><a href="/wiki/Request_for_Comments" title="Request for Comments">RFC</a> <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc5681">5681</a> - TCP Congestion Control</li> <li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r101121245"><a href="/wiki/Request_for_Comments" title="Request for Comments">RFC</a> <a rel="nofollow" class="external text" href="https://datatracker.ietf.org/doc/html/rfc9293">9293</a> - Transmission Control Protocol (TCP): 現行の仕様</li></ul> <div class="mw-heading mw-heading3"><h3 id="その他"><span id=".E3.81.9D.E3.81.AE.E4.BB.96"></span>その他</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Transmission_Control_Protocol&action=edit&section=48" title="節を編集: その他"><span>編集</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><a rel="nofollow" class="external text" href="https://conservancy.umn.edu/handle/11299/107387">Oral history interview with Robert E. Kahn</a>, <a href="/wiki/%E3%83%81%E3%83%A3%E3%83%BC%E3%83%AB%E3%82%BA%E3%83%BB%E3%83%90%E3%83%99%E3%83%83%E3%82%B8%E7%A0%94%E7%A9%B6%E6%89%80" title="チャールズ・バベッジ研究所">Charles Babbage Institute</a>, University of Minnesota, Minneapolis.</li> <li><a rel="nofollow" class="external text" href="https://condor.depaul.edu/~jkristof/technotes/tcp.html">John Kristoff's Overview of TCP</a> - TCPの基本概念とデータ転送動作について</li> <li><a rel="nofollow" class="external text" href="http://www.networksorcery.com/enp/protocol/tcp.htm">TCP, Transmission Control Protocol</a></li> <li><a rel="nofollow" class="external text" href="http://mathforum.org/library/drmath/view/54379.html">Compute 16-bit One's Complement Sum</a> - チェックサムの例</li> <li><a rel="nofollow" class="external text" href="http://www.ssfnet.org/Exchange/tcp/tcpTutorialNotes.html">TCP tutorial</a></li> <li><a rel="nofollow" class="external text" href="https://www.linktionary.com/s/segment_tcp.html">Linktionary on TCP segments</a></li></ul> <div class="navbox" aria-labelledby="OSI参照モデル" style="border-collapse:collapse;padding:3px"><table class="nowraplinks mw-collapsible autocollapse navbox-inner" style="background:transparent;color:inherit;min-width:100%;border-spacing:0px;border-collapse:separate"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><div style="float:left;width:6em;text-align:left"><div class="noprint plainlinks navbar hlist" style="white-space:nowrap;font-size:60%;font-weight:normal;background-color:transparent;padding:0;color:#000;;border:none;"><ul style="display:inline"><li><a href="/wiki/Template:OSI" title="Template:OSI"><span title="このテンプレートを表示します" style="font-size:125%;;;border:none;">表</span></a></li><li><a href="/w/index.php?title=Template%E2%80%90%E3%83%8E%E3%83%BC%E3%83%88:OSI&action=edit&redlink=1" class="new" title="「Template‐ノート:OSI」 (存在しないページ)"><span title="このテンプレートのノートを表示します" style="font-size:125%;color:#002bb8;;;border:none;">話</span></a></li><li><a class="external text" href="https://ja.wikipedia.org/w/index.php?title=Template%3AOSI&action=edit"><span title="このテンプレートを編集します。保存の前にプレビューを忘れずに。" style="font-size:125%;color:#002bb8;;;border:none;">編</span></a></li><li><a class="external text" href="https://ja.wikipedia.org/w/index.php?title=Template%3AOSI&action=history"><span title="このテンプレートの過去の版を表示します" style="font-size:125%;color:#002bb8;;;border:none;">歴</span></a></li></ul></div></div><div id="OSI参照モデル" style="font-size:110%;margin:0 6em"><a href="/wiki/OSI%E5%8F%82%E7%85%A7%E3%83%A2%E3%83%87%E3%83%AB" title="OSI参照モデル">OSI参照モデル</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%;text-align:left;">7. <a href="/wiki/%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E5%B1%A4" title="アプリケーション層">アプリケーション層</a></th><td class="navbox-list navbox-odd hlist hlist-hyphen" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em"> <ul><li><a href="/wiki/Hypertext_Transfer_Protocol" title="Hypertext Transfer Protocol">HTTP</a></li> <li><a href="/wiki/Dynamic_Host_Configuration_Protocol" title="Dynamic Host Configuration Protocol">DHCP</a></li> <li><a href="/wiki/Simple_Mail_Transfer_Protocol" title="Simple Mail Transfer Protocol">SMTP</a></li> <li><a href="/wiki/Simple_Network_Management_Protocol" title="Simple Network Management Protocol">SNMP</a></li> <li><a href="/wiki/Server_Message_Block" title="Server Message Block">SMB</a></li> <li><a href="/wiki/File_Transfer_Protocol" title="File Transfer Protocol">FTP</a></li> <li><a href="/wiki/Simple_Mail_Transfer_Protocol" title="Simple Mail Transfer Protocol">SMTP</a></li> <li><a href="/wiki/Simple_Network_Management_Protocol" title="Simple Network Management Protocol">SNMP</a></li> <li><a href="/wiki/Telnet" title="Telnet">Telnet</a></li> <li><a href="/wiki/Apple_Filing_Protocol" title="Apple Filing Protocol">AFP</a></li> <li><a href="/wiki/AppleTalk" title="AppleTalk">ZIP</a></li> <li><a href="/wiki/X.500" title="X.500">X.500</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;text-align:left;">6. <a href="/wiki/%E3%83%97%E3%83%AC%E3%82%BC%E3%83%B3%E3%83%86%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E5%B1%A4" title="プレゼンテーション層">プレゼンテーション層</a></th><td class="navbox-list navbox-even hlist hlist-hyphen" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em"> <ul><li><a href="/wiki/Transport_Layer_Security" title="Transport Layer Security">TLS</a></li> <li><a href="/wiki/Apple_Filing_Protocol" title="Apple Filing Protocol">AFP</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;text-align:left;">5. <a href="/wiki/%E3%82%BB%E3%83%83%E3%82%B7%E3%83%A7%E3%83%B3%E5%B1%A4" title="セッション層">セッション層</a></th><td class="navbox-list navbox-odd hlist hlist-hyphen" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em"> <ul><li><a href="/wiki/NetBEUI" title="NetBEUI">NetBIOS</a></li> <li><a href="/wiki/IPX/SPX" title="IPX/SPX">NWLink</a></li> <li><a href="/wiki/Data_Stream_Interface" title="Data Stream Interface">DSI</a></li> <li><a href="/wiki/AppleTalk" title="AppleTalk">ADSP</a></li> <li><a href="/wiki/AppleTalk" title="AppleTalk">ASP</a></li> <li><a href="/wiki/AppleTalk" title="AppleTalk">PAP</a></li> <li><a href="/wiki/%E5%90%8D%E5%89%8D%E4%BB%98%E3%81%8D%E3%83%91%E3%82%A4%E3%83%97" title="名前付きパイプ">名前付きパイプ</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;text-align:left;">4. <a href="/wiki/%E3%83%88%E3%83%A9%E3%83%B3%E3%82%B9%E3%83%9D%E3%83%BC%E3%83%88%E5%B1%A4" title="トランスポート層">トランスポート層</a></th><td class="navbox-list navbox-even hlist hlist-hyphen" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em"> <ul><li><a class="mw-selflink selflink">TCP</a></li> <li><a href="/wiki/User_Datagram_Protocol" title="User Datagram Protocol">UDP</a></li> <li><a href="/wiki/Stream_Control_Transmission_Protocol" title="Stream Control Transmission Protocol">SCTP</a></li> <li><a href="/wiki/Datagram_Congestion_Control_Protocol" title="Datagram Congestion Control Protocol">DCCP</a></li> <li><a href="/wiki/IPX/SPX" title="IPX/SPX">SPX</a></li> <li><a href="/wiki/NetBEUI" title="NetBEUI">NBF</a></li> <li><a href="/wiki/AppleTalk" title="AppleTalk">RTMP</a></li> <li><a href="/wiki/AppleTalk" title="AppleTalk">AURP</a></li> <li><a href="/wiki/AppleTalk" title="AppleTalk">NBP</a></li> <li><a href="/wiki/AppleTalk" title="AppleTalk">ATP</a></li> <li><a href="/wiki/AppleTalk" title="AppleTalk">AEP</a></li> <li><a href="/wiki/QUIC" title="QUIC">QUIC</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;text-align:left;">3. <a href="/wiki/%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E5%B1%A4" title="ネットワーク層">ネットワーク層</a></th><td class="navbox-list navbox-odd hlist hlist-hyphen" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em"> <ul><li><a href="/wiki/Internet_Protocol" title="Internet Protocol">IP</a></li> <li><a href="/wiki/Address_Resolution_Protocol" title="Address Resolution Protocol">ARP</a></li> <li><a href="/wiki/Reverse_address_resolution_protocol" title="Reverse address resolution protocol">RARP</a></li> <li><a href="/wiki/Internet_Control_Message_Protocol" title="Internet Control Message Protocol">ICMP</a></li> <li><a href="/wiki/IPX/SPX" title="IPX/SPX">IPX</a></li> <li><a href="/wiki/NetBEUI" title="NetBEUI">NetBEUI</a></li> <li><a href="/wiki/AppleTalk" title="AppleTalk">DDP</a></li> <li><a href="/wiki/AppleTalk" title="AppleTalk">AARP</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;text-align:left;">2. <a href="/wiki/%E3%83%87%E3%83%BC%E3%82%BF%E3%83%AA%E3%83%B3%E3%82%AF%E5%B1%A4" title="データリンク層">データリンク層</a></th><td class="navbox-list navbox-even hlist hlist-hyphen" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em"> <ul><li><a href="/wiki/%E3%82%A4%E3%83%BC%E3%82%B5%E3%83%8D%E3%83%83%E3%83%88" title="イーサネット">イーサネット</a></li> <li><a href="/wiki/%E3%83%88%E3%83%BC%E3%82%AF%E3%83%B3%E3%83%AA%E3%83%B3%E3%82%B0" title="トークンリング">トークンリング</a></li> <li><a href="/wiki/%E3%82%A2%E3%83%BC%E3%82%AF%E3%83%8D%E3%83%83%E3%83%88" title="アークネット">アークネット</a></li> <li><a href="/wiki/Point-to-Point_Protocol" title="Point-to-Point Protocol">PPP</a></li> <li><a href="/wiki/%E3%83%95%E3%83%AC%E3%83%BC%E3%83%A0%E3%83%AA%E3%83%AC%E3%83%BC" title="フレームリレー">フレームリレー</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%;text-align:left;">1. <a href="/wiki/%E7%89%A9%E7%90%86%E5%B1%A4" title="物理層">物理層</a></th><td class="navbox-list navbox-odd hlist hlist-hyphen" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em"> <ul><li><a href="/wiki/RS-232" title="RS-232">RS-232</a></li> <li><a href="/wiki/EIA-422" title="EIA-422">RS-422 (EIA-422、TIA-422)</a></li> <li><a href="/wiki/%E3%83%84%E3%82%A4%E3%82%B9%E3%83%88%E3%83%9A%E3%82%A2%E3%82%B1%E3%83%BC%E3%83%96%E3%83%AB" title="ツイストペアケーブル">電話線・UTP</a></li> <li><a href="/wiki/%E3%83%8F%E3%83%96_(%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E6%A9%9F%E5%99%A8)" title="ハブ (ネットワーク機器)">ハブ</a></li> <li><a href="/wiki/%E3%83%AA%E3%83%94%E3%83%BC%E3%82%BF" title="リピータ">リピータ</a></li> <li><a href="/wiki/%E7%84%A1%E7%B7%9A%E9%80%9A%E4%BF%A1" title="無線通信">無線</a></li> <li><a href="/wiki/%E5%85%89%E3%82%B1%E3%83%BC%E3%83%96%E3%83%AB" title="光ケーブル">光ケーブル</a></li></ul> </div></td></tr><tr><td class="navbox-abovebelow" colspan="2"> <span typeof="mw:File"><a href="/wiki/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Folder_Hexagonal_Icon.svg" class="mw-file-description" title="カテゴリ"><img alt="カテゴリ" src="//upload.wikimedia.org/wikipedia/commons/thumb/4/48/Folder_Hexagonal_Icon.svg/16px-Folder_Hexagonal_Icon.svg.png" decoding="async" width="16" height="14" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/4/48/Folder_Hexagonal_Icon.svg/24px-Folder_Hexagonal_Icon.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/4/48/Folder_Hexagonal_Icon.svg/32px-Folder_Hexagonal_Icon.svg.png 2x" data-file-width="36" data-file-height="31" /></a></span> <a href="/wiki/Category:OSI%E5%8F%82%E7%85%A7%E3%83%A2%E3%83%87%E3%83%AB" title="Category:OSI参照モデル">カテゴリ</a></td></tr></tbody></table></div> <!-- NewPP limit report Parsed by mw‐web.codfw.main‐5c59558b9d‐bkqsc Cached time: 20241201085547 Cache expiry: 2592000 Reduced expiry: false Complications: [show‐toc] CPU time usage: 0.603 seconds Real time usage: 0.706 seconds Preprocessor visited node count: 17092/1000000 Post‐expand include size: 130274/2097152 bytes Template argument size: 17545/2097152 bytes Highest expansion depth: 26/100 Expensive parser function count: 12/500 Unstrip recursion depth: 1/20 Unstrip post‐expand size: 145357/5000000 bytes Lua time usage: 0.168/10.000 seconds Lua memory usage: 4832523/52428800 bytes Number of Wikibase entities loaded: 0/400 --> <!-- Transclusion expansion time report (%,ms,calls,template) 100.00% 579.045 1 -total 48.78% 282.484 1 Template:Reflist 22.92% 132.730 58 Template:Catalog_lookup_link 22.64% 131.119 53 Template:IETF_RFC 19.14% 110.834 9 Template:Citation/core 15.13% 87.626 1 Template:IPstack 14.58% 84.453 1 Template:Sidebar 12.30% 71.221 4 Template:Cite_book 12.04% 69.708 1 Template:Cite_IETF 8.86% 51.303 5 Template:Cite_journal --> <!-- Saved in parser cache with key jawiki:pcache:idhash:9089-0!canonical and timestamp 20241201085547 and revision id 101701021. Rendering was triggered because: page-view --> </div><!--esi <esi:include src="/esitest-fa8a495983347898/content" /> --><noscript><img src="https://login.wikimedia.org/wiki/Special:CentralAutoLogin/start?type=1x1&useformat=desktop" alt="" width="1" height="1" style="border: none; position: absolute;"></noscript> <div class="printfooter" data-nosnippet="">「<a dir="ltr" href="https://ja.wikipedia.org/w/index.php?title=Transmission_Control_Protocol&oldid=101701021">https://ja.wikipedia.org/w/index.php?title=Transmission_Control_Protocol&oldid=101701021</a>」から取得</div></div> <div id="catlinks" class="catlinks" data-mw="interface"><div id="mw-normal-catlinks" class="mw-normal-catlinks"><a href="/wiki/%E7%89%B9%E5%88%A5:%E3%82%AB%E3%83%86%E3%82%B4%E3%83%AA" title="特別:カテゴリ">カテゴリ</a>: <ul><li><a href="/wiki/Category:Transmission_Control_Protocol" title="Category:Transmission Control Protocol">Transmission Control Protocol</a></li><li><a href="/wiki/Category:%E3%83%88%E3%83%A9%E3%83%B3%E3%82%B9%E3%83%9D%E3%83%BC%E3%83%88%E5%B1%A4%E3%83%97%E3%83%AD%E3%83%88%E3%82%B3%E3%83%AB" title="Category:トランスポート層プロトコル">トランスポート層プロトコル</a></li><li><a href="/wiki/Category:RFC" title="Category:RFC">RFC</a></li></ul></div><div id="mw-hidden-catlinks" class="mw-hidden-catlinks mw-hidden-cats-hidden">隠しカテゴリ: <ul><li><a href="/wiki/Category:ISBN%E3%83%9E%E3%82%B8%E3%83%83%E3%82%AF%E3%83%AA%E3%83%B3%E3%82%AF%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%83%9A%E3%83%BC%E3%82%B8" title="Category:ISBNマジックリンクを使用しているページ">ISBNマジックリンクを使用しているページ</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"> 最終更新 2024年9月2日 (月) 14:12 (日時は<a href="/wiki/%E7%89%B9%E5%88%A5:%E5%80%8B%E4%BA%BA%E8%A8%AD%E5%AE%9A#mw-prefsection-rendering" title="特別:個人設定">個人設定</a>で未設定ならば<a href="/wiki/%E5%8D%94%E5%AE%9A%E4%B8%96%E7%95%8C%E6%99%82" title="協定世界時">UTC</a>)。</li> <li id="footer-info-copyright">テキストは<a rel="nofollow" class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.ja">クリエイティブ・コモンズ 表示-継承ライセンス</a>のもとで利用できます。追加の条件が適用される場合があります。詳細については<a class="external text" href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Terms_of_Use">利用規約</a>を参照してください。</li> </ul> <ul id="footer-places"> <li id="footer-places-privacy"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy/ja">プライバシー・ポリシー</a></li> <li id="footer-places-about"><a href="/wiki/Wikipedia:%E3%82%A6%E3%82%A3%E3%82%AD%E3%83%9A%E3%83%87%E3%82%A3%E3%82%A2%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6">ウィキペディアについて</a></li> <li id="footer-places-disclaimers"><a href="/wiki/Wikipedia:%E5%85%8D%E8%B2%AC%E4%BA%8B%E9%A0%85">免責事項</a></li> <li id="footer-places-wm-codeofconduct"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Universal_Code_of_Conduct">行動規範</a></li> <li id="footer-places-developers"><a href="https://developer.wikimedia.org">開発者</a></li> <li id="footer-places-statslink"><a href="https://stats.wikimedia.org/#/ja.wikipedia.org">統計</a></li> <li id="footer-places-cookiestatement"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Cookie_statement">Cookieに関する声明</a></li> <li id="footer-places-mobileview"><a href="//ja.m.wikipedia.org/w/index.php?title=Transmission_Control_Protocol&mobileaction=toggle_view_mobile" class="noprint stopMobileRedirectToggle">モバイルビュー</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-5c59558b9d-9rwrk","wgBackendResponseTime":135,"wgPageParseReport":{"limitreport":{"cputime":"0.603","walltime":"0.706","ppvisitednodes":{"value":17092,"limit":1000000},"postexpandincludesize":{"value":130274,"limit":2097152},"templateargumentsize":{"value":17545,"limit":2097152},"expansiondepth":{"value":26,"limit":100},"expensivefunctioncount":{"value":12,"limit":500},"unstrip-depth":{"value":1,"limit":20},"unstrip-size":{"value":145357,"limit":5000000},"entityaccesscount":{"value":0,"limit":400},"timingprofile":["100.00% 579.045 1 -total"," 48.78% 282.484 1 Template:Reflist"," 22.92% 132.730 58 Template:Catalog_lookup_link"," 22.64% 131.119 53 Template:IETF_RFC"," 19.14% 110.834 9 Template:Citation/core"," 15.13% 87.626 1 Template:IPstack"," 14.58% 84.453 1 Template:Sidebar"," 12.30% 71.221 4 Template:Cite_book"," 12.04% 69.708 1 Template:Cite_IETF"," 8.86% 51.303 5 Template:Cite_journal"]},"scribunto":{"limitreport-timeusage":{"value":"0.168","limit":"10.000"},"limitreport-memusage":{"value":4832523,"limit":52428800}},"cachereport":{"origin":"mw-web.codfw.main-5c59558b9d-bkqsc","timestamp":"20241201085547","ttl":2592000,"transientcontent":false}}});});</script> <script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"Article","name":"Transmission Control Protocol","url":"https:\/\/ja.wikipedia.org\/wiki\/Transmission_Control_Protocol","sameAs":"http:\/\/www.wikidata.org\/entity\/Q8803","mainEntity":"http:\/\/www.wikidata.org\/entity\/Q8803","author":{"@type":"Organization","name":"\u30a6\u30a3\u30ad\u30e1\u30c7\u30a3\u30a2\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3078\u306e\u8ca2\u732e\u8005"},"publisher":{"@type":"Organization","name":"\u30a6\u30a3\u30ad\u30e1\u30c7\u30a3\u30a2\u8ca1\u56e3","logo":{"@type":"ImageObject","url":"https:\/\/www.wikimedia.org\/static\/images\/wmf-hor-googpub.png"}},"datePublished":"2003-05-22T14:15:36Z","dateModified":"2024-09-02T14:12:27Z"}</script> </body> </html>