(計算機網絡 清華出版社 Andrew S.Tanenbaum;David J.Wetherall著)網絡層習題及參考答案


1、請列舉出兩個合適使用面向連接服務的計算機應用實例,再列舉出兩個最好使用無連接服務的計算機應用實例。
解:面向連接:文件傳輸,遠程登錄;無連接:信用卡核對,電子資金轉賬。

2、數據報網絡將每個數據包當做獨立的單位進行路由,路由過程彼此獨立。虛電路網絡不必采用這種方式,因為每個數據包都沿着一條預先確定的路由。試問,這是否意味着虛電路網絡不需要具備將單個數據包從任意源端路由到任意接收方的能力呢?
解:虛電路的路由建立需要這樣的能力。

3、請給出3個在建立連接時可能需要協商的協議參數例子。
解:需要通過協商給出窗口大小,最大包長,速率和定時值等參數。

4、假設所有的路由器和主機都正常工作,並且它們的軟件也都沒有錯誤。試問是否存在一個數據包被遞交到錯誤目的地的可能性。
解:有可能,一個大的噪聲突發可能眼中地篡改數據包。k位的校檢無法檢測出2-k的錯誤,如果目的地被篡改就有可能到達錯誤的目的地。

5、請給出一個簡單的啟發式算法,找出一個網絡中從指定源端到指定目標端之間的兩條路徑,要求這兩條路徑在失去任何一條通信線路的情況下都能夠辛免於難。
解:首先選擇最短路徑算法找到一條路由;然后移除已經找到的路徑,再次使用最短路徑算法找到另一條路徑,這樣可以相救。需要使用最大溢出算法防止這種啟發式算法失敗。

6、考慮下圖中的網絡,使用距離矢量路由算法。路由器C剛剛收到下列矢量:來自B的(5,0,8,12,6,2);來自D的(16,12,6,0,9,10);來自E的(7,6,3,9,0,4)。從C到B、D和E的鏈路成本分別為6、3、5。請給出C的新路由表,包括使用的出境線路和成本。在這里插入圖片描述
解:B的矢量(5,0,8,12,6,2)表示到ABCDEF的距離,那么C通過B到達其他節點的距離是:B的路徑距離加上到C到B的鏈路成本(題目已經給出),即為(11, 6, 14, 18, 12, 8),比如B到A點距離為5,那么加上6就是11,以此類推。C通過D到達其他節點的路由距離為:(19, 15, 9, 3, 12, 13);C通過E到達其他節點的路由距離為 (12, 11, 8, 14, 5, 9)。所以C的最短路徑為(11, 6, 0, 3, 5, 8),經過的線路為 (B, B, –, D, E, B)
                    

 

 


7、在一個有50個路由器的網絡中,如果成本以8位數字表示,並且距離矢量每分鍾交換兩次,試問每條(全雙工)線路有多少帶寬被這個分布式路由算法吞噬掉?假設每個路由器都有三條線路連到其他路由器。
解:路由表大小為400位。每分鍾交換兩次,每個方向需要800bps的帶寬速度。

8、在下圖中,每一行上的兩組ACF位布爾或(OR)的結果是111.試問這僅僅是一種偶然情況,還是在所有情況下對於所有網絡都成立?在這里插入圖片描述
解:它總是成立。發送標志表明該數據包必須在所指示的線路上發送,確認標志表明它必須在這條線路上得到確認。如果一條線路它的發送標志和確認標志都為0,說明數據包既不從這條線路轉發出去,也不從這條線路返回確認值。如果都為1,說明數據包又沿着返回ACK的線路返回給了源,這兩個都是錯誤的,不可能存在的。
          

 

 


9、一個有4800台路由器的網絡采用了層次路由。試問對於三層結構來說,應該選擇多大的區域和簇才能將路由表的尺寸降到最低?一個好的起點是假設這樣的方案接近最優:有k個簇,每個簇有k個區域,每個區域有k個路由器。這意味着k大約是4800的立方根(約等於16)。反復試驗找出所有這三個參數在16附近的各種組合。
解:組合是15個簇,16個區域,每個區域有20個路由器,或者一個對等的組合是20個簇,16個區域,15個路由器。所有情形的表大小是15+16+20=51。

