第3章-傳輸層及傳輸層協(xié)議_第1頁(yè)
第3章-傳輸層及傳輸層協(xié)議_第2頁(yè)
第3章-傳輸層及傳輸層協(xié)議_第3頁(yè)
第3章-傳輸層及傳輸層協(xié)議_第4頁(yè)
第3章-傳輸層及傳輸層協(xié)議_第5頁(yè)
已閱讀5頁(yè),還剩36頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第3章傳輸層及傳輸層協(xié)議袁津生主編主要內(nèi)容3.1傳輸層的基本概念3.2UDP協(xié)議3.3TCP協(xié)議主要內(nèi)容傳輸層是資源子網(wǎng)與通信子網(wǎng)的界面與橋梁,它完成通信子網(wǎng)中兩結(jié)點(diǎn)間的直接邏輯通信。本章將討論傳輸層的基本功能、傳輸層向應(yīng)用層提供的服務(wù),以及實(shí)現(xiàn)這些服務(wù)的協(xié)議TCP(TransmissionControlProtocol)和UDP(UserDatagramProtocol)。3.1傳輸層的基本概念傳輸層的功能傳輸層的功能是保證數(shù)據(jù)可靠地從發(fā)送結(jié)點(diǎn)發(fā)送到目標(biāo)結(jié)點(diǎn),傳輸層提供端到端的數(shù)據(jù)交換機(jī)制,傳輸層對(duì)應(yīng)用層提供可靠的傳輸服務(wù),對(duì)網(wǎng)絡(luò)層提供可靠的目的地站點(diǎn)信息。傳輸層也稱為運(yùn)輸層。傳輸層只存在于端開放系統(tǒng)中,是介于OSI參考模型的低3層通信子網(wǎng)系統(tǒng)和高3層之間的一層,是很重要的一層,因?yàn)樗窃炊说侥康亩藢?duì)數(shù)據(jù)傳送進(jìn)行控制從低到高的最后一層。傳輸層的位置傳輸層的基本功能連接管理。傳輸層要建立、維持和終止一個(gè)會(huì)話,就要對(duì)整個(gè)過(guò)程進(jìn)行管理。流量控制。傳輸層定義了端到端用戶之間的流量控制。差錯(cuò)檢測(cè)。對(duì)用戶請(qǐng)求的響應(yīng)。建立無(wú)連接或面向連接的通信。傳輸層提供的服務(wù)面向連接的通信保持?jǐn)?shù)據(jù)的分發(fā)順序可靠服務(wù)流量控制多路復(fù)用擁塞避免進(jìn)程標(biāo)識(shí)一臺(tái)計(jì)算機(jī)中,不同的進(jìn)程可以用進(jìn)程號(hào)或進(jìn)程標(biāo)識(shí)惟一地標(biāo)識(shí)出來(lái)。進(jìn)程號(hào)又稱為端口號(hào)。在網(wǎng)絡(luò)環(huán)境中,標(biāo)識(shí)一個(gè)進(jìn)程必須同時(shí)使用IP地址和端口號(hào)。套接字(socket)就是用來(lái)表示一個(gè)IP地址與對(duì)應(yīng)的一個(gè)進(jìn)程標(biāo)識(shí)。一個(gè)IP地址為202.204.125.56的客戶端使用端口號(hào)1157,與一個(gè)IP地址為202.204.125.87、端口號(hào)為80的Web服務(wù)器建立TCP連接,那么標(biāo)識(shí)客戶端的套接字為“202.204.125.56:1157”,標(biāo)識(shí)服務(wù)器端的套接字為“202.204.125.87:80”。應(yīng)用進(jìn)程通過(guò)套接字交換數(shù)據(jù)物理層數(shù)據(jù)鏈路層網(wǎng)絡(luò)層TCP/UDP套接字服務(wù)進(jìn)程物理層數(shù)據(jù)鏈路層網(wǎng)絡(luò)層TCP/UDP套接字客戶進(jìn)程因特網(wǎng)客戶端服務(wù)器端口號(hào)的分配方法

