第6章 傳輸層.ppt_第1頁
第6章 傳輸層.ppt_第2頁
第6章 傳輸層.ppt_第3頁
第6章 傳輸層.ppt_第4頁
第6章 傳輸層.ppt_第5頁
已閱讀5頁,還剩73頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第6章 傳輸層,傳輸服務(wù) 傳輸協(xié)議 Internet傳輸協(xié)議,傳輸層的基本功能,傳輸層依據(jù)會話層的服務(wù)質(zhì)量(QoS, Quality of Service)要求,選擇適當(dāng)?shù)木W(wǎng)絡(luò)層服務(wù)和傳輸層協(xié)議,以提供可靠的、價格合理的、與網(wǎng)絡(luò)層無關(guān)的數(shù)據(jù)傳送。QoS相當(dāng)于在貨物傳輸?shù)睦又兴紤]的時間、可靠性、費用等。選擇網(wǎng)絡(luò)服務(wù)相當(dāng)于在貨物運輸?shù)睦又羞x擇運輸方式,比如:空運、鐵路等。傳輸層協(xié)議相當(dāng)于郵寄信件時是使用平信,還是掛號信,等等。 傳輸層的功能為:數(shù)據(jù)傳送,不關(guān)心數(shù)據(jù)含義,進程間通信;可視為低層的一部分。彌補高層(上3層)要求與網(wǎng)絡(luò)層(基于下3層)數(shù)據(jù)傳送服務(wù)質(zhì)量間的差異(差錯率、差錯恢復(fù)能力、

2、吞吐率、延時、費用等),對高層屏蔽網(wǎng)絡(luò)層的服務(wù)的差異,提供穩(wěn)定和一致的界面。,傳輸服務(wù)(1),引入傳輸層的原因 消除網(wǎng)絡(luò)層的不可靠性; 提供從源端主機到目的端主機的可靠的、與實際使用的網(wǎng)絡(luò)無關(guān)的信息傳輸。 傳輸服務(wù) 傳輸實體(transport entity):完成傳輸層功能的硬軟件; 傳輸層實體利用網(wǎng)絡(luò)層提供的服務(wù)向高層提供有效、可靠的服務(wù); Fig. 6-1 傳輸層提供兩種服務(wù) 面向連接的傳輸服務(wù):連接建立,數(shù)據(jù)傳輸,連接釋放 無連接的傳輸服務(wù)。 1 4層稱為傳輸服務(wù)提供者(transport service provider),4層以上稱為傳輸服務(wù)用戶(transport service

3、 user)。,服務(wù)質(zhì)量,建立連接延遲 建立連接失敗的概率 吞吐率 傳輸延遲 殘余誤碼率 安全保護 優(yōu)先級 恢復(fù)功能,傳輸服務(wù)(2),傳輸服務(wù)原語(Transport Service Primitives) 傳輸用戶(應(yīng)用程序)通過傳輸服務(wù)原語訪問傳輸服務(wù) 一個簡單傳輸服務(wù)的原語 TPDU,傳輸服務(wù)(3),拆除連接方式有兩種 不對稱方式:任何一方都可以關(guān)閉雙向連接; 對稱方式:每個方向的連接單獨關(guān)閉,雙方都執(zhí)行DISCONNECT才能關(guān)閉整條連接。 簡單連接管理狀態(tài)圖,傳輸服務(wù)(4),Berkeley Sockets 連接釋放是對稱的,傳輸服務(wù)(5),應(yīng)用舉例 一個服務(wù)程序和幾個遠程客戶程序利

4、用面向連接的傳輸層服務(wù)完成通信。 建立連接 服務(wù)程序 調(diào)用socket創(chuàng)建一個新的套接字,并在傳輸層實體中分配表空間,返回一個文件描述符用于以后調(diào)用中使用該套接字; 調(diào)用bind將一個地址賦予該套接字,使得遠程客戶程序能訪問該服務(wù)程序; 調(diào)用listen分配數(shù)據(jù)空間,以便存儲多個用戶的連接建立請求;,傳輸服務(wù)(6),調(diào)用accept將服務(wù)程序阻塞起來,等待接收客戶程序發(fā)來的連接請求。當(dāng)傳輸層實體接收到建立連接的TPDU時,新創(chuàng)建一個和原來的套接字相同屬性的套接字并返回其文件描述符。服務(wù)程序創(chuàng)建一個子進程處理此次連接,然后繼續(xù)等待發(fā)往原來套接字的連接請求。 客戶程序 調(diào)用socket創(chuàng)建一個新的

5、套接字,并在傳輸層實體中分配表空間,返回一個文件描述符用于在以后的調(diào)用中使用該套接字; 調(diào)用connect阻塞客戶程序,傳輸層實體開始建立連接,當(dāng)連接建立完成時,取消阻塞; 數(shù)據(jù)傳輸 雙方使用send和receive完成數(shù)據(jù)的全雙工發(fā)送。 釋放連接 每一方使用close原語單獨釋放連接。,傳輸協(xié)議的要素,傳輸層和數(shù)據(jù)鏈路層的異同 尋址 建立連接 子網(wǎng)的存儲能力 數(shù)量的不同,數(shù)據(jù)鏈路層,傳輸層,傳輸協(xié)議的要素(1),尋址(Addressing) 方法:定義傳輸服務(wù)訪問點TSAP(Transport Service Access Point),將應(yīng)用進程與這些TSAP相連。在Internet中,T

