打開https://www.baidu.com/ 網頁一個簡單的動做,都經歷了什麼?你想探究內部的原理嗎?那咱們一塊兒去探索吧html
1.準備工做segmentfault
安裝好wireshark。Wireshark(前稱Ethereal)是一個網絡報文分析軟件。網絡封包分析軟件的功能是擷取網絡封包,並儘量顯示出最爲詳細的網絡封包資料。Wireshark使用WinPCAP做爲接口,直接與網卡進行數據報文交換。瀏覽器
2.抓取報文安全
打開wireshark,並開啓監聽模式,打開瀏覽器,輸入https://www.baidu.com/ ,等待返回後,關閉瀏覽器,最後中止wireshark監聽,並保存文件。服務器
3.分析報文網絡
3.1 查看百度的地址,cmd命令行nslookuptcp
C:\Users\dell>nslookup www.baidu.com
服務器: ns-pd.online.sh.cn
Address: 202.96.209.133ide
非權威應答:
名稱: www.a.shifen.com
Addresses: 115.239.210.27
115.239.211.112
Aliases: www.baidu.com
複製代碼
從上面能夠知道,先訪問的是DNS服務器,上篇文章<網站
你所忽略的DNS---DNS實戰及深度解讀請添加連接描述計算機網絡
已經詳細描述了dns協議的交互過程。本節咱們重點查看和百度網站的交互。
3.2 分析報文
從上面能夠知道百度有兩個IP地址,
115.239.210.27
115.239.211.112
從wireshark抓取的狀況看,給我提供服務的是第一個ip地址
115.239.210.27
那麼,我就能夠根據ip地址在wireshark上進行分析了
(ip.src==172.16.86.71 and ip.dst_host==115.239.210.27) or (ip.src==115.239.210.27 and ip.dst_host==172.16.86.71)
以下圖所示:
3.3 分析過程
經過上面的報文咱們能夠看到本地機器(172.16.86.71)與百度先進行了tcp協議的交互,而後TLSv 1.2,而後tcp和TLSv 1.2交互。
3.3.1 tcp的三次握手
第一次握手報文,從客戶端到服務器端
第二次握手,從服務器端到客戶端
第三次握手,從客戶端到服務器端
總結,從上面的分析,能夠看出
序號123,124,125是一個握手過程
序號122,126,127是一個握手過程。
3.3.2 https
TLS概述:TLS和他的前身SSL,都是提供在計算機網絡上安全通訊的密碼學協議,最多見就是用於HTTPS中,用來保護Web通訊的。
發展史:網景公司開發了原始的SSL協議,SSL 1.0由於自己存在着嚴重的安全問題,因此從未被公開發布。只有SSL 2.0和SSL 3.0是被公開發布和使用的。後來爲了對SSL進行標準化,推出了TLS,TLS 1.0就對應着SSL 3.0。TLS後來又有了1.1版本和1.2版本,1.3版本目前還在草案中。如今除了TLS 1.2和TLS 1.3草案以外,全部早期的協議都存在安全性問題,不建議使用。
https交互流程,以下圖所示
第一階段
1.client hello
tcp響應
2.服務端
3.Change Cipher Spec
客戶端tcp響應
4.Encrypted Handshake Message
客戶端發送請求
5.傳送數據
6.關閉瀏覽器退出傳送數據
3.3.3 4次揮手
1.第一次揮手
2.第二次揮手
4.第四次揮手
總結:第三次揮手和第四次揮手之間seq和ack倒置了。
參考資料
【1】https://segmentfault.com/a/1190000014740303?utm_source=tag-newest