用wireshark抓包查看訪問網站過程
打開wireshark,打開一個無痕瀏覽器,輸入網址,到網頁呈現這一過程,網絡數據包傳遞的消息都會被放在wireshark里。針對這些包,我們可以逐一分析,摸清網絡訪問的全過程。
首先是通過DNS獲取網站的ip地址:
在抓到的包里面逐一排查,會請求網站的第一次出現的數據包是DNS包。如圖82號包(訪問百度為例)。
選擇82號包后,會出現下面的內容,分別是每層里面的內容和頭部的字節碼。
這個數據包的73個字節里包含:數據鏈路層報文頭(數據鏈路層),ip層頭(網絡層),udp頭(傳輸層),dns頭(應用層)。
數據鏈路層的主要信息有mac地址2個(源地址和目的地址),主要是你電腦的mac地址,他會發到路由器的mac地址去,然后再由路由器進行轉發。
網絡層層有ip4,ip地址,目的ip地址等信息。
傳輸層主要負責了端口的管理。
我們具體看一下Dns 的回應包,包含從dns server發到我們電腦,具體的內容里面把query重復一遍,然后answer應答了我們請求的網站對應的IP地址,於是我們就知道了訪問網站的ip地址。
接着我們過濾一下IP地址,下一個包就是TCP開始三次握手的包了。
打開看下面各層的信息
數據鏈路層依然是發給路由器:
網絡層是發給百度的ip,傳輸層把端口對應了起來
具體看tcp層:
第一個請求包內容:
百度回應的包:
第三次確認包也是類似:
到這就完成了三次握手,就可以開始通信了。http協議就開始互相發送數據包。
最后的四次揮手也是一樣的,可能會存在長連接的情況,要等一段時間服務器才會主動斷開連接,翻到最下面應該就能看到了。