目錄
準備
本科的時候實驗課做過抓包實驗,但是現在都忘完了,於是對照博客重新學下。
首先選擇實驗的網站,選擇 https://blog.csdn.net/ ,在 http://ip.tool.chinaz.com/ 中可以解析出對應的ip地址。(???阿里雲牛逼)
在Wireshark 中開啓抓包,瀏覽器訪問網站後關閉網站,停止抓包,通過 tcp and ip.addr==47.95.47.253 可以篩選出對應的報文。
可以發現,前3條報文就是TCP的三次握手。
三次握手
首先,客戶端提出請求,SYN,seq=x(0),期待的ack=x+1(1)。
接着,服務端向客戶端發送一個數據包,SYN,ACK,同時要確認上一個報文 ack = x+1(1),發送自己的seq y(0)。
第三次握手,客戶端應答ACK,發送自己的seq x+1(1),確認第二條報文 ack = y + 1(1)。
至此,三次握手結束,到第4條報文就是TLSv1.2(https)了,這裏就不分析了(我還不大會)。
四次揮手
四次揮手應該有4條報文,但是我試了幾次都只收到3條,百度一下說是因爲服務器把第二和第三條報文合併了(因爲客戶端申請斷開連接時,服務端沒有啥需要傳的了)
第一次揮手,客戶端申請斷開連接,發送FIN、ACK(這個其實和嵌入式配置寄存器很像,對應的位上置1),序列號x=5052,確認序列號z=9528。
第二次揮手,服務端發送FIN和ACK,ack=x+1(5053),seq=z(9528)。
第三次揮手,客戶端發送ACK,ack=z+1(9529),seq爲收到的ack(5053)。至此,三次揮手結束。