精品午夜福利中文字av_国产成人综合网_av毛片免费观看网站_欧美影视国产综合_野花香视频中文免费观看_亚洲无码要在线视频_又粗又大又用力大交换好大好爽小静_欧美贵妇v办公室高跟鞋_亚洲国产高清a∨网站_免费中文少妇亚洲

知ing

計(jì)算機(jī)網(wǎng)絡(luò)(第6版)

謝希仁 編 / 電子工業(yè)出版社

海之館的比目魚(yú) 上傳

查看本書(shū)

501?試說(shuō)明運(yùn)輸層在協(xié)議棧中的地位和作用,運(yùn)輸層的通信和網(wǎng)絡(luò)層的通信有什么重要區(qū)別?為什么運(yùn)輸層是必不可少的?

答:運(yùn)輸層處于面向通信部分的最高層,同時(shí)也是用戶(hù)功能中的最低層,向它上面的應(yīng)用層提供服務(wù)

運(yùn)輸層為應(yīng)用進(jìn)程之間提供端到端的邏輯通信,但網(wǎng)絡(luò)層是為主機(jī)之間提供邏輯通信(面向主機(jī),承擔(dān)路由功能,即主機(jī)尋址及有效的分組交換)。

各種應(yīng)用進(jìn)程之間通信需要“可靠或盡力而為”的兩類(lèi)服務(wù)質(zhì)量,必須由運(yùn)輸層以復(fù)用和分用的形式加載到網(wǎng)絡(luò)層。

502?網(wǎng)絡(luò)層提供數(shù)據(jù)報(bào)或虛電路服務(wù)對(duì)上面的運(yùn)輸層有何影響?

答:網(wǎng)絡(luò)層提供數(shù)據(jù)報(bào)或虛電路服務(wù)不影響上面的運(yùn)輸層的運(yùn)行機(jī)制。

但提供不同的服務(wù)質(zhì)量。

503?當(dāng)應(yīng)用程序使用面向連接的TCP和無(wú)連接的IP時(shí),這種傳輸是面向連接的還是面向無(wú)連接的?

答:都是。這要在不同層次來(lái)看,在運(yùn)輸層是面向連接的,在網(wǎng)絡(luò)層則是無(wú)連接的。

504?試用畫(huà)圖解釋運(yùn)輸層的復(fù)用。畫(huà)圖說(shuō)明許多個(gè)運(yùn)輸用戶(hù)復(fù)用到一條運(yùn)輸連接上,而這條運(yùn)輸連接有復(fù)用到IP數(shù)據(jù)報(bào)上。

505?試舉例說(shuō)明有些應(yīng)用程序愿意采用不可靠的UDP,而不用采用可靠的TCP

答:VOIP:由于語(yǔ)音信息具有一定的冗余度,人耳對(duì)VOIP數(shù)據(jù)報(bào)損失由一定的承受度,但對(duì)傳輸時(shí)延的變化較敏感。

有差錯(cuò)的UDP數(shù)據(jù)報(bào)在接收端被直接拋棄,TCP數(shù)據(jù)報(bào)出錯(cuò)則會(huì)引起重傳,可能帶來(lái)較大的時(shí)延擾動(dòng)。

因此VOIP寧可采用不可靠的UDP,而不愿意采用可靠的TCP。

506?接收方收到有差錯(cuò)的UDP用戶(hù)數(shù)據(jù)報(bào)時(shí)應(yīng)如何處理?

答:丟棄

507?如果應(yīng)用程序愿意使用UDP來(lái)完成可靠的傳輸,這可能嗎?請(qǐng)說(shuō)明理由

答:可能,但應(yīng)用程序中必須額外提供與TCP相同的功能。

508?為什么說(shuō)UDP是面向報(bào)文的,而TCP是面向字節(jié)流的?

答:發(fā)送方?UDP?對(duì)應(yīng)用程序交下來(lái)的報(bào)文,在添加首部后就向下交付?IP?層。UDP?對(duì)應(yīng)用層交下來(lái)的報(bào)文,既不合并,也不拆分,而是保留這些報(bào)文的邊界。

接收方?UDP?對(duì)?IP?層交上來(lái)的?UDP?用戶(hù)數(shù)據(jù)報(bào),在去除首部后就原封不動(dòng)地交付上層的應(yīng)用進(jìn)程,一次交付一個(gè)完整的報(bào)文。

發(fā)送方TCP對(duì)應(yīng)用程序交下來(lái)的報(bào)文數(shù)據(jù)塊,視為無(wú)結(jié)構(gòu)的字節(jié)流(無(wú)邊界約束,可分拆/合并),但維持各字節(jié)

509?端口的作用是什么?為什么端口要?jiǎng)澐譃槿N?

答:端口的作用是對(duì)TCP/IP體系的應(yīng)用進(jìn)程進(jìn)行統(tǒng)一的標(biāo)志,使運(yùn)行不同操作系統(tǒng)的計(jì)算機(jī)的應(yīng)用進(jìn)程能夠互相通信。

