版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第12章IP網(wǎng)絡(luò)控制技術(shù)本章提綱12.1差錯(cuò)控制12.1.1檢錯(cuò)編碼12.1.2IP的差錯(cuò)控制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ù)包括差錯(cuò)控制、通信量控制、安全技術(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)容,使讀者對(duì)上述技術(shù)有個(gè)基本的認(rèn)識(shí)。12.1差錯(cuò)控制編碼信號(hào)在傳輸過程中受到干擾時(shí),就有可能使某個(gè)或某幾個(gè)“1”變成“0”,或使“0”變成“1”,這時(shí)就發(fā)生了差錯(cuò)。顯然,接收方在接受數(shù)據(jù)之前,必須判斷數(shù)據(jù)是否有差錯(cuò)。判斷是否存在差錯(cuò)叫檢錯(cuò)。檢糾錯(cuò)方法當(dāng)接收方檢測出差錯(cuò)以后,為了得到正確的數(shù)據(jù),它可以采取2種作法以得到正確的數(shù)據(jù),即:(1)通知發(fā)送方重發(fā)數(shù)據(jù):把錯(cuò)誤數(shù)據(jù)的特征信息(例如數(shù)據(jù)幀編號(hào))反饋給發(fā)送方,要求發(fā)送方重新發(fā)送該數(shù)據(jù),直至接收到無差錯(cuò)的數(shù)據(jù)為止。這種方式的典型方法是自動(dòng)請(qǐng)求重發(fā)ARQ(AutomaticRepeatreQuest)。(2)自己糾正數(shù)據(jù)中的差錯(cuò)(糾錯(cuò)):通過一定的算法確定差錯(cuò)的具體位置(檢錯(cuò)不能做到這點(diǎn)),并自動(dòng)加以糾正。這種方式的典型方法是FEC(ForwardErrorCorrection)。當(dāng)差錯(cuò)超出糾錯(cuò)范圍時(shí),F(xiàn)EC就無能為力了。12.1.1檢錯(cuò)編碼為了能對(duì)數(shù)據(jù)檢糾錯(cuò),需要對(duì)數(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比特?cái)?shù)據(jù)與k比特?cái)?shù)據(jù)要一一對(duì)應(yīng)。(2)編碼數(shù)據(jù)之間的差異要盡可能的大。漢明距離n-k比特的監(jiān)督位與k比特的數(shù)據(jù)在n比特的編碼數(shù)據(jù)中一起發(fā)送給接收方。漢明距離是指一種編碼的全部碼字兩兩之間距離的最小值,2個(gè)碼字之間的距離是指對(duì)應(yīng)位置上二進(jìn)制值不同數(shù)字的個(gè)數(shù)。例如,碼字10010110001和11001010101的第2,4,5,6和9位(從左至右)的值不同,因此,它們之間的距離是5。如圖12-1所示。圖12-1漢明距離常用的檢錯(cuò)碼(1)恒比碼:在n比特的恒比碼中,恒定有k比特的值為“1”,另外有n-k比特值為“0”。當(dāng)接收方收到不符合此規(guī)則的編碼時(shí),就判斷有差錯(cuò)。我國采用的恒比碼中n=5,組成代表0~9十個(gè)數(shù)字的編碼,如表12-1所示。表12-1恒比碼數(shù)字電碼數(shù)字電碼012340110101011110011011011010567890011110101111000111010011(2)垂直水平奇偶校驗(yàn)碼垂直水平奇偶校驗(yàn)碼也稱縱橫奇偶校驗(yàn)或方陣碼。在這種校驗(yàn)碼中,每一字符占據(jù)一列,低位比特在上,高位比特在下。每個(gè)字符的第8位比特(b8)作為垂直奇偶校驗(yàn)位。若干字符縱向排列形成一個(gè)方陣,各字符的同一行比特形成水平奇偶校驗(yàn)位,放在在每一行的最右邊一位。一個(gè)字符中1的個(gè)數(shù)是奇數(shù)時(shí)垂直校驗(yàn)位=1,否則為0;一行中1的個(gè)數(shù)是奇數(shù)時(shí)水平校驗(yàn)位=1,否則為0。表12-2所示為垂直水平奇偶
校驗(yàn)碼結(jié)構(gòu)b110101010101010b201100110011001
b300011110000111b400000001111111
b500000000000000
b610100110010010
b7010110011011011111000b8001011001101000(3)循環(huán)冗余校驗(yàn)碼在n比特的循環(huán)冗余校驗(yàn)碼(CyclicRedundancyCheck,CRC)中,有k比特的信息比特和n-k比特的監(jiān)督比特。監(jiān)督比特由信息比特按照一定的算法產(chǎn)生。這種編碼的碼字循環(huán)移位后得到碼字也是CRC編碼的一個(gè)碼字,換句話說,如果用Ci表示碼字的第i比特,則Cn-1Cn-2…C1C0、Cn-2Cn-3…C0Cn-1、…、C0Cn-1…C2C1都是CRC碼字,這就是循環(huán)的含義。監(jiān)督比特由以下算法計(jì)算把k比特信息比特表示成M(x)=Mk-1xk-1+Mk-2xk-2+…+M1x+M0
其中Mi(i=0,…,k-1)就是k比特的值(0或1)。例如,如果信息比特是10011,則對(duì)應(yīng)的M(x)=x4+x+1。稱M(x)為報(bào)文多項(xiàng)式。常用的G(x)有以下3個(gè)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)還有一種檢錯(cuò)能力更強(qiáng)的G(x),即:
G(x)=x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+1CRC定義設(shè)M(x)的編碼對(duì)應(yīng)的多項(xiàng)式為T(x),則CRC定義為:
T(x)=Xn-kM(x)-C(x)
其中C(x)是Xn-kM(x)除以G(x)的余式。顯然T(x)能被G(x)除盡。檢錯(cuò)原則發(fā)送方發(fā)送的是T(x)系數(shù)對(duì)應(yīng)的比特序列Tn-1Tn-2…To。接收方收到n比特編碼后,用它們對(duì)應(yīng)的多項(xiàng)式除以G(x),如果能除盡,則認(rèn)為接收的比特沒有錯(cuò),否則,認(rèn)為有錯(cuò)誤。讀者可能會(huì)問在T(x)的比特序列Tn-1Tn-2…To中哪些比特是M(x)的呢?換句話說,接收方判定沒有差錯(cuò)之后,如何從T(x)中分離出M(x)呢?實(shí)際上,存在以下對(duì)應(yīng)關(guān)系:Tn-1=MK-1,Tn-2=MK-2,…,Tn-k=M0。因此,接收方提取Tn-1Tn-2…To的左邊k比特即可。為什么存在上述對(duì)應(yīng)關(guān)系呢?原因在于G(x)是經(jīng)過精心定義的特殊多項(xiàng)式,它具有使上述關(guān)系成立的特性。CRC應(yīng)用在802.3以太網(wǎng)MAC幀中的FCS字段放入的就是32比特的CRC監(jiān)督比特值。HDLC幀中FCS字段值是由CRC-CCITT生成多項(xiàng)式計(jì)算的監(jiān)督比特值。在IP頭部的檢驗(yàn)和字段沒有使用CRC編碼,原因是該檢驗(yàn)字段只控制頭部的差錯(cuò),沒有包括數(shù)據(jù)字段,因而沒有使用功能強(qiáng),但計(jì)算量大的CRC編碼。IP頭部檢驗(yàn)和的計(jì)算方法將IP頭部看作以16比特為單位的比特段序列,先將檢驗(yàn)和字段值置零,然后將所有的16比特段相加,再求和的二進(jìn)制反碼作為檢驗(yàn)和的值。接收方收到IP分組后,將頭部的所有16比特相加(包括檢驗(yàn)和),如果頭部沒有發(fā)生錯(cuò)誤,則和必全為1。否則即認(rèn)為出錯(cuò),并將IP分組丟棄。12.1.2IP的差錯(cuò)控制首先我們先回顧一下IP協(xié)議的特點(diǎn)。IP協(xié)議是一個(gè)無連接的協(xié)議,它在發(fā)送IP分組之前并不建立到接收方的連接,它只是通過路由選擇知道下一跳路由器,然后把IP分組發(fā)送給它。另外,源IP協(xié)議不知道它發(fā)送出去的IP分組在去往目的主機(jī)的路上會(huì)出現(xiàn)哪些問題,以及網(wǎng)絡(luò)工作的一些細(xì)節(jié),甚至不知道IP分組是否被目的主機(jī)接收??傊?,IP協(xié)議缺乏差錯(cuò)控制、流量控制、管理查詢功能以及完善的輔助機(jī)制,導(dǎo)致IP分組傳輸?shù)目煽啃圆桓?。為了彌補(bǔ)IP協(xié)議存在的上述問題,在不改動(dòng)IP協(xié)議的前提下,定義了ICMP。1.ICMP的差錯(cuò)報(bào)告IP分組在傳輸過程中會(huì)出現(xiàn)以下異常情況,它們的出現(xiàn)會(huì)觸發(fā)ICMP報(bào)文的發(fā)送。這些異常情況包括:(1)目的站不可達(dá):當(dāng)路由器不能通過路由選擇為IP分組找到下一跳路由器或目的主機(jī)時(shí),稱這種情況是目的站不可達(dá)。此時(shí),路由器會(huì)發(fā)送ICMP目的站不可達(dá)報(bào)文給主機(jī),通知造成目的站不可達(dá)的原因,例如是網(wǎng)絡(luò)不可達(dá)、主機(jī)不可達(dá)、協(xié)議不可達(dá)、端口不可達(dá),還是其他管理上的原因(如人為設(shè)置的過濾器)。(2)擁塞當(dāng)路由器或目的主機(jī)接收到過多的IP分組而來不及轉(zhuǎn)發(fā)或處理時(shí),稱這種情況是擁塞。此時(shí),路由器或目的主機(jī)會(huì)發(fā)送ICMP源站抑制報(bào)文給源站,通知擁塞的發(fā)生。源站收到源站抑制報(bào)文之后會(huì)降低發(fā)送速率直至不再收到源站抑制報(bào)文。(3)超時(shí)當(dāng)IP分組的TTL字段值等于0時(shí),或者當(dāng)一個(gè)報(bào)文的分片沒有在一定時(shí)間內(nèi)到達(dá)目的主機(jī)時(shí),稱這種情況是超時(shí)。此時(shí),路由器或目的主機(jī)會(huì)向源站發(fā)送ICMP超時(shí)報(bào)文通知發(fā)生超時(shí)。(4)參數(shù)出錯(cuò)當(dāng)IP分組頭部的參數(shù)出現(xiàn)二義性或某個(gè)字段中缺少某個(gè)值時(shí),稱這種情況是參數(shù)問題。此時(shí),路由器或目的主機(jī)會(huì)向源站發(fā)送ICMP參數(shù)問題報(bào)文通知參數(shù)出錯(cuò)。(5)路由過時(shí)因?yàn)橹鳈C(jī)是不參與路由更新的,因此,主機(jī)上的路由表會(huì)過時(shí),為了保證主機(jī)路由表的時(shí)效性,主機(jī)的默認(rèn)路由器會(huì)發(fā)送ICMP改變路由報(bào)文給主機(jī),通知最新的路由信息。讀者可能會(huì)問IP分組被丟棄了,相應(yīng)的數(shù)據(jù)如何再得到呢?這就需要IP分組重傳。重傳IP分組所需要的必要信息由ICMP差錯(cuò)報(bào)文反饋給源主機(jī)。ICMP差錯(cuò)報(bào)文與被丟棄IP分組的關(guān)系如圖12-2所示。圖12-2ICMP差錯(cuò)報(bào)文的數(shù)據(jù)由被丟棄的IP分組而來ICMP差錯(cuò)報(bào)告報(bào)文的一般格式如圖12-3所示。圖12-3ICMP報(bào)文字端含義(1)類型:占8比特,指明差錯(cuò)的種類。(2)代碼:占8比特,指明引起錯(cuò)誤的原因。(3)校驗(yàn)和:占16比特,其值的計(jì)算與IP分組中校驗(yàn)和的計(jì)算一致。校驗(yàn)的范圍包括整個(gè)報(bào)文。(4)頭部的其余部分與類型字段有關(guān),當(dāng)類型是目的站不可達(dá)、源站抑制、超時(shí)時(shí),該字段值為0。當(dāng)類型是參數(shù)問題報(bào)文時(shí),該字段由2部分組成,如圖9-10所示。其中指針指向有問題的字節(jié)(代碼=0時(shí)。當(dāng)代碼=1時(shí),指針=0)。當(dāng)類型是改變路由報(bào)文時(shí),該字段是目標(biāo)路由器的IP地址,即IP分組的下一跳路由器地址。2.ICMP查詢除了報(bào)告IP分組在轉(zhuǎn)發(fā)和處理上存在的問題之外,ICMP還具有診斷和查詢功能,用于了解掌握網(wǎng)絡(luò)的運(yùn)行情況。這項(xiàng)功能通過ICMP查詢報(bào)文(圖12-4)實(shí)現(xiàn)。圖12-4ICMP查詢報(bào)文ICMP報(bào)文封裝的過程如圖12-5所示。圖12-5ICMP的封裝12.2通信量控制在計(jì)算機(jī)網(wǎng)絡(luò)中有一種普遍存在的問題,即接收方因不能及時(shí)處理到來的數(shù)據(jù)而不得不把部分?jǐn)?shù)據(jù)丟棄,嚴(yán)重時(shí)甚至導(dǎo)致接收方不能正常工作。例如,當(dāng)發(fā)送方在一個(gè)相對(duì)較快或負(fù)載較輕而接收方在一個(gè)相對(duì)較慢或負(fù)載較重的機(jī)器上運(yùn)行時(shí),就會(huì)出現(xiàn)上述問題。我們稱這個(gè)問題為通信量控制問題。本節(jié)要介紹的就是解決這個(gè)問題的方法。讀者可能會(huì)問發(fā)送方和接收方是指主機(jī)/路由器嗎?我們說,發(fā)送方和接收方準(zhǔn)確的含義是參考模型中的層實(shí)體,例如層協(xié)議軟件。換句話說,當(dāng)源機(jī)器中的第n層實(shí)體是發(fā)送方時(shí),目的機(jī)器的對(duì)等層就是接收方。當(dāng)然,用戶關(guān)心的是應(yīng)用層數(shù)據(jù)是否能夠被全部接收,也就是說,源主機(jī)應(yīng)用程序的數(shù)據(jù)能否被目的主機(jī)接收。例如一個(gè)WWW服務(wù)器的頁面是否完整地被下載到瀏覽器窗口中。原因但是,源主機(jī)應(yīng)用層數(shù)據(jù)不能被目的主機(jī)應(yīng)用層接收的原因不一定只存在于應(yīng)用層實(shí)體(例如服務(wù)器軟件或?yàn)g覽器故障),也有可能是運(yùn)輸層、網(wǎng)絡(luò)層、數(shù)據(jù)鏈路層,甚至是物理層引起的。例如:(1)目的主機(jī)運(yùn)輸層TCP端口的緩沖區(qū)溢出,造成TCP報(bào)文段被丟棄。(2)路由器CPU速度較慢,使得IP層來不及完成路由表刷新、路由選擇、IP分組的分片封裝以及轉(zhuǎn)發(fā)工作,導(dǎo)致IP分組積壓(3)相鄰WAN交換機(jī)的數(shù)據(jù)鏈路層之間由于一方發(fā)送幀的數(shù)量超過了對(duì)方的處理能力,造成幀被丟棄。結(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)際層以存儲(chǔ)轉(zhuǎn)發(fā)方式發(fā)送數(shù)據(jù),數(shù)據(jù)以分組形式獨(dú)立被路由(第三層交換除外)。當(dāng)過量的分組在路由器積壓時(shí),稱為擁塞。因此,網(wǎng)際層的通信量控制被稱為擁塞控制。通信量控制方法(1)滑動(dòng)窗口法:它是主要的流量控制方法。TCP使用了該方法。數(shù)據(jù)鏈路層也使用該方法。有意思的是,TCP也用它控制擁塞。(2)擁塞預(yù)警法:IP層ICMP使用的就是該方法。另外,幀中繼也使用類似的方法。(3)通信量整形法:ATM的擁塞控制使用該方法。常用的通信量整形法包括漏桶法和令牌桶法。(4)加權(quán)公平隊(duì)列法:它用于增強(qiáng)擁塞預(yù)警法的效力。IP路由器使用該方法。12.2.1流量控制流量控制(flowcontrol)又可以稱為流控制,因?yàn)檫@種通信量控制的對(duì)象是數(shù)據(jù)流而不是單個(gè)數(shù)據(jù)(例如分組)。數(shù)據(jù)流是在一個(gè)連接上發(fā)送的數(shù)據(jù),如第2層點(diǎn)到點(diǎn)數(shù)據(jù)鏈路上的幀序列,或是第4層TCP連接上的TCP報(bào)文段串的字節(jié)流。流量控制的基本思想根據(jù)接收方的可用緩存空間大小和處理數(shù)據(jù)能力來發(fā)送數(shù)據(jù)。其典型的方法就是滑動(dòng)窗口法。TCP就采用這種方法。1.滑動(dòng)窗口窗口是指運(yùn)輸層軟件使用的緩存的一部分,而且這部分空間是空閑的。當(dāng)緩存中有數(shù)據(jù)進(jìn)入或被應(yīng)用程序取走時(shí),空閑空間的位置在緩存中會(huì)變動(dòng)。因此,稱之為滑動(dòng)窗口。發(fā)送方和接收方在一個(gè)連接上定義一個(gè)滑動(dòng)窗口,它是接收方空閑緩存的全部或部分。在連接建立過程中,接收方把滑動(dòng)窗口的大小告訴給發(fā)送方。發(fā)送方按照接收方窗口的大小發(fā)送數(shù)據(jù)。顯然,這樣的發(fā)送不會(huì)導(dǎo)致接收方緩存溢出。2.TCP滑動(dòng)窗口圖12-6TCP滑動(dòng)窗口的一個(gè)例子。圖12-6TCP滑動(dòng)窗口窗口的大小窗口大小可增可減,如圖12-7所示。圖12-7窗口增減3.糊涂窗口綜合癥當(dāng)發(fā)送方應(yīng)用程序產(chǎn)生數(shù)據(jù)(向TCP提交)或者接收方應(yīng)用程序從TCP提取數(shù)據(jù)的速率很慢時(shí),滑動(dòng)窗口中的字節(jié)數(shù)量會(huì)很少,比如只有1個(gè)字節(jié)。顯然,為發(fā)送1個(gè)字節(jié)而發(fā)送1個(gè)TCP報(bào)文段(頭部就占20個(gè)字節(jié))是不合算的。這個(gè)問題稱為糊涂窗口綜合癥。解決糊涂窗口綜合癥的方法對(duì)滑動(dòng)窗口方法進(jìn)行改進(jìn)。在發(fā)送方,改進(jìn)的基本思路是強(qiáng)迫TCP收集數(shù)據(jù),當(dāng)窗口中的字節(jié)數(shù)達(dá)到一定數(shù)量時(shí)再一起發(fā)送。Nagle算法它的步驟包括:
第1步:發(fā)送方TCP發(fā)送窗口中的第1塊字節(jié),哪怕只有1個(gè)。
第2步:然后在輸出緩存中積累數(shù)據(jù)并等待。當(dāng)收到接收端的TCP確認(rèn)或者數(shù)據(jù)可以裝成一個(gè)最大報(bào)文段時(shí),發(fā)送數(shù)據(jù)。
第3步:重復(fù)第2步。接收端改進(jìn)滑動(dòng)窗口的作法(1)Clark法:只要有數(shù)據(jù)到達(dá)就發(fā)送確認(rèn),但宣布窗口大小為0,直至緩沖空間可以放入最大長度報(bào)文段,或者緩存的一半空閑。(2)延遲確認(rèn):當(dāng)一個(gè)報(bào)文段到達(dá)時(shí)并不立即發(fā)送確認(rèn),直到輸入緩存有足夠的空閑空間為止。延遲確認(rèn)法比Clark法好在減少了確認(rèn)報(bào)文,但延遲時(shí)間過長會(huì)導(dǎo)致發(fā)送方的重傳。為此,目前規(guī)定延遲時(shí)間不能超過500毫秒。12.2.2擁塞控制當(dāng)主機(jī)發(fā)送給網(wǎng)絡(luò)的分組在其傳輸容量范圍內(nèi)時(shí),分組會(huì)全部被轉(zhuǎn)發(fā)到目的地(除因其他問題的少數(shù)分組之外),而且被成功轉(zhuǎn)發(fā)的數(shù)目與主機(jī)發(fā)送的數(shù)量成正比。當(dāng)網(wǎng)絡(luò)被“注入”的分組數(shù)量迅速增加時(shí),會(huì)使大量的分組在網(wǎng)絡(luò)中積聚,進(jìn)而導(dǎo)致網(wǎng)絡(luò)傳輸能力的進(jìn)一步下降。這時(shí)網(wǎng)絡(luò)就發(fā)生了擁塞(congestion)。路由器由于不堪重負(fù)開始丟棄分組,使被成功轉(zhuǎn)發(fā)的分組數(shù)量急劇下降。擁塞對(duì)網(wǎng)絡(luò)性能的影響如圖12-8所示。圖12-8當(dāng)通信量太大時(shí),會(huì)發(fā)生擁塞,網(wǎng)絡(luò)性能顯著下降造成網(wǎng)絡(luò)擁塞的原因(1)存儲(chǔ)空間不足:當(dāng)n個(gè)分組從幾個(gè)方向到達(dá)路由器并都從一個(gè)方向輸出時(shí),若輸出緩沖區(qū)的空間只能存儲(chǔ)n-1個(gè)分組,那么就會(huì)有一個(gè)分組被丟棄。(2)處理器速度慢:如果路由器CPU的處理速度太慢,即使到來的分組數(shù)量不太大,也可能導(dǎo)致存儲(chǔ)空間溢出。(3)鏈路帶寬低:盡管存儲(chǔ)空間和CPU的指標(biāo)很高,但如果輸出鏈路的帶寬相對(duì)過低,也會(huì)導(dǎo)致部分分組不能被及時(shí)轉(zhuǎn)發(fā)。值得指出的是增加存儲(chǔ)空間可以避免分組在該路由器被丟棄,但可能導(dǎo)致分組因排隊(duì)時(shí)間過長而超時(shí)(但仍被該路由器轉(zhuǎn)發(fā))。超時(shí)會(huì)引起該分組的重發(fā),從而使網(wǎng)絡(luò)的通信量額外地增加。1.擁塞預(yù)警法為了避免被大量到來的分組淹沒,路由器可以建立一種擁塞預(yù)警機(jī)制,當(dāng)輕度擁塞發(fā)生時(shí),通知源主機(jī)減少發(fā)送分組的數(shù)量,這樣會(huì)減輕擁塞加劇。發(fā)現(xiàn)擁塞發(fā)生的途徑(1)輸出線路利用率。如果利用率過高,則認(rèn)為擁塞發(fā)生。(2)輸出隊(duì)列長度。如果隊(duì)列長度接近滿員,則認(rèn)為擁塞發(fā)生。(3)分組丟棄率。如果被丟棄的分組占接收分組的比率達(dá)到一定的門限值,則認(rèn)為擁塞發(fā)生。抑制分組當(dāng)路由器發(fā)生擁塞時(shí),它發(fā)送一種特殊的分組(稱為抑制分組,chockpacket)給所有的源主機(jī)。源主機(jī)收到抑制分組后按一定的比率減少發(fā)送給特定目的地的通信量。經(jīng)過一定的時(shí)間,如果再收到抑制分組,主機(jī)再減少通信量。當(dāng)一定時(shí)間后,主機(jī)再?zèng)]收到抑制分組時(shí),認(rèn)為擁塞解除,再逐步恢復(fù)發(fā)送速率。問題是主機(jī)收到抑制分組后是否降低其速率是自愿的,而且降低速率的主機(jī)可能對(duì)擁塞不負(fù)主要責(zé)任。為了克服上述問題,需要使真正造成擁塞的源主機(jī)降低發(fā)送速率。下面,我們介紹這樣一種方法——加權(quán)公平隊(duì)列法(WeightedFairQueuing,WFQ)。該方法已經(jīng)廣泛地應(yīng)用于ATM交換機(jī)和IP路由器中。做法如圖12-9所示。路由器的每條輸出線路有多個(gè)隊(duì)列,每個(gè)源主機(jī)對(duì)應(yīng)一個(gè)。每當(dāng)線路空閑時(shí),路由器便循環(huán)掃描各隊(duì)列。掃描是按字節(jié)進(jìn)行的,即先掃描第1個(gè)隊(duì)列的第1個(gè)字節(jié),再掃描第2個(gè)隊(duì)列的第1個(gè)字節(jié)。直至每個(gè)隊(duì)列的分組都掃描完(如(a)所示)。同時(shí)記錄下每個(gè)隊(duì)列掃描用時(shí),如圖(b)所示。然后按照隊(duì)列掃描用時(shí)少在前、多在后的順序發(fā)送分組。這樣做就鼓勵(lì)源主機(jī)降低發(fā)送通信量。圖12-9(a)5個(gè)隊(duì)列中5個(gè)分組;(b)發(fā)送順序和掃描用時(shí)2.通信量整形所謂通信量整形是指把主機(jī)向網(wǎng)絡(luò)輸出分組的速率調(diào)整到一個(gè)固定的平均速率,以使路由器能夠以現(xiàn)有資源平穩(wěn)地處理它。漏桶法(leakybucketalgorithm)其原理如圖12-10所示。圖12-10漏桶算法算法主機(jī)每隔一個(gè)時(shí)鐘節(jié)拍向網(wǎng)絡(luò)發(fā)送一個(gè)分組(這可以通過接口卡或操作系統(tǒng)強(qiáng)制做到),這樣主機(jī)中用戶進(jìn)程的變速的分組流以均速向網(wǎng)絡(luò)發(fā)送,從而使突發(fā)的數(shù)據(jù)流變得“平滑”。令牌桶算法如圖12-11所示每ΔT秒生成一個(gè)令牌,主機(jī)每發(fā)送一個(gè)分組就消耗一個(gè)令牌。當(dāng)沒有令牌時(shí)(令牌桶為空),不能發(fā)送分組。在圖12-11(b)中,由于令牌桶中沒有令牌,剩下的2個(gè)分組只有等待新令牌才能發(fā)送。圖12-11令牌桶算法令牌桶算法對(duì)漏桶算法改進(jìn)(1)令牌桶沒有限定分組的發(fā)送頻率,它規(guī)定的是令牌的生成速率,因而主機(jī)可以選擇發(fā)送分組的時(shí)機(jī):是每隔一定時(shí)間發(fā)一個(gè),還是一下子把令牌都用完。因此,令牌桶算法支持突發(fā)通信。(2)漏桶法會(huì)丟失分組,而令牌桶法不會(huì)。當(dāng)桶滿時(shí),溢出的是令牌而不是分組。算法的綜合應(yīng)用上述通信量整形的算法不但適用于主機(jī)到網(wǎng)絡(luò)的通信整形,也同樣可用于路由器之間的通信量整形。另外,2個(gè)算法也可以結(jié)合使用,即在令牌桶的下面加上一個(gè)漏桶(漏桶的速率要比令牌桶的大,但比網(wǎng)絡(luò)的最高速率小),如圖12-12所示,這樣既可以支持突發(fā)通信,又可以降低擁塞發(fā)生的概率。圖12-12令牌桶+漏桶算法TCP對(duì)擁塞控制的貢獻(xiàn)TCP是如何控制擁塞呢?要回答這個(gè)問題就要分析一下TCP與擁塞的關(guān)系。我們知道,TCP報(bào)文段是封裝到IP分組中發(fā)送的,TCP向IP發(fā)送數(shù)據(jù)的速率越快,IP產(chǎn)生的分組就越多,主機(jī)發(fā)送到網(wǎng)絡(luò)中的分組就越多。因此,TCP的發(fā)送速率會(huì)影響擁塞的發(fā)生。滑動(dòng)窗口用于擁塞控制的
窗口大小窗口大?。絤in(接收端通知的窗口大小,擁塞窗口大小)說明擁塞窗口大小由網(wǎng)絡(luò)擁塞程度決定。顯然,新窗口的定義同時(shí)滿足了流量控制和擁塞控制的需要。問題是擁塞窗口的大小如何獲得。由于網(wǎng)絡(luò)中存在多個(gè)路由器,擁塞可能發(fā)生在部分路由器上,因此,不能由網(wǎng)絡(luò)提供擁塞窗口的大小。實(shí)際上,擁塞窗口的大小由發(fā)送方TCP確定。下面,我們分析具體的作法。做法首先,TCP通過TCP報(bào)文段丟失現(xiàn)象(在記時(shí)內(nèi)沒有收到確認(rèn))判斷發(fā)生了擁塞。在沒有擁塞時(shí),擁塞窗口的大小設(shè)為最大報(bào)文段長度MSS。其后每收到一個(gè)確認(rèn),擁塞窗口大小就增加一個(gè)最大報(bào)文段長度,直到某個(gè)允許門限值。這個(gè)過程稱為慢啟動(dòng)(其實(shí)窗口大小的增長一點(diǎn)也不慢,因?yàn)榇翱诖笮∈荕SS×2n,n是確認(rèn)報(bào)文數(shù))。當(dāng)擁塞發(fā)生時(shí),令擁塞窗口大小等于一個(gè)MSS,而門限值為上次發(fā)送時(shí)的擁塞窗口的一半。12.3IP安全體系結(jié)構(gòu)和
安全算法12.3.1網(wǎng)絡(luò)信息安全概念破譯(interception)。當(dāng)Alice通過網(wǎng)絡(luò)與Bob通信時(shí),Jack采取辦法了解他們通信的內(nèi)容。中斷(interruption)。Alice與Bob的通信被Jack中斷。篡改(modification)。Alice給Bob發(fā)信說:“給John加薪”。信經(jīng)過Jack時(shí),他把信改成:請(qǐng)給Jack加薪。假冒(personation)。Jack告訴Bob:“我是Alice”。然后,Jack偽造信息發(fā)給Bob;或者要求Bob給他發(fā)信。攻擊分類攻擊分為被動(dòng)攻擊和主動(dòng)攻擊。在被動(dòng)攻擊中,攻擊者(也稱為入侵者)只是觀察某個(gè)協(xié)議數(shù)據(jù)單元PDU(第2層的幀、第3層的分組或是第4層的TCP報(bào)文段、第5層的HTTP報(bào)文)而不破壞它們,這些PDU還能正常被處理。例如,攻擊者通過觀察PDU的頭部控制信息了解正在通信的協(xié)議實(shí)體的地址和身份,研究PDU的長度和傳輸?shù)念l度,以便了解所變換的數(shù)據(jù)的性質(zhì)(這種被動(dòng)攻擊又稱為通信量分析)。主動(dòng)攻擊攻擊者要對(duì)PDU進(jìn)行更深入的分析,以獲得PDU中數(shù)據(jù)的真實(shí)含義,或者有選擇地更改、刪除、延遲這些PDU,或者把PDU復(fù)制下來,稍后再發(fā)到原來的數(shù)據(jù)通道上去(重放攻擊的作法),甚至偽造一些PDU。Jack的上述行為都屬于主動(dòng)攻擊。加密與解密加密是指將明文變換成密文的過程。解密是指從密文還原明文的過程。加密過程使用的方法稱為加密算法,解密過程使用的算法稱為解密算法。有時(shí),加密和解密使用同一個(gè)算法。加密用于隱藏?cái)?shù)據(jù)的真實(shí)含義。密鑰是一個(gè)隨機(jī)生成的數(shù)據(jù),與加密算法一起對(duì)明文進(jìn)行加密,或與解密算法一起對(duì)密文進(jìn)行解密。身份認(rèn)證它是一種用來鑒別通信參與者是否真的是他所聲稱的身份的方法。身份認(rèn)證用于發(fā)現(xiàn)那些假冒的入侵者。完整性校驗(yàn)它是一種用來檢查數(shù)據(jù)在通信過程中是否被修改過的方法。完整性校驗(yàn)可以檢查出被篡改過的數(shù)據(jù),或者發(fā)生了通信錯(cuò)誤的數(shù)據(jù)。不可否認(rèn)性確認(rèn)它是一種證明發(fā)送者的確發(fā)送過某個(gè)信息的方法。該方法可以防止發(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ò)將會(huì)面臨的安全威脅,因此,協(xié)議中缺乏完善的安全機(jī)制(有些協(xié)議甚至一點(diǎn)也沒有)。為此制定了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é)議實(shí)現(xiàn)。
IPSec為IP網(wǎng)絡(luò)提供的安全功能(1)數(shù)據(jù)源身份認(rèn)證:證實(shí)數(shù)據(jù)是所聲稱的發(fā)送者發(fā)送的。(2)數(shù)據(jù)完整性:證實(shí)數(shù)據(jù)的內(nèi)容在傳輸過程中沒被修改過,無論是出于人為故意的原因還是隨機(jī)的傳輸錯(cuò)誤。(3)數(shù)據(jù)保密:通過加密隱藏?cái)?shù)據(jù)的的真實(shí)含義。(4)重放攻擊保護(hù):防止攻擊者獲得數(shù)據(jù),過一段時(shí)間后再把該數(shù)據(jù)放回信道。(5)密鑰管理和安全關(guān)聯(lián)管理:保證只需少量或根本不需要手工配置來管理密鑰和安全關(guān)聯(lián)。安全關(guān)聯(lián)SASA是2個(gè)IPSec系統(tǒng)之間的單工邏輯連接,它由一個(gè)三元組結(jié)構(gòu)<SPI,目的IP地址,安全協(xié)議>定義。SPI(SecurityParameterIndex)是一個(gè)32比特?cái)?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包括每一個(gè)SA的參數(shù)信息,例如AH或ESP加密算法/密鑰、順序號(hào)、協(xié)議模式以及SA生命周期SAD決定了一個(gè)給定的分組究竟使用哪一個(gè)SA。安全策略數(shù)據(jù)庫SPD它包括一個(gè)排序的策略列表,針對(duì)流入數(shù)據(jù)和流出數(shù)據(jù)有不同的數(shù)據(jù)項(xiàng)。這些數(shù)據(jù)項(xiàng)指定某些數(shù)據(jù)流必須繞過IPSec處理,而某些數(shù)據(jù)流必須被丟棄,其余的則必須經(jīng)過IPSec模塊的處理。1.認(rèn)證頭部AHAH的作用是為IP分組提供完整性校驗(yàn)和身份認(rèn)證。AH通過對(duì)IP分組頭部中的不變字段實(shí)施保護(hù)來實(shí)現(xiàn)完整性校驗(yàn)(可變字段包括服務(wù)類型TOS、標(biāo)志位、段偏移、生存期TTL、頭部校驗(yàn)和)。AH只處理沒被分段的IP分組,AH通過丟棄被分段分組防止假冒,提供身份認(rèn)證。AH頭部在IP分組的位置及其包含的字段如圖12-13所示。圖12-13AH頭部格式字段含義(1)下一頭部:8比特。用于標(biāo)識(shí)認(rèn)證頭部后面數(shù)據(jù)是哪個(gè)協(xié)議的,其值是Internet編號(hào)管理機(jī)構(gòu)IANA(InternetAssignedNumbersAuthority)發(fā)布的“數(shù)字分配RFC”中定義的IP協(xié)議號(hào)。(2)長度:8比特。認(rèn)證數(shù)據(jù)的長度,單位是字節(jié)。(3)保留字段:16比特。當(dāng)前默認(rèn)值為0。(4)安全參數(shù)索引SPI:32比特。用于標(biāo)識(shí)具有相同IP地址和相同安全協(xié)議的不同安全關(guān)聯(lián)。SPI=0作為本地特殊使用,1~255由IANA保留。續(xù)(5)序列號(hào):32比特。它是個(gè)單向遞增的計(jì)數(shù)器。發(fā)送方在分組中加入該字段。在一個(gè)SA建立時(shí),序列號(hào)初始值為0,在該SA上每發(fā)送一個(gè)分組,序列號(hào)就加1。由于序列號(hào)不允許重復(fù),因此能夠防止重放攻擊。(6)認(rèn)證數(shù)據(jù):變長,但其長度要是32比特的整數(shù)倍。認(rèn)證數(shù)據(jù)用于驗(yàn)證所收到的分組是完整的,它由SA初始化時(shí)指定的認(rèn)證算法計(jì)算。AH傳輸模式在傳模模式中,AH頭部被插入到IP分組頭部的后面,如圖12-14所示。圖12-14AH傳輸模式AH隧道模式需要保護(hù)的IP分組被封裝在新的IP分組中(原來的IP分組作為新IP分組的負(fù)荷),然后對(duì)新IP分組按傳輸模式處理。如圖12-15所示。圖12-15AH隧道模式注當(dāng)安全關(guān)聯(lián)的一方是網(wǎng)關(guān)時(shí),就要使用隧道模式。如果安全關(guān)聯(lián)的兩端都是防火墻,那么就必須使用隧道模式。在隧道模式下,外層頭部中的IP地址可以與內(nèi)部頭部中的IP地址不一樣,例如,內(nèi)層頭部中的地址是主機(jī)地址,外層地址是網(wǎng)關(guān)地址,這樣兩個(gè)網(wǎng)關(guān)可以通過AH隧道保護(hù)它們所連接的網(wǎng)絡(luò)主機(jī)之間的全部通信。隧道模式的主要優(yōu)點(diǎn)可以對(duì)被封裝的分組提供完全的保護(hù)(所有字段都被保護(hù)),同時(shí)使私有地址的使用成為可能(只需將它們放在內(nèi)層頭部中)。缺點(diǎn)是增加了額外的開銷(多了一層IP頭部)。2.負(fù)荷安全封裝ESP負(fù)荷安全封裝ESP的功能是給IP分組提供以下安全服務(wù):
(1)完整性校驗(yàn)
(2)身份認(rèn)證
(3)加密
(4)重放攻擊保護(hù)(可選)上述安全服務(wù)在安全關(guān)聯(lián)SA建立時(shí),按照以下規(guī)則約定:(1)完整性校驗(yàn)與身份認(rèn)證必須同時(shí)使用。(2)要使用重放攻擊保護(hù)功能時(shí)必須同時(shí)使用完整性校驗(yàn)和身份認(rèn)證。(3)重放攻擊保護(hù)功能只能由接收方選擇。ESP報(bào)文格式如圖12-16所示。圖12-16ESP報(bào)文格式ESP報(bào)文組成部分(1)ESP頭部:包括安全參數(shù)索引和序列號(hào)。(2)ESP尾部:包括填充、填充長度和下一頭部等字段。其中下一頭部字段給出原始IP分組數(shù)據(jù)區(qū)中的數(shù)據(jù)是哪個(gè)協(xié)議的。(3)負(fù)荷數(shù)據(jù):經(jīng)過加密的IP分組數(shù)據(jù)。加密算法由SA建立過程協(xié)商選擇,如DES(DataEncryptionStandard)(4)認(rèn)證數(shù)據(jù):該字段包含由前面ESP頭部、負(fù)荷數(shù)據(jù)和ESP尾部計(jì)算出的ICV值。只有當(dāng)SA初始化選擇了完整性校驗(yàn)和身份認(rèn)證時(shí),報(bào)文中才會(huì)有該字段。ESP要求支持至少2種算法,如MD5(MessageDigest5)和SHA-1。ESP的認(rèn)證范圍包括ESP頭部、負(fù)荷數(shù)據(jù)和ESP尾部。ESP的加密范圍是整個(gè)原始IP分組。ESP傳輸模式ESP頭部被插入到IP頭部后面,如圖12-17所示。圖12-17ESP傳輸模式特點(diǎn)分析傳輸模式下的ESP不為IP頭部提供身份認(rèn)證和加密,誤傳的IP分組也會(huì)被交給ESP處理。這是ESP的一個(gè)缺點(diǎn),ESP的優(yōu)點(diǎn)是開銷較小。和AH一樣,傳輸模式下的ESP通常由主機(jī)使用。網(wǎng)關(guān)甚至可以不支持傳輸模式。ESP隧道模式ESP首先創(chuàng)建一個(gè)新的IP分組,將原始的IP分組封裝在其中,然后對(duì)新IP分組按ESP傳輸模式處理。如圖12-18所示。圖12-18ESP隧道模式注只要安全關(guān)聯(lián)的一個(gè)端點(diǎn)是網(wǎng)關(guān),就要使用隧道模式,而2個(gè)防火墻之間通常要使隧道模式。雖然網(wǎng)關(guān)可以只支持隧道模式,但它們也經(jīng)常工作在傳輸模式下,此時(shí),網(wǎng)關(guān)以普通主機(jī)身份參與通信。在隧道模式下,外層頭部中的IP地址可以跟內(nèi)層頭部中的IP地址不一樣,這一點(diǎn)與AH是一致的。隧道模式的優(yōu)缺點(diǎn)可以對(duì)被封裝的分組提供完全的保護(hù),同時(shí)提供了使用私有地址的可能其缺點(diǎn)是增加了額外的開銷。讀者可能會(huì)問為什么AH和ESP會(huì)同時(shí)存在呢?原因有以下方面:(1)ESP要求使用高強(qiáng)度的加密算法,而無論實(shí)際上是否需要。由于高強(qiáng)度加密算法被許多國家嚴(yán)格管制,因此,在實(shí)施ESP時(shí)會(huì)有很多意外的限制,而AH可以在全球自由使用。(2)很多情況下只需要認(rèn)證服務(wù)即可,而此時(shí)AH比ESP的效率高,因?yàn)樗袷胶唵危~外開銷小。(3)另外,AH與ESP的同時(shí)存在使安全方案更加靈活,尤其在同時(shí)使用AH與ESP時(shí),利用二者的優(yōu)點(diǎn)會(huì)增加安全方案的針對(duì)性和適用性。3.IPSec在VPN中的應(yīng)用虛擬專用網(wǎng)(VirtualPrivateNetwork,VPN)是一種在公共網(wǎng)絡(luò)或共享網(wǎng)絡(luò)(如公司網(wǎng)、Intranet、Extranet)上通過隧道等技術(shù)為私有數(shù)據(jù)建立一個(gè)受保護(hù)通道,用戶可以通過它傳輸自己的數(shù)據(jù),通道對(duì)其他人來說是保密的。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對(duì)IP分組的保護(hù)過程(1)當(dāng)主機(jī)H1要向H2發(fā)送一個(gè)IP分組時(shí),主機(jī)H1先創(chuàng)建IP分組,對(duì)其做ESP處理,然后將IP分組發(fā)給網(wǎng)關(guān)G1,IP分組中的目的地址是H2。(2)網(wǎng)關(guān)G1經(jīng)過識(shí)別發(fā)現(xiàn)該IP分組應(yīng)當(dāng)先發(fā)給G2。經(jīng)過對(duì)IPSec數(shù)據(jù)庫(SPD和SAD)的查詢,G1進(jìn)一步得知轉(zhuǎn)發(fā)IP分組之前先要使用隧道模式對(duì)IP分組做AH處理。然后G1對(duì)IP分組做必要的封裝,外層的IP分組的目的地址是網(wǎng)關(guān)G2,真正的目的地址H2此時(shí)已經(jīng)被封裝了。續(xù)(3)網(wǎng)關(guān)G2接收到AH隧道封裝的IP分組后,對(duì)IP分組做身份認(rèn)證,然后將外部包頭去掉,于是G2發(fā)現(xiàn)IP分組的真正目的地址是H2,然后將該IP分組轉(zhuǎn)發(fā)給給H2。(4)H2收到了H1發(fā)出的IP分組,H2對(duì)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實(shí)施的基礎(chǔ),AH和ESP都是在某個(gè)安全關(guān)聯(lián)連接上進(jìn)行的。安全關(guān)聯(lián)定義了AH和ESP使用的加密算法、密鑰和認(rèn)證算法以及其他安全參數(shù)。安全關(guān)聯(lián)是為安全通信而動(dòng)態(tài)建立的,因此它存在一個(gè)協(xié)商、修改和刪除的管理問題。
由于加密算法是國際通用,換句話說,是公開的。因此,加密數(shù)據(jù)的保密性就取決于加密算法使用的密鑰的保密性。在IPSec使用的加密算法中,有的算法(如DES)的密鑰是私有的,只能供發(fā)送方(加密者)和接收者(真實(shí)的)使用,因此,還存在一個(gè)密鑰的產(chǎn)生、分發(fā)、銷毀等管理問題。ISAKMP和Oakley密鑰交換的
2個(gè)階段第1階段,雙方協(xié)商創(chuàng)建一個(gè)主密鑰,以后用于保護(hù)用戶數(shù)據(jù)流的所有密鑰都根據(jù)主密鑰產(chǎn)生。該階段主要工作是建立對(duì)ISAKMP報(bào)文自身的保護(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報(bào)文仍在第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個(gè)ISAKMP報(bào)文:(1)報(bào)文1和報(bào)文2用于協(xié)商安全關(guān)聯(lián)的特征。它們以明文方式傳輸,且沒有身份認(rèn)證。(2)報(bào)文3和報(bào)文4用于交換一個(gè)隨機(jī)數(shù)nonce。同時(shí)使用Diffie-Hellman算法創(chuàng)建一個(gè)主密鑰(SKEYID)。它們也以明文方式傳輸,不做身份認(rèn)證。(3)報(bào)文5和報(bào)文6用于交換通信雙方相互認(rèn)證所需的信息。這2個(gè)報(bào)文由前4個(gè)報(bào)文建立的加密算法和密鑰保護(hù)。續(xù)主機(jī)A在初始化時(shí),創(chuàng)建報(bào)文1(如圖12-22所示)。在該報(bào)文中A向B提出n個(gè)建議供B選擇。報(bào)文1被封裝在UDP報(bào)文中(端口號(hào)=500,ISAKMP專用)經(jīng)IP層發(fā)送。IP頭部的源地址是A的地址,目的地址是B的地址。圖12-22為創(chuàng)建ISAKMP關(guān)聯(lián)而發(fā)送的報(bào)文1字段含義ISAKMP頭部中交換類型是主模式(在創(chuàng)建ISAKMP關(guān)聯(lián)過程總是這樣的)。報(bào)文標(biāo)識(shí)符是0。響應(yīng)方式Cookie字段設(shè)為0,發(fā)起方Cookie字段添入一個(gè)隨機(jī)選擇的數(shù)。安全關(guān)聯(lián)字段用于標(biāo)識(shí)在安全關(guān)聯(lián)上傳輸?shù)臄?shù)把是哪個(gè)協(xié)議的。此處值是IP。建議字段值為PROTO-ISAKMP。變換字段值為KEY-OAKLEY。當(dāng)變換字段值為KEY-OAKLEY時(shí),主機(jī)A必須指定相關(guān)的屬性,即使用身份認(rèn)證方法、偽隨機(jī)函數(shù)和加密算法。續(xù)主機(jī)B收到發(fā)來的報(bào)文1后,如果支持報(bào)文1中的某些建議,則向A發(fā)送報(bào)文2,告訴它所選擇的建議。此時(shí),A與B的第1次協(xié)商成功結(jié)束。續(xù)在報(bào)文2中,B要選擇一個(gè)隨機(jī)數(shù)作為它的Cookie字段值,該值與A在報(bào)文1中使用的隨機(jī)數(shù)構(gòu)成<Cookie-A,Cookie-B>數(shù)對(duì)作為ISAKMP安全關(guān)聯(lián)的SPI。第1次協(xié)商的結(jié)果是雙方確定了SPI、認(rèn)證方法、加密方法。但是雙方還沒有進(jìn)行相互認(rèn)證。第2次協(xié)商雙方交換報(bào)文3和報(bào)文4。協(xié)商的結(jié)果雙方得到了用于保護(hù)ISAKMP報(bào)文的認(rèn)證密鑰和加密密鑰,還得到了用于產(chǎn)生(保護(hù)用戶數(shù)據(jù)的)密鑰的(與具體算法有關(guān)的)數(shù)據(jù)。不過此時(shí)通信雙方還沒有相互認(rèn)證。續(xù)為了進(jìn)行身份認(rèn)證,雙方在第3次協(xié)商時(shí)交換報(bào)文5和報(bào)文6,用于攜帶標(biāo)識(shí)、鑒名和證書(可選),其結(jié)構(gòu)如圖12-23所示。圖12-23第3次協(xié)商中報(bào)文結(jié)構(gòu)注意在ISAKMPSA建立過程中,沒有使用IPSec的ESP或AH。ISAKMP報(bào)文交換由高層,如運(yùn)輸層和應(yīng)用層安全機(jī)制來保護(hù)。例如,在運(yùn)輸層有一個(gè)稱為安全套接字層(SecuritySocketLayer,SSL)的安全機(jī)制提供運(yùn)輸層的保護(hù)。在應(yīng)用層除了各種專用的安全系統(tǒng)外,有一個(gè)用于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ò)的各個(gè)層次中都有應(yīng)用。因此,本小節(jié)再簡要對(duì)它們進(jìn)行介紹。1.IPSec的加密算法IPSec在ESP中使用的加密算法是DES,用于給IP分組加密。另外,三重DES和IBM的CDMF(CommercialDataMaskingFacility)也有所使用。盡管協(xié)議也支持IDEA(InternationalDataEncryptionAlgorithm)和其他一些算法,但實(shí)際應(yīng)用較少。DES算法背景DES由IBM提出,并于1977年1月被美國定為聯(lián)邦信息標(biāo)準(zhǔn)。DES算法概述加密前,先對(duì)整個(gè)明文進(jìn)行分組(因此,DES屬于分組密碼算法)。每個(gè)分組長64比特。然后,對(duì)每個(gè)64比特二進(jìn)制數(shù)據(jù)進(jìn)行加密處理,產(chǎn)生一個(gè)64比特的密文分組。最后將各密文分組串接起來,就得到了整個(gè)明文的密文。64比特密文分組生成的過程如圖12-25所示。圖12-25DES加密過程函數(shù)f運(yùn)算過程(1)根據(jù)一個(gè)固定的變位和復(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)。每個(gè)Bi經(jīng)過的變換過程不一樣,因此要使用8個(gè)不同的S函數(shù)。續(xù)(4)將8個(gè)Si(Bi)按Bi的順序排好,再進(jìn)行一次變序(稱為P變換)得到f(Ri-1,ki)。P變換的作用是改變數(shù)據(jù)的輸出順序,其原理如圖12-26(a)所示。該P(yáng)變換把01234567的輸入變序成36071245。一個(gè)3對(duì)3的S變換如圖12-26(b)所示。3比特的輸入使第1個(gè)方框的某根輸出線置1(輸出線的順序等于輸入的值),其他線上的值為0。圖12-26P變換和S變換DES解密過程和加密相似,但16個(gè)密鑰的使用順序正好相反。每次迭代使用密鑰ki都不同。ki的實(shí)際長度是48比特,它是從原始64比特密鑰變換后的56比特中抽取的。電子密碼本模式ECM明文的各個(gè)分組經(jīng)加密后仍按原分組所在位置發(fā)送電子密碼本DES算法實(shí)質(zhì)上只起到了替換的作用,即用一個(gè)密文塊替換了一個(gè)明文塊,由于當(dāng)DES的輸入相同時(shí),其輸出也相同,因此,ECM模式安全程度不高。密碼分組鏈接CBC模式可以解決ECM存在的密文被替換問題,提高DES的安全性。CBC的原理每個(gè)明文分組在加密之前先與一個(gè)密文分組進(jìn)行異或運(yùn)算,第1個(gè)密文分組與一個(gè)初始向量(InitializationVetor,IV)進(jìn)行異或。為了保證解密正確,該IV要與密文一起發(fā)送。CBC的原理如圖12-27所示。圖12-27CBC原理三重DES三重DES是為了增加DES的安全性,盡管在1979年尚沒有DES被破譯的報(bào)道,IBM就制定了三重DES方法,其原理很簡單,如圖12-28所示。圖12-28三重DES國際數(shù)據(jù)加密算法IDEA它是DES之后最著名的密鑰密碼算法。IDEA由瑞士的LaiX.和MasseyJ.于1990年設(shè)計(jì)。IDEA的基本運(yùn)算流程如圖12-29所示。圖12-29IDEA算法概述IDEA與DES相似,也是先將明文分塊成一個(gè)個(gè)64比特長的分組,每個(gè)分組經(jīng)過8次迭代和一次變換,得出64比特的密文。對(duì)于每一次迭代,每個(gè)輸出比特都與每個(gè)輸入比特有關(guān)。每一次迭代的具體運(yùn)算如圖12-30(b)所示。64比特的分組被分成4個(gè)16比特的塊參與運(yùn)算,運(yùn)算過程使用6個(gè)子密鑰,這6個(gè)密鑰是16比特長。在最后的變換運(yùn)算中使用4個(gè)子密鑰。這52個(gè)子密鑰是由IDEA128比特的密鑰生成的。2.共享密鑰產(chǎn)生算法下面,我們分析在DES中使用的密鑰是如何產(chǎn)生和交換的。讀者從對(duì)DES算法的介紹中可以看到,DES加密和解密使用相同的密鑰(這種算法稱為對(duì)稱密鑰算法),這就需要做2個(gè)工作:第一,加密者要和解密者互通密鑰信息;第二,密鑰要保密。顯然,第1個(gè)工作增加了第2個(gè)工作的難度,密鑰在通信雙方之間交換時(shí)容易被竊取。這是對(duì)稱密鑰算法不可克服的缺點(diǎn)。Diffie-Hellman算法DES中使用的共享秘密密鑰就由Diffie-Hellman密鑰交換算法產(chǎn)生。算法的基本步驟(1)Alice和Bob事先約定2個(gè)共同使用的數(shù):g和n,其中n是一個(gè)非常大的質(zhì)數(shù),并且(n-1)/2和(g-1)/2都是質(zhì)數(shù)。(2)Alice隨機(jī)挑選一個(gè)很大的數(shù)x,然后計(jì)算:
a=gxmodn(3)Bob隨機(jī)挑選一個(gè)很大的數(shù)y,然后計(jì)算:
b=gymodn
(4)Alice把a(bǔ)發(fā)送給Bob。
(5)Bob收到a后做計(jì)算:
k1=aymodn
(6)Bob將b發(fā)送給Alice。
(7)Alice收到b后做計(jì)算:
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個(gè)很大的質(zhì)數(shù)p和q(典型地應(yīng)大于10100)。
(2)計(jì)算p和q的積n。
(3)選擇一個(gè)數(shù)e,e<n且要求e與(p-1)(q-1)互質(zhì)(也就是說,e與(p-1)(q-1)的最大公因子是1)。
(4)計(jì)算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>稱為公開密鑰。因?yàn)锽ob無需使用秘密的通道傳遞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的一個(gè)顯著不同之處是RSA使用2個(gè)不同的密鑰,其中一個(gè)用于加密(公開密鑰),另一個(gè)用于解密(私有密鑰)。而DES加密和解密都使用同一個(gè)密鑰,因此要保管好密鑰,而且要保證密鑰從產(chǎn)生處安全地交給使用者。兩個(gè)密鑰不一樣的算法稱為非對(duì)稱算法。如果使用的密鑰部分是公開的,則算法稱為公開密鑰算法。讀者可能問了RSA如何進(jìn)行身份認(rèn)證呢?我們?nèi)匀煌ㄟ^一個(gè)例子來說明。舉例(1)假定Bob要求給他發(fā)信的人要簽上發(fā)信人的名字。(2)為此,Alice用自己的私有密鑰<d,n>對(duì)明文m加密,得:
s=mdmodn
s稱為Alice對(duì)m的數(shù)字簽名。因?yàn)閟中包含了Alice不能抵賴的私有信息d和n。(3)Alice將s和m一起發(fā)給Bob。(4)Bob在接受m之前,先要確認(rèn)m是Alice發(fā)給他的。換句話說,他要驗(yàn)證s的確是Alice對(duì)m的簽名。為此,他用Alice的公鑰對(duì)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>對(duì)明文m進(jìn)行簽名,得:
s=mdAmodnA(3)Alice使用Bob的公開密鑰eB和nB對(duì)s進(jìn)行加密,得密文:
c=seBmodnB(4)Alice把c發(fā)送給Bob。(5)Bob用私有密鑰對(duì)收到的密文解密,得:
s=cdBmodnB(6)然后,Bob用Alice的公開密鑰對(duì)s解密:
m=seAmodnA
得到明文m。上述過程如圖12-33所示。圖12-33RSA簽名+加密通信4.IPSec的證書證書是由以下部分組成的數(shù)字文件:
(1)證書持有者的身份標(biāo)識(shí):它可以是IP地址、IP地址范圍、子網(wǎng)地址、域名、文本字符串。換句話說,證書可以證明這些信息是合法的。以這些信息為標(biāo)識(shí)的通信實(shí)體是合法的。
(2)簽發(fā)證書的認(rèn)證權(quán)威(CertificationAuthority,CA)機(jī)構(gòu)的公鑰:該公鑰用于驗(yàn)證證書的合法性。
(3)簽發(fā)證書的日期。
(4)證書的有效期。
(5)證書的其他信息,如序列號(hào)。證書的實(shí)質(zhì)內(nèi)容是它聲明的通信實(shí)體以及該通信實(shí)體使用的公開密鑰。它對(duì)通信實(shí)體的證明是通過對(duì)其公開的密鑰的驗(yàn)證實(shí)現(xiàn)的。證書的作用在Alice和Bob通信時(shí),Jack插了進(jìn)來。他把自己的公鑰發(fā)給Bob,慌稱是Alice的,再把自己的公鑰發(fā)給Alice,慌稱是Bob的。這樣,Jack用自己的私鑰就可以輕易地解密Alice和Bob之間的通信。而且還可以進(jìn)一步實(shí)施更多的攻擊,例如偽造(栽贓)。顯然,如果Bob和Alice能夠在發(fā)信前驗(yàn)證一下對(duì)方公鑰的真實(shí)性,就會(huì)避免上述攻擊的發(fā)生。證書就是對(duì)通信方及其公鑰的認(rèn)證方式。如何產(chǎn)生證書首先,我們來看一看證書產(chǎn)生的一般過程:
(1)申請(qǐng)證書:用戶A生成一對(duì)密鑰,然后把公開密鑰(連同該用戶A的標(biāo)識(shí))等信息提交給CA。
(2)受理申請(qǐng):如果用戶A的申請(qǐng)符合CA的規(guī)定,則CA從申請(qǐng)中提取公開密鑰,然后用Hash函數(shù)制作公開密鑰的MAC(摘要)。再用CA的私鑰加密MAC,得到用戶A公開密鑰的CA簽名SCA。最后,把用戶A的公開密鑰(以及用戶A的標(biāo)識(shí)等信息)和SCA組合在一起做成證書。
(3)發(fā)放證書:CA把生成的證書發(fā)給申請(qǐng)者。證書的產(chǎn)生過程如圖12-34所示。圖12-34CA產(chǎn)生證書的過程如何驗(yàn)證證書當(dāng)用戶A和B之間需要確認(rèn)對(duì)方身份時(shí),一方把對(duì)方出示的證書中的CA簽名用CA的公鑰解密,應(yīng)該得到對(duì)方公鑰的摘要,然后用CA使用的Hash函數(shù)制作對(duì)方公鑰的摘要。把2個(gè)摘要進(jìn)行比較。如果一致,則認(rèn)為對(duì)方身份真實(shí),否則拒絕對(duì)方。上述證書驗(yàn)證過程需要用戶知道2個(gè)事實(shí):
(1)CA的公鑰:用于得到摘要。
(2)CA的Hash算法:用于計(jì)算簽名。另外,也可以采用向CA查詢的辦法來驗(yàn)證證書。其原理如圖12-35所示。圖12-35證書查詢DSA算法的步驟(1)選擇一個(gè)質(zhì)數(shù)p,一般512<p<1024。(2)找出一個(gè)p-1的質(zhì)因子q。(3)計(jì)算:
g=h(p-1)/qmodp
其中h是一個(gè)小于p-1的數(shù),且h(p-1)/q>1。(4)另選一個(gè)數(shù)x,要求x<q,將x作為發(fā)送者的私鑰。(5)計(jì)算:
y=gxmodp
將y作為發(fā)送者的公鑰。(x,y)稱為長期密鑰對(duì)。續(xù)(6)發(fā)送者按如下方式對(duì)消息做簽名:
·產(chǎn)生一個(gè)比q小的隨機(jī)數(shù)k。
·計(jì)算:
r=(gkmodp)modq
s=(k-1(SHA(m)+xr))modq
(k,r)稱為會(huì)話密鑰對(duì)。(r,s)稱為m的簽名。(7)發(fā)送者發(fā)送(m,r,s)。續(xù)(8)接收者用如下方式做身份認(rèn)證計(jì)算:
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個(gè)方法產(chǎn)生證書。Hash函數(shù)具有以下特征:
(1)Hash函數(shù)必須能以任意長度的數(shù)據(jù)作為輸入,而輸出是定長的。
(2)對(duì)任何給定的報(bào)文m,計(jì)算其Hash函數(shù)值是很容易的。
(3)對(duì)任何給定的Hash函數(shù)值h,要找出m,使h=Hash(m)在計(jì)算上是不可行的。
(4)對(duì)任意給定的m,要找到m*≠m且Hash(m)=Hash(m*)在計(jì)算上是不可行的。Hash函數(shù)產(chǎn)生MAC的方式如圖12-36所示。圖12-36Hash函數(shù)產(chǎn)生MACMD5MD5是Rivest提出的MD算法的第5個(gè)版本(RFC1321,1992年)。此算法以任意長的報(bào)文作為輸入,然后輸出128比特的MAC。該MAC稱為摘要。MD5算法的大致過程(1)Alice計(jì)算m的余數(shù):r=mmod264,然后把r加在m的后面。(2)在m和r之間填充1~512比特,使填充后的總長度是512比特的整數(shù)倍。填充比特的第1位是1,后面都是0。記新報(bào)文為M。(3)把M分割成長度為512比特的數(shù)據(jù)塊,然后進(jìn)行如圖12-37所示的MAC計(jì)算。圖12-37MDMAC的生成SHA由美國NSA(NationalSecurityAgency)開發(fā)并得到美國NIST(NationalInstituteofStandardsTechnology)支持。SHA-1是其新版本,作為美國政府標(biāo)準(zhǔn)。SHA的思想與MD5類似,以變長的數(shù)據(jù)作為輸入,經(jīng)復(fù)雜的計(jì)算后得到160比特的MAC。SHA-1比MD5更安全,但計(jì)算MAC的速度慢。
IPSec使用MD5和SHA-1作為Hash函數(shù)計(jì)算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ì)算機(jī)網(wǎng)絡(luò)服務(wù)是指通信網(wǎng)絡(luò)對(duì)主機(jī)間數(shù)據(jù)傳輸所需的效率和可靠性所提供的保證機(jī)制。通信網(wǎng)絡(luò)提供的服務(wù)分為2大類:面向連接服務(wù)(connect-orientedservice)和無連接服務(wù)(connectlessservice)。面向連接服務(wù)在面向連接的通信中,每一次完整的數(shù)據(jù)傳輸都必須經(jīng)過建立連接、使用連接、釋放連接三個(gè)過程。在數(shù)據(jù)傳輸過程中,各分組不攜帶信宿地址,而使用連接號(hào)(connectId)。服務(wù)類型中的連接類似一個(gè)管道,發(fā)送者在一端放入數(shù)據(jù),接收者從另一端取出數(shù)據(jù)。面向連接的特點(diǎn)是:收發(fā)數(shù)據(jù)不但順序一致,而且內(nèi)容相同,所以其可靠性好,但效率不高。電話系統(tǒng)服務(wù)提供的就是面向連接的服務(wù)。無連接服務(wù)在無連接的通信中,每個(gè)分組都攜帶完整的信宿地址,各分組在系統(tǒng)中獨(dú)立傳送。無連接服務(wù)的特點(diǎn)是不能保證分組的先后順序(由于先后發(fā)送的分組可能經(jīng)歷不同路徑去往信宿,所以先發(fā)的不一定先到)。另外,無連接服務(wù)也不能保證丟失分組的恢復(fù)或重傳,換言之,分組不能保證一定被收到或一定能正確接收。無連接服務(wù)的可靠性不好,但因其省去了許多保證機(jī)制,使其獲得了較高的效率。郵政系統(tǒng)提供的就是無連接的服務(wù)。提示效率和可靠性是統(tǒng)一在服務(wù)中的一對(duì)矛盾,對(duì)二者不同的要求,決定了服務(wù)類型的不同。正是它們的對(duì)立統(tǒng)一,推動(dòng)了計(jì)算機(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ù)總能能被及時(shí)傳給接收者時(shí),我們說網(wǎng)絡(luò)的服務(wù)質(zhì)量好,反之就說網(wǎng)絡(luò)的服務(wù)質(zhì)量不好。說到服務(wù)質(zhì)量QoS,往往給人的感覺是物理地增加帶寬,增加存儲(chǔ)空間等網(wǎng)絡(luò)資源。實(shí)質(zhì)上,QoS保證是指采取某種策略,在現(xiàn)有資源基礎(chǔ)上,提高資源利用率,從而改善服務(wù)質(zhì)量。3.QoS技術(shù)含義QoS技術(shù)是Internet迅速發(fā)展的產(chǎn)物。QoS技術(shù)通過資源預(yù)留、預(yù)測、分類、優(yōu)先級(jí)區(qū)分等綜合控制手段,提高網(wǎng)絡(luò)基礎(chǔ)設(shè)施資源的利用率,保證數(shù)據(jù)以某種服務(wù)級(jí)別在網(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ò)用戶的請(qǐng)求而分配。IntServ在BobBraden和DaveClark于1994年6月提交的RFC1633中規(guī)范。(2)以優(yōu)先級(jí)技術(shù)為代表的區(qū)分服務(wù)(DifferentiatedServices,DiffServ):在這類QoS技術(shù)中,網(wǎng)絡(luò)元素依據(jù)網(wǎng)絡(luò)帶寬管理策略準(zhǔn)則對(duì)網(wǎng)絡(luò)通信量(traffic)進(jìn)行優(yōu)先級(jí)分類并為之指定資源。DiffServ在StevenBlake和DavidL.Black于1998年12月提交的RFC2475中規(guī)范。這2類技術(shù)的含義如圖12-42所示。圖12-40IntServ和DiffServ的
含義QoS技術(shù)類型-分類二(1)按每個(gè)流(perflow)處理:流是兩個(gè)應(yīng)用之間一個(gè)獨(dú)立的、方向單一的數(shù)據(jù)包序列。流用以下5指標(biāo)唯一標(biāo)識(shí):
·傳輸協(xié)議
·源地址
·源端口號(hào)
·目的地址
·目的端口號(hào)(2)按每個(gè)聚合處理每個(gè)聚合由2個(gè)或多個(gè)流組成。聚合中的流一般具有相同的標(biāo)識(shí)信息,如地址、端口、標(biāo)簽、優(yōu)先級(jí)或某些認(rèn)證信息。集成服務(wù)和區(qū)分服務(wù)技術(shù)可以根據(jù)用戶QoS需求的不同而采用數(shù)據(jù)流或聚合處理方法。RSVP通過控制信令支持網(wǎng)絡(luò)資源預(yù)留,RSVP通常被視為按每個(gè)流的QoS技術(shù),同時(shí)也支持按每個(gè)聚合處理。區(qū)分服務(wù)可以對(duì)流和聚合提供分類和區(qū)分優(yōu)先級(jí)。其他技術(shù)除了IntServ和DiffServ方法外,目前,提供QoS保證的重要技術(shù)還包括以下2個(gè):(1)MPLS流量工程:MPLS通過實(shí)施流量工程提供QoS保證。(2)子網(wǎng)帶寬管理SBM:SBM(SubnetBandwidthManagement)在共享式和交換式的IEEE802網(wǎng)絡(luò)的第2層支持分類和優(yōu)先級(jí)區(qū)分。上述QoS技術(shù)提供的服務(wù)級(jí)別以及實(shí)現(xiàn)的位置如表12-3所示。表12-3QoS服務(wù)級(jí)別及其實(shí)現(xiàn)的位置QoS級(jí)別實(shí)現(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)實(shí)施,與RSVP預(yù)留服務(wù)級(jí)別相對(duì)應(yīng)。優(yōu)先級(jí)使用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是一個(gè)信令協(xié)議。它提供資源預(yù)留的建立與控制機(jī)制。RSVP在IP網(wǎng)絡(luò)上提供集成服務(wù)。在QoS技術(shù)中,RSVP是最復(fù)雜的,同時(shí),RSVP提供了最高級(jí)別的服務(wù)質(zhì)量保證。1.IntServ實(shí)現(xiàn)參考框架IntServ集成模型標(biāo)準(zhǔn)RFC1633提出了實(shí)現(xiàn)集成服務(wù)的參考框架。該框架由以下幾部分組成。(1)Setup協(xié)議:Setup協(xié)議用于主機(jī)或路由器動(dòng)態(tài)地分配和保留資源,以滿足特殊數(shù)據(jù)流的服務(wù)需求。RSVP就是一個(gè)Setup協(xié)議(2)流說明:說明流所具有的QoS指標(biāo)參數(shù)。續(xù)(3)流量控制:它由以下3個(gè)組件實(shí)現(xiàn):·分組調(diào)度器(scheduler):其基本功能是對(duì)輸出隊(duì)列重排序,它處于典型操作系統(tǒng)的輸出驅(qū)動(dòng)器級(jí)別,并與數(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)行流量控制,每個(gè)輸入的分組必須劃分成某些類,屬于同一類的所有分組得到分組調(diào)度器的相同對(duì)待。分類工作由分組分類器負(fù)責(zé)。類是一種由路由器定義的本地屬性,換句話說,同一分組可以被不同的路由器分成不同的類。續(xù)·接納控制(admissioncontrol):確定一個(gè)機(jī)器(主機(jī)、路由器或交換機(jī))是否能夠支持某特定數(shù)據(jù)流所需的QoS。它產(chǎn)生一個(gè)本地的接受或拒絕決定。IntServe服務(wù)實(shí)現(xiàn)參考框架的組成如圖12-41所示。圖12-41IntServ服務(wù)實(shí)現(xiàn)
參考框架2.IntServ的服務(wù)類型通信的雙方要約定需要服務(wù)的類型。集成服務(wù)類型包括以下2種:(1)保證服務(wù)(guaranteedservice):該類型的服務(wù)為數(shù)據(jù)提供專用的帶寬和限定的端到端延時(shí)。保證服務(wù)是為具有極嚴(yán)格的延時(shí)和帶寬要求的應(yīng)用設(shè)計(jì)的,如高保真電話會(huì)議。(2)受控負(fù)荷服務(wù)(controlled-loadservice):該類型應(yīng)用于延時(shí)和帶寬要求不是很嚴(yán)格的場合。它的延時(shí)上限可以不必限定。在沒有負(fù)荷的條件下,這種類型等效于盡力而為(besteffort)服務(wù)。它比盡力而為服務(wù)要好,但不能象保證類型那樣提供嚴(yán)格的有界的服務(wù)(boundedservice)。當(dāng)網(wǎng)絡(luò)發(fā)生擁塞時(shí),受控負(fù)荷服務(wù)的性能只是輕微下降,它能保證數(shù)據(jù)流的延時(shí)和丟失率在一個(gè)可控的范圍內(nèi)。3.RSVP資源預(yù)留原理資源預(yù)留建立的大致過程包括以下4步:
(1)源主機(jī)定義通信量帶寬、延遲和抖動(dòng)等參數(shù)的范圍,然后發(fā)送RSVPPATH報(bào)文,該報(bào)文包含通信量聲明信息(TrafficSpecification,TSpec)。PATH報(bào)文被封裝在IP分組或UDP數(shù)據(jù)報(bào)中轉(zhuǎn)發(fā)。在轉(zhuǎn)發(fā)過程中,中間路由器把必要的信息(稱為通路狀態(tài))填入PATH報(bào)文。這樣,PATH到達(dá)目的主機(jī)時(shí),PATH就記錄了從源到目的主機(jī)的完整的通路信息,如路由器的地址和路由器QoS特性。續(xù)(2)目的主機(jī)產(chǎn)生RSVPRESV報(bào)文。與TSpec對(duì)應(yīng),RESV報(bào)文包含請(qǐng)求聲明(RequestSpecification,RSpec),它指明需要的集成服務(wù)類型。RESV報(bào)文還包含過濾聲明(FilterSpecification,F(xiàn)ilterSpec),它指明需要預(yù)留資源的數(shù)據(jù)的運(yùn)輸協(xié)議及端口號(hào)。RSpec和FilterSpec構(gòu)成了流描述符(flow-descriptor),它與數(shù)據(jù)流一一對(duì)應(yīng),路由器可以用它來標(biāo)識(shí)預(yù)留資源。該描述符被傳遞給通路上每個(gè)支持RSVP的路由器的流量控制組件。接納控制和策略控制功能判斷該QoS請(qǐng)求能否被支持,如果可以,則分類器和調(diào)度器被刷新。續(xù)(3)當(dāng)RESV報(bào)文到達(dá)PATH報(bào)文經(jīng)過的路由器時(shí),路由器檢查RSpec的請(qǐng)求是否能被滿足,如果可以,則路由器記錄RESV的消息,分配資源,并把RESV向源主機(jī)轉(zhuǎn)發(fā)。如果請(qǐng)求被拒絕,則路由器返回一個(gè)錯(cuò)誤消息。(4)當(dāng)RESV沿著PATH報(bào)文經(jīng)過的通路返回源主機(jī)時(shí),一條由源到目的主機(jī)的具有資源保證的通路就建立起來。上述過程如圖12-42所示。圖12-42RSVPQoS原理:RSVPPATH和RESV報(bào)文12.4.3區(qū)分服務(wù)從RSVP集成服務(wù)原理的介紹中讀者可以看到,RSVP要在源主機(jī)和目的主機(jī)之間通過PATH和RESV報(bào)文的交換,在數(shù)據(jù)流要經(jīng)過的路由的沿途節(jié)點(diǎn)為每個(gè)數(shù)據(jù)流預(yù)留資源。同時(shí),在所有節(jié)點(diǎn)要維護(hù)相應(yīng)的數(shù)據(jù)流說明、分類、接納和調(diào)度的規(guī)則。因此,RSVP資源預(yù)留可以提供端到端的QoS保證(主機(jī)-主機(jī)間的,需要全部中間節(jié)點(diǎn)支持RSVP)。與區(qū)分服務(wù)相比,集成服務(wù)的成本要高,實(shí)現(xiàn)比較復(fù)雜。區(qū)分服務(wù)特點(diǎn)(1)區(qū)分服務(wù)通過優(yōu)先處理QoS需求高的數(shù)據(jù)實(shí)現(xiàn)QoS保證,而不是在路由沿途預(yù)留資源。(2)區(qū)分服務(wù)也對(duì)數(shù)據(jù)進(jìn)行分類,但分類的目的是定義數(shù)據(jù)的優(yōu)先級(jí),而不僅僅是歸類。(3)數(shù)據(jù)分類和處理所依據(jù)的標(biāo)識(shí)在網(wǎng)絡(luò)的邊緣被定義,網(wǎng)絡(luò)的核心路由器(第3層設(shè)備)根據(jù)標(biāo)識(shí)的屬性對(duì)分組進(jìn)行處理。標(biāo)識(shí)的定義可以借助現(xiàn)有協(xié)議PDU中的某個(gè)字段,這樣,對(duì)數(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),每個(gè)數(shù)據(jù)流或用戶轉(zhuǎn)發(fā)狀態(tài)不必在網(wǎng)絡(luò)內(nèi)核保存,只需在服務(wù)提供的流量聚集處保存。而集成服務(wù)的作用范圍是源主機(jī)到目的主機(jī)的路由上的所有節(jié)點(diǎn)。1.區(qū)分服務(wù)的分類(1)加速轉(zhuǎn)發(fā)(ExpeditedForwarding,EF):EF服務(wù)具有一個(gè)單一的區(qū)分服務(wù)編碼(DiffServCodePiont,DSCP。RFC2474)。EF將延遲和抖動(dòng)最小化,提供了聚合的最高級(jí)別的服務(wù)質(zhì)量。任何超過通信量約定(profile)的通信量會(huì)被丟棄。通信量約定由本地策略制定。(2)保證轉(zhuǎn)發(fā)(AssuredForwarding,AF):AF服務(wù)包含4個(gè)類別(class)每個(gè)類別有3個(gè)優(yōu)先級(jí),因此共有4×3個(gè)服務(wù)級(jí)別。2.服務(wù)編碼區(qū)分服務(wù)使用DS字段定義服務(wù)編碼。iffServ使用IPv4頭部的TOS(TypeofService)字段作為DS字段(IPv6中的TC字段被作為DS字段),因?yàn)門OS字段在公用IP實(shí)現(xiàn)中并沒有使用(盡管它用來標(biāo)識(shí)優(yōu)先級(jí)和支持TOS路由)。DS字段的結(jié)構(gòu)如圖12-43所示。圖12-43IPv4TOS字段用于
定義區(qū)分服務(wù)編碼3.DiffServ模型的實(shí)現(xiàn)機(jī)制
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 眉山藥科職業(yè)學(xué)院《軟件工程與》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024年度校園食堂承包與食品安全監(jiān)管合同3篇
- 2024年度汽車貸款信用保證保險(xiǎn)合同3篇
- 2024年標(biāo)準(zhǔn)版房地產(chǎn)項(xiàng)目資本金監(jiān)管協(xié)議版B版
- 2024年版:教育貸款申請(qǐng)合同3篇
- 影調(diào)的造型作用
- 呂梁師范高等??茖W(xué)校《中國城市發(fā)展史》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024全新指紋鎖智能家居控制系統(tǒng)集成合同2篇
- 2024年特色手工藝品買賣合同詳細(xì)
- 2024年標(biāo)準(zhǔn)膩?zhàn)邮┕趧?wù)分包合同樣本版B版
- 警察職業(yè)介紹(課堂PPT)
- HACCP案例分析
- 二次精裝修施工方案及技術(shù)措施
- 7、太平人壽《基本法
- 寶龍地產(chǎn)商管公司各級(jí)員工薪酬
- 兒童哮喘診療指南
- 飲水機(jī)濾芯更換記錄表
- 空氣站質(zhì)量控制措施之運(yùn)行維護(hù)
- 方解石礦產(chǎn)地質(zhì)工作指引
- 水土保持遙感監(jiān)測技術(shù)規(guī)范
- 藍(lán)色簡約公安警察工作匯報(bào)PPT模板
評(píng)論
0/150
提交評(píng)論