版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
打造人工智能共享實訓(xùn)基地,我校專業(yè)集群協(xié)調(diào)發(fā)展
信系第7章、傳輸層第7章、傳輸層學(xué)習(xí)目標(biāo)
傳輸層是整個網(wǎng)絡(luò)體系結(jié)構(gòu)中的關(guān)鍵層之一。一定要弄清楚以下幾個重要概念:?理解傳輸層的作用。?了解端口和套接字的意義。?了解傳輸層與網(wǎng)絡(luò)層和應(yīng)用層的關(guān)系。?了解無連接的UDP的特點(diǎn)。?了解面向連接的TCP的特點(diǎn)。?掌握在不可靠的網(wǎng)絡(luò)上實現(xiàn)可靠傳輸?shù)墓ぷ髟怼?掌握TCP的滑動窗口、流量控制、擁塞控制和連接管理第7章、傳輸層7.1傳輸層協(xié)議7.2用戶數(shù)據(jù)報協(xié)議UDP7.3傳輸控制協(xié)議TCP7.4技能訓(xùn)練1:常用命令7.1傳輸層協(xié)議7.1.1傳輸層的作用7.1.2進(jìn)程之間的通信7.1.3傳輸層協(xié)議7.1.4多路復(fù)用與多路分解7.1.1傳輸層的作用在TCP/IP模型中,應(yīng)用程序?qū)?shù)據(jù)傳遞給應(yīng)用層,應(yīng)用層再將數(shù)據(jù)傳遞給傳輸層。傳輸層負(fù)責(zé)在兩個應(yīng)用程序之間建立臨時通信會話以及在它們之間傳遞數(shù)據(jù)。傳輸層工作在OSI參考模型(開放系統(tǒng)互連參考模型,是國際標(biāo)準(zhǔn)化組織ISO在1977年提出的一種網(wǎng)絡(luò)體系結(jié)構(gòu)。)第四層。工作在TCP/IP參考模型的第二層7.1.1傳輸層的作用(1)跟蹤各個會話。在傳輸層中,每臺主機(jī)上都可以有多個應(yīng)用程序在網(wǎng)絡(luò)上通信。每個應(yīng)用程序都與一臺或多臺遠(yuǎn)程主機(jī)上的一個或多個應(yīng)用程序通信。傳輸層負(fù)責(zé)維護(hù)并跟蹤這些會話。(2)數(shù)據(jù)分段和數(shù)據(jù)段重組。傳輸層協(xié)議的服務(wù)可將應(yīng)用程序數(shù)據(jù)分為大小適中的數(shù)據(jù)塊。該服務(wù)包括每段數(shù)據(jù)所需的封裝功能。報頭用于重組,每個數(shù)據(jù)塊都會添加一個報頭。此報頭用于跟蹤數(shù)據(jù)流。數(shù)據(jù)片段到達(dá)目的設(shè)備后,傳輸層必須能將其重組為可用于應(yīng)用層的完整數(shù)據(jù)流。傳輸層協(xié)議規(guī)定了如何使用傳輸層報頭信息來重組要傳送到應(yīng)用層的數(shù)據(jù)片段。7.1.1傳輸層的作用
(4)端到端連接提供流量控制、差錯控制等管理服務(wù)網(wǎng)絡(luò)內(nèi)存和帶寬是有限的,當(dāng)傳輸層發(fā)現(xiàn)此類資源過載時,就會利用某些傳輸層協(xié)議要求減小數(shù)據(jù)流量。流量控制同時可以防止網(wǎng)絡(luò)丟失分段或分段重組。當(dāng)然,數(shù)據(jù)在網(wǎng)絡(luò)中的分段很可能隨時發(fā)生錯誤或丟失。此時,傳輸層能夠通過重傳來保證所有數(shù)據(jù)的正確性和完整性。(3)標(biāo)識應(yīng)用程序。傳輸層為每一個應(yīng)用程序分配一個標(biāo)識符,即端口號。在每臺主機(jī)中,每個需要訪問的軟件進(jìn)程都將被分配一個唯一的端口號。7.1.2進(jìn)程之間的通信AP1AP2主機(jī)AR1R2LAN1IP協(xié)議的作用范圍LAN2WAN傳輸層協(xié)議的作用范圍AP3AP4主機(jī)B7.1.2進(jìn)程之間的通信
AP1AP2IP層傳輸層提供應(yīng)用進(jìn)程間的邏輯通信主機(jī)A的協(xié)議棧應(yīng)用進(jìn)程應(yīng)用進(jìn)程應(yīng)用層傳輸層網(wǎng)絡(luò)層鏈路層物理層
AP3AP4主機(jī)B的協(xié)議棧
7.1.2進(jìn)程之間的通信從IP層(網(wǎng)絡(luò)層)來說,通信的兩端是兩個主機(jī)。IP數(shù)據(jù)報的首部明確地標(biāo)志了這兩個主機(jī)的IP地址。進(jìn)行通信的實體實在主機(jī)中的進(jìn)程,是這個主機(jī)中的一個進(jìn)程和另一個主機(jī)中的進(jìn)程在交換數(shù)據(jù)(即通信)。因此,兩個主機(jī)進(jìn)行通信就是兩個主機(jī)中的應(yīng)用進(jìn)程互相通信。IP協(xié)議雖然能把分組送到目的主機(jī),但是這個分組還停留在主機(jī)的網(wǎng)絡(luò)層而沒有交付主機(jī)中的應(yīng)用進(jìn)程。從傳輸層的角度看,通信的真正端點(diǎn)并不是主機(jī)而是主機(jī)中的進(jìn)程。端到端的通信是應(yīng)用進(jìn)程之間的通信。在一個主機(jī)張中經(jīng)常有多個應(yīng)用進(jìn)程同時分別和另一個主機(jī)中的多個應(yīng)用進(jìn)程通信。如圖7.1所示,主機(jī)A的應(yīng)用進(jìn)程AP1和主機(jī)B的應(yīng)用進(jìn)程AP3通信,而在同時,應(yīng)用進(jìn)程AP2也和對方的AP4通信。7.1.2進(jìn)程之間的通信
傳輸層提供了應(yīng)用進(jìn)程間的邏輯通信,其中“邏輯通信”是指,從應(yīng)用層來看,只要把應(yīng)用層報文交給下面的傳輸層,傳輸層就可以把這報文傳送到對方的傳輸層,好像這種通信就是沿水平方向直接傳送數(shù)據(jù),但事實上這兩個傳輸層之間被沒有一條水平方向的物理連接,數(shù)據(jù)的傳送是沿著圖中的虛線方向經(jīng)過多個層次傳送的。
傳輸層向高層用戶屏蔽了下面網(wǎng)絡(luò)核心的細(xì)節(jié)(如網(wǎng)絡(luò)拓?fù)?、所采用的路由協(xié)議等),它使應(yīng)用進(jìn)程看見的就是好像在兩個傳輸層實體之間有一條端到端的邏輯通信信道。7.1.3傳輸層協(xié)議
大家認(rèn)為,數(shù)據(jù)在傳輸過程中,我們是應(yīng)該首先保證傳輸速率還是應(yīng)該首先保證數(shù)據(jù)完整性?7.1.3傳輸層協(xié)議TCP/IP傳輸層傳輸層協(xié)議應(yīng)用層TCPUDP網(wǎng)際層(IP)網(wǎng)絡(luò)接口層傳輸控制協(xié)議TCP用戶數(shù)據(jù)報協(xié)議UDPTCP報文段(Segment)UDP報文、用戶數(shù)據(jù)報7.1.3傳輸層協(xié)議TCP/IP傳輸層傳輸控制協(xié)議TCP用戶數(shù)據(jù)報協(xié)議UDPTCP報文段(Segment)UDP報文、用戶數(shù)據(jù)報面向連接的服務(wù)建立連接數(shù)據(jù)傳送釋放連接在傳送數(shù)據(jù)之前不需要建立連接。7.1.3傳輸層協(xié)議TCP/IP傳輸層傳輸控制協(xié)議TCP用戶數(shù)據(jù)報協(xié)議UDP電子郵件-SMTP遠(yuǎn)程終端接入-Telnet萬維網(wǎng)-Http文件傳送-FTP7.1.3傳輸層協(xié)議TCP/IP傳輸層傳輸控制協(xié)議TCP用戶數(shù)據(jù)報協(xié)議UDP名字轉(zhuǎn)換-DNS文件傳送-TFTP路由選擇協(xié)議-RIPIP地址配置-DHCP網(wǎng)絡(luò)管理-SNMP遠(yuǎn)程文件服務(wù)器-RIP多播-IGMP7.1.3傳輸層協(xié)議傳輸層的UDP用戶數(shù)據(jù)報網(wǎng)絡(luò)層的IP數(shù)據(jù)報在傳輸層的端到端抽象的邏輯信道中傳送的。要經(jīng)過互聯(lián)網(wǎng)中許多路由器的存儲轉(zhuǎn)發(fā)IP數(shù)據(jù)報經(jīng)過路由器進(jìn)行轉(zhuǎn)發(fā),用戶數(shù)據(jù)報只是IP數(shù)據(jù)報中的數(shù)據(jù),路由器看不見有用戶數(shù)據(jù)報經(jīng)過它。7.1.4傳輸層的復(fù)用與分用
應(yīng)用層所有的應(yīng)用進(jìn)程都可以通過傳輸層再傳送到網(wǎng)絡(luò)層,這就是復(fù)用,也可以來理解:在發(fā)送方不同的應(yīng)用進(jìn)程都可以使用同一個傳輸層協(xié)議傳送數(shù)據(jù)(當(dāng)然需要加上適當(dāng)?shù)氖撞浚?/p>
傳輸層從網(wǎng)絡(luò)層收到數(shù)據(jù)后必須交付指明的應(yīng)用進(jìn)程,這就是分用。即接收方的傳輸層在剝?nèi)笪牡氖撞亢竽軌虬堰@些數(shù)據(jù)正確交付目的應(yīng)用進(jìn)程。7.1.4傳輸層的復(fù)用與分用
當(dāng)網(wǎng)絡(luò)中的兩臺主機(jī)進(jìn)行通信的時候,為了表明數(shù)據(jù)是由源端的哪一種應(yīng)用發(fā)出的,以及數(shù)據(jù)所要訪問的是目的端的哪一種服務(wù),TCP/IP協(xié)議會在傳輸層封裝數(shù)據(jù)段時,把發(fā)出數(shù)據(jù)的應(yīng)用程序的端口作為源端口,把接收數(shù)據(jù)的應(yīng)用程序的端口作為目的端口。數(shù)據(jù)段的頭中,從而使主機(jī)能夠同時維持多個會話的連接,使不同的應(yīng)用程序的數(shù)據(jù)不至于混淆。7.1.4傳輸層的復(fù)用與分用
一臺主機(jī)上的多個應(yīng)用程序可同時與其他多臺主機(jī)上的多個對等進(jìn)程進(jìn)行通信,所以需要對不同的虛電路進(jìn)行標(biāo)識。對TCP虛電路連接采用發(fā)送端和接收端的套接字(Socket)組合來識別,形如(Socket1,Socket2)。套接字是IP地址加上一個端口。發(fā)送套接字=源IP地址+源端口號接收套接字=目的IP地址+目的端口號7.1.4傳輸層的復(fù)用與分用()
()
()
()()
()()()主機(jī)A主機(jī)B主機(jī)C端口1端口2端口3端口4端口1端口2端口1端口2連接1連接2連接3連接47.1.4傳輸層的復(fù)用與分用
每個端口都擁有一個叫端口號的整數(shù)描述符,用來標(biāo)識不同的端口或進(jìn)程。在TCP/IP傳輸層,定義一個16Bit長度的整數(shù)作為端口標(biāo)識,也就是說可定義216個端口,其端口號從0到216-1。由于TCP/IP傳輸層的TCP和UDP兩個協(xié)議是兩個完全獨(dú)立的軟件模塊,因此各自的端口號也相互獨(dú)立,即各自可獨(dú)立擁有216個端口。
兩臺計算機(jī)中的進(jìn)程要互相通信,不僅必須知道對方計算機(jī)的IP地址(為了找到對方的計算機(jī)),而且要知道對方的端口號(為了找到對方計算機(jī)中的應(yīng)用進(jìn)程)。7.1.4傳輸層的復(fù)用與分用1.服務(wù)器端使用的端口號服務(wù)器端使用的端口號熟知端口號登記端口號FTP-21SMTP-25系統(tǒng)端口號,數(shù)值為0~123。Telnet-23DNS-53HTTPS-443HTTP-80數(shù)值為1024~49151。使用需要登記7.1.4傳輸層的復(fù)用與分用2.客戶端使用的端口號數(shù)值在49152~65535。由于這類端口號僅在客戶進(jìn)程運(yùn)行時才動態(tài)選擇,因此又叫短暫端口號。這類端口號留給客戶進(jìn)程選擇暫時使用。當(dāng)服務(wù)器進(jìn)程收到客戶進(jìn)程的報文時,就知道了客戶進(jìn)程所使用的端口號,因而可以把數(shù)據(jù)發(fā)送給客戶進(jìn)程。通信結(jié)束后,剛才已使用過的客戶端口號就不復(fù)存在,這個端口號就可以供其他客戶進(jìn)程使用。7.2用戶數(shù)據(jù)報協(xié)議UDP7.2.1UDP概述7.2.2UDP的首部格式7.2.1UDP概述
用戶數(shù)據(jù)報協(xié)議UDP只是在IP的數(shù)據(jù)報服務(wù)之上增加了復(fù)用和分用的功能以及差錯檢測的功能。UDP的主要特點(diǎn)是:
1)UDP是無連接的。即發(fā)送數(shù)據(jù)之前不需要建立連接,減少了開銷和發(fā)送數(shù)據(jù)之前的時延。
2)UDP使用盡最大努力交付,即不保證可靠交付,因此,主機(jī)不需要維持復(fù)雜的連接狀態(tài)表。3)UDP是面向報文的。發(fā)送方的UDP對應(yīng)用程序交下來的報文,在添加首部后就向下交付IP層。7.2.1UDP概述
4)UDP沒有擁塞控制,因此,網(wǎng)絡(luò)出現(xiàn)的擁塞不會使源主機(jī)的發(fā)送速率降低。如IP電話、實時視頻會議等
5)UDP支持一對一、一對多、多對一和多對多的交互通信。
6)UDP的首部開銷小,只有8個字節(jié),比TCP的20字節(jié)的首部要短。7.2.1UDP概述應(yīng)用層報文UDP用戶數(shù)據(jù)報的數(shù)據(jù)部分UDP首部IP數(shù)據(jù)報的數(shù)據(jù)部分IP首部
應(yīng)用層傳輸層IP層
7.2.2UDP的首部格式
用戶數(shù)據(jù)報UDP有兩個字段:數(shù)據(jù)字段和首部字段。首部字段只有8個字節(jié),由4個字段組成。每個字段都是兩個字節(jié)。
源IP地址目的IP地址UDP長度0源端口17目的端口長度檢驗和偽首部UDP的數(shù)據(jù)部分UDP首部IP數(shù)據(jù)報的數(shù)據(jù)部分IP首部
字節(jié)44112字節(jié)122222UDP用戶數(shù)據(jù)報的首部和偽首部
7.2.2UDP的首部格式
當(dāng)傳輸層從IP層收到UDP數(shù)據(jù)報時,就根據(jù)首部中的目的端口,把UDP數(shù)據(jù)包通過相應(yīng)的端口,上交最后的終點(diǎn)-應(yīng)用進(jìn)程。UDP基于端口的分用
端口1端口2端口3UDP分用IP層UDP數(shù)據(jù)報到達(dá)7.3傳輸控制協(xié)議TCP7.3.1傳輸控制協(xié)議TCP的特點(diǎn)7.3.2TCP報文段的首部格式7.3.3TCP可靠數(shù)據(jù)傳輸技術(shù)7.3.4TCP的運(yùn)輸連接管理7.3.5TCP的流量控制和擁塞控制7.3.1傳輸控制協(xié)議TCP的特點(diǎn)TCP最主要的特點(diǎn)
(1)TCP是面向連接的傳輸層協(xié)議。應(yīng)用程序在使用TCP協(xié)議之前,必須先建立TCP連接。在傳送數(shù)據(jù)完畢之后,必須釋放已經(jīng)建立起來的TCP連接(而UDP是無連接,無需釋放)。
(2)每一條TCP連接只能有兩個端點(diǎn),每一條TCP連接只能是點(diǎn)對點(diǎn)的(一對一)。7.3.1傳輸控制協(xié)議TCP的特點(diǎn)
TCP連接的端點(diǎn)不是主機(jī),不是主機(jī)的IP地址,不是應(yīng)用進(jìn)程,也不是傳輸層的協(xié)議端口。TCP連接的端點(diǎn)叫做套接字(Socket)或插口。根據(jù)互聯(lián)網(wǎng)標(biāo)準(zhǔn),端口號拼接到IP地址即構(gòu)成了套接字。
套接字Socket=(IP地址:端口號)
每一條TCP連接唯一地被通信兩端的兩個端點(diǎn)(即兩個套接字)所確定,即:TCP連接::={Socket1,Socket2}={(IP1:port1),(IP2:port2)}7.3.1傳輸控制協(xié)議TCP的特點(diǎn)
(3)TCP提供可靠交付的服務(wù)。通過TCP連接傳送的數(shù)據(jù),無差錯、不丟失、不重復(fù),并且按序到達(dá)。
(4)TCP提供全雙工通信。TCP允許通信雙方的應(yīng)用進(jìn)程在任何時候都能發(fā)送數(shù)據(jù)。
(5)面向字節(jié)流。TCP中的“流”(Stream)指的是流入到進(jìn)程或從進(jìn)程流出的字節(jié)序列。TCP并不知道所傳送的字節(jié)流的含義。7.3.1傳輸控制協(xié)議TCP的特點(diǎn)7.3.2TCP報文段的首部格式
TCP雖然是面向字節(jié)流的,但TCP傳送的數(shù)據(jù)單元卻是報文段(Segment),TCP通過報文段的交互來建立連接、傳輸數(shù)據(jù)、發(fā)出確認(rèn)、進(jìn)行差錯控制、流量控制及關(guān)閉連接。
一個報文段分為首部和數(shù)據(jù)兩部分,而首部就是TCP為了實現(xiàn)端到端可靠傳輸所加上的控制信息,TCP的全部功能都體現(xiàn)在他首部中各字段的作用。而數(shù)據(jù)則是指由高層即應(yīng)用層來的數(shù)據(jù)。源端口號目的端口號序號bit07152331選項(長度可變)填充數(shù)據(jù)偏移確認(rèn)號窗口緊急指針檢驗和保留URGPSHRSTSYNFINACKTCP首部20字節(jié)的固定首部
TCP報文段的數(shù)據(jù)部分TCP首部IP數(shù)據(jù)報的數(shù)據(jù)部分IP首部
7.3.2TCP報文段的首部格式
(1)源端口號:占2字節(jié)16bit,報文段的源端口號。
(2)目的端口號:占16bit,報文段的目的端口號。
(3)序號;也稱報文段序號,占32bit。序號范圍是[0,232-1],共232個序號。序號增加到232-1后,下一個序號就又回到0。TCP是面向字節(jié)流的,在一個TCP連接中傳送的字節(jié)流中的每一個字節(jié)都是按順序編號。整個要傳送的字節(jié)流的起始序號必須在連接建立時設(shè)置。首部中的序號字段值指的是本報文段所發(fā)送的字節(jié)。7.3.2TCP報文段的首部格式
(4)確認(rèn)號:占32bit,是期望收到對方的下一個TCP報文段的第一個數(shù)據(jù)字節(jié)的序號。順序號和確認(rèn)號共同用于TCP服務(wù)中的確認(rèn)、差錯控制。若確認(rèn)號=N,則表明:到序號N-1為止的所有數(shù)據(jù)都已正確收到。7.3.2TCP報文段的首部格式
(5)數(shù)據(jù)偏移:占4bit,它指出TCP報文段的數(shù)據(jù)起始處距離TCP報文段的起始處有多遠(yuǎn)。這實際上就是TCP報文段首部長度。由于首部中的選項字段長度不固定,因此首部長度字段是必要的。也有稱首部長度。
(6)保留:占6bit,6bit,為將來的應(yīng)用而保留,目前應(yīng)置為0。7.3.2TCP報文段的首部格式
(7)控制位:占6bit,用來說明本報文段的性質(zhì),包含如下六個控制位標(biāo)志:
URG(緊急):緊急指針字段有效;當(dāng)URG=1時,表明緊急指針字段有效,它告訴系統(tǒng)此報文段中有緊急數(shù)據(jù),應(yīng)盡快傳送,而不要按原來的排隊順序來傳送。 ACK(確認(rèn)):確認(rèn)字段有效;僅當(dāng)ACK=1時確認(rèn)號字段才有效。當(dāng)ACK=0時,確認(rèn)號無效。TCP規(guī)定,在鏈接建立后所有傳送的報文段都必須把ACK置1。 7.3.2TCP報文段的首部格式 PSH(推送):推送功能;當(dāng)兩個應(yīng)用進(jìn)程進(jìn)行交互式的通信時,有時在一端的應(yīng)用進(jìn)程希望鍵入一個命令后立即就能夠收到對方的響應(yīng)。這種情況下,TCP就可以使用推送操作。這時,發(fā)送方TCP把PSH置1,并立即創(chuàng)建一個報文段發(fā)送出去。接收方TCP收到PSH=1的報文段,就盡快地交付接收應(yīng)用進(jìn)程,而不再等到整個緩存都填滿了后在向上交付。 RST(復(fù)位):重置連接;當(dāng)RST=1時,表明TCP連接中出現(xiàn)嚴(yán)重差錯,必須立即釋放連接,然后再重新建立運(yùn)輸連接。 7.3.2TCP報文段的首部格式
SYN(同步):同步序列號;在建立連接時用來同步序號。當(dāng)SYN=1而ACK=0時,表明這是一個連接請求報文段。對方若同意建立連接,則應(yīng)在響應(yīng)的報文段中使SYN=1和ACK=1.
FIN(終止):發(fā)送方不再發(fā)送數(shù)據(jù)。用來釋放一個連接。當(dāng)FIN=1時,表明此報文段的發(fā)送方的數(shù)據(jù)已發(fā)送完畢,并要求釋放運(yùn)輸連接。7.3.2TCP報文段的首部格式
(8)窗口大小:占16bit,窗口值是[0,216-1]之間的整數(shù)。窗口是指發(fā)送本報文段的接收窗口。窗口值告訴對方:從本報文段首部中的確認(rèn)號算起。接收方因自身緩存空間限制而允許對方發(fā)送的數(shù)據(jù)量(以字節(jié)為單位)??傊?,窗口值作為接收方讓發(fā)送方設(shè)置其發(fā)送窗口的依據(jù)。
注:窗口字段明確指出了現(xiàn)在允許對方發(fā)送的數(shù)據(jù)量。窗口值經(jīng)常在動態(tài)變化著。
(9)校驗和:占32bit,用于對報文段首部和數(shù)據(jù)進(jìn)行校驗。7.3.2TCP報文段的首部格式
(10)緊急指針:占16bit。緊急指針僅在URG=1時才有意義,它指出本報文段中的緊急數(shù)據(jù)的字節(jié)數(shù)(緊急數(shù)據(jù)結(jié)束后就是普通數(shù)據(jù))。
(11)選項:長度可變,最長可達(dá)40字節(jié)。當(dāng)沒有使用選項時,TCP的首部長度是20字節(jié)。①M(fèi)SS是每個TCP報文段中的數(shù)據(jù)字段的最大長度。數(shù)據(jù)字段加上TCP首部才是整個TCP報文段。因此,MSS并不是整個TCP報文段的最大長度,而是TCP報文段長度減TCP首部長度。數(shù)據(jù)鏈路層有MTU的限制,以太網(wǎng)的MTU默認(rèn)是1500字節(jié),要想數(shù)據(jù)包在傳輸過程中在數(shù)據(jù)鏈路層不分片,MSS應(yīng)為1460字節(jié),7.3.2TCP報文段的首部格式7.3.2TCP報文段的首部格式
②窗口擴(kuò)大選項。窗口擴(kuò)大選項用于擴(kuò)大窗口。我們知道,TCP首部中窗口字段的長度是16bit,因此,窗口最大值為64KB。
窗口擴(kuò)大選項可以在雙方初始建立TCP連接時進(jìn)行協(xié)商。如果連接的某一端實現(xiàn)了窗口擴(kuò)大,那么當(dāng)它不再需要擴(kuò)大其窗口時,可發(fā)送S=0選項,使窗口值回到16bit。
③時間戳選項。時間戳選項占10字節(jié),其中最主要的字段是時間戳字段(4字節(jié))和時間戳回送回答字段(4字節(jié))。
用來計算往返時間RTT。
用于處理TCP序號超過232的情況,這又稱為防止序號繞回PAWS。7.3.2TCP報文段的首部格式
(12)填充:當(dāng)整個TCP首部長度不是4字節(jié)的整倍數(shù)時,需要加以填充。
(13)數(shù)據(jù):來自高層即應(yīng)用層的協(xié)議數(shù)據(jù)。7.3.2TCP報文段的首部格式
EthernetII,Src:IntelCor_ac:30:00(34:2e:b7:ac:30:00),Dst:Tp-LinkT_10:fd:49(f8:8c:21:10:fd:49)//數(shù)據(jù)鏈路層的以太網(wǎng)幀。InternetProtocolVersion4,Src:,Dst://網(wǎng)絡(luò)層TransmissionControlProtocol,SrcPort:52573,DstPort:80,Seq:1,Ack:1,Len:583//傳輸層SourcePort:52573//源端口號DestinationPort:80//目的端口,HTTP端口是80。[Streamindex:4][Conversationcompleteness:Complete,WITH_DATA(63)][TCPSegmentLen:583]SequenceNumber:1(relativesequencenumber)//序號SequenceNumber(raw):2760042442[NextSequenceNumber:584(relativesequencenumber)]//下一個序號AcknowledgmentNumber:1(relativeacknumber)//確認(rèn)號Acknowledgmentnumber(raw):40974908010101....=HeaderLength:20bytes(5)//數(shù)據(jù)偏移,也稱頭部長度7.3.2TCP報文段的首部格式Flags:0x018(PSH,ACK)000.........=Reserved:Notset...0........=Nonce:Notset....0.......=CongestionWindowReduced(CWR):Notset保留.....0......=ECN-Echo:Notset......0.....=Urgent:Notset//緊急URG.......1....=Acknowledgment:Set//確認(rèn)ACK........1...=Push:Set//推送PSH.........0..=Reset:Notset//復(fù)位RST..........0.=Syn:Notset//同步SYN...........0=Fin:Notset//終止FIN[TCPFlags:·······AP···]Window:517//窗口[Calculatedwindowsize:132352]//實際(真實)的窗口大小為517*256=132352[Windowsizescalingfactor:256]//窗口大小比例因子為256Checksum:0xd81e[unverified]//校驗和[ChecksumStatus:Unverified]UrgentPointer:0//緊急指針7.4TCP的可靠傳輸
7.4.1以字節(jié)為單位的滑動窗口
7.4.2超時重傳時間的選擇
7.4.3選擇確認(rèn)(SACK)7.4.1以字節(jié)為單位的滑動窗口
發(fā)送窗口
接收窗口7.4.1以字節(jié)為單位的滑動窗口7.4.2超時重傳時間的選擇
重傳機(jī)制是TCP中最重要和最復(fù)雜的問題之一。TCP的發(fā)送方在規(guī)定的時間內(nèi)沒有收到確認(rèn)就要重傳已發(fā)送的報文段。但超時重傳時間的選擇是TCP最復(fù)雜的問題之一。
1.TCP時間戳選項TCP時間戳(Timestamp)選項可以用來精確地測量RTT。RTT=當(dāng)前時間-數(shù)據(jù)包中時間戳選項的回顯時間7.4.2超時重傳時間的選擇
2.重傳隊列中數(shù)據(jù)包的TCP控制塊
TCP發(fā)送窗口中保存著已發(fā)送而未被確認(rèn)的數(shù)據(jù)包,數(shù)據(jù)包skb中的TCP控制塊包含一個變量tcp_skb_cb→when,記錄了該數(shù)據(jù)包的第一次發(fā)送時間,當(dāng)收到該數(shù)據(jù)包的確認(rèn)后,就可以計算RTT,RTT=當(dāng)前時間–when。這就意味著發(fā)送方收到一個確認(rèn)就能計算新的RTT[SEQ/ACKanalysis][ThisisanACKtothesegmentinframe:15][TheRTTtoACKthesegmentwas:0.000032000seconds]//第15個包的確認(rèn),計算出的RTT為0.000032000s[iRTT:0.015911000seconds]7.4.2超時重傳時間的選擇
3.Karn算法卡恩(Karn)提出了一種算法:在計算RTTs時,只要報文段重傳了,就不采用其往返時間樣本。這樣得出的RTTs和RTO比較準(zhǔn)確。后來對Karn算法進(jìn)行了修正:報文段每重傳一次,就把RTO增大一些。具體的計算公式如下:新的RTO=γ×舊的RTO式中,系數(shù)γ的典型值是2。當(dāng)不再發(fā)生報文段的重傳時,根據(jù)上面給出的公式計算RTO的值。實踐證明,這種策略較為合理。7.3.3TCP可靠數(shù)據(jù)傳輸技術(shù)3.連續(xù)ARQ協(xié)議
位于發(fā)送窗口內(nèi)的5個分組都可連續(xù)發(fā)送出去,而不需要等待對方的確認(rèn)。這樣,信道的利用率就提高了。134562791011128(a)發(fā)送窗口是5tt發(fā)送窗口向前連續(xù)ARQ協(xié)議的工作原理134562791011128發(fā)送窗口
連續(xù)ARQ協(xié)議規(guī)定,發(fā)送方每收到一個確認(rèn),就把發(fā)送窗口向前滑動一個分組的位置。
接收方一般都是采用累計確認(rèn)的方式,這就是說,接收方不必對收到的分組逐個發(fā)送確認(rèn),而是在收到幾個分組后,對按序到達(dá)的最后一個分組發(fā)送確認(rèn),這就表示,到這個分組為止的所有分組都已經(jīng)正確收到了。7.3.3TCP可靠數(shù)據(jù)傳輸技術(shù)4.滑動窗口協(xié)議
采用可變長的滑動窗口協(xié)議進(jìn)行流量控制,以防止由于發(fā)送端與接收端之間的不匹配而引起數(shù)據(jù)丟失。
TCP采用可變長的滑動窗口,使得發(fā)送端與接收端可根據(jù)自己的CPU和數(shù)據(jù)緩存資源對數(shù)據(jù)發(fā)送和接收能力來做出動態(tài)調(diào)整,從而靈活性更強(qiáng),也更合理。7.3.3TCP可靠數(shù)據(jù)傳輸技術(shù)5.重發(fā)機(jī)制
重發(fā)機(jī)制是TCP中最重要的、最復(fù)雜的問題之一。TCP每發(fā)送一個報文段,就設(shè)置一次定時器。只要定時器設(shè)置的重發(fā)時間到而還沒有收到確認(rèn),就要重發(fā)這一報文段。
TCP采用了一種自適應(yīng)算法。這種算法記錄每一個報文段發(fā)出的時間,以及收到相應(yīng)的確認(rèn)報文段的時間。這兩個時間之差就是報文段的往返時延。將各個報文段的往返時延樣本加權(quán)平均,就得出報文段的平均往返時延T。7.3.3TCP可靠數(shù)據(jù)傳輸技術(shù)5.重發(fā)機(jī)制
實現(xiàn)可靠傳輸要滿足三個要素:
(1)序號:傳輸?shù)臄?shù)據(jù)按字節(jié)編號。
(2)確認(rèn):接收方向發(fā)送方確認(rèn)收到數(shù)據(jù)。
(3)重傳:一定時間內(nèi)沒有收到接收方的確認(rèn),發(fā)送方重傳數(shù)據(jù)。7.3.4TCP的運(yùn)輸連接管理
運(yùn)輸連接就有三個階段,即:連接建立、數(shù)據(jù)傳送和連接釋放。運(yùn)輸連接的管理就是使運(yùn)輸連接的建立和釋放都能正常地進(jìn)行。
在TCP連接建立過程中要解決以下三個問題:
(1)要使每一方能夠確知對方的存在。
(2)要允許雙方協(xié)商一些參數(shù)(如最大窗口值、是否使用窗戶擴(kuò)大選項和時間戳選項以及服務(wù)質(zhì)量)。
(3)能夠?qū)\(yùn)輸實體資源(如緩存大小、連接表中的項目等)進(jìn)行分配。7.3.4TCP的運(yùn)輸連接管理1.建立連接TCP采用了一種稱為三報文握手的方式,三報文握手方式使得“序號/確認(rèn)號”系統(tǒng)能夠正常工作,從而使它們的序號達(dá)成同步。如果三報文握手成功,則連接建立成功,可以開始傳送數(shù)據(jù)信息。
在圖7.9中,假定主機(jī)A運(yùn)行的是TCP客戶程序,而主機(jī)B運(yùn)行TCP服務(wù)器程序。7.3.4TCP的運(yùn)輸連接管理客戶服務(wù)器CLOSED確認(rèn)數(shù)據(jù)傳送ABCLOSEDSYN-SENTLISTENSYN-RCVDESTABLISHEDESTABLISHED主動打開被動打開SYN=1,seq=xSYN=1,ACK=1,seq=y,ack=x+1ACK=1,seq=x+1,ack=y+17.3.4TCP的運(yùn)輸連接管理最初兩端的TCP進(jìn)程都處于CLOSED(關(guān)閉)狀態(tài)。圖中在主機(jī)下面的方框分別是TCP進(jìn)程所處的狀態(tài)。在圖中,A主動打開連接,而B被動打開連接。
(1)服務(wù)器主機(jī)B的TCP服務(wù)器進(jìn)程先創(chuàng)建傳輸控制塊TCB,準(zhǔn)備接受客戶進(jìn)程的連接請求,服務(wù)器進(jìn)程就處于LISTEN(收聽)狀態(tài),等待客戶的連接請求。如有,即作出響應(yīng)。傳輸控制塊TCB存儲連接中的信息,如TCP連接表,發(fā)送和接收緩存的指針,重傳隊列的指針,當(dāng)前發(fā)送和接收序號等。7.3.4TCP的運(yùn)輸連接管理
(2)客戶主機(jī)A的TCP客戶進(jìn)程創(chuàng)建傳輸控制塊TCB,向服務(wù)器主機(jī)B發(fā)出連接請求報文段,其部中的同步位SYN=1,同時選擇一個同步序號seq=x。TCP規(guī)定,SYN報文段(即SYN=1的報文段)不能攜帶數(shù)據(jù),但要消耗掉一個序號(SEQ=100,在后面?zhèn)魉蛿?shù)據(jù)時的第一個數(shù)據(jù)字節(jié)的序號是x+1(即101))。這時,源主機(jī)A的TCP客戶程序進(jìn)入SYN_SENT(同步已發(fā)送)狀態(tài)。這是第一次握手。
注:大寫ACK表示首部中的確認(rèn)位ACK,小寫ack表示確認(rèn)字段的值。7.3.4TCP的運(yùn)輸連接管理
(3)服務(wù)器主機(jī)B收到連接請求報文段后,如同意建立連接,則向客戶主機(jī)A發(fā)送確認(rèn)。在確認(rèn)報文段中應(yīng)將ACK位和SYN位都置1。確認(rèn)號ack=x+1,同時也為自己選擇一個初始序號seq=y。這個報文段也不能攜帶數(shù)據(jù),但同樣也要消耗掉一個序號。這時,服務(wù)器主機(jī)B進(jìn)入SYN_RCVD(同步接收)狀態(tài)。這是第二次握手。
(4)客戶主機(jī)A的TCP客戶進(jìn)程收到服務(wù)器主機(jī)B的確認(rèn)后,還要向服務(wù)器主機(jī)B給出確認(rèn),其ACK置1,確認(rèn)號ack=y+1,而自己的序號seq=x+1。ACK報文段可攜帶數(shù)據(jù),不攜帶數(shù)據(jù)則不消耗序號,此時,TCP連接已建立,客戶主機(jī)A進(jìn)入ESTABLISHED(已連接)狀態(tài)。這是第三次握手。7.3.4TCP的運(yùn)輸連接管理
(5)當(dāng)服務(wù)器主機(jī)B收到客戶主機(jī)A的確認(rèn)后,也進(jìn)入ESTABLISHED(已連接)狀態(tài)。這一次的確認(rèn)是為了防止已失效的連接請求報文段突然又傳送到了服務(wù)器主機(jī)B。
運(yùn)行客戶進(jìn)程的客戶主機(jī)A的TCP通知上層應(yīng)用進(jìn)程,連接已經(jīng)建立。當(dāng)客戶主機(jī)A向服務(wù)器主機(jī)B發(fā)送第一個數(shù)據(jù)報文段時,其序號仍為x+1,因為前一個確認(rèn)報文段并不消耗序號。當(dāng)運(yùn)行服務(wù)進(jìn)程的服務(wù)器主機(jī)B的TCP收到客戶主機(jī)A的確認(rèn)后,也通知其上層應(yīng)用進(jìn)程,連接已經(jīng)建立。至此建立了一個全雙工的連接。7.3.4TCP的運(yùn)輸連接管理
位于TCP/IP分層模型的上層的應(yīng)用程序傳輸數(shù)據(jù)流給TCP。TCP接收到字節(jié)流并且把它們分解成段。假如數(shù)據(jù)流不能被分成一段,那么每一個其它段都被分給一個序列號。在目的主機(jī)端.這個序列號用來把接收到的段重新排序成原來的數(shù)據(jù)流。
第一步:主機(jī)A使用滑動窗口發(fā)送全部的四個段到主機(jī)B。這是第一步。不幸的是,只有段l03、105和106成功地到達(dá)了主機(jī)B(參看②)。2.傳送數(shù)據(jù)7.3.4TCP的運(yùn)輸連接管理主機(jī)A主機(jī)B①
ack=104,seq=225,ack=x+1ack=107,seq=226103②
105106⑤
④
③
⑥
103
104105106103
104105106
1041051067.3.4TCP的運(yùn)輸連接管理
第二步:因為段103和104是連續(xù)的,所以主機(jī)B返回一個確認(rèn)給主機(jī)A,通知主機(jī)A它只成功地接收到了第103段,在它的確認(rèn)中主機(jī)B使用它期待得到的下一個序列號作為確認(rèn)(參看③通過給出序列號104)。
第三步:主機(jī)A接到主機(jī)B的報文后,重新發(fā)送段104、105和106(參看④)。雖然主機(jī)B已經(jīng)成功地收到了段105和106,但是根據(jù)協(xié)議規(guī)定,也必須重新發(fā)送。
第四步:當(dāng)主機(jī)B成功地收到這些段以后.主機(jī)B返回一個確認(rèn)給主機(jī)A(參看⑥),并根據(jù)序列號把它們重組成原來的數(shù)流。把它傳輸?shù)礁邔討?yīng)用程序。7.3.4TCP的運(yùn)輸連接管理
TCP連接是一個全雙工的數(shù)據(jù)通道,一個連接的關(guān)閉必須由通信雙方共同完成。當(dāng)通信的一方?jīng)]有數(shù)據(jù)需要發(fā)送給對方時,可以使用FIN段向?qū)Ψ桨l(fā)送關(guān)閉連接請求。這時,它雖然不再發(fā)送數(shù)據(jù),但并不排斥在這個連接上繼續(xù)接收數(shù)據(jù)。只有當(dāng)通信的對方也遞交了關(guān)閉連接的請求后,這個TCP連接才會完全關(guān)閉。
在釋放連接時,既可以由一方發(fā)起而另一方響應(yīng),也可以雙方同時發(fā)起。無論怎樣,收到釋放連接請求的一方必須使用ACK段給予確認(rèn)。實際上,TCP連接的釋放過程也是一個四次揮手的過程。3.釋放連接6.1.2子網(wǎng)劃分TCP釋放連接的過程客戶服務(wù)器CLOSEDABCLOSEDSYN-SENTCLOSE-WAITLAST-ACKESTABLISHEDESTABLISHEDFIN-WAIT-2TIME-WAIT主動關(guān)閉等待2MSL被動關(guān)閉通知應(yīng)用進(jìn)程數(shù)據(jù)傳送FIN=1,seq=uACK=1,seq=v,ack=u+1FIN=1,ACK=1,seq=w,ack=u+1ACK=1,seq=u+1,ack=w+1數(shù)據(jù)傳送7.3.4TCP的運(yùn)輸連接管理
(1)客戶主機(jī)A的應(yīng)用進(jìn)程先向其TCP發(fā)出連接釋放報文段,并停止再發(fā)送數(shù)據(jù),主動關(guān)閉TCP連接??蛻糁鳈C(jī)A的TCP通知服務(wù)器主機(jī)B要釋放從A到B這個方向的連接,將發(fā)往服務(wù)器主機(jī)B的TCP報文段首部的終止比特FIN置1,其序號seq=u,它等于前面已傳送過的數(shù)據(jù)的最后一個字節(jié)的序號加1。這時客戶主機(jī)A進(jìn)入終止等待1狀態(tài),等待服務(wù)器主機(jī)B的確認(rèn)。請注意,TCP規(guī)定,F(xiàn)IN報文段即使不攜帶數(shù)據(jù),它也消耗掉一個序號。這是第一次揮手。7.3.4TCP的運(yùn)輸連接管理
(2)服務(wù)器主機(jī)B收到連接釋放報文段后即發(fā)出確認(rèn),確認(rèn)號是ack=u+1,而這個報文段自己的序號為v,等于B前面已傳送的數(shù)據(jù)的最后一個字節(jié)的序號加1,然后服務(wù)器主機(jī)B就進(jìn)入CLOSE-WAIT(關(guān)閉等待)狀態(tài)。TCP服務(wù)器進(jìn)程這時應(yīng)通知高層應(yīng)用進(jìn)程,因而從A到B這個方向的連接就釋放了,這時的TCP連接處于半關(guān)閉狀態(tài)(half-close)狀態(tài),相當(dāng)于客戶主機(jī)A已經(jīng)沒有數(shù)據(jù)要發(fā)送了,但服務(wù)器主機(jī)B還有一些數(shù)據(jù)要發(fā)送客戶主機(jī)A,客戶主機(jī)A仍要接收。也就是說,從服務(wù)器主機(jī)B到客戶主機(jī)A這個方向的連接并未關(guān)閉,這個狀態(tài)可能會持續(xù)一段時間。這是第二次揮手。7.3.4TCP的運(yùn)輸連接管理
(3)若服務(wù)器主機(jī)B沒有要向客戶主機(jī)A發(fā)送的數(shù)據(jù),其應(yīng)用進(jìn)程就通知TCP釋放連接。這時客戶主機(jī)B發(fā)出的連接釋放報文段必須將終止比特FIN置1?,F(xiàn)假定B的序號為w(在半關(guān)閉狀態(tài)服務(wù)器主機(jī)B可能又發(fā)送了一些數(shù)據(jù))。服務(wù)器B還必須重復(fù)上次已發(fā)送過的確認(rèn)號ack=u+1。這是服務(wù)器主機(jī)B進(jìn)入LAST-ACK(最后確認(rèn))狀態(tài),等待客戶主機(jī)A的確認(rèn)。這是第三次揮手。
客戶主機(jī)A收到服務(wù)器主機(jī)B的確認(rèn)后,就進(jìn)入FIN-WAIT-2(終止等待2)狀態(tài),等待服務(wù)器主機(jī)B發(fā)出的連接釋放報文段。7.3.4TCP的運(yùn)輸連接管理
(4)客戶主機(jī)A收到服務(wù)器主機(jī)B的連接釋放報文段后,必須對此發(fā)出確認(rèn)。在確認(rèn)報文段中將ACK置1,確認(rèn)號ack=w+1,而自己的序號是seq=u+1。然后進(jìn)入到TIME-WAIT(時間等待)狀態(tài)。但這時,TCP連接還沒有釋放掉。必須經(jīng)過時間等待計時器(TIME-WAITtimer)設(shè)置的時間2MSL后,客戶主機(jī)A才進(jìn)入到CLOSED狀態(tài),才能開始建立下一個新的連接。當(dāng)客戶主機(jī)A撤銷相應(yīng)的傳輸控制塊TCB后,就結(jié)束了這次的TCP連接。這是第四次揮手。7.3.5TCP的流量控制和擁塞控制
TCP采用大小可變的滑動窗口機(jī)制可以很方便地在TCP連接上實現(xiàn)對發(fā)送放的流量控制。
接收主機(jī)將通知發(fā)送主機(jī),在它收到確認(rèn)之前發(fā)送主機(jī)能夠發(fā)送多少字節(jié),這個值稱為窗口。窗口的大小是字節(jié)。在TCP報文段首部的窗口字段寫入的數(shù)值就是當(dāng)前給對方設(shè)置發(fā)送窗口的數(shù)據(jù)的上限。1.流量控制7.3.5TCP的流量控制和擁塞控制
在數(shù)據(jù)傳輸過程中,TCP提供了一種基于滑動窗口協(xié)議的流量控制機(jī)制,用接收端接收能力(緩沖區(qū)的容量)的大小來控制發(fā)送端發(fā)送的數(shù)據(jù)量。
在建立連接時,通信雙方使用SYN報文段或ACK報文段中的窗口字段捎帶著各自的接收窗口尺寸,即通知對方從而確定對方發(fā)送窗口的上限。在數(shù)據(jù)傳輸過程中,發(fā)送方按接收方通知的窗口尺寸和序號發(fā)送一定量的數(shù)據(jù),接收方根據(jù)接收緩沖區(qū)的使用情況動態(tài)調(diào)整接收窗口尺寸,并在發(fā)送TCP報文段或確認(rèn)段時稍帶新的窗口尺寸和確認(rèn)號通知發(fā)送方。7.3.5TCP的流量控制和擁塞控制seq=1,DATAseq=101,DATAseq=201,DATA丟失!ACK=1,ack=201,rwnd=300seq=301,DATAseq=401,DATAseq=201,DATAACK=1,ack=501,rwnd=100ACK=1,ack=601,rwnd=0seq=501,DATAA發(fā)送了序號1至100,還能發(fā)送300字節(jié)A發(fā)送了序號101至200,還能發(fā)送200字節(jié)A發(fā)送了序號201至300,但丟失了!允許A發(fā)送序號201至500,共300字節(jié)不允許A再發(fā)送(到序號600為止的數(shù)據(jù)都收到了)A發(fā)送了序號301至400,還能再發(fā)送100字節(jié)新數(shù)據(jù)A發(fā)送了序號401至500,不能再發(fā)送新數(shù)據(jù)了A超時重傳舊的數(shù)據(jù),但不能發(fā)送新的數(shù)據(jù)允許A發(fā)送序號501至600,共100字節(jié)A發(fā)送了序號501至600,不能再發(fā)送了AB利用可變窗口進(jìn)行流量控制7.3.5TCP的流量控制和擁塞控制
圖中,假設(shè)主機(jī)A向主機(jī)B發(fā)送數(shù)據(jù)。在連接建立時,主機(jī)B告訴主機(jī)A,“我的接收窗口rwnd=400字節(jié)。因此,發(fā)送放的發(fā)送窗口不能超過接收方給出的接收窗口的數(shù)值。再假設(shè)每一個報文段為100字節(jié)長,而數(shù)據(jù)報文段序號的初始值設(shè)為1。設(shè)一個報文段為100字節(jié)長,序號的初始值為1(即圖7.12中第一個箭頭上面的序號seq=1)。7.3.5TCP的流量控制和擁塞控制
圖中,主機(jī)B進(jìn)行了三次流量控制。第一次將窗口減小到rwnd=300字節(jié),第二次將窗口又減為rwnd=200字節(jié),最后一
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2030年中國奢侈品箱包行業(yè)規(guī)模分析及投資策略研究報告
- 2024-2030年中國半纖維素酶行業(yè)運(yùn)行狀況及投資發(fā)展前景預(yù)測報告
- 2024年生產(chǎn)車間租賃與產(chǎn)業(yè)基金投資服務(wù)合同3篇
- 質(zhì)量監(jiān)督程序
- 詹凱煜畢業(yè)設(shè)計報告書論文
- 2024年度高層建筑基礎(chǔ)施工混凝土供應(yīng)合同范本3篇
- 海南省部分學(xué)校2021-2022學(xué)年高一上學(xué)期期中考試歷史試題
- 2024年城市宣傳片制作與發(fā)布合同范本3篇
- 2025年嘉峪關(guān)道路貨運(yùn)駕駛員從業(yè)資格證考試
- 2025投影系統(tǒng)設(shè)備購銷合同書
- 醫(yī)學(xué)小常識幻燈片課件
- 化妝品功效評價
- 風(fēng)電場通用類作業(yè)行為風(fēng)險管控清單
- 【幼兒園園本教研】幼兒表征的教師一對一傾聽策略
- GCS評分實施細(xì)則及要點(diǎn)說明課件
- 英語│英語中考英語閱讀理解(有難度)
- 手術(shù)操作分類代碼國家臨床版3.0
- 采血知情同意書模板
- 我的家鄉(xiāng)廣東廣州宣傳簡介
- 自行車制造業(yè)行業(yè)概述
- 方案的構(gòu)思過程 課件-2023-2024學(xué)年高中通用技術(shù)蘇教版(2019)技術(shù)與設(shè)計1
評論
0/150
提交評論