




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第5章運(yùn)輸層教案課題名稱第5章運(yùn)輸層計(jì)劃課時(shí)8學(xué)時(shí)內(nèi)容分析本章簡(jiǎn)要介紹運(yùn)輸層的基本功能,無連接的服務(wù)與面向連接的服務(wù),套接字的概念。然后分別講解UDP和TCP這兩種運(yùn)輸層協(xié)議。重點(diǎn)講解UDP數(shù)據(jù)報(bào)結(jié)構(gòu),TCP實(shí)現(xiàn)可靠性通信的原理,包括TCP報(bào)文結(jié)構(gòu)、流量控制、擁塞控制、連接管理。本章還用實(shí)例分析了TCP協(xié)議存在的安全漏洞。教學(xué)目標(biāo)及基本要求理解運(yùn)輸層層基本功能,無連接的服務(wù)與面向連接的服務(wù)理解UDP協(xié)議和TCP協(xié)議的基本功能和不同特點(diǎn)理解并掌握TCP協(xié)議可靠性通信機(jī)制,包括流量控制和擁塞控制理解TCP連接管理機(jī)制教學(xué)重點(diǎn)運(yùn)輸層層基本功能,無連接的服務(wù)與面向連接的服務(wù)TCP流量控制和擁塞控制教學(xué)難點(diǎn)TCP流量控制和擁塞控制教學(xué)方式以PPT講授為主,并結(jié)合多媒體進(jìn)行教學(xué)教學(xué)過程5.1運(yùn)輸層提供的服務(wù)(1學(xué)時(shí))運(yùn)輸層就是利用網(wǎng)絡(luò)層提供的服務(wù)向應(yīng)用層提供有效的、可靠的端到端即進(jìn)程到進(jìn)程之間的通信服務(wù)。所以運(yùn)輸層協(xié)議也被稱為端到端協(xié)議(End-to-EndProtocol)。5.1.1運(yùn)輸層的功能運(yùn)輸層的基本功能可以概括為以下幾點(diǎn)。(1)實(shí)現(xiàn)端到端即進(jìn)程到進(jìn)程的數(shù)據(jù)通信。(2)數(shù)據(jù)的封裝/解封。(3)可靠數(shù)據(jù)傳輸即差錯(cuò)控制,避免報(bào)文出錯(cuò)、丟失、延遲時(shí)間紊亂、重復(fù)、亂序。(4)流量控制、擁塞控制。(5)連接的建立與釋放。5.1.2運(yùn)輸層端口與套接字運(yùn)輸層的重要功能之一就是提供了面向進(jìn)程的通信機(jī)制。因此,運(yùn)輸層協(xié)議必須提供某種方法來標(biāo)識(shí)通信應(yīng)用進(jìn)程。TCP/UDP協(xié)議采用端口(Port)概念來標(biāo)識(shí)通信應(yīng)用進(jìn)程。端口用一個(gè)16位端口號(hào)進(jìn)行標(biāo)識(shí)。運(yùn)輸層最常用的熟知端口是TCP20文件傳輸協(xié)議(FTP)的數(shù)據(jù)連接、TCP21文件傳輸協(xié)議的控制連接、TCP23遠(yuǎn)程登錄服務(wù)(Telnet)、TCP25簡(jiǎn)單郵件傳輸協(xié)議(SMTP)、TCP80HTTP、TCP110電子郵件接收協(xié)議(POP3)、UDP23域名服務(wù)(DNS)等。查看本機(jī)正在運(yùn)行的服務(wù)和已經(jīng)建立的連接,以及對(duì)應(yīng)的端口,可以在命令窗口(運(yùn)行cmd)下用netstat–an命令查看。為了區(qū)分不同的網(wǎng)絡(luò)應(yīng)用服務(wù),就必須把主機(jī)的IP地址和端口號(hào)進(jìn)行綁定后使用。主機(jī)IP地址和端口號(hào)的綁定組成了套接字。5.1.3無連接的服務(wù)與面向連接的服務(wù)運(yùn)輸層的基本服務(wù)又可分成兩種,分別是面向連接的服務(wù)和無連接的服務(wù)。面向連接的服務(wù)具有基于連接的流量控制、差錯(cuò)控制和分組排序功能,數(shù)據(jù)在這種服務(wù)方式下的傳遞是有序的和可靠的,但是這種服務(wù)的實(shí)現(xiàn)需要進(jìn)行連接的建立、維護(hù)和終止,開銷較大。面向連接服務(wù)以電話系統(tǒng)為模式。要和某個(gè)人通話,首先拿起電話,撥號(hào)碼,通話,然后掛斷。同樣在使用面向連接的服務(wù)時(shí),用戶首先要建立連接,使用連接,然后釋放連接。連接本質(zhì)上像個(gè)管道:發(fā)送者在管道的一端放入物體,接收者在另一端按同樣的次序取出物體;其特點(diǎn)是收發(fā)的數(shù)據(jù)不僅順序一致,而且內(nèi)容也相同。無連接的服務(wù)不能保證可靠地按順序提交,開銷較小。因此在選擇這兩種服務(wù)時(shí)要根據(jù)具體的應(yīng)用需求來決定。比如,當(dāng)用戶之間傳輸?shù)臄?shù)據(jù)量很大或者數(shù)據(jù)傳輸準(zhǔn)確性要求很高時(shí),就需要采用面向連接的服務(wù)。反之,對(duì)于數(shù)據(jù)傳遞量小、傳遞準(zhǔn)確性要求不是很高的情況則可采用無連接的服務(wù)。無連接服務(wù)以郵政系統(tǒng)為模式。每個(gè)報(bào)文(信件)帶有完整的目的地址,并且每一個(gè)報(bào)文都獨(dú)立于其他報(bào)文,由系統(tǒng)選定的路線傳遞。在正常情況下,當(dāng)兩個(gè)報(bào)文發(fā)往同一目的地時(shí),先發(fā)的先到。但是,也有可能先發(fā)的報(bào)文在途中延誤了,后發(fā)的報(bào)文反而先收到;而這種情況在面向連接的服務(wù)中是不會(huì)出現(xiàn)的。TCP/IP的運(yùn)輸層有兩個(gè)不同的協(xié)議:(1)用戶數(shù)據(jù)報(bào)協(xié)議(UserDatagramProtocol,UDP)。(2)傳輸控制協(xié)議(TransmissionControlProtocol,TCP)。兩種協(xié)議共同構(gòu)成TCP/IP協(xié)議的運(yùn)輸層,如圖5-3所示。運(yùn)輸層運(yùn)輸層圖5-3運(yùn)輸層的兩種協(xié)議5.2用戶數(shù)據(jù)報(bào)協(xié)議(UDP)(1學(xué)時(shí))用戶數(shù)據(jù)報(bào)協(xié)議,是面向報(bào)文的無連接運(yùn)輸層協(xié)議。5.2.1UDP特點(diǎn)UDP協(xié)議有以下主要特點(diǎn)。(1)UDP在傳送數(shù)據(jù)之前不需要先建立連接。對(duì)方的運(yùn)輸層在收到UDP報(bào)文后,不需要給出任何確認(rèn)。雖然UDP不提供可靠交付,但在某些情況下UDP是一種最有效的工作方式。UDP只在IP的數(shù)據(jù)報(bào)服務(wù)之上增加了很少一點(diǎn)的功能,即端口的功能和差錯(cuò)檢測(cè)的功能。(2)由于UDP沒有擁塞控制,因此網(wǎng)絡(luò)出現(xiàn)的擁塞不會(huì)使源主機(jī)的發(fā)送速率降低。這對(duì)某些實(shí)時(shí)應(yīng)用是很重要的。很多的實(shí)時(shí)應(yīng)用(如IP電話、實(shí)時(shí)視頻會(huì)議等)要求源主機(jī)以恒定的速率發(fā)送數(shù)據(jù),并且允許在網(wǎng)絡(luò)發(fā)生擁塞時(shí)丟失一些數(shù)據(jù),但不允許數(shù)據(jù)有太大的時(shí)延。UDP正好適合這種要求。(3)UDP是面向報(bào)文的。這就是說,UDP對(duì)應(yīng)用程序交給的報(bào)文不再劃分為若干個(gè)分組來發(fā)送,也不把收到的若干個(gè)報(bào)文合并后再交付給應(yīng)用程序。應(yīng)用程序交給UDP一個(gè)報(bào)文,UDP就發(fā)送這個(gè)報(bào)文;而UDP收到一個(gè)報(bào)文,就把它交付給應(yīng)用程序。應(yīng)用程序必須選擇合適大小的報(bào)文。(4)UDP支持一對(duì)一、一對(duì)多、多對(duì)一和多對(duì)多的交互通信。用戶數(shù)據(jù)報(bào)只有8字節(jié)的首部開銷,比TCP的20字節(jié)的首部要短。5.2.2UDP數(shù)據(jù)報(bào)結(jié)構(gòu)UDP協(xié)議的數(shù)據(jù)報(bào)報(bào)文結(jié)構(gòu)如圖5-4所示。圖5-4UDP協(xié)議的數(shù)據(jù)報(bào)報(bào)文結(jié)構(gòu)用戶數(shù)據(jù)報(bào)UDP有兩個(gè)字段:數(shù)據(jù)字段和首部字段。首部字段有8個(gè)字節(jié),由4個(gè)字段組成,每個(gè)字段都是兩個(gè)字節(jié)。在計(jì)算檢驗(yàn)和時(shí),臨時(shí)把“偽首部”和UDP用戶數(shù)據(jù)報(bào)連接在一起。偽首部?jī)H僅是為了計(jì)算檢驗(yàn)和的。5.3傳輸控制協(xié)議(TCP)(4學(xué)時(shí))TCP提供面向連接的服務(wù)。TCP不提供廣播或多播服務(wù)。由于TCP要提供可靠的、面向連接的傳輸服務(wù),因此不可避免地增加了許多的開銷。這不僅使協(xié)議數(shù)據(jù)單元的首部增大很多,還要占用許多的處理機(jī)資源。5.3.1TCP特點(diǎn)TCP協(xié)議有以下一些主要特點(diǎn)。(1)通信是全雙工方式。(2)發(fā)送方的應(yīng)用進(jìn)程按照自己產(chǎn)生數(shù)據(jù)的規(guī)律,不斷地把數(shù)據(jù)塊陸續(xù)寫入到TCP的發(fā)送緩存中。TCP再從發(fā)送緩存中取出一定數(shù)量的數(shù)據(jù),將其組成TCP報(bào)文段(Segment)逐個(gè)傳送給IP層,然后發(fā)送出去。(3)接收方從IP層收到TCP報(bào)文段后,先把它暫存在接收緩存中,然后讓接收方的應(yīng)用進(jìn)程從接收緩存中將數(shù)據(jù)塊逐個(gè)讀取。(4)由于運(yùn)輸層的通信是面向連接的,因此TCP每一條連接上的通信只能是一對(duì)一的,而不可能是一對(duì)多、多對(duì)一或多對(duì)多的。(5)TCP的報(bào)文段的長(zhǎng)度是不確定的。(6)TCP可以在發(fā)送自己的數(shù)據(jù)報(bào)文段的同時(shí),捎帶地把確認(rèn)信息附上。為了提高通信傳輸效率,發(fā)送數(shù)據(jù)報(bào)文段的一方,可以連續(xù)發(fā)送多個(gè)數(shù)據(jù)報(bào)文段,而不需要在收到一個(gè)確認(rèn)后才發(fā)送下一個(gè)報(bào)文段。例5-1:簡(jiǎn)述TCP和UDP的主要區(qū)別。解答:TCP提供的是面向連接、可靠的字節(jié)流服務(wù),并且有流量控制和擁塞控制功能。UDP提供的是無連接、不可靠的數(shù)據(jù)報(bào)服務(wù),無流量控制和擁塞控制。5.3.2TCP可靠傳輸?shù)墓ぷ髟頂?shù)據(jù)傳輸?shù)目煽啃跃褪且獙?shí)現(xiàn)差錯(cuò)控制,避免報(bào)文在傳輸過程中出錯(cuò)、丟失、延遲時(shí)間紊亂、重復(fù)、亂序等。TCP協(xié)議實(shí)現(xiàn)可靠性傳輸?shù)幕痉椒ǔ谩皺z驗(yàn)和”進(jìn)行報(bào)文差錯(cuò)檢測(cè)外就是確認(rèn)與重傳、連接管理、流量控制和擁塞控制機(jī)制。以下介紹確認(rèn)與重傳機(jī)制,其他機(jī)制后續(xù)詳述。5.3.3TCP數(shù)據(jù)報(bào)結(jié)構(gòu)TCP數(shù)據(jù)報(bào)結(jié)構(gòu)如圖5-6所示。圖5-6TCP數(shù)據(jù)報(bào)結(jié)構(gòu)下面是對(duì)TCP數(shù)據(jù)報(bào)報(bào)文結(jié)構(gòu)主要字段的解釋。1.源端口和目的端口源端口和目的端口就是用于對(duì)應(yīng)發(fā)送端和接收端應(yīng)用進(jìn)程的。這兩個(gè)值加上IP首部中的源端IP地址和目的端IP地址就可以唯一確定一個(gè)TCP連接。2.序號(hào)在每條TCP通信連接上傳送的每個(gè)數(shù)據(jù)字節(jié)都有一個(gè)與之相對(duì)應(yīng)的序號(hào),這是TCP協(xié)議實(shí)體的重要概念之一。以字節(jié)為單位遞增的TCP序號(hào)主要用于數(shù)據(jù)排序、重復(fù)檢測(cè)、差錯(cuò)處理及流量控制窗口等TCP協(xié)議機(jī)制,從而保證了傳輸任何數(shù)據(jù)字節(jié)都是可靠的。TCP序號(hào)不僅用于保證數(shù)據(jù)傳送的可靠性,還用于保證建立連接(SYN請(qǐng)求)和拆除連接(FIN請(qǐng)求)的可靠性,每個(gè)SYN和FIN字段都要占一個(gè)單位的序號(hào)空間。當(dāng)建立一個(gè)新的連接時(shí),SYN標(biāo)志變?yōu)?。序號(hào)字段中包含由這個(gè)主機(jī)所選擇的該連接的初始序號(hào)(InitialSequenceNumber,ISN)。既然每個(gè)傳輸?shù)淖止?jié)都被計(jì)數(shù),就要確認(rèn)序號(hào)是發(fā)送確認(rèn)的一端所期望收到的下一個(gè)序號(hào)。因此,確認(rèn)序號(hào)應(yīng)當(dāng)是上次已成功收到的數(shù)據(jù)字節(jié)序號(hào)加1。只有ACK標(biāo)志為1時(shí),確認(rèn)序號(hào)字段才有效。發(fā)送ACK無須任何代價(jià),因?yàn)?2位的確認(rèn)序號(hào)字段和ACK標(biāo)志一樣,總是TCP首部的一部分。因此,可以看到一旦一個(gè)連接建立起來,那么這個(gè)字段就總被設(shè)置,ACK標(biāo)志也總被設(shè)置為1。TCP為應(yīng)用層提供全雙工服務(wù),這意味著數(shù)據(jù)能在兩個(gè)方向上獨(dú)立地進(jìn)行傳輸。因此,連接的每一端必須保持每個(gè)方向上的傳輸數(shù)據(jù)序號(hào)。3.確認(rèn)號(hào)確認(rèn)號(hào)字段——占4字節(jié),是期望收到對(duì)方的下一個(gè)報(bào)文段的數(shù)據(jù)的第一個(gè)字節(jié)的序號(hào)。4.數(shù)據(jù)偏移數(shù)據(jù)偏移占4位,它指出TCP報(bào)文段的數(shù)據(jù)起始處距離TCP報(bào)文段的起始處有多遠(yuǎn),單位是字。5.標(biāo)志位TCP協(xié)議根據(jù)報(bào)文的不同功能設(shè)置6個(gè)標(biāo)志位UAPRSF。U表示緊急位(URG)。當(dāng)URG=1時(shí),表明緊急指針字段有效。它告訴系統(tǒng)此報(bào)文段中有緊急數(shù)據(jù),應(yīng)盡快傳送(相當(dāng)于高優(yōu)先級(jí)的數(shù)據(jù))。A表示確認(rèn)位(ACK)。只有當(dāng)ACK=1時(shí)確認(rèn)號(hào)字段才有效。當(dāng)ACK=0時(shí),確認(rèn)號(hào)字段無效。P表示推送位(PSH)。TCP收到PSH=1的報(bào)文段,就盡快地交付給接收應(yīng)用進(jìn)程,而不再等到整個(gè)緩存都填滿了后再向上交付。R表示復(fù)位位(RST)。當(dāng)RST=1時(shí),表明TCP連接中出現(xiàn)嚴(yán)重差錯(cuò)(如由于主機(jī)崩潰或其他原因),必須釋放連接,然后再重新建立傳輸連接。S表示同步位(SYN)。當(dāng)SYN=1時(shí),表示這是一個(gè)連接請(qǐng)求或連接接受報(bào)文。F表示終止位(FIN)。用來釋放連接。當(dāng)FIN=1時(shí),表明此報(bào)文段的發(fā)送方的數(shù)據(jù)已發(fā)送完畢,并要求釋放傳輸連接。6.窗口2個(gè)字節(jié),由接收方通知發(fā)送方自己目前能夠接收的數(shù)據(jù)量(由緩沖區(qū)空間限制),發(fā)送方據(jù)此設(shè)置發(fā)送窗口。窗口是TCP實(shí)現(xiàn)流量控制的依據(jù),將在本章5.4節(jié)詳細(xì)介紹。在數(shù)據(jù)傳輸過程中,發(fā)送方按接收方通告的窗口尺寸和序號(hào)發(fā)送一定的數(shù)據(jù)量。接收方可根據(jù)接收緩沖區(qū)的使用狀況動(dòng)態(tài)地調(diào)整接收窗口,并在輸出數(shù)據(jù)段或確認(rèn)號(hào)字段時(shí)捎帶著將新的窗口尺寸和起始序號(hào)(在確認(rèn)號(hào)字段中指出)通告給發(fā)送方。發(fā)送方將按新的起始序號(hào)和新的接收窗口尺寸來調(diào)整發(fā)送窗口,接收方也用新的起始序號(hào)和新的接收窗口大小來驗(yàn)證每一個(gè)輸入數(shù)據(jù)段的可接收性。7.檢驗(yàn)和檢驗(yàn)和覆蓋了整個(gè)的TCP報(bào)文段:TCP首部和TCP數(shù)據(jù)。這是一個(gè)強(qiáng)制性的字段,必須是由發(fā)送端計(jì)算和存儲(chǔ),由接收端進(jìn)行驗(yàn)證的。8.緊急指針緊急指針占16位。緊急指針指出在本報(bào)文段中的緊急數(shù)據(jù)的最后一個(gè)字節(jié)的序號(hào)。9.選項(xiàng)10.填充填充字段是為了使整個(gè)首部長(zhǎng)度是4字節(jié)的整數(shù)倍。5.3.4TCP的流量控制與滑動(dòng)窗口協(xié)議在建立連接時(shí),TCP連接的每一端都會(huì)為這個(gè)連接分配一定數(shù)量的緩存。當(dāng)收到正確的字節(jié)后,就會(huì)將數(shù)據(jù)放入緩存。如果發(fā)送方繼續(xù)快速地發(fā)送數(shù)據(jù),緩存就會(huì)被充滿,最后溢出。因此需要有一種機(jī)制來控制發(fā)送方發(fā)送數(shù)據(jù)的速度,保證接收緩存不溢出,這種機(jī)制稱為流量控制。上一節(jié)介紹的確認(rèn)重傳機(jī)制不僅實(shí)現(xiàn)了可靠數(shù)據(jù)傳輸,實(shí)際上也是一種簡(jiǎn)單的流量控制協(xié)議。發(fā)送方每發(fā)給接收方一個(gè)數(shù)據(jù)報(bào)文,就等待接收方確認(rèn)收到的應(yīng)答(ACK),在沒有收到這個(gè)ACK之前,發(fā)送方不能發(fā)送第2個(gè)數(shù)據(jù)報(bào)。對(duì)發(fā)送方而言,如果在一段設(shè)定的時(shí)間內(nèi)沒有收到ACK,則重新發(fā)送數(shù)據(jù)報(bào)。雖然這種方式傳輸數(shù)據(jù)可靠,但對(duì)帶寬的利用率不高。因此TCP協(xié)議按以下所謂滑動(dòng)窗口方式一次發(fā)送一組數(shù)據(jù)報(bào),更加有效地利用了帶寬。(1)發(fā)送方可以連續(xù)發(fā)送窗口中的所有數(shù)據(jù)包而不必等待ACK,同時(shí)每發(fā)送一個(gè)數(shù)據(jù)包啟動(dòng)一個(gè)計(jì)時(shí)器。(2)接收方每當(dāng)成功接收一個(gè)數(shù)據(jù)報(bào)時(shí),要向發(fā)送方發(fā)送一個(gè)ACK。(3)對(duì)于發(fā)送方而言,每收到一個(gè)ACK則窗口將滑動(dòng)一次。發(fā)送窗口:發(fā)送方維持一個(gè)發(fā)送窗口,位于發(fā)送窗口內(nèi)的分組都可被連續(xù)發(fā)送出去,而不需要等待接收方的確認(rèn)。(4)累積確認(rèn):接收方對(duì)按序到達(dá)的最后一個(gè)分組發(fā)送確認(rèn),表示到這個(gè)分組為止的所有分組都已正確收到了。(5)Go-Back-N(回退N):表示需要再退回來重傳已發(fā)送過的N個(gè)分組。在圖5-7中,一個(gè)窗口大小為5的滑動(dòng)窗口,在連續(xù)發(fā)送5個(gè)數(shù)據(jù)報(bào)時(shí)不必等待應(yīng)答信號(hào)。若在連續(xù)發(fā)送時(shí)收到了ACK1,則窗口向前移動(dòng)一格,此時(shí)可以發(fā)送第6個(gè)數(shù)據(jù)報(bào)。圖5-7滑動(dòng)窗口正常變化如果第2個(gè)數(shù)據(jù)報(bào)在發(fā)送過程中丟失,而其他數(shù)據(jù)報(bào)都順利發(fā)送,那么接收方只發(fā)出ACK2,對(duì)于成功接收到的第3、4、5、6個(gè)數(shù)據(jù)報(bào),對(duì)發(fā)送方的應(yīng)答也是ACK2,也就是說,接收方只對(duì)連續(xù)收到的數(shù)據(jù)報(bào)進(jìn)行應(yīng)答。發(fā)送方一直等待ACK3,直到定時(shí)器超時(shí),重新發(fā)送第2個(gè)數(shù)據(jù)報(bào)。當(dāng)?shù)?個(gè)數(shù)據(jù)報(bào)成功發(fā)送給接收方后,接收方將直接產(chǎn)生并發(fā)送ACK7,發(fā)送方的滑動(dòng)窗口移動(dòng)到seq6,如圖5-8所示。圖5-8數(shù)據(jù)丟失滑動(dòng)窗口停止變化,丟失的數(shù)據(jù)超時(shí)重傳TCP協(xié)議利用首部中的窗口字段動(dòng)態(tài)通知對(duì)方自己的接收緩存大小,使發(fā)送窗口根據(jù)接收方的調(diào)節(jié)而變化。窗口通告值增大時(shí),發(fā)送方擴(kuò)大發(fā)送窗口的大小,以便發(fā)送更多的數(shù)據(jù)。窗口通告值減小時(shí),發(fā)送方縮小發(fā)送窗口的大小,以便接收方能夠來得及接收數(shù)據(jù)。窗口通告值減小至零時(shí),發(fā)送方將停止發(fā)送數(shù)據(jù),直到窗口通告值重新調(diào)整為大于零的數(shù)值。例5-2:圖5-9是一個(gè)利用可變窗口實(shí)現(xiàn)流量控制的實(shí)例。在建立連接時(shí)B向A發(fā)送,其rwnd=400。其后rwnd依次改變成300、100和0。問A各輪次可發(fā)送的字節(jié)是怎樣變化的?解答:根據(jù)累積確認(rèn)、超時(shí)重傳以及回退N協(xié)議,A各輪次可發(fā)送字節(jié)范圍隨B的rwnd的變化而相應(yīng)變化。圖5-9TCP流量控制實(shí)例在“滑動(dòng)窗口”概念中,“發(fā)送窗口”和“接收窗口”的作用是什么?如果接收方的接收能力不斷地發(fā)生變化,則采取何種措施可以提高協(xié)議的效率。解答:“發(fā)送窗口”作用是限制發(fā)送方連續(xù)發(fā)送數(shù)據(jù)的數(shù)量,即控制發(fā)送方發(fā)送數(shù)據(jù)的平均速率。“接收窗口”反映了接收方當(dāng)前接收緩存的大小,即接收方接收能力的大小。當(dāng)接收方的接收能力不斷地發(fā)生變化時(shí),可以將接收窗口的大小發(fā)送給發(fā)送方,調(diào)節(jié)發(fā)送方的發(fā)送速率,避免因發(fā)送方發(fā)送速率太大或太小而導(dǎo)致接收緩存的溢出或帶寬的浪費(fèi),從而提高協(xié)議的效率。例5-4:設(shè)發(fā)送端為A,接收端為B,忽略擁塞窗口,當(dāng)前A的滑動(dòng)窗口大小為8個(gè)分組單位,在連續(xù)發(fā)送編號(hào)為1到6的6個(gè)分組后,收到B確認(rèn)已經(jīng)收到4號(hào)分組的信息(按照累積確認(rèn)方式),同時(shí)接收方窗口rwnd修改成了5,問:1)此時(shí)可以明確B已經(jīng)收到的分組是哪些?2)在下一次收到B的確認(rèn)之前A還能夠繼續(xù)發(fā)送哪些分組?3)如果發(fā)送窗口內(nèi)的數(shù)據(jù)已經(jīng)全部發(fā)送,之后就沒有再收到B的確認(rèn),則A將執(zhí)行什么操作?要求說明每個(gè)問題的依據(jù)。解答:1)根據(jù)累計(jì)確認(rèn)協(xié)議,此時(shí)可以明確B已經(jīng)收到的分組是1~4。2)因?yàn)楫?dāng)前rwnd=5,在下一次收到B的確認(rèn)之前A還能夠繼續(xù)發(fā)送的分組是5~9。3)根據(jù)超時(shí)重傳和GBN協(xié)議,如果發(fā)送窗口內(nèi)的數(shù)據(jù)已經(jīng)全部發(fā)送,之后就沒有再收到B的確認(rèn),則A將重傳5號(hào)開始的舊數(shù)據(jù)。5.3.5TCP的擁塞控制擁塞(Congestion)是指互聯(lián)網(wǎng)中的數(shù)據(jù)報(bào)過多,超過了中間節(jié)點(diǎn)(如路由器等)的最大容量,從而導(dǎo)致時(shí)延急劇增加,網(wǎng)絡(luò)性能急速下降的現(xiàn)象。而解決擁塞問題所采用的機(jī)制和采取的措施稱為擁塞控制(CongestionControl)。擁塞控制算法主要用于避免擁塞現(xiàn)象的發(fā)生。擁塞控制可以限制TCP向網(wǎng)絡(luò)中注入數(shù)據(jù)的大小和速率。流量控制中的接收窗口值rwnd是接收方通告值,只反映接收方的接收能力,不能體現(xiàn)中間節(jié)點(diǎn)的處理能力。TCP引入擁塞窗口(CongestionWindow,cwnd),由發(fā)送方根據(jù)網(wǎng)絡(luò)的情況設(shè)置,表示發(fā)送方允許發(fā)送的最大報(bào)文段。從流量控制的角度,發(fā)送窗口一定不能超過接收窗口,實(shí)際的發(fā)送窗口的上限值應(yīng)該等于接收窗口(rwnd)與擁塞窗口(cwnd)中最小的一個(gè):Min(rwnd,cwnd)。rwnd與cwnd中較小的一個(gè)限制發(fā)送端的報(bào)文發(fā)送速率。TCP通常綜合采用慢開始、擁塞避免、快速重傳和快速恢復(fù)等擁塞控制算法。下面只對(duì)慢開始和擁塞避免算法做簡(jiǎn)要介紹。慢開始算法要點(diǎn):1)建立連接后,準(zhǔn)備發(fā)送數(shù)據(jù)時(shí),擁塞窗口的大小初始值設(shè)置為1(1個(gè)報(bào)文段);2)收到確認(rèn)后,將擁塞窗口大小設(shè)為2;收到2個(gè)確認(rèn)后,將擁塞窗口大小設(shè)為4;3)隨后慢開始算法中的擁塞窗口cwnd會(huì)以指數(shù)方式快速增長(zhǎng),所以慢開始只是初值小,增長(zhǎng)速度卻很快。為避免cwnd過快增長(zhǎng)引起網(wǎng)絡(luò)擁塞,設(shè)置慢開始閾值(ssthresh)。cwnd<ssthresh時(shí)采用慢開始算法;cwnd>ssthresh時(shí)采用擁塞避免算法,減慢窗口增長(zhǎng)速度。擁塞避免算法:每經(jīng)過一個(gè)往返時(shí)延RTT,只有當(dāng)發(fā)送方收到對(duì)所有報(bào)文段的確認(rèn)后,才將擁塞窗口的大小增加一個(gè)報(bào)文段。如圖5-10是一個(gè)擁塞控制實(shí)例,初始設(shè)定閾值為16,前5次往返用慢開始算法,窗口的變化是1、2、4、8、16,接著改用擁塞避免算法,窗口的值依次變成17、18、19、20、21、22、23、24,是線性增長(zhǎng)的,當(dāng)窗口值達(dá)到24時(shí)出現(xiàn)超時(shí),重新采用慢開始算法,但新的閾值改為出現(xiàn)超時(shí)時(shí)的窗口閾值24的一半12。圖5-10擁塞控制實(shí)例例5-5:簡(jiǎn)述TCP流量控制和擁塞控制的不同。解答:流量控制解決因發(fā)送方發(fā)送數(shù)據(jù)太快而導(dǎo)致接收方來不及接收使接收方緩存溢出的問題。流量控制的基本方法就是接收方根據(jù)自己的接收能力控制發(fā)送方的發(fā)送速率。TCP采用接收方控制發(fā)送方發(fā)送窗口大小的方法來實(shí)現(xiàn)在TCP連接上的流量控制。擁塞控制就是防止過多的數(shù)據(jù)注入到網(wǎng)絡(luò)中,這樣可以使網(wǎng)絡(luò)中的路由器或鏈路不過載。TCP的發(fā)送方維持一個(gè)叫作擁塞窗口的狀態(tài)變量。擁塞窗口的大小取決于網(wǎng)絡(luò)的擁塞程度,當(dāng)網(wǎng)絡(luò)擁塞時(shí)減小擁塞窗口的大小,控制TCP發(fā)送方的發(fā)送速率。TCP發(fā)送方的發(fā)送窗口大小取接收窗口和擁塞窗口的最小值。從慢開始開始,當(dāng)擁塞窗口上升到12時(shí)網(wǎng)絡(luò)發(fā)生了超時(shí)。試畫出每個(gè)往返時(shí)間TCP擁塞窗口的演變曲線圖(橫坐標(biāo)單位為“往返次數(shù)”,縱坐標(biāo)為擁塞窗口值)。說明擁塞窗口每一次變化的原因(畫15個(gè)“往返次數(shù)”)。圖5-11例題5-6解答圖5.3.6TCP的運(yùn)輸連接管理TCP是一個(gè)面向連接的協(xié)議,通信雙方不論哪一方發(fā)送報(bào)文段,都必須首先建立一條連接,并在雙方數(shù)據(jù)通信結(jié)束后關(guān)閉連接。1.連接的建立TCP連接采用三次握手方法,所謂三次握手是指通信雙方三次交換報(bào)文,如圖5-12所示。首先發(fā)送方向接收方發(fā)送報(bào)文,報(bào)文中的同步位SYN=1,表示向接收方提出連接請(qǐng)求,同時(shí)報(bào)文中的初始序號(hào)seq=x,是發(fā)送方為自己選取的初始序列號(hào)。接收方收到此報(bào)文后,若同意連接,作為第2次握手,接收方向發(fā)送方回送同步位SYN=1、確認(rèn)位ACK=1、初始序列號(hào)seq=y(tǒng),以及確認(rèn)序號(hào)ack=x+1的報(bào)文段,對(duì)發(fā)送方的連接請(qǐng)求進(jìn)行確認(rèn)。最后一次握手,發(fā)送方向接收方發(fā)送確認(rèn)位ACK=1、確認(rèn)序號(hào)ack=y+1的報(bào)文段,對(duì)第2次握手時(shí)接收方發(fā)來的SYN=1的報(bào)文進(jìn)行確認(rèn),完成連接的建立。通常接收方主機(jī)的TCP服務(wù)器進(jìn)程被動(dòng)地等待連接建立請(qǐng)求,而發(fā)送方主機(jī)的TCP客戶進(jìn)程主動(dòng)地發(fā)出建立連接的請(qǐng)求。客戶端發(fā)送SYN報(bào)文,并設(shè)置發(fā)送序號(hào)為x服務(wù)端發(fā)送SYN+ACK報(bào)文,并設(shè)置發(fā)送序號(hào)為y,確認(rèn)序號(hào)為x客戶端發(fā)送SYN報(bào)文,并設(shè)置發(fā)送序號(hào)為x服務(wù)端發(fā)送SYN+ACK報(bào)文,并設(shè)置發(fā)送序號(hào)為y,確認(rèn)序號(hào)為x+1客戶端發(fā)送ACK報(bào)文,并設(shè)置發(fā)送序號(hào)為z,確認(rèn)序號(hào)為y+1確認(rèn)序號(hào)為y+1ACK=y+1seq=zSYN=1ACK=x+1seq=ySYN=1seq=x圖5-12TCP連接建立的過程5.4實(shí)驗(yàn)(2學(xué)時(shí))5.5本章小結(jié)本章要求重點(diǎn)理解和掌握運(yùn)輸層的功能、運(yùn)輸層端口的作用、TCP和UDP兩種運(yùn)輸層協(xié)議首部格式及不同特點(diǎn)。接著介紹了TCP可靠傳輸?shù)脑砼c實(shí)現(xiàn)、TCP的流量控制與滑動(dòng)窗口協(xié)議、TCP的擁塞控制和TCP的傳輸連接管理。實(shí)驗(yàn)項(xiàng)目要求學(xué)會(huì)用網(wǎng)絡(luò)監(jiān)聽工具捕獲和分析運(yùn)輸層協(xié)議。思考題和習(xí)題習(xí)題一、選擇題1. 運(yùn)輸層的基本功能是將()數(shù)據(jù)封裝成運(yùn)輸層報(bào)文。 A.數(shù)據(jù)鏈路層 B.應(yīng)用層 C.會(huì)話層 D.網(wǎng)絡(luò)層2. ()是面向連接的服務(wù)。 A.TCP B.UDP C.IP D.以太網(wǎng)3. 運(yùn)輸層的端口是指()。 A.服務(wù)器的端口 B.路由器的端口 C.應(yīng)用進(jìn)程的標(biāo)識(shí) D.交換機(jī)的端口4. TCP協(xié)議用滑動(dòng)窗口實(shí)現(xiàn)()。 A.流量控制 B.擁塞控制 C.連接建立 D.差錯(cuò)改正5. 擁塞控制是根據(jù)()的狀況決定發(fā)送端向網(wǎng)絡(luò)注入的數(shù)據(jù)大小和速率。 A.網(wǎng)絡(luò) B.應(yīng)用進(jìn)程 C.接收端 D.網(wǎng)卡6. 接收端在收到數(shù)據(jù)字節(jié)序號(hào)為100的報(bào)文后將向發(fā)送端發(fā)送確認(rèn)號(hào)為()的確認(rèn)報(bào)文。 A.100 B.101 C.0 D.17. 下面的關(guān)于傳輸控制協(xié)議表述不正確的是()。 A.主機(jī)尋址 B.進(jìn)程尋址 C.流量控制 D.差錯(cuò)檢測(cè)8. TCP協(xié)議采取的保證數(shù)據(jù)包可靠傳遞的措施不包括()。 A.超時(shí)重傳機(jī)制 B.確認(rèn)應(yīng)答機(jī)制 C.校驗(yàn)和機(jī)制 D.用戶認(rèn)證與加密機(jī)制9. 滑動(dòng)窗口的作用是()。 A.流量控制 B.擁塞控制 C.路由控制 D.差錯(cuò)控制10. 慢開始和擁塞避免算法的作用是()。 A.流量控制 B.擁塞控制 C.路由控制 D.差錯(cuò)控制二、填空題1. 運(yùn)輸層的基本服務(wù)又可分成兩種,分別是()服務(wù)和()服務(wù)。2. ()和()的綁定組成了套接字(S
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 4.2旅游業(yè)對(duì)地理環(huán)境的影響
- 中外定期租船合同
- 預(yù)測(cè)醫(yī)學(xué)數(shù)據(jù)科學(xué)在疾病預(yù)防中的角色
- 音樂文創(chuàng)產(chǎn)品的政策支持與市場(chǎng)前景分析
- 音樂產(chǎn)業(yè)中的IP孵化與推廣
- 青年對(duì)文化節(jié)慶活動(dòng)的認(rèn)知與參與度評(píng)估
- 非洲商業(yè)生態(tài)圈探索獨(dú)特商業(yè)模式
- 防火門與防火窗的維護(hù)保養(yǎng)技巧
- 青少年社會(huì)責(zé)任感的培養(yǎng)數(shù)學(xué)教育的角色與挑戰(zhàn)
- 非接觸式檢測(cè)在商業(yè)設(shè)備中的創(chuàng)新應(yīng)用
- 肺癌患者的健康宣教課件
- 鐵路工程竣工驗(yàn)收辦法
- GB/T 15231-2023玻璃纖維增強(qiáng)水泥性能試驗(yàn)方法
- 虛擬維護(hù)助手-使用VR技術(shù)幫助維護(hù)人員進(jìn)行設(shè)備維修和保養(yǎng)
- 2023年秋國家開放大學(xué)藥物治療學(xué)(本)形考作業(yè)1-4試題及答案
- 食堂油煙系統(tǒng)清洗服務(wù)投標(biāo)方案(技術(shù)標(biāo))
- 雙J管健康宣教
- 車位銷售推廣方案課件
- 軟件工程-機(jī)票預(yù)訂系統(tǒng)-詳細(xì)設(shè)計(jì)-報(bào)告
- 國家教學(xué)成果獎(jiǎng)培育申報(bào)與案例解析
- 網(wǎng)絡(luò)安全服務(wù)實(shí)施方案
評(píng)論
0/150
提交評(píng)論