《計算機網絡 自頂向下方法》整理(六)鏈路層和局域網

一、鏈路層概述

術語定義:

  • 節點:運行鏈路層協議的任何設備均稱爲節點,包括主機、路由器、交換機和WiFi接入點;
  • 鏈路:沿着通信鏈路連接相鄰節點的通信信道稱爲鏈路;
  • 鏈路層幀:在通過特定的鏈路時,傳輸節點將數據報封裝在鏈路層幀中,並將該幀傳送到鏈路中;

1、鏈路層提供的服務

鏈路層的基本服務都是將數據報通過單一通信鏈路從一個節點移動到相鄰的節點,但所提供服務的細節隨着鏈路層協議的不同而變化。服務包括如下:

  • 成幀:在每個網絡層數據報經鏈路傳送之前,幾乎所有的鏈路層協議都將其用鏈路層幀封裝起來;一個幀由一個數據字段和若干首部字段組成,網絡層數據報就插在數據字段中。幀的結構由鏈路層協議規定;
  • 鏈路接入:媒體訪問控制協議(Medium Access Control MAC)規定了幀在鏈路上的傳輸的規則,當存在多路訪問問題時,MAC協議用於協調多個節點的幀傳輸;
  • 可靠交付:保證無差錯的經鏈路層移動每個網絡層數據報,鏈路層的可靠交付服務通常是通過確認和重傳取得的;
  • 差錯檢測和糾正:通過讓發送節點在幀中包括差錯檢測比特,讓接受節點進行差錯檢查,以此來完成這項工作;

2、鏈路層在何處實現

鏈路層的主體部分實在網絡適配器(network adapter)中實現的,網絡適配器有時也稱作網絡接口卡(NetWork Interface Card,NIC),位於網絡適配器核心的是鏈路層控制器,該控制器通常是一個實現了許多鏈路層服務的專用芯片。

在發送端,控制器將取得協議棧上層創建並存儲在主機內存中的數據報,在鏈路層幀中封裝該數據報,然後按照鏈路接入協議將幀傳輸到通信鏈路中。在接收端,控制器接收整個幀,並提取出網絡層的數據報。如果鏈路層執行差錯檢測,則需要發送控制器在該幀的首部設置差錯檢測比特,由接受控制器執行差錯檢測

二、差錯檢測和糾正技術

這裏我們研究3中患側差錯的技術,奇偶校驗(描述差錯檢測和糾正背後隱藏的基本思想),檢驗和方法(更多的應用於運輸層)和循環冗餘檢測(通常更多的應用在適配器中的鏈路層)

1、奇偶校驗

差錯檢測最簡單的方式就是用單個奇偶校驗位。假設發送的信息D有d比特,將其劃分爲i行j列,對每行每列計算奇偶值,產生的i+j+1奇偶比特構成了鏈路層幀的差錯檢測比特。使用這種二維奇偶校驗方案,包含比特值改變的列和行的校驗值都將會出現差錯。接收方檢測和糾錯的能力被稱爲前向糾錯(EFC),它們可以減少所需的發送方重試次數,並且它允許接收方立即糾正差錯,避免不得不等待的往返延時。

2、檢驗和方法

將d比特數據作爲k比特整數的序列處理。一個簡單的檢驗和方法就是將k比特整數加起來,並且用得到的和作爲差錯檢測比特。因特網檢驗和就是基於這種方法

3、循環冗餘檢測

現今的計算機網絡中使用最爲廣泛的差錯檢測技術就是基於循環冗餘檢測(CRC)編碼,CRC編碼也稱爲多項式編碼。考慮d比特的數據D,發送方和接收方首先必須協商一個r+1比特模式,稱爲生成多項式,將其表示爲G。這裏要求G的最高有效位(最左邊)的比特是1。

CRC編碼的關鍵思想是對於給定的數據段D,發送方選擇r個附加比特R,並將它們附加到D上,使得到d+r比特模式,用模2算數(加法中不進位,減法中不借位,等價於操作數的按位異或)恰好能被G整除。過程如下:接收方用G去接受d+r比特,如果餘數非零,則出現了差錯