端口號(hào)取值范圍是0~65535之間的整數(shù)。熟知端口號(hào):取值范圍0~1023,它是由IANA(TheInternetAssignedNumbersAuthority,因特網(wǎng)數(shù)字分配機(jī)構(gòu))統(tǒng)一分配和控制的。注冊(cè)端口號(hào):取值范圍:1024~49151,用戶根據(jù)需要可以在IANA進(jìn)行注冊(cè),以防止重復(fù)。臨時(shí)端口號(hào):取值范圍:49152~65535,由運(yùn)行在客戶機(jī)上的軟件隨機(jī)選取的。傳輸層與其它層次之間的關(guān)系3.2UDP協(xié)議UDP協(xié)議UDP協(xié)議全稱是用戶數(shù)據(jù)報(bào)協(xié)議,是TCP/IP協(xié)議簇中傳輸層的兩個(gè)重要的協(xié)議之一。它為應(yīng)用程序提供了一條訪問(wèn)IP的無(wú)連接功能、面向事務(wù)、簡(jiǎn)單不可靠傳送服務(wù)。UDP的設(shè)計(jì)允許應(yīng)用程序創(chuàng)建數(shù)據(jù)報(bào),允許它們通過(guò)端口訪問(wèn)應(yīng)用程序或進(jìn)程,其基本作用是向IP分組增加了一個(gè)應(yīng)用程序的端口地址。UDP協(xié)議的主要特點(diǎn)

UDP是一個(gè)無(wú)連接的,不可靠的傳輸層協(xié)議。UDP協(xié)議在傳輸數(shù)據(jù)之前不需要在通信雙方之間建立連接,因此減少了協(xié)議開銷與傳輸時(shí)延。UDP信息包的標(biāo)題很短,只有8個(gè)字節(jié),相對(duì)于TCP的20個(gè)字節(jié)信息包的額外開銷很小。UDP是一種面向報(bào)文的傳輸層協(xié)議。UDP數(shù)據(jù)報(bào)格式

UDP的報(bào)頭是一個(gè)具有固定8B的長(zhǎng)度。源端口號(hào)和目的端口號(hào),每個(gè)端口號(hào)各占16位(2B)。源端口號(hào)表示發(fā)送方進(jìn)程端口號(hào),目的端口號(hào)表示接收方進(jìn)程端口號(hào)。UDP總長(zhǎng)度占16位(2B),它定義了包括報(bào)頭在內(nèi)的UDP總長(zhǎng)度。校驗(yàn)和字段的長(zhǎng)度為16位(2B)UDP的偽頭部偽首部源端口目的端口長(zhǎng)度檢驗(yàn)和UDP長(zhǎng)度源IP地址目的IP地址017字節(jié)44112122222字節(jié)數(shù)據(jù)首部UDP用戶數(shù)據(jù)報(bào)

UDP的復(fù)用和分用UDP的應(yīng)用UDP協(xié)議適用于對(duì)傳輸數(shù)據(jù)的準(zhǔn)確性要求不高、無(wú)須應(yīng)答并且通常一次只傳送少量數(shù)據(jù)的情況。UDP協(xié)議在數(shù)據(jù)傳輸過(guò)程中無(wú)須建立邏輯連接,對(duì)數(shù)據(jù)報(bào)也不進(jìn)行檢查,因而在傳輸數(shù)據(jù)方面,減少了網(wǎng)絡(luò)的往返來(lái)回、使速度和性能得到提升,并且UDP具有較好的實(shí)時(shí)性,效率高。UDP協(xié)議應(yīng)用于網(wǎng)絡(luò)游戲,視頻聊天,語(yǔ)音聊天UDP協(xié)議也是分發(fā)信息的一個(gè)理想?yún)f(xié)議。2.3TCP協(xié)議TCP協(xié)議傳輸控制協(xié)議TCP是一種面向連接的、可靠的、基于字節(jié)流的運(yùn)輸層通信協(xié)議。在簡(jiǎn)化的計(jì)算機(jī)網(wǎng)絡(luò)OSI模型中,它完成第四層傳輸層所指定的功能。在TCP/IP協(xié)議族中,TCP層是位于IP層之上,應(yīng)用層之下的中間層。TCP協(xié)議為應(yīng)用進(jìn)程提供可靠的、端到端的、面向連接的字節(jié)流通信的協(xié)議。TCP協(xié)議提供一種可靠的機(jī)制來(lái)保證數(shù)據(jù)完整、無(wú)損并且按順序到達(dá)。TCP的設(shè)計(jì)允許應(yīng)用程序創(chuàng)建數(shù)據(jù)報(bào),并通過(guò)端口訪問(wèn)應(yīng)用程序或進(jìn)程。TCP協(xié)議的主要特點(diǎn)面向連接的傳輸服務(wù)支持字節(jié)流的傳輸支持全雙工服務(wù)支持可靠的傳輸服務(wù)TCP面向流的概念768H發(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

連接TCP報(bào)文格式TCP首部20字節(jié)的固定首部目的端口數(shù)據(jù)偏移檢驗(yàn)和選項(xiàng)(長(zhǎng)度可變)源端口序號(hào)緊急指針窗口確認(rèn)號(hào)保留FIN32bitSYNRSTPSHACKURG比特08162431填充TCP數(shù)據(jù)部分TCP首部TCP報(bào)文段TCP報(bào)文格式端口號(hào)包括源端口號(hào)和目的端口號(hào)。每個(gè)端口號(hào)長(zhǎng)度都是16位,分別表示發(fā)送方和接收方的端口號(hào)。序號(hào)字段占32位,是本報(bào)文段所發(fā)送的數(shù)據(jù)部分第一個(gè)字節(jié)的序號(hào)。確認(rèn)號(hào)字段占32位。只有當(dāng)ACK標(biāo)志為1時(shí),確認(rèn)號(hào)字段才有效。數(shù)據(jù)偏移又稱為頭部長(zhǎng)度占4位。它指出TCP報(bào)文段的數(shù)據(jù)起始處距離TCP報(bào)文段的起始處有多遠(yuǎn)。保留字段占6位,保留為今后使用,但目前應(yīng)置為0。TCP報(bào)文格式控制字段定義了6種不同的控制位或標(biāo)志。內(nèi)容如下:緊急URG:當(dāng)URG為1時(shí),表明緊急指針字段有效。確認(rèn)ACK:只有當(dāng)ACK為1時(shí),確認(rèn)號(hào)字段才有效。推送PSH:接收TCP收到PSH為1的報(bào)文段,就盡快地交付接收應(yīng)用進(jìn)程,而不再等到整個(gè)緩存都填滿了后再向上交付。復(fù)位RST:用來(lái)復(fù)位一條連接。同步SYN:用來(lái)建立連接,讓連接雙方同步序列號(hào)。終止FIN:用來(lái)釋放一個(gè)連接。當(dāng)FIN為1時(shí),表明此報(bào)文段的發(fā)送端的數(shù)據(jù)已發(fā)送完畢,并要求釋放連接。TCP報(bào)文格式窗口字段占16位(2B),用來(lái)讓對(duì)方設(shè)置發(fā)送窗口的依據(jù),單位為字節(jié)。校驗(yàn)和占16位(2B)。校驗(yàn)和字段檢驗(yàn)的范圍包括TCP頭部和TCP數(shù)據(jù)這兩部分。緊急指針字段占16位,只有當(dāng)URG為1時(shí),表明緊急指針字段有效。選項(xiàng)字段占32位。該字段可包括最大報(bào)文段長(zhǎng)度、窗口擴(kuò)大因子、時(shí)間戳等選項(xiàng)。TCP連接建立與釋放TCP連接有三個(gè)階段,即:連接建立、數(shù)據(jù)傳送和連接釋放。連接的管理就是使傳輸連接的建立和釋放都能正常地進(jìn)行。TCP連接的建立都是采用客戶服務(wù)器方式。主動(dòng)發(fā)起連接建立的應(yīng)用進(jìn)程叫做客戶,被動(dòng)等待連接建立的應(yīng)用進(jìn)程叫做服務(wù)器。TCP建立連接階段連接的最初階段服務(wù)器端處于打開階段,而客戶端處于關(guān)閉狀態(tài)。這樣要建立一個(gè)TCP連接需要經(jīng)過(guò)三次握手的過(guò)程。SYN=1,seq=xACK=1,seq=x+1,ack=y1客戶服務(wù)器SYN=1,ACK=1,seq=y,ack=x1TCP的連接釋放由于TCP連接是全雙工的,因此每個(gè)方向都必須單獨(dú)進(jìn)行關(guān)閉。因此,需要4次握手。當(dāng)一方完成它的數(shù)據(jù)發(fā)送任務(wù)后就要發(fā)送一個(gè)FIN來(lái)終止這個(gè)方向的連接。只有當(dāng)另一方也發(fā)送一個(gè)FIN時(shí),才能全部關(guān)閉TCP的連接。FIN=1,seq=uACK=1,seq=v,ack=u1FIN=1,ACK=1,seq=w,ack=u1客戶服務(wù)器數(shù)據(jù)傳送ACK=1,seq=u+1,ack=w1TCP的定時(shí)器重傳定時(shí)器。為了控制丟失的或丟棄的報(bào)文段,TCP使用了處理報(bào)文段的確認(rèn)的等待重傳時(shí)間的重傳定時(shí)器。堅(jiān)持定時(shí)器。TCP為每一個(gè)連接使用一個(gè)堅(jiān)持定時(shí)器。當(dāng)發(fā)送方的TCP收到一個(gè)窗口大小為零的確認(rèn)時(shí),就需要啟動(dòng)堅(jiān)持定時(shí)器。保持定時(shí)器。又叫做激活定時(shí)器,它是用來(lái)防止在兩個(gè)TCP之間的連接處于長(zhǎng)時(shí)期空閑。時(shí)間等待計(jì)時(shí)器。在連接終止期間使用的。TCP滑動(dòng)窗口機(jī)制滑動(dòng)窗口協(xié)議的基本原理就是在任意時(shí)刻,發(fā)送方都維持了一個(gè)連續(xù)的允許發(fā)送的字節(jié)流的序號(hào),稱為發(fā)送窗口;同時(shí),接收方也維持了一個(gè)連續(xù)的允許接收的字節(jié)流的序號(hào),稱為接收窗口。發(fā)送窗口和接收窗口的序號(hào)的上下界不一定要一樣,甚至大小也可以不同。不同的滑動(dòng)窗口協(xié)議窗口大小一般不同。發(fā)送方窗口內(nèi)的序列號(hào)代表了那些已經(jīng)被發(fā)送,但是還沒有被確認(rèn)的字節(jié),或者是那些可以被發(fā)送的字節(jié)。指針發(fā)送窗口縮小1002003004005006007008009001012013014015016017018011已發(fā)送并被確認(rèn)可發(fā)送不可發(fā)送發(fā)送窗口前移900指針1002003004005006007008001012013014015016017018011不可發(fā)送已發(fā)送并被確認(rèn)已發(fā)送但未被確認(rèn)可發(fā)送指針收到確認(rèn)即可前移1002003004005006007008009001012013014015016017018011發(fā)送窗口可發(fā)送不可發(fā)送(a)發(fā)送窗口大小為500B(b)發(fā)送400B,收到確認(rèn)200B,窗口大小不變,還可發(fā)送300B(c)

收到確認(rèn)400B,窗口縮小400B,還可發(fā)送400B發(fā)送窗口和接收窗口

TCP滑動(dòng)窗口用來(lái)暫存兩臺(tái)計(jì)算機(jī)間要傳送的數(shù)據(jù)分組。每臺(tái)運(yùn)行TCP協(xié)議的計(jì)算機(jī)有兩個(gè)滑動(dòng)窗口:一個(gè)用于數(shù)據(jù)發(fā)送,另一個(gè)用于數(shù)據(jù)接收。在全雙工工作時(shí),有4個(gè)滑動(dòng)窗口:發(fā)送端的發(fā)送窗口和接收窗口,接收端的接收窗口和發(fā)送窗口。停止等待協(xié)議(a)無(wú)差錯(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í)重傳tttt后退n協(xié)議選擇重發(fā)協(xié)議TCP協(xié)議的流量控制

所謂流量控制就是管理發(fā)送端和接收端之間的流量,以免會(huì)產(chǎn)生發(fā)送過(guò)快導(dǎo)致接收端溢出,或者因接收端處理太快而浪費(fèi)時(shí)間。換句話說(shuō)就是讓發(fā)送方的發(fā)送速率不要太快,要讓接收方來(lái)得及接收,也不要使網(wǎng)絡(luò)發(fā)生擁塞。利用滑動(dòng)窗口機(jī)制可以很方便地在TCP連接上實(shí)現(xiàn)對(duì)發(fā)送方的流量控制。共有三種情況,窗口擴(kuò)大,收縮和合攏。擴(kuò)大:接收方通知接收窗口擴(kuò)大,右側(cè)邊界右移收縮:接收方通知接收窗口縮小,右側(cè)邊界左移合攏:接收方通知接收窗口為零,左右邊界合攏利用滑動(dòng)窗口實(shí)現(xià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é)新數(shù)據(jù)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ù)都收到了)丟失TCP的差錯(cuò)控制

TCP的差錯(cuò)控制是通過(guò)差錯(cuò)檢測(cè)、確認(rèn)與重傳來(lái)實(shí)現(xiàn)的。差錯(cuò)檢測(cè)。在TCP協(xié)議中使用的是校驗(yàn)和。確認(rèn)。TCP在接到數(shù)據(jù)段后要對(duì)其進(jìn)行校驗(yàn),并且向發(fā)送方反饋確認(rèn)消息。TCP協(xié)議的

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論