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

知ing

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

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

海之館的比目魚 上傳

查看本書

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

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

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

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

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

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

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

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

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

504?試用畫圖解釋運輸層的復(fù)用。畫圖說明許多個運輸用戶復(fù)用到一條運輸連接上,而這條運輸連接有復(fù)用到IP數(shù)據(jù)報上。

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

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

有差錯的UDP數(shù)據(jù)報在接收端被直接拋棄,TCP數(shù)據(jù)報出錯則會引起重傳,可能帶來較大的時延擾動。

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

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

答:丟棄

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

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

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

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

接收方?UDP??IP?層交上來的?UDP?用戶數(shù)據(jù)報,在去除首部后就原封不動地交付上層的應(yīng)用進程,一次交付一個完整的報文。

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

509?端口的作用是什么?為什么端口要劃分為三種?

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

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

登記端口號,數(shù)值為1024~49151,標記沒有熟知端口號的非常規(guī)的服務(wù)進程;

510?試說明運輸層中偽首部的作用。

答:用于計算運輸層數(shù)據(jù)報校驗和。

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

答:不可跳過UDP而直接交給IP

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

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

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

答:不行

重傳時,IP數(shù)據(jù)報的標識字段會有另一個標識符。

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

前兩個IP數(shù)據(jù)報片的標識符與后兩個IP數(shù)據(jù)報片的標識符不同,因此不能組裝成一個IP數(shù)據(jù)報。

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

答:6

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

片偏移字段的值分別是:0,14802960,444059207400.

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

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

UDP用戶數(shù)據(jù)報是從客戶發(fā)給服務(wù)器(因為目的端口號<1023,是熟知端口)、服務(wù)器程序是TFFTP。

515?使用TCP對實時話音數(shù)據(jù)的傳輸有沒有什么問題?使用UDP在傳送數(shù)據(jù)文件時會有什么問題?

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

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

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

:分組和確認分組都必須進行編號,才能明確哪個分則得到了確認。

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

答:

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

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

試畫出類似于圖5-9所示的雙方交換報文段的過程。

答:

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

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

解:見課后答案。

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

解:見課后答案。

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

試問:

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

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

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

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

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

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

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

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

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

523?主機A向主機B連續(xù)發(fā)送了兩個TCP報文段,其序號分別為70100。試問:

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

(2)?主機B收到第一個報文段后發(fā)回的確認中的確認號應(yīng)當(dāng)是多少?

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

(4)?如果A發(fā)送的第一個報文段丟失了,但第二個報文段到達了BB在第二個報文段到達后向A發(fā)送確認。試問這個確認號應(yīng)為多少?

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

(2)確認號應(yīng)為100.

(3)80字節(jié)。

(4)70

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

解:

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

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

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

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

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

X=8192

所以,窗口值為8192.

525?為什么在TCP首部中要把TCP端口號放入最開始的4個字節(jié)?

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

526?為什么在TCP首部中有一個首部長度字段,而UDP的首部中就沒有這個這個字段?

答:TCP首部除固定長度部分外,還有選項,因此TCP首部長度是可變的。UDP首部長度是固定的。

527?一個TCP報文段的數(shù)據(jù)部分最多為多少個字節(jié)?為什么?如果用戶要傳送的數(shù)據(jù)的字節(jié)長度超過TCP報文字段中的序號字段可能編出的最大序號,問還能否用TCP來傳送?

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

數(shù)據(jù)的字節(jié)長度超過TCP報文段中的序號字段可能編出的最大序號,通過循環(huán)使用序號,仍能用TCP來傳送。

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

答:分別是nm。

529?在使用TCP傳送數(shù)據(jù)時,如果有一個確認報文段丟失了,也不一定會引起與該確認報文段對應(yīng)的數(shù)據(jù)的重傳。試說明理由。

答:還未重傳就收到了對更高序號的確認。

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

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

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

答:

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的重傳機制中,若不采用Karn算法,而是在收到確認時都認為是對重傳報文段的確認,那么由此得出的往返時延樣本和重傳時間都會偏小。試問:重傳時間最后會減小到什么程度?

答:Karn算法:在計算平均往返時延RTT時,只要報文段重傳了,就不采用其往返時延樣本。

設(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)計意義上,重傳時間最后會減小到使用karn算法的1/2.

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

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

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

答:

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

初次測量時,RTTd(1)= RTT(1)/2;

后續(xù)測量中,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?已知第一次測得TCP的往返時延的當(dāng)前值是30 ms?,F(xiàn)在收到了三個接連的確認報文段,它們比相應(yīng)的數(shù)據(jù)報文段的發(fā)送時間分別滯后的時間是:26ms,32ms24ms。設(shè)α=0.9。試計算每一次的新的加權(quán)平均往返時間值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)平均往返時間分別為29.6,29.8429.256ms

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

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

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

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

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

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

答:760ms

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

答:慢開始:

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

擁塞避免:

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

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

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

快恢復(fù)算法:

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

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

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

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

若收到了確認新的報文段的ACK,就將cwnd縮小到ssthresh

乘法減小:

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

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

加法增大:

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

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

答:擁塞窗口大小分別為:1,24,8,9,10,11,121,2,4,6,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)試畫出如圖5-25所示的擁塞窗口與傳輸輪次的關(guān)系曲線。

(2)指明TCP工作在慢開始階段的時間間隔。

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

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

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

(6)在第幾輪次發(fā)送出第70個報文段?

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

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

(2)?慢開始時間間隔:【1,6】和【23,26

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

(4)?在第16輪次之后發(fā)送方通過收到三個重復(fù)的確認檢測到丟失的報文段。在第22輪次之后發(fā)送方是通過超時檢測到丟失的報文段。

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

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

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

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

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

540 TCP在進行流量控制時是以分組的丟失作為產(chǎn)生擁塞的標志。有沒有不是因擁塞而引起的分組丟失的情況?如有,請舉出三種情況。

答:

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

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

542?在圖5-32中所示的連接釋放過程中,主機B能否先不發(fā)送ACK=x+1的確認? (因為后面要發(fā)送的連接釋放報文段中仍有ACK=x+1這一信息)

答:

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

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

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

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

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

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

A主動退出,B被動退出

B主動退出,A被動退出

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

答:

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

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

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

答:

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

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

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

547?一個客戶向服務(wù)器請求建立TCP連接??蛻粼?/span>TCP連接建立的三次握手中的最后一個報文段中捎帶上一些數(shù)據(jù),請求服務(wù)器發(fā)送一個長度為L字節(jié)的文件。假定:

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

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

(3)所有傳送的報文段都不會出錯(無重傳),客戶收到服務(wù)器發(fā)來的報文段后就及時發(fā)送確認。

(4)所有的協(xié)議首部開銷都可忽略,所有確認報文段和連接建立階段的報文段的長度都可忽略(即忽略這些報文段的發(fā)送時間)

試證明,從客戶開始發(fā)起連接建立到接收服務(wù)器發(fā)送的整個文件多需的時間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],符號[x]表示若x不是整數(shù),則把x的整數(shù)部分加1。

解:

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

共需K=[L/nM]個周期:其中

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

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

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


查看更多