傳輸層概述用戶數(shù)據(jù)報協(xié)議_第1頁
傳輸層概述用戶數(shù)據(jù)報協(xié)議_第2頁
傳輸層概述用戶數(shù)據(jù)報協(xié)議_第3頁
傳輸層概述用戶數(shù)據(jù)報協(xié)議_第4頁
傳輸層概述用戶數(shù)據(jù)報協(xié)議_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

傳輸層概述用戶數(shù)據(jù)報協(xié)議第一頁,共四十三頁,2022年,8月28日本講主要內(nèi)容傳輸層概述用戶數(shù)據(jù)報協(xié)議UDP傳輸控制協(xié)議TCP

第二頁,共四十三頁,2022年,8月28日28.1傳輸層概述傳輸層是整個網(wǎng)絡(luò)體系結(jié)構(gòu)中的關(guān)鍵層次之一,其根本任務(wù)是為兩個主機中的應(yīng)用進(jìn)程提供通信服務(wù)。在傳輸層中共有兩個協(xié)議,分別是TCP協(xié)議與UDP協(xié)議,TCP協(xié)議的控制機制非常復(fù)雜,從而保證了應(yīng)用進(jìn)程之間的可靠數(shù)據(jù)傳輸。第三頁,共四十三頁,2022年,8月28日3傳輸層的設(shè)計問題傳輸層的最高目標(biāo)是向其用戶(一般是指應(yīng)用層的進(jìn)程,即運行著的應(yīng)用程序),提供有效、可靠且價格合理的服務(wù)。為了達(dá)到這一目標(biāo),傳輸層利用了網(wǎng)絡(luò)層所提供的服務(wù)。傳輸層完成這一工作的硬件和軟件稱為傳輸實體(transportentity)。傳輸實體可能在操作系統(tǒng)內(nèi)核中,或在一個單獨的用戶進(jìn)程內(nèi),也可能是包含在網(wǎng)絡(luò)應(yīng)用的程序庫中,或是位于網(wǎng)絡(luò)接口卡上。網(wǎng)絡(luò)層、傳輸層和應(yīng)用層的邏輯關(guān)系如圖8-1所示。第四頁,共四十三頁,2022年,8月28日4圖8-1網(wǎng)絡(luò)層、傳輸層和應(yīng)用層的邏輯關(guān)系第五頁,共四十三頁,2022年,8月28日5傳輸層協(xié)議通常具有幾種責(zé)任一種責(zé)任就是創(chuàng)建進(jìn)程到進(jìn)程的通信,通常使用端口號來完成這種功能。另一種責(zé)任是在傳輸層提供控制機制,比如差錯控制、流量控制及擁塞控制等。另外,傳輸層還應(yīng)當(dāng)負(fù)責(zé)為進(jìn)程建立連接機制,這些進(jìn)程應(yīng)當(dāng)能夠向傳輸層的發(fā)送數(shù)據(jù)流。第六頁,共四十三頁,2022年,8月28日6傳輸層的任務(wù)傳輸層的任務(wù)是為兩個主機中的應(yīng)用進(jìn)程提供通信服務(wù)。這與網(wǎng)絡(luò)層中的IP協(xié)議有什么區(qū)別呢?IP協(xié)議是負(fù)責(zé)計算機級的通信,換句話說,是提供主機到主機的通信服務(wù)。作為網(wǎng)絡(luò)層協(xié)議,IP協(xié)議只能將報文交付給目的計算機。但是,這是一種不完整的交付。這個報文還必須送交到正確的進(jìn)程。這正是傳輸層協(xié)議所要做的事。第七頁,共四十三頁,2022年,8月28日7圖8-2給出了IP協(xié)議與傳輸層協(xié)議作用范圍的區(qū)別。應(yīng)用進(jìn)程…應(yīng)用進(jìn)程…IP協(xié)議的作用范圍(提供主機之間的邏輯通信)TCP和UDP協(xié)議的作用范圍(提供進(jìn)程之間的邏輯通信)因特網(wǎng)第八頁,共四十三頁,2022年,8月28日8傳輸層的任務(wù)另外,除了在作用范圍上有所區(qū)別,傳輸層還比網(wǎng)絡(luò)層提供更可靠的傳輸服務(wù)。分組丟失、數(shù)據(jù)殘缺均會被傳輸層檢測到并采取相應(yīng)的補救措施。第九頁,共四十三頁,2022年,8月28日98.1.2端口現(xiàn)在的操作系統(tǒng)都支持多用戶、多任務(wù)的運行環(huán)境。一個計算機在同一時間可運行多個進(jìn)程。在網(wǎng)絡(luò)上,主機是用IP地址來定義的。要定義主機上的某一個進(jìn)程,便需要第二個標(biāo)識符,叫做端口號。端口是個非常重要的概念,因為應(yīng)用層的各種進(jìn)程是通過相應(yīng)的端口與運輸實體進(jìn)行交互的。因此在運輸協(xié)議數(shù)據(jù)單元的首部中都要寫入源端口號和目的端口號。當(dāng)運輸層收到IP層交上來的數(shù)據(jù),就要根據(jù)其目的端口號來決定應(yīng)當(dāng)通過哪一個端口上交給目的應(yīng)用進(jìn)程。第十頁,共四十三頁,2022年,8月28日10端口號在TCP/IP協(xié)議族中,端口號由16位二進(jìn)制數(shù)表示,換算為十進(jìn)制,則是0-65536之間的整數(shù)。端口號只有本地意義,即端口號只是為標(biāo)志本計算機應(yīng)用層中的各進(jìn)程,不同計算機的相同端口號是沒有聯(lián)系的。第十一頁,共四十三頁,2022年,8月28日11端口號分為兩類一類是由因特網(wǎng)指派名字和號碼公司ICANN負(fù)責(zé)分配給一些常用的應(yīng)用層程序固定使用的熟知端口(well-knownport),其數(shù)據(jù)一般為0-1023,表8-1中便列出了部分常見的熟知端口?!笆熘本捅硎具@些端口號是TCP/IP體系確定并公布的,因而是所有用戶進(jìn)程都知道的。另一類是一般端口,用來隨時分配給請求通信的客戶進(jìn)程,一般來說,客戶進(jìn)程所使用的端口號都是臨時產(chǎn)生的,通信完成后便釋放,所以又稱短暫端口號。第十二頁,共四十三頁,2022年,8月28日12表8-1常見的熟知端口協(xié)議端口說明FTP21文件傳輸協(xié)議TELNET23遠(yuǎn)程登錄協(xié)議SMTP25簡單郵件傳輸協(xié)議DNS53域名解析協(xié)議DHCP67動態(tài)主機配置協(xié)議TFTP69快速文件傳輸協(xié)議HTTP80超文本傳輸協(xié)議SNMP161簡單網(wǎng)絡(luò)管理協(xié)議第十三頁,共四十三頁,2022年,8月28日13套接字為了在通信時能確定唯一主機的唯一進(jìn)程,就必須把端口號和主機的IP地址結(jié)合起來一起使用,稱為套接字地址(socketaddress),或直接稱為SOCKET。在實際通信過程中,我們需要一對套接字地址:客戶套接字地址和服務(wù)器套接字地址,客戶套接字地址惟一定義了客戶進(jìn)程,而服務(wù)器套接字唯一地定義了服務(wù)器進(jìn)程。這四種信息分別是IP首部與運輸協(xié)議數(shù)據(jù)單元首部中的一部分。第十四頁,共四十三頁,2022年,8月28日14套接字的組成IP地址端口號21,21第十五頁,共四十三頁,2022年,8月28日158.2用戶數(shù)據(jù)報協(xié)議UDP