10、在正文中提到當一台移動主機不在家鄉網絡時,發送至它本地LAN的數據包將被該LAN的家鄉代理所截獲。針對一個802.3LAN上的IP網絡,試問家鄉代理如何完成這樣的工作?
解:常規方法是家鄉代理欺騙路由器以便讓路由器確定移動主機響應ARP請求。當路由器得到指向移動主機地址的數據包時,它就廣播一次ARP查詢,詢問擁有這個ip地址的主機的以太網mac地址。當移動主機不在附近時,家鄉代理就響應這次ARP查詢,所以路由器就可以將移動主機的ip地址與家鄉代理的以太網mac地址聯系在一起。

11、參考圖中的網絡。試問若使用一下方法,從B發出的一次廣播將生產多少個數據包?(1)逆向路徑轉發(2)匯集樹在這里插入圖片描述
解:(1) 逆向路徑轉發算法需要五次傳播完成,五次接收者分別是 AC, DFIJ, DEGHIJKN, GHKN, 和
LMO。一共需要生成21個數據包。 () 匯集樹需要4次傳播,一共14個數據包。

12、考慮圖a中的網絡。想象在F和G之間加入一條新的路線,但是圖b中的匯集樹仍然不變。試問對於圖c中有什么變化。在這里插入圖片描述
解:G與A、D地位等同。加入新的線路沒有形成環的原因是因為路由IFG並不在匯集樹中。
    

 

 


13、請計算下面網絡中路由器C生成的組播生成樹。組成員分布在路由器A、B、C、D、E、F、I、K上。在這里插入圖片描述

    

 

 


解:生成樹有多種可能,其中一個是:在這里插入圖片描述
      

 

 


14、假設圖中節點B剛剛重新啟動,它的路由表中沒有任何信息。現在它突然需要一條到達H的路由,於是它發送廣播包,其TTL分別設置為1、2、3等。試問它需要經過幾輪廣播后才能找到一條路由?在這里插入圖片描述
解:節點N距離B有三跳,所以需要三次廣播。路徑可以是BDFH或者BDGH。
                      

 

 


15、在內部采用虛電路的網絡中,可能采用這樣一種擁塞控制機制:路由器推遲確認收到的數據包,直到(1)它知道沿着虛電路的最后一次傳輸已經被成功接收,並且(2)它有一個空閑緩沖區。為了簡單期間,假定路由器使用了等-停式協議,並且每條虛電路的每個方向上都有一個專用的緩沖區。如果傳輸一個數據包(數據或者確認)需要T秒,在路徑上有n台路由器,試問數據包被遞交給目標主機的速率是多少?假設幾乎沒有傳輸錯誤,並且從主機到路由器之間連接的速度為無限快。
解:2T(n-1)秒。因為虛電路時沿着特定的路由的,傳輸一個數據包在路由器之間需要T秒,那么n個路由器會有(n-1)個T秒,加上確認數據包一共需要2T(n-1)秒。

16、一個數據報網絡允許路由器在必要的時候丟棄數據包。路由器丟棄一個數據包的概率為p。請考慮這樣的情形:源主機連接到源路由器,源路由器連接到目標路由器,然后目標路由器連接到目標主機。如果任何一台路由器丟掉了一個數據包,則源主機最終會超時,然后再重試發送。如果主機至路由器以及路由器至路由器之間的線路都記為一跳,試問:(1)每次傳輸數據包的平均跳數是多少?(2)數據包的平均傳輸次數是多少?(3)每個接收到數據包所需的平均跳數?
解:源主機發出的每一個數據包都會產生1、2或3跳。它跳一跳的概率是p。它產生兩跳的概率是p(1−p)。它產生3跳的概率是(1−p)2。數據包可以期望的平均路徑長度是這三個概率的加權和,p+2p(1-p)+3(1−p)2,即p2−3p+3。注意,對於p=0,平均值是3跳,對於p=1,平均是1跳。當0<p<1時,需要多次傳輸。數據包在線路上傳輸成功的概率為(1−p)2,所以數據包的平均傳輸次數為1/(1−p)2。每個接收到數據包所需的平均跳數為,每次傳輸數據包的平均跳數乘以傳輸次數,即(p2−3p+3)/(1−p)2。

