計算機網絡自頂向下方法:第四章 網絡層:數據平面 課后復習題


如有錯誤, 歡迎指出~

第四章: 網絡層:數據平面

4.1節

R1. 我們回顧在本書中使用的某些術語.

  • 前面講過運輸層的分組名字是報文段, 數據鏈路層的分組名字是幀. 網絡層的分組名字是什么? 前面講過路由器和鏈路層交換機都被稱為分組交換機. 路由器與鏈路層交換機間的根本區別是什么?
  • 答: 網絡層的分組名字是數據報.
    路由器和鏈路層交換機的根本區別是它們服務於不同的網絡層協議. 鏈路層交換機基於鏈路層幀中的字段值做出轉發決定, 服務於第二層鏈路層; 路由器基於網絡層數據報中的首部字段值做出轉發決定, 服務於第三層網絡層.

 

R2. 我們注意到網絡層功能可被大體分成數據平面功能和控制平面功能. 數據平面的主要功能是什么? 控制平面的主要功能呢?

  • 數據平面的主要功能是轉發, 也就是說當路由器接受到網絡層數據報后, 控制平面負責根據路由轉發表把數據報從輸入鏈路轉發到合適的輸出鏈路.
    控制平面的主要功能是填充路由表, 也就是決定一個數據報應該轉發到哪里.

 

R3. 我們對網絡層執行的轉發功能和路由選擇功能進行區別. 路由選擇和轉發的主要區別是什么?

  • 轉發是指將分組從一個輸入鏈路接口轉移到適當的輸出鏈路接口的路由本地動作. 轉發發生的時間很短, 通常用硬件實現.
  • 路由選擇是指確定分組從源到目的地所采取的端到端路徑的網絡范圍處理過程. 發生的時間較長, 通常為幾秒, 因此用軟件實現.

 

R4. 路由器中轉發表的主要作用是什么?

  • 路由表的作用是確定分組下一步應該發送到哪里? 路由器會根據分組首部的一個或幾個字段作為索引, 並在轉發表中根據索引找到對應的輸出鏈路接口.

 

R5. 我們說過網絡層的服務模型"定義發送主機和接收主機之間的端到端分組的傳送特性".

  • 因特網的網絡層的服務模型是什么? 就主機到主機數據報的傳遞而論, 因特網的服務模型能夠保證什么?
  • 答: 因特網的網絡層提供了單一的服務, 稱為盡力而為服務. 就主機到主機數據報的傳遞而論, 因特網的服務模型什么也保證不了, 傳送的分組既不能保證以它們發送的順序被接收, 也不能保證它們最終交付; 既不能保證端到端時延, 也不能保證有最小的帶寬.

 

4.2節

R6. 在4.2節中, 我們看到路由器通常由輸入端口, 輸出端口, 交換結構和路由選擇處理器組成.

  • 其中哪些是用硬件實現的, 哪些是用軟件實現的? 為什么? 轉到網絡層的數據平面和控制平面的概念, 哪些是用硬件實現的, 哪些是用軟件實現的? 為什么?
  • 答: 輸入端口, 輸出端口, 交換結構是用硬件實現的. 路由選擇處理器是用軟件實現的.
    轉到網絡層的數據平面和控制平面的概念, 數據平面是用硬件實現的, 控制平面是用軟件實現的. 原因是在數據平面處理兩個數據報之間的時間非常短, 軟件無法在這么短的時間內完成轉發. 控制平面則不同於數據平面的, 它的主要功能是維護轉發表, 邏輯比數據平面復雜多了, 而且它不需要短時間處理大量時間, 只需要及時更新就行了, 因此用軟件實現.

 

R7. 討論為什么在高速路由器的每個輸入端口都存儲轉發表的影子副本.

  • 首先一個路由器是有很多個輸入端口的, 轉發行為的第一步是在轉發表中查找輸出接口. 如果每個輸入端口都並發地調用路由選擇器查找輸出接口必然會產生時延. 所以要在高速路由器的每個輸入端口都存儲轉發表的影子副本, 使轉發決策能在每個輸入端口本地做出, 避免了集中式處理的瓶頸.

 

