《network_v2_chapter6計算機網(wǎng)絡(luò)原理與技術(shù)-華蓓2》由會員分享,可在線閱讀,更多相關(guān)《network_v2_chapter6計算機網(wǎng)絡(luò)原理與技術(shù)-華蓓2(42頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、單擊此處編輯母版標題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,計算機網(wǎng)絡(luò),第六章 傳輸層,主要內(nèi)容,傳輸層編址,建立傳輸連接,釋放傳輸連接,流量控制,因特網(wǎng),的傳輸層,套接字接口,傳輸層的功能,傳輸層要解決的問題:,為運行在不同主機上的應(yīng)用進程提供邏輯通信功能,。,設(shè)置傳輸層的兩個原因:,為端系統(tǒng)上運行的多個進程提供多路復用和解多路復用的功能。,為應(yīng)用進程提供所需的數(shù)據(jù)傳輸服務(wù)。,傳輸層還必須向應(yīng)用程序提供一組易于使用的操作(稱傳輸服務(wù)接口)。,1.,傳輸層編址,為指明將數(shù)據(jù)包交給哪個進程處理,每個進程需要一個標識。,在網(wǎng)絡(luò)環(huán)境中標識進程的方法是為每個進程指定一個傳輸
2、地址,其一般性術(shù)語為傳輸服務(wù)訪問點,TSAP,。,傳輸?shù)刂肥莻鬏攲油ㄐ诺亩它c:,每個,TSAP,上綁定一個應(yīng)用進程,應(yīng)用進程通過各自的,TSAP,調(diào)用傳輸層服務(wù)。,傳輸實體通過本地的,NSAP,調(diào)用網(wǎng)絡(luò)層服務(wù),與遠程的對等傳輸實體通信。,TSAP,、,NSAP,和傳輸實體的關(guān)系,傳輸層地址的獲取,客戶進程如何獲知服務(wù)員進程的,TSAP,?,使用眾所周知地址:適用于常用的標準服務(wù)。,使用進程服務(wù)員,:適用于不常用的服務(wù)。,TSAP,的實現(xiàn):,TSAP,只是一種抽象,具體實現(xiàn)方法取決于不同的系統(tǒng),通??捎梢粋€消息隊列實現(xiàn),。,2.,建立傳輸連接,在一個不可靠的數(shù)據(jù)報網(wǎng)絡(luò)中可靠地建立傳輸連接的關(guān)鍵,
3、是排除無關(guān)的重復包對連接建立過程的干擾。,一些措施:,給每個連接指定連接標識,每個主機記錄已使用過的連接標識;可靠性及擴展性均較差。,給每個數(shù)據(jù)包規(guī)定壽命,在壽命減為,0,時丟棄分組。,引入時間,T,,規(guī)定主機在重啟后至少等待,T,時間再建立連接,確保崩潰前發(fā)送的分組都已消亡。,確保,TPDU,的序號空間不重疊:,采用基于時鐘的算法確定起始序號,控制,T,和數(shù)據(jù)包壽命,確保序號空間不重疊。,采用三次握手過程可靠交換各自的起始序號。,三次握手建立傳輸連接,3.,釋放傳輸連接,兩種釋放連接的方法,不對稱釋放:任何一方釋放連接,連接即被釋放;易造成數(shù)據(jù)丟失及形成半開的連接。,對稱釋放:一條傳輸連接被
4、看成是由兩個方向上的單工連接組成,一方釋放連接只是表示數(shù)據(jù)發(fā)完了,但仍可在另一個方向上接收數(shù)據(jù)。雙方均釋放連接,連接才被釋放。,三次握手釋放傳輸連接,正常釋放:主動方發(fā)出,DR,,,響應(yīng)方收到一次,DR,。,異常:主動方發(fā)出,DR,,,響應(yīng)方從未收到,DR,,,形成半開的連接,。,異常處理:引入不活動定時器和啞,TPDU,。,三次握手釋放傳輸連接,三次握手法釋放連接(續(xù)),4.,流量控制,流量控制,是一種由接收端控制發(fā)送速度的反饋機制,通常采用滑動窗口機制實現(xiàn)。,數(shù)據(jù)鏈路層和傳輸層上的滑動窗口機制:,數(shù)據(jù)鏈路層上的滑動窗口機制采用固定緩沖區(qū)分配策略(緩沖區(qū)大小及數(shù)量都固定),這在傳輸層上做不到
5、。,數(shù)據(jù)鏈路層上發(fā)送端和接收端都必須緩存,而在傳輸層上有多種緩存方案可供選擇。,數(shù)據(jù)鏈路層上的發(fā)送窗口僅由接收端控制,而傳輸層上的發(fā)送窗口還受網(wǎng)絡(luò)處理能力的限制。,傳輸層上的緩存策略,發(fā)送方緩存還是接收方緩存?,若通信子網(wǎng)是不可靠的,則發(fā)送方一般必須緩存,而接收方可以選擇緩存或不緩存。,若通信子網(wǎng)是可靠的,則視接收方為其預(yù)留的緩沖空間大小,發(fā)送方可以選擇緩存或不緩存。,緩沖區(qū)分配方案:,以,TPDU,為單位分配?,以連接為單位分配?,緩沖區(qū)大小固定還是可變?,動態(tài)緩沖區(qū)分配示例,動態(tài)緩沖區(qū)分配的特點是確認與緩存分離。,5.,因特網(wǎng)的傳輸層,用戶數(shù)據(jù)報協(xié)議(,UDP,):提供不可靠無連接服務(wù)。,
6、傳輸控制協(xié)議(,TCP,):提供可靠的字節(jié)流服務(wù)。,5.1 UDP,協(xié)議,UDP,報頭格式,UDP,提供的功能:,多路復用和解多路復用(利用端口號),(可選的)輕量級差錯檢查,但不反饋,UDP,不負責流量控制和出錯重傳,所有這些都由用戶進程完成。,UDP,的應(yīng)用:,RPC,,,實時多媒體傳輸。,UDP,頭及偽頭結(jié)構(gòu),遠程過程調(diào)用,RPC,RPC,的基本思想,允許調(diào)用遠程計算機上的過程,并使這種調(diào)用看起來象本地調(diào)用一樣,方便客戶,-,服務(wù)器應(yīng)用軟件的編寫。,RPC,的實現(xiàn),客戶進程綁定到一個客戶樁(,client stub,),服務(wù)器進程綁定到一個服務(wù)器樁(,server stub,)。,客戶進
7、程調(diào)用客戶樁,參數(shù)通過壓棧的方式傳遞。,客戶樁將參數(shù)封裝成一個消息,執(zhí)行一個系統(tǒng)調(diào)用發(fā)送消息。,內(nèi)核通過調(diào)用傳輸層服務(wù)將消息發(fā)送到服務(wù)器樁。,服務(wù)器樁用傳過來的參數(shù)調(diào)用服務(wù)器例程,將返回的結(jié)果封裝到一個消息中,執(zhí)行一個系統(tǒng)調(diào)用將消息發(fā)送給客戶樁。,客戶樁將結(jié)果返回給客戶進程。,UDP,用于多媒體傳輸,多媒體通信的特點:,實時傳輸,按順序交付,能容忍少量數(shù)據(jù)丟失,TCP,能保證傳輸順序,但其差錯控制和擁塞控制機制不能保證實時性。,UDP,的實時性較好,但不能保證交付順序,且缺乏擁塞控制易導致高丟包率。,使用,UDP,傳輸多媒體數(shù)據(jù)的解決方案是在,UDP,之上設(shè)計一個實時傳輸協(xié)議,RTP,,用來解
8、決包序維持及速率調(diào)整等問題。,5.2 TCP,協(xié)議,TCP,使用連接進行通信,連接狀態(tài)只保留在兩個端系統(tǒng)中,因而是一個端到端的協(xié)議。,TCP,連接是一個字節(jié)流而不是報文流,它不保留報文的邊界。,TCP,連接是全雙工的,在每個方向上支持一個字節(jié)流。,TCP,連接是,點到點的,不支持多播或廣播。,TCP,提供的功能:,多路復用與解多路復用,順序交付,差錯控制,流量控制,擁塞控制,TCP,報文,TCP,實體間交換的協(xié)議數(shù)據(jù)單元稱為段,每個段由報頭和數(shù)據(jù)(可能沒有)組成。,最大段長度受,IP,包數(shù)據(jù)域長度(最大為,65535,字節(jié))及鏈路,MTU,的限制。,TCP,報頭,由,20,字節(jié)的固定頭和可變長
9、度的選項頭組成。,重要的,TCP,選項包括:,最大段長度(,maximum segment size,MSS,),窗口比例,選擇重傳,TCP,報頭結(jié)構(gòu),TCP,偽頭結(jié)構(gòu),建立,TCP,連接,注:,前兩個,TCP,段都使用了定時器,并在定時器超時后重發(fā)。,采用基于時鐘的方法選擇初始連接序號,,取為,4,微秒。,主機崩潰后,至少等待,60,秒后才啟動。,若收到,SYN,報文段的,TCP,實體發(fā)現(xiàn)目的端口上沒有進程在監(jiān)聽,則發(fā)送一個,RST,置,1,的,TCP,段,拒絕建立連接。,釋放,TCP,連接,TCP,流量控制,TCP,采用可變長度的滑動窗口進行流量控制,接收方在返回給發(fā)送方的段中報告接收窗口
10、(,window size,)的大小。,當接收窗口為,0,時一般必須停止發(fā)送,但以下兩種情況例外:,可以發(fā)送緊急數(shù)據(jù),例如終止在遠端計算機上運行的進程。,可以發(fā)送一個,1,字節(jié)的段,以觸發(fā)一個包含接收窗口大小的響應(yīng)。,糊涂窗口綜合癥,(,silly window syndrome,),接收方不斷發(fā)送具有微小增量窗口的通告,引起發(fā)送方不斷發(fā)送小數(shù)據(jù)分組,從而導致大量的帶寬浪費,。,現(xiàn)行的,TCP,標準使用啟發(fā)式方法來防止糊涂窗口綜合癥。,接收方啟發(fā)式策略,僅當有“非平凡的”可用空間時才發(fā)送窗口更新通告。,“非平凡的”可用空間,:可用空間達到緩沖區(qū)空間的一半或者一個,MSS,(取兩者的最小值)。,
11、TCP,標準推薦采用推遲確認技術(shù)提高傳輸效率,即當沒有非平凡的可用空間時,推遲發(fā)送確認。,推遲確認的優(yōu)點:降低通信量,提高吞吐率。,推遲確認的缺點:,確認延遲太大會導致不必要的重傳,因而標準規(guī)定最多推遲,500ms,。,不利于,TCP,往返時間的估計,因而標準推薦接收方至少每隔一個報文段使用正常方式對報文段進行確認。,發(fā)送方啟發(fā)式策略,允許,TCP,在收到應(yīng)用數(shù)據(jù)后不馬上發(fā)送,等收集到足夠多的數(shù)據(jù)后再發(fā)送。,問題:發(fā)送方,TCP,應(yīng)該等待多長時間?,Nagle,算法:,在上一次傳輸?shù)臄?shù)據(jù)未被確認前,后續(xù)到來的數(shù)據(jù)放到緩沖區(qū)中;當數(shù)據(jù)足以填滿一個最大長度的段或前一次傳輸?shù)拇_認到來時(取最早的時間
12、),將緩沖區(qū)中的數(shù)據(jù)封裝到一個,TCP,段中發(fā)送。,Nagle,算法可以適應(yīng)不同的網(wǎng)絡(luò)延時、不同的最大段長度以及不同應(yīng)用程序速度的組合情況,而且在常規(guī)情況下不會降低網(wǎng)絡(luò)的吞吐量。,TCP,擁塞控制,TCP,擁塞控制采用端到端的機制,方法是讓每一個發(fā)送方根據(jù)自己感知的網(wǎng)絡(luò)擁塞程度來調(diào)整發(fā)送速度。,問題:,發(fā)送方如何知道從它到目的節(jié)點的路徑上發(fā)生了擁塞?,發(fā)送方如何限制發(fā)送速率?,當發(fā)送方檢測到擁塞時,采用什么算法來改變發(fā)送速率?,問題一的解決:,TCP,用超時來檢測擁塞(與,TCP,配合使用的,RED(,隨機早檢測算法)會在網(wǎng)絡(luò)擁塞時丟棄包)。,問題二的解決:,TCP,使用擁塞窗口和發(fā)送窗口一起
13、限制發(fā)送速率,其中接收窗口體現(xiàn)接收端的緩沖能力,擁塞窗口體現(xiàn)網(wǎng)絡(luò)當前的處理能力。,TCP,擁塞控制,算法,TCP,擁塞控制算法包括三個部分:,加性增,/,乘性減(,additive increase/multiplicative decrease,AIMD,)原則,慢啟動算法,快速重傳和快速恢復機制,AIMD,原則,加性增,/,乘性減:,乘性減:每發(fā)生一次超時事件,就將當前的擁塞窗口減半(最小不低于,1,個,MSS,),因此擁塞窗口在持續(xù)出現(xiàn)超時時按指數(shù)規(guī)律遞減。,加性增:當擁塞窗口內(nèi)的段都在預(yù)定的時間內(nèi)被確認(即沒有超時發(fā)生)時,擁塞窗口增大一個,MSS,。在實際操作時,若擁塞窗口用,Con
14、gWin,表示,則每次收到一個確認后,擁塞窗口的增量,按如下公式計算:,=MSS,(,MSS/,CongWin,)。,AIMD,原則的要點:,發(fā)送方減小擁塞窗口的速度比加大這個窗口要快得多。事實證明,這是擁塞控制機制達到穩(wěn)定的必要條件。,慢啟動與擁塞避免,慢啟動,:,慢啟動在兩種情況下使用:連接剛建立,以及超時后重新啟動數(shù)據(jù)傳輸。,以一個,MSS,作為擁塞窗口的初始值,每當收到一個確認就將擁塞窗口增加,1,個,MSS,,直至發(fā)生超時或達到一個門限。在到達該點之前,擁塞窗口成倍增加。,擁塞避免,:,發(fā)生超時后,將當前擁塞窗口的一半作為擁塞閾值,使用慢啟動算法將擁塞窗口增大到該閾值,此后進入擁塞避
15、免狀態(tài),采用加性增的方法繼續(xù)增加擁塞窗口。,慢啟動和擁塞避免,快速重傳與快速恢復,超時觸發(fā)重傳的問題:重發(fā)丟失的段需要很長時間。,快速重傳:接收方緩存并響應(yīng)每個正確收到的,TCP,段,對于未按順序到達的段發(fā)送一個重復確認。,發(fā)送方在收到,3,個重復確認后開始重傳丟失的段。,接收方收到重傳的段后,發(fā)送累積確認。若發(fā)送方在收到,3,個重復確認前發(fā)生超時,按超時事件處理。,快速恢復:,發(fā)送端在收到,3,個重復確認后進入擁塞避免階段,(而不是慢啟動階段)。具體來說,當發(fā)送端收到少于,3,個重復確認時,擁塞窗口和擁塞閾值均不變;當收到第,3,個重復確認時,將擁塞閾值設(shè)為擁塞窗口的一半,并令擁塞窗口等于擁
16、塞閾值,此后擁塞窗口按線性增長。,確定超時間隔,問題:重傳定時器的值(超時間隔)設(shè)為多長合適?,超時間隔與段的平均來回時間及方差均有關(guān)系。,來回時間的估計:,TCP,對每條連接維護來回時間估計值,RTT,。在發(fā)送了一個段后啟動重傳定時器,在得到確認后計算段的來回時間,M,,,然后根據(jù)公式:,RTT=,RTT,+(1-)M,修正,RTT,,,是比例因子,。,方差的估計:,TCP,實體維護來回時間的測量值與估計值之間的偏差,D,。當?shù)玫?RTT,的最新估計值后,用公式:,D=,D,+(1-)|RTT-M|,修正,D,,,然后,設(shè)置新的超時間隔:,timeout=RTT+4*D,。,確定超時間隔(續(xù)),估計來回時間的問題:,TCP,的確認是有二義性的。,Karn,算法,忽略有二義性的確認,只對一次發(fā)送成功的報文段測量來回時間,并據(jù)此更新,RTT,估計值。,定時器補償:發(fā)送方每當重傳一個報文段時,,TCP,就增加超時間隔,大多數(shù)的,TCP,實現(xiàn)采用公式:,new_timeout=*timeout,,,典型值為2,。,實際使用的,Karn,算法,先用,RTT,估計值計算初始的超時間隔,然后在每次