第12章 IP網(wǎng)絡(luò)控制技術(shù)_第1頁
第12章 IP網(wǎng)絡(luò)控制技術(shù)_第2頁
第12章 IP網(wǎng)絡(luò)控制技術(shù)_第3頁
第12章 IP網(wǎng)絡(luò)控制技術(shù)_第4頁
第12章 IP網(wǎng)絡(luò)控制技術(shù)_第5頁
已閱讀5頁,還剩236頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第12章IP網(wǎng)絡(luò)控制技術(shù)本章提綱12.1差錯控制12.1.1檢錯編碼12.1.2IP的差錯控制12.2通信量控制12.2.1流量控制12.2.2擁塞控制12.3IP安全體系結(jié)構(gòu)和安全算法12.3.1網(wǎng)絡(luò)信息安全概念12.3.2IPSec12.3.2IPSec使用的安全算法續(xù)12.4QOS技術(shù)和體系結(jié)構(gòu)12.4.1什么是QoS技術(shù)12.4.2集成服務(wù)12.4.3區(qū)分服務(wù)12.4.4子網(wǎng)帶寬管理SBM12.4.5MPLS的QoS12.4.6QoS體系結(jié)構(gòu)本章提要本書討論的控制技術(shù)包括差錯控制、通信量控制、安全技術(shù)和服務(wù)質(zhì)量技術(shù)。嚴(yán)格來講,前面章節(jié)介紹的域名解析、路由選擇、地址解析、邏輯連接管理等內(nèi)容也可以看作是有關(guān)控制的技術(shù),但是由于它們與數(shù)據(jù)傳輸關(guān)系緊密,不便于獨(dú)立介紹,因此在前面結(jié)合著數(shù)據(jù)傳輸先行介紹了。IP網(wǎng)絡(luò)的控制技術(shù)內(nèi)容非常豐富。由于本書篇幅和目的所限,我們不展開討論,而只是介紹問題的由來、解決問題的方法以及技術(shù)的發(fā)展趨勢等基本內(nèi)容,使讀者對上述技術(shù)有個基本的認(rèn)識。12.1差錯控制編碼信號在傳輸過程中受到干擾時,就有可能使某個或某幾個“1”變成“0”,或使“0”變成“1”,這時就發(fā)生了差錯。顯然,接收方在接受數(shù)據(jù)之前,必須判斷數(shù)據(jù)是否有差錯。判斷是否存在差錯叫檢錯。檢糾錯方法當(dāng)接收方檢測出差錯以后,為了得到正確的數(shù)據(jù),它可以采取2種作法以得到正確的數(shù)據(jù),即:(1)通知發(fā)送方重發(fā)數(shù)據(jù):把錯誤數(shù)據(jù)的特征信息(例如數(shù)據(jù)幀編號)反饋給發(fā)送方,要求發(fā)送方重新發(fā)送該數(shù)據(jù),直至接收到無差錯的數(shù)據(jù)為止。這種方式的典型方法是自動請求重發(fā)ARQ(AutomaticRepeatreQuest)。(2)自己糾正數(shù)據(jù)中的差錯(糾錯):通過一定的算法確定差錯的具體位置(檢錯不能做到這點),并自動加以糾正。這種方式的典型方法是FEC(ForwardErrorCorrection)。當(dāng)差錯超出糾錯范圍時,F(xiàn)EC就無能為力了。12.1.1檢錯編碼為了能對數(shù)據(jù)檢糾錯,需要對數(shù)據(jù)進(jìn)行編碼。編碼的作法是把k比特的原始數(shù)據(jù)轉(zhuǎn)換為n比特的編碼數(shù)據(jù)(n>k)。新增加的n-k比特稱為監(jiān)督位。編碼的關(guān)鍵是如何產(chǎn)生監(jiān)督位。監(jiān)督位必須滿足的條件(1)n比特數(shù)據(jù)與k比特數(shù)據(jù)要一一對應(yīng)。(2)編碼數(shù)據(jù)之間的差異要盡可能的大。漢明距離n-k比特的監(jiān)督位與k比特的數(shù)據(jù)在n比特的編碼數(shù)據(jù)中一起發(fā)送給接收方。漢明距離是指一種編碼的全部碼字兩兩之間距離的最小值,2個碼字之間的距離是指對應(yīng)位置上二進(jìn)制值不同數(shù)字的個數(shù)。例如,碼字10010110001和11001010101的第2,4,5,6和9位(從左至右)的值不同,因此,它們之間的距離是5。如圖12-1所示。圖12-1漢明距離常用的檢錯碼(1)恒比碼:在n比特的恒比碼中,恒定有k比特的值為“1”,另外有n-k比特值為“0”。當(dāng)接收方收到不符合此規(guī)則的編碼時,就判斷有差錯。我國采用的恒比碼中n=5,組成代表0~9十個數(shù)字的編碼,如表12-1所示。表12-1恒比碼數(shù)字電碼數(shù)字電碼012340110101011110011011011010567890011110101111000111010011(2)垂直水平奇偶校驗碼垂直水平奇偶校驗碼也稱縱橫奇偶校驗或方陣碼。在這種校驗碼中,每一字符占據(jù)一列,低位比特在上,高位比特在下。每個字符的第8位比特(b8)作為垂直奇偶校驗位。若干字符縱向排列形成一個方陣,各字符的同一行比特形成水平奇偶校驗位,放在在每一行的最右邊一位。一個字符中1的個數(shù)是奇數(shù)時垂直校驗位=1,否則為0;一行中1的個數(shù)是奇數(shù)時水平校驗位=1,否則為0。表12-2所示為垂直水平奇偶

校驗碼結(jié)構(gòu)b110101010101010b201100110011001

b300011110000111b400000001111111

b500000000000000

b610100110010010

b7010110011011011111000b8001011001101000(3)循環(huán)冗余校驗碼在n比特的循環(huán)冗余校驗碼(CyclicRedundancyCheck,CRC)中,有k比特的信息比特和n-k比特的監(jiān)督比特。監(jiān)督比特由信息比特按照一定的算法產(chǎn)生。這種編碼的碼字循環(huán)移位后得到碼字也是CRC編碼的一個碼字,換句話說,如果用Ci表示碼字的第i比特,則Cn-1Cn-2…C1C0、Cn-2Cn-3…C0Cn-1、…、C0Cn-1…C2C1都是CRC碼字,這就是循環(huán)的含義。監(jiān)督比特由以下算法計算把k比特信息比特表示成M(x)=Mk-1xk-1+Mk-2xk-2+…+M1x+M0

其中Mi(i=0,…,k-1)就是k比特的值(0或1)。例如,如果信息比特是10011,則對應(yīng)的M(x)=x4+x+1。稱M(x)為報文多項式。常用的G(x)有以下3個G(x)=x12+x11+x3+x2+x+1(CRC-12)G(x)=x16+x15+x2+1(CRC-16)G(x)=x16+x12+x5+1(CRC-CCITT)還有一種檢錯能力更強(qiáng)的G(x),即:

G(x)=x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+1CRC定義設(shè)M(x)的編碼對應(yīng)的多項式為T(x),則CRC定義為:

T(x)=Xn-kM(x)-C(x)

其中C(x)是Xn-kM(x)除以G(x)的余式。顯然T(x)能被G(x)除盡。檢錯原則發(fā)送方發(fā)送的是T(x)系數(shù)對應(yīng)的比特序列Tn-1Tn-2…To。接收方收到n比特編碼后,用它們對應(yīng)的多項式除以G(x),如果能除盡,則認(rèn)為接收的比特沒有錯,否則,認(rèn)為有錯誤。讀者可能會問在T(x)的比特序列Tn-1Tn-2…To中哪些比特是M(x)的呢?換句話說,接收方判定沒有差錯之后,如何從T(x)中分離出M(x)呢?實際上,存在以下對應(yīng)關(guān)系:Tn-1=MK-1,Tn-2=MK-2,…,Tn-k=M0。因此,接收方提取Tn-1Tn-2…To的左邊k比特即可。為什么存在上述對應(yīng)關(guān)系呢?原因在于G(x)是經(jīng)過精心定義的特殊多項式,它具有使上述關(guān)系成立的特性。CRC應(yīng)用在802.3以太網(wǎng)MAC幀中的FCS字段放入的就是32比特的CRC監(jiān)督比特值。HDLC幀中FCS字段值是由CRC-CCITT生成多項式計算的監(jiān)督比特值。在IP頭部的檢驗和字段沒有使用CRC編碼,原因是該檢驗字段只控制頭部的差錯,沒有包括數(shù)據(jù)字段,因而沒有使用功能強(qiáng),但計算量大的CRC編碼。IP頭部檢驗和的計算方法將IP頭部看作以16比特為單位的比特段序列,先將檢驗和字段值置零,然后將所有的16比特段相加,再求和的二進(jìn)制反碼作為檢驗和的值。接收方收到IP分組后,將頭部的所有16比特相加(包括檢驗和),如果頭部沒有發(fā)生錯誤,則和必全為1。否則即認(rèn)為出錯,并將IP分組丟棄。12.1.2IP的差錯控制首先我們先回顧一下IP協(xié)議的特點。IP協(xié)議是一個無連接的協(xié)議,它在發(fā)送IP分組之前并不建立到接收方的連接,它只是通過路由選擇知道下一跳路由器,然后把IP分組發(fā)送給它。另外,源IP協(xié)議不知道它發(fā)送出去的IP分組在去往目的主機(jī)的路上會出現(xiàn)哪些問題,以及網(wǎng)絡(luò)工作的一些細(xì)節(jié),甚至不知道IP分組是否被目的主機(jī)接收??傊?,IP協(xié)議缺乏差錯控制、流量控制、管理查詢功能以及完善的輔助機(jī)制,導(dǎo)致IP分組傳輸?shù)目煽啃圆桓?。為了彌補(bǔ)IP協(xié)議存在的上述問題,在不改動IP協(xié)議的前提下,定義了ICMP。1.ICMP的差錯報告IP分組在傳輸過程中會出現(xiàn)以下異常情況,它們的出現(xiàn)會觸發(fā)ICMP報文的發(fā)送。這些異常情況包括:(1)目的站不可達(dá):當(dāng)路由器不能通過路由選擇為IP分組找到下一跳路由器或目的主機(jī)時,稱這種情況是目的站不可達(dá)。此時,路由器會發(fā)送ICMP目的站不可達(dá)報文給主機(jī),通知造成目的站不可達(dá)的原因,例如是網(wǎng)絡(luò)不可達(dá)、主機(jī)不可達(dá)、協(xié)議不可達(dá)、端口不可達(dá),還是其他管理上的原因(如人為設(shè)置的過濾器)。(2)擁塞當(dāng)路由器或目的主機(jī)接收到過多的IP分組而來不及轉(zhuǎn)發(fā)或處理時,稱這種情況是擁塞。此時,路由器或目的主機(jī)會發(fā)送ICMP源站抑制報文給源站,通知擁塞的發(fā)生。源站收到源站抑制報文之后會降低發(fā)送速率直至不再收到源站抑制報文。(3)超時當(dāng)IP分組的TTL字段值等于0時,或者當(dāng)一個報文的分片沒有在一定時間內(nèi)到達(dá)目的主機(jī)時,稱這種情況是超時。此時,路由器或目的主機(jī)會向源站發(fā)送ICMP超時報文通知發(fā)生超時。(4)參數(shù)出錯當(dāng)IP分組頭部的參數(shù)出現(xiàn)二義性或某個字段中缺少某個值時,稱這種情況是參數(shù)問題。此時,路由器或目的主機(jī)會向源站發(fā)送ICMP參數(shù)問題報文通知參數(shù)出錯。(5)路由過時因為主機(jī)是不參與路由更新的,因此,主機(jī)上的路由表會過時,為了保證主機(jī)路由表的時效性,主機(jī)的默認(rèn)路由器會發(fā)送ICMP改變路由報文給主機(jī),通知最新的路由信息。讀者可能會問IP分組被丟棄了,相應(yīng)的數(shù)據(jù)如何再得到呢?這就需要IP分組重傳。重傳IP分組所需要的必要信息由ICMP差錯報文反饋給源主機(jī)。ICMP差錯報文與被丟棄IP分組的關(guān)系如圖12-2所示。圖12-2ICMP差錯報文的數(shù)據(jù)由被丟棄的IP分組而來ICMP差錯報告報文的一般格式如圖12-3所示。圖12-3ICMP報文字端含義(1)類型:占8比特,指明差錯的種類。(2)代碼:占8比特,指明引起錯誤的原因。(3)校驗和:占16比特,其值的計算與IP分組中校驗和的計算一致。校驗的范圍包括整個報文。(4)頭部的其余部分與類型字段有關(guān),當(dāng)類型是目的站不可達(dá)、源站抑制、超時時,該字段值為0。當(dāng)類型是參數(shù)問題報文時,該字段由2部分組成,如圖9-10所示。其中指針指向有問題的字節(jié)(代碼=0時。當(dāng)代碼=1時,指針=0)。當(dāng)類型是改變路由報文時,該字段是目標(biāo)路由器的IP地址,即IP分組的下一跳路由器地址。2.ICMP查詢除了報告IP分組在轉(zhuǎn)發(fā)和處理上存在的問題之外,ICMP還具有診斷和查詢功能,用于了解掌握網(wǎng)絡(luò)的運(yùn)行情況。這項功能通過ICMP查詢報文(圖12-4)實現(xiàn)。圖12-4ICMP查詢報文ICMP報文封裝的過程如圖12-5所示。圖12-5ICMP的封裝12.2通信量控制在計算機(jī)網(wǎng)絡(luò)中有一種普遍存在的問題,即接收方因不能及時處理到來的數(shù)據(jù)而不得不把部分?jǐn)?shù)據(jù)丟棄,嚴(yán)重時甚至導(dǎo)致接收方不能正常工作。例如,當(dāng)發(fā)送方在一個相對較快或負(fù)載較輕而接收方在一個相對較慢或負(fù)載較重的機(jī)器上運(yùn)行時,就會出現(xiàn)上述問題。我們稱這個問題為通信量控制問題。本節(jié)要介紹的就是解決這個問題的方法。讀者可能會問發(fā)送方和接收方是指主機(jī)/路由器嗎?我們說,發(fā)送方和接收方準(zhǔn)確的含義是參考模型中的層實體,例如層協(xié)議軟件。換句話說,當(dāng)源機(jī)器中的第n層實體是發(fā)送方時,目的機(jī)器的對等層就是接收方。當(dāng)然,用戶關(guān)心的是應(yīng)用層數(shù)據(jù)是否能夠被全部接收,也就是說,源主機(jī)應(yīng)用程序的數(shù)據(jù)能否被目的主機(jī)接收。例如一個WWW服務(wù)器的頁面是否完整地被下載到瀏覽器窗口中。原因但是,源主機(jī)應(yīng)用層數(shù)據(jù)不能被目的主機(jī)應(yīng)用層接收的原因不一定只存在于應(yīng)用層實體(例如服務(wù)器軟件或瀏覽器故障),也有可能是運(yùn)輸層、網(wǎng)絡(luò)層、數(shù)據(jù)鏈路層,甚至是物理層引起的。例如:(1)目的主機(jī)運(yùn)輸層TCP端口的緩沖區(qū)溢出,造成TCP報文段被丟棄。(2)路由器CPU速度較慢,使得IP層來不及完成路由表刷新、路由選擇、IP分組的分片封裝以及轉(zhuǎn)發(fā)工作,導(dǎo)致IP分組積壓(3)相鄰WAN交換機(jī)的數(shù)據(jù)鏈路層之間由于一方發(fā)送幀的數(shù)量超過了對方的處理能力,造成幀被丟棄。結(jié)論可見,造成通信量控制問題的原因有主機(jī)的,有路由器的,有WAN交換機(jī)的。主機(jī)的原因主要在于運(yùn)輸層,路由器的原因主要在于網(wǎng)際層,WAN交換機(jī)的原因主要在于數(shù)據(jù)鏈路層。流量控制的含義由于運(yùn)輸層和數(shù)據(jù)鏈路層在發(fā)送數(shù)據(jù)之前一般先要建立數(shù)據(jù)通路,然后數(shù)據(jù)以流的形式在其上傳播。因此,這2層的通信量控制被稱為流量控制。擁塞的含義網(wǎng)際層以存儲轉(zhuǎn)發(fā)方式發(fā)送數(shù)據(jù),數(shù)據(jù)以分組形式獨(dú)立被路由(第三層交換除外)。當(dāng)過量的分組在路由器積壓時,稱為擁塞。因此,網(wǎng)際層的通信量控制被稱為擁塞控制。通信量控制方法(1)滑動窗口法:它是主要的流量控制方法。TCP使用了該方法。數(shù)據(jù)鏈路層也使用該方法。有意思的是,TCP也用它控制擁塞。(2)擁塞預(yù)警法:IP層ICMP使用的就是該方法。另外,幀中繼也使用類似的方法。(3)通信量整形法:ATM的擁塞控制使用該方法。常用的通信量整形法包括漏桶法和令牌桶法。(4)加權(quán)公平隊列法:它用于增強(qiáng)擁塞預(yù)警法的效力。IP路由器使用該方法。12.2.1流量控制流量控制(flowcontrol)又可以稱為流控制,因為這種通信量控制的對象是數(shù)據(jù)流而不是單個數(shù)據(jù)(例如分組)。數(shù)據(jù)流是在一個連接上發(fā)送的數(shù)據(jù),如第2層點到點數(shù)據(jù)鏈路上的幀序列,或是第4層TCP連接上的TCP報文段串的字節(jié)流。流量控制的基本思想根據(jù)接收方的可用緩存空間大小和處理數(shù)據(jù)能力來發(fā)送數(shù)據(jù)。其典型的方法就是滑動窗口法。TCP就采用這種方法。1.滑動窗口窗口是指運(yùn)輸層軟件使用的緩存的一部分,而且這部分空間是空閑的。當(dāng)緩存中有數(shù)據(jù)進(jìn)入或被應(yīng)用程序取走時,空閑空間的位置在緩存中會變動。因此,稱之為滑動窗口。發(fā)送方和接收方在一個連接上定義一個滑動窗口,它是接收方空閑緩存的全部或部分。在連接建立過程中,接收方把滑動窗口的大小告訴給發(fā)送方。發(fā)送方按照接收方窗口的大小發(fā)送數(shù)據(jù)。顯然,這樣的發(fā)送不會導(dǎo)致接收方緩存溢出。2.TCP滑動窗口圖12-6TCP滑動窗口的一個例子。圖12-6TCP滑動窗口窗口的大小窗口大小可增可減,如圖12-7所示。圖12-7窗口增減3.糊涂窗口綜合癥當(dāng)發(fā)送方應(yīng)用程序產(chǎn)生數(shù)據(jù)(向TCP提交)或者接收方應(yīng)用程序從TCP提取數(shù)據(jù)的速率很慢時,滑動窗口中的字節(jié)數(shù)量會很少,比如只有1個字節(jié)。顯然,為發(fā)送1個字節(jié)而發(fā)送1個TCP報文段(頭部就占20個字節(jié))是不合算的。這個問題稱為糊涂窗口綜合癥。解決糊涂窗口綜合癥的方法對滑動窗口方法進(jìn)行改進(jìn)。在發(fā)送方,改進(jìn)的基本思路是強(qiáng)迫TCP收集數(shù)據(jù),當(dāng)窗口中的字節(jié)數(shù)達(dá)到一定數(shù)量時再一起發(fā)送。Nagle算法它的步驟包括:

第1步:發(fā)送方TCP發(fā)送窗口中的第1塊字節(jié),哪怕只有1個。

第2步:然后在輸出緩存中積累數(shù)據(jù)并等待。當(dāng)收到接收端的TCP確認(rèn)或者數(shù)據(jù)可以裝成一個最大報文段時,發(fā)送數(shù)據(jù)。