R8. 基於目的地轉發意味着什么? 這與通用轉發有什么不同.

  • (假定你已經閱讀4.4節, 兩種方法中哪種是軟件定義網絡所采用的? )
  • 答: 軟件定義網絡SDN采用的是通用轉發. 基於目的地轉發意味着: 如果是根據目的地的IP地址轉發的話, 路由轉發表中可能需要有40多億項. 當然可以通過匹配IP地址的最長前綴對所有IP地址進行分組. 但是這樣的路由器功能太單一, 不具有普遍性.
  • 通用轉發延續了基於目的轉發的"匹配+動作"模式, 但不受限於通過源分組的IP地址匹配目的IP地址進行轉發, 而是通過富足首部字段值集合和計數器集合對動作集合進行匹配. 要知道正因為有了通用轉發這樣對"匹配+動作"模式的高度抽象, 才使得網絡層變得豐富多彩.

 

R9.假設一個到達分組匹配了路由器轉發表中的兩個或更多表項. 采用傳統的基於目的地轉發, 路由器用什么原則來確定這條規則可以用於確定輸出端口, 使得到達的分組能交換到輸出端口.

  • 路由器使用最長前綴匹配規則, 即在該表中尋找最長的匹配項, 並向與最長前綴匹配相關聯的鏈路接口轉發分組.

 

R10. 在4.2節中討論了三種交換結構. 列出並簡要討論每一種交換結構. 哪一種(如果有的話)能夠跨越交換結構並行發送多個分組?

  1. 經內存交換. 分組從輸入端口處被復制到處理器內存中. 處理器從其首部中提取目的地址, 在轉發表中找出適當的輸出端口, 並把該分組復制到該輸出端口的緩存中.
  2. 經總線交換. 分組從輸入端口經過總線發送到所有輸出端口, 只有與該分組匹配的輸出端口會把分組留下來.
  3. 經互聯網絡交換. 交換機由2N條總線組成互聯網絡, 連接N個輸入口和N個輸出口. 通過控制網絡中的交點使分組到達對應的輸出端口. 這種縱橫式網絡能夠並行發送多個分組.

 

R11. 描述在輸入端口會出現分組丟失的原因. 描述在輸入端口如何消除分組丟失(不使用無限大緩存區).

  • 分組到達輸入端口后需要經過交換結構傳送到輸出端口. 如果有兩個分組要同時傳送到某個輸出端口, 那么在交換結構傳輸排在前面的分組時, 排在后面的分組必須等待. 這就形成了輸入端口隊列, 若輸入端口分組到達的速率大於交換結構的處理速率, 隊列就會越來越長, 最后導致分組丟失.
  • 由於只要輸入鏈路上的分組到達速率達到其容量的58%, 輸入隊列將無限增大導致大量丟包, 要消除分組丟失需要控制分組的到達速率.

 

R12. 描述在輸出端口會出現分組丟失的原因. 通過提高交換結構速率, 能夠防止這種丟失嗎?

  • 分組從輸入端口經過交換結構到達輸出端口, 輸出端口將分組推出到輸出鏈路上, 假如交換結構(縱橫交換結構)同時將3個分組傳輸到輸出端口上, 而輸出端口一次只能發送一個分組, 那么將會有2個分組在輸出端口排隊. 如果不斷有大於1個的分組同時從交換結構傳輸到輸出端口, 輸出端口的排隊將會變長, 當輸出端口緩存耗盡后會出現分組丟失.
  • 正是因為交換結構傳輸分組到輸出端口的速率快於輸出端口的傳輸速率導致輸出端口出現排隊, 所以提高交換結構速率不能防止這種丟失.

 

