第三、網(wǎng)絡(luò )層協(xié)議框架
一、路由器在網(wǎng)際中的作用
(一)路由器的構成(強調:它工作在第三層,即IP層或網(wǎng)絡(luò )互連層,但是它包括物理層和數據鏈路層。路由器也具有操作系統,相當于一臺小型計算機)
?。?)當主機 A 要向另一個(gè)主機 B 發(fā)送數據報時(shí),先要檢查目的主機 B 是否與源主機 A 連接在同一個(gè)網(wǎng)絡(luò )上
?。?)如果是,就將數據報直接交付給目的主機 B 而不需要通過(guò)路由器
?。?)但如果目的主機與源主機 A 不是連接在同一個(gè)網(wǎng)絡(luò )上,則應將數據報發(fā)送給本網(wǎng)絡(luò )上的某個(gè)路由器,由該路由器按照轉發(fā)表指出的路由將數據報轉發(fā)給下一個(gè)路由器。這就叫作間接交付
(二)典型路由器的結構
“轉發(fā)”和“路由選擇”的區別
?。?)“轉發(fā)”(forwarding)就是路由器根據轉發(fā)表將用戶(hù)的 IP 數據報從合適的端口轉發(fā)出去
?。?)“路由選擇”(routing)則是按照分布式算法,根據從各相鄰路由器得到的關(guān)于網(wǎng)絡(luò )拓撲的變化情況,動(dòng)態(tài)地改變所選擇的路由
?。?)路由表是根據路由選擇算法得出的。而轉發(fā)表是從路由表得出的(實(shí)際中轉發(fā)表是邏輯圖而路由表是實(shí)際的線(xiàn)路圖)
?。?)我們在討論路由選擇的原理時(shí),往往不去區分轉發(fā)表和路由表的區別
輸入端口對線(xiàn)路上收到的分組的處理
數據鏈路層剝去幀首部和尾部后,將分組送到網(wǎng)絡(luò )層的隊列中排隊等待處理。這會(huì )產(chǎn)生一定的時(shí)延
輸出端口將交換結構傳送來(lái)的分組發(fā)送到線(xiàn)路
當交換結構傳送過(guò)來(lái)的分組先進(jìn)行緩存。數據鏈路層處理模塊將分組加上鏈路層的首部和尾部,交給物理層后發(fā)送到外部線(xiàn)路
分組丟棄 (分組又叫報文或IP數據包或數據報)
若路由器處理分組的速率趕不上分組進(jìn)入隊列的速率,則隊列的存儲空間最終必定減少到零,這就使后面再進(jìn)入隊列的分組由于沒(méi)有存儲空間而只能被丟棄。路由器中的輸入或輸出隊列產(chǎn)生溢出是造成分組丟失的重要原因(所以IP數據包是非面向連接的,高層才是面向連接)
兩個(gè)重要的路由協(xié)議:
構成、維護路由表的協(xié)議是主動(dòng)路由協(xié)議(routing);
轉發(fā)數據包的協(xié)議是被動(dòng)路由協(xié)議(routed)。
二、互連網(wǎng)和因特網(wǎng)
(一)互連在一起的網(wǎng)絡(luò )要進(jìn)行通信,會(huì )遇到許多問(wèn)題需要解決
不同的尋址方案
不同的最大分組長(cháng)度
不同的網(wǎng)絡(luò )接入機制
不同的超時(shí)控制
不同的差錯恢復方法
不同的狀態(tài)報告方法
不同的路由選擇技術(shù)
不同的用戶(hù)接入控制
不同的服務(wù)(面向連接服務(wù)和無(wú)連接服務(wù))
不同的管理與控制方式
(二)網(wǎng)絡(luò )互相連接起來(lái)要使用一些中間設備
中間設備又稱(chēng)為中間系統或中繼(relay)系統
?。?)物理層中繼系統:轉發(fā)器(repeater)特點(diǎn)是連個(gè)端口而集線(xiàn)器是多個(gè)端口
?。?)數據鏈路層中繼系統:網(wǎng)橋或橋接器(bridge)
?。?)網(wǎng)絡(luò )層中繼系統:路由器(router)
?。?)網(wǎng)橋和路由器的混合物:橋路器(brouter)
?。?)網(wǎng)絡(luò )層以上的中繼系統:網(wǎng)關(guān)(gateway)
(三)網(wǎng)絡(luò )互連使用路由器
(1)當中繼系統是轉發(fā)器或網(wǎng)橋時(shí),一般并不稱(chēng)之為網(wǎng)絡(luò )互連,因為這僅僅是把一個(gè)網(wǎng)絡(luò )擴大了,而這仍然是一個(gè)網(wǎng)絡(luò )(也可以說(shuō)第二層設備不會(huì )擴大LAN)
(2)網(wǎng)關(guān)由于比較復雜,目前使用得較少
(3)互聯(lián)網(wǎng)都是指用路由器進(jìn)行互連的網(wǎng)絡(luò )
(4)由于歷史的原因,許多有關(guān) TCP/IP 的文獻將網(wǎng)絡(luò )層使用的路由器稱(chēng)為網(wǎng)關(guān)
(四)虛擬互連網(wǎng)絡(luò )的意義
?。?)所謂虛擬互連網(wǎng)絡(luò )也就是邏輯互連網(wǎng)絡(luò ),它的意思就是互連起來(lái)的各種物理網(wǎng)絡(luò )的異構性(異構的意思是:比如網(wǎng)絡(luò )有的使用以太網(wǎng)、有的使用令牌環(huán)網(wǎng)等等,這叫異構)本來(lái)是客觀(guān)存在的,但是我們利用 IP 協(xié)議就可以使這些性能各異的網(wǎng)絡(luò )從用戶(hù)看起來(lái)好像是一個(gè)統一的網(wǎng)絡(luò )
?。?)使用 IP 協(xié)議的虛擬互連網(wǎng)絡(luò )可簡(jiǎn)稱(chēng)為 IP 網(wǎng)。(強調:虛擬的意思是人感覺(jué)到的,感覺(jué)是在一個(gè)網(wǎng)絡(luò )上通信)
?。?)使用虛擬互連網(wǎng)絡(luò )的好處是:當互聯(lián)網(wǎng)上的主機進(jìn)行通信時(shí),就好像在一個(gè)網(wǎng)絡(luò )上通信一樣,而看不見(jiàn)互連的各具體的網(wǎng)絡(luò )異構細節
(五)名詞 internet 和 Internet 的區別:
?。?)以小寫(xiě)字母 i 開(kāi)始的 internet(互聯(lián)網(wǎng)或互連網(wǎng))是一個(gè)通用名詞,它泛指由多個(gè)計算機網(wǎng)絡(luò )互連而成的虛擬網(wǎng)絡(luò )。有的地方叫internetwork一般這樣寫(xiě),即是網(wǎng)絡(luò )互連的意思
?。?)以大寫(xiě)字母 I 開(kāi)始的的 Internet(因特網(wǎng))則是一個(gè)專(zhuān)用名詞,它指當前全球最大的、開(kāi)放的、由眾多網(wǎng)絡(luò )相互連接而成的特定計算機網(wǎng)絡(luò ),它采用 TCP/IP 協(xié)議族,且其前身是美國的 ARPANET。
(六)因特網(wǎng)的網(wǎng)際協(xié)議 IP
網(wǎng)際協(xié)議 IP 是 TCP/IP 體系中兩個(gè)最主要的協(xié)議之一 。與 IP 協(xié)議配套使用的還有四個(gè)協(xié)議:
?。?)地址解析協(xié)議 ARP (Address Resolution Protocol)
?。?)逆地址解析協(xié)議 RARP (Reverse Address Resolution Protocol)(備注:它是一個(gè)過(guò)時(shí)的協(xié)議,現在已經(jīng)基本上不使用了。逆地址解析協(xié)議 RARP 使只知道自己硬件地址的主機能夠知道其 IP 地址。這種主機往往是無(wú)盤(pán)工作站。 因此 RARP協(xié)議目前已很少使用。)
?。?)因特網(wǎng)控制報文協(xié)議 ICMP(Internet Control Message Protocol)
?。?)因特網(wǎng)組管理協(xié)議 IGMP(Internet Group Management Protocol)
三、分類(lèi)的IP地址
(一)我們把整個(gè)因特網(wǎng)看成為一個(gè)單一的、抽象的網(wǎng)絡(luò )。IP 地址就是給每個(gè)連接在因特網(wǎng)上的主機(或路由器)分配一個(gè)在全世界范圍是惟一的 32 bit 的標識符。IP 地址現在由因特網(wǎng)名字與號碼指派公司ICANN (Internet Corporation for Assigned Names and Numbers)進(jìn)行。(備注:關(guān)于IP地址獲得這部分我簡(jiǎn)單提一下:以前用bootp協(xié)議來(lái)分配IP地址,但是現在已經(jīng)基本不用,它是靜態(tài)的,被DHCP所取代,DHCP能夠動(dòng)態(tài)地分配IP地址,既可以完成bootp所完成的工作,也能完成它不能完成的工作。)
(二)IP地址的編址方法
?。?)分類(lèi)的 IP 地址。這是最基本的編址方法,在 1981 年就通過(guò)了相應的標準協(xié)議
?。?)子網(wǎng)的劃分。這是對最基本的編址方法的改進(jìn),其標準[RFC 950]在 1985 年通過(guò)
?。?)構成超網(wǎng)。這是比較新的無(wú)分類(lèi)編址方法。1993 年提出后很快就得到推廣應用
(三)分類(lèi)IP地址
每一類(lèi)地址都由兩個(gè)固定長(cháng)度的字段組成,其中一個(gè)字段是網(wǎng)絡(luò )號 net-id,它標志主機(或路由器)所連接到的網(wǎng)絡(luò ),而另一個(gè)字段則是主機號 host-id,它標志該主機(或路由器)。兩級的 IP 地址可以記為
IP 地址 = { <網(wǎng)絡(luò )號>, <主機號>}
?。?)A (0)類(lèi)地址的網(wǎng)絡(luò )號字段 net-id 為 1 字節
?。?)B(10)類(lèi)地址的網(wǎng)絡(luò )號字段 id 為 2字節
?。?)C(110)類(lèi)地址的網(wǎng)絡(luò )號字段 id 為 3 字節
?。?)D (1110)類(lèi)地址是多播地址(注意和廣播地址的區別:廣播地址是一對全,而多播是一對多)
?。?)E(11110)類(lèi)地址是為了保留為今后使用
(備注:括號中是第一個(gè)字節的前幾位,用來(lái)區分類(lèi)別)
(四)路由器轉發(fā)分組的步驟
?。?)先按所要找的 IP 地址中的網(wǎng)絡(luò )號 net-id 把目的網(wǎng)絡(luò )找到
?。?)當分組到達目的網(wǎng)絡(luò )后,再利用主機號host-id 將數據報直接交付給目的主機
?。?)按照整數字節劃分 net-id 字段和 host-id 字段,就可以使路由器在收到一個(gè)分組時(shí)能夠更快地將地址中的網(wǎng)絡(luò )號提取出來(lái)
說(shuō)明:每隔 8 bit 插入一個(gè)空格能夠提高可讀性。采用點(diǎn)分十進(jìn)制記法則進(jìn)一步提高可讀性。(備注:什么叫整數字節呢?就是8位一個(gè)字節的劃分方法,有人可能迷糊,8位本來(lái)不就是一個(gè)字節嗎?對,沒(méi)錯,如果你能想明白它為什么不用4位來(lái)作為一個(gè)網(wǎng)絡(luò )號的原因,也就能明白8位一個(gè)字節的劃分方法)
(五)常用的三類(lèi)IP地址
(1)A類(lèi):最大網(wǎng)絡(luò )數為126(2的7次方-2)
第一個(gè)可用的網(wǎng)絡(luò )號是:1
最后一個(gè)可用的網(wǎng)絡(luò )號是:126
每個(gè)網(wǎng)絡(luò )中最大的主機數:16777214
(2)B類(lèi):最大網(wǎng)絡(luò )數為16384(2的14次方)
第一個(gè)可用的網(wǎng)絡(luò )號是:128.0
最后一個(gè)可用的網(wǎng)絡(luò )號是:191.255
每個(gè)網(wǎng)絡(luò )中最大的主機數:65535
(3)C類(lèi):最大網(wǎng)絡(luò )數為2097152(2的21次方)
第一個(gè)可用的網(wǎng)絡(luò )號是:192.0.0
最后一個(gè)可用的網(wǎng)絡(luò )號是:223.255.255
每個(gè)網(wǎng)絡(luò )中最大的主機數:254
(六)IP地址的一些重要特點(diǎn)
IP 地址是一種分等級的地址結構。分兩個(gè)等級的好處是
(1)第一,IP 地址管理機構在分配 IP 地址時(shí)只分配網(wǎng)絡(luò )號,而剩下的主機號則由得到該網(wǎng)絡(luò )號的單位自行分配。這樣就方便了 IP 地址的管理。第二,路由器僅根據目的主機所連接的網(wǎng)絡(luò )號來(lái)轉發(fā)分組(而不考慮目的主機號),這樣就可以使路由表中的項目數大幅度減少,從而減小了路由表所占的存儲空間
(2)實(shí)際上 IP 地址是標志一個(gè)主機(或路由器)和一條鏈路的接口。當一個(gè)主機同時(shí)連接到兩個(gè)網(wǎng)絡(luò )上時(shí),該主機就必須同時(shí)具有兩個(gè)相應的 IP 地址,其網(wǎng)絡(luò )號 net-id 必須是不同的。這種主機稱(chēng)為多接口主機(multihomed host)。由于一個(gè)路由器至少應當連接到兩個(gè)網(wǎng)絡(luò )(這樣它才能將 IP 數據報從一個(gè)網(wǎng)絡(luò )轉發(fā)到另一個(gè)網(wǎng)絡(luò )),因此一個(gè)路由器至少應當有兩個(gè)不同的 IP 地址
(3) 用轉發(fā)器或網(wǎng)橋連接起來(lái)的若干個(gè)局域網(wǎng)仍為一個(gè)網(wǎng)絡(luò ),因此這些局域網(wǎng)都具有同樣的網(wǎng)絡(luò )號 net-id。在同一個(gè)局域網(wǎng)上的主機或路由器的IP 地址中的網(wǎng)絡(luò )號必須是一樣的
(4) 所有分配到網(wǎng)絡(luò )號 net-id 的網(wǎng)絡(luò ),范圍很小的局域網(wǎng),還是可能覆蓋很大地理范圍的廣域網(wǎng),都是平等的(就是說(shuō)沒(méi)有什么優(yōu)先級而言)
?。?span style="COLOR: #ff0000">備注:兩個(gè)路由器直接相連的接口處,可指明也可不指明 IP 地址。就是說(shuō)有可能兩個(gè)路由器中間什么都沒(méi)有除了線(xiàn)路,這種情況也可以給這個(gè)線(xiàn)路兩端分配兩個(gè)IP地址,它也算是一個(gè)網(wǎng)絡(luò ),一般在長(cháng)途網(wǎng)中使用,用的是串行口,這一段連線(xiàn)就構成了一種只包含一段線(xiàn)路的特殊“網(wǎng)絡(luò )” ?,F在常不指明 IP 地址,用的是以太口。路由器的IP地址就是指某個(gè)端口的IP地址,如果用的是串行口,則下一跳IP地址是這個(gè)長(cháng)途線(xiàn)路上的IP地址。)
(七)IP地址與硬件地址
?。?)網(wǎng)絡(luò )層及以上使用IP地址
?。?)鏈路層及其以下使用硬件地址
?。?)在 IP 層抽象的互聯(lián)網(wǎng)上只能看到 IP 數據報,在具體的物理網(wǎng)絡(luò )的鏈路層只能看見(jiàn) MAC 幀而看不見(jiàn) IP 數據報
?。?)兩個(gè)路由器的 IP 地址并不出現在 IP 數據報的首部中
?。?)路由器只根據目的站的 IP 地址的網(wǎng)絡(luò )號進(jìn)行路由選擇
?。?)IP層抽象的互聯(lián)網(wǎng)屏蔽了下層很復雜的細節。在抽象的網(wǎng)絡(luò )層上討論問(wèn)題,就能夠使用統一的、抽象的 IP 地址
?。?)不變的是IP地址(因為源地址和目的地址不可能改變),在進(jìn)行路由選擇的時(shí)候。變化的是硬件地址。(備注:請讀者想一下為什么MAC地址要變化?因為它要適應不同的局域網(wǎng))
(八)地址解析協(xié)議 ARP 和逆地址解析協(xié)議 RARP
?。?)不管網(wǎng)絡(luò )層使用的是什么協(xié)議,在實(shí)際網(wǎng)絡(luò )的鏈路上傳送數據幀時(shí),最終還是必須使用硬件地址
?。?)每一個(gè)主機都設有一個(gè) ARP 高速緩存(ARP cache),里面有所在的局域網(wǎng)上的各主機和路由器的 IP 地址到硬件地址的映射表
?。?)當主機 A 欲向本局域網(wǎng)上的某個(gè)主機 B 發(fā)送 IP 數據報時(shí),就先在其 ARP 高速緩存中查看有無(wú)主機 B 的 IP 地址。如有,就可查出其對應的硬件地址,再將此硬件地址寫(xiě)入 MAC 幀,然后通過(guò)局域網(wǎng)將該 MAC 幀發(fā)往此硬件地址
(九)ARP 高速緩存的作用
?。?)為了減少網(wǎng)絡(luò )上的通信量,主機 A 在發(fā)送其 ARP 請求分組時(shí),就將自己的 IP 地址到硬件地址的映射寫(xiě)入 ARP 請求分組。
?。?)當主機 B 收到 A 的 ARP 請求分組時(shí),就將主機 A 的這一地址映射寫(xiě)入主機 B 自己的 ARP 高速緩存中。這對主機 B 以后向 A 發(fā)送數據報時(shí)就更方便了。
?。?)ARP協(xié)議映射地址的過(guò)程:整個(gè)轉換過(guò)程是一臺主機先向目標主機發(fā)送包含IP地址信息的廣播數據包,即ARP請求,然后目標主機向該主機發(fā)送一個(gè)含有IP地址和MAC地址數據包,通過(guò)MAC地址兩個(gè)主機就可以實(shí)現數據傳輸了。
應用:在安裝了以太網(wǎng)網(wǎng)絡(luò )適配器的計算機中都有專(zhuān)門(mén)的ARP緩存,包含一個(gè)或多個(gè)表,用于保存IP地址以及經(jīng)過(guò)解析的MAC地址。在Windows中要查看或者修改ARP緩存中的信息,可以使用arp命令來(lái)完成,比如在Windows XP的命令提示符窗口中鍵入“arp -a”或“arp -g”可以查看ARP緩存中的內容;鍵入“arp -d IPaddress”表示刪除指定的IP地址項(IPaddress表示IP地址)。arp命令的其他用法可以鍵入“arp /?”查看到.(備注:ARP 是解決同一個(gè)局域網(wǎng)上的主機或路由器的 IP 地址和硬件地址的映射問(wèn)題。如果所要找的主機和源主機不在同一個(gè)局域網(wǎng)上,那么就要通過(guò) ARP 找到一個(gè)位于本局域網(wǎng)上的某個(gè)路由器的硬件地址,然后把分組發(fā)送給這個(gè)路由器,讓這個(gè)路由器把分組轉發(fā)給下一個(gè)網(wǎng)絡(luò )。剩下的工作就由下一個(gè)網(wǎng)絡(luò )來(lái)做。)
(十)應該注意的問(wèn)題
?。?)從IP地址到硬件地址的解析是自動(dòng)進(jìn)行的,主機的用戶(hù)對這種地址解析過(guò)程是不知道的。
?。?)只要主機或路由器要和本網(wǎng)絡(luò )上的另一個(gè)已知 IP 地址的主機或路由器進(jìn)行通信,ARP 協(xié)議就會(huì )自動(dòng)地將該 IP 地址解析為鏈路層所需要的硬件地址
(十一)為什么我們不直接使用硬件地址進(jìn)行通信?
?。?)由于全世界存在著(zhù)各式各樣的網(wǎng)絡(luò ),它們使用不同的硬件地址。要使這些異構網(wǎng)絡(luò )能夠互相通信就必須進(jìn)行非常復雜的硬件地址轉換工作,因此幾乎是不可能的事。
?。?)連接到因特網(wǎng)的主機都擁有統一的 IP 地址,它們之間的通信就像連接在同一個(gè)網(wǎng)絡(luò )上那樣簡(jiǎn)單方便,因為調用 ARP 來(lái)尋找某個(gè)路由器或主機的硬件地址都是由計算機軟件自動(dòng)進(jìn)行的,對用戶(hù)來(lái)說(shuō)是看不見(jiàn)這種調用過(guò)程的
(十二)IP數據報的格式
?。?)一個(gè) IP 數據報由首部和數據兩部分組成。
?。?)首部的前一部分是固定長(cháng)度,共 20 字節,是所有 IP 數據報必須具有的。
?。?)在首部的固定部分的后面是一些可選字段,其長(cháng)度是可變的。
(十三)IP數據報的詳細解釋?zhuān)?/strong>
(1)版本——占 4 bit,指IP協(xié)議的版本,目前的 IP 協(xié)議版本號為 4 (即 IPv4)。
(2)首部長(cháng)度——占 4 bit,可表示的最大數值,是 15 個(gè)單位(一個(gè)單位為 4 字節)。因此 IP 的首部長(cháng)度的最大值是60字節
(3)服務(wù)類(lèi)型——占 8 bit,用來(lái)獲得更好的服務(wù)。這個(gè)字段以前一直沒(méi)有被人們使用
(4)總長(cháng)度——占 16 bit,指首部和數據之和的長(cháng)度,單位為字節,因此數據報的最大長(cháng)度為 65535 字節??傞L(cháng)度必須不超過(guò)最大傳送單元 MTU。
(5)標識(identification) 占 16 bit,它是一個(gè)計數器,用來(lái)產(chǎn)生數據報的標識。
(6)片偏移(12 bit)指出:較長(cháng)的分組在分片后,某片在原分組中的相對位置。片偏移以 8 個(gè)字節為偏移單位。(舉例:偏移 = 1400/8 = 175)
(7)生存時(shí)間(8 bit)記為 TTL (Time To Live)數據報在網(wǎng)絡(luò )中的壽命,其單位為秒。當TTL為0時(shí),就會(huì )丟棄分組。
(8)協(xié)議(8 bit)字段指出此數據報攜帶的數據使用何種協(xié)議,以便目的主機的 IP 層將數據部分上交給哪個(gè)處理過(guò)程(將數據部分交給哪一個(gè)進(jìn)程。)
(9)首部檢驗和(16 bit)字段只檢驗數據報的首部不包括數據部分。這里不采用 CRC 檢驗碼而采用簡(jiǎn)單的計算方法。(之所以是這樣:IP數據只作首部校驗,它是盡力傳遞,只完成本層的功能即可,保證頭部正確,即源地址和目的地址相同即可。)
(10)源地址和目的地址都各占 4 字節
(11)標志—3位。標志數據包是否可拆分以及是否拆分后的數據包的最后一部分等信息;
(十四)IP 數據報首部的可變部分
?。?)IP 首部的可變部分就是一個(gè)選項字段,用來(lái)支持排錯、測量以及安全等措施,內容很豐富。
?。?)選項字段的長(cháng)度可變,從 1 個(gè)字節到 40 個(gè)字節不等,取決于所選擇的項目。
?。?)增加首部的可變部分是為了增加 IP 數據報的功能,但這同時(shí)也使得 IP 數據報的首部長(cháng)度成為可變的。這就增加了每一個(gè)路由器處理數據報的開(kāi)銷(xiāo)。(備注:我記得在前面有這么一句話(huà):兩個(gè)路由器的IP地址并不出現在IP數據報的首部中,它只是一個(gè)導引作用,路由的作用,而我們IP數據包的首部中有源地址和目的地址是必須的。)
?。?)實(shí)際上這些選項很少被使用。
(十五)IP 層轉發(fā)分組的流程
路由器和結點(diǎn)交換機有些區別
?。?)路由器是用來(lái)連接不同的網(wǎng)絡(luò ),而結點(diǎn)交換機只是在一個(gè)特定的網(wǎng)絡(luò )中工作
?。?)路由器是專(zhuān)門(mén)用來(lái)轉發(fā)分組的,而結點(diǎn)交換機還可接上許多個(gè)主機
?。?)路由器使用統一的 IP 協(xié)議,而結點(diǎn)交換機使用所在廣域網(wǎng)的特定協(xié)議
?。?)路由器根據目的網(wǎng)絡(luò )地址找出下一個(gè)路由器,而結點(diǎn)交換機則根據目的站所接入的交換機號找出下一跳(即下一個(gè)結點(diǎn)交換機)(備注:在路由表中,對每一條路由,最主要的是目的網(wǎng)絡(luò )地址,下一跳地址)
(十六)特定主機路由
?。?)這種路由是為特定的目的主機指明一個(gè)路由
?。?)采用特定主機路由可使網(wǎng)絡(luò )管理人員能更方便地控制網(wǎng)絡(luò )和測試網(wǎng)絡(luò ),同時(shí)也可在需要考慮某種安全問(wèn)題時(shí)采用這種特定主機路由(特定主機路由顧名思義在特定情況下使用,一般不用,因為它比較占用路由器的資源)
(十七)分組轉換算法
(1) 從數據報的首部提取目的站的 IP 地址 D, 得出目的網(wǎng)絡(luò )地址為 N。
(2) 若網(wǎng)絡(luò ) N 與此路由器直接相連,則直接將數據報交付給目的站 D;否則是間接交付,執行(3)
(3) 若路由表中有目的地址為 D 的特定主機路由,則將數據報傳送給路由表中所指明的下一跳路由器;否則,執行(4)
(4) 若路由表中有到達網(wǎng)絡(luò ) N 的路由,則將數據報傳送給路由表指明的下一跳路由器;否則,執行(5)
(5) 若路由表中有一個(gè)默認路由,則將數據報傳送給路由表中所指明的默認路由器;否則,執行(6)
(6) 報告轉發(fā)分組出錯
(十八)我要強調的是
?。?)IP數據報的首部中沒(méi)有地方可以用來(lái)指明“下一跳路由器的 IP 地址”
?。?)當路由器收到待轉發(fā)的數據報,不是將下一跳路由器的 IP 地址填入IP數據報,而是送交下層的網(wǎng)絡(luò )接口軟件
?。?)網(wǎng)絡(luò )接口軟件使用 ARP 負責將下一跳路由器的 IP 地址轉換成硬件地址,并將此硬件地址放在鏈路層的 MAC 幀的首部,然后根據這個(gè)硬件地址找到下一跳路由器
四、劃分子網(wǎng)和構造超網(wǎng)
(一)劃分子網(wǎng)。從兩級 IP 地址到三級 IP 地址
在A(yíng)RPANET 的早期,IP 地址的設計確實(shí)不夠合理
?。?)IP 地址空間的利用率有時(shí)很低
?。?)給每一個(gè)物理網(wǎng)絡(luò )分配一個(gè)網(wǎng)絡(luò )號會(huì )使路由表變得太大因而使網(wǎng)絡(luò )性能變壞
?。?)兩級的 IP 地址不夠靈活
(二)三級的IP地址
?。?)從 1985 年起在 IP 地址中又增加了一個(gè)“子網(wǎng)號字段”,使兩級的 IP 地址變成為三級的 IP 地址
?。?)這種做法叫作劃分子網(wǎng)(subnetting) 。劃分子網(wǎng)已成為因特網(wǎng)的正式標準協(xié)議
(四)劃分子網(wǎng)的基本思路 (三級的)
?。?)劃分子網(wǎng)純屬一個(gè)單位內部的事情。單位對外仍然表現為沒(méi)有劃分子網(wǎng)的網(wǎng)絡(luò )
?。?)從主機號借用若干個(gè)比特作為子網(wǎng)號 subnet-id,而主機號 host-id 也就相應減少了若干個(gè)比特
IP地址 = {<網(wǎng)絡(luò )號>, <子網(wǎng)號>, <主機號>}
?。?)凡是從其他網(wǎng)絡(luò )發(fā)送給本單位某個(gè)主機的 IP 數據報,仍然是根據 IP 數據報的目的網(wǎng)絡(luò )號 net-id,先找到連接在本單位網(wǎng)絡(luò )上的路由器
?。?)然后此路由器在收到 IP 數據報后,再按目的網(wǎng)絡(luò )號 net-id 和子網(wǎng)號 subnet-id 找到目的子網(wǎng)
?。?)最后就將 IP 數據報直接交付給目的主機
(五)劃分子網(wǎng)后變成了三級結構
?。?)當沒(méi)有劃分子網(wǎng)時(shí),IP 地址是兩級結構,地址的網(wǎng)絡(luò )號字段也就是 IP 地址的“因特網(wǎng)部分”,而主機號字段是 IP 地址的“本地部分”
?。?)劃分子網(wǎng)后 IP 地址就變成了三級結構。劃分子網(wǎng)只是將 IP 地址的本地部分進(jìn)行再劃分,而不改變 IP 地址的因特網(wǎng)部分
(六)子網(wǎng)掩碼(wildcard是通配符的意思,有些人瞎翻譯,非得叫什么掩碼,叫的這么神秘和高深而不能從字面意思來(lái)理解它)
?。?)從一個(gè) I P數據報的首部并無(wú)法判斷源主機或目的主機所連接的網(wǎng)絡(luò )是否進(jìn)行了子網(wǎng)的劃分
?。?)使用子網(wǎng)掩碼(subnet mask)可以找出 IP 地址中的子網(wǎng)部分
?。?)默認的子網(wǎng)掩碼:
A類(lèi):255.0.0.0;B類(lèi):255.255.0.0 ;C類(lèi):255.255.255.0
掩碼的作用:
子網(wǎng)掩碼是用來(lái)判斷任意兩臺計算機的IP地址是否屬于同一子網(wǎng)絡(luò )的根據。就是兩臺計算機各自的IP地址與子網(wǎng)掩碼進(jìn)行與操作(AND)運算后,如果得出的結果是相同的,則說(shuō)明這兩臺計算機是處于同一個(gè)子網(wǎng)絡(luò )上的,可以進(jìn)行直接的通訊。
(七)使用子網(wǎng)掩碼的分組轉發(fā)過(guò)程。
?。?)在不劃分子網(wǎng)的兩級 IP 地址下,從 IP 地址得出網(wǎng)絡(luò )地址是個(gè)很簡(jiǎn)單的事
?。?)但在劃分子網(wǎng)的情況下,從IP地址卻不能惟一地得出網(wǎng)絡(luò )地址來(lái),這是因為網(wǎng)絡(luò )地址取決于那個(gè)網(wǎng)絡(luò )所采用的子網(wǎng)掩碼,但數據報的首部并沒(méi)有提供子網(wǎng)掩碼的信息
?。?)因此分組轉發(fā)的算法也必須做相應的改動(dòng)。
(八)在劃分子網(wǎng)的情況下路由器轉發(fā)分組的算法
(1) 從收到的分組的首部提取目的 IP 地址 D
(2) 先用各網(wǎng)絡(luò )的子網(wǎng)掩碼和 D 逐比特相“與”,看是否和相應的網(wǎng)絡(luò )地址 匹配。若匹配,則將分組直接交付。否則就是間接交付,執行(3)
(3) 若路由表中有目的地址為 D 的特定主機路由,則將分組傳送給指明的下 一跳路由器;否則,執行(4)
(4) 對路由表中的每一行的子網(wǎng)掩碼和 D 逐比特相“與” 若其結果與該行的 目的網(wǎng)絡(luò )地址匹配,則將分組傳送給該行指明的下一跳路由器;否則, 執行(5)
(5) 若路由表中有一個(gè)默認路由,則將分組傳送給路由表中所指明的默認路由器;否則,執行(6)
(6) 報告轉發(fā)分組出錯
五、無(wú)分類(lèi)編址 CIDR
(一)劃分子網(wǎng)在一定程度上緩解了因特網(wǎng)在發(fā)展中遇到的困難。然而在 1992 年因特網(wǎng)仍然面臨三個(gè)必須盡早解決的問(wèn)題,這就是:
?。?)B 類(lèi)地址在 1992 年已分配了近一半,眼看就要在 1994 年 3 月全部分配完畢
?。?)因特網(wǎng)主干網(wǎng)上的路由表中的項目數急劇增長(cháng)(從幾千個(gè)增長(cháng)到幾萬(wàn)個(gè))
?。?)整個(gè)IPv4 的地址空間最終將全部耗盡
(二)IP 編址問(wèn)題的演進(jìn)
?。?)1987年,RFC 1009 就指明了在一個(gè)劃分子網(wǎng)的網(wǎng)絡(luò )中可同時(shí)使用幾個(gè)不同的子網(wǎng)掩碼。使用變長(cháng)子網(wǎng)掩碼 VLSM (Variable Length Subnet Mask)可進(jìn)一步提高 IP 地址資源的利用率
?。?)在 VLSM 的基礎上又進(jìn)一步研究出無(wú)分類(lèi)編址方法,它的正式名字是無(wú)分類(lèi)域間路由選擇 CIDR (Classless Inter-Domain Routing)
(三)無(wú)分類(lèi)的兩級編址
?。?)無(wú)分類(lèi)的兩級編址的記法是:
IP地址= {<網(wǎng)絡(luò )前綴>, <主機號>}
?。?)CIDR還使用“斜線(xiàn)記法”(slash notation),它又稱(chēng)為CIDR記法,即在IP地址后面加上一個(gè)斜線(xiàn)“/”,然后寫(xiě)上網(wǎng)絡(luò )前綴所占的比特數(這個(gè)數值對應于三級編址中子網(wǎng)掩碼中比特 1 的個(gè)數)。
?。?)CIDR將網(wǎng)絡(luò )前綴都相同的連續的 IP 地址組成“CIDR地址塊”。
(四)CIDR 地址塊
?。?)128.14.32.0/20 表示的地址塊共有 212 個(gè)地址(因為斜線(xiàn)后面的 20 是網(wǎng)絡(luò )前綴的比特數,所以主機號的比特數是 12)
?。?)這個(gè)地址塊的起始地址是 128.14.32.0
?。?)在不需要指出地址塊的起始地址時(shí),也可將這樣的地址塊簡(jiǎn)稱(chēng)為“/20 地址塊”。
?。?)128.14.32.0/20 地址塊的最小地址:128.14.32.0
?。?)128.14.32.0/20 地址塊的最大地址:128.14.32.255
?。?)全 0 和全 1 的主機號地址一般不使用
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請
點(diǎn)擊舉報。