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記錄的時間,不同的瀏覽器會儲存2到30min不等;
• DNS模組將生成的DNS報文傳遞給傳輸層的UDP協議單元;
• 若快取中沒有相關資料,則瀏覽器向DNS伺服器發出DNS請求;
• 瀏覽器向本級DNS模組發出DNS請求,DNS模組生成相應的DNS報文;
• UDP協議單元將該DNS報文封裝成UDP資料報,傳遞給網路層的IP協議單元;
• IP協議單元將該UDP資料報封裝成IP報文,其中目的地址為DNS伺服器的IP地址,傳遞給資料鏈路層協議單元;
• 資料鏈路層協議單元將該IP報文封裝成幀的形式傳送出去,封裝幀的過程中需要查詢目的
• 在本機ARP快取中查詢目的IP地址與下一跳MAC地址對應條目,若沒有,則傳送ARP廣播請求,等待ARP迴應;
• 得到ARP響應後,將目的IP地址與路由下一跳MAC地址對應的資訊寫入ARP快取表,並以路由下一跳地址填充幀頭的目的MAC地址,然後轉發該幀;
• 這個轉發過程可能會進行多次,與DNS伺服器位置有關;
• 資料幀轉發到DNS伺服器後,DNS伺服器檢查目的MAC地址,發現是自己,拆掉二層封裝,將其內部的IP報文傳遞給網路層的IP協議單元;
• DNS伺服器的IP協議單元檢視IP地址,是自己,解析該IP報文,將其內部含有的UDP資料報傳遞給傳輸層的UDP協議單元;
• 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→TCP,TCP協議單元會迴應請求應答報文;
• 該請求應答報文中SYN和ACK標誌均被置為1,表示連線請求應答;
• 該TCP請求應答報文→IP→MAC(ARP)→→校園閘道器→→請求主機;
• 請求主機收到資料幀→IP→TCP,TCP協議單元會迴應請求確認報文;
• 該請求應答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→HTTP,HTTP協議單元會迴應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→TCP,TCP協議單元會迴應結束應答報文;
•該結束應答TCP報文中的FIN和ACK標誌位均被設定為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