8.2.1UDP概述用戶數(shù)據(jù)報協(xié)議UDP是傳輸層協(xié)議之一,其實現(xiàn)功能較為簡單,但由于其靈活、開銷小等特點,使得它更適合某些應(yīng)用。UDP提供無連接的服務(wù)。這表示UDP發(fā)送出的每一個用戶數(shù)據(jù)報都是獨立的數(shù)據(jù)報。用戶數(shù)據(jù)報并不進(jìn)行編號,也沒有建立連接和釋放連接的過程,每一個用戶數(shù)據(jù)報可以走不同的路徑。UDP是一個不可靠的傳輸層協(xié)議。第十六頁,共四十三頁,2022年,8月28日168.2.2UDP用戶數(shù)據(jù)報UDP分組叫做用戶數(shù)據(jù)報,有8個字節(jié)的固定首部。源端口目的端口長度檢驗和數(shù)據(jù)首部UDP用戶數(shù)據(jù)報第十七頁,共四十三頁,2022年,8月28日17用戶數(shù)據(jù)報首部中的字段源端口號:這是在源主機上運行的進(jìn)程所使用的端口號。有16位長,這就是表示端口號的范圍為0-65535。目的端口號:這是在目的主機上運行的進(jìn)程使用的端口號,16位長??傞L度:是用戶數(shù)據(jù)報的總長度,即首部加上數(shù)據(jù)后的總長度,16位長。檢驗和:這個字段用來檢驗整個用戶數(shù)據(jù)報出現(xiàn)的差錯。第十八頁,共四十三頁,2022年,8月28日188.3傳輸控制協(xié)議TCP

