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在結束連接時用於序號的同步