第3步:重復(fù)第2步。接收端改進(jìn)滑動窗口的作法(1)Clark法:只要有數(shù)據(jù)到達(dá)就發(fā)送確認(rèn),但宣布窗口大小為0,直至緩沖空間可以放入最大長度報文段,或者緩存的一半空閑。(2)延遲確認(rèn):當(dāng)一個報文段到達(dá)時并不立即發(fā)送確認(rèn),直到輸入緩存有足夠的空閑空間為止。延遲確認(rèn)法比Clark法好在減少了確認(rèn)報文,但延遲時間過長會導(dǎo)致發(fā)送方的重傳。為此,目前規(guī)定延遲時間不能超過500毫秒。12.2.2擁塞控制當(dāng)主機(jī)發(fā)送給網(wǎng)絡(luò)的分組在其傳輸容量范圍內(nèi)時,分組會全部被轉(zhuǎn)發(fā)到目的地(除因其他問題的少數(shù)分組之外),而且被成功轉(zhuǎn)發(fā)的數(shù)目與主機(jī)發(fā)送的數(shù)量成正比。當(dāng)網(wǎng)絡(luò)被“注入”的分組數(shù)量迅速增加時,會使大量的分組在網(wǎng)絡(luò)中積聚,進(jìn)而導(dǎo)致網(wǎng)絡(luò)傳輸能力的進(jìn)一步下降。這時網(wǎng)絡(luò)就發(fā)生了擁塞(congestion)。路由器由于不堪重負(fù)開始丟棄分組,使被成功轉(zhuǎn)發(fā)的分組數(shù)量急劇下降。擁塞對網(wǎng)絡(luò)性能的影響如圖12-8所示。圖12-8當(dāng)通信量太大時,會發(fā)生擁塞,網(wǎng)絡(luò)性能顯著下降造成網(wǎng)絡(luò)擁塞的原因(1)存儲空間不足:當(dāng)n個分組從幾個方向到達(dá)路由器并都從一個方向輸出時,若輸出緩沖區(qū)的空間只能存儲n-1個分組,那么就會有一個分組被丟棄。(2)處理器速度慢:如果路由器CPU的處理速度太慢,即使到來的分組數(shù)量不太大,也可能導(dǎo)致存儲空間溢出。(3)鏈路帶寬低:盡管存儲空間和CPU的指標(biāo)很高,但如果輸出鏈路的帶寬相對過低,也會導(dǎo)致部分分組不能被及時轉(zhuǎn)發(fā)。值得指出的是增加存儲空間可以避免分組在該路由器被丟棄,但可能導(dǎo)致分組因排隊時間過長而超時(但仍被該路由器轉(zhuǎn)發(fā))。超時會引起該分組的重發(fā),從而使網(wǎng)絡(luò)的通信量額外地增加。1.擁塞預(yù)警法為了避免被大量到來的分組淹沒,路由器可以建立一種擁塞預(yù)警機(jī)制,當(dāng)輕度擁塞發(fā)生時,通知源主機(jī)減少發(fā)送分組的數(shù)量,這樣會減輕擁塞加劇。發(fā)現(xiàn)擁塞發(fā)生的途徑(1)輸出線路利用率。如果利用率過高,則認(rèn)為擁塞發(fā)生。(2)輸出隊列長度。如果隊列長度接近滿員,則認(rèn)為擁塞發(fā)生。(3)分組丟棄率。如果被丟棄的分組占接收分組的比率達(dá)到一定的門限值,則認(rèn)為擁塞發(fā)生。抑制分組當(dāng)路由器發(fā)生擁塞時,它發(fā)送一種特殊的分組(稱為抑制分組,chockpacket)給所有的源主機(jī)。源主機(jī)收到抑制分組后按一定的比率減少發(fā)送給特定目的地的通信量。經(jīng)過一定的時間,如果再收到抑制分組,主機(jī)再減少通信量。當(dāng)一定時間后,主機(jī)再沒收到抑制分組時,認(rèn)為擁塞解除,再逐步恢復(fù)發(fā)送速率。問題是主機(jī)收到抑制分組后是否降低其速率是自愿的,而且降低速率的主機(jī)可能對擁塞不負(fù)主要責(zé)任。為了克服上述問題,需要使真正造成擁塞的源主機(jī)降低發(fā)送速率。下面,我們介紹這樣一種方法——加權(quán)公平隊列法(WeightedFairQueuing,WFQ)。該方法已經(jīng)廣泛地應(yīng)用于ATM交換機(jī)和IP路由器中。做法如圖12-9所示。路由器的每條輸出線路有多個隊列,每個源主機(jī)對應(yīng)一個。每當(dāng)線路空閑時,路由器便循環(huán)掃描各隊列。掃描是按字節(jié)進(jìn)行的,即先掃描第1個隊列的第1個字節(jié),再掃描第2個隊列的第1個字節(jié)。直至每個隊列的分組都掃描完(如(a)所示)。同時記錄下每個隊列掃描用時,如圖(b)所示。然后按照隊列掃描用時少在前、多在后的順序發(fā)送分組。這樣做就鼓勵源主機(jī)降低發(fā)送通信量。圖12-9(a)5個隊列中5個分組;(b)發(fā)送順序和掃描用時2.通信量整形所謂通信量整形是指把主機(jī)向網(wǎng)絡(luò)輸出分組的速率調(diào)整到一個固定的平均速率,以使路由器能夠以現(xiàn)有資源平穩(wěn)地處理它。漏桶法(leakybucketalgorithm)其原理如圖12-10所示。圖12-10漏桶算法算法主機(jī)每隔一個時鐘節(jié)拍向網(wǎng)絡(luò)發(fā)送一個分組(這可以通過接口卡或操作系統(tǒng)強(qiáng)制做到),這樣主機(jī)中用戶進(jìn)程的變速的分組流以均速向網(wǎng)絡(luò)發(fā)送,從而使突發(fā)的數(shù)據(jù)流變得“平滑”。令牌桶算法如圖12-11所示每ΔT秒生成一個令牌,主機(jī)每發(fā)送一個分組就消耗一個令牌。當(dāng)沒有令牌時(令牌桶為空),不能發(fā)送分組。在圖12-11(b)中,由于令牌桶中沒有令牌,剩下的2個分組只有等待新令牌才能發(fā)送。圖12-11令牌桶算法令牌桶算法對漏桶算法改進(jìn)(1)令牌桶沒有限定分組的發(fā)送頻率,它規(guī)定的是令牌的生成速率,因而主機(jī)可以選擇發(fā)送分組的時機(jī):是每隔一定時間發(fā)一個,還是一下子把令牌都用完。因此,令牌桶算法支持突發(fā)通信。(2)漏桶法會丟失分組,而令牌桶法不會。當(dāng)桶滿時,溢出的是令牌而不是分組。算法的綜合應(yīng)用上述通信量整形的算法不但適用于主機(jī)到網(wǎng)絡(luò)的通信整形,也同樣可用于路由器之間的通信量整形。另外,2個算法也可以結(jié)合使用,即在令牌桶的下面加上一個漏桶(漏桶的速率要比令牌桶的大,但比網(wǎng)絡(luò)的最高速率小),如圖12-12所示,這樣既可以支持突發(fā)通信,又可以降低擁塞發(fā)生的概率。圖12-12令牌桶+漏桶算法TCP對擁塞控制的貢獻(xiàn)TCP是如何控制擁塞呢?要回答這個問題就要分析一下TCP與擁塞的關(guān)系。我們知道,TCP報文段是封裝到IP分組中發(fā)送的,TCP向IP發(fā)送數(shù)據(jù)的速率越快,IP產(chǎn)生的分組就越多,主機(jī)發(fā)送到網(wǎng)絡(luò)中的分組就越多。因此,TCP的發(fā)送速率會影響擁塞的發(fā)生。滑動窗口用于擁塞控制的

窗口大小窗口大?。絤in(接收端通知的窗口大小,擁塞窗口大小)說明擁塞窗口大小由網(wǎng)絡(luò)擁塞程度決定。顯然,新窗口的定義同時滿足了流量控制和擁塞控制的需要。問題是擁塞窗口的大小如何獲得。由于網(wǎng)絡(luò)中存在多個路由器,擁塞可能發(fā)生在部分路由器上,因此,不能由網(wǎng)絡(luò)提供擁塞窗口的大小。實際上,擁塞窗口的大小由發(fā)送方TCP確定。下面,我們分析具體的作法。做法首先,TCP通過TCP報文段丟失現(xiàn)象(在記時內(nèi)沒有收到確認(rèn))判斷發(fā)生了擁塞。在沒有擁塞時,擁塞窗口的大小設(shè)為最大報文段長度MSS。其后每收到一個確認(rèn),擁塞窗口大小就增加一個最大報文段長度,直到某個允許門限值。這個過程稱為慢啟動(其實窗口大小的增長一點也不慢,因為窗口大小是MSS×2n,n是確認(rèn)報文數(shù))。當(dāng)擁塞發(fā)生時,令擁塞窗口大小等于一個MSS,而門限值為上次發(fā)送時的擁塞窗口的一半。12.3IP安全體系結(jié)構(gòu)和

安全算法12.3.1網(wǎng)絡(luò)信息安全概念破譯(interception)。當(dāng)Alice通過網(wǎng)絡(luò)與Bob通信時,Jack采取辦法了解他們通信的內(nèi)容。中斷(interruption)。Alice與Bob的通信被Jack中斷。篡改(modification)。Alice給Bob發(fā)信說:“給John加薪”。信經(jīng)過Jack時,他把信改成:請給Jack加薪。假冒(personation)。Jack告訴Bob:“我是Alice”。然后,Jack偽造信息發(fā)給Bob;或者要求Bob給他發(fā)信。攻擊分類攻擊分為被動攻擊和主動攻擊。在被動攻擊中,攻擊者(也稱為入侵者)只是觀察某個協(xié)議數(shù)據(jù)單元PDU(第2層的幀、第3層的分組或是第4層的TCP報文段、第5層的HTTP報文)而不破壞它們,這些PDU還能正常被處理。例如,攻擊者通過觀察PDU的頭部控制信息了解正在通信的協(xié)議實體的地址和身份,研究PDU的長度和傳輸?shù)念l度,以便了解所變換的數(shù)據(jù)的性質(zhì)(這種被動攻擊又稱為通信量分析)。主動攻擊攻擊者要對PDU進(jìn)行更深入的分析,以獲得PDU中數(shù)據(jù)的真實含義,或者有選擇地更改、刪除、延遲這些PDU,或者把PDU復(fù)制下來,稍后再發(fā)到原來的數(shù)據(jù)通道上去(重放攻擊的作法),甚至偽造一些PDU。Jack的上述行為都屬于主動攻擊。加密與解密加密是指將明文變換成密文的過程。解密是指從密文還原明文的過程。加密過程使用的方法稱為加密算法,解密過程使用的算法稱為解密算法。有時,加密和解密使用同一個算法。加密用于隱藏數(shù)據(jù)的真實含義。密鑰是一個隨機(jī)生成的數(shù)據(jù),與加密算法一起對明文進(jìn)行加密,或與解密算法一起對密文進(jìn)行解密。身份認(rèn)證它是一種用來鑒別通信參與者是否真的是他所聲稱的身份的方法。身份認(rèn)證用于發(fā)現(xiàn)那些假冒的入侵者。完整性校驗它是一種用來檢查數(shù)據(jù)在通信過程中是否被修改過的方法。完整性校驗可以檢查出被篡改過的數(shù)據(jù),或者發(fā)生了通信錯誤的數(shù)據(jù)。不可否認(rèn)性確認(rèn)它是一種證明發(fā)送者的確發(fā)送過某個信息的方法。該方法可以防止發(fā)送者的抵賴行為。12.3.2IPSec從總體來看,當(dāng)前IP網(wǎng)絡(luò)的安全主要由一種稱為IPSec的功能集提供。它是IETF的IPSec工作組為Internet制訂的安全體系結(jié)構(gòu)。由于TCP/IP是Internet的通信協(xié)議,因此Internet的許多安全問題都與IP協(xié)議有關(guān)。TCP/IP協(xié)議在制定之初沒有充分考慮網(wǎng)絡(luò)將會面臨的安全威脅,因此,協(xié)議中缺乏完善的安全機(jī)制(有些協(xié)議甚至一點也沒有)。為此制定了IP網(wǎng)絡(luò)的安全體系結(jié)構(gòu)IPSec以加強(qiáng)IP網(wǎng)絡(luò)的安全性。IPSec安全體系組成部分(1)IP認(rèn)證頭部(AuthenticationHeader,AH):AH提供數(shù)據(jù)源身份認(rèn)證、數(shù)據(jù)完整性和重放攻擊保護(hù)等功能。(2)IP封裝安全負(fù)荷(EncapsulatingSecurityPayload,ESP):ESP提供數(shù)據(jù)保密、數(shù)據(jù)源身份認(rèn)證、數(shù)據(jù)完整性和重放攻擊保護(hù)等功能。(3)因特網(wǎng)密鑰交換(InternetKeyExchange,IKE):IKE負(fù)責(zé)安全關(guān)聯(lián)管理和密鑰管理。IKE由Internet安全關(guān)聯(lián)和密鑰管理協(xié)議(InternetSecurityAssociationandKeyManagementProtocol,ISAKMP)和Oakley協(xié)議等協(xié)議實現(xiàn)。

