瀏覽器 URL 中輸入網(wǎng)址后回車,瀏覽器在此就會對網(wǎng)址進行一個解析,國內(nèi)大部分第三方瀏覽器(IE 基礎(chǔ)上加殼)會將地址欄輸入關(guān)鍵詞后跳轉(zhuǎn)必應(yīng)搜索的 URL 劫持掉;然后會對本地 host 文件進行一個判斷。
此時瀏覽器會將打包成報文的形式,以 UDP 數(shù)據(jù)報的格式發(fā)送給本地域名解析服務(wù)器(DNS),然后本地 DNS 服務(wù)器將會檢查緩存,緩存中存在對應(yīng)的 IP 地址則會將 IP 地址返回給瀏覽器,如果緩存中不存在或者已過期將會發(fā)送 URL 到跟域名解析服務(wù)器,從根域名解析服務(wù)器獲得對應(yīng)的 IP 地址后返回給瀏覽器。
瀏覽器通過該 IP 地址找到到服務(wù)器的路徑,發(fā)起一個 HTTP 回話到該地址,然后通過傳輸層 TCP 協(xié)議封裝數(shù)據(jù)包,傳輸層會把 HTTP 回話請求分成報文段,添加源端口和目的端口,比如服務(wù)器用80端口監(jiān)聽客戶端請求,客戶端由系統(tǒng)隨機選擇一個端口,服務(wù)器將會把響應(yīng)的請求返回給客戶端該端口。
隨后進入網(wǎng)絡(luò)層,使用 IP 協(xié)議查找服務(wù)器,網(wǎng)絡(luò)層主要通過查找路由表確定如何到達服務(wù)器,中間可能會經(jīng)過多個路由器。
客戶端的鏈路層,包通過鏈路層發(fā)送到路由器,通過鄰居協(xié)議查找給定的ip地址和MAC地址,然后發(fā)送ARP請求查找目的地址,如果得到回應(yīng)后就可以使用ARP的請求應(yīng)答交換的ip數(shù)據(jù)包現(xiàn)在就可以傳輸了,然后發(fā)送Ip數(shù)據(jù)包到達服務(wù)器的地址。