R13. 什么是HOL阻塞? 它出現在輸入端口還是輸出端口?

  • HOL(Head-Of-the-Line)全稱為輸入排隊交換機中的線路前部阻塞.

 

  • 從圖中可以看到輸入端口1, 3的兩個深色分組會經過交換結構到達輸出端口1.
  • 假定該交換結構決定先傳輸輸入端口1的分組, 那么輸入端口3的分組必須等待.
  • 同時可以看到輸入端口3神色分組后面的淺色分組的輸出端口並不是1而是2, 考慮這是一個縱橫式交換結構, 輸入端口3的深色分組和淺色分組本來是可以並行傳輸的, 現在由於深色分組被阻塞, 淺色分組也必須排隊等待, 這就是HOL阻塞, 出現在輸入端口.

 

R14. 在4.2節我們學習了FIFO, 優先權, 循環(RR)和加權公平排隊(WFQ)分組調度規則. 這些排隊規則中, 哪個規則確保所有分組是以到達的次序離開的?

  • FIFO分組調度規則, 全稱為(First-In-First-Out)先進先出鏈路調度規則.

 

R15. 舉例說明為什么網絡操作員要讓一類分組的優先權超過另一類分組的.

  • 例如現在輸出隊列中同時存在實時語音分組和SMTP郵件分組和文件傳輸分組等. 網絡管理員讓實時語音分組的優先權超過SMTP分組的, 因為網絡時延對實時語音通話的影響遠大於SMTP的影響. 語音分組經歷較長時延后語音服務就沒法進行了, 而SMTP傳輸慢點, 郵件服務器最終還是能獲得該郵件分組, 能容忍較大的時延.

 

R16. RR和WFQ分組調度之間的基本差異是什么? 存在RR和WFQ將表現得完全相同的場合嗎? (提示: 考慮WFQ權重)

  • RR和WFQ都是通過循環調度器在各個分組類中進行循環傳輸, 它們的基本差異在於RR對於每個類會公平地只發送一個分組, 發送完立即轉移到下一個類, 除非只剩下一個類有分組. 而WFQ則會給每個類分配權重, 相當於變相地給每個類的分組分配優先權, WFQ會按照權重對一個類進行傳輸后再轉移到下一個類, 對於權重高的類循環調度器可能會在該類中傳輸好幾個分組再轉移到下一個類, 而不是每個分組傳輸一個.

 

R17. 假定主機A向主機B發送封裝在一個IP數據報中的TCP報文段. 當主機B接受到該數據報時, 主機B中的網絡層怎樣知道它應當將該報文段(即數據報的有效載荷)交給TCP而不是UDP或某個其他東西呢?

  • 主機B中的網絡層通過查看數據報首部字段中的協議字段得知應該把數據部分交給哪個特定的運輸層協議. 比如值為6表明交給TCP, 值為17表明交給UDP.
  • 協議字段的作用相當於運輸層報文段首部中的目的端口號, 指示將數據交給哪個套接字. 鏈路層的鏈路層幀同樣也有特殊字段用於將鏈路層和網絡層綁定在一起.

 

R18. 在IP首部中, 哪個字段能用來確保一個分組的轉發不超過N台路由器.

  • 壽命字段(Time-To-Live, TTL), 每當一台路由器處理該數據報時該值減1, 當減到0時丟棄該數據報.

 

R19. 前面講過因特網檢驗和被用於運輸層報文段以及網絡層數據報.

  • 現在考慮一個運輸層報文段封裝在一個IP數據報中.在報文段首部和數據報首部中的檢驗和要遍及IP數據報中的任何共同字節進行計算嗎?
  • 答: 不需要. 首先搞清楚報文段檢驗和與數據報檢驗和之間的差別. - 數據報檢驗和只是對IP數據報的首部計算了檢驗和, 而報文段首部中的檢驗和是對整個報文段(包括承載的應用層數據部分)都進行計算的.
  • 其次, TCP/UDP和IP不一定屬於同一個協議棧, TCP能夠運行在別的網絡協議上, IP數據報也能攜帶除了TCP/IP以外的其他數據.

 