熟知端口,數(shù)值一般為0~1023.標(biāo)記常規(guī)的服務(wù)進(jìn)程;

登記端口號(hào),數(shù)值為1024~49151,標(biāo)記沒(méi)有熟知端口號(hào)的非常規(guī)的服務(wù)進(jìn)程;

510?試說(shuō)明運(yùn)輸層中偽首部的作用。

答:用于計(jì)算運(yùn)輸層數(shù)據(jù)報(bào)校驗(yàn)和。

511?某個(gè)應(yīng)用進(jìn)程使用運(yùn)輸層的用戶(hù)數(shù)據(jù)報(bào)UDP,然而繼續(xù)向下交給IP層后,又封裝成IP數(shù)據(jù)報(bào)。既然都是數(shù)據(jù)報(bào),可否跳過(guò)UDP而直接交給IP?哪些功能UDP提供了但IP沒(méi)提提供?

答:不可跳過(guò)UDP而直接交給IP

IP數(shù)據(jù)報(bào)IP報(bào)承擔(dān)主機(jī)尋址,提供報(bào)頭檢錯(cuò);只能找到目的主機(jī)而無(wú)法找到目的進(jìn)程。

UDP提供對(duì)應(yīng)用進(jìn)程的復(fù)用和分用功能,以及提供對(duì)數(shù)據(jù)差分的差錯(cuò)檢驗(yàn)。

512?一個(gè)應(yīng)用程序用UDP,到IP層把數(shù)據(jù)報(bào)在劃分為4個(gè)數(shù)據(jù)報(bào)片發(fā)送出去,結(jié)果前兩個(gè)數(shù)據(jù)報(bào)片丟失,后兩個(gè)到達(dá)目的站。過(guò)了一段時(shí)間應(yīng)用程序重傳UDP,而IP層仍然劃分為4個(gè)數(shù)據(jù)報(bào)片來(lái)傳送。結(jié)果這次前兩個(gè)到達(dá)目的站而后兩個(gè)丟失。試問(wèn):在目的站能否將這兩次傳輸?shù)?/span>4個(gè)數(shù)據(jù)報(bào)片組裝成完整的數(shù)據(jù)報(bào)?假定目的站第一次收到的后兩個(gè)數(shù)據(jù)報(bào)片仍然保存在目的站的緩存中。

答:不行

重傳時(shí),IP數(shù)據(jù)報(bào)的標(biāo)識(shí)字段會(huì)有另一個(gè)標(biāo)識(shí)符。

僅當(dāng)標(biāo)識(shí)符相同的IP數(shù)據(jù)報(bào)片才能組裝成一個(gè)IP數(shù)據(jù)報(bào)。

前兩個(gè)IP數(shù)據(jù)報(bào)片的標(biāo)識(shí)符與后兩個(gè)IP數(shù)據(jù)報(bào)片的標(biāo)識(shí)符不同,因此不能組裝成一個(gè)IP數(shù)據(jù)報(bào)。

513?一個(gè)UDP用戶(hù)數(shù)據(jù)的數(shù)據(jù)字段為8192季節(jié)。在數(shù)據(jù)鏈路層要使用以太網(wǎng)來(lái)傳送。試問(wèn)應(yīng)當(dāng)劃分為幾個(gè)IP數(shù)據(jù)報(bào)片?說(shuō)明每一個(gè)IP數(shù)據(jù)報(bào)字段長(zhǎng)度和片偏移字段的值。

答:6個(gè)

數(shù)據(jù)字段的長(zhǎng)度:前5個(gè)是1480字節(jié),最后一個(gè)是800字節(jié)。

片偏移字段的值分別是:0,1480,29604440,59207400.

514?UDP用戶(hù)數(shù)據(jù)報(bào)的首部十六進(jìn)制表示是:06 32 00 45 00 1C E2 17.試求源端口、目的端口、用戶(hù)數(shù)據(jù)報(bào)的總長(zhǎng)度、數(shù)據(jù)部分長(zhǎng)度。這個(gè)用戶(hù)數(shù)據(jù)報(bào)是從客戶(hù)發(fā)送給服務(wù)器發(fā)送給客戶(hù)?使用UDP的這個(gè)服務(wù)器程序是什么?

解:源端口1586,目的端口69,UDP用戶(hù)數(shù)據(jù)報(bào)總長(zhǎng)度28字節(jié),數(shù)據(jù)部分長(zhǎng)度20字節(jié)。

UDP用戶(hù)數(shù)據(jù)報(bào)是從客戶(hù)發(fā)給服務(wù)器(因?yàn)槟康亩丝谔?hào)<1023,是熟知端口)、服務(wù)器程序是TFFTP。

515?使用TCP對(duì)實(shí)時(shí)話音數(shù)據(jù)的傳輸有沒(méi)有什么問(wèn)題?使用UDP在傳送數(shù)據(jù)文件時(shí)會(huì)有什么問(wèn)題?

