解釋計算機網路中的TCP服務。
以下是傳輸控制協議 (TCP) 提供給應用層程序的一些服務:
- 流式傳輸服務。
- 傳送和接收緩衝區。
- 位元組和報文段。
- 全雙工服務
- 面向連線的服務。
- 可靠的服務。
下面將詳細解釋所有上述TCP服務。
流式傳輸服務
TCP是一個面向流的協議。它使傳送程序能夠將資料作為位元組流交付,並使接收程序能夠獲取位元組流資料。
TCP建立一個工作環境,使傳送和接收過程透過一個虛擬的“管道”連線起來,如下圖所示。
傳送和接收緩衝區
傳送和接收程序不能以相同的速度產生和接收資料。因此,TCP需要一個緩衝區進行儲存。
每種剖析中使用兩種緩衝區方法,如下所示:
- 傳送緩衝區
- 接收緩衝區
可以使用一個1位元組位置的環形陣列來實現緩衝區,如下圖所示。該圖顯示了資料在傳送端單向移動的情況。
緩衝區有三種類型的儲存位置,如下所示:
- 空閒位置。
- 包含已傳送但未確認的位元組的位置。這些位元組將保留在緩衝區中,直到收到確認。
- 包含傳送方TCP將要傳送的位元組的位置。
實際上,由於接收程序速度慢或網路擁塞,TCP可能只發送一部分資料。
接收端的緩衝區分為如下兩個部分:
- 包含空閒位置的部分。
- 包含已接收位元組的部分,傳送程序可以消耗這些位元組。
位元組和報文段
緩衝區用於處理資料傳輸速度和資料消耗速度之間的差異。但僅靠緩衝區是不夠的。
作為TCP服務提供商,在將資料傳送到網際網路協議 (IP) 層之前,還需要一個步驟。它需要以資料包的形式傳送資料,而不是作為位元組流傳送。
在傳輸層,TCP將多個位元組分組到一個數據包中,這稱為報文段。每個報文段都會新增一個頭部來進行控制。
報文段封裝在IP資料報中然後傳輸。整個操作對接收過程是透明的。報文段在到達接收端時可能會亂序、丟失或損壞。
下圖顯示瞭如何從緩衝區中的位元組建立報文段。
報文段的大小並不相同。每個報文段可以攜帶數百個位元組。
全雙工服務
TCP提供全雙工服務,資料可以同時雙向流動。每個TCP將擁有傳送緩衝區和接收緩衝區。TCP報文段將雙向傳送。
面向連線的服務
我們已經知道TCP是一個面向連線的協議。當一個程序想要與另一個程序 (程序-2) 通訊 (傳送和接收) 時,操作順序如下:
- 程序-1的TCP通知程序-2的TCP並獲得其批准。
- 程序-1的TCP告訴程序-2的TCP雙向交換資料。
- 完成資料交換後,當雙方的緩衝區為空時,兩個TCP將銷燬它們的緩衝區。
TCP中的連線型別不是物理連線,而是虛擬連線。封裝在IP資料報中的TCP報文段可能會亂序傳送。這些報文段可能會丟失或損壞,可能需要重新發送。每個報文段可能採取不同的路徑到達目的地。
可靠的服務
TCP是一個可靠的傳輸協議。它使用確認機制來檢查資料的安全可靠到達。