輸入域名到顯示網頁的網路過程
應用層:
首先瀏覽器是在應用層上的WEB服務。WEB服務的實現主要包含了HTTP超文字傳輸協議,URL統一資源定位符,HTML超文字標記語言,以及瀏覽器和伺服器。在WEB服務中瀏覽器相當於C/S模式中的client客戶端,伺服器相當於server服務端,是一對多的關係。 在你敲擊域名之後,瀏覽器首先會檢視自己有沒有關於這個域名的快取。如果沒有,則檢視本地計算機的快取,如果還沒有,則會呼叫DNS服務進行域名解析。
1. 瀏覽器快取
2. 本地快取
3. 呼叫DNS服務
呼叫DNS服務後,會發送一個DNS解析請求的報文,該報文是基於傳輸層的UDP協議。在進行IP分組封裝後分組會被直接傳到預設路由器(預設閘道器),如果路由器快取有該域名IP,則直1. 路由器快取
2. NAT服務提供外網IP
3. DNS伺服器查詢返回結果:遞迴或者迭代查詢
上述完成的是一個域名解析的過程,即只是完成了讓瀏覽器獲得你所輸入的域名的IP地址。然後上述的過程沒有對傳輸層進行講述,我將在下面的過程對傳輸層和網路層進行一定的闡述。
傳輸層:
得到IP地址後,瀏覽器會向IP對應的伺服器傳送一個GET的HTTP請求報文。在傳輸層上,HTTP協議是基於TCP協議傳輸的。所以TCP對HTTP請求報文進行封裝成TCP報文,然會對伺服器請求連線,在完成3次握手後,TCP連線建立成功。即瀏覽器和伺服器之間可以開始傳輸資料了。由於是GET請求,所以伺服器會返回一個HTML主頁給瀏覽器。伺服器端首先將包含了HTML文字的HTTP應答填入TCP滑動視窗快取,然後根據TCP的流量控制和擁塞控制對快取中的內容進行傳輸到客戶端。瀏覽器成功接受到html文字後根據html標準進行解析,最終展示成一個主頁的形式給使用者檢視。如果使用者此時關閉了頁面,TCP則會進行四次揮手斷開瀏覽器與伺服器端的連線。
2. TCP3次握手連線
3. 根據TCP流量控制和擁塞控制傳輸主頁文字
4. 瀏覽器解析主頁文字
5. TCP4次握手斷開連線
上述已經把整個過程都講完了,然後下面我在稍微提一下網路層。網路拓撲路徑:客戶端-路由器-路由器-路由器-服務端。傳輸層針對的是端到端之間的傳輸服務,而網路層針對的是點到點的傳輸。
網路層:
TCP報文往下到網路層時,IP協議會對該報文進行處理。如果報文內容過大,則會對其進行分段,裁減成多分IP報文進行傳輸。在點與點之間傳輸時,主要處理的是路由轉發演算法。因為端與端之間存在著多個路由,所以要研究如何傳輸才能使得總體較優。路由轉發演算法包括:標準路由轉發,向量路由轉發,最短距離路由轉發等。1. 分組分段
2. 路由轉發
在資料鏈路層所討論的則是Bit級別的資料問題。不做深究。以上就是大致的一個過程,涵蓋了應用層,傳輸層和網路層。裡面有很多細節都是值得討論的。像是3次握手,擁塞控制,路由轉發演算法等。
一個其他人的超詳細分析