1. 程式人生 > >網路抓包分析

網路抓包分析

網路抓包分析以對百度等進行資料抓包分析。

由圖可以看出目的ip是119.75.217.26

資料鏈路層分析

可以看出目的mac地址(48:3c:0c:f1:3a:e7)和主機的mac地址(50:2b:73:c0:c9:bf)

TCP報文格式及TCP連線三次握手

三次握手過程

 

 

 

 

以上是找到的三次握手

 

第一次握手資料包,A向B傳送請求報文段,首部同步位中SYN=1,並seq=x,表明傳送資料時的第一個資料位元組的序號是x

第二次握手的資料包,B的TCP收到連線請求報文段後,如同意,則發回確認,ACK=1,確認號ack=x+1。同時B向A發起連線請求,應使SYN=1。自己選擇序號為seq=y

第三次握手的資料包,A收到後給B確認,ACK=1,確認號為ack=y+1

這個過程就完成了三次握手

 

附上一張TCP報文格式的圖

 

這是圖中的tcp格式

  1. 源埠號(52386)和目的埠號(443):用於標示和區分源端裝置和目的端裝置的應用程序
  2. 序列號(Sequence Number):用來標識TCP源端裝置向目的端裝置傳送的位元組流,圖中是1
  3. 確認號(Acknowledgement number):傳送確認的一端所期望接收到的下一個序列號,因此確認序列號應當是上次成功接收到資料的順序號加1。只有ACK標誌為1時確認序號欄位才有效。圖中是1
  4. 首部長度(Header length):指出TCP首部共有多少個4位元組,長度在20-60之間,圖中是20
  5. 標識欄位:Urgent為0,所以不是優先報文;Acknowledgement為1,確認欄位有效;復位RST:表明TCP連結中出現嚴重差錯;同步SYN:表示這是一個連線請求或連線接受報文;終止FIN:用來釋放一個連線
  6. 校驗和(Checksum):佔2位元組。校驗和欄位檢驗的範圍包括首部和資料,用於校驗TCP報頭部分和資料部分的正確性
  7. [SEQ/ACK analysis]:迴應客戶機的請求連線申請,時延RTT為0.000055s

 

IP

附上一張ip的格式圖

 

這是圖中IP的報文

版本號:標明瞭IP協議的版本號,目前為4

頭部長度:IP報頭的長度。固定部分的長度(20位元組)和可變部分的長度之和。共佔4位。最大為1111,即10進位制的15,代表IP報頭的最大長度可以為15個32bits(4位元組),也就是最長可為15*4=60位元組,除去固定部分的長度20位元組,可變部分的長度最大為40位元組。IP包頭中32bit的數量

服務型別:佔8位,用來獲得更好的服務,但實際上一直沒有被使用過。1998年IETF把這個欄位改名為區分服務DS(Differentiated Services)。只有在使用區分服務時,這個欄位才起作用。

總長度:整個資料包的長度,最長可達65535位元組

標識:IP軟體在儲存器中維持一個計數器,每產生一個數據報,計數器就加1,並將此值賦給標識欄位。但這個“標識”並不是序號,因為IP是無連線服務,資料報不存在按序接收的問題

DF = 1:不允許分片,MF = 0:後面沒有分片

生存時間:設定了資料包可以經過的最多路由器數

協議:1為ICMP,2為IGMP,6為TCP,17為UDP

頭部校驗和:根據IP首部計算的檢驗碼

源IP地址和目的IP地址

 

ICMP

附上一張ICMP格式

 

這是一張icmp的報文

型別字元:8 程式碼欄位:0 是回顯請求

校驗和(Checksum)欄位:長度是2位元組,用於資料報傳輸過程中的差錯控制

標識欄位(唯一)

確認號

資料欄位:長度32bit

 

UDP

附上一張udp格式圖

 

這是一張我用QQ登入時,抓的udp報文

源埠(4028):   用來傳輸資料包的埠

目標埠:  資料包將要被傳輸到的埠

長度:資料長度47

校驗和

資料:資料包的資料

 

總結:利用wireshark工具,對網際網路進行抓包分析,使我對iso網路模型有了深刻的理解。課堂上只是老師講解和看書,對知識的理解模稜兩可,就算是記住了都很快忘記,只有實踐過才可真正的理解。wireshark是一個非常強大的抓包工具,懂得利用其中的過濾器等其他功能就可以基本找出想要的結果。本次實驗是用抓取ping和瀏覽器產生的資料包。因為是初次使用wireshark,以上文章可能會有差錯,希望大家能夠指正!