答:如果語(yǔ)音數(shù)據(jù)不是實(shí)時(shí)播放(邊接受邊播放)就可以使用TCP,因?yàn)?/span>TCP傳輸可靠。接收端用TCP講話音數(shù)據(jù)接受完畢后,可以在以后的任何時(shí)間進(jìn)行播放。但假定是實(shí)時(shí)傳輸,則必須使用UDP。

UDP不保證可靠交付,但UCPTCP的開(kāi)銷(xiāo)要小很多。因此只要應(yīng)用程序接受這樣的服務(wù)質(zhì)量就可以使用UDP。

516?在停止等待協(xié)議中如果不使用編號(hào)是否可行?為什么?

:分組和確認(rèn)分組都必須進(jìn)行編號(hào),才能明確哪個(gè)分則得到了確認(rèn)。

517?在停止等待協(xié)議中,如果收到重復(fù)的報(bào)文段時(shí)不予理睬(即悄悄地丟棄它而其他什么也沒(méi)做)是否可行?試舉出具體的例子說(shuō)明理由。

答:

收到重復(fù)幀不確認(rèn)相當(dāng)于確認(rèn)丟失

518?假定在運(yùn)輸層使用停止等待協(xié)議。發(fā)送發(fā)在發(fā)送報(bào)文段M0后再設(shè)定的時(shí)間內(nèi)未收到確認(rèn),于是重傳M0,但M0又遲遲不能到達(dá)接收方。不久,發(fā)送方收到了遲到的對(duì)M0的確認(rèn),于是發(fā)送下一個(gè)報(bào)文段M1,不久就收到了對(duì)M1的確認(rèn)。接著發(fā)送方發(fā)送新的報(bào)文段M0,但這個(gè)新的M0在傳送過(guò)程中丟失了。正巧,一開(kāi)始就滯留在網(wǎng)絡(luò)中的M0現(xiàn)在到達(dá)接收方。接收方無(wú)法分辨M0是舊的。于是收下M0,并發(fā)送確認(rèn)。顯然,接收方后來(lái)收到的M0是重復(fù)的,協(xié)議失敗了。

試畫(huà)出類(lèi)似于圖5-9所示的雙方交換報(bào)文段的過(guò)程。

答:

舊的M0被當(dāng)成新的M0

519?試證明:當(dāng)用n比特進(jìn)行分組的編號(hào)時(shí),若接收到窗口等于1(即只能按序接收分組),當(dāng)僅在發(fā)送窗口不超過(guò)2n-1時(shí),連接ARQ協(xié)議才能正確運(yùn)行。窗口單位是分組。

解:見(jiàn)課后答案。

520?在連續(xù)ARQ協(xié)議中,若發(fā)送窗口等于7,則發(fā)送端在開(kāi)始時(shí)可連續(xù)發(fā)送7個(gè)分組。因此,在每一分組發(fā)送后,都要置一個(gè)超時(shí)計(jì)時(shí)器?,F(xiàn)在計(jì)算機(jī)里只有一個(gè)硬時(shí)鐘。設(shè)這7個(gè)分組發(fā)出的時(shí)間分別為t0,t1t6,tout都一樣大。試問(wèn)如何實(shí)現(xiàn)這7個(gè)超時(shí)計(jì)時(shí)器(這叫軟件時(shí)鐘法)?

解:見(jiàn)課后答案。

521?假定使用連續(xù)ARQ協(xié)議中,發(fā)送窗口大小事3,而序列范圍[0,15],而傳輸媒體保證在接收方能夠按序收到分組。在某時(shí)刻,接收方,下一個(gè)期望收到序號(hào)是5.

試問(wèn):

(1)?在發(fā)送方的發(fā)送窗口中可能有出現(xiàn)的序號(hào)組合有哪幾種?

(2)?接收方已經(jīng)發(fā)送出去的、但在網(wǎng)絡(luò)中(即還未到達(dá)發(fā)送方)的確認(rèn)分組可能有哪些?說(shuō)明這些確認(rèn)分組是用來(lái)確認(rèn)哪些序號(hào)的分組。

522?主機(jī)A向主機(jī)B發(fā)送一個(gè)很長(zhǎng)的文件,其長(zhǎng)度為L字節(jié)。假定TCP使用的MSS1460字節(jié)。

(1)?TCP的序號(hào)不重復(fù)使用的條件下,L的最大值是多少?

(2)?假定使用上面計(jì)算出文件長(zhǎng)度,而運(yùn)輸層、網(wǎng)絡(luò)層和數(shù)據(jù)鏈路層所使用的首部開(kāi)銷(xiāo)共66字節(jié),鏈路的數(shù)據(jù)率為10Mb/s,試求這個(gè)文件所需的最短發(fā)送時(shí)間。

解:(1)L_max的最大值是2^32=4GB,G=2^30.

(2)?滿載分片數(shù)Q={L_max/MSS}取整=2941758發(fā)送的總報(bào)文數(shù)

N=Q*(MSS+66)+{(L_max-Q*MSS)+66}=4489122708+682=4489123390

總字節(jié)數(shù)是N=4489123390字節(jié),發(fā)送4489123390字節(jié)需時(shí)間為:N*8/(10*10^6)=3591.3秒,即59.85分,約1小時(shí)。