17、針對兩個擁塞避免方法ECN和RED,請給出它們的兩個主要區別。
解:首先,ECN方法通過設置一位來顯式地向源發送擁塞通知,而RED則通過簡單地丟棄它的一個數據包來隱式地通知源。第二,ECN方法只在沒有緩沖區空間時才丟棄數據包,而在所有緩沖區耗盡之前,RED丟棄數據包。

18、流量整形采用了令牌桶方案。每5微秒一個新的令牌被放入桶中。每個令牌剛好用於一個短數據包,數據包包含48個字節數據。試問最大的可持續數據率是多少?
解:每秒可以傳輸2*105*48*8,最大的可持續數據率大約為76.8 Mbps。

19、在一個6Mbps網絡上有一台主機,其流量通過一個令牌桶整型,令牌桶的填充速率為1Mbps。初始時令牌桶被填滿到容量8MB。試問該計算機能以6Mbps的全速率傳輸多長時間。
解:用公式s=c/(m−ρ)可以得到正確的答案。我們得到s=8/(6−1)或1.6秒。

20、圖中的網絡使用RSVP預留資源主機1和主機2的組播樹如圖所示。假設主機3請求一條帶寬為2Mbps的信道用於接收主機1的流,以及一條帶寬為1Mbps的信道用於接收主機2的流。同時,主機4請求一條帶寬為2Mbps的信道用於接收主機1 的流;主機5請求一條帶寬為1Mbps的信道用於接收主機2 的流。試問在路由器A、B、C、E、H、K、J和L上,總共需要為這些請求預留多少帶寬?在這里插入圖片描述
解:分別為2Mbps,0Mbps,1Mbps,3Mbps,3Mbps,3Mbps,2Mbps,1Mbps。
          

 

 


21、一個路由器可以每秒鍾處理200萬個數據包。提供給路由器的負載為每秒鍾150萬個數據包。如果從源端到接收方的路徑上有10個路由器,試問路由器花在排隊和服務的時間為多少?
解:排隊理論證明一個數據包所經歷的平均延遲T=(1/μ)*(1/(1-ρ)),ρ=λ/μ是CPU的使用率。這里的μ是200萬,λ是150萬,所以ρ=λ/μ是0.75,這里是T=2μ秒。在一條路徑上有10個路由器,排隊加服務時間為20μ秒。

22、假設網絡采用區分服務模型。考慮使用加速轉發服務的用戶。試問是否可以保證加速型數據包比常規數據包的延遲更短?
解:不能保證。因為如果有太多加速數據包,它們的信道的性能將會比常規數據包信道的性能更差。

23、假設主機A和路由器R1連接,R1又與另一個路由器R2連接,R2與主機B連接,假定一個要發給主機B的TCP消息被傳遞給主機A的IP代碼,其中包含了900個字節的數據包和20個字節的TCP頭。請寫出在三條鏈路上傳輸的每個數據包中IP頭部的 Total length、Identification、DF、MF、和Fragment offset字段。假定鏈路A-R1鏈路可以支持的最大幀長為1024字節,其中包括14字節的幀頭;鏈路R1-R2可以支持的最大幀長為512字節,其中包括8字節的幀頭;鏈路R2-B可以支持的最大幀長為512字節,其中包括12字節的幀頭。
解:在第一條線路上不需要分段,數據包包括900個字節的數據,20字節的TCP頭以及20字節的IP頭。
在第二條和第三條線路上需要分成兩個包,所以會增加一個20字節的IP頭。
(解釋一下,offset的意思是偏移量,這個字段在ipv4協議上有13位,分段的長度必須是8的字節的倍數,為什么要是8的倍數?表示的多唄,14億人口乘個8試試。本題中ip數據包的payload字段是920字節,第二三線路均分為兩個包,第一個包是480字節加上ip頭,所以下一個字段在整個數據中的偏移量自然是60乘8等於480字節了。)
A-R1:
Length = 940; ID = x; DF = 0; MF = 0; Offset = 0
R1-R2:
(1) Length = 500; ID = x; DF = 0; MF = 1; Offset = 0
(2) Length = 460; ID = x; DF = 0; MF = 0; Offset = 60
R2-B:
(1) Length = 500; ID = x; DF = 0; MF = 1; Offset = 0
(2) Length = 460; ID = x; DF = 0; MF = 0; Offset = 60

