1. 程式人生 > >Web瀏覽過程中涉及到的協議

Web瀏覽過程中涉及到的協議

當你要訪問一個網頁時,首先要在瀏覽器中輸入網址,假如我們在xx校園網內,訪問http://www.cfca.com.cn/chanpin/chanpin.htm,它的各部分含義如下:

  • http://  代表訪問該資源所使用的應用層傳輸協議,通知cfca.com.cn伺服器顯示web網頁
  • www  代表一個Web(全球資訊網)伺服器
  • cfca.com.cn/  這時裝有網頁伺服器的域名,或站點伺服器的名稱
  • chanpin/  這是該伺服器上的某個路徑,就好像我們的資料夾
  • chanpin.htm  這是資料夾中的一個HTML檔案(網頁)

輸入網址直到顯示結果的過程如下:

1、域名解析

導航的第一步是通過輸入的域名找出其IP地址,DNS查詢過程如下:

查詢瀏覽器快取,瀏覽器會快取DNS記錄一段時間。但是作業系統並沒有告訴瀏覽器儲存DNS記錄的時間,不同的瀏覽器會儲存230min不等;

DNS模組將生成的DNS報文傳遞給傳輸層的UDP協議單元;

若快取中沒有相關資料,則瀏覽器向DNS伺服器發出DNS請求;

瀏覽器向本級DNS模組發出DNS請求,DNS模組生成相應的DNS報文;

UDP協議單元將該DNS報文封裝成UDP資料報,傳遞給網路層的IP協議單元;

IP協議單元將該UDP資料報封裝成IP報文,其中目的地址為DNS伺服器的IP地址,傳遞給資料鏈路層協議單元;

資料鏈路層協議單元將該IP報文封裝成幀的形式傳送出去,封裝幀的過程中需要查詢目的

MAC地址;

在本機ARP快取中查詢目的IP地址與下一跳MAC地址對應條目,若沒有,則傳送ARP廣播請求,等待ARP迴應;

得到ARP響應後,將目的IP地址與路由下一跳MAC地址對應的資訊寫入ARP快取表,並以路由下一跳地址填充幀頭的目的MAC地址,然後轉發該幀;

這個轉發過程可能會進行多次,與DNS伺服器位置有關;

資料幀轉發到DNS伺服器後,DNS伺服器檢查目的MAC地址,發現是自己,拆掉二層封裝,將其內部的IP報文傳遞給網路層的IP協議單元;

DNS伺服器的IP協議單元檢視IP地址,是自己,解析該IP報文,將其內部含有的UDP資料報傳遞給傳輸層的UDP協議單元;

DNS

伺服器的UDP協議單元解析收到的UDP資料報,將其內部所含的DNS報文傳遞給該伺服器上的DNS服務單元;

DNS服務單元收到DNS請求,將域名解析為對應的IP地址,產生DNS迴應報文(DNS域名解析過程詳解見點選開啟連結);

(所有的應用層報文必須通過傳輸層、網路層和資料鏈路層,因此在下面的敘述中,我將簡化這一過程的敘述,簡化形式如下面的樣子,其中單箭頭為本機內部傳遞,雙箭頭為網路上的傳送)

DNS迴應報文→UDP→IP→MAC→→請求域名解析的主機;

請求域名解析的主機收到資料幀,該資料幀→IP→UDP→DNS→IE瀏覽器,並將域名解析的結果以域名和IP地址對應的形式寫入DNS快取表。

至此,我們得到了目的IP地址。

2、瀏覽器與www.cfca.com.cn/建立TCP連線:TCP建立連線的三次握手

瀏覽器向www.cfca.com.cn發出TCP連線請求報文;

該連線請求報文中SYN標誌位被設定為1,表示連線請求;

TCP連線請求報文被傳遞給網路層的IP協議單元,目的IP地址就是上述DNS過程獲得的IP地址;

網路層封裝好後將IP報文傳送給資料鏈路層,如果下一跳的MAC地址不知道,呼叫ARP地址解析(ARP地址解析詳見點選開啟連結)獲得MAC地址;

資料鏈路層將幀發往目的地址;

www.cfca.com.cn收到資料幀→IP→TCPTCP協議單元會迴應請求應答報文;

該請求應答報文中SYNACK標誌均被置為1,表示連線請求應答;

TCP請求應答報文→IP→MAC(ARP)→→校園閘道器→→請求主機;

請求主機收到資料幀→IP→TCPTCP協議單元會迴應請求確認報文;

該請求應答TCP報文中的ACK標誌位被設定為1,表示連線請求確認;

TCP請求確認報文→IP→MAC(ARP)→→校園閘道器→→www.cfca.com.cn主機;

www.cfca.com.cn收到的資料幀→IP→TCP,連線建立完成;

3、瀏覽器開始HTTP訪問過程

瀏覽器向www.cfca.com.cn發出HTTP-GET方法報文;

HTTP-GET方法報文→TCP→IP→MAC→→校園閘道器→→www.cfca.com.cn主機;

www.cfca.com.cn收到的資料幀→IP→TCP→HTTPHTTP協議單元會迴應HTTP協議格式封裝好的HTML超文字形式資料;

HTTP-HTML資料→TCP→IP→MAC(ARP)→→校園閘道器→→請求主機;

請求主機收到的資料幀→IP→TCP→HTTP→IE瀏覽器,瀏覽器會以網頁形式顯示HTML超文字,就是我們所看到的網頁。

4、斷開TCP連線:TCP斷開連線的四次揮手

瀏覽器向www.cfca.com.cn發出TCP連線結束請求報文;

該請求TCP報文中的FIN標誌位被設定為1,表示結束請求;

TCP結束請求報文→IP→MAC(ARP)→→校園閘道器→→www.cfca.com.cn主機;

www.cfca.com.cn收到的資料幀→IP→TCPTCP協議單元會迴應結束應答報文;

該結束應答TCP報文中的FINACK標誌位均被設定為1,表示結束應答;

TCP結束應答報文→IP→MAC(ARP)→→校園閘道器→→請求主機;

這個過程需要雙向進行,因此www.cfca.com.cn主機也會按上述流程再做一次;
整個過程被稱為TCP斷開連線的四次揮手。

參考:

http://www.cfca.com.cn/20150810/101229817.html

http://blog.csdn.net/gs_008/article/details/50976483