TCP協議解碼詳解

一、TCP協議簡介

TCP,全稱Transfer Control Protocol,中文名爲傳輸控制協議,它工作在OSI的傳輸層,提供面向連接的可靠傳輸服務。

TCP的工作主要是建立連接,然後從應用層程序中接收數據並進行傳輸。TCP採用虛電路連接方式進行工作,在發送數據前它需要在發送方和接收方建立一個連接,數據在發送出去後,發送方會等待接收方給出一個確認性的應答,否則發送方將認爲此數據丟失,並重新發送此數據。

下面我們來介紹一下TCP的報頭結構和相關工作原理:


1.TCP協議報頭


TCP報頭總長最小爲20個字節,其報頭結構如下圖(圖1)所示;

比特0             比特15   比特16             比特31

源端口(16

目的端口(16

序列號(32

確認號(32

TCP偏移量(4

保留(6

標誌(6

窗口(16

校驗和(16

緊急(16

選項(032

數據(可變)

(圖1 TCP報頭結構)

源端口:指定了發送端的端口

目的端口:指定了接受端的端口號

序號:指明瞭段在即將傳輸的段序列中的位置

確認號:規定成功收到段的序列號,確認序號包含發送確認的一端所期望收到的下一個序號

TCP偏移量:指定了段頭的長度。段頭的長度取決與段頭選項字段中設置的選項

保留:指定了一個保留字段,以備將來使用

標誌SYNACKPSHRSTURGFIN

      SYN 表示同步

      ACK 表示確認

      PSH 表示儘快的將數據送往接收進程

      RST 表示復位連接

      URG 表示緊急指針

      FIN 表示發送方完成數據發送

窗口:指定關於發送端能傳輸的下一段的大小的指令

校驗和:校驗和包含TCP段頭和數據部分,用來校驗段頭和數據部分的可靠性

緊急:指明段中包含緊急信息,只有當U R G標誌置1時緊急指針纔有效

選項:指定了公認的段大小,時間戳,選項字段的末端,以及指定了選項字段的邊界選項

2.TCP工作原理

l  TCP連接建立:TCP的連接建立過程又稱爲TCP三次握手。首先發送方主機向接收方主機發起一個建立連接的同步(SYN)請求;接收方主機在收到這個請求後向送方主機回覆一個同步/確認(SYN/ACK)應答;發送方主機收到此包後再向接收方主機發送一個確認(ACK),此時TCP連接成功建立;

l  TCP連接關閉:發送方主機和目的主機建立TCP連接並完成數據傳輸後,會發送一個將結束標記置1的數據包,以關閉這個TCP連接,並同時釋放該連接佔用的緩衝區空間;

l  TCP重置:TCP允許在傳輸的過程中突然中斷連接,這稱爲TCP重置;

l  TCP數據排序和確認:TCP是一種可靠傳輸的協議,它在傳輸的過程中使用序列號和確認號來跟蹤數據的接收情況;

l  TCP重傳:在TCP的傳輸過程中,如果在重傳超時時間內沒有收到接收方主機對某數據包的確認回覆,發送方主機就認爲此數據包丟失,並再次發送這個數據包給接收方,這稱爲TCP重傳;

l  TCP延遲確認:TCP並不總是在接收到數據後立即對其進行確認,它允許主機在接收數據的同時發送自己的確認信息給對方。

l  TCP數據保護(校驗和):TCP是可靠傳輸的協議,它提供校驗和計算來實現數據在傳輸過程中的完整性。


二、TCP解碼

要看懂TCP解碼信息,就必須清楚知道TCP工作原理和TCP報頭的相關字段信息。

下面我們就通過科來網絡分析系統中的解碼信息來認識TCP協議的報頭。如下圖(圖2)。


上圖顯示了TCP協議中報頭中字段的詳細信息,這裏的解碼信息完全和TCP報頭結構相吻合,下面我們分別來介紹解碼視圖中的信息:

1.     源端口:1041,偏移量爲34,值爲2個字節;

2.     目標端口:5001,端口名爲 complex-link,偏移量爲36,值爲2個字節;

3.     序列號:TCP數據包序列號爲148694863,偏移量38,值爲4個字節;

4.     確認號:確認號爲387135032,偏移量爲42,值爲4個字節;

5.     TCP偏移量:TCP偏移量爲5,偏移量爲46,值爲4

6.     標誌:PSHACK的值爲1,這是一個確認包,收到的有效段立即發給應用,不要放入緩衝區

7.     窗口:表示接收端能夠接收的下一段的大小64124

8.     校驗和:校驗和爲0x10D4(正確),表示數據沒有被修改和損壞,是完整的。

9.     緊急指針:因爲標誌字段中URG標誌位的值爲0,所以這裏無緊急指針

10.  TCP選項:無選項內容

以上爲實際抓取的一個TCP數據包,大家可以通過上述的方法學習TCP協議。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章