24、一個路由器往外發送大量的IP數據包,這些數據包的總長度(數據+頭)為1024字節。假設這些數據包的生成時間為10秒,試問路由器運行的最大線速度達到多少才不會發生IP數據報和ID編號空間重繞的危險?
解:如果線路的比特率為b,則路由器可以發出的數據包/秒數為b/8192,因此發出數據包所需的秒數為8192/b。ID重繞也就是ID字段溢出,ID字段為16位,所以編號為0~65535,需要輸出65,536個數據包,即需要65,536/(b/8192)=229/b秒。把它等同於最大值數據包的壽命,我們得到229/b=10。然后,b約為53,687,091 bps。

25、一個IP數據報使用了嚴格源路由選項,現在它必須被分段。你認為該選項應該被復制到每個段中,還是只需放到第一個段中就去足夠了?
解:由於路由每個片段都需要該信息,該選項必須出現在每個片段中。

26、假定最初的B類地址的網絡部分不是16位,而是20位。試問將有多少個B類網絡。
解:B類網絡地址開端為10,如果使用20位網絡地址,那么還有18位可以分配,即網絡數為 218=262,144,但是全0與全1不能使用,所以一共有262142個網絡。

27、一個IP地址的十六進制表示為C22F1582,請將它轉換為點分十進制表示法。
解:194.47.21.130。

28、Internet上一個網絡的子網掩碼為255.255.240.0。試問它最多能容納多少主機。
解:易知主機位數為12位,所以可以容納的主機數為:212-2=4094。(全0與全1一般不使用)。

29、盡管IP地址特定於一個網絡,以太網址(指mac地址)卻不是,你能想到一個好理由說明為什么以太網地址做不到嗎?
解:在商店中銷售的每個以太網適配器都是硬連接的,其中包含一個以太網(Mac)地址。當將地址刻入卡中時,制造商不知道在世界上將在哪里使用該卡,因此該地址對路由毫無用處。相反,IP地址要么由ISP或公司靜態地或動態地分配,后者知道如何到達主機獲取IP地址。

30、從198.16.0.0開始有大量連續的IP地址可以使用。假設4個組織A、B、C、D按照順序依次申請4000、2000、4000、和8000個地址。對於每一個申請,請用w.x.y.z/s的形式寫出所分配的第一個IP地址、最后一個IP地址以及掩碼。
解:A: 198.16.0.0 – 198.16.15.255 written as 198.16.0.0/20
B: 198.16.16.0 – 198.16.23.255 written as 198.16.16.0/21
C: 198.16.32.0 – 198.16.47.255 written as 198.16.32.0/20
D: 198.16.64.0 – 198.16.95.255 written as 198.16.64.0/19

31、一個路由器剛剛接收到以下新的IP地址:57.6.96.0/21,57.6.104.0/21,57.6.112.0/21和57.6.120.0./21。如果所有這些地址都使用同一條出境線路,試問它們可以被聚合嗎?如果可以,將被聚合到哪個地址上?
解:聚合地址為57.6.96.0/19。

32、從29.18.0.0到29.18.128.255的一組IP地址已經被聚合到29.18.0.0/17。然而,這里有一個空閑地址塊,即從29.18.60.0到29.18.63.255之間的1024個地址還沒有分配。現在這塊空閑地址要分配給一台使用不同出境線路的主機。試問是否有必要將聚合地址分割成幾塊,然后把新的地址加入到路由表中,再來看是否可以重新聚合?如果沒有必要,應該怎么辦?
解:為新塊添加一個新表條目就足夠了:29.18.0.0/22。如果一個傳入的數據包匹配29.18.0.0/17和29.18.0.0/22,最長的數據包將獲勝。此規則可以將一個大塊分配給一個傳出行,但對其范圍內的一個或多個小塊做一個例外。

33、一個路由器的路由表中有如下表項:
地址/掩碼     下一跳
135.46.56.0/22     Interface 0
135.46.60.0/22     Interface 1
135.46.40.0/23     Router 1
default     Router 2

對於下列IP地址,如果到達的數據包帶有這些地址,試問路由器如何處理?
(1)135.46.63.10(2)135.46.57.14(3)135.46.52.2(4)192.53.40.7(5)192.53.56.7
解:(1)下一跳為interface1(2)下一跳為interface0(3)下一跳為router2(4)下一跳為router1(5)下一跳為router2。

