1-計網(wǎng)基礎(chǔ)

訪問一個網(wǎng)頁的全過程

這個過程是我學(xué)計網(wǎng)的時候自頂向下那本書里面寫的全過程常柄,應(yīng)該是最全的一個解釋
還有另一個參考從輸入 URL 到瀏覽器接收的過程中發(fā)生了什么事情?

20160830234021198.png
準(zhǔn)備:DHCP/UDP/IP和以太網(wǎng)

啟動主機(jī),用一根以太網(wǎng)電纜連接到學(xué)校的以太網(wǎng)交換機(jī),交換機(jī)又與學(xué)校的路由器相連.學(xué)校的這臺路由器與一個ISP鏈接,此ISP(Internet Service Provider)還提供了DNS服務(wù).所以DNS服務(wù)器駐留在電信移動聯(lián)通的網(wǎng)絡(luò)中而不是學(xué)校網(wǎng)絡(luò)中.假設(shè)DHCP服務(wù)器運行在路由器中.

當(dāng)主機(jī)與網(wǎng)絡(luò)連接時,沒有IP地址就不能做任何事情,例如下載一個Web網(wǎng)頁.所以主機(jī)采取的一個網(wǎng)絡(luò)相關(guān)的動作是運行DHCP協(xié)議,以從本地的DHCP服務(wù)器獲得一個IP地址以及其他信息.

  1. 系統(tǒng)生成一個DHCP請求報文(動態(tài)主機(jī)配置協(xié)議),并將這個報文放入具有目的地端口67(DHCP服務(wù)器)和源端口68(DHCP客戶)的UDP報文段.該UDP報文段則被放置在一個具有廣播IP目的地址(255.255.255.255)和源IP地址(0.0.0.0)的IP數(shù)據(jù)報中,因為此時主機(jī)還不具有IP地址.
  2. 包含DHCP請求報文的IP數(shù)據(jù)報則被放置在以太網(wǎng)幀中.該以太網(wǎng)幀具有目的MAC地址(FF:FF:FF:FF:FF:FF),使該幀將廣播到與交換機(jī)連接的所有設(shè)備,如果順利的話也包括DHCP服務(wù)器(路由器),該幀的源MAC地址是00:16:D3:23:68:8A.
  3. 包含DHCP請求的廣播以太網(wǎng)幀是第一個由主機(jī)發(fā)到以太網(wǎng)交換機(jī)的幀,該交換機(jī)在所有的出端口廣播幀,包括連接到路由器的端口.
  4. 路由器在它的具有MAC地址00:22:6B:45:1F的接口接收到該廣播的以太網(wǎng)幀,該幀中包含DHCP請求,并且從該以太網(wǎng)幀中抽取出IP數(shù)據(jù)包.該數(shù)據(jù)報的廣播目的地址指示了這個IP數(shù)據(jù)報應(yīng)當(dāng)由該結(jié)點的高層協(xié)議處理,因此該數(shù)據(jù)報的載荷一個UPD報文段被分解向上達(dá)到UDP,DHCP請求報文從此UDP報文段中抽取出來,此時DHCP服務(wù)器有了DHCP請求報文.
  5. 假設(shè)運行的路由器中的DHCP服務(wù)器能夠以CIDR(無類別域間路由選擇)塊68.85.2.0/24分配IP地址.所以,主機(jī)地址在電信地址塊中.假設(shè)DHCP服務(wù)器分配地址68.85.2.101給主機(jī).DHCP服務(wù)器生成包含這個IP地以及DNS服務(wù)器的IP(68.87.71.226)/默認(rèn)網(wǎng)關(guān)路由器的IP地址(68.85.2.1)和子網(wǎng)塊(68.85.2.0/24網(wǎng)絡(luò)掩碼)的一個DHCP ACK報文.該DHCP報文被放入一個UDP報文段中,UDP報文段被放入一個IP數(shù)據(jù)報中,IP數(shù)據(jù)報再被放入一個以太網(wǎng)幀中.一個以太網(wǎng)幀的源MAC地址是路由器連接到歸屬網(wǎng)絡(luò)時接口的MAC地址(00:22:6B:45:1F:1B),目的MAC地址是主機(jī)的MAC地址(00:16:D3:23:68:8A).
  6. 包含DHCP ACK的以太網(wǎng)幀由路由器發(fā)給交換機(jī).因為交換機(jī)是自學(xué)習(xí)的,并且先前從DHCP請求的以太網(wǎng)幀,所以交換機(jī)知道尋址到00:16:D3:23:68:8A的幀僅通過主機(jī)的輸出端口轉(zhuǎn)發(fā).
  7. 主機(jī)收到包含DHCP ACK的以太網(wǎng)幀,從該以太網(wǎng)幀中抽取IP數(shù)據(jù)報,從IP數(shù)據(jù)報中抽取UDP報文段,從UDP報文段中抽取DHCP ACK報文.主機(jī)則記錄下它的IP地址和它的DNS服務(wù)器的IP地址.它還在其IP轉(zhuǎn)發(fā)表中安裝默認(rèn)網(wǎng)關(guān)地址.
