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