第四章 網絡層
詳細計算機網絡(謝希仁-第八版)第四章習題全解_計算機網絡第八版謝希仁課后答案-CSDN博客
1.網絡層向上提供的服務有哪兩種?是比較其優缺點。網絡層向運輸層提供 “面向連接”虛電路(Virtual Circuit)服務或“無連接”數據報服務前者預約了雙方通信所需的一切網絡資源。優點是能提供服務質量的承諾。即所傳送的分組不出錯、丟失、重復和失序(不按序列到達終點),也保證分組傳送的時限,缺點是路由器復雜,網絡成本高;后者無網絡資源障礙,盡力而為,優缺點與前者互易
2.網絡互連有何實際意義?進行網絡互連時,有哪些共同的問題需要解決?
網絡互聯可擴大用戶共享資源范圍和更大的通信區域
進行網絡互連時,需要解決共同的問題有:
不同的尋址方案不同的最大分組長度
不同的網絡接入機制
不同的超時控制
不同的差錯恢復方法
不同的狀態報告方法
不同的路由選擇技術
不同的用戶接入控制
不同的服務(面向連接服務和無連接服務)
不同的管理與控制方式
3.作為中間設備,轉發器、網橋、路由器和網關有何區別?
中間設備又稱為中間系統或中繼(relay)系統。
物理層中繼系統:轉發器(repeater)。
數據鏈路層中繼系統:網橋或橋接器(bridge)。
網絡層中繼系統:路由器(router)。
網橋和路由器的混合物:橋路器(brouter)。
網絡層以上的中繼系統:網關(gateway)。
4.試簡單說明下列協議的作用:IP、ARP、RARP和ICMP。
IP協議:實現網絡互連。使參與互連的性能各異的網絡從用戶看起來好像是一個統一的網絡。網際協議IP是TCP/IP體系中兩個最主要的協議之一,與IP協議配套使用的還有四個協議。
ARP協議:是解決同一個局域網上的主機或路由器的IP地址和硬件地址的映射問題。
RARP:是解決同一個局域網上的主機或路由器的硬件地址和IP地址的映射問題。
ICMP:提供差錯報告和詢問報文,以提高IP數據交付成功的機會
因特網組管理協議IGMP:用于探尋、轉發本局域網內的組成員關系。
5.IP地址分為幾類?各如何表示?IP地址的主要特點是什么?分為ABCDE 5類;每一類地址都由兩個固定長度的字段組成,其中一個字段是網絡號 net-id,它標志主機(或路由器)所連接到的網絡,而另一個字段則是主機號 host-id,它標志該主機(或路由器)。各類地址的網絡號字段net-id分別為1,2,3,0,0字節;主機號字段host-id分別為3字節、2字節、1字節、4字節、4字節。特點:(1)IP 地址是一種分等級的地址結構。分兩個等級的好處是:第一,IP 地址管理機構在分配 IP 地址時只分配網絡號,而剩下的主機號則由得到該網絡號的單位自行分配。這樣就方便了 IP 地址的管理。第二,路由器僅根據目的主機所連接的網絡號來轉發分組(而不考慮目的主機號),這樣就可以使路由表中的項目數大幅度減少,從而減小了路由表所占的存儲空間。(2)實際上 IP 地址是標志一個主機(或路由器)和一條鏈路的接口。當一個主機同時連接到兩個網絡上時,該主機就必須同時具有兩個相應的 IP 地址,其網絡號 net-id 必須是不同的。這種主機稱為多歸屬主機(multihomed host)。由于一個路由器至少應當連接到兩個網絡(這樣它才能將 IP 數據報從一個網絡轉發到另一個網絡),因此一個路由器至少應當有兩個不同的 IP 地址。 (3) 用轉發器或網橋連接起來的若干個局域網仍為一個網絡,因此這些局域網都具有同樣的網絡號 net-id。 (4) 所有分配到網絡號 net-id 的網絡,范圍很小的局域網,還是可能覆蓋很大地理范圍的廣域網,都是平等的。6.試根據IP地址的規定,計算出表4-2中的各項數據。解:1)A類網中,網絡號占七個bit, 則允許用的網絡數為2的7次方,為128,但是要
除去0和127的情況,所以能用的最大網絡數是126,第一個網絡號是1,最后一個網絡號是 126。主機號占24個bit, 則允許用的最大主機數為2的24次方,為16777216,但是也要除 去全0和全1的情況,所以能用的最大主機數是16777214。2) B類網中,網絡號占14個bit,則能用的最大網絡數為2的14次方,為16384,第 一個網絡號是128.0,因為127要用作本地軟件回送測試,所以從128開始,其點后的還可
以 容納2的8次方為256,所以以128為開始的網絡號為128.0128.255,共256個,以此類 推,第16384個網絡號的計算方法是:16384/256=64128+64=192,則可推算出為191.255。主機號占16個 bit, 則允許用的最大主機數為2的16次方,為65536,但是也要除去全0和全 1的情況,所以能用的最大主機數是65534。3)C類網中,網絡號占21個bit, 則能用的網絡數為2的21次方,為2097152,第一個 網絡號是 192.0.0,各個點后的數占一個字節,所以以 192 為開始的網絡號為192.0.0192.255.255,共256256=65536,以此類推,第2097152個網絡號的計算方法是: 2097152/65536=32192+32=224,則可推算出為223.255.255。主機號占8個bit, 則允許用的最大主機數為2的8次方,為256,但是也要除去全0和全1的情況,所以能用的最大主機數是254。7.試說明IP地址與硬件地址的區別,為什么要使用這兩種不同的地址? IP 地址就是給每個連接在因特網上的主機(或路由器)分配一個在全世界范圍是唯一的 32 位的標識符。從而把整個因特網看成為一個單一的、抽象的網絡在實際網絡的鏈路上傳送數據幀時,最終還是必須使用硬件地址。 MAC地址在一定程度上與硬件一致,基于物理、能夠標識具體的鏈路通信對象、IP地址給予邏輯域的劃分、不受硬件限制。 8.IP地址方案與我國的電話號碼體制的主要不同點是什么?于網絡的地理分布無關 9.(1)子網掩碼為255.255.255.0代表什么意思? 有三種含義 其一是一個A類網的子網掩碼,對于A類網絡的IP地址,前8位表示網絡號,后24位表示主機號,使用子網掩碼255.255.255.0表示前8位為網絡號,中間16位用于子網段的劃分,最后8位為主機號。第二種情況為一個B類網,對于B類網絡的IP地址,前16位表示網絡號,后16位表示主機號,使用子網掩碼255.255.255.0表示前16位為網絡號,中間8位用于子網段的劃分,最后8位為主機號。 第三種情況為一個C類網,這個子網掩碼為C類網的默認子網掩碼。 (2)一網絡的現在掩碼為255.255.255.248,問該網絡能夠連接多少個主機? 255.255.255.248即11111111.11111111.11111111.11111000. 每一個子網上的主機為(2^3)=6 臺 掩碼位數29,該網絡能夠連接8個主機,扣除全1和全0后為6臺。 (3)一A類網絡和一B網絡的子網號subnet-id分別為16個1和8個1,問這兩個子網掩碼有何不同? A類網絡:11111111 11111111 11111111 00000000 給定子網號(16位“1”)則子網掩碼為255.255.255.0 B類網絡 11111111 11111111 11111111 00000000 給定子網號(8位“1”)則子網掩碼為255.255.255.0但子網數目不同 (4)一個B類地址的子網掩碼是255.255.240.0。試問在其中每一個子網上的主機數最多是多少? (240)10=(128+64+32+16)10=(11110000)2 Host-id的位數為4+8=12,因此,最大主機數為: 2^12-2=4096-2=4094 11111111.11111111.11110000.00000000 主機數2^12-2 (5)一A類網絡的子網掩碼為255.255.0.255;它是否為一個有效的子網掩碼?是 10111111 11111111 00000000 11111111 (6)某個IP地址的十六進制表示C2.2F.14.81,試將其轉化為點分十進制的形式。這個地址是哪一類IP地址? C2 2F 14 81–à(1216+2).(216+15).(16+4).(816+1)—à194.47.20.129 C2 2F 14 81 —à11000010.00101111.00010100.10000001 C類地址
(7)C類網絡使用子網掩碼有無實際意義?為什么?
有實際意義.C類子網IP地址的32位中,前24位用于確定網絡號,后8位用于確定主機號.如果劃分子網,可以選擇后8位中的高位,這樣做可以進一步劃分網絡,并且不增加路由表的內容,但是代價是主機數相信減少.
10.試辨認以下IP地址的網絡類別。
(1)128.36.199.3 (2)21.12.240.17 (3)183.194.76.253 (4)
192.12.69.248 (5)89.3.0.1 (6)200.3.6.2
(2)和(5)是A類,(1)和(3)是B類,(4)和(6)是C類.
- IP數據報中的首部檢驗和并不檢驗數據報中的數據。這樣做的最大好處是什么?壞處是什么?
在首部中的錯誤比在數據中的錯誤更嚴重,例如,一個壞的地址可能導致分組被投寄到錯誤的主機。許多主機并不檢查投遞給他們的分組是否確實是要投遞給它們,它們假定網絡從來不會把本來是要前往另一主機的分組投遞給它們。數據不參與檢驗和的計算,因為這樣做代價大,上層協議通常也做這種檢驗工作,從前,從而引起重復和多余。因此,這樣做可以加快分組的轉發,但是數據部分出現差錯時不能及早發現。
12.當某個路由器發現一IP數據報的檢驗和有差錯時,為什么采取丟棄的辦法而不是要求源站重傳此數據報?計算首部檢驗和為什么不采用CRC檢驗碼?答:糾錯控制由上層(傳輸層)執行 IP首部中的源站地址也可能出錯請錯誤的源地址重傳數據報是沒有意義的 不采用CRC簡化解碼計算量,提高路由器的吞吐量
13.設IP數據報使用固定首部,其各字段的具體數值如圖所示(除IP地址外,均為十進制表示)。試用二進制運算方法計算應當寫入到首部檢驗和字段中的數值(用二進制表示)。
4 5 0 28 1 0 0 4 17 10.12.14.5 12.6.7.9
1000101 00000000 00000000-00011100
00000000 00000001 00000000-00000000
00000100 00010001 xxxxxxxx xxxxxxxx
00001010 00001100 00001110 00000101
00001100 00000110 00000111 00001001 作二進制檢驗和(XOR) 01110100 01001110取反碼 10001011 10110001 - 重新計算上題,但使用十六進制運算方法(沒16位二進制數字轉換為4個十六進制數字,再按十六進制加法規則計算)。比較這兩種方法。
01000101 00000000 00000000-00011100 4 5 0 0 0 0 1 C
00000000 00000001 00000000-00000000 0 0 0 1 0 0 0 0 00000100 000010001 xxxxxxxx xxxxxxxx 0 4 1 1 0 0 0 0
00001010 00001100 00001110 00000101 0 A 0 C 0 E 0 5
00001100 00000110 00000111 00001001 0 C 0 6 0 7 0 9
01011111 00100100 00010101 00101010 5 F 2 4 1 5 2 A
5 F 2 4 1 5 2 A 7 4 4 E-à8 B B 1
15.什么是最大傳送單元MTU?它和IP數據報的首部中的哪個字段有關系?答:IP層下面數據鏈里層所限定的幀格式中數據字段的最大長度,與IP數據報首部中的總長度字段有關系
16.在因特網中將IP數據報分片傳送的數據報在最后的目的主機進行組裝。還可以有另一種做法,即數據報片通過一個網絡就進行一次組裝。是比較這兩種方法的優劣。在目的站而不是在中間的路由器進行組裝是由于:
(1)路由器處理數據報更簡單些;效率高,延遲小。
(2)數據報的各分片可能經過各自的路徑。因此在每一個中間的路由器進行組裝可能總會缺少幾個數據報片;
(3)也許分組后面還要經過一個網絡,它還要給這些數據報片劃分成更小的片。如果在中間的路由器進行組裝就可能會組裝多次。
(為適應路徑上不同鏈路段所能許可的不同分片規模,可能要重新分片或組裝) - 一個3200位長的TCP報文傳到IP層,加上160位的首部后成為數據報。下面的互聯網由兩個局域網通過路由器連接起來。但第二個局域網所能傳送的最長數據幀中的數據部分只有1200位。因此數據報在路由器必須進行分片。試問第二個局域網向其上層要傳送多少比特的數據(這里的“數據”當然指的是局域網看見的數據)?
答:第二個局域網所能傳送的最長數據幀中的數據部分只有1200bit,即每個IP數據片的數據部分<1200-160(bit),由于片偏移是以8字節即64bit為單位的,所以IP數據片的數據部分最大不超過1024bit,這樣3200bit的報文要分4個數據片,所以第二個局域網向上傳送的比特數等于(3200+4×160),共3840bit。 18.(1)有人認為:“ARP協議向網絡層提供了轉換地址的服務,因此ARP應當屬于數據鏈路層。”這種說法為什么是錯誤的?因為ARP本身是網絡層的一部分,ARP協議為IP協議提供了轉換地址的服務,數據鏈路層 使用硬件地址而不使用IP地址,無需ARP協議數據鏈路層本身即可正常運行。因此ARP不再數據鏈路層。 (2)試解釋為什么ARP高速緩存每存入一個項目就要設置10~20分鐘的超時計時器。這個時間設置的太大或太小會出現什么問題? 答:考慮到IP地址和Mac地址均有可能是變化的(更換網卡,或動態主機配置) 10-20分鐘更換一塊網卡是合理的。超時時間太短會使ARP請求和響應分組的通信量太頻繁,而超時時間太長會使更換網卡后的主機遲遲無法和網絡上的其他主機通信。 (3)至少舉出兩種不需要發送ARP請求分組的情況(即不需要請求將某個目的IP地址解析為相應的硬件地址)。在源主機的ARP高速緩存中已經有了該目的IP地址的項目;源主機發送的是廣播分組;源主機和目的主機使用點對點鏈路。19.主機A發送IP數據報給主機B,途中經過了5個路由器。試問在IP數據報的發送過程中總共使用了幾次ARP? 6次,主機用一次,每個路由器各使用一次。 20.設某路由器建立了如下路由表: 目的網絡 子網掩碼 下一跳 128.96.39.0 255.255.255.128 接口m0 128.96.39.128 255.255.255.128 接口m1 128.96.40.0 255.255.255.128 R2 192.4.153.0 255.255.255.192 R3 *(默認) —— R4 現共收到5個分組,其目的地址分別為: (1)128.96.39.10 (2)128.96.40.12 (3)128.96.40.151 (4)192.153.17 (5)192.4.153.90 (1)分組的目的站IP地址為:128.96.39.10。先與子網掩碼255.255.255.128相與,得128.96.39.0,可見該分組經接口0轉發。 (2)分組的目的IP地址為:128.96.40.12。 ① 與子網掩碼255.255.255.128相與得128.96.40.0,不等于128.96.39.0。 ② 與子網掩碼255.255.255.128相與得128.96.40.0,經查路由表可知,該項分組經R2轉發。 (3)分組的目的IP地址為:128.96.40.151,與子網掩碼255.255.255.128相與后得128.96.40.128,與子網掩碼255.255.255.192相與后得128.96.40.128,經查路由表知,該分組轉發選擇默認路由,經R4轉發。 (4)分組的目的IP地址為:192.4.153.17。與子網掩碼255.255.255.128相與后得192.4.153.0。與子網掩碼255.255.255.192相與后得192.4.153.0,經查路由表知,該分組經R3轉發。 (5)分組的目的IP地址為:192.4.153.90,與子網掩碼255.255.255.128相與后得192.4.153.0。與子網掩碼255.255.255.192相與后得192.4.153.64,經查路由表知,該分組轉發選擇默認路由,經R4轉發。 21某單位分配到一個B類IP地址,其net-id為129.250.0.0.該單位有4000臺機器,分布在16個不同的地點。如選用子網掩碼為255.255.255.0,試給每一個地點分配一個子網掩碼號,并算出每個地點主機號碼的最小值和最大值4000/16=250,平均每個地點250臺機器。如選255.255.255.0為掩碼,則每個網絡所連主機數=28-2=254>250,共有子網數=28-2=254>16,能滿足實際需求。可給每個地點分配如下子網號碼
地點: 子網號(subnet-id) 子網網絡號 主機IP的最小值和最大值
1: 00000001 129.250.1.0 129.250.1.1—129.250.1.254
2: 00000010 129.250.2.0 129.250.2.1—129.250.2.254
3: 00000011 129.250.3.0 129.250.3.1—129.250.3.254
4: 00000100 129.250.4.0 129.250.4.1—129.250.4.254
5: 00000101 129.250.5.0 129.250.5.1—129.250.5.254
6: 00000110 129.250.6.0 129.250.6.1—129.250.6.254
7: 00000111 129.250.7.0 129.250.7.1—129.250.7.254
8: 00001000 129.250.8.0 129.250.8.1—129.250.8.254
9: 00001001 129.250.9.0 129.250.9.1—129.250.9.254
10: 00001010 129.250.10.0 129.250.10.1—129.250.10.254
11: 00001011 129.250.11.0 129.250.11.1—129.250.11.254
12: 00001100 129.250.12.0 129.250.12.1—129.250.12.254
13: 00001101 129.250.13.0 129.250.13.1—129.250.13.254
14: 00001110 129.250.14.0 129.250.14.1—129.250.14.254
15: 00001111 129.250.15.0 129.250.15.1—129.250.15.254
16: 00010000 129.250.16.0 129.250.16.1—129.250.16.254
22..一個數據報長度為4000字節(固定首部長度)。現在經過一個網絡傳送,但此網絡能夠 傳送的最大數據長度為1500字節。試問應當劃分為幾個短些的數據報片?各數據報片的數據字段長度、片偏移字段和MF標志應為何數值? IP數據報固定首部長度為20字節
總長度(字節) 數據長度(字節) MF 片偏移
原始數據報 4000 3980 0 0
數據報片1 1500 1480 1 0
數據報片2 1500 1480 1 185
數據報片3 1040 1020 0 370
23 分兩種情況(使用子網掩碼和使用CIDR)寫出因特網的IP成查找路由的算法。見課本P134、P139
24.試找出可產生以下數目的A類子網的子網掩碼(采用連續掩碼)。
(1)2,(2)6,(3)30,(4)62,(5)122,(6)250.
(1)255.192.0.0,(2)255.224.0.0,(3)255.248.0.0,(4)255.252.0.0,(5)255.254.0.0,(6)255.255.0.0
25.以下有4個子網掩碼。哪些是不推薦使用的?為什么?
(1)176.0.0.0,(2)96.0.0.0,(3)127.192.0.0,(4)255.128.0.0。
只有(4)是連續的1和連續的0的掩碼,是推薦使用的
26.有如下的4個/24地址塊,試進行最大可能性的聚會。
212.56.132.0/24
212.56.133.0/24
212.56.134.0/24
212.56.135.0/24
212=(11010100)2,56=(00111000)2
132=(10000100)2,
133=(10000101)2
134=(10000110)2,
135=(10000111)2
所以共同的前綴有22位,即11010100 00111000 100001,聚合的CIDR地址塊是: 212.56.132.0/22
27.有兩個CIDR地址塊208.128/11和208.130.28/22。是否有那一個地址塊包含了另一個地址?如果有,請指出,并說明理由。
208.128/11的前綴為:11010000 100
208.130.28/22的前綴為:11010000 10000010 000101,它的前11位與208.128/11的前綴是一致的,所以208.128/11地址塊包含了208.130.28/22這一地址塊。
28.已知路由器R1的路由表如表4—12所示。表4-12 習題4-28中路由器R1的路由表地址掩碼 目的網絡地址 下一跳地址 路由器接口
/26 140.5.12.64 180.15.2.5 m2
/24 130.5.8.0 190.16.6.2 m1
/16 110.71.0.0 …… m0
/16 180.15.0.0 …… m2
/16 196.16.0.0 …… m1
默認 默認 110.71.4.5 m0
試畫出個網絡和必要的路由器的連接拓撲,標注出必要的IP地址和接口。對不能確定的情應該指明。圖形見課后答案P380
29.一個自治系統有5個局域網,其連接圖如圖4-55示。LAN2至LAN5上的主機數分別為:
91,150,3和15.該自治系統分配到的IP地址塊為30.138.118/23。試給出每一個局域網的地址塊(包括前綴)。 30.138.118/23–?30.138.0111 011
分配網絡前綴時應先分配地址數較多的前綴題目沒有說LAN1上有幾個主機,但至少需要3個地址給三個路由器用。
LAN3 30.138.118.0/24 30.138.119.0/24
LAN4 30.138.119.200/29 30.138.118.224/27
LAN5 30.138.119.128/26 30.138.118.128/27 - 一個大公司有一個總部和三個下屬部門。公司分配到的網絡前綴是192.77.33/24.公司的網絡布局如圖4-56示。總部共有五個局域網,其中的LAN1-LAN4都連接到路由器R1上,R1再通過LAN5與路由器R5相連。R5和遠地的三個部門的局域網LAN6~LAN8通過廣域網相連。每一個局域網旁邊標明的數字是局域網上的主機數。試給每一個局域網分配一個合適的網絡的前綴。見課后答案P380
31.以下地址中的哪一個和86.32/12匹配:請說明理由。
(1)86.33.224.123:(2)86.79.65.216;(3)86.58.119.74; (4) 86.68.206.154。
86.32/12 ? 86.00100000 下劃線上為12位前綴說明第二字節的前4位在前綴中。
給出的四個地址的第二字節的前4位分別為:0010 ,0100 ,0011和0100。因此只有(1)是匹配的。
32.以下地址中的哪一個地址2.52.90。140匹配?請說明理由。 (1)0/4;(2)32/4;(3)4/6(4)152.0/11
前綴(1)和地址2.52.90.140匹配
2.52.90.140 ? 0000 0010.52.90.140
0/4 ? 0000 0000
32/4 ? 0010 0000
4/6 ? 0000 0100
80/4 ? 0101 0000
33.下面的前綴中的哪一個和地址152.7.77.159及152.31.47.252都匹配?請說明理由。 (1)152.40/13;(2)153.40/9;(3)152.64/12;(4)152.0/11。
前綴(4)和這兩個地址都匹配 - 與下列掩碼相對應的網絡前綴各有多少位?
(1)192.0.0.0;(2)240.0.0.0;(3)255.254.0.0;(4)255.255.255.252。
(1)/2 ; (2) /4 ; (3) /11 ; (4) /30 。 - 已知地址塊中的一個地址是140.120.84.24/20。試求這個地址塊中的最小地址和最大地址。地址掩碼是什么?地址塊中共有多少個地址?相當于多少個C類地址? 140.120.84.24 ? 140.120.(0101 0100).24
最小地址是 140.120.(0101 0000).0/20 (80)
最大地址是 140.120.(0101 1111).255/20 (95)
地址數是4096.相當于16個C類地址。
36.已知地址塊中的一個地址是190.87.140.202/29。重新計算上題。
190.87.140.202/29 ? 190.87.140.(1100 1010)/29
最小地址是 190.87.140.(1100 1000)/29 200
最大地址是 190.87.140.(1100 1111)/29 207
地址數是8.相當于1/32個C類地址。 - 某單位分配到一個地址塊136.23.12.64/26。現在需要進一步劃分為4個一樣大的子網。試問:
(1)每一個子網的網絡前綴有多長?
(2)每一個子網中有多少個地址?
(3)每一個子網的地址是什么?
(4)每一個子網可分配給主機使用的最小地址和最大地址是什么?
(1)每個子網前綴28位。
(2)每個子網的地址中有4位留給主機用,因此共有16個地址。
(3)四個子網的地址塊是:
第一個地址塊136.23.12.64/28,可分配給主機使用的
最小地址:136.23.12.01000001=136.23.12.65/28
最大地址:136.23.12.01001110=136.23.12.78/28
第二個地址塊136.23.12.80/28,可分配給主機使用的
最小地址:136.23.12.01010001=136.23.12.81/28
最大地址:136.23.12.01011110=136.23.12.94/28
第三個地址塊136.23.12.96/28,可分配給主機使用的
最小地址:136.23.12.01100001=136.23.12.97/28
最大地址:136.23.12.01101110=136.23.12.110/28
第四個地址塊136.23.12.112/28,可分配給主機使用的
最小地址:136.23.12.01110001=136.23.12.113/28
最大地址:136.23.12.01111110=136.23.12.126/28 - IGP和EGP這兩類協議的主要區別是什么?
IGP:在自治系統內部使用的路由協議;力求最佳路由
EGP:在不同自治系統便捷使用的路由協議;力求較好路由(不兜圈子)
EGP必須考慮其他方面的政策,需要多條路由。代價費用方面可能可達性更重要。
IGP:內部網關協議,只關心本自治系統內如何傳送數據報,與互聯網中其他自治系統使用什么協議無關。
EGP:外部網關協議,在不同的AS邊界傳遞路由信息的協議,不關心AS內部使用何種協議。
注:IGP主要考慮AS內部如何高效地工作,絕大多數情況找到最佳路由,對費用和代價的有多種解釋。 - 試簡述RIP,OSPF和BGP路由選擇協議的主要特點。
主要特點 RIP OSPF BGP
網關協議 內部 內部 外部
路由表內容 目的網,下一站,距離 目的網,下一站,距離 目的網,完整
路徑
最優通路依據 跳數 費用 多種策略
算法 距離矢量 鏈路狀態 距離矢量
傳送方式 運輸層UDP IP數據報 建立TCP連接
其他 簡單、效率低、跳數為16不可達、好消息傳的快,壞消息傳的慢 效率高、路由器頻繁交換信息,難維持一致性 規模大、統一度量為可達性 - RIP使用UDP,OSPF使用IP,而BGP使用TCP。這樣做有何優點?為什么RIP周期性地和臨站交換路由器由信息而BGP卻不這樣做?
RIP只和鄰站交換信息,使用UDP無可靠保障,但開銷小,可以滿足RIP要求; OSPF使用可靠的洪泛法,直接使用IP,靈活、開銷小;
BGP需要交換整個路由表和更新信息,TCP提供可靠交付以減少帶寬消耗; RIP使用不保證可靠交付的UDP,因此必須不斷地(周期性地)和鄰站交換信息才能使路由信息及時得到更新。但BGP使用保證可靠交付的TCP因此不需要這樣做。 - 假定網絡中的路由器B的路由表有如下的項目(這三列分別表示“目的網絡”、“距離”和“下一跳路由器”)
N1 7 A
N2 2 B
N6 8 F
N8 4 E
N9 4 F
現在B收到從C發來的路由信息(這兩列分別表示“目的網絡”“距離”):
N2 4
N3 8
N6 4
N8 3
N9 5
試求出路由器B更新后的路由表(詳細說明每一個步驟)。
路由器B更新后的路由表如下:
N1 7 A 無新信息,不改變
N2 5 C 相同的下一跳,更新
N3 9 C 新的項目,添加進來
N6 5 C 不同的下一跳,距離更短,更新
N8 4 E 不同的下一跳,距離一樣,不改變
N9 4 F 不同的下一跳,距離更大,不改變 - 假定網絡中的路由器A的路由表有如下的項目(格式同上題):
N1 4 B
N2 2 C
N3 1 F
N4 5 G
現將A收到從C發來的路由信息(格式同上題):
N1 2
N2 1
N3 3
N4 7
試求出路由器A更新后的路由表(詳細說明每一個步驟)。
路由器A更新后的路由表如下:
N1 3 C 不同的下一跳,距離更短,改變
N2 2 C 不同的下一跳,距離一樣,不變
N3 1 F 不同的下一跳,距離更大,不改變
N4 5 G 無新信息,不改變
43.IGMP協議的要點是什么?隧道技術是怎樣使用的?
IGMP可分為兩個階段:
第一階段:當某個主機加入新的多播組時,該主機應向多播組的多播地址發送IGMP 報文,聲明自己要成為該組的成員。本地的多播路由器收到 IGMP 報文后,將組成員關系轉發給因特網上的其他多播路由器。
第二階段:因為組成員關系是動態的,因此本地多播路由器要周期性地探詢本地局域網上的主機,以便知道這些主機是否還繼續是組的成員。只要對某個組有一個主機響應,那么多播路由器就認為這個組是活躍的。但一個組在經過幾次的探詢后仍然沒有一個主機響應,則不再將該組的成員關系轉發給其他的多播路由器。隧道技術:多播數據報被封裝到一個單播IP數據報中,可穿越不支持多播的網絡,到達另一個支持多播的網絡。 - 什么是VPN?VPN有什么特點和優缺點?VPN有幾種類別?
P171-173 - 什么是NAT?NAPT有哪些特點?NAT的優點和缺點有哪些?NAT的優點和缺點有哪些? P173-174
第五章 傳輸層
5—01 試說明運輸層在協議棧中的地位和作用,運輸層的通信和網絡層的通信有什么重要區別?為什么運輸層是必不可少的?
答:運輸層處于面向通信部分的最高層,同時也是用戶功能中的最低層,向它上面的應用層提供服務 運輸層為應用進程之間提供端到端的邏輯通信,但網絡層是為主機之間提供邏輯通信(面向主機,承擔路由功能,即主機尋址及有效的分組交換)。 各種應用進程之間通信需要“可靠或盡力而為”的兩類服務質量,必須由運輸層以復用和分用的形式加載到網絡層。
5—02 網絡層提供數據報或虛電路服務對上面的運輸層有何影響?
答:網絡層提供數據報或虛電路服務不影響上面的運輸層的運行機制。 但提供不同的服務質量。
5—03 當應用程序使用面向連接的TCP和無連接的IP時,這種傳輸是面向連接的還是面向無連接的?
答:都是。這要在不同層次來看,在運輸層是面向連接的,在網絡層則是無連接的。
5—04 試用畫圖解釋運輸層的復用。畫圖說明許多個運輸用戶復用到一條運輸連接上,而這條運輸連接有復用到IP數據報上。
5—05 試舉例說明有些應用程序愿意采用不可靠的UDP,而不用采用可靠的TCP。答:VOIP:由于語音信息具有一定的冗余度,人耳對VOIP數據報損失由一定的承受度,但對傳輸時延的變化較敏感。 有差錯的UDP數據報在接收端被直接拋棄,TCP數據報出錯則會引起重傳,可能
帶來較大的時延擾動。
因此VOIP寧可采用不可靠的UDP,而不愿意采用可靠的TCP。
5—06 接收方收到有差錯的UDP用戶數據報時應如何處理?答:丟棄
5—07 如果應用程序愿意使用UDP來完成可靠的傳輸,這可能嗎?請說明理由答:可能,但應用程序中必須額外提供與TCP相同的功能。
5—08 為什么說UDP是面向報文的,而TCP是面向字節流的?
答:發送方 UDP 對應用程序交下來的報文,在添加首部后就向下交付 IP 層。UDP 對應用層交下來的報文,既不合并,也不拆分,而是保留這些報文的邊界。接收方 UDP 對 IP 層交上來的 UDP 用戶數據報,在去除首部后就原封不動地交付上層的應用進程,一次交付一個完整的報文。
發送方TCP對應用程序交下來的報文數據塊,視為無結構的字節流(無邊界約束,課分拆/合并),但維持各字節
5—09 端口的作用是什么?為什么端口要劃分為三種?
答:端口的作用是對TCP/IP體系的應用進程進行統一的標志,使運行不同操作系統的計算機的應用進程能夠互相通信。熟知端口,數值一般為0~1023.標記常規的服務進程;登記端口號,數值為1024~49151,標記沒有熟知端口號的非常規的服務進程; 5—10 試說明運輸層中偽首部的作用。 答:用于計算運輸層數據報校驗和。
5—11 某個應用進程使用運輸層的用戶數據報UDP,然而繼續向下交給IP層后,又封裝成IP數據報。既然都是數據報,可否跳過UDP而直接交給IP層?哪些功能UDP提供了但IP沒提提供?
答:不可跳過UDP而直接交給IP層IP數據報IP報承擔主機尋址,提供報頭檢錯;只能找到目的主機而無法找到目的進程。UDP提供對應用進程的復用和分用功能,以及提供對數據差分的差錯檢驗。
5—12 一個應用程序用UDP,到IP層把數據報在劃分為4個數據報片發送出去,結果前兩個數據報片丟失,后兩個到達目的站。過了一段時間應用程序重傳UDP,而IP層仍然劃分為4個數據報片來傳送。結果這次前兩個到達目的站而后兩個丟失。試問:在目的站能否將這兩次傳輸的4個數據報片組裝成完整的數據報?假定目的站第一次收到的后兩個數據報片仍然保存在目的站的緩存中。答:不行 重傳時,IP數據報的標識字段會有另一個標識符。 僅當標識符相同的IP數據報片才能組裝成一個IP數據報。前兩個IP數據報片的標識符與后兩個IP數據報片的標識符不同,因此不能組裝成一個IP數據報。
5—13 一個UDP用戶數據的數據字段為8192季節。在數據鏈路層要使用以太網來傳送。試問應當劃分為幾個IP數據報片?說明每一個IP數據報字段長度和片偏移字段的值。答:6個 數據字段的長度:前5個是1480字節,最后一個是800字節。片偏移字段的值分別是:0,1480,2960,4440,5920和7400.
5—14 一UDP用戶數據報的首部十六進制表示是:06 32 00 45 00 1C E2 17.試求源端口、目的端口、用戶數據報的總長度、數據部分長度。這個用戶數據報是從客戶發送給服務器發送給客戶?使用UDP的這個服務器程序是什么?
解:源端口1586,目的端口69,UDP用戶數據報總長度28字節,數據部分長度20字節。 此UDP用戶數據報是從客戶發給服務器(因為目的端口號<1023,是熟知端口)、服務器程序是TFFTP。 5—15 使用TCP對實時話音數據的傳輸有沒有什么問題?使用UDP在傳送數據文件時會有什么問題? 答:如果語音數據不是實時播放(邊接受邊播放)就可以使用TCP,因為TCP傳輸可靠。接收端用TCP講話音數據接受完畢后,可以在以后的任何時間進行播放。但假定是實時傳輸,則必須使用UDP。 UDP不保證可靠交付,但UCP比TCP的開銷要小很多。因此只要應用程序接受這樣 的服務質量就可以使用UDP。 5—16 在停止等待協議中如果不使用編號是否可行?為什么? 答:分組和確認分組都必須進行編號,才能明確哪個分則得到了確認。 5—17 在停止等待協議中,如果收到重復的報文段時不予理睬(即悄悄地丟棄它而其他什么也沒做)是否可行?試舉出具體的例子說明理由。 答: 收到重復幀不確認相當于確認丟失 5—18 假定在運輸層使用停止等待協議。發送發在發送報文段M0后再設定的時間內未收到確認,于是重傳M0,但M0又遲遲不能到達接收方。不久,發送方收到了遲到的對M0的確認,于是發送下一個報文段M1,不久就收到了對M1的確認。接著發送方發送新的報文段M0,但這個新的M0在傳送過程中丟失了。正巧,一開始就滯留在網絡中的M0現在到 達接收方。接收方無法分辨M0是舊的。于是收下M0,并發送確認。顯然,接收方后來收到的M0是重復的,協議失敗了。試畫出類似于圖5-9所示的雙方交換報文段的過程。答: 舊的M0被當成新的M0。 5—19 試證明:當用n比特進行分組的編號時,若接收到窗口等于1(即只能按序接收分組),當僅在發送窗口不超過2n-1時,連接ARQ協議才能正確運行。窗口單位是分組。解:見課后答案。 5—20 在連續ARQ協議中,若發送窗口等于7,則發送端在開始時可連續發送7個分組。因此,在每一分組發送后,都要置一個超時計時器。現在計算機里只有一個硬時鐘。設這7個分組發出的時間分別為t0,t1…t6,且tout都一樣大。試問如何實現這7個超時計時器(這叫軟件時鐘法)? 解:見課后答案。 5—21 假定使用連續ARQ協議中,發送窗口大小事3,而序列范圍[0,15],而傳輸媒體保證在接收方能夠按序收到分組。在某時刻,接收方,下一個期望收到序號是5.試問: (1) 在發送方的發送窗口中可能有出現的序號組合有哪幾種? (2) 接收方已經發送出去的、但在網絡中(即還未到達發送方)的確認分組可能有哪些?說明這些確認分組是用來確認哪些序號的分組。 5—22 主機A向主機B發送一個很長的文件,其長度為L字節。假定TCP使用的MSS有1460字節。 (1) 在TCP的序號不重復使用的條件下,L的最大值是多少? (2) 假定使用上面計算出文件長度,而運輸層、網絡層和數據鏈路層所使用的首部開銷共66字節,鏈路的數據率為10Mb/s,試求這個文件所需的最短發送時間。 解:(1)L_max的最大值是2^32=4GB,G=2^30. (2) 滿載分片數Q={L_max/MSS}取整=2941758發送的總報文數 N=Q(MSS+66)+{(L_max-QMSS)+66}=4489122708+682=4489123390 總字節數是N=4489123390字節,發送4489123390字節需時間為:N8/(1010^6) =3591.3秒,即59.85分,約1小時。 5—23 主機A向主機B連續發送了兩個TCP報文段,其序號分別為70和100。試問: (1) 第一個報文段攜帶了多少個字節的數據? (2) 主機B收到第一個報文段后發回的確認中的確認號應當是多少? (3) 如果主機B收到第二個報文段后發回的確認中的確認號是180,試問A發送的第二個報文段中的數據有多少字節? (4) 如果A發送的第一個報文段丟失了,但第二個報文段到達了B。B在第二個報文段到達后向A發送確認。試問這個確認號應為多少? 解:(1)第一個報文段的數據序號是70到99,共30字節的數據。 (2)確認號應為100.(3)80字節。 (4)70 5—24 一個TCP連接下面使用256kb/s的鏈路,其端到端時延為128ms。經測試,發現吞吐量只有120kb/s。試問發送窗口W是多少?(提示:可以有兩種答案,取決于接收等發出確認的時機)。 解:來回路程的時延等于256ms(=128ms×2).設窗口值為X(注意:以字節為單位),假定一次最大發送量等于窗口值,且發射時間等于256ms,那么,每發送一次都得停下來期待再次得到下一窗口的確認,以得到新的發送許可.這樣,發射時間等于停止等待應答的時間結果,測到的平均吞吐率就等于發送速率的一半,即8X÷(256×1000)=256×0.001X=8192所以,窗口值為8192. 5—25 為什么在TCP首部中要把TCP端口號放入最開始的4個字節? 答:在ICMP的差錯報文中要包含IP首部后面的8個字節的內容,而這里面有TCP首部中的源端口和目的端口。當TCP收到ICMP差錯報文時需要用這兩個端口來確定是哪條連接出了差錯。 5—26 為什么在TCP首部中有一個首部長度字段,而UDP的首部中就沒有這個這個字段? 答:TCP首部除固定長度部分外,還有選項,因此TCP首部長度是可變的。UDP首部長度是固定的。 5—27 一個TCP報文段的數據部分最多為多少個字節?為什么?如果用戶要傳送的數 據的字節長度超過TCP報文字段中的序號字段可能編出的最大序號,問還能否用TCP來傳送? 答:65495字節,此數據部分加上TCP首部的20字節,再加上IP首部的20字節,正好是IP數據報的最大長度65535.(當然,若IP首部包含了選擇,則IP首部長度超過 20字節,這時TCP報文段的數據部分的長度將小于65495字節。) 數據的字節長度超過TCP報文段中的序號字段可能編出的最大序號,通過循環使用序號,仍能用TCP來傳送。 5—28 主機A向主機B發送TCP報文段,首部中的源端口是m而目的端口是n。當B向A發送回信時,其TCP報文段的首部中源端口和目的端口分別是什么?答:分別是n和m。 5—29 在使用TCP傳送數據時,如果有一個確認報文段丟失了,也不一定會引起與該確認報文段對應的數據的重傳。試說明理由。 答:還未重傳就收到了對更高序號的確認。 5—30 設TCP使用的最大窗口為65535字節,而傳輸信道不產生差錯,帶寬也不受限制。若報文段的平均往返時延為20ms,問所能得到的最大吞吐量是多少? 答:在發送時延可忽略的情況下,最大數據率=最大窗口8/平均往返時間=26.2Mb/s。 5—31 通信信道帶寬為1Gb/s,端到端時延為10ms。TCP的發送窗口為65535字節。試問:可能達到的最大吞吐量是多少?信道的利用率是多少? 答: L=65536×8+40×8=524600 C=109b/s L/C=0.0005246s Td=10×10-3s 0.02104864 Throughput=L/(L/C+2×Td)=524600/0.0205246=25.5Mb/s Efficiency=(L/C)//(L/C+2×D)=0.0255 最大吞吐量為25.5Mb/s。信道利用率為25.5/1000=2.55% 5—32 什么是Karn算法?在TCP的重傳機制中,若不采用Karn算法,而是在收到確認時都認為是對重傳報文段的確認,那么由此得出的往返時延樣本和重傳時間都會偏小。試 問:重傳時間最后會減小到什么程度? 答:Karn算法:在計算平均往返時延RTT時,只要報文段重傳了,就不采用其往返時延樣本。 設新往返時延樣本Ti RTT(1)=aRTT(i-1)+(1-a)T(i); RTT^(i)=a?RTT(i-1)+(1-a)T(i)/2; RTT(1)=a0+(1-a)T(1)= (1-a)T(1); RTT^(1)=a0+(1-a)T(1)/2= RTT(1)/2 RTT(2)= aRTT(1)+(1-a)T(2); RTT^(2)= aRTT(1)+(1-a)T(2)/2; = aRTT(1)/2+(1-a)T(2)/2= RTT(2)/2 RTO=betaRTT,在統計意義上,重傳時間最后會減小到使用karn算法的1/2. 5—33 假定TCP在開始建立連接時,發送方設定超時重傳時間是RTO=6s。 (1)當發送方接到對方的連接確認報文段時,測量出RTT樣本值為1.5s。試計算現在的RTO值。 (2)當發送方發送數據報文段并接收到確認時,測量出RTT樣本值為2.5s。試計算現在的RTO值。答: (1)據RFC2988建議,RTO=RTTs+4RTTd。其中RTTd是RTTs的偏差加權均值。 初次測量時,RTTd(1)= RTT(1)/2; 后續測量中,RTTd(i)=(1-Beta)* RTTd(i-1)+Beta¨C12C0.75=4.5(s) (2)RTT(2)=2.5 RTTs(1)=1.5s RTTd(1)=0.75s RTTd(2)=(1-Beta)* RTTd(1)+Beta¨C13C3/4+{1.5-2.5}/4=13/16 RTO(2)=RTTs(1)+4RTTd(2)=1.5+4¨C14C(1-a) +26¨C15Ca+32(1-a)=29.84 RTT3=RTT2¨C16C2+(1500/150000)¨C17C1000=530ms 5段鏈路的發送時延=960/(48¨C18C5*1000=100ms 所以5段鏈路單程端到端時延=530+100=630ms 5—36 重復5-35題,但假定其中的一個陸地上的廣域網的傳輸時延為150ms。答:760ms 5—37 在TCP的擁塞控制中,什么是慢開始、擁塞避免、快重傳和快恢復算法?這里每一種算法各起什么作用? “乘法減小”和“加法增大”各用在什么情況下?答:慢開始: 在主機剛剛開始發送報文段時可先將擁塞窗口cwnd設置為一個最大報文段 MSS的數值。在每收到一個對新的報文段的確認后,將擁塞窗口增加至多一個MSS的數值。用這樣的方法逐步增大發送端的擁塞窗口cwnd,可以分組注入到網絡的速率更加合理。 擁塞避免: 當擁塞窗口值大于慢開始門限時,停止使用慢開始算法而改用擁塞避免算法。擁塞避免算法使發送的擁塞窗口每經過一個往返時延RTT就增加一個MSS的大小。快重傳算法規定:發送端只要一連收到三個重復的ACK即可斷定有分組丟失了,就應該立即重傳丟手的報文段而不必繼續等待為該報文段設置的重傳計時器的超時。快恢復算法:當發送端收到連續三個重復的ACK時,就重新設置慢開始門限 ssthresh與慢開始不同之處是擁塞窗口 cwnd 不是設置為 1,而是設置為ssthresh若收到的重復的AVK為n個(n>3),則將cwnd設置為ssthresh若發送窗口值還容許發送報文段,就按擁塞避免算法繼續發送報文段。若收到了確認新的報文段的ACK,就將cwnd縮小到ssthresh
乘法減小:是指不論在慢開始階段還是擁塞避免階段,只要出現一次超時(即出現一次網絡擁塞),就把慢開始門限值 ssthresh 設置為當前的擁塞窗口值乘以 0.5。當網絡頻繁出現擁塞時,ssthresh 值就下降得很快,以大大減少注入到網絡中的分組數。加法增大:是指執行擁塞避免算法后,在收到對所有報文段的確認后(即經過一個往返時間),就把擁塞窗口 cwnd增加一個 MSS 大小,使擁塞窗口緩慢增大,以防止網絡過早出現擁塞
。
5—38 設TCP的ssthresh的初始值為8(單位為報文段)。當擁塞窗口上升到12時網絡發生了超時,TCP使用慢開始和擁塞避免。試分別求出第1次到第15次傳輸的各擁塞窗口大小。你能說明擁塞控制窗口每一次變化的原因嗎? 答:擁塞窗口大小分別為:1,2,4,8,9,10,11,12,1,2,4,6,7,8,9.
5—39 TCP的擁塞窗口cwnd大小與傳輸輪次n的關系如下所示:
cwnd
n 1
1 2
2 4
3 8
4 16
5 32
6 33
7 34
8 35
9 36
10 37
11 38
12 39
13
cwnd
n 40
14 41
15 42
16 21
17 22
18 23
19 24
20 25
21 26
22 1
23 2
24 4
25 8
26
(1)試畫出如圖5-25所示的擁塞窗口與傳輸輪次的關系曲線。
(2)指明TCP工作在慢開始階段的時間間隔。
(3)指明TCP工作在擁塞避免階段的時間間隔。
(4)在第16輪次和第22輪次之后發送方是通過收到三個重復的確認還是通過超市檢測到丟失了報文段?
(5)在第1輪次,第18輪次和第24輪次發送時,門限ssthresh分別被設置為多大?
(6)在第幾輪次發送出第70個報文段?
(7)假定在第26輪次之后收到了三個重復的確認,因而檢測出了報文段的丟失,那么擁塞窗口cwnd和門限ssthresh應設置為多大?
答:(1)擁塞窗口與傳輸輪次的關系曲線如圖所示(課本后答案):
(2) 慢開始時間間隔:【1,6】和【23,26】
(3) 擁塞避免時間間隔:【6,16】和【17,22】
(4) 在第16輪次之后發送方通過收到三個重復的確認檢測到丟失的報文段。在第22輪次之后發送方是通過超時檢測到丟失的報文段。
(5) 在第1輪次發送時,門限ssthresh被設置為32 在第18輪次發送時,門限ssthresh被設置為發生擁塞時的一半,即21. 在第24輪次發送時,門限ssthresh是第18輪次發送時設置的21(6) 第70報文段在第7輪次發送出。(7) 擁塞窗口cwnd和門限ssthresh應設置為8的一半,即4.
5—40 TCP在進行流量控制時是以分組的丟失作為產生擁塞的標志。有沒有不是因擁塞而引起的分組丟失的情況?如有,請舉出三種情況。
答:當Ip數據報在傳輸過程中需要分片,但其中的一個數據報未能及時到達終點,而終點組裝IP數據報已超時,因而只能丟失該數據報;IP數據報已經到達終點,但終點的緩存沒有足夠的空間存放此數據報;數據報在轉發過程中經過一個局域網的網橋,但網橋在轉發該數據報的幀沒有足夠的差錯空間而只好丟棄。
5—41 用TCP傳送512字節的數據。設窗口為100字節,而TCP報文段每次也是傳送100字節的數據。再設發送端和接收端的起始序號分別選為100和200,試畫出類似于圖5-31的工作示意圖。從連接建立階段到連接釋放都要畫上。
5—42 在圖5-32中所示的連接釋放過程中,主機B能否先不發送ACK=x+1的確認? (因為后面要發送的連接釋放報文段中仍有ACK=x+1這一信息)
答:如果B不再發送數據了,是可以把兩個報文段合并成為一個,即只發送FIN+ACK報文段。但如果B還有數據報要發送,而且要發送一段時間,那就不行,因為A遲遲收不到確認,就會以為剛才發送的FIN報文段丟失了,就超時重傳這個FIN報文段,浪費網絡資源。
5—43 在圖(5-33)中,在什么情況下會發生從狀態LISTEN到狀態SYN_SENT,以及從狀
態SYN_ENT到狀態SYN_RCVD的變遷?
答:當A和B都作為客戶,即同時主動打開TCP連接。這時的每一方的狀態變遷都是: CLOSED—-àSYN-SENT—àSYN-RCVD–àESTABLISHED
5—44 試以具體例子說明為什么一個運輸連接可以有多種方式釋放。可以設兩個互相通信的用戶分別連接在網絡的兩結點上。
答:設A,B建立了運輸連接。協議應考慮一下實際可能性:
A或B故障,應設計超時機制,使對方退出,不至于死鎖;
A主動退出,B被動退出
B主動退出,A被動退出
5—45 解釋為什么突然釋放運輸連接就可能會丟失用戶數據,而使用TCP的連接釋放方法就可保證不丟失數據。答:當主機1和主機2之間連接建立后,主機1發送了一個TCP數據段并正確抵達主機2,接著
主機1發送另一個TCP數據段,這次很不幸,主機2在收到第二個TCP數據段之前發出了釋放連接請求,如果就這樣突然釋放連接,顯然主機1發送的第二個TCP報文段會丟失。而使用TCP的連接釋放方法,主機2發出了釋放連接的請求,那么即使收到主機1的確認后,只會釋放主機2到主機1方向的連接,即主機2不再向主機1發送數據,而仍然可接受主機1發來的數據,所以可保證不丟失數據。
5—46 試用具體例子說明為什么在運輸連接建立時要使用三次握手。說明如不這樣做可能會出現什么情況。答: 3次握手完成兩個重要的功能,既要雙方做好發送數據的準備工作(雙方都知道彼此已
準備好),也要允許雙方就初始序列號進行協商,這個序列號在握手過程中被發送和確認。
假定B給A發送一個連接請求分組,A收到了這個分組,并發送了確認應答分組。按照兩
次握手的協定,A認為連接已經成功地建立了,可以開始發送數據分組。可是,B在A的應答分組在傳輸中被丟失的情況下,將不知道A是否已準備好,不知道A建議什么樣的序列號,B甚至懷疑A是否收到自己的連接請求分組,在這種情況下,B認為連接還未建立成功,將忽略A發來的任何數據分組,只等待連接確認應答分組。 而A發出的分組超時后,重復發送同樣的分組。這樣就形成了死鎖。
5—47 一個客戶向服務器請求建立TCP連接。客戶在TCP連接建立的三次握手中的最后一個報文段中捎帶上一些數據,請求服務器發送一個長度為L字節的文件。假定:(1)客戶和服務器之間的數據傳輸速率是R字節/秒,客戶與服務器之間的往返時間是RTT(固定值)。
(2)服務器發送的TCP報文段的長度都是M字節,而發送窗口大小是nM字節。(3)所有傳送的報文段都不會出錯(無重傳),客戶收到服務器發來的報文段后就及時發送確認。(4)所有的協議首部開銷都可忽略,所有確認報文段和連接建立階段的報文段的長度都可忽略(即忽略這些報文段的發送時間)。試證明,從客戶開始發起連接建立到接收服務器發送的整個文件多需的時間T是: T=2RTT+L/R 當nM>R(RTT)+M
或 T=2RTT+L/R+(K-1)[M/R+RTT-nM/R] 當nM<R(RTT)+M
其中,K=[L/nM],符號[x]表示若x不是整數,則把x的整數部分加1。
解:發送窗口較小的情況,發送一組nM個字節后必須停頓下來,等收到確認后繼續發送。共需K=[L/nM]個周期:其中 前K-1個周期每周期耗時M/R+RTT,共耗時(K-1)(M/R+RTT) 第K周期剩余字節數Q=L-(K-1)nM,需耗時Q/R 總耗時=2RTT+(K-1)M/(R+RTT)+Q/R=2*RTT+L/R+(K-1)[( M/R+RTT)-nM/R]
第六章 應用層
6-01 因特網的域名結構是怎么樣的?它與目前的電話網的號碼結構有何異同之處?答:(1)域名的結構由標號序列組成,各標號之間用點隔開:
… . 三級域名 . 二級域名 . 頂級域名
各標號分別代表不同級別的域名。
(2)電話號碼分為國家號結構分為(中國 +86)、區號、本機號。
6-02 域名系統的主要功能是什么?域名系統中的本地域名服務器、根域名服務器、頂級域名服務器以及權限域名權服務器有何區別?
答:域名系統的主要功能:將域名解析為主機能識別的IP地址。
因特網上的域名服務器系統也是按照域名的層次來安排的。每一個域名服務器都只對域名體系中的一部分進行管轄。共有三種不同類型的域名服務器。即本地域名服務器、根域名服務器、授權域名服務器。當一個本地域名服務器不能立即回答某個主機的查詢時,該本地域名服務器就以DNS客戶的身份向某一個根域名服務器查詢。若根域名服務器有被查詢主機的信息,就發送DNS回答報文給本地域名服務器,然后本地域名服務器再
回答發起查詢的主機。但當根域名服務器沒有被查詢的主機的信息時,它一定知道某個保存有被查詢的主機名字映射的授權域名服務器的IP地址。通常根域名服務器用來管轄頂級域。根域名服務器并不直接對頂級域下面所屬的所有的域名進行轉換,但它一定能夠找到下面的所有二級域名的域名服務器。每一個主機都必須在授權域名服務器處注冊登記。通常,一個主機的授權域名服務器就是它的主機ISP的一個域名服務器。授權域名服務器總是能夠將其管轄的主機名轉換為該主機的IP地址。因特網允許各個單位根據本單位的具體情況將本域名劃分為若干個域名服務器管轄區。一般就在各管轄區中設置相應的授權域名服務器。
6-03 舉例說明域名轉換的過程。域名服務器中的高速緩存的作用是什么?答:(1)把不方便記憶的IP地址轉換為方便記憶的域名地址。
(2)作用:可大大減輕根域名服務器的負荷,使因特網上的 DNS 查詢請求和回答報文的數量大為減少。
6-04 設想有一天整個因特網的DNS系統都癱瘓了(這種情況不大會出現),試問還可以給朋友發送電子郵件嗎?
答:不能;
6-05 文件傳送協議FTP的主要工作過程是怎樣的?為什么說FTP是帶外傳送控制信息?主進程和從屬進程各起什么作用?
答:(1)FTP使用客戶服務器方式。一個FTP服務器進程可同時為多個客戶進程提供服務。
FTP 的服務器進程由兩大部分組成:一個主進程,負責接受新的請求;另外有若干個從屬進程,負責處理單個請求。
主進程的工作步驟:
1、打開熟知端口(端口號為 21),使客戶進程能夠連接上。
2、等待客戶進程發出連接請求。
3、啟動從屬進程來處理客戶進程發來的請求。從屬進程對客戶進程的請求處理完畢后即終止,但從屬進程在運行期間根據需要還可能創建其他一些子進程。
4、回到等待狀態,繼續接受其他客戶進程發來的請求。主進程與從屬進程的處理是并發地進行。FTP使用兩個TCP連接。
控制連接在整個會話期間一直保持打開,FTP 客戶發出的傳送請求通過控制連接發送給服務器端的控制進程,但控制連接不用來傳送文件。
實際用于傳輸文件的是“數據連接”。服務器端的控制進程在接收到 FTP 客戶發送來的文件傳輸請求后就創建“數據傳送進程”和“數據連接”,用來連接客戶端和服務器端的數據傳送進程。
數據傳送進程實際完成文件的傳送,在傳送完畢后關閉“數據傳送連接”并結束運行。
6-06 簡單文件傳送協議TFTP與FTP的主要區別是什么?各用在什么場合?答:(1)文件傳送協議 FTP 只提供文件傳送的一些基本的服務,它使用 TCP 可靠的運輸服務。FTP 的主要功能是減少或消除在不同操作系統下處理文件的不兼容性。FTP 使用客戶服務器方式。一個 FTP 服務器進程可同時為多個客戶進程提供服務。FTP的服務器進程由兩大部分組成:一個主進程,負責接受新的請求;另外有若干個從屬進程,負責處理單個請求。TFTP 是一個很小且易于實現的文件傳送協議。TFTP 使用客戶服務器方式和使用 UDP 數據報,因此 TFTP 需要有自己的差錯改正措施
TFTP 只支持文件傳輸而不支持交互。TFTP 沒有一個龐大的命令集,沒有列目錄的功能,也不能對用戶進行身份鑒別。
6-07 遠程登錄TELNET的主要特點是什么?什么叫做虛擬終端NVT?
答:(1)用戶用 TELNET 就可在其所在地通過 TCP 連接注冊(即登錄)到遠地的另一個主機上(使用主機名或 IP 地址)。TELNET 能將用戶的擊鍵傳到遠地主機,同時也能將遠地主機的輸出通過 TCP 連接返回
到用戶屏幕。這種服務是透明的,因為用戶感覺到好像鍵盤和顯示器是直接連在遠地主機上。
(2)TELNET定義了數據和命令應該怎樣通過因特網,這些定義就是所謂的網絡虛擬終端NVT。
6-08 解釋以下名詞。各英文縮寫詞的原文是什么?
www,URL.HTTP,HTML,CGI,瀏覽器,超文本,超媒體,超鏈,頁面,活動文檔,搜索引擎。答: www:萬維網WWW(World Wide Web)并非某種特殊的計算機網絡。萬維網是一個大規模
的、聯機式的信息儲藏所,英文簡稱為Web.萬維網用鏈接的方法能非常方便地從因特網上的一個站點訪問另一個站點(也就是所謂的“鏈接到另一個站點”),從而主動地按需獲取豐富的信息。URL:為了使用戶清楚地知道能夠很方便地找到所需的信息,萬維網使用統一資源定位符URL(Uniform Resource Locator)來標志萬維網上的各種文檔,并使每一個文檔在整
個因特網的范圍內具有唯一的標識符URL.
HTTP:為了實現萬維網上各種鏈接,就要使萬維網客戶程序與萬維網服務器程序之間的交互遵守嚴格的協議,這就是超文本傳送協議HTTP.HTTP是一個應用層協議,它使用TCP連接進行可靠的傳送。CGI:通用網關接口CGI是一種標準,它定義了動態文檔應該如何創建,輸入數據應如何
提供給應用程序,以及輸出結果意如何使用。CGI程序的正式名字是CGI腳本。按照計算機科學的一般概念。瀏覽器:一個瀏覽器包括一組客戶程序、一組解釋程序,以及一個控制程序。
超文本:超文本的基本特征就是可以超鏈接文檔;你可以指向其他位置,該位置可以在當前的文檔中、局域網中的其他文檔,也可以在因特網上的任何位置的文檔中。這些文檔組成了一個雜亂的信息網。目標文檔通常與其來源有某些關聯,并且豐富了來源;來源中的鏈接元素則將這種關系傳遞給瀏覽者。超媒體:超級媒體的簡稱,是超文本(hypertext)和多媒體在信息瀏覽環境下的結合。超鏈:超鏈接可以用于各種效果。超鏈接可以用在目錄和主題列表中。瀏覽者可以在瀏覽器屏幕上單擊鼠標或在鍵盤上按下按鍵,從而選擇并自動跳轉到文檔中自己感興趣的那個主題,或跳轉到世界上某處完全不同的集合中的某個文檔。超鏈接(hyper text),或者按照標準叫法稱為錨(anchor),是使用?標簽標記的,可以用兩種方式表
示。錨的一種類型是在文檔中創建一個熱點,當用戶激活或選中(通常是使用鼠標)這個熱點時,會導致瀏覽器進行鏈接。
頁面:頁面,類似于單篇文章頁面,但是和單篇文章不同的是:1.每個頁面都可以自定義樣式,而單篇文章則共用一個樣式。2.頁面默認情況一般不允許評論,而單篇文章默認情況允許評論。3.頁面會出現在水平導航欄上,不會出現在分類和存檔里,而單篇文章會出現在分類和存檔里,不會出現在水平導航欄上。活動文檔:即正在處理的文檔。在 Microsoft Word 中鍵入的文本或插入的圖形將出現在活動文檔中。活動文檔的標題欄是突出顯示的。一個基于Windows的、嵌入到瀏覽器中的非HTML應用程序,提供了從瀏覽器界面訪問這些應用程序的 功能的方法。搜索引擎:搜索引擎指能夠自動從互聯網上搜集信息,經過整理以后,提供給用戶進行
查閱的系統。
6-09 假定一個超鏈從一個萬維網文檔鏈接到另一個萬維網文檔時,由于萬維網文檔上出現了差錯而使得超鏈只想一個無效的計算機名字。這是瀏覽器將向用戶報告什么?答:404 Not Found。
6-10 假定要從已知的URL獲得一個萬維網文檔。若該萬維網服務器的Ip地址開始時并不知道。試問:除 HTTP外,還需要什么應用層協議和傳輸層協議? 答: 應用層協議需要的是DNS。
運輸層協議需要的是UDP(DNS)使用和TCP(HTTP使用)。
6-11 你所使用的瀏覽器的高速緩存有多大?請進行一個試驗:訪問幾個萬維網文檔,然后將你的計算機與網絡斷開,然后再回到你剛才訪問過的文檔。你的瀏覽器的高速緩存能夠存放多少各頁面?
6-12 什么是動態文檔?試舉出萬維網使用動態文檔的一些例子。
答: Dynamic document 動態文檔: 與www文檔有關的計算機程序,它能生成所需的文檔。當瀏覽器需要動態文檔時,服務器就運行該程序并發送輸出到瀏覽器。動態文檔程序對每個需求可生成不同的輸出。
6-13 瀏覽器同時打開多少個TCP連接進行瀏覽的優缺點如何?請說明理由。答:優點:簡單明了方便。缺點:卡的時候容易死機
6-14 當使用鼠標點擊一個萬維網文檔是,若該文檔出來有文本外,還有一個本地.gif圖像和兩個遠地.gif圖像。試問;需要使用那個應用程序,以及需要建立幾次UDP連接和幾次TCP連接?答:若使用HTTP/1.0,需要建立0次UDP連接,4次TCP連接。若使用HTTP/1.1,需要建立0次UDP連接,1次TCP連接。
6-15 假定你在瀏覽器上點擊一個URL,但這個URL的ip地址以前并沒有緩存在本地主機上。因此需要用DNS自動查找和解析。假定要解析到所要找的URL的ip地址共經過n個DNS服務器,所經過的時間分別是RTT1,RTT2,……RTTn。假定從要找的網頁上只需要讀取一個很小的圖片(即忽略這個小圖片的傳輸時間)。從本地豬寄到這個網頁的往返時間是
RTTw.試問從點擊這個URL開始,一直到本地主機的屏幕上出現所讀取的小圖片,一共需要經過多少時間? 解:解析IP地址需要時間是:RTT1+RTT2+…+RTTn。 建立TCP連接和請求萬維網文檔需要2RTTw。
6-16 在上題中,假定同一臺服務器的HTML文件中又鏈接了三個非常小的對象。若忽略這些對象的發送時間,試計算客戶點擊讀取這些對象所需的時間。
(1)沒有并行TCP連接的非持續HTTP;
(2)使用并行TCP連接的非持續HTTP;
(3)流水線方式的持續HTTP。
解:(1)所需時間=RTT1+RTT2+…+RTTn+8RTTw。
(2)所需時間=RTT1+RTT2+…+RTTn+4RTTw。
(3)所需時間=RTT1+RTT2+…+RTTn+3RTTw。
6-17 在瀏覽器中應當有幾個可選解釋程序。試給出一些可選解釋程序的名稱。 答:在瀏覽器中,HTML解釋程序是必不可少的,而其他的解釋程序則是可選的。如java可選解釋程序,但是在運行java的瀏覽器是則需要兩個解釋程序,即HTML解釋程序和Java小應用程序解釋程序。
6-18 一個萬維網網點有1000萬個頁面,平均每個頁面有10個超鏈,讀取一個頁面平均要100ms。問要檢索整個網點所需的最少時間。 答:t=10010-3101000104 =107 s
6-19 搜索引擎可分為哪兩種類型?各有什么特點?
答:搜索引擎的種類很多,大體上可劃分為兩大類,即全文檢索搜索引擎和分類目錄搜索引擎。全文檢索搜索引擎是一種純技術型的檢索工具。它的工作原理是通過搜索軟件到因特網上的各網站收集信息,找到一個網站后可以從這個網站再鏈接到另一個網站。然后按照一定的規則建立一個很大的在線數據庫供用戶查詢。用戶在查詢時只要輸入關鍵詞,就從已經建立的索引數據庫上進行查詢(并不是實時地在因特網上檢索到的信息)。 分類目錄搜索引擎并不采集網站的任何信息,而是利用各網站向搜索引擎提交的網站信息時填寫的關鍵詞和網站描述等信息,經過人工審核編輯后,如果認為符合網站登錄的條件,則輸入到分類目錄的數據庫中,供網上用戶查詢。
6-20 試述電子郵件的最主要的組成部件。用戶代理UA的作用是什么?沒有UA行不行?
答: 電子郵件系統的最主要組成部件:用戶代理、郵件服務器、以及電子郵件使用的協議。UA就是用戶與電子郵件系統的接口。用戶代理使用戶能夠通過一個很友好的接口來發送和接收郵件。沒有UA不行。因為并非所有的計算機都能運行郵件服務器程序。有些計算機可能沒有足
夠的存儲器來運行允許程序在后臺運行的操作系統,或是可能沒有足夠的CPU能力來運
行郵件服務器程序。更重要的是,郵件服務器程序必須不間斷地運行,每天24小時都必須不間斷地連接在因特網上,否則就可能使很多外面發來的郵件丟失。這樣看來,讓用戶的PC機運行郵件服務器程序顯然是很不現實的。
6-21 電子郵件的信封和內容在郵件的傳送過程中起什么作用?和用戶的關系如何? 答:一個電子郵件分為信封和內容兩大部分。電子郵件的傳輸程序根據郵件信封上的信息(收信人地址)來傳送郵件。RFC822只規定了郵件內容中的首部格式,而對郵件的主體部分則讓用戶自由撰寫。用戶填寫好首部后,郵件系統將自動地將所需的信息提取出來并寫在信封上。
6-22 電子郵件的地址格式是怎樣的?請說明各部分的意思。
答:TCP/IP 體系的電子郵件系統規定電子郵件地址的格式如下:
收信人郵箱名@郵箱所在主機的域名
符號“@”讀作“at”,表示“在”的意思。例如,電子郵件地址
xiexiren@tsinghua.org.cn
6-23 試簡述SMTP通信的三個階段的過程。
答:1. 連接建立:連接是在發送主機的 SMTP 客戶和接收主機的 SMTP 服務器之間建立的。SMTP不使用中間的郵件服務器。 2. 郵件傳送。3. 連接釋放:郵件發送完畢后,SMTP 應釋放 TCP 連接。
6-24 試述郵局協議POP的工作過程。在電子郵件中,為什么需要使用POP和SMTP這兩個協議?IMAP與POP有何區別? 答:POP 使用客戶機服務器的工作方式。在接收郵件的用戶的PC 機中必須運行POP 客戶機程序,而在其ISP 的郵件服務器中則運行POP 服務器程序。POP 服務器
只有在用戶輸入鑒別信息(用戶名和口令)后才允許對郵箱進行讀取。POP 是一個脫機協議,所有對郵件的處理都在用戶的PC 機上進行;IMAP 是一個聯機協議,用戶可以操縱ISP 的郵件服務器的郵箱。
6-25 MIME與SMTP的關系是什么的?什么是quoted-printable編碼和base64編碼?答: MIME全稱是通用因特網郵件擴充MIME。它并沒有改動或取代SMTP。MIME的意圖是繼續使用目前的RFC 822格式,但增加了郵件主體的結構,并定義了傳送非ASCII碼的編碼規則。也就是說,MIME郵件可以在現有的電子郵件程序和協議下傳送。下圖表明了MIME和SMTP的關系: quoted-printable編碼:對于所有可打印的ASCII碼,除特殊字符等號外,都不改變。等號和不可打印的ASCII碼以及非ASCII碼的數據的編碼方法是:先將每個字節的二進制代碼用兩個十六進制數字表示,然后在前面再加上一個等號。base64編碼是先把二進制代碼劃分為一個24位長的單元,然后把每個24位單元劃分為4個6位組。每一個6位組按以下方法替換成ASCII碼。6位的二進制代碼共有64種不同的值
,從1到63。用A表示0,用B表示1,等等。26個大寫字母排列完畢后,接下去再排26個小寫字母,再后面是10個數字,最后用+表示62,而用/表示63。再用兩個連在一起的等號==和一個等號=分別表示最后一組的代碼只有8位或16位。回車和換行都忽略,它們可在任何地方插入。
6-26 一個二進制文件共3072字節長,若使用base64編碼,并且每發送完80字節就插入一個回車符CR和一個換行符LF,問一共發送了多少個字節? 解答:在base64 編碼方案中,24 比特的組被分成 4 個6 比特單位,每個單位都作為一個合法的ASCII 字符發送。編碼規則是A 表示0,B 表示l 等等,接著是26 個小寫字母表示26 到51,10 個數字(0 到9)表示52 到61,最后,+和/分別表示62 和63。=和= =分別用來指示最后一組僅包含8位或16位。回 車和換行被忽略不計,因 此可以任意插入它們來保持一行足夠短。在本題中,base 64 編碼將把報文劃分成1024 個單元,每個單元3 字節長。每個單元被編碼為4 個字節,所以共有4096 個字節。如果把這些字節每80 字節劃分為一行,將需要52 行,所以需要加52 個CR 和52 個LF。4096+52×2=4200。綜上所述,該二進制文件用base 64 編碼將會有4200 字節長。
6-27 試將數據 11001100 10000001 00111000進行base64編碼,并得到最后傳輸的ASCII數據。解: 對應的ASCII數據為zIE4,對應的二進制代碼為: 01111010 01001001 01000101 00110100
6-28 試將數據01001100 10011101 00111001進行quoted-printable編碼,并得出最后傳送的ASCII數據。這樣的數據用quoted-printable編碼后其編碼開銷有多大? 解:01001100 00111101 00111001 01000100 00111001 編碼開銷為66.7%
6-29 電子郵件系統需要將眾的電子郵件地址編成目錄以便于查找,要建立這種目錄應將人名劃分為標準部分(例如,姓,名)。若要形成一個國際標準,那么必須解決哪些問題?答:非常困難。例如,人名的書寫方法,很多國家(如英、美等西方國家)是先書寫姓。但像中國或日本等國家則是先書寫姓再寫名。有些國家的一些人還有中間的名。稱呼也有非常多種類。還有各式各樣的頭銜。很難有統一的格式。
6-30 電子郵件系統使用TCP傳送郵件。為什么有時我們會遇到郵件發送失敗的情況?為什么有時對方會收不到我們發送的郵件?答:
有時對方的郵件服務器不工作,郵件就發送不出去。對方的郵件服務器出故障也會使郵件丟失。
6-31 基于萬維網的電子郵件系統有什么特點?在傳送郵電時使用什么協議?答:特點:不管在什么地方,只要能上網,在打開萬維網瀏覽器后,就可以收發電子郵件。這時,郵件系統中的用戶代理就是普通的萬維網。 電子郵件從 A 發送到網易郵件服務器是使用 HTTP 協議。兩個郵件服務器之間的傳送使用 SMTP。郵件從新浪郵件服務器傳送到 B 是使用 HTTP 協議。
6-32 DHCP協議用在什么情況下?當一臺計算機第一次運行引導程序時,其ROP中有沒有該IP地址,子網掩碼或某個域名服務器的IP地址? 答:動態主機配置協議 DHCP 提供了即插即用連網的機制。這種機制允許一臺計算機加入新的網絡和獲取IP地址而不用手工參與。
6-33 什么是網絡管理?為什么說網絡管理是當今網絡領域中的熱鬧課題?答:網絡管理即網絡的運行、處理、維護(Maintenance)、服務提供等所需要的各種活動。網絡管理是控制一個復雜的計算機網絡使得它具有最高的效率和生產力的過程。
6-34 解釋下列術語,網絡元素,被管對象,管理進程,代理進程和管理庫答:網絡元素:被管對象有時可稱為網絡元素。被管對象:在每一個被管設備中有許多被管對象,被管對象可以是被管設備中的某個硬件(例如,一塊網絡接口卡),也可以是某些硬件或軟件(例如,路由選擇協議)的配置參數集合。管理進程:管理程序在運行時就成為管理進程。代理進程:在每一個被管理設備中都要運行一個程序以便和管理站中的管理程序進行通信。這些運行著的程序叫作網絡管理代理程序。管理庫:在被管理的實體中創建了命名對象,并規定了其類型。
6-35 SNMP使用UDP傳送報文,為什么不使用TCP? 答:使用UDP是為了提高網管的效率
6-36 為什么SNMP的管理進程使用輪詢掌握全網狀態用于正常情況而代理進程用陷阱向管理進程報告屬于較少發生的異常情況?答:使用輪詢以維持對網絡資源的實時監視,系統簡單并限制通信量。陷阱的中斷方式
更靈活、快