523?主機(jī)A向主機(jī)B連續(xù)發(fā)送了兩個(gè)TCP報(bào)文段,其序號(hào)分別為70100。試問(wèn):

(1)?第一個(gè)報(bào)文段攜帶了多少個(gè)字節(jié)的數(shù)據(jù)?

(2)?主機(jī)B收到第一個(gè)報(bào)文段后發(fā)回的確認(rèn)中的確認(rèn)號(hào)應(yīng)當(dāng)是多少?

(3)?如果主機(jī)B收到第二個(gè)報(bào)文段后發(fā)回的確認(rèn)中的確認(rèn)號(hào)是180,試問(wèn)A發(fā)送的第二個(gè)報(bào)文段中的數(shù)據(jù)有多少字節(jié)?

(4)?如果A發(fā)送的第一個(gè)報(bào)文段丟失了,但第二個(gè)報(bào)文段到達(dá)了B。B在第二個(gè)報(bào)文段到達(dá)后向A發(fā)送確認(rèn)。試問(wèn)這個(gè)確認(rèn)號(hào)應(yīng)為多少?

解:(1)第一個(gè)報(bào)文段的數(shù)據(jù)序號(hào)是7099,共30字節(jié)的數(shù)據(jù)。

(2)確認(rèn)號(hào)應(yīng)為100.

(3)80字節(jié)。

(4)70

524?一個(gè)TCP連接下面使用256kb/s的鏈路,其端到端時(shí)延為128ms。經(jīng)測(cè)試,發(fā)現(xiàn)吞吐量只有120kb/s。試問(wèn)發(fā)送窗口W是多少?(提示:可以有兩種答案,取決于接收等發(fā)出確認(rèn)的時(shí)機(jī))

解:

來(lái)回路程的時(shí)延等于256ms(=128ms×2).設(shè)窗口值為X(注意:以字節(jié)為單位),

定一次最大發(fā)送量等于窗口值,且發(fā)射時(shí)間等于256ms,那么,每發(fā)送一次都得停下來(lái)期待

再次得到下一窗口的確認(rèn),以得到新的發(fā)送許可.這樣,發(fā)射時(shí)間等于停止等待應(yīng)答的時(shí)間,

結(jié)果,測(cè)到的平均吞吐率就等于發(fā)送速率的一半,

8X÷(256×1000)=256×0.001

X=8192

所以,窗口值為8192.

525?為什么在TCP首部中要把TCP端口號(hào)放入最開(kāi)始的4個(gè)字節(jié)?

答:在ICMP的差錯(cuò)報(bào)文中要包含IP首部后面的8個(gè)字節(jié)的內(nèi)容,而這里面有TCP首部中的源端口和目的端口。當(dāng)TCP收到ICMP差錯(cuò)報(bào)文時(shí)需要用這兩個(gè)端口來(lái)確定是哪條連接出了差錯(cuò)。

526?為什么在TCP首部中有一個(gè)首部長(zhǎng)度字段,而UDP的首部中就沒(méi)有這個(gè)這個(gè)字段?

答:TCP首部除固定長(zhǎng)度部分外,還有選項(xiàng),因此TCP首部長(zhǎng)度是可變的。UDP首部長(zhǎng)度是固定的。

527?一個(gè)TCP報(bào)文段的數(shù)據(jù)部分最多為多少個(gè)字節(jié)?為什么?如果用戶(hù)要傳送的數(shù)據(jù)的字節(jié)長(zhǎng)度超過(guò)TCP報(bào)文字段中的序號(hào)字段可能編出的最大序號(hào),問(wèn)還能否用TCP來(lái)傳送?

答:65495字節(jié),此數(shù)據(jù)部分加上TCP首部的20字節(jié),再加上IP首部的20字節(jié),正好是IP數(shù)據(jù)報(bào)的最大長(zhǎng)度65535.(當(dāng)然,若IP首部包含了選擇,則IP首部長(zhǎng)度超過(guò)?20字節(jié),這時(shí)TCP報(bào)文段的數(shù)據(jù)部分的長(zhǎng)度將小于65495字節(jié)。)

數(shù)據(jù)的字節(jié)長(zhǎng)度超過(guò)TCP報(bào)文段中的序號(hào)字段可能編出的最大序號(hào),通過(guò)循環(huán)使用序號(hào),仍能用TCP來(lái)傳送。

528?主機(jī)A向主機(jī)B發(fā)送TCP報(bào)文段,首部中的源端口是m而目的端口是n。當(dāng)BA發(fā)送回信時(shí),其TCP報(bào)文段的首部中源端口和目的端口分別是什么?

答:分別是nm。

529?在使用TCP傳送數(shù)據(jù)時(shí),如果有一個(gè)確認(rèn)報(bào)文段丟失了,也不一定會(huì)引起與該確認(rèn)報(bào)文段對(duì)應(yīng)的數(shù)據(jù)的重傳。試說(shuō)明理由。

答:還未重傳就收到了對(duì)更高序號(hào)的確認(rèn)。