R20. 什么時候一個大數據報分割成多個較小的數據報? 較小的數據報在什么地方裝配成一個較大的數據報?

  • 網絡層的數據報需要往下經過鏈路層封裝成鏈路層幀才能放上鏈路開始傳輸. 然而一個鏈路層幀的載荷大小根據鏈路層協議的不同而不同, 數據報的大小不能超過一個鏈路層幀的最大傳送單元(Maximum Transmission Unit, MTU). 所以當鏈路層遇到大於自身MTU的數據報時需要把數據報分割成多個較小的數據報. 這項工作將放到端系統中進行, 因為如果在路由器中進行的話會大大降低路由器的性能.
  • 較小的數據報在目的端系統的網絡層進行裝配.

 

R21. 路由器有IP地址嗎? 如果有, 多少個?

  • 路由器有IP地址, 這里的有IP地址並不是說有一個IP地址標志一台路由器. 而是說路由器的一個輸入或輸出端口對應着一個IP地址.
  • 所以一個路由器擁有的IP地址數是不確定的, 假如一個路由器有一個輸入端和兩個輸出端, 那么對應地就有三個IP地址, 分別對應三個端口.

 

R22. IP地址223.1.3.27的32比特二進制等價形式是什么?

  • 11011111 00000001 00000011 000

 

R23. 考察使用DHCP的主機, 獲取它的IP地址, 網絡掩碼, 默認路由器及其本地DNS服務器的IP地址. 列出這些值.

  • DHCP(Dynamic Host Configuration), 動態主機配置協議.
  • DHCP協議用於讓一台主機在子網中獲得它的IP地址. 過程如下:
  1. 首先主機向255.255.255.255 IP廣播地址發送一個DHCP發現報文, 這個發現報文會在整個子網傳播.
  2. 子網內的DHCP服務器收到DHCP發現報文后會向廣播地址發送一個DHCP提供報文, 向需要IP的主機提供IP地址(以下圖為例): 223.1.2.4, 網絡掩碼: 223.1.2.0/24, 默認路由器: 223.1.2.5 以及本地DNS服務器的IP地址.
  3. 主機可能會收到不只一個DHCP提供報文, 選擇其中一個后向服務器發送DHCP請求.
  4. 被選中的DHCP服務器響應DHCP ACK報文.

 

R24. 假設在一個源主機和一個目的主機之間有3台路由器.

  • 不考慮分片, 一個從源主機發送給目的主機的IP數據報將通過多少個接口? 為了將數據報從源移動到目的地需要檢索多少個轉發表?
  • 答: 通過一個路由器需要通過2個接口, 端到端之間一共有3台路由器, 所以數據報一共要通過6個接口.
  • 經過3個路由器, 需要檢索3個轉發表.

R25. 假設某應用每20ms生成一個40字節的數據塊, 每塊封裝在一個TCP報文段中, TCP報文段再封裝在一個IP數據報中. 每個數據報的開銷有多大? 應用數據所占的百分比是多少?

  • 這題考察的是TCP報文段首部字段和數據報首部字段的大小.
  • TCP報文段首部是20字節.
  • 數據報報文段首部是20字節.
  • 所以每個數據報的開銷為80字節, 應用數據所占的百分比是50%.

 

R26. 假定你買了一個無線路由器並將其與電纜調制解調器相連.

  • 同時假定ISP動態地為你連接的設備(即你的無線路由器)分配一個IP地址. 還假定你家有5台PC, 均使用802.11(WIFI)以無線方式與該無線路由器相連. 怎樣為這5台PC分配IP地址? 該無線路由器使用NAT嗎? 為什么?
  • 答: 這5台PC的IP地址會通過請求DHCP服務器獲得.
  • 該無線路由器會使用NAT, 原因是: 家庭網絡可能會隨時加入許多台聯網設備, 而最簡單常用的管理這些設備IP地址的方法就是NAT.

 

R27. "路由聚合"一詞意味着什么? 路由器執行路由聚合為什么是有用的?

  • 路由聚合意味着一個子網只通過接入IP地址的部分前綴和外部因特網相連, 外界並不關心子網內還存在着多個組織, 這種使用單個網絡前綴通告多個網絡的能力通常稱為路由聚合.
  • 對於路由器而言, 假設一台組織外的路由器要轉發一個數據報, 該數據報的目的地址在組織內部, 那么該組織外的路由器轉發到組織內的一台路由器時, 只需要考慮地址的前x比特即可. 這個做法相當大地減少了在這些路由器中轉發表的長度. (使轉發表不用記錄每個具體目的IP地址, 只需要記錄一個類似223.1.1.0/24一樣的帶前綴的地址即可)

 

R28. "即插即用"或"零配置"協議意味着什么?

  • "即插即用"和"零配置"描述的是DHCP協議.
  • 這一協議意味着DHCP協議讓每個需要接入因特網的端設備都能方便地獲得IP地址. 具體過程可以往上查看第R23題. 其中廣播地址和子網是DHCP運作不可缺乏的元素.

 

R29. 什么是專用網絡地址? 具有專用網絡地址的數據報會出現在大型公共因特網中嗎? 解釋理由.

  • 專用地址這一概念產生在NAT(網絡地址轉換)場景中.
  • NAT的模型是一台具有單一IP地址的路由器處於因特網與子網之間, 子網內的端系統重新獲得一個類似IP地址的網絡地址. 這個網絡地址對於一個端系統來說就是專用網絡地址.
  • 專用網絡地址的數據報不會出現在大型公共因特網中, 因為大型因特網邊緣分布了無數個NAT, 每個NAT構成的子網中的專用網絡地址是可以重復的, 具有專用網絡地址的數據報中填寫的IP地址只有在專屬的NAT中可以識別, 所以不可能出現在公網.
  • 具有專用網絡地址的數據報在進入公共因特網之前被運行NAT的路由器改造過了.

 

R30. 比較並對照IPv4和IPv6首部字段. 它們有相同的字段嗎?

- 有相同的字段. IPv6在IPv4的基礎上改進了, 舍棄了被證明為低效的功能, 添加具遠見性的流標簽等字段, 並保留了基本功能.

 

R31. 有人說當IPv6以隧道形式通過IPv4路由器時, IPv6將IPv4隧道作為鏈路層協議. 你同意這種說法嗎? 為什么?

  • 我不同意這種說法, IPv4的原理是用一個IPv4數據報把IPv6數據報封裝起來, IPv6數據報相當於封裝后數據報的有效載荷. 這個隧道應該屬於網絡層協議.

 

4.4節

R32. 通用轉發和基於目的轉發有何不同.

  • 參考R8

 

R33. 我們在4.1節遇到的基於目的地轉發與在4.4節遇到的OpenFlow流表之間有什么差異?

  • 基於目的地轉發明確地通過目的地匹配, 具體動作是轉發到響應的輸出端口上.
  • OpenFlow流表的匹配項可以是分組首部字段中的一個或幾個, 動作可以是轉發, 攔截, 丟棄等. OpenFlow流表是對匹配轉發更高層次的抽象.

 

R34. 路由器或交換機的"匹配加動作"意味着什么?

  • 在基於目的地轉發的分組交換機場合中, 要匹配什么並采取什么動作? 在SDN的場合中, 舉出3個能夠被匹配的字段和3個能被采取的動作.
  • 答: 參考R33. (補充: 被匹配的字段可以屬於鏈路層, 網絡層, 運輸層, 如目的MAC, VLAN優先權等)

 

R35. 在IP數據報中舉出能夠在OpenFlow1.0通用轉發中"匹配"的3個首部字段. 不能在OpenFlow中"匹配"的3個IP數據報首部字段是什么?

  • 能匹配: IP目的, VLAN優先權, 目的MAC
  • 不能匹配: TTL字段(數據報過時), 數據報長度, 差錯檢驗.

擴展閱讀:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM