【計算機網絡】訪問一個網頁的過程

參考:https://blog.csdn.net/qq_35075909/article/details/91969830

參考:https://blog.csdn.net/u010653908/article/details/53453368?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

  1. 建立完成的socket套接字需要5個參數:【本機IP】【本機端口號】【使用協議】【要訪問機器IP】【要訪問機器端口號】
  2. 訪問百度的網址,輸入www.baidu.com,此時需要找到百度的IP地址,使用DNS協議,向DNS服務器發送數據包(DNS服務器開啓53端口),DNS服務器返回【百度IP地址】。利用子網掩碼判斷要訪問的IP是否和本地主機在同一個網段,如果不在同一個網段,那麼向百度發送數據包必須通過網關轉發。也就是說接收方的mac地址是網關的mac地址(如果是同一個網段的話mac地址就是我們要訪問的機器的mac地址)。【先ping網關,再用arp -a就可以得到網關mac地址】
    向dns服務器發送數據包
    向dns服務器發送數據包
  3. 接下來通過應用層,瀏覽器訪問使用的是http協議,構造一個http數據包。假定其長度爲4960個字節,他會被嵌在tcp數據包之中。
  4. 然後傳輸層Tcp數據包需要設置端口,接收方的默認端口是80,本機的端口是一個隨機生成的1024到65535之間的整數。假定爲8888。Tcp數據包的包頭長度爲20字節,加上http數據包,爲4980字節。
  5. 然後經過網絡層,tcp數據包再嵌入ip數據包,ip數據包需設置雙方ip【已知】。Ip數據包的頭長度爲20字節,總共是5000字節。IP數據包經過網關轉發,進入以太網。
  6. 接下來到數據鏈路層。Ip數據包嵌入以太網數據包,以太網數據包需設置雙方mac地址【已知】,接收方mac地址即網關mac地址【通過arp協議得到】。以太網數據包的數據部分最大爲1500字節,因此ip數據包必須分包,因爲每個包都有自己的ip標頭,因此四個包的ip數據包的長度分別是1500,1500,1500,560。
  7. 然後是物理層。物理線路則只負責該數據以bit爲單位從主機傳輸到下一個目的地。下一個目的地接受到數據後,從物理層得到數據然後經過逐層的解包到鏈路層到網絡層,然後開始上述的處理,在經網絡層、鏈路層、物理層將數據封裝好繼續傳往下一個地址。
     

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章