[TCPIP] 傳輸控制協議 Note

ABeen發表於2015-11-16

TCPIP  TCP 傳輸控制協議

 

TCP提供一種面向連線的,可靠的位元組流服務。

面向連線意味著兩個使用TCP的應用在傳輸資料之前先建立一個TCP連線,這個過程跟打電話相似。在一個TCP連線中僅有兩方進行通訊。

 

TCP通過下列方法提供可靠性:

1. 應用資料被分割成TCP認為最適合傳送的資料塊。

2. 當TCP傳送一個報文段後,它啟動一個定時器,等待目的端確認收到這個報文段。如果不能及時收到確認,將重發這個報文段。

3. 當TCP收到連線另一端的資料,它將傳送一個確認。這個確認不是立即傳送,通常將推遲幾分之一秒。

4. TCP將保持它首部和資料的校驗和。這是一個端到端的檢驗和,目的是檢測資料在傳輸過程中的任何變化。如果收到段的檢驗和有差錯,TCP將丟棄這個報文段和不確認收到這個報文段。

5. 既然TCP報文段作為IP資料包來傳輸,而IP資料包的到達可能會失序,因些TCP報文段的到達也可能會失序。如果必要,TCP將收到的資料進行重新排序,將收到的資料以正確的順序交給應用層。

6. 既然IP資料包會發生重複,TCP的接收端必須丟棄重複的資料。

7. TCP還能提供流量控制。TCP連線的每一方都有固定大小的緩衝空間。TCP的接收端只允許另一端傳送接收端緩衝區能容納的資料。這將防止較快的主機使較慢的主機緩衝區發生溢位。

 

TCP首部中的標誌位元

URG  緊急指標有效 

ACK  確認序號有效

PSH  接收方應該儘快將這個報文段交給應用層

RST  重建連線

SYN  同步序號用來發起一個連線

FIN   發端完成傳送任務

 

TCP建立連線協議(三次握手):

1. 請求端傳送一個SYN段指明客戶打算連線的伺服器的埠,以及初始序號ISN

2. 伺服器傳送包含伺服器的初始序號的SYN報文段作為應答。同時,將確認序號設定為客戶的ISN加1以對客戶的SYN 報文段進行確認。

3. 客戶必須將確認序號設定為伺服器的ISN加1對對伺服器的SYN報文段進行確認。

 

 

 

相關文章