530?設(shè)TCP使用的最大窗口為65535字節(jié),而傳輸信道不產(chǎn)生差錯(cuò),帶寬也不受限制。若報(bào)文段的平均往返時(shí)延為20ms,問(wèn)所能得到的最大吞吐量是多少?

答:在發(fā)送時(shí)延可忽略的情況下,最大數(shù)據(jù)率=最大窗口*8/平均往返時(shí)間=26.2Mb/s

531?通信信道帶寬為1Gb/s,端到端時(shí)延為10ms。TCP的發(fā)送窗口為65535字節(jié)。試問(wèn):可能達(dá)到的最大吞吐量是多少?信道的利用率是多少?

答:

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%

532?什么是Karn算法?TCP的重傳機(jī)制中,若不采用Karn算法,而是在收到確認(rèn)時(shí)都認(rèn)為是對(duì)重傳報(bào)文段的確認(rèn),那么由此得出的往返時(shí)延樣本和重傳時(shí)間都會(huì)偏小。試問(wèn):重傳時(shí)間最后會(huì)減小到什么程度?

答:Karn算法:在計(jì)算平均往返時(shí)延RTT時(shí),只要報(bào)文段重傳了,就不采用其往返時(shí)延樣本。

設(shè)新往返時(shí)延樣本Ti

RTT(1)=a*RTT(i-1)+(1-a)*T(i);

RTT^(i)=a* RTT(i-1)+(1-a)*T(i)/2;

RTT(1)=a*0+(1-a)*T(1)= (1-a)*T(1);

RTT^(1)=a*0+(1-a)*T(1)/2= RTT(1)/2

RTT(2)= a*RTT(1)+(1-a)*T(2);

RTT^(2)= a*RTT(1)+(1-a)*T(2)/2;

= a*RTT(1)/2+(1-a)*T(2)/2= RTT(2)/2

RTO=beta*RTT,在統(tǒng)計(jì)意義上,重傳時(shí)間最后會(huì)減小到使用karn算法的1/2.

533?假定TCP在開(kāi)始建立連接時(shí),發(fā)送方設(shè)定超時(shí)重傳時(shí)間是RTO=6s。

(1)當(dāng)發(fā)送方接到對(duì)方的連接確認(rèn)報(bào)文段時(shí),測(cè)量出RTT樣本值為1.5s。試計(jì)算現(xiàn)在的RTO值。

(2)當(dāng)發(fā)送方發(fā)送數(shù)據(jù)報(bào)文段并接收到確認(rèn)時(shí),測(cè)量出RTT樣本值為2.5s。試計(jì)算現(xiàn)在的RTO值。

答:

(1)據(jù)RFC2988建議,RTO=RTTs+4*RTTd。其中RTTdRTTs的偏差加權(quán)均值。

初次測(cè)量時(shí),RTTd(1)= RTT(1)/2;

后續(xù)測(cè)量中,RTTd(i)=(1-Beta)* RTTd(i-1)+Beta*{ RTTs- RTT(i)};

Beta=1/4

依題意,RTT(1)樣本值為1.5秒,則

RTTs(1)=RTT(1)=1.5s RTTd(1)=RTT(1)/2=0.75s

RTO(1)=RTTs(1)+4RTTd(1)=1.5+4*0.75=4.5(s)

(2)RTT(2)=2.5 RTTs(1)=1.5s RTTd(1)=0.75s

RTTd(2)=(1-Beta)* RTTd(1)+Beta*{ RTTs(1)- RT

(2)}=0.75*3/4+{1.5-2.5}/4=13/16

RTO(2)=RTTs(1)+4RTTd(2)=1.5+4*13/16=4.75s

534?已知第一次測(cè)得TCP的往返時(shí)延的當(dāng)前值是30 ms。現(xiàn)在收到了三個(gè)接連的確認(rèn)報(bào)文段,它們比相應(yīng)的數(shù)據(jù)報(bào)文段的發(fā)送時(shí)間分別滯后的時(shí)間是:26ms32ms24ms。設(shè)α=0.9。試計(jì)算每一次的新的加權(quán)平均往返時(shí)間值RTTs。討論所得出的結(jié)果。

答:a=0.1?RTTO=30

RTT1=RTTO*(1-a) +26*a=29.6

RTT2=RTT1*a+32(1-a)=29.84

RTT3=RTT2*a+24(1-a)=29.256

三次算出加權(quán)平均往返時(shí)間分別為29.6,29.8429.256ms

可以看出,RTT的樣本值變化多達(dá)20%時(shí),加權(quán)平均往返

535?試計(jì)算一個(gè)包括5段鏈路的運(yùn)輸連接的單程端到端時(shí)延。5段鏈路程中有2段是衛(wèi)星鏈路,有3段是廣域網(wǎng)鏈路。每條衛(wèi)星鏈路又由上行鏈路和下行鏈路兩部分組成。可以取這兩部分的傳播時(shí)延之和為250ms。每一個(gè)廣域網(wǎng)的范圍為1500km,其傳播時(shí)延可按150000km/s來(lái)計(jì)算。各數(shù)據(jù)鏈路速率為48kb/s,幀長(zhǎng)為960位。

答:5段鏈路的傳播時(shí)延=250*2+(1500/150000)*3*1000=530ms

5段鏈路的發(fā)送時(shí)延=960/(48*1000)*5*1000=100ms

所以5段鏈路單程端到端時(shí)延=530+100=630ms

536?重復(fù)5-35題,但假定其中的一個(gè)陸地上的廣域網(wǎng)的傳輸時(shí)延為150ms

答:760ms

537?TCP的擁塞控制中,什么是慢開(kāi)始、擁塞避免、快重傳和快恢復(fù)算法?這里每一種算法各起什么作用??“乘法減小”和“加法增大”各用在什么情況下?

答:慢開(kāi)始:

在主機(jī)剛剛開(kāi)始發(fā)送報(bào)文段時(shí)可先將擁塞窗口cwnd設(shè)置為一個(gè)最大報(bào)文段MSS的數(shù)值。在每收到一個(gè)對(duì)新的報(bào)文段的確認(rèn)后,將擁塞窗口增加至多一個(gè)MSS的數(shù)值。用這樣的方法逐步增大發(fā)送端的擁塞窗口cwnd,可以分組注入到網(wǎng)絡(luò)的速率更加合理。

擁塞避免:

當(dāng)擁塞窗口值大于慢開(kāi)始門(mén)限時(shí),停止使用慢開(kāi)始算法而改用擁塞避免算法。擁塞避免算法使發(fā)送的擁塞窗口每經(jīng)過(guò)一個(gè)往返時(shí)延RTT就增加一個(gè)MSS的大小。

快重傳算法規(guī)定:

發(fā)送端只要一連收到三個(gè)重復(fù)的ACK即可斷定有分組丟失了,就應(yīng)該立即重傳丟手的報(bào)文段而不必繼續(xù)等待為該報(bào)文段設(shè)置的重傳計(jì)時(shí)器的超時(shí)。

快恢復(fù)算法:

當(dāng)發(fā)送端收到連續(xù)三個(gè)重復(fù)的ACK時(shí),就重新設(shè)置慢開(kāi)始門(mén)限?ssthresh

與慢開(kāi)始不同之處是擁塞窗口?cwnd?不是設(shè)置為?1,而是設(shè)置為ssthresh

若收到的重復(fù)的AVKn個(gè)(n>3),則將cwnd設(shè)置為ssthresh

若發(fā)送窗口值還容許發(fā)送報(bào)文段,就按擁塞避免算法繼續(xù)發(fā)送報(bào)文段。

若收到了確認(rèn)新的報(bào)文段的ACK,就將cwnd縮小到ssthresh

乘法減?。?/span>

是指不論在慢開(kāi)始階段還是擁塞避免階段,只要出現(xiàn)一次超時(shí)(即出現(xiàn)一次網(wǎng)絡(luò)擁塞),就把慢開(kāi)始門(mén)限值?ssthresh?設(shè)置為當(dāng)前的擁塞窗口值乘以?0.5。

當(dāng)網(wǎng)絡(luò)頻繁出現(xiàn)擁塞時(shí),ssthresh?值就下降得很快,以大大減少注入到網(wǎng)絡(luò)中的分組數(shù)。

加法增大:

是指執(zhí)行擁塞避免算法后,在收到對(duì)所有報(bào)文段的確認(rèn)后(即經(jīng)過(guò)一個(gè)往返時(shí)間),就把擁塞窗口?cwnd增加一個(gè)?MSS大小,使擁塞窗口緩慢增大,以防止網(wǎng)絡(luò)過(guò)早出現(xiàn)擁塞。

538?設(shè)TCPssthresh的初始值為8(單位為報(bào)文段)。當(dāng)擁塞窗口上升到12時(shí)網(wǎng)絡(luò)發(fā)生了超時(shí),TCP使用慢開(kāi)始和擁塞避免。試分別求出第1次到第15次傳輸?shù)母鲹砣翱诖笮?。你能說(shuō)明擁塞控制窗口每一次變化的原因嗎?

答:擁塞窗口大小分別為:12,48,9,1011,12,12,46,78,9.

539 TCP的擁塞窗口cwnd大小與傳輸輪次n的關(guā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)試畫(huà)出如圖5-25所示的擁塞窗口與傳輸輪次的關(guān)系曲線。

(2)指明TCP工作在慢開(kāi)始階段的時(shí)間間隔。

(3)指明TCP工作在擁塞避免階段的時(shí)間間隔。

(4)在第16輪次和第22輪次之后發(fā)送方是通過(guò)收到三個(gè)重復(fù)的確認(rèn)還是通過(guò)超市檢測(cè)到丟失了報(bào)文段?

(5)在第1輪次,第18輪次和第24輪次發(fā)送時(shí),門(mén)限ssthresh分別被設(shè)置為多大?

(6)在第幾輪次發(fā)送出第70個(gè)報(bào)文段?