IPSec為IP網(wǎng)絡(luò)提供的安全功能(1)數(shù)據(jù)源身份認(rèn)證:證實數(shù)據(jù)是所聲稱的發(fā)送者發(fā)送的。(2)數(shù)據(jù)完整性:證實數(shù)據(jù)的內(nèi)容在傳輸過程中沒被修改過,無論是出于人為故意的原因還是隨機(jī)的傳輸錯誤。(3)數(shù)據(jù)保密:通過加密隱藏數(shù)據(jù)的的真實含義。(4)重放攻擊保護(hù):防止攻擊者獲得數(shù)據(jù),過一段時間后再把該數(shù)據(jù)放回信道。(5)密鑰管理和安全關(guān)聯(lián)管理:保證只需少量或根本不需要手工配置來管理密鑰和安全關(guān)聯(lián)。安全關(guān)聯(lián)SASA是2個IPSec系統(tǒng)之間的單工邏輯連接,它由一個三元組結(jié)構(gòu)<SPI,目的IP地址,安全協(xié)議>定義。SPI(SecurityParameterIndex)是一個32比特數(shù),用于區(qū)別具有相同目的IP地址和安全協(xié)議的安全關(guān)聯(lián)。SPI在SA建立過程中由目的系統(tǒng)選擇(0~255除外)。目的IP地址是建立安全關(guān)聯(lián)發(fā)起方的響應(yīng)方的IP地址。安全協(xié)議指AH或ESP。安全關(guān)聯(lián)數(shù)據(jù)庫SADSAD包括每一個SA的參數(shù)信息,例如AH或ESP加密算法/密鑰、順序號、協(xié)議模式以及SA生命周期SAD決定了一個給定的分組究竟使用哪一個SA。安全策略數(shù)據(jù)庫SPD它包括一個排序的策略列表,針對流入數(shù)據(jù)和流出數(shù)據(jù)有不同的數(shù)據(jù)項。這些數(shù)據(jù)項指定某些數(shù)據(jù)流必須繞過IPSec處理,而某些數(shù)據(jù)流必須被丟棄,其余的則必須經(jīng)過IPSec模塊的處理。1.認(rèn)證頭部AHAH的作用是為IP分組提供完整性校驗和身份認(rèn)證。AH通過對IP分組頭部中的不變字段實施保護(hù)來實現(xiàn)完整性校驗(可變字段包括服務(wù)類型TOS、標(biāo)志位、段偏移、生存期TTL、頭部校驗和)。AH只處理沒被分段的IP分組,AH通過丟棄被分段分組防止假冒,提供身份認(rèn)證。AH頭部在IP分組的位置及其包含的字段如圖12-13所示。圖12-13AH頭部格式字段含義(1)下一頭部:8比特。用于標(biāo)識認(rèn)證頭部后面數(shù)據(jù)是哪個協(xié)議的,其值是Internet編號管理機(jī)構(gòu)IANA(InternetAssignedNumbersAuthority)發(fā)布的“數(shù)字分配RFC”中定義的IP協(xié)議號。(2)長度:8比特。認(rèn)證數(shù)據(jù)的長度,單位是字節(jié)。(3)保留字段:16比特。當(dāng)前默認(rèn)值為0。(4)安全參數(shù)索引SPI:32比特。用于標(biāo)識具有相同IP地址和相同安全協(xié)議的不同安全關(guān)聯(lián)。SPI=0作為本地特殊使用,1~255由IANA保留。續(xù)(5)序列號:32比特。它是個單向遞增的計數(shù)器。發(fā)送方在分組中加入該字段。在一個SA建立時,序列號初始值為0,在該SA上每發(fā)送一個分組,序列號就加1。由于序列號不允許重復(fù),因此能夠防止重放攻擊。(6)認(rèn)證數(shù)據(jù):變長,但其長度要是32比特的整數(shù)倍。認(rèn)證數(shù)據(jù)用于驗證所收到的分組是完整的,它由SA初始化時指定的認(rèn)證算法計算。AH傳輸模式在傳模模式中,AH頭部被插入到IP分組頭部的后面,如圖12-14所示。圖12-14AH傳輸模式AH隧道模式需要保護(hù)的IP分組被封裝在新的IP分組中(原來的IP分組作為新IP分組的負(fù)荷),然后對新IP分組按傳輸模式處理。如圖12-15所示。圖12-15AH隧道模式注當(dāng)安全關(guān)聯(lián)的一方是網(wǎng)關(guān)時,就要使用隧道模式。如果安全關(guān)聯(lián)的兩端都是防火墻,那么就必須使用隧道模式。在隧道模式下,外層頭部中的IP地址可以與內(nèi)部頭部中的IP地址不一樣,例如,內(nèi)層頭部中的地址是主機(jī)地址,外層地址是網(wǎng)關(guān)地址,這樣兩個網(wǎng)關(guān)可以通過AH隧道保護(hù)它們所連接的網(wǎng)絡(luò)主機(jī)之間的全部通信。隧道模式的主要優(yōu)點可以對被封裝的分組提供完全的保護(hù)(所有字段都被保護(hù)),同時使私有地址的使用成為可能(只需將它們放在內(nèi)層頭部中)。缺點是增加了額外的開銷(多了一層IP頭部)。2.負(fù)荷安全封裝ESP負(fù)荷安全封裝ESP的功能是給IP分組提供以下安全服務(wù):

(1)完整性校驗

(2)身份認(rèn)證

(3)加密

(4)重放攻擊保護(hù)(可選)上述安全服務(wù)在安全關(guān)聯(lián)SA建立時,按照以下規(guī)則約定:(1)完整性校驗與身份認(rèn)證必須同時使用。(2)要使用重放攻擊保護(hù)功能時必須同時使用完整性校驗和身份認(rèn)證。(3)重放攻擊保護(hù)功能只能由接收方選擇。ESP報文格式如圖12-16所示。圖12-16ESP報文格式ESP報文組成部分(1)ESP頭部:包括安全參數(shù)索引和序列號。(2)ESP尾部:包括填充、填充長度和下一頭部等字段。其中下一頭部字段給出原始IP分組數(shù)據(jù)區(qū)中的數(shù)據(jù)是哪個協(xié)議的。(3)負(fù)荷數(shù)據(jù):經(jīng)過加密的IP分組數(shù)據(jù)。加密算法由SA建立過程協(xié)商選擇,如DES(DataEncryptionStandard)(4)認(rèn)證數(shù)據(jù):該字段包含由前面ESP頭部、負(fù)荷數(shù)據(jù)和ESP尾部計算出的ICV值。只有當(dāng)SA初始化選擇了完整性校驗和身份認(rèn)證時,報文中才會有該字段。ESP要求支持至少2種算法,如MD5(MessageDigest5)和SHA-1。ESP的認(rèn)證范圍包括ESP頭部、負(fù)荷數(shù)據(jù)和ESP尾部。ESP的加密范圍是整個原始IP分組。ESP傳輸模式ESP頭部被插入到IP頭部后面,如圖12-17所示。圖12-17ESP傳輸模式特點分析傳輸模式下的ESP不為IP頭部提供身份認(rèn)證和加密,誤傳的IP分組也會被交給ESP處理。這是ESP的一個缺點,ESP的優(yōu)點是開銷較小。和AH一樣,傳輸模式下的ESP通常由主機(jī)使用。網(wǎng)關(guān)甚至可以不支持傳輸模式。ESP隧道模式ESP首先創(chuàng)建一個新的IP分組,將原始的IP分組封裝在其中,然后對新IP分組按ESP傳輸模式處理。如圖12-18所示。圖12-18ESP隧道模式注只要安全關(guān)聯(lián)的一個端點是網(wǎng)關(guān),就要使用隧道模式,而2個防火墻之間通常要使隧道模式。雖然網(wǎng)關(guān)可以只支持隧道模式,但它們也經(jīng)常工作在傳輸模式下,此時,網(wǎng)關(guān)以普通主機(jī)身份參與通信。在隧道模式下,外層頭部中的IP地址可以跟內(nèi)層頭部中的IP地址不一樣,這一點與AH是一致的。隧道模式的優(yōu)缺點可以對被封裝的分組提供完全的保護(hù),同時提供了使用私有地址的可能其缺點是增加了額外的開銷。讀者可能會問為什么AH和ESP會同時存在呢?原因有以下方面:(1)ESP要求使用高強(qiáng)度的加密算法,而無論實際上是否需要。由于高強(qiáng)度加密算法被許多國家嚴(yán)格管制,因此,在實施ESP時會有很多意外的限制,而AH可以在全球自由使用。(2)很多情況下只需要認(rèn)證服務(wù)即可,而此時AH比ESP的效率高,因為它格式簡單,額外開銷小。(3)另外,AH與ESP的同時存在使安全方案更加靈活,尤其在同時使用AH與ESP時,利用二者的優(yōu)點會增加安全方案的針對性和適用性。3.IPSec在VPN中的應(yīng)用虛擬專用網(wǎng)(VirtualPrivateNetwork,VPN)是一種在公共網(wǎng)絡(luò)或共享網(wǎng)絡(luò)(如公司網(wǎng)、Intranet、Extranet)上通過隧道等技術(shù)為私有數(shù)據(jù)建立一個受保護(hù)通道,用戶可以通過它傳輸自己的數(shù)據(jù),通道對其他人來說是保密的。VPN示意圖如圖12-19所示。圖12-19VPN示意圖VPN應(yīng)用分支機(jī)構(gòu)網(wǎng)絡(luò)與公司內(nèi)部網(wǎng)互聯(lián)第3方網(wǎng)絡(luò)與公司內(nèi)部網(wǎng)互聯(lián)遠(yuǎn)程訪問用戶訪問公司內(nèi)部網(wǎng)等場合。IPSec的AH和ESP可以用于形成VPN中的通道。AH隧道模式+ESP傳輸模式VPN如圖12-20所示。圖12-20AH傳輸+ESP隧道

