一、前置說明:
抓包工具採用wireshark
127爲主機A
126爲主機B
二、報文及對應的包頭信息:
1.tcp連接建立:三次握手
報文抓包
交互流程
第一次握手:主機A---SYN---->主機B
主機A發送連接請求。主機A想要與主機B進行TCP通信,首先他需要向B發送一個syn同步序列編號syncsynchronized squsequence number用來標記保持同步。
作用:主機A希望知道自己是否可以發送數據。
第二次握手:主機B---SYN,ACK---->主機A
主機B發回確認包(ACK)應答。主機B向A發送一個syn同步序列號和ack確認號。確認號爲A主機發送的syn號+1。
作用:證明主機B可以收到數據,主機B希望知道自己是否可以發送數據。
第三次握手:主機A---ACK---->主機B
主機A再次發送確認包(ACK)。主機A向主機B發送ack確認碼爲主機B的syn號+1,到此爲止三次握手結束進入ESTABLISHED狀態,開始進行數據傳輸。
作用:證明主機A可以收到數據,且可以發送數據。(主機B收到該報文,證明主機B可以接收數據和發送數據。)。即:證明雙方可以收發數據。
2 發送報文:報文內容“abcdefg”
報文抓包
發送數據:主機A---PSH,ACK---->主機B
發送響應:主機B---ACK---->主機A
3 客戶端斷開連接:四次揮手
報文抓包
報文交互
主機A想要斷開與主機B之間的TCP連接,即主機A是主動方,主機B是被動方。
第一次揮手:主動方----FIN,ACK--->被動方
發送FIN請求斷開連接。
第二次揮手:被動方----ACK--->主動方
被動方向主動方發送確認碼,爲FIN號+1。
第三次握手:被動方---FIN---->主動方
被動方向主動方發送FIN請求斷開連接。
第四次揮手:主動方---ACK---->被動方
主動方向被動方發送ACK號爲FIN+1,這時tcp連接完成斷開。