一、TCP
二、TCP報文段首部格式
(1)序號
在一個TCP連接中傳送的字節流中的每一個字節都按順序編號,本字段表示本報文段所發送數據的第一個字節的序號。
(2)確認號
期望收到對方下一個報文段的第一個數據字節的序號。若確認號爲N,則證明到序號N-1爲止的所有數據都已正確收到。(即採用累計確認)
(3)數據偏移(首部長度)
TCP 報文段的數據起始處距離 TCP 報文段的起始處有多遠以 4B 位單位,即1個數值是 4B
(4)緊急位URG
URG=1時,標明此報文段中有緊急數據,是高優先級的數據,應儘快傳送,不用在緩存裏排隊,配合緊急指針字段使用。
(5)確認位ACK
ACK=1時確認號有效,在連接建立後所有傳送的報文段都必須把ACK置爲1
(6)推送位PSH
PSH=1時,接收方儘快交付接收應用進程,不再等到緩存填滿再向上交付。
(8)復位RST
RST=1時,表明TCP連接中出現嚴重差錯,必須釋放連接,然後再重新建立傳輸鏈接。
(9)同步位SYN
SYN=1時,表明是一個連接請求/連接接受報文。
- 在建立連接時用來同步序號,當SYN=1&&ACK=0,表示這是一個請求連接的報文段
- 若對方同意建立連接,則在響應報文段中使得SYN=1&&ACK=1。
(10)終止位FIN
FIN=1時,表明此報文段發送方數據已發完,要求釋放連接。
(11)窗口
指的是發送本報文段的一方的接收窗口,即現在允許對方發送的數據量。
(12)檢驗和
檢測TCP用戶數據報在傳輸的過程中是不是有錯,有錯就丟棄。在TCP中,該字段必須被選中。
(13)緊急指針
URG=1時纔有意義,指出本報文段中緊急數據的字節數。
(14)選項
最大報文段長度MSS、窗口擴大、時間戳、選擇確認
三、TCP對應的協議
(1)FTP:定義了文件傳輸協議,使用21端口。
(2)Telnet:一種用於遠程登陸的端口,使用23端口,用戶可以以自己的身份遠程連接到計算機上,可提供基於DOS模式下的通信服務。
(3)SMTP:郵件傳送協議,用於發送郵件。服務器開放的是25號端口。
(4)POP3:它是和SMTP對應,POP3用於接收郵件。POP3協議所用的是110端口。
(5)HTTP:是從Web服務器傳輸超文本到本地瀏覽器的傳送協議。
四、TCP僞首部
通過僞首部的校驗,TCP可以確定該數據報是不是發給本機的。
(1)協議字段
對應 IP 數據報首部協議,防止 IP 數據報向上提交時誤傳,UDP報文的協議字段值爲17
協議名 | ICMP | IGMP | TCP | UDP | IPV6 | OSPF |
---|---|---|---|---|---|---|
字段值 | 1 | 2 | 6 | 17 | 41 | 89 |
(2)TCP長度
TCP首部 (20B+X) +數據部分長度(不包括僞首部)
五、TCP檢驗
與UDP檢驗類似,可參考 UDP協議