網路基礎與協議入門——(2)TCP協議重點

鍾超發表於2011-12-25

1. 概述

TCP是傳輸控制協議,是網路五層模型中,自下而上的第四層——傳輸層的協議。該協議是面向連線的、可靠的、基於位元組流的。


2. 為什麼會有TCP?

TCP是傳輸層的,是建立在網路層至上的。網路層上的IP協議,是基於不可靠的包交換的。為了滿足可靠交換的需求,就出現了TCP協議。


3. TCP是如何保證可靠傳輸的?

TCP協議要求傳送方,在傳送資料後,等待接收方回執的ACK,如果傳送端在合理的往返時延(RTT)內未收到ACK,就重傳。並且TCP協議要求傳送方和接收方,要檢驗校驗和(CHECKSUM)是否有誤。


4. 三次握手

第一次:客戶端向伺服器傳送一個請求;

第二次:伺服器收到後回執一個ACK;

第三次:客戶端收到ACK後再傳送一個ACK。


5. 四次握手

當TCP連線終止時,是採用四次握手方式。

第一次:客戶端向伺服器傳送FIN

第二次:伺服器向客戶端回執ACK

第三次:伺服器向客戶端傳送FIN

第四次:客戶端向伺服器回執ACK


6. 埠

這是一個常識性問題。如果使用了埠號的概念,那麼一定是採用TCP連線的。

(1)為什麼用埠:

TCP使用了埠號的概念,來標識傳送方和接收方的應用層。可以根據埠號,來找到對方應用層相應的程式。


(2)埠號範圍:

16位無符號整數,理論範圍是[0, 65535]。


(3)埠號分類:

公開埠號:由IANA(英特網賦號管理局)管理分配。常用的FTP、SMTP、HTTP、TELNET皆屬此類。

註冊埠號:一般用作客戶端程式臨時連線伺服器使用。

私有埠號:在特定的應用層應用程式中使用。


7. TCP的資料結構

000-015位:來源連線埠號

016-031位:目的連線埠號

032-063位:序列號碼

064-059位:確認號碼

……

160/192位開始:資料部分

相關文章