6、SAP為(IP address, local port); Fig. 6-8 遠方客戶程序如何獲得服務(wù)程序的TSAP? 方法1:預(yù)先約定、廣為人知的,象telnet是(IP地址,端口23); 方法2:從名字服務(wù)器(name server)或目錄服務(wù)器(directory server)獲得TSAP 一個特殊的進程稱為名字服務(wù)器或目錄服務(wù)器(TSAP眾所周知); 用戶與名字服務(wù)器建立連接,發(fā)送服務(wù)名稱,獲得服務(wù)進程的TSAP,釋放與名稱服務(wù)器的連接; 與服務(wù)進程建立連接。,傳輸協(xié)議的要素,當(dāng)服務(wù)程序很多時,使用初始連接協(xié)議(initial connection protocol) 一個稱為進程服

7、務(wù)器(process server)的進程(inetd)同時在多個端口上監(jiān)聽; 遠方客戶程序向它實際想訪問的服務(wù)程序的TSAP發(fā)出連接建立請求; 如果沒有服務(wù)程序在此TSAP上監(jiān)聽,則遠方客戶和進程服務(wù)器建立連接; 進程服務(wù)器產(chǎn)生所請求的服務(wù)進程,并使該進程繼承和遠程客戶的連接; 進程服務(wù)器返回繼續(xù)監(jiān)聽; 遠方客戶程序與所希望的服務(wù)程序進行數(shù)據(jù)傳輸。 Fig. 6-9,TSAP的地址結(jié)構(gòu),現(xiàn)在我們假定用戶已經(jīng)成功地找到欲建立連接的TSAP地址。另一個有趣的問題是:本地傳輸實體如何知道那個TSAP被放置在哪臺機器上?進一步說,傳輸實體怎么知道哪個網(wǎng)絡(luò)層地址用來與管理TSAP請求的遠程傳輸實體建立

8、網(wǎng)絡(luò)連接呢?答案依賴于TSAP地址的結(jié)構(gòu)。 一種可能的結(jié)構(gòu)是TSAP地址為層次型地址(hierarchial addresses)。層次型地址是由-系列字段組成,這些字段將地址空間劃分為不相交的分區(qū)。例如,一個完全通用的TSAP地址可能有如下的結(jié)構(gòu):地址 = 使用這一方案,可以十分簡單明了地確定任何已知范圍內(nèi)的TSAP。同理,如果一個TSAP地址是一個NSAP地址和一個端口(表明本地TSAP之一的局部標(biāo)識符)的組合,那么當(dāng)給出了一個傳輸實體要連接的TSAP地址時,它使用TSAP中包含的NSAP地址以到達適當(dāng)?shù)倪h端傳輸實體。作為層次型地址的一個簡單例子,考察電話號碼19076543210。該號碼

9、可以按1-907-654-3210來分析。其中,1為國家代碼(美國+加拿大),907為地區(qū)代碼(阿拉斯加),654為阿拉斯加的一個分局,而3210則是該分局中的“端口”(用戶專用線)之一。 有別于層次型地址空間的一種選擇是平面型地址空間(flat address space)。如果TSAP地址為非層次型,則需要二級映射來定位合適的機器。即必須有一個名字服務(wù)器,其輸入為傳輸?shù)刂?,輸出為網(wǎng)絡(luò)地址。另外,在某些情況下(例如,在局域網(wǎng)中),有可能以廣播方式發(fā)出一個查詢,請目的機器發(fā)送一個分組來標(biāo)識自己。,傳輸協(xié)議的要素(2),建立連接建立連接聽起來容易,但實際上卻是意想不到的棘手。初看起來,一個傳輸實

10、體似乎只需向目的機器發(fā)送一個連接請求(CONNECTION REQUEST)TPDU,并等待對方接受連接(CONNECTION ACCEPTED)的應(yīng)答就足夠了,但當(dāng)網(wǎng)絡(luò)可能丟失、存儲和出現(xiàn)重復(fù)分組時,問題便出現(xiàn)了。 設(shè)想一個子網(wǎng)十分擁塞以至于根本不能及時返回確認,每個分組由于在規(guī)定時限內(nèi)得不到確認而需要重發(fā)二次或三次的情形。假設(shè)該子網(wǎng)內(nèi)部使用數(shù)據(jù)報,并且每個分組擁有不同的路由。一些分組可能會因為子網(wǎng)內(nèi)部的線路擁塞需要很長一段時間才能到達,即它們被存儲到子網(wǎng)中,并在很久以后突然出現(xiàn)。最壞的可能性是發(fā)生下面的情況。一個用戶與銀行之間建立了一條連接,并發(fā)送報文讓銀行將一筆巨款轉(zhuǎn)至一個不能完全信任的

11、人的賬戶下,然后便釋放連接。不幸的是,此時每個分組均被復(fù)制并存放于子網(wǎng)中。當(dāng)連接已經(jīng)斷開后。所有的復(fù)制分組又會從子網(wǎng)中發(fā)出并順序到達目的瑞,請求與銀行建立一個新的連接并再次轉(zhuǎn)賬,然后釋放連接。而銀行則無法辨別這些分組是重復(fù)的,便假定這是第二次獨立的轉(zhuǎn)賬業(yè)務(wù)。于是將巨款再次轉(zhuǎn)移。本節(jié)將專門討論延遲的重復(fù)分組問題,特別重點討論可靠地建立連接的算法,以防止類似于上述災(zāi)難性問題的發(fā)生。,建立可靠的連接:限制分組的生命周期,采用下述的技術(shù)之一,可以將分組的生命周期限制在一個已知的最大值內(nèi):1.受限制的子網(wǎng)設(shè)計;2.在每個分組內(nèi)設(shè)置一個生存時間;3.為每個分組加上時間戳。 第一種方法包括防止分組進入回路,

12、以及限制延時不超過(當(dāng)前已知的)可能最長的路徑時延。 第二種方法是在每次轉(zhuǎn)發(fā)分組時使生存時間加1。數(shù)據(jù)鏈路層協(xié)議將丟棄那些生存時間值超過某個特定值的分組。 第三種方法要求每個分組均包含生成時間,由路由器負責(zé)丟棄超過預(yù)定時間的舊分組。第三種方法要求路由器的時鐘同步,而同步本身就是一項繁重的任務(wù),除非同步信號來自子網(wǎng)絡(luò)外部,如通過收聽定期廣播準(zhǔn)確時間的無線電臺。 在實際應(yīng)用中,我們不僅需要保證一個分組已經(jīng)無效,而且要保證對該分組的所有確認均告失效,因此,我們現(xiàn)在引進T的概念,它表示實際最長的生命期的某個不太大的倍數(shù)。該倍數(shù)與所用的協(xié)議無關(guān),只是對延長T有影響。如果在一個分組發(fā)出后等待了時間T,我們

13、便可以確定有關(guān)該分組的一切現(xiàn)在已告失效,該分組及其確認將不會再次突然出現(xiàn)而使問題復(fù)雜化。,為了解決系統(tǒng)崩潰后機器會丟失全部存儲信息的問題。Tomlinson建議為每臺主機增設(shè)一個計時(time-of-day)時鐘。不同主機的時鐘不需同步。假定每個時鐘都采用二進制計數(shù)器形式,在統(tǒng)一的時間間隔內(nèi)累加計數(shù)。而且,計數(shù)器內(nèi)的位數(shù)必須等于或大于序列號內(nèi)的位數(shù)。最后,也是更重要的,是假定時鐘一直在運轉(zhuǎn),即使主機停機亦如此。 基本思想是確保在同一時刻永遠不會出現(xiàn)兩個編號相同的TPDU。當(dāng)一個連接建立后,時鐘的低k位作為初始序號(也是k位)。這樣便不同于數(shù)據(jù)鏈路層所介紹的協(xié)議,每個連接均以不同的序號開始對其T

14、PDU進行編號,序號空間應(yīng)該很大,以便當(dāng)序號再次(循環(huán)了一周)出現(xiàn)時,具有相同序號的舊的TPDU早已傳送完畢。時間和初始序號之間的線性關(guān)系如圖所示。 一旦建立連接的兩個傳輸實體接受了初始序號,便可以使用任何滑動窗口協(xié)議來實現(xiàn)數(shù)據(jù)流量控制。,建立可靠的連接:分組的編號,傳輸協(xié)議的要素(2),建立連接 網(wǎng)絡(luò)可能丟失、重復(fù)包,特別是延遲重復(fù)包(delayed duplicates)的存在,導(dǎo)致傳輸層建立連接的復(fù)雜性; 解決延遲重復(fù)包的關(guān)鍵是丟棄過時的包; 兩次握手方案 A發(fā)出連接請求CR TPDU,B發(fā)回連接確認CC TPDU; 失敗的原因:網(wǎng)絡(luò)層會丟失、存儲和重復(fù)包。 三次握手方案(three-w

15、ay handshake) A 發(fā)出序號為X的CR TPDU; B 發(fā)出序號為Y的CC TPDU并確認A的序號為X的CR TPDU;,傳輸協(xié)議的要素,A 發(fā)出序號為X+1的第一個數(shù)據(jù)TPDU,并確認B的序號為Y的CR TPDU。 Fig. 6-11 (DATA序號應(yīng)為X+1) 三次握手方案解決了由于網(wǎng)絡(luò)層會丟失、存儲和重復(fù)包帶來的問題。,傳輸協(xié)議的要素,釋放連接 兩種連接釋放方法 非對稱式:一方釋放連接,整個連接斷開,存在丟失數(shù)據(jù)的危險;,傳輸協(xié)議的要素,對稱式:由于兩軍問題(two-army problem)的存在,可以證明不存在安全的通過N次握手實現(xiàn)對稱式連接釋放的方法; 但是在實際的通信

