在華中科技大學校園網下,在IE輸入www.taobao.com之后的過程詳解
1.本地過程
- 若DNS緩存中沒有相關數(shù)據(jù),則IE瀏覽器先向DNS服務器發(fā)出DNS請求;
DNS:域名系統(tǒng),有DNS的地方就有緩存,作為域名和IP地址相互隱射的一個分布式數(shù)據(jù)庫,能使用戶方便訪問互聯(lián)網而不用直接讀取IP數(shù)串
這一過程的目的是獲取www.taobao.com這個域名所對應IP地址;
瀏覽器向本機DNS模塊發(fā)出DNS請求,DNS模塊生成相關的DNS報文
DNS模塊將生成的DNS報告?zhèn)鬟f給傳輸層中的UDP協(xié)議單元
user datagram protocol是開放式系統(tǒng)互聯(lián)模型中一種無連接的傳輸層協(xié)議,全稱是用戶數(shù)據(jù)報協(xié)議,同熟知的TCP傳輸控制協(xié)議一樣,UDP協(xié)議直接位于網際協(xié)議IP協(xié)議的頂層,提供向失誤的簡單不可靠信息傳送服務
- UDP協(xié)議單元將該數(shù)據(jù)封裝成IP數(shù)據(jù)包,傳遞給網絡層的IP協(xié)議單元
IP協(xié)議定義在網絡層,是為了計算機網絡相互鏈接進行通信而設計的協(xié)議,規(guī)定了在網絡上進行通信時遵守的規(guī)則,例如IP數(shù)據(jù)包組成,路由器如何將IP數(shù)據(jù)包發(fā)送到目的主機等
IP協(xié)議單元將該數(shù)據(jù)封裝成IP數(shù)據(jù)包,其中的IP地址為DNS服務器的IP地址
封裝好的IP數(shù)據(jù)包將傳遞給數(shù)據(jù)鏈路層的協(xié)議單元進行發(fā)送
發(fā)送時如果ARP緩存中沒有相關數(shù)據(jù),則發(fā)送ARP廣播請求,等待ARP回復
ARP緩存表每臺主機中都有著一張ARP表,記錄著主機的IP地址和MAC地址的對應關系,ARP協(xié)議是工作在網絡層的協(xié)議,它負責將IP地址解析為MAC地址
- 得到ARP回復以后,將IP地址和路由下一條MAC地址對應的信息寫入APR緩存表
MAC地址表:交換機根據(jù)MAC地址表轉發(fā)數(shù)據(jù)幀,在交換級中有一張記錄著局域網主機MAC地址與交換機接口對應關系的表,交換機根據(jù)這張表負責將數(shù)據(jù)幀傳輸?shù)街付ǖ闹鳈C上
寫入緩存以后,以路由下一跳地址填充目的MAC地址,并以數(shù)據(jù)幀形式轉發(fā)
這個轉發(fā)過程可能會進行多次,這取決于DNS服務器在校園網中的位置
DNS請求被發(fā)送到DNS服務器的數(shù)據(jù)鏈路層協(xié)議單元
數(shù)據(jù)庫鏈路層介于物理層和網絡層中間,將源于網絡層的數(shù)據(jù)可靠的傳輸?shù)较噜徆?jié)點的目標機網絡層
DNS服務器的數(shù)據(jù)庫鏈路層協(xié)議單元解析收到的數(shù)據(jù)幀,將其內部所含有 的IP數(shù)據(jù)包傳遞給網絡層IP協(xié)議單元
DNS服務器的IP協(xié)議單元解析收到的數(shù)據(jù)包,將其內部所含有的UDP數(shù)據(jù)傳遞給傳輸層中的UDP協(xié)議單元
DNS服務器中的UDP協(xié)議單元解析收到的UDP數(shù)據(jù)包,將其內部的DNS報文傳遞給該服務器上的DNS服務單元
DNS服務單元收到DNS請求,將域名解析為對應的IP地址,產生DNS回應報文
所有應用層報文必須通過傳輸層/網絡層和數(shù)據(jù)鏈路層.因此在以下的敘述中,我將簡化這一過程的敘述,簡化形式如下
單箭頭表示為本機內部傳遞,雙箭頭為網絡上的發(fā)送DNS回應報文→UDP→IP→MAC→→請求域名解析的主機;
請求域名解析的主機手打數(shù)據(jù)幀,該數(shù)據(jù)幀→IP→UDP→DNS→IE瀏覽器
將域名解析的結果以域名和IP地址對應的形式寫入DNS緩存表
2.IE瀏覽器與www.taobao.com建立TCP連接:TCP建立連接的三次握手
IE瀏覽器向www.taobao.com發(fā)出TCP連接請求報文
該請求TCP報文中的SYN標志位被設置為1朽基,表示連接請求珍手;該TCP請求報文→IP(DNS)→MAC(ARP)→→校園網關→→www.taobao.com主機厚棵;
該TCP請求報文經過IP層時,填入的目的IP地址就是上面DNS過程獲得的IP地址畜埋;
經過數(shù)據(jù)鏈路層時望众,若MAC地址不明未斑,還要進行上面所敘述的ARP過程;
www.taobao.com收到的數(shù)據(jù)幀→IP→TCP溢豆,TCP協(xié)議單元會回應請求應答報文估蹄;
該請求應答TCP報文中的SYN和ACK標志位均被設置為1,表示連接請求應答沫换;
該TCP請求應答報文→IP→MAC(ARP)→→校園網關→→請求主機臭蚁;
請求主機收到數(shù)據(jù)幀→IP→TCP,TCP協(xié)議單元會回應請求確認報文讯赏;
該請求應答TCP報文中的ACK標志位被設置為1垮兑,表示連接請求確認;
該TCP請求確認報文→IP→MAC(ARP)→→校園網關→→www.taobao.com主機漱挎;
www.taobao.com收到的數(shù)據(jù)幀→IP→TCP系枪,連接建立完成;
在這個過程中磕谅,任何一個報文出錯或超時私爷,都要進行重傳;
這個過程被稱為TCP建立連接的三次握手膊夹。
3.IE瀏覽器開始HTTP訪問過程
IE瀏覽器向www.taobao.com發(fā)出HTTP-GET方法報文衬浑;
該HTTP-GET方法報文→TCP→IP→MAC→→校園網關→→www.taobao.com主機;
www.taobao.com收到的數(shù)據(jù)幀→IP→TCP→HTTP放刨,HTTP協(xié)議單元會回應HTTP協(xié)議格式封裝好的HTML超文本形式數(shù)據(jù)工秩;
HTTP-HTML數(shù)據(jù)→TCP→IP→MAC(ARP)→→校園網關→→請求主機;
請求主機收到的數(shù)據(jù)幀→IP→TCP→HTTP→IE瀏覽器,瀏覽器會以網頁形式顯示HTML超文本助币,就是我們所看到的網頁浪听。
4.斷開TCP連接:TCP斷開連接的四次握手
- IE瀏覽器向www.taobao.com發(fā)出TCP連接結束請求報文;
- 該請求TCP報文中的FIN標志位被設置為1眉菱,表示結束請求迹栓;
- 該TCP結束請求報文→IP→MAC(ARP)→→校園網關→→www.taobao.com主機;
- www.taobao.com收到的數(shù)據(jù)幀→IP→TCP俭缓,+ + TCP協(xié)議單元會回應結束應答報文迈螟;
- 該結束應答TCP報文中的FIN和ACK標志位均被設置為1,表示結束應答尔崔;
- 該TCP結束應答報文→IP→MAC(ARP)→→校園網關→→請求主機答毫;
- 這個過程需要雙向進行,因此www.taobao.com主機也會按上述流程再做一次,整個過程被稱為斷開連接的四次握手