構(gòu)建VPNAH與ESP對IP分組的保護(hù)過程(1)當(dāng)主機(jī)H1要向H2發(fā)送一個IP分組時,主機(jī)H1先創(chuàng)建IP分組,對其做ESP處理,然后將IP分組發(fā)給網(wǎng)關(guān)G1,IP分組中的目的地址是H2。(2)網(wǎng)關(guān)G1經(jīng)過識別發(fā)現(xiàn)該IP分組應(yīng)當(dāng)先發(fā)給G2。經(jīng)過對IPSec數(shù)據(jù)庫(SPD和SAD)的查詢,G1進(jìn)一步得知轉(zhuǎn)發(fā)IP分組之前先要使用隧道模式對IP分組做AH處理。然后G1對IP分組做必要的封裝,外層的IP分組的目的地址是網(wǎng)關(guān)G2,真正的目的地址H2此時已經(jīng)被封裝了。續(xù)(3)網(wǎng)關(guān)G2接收到AH隧道封裝的IP分組后,對IP分組做身份認(rèn)證,然后將外部包頭去掉,于是G2發(fā)現(xiàn)IP分組的真正目的地址是H2,然后將該IP分組轉(zhuǎn)發(fā)給給H2。(4)H2收到了H1發(fā)出的IP分組,H2對IP分組做傳輸模式的ESP處理,即去掉ESP頭部、ESP尾部和ESP認(rèn)證數(shù)據(jù),取出負(fù)荷。上述過程中IP分組的格式變化情形如圖12-21所示。圖12-21AH傳輸+ESP隧道

中的IP分組3.因特網(wǎng)密鑰交換協(xié)議從前面的介紹中讀者可以看到,安全關(guān)聯(lián)是AH和ESP實施的基礎(chǔ),AH和ESP都是在某個安全關(guān)聯(lián)連接上進(jìn)行的。安全關(guān)聯(lián)定義了AH和ESP使用的加密算法、密鑰和認(rèn)證算法以及其他安全參數(shù)。安全關(guān)聯(lián)是為安全通信而動態(tài)建立的,因此它存在一個協(xié)商、修改和刪除的管理問題。

由于加密算法是國際通用,換句話說,是公開的。因此,加密數(shù)據(jù)的保密性就取決于加密算法使用的密鑰的保密性。在IPSec使用的加密算法中,有的算法(如DES)的密鑰是私有的,只能供發(fā)送方(加密者)和接收者(真實的)使用,因此,還存在一個密鑰的產(chǎn)生、分發(fā)、銷毀等管理問題。ISAKMP和Oakley密鑰交換的

2個階段第1階段,雙方協(xié)商創(chuàng)建一個主密鑰,以后用于保護(hù)用戶數(shù)據(jù)流的所有密鑰都根據(jù)主密鑰產(chǎn)生。該階段主要工作是建立對ISAKMP報文自身的保護(hù)措施,它并不創(chuàng)建用于保護(hù)用戶數(shù)據(jù)的安全關(guān)聯(lián)或密鑰。該階段用于協(xié)商主密鑰而創(chuàng)建的安全關(guān)聯(lián)稱為ISAKMP安全關(guān)聯(lián)。續(xù)第2階段雙方協(xié)商用于加密用戶數(shù)據(jù)的密鑰。該階段的ISAKMP報文仍在第1階段建立的ISAKMP安全關(guān)聯(lián)上交換。第2階段協(xié)商密鑰的頻率要比第1階段的高。ISAKMP安全關(guān)聯(lián)創(chuàng)建的

基本過程假設(shè)主機(jī)A是發(fā)起方,而主機(jī)B是響應(yīng)方。在ISAKMP安全關(guān)聯(lián)創(chuàng)建的過程中,雙方要交換以下6個ISAKMP報文:(1)報文1和報文2用于協(xié)商安全關(guān)聯(lián)的特征。它們以明文方式傳輸,且沒有身份認(rèn)證。(2)報文3和報文4用于交換一個隨機(jī)數(shù)nonce。同時使用Diffie-Hellman算法創(chuàng)建一個主密鑰(SKEYID)。它們也以明文方式傳輸,不做身份認(rèn)證。(3)報文5和報文6用于交換通信雙方相互認(rèn)證所需的信息。這2個報文由前4個報文建立的加密算法和密鑰保護(hù)。續(xù)主機(jī)A在初始化時,創(chuàng)建報文1(如圖12-22所示)。在該報文中A向B提出n個建議供B選擇。報文1被封裝在UDP報文中(端口號=500,ISAKMP專用)經(jīng)IP層發(fā)送。IP頭部的源地址是A的地址,目的地址是B的地址。圖12-22為創(chuàng)建ISAKMP關(guān)聯(lián)而發(fā)送的報文1字段含義ISAKMP頭部中交換類型是主模式(在創(chuàng)建ISAKMP關(guān)聯(lián)過程總是這樣的)。報文標(biāo)識符是0。響應(yīng)方式Cookie字段設(shè)為0,發(fā)起方Cookie字段添入一個隨機(jī)選擇的數(shù)。安全關(guān)聯(lián)字段用于標(biāo)識在安全關(guān)聯(lián)上傳輸?shù)臄?shù)把是哪個協(xié)議的。此處值是IP。建議字段值為PROTO-ISAKMP。變換字段值為KEY-OAKLEY。當(dāng)變換字段值為KEY-OAKLEY時,主機(jī)A必須指定相關(guān)的屬性,即使用身份認(rèn)證方法、偽隨機(jī)函數(shù)和加密算法。續(xù)主機(jī)B收到發(fā)來的報文1后,如果支持報文1中的某些建議,則向A發(fā)送報文2,告訴它所選擇的建議。此時,A與B的第1次協(xié)商成功結(jié)束。續(xù)在報文2中,B要選擇一個隨機(jī)數(shù)作為它的Cookie字段值,該值與A在報文1中使用的隨機(jī)數(shù)構(gòu)成<Cookie-A,Cookie-B>數(shù)對作為ISAKMP安全關(guān)聯(lián)的SPI。第1次協(xié)商的結(jié)果是雙方確定了SPI、認(rèn)證方法、加密方法。但是雙方還沒有進(jìn)行相互認(rèn)證。第2次協(xié)商雙方交換報文3和報文4。協(xié)商的結(jié)果雙方得到了用于保護(hù)ISAKMP報文的認(rèn)證密鑰和加密密鑰,還得到了用于產(chǎn)生(保護(hù)用戶數(shù)據(jù)的)密鑰的(與具體算法有關(guān)的)數(shù)據(jù)。不過此時通信雙方還沒有相互認(rèn)證。續(xù)為了進(jìn)行身份認(rèn)證,雙方在第3次協(xié)商時交換報文5和報文6,用于攜帶標(biāo)識、鑒名和證書(可選),其結(jié)構(gòu)如圖12-23所示。圖12-23第3次協(xié)商中報文結(jié)構(gòu)注意在ISAKMPSA建立過程中,沒有使用IPSec的ESP或AH。ISAKMP報文交換由高層,如運(yùn)輸層和應(yīng)用層安全機(jī)制來保護(hù)。例如,在運(yùn)輸層有一個稱為安全套接字層(SecuritySocketLayer,SSL)的安全機(jī)制提供運(yùn)輸層的保護(hù)。在應(yīng)用層除了各種專用的安全系統(tǒng)外,有一個用于WWW服務(wù)安全的S-HTTP(SecureHTTP)協(xié)議提供基于瀏覽器應(yīng)用的安全保護(hù)。它們與IPSec的關(guān)系如圖12-24所示。圖12-24網(wǎng)絡(luò)信息的安全要由多層安全機(jī)制共同保證建立安全關(guān)聯(lián)建立了ISAKMPSA之后,接下來就要建立用于傳輸IP分組的安全關(guān)聯(lián)(在IETF草案中,這種安全關(guān)聯(lián)稱為非ISAKMPSA)。非ISAKMPSA建立的機(jī)制與ISAKMP建立的機(jī)制相似,由于篇幅所限,本書不再介紹。12.3.2IPSec使用的安全算法從AH和ESP以及ISAKMP/Oakley的介紹中讀者可以看到,IPSec的核心操作是圍繞加密和認(rèn)證算法的協(xié)商以及應(yīng)用展開的。AH和ESP可以看成是一種綜合應(yīng)用。安全算法比IPSec具有更基礎(chǔ)性的作用,它們不僅在IPSec安全框架中,而且還在網(wǎng)絡(luò)的各個層次中都有應(yīng)用。因此,本小節(jié)再簡要對它們進(jìn)行介紹。1.IPSec的加密算法IPSec在ESP中使用的加密算法是DES,用于給IP分組加密。另外,三重DES和IBM的CDMF(CommercialDataMaskingFacility)也有所使用。盡管協(xié)議也支持IDEA(InternationalDataEncryptionAlgorithm)和其他一些算法,但實際應(yīng)用較少。DES算法背景DES由IBM提出,并于1977年1月被美國定為聯(lián)邦信息標(biāo)準(zhǔn)。DES算法概述加密前,先對整個明文進(jìn)行分組(因此,DES屬于分組密碼算法)。每個分組長64比特。然后,對每個64比特二進(jìn)制數(shù)據(jù)進(jìn)行加密處理,產(chǎn)生一個64比特的密文分組。最后將各密文分組串接起來,就得到了整個明文的密文。64比特密文分組生成的過程如圖12-25所示。圖12-25DES加密過程函數(shù)f運(yùn)算過程(1)根據(jù)一個固定的變位和復(fù)制規(guī)則把32比特的Ri-1擴(kuò)展成48比特的數(shù),記為E(Ri-1)。(2)把E(Ri-1)與ki進(jìn)行異或運(yùn)算(#),把結(jié)果分為8組,每組6比特,記為B1,B2,…B8。即E(Ri-1)#ki=B1B2…B8。(3)把Bi經(jīng)過特定的變換(稱為S變換)得到4比特的一組數(shù)據(jù),記為Si(Bi)。每個Bi經(jīng)過的變換過程不一樣,因此要使用8個不同的S函數(shù)。續(xù)(4)將8個Si(Bi)按Bi的順序排好,再進(jìn)行一次變序(稱為P變換)得到f(Ri-1,ki)。P變換的作用是改變數(shù)據(jù)的輸出順序,其原理如圖12-26(a)所示。該P(yáng)變換把01234567的輸入變序成36071245。一個3對3的S變換如圖12-26(b)所示。3比特的輸入使第1個方框的某根輸出線置1(輸出線的順序等于輸入的值),其他線上的值為0。圖12-26P變換和S變換DES解密過程和加密相似,但16個密鑰的使用順序正好相反。每次迭代使用密鑰ki都不同。ki的實際長度是48比特,它是從原始64比特密鑰變換后的56比特中抽取的。電子密碼本模式ECM明文的各個分組經(jīng)加密后仍按原分組所在位置發(fā)送電子密碼本DES算法實質(zhì)上只起到了替換的作用,即用一個密文塊替換了一個明文塊,由于當(dāng)DES的輸入相同時,其輸出也相同,因此,ECM模式安全程度不高。密碼分組鏈接CBC模式可以解決ECM存在的密文被替換問題,提高DES的安全性。CBC的原理每個明文分組在加密之前先與一個密文分組進(jìn)行異或運(yùn)算,第1個密文分組與一個初始向量(InitializationVetor,IV)進(jìn)行異或。為了保證解密正確,該IV要與密文一起發(fā)送。CBC的原理如圖12-27所示。圖12-27CBC原理三重DES三重DES是為了增加DES的安全性,盡管在1979年尚沒有DES被破譯的報道,IBM就制定了三重DES方法,其原理很簡單,如圖12-28所示。圖12-28三重DES國際數(shù)據(jù)加密算法IDEA它是DES之后最著名的密鑰密碼算法。IDEA由瑞士的LaiX.和MasseyJ.于1990年設(shè)計。IDEA的基本運(yùn)算流程如圖12-29所示。圖12-29IDEA算法概述IDEA與DES相似,也是先將明文分塊成一個個64比特長的分組,每個分組經(jīng)過8次迭代和一次變換,得出64比特的密文。對于每一次迭代,每個輸出比特都與每個輸入比特有關(guān)。每一次迭代的具體運(yùn)算如圖12-30(b)所示。64比特的分組被分成4個16比特的塊參與運(yùn)算,運(yùn)算過程使用6個子密鑰,這6個密鑰是16比特長。在最后的變換運(yùn)算中使用4個子密鑰。這52個子密鑰是由IDEA128比特的密鑰生成的。2.共享密鑰產(chǎn)生算法下面,我們分析在DES中使用的密鑰是如何產(chǎn)生和交換的。讀者從對DES算法的介紹中可以看到,DES加密和解密使用相同的密鑰(這種算法稱為對稱密鑰算法),這就需要做2個工作:第一,加密者要和解密者互通密鑰信息;第二,密鑰要保密。顯然,第1個工作增加了第2個工作的難度,密鑰在通信雙方之間交換時容易被竊取。這是對稱密鑰算法不可克服的缺點。Diffie-Hellman算法DES中使用的共享秘密密鑰就由Diffie-Hellman密鑰交換算法產(chǎn)生。算法的基本步驟(1)Alice和Bob事先約定2個共同使用的數(shù):g和n,其中n是一個非常大的質(zhì)數(shù),并且(n-1)/2和(g-1)/2都是質(zhì)數(shù)。(2)Alice隨機(jī)挑選一個很大的數(shù)x,然后計算:

a=gxmodn(3)Bob隨機(jī)挑選一個很大的數(shù)y,然后計算:

b=gymodn

(4)Alice把a(bǔ)發(fā)送給Bob。

(5)Bob收到a后做計算:

k1=aymodn

(6)Bob將b發(fā)送給Alice。

(7)Alice收到b后做計算:

k2=bxmodn上述過程如圖12-30所示。圖12-30Diffie-Hellman

密鑰交換3.IPSec的認(rèn)證算法IPSec使用RSA算法進(jìn)行身份認(rèn)證。RSA算法是由美國MIT的Rivest、Shamir和Adleman于1976年提出。RSA算法是應(yīng)用最廣泛的公開密鑰算法。RSA算法的步驟(1)秘密地選擇2個很大的質(zhì)數(shù)p和q(典型地應(yīng)大于10100)。

(2)計算p和q的積n。

(3)選擇一個數(shù)e,e<n且要求e與(p-1)(q-1)互質(zhì)(也就是說,e與(p-1)(q-1)的最大公因子是1)。

(4)計算d,要求ed=1mod(p-1)(q-1)。

e稱為公開指數(shù),d稱為私有指數(shù)。舉例說明如何使用e和d進(jìn)行

安全通信(1)假設(shè)Alice要給Bob發(fā)送信息m,她使用RSA算法加密m,得到密文c=memodn。此處,Alice使用的e和n是Bob事先告訴她的,<e,n>稱為公開密鑰。因為Bob無需使用秘密的通道傳遞e和n,它們可以公開地被想給Bob發(fā)信的人得到。(2)Alice把c發(fā)給Bob。(3)Bob用如下方式解密:m=cdmodn。d是Bob私有的,<d,n>稱為私有密鑰。RSA加密通信模型如圖12-31所示。圖12-31RSA加密通信RSA與DES比較RSA與DES的一個顯著不同之處是RSA使用2個不同的密鑰,其中一個用于加密(公開密鑰),另一個用于解密(私有密鑰)。而DES加密和解密都使用同一個密鑰,因此要保管好密鑰,而且要保證密鑰從產(chǎn)生處安全地交給使用者。兩個密鑰不一樣的算法稱為非對稱算法。如果使用的密鑰部分是公開的,則算法稱為公開密鑰算法。讀者可能問了RSA如何進(jìn)行身份認(rèn)證呢?我們?nèi)匀煌ㄟ^一個例子來說明。舉例(1)假定Bob要求給他發(fā)信的人要簽上發(fā)信人的名字。(2)為此,Alice用自己的私有密鑰<d,n>對明文m加密,得:

s=mdmodn

s稱為Alice對m的數(shù)字簽名。因為s中包含了Alice不能抵賴的私有信息d和n。(3)Alice將s和m一起發(fā)給Bob。(4)Bob在接受m之前,先要確認(rèn)m是Alice發(fā)給他的。換句話說,他要驗證s的確是Alice對m的簽名。為此,他用Alice的公鑰對s解密,得:

m*=semodn(5)Bob比較m*是否與m一致。如果一致,則認(rèn)為m是Alice發(fā)的,否則,認(rèn)為m和s不是Alice發(fā)送的。上述身份認(rèn)證的過程如圖12-32所示。圖12-32RSA產(chǎn)生數(shù)字簽名用于身份認(rèn)證既要保密又要簽名的算法(1)假定Bob要求以密文給他發(fā)信,且要發(fā)信的人簽上自己的名字。(2)Alice用自己的私有密鑰<dA,nA>對明文m進(jìn)行簽名,得:

s=mdAmodnA(3)Alice使用Bob的公開密鑰eB和nB對s進(jìn)行加密,得密文:

c=seBmodnB(4)Alice把c發(fā)送給Bob。(5)Bob用私有密鑰對收到的密文解密,得:

s=cdBmodnB(6)然后,Bob用Alice的公開密鑰對s解密:

m=seAmodnA

得到明文m。上述過程如圖12-33所示。圖12-33RSA簽名+加密通信4.IPSec的證書證書是由以下部分組成的數(shù)字文件:

(1)證書持有者的身份標(biāo)識:它可以是IP地址、IP地址范圍、子網(wǎng)地址、域名、文本字符串。換句話說,證書可以證明這些信息是合法的。以這些信息為標(biāo)識的通信實體是合法的。

(2)簽發(fā)證書的認(rèn)證權(quán)威(CertificationAuthority,CA)機(jī)構(gòu)的公鑰:該公鑰用于驗證證書的合法性。

(3)簽發(fā)證書的日期。

(4)證書的有效期。

(5)證書的其他信息,如序列號。證書的實質(zhì)內(nèi)容是它聲明的通信實體以及該通信實體使用的公開密鑰。它對通信實體的證明是通過對其公開的密鑰的驗證實現(xiàn)的。證書的作用在Alice和Bob通信時,Jack插了進(jìn)來。他把自己的公鑰發(fā)給Bob,慌稱是Alice的,再把自己的公鑰發(fā)給Alice,慌稱是Bob的。這樣,Jack用自己的私鑰就可以輕易地解密Alice和Bob之間的通信。而且還可以進(jìn)一步實施更多的攻擊,例如偽造(栽贓)。顯然,如果Bob和Alice能夠在發(fā)信前驗證一下對方公鑰的真實性,就會避免上述攻擊的發(fā)生。證書就是對通信方及其公鑰的認(rèn)證方式。如何產(chǎn)生證書首先,我們來看一看證書產(chǎn)生的一般過程:

(1)申請證書:用戶A生成一對密鑰,然后把公開密鑰(連同該用戶A的標(biāo)識)等信息提交給CA。

(2)受理申請:如果用戶A的申請符合CA的規(guī)定,則CA從申請中提取公開密鑰,然后用Hash函數(shù)制作公開密鑰的MAC(摘要)。再用CA的私鑰加密MAC,得到用戶A公開密鑰的CA簽名SCA。最后,把用戶A的公開密鑰(以及用戶A的標(biāo)識等信息)和SCA組合在一起做成證書。

