首頁>Club>
用一些網路抓包工具得到一些tcp通訊資料,怎麼解析出具體10進位制傳輸內容
1
回覆列表
  • 1 # 喲喲吼說科技

    TCP(Transmission Control Protocol,傳輸控制協議)是一種面向連結的,可靠的傳輸層協議。

    如題:怎麼解析出TCP資料包?

    在OSI七層模型中,TCP層是位於IP層之上,應用層之下,起著承上啟下的作用,但IP層不能提供可靠的傳輸,需要TCP來保證資料包的可靠傳輸。如何解析TCP資料包,這需要了解TCP資料包的構成:

    透過上圖可以看出TCP資料包由源埠、目的埠、序號等等組成。下面喲喲透過wireshark軟體抓取TCP資料簡單分析一下:

    可以看出這個TCP資料包中每層的資料內容,包括物理層、資料鏈路層、網路層和傳輸層,咱們針對傳輸層來具體說明一下。

    源埠:34162,換算成十六進位制為8572;

    目的埠:443,換算後為01bb;

    序列號:資料包中序列號顯示9e546d6b已超過2^32-1,因此這裡序列號為0;

    偏移:資料包中偏移量為80,佔用4bit,0x80等於二進位制的1000 0000,因此偏移量1000=8,TCP報文頭為8*4=32位元組;

    保留:未使用,因此為0;

    標誌位:6個標誌位元,可同時被置為1;

    視窗大小:表示源主機最大能接收的位元組數量;

    校驗和:強制性欄位,由傳送端計算和儲存,接收端去驗證;

    緊急指標:當標誌位URG為1時才生效;

    TCP選項:類似IP,是可選的選項;

    填充:使選項湊足32位;

  • 2 # 愛答問題的小星星

    不邀自來,專業問題我來回答一下:

    TCP是位於OSI模型的傳輸層的通訊協議,提供端到端的通訊,我們每天的網路生活都是基於其進行通訊的,TCP資料包其實就是在應用層資料加上TCP首部欄位形成的TCP資料包,因傳輸層被我們的電腦,手機的底層進行封裝,我們平常是沒法獲取或直接看到的,必須藉助抓包工具進行分析。

    背景知識TCP:TCP是一種面向連線的可靠協傳輸協議,其位於OSI層的傳輸層,提供端到端的通訊服務,其主要透過埠號定址將資料包傳送給指定的應用程式像QQ,微信TCP為什麼是可靠的協議:與位於同一層的UDP傳輸協議相比,TCP是可靠的,它主要透過定時重傳,序號確認,擁塞控制等機制來實現可靠傳輸。TCP的三次握手

    要想了解TCP的資料包,就必須瞭解TCP的三次握手,因為TCP握手的過程中就交換協商了很多通訊必要的資訊。

    第一次握手:客戶端主動發起連線請求(SYN=1),傳送一個序號seq=x的資料包,傳送完後客戶端進入SYN_SENT狀態第二次握手:客戶端發起連線請求(SYN=1),傳送一個序號為seq=y 的資料包,同時傳送確認資訊(ACK=1),ack=x+1,表明前x個位元組已經收到,傳送完資料包後,服務端將進入SYN_RCVD狀態第三次握手:客戶端對服務端傳送的資料包進行確認(ACK=1),同時傳送序列號為seq=x+1的資料包,確認號ack=y+1;TCP首部:

    要想了解TCP資料包,TCP首部就必須要了解,TCP協議就是對應用層資料加上自己的頭部欄位加以封裝形成TCP資料包:

    源埠號:傳送端埠號;目的埠號:接受端埠號;序列號:當SYN=1時有效,是指本報文段中所傳送資料的第一個位元組序號;確認號:當ACK=1時有效,是下一次期望接收到的序列號,ack=k,表明前k-1個位元組已經成功收到;首部長度:TCP首部欄位長度;URG:當URG=1時表明有緊急資料必須儘快傳輸與緊急指標配合使用。ACK:僅當ACK=1時確認號欄位才有效,TCP規定,連線建立後所有傳送的報文段都必須把ACK置1;PSH:當PSH=1時,希望對方能快速做出響應;RST:RST=1,表明連線由重大故障,必須釋放當前連線,重新建連;SYN:SYN=1,表示發起連線請求;FIN:當FIN=1表示資料傳送完畢可以斷開了;視窗大小:視窗大小告訴對方自己能接受的資料大小,以免一次傳送過多的資料造成擁塞,即從本報文段首部中的確認號算起,接收方目前允許對方傳送的資料量。校驗和:校驗資料是否被篡改或發生錯誤;緊急指標:當URG=1時有效,可以告知緊急資料所在的位置(緊急指標指出在本報文段中的緊急資料的最後一個位元組的序號)。wireshark抓包
  • 中秋節和大豐收的關聯?
  • 家庭配電箱的空開要1P好?還是2P的好?(各組零線要不要過空開?)?