Web 頁面請求過程


准備DHCP、UDP、IP和以太網

  1. 主機生成DHCP請求報文,放入UDP報文段中,源地址0.0.0.0,目的地址255.255.255.255

  2. 將包含DHCP請求報文的IP數據報放入以太網幀中,目的MAC地址FF:FF:FF:FF:FF:FF,源MAC地址是主機MAC地址。 交換機會廣播該數據幀。

  3. 交換機廣播DHCP幀到所有端口,包括連接路由器的端口。

  4. 路由器接收到以太網幀后抽取IP數據報,抽取DHCP請求報文。

  5. 路由器生成DHCP ACK報文,包括分配的IP地址,DNS服務器的地址,默認網關地址,子網掩碼,包裝成UDP數據報,放入以太網幀,包括源MAC地址(路由器地址)和目的IP地址(主機地址)。

  6. 交換機收到后轉發到主機端口。

  7. 主機接收到DHCP ACK報文后設置自己的IP地址、DNS地址、默認網關和子網掩碼,之后在子網掩碼以外的所有數據報都被發送到默認網關。

准備DNS和ARP

當我們向瀏覽器鍵入www.google.com時,瀏覽器會生成一個TCP套接字,由套接字發送HTTP請求,為了生成套接字我們需要知道www.google.com的IP地址,這就涉及DNS協議。

  1. 主機生成DNS查詢,將DNS報文放入UDP報文段中,目的地址在7中記錄的DNS服務器地址。

  2. 封裝成以太網幀發送到網關路由器,雖然我們知道網關路由器的IP地址,但仍然需要用ARP協議獲取網關的MAC地址。

  3. 主機生成ARP查詢報文,目的地址就是默認網關,MAC地址為廣播地址,交換機廣播該報文。

  4. 網關地址接收到ARP查詢報文,解析出目的地址就是自己的地址,因此返回一個ARP回答包含自己的MAC地址,向交換機發送,交換機轉發給主機。

  5. 主機得到默認網關的MAC地址

  6. 現在可以使DNS查詢報文到達DNS服務器,此時DNS數據報的IP目的地址是DNS服務器的地址,MAC目的地址是網關路由器。

  7. 網關路由器接收DNS查詢報文,根據目的IP地址和存儲的轉發表發送到合適的路由器。

  8. 路由器收到IP數據報后根據目的IP地址和轉發表發送到DNS服務器。

  9. DNS服務器抽取到DNS查詢報文,查找到www.google.com的記錄,然后將DNS回答報文放入UDP報文段,經過路由器交換機達到主機。

  10. 主機終於獲取到www.google.com的IP地址。

TCP和HTTP

  1. 有了IP地址就可以生成TCP套接字,向www.google.com發送HTTP get報文,在生成TCP套接字時需要先和服務器三次握手連接,此時主機會發送目的端口80的TCP SYN報文,MAC地址為網關。

  2. 在網絡中的路由器轉發TCP SYN數據報

  3. 達到www.google.com的服務器,抽取出TCP SYN數據報發送到80端口的套接字上,回復TCP SYN ACK報文。
    問題:客戶端可以向服務器發送請求是因為服務器有公網IP,但是客戶端沒有,他是怎么接收服務器的回復的

  4. 主機最終會接收到TCP SYN ACK 報文,從而進入連接狀態。

  5. 現在已經建立TCP連接,主機向服務器發送HTTP GET報文。

  6. 服務器返回HTTP響應報文

  7. 主機瀏覽器讀取HTTP響應報文,抽取HTML顯示網頁。


免責聲明!

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



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