(3)發(fā)放證書:CA把生成的證書發(fā)給申請者。證書的產(chǎn)生過程如圖12-34所示。圖12-34CA產(chǎn)生證書的過程如何驗證證書當(dāng)用戶A和B之間需要確認(rèn)對方身份時,一方把對方出示的證書中的CA簽名用CA的公鑰解密,應(yīng)該得到對方公鑰的摘要,然后用CA使用的Hash函數(shù)制作對方公鑰的摘要。把2個摘要進(jìn)行比較。如果一致,則認(rèn)為對方身份真實,否則拒絕對方。上述證書驗證過程需要用戶知道2個事實:

(1)CA的公鑰:用于得到摘要。

(2)CA的Hash算法:用于計算簽名。另外,也可以采用向CA查詢的辦法來驗證證書。其原理如圖12-35所示。圖12-35證書查詢DSA算法的步驟(1)選擇一個質(zhì)數(shù)p,一般512<p<1024。(2)找出一個p-1的質(zhì)因子q。(3)計算:

g=h(p-1)/qmodp

其中h是一個小于p-1的數(shù),且h(p-1)/q>1。(4)另選一個數(shù)x,要求x<q,將x作為發(fā)送者的私鑰。(5)計算:

y=gxmodp

將y作為發(fā)送者的公鑰。(x,y)稱為長期密鑰對。續(xù)(6)發(fā)送者按如下方式對消息做簽名:

·產(chǎn)生一個比q小的隨機(jī)數(shù)k。

·計算:

r=(gkmodp)modq

s=(k-1(SHA(m)+xr))modq

(k,r)稱為會話密鑰對。(r,s)稱為m的簽名。(7)發(fā)送者發(fā)送(m,r,s)。續(xù)(8)接收者用如下方式做身份認(rèn)證計算:

w=s-1modq

u1=(SHA(m)*w)modq

u2=(rw)modq

v=(gu1yu2modp)modq如果v等于r,則認(rèn)為身份合法。其他產(chǎn)生證書的方法另外,除了DSA算法外,IPSec還使用RSA加密和RSA簽名2個方法產(chǎn)生證書。Hash函數(shù)具有以下特征:

(1)Hash函數(shù)必須能以任意長度的數(shù)據(jù)作為輸入,而輸出是定長的。

(2)對任何給定的報文m,計算其Hash函數(shù)值是很容易的。

(3)對任何給定的Hash函數(shù)值h,要找出m,使h=Hash(m)在計算上是不可行的。

(4)對任意給定的m,要找到m*≠m且Hash(m)=Hash(m*)在計算上是不可行的。Hash函數(shù)產(chǎn)生MAC的方式如圖12-36所示。圖12-36Hash函數(shù)產(chǎn)生MACMD5MD5是Rivest提出的MD算法的第5個版本(RFC1321,1992年)。此算法以任意長的報文作為輸入,然后輸出128比特的MAC。該MAC稱為摘要。MD5算法的大致過程(1)Alice計算m的余數(shù):r=mmod264,然后把r加在m的后面。(2)在m和r之間填充1~512比特,使填充后的總長度是512比特的整數(shù)倍。填充比特的第1位是1,后面都是0。記新報文為M。(3)把M分割成長度為512比特的數(shù)據(jù)塊,然后進(jìn)行如圖12-37所示的MAC計算。圖12-37MDMAC的生成SHA由美國NSA(NationalSecurityAgency)開發(fā)并得到美國NIST(NationalInstituteofStandardsTechnology)支持。SHA-1是其新版本,作為美國政府標(biāo)準(zhǔn)。SHA的思想與MD5類似,以變長的數(shù)據(jù)作為輸入,經(jīng)復(fù)雜的計算后得到160比特的MAC。SHA-1比MD5更安全,但計算MAC的速度慢。

IPSec使用MD5和SHA-1作為Hash函數(shù)計算MAC的用法(1)加密MD5。(2)加密SHA-1。(3)HMAC-MD5-96。(4)HMAC-SHA-1-96加密MD5用于AH認(rèn)證的作法如圖12-38所示。圖12-38加密MD5在AH的應(yīng)用HMAC-MD5-96IBM公司提出的一種更強(qiáng)大的方法,HMAC(HashMAC)-MD5-96的作法如圖12-39所示。圖12-39HMAC-MD5-9612.4QOS技術(shù)和體系結(jié)構(gòu)12.4.1什么是QoS技術(shù)1.服務(wù)的含義

計算機(jī)網(wǎng)絡(luò)服務(wù)是指通信網(wǎng)絡(luò)對主機(jī)間數(shù)據(jù)傳輸所需的效率和可靠性所提供的保證機(jī)制。通信網(wǎng)絡(luò)提供的服務(wù)分為2大類:面向連接服務(wù)(connect-orientedservice)和無連接服務(wù)(connectlessservice)。面向連接服務(wù)在面向連接的通信中,每一次完整的數(shù)據(jù)傳輸都必須經(jīng)過建立連接、使用連接、釋放連接三個過程。在數(shù)據(jù)傳輸過程中,各分組不攜帶信宿地址,而使用連接號(connectId)。服務(wù)類型中的連接類似一個管道,發(fā)送者在一端放入數(shù)據(jù),接收者從另一端取出數(shù)據(jù)。面向連接的特點是:收發(fā)數(shù)據(jù)不但順序一致,而且內(nèi)容相同,所以其可靠性好,但效率不高。電話系統(tǒng)服務(wù)提供的就是面向連接的服務(wù)。無連接服務(wù)在無連接的通信中,每個分組都攜帶完整的信宿地址,各分組在系統(tǒng)中獨(dú)立傳送。無連接服務(wù)的特點是不能保證分組的先后順序(由于先后發(fā)送的分組可能經(jīng)歷不同路徑去往信宿,所以先發(fā)的不一定先到)。另外,無連接服務(wù)也不能保證丟失分組的恢復(fù)或重傳,換言之,分組不能保證一定被收到或一定能正確接收。無連接服務(wù)的可靠性不好,但因其省去了許多保證機(jī)制,使其獲得了較高的效率。郵政系統(tǒng)提供的就是無連接的服務(wù)。提示效率和可靠性是統(tǒng)一在服務(wù)中的一對矛盾,對二者不同的要求,決定了服務(wù)類型的不同。正是它們的對立統(tǒng)一,推動了計算機(jī)網(wǎng)絡(luò)技術(shù)的發(fā)展。盡力而為服務(wù)IP協(xié)議轉(zhuǎn)發(fā)數(shù)據(jù)的服務(wù)被稱為盡力而為(besteffort)的服務(wù),它所做的工作就是把IP分組按照路由表的指示轉(zhuǎn)發(fā)到下一跳路由器,不做任何與保證數(shù)據(jù)的服務(wù)質(zhì)量(如防止分組丟失)有關(guān)的網(wǎng)絡(luò)資源控制工作。傳統(tǒng)IP網(wǎng)絡(luò)的服務(wù)質(zhì)量主要是通過TCP的確認(rèn)和重傳機(jī)制保證的。2.服務(wù)質(zhì)量的含義服務(wù)質(zhì)量是通信網(wǎng)絡(luò)傳輸用戶數(shù)據(jù)的質(zhì)量。當(dāng)用戶數(shù)據(jù)總能能被及時傳給接收者時,我們說網(wǎng)絡(luò)的服務(wù)質(zhì)量好,反之就說網(wǎng)絡(luò)的服務(wù)質(zhì)量不好。說到服務(wù)質(zhì)量QoS,往往給人的感覺是物理地增加帶寬,增加存儲空間等網(wǎng)絡(luò)資源。實質(zhì)上,QoS保證是指采取某種策略,在現(xiàn)有資源基礎(chǔ)上,提高資源利用率,從而改善服務(wù)質(zhì)量。3.QoS技術(shù)含義QoS技術(shù)是Internet迅速發(fā)展的產(chǎn)物。QoS技術(shù)通過資源預(yù)留、預(yù)測、分類、優(yōu)先級區(qū)分等綜合控制手段,提高網(wǎng)絡(luò)基礎(chǔ)設(shè)施資源的利用率,保證數(shù)據(jù)以某種服務(wù)級別在網(wǎng)絡(luò)中一致地傳輸,提供主機(jī)間端到端的服務(wù)質(zhì)量。4.QoS技術(shù)類型-分類一(1)以資源預(yù)留協(xié)議RSVP為代表的集成服務(wù)(IntegratedServices,IntServ):在這類QoS技術(shù)中,網(wǎng)絡(luò)資源根據(jù)網(wǎng)絡(luò)用戶的請求而分配。IntServ在BobBraden和DaveClark于1994年6月提交的RFC1633中規(guī)范。(2)以優(yōu)先級技術(shù)為代表的區(qū)分服務(wù)(DifferentiatedServices,DiffServ):在這類QoS技術(shù)中,網(wǎng)絡(luò)元素依據(jù)網(wǎng)絡(luò)帶寬管理策略準(zhǔn)則對網(wǎng)絡(luò)通信量(traffic)進(jìn)行優(yōu)先級分類并為之指定資源。DiffServ在StevenBlake和DavidL.Black于1998年12月提交的RFC2475中規(guī)范。這2類技術(shù)的含義如圖12-42所示。圖12-40IntServ和DiffServ的

含義QoS技術(shù)類型-分類二(1)按每個流(perflow)處理:流是兩個應(yīng)用之間一個獨(dú)立的、方向單一的數(shù)據(jù)包序列。流用以下5指標(biāo)唯一標(biāo)識:

·傳輸協(xié)議

·源地址

·源端口號

·目的地址

·目的端口號(2)按每個聚合處理每個聚合由2個或多個流組成。聚合中的流一般具有相同的標(biāo)識信息,如地址、端口、標(biāo)簽、優(yōu)先級或某些認(rèn)證信息。集成服務(wù)和區(qū)分服務(wù)技術(shù)可以根據(jù)用戶QoS需求的不同而采用數(shù)據(jù)流或聚合處理方法。RSVP通過控制信令支持網(wǎng)絡(luò)資源預(yù)留,RSVP通常被視為按每個流的QoS技術(shù),同時也支持按每個聚合處理。區(qū)分服務(wù)可以對流和聚合提供分類和區(qū)分優(yōu)先級。其他技術(shù)除了IntServ和DiffServ方法外,目前,提供QoS保證的重要技術(shù)還包括以下2個:(1)MPLS流量工程:MPLS通過實施流量工程提供QoS保證。(2)子網(wǎng)帶寬管理SBM:SBM(SubnetBandwidthManagement)在共享式和交換式的IEEE802網(wǎng)絡(luò)的第2層支持分類和優(yōu)先級區(qū)分。上述QoS技術(shù)提供的服務(wù)級別以及實現(xiàn)的位置如表12-3所示。表12-3QoS服務(wù)級別及其實現(xiàn)的位置QoS級別實現(xiàn)的位置服務(wù)最高