三、多路訪問鏈路和協議

有兩種類型的網絡鏈路:點對點鏈路和廣播鏈路。考慮一個重要的問題:如何協調多個發送和接受點對一個共享廣播信道的訪問,即多路訪問問題。計算機網絡中通過多路訪問協議,來規範節點在共享的廣播信道上的傳輸行爲。

多個節點可能同時傳輸幀,因而所有節點同時接收到多個幀,傳輸的幀在所有的接收方處會發生碰撞。當多個節點處於活躍狀態時,爲了確保廣播信道的正常執行,需要以某種方式協調活躍的節點,而這正是多路訪問協議的責任。這裏將任何多路訪問協議劃分爲3種:信道劃分協議隨機接入協議輪流協議

在理想狀態下,對於速率爲R bps的廣播信道,多路訪問協議應該有以下所希望的特性:

  • 當僅有一個節點發送數據時,該節點具有R bps的吞吐量;
  • 當有M個節點發送數據時,每個節點的吞吐量爲R/M bps(適當時間間隔內的平均傳輸速率);
  • 協議是分散的,不會因爲某主節點故障而使得整個系統崩潰;
  • 協議是簡單的,實現不會昂貴;

1、信道劃分協議

時分多路複用(TDM)和頻分多路複用(FDM)是兩種能夠用於在所有共享信道節點中劃分廣播信道帶寬的技術。TDM將時間劃分爲時間幀,並將每個時間幀劃分爲時隙,每個時隙可以傳輸一個特定的發送-接受對,它消除了碰撞而且非常公平,當被限制爲R/N的速率,其次它總是在等待它在傳輸序列中的輪次。FDM將信道劃分爲不同的頻段,並把每個頻段分配給N個節點中的一個。它具有TDM同樣的優缺點。第三種信道劃分協議是碼分多址(CDMA),它爲每個節點劃分不同的編碼,節點通過唯一編碼對發送的數據進行編碼,它使得不同的編碼可以同時傳輸,並且接受方能夠在知道編碼的情況下正確的接受發送方的數據比特。

2、隨機接入協議

在隨機接入協議中,一個傳輸節點總是以信道的全部速率發送,當有碰撞時,涉及碰撞的每個節點反覆重新發送它們的幀,但是在發生碰撞時,它並不是重發該幀,而是在重發該幀時進行時進行一個隨機的等待,並且這些等待時延充分小於其他碰撞節點的時延。常用的隨機接入協議有:ALOHA協議,CSMA協議等

3、輪流協議

ALOH及CSMA協議具備一個節點具有最高吞吐量的特性,但不具備本節中的第二個特性。輪流協議具有第二種特性,它有許多變種,這裏我們討論輪詢協議(polling protocol)和令牌傳遞協議(token-passing protocol)

輪詢協議要求將節點之一指定爲主節點,主節點以循環的方式輪詢每個節點,如向節點1發送一個報文,告訴它能傳遞的最多的幀數,以此類推。該協議引入了輪詢時延,即當只有一個節點時,節點傳輸的速率總是小於最大速率;並且當主節點有故障時,整個信道都變得不可操作。

令牌傳遞協議將小的特殊幀(令牌)在節點間以某種特殊的次序進行交換,當某節點有幀要發送時,它才持有這個令牌,否則立即傳遞給下個節點。令牌傳遞是分散的,並且很有效率,但是如果某節點的故障可能使得整個信道故障。

四、交換局域網

1、鏈路層尋址和ARP

1.1、MAC地址

具有多個網絡接口的主機或路由器具有與之相關聯的多個鏈路層地址,就像它也具有與之相關聯的多個IP地址一樣,然而鏈路層交換機並不具有與它們接口相關聯的鏈路層地址。鏈路交換機的任務是在主機和路由器之間承載數據,主機和路由器不必明確地將幀尋址到其間的交換機。鏈路層地址有不同的稱呼:LAN地址物理地址MAC地址。MAC地址的長度爲6字節,共有2^48個可能的MAC地址。IEEE在管理着該地址,該組織固定一個MAC地址的前24比特,讓生產公司生成後24比特的唯一組合。