(7)假定在第26輪次之后收到了三個(gè)重復(fù)的確認(rèn),因而檢測(cè)出了報(bào)文段的丟失,那么擁塞窗口cwnd和門(mén)限ssthresh應(yīng)設(shè)置為多大?

答:(1)擁塞窗口與傳輸輪次的關(guān)系曲線如圖所示(課本后答案)

(2)?慢開(kāi)始時(shí)間間隔:【1,6】和【2326

(3)?擁塞避免時(shí)間間隔:【6,16】和【17,22

(4)?在第16輪次之后發(fā)送方通過(guò)收到三個(gè)重復(fù)的確認(rèn)檢測(cè)到丟失的報(bào)文段。在第22輪次之后發(fā)送方是通過(guò)超時(shí)檢測(cè)到丟失的報(bào)文段。

(5)?在第1輪次發(fā)送時(shí),門(mén)限ssthresh被設(shè)置為32

在第18輪次發(fā)送時(shí),門(mén)限ssthresh被設(shè)置為發(fā)生擁塞時(shí)的一半,即21.

在第24輪次發(fā)送時(shí),門(mén)限ssthresh是第18輪次發(fā)送時(shí)設(shè)置的21

(6)?70報(bào)文段在第7輪次發(fā)送出。

(7)?擁塞窗口cwnd和門(mén)限ssthresh應(yīng)設(shè)置為8的一半,即4.

540 TCP在進(jìn)行流量控制時(shí)是以分組的丟失作為產(chǎn)生擁塞的標(biāo)志。有沒(méi)有不是因擁塞而引起的分組丟失的情況?如有,請(qǐng)舉出三種情況。

答:

當(dāng)Ip數(shù)據(jù)報(bào)在傳輸過(guò)程中需要分片,但其中的一個(gè)數(shù)據(jù)報(bào)未能及時(shí)到達(dá)終點(diǎn),而終點(diǎn)組裝IP數(shù)據(jù)報(bào)已超時(shí),因而只能丟失該數(shù)據(jù)報(bào);IP數(shù)據(jù)報(bào)已經(jīng)到達(dá)終點(diǎn),但終點(diǎn)的緩存沒(méi)有足夠的空間存放此數(shù)據(jù)報(bào);數(shù)據(jù)報(bào)在轉(zhuǎn)發(fā)過(guò)程中經(jīng)過(guò)一個(gè)局域網(wǎng)的網(wǎng)橋,但網(wǎng)橋在轉(zhuǎn)發(fā)該數(shù)據(jù)報(bào)的幀沒(méi)有足夠的差錯(cuò)空間而只好丟棄。

541?TCP傳送512字節(jié)的數(shù)據(jù)。設(shè)窗口為100字節(jié),而TCP報(bào)文段每次也是傳送100字節(jié)的數(shù)據(jù)。再設(shè)發(fā)送端和接收端的起始序號(hào)分別選為100200,試畫(huà)出類(lèi)似于圖5-31的工作示意圖。從連接建立階段到連接釋放都要畫(huà)上。

542?在圖5-32中所示的連接釋放過(guò)程中,主機(jī)B能否先不發(fā)送ACK=x+1的確認(rèn)? (因?yàn)楹竺嬉l(fā)送的連接釋放報(bào)文段中仍有ACK=x+1這一信息)

答:

如果B不再發(fā)送數(shù)據(jù)了,是可以把兩個(gè)報(bào)文段合并成為一個(gè),即只發(fā)送FIN+ACK報(bào)文段。但如果B還有數(shù)據(jù)報(bào)要發(fā)送,而且要發(fā)送一段時(shí)間,那就不行,因?yàn)?/span>A遲遲收不到確認(rèn),就會(huì)以為剛才發(fā)送的FIN報(bào)文段丟失了,就超時(shí)重傳這個(gè)FIN報(bào)文段,浪費(fèi)網(wǎng)絡(luò)資源。

543?在圖(5-33)中,在什么情況下會(huì)發(fā)生從狀態(tài)LISTEN到狀態(tài)SYN_SENT,以及從狀態(tài)SYN_ENT到狀態(tài)SYN_RCVD的變遷?

答:當(dāng)AB都作為客戶(hù),即同時(shí)主動(dòng)打開(kāi)TCP連接。這時(shí)的每一方的狀態(tài)變遷都是:CLOSED----àSYN-SENT---àSYN-RCVD--àESTABLISHED

544?試以具體例子說(shuō)明為什么一個(gè)運(yùn)輸連接可以有多種方式釋放。可以設(shè)兩個(gè)互相通信的用戶(hù)分別連接在網(wǎng)絡(luò)的兩結(jié)點(diǎn)上。

答:設(shè)A,B建立了運(yùn)輸連接。協(xié)議應(yīng)考慮一下實(shí)際可能性:

AB故障,應(yīng)設(shè)計(jì)超時(shí)機(jī)制,使對(duì)方退出,不至于死鎖;

A主動(dòng)退出,B被動(dòng)退出

B主動(dòng)退出,A被動(dòng)退出

545?解釋為什么突然釋放運(yùn)輸連接就可能會(huì)丟失用戶(hù)數(shù)據(jù),而使用TCP的連接釋放方法就可保證不丟失數(shù)據(jù)。