最低網(wǎng)絡(luò)和應(yīng)用RSVP服務(wù)(給應(yīng)用提供反饋)網(wǎng)絡(luò)和應(yīng)用RSVP加載服務(wù)(loadservice)(給應(yīng)用提供反饋)網(wǎng)絡(luò)MPLS網(wǎng)絡(luò)和應(yīng)用區(qū)分服務(wù)DiffServ在網(wǎng)絡(luò)核心的入口為數(shù)據(jù)流(flow)實施,與RSVP預(yù)留服務(wù)級別相對應(yīng)。優(yōu)先級使用LAN的SBM。網(wǎng)絡(luò)和應(yīng)用基于源應(yīng)用流的DiffServ或SBM網(wǎng)絡(luò)網(wǎng)絡(luò)核心入口的DiffServ

盡力而為(besteffort)服務(wù)12.4.2集成服務(wù)RSVP是一個信令協(xié)議。它提供資源預(yù)留的建立與控制機(jī)制。RSVP在IP網(wǎng)絡(luò)上提供集成服務(wù)。在QoS技術(shù)中,RSVP是最復(fù)雜的,同時,RSVP提供了最高級別的服務(wù)質(zhì)量保證。1.IntServ實現(xiàn)參考框架IntServ集成模型標(biāo)準(zhǔn)RFC1633提出了實現(xiàn)集成服務(wù)的參考框架。該框架由以下幾部分組成。(1)Setup協(xié)議:Setup協(xié)議用于主機(jī)或路由器動態(tài)地分配和保留資源,以滿足特殊數(shù)據(jù)流的服務(wù)需求。RSVP就是一個Setup協(xié)議(2)流說明:說明流所具有的QoS指標(biāo)參數(shù)。續(xù)(3)流量控制:它由以下3個組件實現(xiàn):·分組調(diào)度器(scheduler):其基本功能是對輸出隊列重排序,它處于典型操作系統(tǒng)的輸出驅(qū)動器級別,并與數(shù)據(jù)鏈路層協(xié)議保持一致。具體的調(diào)度算法根據(jù)輸出媒體訪問控制和網(wǎng)絡(luò)接口技術(shù)而定。例如,經(jīng)典IP網(wǎng)絡(luò)的FIFO(先進(jìn)先出)就是一種盡力而為服務(wù)模型的調(diào)度算法?!し诸惼?classifier):以分組頭部中特定字段的內(nèi)容為依據(jù)鑒別或把數(shù)據(jù)進(jìn)行分類。為了進(jìn)行流量控制,每個輸入的分組必須劃分成某些類,屬于同一類的所有分組得到分組調(diào)度器的相同對待。分類工作由分組分類器負(fù)責(zé)。類是一種由路由器定義的本地屬性,換句話說,同一分組可以被不同的路由器分成不同的類。續(xù)·接納控制(admissioncontrol):確定一個機(jī)器(主機(jī)、路由器或交換機(jī))是否能夠支持某特定數(shù)據(jù)流所需的QoS。它產(chǎn)生一個本地的接受或拒絕決定。IntServe服務(wù)實現(xiàn)參考框架的組成如圖12-41所示。圖12-41IntServ服務(wù)實現(xiàn)

參考框架2.IntServ的服務(wù)類型通信的雙方要約定需要服務(wù)的類型。集成服務(wù)類型包括以下2種:(1)保證服務(wù)(guaranteedservice):該類型的服務(wù)為數(shù)據(jù)提供專用的帶寬和限定的端到端延時。保證服務(wù)是為具有極嚴(yán)格的延時和帶寬要求的應(yīng)用設(shè)計的,如高保真電話會議。(2)受控負(fù)荷服務(wù)(controlled-loadservice):該類型應(yīng)用于延時和帶寬要求不是很嚴(yán)格的場合。它的延時上限可以不必限定。在沒有負(fù)荷的條件下,這種類型等效于盡力而為(besteffort)服務(wù)。它比盡力而為服務(wù)要好,但不能象保證類型那樣提供嚴(yán)格的有界的服務(wù)(boundedservice)。當(dāng)網(wǎng)絡(luò)發(fā)生擁塞時,受控負(fù)荷服務(wù)的性能只是輕微下降,它能保證數(shù)據(jù)流的延時和丟失率在一個可控的范圍內(nèi)。3.RSVP資源預(yù)留原理資源預(yù)留建立的大致過程包括以下4步:

(1)源主機(jī)定義通信量帶寬、延遲和抖動等參數(shù)的范圍,然后發(fā)送RSVPPATH報文,該報文包含通信量聲明信息(TrafficSpecification,TSpec)。PATH報文被封裝在IP分組或UDP數(shù)據(jù)報中轉(zhuǎn)發(fā)。在轉(zhuǎn)發(fā)過程中,中間路由器把必要的信息(稱為通路狀態(tài))填入PATH報文。這樣,PATH到達(dá)目的主機(jī)時,PATH就記錄了從源到目的主機(jī)的完整的通路信息,如路由器的地址和路由器QoS特性。續(xù)(2)目的主機(jī)產(chǎn)生RSVPRESV報文。與TSpec對應(yīng),RESV報文包含請求聲明(RequestSpecification,RSpec),它指明需要的集成服務(wù)類型。RESV報文還包含過濾聲明(FilterSpecification,F(xiàn)ilterSpec),它指明需要預(yù)留資源的數(shù)據(jù)的運(yùn)輸協(xié)議及端口號。RSpec和FilterSpec構(gòu)成了流描述符(flow-descriptor),它與數(shù)據(jù)流一一對應(yīng),路由器可以用它來標(biāo)識預(yù)留資源。該描述符被傳遞給通路上每個支持RSVP的路由器的流量控制組件。接納控制和策略控制功能判斷該QoS請求能否被支持,如果可以,則分類器和調(diào)度器被刷新。續(xù)(3)當(dāng)RESV報文到達(dá)PATH報文經(jīng)過的路由器時,路由器檢查RSpec的請求是否能被滿足,如果可以,則路由器記錄RESV的消息,分配資源,并把RESV向源主機(jī)轉(zhuǎn)發(fā)。如果請求被拒絕,則路由器返回一個錯誤消息。(4)當(dāng)RESV沿著PATH報文經(jīng)過的通路返回源主機(jī)時,一條由源到目的主機(jī)的具有資源保證的通路就建立起來。上述過程如圖12-42所示。圖12-42RSVPQoS原理:RSVPPATH和RESV報文12.4.3區(qū)分服務(wù)從RSVP集成服務(wù)原理的介紹中讀者可以看到,RSVP要在源主機(jī)和目的主機(jī)之間通過PATH和RESV報文的交換,在數(shù)據(jù)流要經(jīng)過的路由的沿途節(jié)點為每個數(shù)據(jù)流預(yù)留資源。同時,在所有節(jié)點要維護(hù)相應(yīng)的數(shù)據(jù)流說明、分類、接納和調(diào)度的規(guī)則。因此,RSVP資源預(yù)留可以提供端到端的QoS保證(主機(jī)-主機(jī)間的,需要全部中間節(jié)點支持RSVP)。與區(qū)分服務(wù)相比,集成服務(wù)的成本要高,實現(xiàn)比較復(fù)雜。區(qū)分服務(wù)特點(1)區(qū)分服務(wù)通過優(yōu)先處理QoS需求高的數(shù)據(jù)實現(xiàn)QoS保證,而不是在路由沿途預(yù)留資源。(2)區(qū)分服務(wù)也對數(shù)據(jù)進(jìn)行分類,但分類的目的是定義數(shù)據(jù)的優(yōu)先級,而不僅僅是歸類。(3)數(shù)據(jù)分類和處理所依據(jù)的標(biāo)識在網(wǎng)絡(luò)的邊緣被定義,網(wǎng)絡(luò)的核心路由器(第3層設(shè)備)根據(jù)標(biāo)識的屬性對分組進(jìn)行處理。標(biāo)識的定義可以借助現(xiàn)有協(xié)議PDU中的某個字段,這樣,對數(shù)據(jù)的區(qū)分處理和現(xiàn)有的協(xié)議機(jī)制可以結(jié)合在一起,而不象集成服務(wù)那樣,由Setup協(xié)議去預(yù)留資源,再由TCP/IP運(yùn)輸數(shù)據(jù)。續(xù)(4)區(qū)分服務(wù)可以看成是每跳行為(Per-HopBehavior,PHB),每個數(shù)據(jù)流或用戶轉(zhuǎn)發(fā)狀態(tài)不必在網(wǎng)絡(luò)內(nèi)核保存,只需在服務(wù)提供的流量聚集處保存。而集成服務(wù)的作用范圍是源主機(jī)到目的主機(jī)的路由上的所有節(jié)點。1.區(qū)分服務(wù)的分類(1)加速轉(zhuǎn)發(fā)(ExpeditedForwarding,EF):EF服務(wù)具有一個單一的區(qū)分服務(wù)編碼(DiffServCodePiont,DSCP。RFC2474)。EF將延遲和抖動最小化,提供了聚合的最高級別的服務(wù)質(zhì)量。任何超過通信量約定(profile)的通信量會被丟棄。通信量約定由本地策略制定。(2)保證轉(zhuǎn)發(fā)(AssuredForwarding,AF):AF服務(wù)包含4個類別(class)每個類別有3個優(yōu)先級,因此共有4×3個服務(wù)級別。2.服務(wù)編碼區(qū)分服務(wù)使用DS字段定義服務(wù)編碼。iffServ使用IPv4頭部的TOS(TypeofService)字段作為DS字段(IPv6中的TC字段被作為DS字段),因為TOS字段在公用IP實現(xiàn)中并沒有使用(盡管它用來標(biāo)識優(yōu)先級和支持TOS路由)。DS字段的結(jié)構(gòu)如圖12-43所示。圖12-43IPv4TOS字段用于

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

評論

0/150

提交評論