TCP/IP 之TCP協議(1):概述和報文格式

1、TCP協議(傳輸控制協議)是端到端的可靠的,面向連接的協議。處理的對象稱爲TCP報文段(segment),是基於流的協議。

2、不像UDP,TCP留有兩個緩存,發送和接收緩存,用來暫存TCP報文段,以便於重傳和確認機制使用

3、特點:編號系統,流量控制,擁塞控制,差錯控制,計時器(4個)等

4、TCP Segment格式:首部(20B-60B)+ 數據(下面介紹首部的字段)

(1)、源端口地址(2B),目的端口地址(2B):和UDP的意義一樣

(2)、序列號(seq)(4B),確認號(4B):下面介紹,確認號僅當ACK標記爲1時有效

(3)、首部長度(4bit):爲首部的32bit的長度,因此首部長度介於20B-60B之間

(4)、保留(6bit)

(5)、標記(6bit),分別爲:URG, ACK, PSH, PST, SYN, FIN

(6)、
窗口大小(2B):以字節爲單位。通知對方自己的接收窗口目前的大小。

(7)、
校驗和(2B):和UDP校驗和的方法一樣,不同的是這個功能對TCP來說是必須的

(8)、緊急指針(2B):當URG標記爲1時有效,內容見下。

5、編號系統

(1)、序列號:以字節爲單位編號,不是以報文段爲單位編號。初始編號ISN爲隨機產生的,以後字節的編號便依次加1。報文段的序列號是這個報文段中第一個字節數據的字節號。

如果報文段不攜帶用戶數據,從邏輯上說不需要序列號(比如僅含有確認的包),但是在一個TCP連接和終止之時,要一個序號,以便讓對方進行確認,比如:SYN和FIN的包都需要耗掉1字節的序列號。

(2)、確認號(ACK),這個號要ACK標記設置時纔有效。表示接收端期待下一個要收到的字節號碼(確認號是累計的,具體說明在重傳確認機制中)

6、標記位的含義:

(1)、URG表示緊急指針標記,如果設置了,則下面的URG字段有效,用來做TCP的外帶數據(見“外帶數據和緊急指針”相關資料)。

(2)、PSH表示這個報不需要等到發送緩衝區滿,可以發送;而接收端收到此報後,馬上賦予應用進程(大多數TCP實現忽略這個標記的功能了)

(3)、ACK確認標記,表示下面的ACK序列號字段有效,有確認功能(有可能是捎帶確認的數據報)

(4)、RST:連接復位,用於終止一條空閒連接和異常終止連接

(5)、SYN在建立連接時用於對序號進行同步

(6)、FIN在結束連接時用於序號的同步

發佈了54 篇原創文章 · 獲贊 16 · 訪問量 34萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章