使用wireshark 抓取 http https tcp ip 協議進行學習


使用wireshark 抓取 http https tcp ip 協議進行學習

前言

本節使用wireshark工具抓包學習tcp ip http 協議

1. tcp

1.1 tcp三次握手在wireshark中的體現

1.1.1 三次握手過程

1.1.1 wireshark中三次握手過程

在wireshark中抓一次三次握手過程

  1. 客戶端
    客戶端發送SYN=1 的請求連接的標記位,以及一個隨機序列號X

  2. 服務端
    服務端發送一個ACK標志位(ack之前的syn),隨之一個ack號碼為X+1 確認接收到
    並且也會發送一個和當時客戶端建立連接時相同的動作,發送SYN號碼表示要和客戶端進行連接,並且從新生成一個隨機序列號Y

  3. 客戶端
    接受到后Ack服務端的SYN 返回ACK標志碼並且把Y+1進行ack返回,並且發送序列號為當初的x+1

序列號使用來記錄"對方期待的序列號" 發送方第一次和第二次的序號相差第一次發送的數據長度,
當發送 SYN或 FIN時長度為空時,也占一個長度,下次加一

其中的FLag位

占六位 依次為 URG、ACK、PSH、RST、SYN、FIN。
換算成十六進制此處如果是SYN則為0x02 ACK為 0x10 ,既有SYN也有ACK則為0x12

1.2 tcp協議組成部分

  • 頭部20字節

1.3 四次揮手過程

  1. 發送方 發送FIN標記 需要釋放連接 seq=u (此時代表發送方的數據都發送完成了)
    此時發送方進入連接結束的第一個等待狀態 FIN-WAIT-1

  2. 接收方 ACK標記 seq=v ack =u+1

  • 發送方在接受到接受方這個報文時進入第二個等待狀態 FIN-WAIT-2
  • 發送方在發送完這個報文后進入關閉等待的狀態 CLOSE-WAIT
  1. 接受方發送FIN報文 (此時他的全部數據也都發送完成了)
  • 發送方發送FIN=1 ACK=1 seq=w ack = u+1 (重復對當時發送方的報文ack)
  • 此時接收方進入最后確認狀態 LAST-ACK 等待發送方的確認
  1. 連接方發送確認斷開
  • ACK=1 seq=u+1 ack=w+1

2. ip協議

2.1 ip協議組成部分

  • IPv4的頭部結構長度為20字節,若含有可變長的選項部分,最多60字節。

3. http協議

  • http://<主機>:<端口>/<路徑>
    主機可以是ip或域名,DNS會將域名轉化為ip
  • HTTP請求的方法
  • http的協議

4. https協議

  • http明文傳輸不安全 通過SSL對數據進行加密 加密后的數據傳輸更加安全
  • 非對稱加密:加密和解密使用的鑰匙不一樣 (公鑰 私鑰)
  • 對稱加密則是加密解密使用相同的密鑰
  • https 綜合的使用了非對稱加密和對稱加密,並且他們生成的密鑰沒有經過傳輸

4.1 https協議組成部分

https 為http上加了一層SSL SSL 可以是TSL協議,在443端口TCP三次握手后會建立SSL連接

4.2 https協議的流程

  1. 客戶端發送Clien Hello
    生成隨機數 1 。協議版本 支持的加密算法

  2. 服務器
    生成隨機數2,3 確認客戶端加密的算法 數字證書

3.客戶端檢查

  • 確認整數是否有效
  • 生成隨機數3
  • 使用服務器的公鑰(證書中取出)加密隨機數3
  • 發送給服務端 此時服務端和客戶端都同時擁有了隨機數1 2 3
    此后就根據隨機數1 2 3 和相同的加密算法生成對稱密鑰

后續

5. udp

  • 頭部 8 字節

一字節8位

結語

文章簡要的對http https tcp udp ip 協議的內容以及交互流程進行了解讀。如果有問題和疑問請在評論區指出,多謝大神指教。

參考資料


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM