計算機網絡之 本機獲取IP過程和Web頁面請求過程


本節內容節選自《計算機網絡自頂向下》

通過DHCP獲取本機IP地址

  • 主機可以通過DHCP協議從本地DHCP服務器獲取IP地址以及其他網絡信息。
  1. 生成DHCP請求報文:主機上的操作系統生成一個DHCP報文,並將這個報文放入具有目的端口的67(DHCP服務器)和源端口68(DHCP客戶)的UDP報文段中,該UDP報文將被放入IP數據報,最終封裝成以太網幀,通過廣播到與交換機連接的所有設備。包含DHCP請求的廣播以太網幀是第一個由該主機發送到以太網交換機的幀。該交換機在所有出端口廣播入幀,包括連接到路由器的端口。
  2. DHCP服務器(一般運行路由器中)返回IP地址及其他網絡信息:路由器接收到該以太網幀通過識別目的地址得知這個數據報應該由該節點的高層協議處理,因此該數據報的載荷分解向上到達UDP,DHCP請求報文從UDP報文段中抽取出來。DHCP服務器生成包含這個IP地址以及DNS服務器的IP地址,默認網關路由器的IP地址等內容的一個DHCP ACK報文。該DHCP ACK報文被放到一個UDP報文段中,UDP報文段被放入一個IP數據報,IP數據報再被放到一個以太網幀中。以太網幀通過路由器發送給交換機,交換機將DHCP ACK報文返回給主機。主機接收到DHCP ACK以太網幀,最終抽取出DHCP ACK報文段。主機則記錄下DHCP分配的IP地址和DNS服務器地址等信息。還在其IP轉發表中安裝默認網關的地址。

Web頁面請求過程

  1. 生成DNS查詢報文:主機生成一個DNS查詢報文,將要訪問的主機名放入DNS報文中。該DNS報文則放置到一個具有53號目的端口(DNS服務器)的UDP報文段中。報文段則放入以DNS服務器為目的IP地址的數據報中。主機則將包含DNS請求報文的數據報放入一個以太網幀中。該幀將被交換機發往學校網絡中的網關路由器。
  2. 通過ARP查詢報文獲取目的IP地址的MAC地址:主機在發送DNS查詢報文前先生成一個ARP查詢報文,將該以太網幀(ARP查詢報文所在的)通過交換機發送到所有連接的設備,包括網關路由器。路由器發現該以太網幀的目的IP地址與自己的IP地址相符則准備一個ARP回應報文,將ARP請求報文中IP地址對應的MAC地址寫入ARP回應報文,通過交換機再交還給請求主機。主機從ARP回答報文中抽取網關路由器的MAC地址,至此,主機終於能夠使包含DNS查詢的以太網幀尋址到網關路由器的MAC地址。注意:DNS查詢報文中,IP數據報具有目的IP地址,報文所在的以太網幀具有網關路由器的MAC地址,該MAC地址是用來尋找下一跳路由器的物理地址。
  3. 獲取IP地址:網關路由器接收到以太網幀(DNS請求報文所在的)並抽取其中包含DNS查詢的IP數據報。通過轉發表確定下一跳路由器。依次,最終以太網幀到達DNS服務器,DNS服務器通過對比目的地址,從而抽取到DNS查詢報文,在它的DNS緩存數據庫中查找該主機名所對應的IP地址。DNS服務器生成包含這個IP地址的DNS回答報文並發給請求主機。最終主機通過從DNS報文中抽取出需要請求網頁web服務器的IP地址。
  4. 通過三次握手建立連接:有了目的地址的IP地址后,他能夠生成TCP套接字。該套接字將用於向目的web網址發送HTTP請求報文。客戶端必須先與服務器的TCP程序執行三次握手。客戶端生成一個具有目的端口80(針對HTTP)的TCP SYN報文段,該報文段放置在具有目的IP地址為服務器IP地址的IP數據報中。數據報放置在MAC地址為網關路由器的幀中,並通過網關路由器發送該幀。路途中各個路由器通過轉發表確定該幀的下一跳路由器。數據報最終到達服務器。服務器抽取TCP SYN報文並分解到端口80相連接的歡迎套接字,對於服務器和客戶端之間的TCP連接生成一個連接套接字。產生一個TCP SYNACK報文段,通過套接字將其發往客戶端。ACK報文最終到達客戶端。IP數據報在操作系統中分解到上面生成的TCP套接字,從而進入連接狀態。借助於該套接字,客戶端瀏覽器可以生成獲取URL的HTTP報文。HTTP報文則寫入套接字。TCP報文則承載HTTP報文,生成一個IP數據報,最后封裝成幀發送給服務器。服務器讀取HTTP請求報文,將生成HTTP響應報文,將請求的Web網頁內容放入HTTP響應體,並將報文放入TCP套接字。客戶端收到報文后從套接字中讀取HTTP響應,從響應體中抽取Web頁面,並渲染最終得到用戶眼中的網頁。


免責聲明!

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



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