仍在準(zhǔn)備: DNS和ARP

當(dāng)在瀏覽器把www.goole.com的URL輸入到Web瀏覽器中時,開啟了一串事件,這將導(dǎo)致谷歌主頁最終顯示在Web瀏覽器上.Web瀏覽器通過生成一個TCP套接字開始該過程,套接字用于向www.google.com發(fā)送HTTP請求.為了生成該套接字,需要知道www.google.com的IP地址.需要使用DNS協(xié)議提供這種名字到IP地址的轉(zhuǎn)換服務(wù).

  1. 主機(jī)操作系統(tǒng)因此生成一個DNS查詢報文,將字符串www.google.com放入DNS報文的問題段中.該DNS報文則放置在一個具有53號(DNS服務(wù)器)目的端口的UDP報文段中.該UDP報文段則被放入具有IP目的地址68.87.71.226和源IP地址68.85.2.101的IP數(shù)據(jù)報中.
  2. 主機(jī)則將包含DNS請求報文的數(shù)據(jù)報IP放入到一個以太網(wǎng)幀中.該幀將發(fā)送到網(wǎng)絡(luò)中的網(wǎng)關(guān)路由器.然而,雖然主機(jī)獲取了網(wǎng)關(guān)路由器的IP地址(68.85.2.1),但仍不知道該網(wǎng)關(guān)路由器的MAC地址.為了獲得該網(wǎng)關(guān)路由器的MAC地址,需要使用ARP(地址解析協(xié)議)協(xié)議.
  3. 主機(jī)生成一個具有目的IP地址68.85.2.1(默認(rèn)網(wǎng)關(guān))的ARP查詢報文,將該ARP報文防止在一個具有廣播目的地址(FF:FF:FF:FF:FF:FF:FF)的以太網(wǎng)幀中,并向交換機(jī)發(fā)送該以太網(wǎng)幀,交換機(jī)將該幀交付給所有連接的設(shè)備,包括網(wǎng)關(guān)路由器.
  4. 網(wǎng)關(guān)路由器在接口上收到包含該ARP查詢報文的幀,發(fā)現(xiàn)ARP報文中目的地址IP地址68.85.2.1匹配接口的IP地址.網(wǎng)關(guān)路由器因此準(zhǔn)備一個ARP回答,指示它的MAC地址00:22:6B:45:1F:1B對應(yīng)地址.68.85.2.1,它將ARP回答放在一個以太網(wǎng)幀中,其目的地址為00:16:D3:23:68:8A,并向交換機(jī)發(fā)送該幀,再由交換機(jī)將該幀交付給主機(jī).
  5. 主機(jī)接收包含ARP回答報文的幀,并從ARP回答報文中抽取網(wǎng)關(guān)路由器的MAC地址(00:22:6B:45:1F:1B)
  6. 主機(jī)能夠包含DNS查詢的以太網(wǎng)幀尋址到網(wǎng)關(guān)路由器的MAC地址.注意,該幀中的IP數(shù)據(jù)報具有IP目的地址68.87.71.226(DNS服務(wù)器),而該幀具有目的地址00:22:6B:45:1F:1B(網(wǎng)關(guān)路由器).主機(jī)像交換機(jī)發(fā)送包含DNS報文的幀,交換機(jī)將該幀交付給網(wǎng)關(guān)路由器.