8.3.1TCP概述與UDP不同,TCP是一種面向流的協(xié)議。在UDP中,進(jìn)行把一塊數(shù)據(jù)發(fā)送給UDP以便進(jìn)行傳遞。UDP在這塊數(shù)據(jù)上添加自己的首部,這就構(gòu)成了數(shù)據(jù)報,然后再把它傳遞給IP來傳輸。這個進(jìn)程可以一連傳遞好幾個塊數(shù)據(jù)給UDP,但UDP對每一塊數(shù)據(jù)都是獨立對待,而并不考慮它們之間的任何聯(lián)系。TCP則允許發(fā)送進(jìn)程以字節(jié)流的形式來傳遞數(shù)據(jù),而接收進(jìn)程也把數(shù)據(jù)作為字節(jié)流來接收。TCP創(chuàng)建了一種環(huán)境,它使得兩個進(jìn)程好像被一個假想的“管道”所連接,而這個管道在Internet上傳送兩個進(jìn)程的數(shù)據(jù),發(fā)送進(jìn)程產(chǎn)生字節(jié)流,而接收進(jìn)程消耗字節(jié)流。第十九頁,共四十三頁,2022年,8月28日19報文段由于發(fā)送進(jìn)程和接收進(jìn)程產(chǎn)生和消耗數(shù)據(jù)的速度并不一樣,因此TCP需要緩存來存儲數(shù)據(jù)。在每一個方向上都有緩存,即發(fā)送緩存和接收緩存。另外,除了用緩存來處理這種速度的差異,在發(fā)送數(shù)據(jù)前還需要一種重要的方法,即將字節(jié)流分割為報文段(Segment)。報文段是TCP處理的最小數(shù)據(jù)單元。報文段的長度可以是不等的。第二十頁,共四十三頁,2022年,8月28日20TCP發(fā)送與接收數(shù)據(jù)過程的示意圖如圖8-5所示。第二十一頁,共四十三頁,2022年,8月28日21TCP特點TCP提供全雙工服務(wù),即數(shù)據(jù)可在同時間雙向流動,每一個TCP都有發(fā)送緩存和接收緩存,而兩個方向都可以發(fā)送報文段。TCP是面向連接協(xié)議,它有連接建立、數(shù)據(jù)傳輸、連接釋放三個過程。TCP是可靠的傳輸協(xié)議,它使用確認(rèn)機制來檢查數(shù)據(jù)是否安全和完整地到達(dá)。第二十二頁,共四十三頁,2022年,8月28日228.3.2TCP報文段TCP報文段同樣由首部和數(shù)據(jù)兩部分組成。但其首部要比UDP復(fù)雜的多,其首部前20個字節(jié)是固定的,后面有4N字節(jié)是根據(jù)需要而增加的選項(N為整數(shù))。因此,TCP首部長度在20-60字節(jié)之間。第二十三頁,共四十三頁,2022年,8月28日23圖8-6TCP報文段格式TCP首部20字節(jié)的固定首部目的端口數(shù)據(jù)偏移檢驗和選項(長度可變)源端口序號緊急指針窗口確認(rèn)號保留FIN32bitSYNRSTPSHACKURG比特08162431填充TCP數(shù)據(jù)部分TCP首部TCP報文段第二十四頁,共四十三頁,2022年,8月28日24TCP報文段首部字段源端口和目的端口字段:各占2字節(jié)。端口是運輸層與應(yīng)用層的服務(wù)接口。運輸層的復(fù)用和分用功能都要通過端口才能實現(xiàn)。序號字段:占4字節(jié)。TCP連接中傳送的數(shù)據(jù)流中的每一個字節(jié)都編上一個序號。序號字段的值則指的是本報文段所發(fā)送的數(shù)據(jù)的第一個字節(jié)的序號。確認(rèn)號字段:占4字節(jié),是期望收到對方的下一個報文段的數(shù)據(jù)的第一個字節(jié)的序號。數(shù)據(jù)偏移:占4bit,它指出TCP報文段的數(shù)據(jù)起始處距離TCP報文段的起始處有多遠(yuǎn)?!皵?shù)據(jù)偏移”的單位不是字節(jié)而是32bit字(4字節(jié)為計算單位)。第二十五頁,共四十三頁,2022年,8月28日25TCP報文段首部字段保留字段:占6bit,保留為今后使用,但目前應(yīng)置為0。緊急比特URG:當(dāng)URG1時,表明緊急指針字段有效。它告訴系統(tǒng)此報文段中有緊急數(shù)據(jù),應(yīng)盡快傳送(相當(dāng)于高優(yōu)先級的數(shù)據(jù))。確認(rèn)比特ACK:只有當(dāng)ACK1時確認(rèn)號字段才有效。當(dāng)ACK0時,確認(rèn)號無效。推送比特PSH(PuSH):接收TCP收到推送比特置1的報文段,就盡快地交付給接收應(yīng)用進(jìn)程,而不再等到整個緩存都填滿了后再向上交付。第二十六頁,共四十三頁,2022年,8月28日26TCP報文段首部字段復(fù)位比特RST(ReSeT):當(dāng)RST1時,表明TCP連接中出現(xiàn)嚴(yán)重差錯(如由于主機崩潰或其他原因),必須釋放連接,然后再重新建立運輸連接。同步比特SYN:同步比特SYN置為1,就表示這是一個連接請求或連接接受報文。終止比特FIN(FINal):用來釋放一個連接。當(dāng)FIN1時,表明此報文段的發(fā)送端的數(shù)據(jù)已發(fā)送完畢,并要求釋放運輸連接。窗口字段:占2字節(jié)。窗口字段用來控制對方發(fā)送的數(shù)據(jù)量,單位為字節(jié)。TCP連接的一端根據(jù)設(shè)置的緩存空間大小確定自己的接收窗口大小,然后通知對方以確定對方的發(fā)送窗口的上限。第二十七頁,共四十三頁,2022年,8月28日27TCP報文段首部字段檢驗和:占2字節(jié)。檢驗和字段檢驗的范圍包括首部和數(shù)據(jù)這兩部分。在計算檢驗和時,要在TCP報文段的前面加上12字節(jié)的偽首部。緊急指針字段:占16bit。緊急指針指出:在本報文段中緊急數(shù)據(jù)共有多少個字節(jié)(緊急數(shù)據(jù)放在本報文段數(shù)據(jù)的最前面)。選項字段:長度可變。TCP只規(guī)定了一種選項,即最大報文段長度MSS(MaximumSegmentSize)。MSS告訴對方TCP:“我的緩存所能接收的報文段的數(shù)據(jù)字段的最大長度是MSS個字節(jié)?!?/p>