34、許多公司采取這樣的策略:通過兩個或多個路由器將公司連接到Internet。這種冗余度保證了其中一個路由器停機時網絡還能用。試問采用NAT策略后,仍然能正常工作嗎?
解:在安裝NAT之后,所有與單個連接有關的數據包通過同一個路由器進出公司是至關重要的,因為這是映射保持的地方。如果每個路由器都有自己的ip地址,並且屬於給定連接的所有流量都可以發送到同一個路由器,則映射可以正確地執行ping操作,並且可以使NAT進行多尋的工作。

35、你剛剛向胖友解釋了ARP協議,當你解釋完之后他說:“我明白了,ARP給網絡層提供了一項服務,所以它是數據鏈路層的一部分。”你該如何向他解釋呢?
解:你應該說ARP協議不是向網絡層提供的一項服務,他是網絡層的一個組成部分,用於幫助對傳輸層提供的服務。

36、請給出一種在目標主機上重組IP分段的方法。
解:在一般情況下,這個問題是非同尋常的。碎片可能會出現故障,有些可能會丟失。在重傳時,數據報可能被分割成不同大小的塊。此外,在最后一個片段到達之前,不知道總大小。處理重新組裝的唯一方法可能是緩沖所有碎片,直到最后一個片段到達並知道大小。然后構建一個大小合適的緩沖區,並將片段放入緩沖區,維護一個每8字節1位的位映射,以跟蹤緩沖區中存在哪些字節。當位圖中的所有位都是1時,數據報就完成了。(沒看懂)

37、大多數IP數據報重組算法有一個計時器,以免丟失的段永遠占用重組緩沖區。假設一個數據報被分成4個段。前3段到達目的地,但最后一個延遲了。最終該計時器超時,接收方內存中的3個段丟棄。過來一會兒,最后一個段到達,試問應該用它做什么呢?
解:就接收者而言,這是新數據報的一部分,因為它的其他部分不為人所知。因此,它將排隊,直到其余的出現。如果他們不這樣做,這個人也會超時。

38、在IP中,校檢和僅僅覆蓋了頭,而沒有包括數據部分。你認為這樣的設計方案的理由是什么?
解:頭中的錯誤比數據中的錯誤嚴重得多。例如,一個錯誤的地址可能導致數據包被傳送到錯誤的主機。許多主機不檢查是否一個包交付給他們,實際上是為他們。他們認為網絡永遠不會給他們准備給另一個主機的數據包。數據有時是不加校驗的,因為這樣做是昂貴的(開銷會比較大),而且上層經常這樣做,這使得它在這里是多余的。

39、有一個人生活在波士頓,現在她帶着自己的筆記本電腦去Minneapolis旅游。讓她驚訝的是,在Minneapolis目的地的局域網是一個無線IP局域網,所以她根本不用插網線。試問,她是否仍然需要通過家鄉代理和外部代理這一整套過程才能正確地接收到電子郵件或其他流量。
解:需要。明尼阿波利斯局域網是無線的,這並不會使到達波士頓的數據包突然跳到明尼阿波利斯。波士頓的家鄉代理必須把他們引到明尼阿波利斯無線局域網上的外部代理那里。考慮這種情況的最好方法是,用戶已接入明尼阿波利斯局域網,與其他明尼阿波利斯用戶的方式相同。連接使用無線電而不是線纜。

40、IPv6地址使用16個字節的地址。如果每隔1ps(1-12秒,1皮秒)就分配掉一百萬個地址(106),試問整個地址空間可以持續分配多久。
解:有16個字節,有2128或3.4×1038個地址。如果我們以每秒1018的速度分配它們,它們將持續1013年。這個數字是宇宙年齡的1000倍。當然,地址空間不是平坦的,所以它們不是線性分配的,但是這個計算表明,即使使用效率為1/1000(0.1%)的分配方案,也永遠不會用完。

41、IPv4頭中的Protocol字段並沒有出現在IPv6的固定頭中,試問為什么?
解:協議字段告訴目標主機要將IP數據包分配給哪個協議處理程序。中間路由器不需要此信息,因此在主標頭中不需要該信息。

42、當IPv6協議被引入時,ARP協議需要作相應的改變嗎?如果需要,這種改變是概念性的還是技術性的?
解:從概念上講,沒有變化。從技術上講,請求的IP地址現在更大,所以需要更大的字段。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM