計算機網絡自頂向下方法:第四章 網絡層:數據平面 課後複習題
若有錯誤, 歡迎指出~html
第四章: 網絡層:數據平面
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節中討論了三種交換結構. 列出並簡要討論每一種交換結構. 哪種(若是有的話)可以跨越交換結構並行發送多個分組?
- 經內存交換. 分組從輸入端口處被複制處處理器內存中. 處理器從其首部中提取目的地址, 在轉發表中找出適當的輸出端口, 並把該分組複製到該輸出端口的緩存中.
- 經總線交換. 分組從輸入端口通過總線發送到全部輸出端口, 只有與該分組匹配的輸出端口會把分組留下來.
- 經互聯網絡交換. 交換機由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地址. 過程以下:
- 首先主機向255.255.255.255 IP廣播地址發送一個DHCP發現報文, 這個發現報文會在整個子網傳播.
- 子網內的DHCP服務器收到DHCP發現報文後會向廣播地址發送一個DHCP提供報文, 向須要IP的主機提供IP地址(如下圖爲例): 223.1.2.4, 網絡掩碼: 223.1.2.0/24, 默認路由器: 223.1.2.5 以及本地DNS服務器的IP地址.
- 主機可能會收到不僅一個DHCP提供報文, 選擇其中一個後向服務器發送DHCP請求.
- 被選中的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. 通用轉發和基於目的轉發有何不一樣.
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字段(數據報過期), 數據報長度, 差錯檢驗.
歡迎關注本站公眾號,獲取更多信息