填充字段:這是為了使整個首部長度是4字節(jié)的整數(shù)倍。第二十八頁,共四十三頁,2022年,8月28日288.3.3TCP的可靠性TCP是一種可靠的傳輸協(xié)議。其可靠性體現(xiàn)在它可保證數(shù)據(jù)按序、無丟失、無重復(fù)的到達(dá)目的端。TCP報文段首部的數(shù)據(jù)編號與確認(rèn)字段為這種可靠傳輸提供了保障。TCP將所要傳送的整個報文看成一個個字節(jié)組成的數(shù)據(jù)流,并使每一個字節(jié)對應(yīng)于一個序號。在連接建立時,雙方要商定初始序號。TCP每次發(fā)送的報文段的首部中的序號字段數(shù)值表示該報文段中的數(shù)據(jù)部分的第一個字節(jié)的序號。第二十九頁,共四十三頁,2022年,8月28日29序號的作用接收站點在收到發(fā)送方發(fā)來的數(shù)據(jù)后依據(jù)序號重新組裝所收到的報文段。在一個高速鏈路與低速鏈路并存的網(wǎng)絡(luò)上,可能會出現(xiàn)高速鏈路上的報文段比低速鏈路上的報文段提前到達(dá)的情況,此時就必須依靠序列號來重組報文段,以保證數(shù)據(jù)可以按序上交應(yīng)用進(jìn)程。TCP的確認(rèn)是對接收到的數(shù)據(jù)的最高序號(即收到的數(shù)據(jù)中的最后一個序號)進(jìn)行確認(rèn)。但返回的確認(rèn)序號ACK是已收到的數(shù)據(jù)的最高序號再加1,該確認(rèn)號既表示對已收數(shù)據(jù)的確認(rèn),同時表示期望下次收到的第一個數(shù)據(jù)字節(jié)的序號。第三十頁,共四十三頁,2022年,8月28日30圖8-7顯示了TCP報文段傳輸時SEQ和ACK所扮演的角色。第三十一頁,共四十三頁,2022年,8月28日31超時和重傳在實際通信中,存在著超時和重傳兩種現(xiàn)象。如果在傳輸過程中丟失了某個序號的報文段,導(dǎo)致發(fā)送端在給定的時間段內(nèi)得不到相應(yīng)的確認(rèn)序號,那么就確認(rèn)該報文段已被丟失并要求重傳。已發(fā)送的TCP報文段會被保存在發(fā)送端的緩沖區(qū)中,直到發(fā)送端接收到確認(rèn)序號才會消除緩沖區(qū)中的這個報文段。這種機制稱為肯定確認(rèn)和重新傳輸(PositiveAcknowledgementandRetransmission,PAR),它是許多通信協(xié)議用來確??尚哦鹊囊环N技術(shù),工作過程如圖8-8所示。第三十二頁,共四十三頁,2022年,8月28日32圖8-8超時和重傳過程中序號與確認(rèn)號的作用第三十三頁,共四十三頁,2022年,8月28日33序號的作用序號的另一個作用是消除網(wǎng)絡(luò)中的重復(fù)包(同步復(fù)制)。例如在網(wǎng)絡(luò)阻塞時,發(fā)送端遲遲沒有收到接收端發(fā)來的對于某個報文段的ACK信息,它可能會認(rèn)為這個序號的報文段丟失了。于是它會重新發(fā)送這一報文段,這種情況將會導(dǎo)致接收端在網(wǎng)絡(luò)恢復(fù)正常后收到兩個同樣序號的報文段,此時接收端會自動丟棄重復(fù)的報文段。序號和確認(rèn)號為TCP提供了一種糾錯機制,提高了TCP的可靠性。第三十四頁,共四十三頁,2022年,8月28日348.3.4TCP連接管理TCP是面向連接的協(xié)議。面向連接的協(xié)議在源端和目的端之間建立一條虛路徑。屬于一個報文的所有報文段都沿著這條虛路徑發(fā)送。在TCP通信中,整個過程分為三個階段:連接建立、數(shù)據(jù)傳送和連接釋放。第三十五頁,共四十三頁,2022年,8月28日351.建立連接TCP以全雙工方式傳送數(shù)據(jù)。當(dāng)兩個機器中的兩個TCP進(jìn)程建立連接后,它們應(yīng)當(dāng)都能夠同時向?qū)Ψ桨l(fā)送報文段。主動發(fā)起連接建立的應(yīng)用進(jìn)程叫做客戶方,而被動等待連接建立的應(yīng)用進(jìn)程叫做服務(wù)器方。在連接建立過程中要解決以下三個問題: (1)要使每一方能夠確知對方的存在。 (2)要允許雙方協(xié)商一些參數(shù)(如最大報文段長度,最大窗口大小,服務(wù)質(zhì)量等)。 (3)能夠?qū)\輸實體資源(如緩存大小,連接表中的項目等)進(jìn)行分配。第三十六頁,共四十三頁,2022年,8月28日36用三次握手建立TCP連接SYN,SEQ=x主機BSYN,ACK,SEQ=y,ACK=x1ACK,SEQ=x+1,ACK=y1被動打開主動打開確認(rèn)確認(rèn)主機A連接請求第三十七頁,共四十三頁,2022年,8月28日372.釋放連接傳輸數(shù)據(jù)的雙方中的任何一方都可以關(guān)閉連接。當(dāng)一個方向的連接被終止時,另外一方還可繼續(xù)向?qū)Ψ桨l(fā)送數(shù)據(jù)。因此,要在兩個方向都關(guān)閉連接就需要四個動作,被釋放連接的過程被稱為四向握手。第三十八頁,共四十三頁,2022年,8月28日38TCP連接釋放的過程FIN,SEQ=xACK,SEQ=y,ACK=x1ACK,SEQ=x+1,ACK=y1應(yīng)用進(jìn)程釋放連接A不再發(fā)送報文FIN,ACK,SEQ=y,ACK=x

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論