瀏覽器輸入一個地址的過程分析?

- DNS解析過程,尋找對應的服務器ip地址 (應用層)
可能會有一次向外部DNS的請求
(參照 DNS過程分析)
- 建立TCP連接,利用這個連接發送數據 (傳輸層)
三次握手
- 封裝HTTP請求包,HTTP或HTTPS,添加相應的協議內容 (應用層)
HTTP頭
- 封裝TCP請求包,TCP或UDP,添加相應的協議內容(傳輸層)
TCP頭
- 封裝IP請求包,添加IP協議相應內容 (網絡層)
IP頭
- 封裝ARP請求包,添加ARP協議相應內容 (網絡層)
網卡發出去封裝好的mac包,到達網關
MAC頭
- 請求包打包完畢,通過網絡,到達網絡上,添加相應的以太網頭 (數據鏈路層)
以太網頭
- 請求包根據路由協議(相關路由表),傳輸網絡包 (網絡層)
- 網絡包根據RARP協議,找到目標服務器的IP地址 (網絡層)
- 目標服務器發現MAC地址對的上,交給操作系統的網絡層 (網絡層 傳輸層)
網絡層發現IP對的上,交給傳輸層TCP(TCP都會發送回復包,用於消息確認)
通過TCP包中的端口號,交給正在監聽此端口號的進程
假設是Nginx,處理完成后,將相關數據打包,經過數據包的流轉,回復給瀏覽器
應用層協議:DNS HTTP HTTPS
傳輸層協議:TCP UDP
網絡層協議:IP ARP RARP
參考資料
網絡協議 1 - 概述
一次完整的HTTP請求過程
圖解TCP/IP
github參考
一個完整的web請求
https://www.cnblogs.com/fanfan259/p/10243780.html