16、過程中,使用三次握手 + 定時器的方法釋放連接在絕大多數(shù)情況下是成功的。 Fig. 6-14,傳輸協(xié)議的要素,流控和緩存(Flow Control and Buffering) 緩存:由于網(wǎng)絡(luò)層服務(wù)是不可靠的,傳輸層實體必須緩存所有連接發(fā)出的TPDU,而且為每個連接單獨做緩存,以便用于錯誤情況下的重傳。接收方的傳輸層實體既可以做也可以不做緩存。緩存區(qū)的設(shè)計有三種。 Fig. 6-15 流控:傳輸層利用可變滑動窗口協(xié)議來實現(xiàn)流控。所謂可變滑動窗口協(xié)議,是指發(fā)送方的發(fā)送窗口大小是由接收方根據(jù)自己的實際緩存情況給出的。為了避免控制TPDU丟失導(dǎo)致死鎖,主機應(yīng)該周期性的發(fā)送TPDU。 Fig. 6-1

17、6,多路復(fù)用,在連接、虛電路及物理鏈路上,多路復(fù)用幾組對話的方法在網(wǎng)絡(luò)結(jié)構(gòu)的許多層上都有一定的作用。在傳輸層中對多路復(fù)用技術(shù)的需要表現(xiàn)在很多方面。例如,子網(wǎng)內(nèi)部使用虛電路的網(wǎng)絡(luò)中,每個接通的連接在連接的整個階段均需占據(jù)路由器中的-些表空間。如果緩沖區(qū)是被分配給每個路由器中的虛電路的,那么登錄到遠端機器上的用戶離開終端去喝咖啡期間,他仍然在耗費著昂貴的資源。盡管這種分組交換的實現(xiàn)與使用分組交換的主要原因之一用戶只根據(jù)傳輸?shù)臄?shù)據(jù)量而不是根據(jù)連接時間付費相抵觸,但很多通信公司還是選擇了按時間收費的方法,因為它非常類似于他們在過去的幾十年中巳經(jīng)習(xí)慣了的電路交換模型。 在這種價格結(jié)構(gòu)下,長時間保持虛電路

18、的接通十分不利,于是使不同的傳輸連接復(fù)用到同一網(wǎng)絡(luò)連接上的技術(shù)便很有吸引力。這種形式的多路復(fù)用稱為向上多路復(fù)用(upward multiplexing),如圖所示。圖中,4個不同的傳輸連接都使用同-網(wǎng)絡(luò)連接與遠端主機相連。,向上多路復(fù)用,使多路復(fù)用在傳輸層中也可能有用,一種可能的解決方案是讓傳輸層接通多個網(wǎng)絡(luò)連接,以循環(huán)輪轉(zhuǎn)的策略在這些連接上分配傳輸信息,如圖所示。這種方法的操作稱為向下多路復(fù)用(downward multiplexing)。,向下多路復(fù)用,崩潰恢復(fù),如果主機和路由器易崩潰,那么就存在著從崩潰恢復(fù)的問題 。 對于網(wǎng)絡(luò)崩潰,如果傳輸實體完全在主機內(nèi)部,那么從網(wǎng)絡(luò)和路由器崩潰中恢復(fù)

19、是直截了當(dāng)?shù)?。如果網(wǎng)絡(luò)層提供數(shù)據(jù)報服務(wù),傳輸實體對丟失的TPDU留有副本,就會知道如何解決恢復(fù)問題。如果網(wǎng)絡(luò)層提供的是面向連接的服務(wù),那么處理虛電路突然中斷的方法是建立一條新的虛電路,接著探查遠端機的傳輸實體,看它已經(jīng)收到了哪些TPDU以及哪些還未收到,后者可以重發(fā)。,一個較復(fù)雜的問題是如何從主機崩潰中進行恢復(fù) ,尤其是當(dāng)服務(wù)器崩潰并很快重新啟動后,客戶端希望能夠繼續(xù)進行崩潰前的操作。 為了能恢復(fù)崩潰前的狀態(tài),服務(wù)器可以以廣播方式向所有其他的主機發(fā)送一個TPDU,說明自己剛才發(fā)生崩潰并要求其客戶主機通知所有接通的連接所處的狀態(tài)。每個客戶主機可能處于兩種狀態(tài)之一:有一個未被確認的TPDU-S1狀

20、態(tài),或沒有未被確認的TPDU-S0狀態(tài)。根據(jù)這種狀態(tài)信息,客戶主機必須決定是否要重發(fā)最近的TPDU。 這種簡單的方法存在的困難。例如,考慮下面這種情況,遠端服務(wù)器的傳輸實體只發(fā)送一個確認,當(dāng)確認發(fā)生后,又對應(yīng)用進程執(zhí)行-個寫操作。向輸出流寫一個TPDU和發(fā)送一個確認是兩個不同而又不可分的事件,二者不能同時進行。如果在確認發(fā)出后而在寫操作執(zhí)行前崩潰發(fā)生了,此時客戶端將收到這個確認。當(dāng)崩潰恢復(fù)聲明到達時它處于狀態(tài)S0??蛻舳藢⒁虼瞬辉僦匕l(fā),因為它錯以為那個TPDU已經(jīng)到達服務(wù)器端。客戶端的這種決定會導(dǎo)致丟失一個TPDU。,崩潰恢復(fù),崩潰恢復(fù),進一步完善協(xié)議也于事無補。即使客戶端和服務(wù)器端在服務(wù)器準(zhǔn)

21、備進行寫操作前已經(jīng)交換了幾個TPDU,以便客戶端能確切知道將要發(fā)生什么,但客戶端還是無法確定崩潰是在寫操作前還是寫操作之后發(fā)生。因此我們得出如下結(jié)論:基于對非同時事件所制訂的基本規(guī)則,無法使主機崩潰和恢復(fù)做到對于高層透明。 使用更一般的術(shù)語,這一結(jié)果可以重新敘述為:從第N層崩潰中恢復(fù)只能由第N+1層來完成,并且只有在第N+1層保留有足夠的狀態(tài)信息的情況下才能完成。正如上面提到的,如果連接的兩端均保持了當(dāng)前的狀態(tài)信息,傳輸層可以從網(wǎng)絡(luò)層的錯誤中進行恢復(fù)。,崩潰恢復(fù),確認 (A) 將數(shù)據(jù)寫入輸出進程(W) 崩潰(C),傳輸層協(xié)議,傳輸層協(xié)議是依據(jù)網(wǎng)絡(luò)層提供的服務(wù)質(zhì)量來分類的。經(jīng)過多年的研究與討論,

22、ISO于1984年通過了OSI傳輸協(xié)議的標(biāo)準(zhǔn)。這就是ISO8072和ISO 8073。CCITT參與了這一標(biāo)準(zhǔn)的制訂,并通過了相應(yīng)的X.214和X.224建議書。歐洲計算機廠家協(xié)會ECMA,美國國家標(biāo)準(zhǔn)學(xué)會ANSI以及美國國家標(biāo)準(zhǔn)局NBS等也都積極參與了傳輸層協(xié)議標(biāo)準(zhǔn)的制訂。NBS已于1988年底改名為國家標(biāo)準(zhǔn)與技術(shù)研究院NIST。 網(wǎng)絡(luò)服務(wù) 網(wǎng)絡(luò)服務(wù)分類:A類網(wǎng)絡(luò)服務(wù)B類網(wǎng)絡(luò)服務(wù)C類網(wǎng)絡(luò)服務(wù),A類網(wǎng)絡(luò)服務(wù):可接受的殘留差錯率、可接受的可報告差錯率;A型網(wǎng)絡(luò)服務(wù)是一個完善的、理想的、可靠的網(wǎng)絡(luò)服務(wù)。分組在網(wǎng)絡(luò)中傳送時不會丟失也不會失序(失序指分組到達的順序與發(fā)送的順序不一致),這樣,傳輸層就不

23、需要故障恢復(fù)的服務(wù)和重新排序的服務(wù)等等,因而傳輸層就非常簡單。 B類網(wǎng)絡(luò)服務(wù):可接受的殘留差錯率、不可接受的可報告差錯率;需要傳輸實體進行差錯恢復(fù)。 C類網(wǎng)絡(luò)服務(wù):不可接受的殘留差錯率、不可接受的可報告差錯率; C型網(wǎng)絡(luò)服務(wù)的質(zhì)量最差。對于這類網(wǎng)絡(luò),傳輸協(xié)議應(yīng)能檢測出網(wǎng)絡(luò)的差錯,同時要有差錯恢復(fù)能力。對失序、重復(fù)以及錯誤投遞的數(shù)據(jù)分組,也應(yīng)能檢測出并進行改正。某些局域網(wǎng)和一些具有移動結(jié)點的城域網(wǎng)以及具有衰落信道的分組無線電網(wǎng)都局于C型網(wǎng)絡(luò)。,傳輸協(xié)議類,為了能夠在各種不同網(wǎng)絡(luò)上進行不同類型的數(shù)據(jù)的傳送,ISO定義了5類(class)傳輸協(xié)議,即第0類至第4類的傳輸協(xié)議。這5類傳輸協(xié)議都是面向連

24、接的。也就是說,用戶要進行通信,必須先建立傳輸連接。當(dāng)然,這必然要用到網(wǎng)絡(luò)層提供的服務(wù),或者說,要建立網(wǎng)絡(luò)連接。同理,在建立網(wǎng)絡(luò)連接時,又需要建立各有關(guān)鏈路的連接。當(dāng)數(shù)據(jù)傳送結(jié)束后,則必須釋放傳輸連接。,針對網(wǎng)絡(luò)服務(wù)質(zhì)量的差異,傳輸層定義了5個傳輸協(xié)議類,提供不同的功能。網(wǎng)絡(luò)層服務(wù)質(zhì)量降低時,對傳輸協(xié)議的要求就提高,以向傳輸層用戶提供一種比較穩(wěn)定的服務(wù)界面。,第0類傳輸協(xié)議是最簡單的,它只具有一些最起碼的功能。第0類傳輸協(xié)議和CCITT的T.70建議書相兼容。T.70是為智能用戶電報(teletex)終端提供傳輸服務(wù)的建議書。第0類傳輸協(xié)議的功能就是建立一個簡單的端到端的傳輸連接,而在數(shù)據(jù)傳送

