天天看點

【TCP】面向連接配接的TCP概述

TCP連接配接概述

    TCP是網際網路運輸層

面向連接配接的(connection-oriented)

可靠運輸協定。之是以說它是面向連接配接的是因為

  一個應用程序向另外一個應用程序發送資料之前,兩個程序必須先要

“握手”

(建立連接配接),初始化一些建立連

  接的TCP狀态變量。

    TCP協定是在端系統中運作的,不會在中間的網絡元素(路由器和鍊路層交換機)中運作,是以中間元素不

  會維持TCP連接配接狀态。它的連接配接狀态完全保留在兩個端系統中。在實際中,中間路由器看到的隻是資料包而不是

  連接配接。

    TCP連接配接提供的是

全雙工服務(full-duplex-service)

,并且TCP連接配接也是

點對點(piont-to-piont)

的,這

  就說明TCP連接配接是單個發送方與單個接收方之間的連接配接。在一次發送操作中,從一個發送方将資料傳給多個接收

  方,即“多點傳播”操作對TCP來說是不可能的。

    兩個應用程序經過

“三次握手”(three-way handshake)

後建立TCP連接配接。連接配接建立後兩個應用程序便可以

  互相發送資料了。

  

【TCP】面向連接配接的TCP概述

    如圖所實,假設左邊程序為客戶程序,右邊程序為伺服器程序。

    客戶程序通過

套接字

傳遞傳遞資料流。TCP将資料引導到該連接配接的

發送緩存(send buffer)

裡(該緩存是

  TCP三向交握初期設定的緩存之一)。TCP會不時的從發送緩存裡取出一塊資料,為每塊資料加上一個TCP

  首部,進而形成

TCP封包段(TCP segment)

。這些封包段被傳遞給下層的網絡層,網絡層再将封包段封裝在

  IP資料報中。然後,IP資料報被發送到網絡中。TCP在另一端接收到一個封包段後,該封包段就被放入該TCP連

  接的接收緩存中。應用程式再從此緩存中讀取資料流。

    上文中說的TCP會不時的從發送緩存裡取出一塊資料,這裡的不時在TCP規範裡并沒有提及确切時間,隻是

  說在它“友善時”。TCP所取資料大小會受限于

最大封包段長度(Maximum Segment Size,MSS)

    MSS通常根據最初确定的由本地發送主機發送的最大鍊路幀長度(所謂最大傳輸單元MTU)來确定。

    設定MSS時要保證一個TCP封包段(封裝在IP資料報中在加上TCP首部,通常40個位元組)适合單個鍊路層幀

    以太網和PPP鍊路層協定都具有1500位元組的MTU,一次MSS的典型值為1460位元組。

    需要注意:MSS是封包段裡應用層資料的最大長度,不包括TCP首部。

  此文為《計算機網絡 自頂向下方法》學習筆記3

每天進步一點點,不要停止前進的腳步~

繼續閱讀