仍在準(zhǔn)備:域內(nèi)路由選擇到DNS服務(wù)器
  1. 網(wǎng)關(guān)路由器接收該幀并抽取包含DNS查詢的IP數(shù)據(jù)報飘痛。路由器查找該數(shù)據(jù)報的目的地址(68.87.71.226),并根據(jù)其轉(zhuǎn)發(fā)表決定該數(shù)據(jù)報應(yīng)當(dāng)發(fā)送到Comcast網(wǎng)絡(luò)最左側(cè)的路由器容握。
  2. 在Comcast網(wǎng)絡(luò)中最左側(cè)的路由器接收到該幀宣脉,抽取IP數(shù)據(jù)報,檢查該數(shù)據(jù)報的目的地址(68.87.71.226)剔氏,并根據(jù)其轉(zhuǎn)發(fā)表確定出接口塑猖,經(jīng)過該接口朝著DNS服務(wù)器轉(zhuǎn)發(fā)數(shù)據(jù)報,而轉(zhuǎn)發(fā)表已經(jīng)根據(jù)域內(nèi)和域間的BGP(iBGP和eBGP)協(xié)議所填寫谈跛。
  3. 最終包含DNS查詢的IP數(shù)據(jù)報到達(dá)了DNS服務(wù)器羊苟。DNS服務(wù)器抽取出DNS查詢報文,在它的DNS數(shù)據(jù)庫中查找名字www.google.com感憾,找到包含對應(yīng)www.google.com的IP地址(64.233.169.105)的DNS源記錄蜡励。(假設(shè)是當(dāng)前緩存在DNS服務(wù)器中)。這種緩存數(shù)據(jù)源于google.com權(quán)威DNS服務(wù)器阻桅。該DNS服務(wù)器形成了一個包含這種主機(jī)名到IP地址映射的DNS回答報文凉倚,將該DNS回答報文放入UDP報文段中,該報文段放入尋址(68.85.2.101)的IP數(shù)據(jù)報中嫂沉。該數(shù)據(jù)報將通過路由器反向轉(zhuǎn)發(fā)到學(xué)校的路由器稽寒,并從這個例子里的以太網(wǎng)交換機(jī)進(jìn)到主機(jī)。
  4. 主機(jī)從DNS報文中取出服務(wù)器www.google.com的IP地址趟章。