25、階段具有將長數(shù)據(jù)報文分段傳送的功能(當(dāng)有此需要時)。它沒有差錯恢復(fù)功能,也不將多條傳輸連接復(fù)用到一條網(wǎng)絡(luò)連接上。第0類傳輸協(xié)議是面向A型網(wǎng)絡(luò)服務(wù)的。第1類傳輸協(xié)議較簡單,但增加了基本差錯恢復(fù)功能。利用網(wǎng)絡(luò)層的連接拆除或復(fù)位進行差錯恢復(fù)。這里的基本差錯是指出現(xiàn)網(wǎng)絡(luò)連接斷開或網(wǎng)絡(luò)連接失敗,或者收到了一個未被認可的傳輸連接的數(shù)據(jù)單元。當(dāng)網(wǎng)絡(luò)連接斷開時,傳輸層就試圖建立另一條網(wǎng)絡(luò)連接。第1類傳輸協(xié)議面向B型網(wǎng)絡(luò)服務(wù)。第3類傳輸協(xié)議面向B型網(wǎng)絡(luò)服務(wù),它包含了第1類相第2類傳輸協(xié)議的功能,既有差錯恢復(fù)功能又有復(fù)用功能。第4類傳輸協(xié)議是最復(fù)雜的,它可以在網(wǎng)絡(luò)的質(zhì)量較差時保證高可靠性的數(shù)據(jù)傳送。它面向C型網(wǎng)絡(luò)

26、服務(wù)。第4類傳輸協(xié)議具有差錯檢測、差錯恢復(fù)以及復(fù)用等功能。,Internet傳輸協(xié)議,傳輸控制協(xié)議TCP(Transmission Control Protocol) 面向連接的、可靠的、端到端的、基于字節(jié)流的傳輸協(xié)議; RFC 793,1122,1323,2018,2581等。 用戶數(shù)據(jù)協(xié)議UDP(User Data Protocol) 無連接的端到端傳輸協(xié)議; RFC 768。,TCP與UDP協(xié)議,TCP與UDP協(xié)議的基本概念 端口和套接字接口 TCP協(xié)議 UDP協(xié)議,TCP與UDP協(xié)議的基本概念,TCP和UDP是TCP/IP協(xié)議簇中的傳輸層, 處于IP協(xié)議與應(yīng)用層協(xié)議之間,分別提供面向連

27、接和無連接的傳輸服務(wù)。TCP和UDP實現(xiàn)了端到端的通信,只駐留在通信子網(wǎng)外面的主機中。 TCP彌補了IP協(xié)議不可靠的特性,向應(yīng)用層提供可靠的面向連接的服務(wù),實現(xiàn)了通信進程的連接與釋放、滑動窗口協(xié)議及擁塞控制等功能。而UDP協(xié)議實現(xiàn)的是簡單的無連接不可靠數(shù)據(jù)報傳輸服務(wù),完成了應(yīng)用進程的識別,不提供流控或擁塞管理機制。,端口和套接字接口,基本概念 端口 端口的基本分配方式 BSD UNIX上的套接字接口原語 通過伯克利套接字接口調(diào)用傳輸服務(wù)完成通信的例子,基本概念,在傳輸層協(xié)議接收到數(shù)據(jù)后,如何區(qū)分?jǐn)?shù)據(jù)到底是發(fā)送給哪一個應(yīng)用程序的呢? 在TCP和UDP協(xié)議中引入了端口(Port)和套接字(Sock

28、et)的概念。 每個端口有一個16位的標(biāo)志符,稱為端口號,標(biāo)識傳輸層協(xié)議和應(yīng)用程序之間的數(shù)據(jù)接口,端口號是由不同的主機上的TCP和UDP協(xié)議獨立分配的,所以不可能全局唯二。 端口號和IP地址合起來,稱為套接字,就可以在全網(wǎng)范圍內(nèi)唯一標(biāo)識一個端口了。在TCP協(xié)議中,一條連接兩端的套接字就可以唯一標(biāo)識該連接了.,端口,端口是一種抽象的軟件結(jié)構(gòu),包括一些數(shù)據(jù)結(jié)構(gòu)和I/O緩沖區(qū)。應(yīng)用程序即進程通過系統(tǒng)調(diào)用與某端口建立連接(binding綁定)后,傳輸層傳給該端口的數(shù)據(jù)都被相應(yīng)的進程所接收,相應(yīng)進程發(fā)給傳輸層的數(shù)據(jù)都從該端口輸出。,端口的基本分配方式,全局分配,這是一種集中分配方式,由一個公認的中央機構(gòu)

29、ICANN(The Internet Corporation for Assigned Names and Numbers)根據(jù)用戶需要進行統(tǒng)一分配,并將結(jié)果公布于眾。 本地分配,又稱動態(tài)連接,即進程需要訪問傳輸層服務(wù)時,向本地操作系統(tǒng)提出申請,操作系統(tǒng)返回本地唯一的端口號,進程再通過合適的系統(tǒng)調(diào)用,將自己和該端口連接起來。,一些已經(jīng)分配的端口,BSD UNIX上的套接字接口原語,通過伯克利套接字接口調(diào)用傳輸服務(wù)完成通信的例子, 建立連接 服務(wù)程序調(diào)用socket創(chuàng)建一個新的套接字,并在傳輸層實體中分配表空間,返回一個文件描述符用于以后調(diào)用中使用該套接字;調(diào)用bind將一個地址賦予該套接字,使

30、得遠程客戶程序能訪問該服務(wù)程序;調(diào)用listen分配數(shù)據(jù)空間,以便存儲多個用戶的連接建立請求; 調(diào)用accept將服務(wù)程序阻塞起來,等待接收客戶程序發(fā)來的連接請求。當(dāng)傳輸層實體接收到建立連接的TPDU時,新創(chuàng)建一個和原來的套接字相同屬性的套接字并返回其文件描述符。服務(wù)程序創(chuàng)建一個子進程處理此次連接,然后繼續(xù)等待發(fā)往原來套接字的連接請求。 客戶程序調(diào)用socket創(chuàng)建一個新的套接字,并在傳輸層實體中分配表空間,返回一個文件描述符用于在以后的調(diào)用中使用該套接字;調(diào)用connect阻塞客戶程序,傳輸層實體開始建立連接,當(dāng)連接建立完成時,取消阻塞;, 數(shù)據(jù)傳輸 雙方使用send和receive完成數(shù)據(jù)

31、的全雙工發(fā)送。 釋放連接 每一方使用close原語單獨釋放連接。,TCP 協(xié)議,TCP的功能概述 TCP段格式 TCP的連接、數(shù)據(jù)段傳輸和釋放管理 TCP定時器管理 TCP的擁塞控制策略,TCP的功能概述,多路復(fù)用數(shù)據(jù)流:TCP利用端口實現(xiàn)了同時接收多個應(yīng)用數(shù)據(jù),跟蹤記錄報文要轉(zhuǎn)發(fā)到的應(yīng)用程序,因此可以完成將多個應(yīng)用的數(shù)據(jù)流的復(fù)用。 實現(xiàn)可靠傳輸:TCP協(xié)議中采用滑動窗口協(xié)議來實現(xiàn)可靠傳輸。TCP頭的校驗和域可以實現(xiàn)對TCP段的校驗,來驗證TCP段的完整性。TCP協(xié)議中采用確認應(yīng)答機制保證數(shù)據(jù)段的可靠傳輸。 流量控制和擁塞控制:TCP使用窗口大小實現(xiàn)傳輸連接上的流量控制。目的主機通過設(shè)置窗口大

32、小來通知發(fā)送主機能夠發(fā)送的數(shù)據(jù)量大小。同時利用重發(fā)定時器實現(xiàn)部分擁塞控制功能。,TCP段格式,TCP段格式中的域(1),源端口和目的端口:各16位,分別表示源主機和目的主機的端口號。 順序號:32位,以字節(jié)為單位對數(shù)據(jù)段編號,表示該數(shù)據(jù)段的第一個字節(jié)的編號。 確認號:32位,標(biāo)識期望下次收到的第一個數(shù)據(jù)字節(jié)的序號 TCP頭長域:4位,表示TCP頭部(包含可選項域)的長度包含多少個32位字。 TCP頭長域后的6位是保留域,為將來定義新的用途保留。,6位的標(biāo)識位:置1時表示有效。 URG: 和緊急指針配合使用,發(fā)送緊急數(shù)據(jù),使一端可以告訴另一端有些具有某種方式的“ 緊急數(shù)據(jù)” 已經(jīng)放置在普通的數(shù)據(jù)

33、流中,由接收方?jīng)Q定如何處理。此時與后面的“緊急指針” 相結(jié)合,該緊急指針被置為一個正的偏移量,表示緊急數(shù)據(jù)的長度,該偏移量必須與 TCP 首部中的序號字段相加,以便得出緊急數(shù)據(jù)的最后一個字節(jié)的序號。即使窗口大小為時也可以發(fā)送緊急數(shù)據(jù)。 ACK:當(dāng)ACK =1時,表示確認號有效。 PSH:當(dāng)PSH=1時,表明請求遠地TCP將本報文段立即傳送給其應(yīng)用層,而不要等到整個緩沖區(qū)都填滿了后再向上交付。 RST:當(dāng)RST=1時,表明出現(xiàn)嚴(yán)重差錯(如由于主機崩潰或其他原因),必須釋放連接,然后再重建傳輸連接。它還可用來拒絕一個非法的數(shù)據(jù)段或拒絕連接請求。 SYN: 用于建立連接;SYN=1,ACK=0,表示

34、連接請求數(shù)據(jù)段,SYN=1,ACK1表示連接響應(yīng)數(shù)據(jù)段 。 FIN: 用于釋放連接。當(dāng)置位時表示發(fā)送方已沒有數(shù)據(jù)發(fā)送了。,TCP段格式中的域(2),窗口大小域: 16位,目的機使用該域告訴源主機,在確認了的字節(jié)后還可以發(fā)送多少個字節(jié)。 校驗和:16位,校驗和域是TCP協(xié)議提供的一種檢錯機制。在計算校驗和時要包括TCP包的頭和數(shù)據(jù)以及一個偽包頭。 緊急指針域:是一個可選的1 6位指針,指向段內(nèi)的最后一個字節(jié)位置,這個域只在URG標(biāo)志設(shè)置了時才有效。 選項域:在TCP頭的固定部分后可以使用選項來進行一些參數(shù)的協(xié)商。,TCP段格式中的域(3),TCP的連接、數(shù)據(jù)段傳輸和釋放管理,TCP連接建立 TC

