天天看點

淺談TCP(傳輸控制協定)的可靠性

TCP提供一種面向連接配接的,可靠的位元組流服務;

什麼是位元組流服務:

TCP不在位元組流中插入記錄标志符就被稱為是位元組流服務;

TCP對位元組流的處理方式:

TCP對位元組流的内容不做任何解釋,因為TCP分不清傳輸的是哪種類型的資料;對位元組流的解釋是由TCP連接配接雙方的應用層來解釋的;

TCP的這種對位元組流的處理方式與UNIX作業系統對檔案的處理方式很相似;

UNIX作業系統對檔案的處理方式是: UNIX的核心對一個應用的讀或寫的内容不做任何解釋,而是交給應用程式去解釋,因為UNIX核心無法區分二進制檔案和文本檔案

在一個TCP連接配接中,僅有兩方進行通信;

封包段的定義:

由TCP傳遞給IP的資訊機關稱為封包段或段;

以下是TCP提供可靠性的方式:

(1)應用資料被分割成TCP認為的最合适發送的資料塊;

(2)當TCP發出一個封包段後,就啟動一個定時器,用來等待目的端确認收到這個封包段;若沒能及時收到這個确認,TCP發送端将重新發送這個封包段(逾時重傳);

(3)TCP收到一個發自TCP連接配接的另一端的資料後就将發送一個确認,不過這個确認不是立即就發送,而是要推遲幾分之一秒後才發送;

(4)TCP将保持它的首部和資料的檢驗和;(這是一個端到端的檢驗和,為了檢驗資料在傳輸過程中發生的錯誤;若檢測到段的檢驗和有差錯,TCP将丢棄和不确認收到此封包段并希望發端可以進行逾時重傳)

(5)由于TCP封包段是作為IP資料報來傳輸的,又因為IP資料報的到達可能會失序,是以TCP封包段的到達也可能會失序;是以,有必要的話TCP會對收到的資料進行重新排序後交給應用層;

(6)因為TCP封包段是作為IP資料報來傳輸的,并且IP資料報可能會發生重複,是以TCP的接收端必須丢棄掉重複的資料;

(7)TCP提供流量控制;(因為TCP連接配接的每一方都有固定大小的緩沖空間,TCP的接收端隻允許另一端發送接收端緩沖區所能接納的資料,這一限制可以防止較快主機緻使較慢主機的緩沖區溢出)