當一個適配器要向某個目的適配器發送一個幀時,發送適配器將目的適配器的MAC地址插入到幀中,然後將幀發送到局域網中。交換機偶爾會將一個傳入的幀廣播到它的所有接口上。因此,一個適配器可能會接收到一個沒有向它發送的幀。當適配器收到一個幀時,它將檢查幀中的目的MAC地址是否與自己的MAC地址匹配。如果有匹配,適配器會提取封閉的數據報,並將數據報傳遞到協議棧。如果沒有匹配,適配器就會丟棄該幀,而不將網絡層的數據報傳遞上去。因此,當接收到該幀時,只有目的地纔會被中斷。

1.2、地址解析協議

因爲存在網絡層地址和鏈路層地址,所以需要在它們之間進行轉換,對於因特網而言,這是地址解析協議(ARP)的任務。它可以看作是一個跨域了鏈路層和網絡層邊界的協議。

爲了發送數據報,源需要向它的適配器不僅提供IP數據報,還要提供目的主機的MAC地址,然後發送適配器將構造一個包含目的地的MAC地址的鏈路層幀,並把該幀發送進局域網。發送主機的ARP模塊將以在相同局域網上的任何IP地址作爲輸入,然後返回相應的MAC地址。它與DNS相似,不同的是DNS將主機名解析爲IP,ARP只爲在同一個子網上的主機和路由器接口解析IP地址。

每臺主機或路由器在其內存中具有一個ARP表,這張表包含IP地址到MAC地址的映射關係,並且它包含一個壽命值TTL,它指示了從表中刪除每個映射的時間。問題是ARP表是如何進行更新的?首先發送方構造一個稱爲ARP分組的特殊分組,一個ARP分組有幾個字段包括髮送和接受IP地址,以及MAC地址。ARP查詢和響應都具有相同的格式,ARP查詢分組會使用廣播地址作爲幀的目的地址,適配器把在該幀中的ARP分組向上傳遞給ARP模塊。這些ARP模塊將檢查它的IP地址是否與ARP分組中的目的IP地址相匹配。匹配後將發回一個帶有映射關係的響應ARP分組,查詢主機將更新它的ARP分組併發送它的IP數據報,該數據報封裝在一個鏈路層幀中。

1.3、發送數據報到子網之外

爲了讓數據報從子網1到子網2上的主機,數據報必須先發送到路由器接口,而這個接口是通往最終目的地路徑上第一跳路由器的IP地址。因此,該幀合適的MAC地址是路由器接口的適配器地址。發送主機如何獲取路由器的MAC地址?當然是使用ARP了! 一旦發送適配器獲得了這個MAC地址,它就會創建一個幀(包含尋址到目的地址的數據報),並將該幀發送到子網1。子網1上的路由器適配器看到鏈路層的幀是向它尋址的,因此將該幀傳給路由器的網絡層。路由器現在必須確定數據報要轉發的正確接口。這是通過查閱路由器中的轉發表來完成的。轉發表告訴路由器,數據報要通過路由器接口轉發。然後這個接口將數據報傳遞給它的適配器,適配器將數據報封裝在一個新的幀中,並將該幀發送到子網2中。這一次,幀的目的MAC地址確實是最終目的地的MAC地址。路由器是如何獲得這個目的MAC地址的呢?當然是從ARP中獲取

2、以太網

集線器是一種物理層設備,作用於單個比特而不是幀。當一個代表零或一的比特從一個接口到達時,集線器簡單地重新創建比特,提高其能量強度,並將比特傳輸到所有其他接口上。每當集線器從它的一個接口接收到一個比特,它就會在所有其他接口上發送一個副本。特別是,如果一個集線器同時從兩個不同的接口接收到幀,就會發生碰撞,創建幀的節點必須重新傳輸。如今集線器被交換機取代。它不僅是 "無碰撞 "的,而且是真正的存儲和轉發數據包交換機;但與路由器不同的是,路由器通過第三層操作,而交換機只通過第二層操作。