35、P數(shù)據(jù)段傳輸 TCP連接釋放,TCP連接建立,TCP采用三次握手過程來完成建立連接 TCP A TCP B 1. CLOSED LISTEN 2. SYN-SENT - - SYN-RECEIVED 3. ESTABLISHED - ESTABLISHED 5. ESTABLISHED - - ESTABLISHED,TCP數(shù)據(jù)段傳輸,TCP采用滑動窗口機制完成數(shù)據(jù)段的可靠傳輸。,提高傳輸效率的策略,第一個策略是在發(fā)送方緩存應(yīng)用程序的數(shù)據(jù),等到形成一個比較大的段后再發(fā)出 (Nagle算法 ) 。 第二個策略是采用接收方延遲確認的策略。 第三個策略是使用Clark 算法解決傻窗口癥狀(silly

36、 window syndrome)。,TCP連接釋放,TCP定時器管理,重發(fā)定時器(retransmission timer) 持續(xù)定時器( Persistence timer) ?;疃〞r器(keepalive timer) TCP連接的定時器,重發(fā)定時器,每次傳輸一個數(shù)據(jù)段時,啟動一個數(shù)據(jù)重發(fā)定時器。如果在定時器超時前被確認,則關(guān)閉該定時器,相反,超時重傳數(shù)據(jù)段并重新開始計時。重發(fā)定時器也可以間接地用于管理網(wǎng)絡(luò)擁塞,因為當(dāng)超時出現(xiàn)時可能是由于網(wǎng)絡(luò)擁塞造成的,這時發(fā)送方就減慢傳輸速率,從而減小自身對擁塞的影響。,持續(xù)定時器,持續(xù)定時器用于防止出現(xiàn)以下死鎖情況:如果接收方主機發(fā)生了緩沖上溢情況,

37、就會發(fā)送一個窗口為0的應(yīng)答,通知發(fā)送方等待。發(fā)送主機收到后就會中止發(fā)送,等待接收方窗口為非0的確認,才會重新開始發(fā)送。如果接收方主機發(fā)出的修正窗口分組丟失了,發(fā)送方和接收方都會等待對方的進一步動作,這就出現(xiàn)了死鎖的情況。當(dāng)發(fā)送方收到窗口為0的應(yīng)答時,等待并啟動持續(xù)定時器,當(dāng)持續(xù)定時器超時,發(fā)送方就向接收方發(fā)送一探測數(shù)據(jù)段。接收方應(yīng)答中應(yīng)包含窗口大小。如果窗口仍為0,則重新設(shè)置持續(xù)定時器。如果查詢?nèi)圆荒艿玫酱翱诖笮?,TCP協(xié)議會重新設(shè)置連接。,?;疃〞r器,當(dāng)一個連接長時間閑置時,?;疃〞r器會超時而使一方去檢測另一方是否仍然存在。如果未得到響應(yīng),就終止該連接。,TCP連接的定時器,用于每個TCP連

38、接的定時器是用在斷開連接操作中的TIME WAIT狀態(tài),設(shè)置為分組最長生命期的兩倍,以確保當(dāng)一個連接斷開后,由它創(chuàng)建的分組完全消失。,TCP的擁塞控制策略,基本概念 慢速啟動算法 擁塞避免算法 擁塞窗口大小在慢速啟動和擁塞避免算法作用下的變化情況變化,基本概念,在端到端的連接中,可能導(dǎo)致網(wǎng)絡(luò)擁塞的兩個潛在因素是網(wǎng)絡(luò)能力和接收能力。當(dāng)網(wǎng)絡(luò)快而接收方緩存小時,擁塞發(fā)生在接收方主機處;當(dāng)接收方具有足夠的緩存而網(wǎng)絡(luò)比較慢時,擁塞發(fā)生在網(wǎng)絡(luò)中的某個地方。 TCP協(xié)議實現(xiàn)中發(fā)送方維持了兩個窗口:可變發(fā)送窗口和擁塞窗口,按兩個窗口的最小值進行發(fā)送??勺儼l(fā)送窗口由接收方的緩存能力決定。擁塞窗口依照慢速啟動(s

39、low start)算法和擁塞避免(congestion avoidance)算法變化。,慢速啟動算法,擁塞避免算法,Until (loss event) every w segments ACKed: Congwin+ threshold = Congwin/2 Congwin = 1 perform slowstart,擁塞避免(congestion avoidance)算法 若擁塞窗口大于閾值,從此時開始,擁塞窗口線形增長,一個RTT周期增加一個最大段長,直至發(fā)生丟包超時事件; 當(dāng)超時事件發(fā)生后,閾值設(shè)置為當(dāng)前擁塞窗口大小的一半,擁塞窗口重新設(shè)置為一個最大段長; 執(zhí)行慢啟動算法。,擁塞窗口大小在慢速啟動和擁塞避免算法作用下的變化情況,UDP 協(xié)議,UDP提供無連接服務(wù),不能保證數(shù)據(jù)完整地到達目的地,

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論