URL訪問網站的整個過程,並描述用到的算法和協議

問:在xx校園網下,在IE中輸入www.sina.com.cn直到顯示結果,請描述這個過程是怎麼進行的,並描述過程中用到的協議和算法

1.本地過程:

  1. 若DNS緩存中沒有相關數據,則IE瀏覽器先向DNS服務器發出DNS請求:
  2. 這一過程的目的是獲取www.sina.com這個域名所對應的IP地址;
  3. IE瀏覽器向本機DNS模塊發出DNS請求,DNS模塊生成相關的DNS報文;
  4. DNS模塊將生成的DNS報文傳遞給傳輸層的UDP協議單元;
  5. UDP協議單元將該數據封裝成UDP數據報,傳遞給網絡層的IP協議單元;
  6. IP協議單元將該數據封裝成IP數據包,其中目的IP地址爲DNS服務器的IP地址;
  7. 封裝好的IP數據包將傳遞給數據鏈路層的協議單元進行發送;
  8. 發送時如果ARP緩存中沒有相關數據,則發送ARP廣播請求,等待ARP迴應;
  9. 得到ARP迴應後,將IP地址與路由下一跳MAC地址對應的信息寫入ARP緩存表;
  10. 寫入緩存後,以路由下一跳地址填充目的MAC地址,並以數據幀形式轉發;
  11. 這個轉發過程可能會進行多次,這取決於DNS服務器在校園網中的位置;
  12. DNS請求被髮送到DNS服務器的數據鏈路層協議單元;
  13. DNS服務器的數據鏈路層協議單元解析收到的數據幀,將其內部所含有的IP數據包傳遞給網絡層IP協議單元;
  14. DNS服務器的IP協議單元解析收到的IP數據包,將其內部所含有的UDP數據報傳遞給傳輸層的UDP協議單元;
  15. DNS服務器的UDP協議單元解析收到的UDP數據包,將其內部所含有的DNS報文傳遞給該服務器上的DNS服務單元;
  16. DNS服務單元收到DNS請求,將域名解析爲對應的IP地址,產生DNS迴應報文;
  17. (所有應用層報文必須通過傳輸層、網絡層和數據鏈路層,因此在下面的敘述中,我將簡化這一過程的敘述,簡化形式如下面的樣子,其中單箭頭爲本機內部傳遞,雙箭頭爲網絡上的發送)
  18. DNS迴應報文→UDP→IP→MAC→→請求域名解析的主機;
  19. 請求域名解析的主機收到數據幀,該數據幀→IP→UDP→DNS→IE瀏覽器;
  20. 將域名解析的結果以域名和IP地址對應的形式寫入DNS緩存表。

2.IE瀏覽器與www.sina.com.cn建立TCP連接:TCP建立連接的三次握手

  1. IE瀏覽器向www.sina.com.cn發出TCP連接請求報文;
  2. 該請求TCP報文中的SYN標誌位被設置爲1,表示連接請求;
  3. 該TCP請求報文→IP(DNS)→MAC(ARP)→→校園網關→→www.sina.com.cn主機;
  4. 該TCP請求報文經過IP層時,填入的目的IP地址就是上面DNS過程獲得的IP地址;
  5. 經過數據鏈路層時,若MAC地址不明,還要進行上面所敘述的ARP過程;
  6. www.sina.com.cn收到的數據幀→IP→TCP,TCP協議單元會迴應請求應答報文;
  7. 該請求應答TCP報文中的SYN和ACK標誌位均被設置爲1,表示連接請求應答;
  8. 該TCP請求應答報文→IP→MAC(ARP)→→校園網關→→請求主機;
  9. 請求主機收到數據幀→IP→TCP,TCP協議單元會迴應請求確認報文;
  10. 該請求應答TCP報文中的ACK標誌位被設置爲1,表示連接請求確認;
  11. 該TCP請求確認報文→IP→MAC(ARP)→→校園網關→→www.sina.com.cn主機;
  12. www.sina.com.cn收到的數據幀→IP→TCP,連接建立完成;

在這個過程中,任何一個報文出錯或超時,都要進行重傳;
這個過程被稱爲TCP建立連接的三次握手。

3.IE瀏覽器開始HTTP訪問過程
  1. IE瀏覽器向www.sina.com.cn發出HTTP-GET方法報文;
  2. 該HTTP-GET方法報文→TCP→IP→MAC→→校園網關→→www.sina.com.cn主機;
  3. www.sina.com.cn收到的數據幀→IP→TCP→HTTP,HTTP協議單元會迴應HTTP協議格式封裝好的HTML超文本形式數據;
  4. HTTP-HTML數據→TCP→IP→MAC(ARP)→→校園網關→→請求主機;
  5. 請求主機收到的數據幀→IP→TCP→HTTP→IE瀏覽器,瀏覽器會以網頁形式顯示HTML超文本,就是我們所看到的網頁。
4.斷開TCP連接:TCP斷開連接的四次握手
  1. IE瀏覽器向www.sina.com.cn發出TCP連接結束請求報文;
  2. 該請求TCP報文中的FIN標誌位被設置爲1,表示結束請求;
  3. 該TCP結束請求報文→IP→MAC(ARP)→→校園網關→→www.sina.com.cn主機;
  4. www.sina.com.cn收到的數據幀→IP→TCP,TCP協議單元會迴應結束應答報文;
  5. 該結束應答TCP報文中的FIN和ACK標誌位均被設置爲1,表示結束應答;
  6. 該TCP結束應答報文→IP→MAC(ARP)→→校園網關→→請求主機;
這個過程需要雙向進行,因此www.sina.com.cn主機也會按上述流程再做一次;
整個過程被稱爲TCP斷開連接的四次握手



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