2.1、以太網幀結構

image-20201116223252044

  • 數據字段(46~1500字節):承載了IP數據報,以太網的最大傳輸單元MTU是1500字節,數據字段的最小長度爲46字節,如果小於則填充,網絡層會使用IP數據報首部中的長度字段來去除填充字段;
  • 目的地址(6字節):包含目的適配器的MAC地址,如匹配則將該幀數據字段的內容傳遞給網絡層;
  • 源地址(6字節):包含傳輸該幀到局域網上的適配器的MAC地址;
  • 類型字段(2字節):允許以太網複用多種網絡層協議;和網絡層數據報中協議字段,運輸層報文段的端口號類似,都是爲了把一層中的某協議與上一層的某協議結合起來;
  • CRC(4字節):使得接受適配器檢測幀中是否引入了差錯;
  • 前同步碼(8字節):前同步碼的前7個字節都是10101010;最後一個字節是10101011,前7個字節用於喚醒接受適配器,並且將它們的時鐘和發送方的時鐘同步,第8個字節的最後兩個比特(11)用於警告適配器,重要的內容要到了

以太網技術向網絡層提供無連接服務,即沒有“握手”,所以是不可靠服務,當CRC校驗出錯時,接受方適配器將丟棄該幀(網絡層使用TCP將引發重傳)

2.2、以太網技術

如今普遍使用的以太網是基於交換機的星型拓撲結構,使用存儲和轉發數據包交換,交換機協調其傳輸,在任何時候都不會在同一個接口上轉發多個幀。此外,現代交換機是全雙工的,所以交換機和節點可以同時互送幀,互不干擾。換句話說,在基於交換機的以太網局域網中,沒有任何碰撞,因此,不需要MAC協議

3、鏈路層交換機

交換機的作用是接收傳入的鏈路層幀,並將其轉發到傳出鏈路上;交換機本身對子網中的主機和路由器是透明的;也就是說,一個主機/路由器將一個幀尋址給另一個主機/路由器(而不是將幀尋址給交換機),並愉快地將該幀送入局域網,而不知道有交換機將接收該幀並轉發。幀到達交換機任何一個輸出接口的速度可能會暫時超過該接口的鏈路容量。爲了解決這個問題,交換機輸出接口有緩衝區,就像路由器輸出接口有數據報緩衝區一樣。現在我們來仔細看看交換機的工作原理。

3.1、交換機轉發和過濾

過濾是決定一個幀應該轉發到某個接口還是應當將其丟棄的交換機功能;轉發是決定一個幀應當被導向哪個接口,並把該幀移動到那些接口的交換機功能。交換機的過濾和轉發藉助於交換機表完成。交換機表包含了局域網中部分主機和路由器的表項,但不一定是全部。交換表中的一個表項包含:(1)一個MAC地址,(2)通向該MAC地址的交換接口,(3)表項被放入表中的時間。如果對於沒有目的地址的表項,交換機廣播該幀。

3.2、自學習

交換機有一個奇妙的特性,它的表是自動、動態、自治地建立的,不需要網絡管理員或配置協議的任何干預。換句話說,交換機具有自學習能力。實現方式如下:

  1. 交換機表初始爲空;
  2. 對於在每個接口收到的每個幀,該交換機在其中存儲表項;
  3. 如果在一段時間後,交換機沒有收到以該地址作爲源地址的幀,就在表中刪除這個地址;

此外交換機是即插即用設備,且是全雙工的,任何交換機接口都可以同時發送和接受;

3.3、鏈路層交換機的性質

優點:

  • 消除碰撞:在使用交換機(不使用集線器)構建的局域網中,沒有因碰撞而浪費的帶寬,交換機緩存幀並且不會再網段上同時傳輸多於一個幀;
  • 異質的鏈路:交換機將鏈路彼此隔離,因此局域網中不同的鏈路能夠以不同的速率運行,並且能夠在不同的媒體上運行;
  • 管理:如果一個適配器工作異常並持續發送以太網幀,交換機能夠檢測到該問題,並在內部斷開異常適配器;

