㈠ 計算機網路自頂向下方法
計算機網路自頂向下方法如下:
自頂自下主要是一種演算法的實現,在不知道結果的情況之下,使用一種方法進行賀數演算,得到一種正確的結果,也就可以命名用自頂向下的思想進行實現了。衫螞
在方程式內,對於未知的結果也就是進行一種推算。可以使用演算法,也可以使用方程式的方式。在中國最古老的方式,我們也都會知道,演算法就是我國最為古老的算學方式。
實在不會的,也要記住演算的步驟,因為記憶或許就是演算法的精要。我們在學習數學的時候,使用的方程並不要我們進行記憶,因為我們在進行計算的時候,都要寫在作業本之上,所以相對於演算法來說,簡單實現一點,對於一種記憶來說,更為的困難了。不過筆記解決了這樣的一種問題。
而古老的演算法,這個X的過程,可能就在我們的內心吧。用筆畫一畫,或許我們也就明白了,不過真的要記憶這樣一種完全的演算法過程,也不是一件內容的事情。
㈡ 計算機網路
入門:《網路是怎麼連接的》、《圖解 TCP/IP 》、《圖解 HTTP 》.
深入學習:
《 計算機網路:自頂向下 》
https://gaia.cs.umass.e/kurose_ross/wireshark.htm
https://media.pearsoncmg.com/ph/esm/ecs_kurose_compnetwork_8/cw/
《計算機網路》謝希仁的 ( 這個評價倒是還好,
《TCP/IP 詳解 卷一:協議》
《 Computer Networks: A Systems Approach 》Larry L Peterson
《 Computer Networks 》 Andrew S.Tanenbaum ( 雖然是 AST 的, 但是好像不適合初學
《 Elements of Computer Networking: An Integrated Approach (Concepts, Problems and Interview Questions) 》 ( ? )
https://www.hu.com/question/19718686
https://www.hu.com/question/19774914
https://www.hu.com/question/22354846
我的東西主要是英文的 , 當然, 我也需要買中文, 但我的渠道英文電子書方便
" 其實覺得cs144的公開視頻講得挺一般的,但是cs144新的lab真的很棒 "
https://online.stanford.e/lagunita-learning-platform
https://www.hu.com/question/63658105
《圖解 HTTP》
如果要入門 TCP/IP 網路模型,我推薦的是《圖解 TCP/IP》
另外,你想了解網路是怎麼傳輸,那我推薦《網路是怎樣連接的》
入門:《網路是怎麼連接的》、《圖解 TCP/IP 》《圖解 HTTP 》.
2.深入學習:《計算機網路:自頂向下》、《TCP/IP 卷一》
對於 TCP/IP 網路模型深入學習的話,推薦《計算機網路 - 自頂向下方法》,這本書是從我們最熟悉 HTTP 開始說起,一層一層的說到最後物理層的,有種挖地洞的感覺,這樣的內容編排順序相對是比較合理的。
但如果要深入 TCP,前面的這些書還遠遠不夠,賦有計算機網路聖經的之說的《TCP/IP 詳解 卷一:協議》這本書,
要說我看過最好的 TCP 資料,那必定是《The TCP/IP GUIDE》這本書了,目前只有英文版本的,而且有個專門的網址可以白嫖看這本書的內容,圖片都是彩色,看起來很舒服很鮮明,小林之前寫的 TCP 文章不少案例和圖片都是參考這里的,這本書精華部分就是把 TCP 滑動窗口和流量控制說的超級明白,很可惜擁塞控制部分說的不多。
Wireshark
當然,計算機網路最牛逼的資料,那必定 RFC 文檔,它可以稱為計算機網路世界的「法規」,也是最新、最權威和最正確的地方了,困惑大家的 TCP 為什麼三次握手和四次揮手,其實在 RFC 文檔幾句話就說明白了。
小白讀 《網路是怎樣鏈接的》,然後 《圖解 HTTP 》 《圖解 TCP/IP 》。如果想學術一點,《計算機網路:自頂向下方法 中文第六版》或者 (Computer Networking: A top-down Approach 7th)。再難點,T 大佬的 《計算機網路》(Computer Networks)
在計算機網路的學習中為大家推薦《計算機科學導論》。這本書用大量的篇幅介紹了計算機網路的內容,還詳細地介紹了計算機科學目前發展的特點和現狀,適合想要學習計算機網路的同學打基礎使用。
https://book.douban.com/review/7443456/#comments
自頂向下方法有兩本:Computer Networking: A Top-Down ApproachbyJames F. Kurose, Keith W. Ross 中文翻譯: 計算機網路:自頂向下方法(樓主提到的是這個)
Computer Networks: A Top-Down ApproachbyBehrouz A. Forouzan, Firouz Mosharraf 中文翻譯:計算機網路教程:自頂向下方法
思科實驗模擬器EVE的安裝與使用 https://zhuanlan.hu.com/p/166295824
思科CCNA命令大全 https://zhuanlan.hu.com/p/259820495
㈢ 計算機網路第四章(網路層)
4.1、網路層概述
簡介
網路層的主要任務是 實現網路互連 ,進而 實現數據包在各網路之間的傳輸
這些異構型網路N1~N7如果只是需要各自內部通信,他們只要實現各自的物理層和數據鏈路層即可
但是如果要將這些異構型網路互連起來,形成一個更大的互聯網,就需要實現網路層設備路由器
有時為了簡單起見,可以不用畫出這些網路,圖中N1~N7,而將他們看做是一條鏈路即可
要實現網路層任務,需要解決一下主要問題:
網路層向運輸層提供怎樣的服務(「可靠傳輸」還是「不可靠傳輸」)
在數據鏈路層那課講過的可靠傳輸,詳情可以看那邊的筆記:網路層對以下的 分組丟失 、 分組失序 、 分組重復 的傳輸錯誤採取措施,使得接收方能正確接受發送方發送的數據,就是 可靠傳輸 ,反之,如果什麼措施也不採取,則是 不可靠傳輸
網路層定址問題
路由選擇問題
路由器收到數據後,是依據什麼來決定將數據包從自己的哪個介面轉發出去?
依據數據包的目的地址和路由器中的路由表
但在實際當中,路由器是怎樣知道這些路由記錄?
由用戶或網路管理員進行人工配置,這種方法只適用於規模較小且網路拓撲不改變的小型互聯網
另一種是實現各種路由選擇協議,由路由器執行路由選擇協議中所規定的路由選擇演算法,而自動得出路由表中的路有記錄,這種方法更適合規模較大且網路拓撲經常改變的大型互聯網
補充 網路層(網際層) 除了 IP協議 外,還有之前介紹過的 地址解析協議ARP ,還有 網際控制報文協議ICMP , 網際組管理協議IGMP
總結
4.2、網路層提供的兩種服務
在計算機網路領域,網路層應該向運輸層提供怎樣的服務(「 面向連接 」還是「 無連接 」)曾引起了長期的爭論。
爭論焦點的實質就是: 在計算機通信中,可靠交付應當由誰來負責 ?是 網路 還是 端系統 ?
面向連接的虛電路服務
一種觀點:讓網路負責可靠交付
這種觀點認為,應藉助於電信網的成功經驗,讓網路負責可靠交付,計算機網路應模仿電信網路,使用 面向連接 的通信方式。
通信之前先建立 虛電路 (Virtual Circuit),以保證雙方通信所需的一切網路資源。
如果再使用可靠傳輸的網路協議,就可使所發送的分組無差錯按序到達終點,不丟失、不重復。
發送方 發送給 接收方 的所有分組都沿著同一條虛電路傳送
虛電路表示這只是一條邏輯上的連接,分組都沿著這條邏輯連接按照存儲轉發方式傳送,而並不是真正建立了一條物理連接。
請注意,電路交換的電話通信是先建立了一條真正的連接。
因此分組交換的虛連接和電路交換的連接只是類似,但並不完全一樣
無連接的數據報服務
另一種觀點:網路提供數據報服務
互聯網的先驅者提出了一種嶄新的網路設計思路。
網路層向上只提供簡單靈活的、 無連接的 、 盡最大努力交付 的 數據報服務 。
網路在發送分組時不需要先建立連接。每一個分組(即 IP 數據報)獨立發送,與其前後的分組無關(不進行編號)。
網路層不提供服務質量的承諾 。即所傳送的分組可能出錯、丟失、重復和失序(不按序到達終點),當然也不保證分組傳送的時限。
發送方 發送給 接收方 的分組可能沿著不同路徑傳送
盡最大努力交付
如果主機(即端系統)中的進程之間的通信需要是可靠的,那麼就由網路的 主機中的運輸層負責可靠交付(包括差錯處理、流量控制等) 。
採用這種設計思路的好處是 :網路的造價大大降低,運行方式靈活,能夠適應多種應用。
互連網能夠發展到今日的規模,充分證明了當初採用這種設計思路的正確性。
虛電路服務與數據報服務的對比
對比的方面 虛電路服務 數據報服務
思路 可靠通信應當由網路來保證 可靠通信應當由用戶主機來保證
連接的建立 必須有 不需要
終點地址 僅在連接建立階段使用,每個分組使用短的虛電路號 每個分組都有終點的完整地址
分組的轉發 屬於同一條虛電路的分組均按照同一路由進行轉發 每個分組獨立選擇路由進行轉發
當結點出故障時 所有通過出故障的結點的虛電路均不能工作 出故障的結點可能會丟失分組,一些路由可能會發生變化
分組的順序 總是按發送順序到達終點 到達終點時不一定按發送順序
端到端的差錯處理和流量控制 可以由網路負責,也可以由用戶主機負責 由用戶主機負責
4.3、IPv4
概述
分類編制的IPv4地址
簡介
每一類地址都由兩個固定長度的欄位組成,其中一個欄位是 網路號 net-id ,它標志主機(或路由器)所連接到的網路,而另一個欄位則是 主機號 host-id ,它標志該主機(或路由器)。
主機號在它前面的網路號所指明的網路范圍內必須是唯一的。
由此可見, 一個 IP 地址在整個互聯網范圍內是唯一的 。
A類地址
B類地址
C類地址
練習
總結
IP 地址的指派范圍
一般不使用的特殊的 IP 地址
IP 地址的一些重要特點
(1) IP 地址是一種分等級的地址結構 。分兩個等級的好處是:
第一 ,IP 地址管理機構在分配 IP 地址時只分配網路號,而剩下的主機號則由得到該網路號的單位自行分配。這樣就方便了 IP 地址的管理。
第二 ,路由器僅根據目的主機所連接的網路號來轉發分組(而不考慮目的主機號),這樣就可以使路由表中的項目數大幅度減少,從而減小了路由表所佔的存儲空間。
(2) 實際上 IP 地址是標志一個主機(或路由器)和一條鏈路的介面 。
當一個主機同時連接到兩個網路上時,該主機就必須同時具有兩個相應的 IP 地址,其網路號 net-id 必須是不同的。這種主機稱為 多歸屬主機 (multihomed host)。
由於一個路由器至少應當連接到兩個網路(這樣它才能將 IP 數據報從一個網路轉發到另一個網路),因此 一個路由器至少應當有兩個不同的 IP 地址 。
(3) 用轉發器或網橋連接起來的若干個區域網仍為一個網路 ,因此這些區域網都具有同樣的網路號 net-id。
(4) 所有分配到網路號 net-id 的網路,無論是范圍很小的區域網,還是可能覆蓋很大地理范圍的廣域網,都是平等的。
劃分子網的IPv4地址
為什麼要劃分子網
在 ARPANET 的早期,IP 地址的設計確實不夠合理:
IP 地址空間的利用率有時很低。
給每一個物理網路分配一個網路號會使路由表變得太大因而使網路性能變壞。
兩級的 IP 地址不夠靈活。
如果想要將原來的網路劃分成三個獨立的網路
所以是否可以從主機號部分借用一部分作為子網號
但是如果未在圖中標記子網號部分,那麼我們和計算機又如何知道分類地址中主機號有多少比特被用作子網號了呢?
所以就有了劃分子網的工具: 子網掩碼
從 1985 年起在 IP 地址中又增加了一個「 子網號欄位 」,使兩級的 IP 地址變成為 三級的 IP 地址 。
這種做法叫做 劃分子網 (subnetting) 。
劃分子網已成為互聯網的正式標准協議。
如何劃分子網
基本思路
劃分子網純屬一個 單位內部的事情 。單位對外仍然表現為沒有劃分子網的網路。
從主機號 借用 若干個位作為 子網號 subnet-id,而主機號 host-id 也就相應減少了若干個位。
凡是從其他網路發送給本單位某個主機的 IP 數據報,仍然是根據 IP 數據報的 目的網路號 net-id,先找到連接在本單位網路上的路由器。
然後 此路由器 在收到 IP 數據報後,再按 目的網路號 net-id 和 子網號 subnet-id 找到目的子網。
最後就將 IP 數據報直接交付目的主機。
劃分為三個子網後對外仍是一個網路
優點
1. 減少了 IP 地址的浪費 2. 使網路的組織更加靈活 3. 更便於維護和管理
劃分子網純屬一個單位內部的事情,對外部網路透明 ,對外仍然表現為沒有劃分子網的一個網路。
子網掩碼
(IP 地址) AND (子網掩碼) = 網路地址 重要,下面很多相關知識都會用到
舉例
例子1
例子2
默認子網掩碼
總結
子網掩碼是一個網路或一個子網的重要屬性。
路由器在和相鄰路由器交換路由信息時,必須把自己所在網路(或子網)的子網掩碼告訴相鄰路由器。
路由器的路由表中的每一個項目,除了要給出目的網路地址外,還必須同時給出該網路的子網掩碼。
若一個路由器連接在兩個子網上,就擁有兩個網路地址和兩個子網掩碼。
無分類編址的IPv4地址
為什麼使用無分類編址
無分類域間路由選擇 CIDR (Classless Inter-Domain Routing)。
CIDR 最主要的特點
CIDR使用各種長度的「 網路前綴 」(network-prefix)來代替分類地址中的網路號和子網號。
IP 地址從三級編址(使用子網掩碼)又回到了兩級編址 。
如何使用無分類編址
舉例
路由聚合(構造超網)
總結
IPv4地址的應用規劃
給定一個IPv4地址快,如何將其劃分成幾個更小的地址塊,並將這些地址塊分配給互聯網中不同網路,進而可以給各網路中的主機和路由器介面分配IPv4地址
定長的子網掩碼FLSM(Fixed Length Subnet Mask)
劃分子網的IPv4就是定長的子網掩碼
舉例
通過上面步驟分析,就可以從子網1 ~ 8中任選5個分配給左圖中的N1 ~ N5
採用定長的子網掩碼劃分,只能劃分出2^n個子網,其中n是從主機號部分借用的用來作為子網號的比特數量,每個子網所分配的IP地址數量相同
但是也因為每個子網所分配的IP地址數量相同,不夠靈活,容易造成IP地址的浪費
變長的子網掩碼VLSM(Variable Length Subnet Mask)
無分類編址的IPv4就是變長的子網掩碼
舉例
4.4、IP數據報的發送和轉發過程
舉例
源主機如何知道目的主機是否與自己在同一個網路中,是直接交付,還是間接交付?
可以通過 目的地址IP 和 源地址的子網掩碼 進行 邏輯與運算 得到 目的網路地址
如果 目的網路地址 和 源網路地址 相同 ,就是 在同一個網路 中,屬於 直接交付
如果 目的網路地址 和 源網路地址 不相同 ,就 不在同一個網路 中,屬於 間接交付 ,傳輸給主機所在網路的 默認網關 (路由器——下圖會講解),由默認網關幫忙轉發
主機C如何知道路由器R的存在?
用戶為了讓本網路中的主機能和其他網路中的主機進行通信,就必須給其指定本網路的一個路由器的介面,由該路由器幫忙進行轉發,所指定的路由器,也被稱為 默認網關
例如。路由器的介面0的IP地址192.168.0.128做為左邊網路的默認網關
主機A會將該IP數據報傳輸給自己的默認網關,也就是圖中所示的路由器介面0
路由器收到IP數據報後如何轉發?
檢查IP數據報首部是否出錯:
若出錯,則直接丟棄該IP數據報並通告源主機
若沒有出錯,則進行轉發
根據IP數據報的目的地址在路由表中查找匹配的條目:
若找到匹配的條目,則轉發給條目中指示的嚇一跳
若找不到,則丟棄該數據報並通告源主機
假設IP數據報首部沒有出錯,路由器取出IP數據報首部各地址欄位的值
接下來路由器對該IP數據報進行查表轉發
逐條檢查路由條目,將目的地址與路由條目中的地址掩碼進行邏輯與運算得到目的網路地址,然後與路由條目中的目的網路進行比較,如果相同,則這條路由條目就是匹配的路由條目,按照它的下一條指示,圖中所示的也就是介面1轉發該IP數據報
路由器是隔離廣播域的
4.5、靜態路由配置及其可能產生的路由環路問題
概念
多種情況舉例
靜態路由配置
舉例
默認路由
舉例
默認路由可以被所有網路匹配,但路由匹配有優先順序,默認路由是優先順序最低的
特定主機路由
舉例
有時候,我們可以給路由器添加針對某個主機的特定主機路由條目
一般用於網路管理人員對網路的管理和測試
多條路由可選,匹配路由最具體的
靜態路由配置錯誤導致路由環路
舉例
假設將R2的路由表中第三條目錄配置錯了下一跳
這導致R2和R3之間產生了路由環路
聚合了不存在的網路而導致路由環路
舉例
正常情況
錯誤情況
解決方法
黑洞路由的下一跳為null0,這是路由器內部的虛擬介面,IP數據報進入它後就被丟棄
網路故障而導致路由環路
舉例
解決方法
添加故障的網路為黑洞路由
假設。一段時間後故障網路恢復了
R1又自動地得出了其介面0的直連網路的路由條目
針對該網路的黑洞網路會自動失效
如果又故障
則生效該網路的黑洞網路
總結
4.6、路由選擇協議
概述
網際網路所採用的路由選擇協議的主要特點
網際網路採用分層次的路由選擇協議
自治系統 AS :在單一的技術管理下的一組路由器,而這些路由器使用一種 AS 內部的路由選擇協議和共同的度量以確定分組在該 AS 內的路由,同時還使用一種 AS 之間的路由選擇協議用以確定分組在 AS之間的路由。
自治系統之間的路由選擇簡稱為域間路由選擇,自治系統內部的路由選擇簡稱為域內路由選擇
域間路由選擇使用外部網關協議EGP這個類別的路由選擇協議
域內路由選擇使用內部網關協議IGP這個類別的路由選擇協議
網關協議 的名稱可稱為 路由協議
常見的路由選擇協議
㈣ 計算機網路自頂向下方法--網路層
R1. 我們回顧一下本書中使用的某些術語。前面講過,運輸層的分組名稱是報文段,數據鏈路層的分組名字是幀。網路層的分組名字是什麼?前面講過,路由器和鏈路層交換機都稱為分組交換機。路由器和鏈路層交換機間的根本區別是什麼?回想我們對數據報網路和虛電路網路都使用術語路由器。
R2. 在數據報網路中,網路層最重要的兩個功能是什麼?在虛電路網路中,網路層的3個最重要的功能是什麼?
R3. 路由選擇和轉發的區別是什麼?
R4. 在數據報網路和虛電路網路中,路由器都使用轉發表嗎?如果是,描述用於這兩類網路的轉發表。
R5. 描述某些網路層能為單個分組提供的某些假想的服務。對於分組流進行相同的描述。網際網路的網路層為你提供了這些假想服務嗎?ATM的CBR服務模型提供了該假想服務嗎?ATM的ABR服務模型提供類該假想服務嗎?
R6. 列出某些得益於ATM的CBR服務模型的應用。
R7. 討論為什麼在高速路由器的每個輸入埠都存儲轉發表的影子副本。
R8. 4.3節中討論了3類交換結構。列出並簡要討論每一類交換結構。哪一種(如果有的話)能夠跨越交換結構並行發送多個分組?
R9. 描述在輸入埠會出現分組丟失的原因。描述在輸入埠如何消除分組丟失(不使用無限大緩存區)。
R10. 描述在輸出埠出現分組丟失的原因。通過增加交換結構速率,能夠防止這種丟失嗎?
R11. 什麼是HOL阻塞?它出現在輸入埠還是輸出埠?
R12. 路由器有IP地址嗎?如果有,有多少個?
R13. IP地址223.1.3.27的32比特二進制等價形式是什麼?
R14. 考察使用DHCP獲得它的IP地址,網路掩碼,默認路由器和其本地DNS伺服器的IP地址的主機。列出這些值。
R15. 假設在一個源主機和一個目的主機之間有3台路由器。不考慮分片,一個從源主機發送給目的主機的IP報文將通過多少個埠?為了將數據報從源移動到目的地需要檢索多少個轉發表?
R16. 假設某應用每20ms生成一個40位元組的數據塊,每塊封裝在一個TCP報文中,TCP報文再封裝在一個IP數據報中。每個數據報的開銷有多大?應用數據所佔的百分比是多少?
R17. 假設主機A向主機B發送封裝在一個IP數據報中的TCP報文段。當主機B接收到該數據報時,主機B中的網路層應該如何知道它應當將該報文段(即數據報的有效載荷)交給TCP而不是UDP或某個其他東西呢?
R18. 假定你購買了一個無線路由器並將其與電纜數據機相連,並且你的ISP動態地為你連接的設備(即你的無線路由器)分配一個IP地址。還假定你家有5台PC,均使用802.11以無線方式與該無線路由器相連。怎樣為這5台PC分配IP地址?該無線路由器使用NAT嗎?為什麼?
R19. 比較IPv4和IPv6首部欄位。它們有某些欄位是相同的嗎?
R20. 有人說當IPv6通過IPv4路由器建隧道時。IPv6將IPv4隧道作為鏈路層協議。你同意這種說法嗎?為什麼?
R21. 比較和對照鏈路狀態和距離向量路由選擇演算法?
R22. 討論網際網路的等級制組織是怎樣使得其能夠擴展為數以百萬計用戶的。
R23. 每個自治系統使用相同的AS內部路由選路演算法是必要的嗎?為什麼?
R24. 考慮圖4-37。從D中的初始表開始,假設D收到來自A的下面的通告:
D中的表會改變嗎?如果是,怎樣變化?
R25. 比較RIP和OSPF使用的通告。
R26. 填空:RIP通告通常宣稱到各目的地的跳數。另一方面,BGP則是通告到各目的地的_____?
R27. 為什麼在網際網路中用到了不同類型的AS間與AS內部選路協議?
R28. 為什麼策略考慮對於AS內部協議(如OSPF和RIP)與對於AS間路由選擇協議(如BGP)一樣重要呢?
R29. 定義和對比下列術語:子網,前綴和BGP路由。
R30. BGP是怎樣使用NEXT-HOP屬性的?它是怎樣使用AS-PATH屬性的?
R31. 描述一個較高層ISP的網路管理員在配置BGP時是如何實現策略的。
TODO----HERE
4.6.32 通過多個單播實現廣播抽象與通過支持廣播的單個網路(路由器)實現廣播抽象之間有什麼重要區別嗎?
答:N次單播效率低,需要知道接收者的地址,消耗大。但是使用廣播的話可以通過洪泛方法發送消息。
4.6.33 對於我們學習的3種一般的廣播通信方法(無控制洪泛,受控洪泛和生成樹廣播),下列說法正確嗎?可以假定分組不會因緩存溢出而丟失,所有分組以它們發送的順序交付給鏈路。
a.一個節點可能接收到同一個分組的多個拷貝。
b.一個節點可能跨越相同的出鏈路轉發多個分組的拷貝。
答:無控制洪泛:a對,b對。受控洪泛:a對,b錯。生成樹廣播:a錯,b錯。
4.6.34 當一台主機加入一個多播組時,它必須將其IP地址改變為它所加入的多播組的地址嗎?
答:對錯誤。
4.6.35 IGMP和廣域多播選路協議所起的作用是什麼?
答:IGMP運行在一台主機與其直接相連的路由器之間。IGMP允許主機指定路由器要加入的組播網。然後由組播路由器與運行組播路由協議的其他組播路由器一起工作。
4.6.36 在多播選路場合中,一棵組共享的樹與一顆基於源的樹之間有什麼區別?
答:一個組共享的樹來為組中所有發送方分發流量,一個是為每個獨立的發送方構建一顆特定源的選路樹。
㈤ 我們回顧在本書中使用的某些術語
我們在回顧在本書中使用的某些術語。前面講過運輸層的分組名字是報文段,數據鏈路層的分組名字是幀。網路層的分組名字是什麼?前面講過路由器和鏈路層交換機都被稱為分組交換機。路由器與鏈路層交換機的根本區別是什麼?
網路層的分組名字是數據報。
路由器和鏈路層交換機的根本區別是它們服務於不同的網路層協議.
鏈路層交換機基於鏈路層幀中的欄位值做出轉發決定, 服務於第二層鏈路層;
路由器基於網路層數據報中的首部欄位值做出轉發決定, 服務於第三層網路層.
2.我們注意都網路層功能可被大體分為成數據平面功能和控制平面功能。數據平面的主要功能是什麼?控制平面的主要功能呢?
數據平面:主要是轉發。當有數據報進入路由器中,數據平面負責根據路由轉發表把數據報從輸入鏈路轉發到合適的輸出鏈路。
控制平面:控制平面的主要功能是填充路由表, 也就是決定一個數據報應該轉發到哪裡。
3.我們對網路層執行的轉發功能和路由選擇功能進行區別. 路由選擇和轉發的主要區別是什麼?
轉發功能是根據路由選擇在路由器內部進行數據包的埠移動。用硬體實現。
路由選擇是指確定分組從源到目的地所採取的端到端路徑的網路范圍處理過程.。用軟體實現。
4.路由器中轉發表的主要作用是什麼?
數據報到達路由器時,首部的一個或多個欄位在轉發表中索引,根據索引結果找到輸出埠。
5. 我們說過網路層的服務模型"定義發送主機和接收主機之間的端到端分組的傳送特性".網際網路的網路層的服務模型是什麼? 就主機到主機數據報的傳遞而論, 網際網路的服務模型能夠保證什麼?
服務模型是網際網路的網路層提供了單一的服務, 稱為盡力而為服務。什麼也不能保證,就主機到主機數據報的傳遞而論, 網際網路的服務模型什麼也保證不了, 傳送的分組既不能保證以它們發送的順序被接收, 也不能保證它們最終交付; 既不能保證端到端時延, 也不能保證有最小的帶寬。
㈥ 計算機網路自頂向下方法的圖書目錄
出版者的話
作譯者簡介
譯者序
前言
第1章
計算機網路和網際網路
1.1 什麼是網際網路
1.1.1 具體構成描述
1.1.2 服務描述
1.1.3 什麼是協議
1.2 網路邊緣
1.2.1客戶機和伺服器程序
1.2.2 接入網
1.2.3 物理媒體
1.3 網路核心
1.3.1 電路交換和分組交換
1.3.2 分組是怎樣通過分組交換網形成其通路的
1.3.3 ISP和網際網路主幹
1.4 分組交換網中的時延、丟包和吞吐量
1.4.1 分組交換網中的時延概述
1.4.2 排隊時延和丟包
1.4.3 端到端時延
1.4.4 計算機網路中的吞吐量
1.5 協議層次和它們的服務模型
1.5.1 分層的體系結構
1.5.2 報文、報文段、數據報和幀
1.6 攻擊威脅下的網路
1.7 計算機網路和網際網路的歷史
1.7.1 分組交換的發展:1961~1972
1.7.2 專用網路和網路互聯:1972~1980
1.7.3 網路的激增:1980~1990
1.7.4 網際網路爆炸:20世紀90年代
1.7.5 最新發展
1.8 小結
本書路線圖
課後習題和問題
復習題
習題
討論題
Ethereal實驗
人物專訪
第2章
應用層
2.1 應用層協議原理
2.1.1 網路應用程序體系結構
2.1.2 進程通信
2.1.3 可供應用程序使用的運輸服務
2.1.4 網際網路提供的運輸服務
2.1.5 應用層協議
2.1.6 本書涉及的網路應用
2.2 Web應用和HTTP協議
2.2.1 HTTP概況
2.2.2 非持久連接和持久連接
2.2.3 HTTP報文格式
2.2.4 用戶與伺服器的交互:cookie
2.2.5 Web緩存
2.2.6 條件GET方法
2.3 文件傳輸協議:FTP
2.4 網際網路中的電子郵件
2.4.1 SMTP
2.4.2 與HTTP的對比
2.4.3 郵件報文格式和MIME
2.4.4 郵件訪問協議
2.5 DNS:網際網路的目錄服務
2.5.1 DNS提供的服務
2.5.2 DNS工作機理概述
2.5.3 DNS記錄和報文
2.6 P2P應用
2.6.1 P2P文件分發
2.6.2 在P2P區域中搜索信息
2.6.3 案例學習:Skype的P2P網際網路電話
2.7 TCP套接字編程
2.7.1 TCP套接字編程
2.7.2 一個Java客戶機 伺服器應用程序例子
2.8 UDP套接字編程
2.9 小結
課後習題和問題
復習題
習題
討論題
套接字編程作業
Ethereal實驗
人物專訪第3章 運輸層第4章 網路層第5章 鏈路層和區域網第6章 無線網路和移動網路第7章 多媒體網路第8章 計算機網路中的安全第9章 網路管理參考文獻
㈦ 《計算機網路-自頂向下方法》第四章-網路層 要點
網路層的作用:實現主機到主機的通信服務,將分組從一台發送主機移動到一台接收主機。
1、轉發涉及分組在單一的路由器中從一條入鏈路到一條出鏈路的傳送。
2、路由選擇涉及一個網路的所有路由器,它們經路由選擇協議共同交互,以決定分組從源到目的地結點所採用的路徑。計算這些路徑的演算法稱為路由選擇演算法。
每台路由器都有一張轉發表,路由器通過檢查到達分組首部欄位的值來轉發分組,然後使用該值在該路由器的轉發表中索引查找。路由選擇演算法決定了插入路由器轉發表中的值。
路由選擇演算法可能是集中式的,或者是分布式的。但在這兩種情況下,都是路由器接收路由選擇協議報文,該信息被用於配置其轉發表。
網路層也能在兩台主機之間提供無連接服務或連接服務。同在運輸層的面向連接服務和無連接服務類似,連接服務需要握手步驟,無連接服務不需要握手。但它們之間也有差異:
1、 在網路層中,這些服務是由網路層向運輸層提供的主機到主機的服務。在運輸層中,這些服務則是運輸層向應用層提供的進程到進程的服務。
2、 在網路層提供無連接服務的計算機網路稱為數據報網路;在網路層提供連接服務的計算機網路稱為虛電路網路。
3、 在運輸層實現面向連接的服務與在網路層實現連接服務是根本不同的。運輸層面向連接服務是在位於網路邊緣的端系統中實現的;網路層連接服務除了在端系統中,也在位於網路核心的路由器中實現。(原因很簡單:端系統和路由器都有網路層)
虛電路網路和數據報網路是計算機網路的兩種基本類型。在作出轉發決定時,它們使用了非常不同的信息。
IP地址有32比特,如果路由器轉發表採用「蠻力實現」將對每個可能的目的地址有一個表項。因為有超過40億個可能的地址,這種選擇完全不可能(即使用二分查找也十分慢)。
我們轉發表的表項可以設計為幾個表項,每個表項匹配一定范圍的目的地址,比如有四個表項
(你可能也會考慮到,IP地址有32比特,如果每個路由器設計為只有2個表項,那麼也只需要有32個路由器就可以唯一確定這40億個地址中的一個。)
最長前綴匹配規則,是在轉發表中尋找最長的匹配項,並向與最長前綴匹配相關聯的鏈路介面轉發分組。這種規則是為了與網際網路的編址規則相適應。
1、輸入埠
「使用轉發表查找輸出埠」是輸入埠最重要的操作(當然還有其他一些操作)。輸入埠執行完這些所需的操作後,就把該分組發送進入交換結構。如果來自其他輸入埠的分組當前正在使用交換結構,一個分組可能會在進入交換結構時被暫時阻塞,在輸入埠處排隊,並等待稍後被及時調度以通過交換結構。
2、交換結構
交換結構的三種實現方式
3、輸出埠
分組調度程序 處理在輸出埠中排隊的分組
4、路由選擇處理器
</br>
</br>
IP協議版本4,簡稱為IPv4;IP協議版本6,簡稱為IPv6。
如上圖所示,網路層有三個主要的組件
1、IP協議
2、路由選擇協議
3、ICMP協議 (Internet Control Message Protocol, 網際網路控制報文協議)
</br>
不是所有鏈路層協議都能承載相同長度的網路層分組。有的協議能承載大數據報,而有的協議只能承載小分組。例如,乙太網幀能夠承載不超過1500位元組的數據,而某些廣域網鏈路的幀可承載不超過576位元組的數據。
一個鏈路層幀能承載的最大數據量叫做最大傳送單元(Maximun Transmission Unit, MTU)
所以鏈路層協議的MTU嚴格限制著IP數據報的長度。這也還不是主要的問題,問題在於發送方與目的地路徑上的每段鏈路可能使用不同的鏈路層協議,且每種協議可能具有不同的MTU。
舉個例子:假定從某條鏈路收到一個IP數據報,通過檢查轉發表確定出鏈路,並且該出鏈路的MTU比該IP數據報的長度要小。那麼如何將這個過大的IP分組壓縮進鏈路層幀的有效載荷欄位呢?
解決辦法是,將IP數據報中的數據分片成兩個或更多個較小的IP數據報,用單獨的鏈路層幀封裝這些較小的IP數據報;然後向輸出鏈路上發送這些幀。每個這些較小的數據報都被稱為片(fragment)。
路由器完成分片任務。同時,為了使得網路內核保持簡單,IPv4設計者把數據報的重組工作放到端系統中,而非放到網路路由器中。
前提:一個4000位元組的數據報(20位元組IP首部加上3980位元組IP有效載荷)到達一台路由器,且必須被轉發到一條MTU為1500位元組的鏈路上。假定初始數據報貼上的標識號為777。
這意味著初始數據報中3980位元組數據必須被分配到3個獨立的片(其中的每個片也是一個IP數據報)
IP分片:
IP地址有32比特,分為網路號和主機號。
IP地址的網路部分(即網路號)被限制為長度為8、16或24比特,這是一種稱為分類編址的編址方案。具有8、16和24比特子網地址的子網分別被稱為A、B和C類網路。
但是它在支持數量迅速增加的具有小規模或中等規模子網的組織方面出現了問題。一個C類(/24)子網僅能容納多大2^8 - 2 = 254台主機(2^8 = 256, 其中的兩個地址預留用於特殊用途),這對許多組織來說太小了。然而一個B類(/16)子網可支持多達65534台主機,又太大了。這導致B類地址空間的迅速損耗以及所分配的地址空間的利用率低。
廣播地址255.255.255.255。當一台主機發出一個目的地址為255.255.255.255的數據報時,該報文會交付給同一個網路中的所有主機。
某組織一旦獲得了一塊地址,它就可以為本組織內的主機與路由器介面逐個分配IP地址。既可手工配置IP地址,也可以使用動態主機配置協議(Dynamic Host Configuration Protocol, DHCP)自動配置。DHCP還允許一台主機得知其他信息,如它的子網掩碼、它的第一跳路由器地址(常稱為默認網關)與它的本地DNS伺服器的地址。
由於DHCP具有能將主機連接進一個網路相關方面的自動能力,它又被稱為即插即用協議。
DHCP是客戶-伺服器協議。客戶通常是新達到的主機,它要活的包括自身使用的IP地址在內的網路配置信息。在最簡單的場合下,每個子網將具有一台DHCP伺服器。如果在某子網中沒有伺服器,則需要一個DHCP中繼代理(通常是一台路由器),這個代理知道用於該網路的DHCP伺服器的地址。
DHCP協議工作的4個步驟:
網路地址轉換(Network Address Translation, NAT)
ICMP通常被認為是IP的一部分,但從體系結構上將它是位於IP之上的,因為ICMP報文是承載在IP分組中的。即ICMP報文是作為IP有效載荷承載的,就像TCP與UDP報文段作為IP有效載荷被承載那樣。
眾所周知的ping程序發送一個ICMP類型8編碼0的報文到指定主機。看到該回顯請求,目的主機發回一個類型0編碼0的ICMP回顯回答。大多數TCP/IP實現直接在操作系統中支持ping伺服器,即該伺服器不是一個進程。
新型IPv6系統可做成向後兼容,即能發送、路由和接收IPv4數據報,要使得已部署的IPv4系統能夠處理IPv6數據報,最直接的方式是採用一種雙棧方法。
1、鏈路狀態(Link State, LS)演算法:屬於全局式路由選擇演算法,這種演算法必須知道網路中每條鏈路的費用。費用可理解為鏈路的物理長度、鏈路速度,或與該鏈路相關的金融上的費用。鏈路狀態演算法採用的是Dijkstra演算法。
2、距離向量(Distance-Vector, DV)演算法:屬於迭代的、非同步的和分布式的路由選擇演算法。
「迭代的」,是因為此過程一直要持續到鄰居之間無更多信息要交換為止。
「非同步的」,是因為它不要求所有結點相互之間步伐一致地操作。
「分布式的」,是因為每個結點都要從一個或多個直接相連鄰居接收某些信息,執行計算,然後將其計算結果分發給鄰居。
DV演算法的方程:
其中,dx(y)表示從結點x到結點y的最低費用路徑的費用,c(x, v)是結點x到結點v的費用,結點v指的是所有x的相連結點,所以x的所有相連結點都會用minv方程計算。
(N是結點(路由器)的集合,E是邊(鏈路)的集合)
為了減少公共網際網路的路由選擇計算的復雜性以及方便企業管理網路,我們將路由器組織進自治系統。
在相同AS中的路由器全都運行同樣的路由選擇演算法,且擁有彼此的信息。在一個自治系統內運行的路由選擇演算法叫做自治系統內部路由選擇協議。
當然,將AS彼此互聯是必需的,因此在一個AS內的一台或多台路由器將有另外的任務,即負責向在本AS之外的目的地轉發分組。這些路由器被稱為網關路由器。
分為自治系統內部的路由選擇和自治系統間的路由選擇
1、網際網路中自治系統內部的路由選擇:路由選擇信息協議(Routing Information Protocol, RIP)
2、網際網路中自治系統內部的路由選擇:開放最短路優先(Open Shortest Path First, OSPF)
3、自治系統間的路由選擇:邊界網關協議(Broder Gateway Protocol, BGP)
為什麼要使用不同的AS間和AS內部路由選擇協議?
實現廣播的方法
1、無控制洪泛。該方法要求源結點向它的所有鄰居發送分組的副本。當某結點接收了一個廣播分組時,它復制該分組並向它的所有鄰居(除了從其接收該分組的那個鄰居)轉發之。
致命缺點: 廣播風暴 ,如果圖具有圈,那麼每個廣播分組的一個或多個分組副本將無休止地循環。
2、受控洪泛。用於避免廣播風暴,關鍵在於正確選擇何時洪泛分組,何時不洪泛分組。受控洪泛有兩種方法:序號控制洪泛、反向路徑轉發(Reverse Path Forwarding, RPF)
3、生成樹廣播。雖然序號控制洪泛和RPF能避免廣播風暴,但是它們不能完全避免冗餘廣播分組的傳輸。
多播:將分組從一個或多個發送方交付到一組接收方
每台主機有一個唯一的IP單播地址,該單播地址完全獨立於它所參與的多播組的地址。
網際網路網路層多播由兩個互補組件組成:網際網路組管理協議(Internet Group Management Protocol, IGMP)和多播路由選擇協議
IGMP只有三種報文類型:membership_query報文,membership_report報文,leave_group報文。
與ICMP類似,IGMP報文也是承載在一個IP數據報中。
網際網路中使用的多播路由選擇
1、距離向量多播路由選擇協議
2、協議無關的多播路由選擇協議
㈧ 計算機網路謝希仁編著的第六版第四章課後習題答案
第4 章 網路層
4-01網路層向上提供的服務有哪兩種?試比較其優缺點。
答案:虛電路服務和數據報服務。
虛電路的優點:虛電路服務是面向連接的,網路能夠保證分組總是按照發送順序到達目的站,且不丟失、不重復,提供可靠的端到端數據傳輸;目的站地址僅在連接建立階段使用,每個分組使用短的虛電路號,使分組的控制信息部分的比特數減少,減少了額外開銷;端到端的差錯處理和流量控制可以由分組交換網負責,也可以由用戶機負責。虛電路服務適用於通信信息量大、速率要求高、傳輸可靠性要求高的場合。
虛電路的缺點:虛電路服務必須建立連接;屬於同一條虛電路的分組總是按照同一路由進行轉發;當結點發生故障時,所有通過出故障的結點的虛電路均不能工作。
數據報的優點:數據報服務不需要建立連接;每個分組獨立選擇路由進行轉發,當某個結點發生故障時,後續的分組可以另選路由,因而提高了通信的可靠性。數據報服務的靈活性好,適用於傳輸可靠性要求不高、通信子網負載不均衡、需要選擇最佳路徑的場合。
數據報的缺點:數據報服務是面向無連接的,到達目的站時不一定按發送順序,傳輸中的分組可能丟失和重復,提供面向無連接的、不可靠的數據傳輸;每個分組都要有目的站的全地址;當網路發生故障是,出故障的結點可能會丟失數據,一些路由可能會發生變化;端到端的差錯處理和流量控制只由主機負責。
答案太多傳不上來,留下郵箱可以發給你..........
㈨ 計算機網路自頂向下方法的介紹
《計算機網路自頂向下方法》是2009年機械工業出版社出版的圖書,作者是庫羅斯。本書是當前世界上最為流行的計算機網路教科書之一,採用了作者獨創的自頂向下的方法來講授計算機網路的原理及其協議,即從應用層協議開始沿協議棧向下講解,強調應用層範例和應用編程介面,使讀者盡快進入每天使用的應用程序環境之中進行學習和「創造」。本書的講解以網際網路為例,學以致用;注重教學法,深入淺出地重點講解計算機網路的基本原理。第4版全面關注了網路安全問題;更新並擴展了無線網路的覆蓋范圍,增加了有關802.11(WiFi)、802.16(WiMAX)和蜂窩網路的新內容;增強了P2P應用程序的內容,包括文件共享協議、BitTorrent等文件分發協議以及Skype的IP話音等新型多媒體應用;更新了區域網和多媒體網路的章節,以反映這些領域中理論與實踐的變化;第1章中增加了有關端到端吞吐量分析的新材料;全面修訂並增加了新的課後5-7題,以及附加了循序漸進的Ethereal實驗。
㈩ 計算機網路-4-4-轉發分組,構建子網和劃分超網
上圖是一個路由器怎麼進行分組轉發的例子:有四個A類網路通過三個路由器連接在一起,每一個網路上都可能會有成千上萬台主機。若路由表指出每一台主機該進行怎樣的轉發。則要維護的路由表是非常的龐大。 如果路由表指定到某一個網路如何轉發,則路由表中只有4行,每一行對應一個網路。 以路由器2的路由表為例:由於R2同時連接在網路2和網路3上,因此只要目標主機在網路2或者網路3上,都可以通過介面0或者1或者路由器R2直接交付(當然還有使用ARP協議找到這些主機相應的MAC地址)。若目標主機在網路1中,則下一跳路由器為R1,其IP地址為20.0.0.7。路由器R2和R1由於同時連接在網路2上,因此從路由器2把轉發分組給R1是很容易的。 我們應當注意到:每一個路由器至少都要擁有兩個不同的IP地址。 總之,在路由表中,對每一條路由最主要的是以下兩條信息: (目的網路,下一跳地址) 我們根據目的網路地址來確定下一跳路由器,這樣可以得到以下結論:
雖然互聯網上所有的分組轉發都是 基於目的主機所在的網路 ,但是在大多數情況下都允許這樣的實例: 對特定的主機指明一個路由 ,這種路由叫 特定主機路由 。採用特定主機路由可以使網路人員方便管理控制網路和測試網路
路由器還可以採用 默認路由 以減少路由表所佔用的空間和搜索路由表所使用的時間。
當路由器接收到一個待轉發的數據報,在從路由表中得出下一跳路由器的IP地址後,不是把這個地址寫入IP數據報,而是送交 數據鏈路層的網路介面軟體 ,網路介面軟體把負責下一跳的路由器IP地址轉化為硬體地址(必須使用ARP),將硬體地址寫入MAC幀的首部,然後根據這個硬體地址找到下一跳路由器。由此可見,當發送一連串的數據報時,上述的這種查找路由表,用ARP得到硬體地址,把硬體地址寫入MAC地址首部等過程,將不斷地重復進行,造成了一定的開銷。
根據以上幾點,我們提出 分組轉發演算法:
這里我們需要強調一下,路由表並沒有給分組指明某個網路的完整路徑(即先經過哪一個路由器,然後再經過哪一個路由器,等等)。路由表指出,到達某個網路應該先到達某個路由器(下一條路由器),在到達下一跳路由器之後,再繼續查找路由表,知道再下一步應當到達哪一個路由器。這樣一步步的查找下去,直到最後到達目的網路。
為什麼劃分子網?
為解決上述問題,從1985年引出 子網路號欄位 ,使得兩級IP地址變為三級IP地址,這種做法叫做 劃分子網(subnetting)【RFC950】 。
劃分子網的基本思路:
劃分子網的用例
如上圖為某單位擁有一個B類IP地址,網路地址為145.13.0.0(網路號為145.13),凡是目的網路為145.13.x.x的數據報都會送到這個網路上路由器R1上。
現在把該網路劃分為三個字網,這里假設子網路號佔用8位,因此主機號就只剩下16-8=8位了,所劃分的三個字網為145.13.3.0,145.13.7.0,145.3.21.0。路由器在接受到145.13.0.0上的路由器數據後,再根據數據報的目的地址把它轉化到相應的子網。
總之,當沒有劃分子網的時候,IP地址是兩節結構。劃分子網後IP地址就變成了三級結構。劃分子網只是把IP地址的主機號這部分進行再劃分,而不改變IP地址原來的網路號。
假定有一個IP數據報(其目的地址為145.13.3.10)已經到達了路由器R1,那麼這個路由器如何把它轉發到子網145.13.3.0呢?
我們知道,從IP數據包報的首部無法看出源主機的目的主機所連接的網路是否進行了子網劃分。這是因為32位IP地址本身以及數據報的首部沒有包含任何關於子網劃分的信息。因此必須另想辦法,這就是使用 子網掩碼 。
把三級IP地址的子網掩碼和收到的目的地址的IP地址 逐位進行與(AND)運算,就可以立即得到網路地址,剩下的步驟就交給路由器處理分組。
使用子網掩碼的好處是:不管網路有沒有劃分子網,只要把子網掩碼和IP地址進行逐位 與(AND) 運算,就立即得出網路地址來,這樣在路由器處理到來的分組時就可採取同樣的做法。
在不劃分子網時,為什麼還要使用子網掩碼?這就是為了更便於查找路由表。現在互聯網規定:所有網路都必須使用子網掩碼,同時在路由器的路由表中也必須有子網掩碼這一欄。如果一個網路不劃分子網,那麼該網路的子網掩碼就是用 默認的子網掩碼 ,默認子網掩碼中1的位置和IP地址中的網路號欄位net-id正好相對應。因此,若用默認子網掩碼和某個不劃分子網的IP地址逐位相"與",就應該能夠得出該IP地址的網路地址來,這樣做可以不用查找該地址的類別位就能夠知道這是哪一類的IP地址。顯然:
圖4-21是這三類IP地址的網路地址和相應的默認子網掩碼:
子網掩碼是一個網路或者一個子網的重要屬性 。在RFC950成為互聯網標准後,路由器在和相鄰路由器交換路由信息時,必須把自己所在的網路(或子網)的子網掩碼告訴相鄰路由器,在路由器的路由表中的每一個項目,除了要給出目的網路地址外,還必須同時給出該網路的子網掩碼。若一個路由器連接在兩個子網上就擁有兩個網路地址和兩個子網掩碼。
例4-2:
已知IP地址是141.14.72.24,子網掩碼是255.255.192.0,求網路地址:
解: 255.255.192.0的二進制:11111111 11111111 11000000 00000000
IP 141.14.72.24二進制: 11111111 11111111 01001000
00000000
將IP地址二進制與子網掩碼二進制進行 與(AND)運算 為 ::11111111 11111111 11000000 00000000
即網路IP為:141.14.64.0
在劃分子網的情況下,分組轉發的演算法必須作出改動。在使用子網劃分後,路由表應該包含以下內容:
在劃分子網的情況下,路由器轉發分組的演算法如下:
例4-4:
圖4-24有三個字網,兩個路由器,以及路由器R1的部分路由表。現在源主機H1向目的主機H2發送分組。試討論R1收到H1向H2發送的分組後查路由表的過程。
解:
源主機H1向目標主機H2發送的分組的目的地址為128.30.33.138。
源主機H1把本子網的子網掩碼255.255.255.128與H2的IP地址128.30.33.128相與得到128.30.33.128,它不等於H1的網路地址(128.30.33.0)。這說明主機H2與主機H1不在同一個網段上,因此H1不能把數據包直接交付給H2。必須交給子網上的默認路由R1,由R1轉發。
路由表在接受到這個分組之後,就在其路由表中逐行匹配尋找。
首先看R1路由表的第一行:用這一行的子網掩碼255.255.255.128與H2IP地址進行互與,得到128.30.33.128,然後和這一行用樣的方法進行第二行,結果發現相與出來的結果和目的網路地址匹配,則說明這個網路(子網2)就是收到的分組所要尋找的目的網路。於是就不用繼續找了。R1把分組從介面1直接交付給主機H2(他們都在一個子網上)。
在一個劃分子網的網路中可使用幾個不同的子網掩碼。使用變長 子網掩碼VLSM(Variable Length Subnet Mask) 可進一步提高IP地址資源的利用率。在VLSM的基礎上又進一步研究出 無分類編制 方法。它的正式名字是無分類域間路由選擇CIDR(Classless Inter-Domain Routing)。
CIDR 最主要的特點有兩個:
CIDR還使用斜線記法,就是在IP地址後面加上斜線/,然後寫上 網路前綴所佔的位數 。例如IP地址為128.14.35.7/20是某CIDR地址快中的一個地址,其中前20位就是網路前綴,後面的14位是主機位。如圖所示:
當然以上地址的主機號全為0和全為1的地址,一般並不使用,這個地址塊共有2^12個地址,我們可以使用地址塊中最小的地址和網路前綴來指明這個地址快。例如,上述的地址塊可記為128.14.32.0/20。
為了更方便的進行路由選擇,CIDR使用了32位的地址掩碼(address mask)。地址掩碼是由一串1和一串0組成, 而1的個數就是網路前綴的個數。 雖然CIDR不使用子網了,但是出於某些原因,CIDR使用的地址掩碼也可以繼續稱為 子網掩碼,斜線記法中,斜線後面的數字就是1的個數 。例如,/20地址快的地址掩碼是 11111111 11111111 11110000 00000000 (20個連續的1)。 斜線記法中,斜線後面的數字就是地址掩碼中1的個數。
斜線記法還有一個好處就是它除了可以表示一個IP地址外,還提供了一些其他重要的信息。我們舉例說明如下:
例如,地址為192.199.170.82/27不僅表示IP地址是192.199.170.82,而且還表示這個地址快的網路前綴有27位(剩下的5位是主機號),因此這個地址快包含32個IP地址( =32)。通過見到那的計算還可以得出,這個地址塊的最小地址是192.199.170.64,最大地址是192.199.170.95。具體的計算方法是這樣的:找到地址掩碼中1和0的交界處發生在地址中的哪一個位元組,現在是第四個位元組,因此只要把這一個位元組的十進制82用二進製表示即可:82的二進制是01010010,取其前3位(這3位加上前3位元組的24位就夠成了27位),再把後面的5位都寫成0,即01000000,等於十進制64,這樣就找到了地址快的最小地址192.199.170.64,再把最後面5位都置為1,即01011111,等於十進制的95,這就找到了地址塊中的最大地址192.199.170.95。
由於一個CICR地址塊有很多地址,所以在路由表中就利用CIDR地址塊來查找目的網路。這種地址的聚合常稱之為 路由聚合(route aggregation) ,它使得路由表中的一個項目可以表示原來傳統分類地址的很多個路由,路由聚合也稱之為 構成超網(supernetting) ,路由聚合有利於減少路由器之間的路由選擇信息的交換,從而提高了整個互聯網的性能。
每一個CIDR地址塊中的地址數一定是2的整數次冪,這就是 構建超網 的來源。
網路前綴越短 ,其地址塊所包含的地址數就越多,而在三級結構的IP地址中,劃分子網是使網路前綴變長。
在使用了CIDR時,由於採用網路前綴這種記法,IP地址由網路前綴和主機號這兩部分組成,因此在路由表中的項目也要有相應的變化,這時,每個項目由 網路前綴 和 下一跳地址組成 , 但是在查找路由表時可能會得到不止一個匹配結果 ,這樣就帶來一個問題:我們應該從這些匹配結果中選擇哪一條路由呢?
正確的答案是: 應但從匹配結果中選擇具有最長網路前綴的路由 ,這就做 最長前綴匹配(long-prefix matching) ,這是因為網路前綴越長,說明其地址塊越小因而路由就越具體,最長前綴匹配又稱之為 最長匹配 或者 最佳匹配 。
使用CIDR後,由於要尋找最長前綴匹配,使路由表的查找過程變的十分復雜,當路由表的項目數很大的時候,怎樣設法減少路由表的平均查找時間就成為了一個非常重要的問題,現在常用的是 二叉線索(binary trie) ,它是一種特殊結構的樹,IP地址中從左到右的比特值決定了從根節點逐層向下層延伸的路徑,二二叉線索中的各個路徑就代表路由表中存放的各個地址。
圖4-26用一個例子說明二叉樹線索的結構,圖中給出了5個IP地址。為了簡化二叉線索的結構,可以先找出對應一與每一個IP地址的唯一前綴(unique prefix),所謂唯一前綴就是在表中所有的IP地址中,該前綴時唯一的,這樣就可以用這些唯一前綴來構造二叉線索。在進行查找時,只要能夠和唯一前綴匹配相匹配就可以了。
從二叉樹的根節點自頂向下的深度最多有32層,每一層對應於IP地址中的一位。