版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第6-8講_運(yùn)輸層第5章運(yùn)輸層
5.1運(yùn)輸層協(xié)議概述5.1.1進(jìn)程之間的通信 5.1.2運(yùn)輸層的兩個(gè)主要協(xié)議5.1.3運(yùn)輸層的端口5.2用戶數(shù)據(jù)報(bào)協(xié)議UDP 5.2.1UDP概述 5.2.2UDP的首部格式1/6/20242計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層第5章運(yùn)輸層(續(xù))5.3傳輸控制協(xié)議TCP概述 5.3.1TCP最主要的特點(diǎn) 5.3.2TCP的連接5.4可靠傳輸?shù)墓ぷ髟?.4.1停止等待協(xié)議5.4.2連續(xù)ARQ協(xié)議5.5TCP報(bào)文段的首部格式1/6/20243計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層第5章運(yùn)輸層(續(xù))5.6TCP可靠傳輸?shù)膶?shí)現(xiàn)5.6.1以字節(jié)為單位的滑動(dòng)窗口
5.6.2超時(shí)重傳時(shí)間的選擇5.6.3選擇確認(rèn)SACK5.7TCP的流量控制5.7.1利用滑動(dòng)窗口實(shí)現(xiàn)流量控制5.7.1必須考慮傳輸效率
1/6/20244計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層第5章運(yùn)輸層(續(xù))5.8TCP的擁塞控制5.8.1擁塞控制的一般原理5.8.2幾種擁塞控制方法 5.8.3隨機(jī)早期檢測RED5.9TCP的運(yùn)輸連接管理 5.9.1TCP的連接建立5.9.2TCP的連接釋放5.9.3TCP的有限狀態(tài)機(jī)1/6/20245計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層5.1.1進(jìn)程之間的通信
為什么需要運(yùn)輸層兩臺(tái)主機(jī)通過網(wǎng)絡(luò)層已可相互通信IP數(shù)據(jù)報(bào)包含源IP地址和目的IP地址為什么還要運(yùn)輸層?通信的終點(diǎn)并非主機(jī);而是主機(jī)中的應(yīng)用進(jìn)程(QQ,IE等)一臺(tái)主機(jī)中可能同時(shí)有多個(gè)應(yīng)用進(jìn)程與另一臺(tái)主機(jī)的多個(gè)應(yīng)用進(jìn)程通信數(shù)據(jù)到達(dá)主機(jī)后,如何區(qū)分這些應(yīng)用進(jìn)程?1/6/20246計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層運(yùn)輸層的功能復(fù)用與分用復(fù)用:發(fā)送方的多個(gè)進(jìn)程共用一個(gè)運(yùn)輸層協(xié)議分用:接收方的運(yùn)輸層把數(shù)據(jù)分交給不同進(jìn)程其他重要功能可靠傳輸(差錯(cuò)檢測)擁塞控制流量控制通過“端口”區(qū)分不同的進(jìn)程1/6/20247計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層運(yùn)輸層協(xié)議和網(wǎng)絡(luò)層協(xié)議的主要區(qū)別
應(yīng)用進(jìn)程…
應(yīng)用進(jìn)程…
IP協(xié)議的作用范圍(提供主機(jī)之間的邏輯通信)TCP和UDP協(xié)議的作用范圍(提供進(jìn)程之間的邏輯通信)因特網(wǎng)1/6/20248計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層運(yùn)輸層為相互通信的應(yīng)用進(jìn)程提供了邏輯通信54321運(yùn)輸層提供應(yīng)用進(jìn)程間的邏輯通信主機(jī)A主機(jī)B應(yīng)用進(jìn)程應(yīng)用進(jìn)程路由器1路由器2AP1LAN2WANAP2AP3AP4IP層LAN1AP1AP2AP4端口端口54321IP協(xié)議的作用范圍運(yùn)輸層協(xié)議TCP和UDP的作用范圍AP31/6/20249計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層應(yīng)用進(jìn)程之間的通信兩個(gè)主機(jī)進(jìn)行通信實(shí)際上就是兩個(gè)主機(jī)中的應(yīng)用進(jìn)程互相通信。應(yīng)用進(jìn)程之間的通信又稱為端到端的通信?!斑\(yùn)輸層提供應(yīng)用進(jìn)程間的邏輯通信”?!斑壿嬐ㄐ拧钡囊馑际牵哼\(yùn)輸層之間的通信好像是沿水平方向傳送數(shù)據(jù)。但事實(shí)上這兩個(gè)運(yùn)輸層之間并沒有一條水平方向的物理連接。1/6/202410計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層5.1.3運(yùn)輸層的端口操作系統(tǒng)中,進(jìn)程是用進(jìn)程標(biāo)識(shí)符來標(biāo)志的但是,不同操作系統(tǒng)使用的進(jìn)程標(biāo)識(shí)符不統(tǒng)一為了使運(yùn)行不同操作系統(tǒng)的計(jì)算機(jī)的應(yīng)用進(jìn)程能夠互相通信,就必須用統(tǒng)一的方法對(duì)TCP/IP體系的應(yīng)用進(jìn)程進(jìn)行標(biāo)志。1/6/202411計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層端口號(hào)(protocolportnumber)
簡稱為端口(port)解決這個(gè)問題的方法就是在運(yùn)輸層使用協(xié)議端口號(hào)(protocolportnumber),或通常簡稱為端口(port)。雖然通信的終點(diǎn)是應(yīng)用進(jìn)程,但我們可以把端口想象是通信的終點(diǎn),因?yàn)槲覀冎灰岩獋魉偷膱?bào)文交到目的主機(jī)的某一個(gè)合適的目的端口,剩下的工作(即最后交付目的進(jìn)程)就由TCP來完成。1/6/202412計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層辨析:軟件端口與硬件端口在協(xié)議棧層間的抽象的協(xié)議端口是軟件端口(即運(yùn)輸層的端口)。路由器或交換機(jī)上的端口是硬件端口。硬件端口是不同硬件設(shè)備進(jìn)行交互的接口,而軟件端口是應(yīng)用層的各個(gè)進(jìn)程與運(yùn)輸實(shí)體進(jìn)行層間交互的一種地址。1/6/202413計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層TCP的端口端口用一個(gè)16位端口號(hào)進(jìn)行標(biāo)志。端口號(hào)只具有本地意義,即端口號(hào)只是為了標(biāo)志本計(jì)算機(jī)應(yīng)用層中的各進(jìn)程。在因特網(wǎng)中不同計(jì)算機(jī)的相同端口號(hào)是沒有聯(lián)系的。1/6/202414計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層三類端口熟知端口,數(shù)值一般為0~1023。登記端口號(hào),數(shù)值為1024~49151,為沒有熟知端口號(hào)的應(yīng)用程序使用的。使用這個(gè)范圍的端口號(hào)必須在IANA登記,以防止重復(fù)。客戶端口號(hào)或短暫端口號(hào),數(shù)值為49152~65535,留給客戶進(jìn)程選擇暫時(shí)使用。當(dāng)服務(wù)器進(jìn)程收到客戶進(jìn)程的報(bào)文時(shí),就知道了客戶進(jìn)程所使用的動(dòng)態(tài)端口號(hào)。通信結(jié)束后,這個(gè)端口號(hào)可供其他客戶進(jìn)程以后使用。1/6/202415計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層常用熟知端口80:http協(xié)議端口81:https協(xié)議端口53:域名解析服務(wù)DNS的端口21:FTP服務(wù)的端口……1/6/202416計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層TCP/IP的運(yùn)輸層有兩個(gè)不同的協(xié)議:(1)用戶數(shù)據(jù)報(bào)協(xié)議UDP
(UserDatagramProtocol)傳送UDP報(bào)文(用戶數(shù)據(jù)報(bào))(2)傳輸控制協(xié)議TCP
(TransmissionControlProtocol)傳送TCP報(bào)文段(Segment)5.1.2運(yùn)輸層的兩個(gè)主要協(xié)議1/6/202417計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層TCP/IP體系中的運(yùn)輸層協(xié)議TCPUDPIP應(yīng)用層與各種網(wǎng)絡(luò)接口運(yùn)輸層1/6/202418計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層TCP與UDPUDP提供無連接服務(wù)不需要事先建立連接接收方收到UDP報(bào)文后,不需要返回確認(rèn)UDP不提供可靠交付,但是卻很高效TCP提供面向連接的服務(wù)支持可靠傳輸、擁塞控制和流量控制因此,TCP協(xié)議的開銷比較大1/6/202419計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層5.2用戶數(shù)據(jù)報(bào)協(xié)議UDP
UDP的主要特點(diǎn)UDP只在IP之上增加端口和差錯(cuò)檢測的功能。UDP是無連接的,即發(fā)送數(shù)據(jù)之前不需要建立連接。UDP使用盡最大努力交付,即不保證可靠交付,同時(shí)也不使用擁塞控制,很適合多媒體通信的要求。UDP支持一對(duì)一、一對(duì)多、多對(duì)一和多對(duì)多的交互通信。UDP的首部開銷小,只有8個(gè)字節(jié)。1/6/202420計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層面向報(bào)文的UDP發(fā)送方UDP對(duì)應(yīng)用程序交下來的報(bào)文,在添加首部后就向下交付IP層。UDP對(duì)應(yīng)用層交下來的報(bào)文,既不合并,也不拆分,而是保留這些報(bào)文的邊界。應(yīng)用層交給UDP多長的報(bào)文,UDP就照樣發(fā)送,即一次發(fā)送一個(gè)報(bào)文。接收方UDP對(duì)IP層交上來的UDP用戶數(shù)據(jù)報(bào),在去除首部后就原封不動(dòng)地交付上層的應(yīng)用進(jìn)程,一次交付一個(gè)完整的報(bào)文。應(yīng)用程序必須選擇合適大小的報(bào)文。1/6/202421計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層UDP是面向報(bào)文的IP數(shù)據(jù)報(bào)的數(shù)據(jù)部分IP首部IP層UDP首部UDP用戶數(shù)據(jù)報(bào)的數(shù)據(jù)部分運(yùn)輸層應(yīng)用層報(bào)文應(yīng)用層1/6/202422計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層5.2.2UDP的首部格式1/6/2024計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層偽首部源端口目的端口長度檢驗(yàn)和數(shù)據(jù)首部UDP長度源IP地址目的IP地址017IP數(shù)據(jù)報(bào)字節(jié)44112122222字節(jié)發(fā)送在前數(shù)據(jù)首部UDP用戶數(shù)據(jù)報(bào)在計(jì)算檢驗(yàn)和時(shí),臨時(shí)把“偽首部”和UDP用戶數(shù)據(jù)報(bào)連接在一起。偽首部僅僅是為了計(jì)算檢驗(yàn)和。1/6/202424計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層偽首部源端口目的端口長度檢驗(yàn)和數(shù)據(jù)首部UDP長度源IP地址目的IP地址017IP數(shù)據(jù)報(bào)字節(jié)44112122222字節(jié)發(fā)送在前數(shù)據(jù)首部UDP用戶數(shù)據(jù)報(bào)用戶數(shù)據(jù)報(bào)UDP有兩個(gè)字段:數(shù)據(jù)字段和首部字段。首部字段有8個(gè)字節(jié),由4個(gè)字段組成,每個(gè)字段都是兩個(gè)字節(jié)。1/6/202425計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層UDP基于端口的分用IP層UDP數(shù)據(jù)報(bào)到達(dá)端口2端口3端口1UDP分用1/6/202426計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層計(jì)算UDP檢驗(yàn)和的例子1001100100010011→153.190000100001101000→8.1041010101100000011→171.30000111000001011→14.110000000000010001→0和170000000000001111→150000010000111111→10870000000000001101→130000000000001111→150000000000000000→0(檢驗(yàn)和)0101010001000101→數(shù)據(jù)0101001101010100→數(shù)據(jù)0100100101001110→數(shù)據(jù)0100011100000000→數(shù)據(jù)和0(填充)1001011011101101→求和得出的結(jié)果0110100100010010→檢驗(yàn)和04112字節(jié)偽首部8字節(jié)UDP首部7字節(jié)數(shù)據(jù)填充按二進(jìn)制反碼運(yùn)算求和將得出的結(jié)果求反碼全01715108713
15
全0數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)全01/6/202427計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層5.3傳輸控制協(xié)議TCP概述
5.3.1TCP最主要的特點(diǎn)
TCP是面向連接的運(yùn)輸層協(xié)議TCP連接是點(diǎn)對(duì)點(diǎn)(一對(duì)一)的,每條TCP連接只能有兩個(gè)端點(diǎn)(endpoint)TCP提供可靠交付的服務(wù)TCP提供全雙工通信TCP是面向字節(jié)流的1/6/202428計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層768H
TCP面向流的概念
發(fā)送TCP報(bào)文段發(fā)送方接收方把字節(jié)寫入發(fā)送緩存從接收緩存讀取字節(jié)應(yīng)用進(jìn)程應(yīng)用進(jìn)程1230181716151419202145131211H109H加上TCP首部構(gòu)成TCP報(bào)文段TCPTCP字節(jié)流字節(jié)流H表示TCP報(bào)文段的首部x表示序號(hào)為x的數(shù)據(jù)字節(jié)TCP連接1/6/202429計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層面向字節(jié)流的概念續(xù)TCP對(duì)應(yīng)用進(jìn)程一次把多長的報(bào)文發(fā)送到TCP的緩存中是不關(guān)心的。TCP根據(jù)接收方給出的窗口值和當(dāng)前網(wǎng)絡(luò)擁塞的程度來決定一個(gè)報(bào)文段應(yīng)包含多少個(gè)字節(jié)TCP可把太長的數(shù)據(jù)塊劃分短一些再傳送TCP也可等待積累有足夠多的字節(jié)后再構(gòu)成報(bào)文段發(fā)送出去。不管上面發(fā)什么,也不管下面怎么組裝1/6/202430計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層舉例應(yīng)用層35268字節(jié)106345218113046……FTPQQTCP102661026645124512……擁塞變化IP150015001500……根據(jù)擁塞組裝TCP報(bào)文不同的應(yīng)用不能混合組裝1/6/202431計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層5.3.2TCP的連接TCP把連接作為最基本的抽象。每一條TCP連接有兩個(gè)端點(diǎn)。TCP連接的端點(diǎn)不是主機(jī),不是主機(jī)的IP地址,不是應(yīng)用進(jìn)程,也不是運(yùn)輸層的協(xié)議端口。TCP連接的端點(diǎn)叫做套接字(socket)或插口。套接字=端口號(hào)+IP地址1/6/202432計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層套接字(socket)套接字socket=(IP地址:端口號(hào))(5-1)http://56:8080/每一條TCP連接唯一地被通信兩端的兩個(gè)端點(diǎn)(即兩個(gè)套接字)所確定。即:TCP連接::={socket1,socket2}={(IP1:port1),(IP2:port2)}(5-2)1/6/202433計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層5.4可靠傳輸?shù)墓ぷ髟頂?shù)據(jù)在傳輸過程中可能丟失,或者出錯(cuò)如何使接收方正確地接收所有數(shù)據(jù)IP協(xié)議不保障傳輸?shù)目煽啃运鼉H僅是“盡力發(fā)送”每一個(gè)IP數(shù)據(jù)報(bào)TCP需要提供傳輸?shù)目煽啃曰舅枷?/p>
確認(rèn)重傳機(jī)制接收方確認(rèn)收到了報(bào)文超過時(shí)間發(fā)送方未收到確認(rèn),重傳1/6/202434計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層本章與可靠傳輸相關(guān)的協(xié)議停止等待協(xié)議,又稱自動(dòng)重傳請求ARQ最簡單的可靠傳輸協(xié)議,缺陷明顯只是為了引出可靠傳輸面臨的各種問題連續(xù)ARQ協(xié)議ARQ的加強(qiáng)版,接近TCP所使用的機(jī)制滑動(dòng)窗口協(xié)議TCP的可靠傳輸機(jī)制1/6/202435計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層5.4.1停止等待協(xié)議
一些假設(shè)A發(fā)送數(shù)據(jù)而B接收數(shù)據(jù)并回復(fù)確認(rèn)不考慮該協(xié)議所處層次,數(shù)據(jù)單元稱“分組”基本思想每發(fā)送完一個(gè)分組就停止發(fā)送等待收到對(duì)方的確認(rèn)后,再次發(fā)送1/6/202436計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層5.4.1停止等待協(xié)議
(a)無差錯(cuò)情況A發(fā)送M1確認(rèn)M1B發(fā)送M2發(fā)送M3確認(rèn)M2確認(rèn)M3A發(fā)送M1B超時(shí)重傳M1發(fā)送M2確認(rèn)M1丟棄有差錯(cuò)的報(bào)文
(b)超時(shí)重傳tttt1/6/202437計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層請注意在發(fā)送完一個(gè)分組后,必須暫時(shí)保留已發(fā)送的分組的副本。分組和確認(rèn)分組都必須進(jìn)行編號(hào)。超時(shí)計(jì)時(shí)器的重傳時(shí)間應(yīng)當(dāng)比分組傳輸?shù)钠骄禃r(shí)間更長一些。重傳時(shí)間很難設(shè)置,因?yàn)閭鬏斅窂郊捌錉顟B(tài)是未知的、動(dòng)態(tài)的重傳時(shí)間過長,通信效率就低重傳時(shí)間過短,會(huì)產(chǎn)生不必要的重傳1/6/202438計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層確認(rèn)丟失和確認(rèn)遲到A發(fā)送M1B超時(shí)重傳M1發(fā)送M2丟棄重復(fù)的M1重傳確認(rèn)M1
(a)確認(rèn)丟失確認(rèn)M1A發(fā)送M1B超時(shí)重傳M1發(fā)送M2丟棄該M1重傳確認(rèn)M1
(b)確認(rèn)遲到確認(rèn)M1收下遲到確認(rèn)但什么也不做tttt1/6/202439計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層可靠通信的實(shí)現(xiàn)使用上述的確認(rèn)和重傳機(jī)制,我們就可以在不可靠的傳輸網(wǎng)絡(luò)上實(shí)現(xiàn)可靠的通信。這種可靠傳輸協(xié)議常稱為自動(dòng)重傳請求ARQ(AutomaticRepeatreQuest)。ARQ表明重傳的請求是自動(dòng)進(jìn)行的。接收方不需要請求發(fā)送方重傳某個(gè)出錯(cuò)的分組。1/6/202440計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層信道利用率停止等待協(xié)議的優(yōu)點(diǎn)是簡單,但缺點(diǎn)是信道利用率太低。TDRTTATD+RTT+TAB分組確認(rèn)tt分組確認(rèn)TD:發(fā)送分組所需時(shí)間RTT:A和B之間的往返時(shí)間TA:發(fā)送確認(rèn)所需時(shí)間1/6/202441計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層信道的利用率U
(5-3)分子:發(fā)送一個(gè)分組所需的時(shí)間分母:發(fā)送相鄰兩次分組間的間隔1/6/202442計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層流水線傳輸發(fā)送方可連續(xù)發(fā)送多個(gè)分組,不必每發(fā)完一個(gè)分組就停頓下來等待對(duì)方的確認(rèn)。由于信道上一直有數(shù)據(jù)不間斷地傳送,這種傳輸方式可獲得很高的信道利用率。B分組ttAACK1/6/202443計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層5.4.2連續(xù)ARQ協(xié)議123456789101112(a)發(fā)送方維持發(fā)送窗口(發(fā)送窗口大小是5)發(fā)送窗口(b)收到一個(gè)確認(rèn)后發(fā)送窗口向前滑動(dòng)向前123456789101112發(fā)送窗口發(fā)送窗口,即當(dāng)前可連續(xù)發(fā)送的分組范圍1/6/202444計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層累積確認(rèn)接收方一般采用累積確認(rèn)的方式不必對(duì)收到的分組逐個(gè)發(fā)送確認(rèn),而是對(duì)按序到達(dá)的最后一個(gè)分組發(fā)送確認(rèn)表示:到這個(gè)分組為止的所有分組都正確收到累積確認(rèn)的優(yōu)缺點(diǎn)容易實(shí)現(xiàn),即使確認(rèn)丟失也不必重傳?不能向發(fā)送方反映出接收方已經(jīng)正確收到的所有分組的信息。下一次確認(rèn)補(bǔ)上1/6/202445計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層Go-back-N(回退N)如果發(fā)送方發(fā)送了前5個(gè)分組,而中間的第3個(gè)分組丟失了。這時(shí)接收方只能對(duì)前兩個(gè)分組發(fā)出確認(rèn)。發(fā)送方無法知道后面三個(gè)分組的下落,而只好把后面的三個(gè)分組都再重傳一次。這就叫做Go-back-N(回退N),表示需要再退回來重傳已發(fā)送過的N個(gè)分組??梢姰?dāng)通信線路質(zhì)量不好時(shí),連續(xù)ARQ協(xié)議會(huì)帶來負(fù)面的影響。1/6/202446計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層TCP可靠通信的具體實(shí)現(xiàn)TCP連接的每一端都必須設(shè)有兩個(gè)窗口一個(gè)發(fā)送窗口和一個(gè)接收窗口??煽總鬏敊C(jī)制以字節(jié)而非分組為數(shù)據(jù)單元確認(rèn)是基于字節(jié)序號(hào)而非報(bào)文序號(hào)。TCP兩端的四個(gè)窗口處于動(dòng)態(tài)變化之中。TCP連接的往返時(shí)間RTT也不是固定不變的。需要使用特定的算法估算較為合理的重傳時(shí)間。
需要由RTT推出重傳時(shí)間1/6/202447計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層提問為什么需要運(yùn)輸層運(yùn)輸層有哪兩種協(xié)議,它們的區(qū)別如何理解“TCP是面向字節(jié)流的”停止等待協(xié)議的基本思想連續(xù)ARQ的基本思想1/6/202448計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層TCP首部20字節(jié)的固定首部目的端口數(shù)據(jù)偏移檢驗(yàn)和選項(xiàng)(長度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FIN32位SYNRSTPSHACKURG位08162431填充TCP數(shù)據(jù)部分TCP首部TCP報(bào)文段IP數(shù)據(jù)部分IP首部發(fā)送在前5.5TCP報(bào)文段的首部格式1/6/202449計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢驗(yàn)和選項(xiàng)(長度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FINSYNRSTPSHACKURG位08162431填充源端口和目的端口字段——各占2字節(jié)。與UDP的端口類似,用來區(qū)分應(yīng)用進(jìn)程。1/6/202450計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢驗(yàn)和選項(xiàng)(長度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FINSYNRSTPSHACKURG位08162431填充序號(hào)字段——占4字節(jié),TCP為每個(gè)字節(jié)都編上序號(hào)序號(hào)字段的值是本報(bào)文段所發(fā)送的數(shù)據(jù)的第一個(gè)字節(jié)的序號(hào)。1/6/202451計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢驗(yàn)和選項(xiàng)(長度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FINSYNRSTPSHACKURG位08162431填充確認(rèn)號(hào)字段——占4字節(jié)期望收到的下一個(gè)報(bào)文段的第一個(gè)字節(jié)的序號(hào)。1/6/202452計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢驗(yàn)和選項(xiàng)(長度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FINSYNRSTPSHACKURG位08162431填充數(shù)據(jù)偏移——占4位即該TCP報(bào)文段的首部長度。以4字節(jié)為計(jì)算單位。1/6/202453計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢驗(yàn)和選項(xiàng)(長度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FINSYNRSTPSHACKURG位08162431填充保留字段——占6位,保留為今后使用,但目前應(yīng)置為0。1/6/202454計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢驗(yàn)和選項(xiàng)(長度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FINSYNRSTPSHACKURG位08162431填充緊急URG——該比特為1,表明緊急指針字段有效。它告訴系統(tǒng)此報(bào)文段中有緊急數(shù)據(jù),應(yīng)盡快傳送(相當(dāng)于高優(yōu)先級(jí)的數(shù)據(jù))。1/6/202455計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢驗(yàn)和選項(xiàng)(長度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FINSYNRSTPSHACKURG位08162431填充確認(rèn)ACK——只有當(dāng)ACK
1時(shí)確認(rèn)號(hào)字段才有效。當(dāng)ACK
0時(shí),確認(rèn)號(hào)無效。1/6/202456計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢驗(yàn)和選項(xiàng)(長度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FINSYNRSTPSHACKURG位08162431填充推送PSH(PuSH)——收到PSH=1的報(bào)文段,就盡快地交付接收應(yīng)用進(jìn)程,而不再等到整個(gè)緩存都填滿了后再向上交付。1/6/202457計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢驗(yàn)和選項(xiàng)(長度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FINSYNRSTPSHACKURG位08162431填充復(fù)位RST(ReSeT)——當(dāng)RST
1時(shí),表明TCP連接中出現(xiàn)嚴(yán)重差錯(cuò)(如由于主機(jī)崩潰或其他原因)必須釋放連接,然后再重新建立運(yùn)輸連接。1/6/202458計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢驗(yàn)和選項(xiàng)(長度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FINSYNRSTPSHACKURG位08162431填充同步SYN——SYN=1表示這是一個(gè)連接請求或連接接受報(bào)文。1/6/202459計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢驗(yàn)和選項(xiàng)(長度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FINSYNRSTPSHACKURG位08162431填充終止FIN(FINis)——用來釋放一個(gè)連接。FIN
1表明此報(bào)文段的發(fā)送端的數(shù)據(jù)已發(fā)送完畢,并要求釋放運(yùn)輸連接。1/6/202460計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢驗(yàn)和選項(xiàng)(長度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FINSYNRSTPSHACKURG位08162431填充窗口字段——占2字節(jié),由接收方設(shè)置。用于告知發(fā)送方應(yīng)如何設(shè)置發(fā)送窗口,單位為字節(jié)。1/6/202461計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢驗(yàn)和選項(xiàng)(長度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FINSYNRSTPSHACKURG位08162431填充檢驗(yàn)和——占2字節(jié)。檢驗(yàn)和字段檢驗(yàn)的范圍包括首部和數(shù)據(jù)這兩部分。在計(jì)算檢驗(yàn)和時(shí),要在TCP報(bào)文段的前面加上12字節(jié)的偽首部。1/6/202462計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢驗(yàn)和選項(xiàng)(長度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FINSYNRSTPSHACKURG位08162431填充緊急指針字段——占16位,
指出在本報(bào)文段中緊急數(shù)據(jù)共有多少個(gè)字節(jié)(緊急數(shù)據(jù)放在本報(bào)文段數(shù)據(jù)的最前面)。
1/6/202463計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢驗(yàn)和選項(xiàng)(長度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FINSYNRSTPSHACKURG比特08162431填充TCP最初只規(guī)定了一種選項(xiàng),即最大報(bào)文段長度MSS。MSS告訴對(duì)方TCP:“我的緩存所能接收的報(bào)文段的數(shù)據(jù)部分最大長度是MSS個(gè)字節(jié)?!盡SS(MaximumSegmentSize)是TCP報(bào)文段中的數(shù)據(jù)字段的最大長度。數(shù)據(jù)字段加上TCP首部才等于整個(gè)的TCP報(bào)文段。1/6/202464計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層關(guān)于最大報(bào)文長度MSSMSS太小,網(wǎng)絡(luò)利用率低每個(gè)報(bào)文要加IP首部和TCP首部MSS太大,造成IP協(xié)議分片而且重傳開銷大(需要重傳很長的報(bào)文)MSS默認(rèn)值為536字節(jié)1/6/202465計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層窗口擴(kuò)大選項(xiàng)選項(xiàng)占3字節(jié)(原窗口字段16位)用于擴(kuò)大窗口字段的位數(shù)(一次連續(xù)地發(fā)送更多的字節(jié))最多可再擴(kuò)大16位(存放在該選項(xiàng)的2個(gè)字節(jié)中)選項(xiàng)剩下的1個(gè)字節(jié)指明具體擴(kuò)大了多少位1/6/202466計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層131/6/202467計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層時(shí)間戳選項(xiàng)時(shí)間戳選項(xiàng)——占10字節(jié)主要包括時(shí)間戳值字段(4字節(jié))和時(shí)間戳回送回答字段(4字節(jié))。功能是計(jì)算往返時(shí)間RTT(見5.6.2節(jié))防止序號(hào)繞回選擇確認(rèn)選項(xiàng)——在后面的5.6.3節(jié)介紹。1/6/202468計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層TCP首部20字節(jié)固定首部目的端口數(shù)據(jù)偏移檢驗(yàn)和選項(xiàng)(長度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FINSYNRSTPSHACKURG位08162431填充填充字段——這是為了使整個(gè)首部長度是4字節(jié)的整數(shù)倍。1/6/202469計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層5.6TCP可靠傳輸?shù)膶?shí)現(xiàn)
5.6.1以字節(jié)為單位的滑動(dòng)窗口前移不允許發(fā)送已發(fā)送并收到確認(rèn)允許發(fā)送的序號(hào)26272829303132333435363738394041424344454647484950515253545556B期望收到的序號(hào)前沿后沿前移收縮確認(rèn)號(hào)為31,窗口值為20A據(jù)此構(gòu)造自己的發(fā)送窗口不贊成發(fā)送窗口前沿收縮A的發(fā)送窗口=20未再收到確認(rèn)的情況下,A可把窗口內(nèi)的數(shù)據(jù)連續(xù)發(fā)出1/6/202470計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層前沿和后沿的變化前移不允許發(fā)送已發(fā)送并收到確認(rèn)允許發(fā)送的序號(hào)26272829303132333435363738394041424344454647484950515253545556前沿后沿前移收縮A的發(fā)送窗口=20后沿不動(dòng):未收到新的確認(rèn)前沿一般不斷前移,但也可能不動(dòng):后沿不可能向后移動(dòng)后沿前移:收到了新的確認(rèn)2.收到了新確認(rèn)但對(duì)方通知窗口縮小,使得發(fā)送窗口前沿正好不動(dòng)1.未收到新的確認(rèn)且窗口大小不變1/6/202471計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層不允許發(fā)送已發(fā)送并收到確認(rèn)A的發(fā)送窗口位置不變允許發(fā)送但尚未發(fā)送262728293031323334353637383940414243444546474849505152535455已發(fā)送但未收到確認(rèn)56P1P2P3不允許接收已發(fā)送確認(rèn)并交付主機(jī)B的接收窗口允許接收26272829303132333435363738394041424344454647484950515253545556未按序收到可用窗口A發(fā)送了11個(gè)字節(jié)的數(shù)據(jù)P3–P1=A的發(fā)送窗口(又稱為通知窗口)P2–P1=已發(fā)送但尚未收到確認(rèn)的字節(jié)數(shù)P3–P2=允許發(fā)送但尚未發(fā)送的字節(jié)數(shù)(又稱為可用窗口)1/6/202472計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層允許發(fā)送但尚未發(fā)送A的發(fā)送窗口向前滑動(dòng)已發(fā)送并收到確認(rèn)不允許發(fā)送已發(fā)送但未收到確認(rèn)26272829303132333435363738394041424344454647484950515253545556P1P2P3允許接收B的接收窗口向前滑動(dòng)已發(fā)送確認(rèn)并交付主機(jī)不允許接收26272829303132333435363738394041424344454647484950515253545556未按序收到A收到新的確認(rèn)號(hào)——34,發(fā)送窗口向前滑動(dòng)緩存,等待缺少的數(shù)據(jù)到達(dá)1/6/202473計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層不允許發(fā)送已發(fā)送并收到確認(rèn)A的發(fā)送窗口已滿,有效窗口為零262728293031323334353637383940414243444546474849505152535455已發(fā)送但未收到確認(rèn)56P1P2P3A的發(fā)送窗口內(nèi)的序號(hào)都已用完,但還沒有再收到確認(rèn),必須停止發(fā)送。1/6/202474計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層TCP的發(fā)送緩存最后被確認(rèn)的字節(jié)應(yīng)用程序已發(fā)發(fā)送緩存最后發(fā)送的字節(jié)發(fā)送窗口已發(fā)送序號(hào)增大(1)應(yīng)用程序傳給TCP準(zhǔn)備發(fā)送的數(shù)據(jù)(2)TCP已發(fā)出但尚未收到確認(rèn)的數(shù)據(jù)存儲(chǔ)空間1/6/202475計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層TCP的接收緩存應(yīng)用程序已收已收到接收窗口接收緩存下一個(gè)讀取的字節(jié)序號(hào)增大下一個(gè)期望收到的字節(jié)(確認(rèn)號(hào))(1)按序到達(dá),但應(yīng)用程序未讀取的數(shù)據(jù)(2)未按序到達(dá)的數(shù)據(jù)存儲(chǔ)空間1/6/202476計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層發(fā)送緩存與接收緩存的作用發(fā)送緩存用來暫時(shí)存放:
發(fā)送應(yīng)用程序傳送給發(fā)送方TCP準(zhǔn)備發(fā)送的數(shù)據(jù);TCP已發(fā)送出但尚未收到確認(rèn)的數(shù)據(jù)。接收緩存用來暫時(shí)存放:
按序到達(dá)的、但尚未被接收應(yīng)用程序讀取的數(shù)據(jù);不按序到達(dá)的數(shù)據(jù)。
1/6/202477計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層需要強(qiáng)調(diào)三點(diǎn)A的發(fā)送窗口并不總是和B的接收窗口一樣大(因?yàn)橛幸欢ǖ臅r(shí)間滯后)。TCP標(biāo)準(zhǔn)沒有規(guī)定對(duì)不按序到達(dá)的數(shù)據(jù)應(yīng)如何處理。通常是先臨時(shí)存放在接收窗口中,等到字節(jié)流中所缺少的字節(jié)收到后,再按序交付上層的應(yīng)用進(jìn)程。TCP要求接收方必須有累積確認(rèn)的功能,這樣可以減小傳輸開銷。1/6/202478計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層5.6.2超時(shí)重傳時(shí)間的選擇重傳機(jī)制是TCP中最重要和最復(fù)雜的問題之一。TCP每發(fā)送一個(gè)報(bào)文段,就對(duì)這個(gè)報(bào)文段設(shè)置一次計(jì)時(shí)器。只要計(jì)時(shí)器設(shè)置的重傳時(shí)間已到但還沒有收到確認(rèn),就要重傳這一報(bào)文段。重傳時(shí)間依據(jù)報(bào)文往返時(shí)延(RTT)而定1/6/202479計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層往返時(shí)延的方差很大由于TCP的下層是一個(gè)互聯(lián)網(wǎng)環(huán)境,IP數(shù)據(jù)報(bào)所選擇的路由變化很大。因而運(yùn)輸層的往返時(shí)間的方差也很大。時(shí)間數(shù)據(jù)鏈路層運(yùn)輸層T1T2T3往返時(shí)間的概率分布1/6/202480計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層加權(quán)平均往返時(shí)間TCP保留了一個(gè)加權(quán)平均往返時(shí)間RTTS(這又稱為平滑的往返時(shí)間)。第一次測量到RTT樣本時(shí),RTTS值就取為所測量到的RTT樣本值。以后每測量到一個(gè)新的RTT樣本,就按下式重新計(jì)算一次RTTS:
新的RTTS
(1
)
(舊的RTTS)
(新的RTT樣本)(5-4)式中,0
1。若
很接近于零,表示RTT值更新較慢。若選擇
接近于1,則表示RTT值更新較快。RFC2988推薦的
值為1/8,即0.125。報(bào)文被成功確認(rèn),即可算作樣本1/6/202481計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層超時(shí)重傳時(shí)間RTO(RetransmissionTime-Out)
RTO應(yīng)略大于上面得出的加權(quán)平均往返時(shí)間RTTS。RFC2988建議使用下式計(jì)算RTO:
RTO
RTTS+4
RTTD
(5-5)RTTD是RTT的偏差的加權(quán)平均值。RFC2988建議這樣計(jì)算RTTD。第一次測量時(shí),RTTD值取為測量到的RTT樣本值的一半。在以后的測量中,則使用下式計(jì)算加權(quán)平均的RTTD:新的RTTD=(1
)
(舊的RTTD)+
RTTS
新的RTT樣本
(5-6)
是個(gè)小于1的系數(shù),其推薦值是1/4,即0.25。1/6/202482計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層舊RTTS=0.25sRTT樣本=0.30s新的RTTS=0.875*0.25+0.125*0.30=0.25625舊的RTTD是0.03s最新的偏差是0.04375RTTD
0.75*0.03+0.25*0.04375=0.0334375RTO
RTTS+4
RTTD1/6/202483計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層往返時(shí)間RTT?往返時(shí)間的測量相當(dāng)復(fù)雜TCP報(bào)文段1沒有收到確認(rèn)。重傳(即報(bào)文段2)后,收到了確認(rèn)報(bào)文段ACK。如何判定此確認(rèn)報(bào)文段是對(duì)原來的報(bào)文段1的確認(rèn),還是對(duì)重傳的報(bào)文段2的確認(rèn)?發(fā)送一個(gè)TCP報(bào)文段超時(shí)重傳TCP報(bào)文段收到ACK時(shí)間12往返時(shí)間RTT?是對(duì)哪一個(gè)報(bào)文段的確認(rèn)?1/6/202484計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層Karn算法在計(jì)算平均往返時(shí)間RTT時(shí),只要報(bào)文段重傳了,就不將其作為往返時(shí)間樣本。這樣得出的加權(quán)平均平均往返時(shí)間RTTS和超時(shí)重傳時(shí)間RTO就較準(zhǔn)確。1/6/202485計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層報(bào)文段每重傳一次,就把RTO增大一些:新的RTO
(舊的RTO)系數(shù)
的典型值是2。當(dāng)不再發(fā)生報(bào)文段的重傳時(shí),才根據(jù)報(bào)文段的往返時(shí)延更新平均往返時(shí)延RTT和超時(shí)重傳時(shí)間RTO的數(shù)值。實(shí)踐證明,這種策略較為合理。修正的Karn算法1/6/202486計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層5.6.3選擇確認(rèn)SACK
(SelectiveACK)
接收方收到的字節(jié)流中間缺少了一些序號(hào)的數(shù)據(jù),需要重傳能否只重傳缺少的數(shù)據(jù),不重傳已經(jīng)正確到達(dá)接收方的數(shù)據(jù)?這就要使用“選擇確認(rèn)”SACK1/6/202487計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層110001501300035014500確認(rèn)號(hào)=1001L1=1501L2=3501R1=3001R2=4501接收到的字節(jié)流序號(hào)不連續(xù)……連續(xù)的字節(jié)流………第一個(gè)字節(jié)塊第二個(gè)字節(jié)塊和前后字節(jié)不連續(xù)的每一個(gè)字節(jié)塊都有兩個(gè)邊界:左邊界和右邊界。圖中用四個(gè)指針標(biāo)記這些邊界。第一個(gè)字節(jié)塊的左邊界L1=1501,但右邊界R1=3001。左邊界指出字節(jié)塊的第一個(gè)字節(jié)的序號(hào),但右邊界減1才是字節(jié)塊中的最后一個(gè)序號(hào)。第二個(gè)字節(jié)塊的左邊界L2=3501,而右邊界R2=4501。1/6/202488計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層RFC2018的規(guī)定如果要使用選擇確認(rèn),那么在建立TCP連接時(shí),就要在TCP首部的選項(xiàng)中加上“允許SACK”的選項(xiàng)。如果使用選擇確認(rèn),那么原來首部中的“確認(rèn)號(hào)字段”的用法仍然不變。只是以后在TCP報(bào)文段的首部中都增加了SACK選項(xiàng),以便報(bào)告收到的不連續(xù)的字節(jié)塊的邊界。由于首部選項(xiàng)的長度最多只有40字節(jié),而指明一個(gè)邊界就要用掉4字節(jié),因此在選項(xiàng)中最多只能指明4個(gè)字節(jié)塊的邊界信息。必須有至少1個(gè)字節(jié)用于指明選項(xiàng)類型1/6/202489計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層SACK選項(xiàng)使用舉例110001501300035014500確認(rèn)號(hào)=1001L1=1501L2=3501R1=3001R1=4501……連續(xù)的字節(jié)流………第一個(gè)字節(jié)塊第二個(gè)字節(jié)塊帶SACK的確認(rèn)TCP報(bào)文內(nèi)容:確認(rèn)號(hào):1001Why?邊界1:1501邊界2:3001邊界3:3501邊界4:4501SACK選項(xiàng):1/6/202490計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層5.7TCP的流量控制
5.7.1利用滑動(dòng)窗口實(shí)現(xiàn)流量控制如果數(shù)據(jù)發(fā)送得過快,接收方就可能來不及接收,這就會(huì)造成數(shù)據(jù)的丟失。流量控制(flowcontrol)就是讓發(fā)送方的發(fā)送速率不要太快,既要讓接收方來得及接收,也不要使網(wǎng)絡(luò)發(fā)生擁塞。利用滑動(dòng)窗口機(jī)制可以很方便地在TCP連接上實(shí)現(xiàn)流量控制。1/6/202491計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層seq=1,DATAseq=201,DATAseq=401,DATAseq=301,DATAseq=101,DATAseq=201,DATAseq=501,DATAACK=1,ack=201,rwnd=300ACK=1,ack=601,rwnd=0ACK=1,ack=501,rwnd=100AB允許A發(fā)送序號(hào)201至500共300字節(jié)A發(fā)送了序號(hào)101至200,還能發(fā)送200字節(jié)A發(fā)送了序號(hào)301至400,還能再發(fā)送100字節(jié)A發(fā)送了序號(hào)1至100,還能發(fā)送300字節(jié)A發(fā)送了序號(hào)401至500,不能再發(fā)送新數(shù)據(jù)了A超時(shí)重傳舊的數(shù)據(jù),但不能發(fā)送新的數(shù)據(jù)允許A發(fā)送序號(hào)501至600共100字節(jié)A發(fā)送了序號(hào)501至600,不能再發(fā)送了不允許A再發(fā)送(到序號(hào)600為止的數(shù)據(jù)都收到了)丟失!B告訴A:“我的接收窗口rwnd=400(字節(jié))”。rwnd:接收窗口;ACK:確認(rèn)位;ack:確認(rèn)字段但是A不知道丟失,認(rèn)為自己還能發(fā)送100字節(jié)Why201~300,301~400都沒被確認(rèn)!假設(shè)每次都發(fā)送100字節(jié)1/6/202492計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層持續(xù)計(jì)時(shí)器
防止發(fā)送方就此停止發(fā)送TCP為每一個(gè)連接設(shè)有一個(gè)持續(xù)計(jì)時(shí)器。只要TCP連接的一方收到對(duì)方的零窗口通知,就啟動(dòng)持續(xù)計(jì)時(shí)器。若持續(xù)計(jì)時(shí)器到期,就發(fā)送一個(gè)零窗口探測報(bào)文段(僅攜帶1字節(jié)的數(shù)據(jù)),而對(duì)方就在確認(rèn)這個(gè)探測報(bào)文段時(shí)給出新的窗口值。若窗口仍然是零,則收到這個(gè)報(bào)文段的一方就重新設(shè)置持續(xù)計(jì)時(shí)器。若窗口不是零,則發(fā)送方可以繼續(xù)發(fā)送數(shù)據(jù)。1/6/202493計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層5.7.2必須考慮傳輸效率TCP協(xié)議是面向字節(jié)的不管應(yīng)用進(jìn)程何時(shí)發(fā)、發(fā)了多少TCP都自己把握組裝和發(fā)送報(bào)文的時(shí)機(jī)那么,究竟何時(shí)發(fā)送報(bào)文比較好呢?1/6/202494計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層幾種TCP報(bào)文發(fā)送機(jī)制可以用不同機(jī)制控制TCP報(bào)文段的發(fā)送時(shí)機(jī)第一種機(jī)制:只要緩沖的數(shù)據(jù)達(dá)到MSS字節(jié)時(shí),就組裝成一個(gè)TCP報(bào)文段發(fā)送出去。第二種機(jī)制是由發(fā)送方的應(yīng)用進(jìn)程指明要求發(fā)送報(bào)文段,即TCP支持的推送(push)操作。第三種機(jī)制是發(fā)送方的一個(gè)計(jì)時(shí)器期限到了,這時(shí)就把當(dāng)前已有的緩存數(shù)據(jù)裝入報(bào)文段(但長度不能超過MSS)發(fā)送出去。前提都是不違背滑動(dòng)窗口協(xié)議1/6/202495計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層廣泛使用Nagle算法只有收到對(duì)前一個(gè)報(bào)文段的確認(rèn)后,才繼續(xù)發(fā)送下一個(gè)報(bào)文段到達(dá)的數(shù)據(jù)達(dá)到發(fā)送窗口的一半或已達(dá)到報(bào)文段的最大長度時(shí),就立即發(fā)送一個(gè)報(bào)文1/6/202496計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層提問TCP報(bào)文首部確認(rèn)號(hào)、窗口字段的含義最大報(bào)文長度MSS選項(xiàng)的作用TCP實(shí)現(xiàn)可靠傳輸?shù)幕驹戆l(fā)送窗口后沿和前沿何時(shí)前移、何時(shí)向后收縮確定超時(shí)重傳時(shí)間的步驟選擇確認(rèn)的含義TCP如何實(shí)現(xiàn)流量控制1/6/202497計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層發(fā)送窗口相關(guān)概念
指針P1,P2,P3的含義不允許發(fā)送已發(fā)送并收到確認(rèn)A的發(fā)送窗口允許發(fā)送但尚未發(fā)送262728293031323334353637383940414243444546474849505152535455已發(fā)送但未收到確認(rèn)56P1P2P3可用窗口1/6/202498計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層SACK選項(xiàng)使用舉例110001501300035014500確認(rèn)號(hào)=1001L1=1501L2=3501R1=3001R1=4501……連續(xù)的字節(jié)流………第一個(gè)字節(jié)塊第二個(gè)字節(jié)塊帶SACK的確認(rèn)TCP報(bào)文內(nèi)容:確認(rèn)號(hào):1001邊界1:1501邊界2:3001邊界3:3501邊界4:4501SACK選項(xiàng):1/6/202499計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層5.8TCP的擁塞控制
5.8.1擁塞控制的一般原理在某段時(shí)間,若對(duì)網(wǎng)絡(luò)中某資源的需求超過了該資源所能提供的可用部分,網(wǎng)絡(luò)的性能就要變壞——產(chǎn)生擁塞(congestion)。出現(xiàn)資源擁塞的條件:對(duì)資源需求的總和>可用資源(5-7)若網(wǎng)絡(luò)中有許多資源同時(shí)產(chǎn)生擁塞,網(wǎng)絡(luò)的性能就要明顯變壞,整個(gè)網(wǎng)絡(luò)的吞吐量將隨輸入負(fù)荷的增大而下降。1/6/2024100計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層產(chǎn)生擁塞的原因某個(gè)結(jié)點(diǎn)的緩存太小,隊(duì)列排不下如果無限增大緩存,則排隊(duì)時(shí)間大大增加,也會(huì)造成發(fā)送端超時(shí)重傳某個(gè)結(jié)點(diǎn)處理速度太慢提高該處理機(jī)的速率,往往把瓶頸轉(zhuǎn)移使網(wǎng)絡(luò)的各個(gè)部分趨于均衡擁塞常常趨于惡化擁塞造成分組丟失于是發(fā)送方重傳,擁塞加劇1/6/2024101計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層擁塞控制與流量控制的關(guān)系擁塞控制就是防止過多的數(shù)據(jù)進(jìn)入網(wǎng)絡(luò)擁塞控制是一個(gè)全局性的過程,涉及到所有的主機(jī)、所有的路由器,以及與降低網(wǎng)絡(luò)傳輸性能有關(guān)的所有因素。流量控制往往指在給定的發(fā)送端和接收端之間的點(diǎn)對(duì)點(diǎn)通信量的控制。流量控制所要做的就是抑制發(fā)送端發(fā)送數(shù)據(jù)的速率,以便使接收端來得及接收。
1/6/2024102計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層擁塞控制所起的作用提供的負(fù)載吞吐量理想的擁塞控制實(shí)際的擁塞控制0死鎖(吞吐量=0)無擁塞控制擁塞輕度擁塞1/6/2024103計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層開環(huán)控制和閉環(huán)控制開環(huán)控制方法就是在設(shè)計(jì)網(wǎng)絡(luò)時(shí)事先將有關(guān)發(fā)生擁塞的因素考慮周到,力求網(wǎng)絡(luò)在工作時(shí)不產(chǎn)生擁塞。閉環(huán)控制是基于反饋環(huán)路的概念。屬于閉環(huán)控制的有以下幾種措施:監(jiān)測網(wǎng)絡(luò)以檢測擁塞在何時(shí)、何處發(fā)生。將擁塞發(fā)生的信息傳送到可采取行動(dòng)的地方。調(diào)整網(wǎng)絡(luò)系統(tǒng)的運(yùn)行以解決出現(xiàn)的問題。1/6/2024104計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層5.8.2幾種擁塞控制方法
1.慢開始和擁塞避免發(fā)送方維持一個(gè)叫做擁塞窗口cwnd(congestionwindow)的狀態(tài)變量。擁塞窗口的大小取決于網(wǎng)絡(luò)的擁塞程度,動(dòng)態(tài)變化。發(fā)送方讓自己的發(fā)送窗口等于擁塞窗口。如考慮接收方的接收能力,則發(fā)送窗口還可能小于擁塞窗口。發(fā)送方控制擁塞窗口的原則只要網(wǎng)絡(luò)沒有出現(xiàn)擁塞,擁塞窗口就增大一些,以便把更多的分組發(fā)送出去。但只要網(wǎng)絡(luò)出現(xiàn)擁塞,擁塞窗口就減小一些,以減少注入到網(wǎng)絡(luò)中的分組數(shù)。1/6/2024105計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層慢開始算法的原理在主機(jī)剛剛開始發(fā)送報(bào)文段時(shí)先設(shè)置擁塞窗口cwnd=1,即設(shè)置為一個(gè)最大報(bào)文段MSS的數(shù)值。每收到一個(gè)報(bào)文段的確認(rèn)后,將擁塞窗口加1,即增加一個(gè)MSS的數(shù)值。用這樣的方法逐步增大發(fā)送端的擁塞窗口cwnd,可以使分組注入到網(wǎng)絡(luò)的速率更加合理。1/6/2024106計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層發(fā)送方接收方發(fā)送M1確認(rèn)M1發(fā)送M2~M3確認(rèn)M2~M3發(fā)送M4~M7確認(rèn)M4~M7cwnd=1cwnd=2cwnd=4發(fā)送M8~M15cwnd=8…tt發(fā)送方每收到一個(gè)對(duì)新報(bào)文段的確認(rèn)(重傳的不算在內(nèi))就使cwnd加1。輪次1輪次2輪次31/6/2024107計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層傳輸輪次
(transmissionround)使用慢開始算法后,每經(jīng)過一個(gè)傳輸輪次,擁塞窗口cwnd就加倍。一個(gè)傳輸輪次所經(jīng)歷的時(shí)間其實(shí)就是往返時(shí)間RTT?!皞鬏斴喆巍睆?qiáng)調(diào):把擁塞窗口cwnd所允許發(fā)送的報(bào)文段都連續(xù)發(fā)送出去,并收到了對(duì)已發(fā)送的最后一個(gè)字節(jié)的確認(rèn)。例如,擁塞窗口cwnd=4,這時(shí)的往返時(shí)間RTT就是發(fā)送方連續(xù)發(fā)送4個(gè)報(bào)文段,并收到這4個(gè)報(bào)文段的確認(rèn),總共經(jīng)歷的時(shí)間。Why?1/6/2024108計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層設(shè)置慢開始門限狀態(tài)變量ssthresh慢開始門限ssthresh的用法如下:當(dāng)cwnd<ssthresh時(shí),使用慢開始算法。當(dāng)cwnd>ssthresh時(shí),停止使用慢開始算法而改用擁塞避免算法。當(dāng)cwnd=ssthresh時(shí),既可使用慢開始算法,也可使用擁塞避免算法。擁塞避免算法的思路是讓擁塞窗口cwnd緩慢地增大,即每經(jīng)過一個(gè)往返時(shí)間RTT就把發(fā)送方的擁塞窗口cwnd加1,而不是加倍,使擁塞窗口cwnd按線性規(guī)律緩慢增長。1/6/2024109計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層當(dāng)網(wǎng)絡(luò)出現(xiàn)擁塞時(shí)無論在慢開始階段還是在擁塞避免階段,只要發(fā)送方判斷網(wǎng)絡(luò)出現(xiàn)擁塞(其根據(jù)就是沒有按時(shí)收到確認(rèn))就要把慢開始門限ssthresh設(shè)置為出現(xiàn)擁塞時(shí)的發(fā)送方窗口值的一半(但不能小于2)。然后把擁塞窗口cwnd重新設(shè)置為1,執(zhí)行慢開始算法。目的是要迅速減少主機(jī)發(fā)送到網(wǎng)絡(luò)中的分組數(shù),使得發(fā)生擁塞的路由器有足夠時(shí)間把隊(duì)列中積壓的分組處理完畢。1/6/2024110計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層2216慢開始和擁塞避免算法的實(shí)現(xiàn)舉例當(dāng)TCP連接進(jìn)行初始化時(shí),將擁塞窗口置為1。圖中的窗口單位不使用字節(jié)而使用報(bào)文段(便于理解)。初始時(shí),慢開始門限ssthresh=16。24681012141618200048122024擁塞窗口cwndssthresh的初始值傳輸輪次發(fā)送窗口不能超過擁塞窗口cwnd和接收端窗口rwnd中的最小值。假定接收端窗口足夠大,因此現(xiàn)在發(fā)送窗口的數(shù)值等于擁塞窗口的數(shù)值。1/6/2024111計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層慢開始和擁塞避免算法的實(shí)現(xiàn)舉例在執(zhí)行慢開始算法時(shí),擁塞窗口cwnd的初始值為1,發(fā)送第一個(gè)報(bào)文段M0。
221624681012141618200048122024擁塞窗口cwndssthresh的初始值慢開始傳輸輪次1/6/2024112計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層慢開始和擁塞避免算法的實(shí)現(xiàn)舉例發(fā)送端每收到一個(gè)確認(rèn),就把cwnd加1。于是發(fā)送端可以接著發(fā)送M1和M2兩個(gè)報(bào)文段。221624681012141618200048122024擁塞窗口cwndssthresh的初始值慢開始傳輸輪次1/6/2024113計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層慢開始和擁塞避免算法的實(shí)現(xiàn)舉例接收端共發(fā)回兩個(gè)確認(rèn)。發(fā)送端每收到一個(gè)對(duì)新報(bào)文段的確認(rèn),就把發(fā)送端的cwnd加1?,F(xiàn)在cwnd從2增大到4,并可接著發(fā)送后面的4個(gè)報(bào)文段。221624681012141618200048122024擁塞窗口cwndssthresh的初始值慢開始傳輸輪次1/6/2024114計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層慢開始和擁塞避免算法的實(shí)現(xiàn)舉例發(fā)送端每收到一個(gè)對(duì)新報(bào)文段的確認(rèn),就把發(fā)送端的擁塞窗口加1,因此擁塞窗口cwnd隨著傳輸輪次按指數(shù)規(guī)律增長。221624681012141618200048122024擁塞窗口cwnd指數(shù)規(guī)律增長ssthresh的初始值慢開始傳輸輪次1/6/2024115計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層慢開始和擁塞避免算法的實(shí)現(xiàn)舉例當(dāng)擁塞窗口cwnd增長到慢開始門限值ssthresh時(shí)(即當(dāng)cwnd=16時(shí)),就改為執(zhí)行擁塞避免算法,擁塞窗口按線性規(guī)律增長。221624681012141618200048122024擁塞窗口cwndssthresh的初始值慢開始傳輸輪次指數(shù)規(guī)律增長1/6/2024116計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層221624681012141618200048122024擁塞窗口cwndssthresh的初始值慢開始慢開始擁塞避免“加法增大”慢開始和擁塞避免算法的實(shí)現(xiàn)舉例假定擁塞窗口的數(shù)值增長到24時(shí),網(wǎng)絡(luò)出現(xiàn)超時(shí),表明網(wǎng)絡(luò)擁塞了。傳輸輪次網(wǎng)絡(luò)擁塞指數(shù)規(guī)律增長1/6/2024117計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層221624681012141618200048122024擁塞窗口cwnd新的ssthresh值網(wǎng)絡(luò)擁塞指數(shù)規(guī)律增長慢開始慢開始慢開始擁塞避免“加法增大”慢開始和擁塞避免算法的實(shí)現(xiàn)舉例檢測到擁塞后ssthresh值變?yōu)?2(即發(fā)送窗口數(shù)值24的一半),擁塞窗口再重新設(shè)置為1,并執(zhí)行慢開始算法。傳輸輪次“乘法減小”1/6/2024118計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層221624681012141618200048122024擁塞窗口cwnd新的ssthresh值網(wǎng)絡(luò)擁塞指數(shù)規(guī)律增長慢開始慢開始慢開始擁塞避免“加法增大”擁塞避免“加法增大”慢開始和擁塞避免算法的實(shí)現(xiàn)舉例當(dāng)cwnd=12時(shí)改為執(zhí)行擁塞避免算法傳輸輪次cwnd是從8直接增加到16,還是先增加到12?擁塞窗口按線性規(guī)律增長,每經(jīng)過一個(gè)往返時(shí)延就增加一個(gè)MSS的大小。1/6/2024119計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層乘法減小
(multiplicativedecrease)
“乘法減小“是指不論在慢開始階段還是擁塞避免階段,只要出現(xiàn)一次超時(shí)(即出現(xiàn)一次網(wǎng)絡(luò)擁塞),就把慢開始門限值ssthresh設(shè)置為當(dāng)前的擁塞窗口值乘以0.5。當(dāng)網(wǎng)絡(luò)頻繁出現(xiàn)擁塞時(shí),ssthresh值就下降得很快,以大大減少注入到網(wǎng)絡(luò)中的分組數(shù)。1/6/2024120計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層加法增大
(additiveincrease)
“加法增大”是指執(zhí)行擁塞避免算法后,在收到對(duì)所有報(bào)文段的確認(rèn)后(即經(jīng)過一個(gè)往返時(shí)間),就把擁塞窗口cwnd增加一個(gè)MSS大小,使擁塞窗口緩慢增大,以防止網(wǎng)絡(luò)過早出現(xiàn)擁塞。1/6/2024121計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層慢開始與擁塞避免小結(jié)慢開始是否真的很“慢”“慢”是指起步很低,cwnd初始值為1此階段擁塞窗口的增長幅度很大(指數(shù)級(jí))擁塞避免階段(cwnd>ssthresh)擁塞窗口每次只增加1無論何時(shí)發(fā)現(xiàn)擁塞(未收到確認(rèn))ssthresh設(shè)為之前發(fā)送窗口的一半擁塞窗口降為1,重新進(jìn)入慢開始階段1/6/2024122計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層必須強(qiáng)調(diào)指出“擁塞避免”并非指完全能夠避免了擁塞。利用以上的措施要完全避免網(wǎng)絡(luò)擁塞還是不可能的。“擁塞避免”是說在擁塞避免階段把擁塞窗口控制為按線性規(guī)律增長,使網(wǎng)絡(luò)比較不容易出現(xiàn)擁塞。1/6/2024123計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層2.快重傳和快恢復(fù)快重傳算法首先要求接收方每收到一個(gè)失序的報(bào)文段后就立即發(fā)出對(duì)之前已收到報(bào)文的重復(fù)確認(rèn)。這樣做可以讓發(fā)送方及早知道有報(bào)文段沒有到達(dá)接收方。發(fā)送方只要一連收到三個(gè)重復(fù)確認(rèn)就應(yīng)當(dāng)立即重傳對(duì)方尚未收到的報(bào)文段。不難看出,快重傳并非取消重傳計(jì)時(shí)器,而是在某些情況下可更早地重傳丟失的報(bào)文段。1/6/2024124計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層快重傳舉例發(fā)送方接收方發(fā)送M1確認(rèn)M1t確認(rèn)M2發(fā)送M2發(fā)送M3發(fā)送M4發(fā)送M5發(fā)送M6重復(fù)確認(rèn)M2立即重傳M3重復(fù)確認(rèn)M2重復(fù)確認(rèn)M2t發(fā)送M7收到三個(gè)連續(xù)的對(duì)M2的重復(fù)確認(rèn)立即重傳M3丟失能否確認(rèn)M41/6/2024125計(jì)算機(jī)網(wǎng)絡(luò)_運(yùn)輸層快恢復(fù)算法(1)當(dāng)發(fā)送端收到連續(xù)三個(gè)重復(fù)的確認(rèn)時(shí),就執(zhí)行“乘法減小”算法,把慢開始門限ssthresh減半。但接下去不執(zhí)行慢開始算法。(2)因?yàn)榘l(fā)送方現(xiàn)在認(rèn)為網(wǎng)絡(luò)很可能沒有發(fā)生擁塞,所以現(xiàn)在不執(zhí)行慢開始算法 即擁塞窗口cwnd現(xiàn)在不設(shè)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 慶陽美食活動(dòng)策劃方案(3篇)
- 2026廣東佛山順德區(qū)杏壇鎮(zhèn)林文恩中學(xué)招聘臨聘教師4人備考考試題庫及答案解析
- 2026年上半年黑龍江事業(yè)單位聯(lián)考省衛(wèi)生健康委員會(huì)招聘125人備考考試試題及答案解析
- 飛機(jī)介紹科普
- 2026廣西北海市銀海區(qū)福成鎮(zhèn)人民政府招錄公益性崗位人員12人參考考試題庫及答案解析
- 2026湖北武漢大型電池制造型企業(yè)招聘備考考試題庫及答案解析
- 2026年福建莆田市城廂區(qū)霞林學(xué)校小學(xué)部自主招聘編外教師2人備考考試題庫及答案解析
- 2026山東菏澤國花中等職業(yè)學(xué)校機(jī)電學(xué)科教師招聘備考考試試題及答案解析
- 2026福建省汽車工業(yè)集團(tuán)有限公司招聘160人參考考試題庫及答案解析
- 化工項(xiàng)目研究和管理制度(3篇)
- 2025年度住院部病區(qū)護(hù)理部主任述職報(bào)告
- 2026新疆阿合奇縣公益性崗位(鄉(xiāng)村振興專干)招聘44人筆試備考試題及答案解析
- 單元主題寫作素材與運(yùn)用“勞動(dòng)光榮”2025-2026學(xué)年統(tǒng)編版高一語文必修上冊
- 湖南省婁底市期末真題重組卷-2025-2026學(xué)年四年級(jí)語文上冊(統(tǒng)編版)
- 2025年華僑生聯(lián)考試題試卷及答案
- 土石方測量施工方案
- 2024年鋼絲繩索具相關(guān)項(xiàng)目創(chuàng)業(yè)計(jì)劃書
- 幼小銜接數(shù)學(xué)計(jì)算每日一練39天(幼兒園大班)
- 基于蛋白代謝多組學(xué)探討參麻益智方治療高血壓合并血管性癡呆大鼠作用機(jī)制演示稿件
- 上海布邦流體過濾產(chǎn)品知識(shí)課件
- 建筑施工人員三級(jí)安全教育
評(píng)論
0/150
提交評(píng)論