3.4、交換機和路由器的比較

路由器是使用網絡層地址轉發分組的存儲轉發分組交換機,雖然交換機也是存儲轉發分組交換機,但它與路由器的根本區別在於它使用MAC地址轉發分組。路由器是一個第3層分組交換機,交換機是一個第2層分組交換機。

交換機的優缺點:即插即用,具有較高的分組過濾和轉發速率;大型交換網絡將生成客觀的ARP流量和處理量,無保護措施;

路由器的優缺點:沒有生成樹限制,允許以豐富的拓撲結構構建因特網,對第二層的廣播風暴提供了防火牆保護;不是即插即用,對每個分組的處理時間較長;

image-20201117201525715

4、虛擬局域網

具有等級結構的局域網具有以下缺點:

  • 缺乏流量隔離:雖然層次結構將流量定位在一個交換機內,但廣播流量仍然必須穿越整個機構網絡。
  • 交換機的使用效率不高:如果該機構不是三個組,而是10個組,那麼就需要10臺一級交換機。如果每個組都很小,比如少於10人,那麼一臺96端口的交換機可能就足夠大,可以容納所有人,但是這臺單臺交換機無法提供流量隔離;
  • 管理用戶:如果一個員工在組之間移動,必須改變物理佈線;

可以通過支持虛擬局域網絡(VLAN)的交換機來解決上述問題。支持VLAN的交換機允許在一個物理局域網基礎設施上定義多個虛擬局域網。一個VLAN內的主機相互通信,就像它們連接到交換機一樣。但是將多個VLAN完全隔離,又引入了一個新的難題! 無法跨組傳送數據?處理這個問題的方法之一是將一個VLAN交換機的端口連接到外部路由器上,並將該端口配置爲同時屬於不同的分組。交換機廠商通過構建一個既包含VLAN交換機又包含路由器的單一設備,讓網管輕鬆完成這樣的配置,所以單獨的外部路由器是不需要的。

VLAN交換機互連的一種更具擴展性的方法稱爲VLAN幹線連接。每臺交換機上的一個特殊端口被配置爲幹線端口,以實現兩臺VLAN交換機的互連。幹線端口屬於所有的VLAN,發送到任何一個VLAN的幀都會通過幹線鏈路轉發到其他交換機。但這又引起了另一個問題。交換機如何知道到達幹線端口的幀屬於某個特定的VLAN?IEEE定義了一種擴展的以太網幀格式,它由標準以太網幀和一個四字節的 VLAN 標籤組成,在幀頭中添加了該幀所屬 VLAN 的標識。

五、鏈路虛擬化:網絡作爲鏈路層

從某種意義上說,因特網將電話網虛擬化,將電話網看作是提供兩個主機之間鏈路層連接的技術。在本節中,我們將考慮多協議標籤交換(MPLS)網絡。與電路交換電話網不同的是,MPLS本身就是一個分組交換的虛擬電路網絡。它有自己的包格式和轉發行爲...

六、數據中心網絡

...略...

七、Web頁面請求的歷程

假設啓動一臺筆記本電腦,然後將其連接到學校的以太網交換機,而以太網交換機又連接到學校的路由器上,學校的路由器連接到某ISP,該ISP爲學校提供了DNS服務,因此,DNS服務器駐留在該ISP網絡中,而不是學校網絡中。此外我們假設DHCP服務器是運行在路由器內的。

1、DHCP、UDP、IP和以太網

1)筆記本電腦上的操作系統生成一個DHCP請求報文,並將這個報文放在具有目的端口(DHCP服務器)和源端口(DHCP客戶)的UDP報文段中,該UDP報文段被放在一個具有廣播IP目的地址(255.255.255.255)和源IP地址(0.0.0.0)的IP數據報中;

2)包含DHCP請求報文的IP數據報被放置在具有以太網幀中,該以太網幀具有目的MAC地址FF:FF:FF:FF:FF:FF,使得該幀廣播到與交換機連接的所有設備(順利的話會包含DHCP服務器),該幀的源MAC地址是筆記本電腦的MAC地址;

