從問題中了解網路層
- 問題(Problem)
- 參考文獻
問題(Problem)
1.存在多種異構網路對不同網路之間的通信會造成一些麻煩,但為什么世界上還存在多種異構網路?
解答:世界上之所以存在著多種異構網路,就是因為僅用一種體系結構的網路根本無法滿足所有用戶的所有需求,
OSl假定全世界所有的人都在網路層使用X.25協議,并希望使用X.75協議將全球所有的X.25網路互連起來,從而實作全球任意計算機之間的通信,然而事實證明,大家并不愿意這樣做,結果OSI失敗了,這里的原因就是X.25網路并不能滿足所有用戶的需求,大量的用戶還需要使用其他型別的網路,
在計算機網路發展初期,許多廠家都生產出具有自己獨特體系結構的計算機網路,這些計算機網路就像一個個孤島一樣,它們是不能互相通信的,如果某公司的雇員需要同時接入三個不同廠商的計算機網路,那么他就需要用三臺終端(即觀看三個不同的螢屏顯示)分別連接到不同的計算機網路,這顯然是很不方便的,
在客觀上存在多種異構計算機網路的現實情況下,普遍服務(universal service)的概念被提出來了,一個計算機通信系統若能夠提供普遍服務,就表明該系統中的任何一對計算機都能夠很方便地進行通信,像全世界的電話網就是能夠提供普遍服務的一個成功例子,
在世界上存在大量異構計算機網路(它們的網路硬體和物理地址的編址方法都不一樣)的現實情況下,要獲得普遍服務,的確是相當困難的事,但IP協議成功地解決了這個難題,不管你使用的具體網路采用什么樣的硬體結構,但只要你的網路使用IP協議并給連接在網路上的主機分配了合法的IP地址,那么連接到這種虛擬的IP互連網上的任何一對計算機都可以很方便地進行通信,
2.“IP網關”和“IP路由器”是否為同義語?
解答:當初發明TCP/IP的研究人員使用IP Gateway作為網際互連的設備,我國的網路作業者曾使用過多種譯名,如網間連接器、網閘、信關、聯網機等,但最后由全國自然科學名詞審定委員會(這個委員會現在改名為“全國科學技術名詞審定委員會”)在《計算機科學技術名詞》中公布的Gateway標準譯名為“網關”,
但是,在20世紀90年代初期美國一家廠商認為,將IP Gateway 改名為IP Router似乎更加有利于設備的銷售,后來其他廠家也跟著改變產品的名稱,在《計算機科學技術名詞》中Router的標準譯名是“路由器”,現在,大家就都基本上不再使用網關這一名詞了,
我們可以認為“IP網關”和“IP路由器”是同義語,
3.IP的英文名字是Internet Protocol,其標準一名是“網際協議”,那么“IP協議”是否重復使用了“協議”,即“IP協議”變成了“網際協議協議”呢?
解答:我們知道,IP中的“P”就代表“協議”,因此僅僅說IP就已經是很清楚的了,但為了強調IP是一個協議,所以在IP的后面還是加上了“協議”二字,如果完全用漢字來表示“IP協議”,那么當然只能用一個“協議”,即“網際協議”,
和這個問題類似的還有名詞PC (Personal Computer),即個人計算機,但有時為了強調PC是一個計算機,就常常在PC的后面加上一個“機”,變成了“PC機”,這當然不是表示“個人計算機機”,而仍然是“個人計算機”,
在英文的教科書或文獻中,有時會遇到current flow這樣的寫法,我們知道,current是“電流”,而flow是“流”,顯然,這里也有些重復,我們不應當把current flow譯為“電流流”,
4.在文獻中有時會見到對等連網(peer-to-peer networking),這是什么意思?
解答:這有兩重意思,
首先,這表示在互聯網中,任何兩個計算機都可以平等地進行通信,互聯網對通信雙方計算機的大小是不關心的,連接在互聯網上的,可能是一個很小的PC,而通信的對方可能是一個很大的巨型機,這和早期的網路很不一樣,早期的網路是以一個很大的主機為中心,和這個主機通信的是外圍的許多功能上相對較弱的小終端,但后來計算機網路發展到以網路為中心,所有連接到網路(或互聯網)上的計算機都是平等的,“對等”也有“對稱”的意思,但這并不是說,通信的兩個計算機的大小規模必須是相似的,而是說,各種計算機都可以平等地連接到互聯網上,
其次,對等連網有時還用來說明計算機的通信方式,計算機網路原來都是采用“客戶-服務器”的通信方式,客戶是通信服務的請求方,而服務器是通信服務的提供方,這兩方在功能上顯然是不對等的,客戶行程比較簡單,而服務器行程就比較復雜,運行服務器程式的機器也比較昂貴,但現在新的通信方式出現了,即相互通信的主機,可以互為客戶方或服務器方,因此產生了對等連網這樣的名詞,
5.在互聯網中,能否使用一個很大的交換機(switch)來代替全部的路由器?
解答:不行,
交換機和路由器的功能是很不一樣的,
交換機可在一個單個的網路中和若干個計算機相連,并且可以將一個計算機發送過來的幀轉發給另一個計算機,從這一點上看,交換機具有集線器的轉發幀的功能,
但交換機比集線器的功能強很多,集線器在同一時間只允許一個計算機和其他計算機進行通信,但交換機允許多個計算機同時進行通信,
路由器連接兩個或幾個網路,路由器可在網路之間轉發分組(即IP資料報),特別是,這些互連的網路可以是異構的,
因此,如果是許多相同型別的網路互連在一起,那么用一個很大的交換機(如果能夠找得到)代替原來的一些路由器是可以的,但目前的互聯網是非常多的異構網路互連起來的,我們不可能找到一種交換機可以代替互聯網中的全部路由器,因此,必須使用許多的路由器來進行網路互連,
6.為什么IP地址又稱為“虛擬地址”?
解答:這是因為IP地址是靠軟體來維持的而個是靠硬體地址,我們好像構成了一個很大的使用統一IP 協議的互連網路,但這個IP網路是虛擬的網路系統,因為它的通信系統,從層次上來看,是建筑在網路層上的,是抽象的通信系統,雖然許多大小不同的物理網路是相互連接起來了,但這些網路都有各自不同的物理層,例如,有的是無線網路,有的是光纖網路,并且資料的傳送速率也可能相差很大,這些網路的資料鏈路層協議也是不相同的,如果我們從網路層來看這個龐大的異構網路,那么就好像是構成了一個很大的、統一的IP網路,
這種虛擬網路的地址也是虛擬的,因此IP地址又稱為“虛擬地址",實在的地址就是各網路和各主機的物理地址,
可以打一個比方,例如,我國所有的大學都有具體的、實在的門牌號碼,我們通過郵政局給各大學寄信就要使用這樣的具體地址,但是,假定教育部為了更加方便地管理這些大學,可以在一張圖上把所有大學都按照一定的規律編上號碼,而在這些具有編號的圖上大學就構成了一個虛擬的全國大學網路,當教育部發送某個檔案時,就可以按照指定的號碼來發送給一些相關的大學,這就相當于我們在IP網路中按IP地址進行通信,但是檔案的傳送還是要按照各大學的具體門牌號碼(相當于物理地址)由郵遞員來交付,
7.有的文獻上使用“虛擬分組”(virtual packet)這一名詞,虛擬分組是什么意思?
解答:虛擬分組就是IP資料報,
因為互聯網是由大量異構的物理網路互連而成的,這些物理網路的幀格式是各式各樣的,它們的地址也可能是互不兼容的,路由器無法將一種格式的幀轉發到另一種網路,因為另一種網路無法識別與自己格式不同的幀的地址,路由器也不可能對不同的地址格式進行轉換,
為了解決這一問題,IP協議定義了IP資料報的格式,所有連接在互聯網中的路由器都能識別IP資料報的IP地址,因此能夠對IP資料報進行轉發(在進行轉發時當然要呼叫ARP協議以便獲得相應的硬體地址),我們知道,IP資料報是作為物理網路的幀的資料部分,各個物理網路在轉發幀時,是根據幀首部中的硬體地址而不看(實際上也看不見)幀的資料部分,
由于所有的物理網路都看不見所傳送的幀里面的IP資料報,這樣就使得IP資料報得到“虛擬分組”這樣的名稱,
8.如圖所示,五個網路用四個路由器(每一個路由器有兩個埠)互連起來,能否改變這種連接方法,使用一個具有五個埠的路由器將這五個網路互連起來?
解答:一般說來,不采用這樣的連接方法(用一個路由器連接五個網路),這里有兩個原因:
(1)路由器中的CPU和存盤器是用來對通過該路由器的每一個IP資料報進行處理的,假若一個路由器和許多個網路相連接,那么這個路由器的處理器很可能沒有足夠的能力來處理通過它的所有IP資料報,
(2)冗余度可以提高互聯網的可靠性,路由器和網路都有可能出現故障,如果將所有的路由選擇功能集中在一個路由器上,則一旦該路由器出故障,整個互連網就無法作業,
因此,在規劃互聯網時,互聯網的具體拓撲結構取決于物理網路的帶寬、期望的通信量、對可靠性的需求,以及路由器硬體的價格,
9.當運行PING 127.0.0.1時,這個IP資料報將發送給誰?
解答:127.0.0.1是環回地址,主機將測驗用的IP資料報發送給本主機的ICMP(而不是發送到互聯網上)以便進行環回測驗,
10.網路前綴是指網路號欄位(net-id)中前面的幾個類別位,還是指整個的網路號欄位?
解答:網路前綴是指整個的網路號欄位,即包括了最前面的幾個類別位在內,網路前綴常常就簡稱為前綴,請注意,網路前綴不能把前面的類別位除外,
例如一個B類地址,10100000 00000000 00000000 00010000,其類別位就是最前面的兩位:10,而網路前綴就是前16位:10100000 00000000,如下圖所示,
請注意,不能認為網路前綴是100000 00000000,也就是說,不能把最前面的兩位“10”(類別位)去掉,類別位是包括在net-id之內的,
11.有的書(如[COME06])將IP地址分為前綴和后綴兩大部分,它們和網路號欄位及主機號欄位有什么關系?
解答:前綴(prefix)就是網路號欄位net-id,而后綴(suffix)就是主機號欄位host-id,如下圖是以C類地址為例來說明前綴和后綴是什么的,
如果網路劃分了子網,那么前綴還應包括子網號欄位,
12.IP地址中的前綴和后綴最大的不同是什么?
解答:不同點有:
(1)前綴是由互聯網管理機構進行分配的,而后綴是由分配到前綴的單位自行分配的
(2)IP資料報的尋址是根據前綴來找目的網路,找到目的網路后再根據后綴找到目的主機,
13.IP資料報中資料部分的長度是可變的(即IP資料報不是定長的),這樣做有什么好處?
解答:這樣做的好處是可以滿足各種應用的需要,有時在鍵盤上鍵入的一個字符就可以構成一個很短的IP資料報,但有的應用程式需要將很長的檔案構成一個大的IP資料報(最長為64KB,包括首部在內),當然,大多數IP資料報的資料部分長度都遠大于首部長度,這樣做的好處是可以提高傳輸效率(首部開銷所占的比重就較小),
14.IP地址中各種類別的地址所擁有的地址數目的比例是怎樣的?
解答:IPv4的各種類別的地址所擁有的地址數目的比例如圖所示,
A類地址占IP地址總數的一半,B類地址數是A類地址數的一半,即占IP地址總數的1/4,C類地址數是B類地址數的一半,即占IP地址總數的1/8,而D類和E類地址數又是C類地址數的一半,即各占IP地址總數的1/16,
需要注意的是:盡管A類地址的總數等于4倍的C類地址數,但分配IP地址是分配地址前綴而不是分配整個32位的IP地址,因此C類地址可供分配的地址前綴數目要比A類地址可供分配的地址前綴數目多一萬多倍 ( 2 24 ? 3 / 2 8 ? 1 = 16384 ) (2^{24-3}/2^{8-1}=16384) (224?3/28?1=16384),
15.在IP地址中,為什么使用最前面的一位或幾位來表示地址的類別?
解答:知道了IP地址的類別,就可以很快地將IP地址的前綴和后綴區分開來,這在路由器尋找下一跳地址時是必須做的一件事,
但是怎樣才能盡快地讓計算機完成這一動作呢?我們知道,計算機進行位操作(如左移、右移、布爾運算等)要比進行整數運算快得多,因此,IP地址的類別劃分就用地址中最前面的一位或幾位來標志地址的類別,
16.全1的IP地址是否是向整個互聯網進行廣播的一種地址?
解答:不是,
設想一下,如果是向整個互聯網進行廣播的地址,那么一定會在互聯網上產生極大的通信量,這樣會嚴重地影響互聯網的正常作業,甚至還會使互聯網癱瘓,
因此,在IP地址中的全1地址表示僅在本網路上(就是發送這個IP資料報的主機所連接的局域網)進行廣播,這種廣播叫做受限的廣播(limited broadcast),
如果net-id是具體的網路號,而host-id是全1,就叫做定向廣播(directed broadcast),因為這是對某一個具體的網路(即net-id指明的網路)上的所有主機進行廣播的一種地址,
17.IP協議有分片的功能,但廣域網中的分組則不必分片,這是為什么?
解答:IP資料報可能要經過許多個網路,而源主機事先并不知道資料報后面要經過的這些網路所能通過的分組的最大長度是多少,等到IP資料報轉發到某個網路時,可能才發現資料報太長了,因此在這時就必須進行分片,
但廣域網能夠通過的分組的最大長度是該廣域網中所有主機都事先知道的,源主機不可能發送網路不支持的過長分組,因此廣域網就沒有必要將已經發送出的分組再進行分片,
18.路由表中只給出到目的網路的下一跳路由器的IP地址,然后在下一個路由器的路由表中再給出再下一跳路由器的IP地址,最后才能到達目的網路進行直接交付,采用這樣的方法有什么好處?
解答:這樣做的最大好處是使得路由選擇成為動態的,十分靈活,當IP資料報傳送到半途時,若網路的情況發生了變化(如網路拓撲變化或出現了擁塞),由于各路由器中的路由表是經常動態更新的,因此中途的路由器就會適應網路的這種變化,而改變其下一跳路由,從而實作了動態路由選擇,
19.鏈路層廣播和IP廣播有何區別?
解答:鏈路層廣播是用資料鏈路層協議(在第二層),在一個以太網上實作的對該局域網上所有主機的MAC幀進行廣播,
IP廣播則是用IP協議(在第三層),通過互聯網實作的對一個網路(即目的網路)上所有主機的IP資料報廣播,
20.主機在接收一個廣播幀或多播幀時,其CPU所要做的事情有何區別?
解答:在接收廣播幀時,主機通過其配接器(即網路介面卡NIC)接收每一個廣播幀,然后將其傳遞給作業系統,CPU執行協議軟體,并界定是否接受和處理該幀,
在接收多播幀時,CPU要對配接器進行配置,而配接器根據特定的多播地址表來接收幀,凡與此多播地址表不匹配的幀都將被NIC丟棄,因此在多播的情況下,是配接器NIC而不是CPU決定是否接收一個幀,
21.有的路由器在和廣域網相連時,在該路由器的廣域網介面處并沒有硬體地址,這怎樣解釋?
解答:每一個連接到廣域網的路由器顯然必須要有一個硬體地址,否則就無法進行通信,但是具體的細節可能會有相當大的差別,例如,我們的電話機和墻上的電話線路RJ-11插孔一連接就可以打電話,這表明電話機一定有一個唯一的電話號碼(即硬體地址),但是,這個電話號碼并沒有存盤在電話機的某個地方,有些廣域網也采用類似這樣的技術,也就是說,每一個連接都有一個唯一的硬體地址,但這個地址并不一定存盤在路由器的介面上,
22.IP地址和電話號碼相比,有何異同之處?
解答:下面分別介紹異同之處,
相同之處:
(1)唯一性,
每個電話機的電話號碼(指包括國家碼以及區號在內的號碼)在電信網上是唯一的,每個主機的IP地址在互聯網上也是唯一的,
(2)分等級的結構,
電話號碼:[國家號碼][區號][局號][電話機號][分機號],IP地址:[網路號][主機號],或[網路號][子網號][主機號],
不同之處:
各國的電話號碼都是自主設定的,因此號碼的位數可以各不相同,請注意,這里的“位”是十進制位,
但IP地址則一律是32位的固定長度(這是IPv4的地址長度,若使用IPv6,則地址長度為128位),請注意,這里的“位”是二進制位,
因此電話號碼空間是不受限的,當一個城市的電話號碼空間不夠用時,就可以增加電話號碼的位數(例如6位不夠用了就升級為7位,以后又不夠用了就再升級為8位),但IP地址空間是受限的,全部的IP地址用盡后就必須將IPv4升級到IPv6,
電話號碼中的“國家號碼”“區號”“局號”都能直接反映出具體的地理位置(或范圍),
但從IP地址的“網路號”卻不能直接反映出具體的地理位置(或范圍),IP地址的管理機構在分配IP地址時并不是先將整個的地址空間按國家來分配,而是按網路來分配(不管這個網路在哪個國家),
但是有的IP地址可以反映出一定的地理范圍,例如,頂級域名采用國家域名的,如頂級域名是.cn的應當是在中國,但在中國的什么地方則不知道;而二級域名若采用省級域名,如采用.js.cn的應當是在中國的江蘇省,但在江蘇省的什么地方也不知道,然而在采用通用頂級域名時,如采用.com或.net或.org時,則無法知道該主機在哪一個國家或地區,
23.“盡最大努力交付”(best effort delivery)都有哪些含義?解答:
(1)不保證源主機發送出來的IP資料報一定無差錯地交付到目的主機,
(2)不保證源主機發送出來的IP資料報都在某一規定的時間內交付到目的主機,
(3)不保證源主機發送出來的IP資料報一定按發送時的順序交付到目的主機,
(4)不保證源主機發送出來的IP資料報不會重復交付到目的主機,
(5)不故意丟棄IP資料報,丟棄IP資料報的情況是:路由器檢測出首部檢驗和有錯誤;或由于網路中通信量過大,路由器或目的主機中的快取已無空閑空間(或接近用盡),
但是要注意,IP 資料報的首部中有一個“首部檢驗和”,當它檢驗出IP 資料報的首部出現了差錯時,就將該資料報丟棄,
因此,凡交付目的主機的IP資料報都是IP資料報的首部沒有出現差錯的或沒有檢測出來有差錯的,這就是說,傳輸程序中出現差錯的IP資料報都被丟棄了,例如,源主機一連發送了10000個IP資料報,結果有9999個IP資料報都出現了差錯,因而都被丟棄了,這樣,只有一個不出錯的IP資料報最后交付目的主機,這也完全符合“盡最大努力交付”的原則,甚至當所發送的10000個IP資料報都被丟棄了,我們也不能說這不是“盡最大努力交付”,只要路由器不是故意地丟棄IP資料報就行了,
現在互聯網上絕大多數的通信量都是屬于“盡最大努力交付”的,如果資料必須可靠地交付目的地,那么使用IP協議的高層軟體就必須負責解決這一問題(例如,使用可靠交付的TCP協議),
24.假定在一個局域網中計算機A發送ARP請求分組,希望找出計算機B的硬體地址,這時局域網上的所有計算機都能收到這個廣播發送的 ARP 請求分組,試問這時由哪一個計算機使用ARP回應分組把計算機B的硬體地址告訴計算機A?
解答:這要區分兩種情況,
(1)如果計算機B和計算機A都連接在同一個局域網上,那么就是計算機B發送ARP回應分組,
(1)如果計算機B和計算機A不是連接在同一個局域網上,那么就必須由一個與A連接在同一個局域網上的路由器來轉發ARP請求分組,這時,該路由器向計算機A發送ARP回答分組,給出該路由器的硬體地址,
25.有人把ARP列入網路介面層,即認為ARP不在IP層,這樣對嗎?
解答:這樣認為也是可以的,本來ARP就是位于IP層和資料鏈路層之間的,《計算機網路》是將ARP畫在IP層的下面,我們知道IP層和以上各層都使用IP地址,而資料鏈路層則使用硬體地址,ARP進行這兩個地址的轉換:IP地址→ARP→硬體地址,
ARP報文中既有IP地址又有硬體地址,因此將ARP列入網路介面層也是可以的,
同理,RARP也可以這樣看待,因為:硬體地址→RARP→IP地址,
26.一個主機要向另一個主機發送IP資料報,是否使用ARP就可以得到該目的主機的硬體地址,然后直接用這個硬體地址將IP資料報發送給目的主機?
解答:有時是這樣,但有時也不是這樣,
ARP只能對連接在同一個網路上的主機或路由器進行地址決議,
由于A和B連接在同一個網路上,因此主機A使用ARP協議就可得到B的硬體地址,然后用B的硬體地址,將IP資料報組裝成幀,發送給B,
但當目的主機是F時,情況就不同了,A無法得到F的硬體地址,A只能先將IP資料報發送給本網路上的一個路由器(路由器 R 1 R_1 R1?),因此A發送IP資料報給F時,在地址決議方面要經過以下三個步驟:
(1)A先通過ARP決議出路由器 R 1 R_1 R1?的硬體地址,將IP資料報發送到 R 1 R_1 R1?,
(2) R 1 R_1 R1?再通過ARP決議出 R 2 R_2 R2?的硬體地址,將IP資料報轉發到 R 2 R_2 R2?,
(3) R 2 R_2 R2?再通過ARP決議出F的硬體地址,將IP資料報交付F,
因此,A發送IP資料報給F要經過三次ARP地址決議,A只知道F的IP地址,但并不知道F的硬體地址,
27.在互聯網中最常見的分組長度大約是多少個位元組?
解答:以太網是和互聯網相連的最常用的局域網,而以太網的資料欄位最多只允許裝入1500位元組,因此在互聯網上傳送的分組長度一般都不會超過1500位元組,
由于現在互聯網上最常用的應用程式是電子郵件和萬維網,這兩個應用程式都使用TCP進行傳輸,因此經常要用到TCP的確認報文段,這種TCP確認報文段沒有資料,只有20位元組的首部,再加上IP資料報的20位元組首部,使得IP資料報(即分組)的長度只有40位元組,
根據美國MCI主干網上傳送的分組的統計資料,大約有40%的分組為40位元組長(即它們攜帶的資料都是TCP的確認報文段);大約有15%的分組為576位元組左右的長度(即IP資料報的默認長度);大約有10%的分組為1500位元組長;超過1500位元組的分組數是很少的,
28.IP資料報的最大長度是多少個位元組?
解答:最大長度是 64 K B ( 1 K = 2 10 ) 64KB(1K=2^{10}) 64KB(1K=210),因為其首部的總長度欄位只有16位長,但實際上最多只能表示65535位元組而不是65536位元組,因為在二進制中的16個1表示十進制的 ( 2 16 ? 1 ) (2^{16} - 1) (216?1),
請注意:這里所說的最大長度是指IP協議給IP資料報長度規定的上限,是不允計超過的,但若IP資料報的長度超過了資料鏈路層的最大傳送單元MTU,或超過了路由器和主機能夠處理的長度限制,那么在傳送這種IP資料報時就必須進行分片,而分片將導致IP資料報的傳輸效率下降,應當盡可能避免,
IP協議規定,所有的主機和路由器必須能夠處理的IP資料報長度不得小于576位元組,這就是說,只要IP資料報的長度不超過576位元組,這樣的IP資料報通過互聯網時就肯定不需要進行分片(資料鏈路層的MTU沒有小于576位元組的,因此不必考慮資料鏈路層是否能夠傳送576位元組長的資料),
當IP資料報的長度超過576位元組但小于65535位元組時,肯定是能夠通過互聯網的,但是否需要進行分片,則取決于:
(1)這個長度是否超過資料鏈路層的MTU值,
(2)這個長度是否超過途經路由器的處理能力,
順便指出,上面提到的576位元組是這樣得到的,考慮要傳送的資料長度是512位元組,加上20位元組的固定IP首部和最多40位元組的可變IP首部,共572位元組,再考慮有4位元組的富裕量,就得出了576位元組,請注意:576位元組是IPv4規定的數值,現在 IPv6已經把這個數值提高到了1280位元組(見RFC 2460),這就是說,只要IP資料報的長度不超過1280位元組,在IPv6網路中傳送時,就肯定不需要進行分片,
29.IP資料報的首部最大長度是多少個位元組?典型的IP資料報首部是多長?
解答:IP資料報首部中有一個首部長度欄位,4位長,可表示的最大十進制數字是15,
因此首部長度的最大值是15個4位元組長的字,即 60位元組,
典型的IP資料報不使用首部中的選項,因此典型的IP資料報首部長度是20位元組,
30.IP 資料報在傳輸的程序中,其首部長度是否會發生變化?
解答:不會,但首部中的某些欄位(如標志、生存時間、首部檢驗和等)的數值一般都要發生變化,
31.當路由器利用IP資料報首部中的“首部檢驗和”欄位檢測出在傳輸程序中出現了差錯時,就簡單地將其丟棄,為什么不發送一個ICMP報文給源主機呢?
解答:IP協議并不要求源主機重傳有差錯的IP資料報,保證無差錯傳輸是由TCP協議完成的,另一方面,首部檢驗和只能檢驗出lP資料報的首部是否出現差錯,但不知道首部中的源地址欄位有沒有出錯,如果源地址出現了差錯,那么將這種IP資料報傳送到錯誤的地址也是沒有任何意義的,
32.RIP 協議的好處是簡單,但缺點是不夠穩定,有的書上介紹“觸發更新”“水平分割”和“毒性逆轉”,能否簡單介紹一下它們的要點?
解答:現將三者的要點簡要介紹如下,
(1)觸發更新
若網路中沒有變化,則按通常的30秒間隔發送更新資訊;若有變化,路由器就立即發送其新的路由表,這個程序叫做觸發更新,
觸發更新可提高穩定性,每一個路由器在收到有變化的更新資訊時就立即發出新的資訊,這比平均的15秒要少得多,雖然觸發更新可大大地改進路由選擇,但它不能解決所有的路由選擇問題,例如,用這種方法不能處理路由器出故障的問題,
(2)分割范圍
分割范圍(split horizons)是提高穩定性的第二種方法(注: split horizon有不少人譯為“水平分割”,實際上這里horizon的意思是“范圍”,因此譯為“分割范圍”較為合適),它在發送路由選擇報文時使用了選擇性,路由器必須區分不同的介面,如果路由器從一個介面已經收到了到某個網路的路由更新資訊,那么到這個同樣網路的路由更新資訊一定不能再通過這個介面回送過去,如果一個介面通過了給某一個路由器更新的資訊,那么這個更新資訊一定不能再發送回去,因為這是那個路由器已經知道了的資訊,因而是不需要的,分割范圍可明顯地提高穩定性,如下圖就能說明問題,
R 1 R_1 R1?發送[Net1,1,-]給 R 2 R_2 R2?,表明“我到Net1的距離是1,直接交付”,
R 2 R_2 R2?從這個RIP報文進來的埠不再發送關于到Net1的資訊,而只從另外的埠發送[Net1,2, R 1 R_1 R1?],表明“我到Net1的距離是2,經過 R 1 R_1 R1?,
當Net1出故障后, R 1 R_1 R1?發送[Net1,16,-]給 R 2 R_2 R2?,表明“我到Net1的距離是16,直接交付”(距離是16就表示不能到達),
R 2 R_2 R2?從另外的埠發送[Net1,16, R 1 R_1 R1?],表明“我到Net1的距離是16,經過 R 1 R_1 R1?,”
這樣就使其他路由器很快都知道Net1出了故障,
(3)毒性逆轉
毒性逆轉(poison reverse)是分割范圍的一種變形,使用這種方法時,路由器收到的資訊用來更新路由表,然后通過所有的介面發送出去,但是,已經從一個介面來的一個路由表專案在通過同樣的介面發送出去時,就要將其度量置為16,
33.IP資料報必須考慮最大傳送單元MTU(Maximum Transfer Unit),這是指哪一層的最大傳送單元?包括不包括首部或尾部等開銷在內?
解答:這是指IP層下面的資料鏈路層的最大傳送單元,也就是下面的MAC幀的資料欄位,不包括MAC幀的首部和尾部的各欄位,因為IP資料報是裝入到MAC幀中的資料欄位,因此資料鏈路層的MTU數值就是IP資料報所容許的最大長度(是總長度,即首部加上資料欄位),
34.如果一個路由器要同時連接在一個以太網和一個ATM 網路上,需要有什么樣的硬體加到路由器上?
解答:需要有兩個配接器,即一個以太網配接器(網卡)和一個ATM配接器(網卡),
35.《計算機網路》中的B類網路145.13.0.0在劃分子網時,所給出的三個子網號是怎樣得出的?
解答:本題假定子網號subnet-id占用8位,可見子網掩碼是255.255.255.0,IP地址中的最后8位就留作主機號,假定我們不使用全0和全1的子網號,那么一共有 2 8 ? 2 = 254 2^8-2=254 28?2=254個子網號可供選擇,教材中的例子是隨意選擇了3,7和21作為三個子網號,于是這三個子網的地址是:
145.13.3.0
145.13.7.0
145.13.21.0
36.“交換(switching)”的準確含義是什么?解答:這個名詞并沒有統一的精確定義,
根據[COME04](Computer Networks and Internets with Internet Applications,4ed,2004)第676頁:
Switching,A general term used to describe the operation of a switch. Because it isassociated with hardware, switching is usually higher speed than routing. Also, switching differsfrom routing because switching uses the hardware address in a frame.
(交換,用來描述交換機的運行的通用名詞,由于交換與硬體相關,因此交換比路由選擇要快些,此外,交換與路由選擇還有一個區別,就是交換使用一個幀中的硬體地址,)
Switch,An electronic device that forms the center of a star topology network. A switchuses the destination address in a frame to determine which computer should receive the frame.
(交換機,形成星形網路中心的一種電子設備,交換機使用一個幀中的目的地址來確定哪一個計算機將接收這個幀,)
英文單詞switch本來是“開關”的意思,當switch最初用在電話系統中時就譯成了“交換機”,而表示動作的switching就譯為“交換”,因此,電話系統使用的交換體制就稱為“電路交換”,
在 Perlman 的[PERLO0]一書中的第531頁也有類似的解釋:
Switch,Anything that moves data.Somehow the term is applied to imply that the device isfast and cheap.Can be a bridge (layer 2 switch) or router (layer 3 switch), or sometimes used forsomething that moves ATM cells.
(交換機,可移動資料的任何東西,不知是什么原因,這個名詞用來暗示這種設備比較快和比較便宜,交換機可以是網橋(第二層交換機)或路由器(第三層交換機),有時也可以是移動ATM信元的ATM交換機,)
可以看出,Perlman對 switch 的定義就比Comer 的定義更廣泛一些,因為switch 在某些情況下還可以表示一個網橋或路由器,同時也不局限于用在星形網路中,
現在需要注意的是,關于 Packet switching 這一名詞中的switching,大家知道,Packet switching 的標準譯名是“分組交換”,這里的“交換”完全是為了和電路交換的“交換”相對應,我們知道,分組交換就是對分組進行存盤轉發,而轉發又是根據路由器中的轉發表,是
通過計算機軟體來查找下一跳應當轉發到哪一個結點去的,因此分組交換的“交換”并沒有“使用硬體地址”或“比路由選擇更快”的含義,而只是一般地表示“可以將資料從一個地方移動到另一個地方”,
37.為什么生存時間TTL (Time To Live)原來用秒作為單位,而現在TTL卻表示資料報在網路中所能通過的路由器數的最大值?
解答:最初TTL是用秒作為單位,表示一個資料報在網路中的最長生存時間,TTL可用來防止資料報無限期地在網路中兜圈子(這樣會浪費網路的資源),例如,把資料報的 TTL初始值設定為70秒,就表示在該資料報進入網路后只要經過了70秒就要把它丟棄,哪怕它就快要到達目的站了,
但后來發現這樣做很不方便(互聯網中沒有時鐘同步關系的路由器都要計算通過它的資料報在網路中的逗留時間),于是就改用另一種方法,即讓TTL表示資料報在網路中所能夠通過的路由器數的最大值,例如,把資料報的TTL初始值設定為60,就表示:若該資料報在經過60個路由器后還沒有到達目的站,則最后到達的那個路由器就立即把這個資料報丟棄,使它不再占用網路的資源,每一個路由器在轉發資料報時,應把資料報首部中的TTL值減1,若TTL值減為零,就把它丟棄,因此,現在的TTL表示資料報在網路傳送程序中的最大跳數,
38.有人認為,不使用CIDR也行,例如,使用CIDR時,給某單位分配了一個地址塊/20,相當于16個C類地址塊,如果不使用CIDR,而直接給該單位分配16個C類地址塊,那么在效果上不是一樣嗎?
解答:在效果上是不一樣的!
如果不采用CIDR,而直接給該單位分配16個C類地址塊,那么就相當于給該單位分配了16個C類網路,這個單位對外界來說,是16個C類網路,而每一個C類網路都要在本單位外面的路由表中占有一個表項,使得路由表更大了,當本單位內的許多主機相互通信時,由于跨越了不同的網路,都必須使用路由器來轉發IP資料報,可見由此造成的開銷是很大的,因此,一般說來,這個單位不愿意接受16個C類地址塊,而希望得到一個B類地址塊(當然,這很難申請到),
實際上,一個B類地址塊太大了,它相當于256個C類地址塊,而這個單位只需要16個C類地址塊,即只用到一個B類地址塊的1/16,因此對于只需要16個C類地址塊的單位,不應當給這個單位分配一個B類地址塊,而是應當采用CIDR,給這個單位分配一個地址塊/20,
問題4-39.在劃分子網時,有時要考慮到“子網號subnet-id 不能取為全0或全”,但有時又允許把子網號subnet-id 取為全0或全1,你能夠舉出一些依據嗎?
解答:這是有依據的,我們知道,1985年8月頒布的RFC 950是互聯網的正式標準STD#5,即正式標準的編號第5,在RFC 950中有這樣一段話:
零地址表示“這個”,而全1地址表示“所有的”,因此,地址128.9.255.255表示在網路128.9上面的所有主機,地址0.0.0.37表示在這個網路上的主機37,如果把這種解釋擴展到劃分子網中的特殊地址,那么全0和全1的子網號是不允許指派的,例如,6位的子網號除了0和63以外的都可以使用,如果使用了全0和全1的子網號,那么在某些情況下,例如,在向一個網路上的所有子網進行多播時,就可能會出現混亂,
然而在1995年12月頒布的RFC 1878中卻提出了不同的看法,RFC 1878指出全0和全1的子網號都可以指派,因為現在的軟體技術都可以使用所有的子網號,但RFC 1878并不是互聯網的標準檔案,而只是被列入“提供資訊的(Informational),因此許多路由器的生產商對這個RFC檔案的解釋并不一致,這樣,在打算采用全1或全0子網號時,一定要先弄清所采用的路由器是否支持這樣做,或必須在路由器進行配置時輸入什么樣的命令,
參考文獻
[1] 謝希仁. 計算機網路. 7版. 北京:電子工業出版社,2017
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/304884.html
標籤:其他
上一篇:Linux騷操作之第三十二話Apache和nginx
下一篇:CAN 總線通信 簡要概括