答:

當(dāng)主機(jī)1和主機(jī)2之間連接建立后,主機(jī)1發(fā)送了一個(gè)TCP數(shù)據(jù)段并正確抵達(dá)主機(jī)2,接著主機(jī)1發(fā)送另一個(gè)TCP數(shù)據(jù)段,這次很不幸,主機(jī)2在收到第二個(gè)TCP數(shù)據(jù)段之前發(fā)出了釋放連接請(qǐng)求,如果就這樣突然釋放連接,顯然主機(jī)1發(fā)送的第二個(gè)TCP報(bào)文段會(huì)丟失。

而使用TCP的連接釋放方法,主機(jī)2發(fā)出了釋放連接的請(qǐng)求,那么即使收到主機(jī)1的確認(rèn)后,只會(huì)釋放主機(jī)2到主機(jī)1方向的連接,即主機(jī)2不再向主機(jī)1發(fā)送數(shù)據(jù),而仍然可接受主機(jī)1發(fā)來(lái)的數(shù)據(jù),所以可保證不丟失數(shù)據(jù)。

546?試用具體例子說(shuō)明為什么在運(yùn)輸連接建立時(shí)要使用三次握手。說(shuō)明如不這樣做可能會(huì)出現(xiàn)什么情況。

答:

3次握手完成兩個(gè)重要的功能,既要雙方做好發(fā)送數(shù)據(jù)的準(zhǔn)備工作(雙方都知道彼此已準(zhǔn)備好),也要允許雙方就初始序列號(hào)進(jìn)行協(xié)商,這個(gè)序列號(hào)在握手過(guò)程中被發(fā)送和確認(rèn)。

假定BA發(fā)送一個(gè)連接請(qǐng)求分組,A收到了這個(gè)分組,并發(fā)送了確認(rèn)應(yīng)答分組。按照兩次握手的協(xié)定,A認(rèn)為連接已經(jīng)成功地建立了,可以開(kāi)始發(fā)送數(shù)據(jù)分組。可是,BA的應(yīng)答分組在傳輸中被丟失的情況下,將不知道A是否已準(zhǔn)備好,不知道A建議什么樣的序列號(hào),B甚至懷疑A是否收到自己的連接請(qǐng)求分組,在這種情況下,B認(rèn)為連接還未建立成功,將忽略A發(fā)來(lái)的任何數(shù)據(jù)分組,只等待連接確認(rèn)應(yīng)答分組。

A發(fā)出的分組超時(shí)后,重復(fù)發(fā)送同樣的分組。這樣就形成了死鎖。

547?一個(gè)客戶(hù)向服務(wù)器請(qǐng)求建立TCP連接??蛻?hù)在TCP連接建立的三次握手中的最后一個(gè)報(bào)文段中捎帶上一些數(shù)據(jù),請(qǐng)求服務(wù)器發(fā)送一個(gè)長(zhǎng)度為L字節(jié)的文件。假定:

(1)客戶(hù)和服務(wù)器之間的數(shù)據(jù)傳輸速率是R字節(jié)/秒,客戶(hù)與服務(wù)器之間的往返時(shí)間是RTT(固定值)。

(2)服務(wù)器發(fā)送的TCP報(bào)文段的長(zhǎng)度都是M字節(jié),而發(fā)送窗口大小是nM字節(jié)。

(3)所有傳送的報(bào)文段都不會(huì)出錯(cuò)(無(wú)重傳),客戶(hù)收到服務(wù)器發(fā)來(lái)的報(bào)文段后就及時(shí)發(fā)送確認(rèn)。

(4)所有的協(xié)議首部開(kāi)銷(xiāo)都可忽略,所有確認(rèn)報(bào)文段和連接建立階段的報(bào)文段的長(zhǎng)度都可忽略(即忽略這些報(bào)文段的發(fā)送時(shí)間)。

試證明,從客戶(hù)開(kāi)始發(fā)起連接建立到接收服務(wù)器發(fā)送的整個(gè)文件多需的時(shí)間T是:

T=2RTT+L/R?當(dāng)nM>R(RTT)+M

?T=2RTT+L/R+(K-1)[M/R+RTT-nM/R]?當(dāng)nM

其中,K=[L/nM],符號(hào)[x]表示若x不是整數(shù),則把x的整數(shù)部分加1。

解:

發(fā)送窗口較小的情況,發(fā)送一組nM個(gè)字節(jié)后必須停頓下來(lái),等收到確認(rèn)后繼續(xù)發(fā)送。

共需K=[L/nM]個(gè)周期:其中

K-1個(gè)周期每周期耗時(shí)M/R+RTT,共耗時(shí)(K-1)(M/R+RTT)

K周期剩余字節(jié)數(shù)Q=L-(K-1)*nM,需耗時(shí)Q/R

總耗時(shí)=2*RTT+(K-1)M/(R+RTT)+Q/R=2*RTT+L/R+(K-1)[( M/R+RTT)-nM/R]


查看更多