3)包含DHCP請求的廣播以太網幀是該筆記本電腦發送到以太網交換機的第一個幀,交換機將收到的幀廣播到所有的輸出端口,包括連接到路由器的端口;

4)路由器的某個接口將接受到該廣播以太網幀,該幀包含DHCP請求,並且可以從該幀中抽取出IP數據報,該數據報的廣播IP目的地址指示了這個IP數據報應當由高層協議處理,所以數據報的有效載荷(一個UDP報文段)被分解並交由UDP處理。DHCP請求報文從此UDP報文段中抽取出來,此時DHCP服務器有了DHCP請求報文;

5)假設在路由器中運行的DHCP服務器以CIDR塊分配IP地址。DHCP服務器將地址分配給筆記本電腦後會創建了一個DHCP ACK報文,其中包含這個IP地址,以及DNS服務器的IP地址、默認網關路由器的IP地址和子網塊(相當於 "網絡掩碼")。該DHCP被放入一個UDP報文段中,UDP報文段被放入一個IP數據報裏面,IP數據報放在以太網幀中。以太網幀的源MAC地址是路由器通往歸屬地網絡的接口,目的地是筆記本電腦的MAC地址

6)包含 DHCP ACK 的以太網幀由路由器發送到交換機,因爲交換機是自學習的,並且之前收到了筆記本電腦的以太網幀,所以交換機知道將筆記本電腦的MAC地址尋址到到通往該地址的輸出端口;

7)筆記本電腦接收到包含DHCP ACK的以太網幀,從以太網幀中提取IP數據報,從IP數據報中提取UDP段,從UDP段中提取DHCP ACK報文。然後DHCP客戶端記錄了它的IP地址和DNS服務器的IP地址。它還將默認網關的地址安裝到IP轉發表中。筆記本電腦將把所有目的地址在子網之外的數據報發送到默認網關。此時,該筆記本電腦已經初始化了它的網絡組件,並準備好開始處理網頁的獲取;

2、DNS和ARP

當在Web瀏覽器中輸入URL時,會開始一長串的事件,最終導致頁面被Web瀏覽器顯示。網絡瀏覽器通過創建一個TCP套接字來開始這個過程,這個套接字將被用來發送HTTP請求。爲了創建套接字,筆記本電腦需要知道URL對應網站的IP地址。DNS協議被用來提供這個名字到IP地址的轉換服務。

8)筆記本電腦上的操作系統因此創建了一個DNS查詢消息,將URL字符串放在DNS報文的問題段中。這個DNS報文則被放置在一個目的端口爲53(DNS服務器)的UDP報文段中。然後將UDP段放在一個IP數據報中,IP的目的地址爲步驟5中DHCP ACK返回的DNS服務器地址,源IP地址爲被分配的IP地址

9)筆記本電腦將包含DNS請求報文的數據報放在一個以太網幀中。這個幀將被髮送到(在鏈路層進行尋址)學校網絡中的網關路由器。儘管筆記本電腦通過上面步驟5中的DHCP ACK消息知道了學校網關路由器的IP地址,但它並不知道網關路由器的MAC地址。爲了獲得網關路由器的MAC地址,筆記本電腦需要使用ARP協議

10)筆記本電腦創建了一個目標IP地址爲默認網關的ARP查詢報文,將ARP查詢報文放置在一個帶有廣播目的地址(FF:FF:FF:FF:FF:FF)的以太網幀中,並將以太網幀發送給交換機,交換機將該幀發送給所有連接的設備,包括網關路由器。

11)網關路由器收到學校網絡接口上包含ARP查詢報文的幀,發現ARP報文中的目標IP地址與其接口的IP地址相匹配。因此,網關路由器準備了一個ARP回答,包含其IP地址對應的MAC地址。它將ARP回答放入以太網幀中,目的地址爲筆記本電腦的MAC地址,並將該幀發送給交換機,交換機將該幀傳送給筆記本電腦;

