在瀏覽器中輸入URL后,執行的全部程序,會用到哪些協議?(一次完整的HTTP請求程序)
整個流程如下:
- 域名決議
- 為了將訊息從你的PC上傳到服務器上,需要用到IP協議、ARP協議和OSPF協議,
- 發起TCP的三次握手
- 建立TCP連接后發起HTTP請求
- 服務器回應HTTP請求
- 瀏覽器決議html代碼,并請求HTML代碼中的資源(如js、css、圖片等)
- 斷開TCP連接
- 瀏覽器對頁面進行渲染呈現給用戶
域名決議
比如要查詢www.baidu.com的IP地址:
1、瀏覽器搜索自己的DNS快取(維護一張域名與IP地址的對應表);
2、若沒有,則搜索作業系統中的DNS快取(維護一張域名與IP地址的對應表);
3、若沒有,則搜索作業系統的hosts檔案(Windows環境下,維護一張域名與IP地址的對應表);
4、若沒有,則作業系統將域名發送至本地域名服務器---(遞回查詢方式),本地域名服務器查詢自己的DNS快取,查找成功則回傳結果,否則,(以下是迭代查詢方式)
4.1. 本地域名服務器向根域名服務器(其雖然沒有每個域名的具體資訊,但存盤了負責每個域,如com、net、org等決議的頂級域名服務器的地址)發起請求,此處,根域名服務器回傳com域的頂級域名服務器的地址;
4.2. 本地域名服務器向com域的頂級域名服務器發起請求,回傳baidu.com權限域名服務器(權限域名服務器,用來保存該區中的所有主機域名到IP地址的映射)地址;
4.3. 本地域名服務器向baidu.com權限域名服務器發起請求,得到www.baidu.com的IP地址;
5、本地域名服務器將得到的IP地址回傳給作業系統,同時自己也將IP地址快取起來;
6、作業系統將IP地址回傳給瀏覽器,同時自己也將IP地址快取起來;
7、至此,瀏覽器已經得到了域名對應的IP地址;
ARP(地址決議協議)
ARP解決的是同一個局域網內,主機或路由器的IP地址和MAC地址的映射問題,如果源主機和目的主機在同一個局域網內(目標IP和本機IP分別與子網掩碼相與的結果相同,那么它們在一個子網),就可以用ARP找到目的主機的MAC地址;如果不在一個局域網內,用ARP協議找到本網路內的一個路由器的MAC地址,剩下的作業有這個路由器來完成,
ARP協議的具體內容:
(1)每個主機都會有ARP高速快取,存盤本局域網內IP地址和MAC地址之間的對應關系,
(2)當源主機要發送資料時,首先檢查ARP高速快取中是否有對應IP地址目的主機的MAC地址,如果有,則直接發送資料,如果沒有,就像本網段的所有主機發送ARP請求分組,該資料包包括的內容有:(源主機IP地址,源主機MAC地址,目的主機的IP地址),
(3)當本網路的所有主機收到該ARP請求分組時,首先檢查資料包中的IP地址是否是自己的IP地址,如果不是,則忽略該資料包;如果是,則首先從資料包中取出源主機的IP地址和MAC地址寫入到ARP高速快取中,如果已經存在,則覆寫,然后將自己的MAC地址寫入ARP回應包中,告訴源主機自己是它想要找的MAC地址,
(4)源主機收到ARP回應分組后,將目的主機的IP和MAC地址寫入ARP高速快取中,并利用此資訊發送資料,如果源主機一直沒有收到ARP回應分組,表示ARP查詢失敗,
路由選擇協議
網路層主要做的是通過查找路由表確定如何到達服務器,期間可能經過多個路由器,這些都是由路由器來完成的作業,通過查找路由表決定通過哪個路徑到達服務器,其中用到路由選擇協議,
有兩大類路由選擇協議
1、內部網關協議
內部網關協議IGP(Internet Gateway Protocol)即在一個自治系統內部使用的路由選擇協議,RIP和OSRF協議和IS-IS協議,IGRP(內部網關路由協議)、EIGRP(增強型內部網關路由協議),
(1)RIP(應用層協議,基于UDP)
RIP是一種基于距離向量的路由選擇協議,RIP協議要求網路中的每一個路由器都要維護從它自己到其他每一個目的網路的距離記錄,這里的“距離”實際上指的是“最短距離”,只能包含15個路由器,RIP認為一個好的路由就是它通過的路由器的數量少,即“距離短”,RIP允許一條路徑最多只能包含15個路由器,“距離”的最大值為16是即相當于不可達,RIP選擇一個具有最少路由器的路由(即最短路由),哪怕還存在另一條高速(低時延)但路由器較多的路由,
(2)OSPF(網路層協議)
“最短路徑優先”是因為使用了Dijkstra提出的最短路徑演算法,使用洪范法向本自治系統中所有路由器發送資訊,發送的資訊就是與本路由器相鄰的所有路由器的鏈路狀態(“鏈路狀態”就是說明本路由器都和哪些路由器相鄰,以及該鏈路的“度量”),但這只是路由器所知道的部分資訊,只有當鏈路狀態發生變化時,路由器才用洪范法向所有路由器發送此資訊,
2、外部網關協議
(1)BGP協議(應用層協議,基于TCP的)
BGP是不同自治系統的路由器之間交換路由資訊的協議,邊界網關協議BGP只能是力求尋找一條能過到達目的網路且比較好的路由(不能兜圈子),而并非要尋找一條最佳路由,
BGP發言人:每一個自治系統的管理員要選擇至少一個路由器作為該自治系統的“BGP發言人”/一般來說,兩個BGP發言人都是通過一個共享網路連接在一起的,而BGP發言人往往就是BGP邊界路由器,但也可以不是BGP邊界路由器,
BGP交換路由資訊:一個BGP發言人與其他自治系統中的BGP發言人要交換資訊,就要先建立TCP連接,然后在此連接上交換BGP報文以建立BGP會話(session),利用BGP會話交換路由資訊,使用TCP連接能提供可靠的服務也簡化了路由選擇協議,使用TCP連接交換路由資訊的兩個BGP發言人,彼此成為對方的臨站或對等站,BGP所交換的路由資訊就是到達某個網路所要經過的一系列AS,
路由分組轉發演算法
(1)首先從IP資料報首部提取目的主機的IP地址D,得出其所在的網路N,
(2)若N就是與此路由器直接相連的某個網路,則進行直接交付,直接把資料報交付給目的主機,否則就執行(3),
(3)若路由表中有目的地址為D的特定主機路由,則把資料報傳給路由表中所指明的下一跳路由器,否則執行(4),
(4)若路由表中有到達網路N的路由,則把資料報傳給路由表中所指明的下一跳路由器,否則執行(5),
(5)若路由表中有一個默認路由,則把資料報傳給默認路由所指明的默認路由器,否則執行(6),
(6)報告轉發分組出錯,
路由器與交換機的區別是什么?
1)交換機作業在資料鏈路層;路由器作業在網路層;
2)交換機轉發資料幀;路由器轉發IP組;
3)交換機隔離沖突域,不隔離廣播域;路由器隔離沖突域,隔離廣播域;
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/24664.html
標籤:其他
下一篇:阿里一面電話面