Web客戶-服務(wù)器交互:TCP和HTTP
  1. 既然主機(jī)有了www.google.com的IP地址杏糙,它能夠生成TCP套接字,該套接字將用于向www.google.com發(fā)送HTTP GET報文尤揣。當(dāng)生成TCP套接字時搔啊,主機(jī)的TCP必須首先與www.google.com中的TCP執(zhí)行三次握手柬祠。主機(jī)因此首先生成一個具有目的端口80(針對HTTP的)的TCP SYN報文段北戏,將該TCP報文段放置在具有目的IP地址(64.233.169.105 www.google.com)的IP數(shù)據(jù)報中,將該數(shù)據(jù)報放置在MAC地址為00:22:6B:45:1F:1B(網(wǎng)關(guān)路由器)的幀中漫蛔,并向交換機(jī)發(fā)送該幀嗜愈。
  2. 在學(xué)校網(wǎng)絡(luò)旧蛾,Comcast網(wǎng)絡(luò)和谷歌網(wǎng)絡(luò)中的路由器朝著www.google.com轉(zhuǎn)發(fā)包含TCP SYN的數(shù)據(jù)報,使用每臺路由器中的轉(zhuǎn)發(fā)表蠕嫁。支配分組經(jīng)comcast和 谷歌網(wǎng)絡(luò)之間域間鏈路轉(zhuǎn)發(fā)的路由器轉(zhuǎn)發(fā)表項锨天,是由BGP(自治系統(tǒng)間路由選擇)協(xié)議決定的。
  3. 最終剃毒,包含TCP SYN的數(shù)據(jù)報到達(dá)www.google.com病袄。從數(shù)據(jù)報抽取出TCP SYN報文并分解到與端口80相聯(lián)系的歡迎套接字。然后產(chǎn)生一個TCP SYNACK報文段赘阀,將其放入想主機(jī)尋址的一個數(shù)據(jù)報中益缠,最后放入鏈路層幀中,該鏈路適合將www.google.com鏈接到第一跳路由基公。
  4. 包含TCP SYNACK報文段的數(shù)據(jù)報通過谷歌幅慌,comcast和學(xué)校網(wǎng)絡(luò),最終達(dá)到主機(jī)的以太網(wǎng)卡轰豆。數(shù)據(jù)報在操作系統(tǒng)中分解到TCP套接字胰伍,從而進(jìn)入鏈接狀態(tài)。
  5. 現(xiàn)在準(zhǔn)備向www.google.com發(fā)送字節(jié)了酸休,瀏覽器生成包含獲取的URL的HTTP GET報文骂租。HTTP GET報文則寫入套接字,其中GET報文成為一個TCP報文段的載荷斑司。該TCP報文段放入一個IP數(shù)據(jù)報中菩咨,并交付到www.google.com
  6. www.google.com的HTTP服務(wù)器從TCP套接字中讀取HTTP GET報文陡厘,生成一個HTTP響應(yīng)報文抽米,將請求的Web網(wǎng)頁放入到HTTP響應(yīng)體中,并報文發(fā)送進(jìn)TCP套接字中糙置。
  7. 包含HTTP回答報文的數(shù)據(jù)報通過谷歌云茸,comcast和學(xué)校網(wǎng)絡(luò)進(jìn)行轉(zhuǎn)發(fā),到達(dá)主機(jī)谤饭。瀏覽器從套接字中讀取HTTP響應(yīng)标捺,從HTTP響應(yīng)體中抽取Web網(wǎng)頁的html,并最終顯示了web網(wǎng)頁揉抵。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末亡容,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子冤今,更是在濱河造成了極大的恐慌闺兢,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,036評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件戏罢,死亡現(xiàn)場離奇詭異屋谭,居然都是意外死亡脚囊,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評論 3 395
  • 文/潘曉璐 我一進(jìn)店門桐磁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來悔耘,“玉大人,你說我怎么就攤上這事我擂〕囊裕” “怎么了?”我有些...
    開封第一講書人閱讀 164,411評論 0 354
  • 文/不壞的土叔 我叫張陵校摩,是天一觀的道長泄鹏。 經(jīng)常有香客問我,道長秧耗,這世上最難降的妖魔是什么备籽? 我笑而不...
    開封第一講書人閱讀 58,622評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮分井,結(jié)果婚禮上车猬,老公的妹妹穿的比我還像新娘。我一直安慰自己尺锚,他們只是感情好珠闰,可當(dāng)我...
    茶點故事閱讀 67,661評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著瘫辩,像睡著了一般伏嗜。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上伐厌,一...
    開封第一講書人閱讀 51,521評論 1 304
  • 那天承绸,我揣著相機(jī)與錄音,去河邊找鬼挣轨。 笑死军熏,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的卷扮。 我是一名探鬼主播荡澎,決...
    沈念sama閱讀 40,288評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼晤锹!你這毒婦竟也來了摩幔?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,200評論 0 276
  • 序言:老撾萬榮一對情侶失蹤鞭铆,失蹤者是張志新(化名)和其女友劉穎或衡,沒想到半個月后剂邮,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體趴荸,經(jīng)...
    沈念sama閱讀 45,644評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡缰冤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,837評論 3 336
  • 正文 我和宋清朗相戀三年谍婉,在試婚紗的時候發(fā)現(xiàn)自己被綠了陶因。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片森枪。...
    茶點故事閱讀 39,953評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡誉简,死狀恐怖柄沮,靈堂內(nèi)的尸體忽然破棺而出回梧,到底是詐尸還是另有隱情,我是刑警寧澤祖搓,帶...
    沈念sama閱讀 35,673評論 5 346
  • 正文 年R本政府宣布狱意,位于F島的核電站,受9級特大地震影響拯欧,放射性物質(zhì)發(fā)生泄漏详囤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,281評論 3 329
  • 文/蒙蒙 一镐作、第九天 我趴在偏房一處隱蔽的房頂上張望藏姐。 院中可真熱鬧,春花似錦该贾、人聲如沸羔杨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽兜材。三九已至,卻和暖如春逞力,著一層夾襖步出監(jiān)牢的瞬間曙寡,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評論 1 269
  • 我被黑心中介騙來泰國打工寇荧, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留卵皂,地道東北人。 一個月前我還...
    沈念sama閱讀 48,119評論 3 370
  • 正文 我出身青樓砚亭,卻偏偏與公主長得像灯变,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子捅膘,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,901評論 2 355

推薦閱讀更多精彩內(nèi)容