12)筆記本電腦接收到包含ARP回答的幀,並從ARP回答中提取網關路由器的MAC地址;

13)筆記本電腦現在可以將包含DNS查詢的以太網幀尋址到網關路由器的MAC地址。該幀中的IP數據報的IP目的地址爲DNS服務器,而該幀的目的地址爲網關路由器。筆記本電腦將此幀發送到交換機,交換機將此幀傳送給網關路由器。

3、域內路由選擇到DNS服務器

14)網關路由器收到該幀後,提取出包含DNS查詢的IP數據報,路由器查找該數據報的目的IP地址,並從其轉發表中確定該數據報應發送到的路由器。IP數據報被放置在鏈路層幀中,該鏈路將學校路由器連接到合適的路由器,該幀通過該鏈路發送;

15)合適的路由器接收到該幀後,提取IP數據報,檢查數據報的目的地址IP,並根據它的轉發表確定出接口,經過該接口朝着DNS服務器轉發數據報,轉發表已根據ISP域內協議及因特網的域間協議BGP填寫

16)最終,包含DNS查詢的IP數據報到達DNS服務器。DNS服務器提取DNS查詢報文,在其DNS數據庫中查找URL對應的IP地址的DNS源記錄。這個緩存數據起源於權威DNS服務器。DNS服務器形成一個包含這個主機名到IP地址映射的DNS回答報文,並將DNS回答報文放在UDP報文段中,該報文段放入尋址到筆記本電腦的IP數據報中。這個數據報將通過ISP的網絡轉發到學校的路由器,再從那裏通過以太網交換機轉發到筆記本電腦。

17)筆記本電腦從DNS報文中提取出URL對應服務器的IP地址

4、Web客戶—服務器交互:TCP和HTTP

18)現在筆記本已經有了URL的IP地址,它可以創建TCP套接字,用來向網站發送HTTP GET報文。當創建TCP套接字時,筆記本電腦中的TCP必須首先與網站服務器的TCP進行三次握手。因此筆記本電腦首先創建一個目的端口爲80的TCP SYN報文段,將該TCP報文段放置在具有目的IP地址的IP數據報中,將該數據報放在一個目的MAC地址爲網關路由器的幀中,然後將該幀發送給交換機。

19)學校網絡、ISP網絡和網站網絡中的路由器使用每個路由器中的轉發表將包含TCP SYN的數據報轉發到網站服務器, 路由器轉發表項管理着ISP和網址服務器網絡之間域間鏈路上數據包的轉發,而這些轉發表項是由BGP協議決定的;

20)最終,包含TCP SYN的數據報到達服務器。從數據報中提取出TCP SYN報文,隨後HTTP服務器和筆記本電腦之間的TCP連接生成一個連接套接字。一個TCP SYNACK報文段會被生成,並被放置在指向筆記本電腦的數據報中,最後被放置在鏈接層幀中,該鏈路適合將HTTP服務器和其第一跳路由器的鏈接。

21)包含TCP SYNACK報文段的數據報通過HTTP服務器、ISP網絡和學校網絡轉發,最終到達筆記本電腦中的以太網卡。該數據報在操作系統內被分解到步驟18中創建的TCP套接字,從而進入連接狀態。

22)筆記本上的套接字現在準備好向HTTP服務器發送字節了,筆記本瀏覽器創建了包含要獲取的URL的HTTP GET報文。然後HTTP GET報文被寫入套接字中,GET報文成爲TCP報文段的載荷。TCP報文段被放在一個數據報中,並按照上面的步驟18-20發送並傳遞給HTTP服務器

23)HTTP 服務器從 TCP 套接字中讀取 HTTP GET報文,創建一個 HTTP 響應報文,將請求的網頁內容放在 HTTP 響應報文的主體中,並將消息發送到 TCP 套接字中。

24)包含HTTP響應報文的數據通過HTTP服務器、ISP網絡和學校網絡轉發,併到達筆記本電腦。Web瀏覽器程序從套接字中讀取HTTP響應,從HTTP響應體中提取網頁的html,最後顯示網頁。

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