5-01運輸層在協(xié)議棧中的地位和作用。運輸層的通信和網(wǎng)絡(luò)層的通信有什么重要的區(qū)別?為什么運輸層是必不可少的?
運輸層處于面向通信部分的最高層,同時也是用戶功能中的最低層,向它上面的應(yīng)用層提供服務(wù)。
運輸層為應(yīng)用進程之間提供端到端的邏輯通信,但網(wǎng)絡(luò)層是為主機之間提供邏輯通信(面向主機,承擔(dān)路由功能,即主機尋址及有效的分組交換)。
各種應(yīng)用進程之間通信需要“可靠或盡力而為”的兩類服務(wù)質(zhì)量,必須由運輸層以復(fù)用和分用的形式加載到網(wǎng)絡(luò)層。
5-03當(dāng)應(yīng)用程序使用面向連接的TCP和無連接的IP時,這種傳輸是面向連接的還是無連接的。
都是。這要在不同層次來看,在運輸層是面向連接的,在網(wǎng)絡(luò)層則是無連接的。
5-05試舉例說明有些應(yīng)用程序愿意采用不可靠的UDP,而不愿意采用可靠的TCP。
VOIP:由于語音信息具有一定的冗余度,人耳對VOIP數(shù)據(jù)報損失由一定的承受度,但對傳輸時延的變化較敏感。有差錯的UDP數(shù)據(jù)報在接收端被直接拋棄,TCP數(shù)據(jù)報出錯則會引起重傳,可能帶來較大的時延擾動。因此VOIP寧可采用不可靠的UDP,而不愿意采用可靠的TCP。
5-06 接收方收到有差錯的UDP用戶數(shù)據(jù)報時應(yīng)如何處理?
丟棄,不接收。
5-09端口的作用是什么?為什么端口號要劃分為三種?
端口的作用是對TCP/IP體系的應(yīng)用進程進行統(tǒng)一的標(biāo)志,使運行不同操作系統(tǒng)的計算機的應(yīng)用進程能夠互相通信。
熟知端口,數(shù)值一般為0~1023。標(biāo)記常規(guī)的服務(wù)進程;
登記端口號,數(shù)值為1024~49151,標(biāo)記沒有熟知端口號的非常規(guī)的服務(wù)進程。
5-14一個UDP用戶數(shù)據(jù)報的首部的十六進制表示是:06 32 00 45 00 1C E2 17。試求源端口、目的端口、用戶數(shù)據(jù)報的總長度、數(shù)據(jù)部分長度。這個用戶數(shù)據(jù)報是從客戶發(fā)送給服務(wù)器還是從服務(wù)器發(fā)送給客戶?使用UDP的這個服務(wù)器程序是什么?
06 32是源端口 十六進制轉(zhuǎn)十進制6*162+3*161+2*160=1586;
00 45是目的端口 十六進制轉(zhuǎn)十進制4*161+5*160=69;
00 1c是用戶數(shù)據(jù)包的總長度=16+12=28;
數(shù)據(jù)部分長度為:28-首部長度=28-8=20;
由于目的端口69<1023是熟知端口(服務(wù)器端使用的端口號),因此該UDP數(shù)據(jù)報是從客戶發(fā)給服務(wù)器的,程序是TFFTP。
5-16在停止等待協(xié)議中如果不使用編號是否可行?為什么?
分組和確認(rèn)分組都必須進行編號,才能明確哪個分則得到了確認(rèn)。
5-17在停止等待協(xié)議中,如果收到重復(fù)的報文段時不予理睬(即悄悄地丟棄它而其他什么也不做)是否可行?試舉出具體例子說明理由。
收到重復(fù)幀不確認(rèn)相當(dāng)于確認(rèn)丟失
5-19試證明:當(dāng)用n比特進行分組的編號時,若接收窗口等于1(即只能按序接收分組),則僅在發(fā)送窗口不超過2n-1時,連續(xù)ARQ協(xié)議才能正確運行。窗口單位是分組。
5-21假定使用連續(xù)ARQ協(xié)議,發(fā)送窗口大小是3,而序號范圍是[0,15],而傳輸媒體保證在接收方能夠按序收到分組。在某一時刻,在接收方,下一個期望收到的序號是5。試問:
(1)在發(fā)送方的發(fā)送窗口中可能出現(xiàn)的序號組合有哪些?
序號到4為止的分組都已收到。若這些確認(rèn)都已到達(dá)發(fā)送方,則發(fā)送窗口的范圍是[5,7],假定所有的確認(rèn)都丟失了,發(fā)送方?jīng)]有收到這些確認(rèn)。這時,發(fā)送窗口應(yīng)為[2,4]。因此,發(fā)送窗口可以是[2,4],[3,5],[4,6],[5,7]中的任何一個。
(2)接收方已經(jīng)發(fā)送出的、但在網(wǎng)絡(luò)中(即還未到達(dá)發(fā)送方)的確認(rèn)分組可能有哪些?說明這些確認(rèn)分組是用來確認(rèn)哪些序號的分組。
接收方期望收到序號5的分組,說明序號為2,3,4的分組都已收到,并且發(fā)送了確認(rèn)。對序號為1的分組的確認(rèn)肯定被發(fā)送方收到了,否則發(fā)送方不可能發(fā)送4號分組??梢姡瑢π蛱?,3,4的分組的確認(rèn)有可能仍滯留在網(wǎng)格中。這些確認(rèn)是用來確認(rèn)序號為2,3,4的分組。
5-23主機A向主機B連續(xù)發(fā)送了兩個TCP報文段,其序號分別是70和100。試問:
(1)第一個報文段攜帶了多少字節(jié)的數(shù)據(jù)?
第一個報文段的數(shù)據(jù)序號是70到99,共30字節(jié)的數(shù)據(jù)。
(2)主機B收到第一個報文段后發(fā)回的確認(rèn)中的確認(rèn)號應(yīng)當(dāng)是多少?
確認(rèn)號應(yīng)為100。當(dāng)報文被接受后排序到99,希望接收第100個字節(jié),所以發(fā)送確認(rèn)號100。
(3)如果B收到第二個報文段后發(fā)回的確認(rèn)中的確認(rèn)號是180,試問A發(fā)送的第二個報文段中的數(shù)據(jù)有多少字節(jié)?
第三個報文段的數(shù)據(jù)序號是100到179,共80字節(jié)的數(shù)據(jù)。
(4)如果A發(fā)送的第一個報文段丟失了,但第二個報文段到達(dá)了B。B在第二個報文段到達(dá)后向A發(fā)送確認(rèn)。試問這個確認(rèn)號應(yīng)為多少?
70,第一個報文沒有收到,就不會對后續(xù)報文進行確認(rèn)。b希望a重傳序列號為70的報文,所以發(fā)送確認(rèn)號為70。
5-30設(shè)TCP使用的最大窗口為65535字節(jié),而傳輸信道不產(chǎn)生差錯,帶寬也不受限制。若報文段的平均往返時間為20ms,問所能得到的最大吞吐量是多少?
在發(fā)送時延可忽略的情況下,最大數(shù)據(jù)率=最大窗口*8/平均往返時間=65535*8/20=26.2Mb/s。
5-31通信信道帶寬為1Gb/s,端到端時延為10ms。TCP的發(fā)送窗口為65535字節(jié)。試問:可能達(dá)到的最大吞吐量是多少?信道的利用率是多少?
往返時延等于兩倍的端到端傳播時延,即20ms=0.02s;
發(fā)送時延等于窗口數(shù)據(jù)量除以帶寬,即65535*8/109秒;
TCP每發(fā)送一個窗口,需要進行等待確認(rèn)信息回來,所以每發(fā)送完一個窗口,最快需要經(jīng)過一個往返時延才可以發(fā)送下一個窗口(確認(rèn)信息很小不考慮發(fā)送時延),所以在一個傳輸輪次中,包含一個發(fā)送時延和一個往返時延,而傳輸?shù)臄?shù)據(jù)量是一個窗口的大小(這里不考慮TCP、IP首部和幀的構(gòu)成)。
所以最大吞吐量為一個窗口的大小除以一個傳輸輪次的時間,即65535*8/(65535*8/109+0.02)=25.54Mb/s。
信道利用率為25.54Mb/s/1000Mb/s=2.55%。
5-37在TCP的擁塞控制中,什么是慢開始、擁塞避免、快重傳和快恢復(fù)算法?這里每一/種算法各起什么作用?“乘法減小”和“加法增大”各用在什么情況下?
慢開始:
在主機剛剛開始發(fā)送報文段時可先將擁塞窗口cwnd設(shè)置為一個最大報文段MSS的數(shù)值。在每收到一個對新的報文段的確認(rèn)后,將擁塞窗口增加至多一個MSS的數(shù)值。用這樣的方法逐步增大發(fā)送端的擁塞窗口cwnd,可以分組注入到網(wǎng)絡(luò)的速率更加合理。我們還要指出,慢開始的“慢”并不是指cwnd的增長速率慢,而是指在TCP開始發(fā)送報文段時先設(shè)置cwnd=1,使得發(fā)送方在開始時只發(fā)送一個報文段(目的是試探一下網(wǎng)絡(luò)的擁塞情況),然后再逐漸增大cwnd,這當(dāng)然比設(shè)置大的cwnd值一下子把許多報文段注入到網(wǎng)絡(luò)中要“慢得多”。這對防止網(wǎng)絡(luò)出現(xiàn)擁塞是一個非常好的方法。
擁塞避免:
當(dāng)擁塞窗口值大于慢開始門限時,停止使用慢開始算法而改用擁塞避免算法。擁塞避免算法使發(fā)送的擁塞窗口每經(jīng)過一個往返時延RTT就增加一個MSS的大小。
快重傳算法:
發(fā)送端只要一連收到三個重復(fù)的ACK即可斷定有分組丟失了,就應(yīng)該立即重傳丟失的報文段而不必繼續(xù)等待為該報文段設(shè)置的重傳計時器的超時。
快恢復(fù)算法:
當(dāng)發(fā)送端收到連續(xù)三個重復(fù)的ACK時,就重新設(shè)置慢開始門限ssthresh。與慢開始不同之處是擁塞窗口cwnd不是設(shè)置為1,而是設(shè)置為ssthresh。若收到的重復(fù)的AVK為n個(n>3),則將cwnd設(shè)置為ssthresh。若發(fā)送窗口值還容許發(fā)送報文段,就按擁塞避免算法繼續(xù)發(fā)送報文段。若收到了確認(rèn)新的報文段的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í)行擁塞避免算法后,在收到對所有報文段的確認(rèn)后(即經(jīng)過一個往返時間),就把擁塞窗口cwnd增加一個MSS大小,使擁塞窗口緩慢增大,以防止網(wǎng)絡(luò)過早出現(xiàn)擁塞。
5-38設(shè)TCP的ssthresh的初始值為8(單位為報文段)。當(dāng)擁塞窗口上升到12時網(wǎng)絡(luò)發(fā)生了超時,TCP使用慢開始和擁塞避免。試分別求出第1輪次到第15輪次傳輸?shù)母鲹砣翱诘拇笮?。你能說明擁塞窗口每一次變化的原因嗎?
(1)TCP連接初始化時,cwnd=1;
(2)執(zhí)行慢開始算法,使用慢開始算法后,每經(jīng)過一個傳輸輪次(transmission round),擁塞窗口cwnd就加倍。隨后的窗口大小為2,4,8;
(3)當(dāng)cwnd=8=ssthresh,進入了擁塞避免階段,擁塞避免算法的思路是讓擁塞窗口cwnd緩慢地增大,即每經(jīng)過一個往返時間RTT就把發(fā)送方的擁塞窗口cwnd加1,而不是像慢開始階段那樣加倍增長。其窗口大小依次為9,10,11,12,直到12發(fā)生擁塞;
(4)更新ssthresh=6。進入慢開始,設(shè)置cwnd=1,重復(fù)(2),慢開始階段窗口依次為1,2,4,6,進入擁塞避免階段窗口大小依次為7,8,9;
所以,第1次到第15次傳輸?shù)母鲹砣翱诖笮∫来螢?,2,4,8,9,10,11,12,1,2,4,6,7,8,9。
5-39TCP的擁基窗口cwnd大小與傳輸輪次n的關(guān)系如下所示:
cwnd | 1 | 2 | 4 | 8 | 16 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
n | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
cwnd | 40 | 41 | 42 | 21 | 22 | 23 | 24 | 25 | 26 | 1 | 2 | 4 | 8 |
n | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 |
(1)試畫出如圖5-25所示的擁塞窗口與傳輸輪次的關(guān)系曲線。(2)指明TCP工作在慢開始階段的時間間隔。
(2)慢開始時間間隔:[1,6]和[23,26]。
(3)指明TCP工作在擁塞避免階段的時間間隔。
(3)擁塞避免時間間隔:[6,16]和[17,22]。
(4)在第16輪次和第22輪次之后發(fā)送方是通過收到三個重復(fù)的確認(rèn)還是通過超時檢測到丟失了報文段?
(4)在第16輪次之后發(fā)送方從新門限值開始,是通過收到三個重復(fù)的確認(rèn)檢測到丟失的報文段。
在第22輪次之后發(fā)送方啟動慢開始,是通過超時檢測到丟失的報文段。
(5)在第1輪次、第18輪次和第24輪次發(fā)送時,門限ssthresh分別被設(shè)置為多大?
(5)在第1輪次發(fā)送時,門限 ssthresh 被設(shè)置為32。
在第18輪次發(fā)送時,門限ssthresh被設(shè)置為發(fā)生擁塞時的一半,即21。
在第24輪次發(fā)送時,門限ssthresh是13。
(6)在第幾輪次發(fā)送出第70個報文段?
(6)第70報文段在第7輪次發(fā)送出。
(7)假定在第26輪次之后收到了三個重復(fù)的確認(rèn),因而檢測出了報文段的丟失,那么擁塞窗口cwmd 和門限ssthresh應(yīng)設(shè)置為多大?
(7)擁塞窗口cwnd 和門限ssthresh應(yīng)設(shè)置為8的一半,即4。
5-49下面是以十六進制格式存儲的一個UDP首部:
CB84000D001C001C 試問:
(1)源端口號是什么?
CB84是源端口 十六進制轉(zhuǎn)十進制 12*163+11*162+8*16+4=52100。
(2)目的端口號是什么?
000D是目的端口 十六進制轉(zhuǎn)十進制 13*160=13。
(3)這個用戶數(shù)據(jù)報的總長度是多少?
001C是用戶數(shù)據(jù)報的總長度 16+12=28。
(4)數(shù)據(jù)長度是多少?
數(shù)據(jù)部分長度為:28-首部長度=28-8=20。
(5)這個分組是從客戶到服務(wù)器方向的,還是從服務(wù)器到客戶方向的?
目的端口號是13(熟知端口),分組是從客戶到服務(wù)器。
(6)客戶進程是什么?
Daytime。
5-52UDP和IP的不可靠程度是否相同?請加以解釋。
UDP用戶數(shù)據(jù)報的校驗和既校驗UDP用戶數(shù)據(jù)報的首部又校驗整個的UDP用戶數(shù)據(jù)報的數(shù)據(jù)部分,而IP數(shù)據(jù)報的校驗和僅僅校驗IP數(shù)據(jù)報的首部。UDP用戶數(shù)據(jù)報的校驗和還增加了偽首部,即還校驗了下面的IP數(shù)據(jù)報的源IP地址和目的IP地址。文章來源:http://www.zghlxwxcb.cn/news/detail-485366.html
5-74流量控制和擁塞控制的最主要的區(qū)別是什么?發(fā)送窗口的大小取決于流量還是擁塞控制?
擁塞控制:防止過多的數(shù)據(jù)注入到網(wǎng)絡(luò)中,這樣可以使網(wǎng)絡(luò)中的路由器或鏈路不致過載。擁塞控制所要做的都有一個前提:網(wǎng)絡(luò)能夠承受現(xiàn)有的網(wǎng)絡(luò)負(fù)荷。擁塞控制是一個全局性的過程,涉及到所有的主機、路由器,以及與降低網(wǎng)絡(luò)傳輸性能有關(guān)的所有因素。
流量控制:指點對點通信量的控制,是端到端的問題。流量控制所要做的就是抑制發(fā)送端發(fā)送數(shù)據(jù)的速率,以便使接收端來得及接收。
發(fā)送窗口的大小取決于網(wǎng)絡(luò)的擁塞程度,并且動態(tài)地在變化。發(fā)送方讓自己的發(fā)送窗口等于擁塞窗口。如果再考慮到接收方的接收能力,那么發(fā)送窗口還可能小于擁塞窗口。
發(fā)送方控制擁塞窗口的原則是:只要網(wǎng)絡(luò)沒有出現(xiàn)擁塞,擁塞窗口就再增大一些,以便把更多的分組發(fā)送出去。但只要網(wǎng)絡(luò)出現(xiàn)擁塞,擁塞窗口就減少一些,以減少注入到網(wǎng)絡(luò)中的分組數(shù)。文章來源地址http://www.zghlxwxcb.cn/news/detail-485366.html
到了這里,關(guān)于計算機網(wǎng)絡(luò)習(xí)題——第5章 運輸層的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!