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