前言:一篇好文章的誕生,需要你不斷地搜集資料、整理思路,本站小編為你收集了豐富的icmp協(xié)議主題范文,僅供參考,歡迎閱讀并收藏。
關(guān)鍵詞:網(wǎng)絡(luò)技術(shù);Ping命令;icmp協(xié)議
中圖分類號(hào):TP393文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2008)19-30028-03
The Realization of Ping Command in Virtual Network Construction
LV Jin-rong, GONG Pei-zeng, YANG Zhi-qiang
(Dept of Computer Science and Engineering, Tongji University, Shanghai 200092, China)
Abstract: Network Technology is being more and more important not only in teaching but also in practical application. The paper based on the teaching curriculum and experiment requirement and did a primary researching in Virtual Network Construction. This experiment method use the simple icons to behalf the real network equipment which been used to construct network. Also the experiment method gives a command interface line in a separated window and simulates some network commands to check the states of net. This paper realizes the Ping command and analyzes with an experiment.
Key words: network technology; Ping command; ICMP protocols
1 引言
隨著計(jì)算機(jī)技術(shù)及網(wǎng)絡(luò)技術(shù)的迅速發(fā)展,個(gè)人、家庭或宿舍中擁有多臺(tái)計(jì)算機(jī)已變得十分的普遍,將多臺(tái)計(jì)算機(jī)組建成網(wǎng)絡(luò)可以提高資源的利用率和協(xié)同工作的效率,所以網(wǎng)絡(luò)技術(shù)無(wú)論在教學(xué)還是在現(xiàn)實(shí)生活中都變得異常的重要。
在實(shí)際學(xué)習(xí)中,由于資源設(shè)備的限制,提供完善的實(shí)驗(yàn)環(huán)境存在一定的難度,所以提供一種模擬的組建網(wǎng)絡(luò)的平臺(tái)具有很強(qiáng)的現(xiàn)實(shí)意義。雖然在應(yīng)用中,業(yè)界有很多優(yōu)秀的成品軟件,如:虛擬機(jī)軟件vmware、virtual pc;以及網(wǎng)絡(luò)認(rèn)證考試的軟件NetSim、Dynamips等工具也可用于模擬組建網(wǎng)絡(luò)的練習(xí)工具,但是由于它們所面向的是高級(jí)的網(wǎng)絡(luò)應(yīng)用,在教學(xué)的應(yīng)用中需要更簡(jiǎn)單直觀的平臺(tái)。
文中就是基于面向網(wǎng)絡(luò)技術(shù)教學(xué)的目的而設(shè)計(jì)的實(shí)驗(yàn)平臺(tái),提供了簡(jiǎn)單直觀實(shí)驗(yàn)的要求。文中重點(diǎn)實(shí)現(xiàn)了Ping命令,根據(jù)Ping命令的運(yùn)行原理,對(duì)它進(jìn)行了模擬實(shí)現(xiàn),相應(yīng)的其他檢查網(wǎng)絡(luò)狀態(tài)的命令,如:tracert、ipconfig、netstat等等,也可以根據(jù)各自的運(yùn)行原理進(jìn)行實(shí)現(xiàn)[1]。
2 Ping命令及ICMP協(xié)議簡(jiǎn)介
2.1 Ping命令簡(jiǎn)介
“Ping”這個(gè)名字源于聲納定位操作,最早Ping程序是由Mike Muuss編寫[2],目的是為了測(cè)試另一臺(tái)主機(jī)是否可達(dá),該程序發(fā)送一份ICMP回顯請(qǐng)求報(bào)文給主機(jī),并等待返回ICMP回顯應(yīng)答。
一般來(lái)說(shuō),如果不能Ping到某臺(tái)主機(jī),那么就不能Telnet或者FTP到那臺(tái)主機(jī);反過(guò)來(lái),如果不能Telnet到某臺(tái)主機(jī),那么通常可以用Ping程序來(lái)確定問(wèn)題出在哪里。但是隨著Internet安全意識(shí)的增強(qiáng),Ping不通一臺(tái)主機(jī)也可能是受路由器、防火墻的影響,但在一般的應(yīng)用中可以將Ping作為檢測(cè)網(wǎng)絡(luò)連通狀況的實(shí)用工具。
■
圖1 Ping命令發(fā)送ICMP報(bào)文
2.2 ICMP協(xié)議簡(jiǎn)介
ICMP協(xié)議(Internet Control Message Protocol, Internet控制報(bào)文協(xié)議)是TCP/IP協(xié)議族的一個(gè)子協(xié)議,該協(xié)議位于網(wǎng)絡(luò)層,提供了傳輸差錯(cuò)報(bào)文、控制報(bào)文和詢問(wèn)報(bào)文的功能;允許ICMP報(bào)文在IP數(shù)據(jù)報(bào)內(nèi)攜帶。封裝格式如下圖:
■
圖2 ICMP封裝在IP數(shù)據(jù)報(bào)內(nèi)部
ICMP報(bào)文有多種類型,Ping程序使用ICMP的回顯請(qǐng)求報(bào)文,該報(bào)文的結(jié)構(gòu)如下:前四個(gè)字節(jié)為報(bào)文頭部分,第一個(gè)字節(jié)為報(bào)文類型,第二個(gè)字節(jié)未用,第三、四個(gè)字節(jié)為報(bào)文的校驗(yàn)和,第五、六個(gè)字節(jié)為報(bào)文的標(biāo)志符,第六、七個(gè)字節(jié)為報(bào)文的序號(hào),最后為選項(xiàng)數(shù)據(jù)但是報(bào)文總長(zhǎng)度不超過(guò)64KB。
ICMP回顯請(qǐng)求和回顯應(yīng)答報(bào)文格式如下圖:
■
圖3 ICMP回顯請(qǐng)求和回顯應(yīng)答報(bào)文格式
3 Ping命令執(zhí)行原理及實(shí)現(xiàn)步驟
3.1 執(zhí)行原理和步驟
在進(jìn)行Ping操作時(shí),首先從客戶機(jī)向服務(wù)器發(fā)送ICMP回顯請(qǐng)求報(bào)文,當(dāng)服務(wù)器接收到客戶機(jī)發(fā)送來(lái)的ICMP回顯請(qǐng)求報(bào)文時(shí),服務(wù)器就會(huì)向客戶機(jī)發(fā)送ICMP回顯應(yīng)答報(bào)文,客戶機(jī)通過(guò)接收來(lái)自服務(wù)器的ICMP回顯應(yīng)答報(bào)文,從而判斷與遠(yuǎn)程主機(jī)的聯(lián)通狀態(tài)。
實(shí)現(xiàn)步驟如下:
步驟 1:根據(jù)ICMP回顯請(qǐng)求的報(bào)文格式,定義報(bào)文;
步驟 2:客戶機(jī)發(fā)送封裝ICMP回顯請(qǐng)求報(bào)文的IP數(shù)據(jù)包;
步驟 3:客戶機(jī)接收封裝ICMP應(yīng)答報(bào)文的IP數(shù)據(jù)包。
3.2 數(shù)據(jù)包的檢驗(yàn)和算法
為了保證包頭和數(shù)據(jù)不被破壞,數(shù)據(jù)包在計(jì)算機(jī)網(wǎng)絡(luò)中傳輸期間使用了檢驗(yàn)和(圖3中的第三四字節(jié)),ICMP的檢驗(yàn)和字段覆蓋整個(gè)ICMP報(bào)文,而求ICMP的檢驗(yàn)和是必須的,檢驗(yàn)和保證了ICMP報(bào)頭和數(shù)據(jù)的正確性。
檢驗(yàn)和算法在所有的協(xié)議中都是相同的,只是由于協(xié)議的不同,檢驗(yàn)和保證的域的內(nèi)容不同。檢驗(yàn)和在各種協(xié)議中所保證的各種域如下:
■
檢驗(yàn)和icmp_ckSum算法如下[4]:
① 在檢驗(yàn)和的域中設(shè)置為0;
② 在數(shù)據(jù)長(zhǎng)度為奇數(shù)時(shí),在其域中最后追加0,使其調(diào)整為以16為單位(在這種調(diào)整方法中,即使追加8位,也不包含包長(zhǎng)度);
③ 以16位為單位,將一個(gè)偽報(bào)頭、報(bào)頭、數(shù)據(jù)部分加上1的補(bǔ)碼;
④ 將所求出的值:1的補(bǔ)碼存儲(chǔ)到報(bào)頭檢查和的區(qū)域中。
如果首部在傳輸?shù)倪^(guò)程中沒(méi)有發(fā)生任何差錯(cuò),那么接收方計(jì)算的結(jié)果應(yīng)該為全1;如果結(jié)果不是全1(即檢驗(yàn)和錯(cuò)誤),那么IP就丟棄收到的數(shù)據(jù)報(bào),但是不生成差錯(cuò)報(bào)文,由上層去發(fā)現(xiàn)丟失的數(shù)據(jù)報(bào)并進(jìn)行重傳。
4 模擬命令的實(shí)驗(yàn)過(guò)程及結(jié)果
4.1 實(shí)驗(yàn)要完成的功能
本實(shí)驗(yàn)平臺(tái)要實(shí)現(xiàn)的功能界面如圖4。
在“工作臺(tái)”窗口中,組建了一個(gè)簡(jiǎn)單的局域網(wǎng),通過(guò)模擬網(wǎng)絡(luò)命令測(cè)試該局域網(wǎng)的網(wǎng)絡(luò)連通狀態(tài),在“命令交互”窗口中,用Ping命令從PC1到PC2,返回的結(jié)果將與實(shí)際的局域網(wǎng)中得到的結(jié)果相似。
4.2 Ping命令的Visual C#模擬實(shí)現(xiàn)
安裝Ping命令的執(zhí)行原理、步驟,其具體的實(shí)現(xiàn)過(guò)程如下:
① ICMP數(shù)據(jù)包類的定義和實(shí)現(xiàn)。
public class IcmpPacket{private Byte_type;// 報(bào)文類型
private Byte_subCode;// 字代碼類型
private UInt16 _checkSum;// 報(bào)文校驗(yàn)和
private UInt16 _identifier;//識(shí)別符
private UInt16 _sequenceNumber;// 序列號(hào)
private Byte[]_data; // 數(shù)據(jù)選項(xiàng) }
② 模擬Socket的SendTo()方法的SimSendTo()方法。
在執(zhí)行Ping命令時(shí)該方法將被調(diào)用,根據(jù)計(jì)算機(jī)名或虛擬的IP地址,將ICMP數(shù)據(jù)包的UInt16數(shù)組發(fā)送給目的主機(jī)進(jìn)行驗(yàn)證。
在該方法中增加了對(duì)計(jì)算機(jī)名的名稱的解析,可以將計(jì)算機(jī)名稱與虛擬的IP地址對(duì)應(yīng)起來(lái),因此Ping命令后面的參數(shù)可以是計(jì)算機(jī)名也可以是具體的IP地址。
③ 模擬Socket的ReceiveFrom()方法的SimReceiveFrom()方法。
此方法在執(zhí)行Ping命令是也會(huì)被調(diào)用,該方法返回了目的主機(jī)回顯的信息,表明了目的主機(jī)是否已經(jīng)接收到了發(fā)送的數(shù)據(jù),若該方法的返回值為ICMP數(shù)據(jù)包的大小,則表明操作成功,將在終端顯示接收信息;若返回的值為-1,則在終端顯示“目的主機(jī)不可到達(dá)”的信息。
④ 檢驗(yàn)和icmp_ckSum()算法的實(shí)現(xiàn)。
public static UInt16 icmp_ckSum(UInt16[] buffer)
{int cksum = 0;
for(int i=0;i
cksum += (int) buffer[i];
cksum = (cksum >> 16) + (cksum & 0xffff);
cksum += (cksum >> 16);
return (UInt16)(~cksum); }
5 結(jié)束語(yǔ)
該文對(duì)模擬組網(wǎng)的實(shí)驗(yàn)平臺(tái)進(jìn)行了介紹,詳細(xì)介紹了Ping命令的原理及其工作方式,并對(duì)其模擬實(shí)現(xiàn)進(jìn)行了詳細(xì)的分析。依據(jù)此實(shí)現(xiàn)方式,可以對(duì)其他的命令tracert、ipconfig、netstat等等進(jìn)行實(shí)現(xiàn),以完善該實(shí)驗(yàn)平臺(tái)。
當(dāng)然該平臺(tái)到目前只是對(duì)關(guān)鍵的技術(shù)進(jìn)行了前期的研究和解決,很多的功能和相關(guān)的技術(shù)還要進(jìn)行繼續(xù)的研究,在命令的交互體驗(yàn)方面也應(yīng)該更加真實(shí),這些都成為以后工作的重點(diǎn)。
參考文獻(xiàn):
[1] Jon C.Snader. 劉江林,譯. 高級(jí)TCP/IP編程[M].北京:中國(guó)電力出版社,2001.6.
[2] W.Richard Stevens.TCP/IP Illustrated, Volume 1:The Protocols.北京:機(jī)械工業(yè)出版社,2002.1.
[3] 潘愛(ài)明,譯.計(jì)算機(jī)網(wǎng)絡(luò)[M].第4版.北京:清華大學(xué)出版社,2004.8.
[4] 馮杰,閆魯生,譯.TCP/IP網(wǎng)絡(luò)實(shí)驗(yàn)程序篇[M].北京:科學(xué)出版社,2003.4.
[5] Gary R.Wright,W.Richard Stevens.TCP/IP Illustrated, Volume 2:The Implementation[M].北京:機(jī)械工業(yè)出版社,2002.1.
[6] 李銘,黃靜,譯.C#2005&.NET 3.0高級(jí)編程.第5版.北京:清華大學(xué)出版社,2007.12.
[7] RFC 791-1981 INTERNET PROTOCOL[S].Network Working Group.
關(guān)鍵詞:黑客攻擊;網(wǎng)絡(luò)協(xié)議;ICMPIP
一、黑客基礎(chǔ)知識(shí)
不難想象,本文可選擇的攻擊類型范圍很廣。我之所以選取本文所討論的幾種特定攻擊,是因?yàn)樗鼈儾恍枰嚓P(guān)于所涉及協(xié)議的知識(shí),但仍然能有效地說(shuō)明了攻擊是如何執(zhí)行的、攻擊實(shí)際上是多么簡(jiǎn)單(一旦您知道了詳細(xì)信息)以及攻擊者所需的資源(計(jì)算和網(wǎng)絡(luò))是多么有限。盡管不可能在本文中涵蓋關(guān)于黑客攻擊的整個(gè)主題,但我已盡可能簡(jiǎn)化基本原理,而仍然盡量多地提供必要信息,以便您理解所描述的攻擊。
二、攻擊的種類。拒絕服務(wù)攻擊:通常,黑客瞄準(zhǔn)特定系統(tǒng),闖入系統(tǒng)以便將其用于特定用途。那些系統(tǒng)的主機(jī)安全性經(jīng)常會(huì)阻止攻擊者獲得對(duì)主機(jī)的控制權(quán)。但進(jìn)行拒絕服務(wù)攻擊時(shí),攻擊者不必獲得對(duì)系統(tǒng)的控制權(quán)。其目標(biāo)只是使系統(tǒng)或網(wǎng)絡(luò)過(guò)載,這樣它們就無(wú)法繼續(xù)提供服務(wù)了。拒絕服務(wù)攻擊可以有不同的目標(biāo),包括帶寬消耗(bandwidth consumption)和資源缺乏(resource starvation)。
三、分析選定的網(wǎng)絡(luò)攻擊
(一)協(xié)議
本段討論了針對(duì)網(wǎng)際控制報(bào)文協(xié)議(ICMP)和傳輸控制協(xié)議(TCP)上的攻擊,這兩個(gè)協(xié)議都屬于網(wǎng)際協(xié)議(IP)系列。在深入研究關(guān)于這些協(xié)議的詳細(xì)信息之前,我打算先在適合于這些協(xié)議的環(huán)境中討論它們。
網(wǎng)際控制報(bào)文協(xié)議(ICMP)是IP的組成部分,但它使用某些IP服務(wù)。ICMP提供服務(wù),使主機(jī)能夠彼此交流控制信息。ICMP由IP和一些更高級(jí)別的協(xié)議使用,如傳輸控制協(xié)議(TCP)。
傳輸控制協(xié)議(TCP)是本文中討論的第三個(gè)重要協(xié)議。TCP的功能比IP更進(jìn)一步,并提供兩個(gè)重要特性:連接和服務(wù)質(zhì)量。這意味著您可以在兩臺(tái)主機(jī)之間開一個(gè)虛擬通道,通過(guò)這個(gè)通道,使得所發(fā)送的包的順序及其實(shí)際傳遞都得到保障。
接下來(lái)更高的一級(jí)是應(yīng)用層協(xié)議,如Telnet和SMTP。它們都使用由TCP提供的服務(wù)。例如,當(dāng)您用Telnet連接到主機(jī)時(shí),打開一個(gè)連接,并且您希望所有輸入這個(gè)Telnet會(huì)話的數(shù)據(jù)都以正確的順序發(fā)送到接收主機(jī)。
(二)理解IP
因?yàn)镮P提供的是無(wú)連接、不可靠、最高效的(best-effort)數(shù)據(jù)報(bào)傳遞服務(wù),所以IP的使用范圍多少受到了限制。但是,它提供兩個(gè)基本功能:尋址和分段。地址(在IP數(shù)據(jù)報(bào)頭中封裝為源和目的地地址)用來(lái)將數(shù)據(jù)報(bào)傳輸?shù)狡淠康牡?,這個(gè)過(guò)程稱為路由。有兩種基本情況:
接收主機(jī)和發(fā)送主機(jī)位于同一子網(wǎng),這種情況下數(shù)據(jù)報(bào)將被直接從發(fā)送方發(fā)送到接收方。
接收主機(jī)位于不同的子網(wǎng),這種情況下發(fā)送主機(jī)將把數(shù)據(jù)報(bào)轉(zhuǎn)發(fā)到網(wǎng)關(guān)(連接兩個(gè)子網(wǎng)的IP主機(jī)),然后,如果目的地主機(jī)在一個(gè)與網(wǎng)關(guān)相連的子網(wǎng)中,則網(wǎng)關(guān)會(huì)嘗試將數(shù)據(jù)報(bào)傳遞到目的地主機(jī)。如果目的地主機(jī)不在與網(wǎng)關(guān)相連的子網(wǎng)中,網(wǎng)關(guān)將會(huì)把數(shù)據(jù)報(bào)轉(zhuǎn)發(fā)到另一個(gè)網(wǎng)關(guān)。這個(gè)過(guò)程將反復(fù)進(jìn)行,直到能夠?qū)?shù)據(jù)報(bào)傳遞到其目的地主機(jī)為止。
既然我已經(jīng)介紹了基礎(chǔ)知識(shí),現(xiàn)在可以討論個(gè)別協(xié)議了。在以下幾節(jié)中,您將找到關(guān)于ICMP和TCP的更詳細(xì)的信息以及一些使用這些協(xié)議的有趣的攻擊。
(三)使用ICMP
超時(shí)消息:每個(gè)IP數(shù)據(jù)報(bào)頭中都包含一個(gè)字段―稱為“生存時(shí)間字段”―它指出數(shù)據(jù)報(bào)在被丟棄之前還能在因特網(wǎng)上保持多久。數(shù)據(jù)報(bào)在因特網(wǎng)上保持的時(shí)間以跳躍點(diǎn)(hop)衡量,其中一個(gè)跳躍點(diǎn)表示數(shù)據(jù)報(bào)通向目的地節(jié)點(diǎn)路徑上的一個(gè)網(wǎng)關(guān)。當(dāng)數(shù)據(jù)報(bào)經(jīng)過(guò)網(wǎng)關(guān)轉(zhuǎn)發(fā)時(shí),它就將生存時(shí)間字段中的值減一。如果處理數(shù)據(jù)報(bào)的網(wǎng)關(guān)測(cè)定該數(shù)據(jù)報(bào)IP頭中的生存時(shí)間字段為0,則丟棄該數(shù)據(jù)報(bào)并用超時(shí)消息通知源主機(jī)。
回應(yīng)請(qǐng)求和回應(yīng)應(yīng)答消息:如果主機(jī)A想知道主機(jī)B是否是活動(dòng)的,則主機(jī)A會(huì)向主機(jī)B發(fā)送一條ICMP回應(yīng)請(qǐng)求消息。主機(jī)B將用ICMP回應(yīng)應(yīng)答消息來(lái)應(yīng)答,以表明自己是活動(dòng)的。這條消息就是眾所周知的ping包。
以上這些并不是ICMP所使用的全部消息類型,但它們能使您大致了解ICMP的用途。接下來(lái)我將向您介紹兩種ICMP攻擊。
目的地不可到達(dá)攻擊
類別:拒絕服務(wù)攻擊
描述:如上所述,ICMP目的地不可到達(dá)消息向嘗試轉(zhuǎn)發(fā)消息的網(wǎng)關(guān)提供了一種工具,用來(lái)通知發(fā)送方:因?yàn)樵跀?shù)據(jù)報(bào)目的地地址中指定的主機(jī)不可到達(dá),所以無(wú)法傳遞該消息。
如果入侵者獲得了網(wǎng)絡(luò)10.1.0.0中一臺(tái)主機(jī)的訪問(wèn)權(quán),那么,他可以廣播一條“目的地不可到達(dá)消息”,聲明網(wǎng)關(guān)G對(duì)于他所在網(wǎng)絡(luò)的所有主機(jī)是不可到達(dá)的。這將使網(wǎng)關(guān)G和網(wǎng)絡(luò)10.2.0.0暫時(shí)變得不可用,因而不可能從網(wǎng)絡(luò)10.1.0.0向網(wǎng)絡(luò)10.2.0.0傳輸任何消息。
這種攻擊背后的動(dòng)機(jī)只是使網(wǎng)絡(luò)或服務(wù)暫時(shí)癱瘓。因?yàn)楣粽卟恍枰δ軓?qiáng)大的機(jī)器或高速的網(wǎng)絡(luò)連接來(lái)執(zhí)行這種攻擊,所以它特別危險(xiǎn)。
(四)Smurf攻擊
類別:拒絕服務(wù)攻擊
描述:Smurf攻擊是拒絕服務(wù)攻擊的一種非常可怕的形式,因?yàn)樗哂蟹糯笮?yīng)。Smurf攻擊利用ICMP回應(yīng)消息。如上所述,主機(jī)A每次向主機(jī)B發(fā)送回應(yīng)請(qǐng)求消息時(shí),主機(jī)B都會(huì)返回回應(yīng)應(yīng)答消息以表明自己是活動(dòng)的。名稱“Smurf攻擊”源自一個(gè)名為smurf的利用程序,攻擊者用該程序來(lái)執(zhí)行這種攻擊。
(五)傳輸控制協(xié)議(TCP)
在繼續(xù)討論攻擊之前,我將更詳細(xì)地討論TCP的某些方面,這些知識(shí)對(duì)于下面討論的攻擊是必需的。尤其是TCP包(稱為段)的結(jié)構(gòu)、如何在主機(jī)之間建立TCP連接和如何關(guān)閉連接。
(六)TCP包的結(jié)構(gòu)
與IP數(shù)據(jù)報(bào)類似,TCP段包含頭部分、可選(選項(xiàng))部分和數(shù)據(jù)部分。現(xiàn)在,讓我們更仔細(xì)地研究一下TCP頭的某些重要字段:
源端口:分配給啟動(dòng)連接的主機(jī)上虛連接的端口號(hào)。
目的地端口:目的地端口號(hào)。這也由啟動(dòng)連接的主機(jī)分配,因?yàn)橹挥性撝鳈C(jī)知道自己“想”連接到哪里。例如,如果您打開到特定主機(jī)的Telnet連接,則目的地端口將被設(shè)置為23。
序列號(hào)和確認(rèn)號(hào):發(fā)送方和接收方使用兩個(gè)序列號(hào)來(lái)確保包沒(méi)有丟失、沒(méi)有重復(fù)以及可以在目的地節(jié)點(diǎn)以正確順序重新組裝。
標(biāo)志:這個(gè)字段包含六個(gè)控制位:
URG:向接收方表明一接收完數(shù)據(jù)就進(jìn)行緊急處理。
ACK:表明確認(rèn)號(hào)字段是有意義的。
PSH:表明必須迅速地將數(shù)據(jù)傳遞到接收方。
RST:表明要立即復(fù)位連接。
SYN:在需要同步序列號(hào)的情況下設(shè)置。
FIN:表明不會(huì)再有來(lái)自發(fā)送方的數(shù)據(jù)了(也就是說(shuō),連接將要關(guān)閉)。
以上是TCP頭中的重要字段,下面關(guān)于TCP連接的建立和關(guān)閉的幾節(jié)將使您更好地理解這些字段的用途。
關(guān)鍵詞:網(wǎng)絡(luò)管理協(xié)議(SNMP) 網(wǎng)絡(luò)拓?fù)渥詣?dòng)發(fā)現(xiàn)算法 網(wǎng)絡(luò)管理
隨著計(jì)算機(jī)網(wǎng)絡(luò)的普及,人們對(duì)計(jì)算機(jī)網(wǎng)絡(luò)的依賴性大大加強(qiáng)了。在現(xiàn)有的技術(shù)條件下,人們希望有一個(gè)更加穩(wěn)定可靠的網(wǎng)絡(luò)環(huán)境。計(jì)算機(jī)網(wǎng)絡(luò)管理系統(tǒng)就是應(yīng)這樣的需求而產(chǎn)生的。它對(duì)網(wǎng)絡(luò)上的各種設(shè)備進(jìn)行管理,通過(guò)監(jiān)視和控制這些設(shè)備。及時(shí)地向管理人員報(bào)告網(wǎng)絡(luò)狀態(tài),并且簡(jiǎn)化網(wǎng)絡(luò)故障的處理,減少故障造成的損失,提高網(wǎng)絡(luò)的服務(wù)質(zhì)量和效率。在我國(guó),人們開始認(rèn)識(shí)到網(wǎng)絡(luò)管理的重要性。
一、網(wǎng)絡(luò)管理中傳統(tǒng)的網(wǎng)絡(luò)拓?fù)浒l(fā)現(xiàn)算法
網(wǎng)絡(luò)拓?fù)涞陌l(fā)現(xiàn),實(shí)際上就是根據(jù)網(wǎng)絡(luò)上節(jié)點(diǎn)連接情況,構(gòu)造出來(lái)一個(gè)反映這種連接關(guān)系的圖。網(wǎng)絡(luò)節(jié)點(diǎn)可以是網(wǎng)關(guān),也可以是子網(wǎng):網(wǎng)關(guān)節(jié)點(diǎn)是與子網(wǎng)和其它網(wǎng)關(guān)節(jié)點(diǎn)相鄰的節(jié)點(diǎn);子網(wǎng)節(jié)點(diǎn)可被認(rèn)為只與網(wǎng)關(guān)節(jié)點(diǎn)相鄰,至少與它的缺省網(wǎng)關(guān)相鄰。各子網(wǎng)通過(guò)各目的網(wǎng)關(guān)與其他子網(wǎng)通信,這些子網(wǎng)可以是一個(gè)局域網(wǎng),也可以是某個(gè)局域網(wǎng)的一部分,它們都連接到網(wǎng)關(guān)的一個(gè)端口上。網(wǎng)關(guān)的端口可以連接子網(wǎng),也可以同其他路由器相連。
主拓?fù)渲傅氖欠从吵鲫P(guān)鍵設(shè)備包括路由器,它們的接口和子網(wǎng)的連接關(guān)系,即路由器一路由器、路由器一子網(wǎng)、接口的關(guān)系。這些信息需要對(duì)網(wǎng)絡(luò)進(jìn)行搜索而獲得:一般只需要對(duì)連接設(shè)備進(jìn)行遍歷就可以得到主拓?fù)浣Y(jié)構(gòu)。當(dāng)前的網(wǎng)管軟件都是通過(guò)對(duì)網(wǎng)絡(luò)設(shè)備的MIB庫(kù)進(jìn)行訪問(wèn),所以這種方法又被稱為基于SNMP的拓?fù)浒l(fā)現(xiàn)。經(jīng)過(guò)上述的遍歷過(guò)程,可以得到網(wǎng)絡(luò)拓拓?fù)鋱D的整體構(gòu)成,知道了網(wǎng)絡(luò)主干通道情況。但是子網(wǎng)內(nèi)部的具體設(shè)備以及連接狀態(tài)尚不可知。這就需要依靠子網(wǎng)發(fā)現(xiàn)來(lái)做進(jìn)一步的工作。子網(wǎng)發(fā)現(xiàn)完成的任務(wù)是確定子網(wǎng)內(nèi)各網(wǎng)絡(luò)設(shè)備的狀態(tài)、類型以及網(wǎng)絡(luò)接口。
遍歷的定義是:對(duì)于無(wú)向圖,以圖中某一點(diǎn)為出發(fā)點(diǎn),沿著邊依次訪問(wèn)圖的其余節(jié)點(diǎn),如果圖是連通的,則從圖的任一點(diǎn)出發(fā)按一定的順序沿著某些邊可以訪問(wèn)圖中的所有節(jié)點(diǎn),而且每個(gè)節(jié)點(diǎn)僅被訪問(wèn)一次,這一過(guò)程稱為圖的遍歷。在網(wǎng)絡(luò)上,一個(gè)節(jié)點(diǎn)可以和很多的節(jié)點(diǎn)連接,所以當(dāng)進(jìn)行網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)發(fā)現(xiàn)的時(shí)候,有可能會(huì)訪問(wèn)已經(jīng)被發(fā)現(xiàn)過(guò)的節(jié)點(diǎn)。因此,在遍歷的時(shí)候,必須對(duì)每一個(gè)節(jié)點(diǎn)設(shè)置一個(gè)標(biāo)志。當(dāng)節(jié)點(diǎn)未被訪問(wèn)過(guò)時(shí),相應(yīng)的標(biāo)志為0,否則,就置為1。
二、改進(jìn)的網(wǎng)絡(luò)拓?fù)渌惴?/p>
前面基于SNMP的拓?fù)渌惴ㄔ谝欢ǔ潭壬鲜欠浅S行У模負(fù)涞乃俣纫卜浅?臁5嬖谝粋€(gè)缺陷。那就是,在一個(gè)特定的域中,所有的子網(wǎng)的信息都依賴于設(shè)備具有SNMP的特性,如果系統(tǒng)不支持SNMP,則這種方法就無(wú)能為力了。還有對(duì)網(wǎng)絡(luò)管理的不重視,或者考慮到安全方面的原因,人們往往把網(wǎng)絡(luò)設(shè)備的SNMP功能關(guān)閉,這樣就難于取得設(shè)備的MIB值,就出現(xiàn)了拓?fù)涞牟煌暾?,?yán)重影響了網(wǎng)絡(luò)管理系統(tǒng)的功能。針對(duì)這一的問(wèn)題,下面討論本文對(duì)上述算法的改進(jìn)一基于ICMP協(xié)議的拓?fù)浒l(fā)現(xiàn)。
(一)ICMP報(bào)文的格式
ICMP被認(rèn)為是IP層的一個(gè)組成部分。它傳遞差錯(cuò)報(bào)文以及其他需要注意的信息。網(wǎng)際協(xié)議CIP沒(méi)有出錯(cuò)報(bào)告或出錯(cuò)校正機(jī)制,它依靠網(wǎng)際控制報(bào)文協(xié)議(ICMP)模塊來(lái)報(bào)告數(shù)據(jù)處理過(guò)程,井提供管理和狀態(tài)信息。ICMP報(bào)文在傳送時(shí)被封裝在IP數(shù)據(jù)報(bào)中,使用IP協(xié)議發(fā)送,但I(xiàn)CEP不看作是高層協(xié)議的內(nèi)容。
回應(yīng)請(qǐng)求與應(yīng)答均以IP數(shù)據(jù)報(bào)的形式在網(wǎng)間傳輸,假如成功地收到一個(gè)應(yīng)答(應(yīng)答中的數(shù)據(jù)拷貝與請(qǐng)求中的任選數(shù)據(jù)完全一致),不但說(shuō)明信宿機(jī)可以到達(dá),而且說(shuō)明數(shù)據(jù)報(bào)傳輸系統(tǒng)的相應(yīng)部分工作正常,至少信源機(jī)和信宿機(jī)的ICMP軟件和IP軟件工作正常,請(qǐng)求與應(yīng)答經(jīng)過(guò)中間網(wǎng)關(guān)也在正常工作。在許多TCP/IP實(shí)現(xiàn)中,用戶命令Ping便是利用ICMP回應(yīng)請(qǐng)求/應(yīng)答報(bào)文測(cè)試信宿機(jī)的可到達(dá)性的。
(二)PING的實(shí)現(xiàn)
PING的主要操作是發(fā)送報(bào)文,并簡(jiǎn)單地等待回答。PING之所以如此命名,是因?yàn)樗且粋€(gè)簡(jiǎn)單的回顯協(xié)議,使用ICMP響應(yīng)請(qǐng)求與響應(yīng)應(yīng)答報(bào)文。PING主要由系統(tǒng)程序員用于診斷和調(diào)試。一般的,PING的功能有:
LOOP BACK PING用于驗(yàn)證TCP/IP軟件的操作。
PIN G地址確定能否尋址物理網(wǎng)絡(luò)設(shè)備。
PING遠(yuǎn)程IP地址驗(yàn)證能否尋址網(wǎng)絡(luò)。
關(guān)鍵詞:簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議(SNMP) 網(wǎng)絡(luò)拓?fù)渥詣?dòng)發(fā)現(xiàn)算法 網(wǎng)絡(luò)管理
隨著計(jì)算機(jī)網(wǎng)絡(luò)的普及,人們對(duì)計(jì)算機(jī)網(wǎng)絡(luò)的依賴性大大加強(qiáng)了。在現(xiàn)有的技術(shù)條件下,人們希望有一個(gè)更加穩(wěn)定可靠的網(wǎng)絡(luò)環(huán)境。計(jì)算機(jī)網(wǎng)絡(luò)管理系統(tǒng)就是應(yīng)這樣的需求而產(chǎn)生的。它對(duì)網(wǎng)絡(luò)上的各種設(shè)備進(jìn)行管理,通過(guò)監(jiān)視和控制這些設(shè)備。及時(shí)地向管理人員報(bào)告網(wǎng)絡(luò)狀態(tài),并且簡(jiǎn)化網(wǎng)絡(luò)故障的處理,減少故障造成的損失,提高網(wǎng)絡(luò)的服務(wù)質(zhì)量和效率。在我國(guó),人們開始認(rèn)識(shí)到網(wǎng)絡(luò)管理的重要性。
一、網(wǎng)絡(luò)管理中傳統(tǒng)的網(wǎng)絡(luò)拓?fù)浒l(fā)現(xiàn)算法
網(wǎng)絡(luò)拓?fù)涞陌l(fā)現(xiàn),實(shí)際上就是根據(jù)網(wǎng)絡(luò)上節(jié)點(diǎn)連接情況,構(gòu)造出來(lái)一個(gè)反映這種連接關(guān)系的圖。網(wǎng)絡(luò)節(jié)點(diǎn)可以是網(wǎng)關(guān),也可以是子網(wǎng):網(wǎng)關(guān)節(jié)點(diǎn)是與子網(wǎng)和其它網(wǎng)關(guān)節(jié)點(diǎn)相鄰的節(jié)點(diǎn);子網(wǎng)節(jié)點(diǎn)可被認(rèn)為只與網(wǎng)關(guān)節(jié)點(diǎn)相鄰,至少與它的缺省網(wǎng)關(guān)相鄰。各子網(wǎng)通過(guò)各目的網(wǎng)關(guān)與其他子網(wǎng)通信,這些子網(wǎng)可以是一個(gè)局域網(wǎng),也可以是某個(gè)局域網(wǎng)的一部分,它們都連接到網(wǎng)關(guān)的一個(gè)端口上。網(wǎng)關(guān)的端口可以連接子網(wǎng),也可以同其他路由器相連。
主拓?fù)渲傅氖欠从吵鲫P(guān)鍵設(shè)備包括路由器,它們的接口和子網(wǎng)的連接關(guān)系,即路由器一路由器、路由器一子網(wǎng)、接口的關(guān)系。這些信息需要對(duì)網(wǎng)絡(luò)進(jìn)行搜索而獲得:一般只需要對(duì)連接設(shè)備進(jìn)行遍歷就可以得到主拓?fù)浣Y(jié)構(gòu)。當(dāng)前的網(wǎng)管軟件都是通過(guò)對(duì)網(wǎng)絡(luò)設(shè)備的MIB庫(kù)進(jìn)行訪問(wèn),所以這種方法又被稱為基于SNMP的拓?fù)浒l(fā)現(xiàn)。經(jīng)過(guò)上述的遍歷過(guò)程,可以得到網(wǎng)絡(luò)拓拓?fù)鋱D的整體構(gòu)成,知道了網(wǎng)絡(luò)主干通道情況。但是子網(wǎng)內(nèi)部的具體設(shè)備以及連接狀態(tài)尚不可知。這就需要依靠子網(wǎng)發(fā)現(xiàn)來(lái)做進(jìn)一步的工作。子網(wǎng)發(fā)現(xiàn)完成的任務(wù)是確定子網(wǎng)內(nèi)各網(wǎng)絡(luò)設(shè)備的狀態(tài)、類型以及網(wǎng)絡(luò)接口。
遍歷的定義是:對(duì)于無(wú)向圖,以圖中某一點(diǎn)為出發(fā)點(diǎn),沿著邊依次訪問(wèn)圖的其余節(jié)點(diǎn),如果圖是連通的,則從圖的任一點(diǎn)出發(fā)按一定的順序沿著某些邊可以訪問(wèn)圖中的所有節(jié)點(diǎn),而且每個(gè)節(jié)點(diǎn)僅被訪問(wèn)一次,這一過(guò)程稱為圖的遍歷。在網(wǎng)絡(luò)上,一個(gè)節(jié)點(diǎn)可以和很多的節(jié)點(diǎn)連接,所以當(dāng)進(jìn)行網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)發(fā)現(xiàn)的時(shí)候,有可能會(huì)訪問(wèn)已經(jīng)被發(fā)現(xiàn)過(guò)的節(jié)點(diǎn)。因此,在遍歷的時(shí)候,必須對(duì)每一個(gè)節(jié)點(diǎn)設(shè)置一個(gè)標(biāo)志。當(dāng)節(jié)點(diǎn)未被訪問(wèn)過(guò)時(shí),相應(yīng)的標(biāo)志為0,否則,就置為1。
二、改進(jìn)的網(wǎng)絡(luò)拓?fù)渌惴?/p>
前面基于SNMP的拓?fù)渌惴ㄔ谝欢ǔ潭壬鲜欠浅S行У?,拓?fù)涞乃俣纫卜浅?臁5嬖谝粋€(gè)缺陷。那就是,在一個(gè)特定的域中,所有的子網(wǎng)的信息都依賴于設(shè)備具有SNMP的特性,如果系統(tǒng)不支持SNMP,則這種方法就無(wú)能為力了。還有對(duì)網(wǎng)絡(luò)管理的不重視,或者考慮到安全方面的原因,人們往往把網(wǎng)絡(luò)設(shè)備的SNMP功能關(guān)閉,這樣就難于取得設(shè)備的MIB值,就出現(xiàn)了拓?fù)涞牟煌暾裕瑖?yán)重影響了網(wǎng)絡(luò)管理系統(tǒng)的功能。針對(duì)這一的問(wèn)題,下面討論本文對(duì)上述算法的改進(jìn)一基于ICMP協(xié)議的拓?fù)浒l(fā)現(xiàn)。
(一)ICMP報(bào)文的格式
ICMP被認(rèn)為是IP層的一個(gè)組成部分。它傳遞差錯(cuò)報(bào)文以及其他需要注意的信息。網(wǎng)際協(xié)議CIP沒(méi)有出錯(cuò)報(bào)告或出錯(cuò)校正機(jī)制,它依靠網(wǎng)際控制報(bào)文協(xié)議(ICMP)模塊來(lái)報(bào)告數(shù)據(jù)處理過(guò)程,井提供管理和狀態(tài)信息。ICMP報(bào)文在傳送時(shí)被封裝在IP數(shù)據(jù)報(bào)中,使用IP協(xié)議發(fā)送,但I(xiàn)CEP不看作是高層協(xié)議的內(nèi)容。
回應(yīng)請(qǐng)求與應(yīng)答均以IP數(shù)據(jù)報(bào)的形式在網(wǎng)間傳輸,假如成功地收到一個(gè)應(yīng)答(應(yīng)答中的數(shù)據(jù)拷貝與請(qǐng)求中的任選數(shù)據(jù)完全一致),不但說(shuō)明信宿機(jī)可以到達(dá),而且說(shuō)明數(shù)據(jù)報(bào)傳輸系統(tǒng)的相應(yīng)部分工作正常,至少信源機(jī)和信宿機(jī)的ICMP軟件和IP軟件工作正常,請(qǐng)求與應(yīng)答經(jīng)過(guò)中間網(wǎng)關(guān)也在正常工作。在許多TCP/IP實(shí)現(xiàn)中,用戶命令Ping便是利用ICMP回應(yīng)請(qǐng)求/應(yīng)答報(bào)文測(cè)試信宿機(jī)的可到達(dá)性的。
(二)PING的實(shí)現(xiàn)
PING的主要操作是發(fā)送報(bào)文,并簡(jiǎn)單地等待回答。PING之所以如此命名,是因?yàn)樗且粋€(gè)簡(jiǎn)單的回顯協(xié)議,使用ICMP響應(yīng)請(qǐng)求與響應(yīng)應(yīng)答報(bào)文。PING主要由系統(tǒng)程序員用于診斷和調(diào)試。一般的,PING的功能有:
LOOP BACK PING用于驗(yàn)證TCP/IP軟件的操作。
PIN G地址確定能否尋址物理網(wǎng)絡(luò)設(shè)備。
PING遠(yuǎn)程IP地址驗(yàn)證能否尋址網(wǎng)絡(luò)。
PING遠(yuǎn)程主機(jī)名驗(yàn)證主機(jī)上某個(gè)服務(wù)器的操作。
實(shí)現(xiàn)PING的過(guò)程主要是:首先向目的機(jī)器發(fā)送一個(gè)響應(yīng)請(qǐng)求的ICMP報(bào)文,然后等待目的機(jī)器的應(yīng)答,直到超時(shí)。如收到應(yīng)答報(bào)文,貝以報(bào)告目的機(jī)器運(yùn)行正常,程序退出。
(三)traceroute的實(shí)現(xiàn)
在IP頭的結(jié)構(gòu)中,存在一個(gè)ip_ttl域,即生存時(shí)間(time to_live,TTL)。TTL參數(shù)用于測(cè)量數(shù)據(jù)報(bào)在網(wǎng)際存在多長(zhǎng)時(shí)間。網(wǎng)絡(luò)中的每個(gè)路由器都檢查該域,如果TTL值為0,路由器就拋棄該數(shù)據(jù)報(bào)。路由器還必須對(duì)它處理的每個(gè)數(shù)據(jù)報(bào)的該域進(jìn)行減I操作。在實(shí)際執(zhí)行中,TTL域是一個(gè)反映跳段的值。所以,當(dāng)數(shù)據(jù)報(bào)穿過(guò)一個(gè)IP節(jié)點(diǎn)(網(wǎng)關(guān))時(shí)。TTL域中的值就減1。
traceroute的功能就是利用IP頭中的TTL域。開始時(shí)信源設(shè)置IP頭的TTL值為0,發(fā)送報(bào)文給信宿,第一個(gè)網(wǎng)關(guān)收到此報(bào)文后,發(fā)現(xiàn)TTL值為0,它丟棄此報(bào)文,并發(fā)送一個(gè)類型為超時(shí)的ICMP報(bào)文給信源。信源接收到此報(bào)文后對(duì)它進(jìn)行解析,這樣就得到了路由中的第一個(gè)網(wǎng)關(guān)地址。然后信源發(fā)送TTL值為1的報(bào)文給信宿,第一個(gè)網(wǎng)關(guān)把它的TTL值減為0后轉(zhuǎn)發(fā)給第二個(gè)網(wǎng)關(guān),第二個(gè)網(wǎng)關(guān)發(fā)現(xiàn)報(bào)文TTL值為0,丟棄此報(bào)文并向信源發(fā)送超時(shí)ICMP報(bào)文。這樣就得到了路由中和第二個(gè)網(wǎng)關(guān)地址。如此循環(huán)下去,直到報(bào)文正確到達(dá)信宿,這樣就得到了通往信宿的路由。
(四)網(wǎng)絡(luò)拓?fù)涞陌l(fā)現(xiàn)算法
具體實(shí)現(xiàn)的步驟:
1、于給定的IP區(qū)間,利用PING依次檢測(cè)每個(gè)IP地址,將檢測(cè)到的IP地址記錄到IP地址表中。
2、對(duì)第一步中查到的每個(gè)IP地址進(jìn)行traceroute操作,記錄到這些IP地址的路由。并把每條路由中的網(wǎng)關(guān)地址也加到IP表中。
3、對(duì)IP地址表中的每個(gè)IP地址,通過(guò)發(fā)送掩碼請(qǐng)求報(bào)文與接收掩碼應(yīng)答報(bào)文,找到這些IP地址的子網(wǎng)掩碼。
4、根據(jù)子網(wǎng)掩碼,確定對(duì)應(yīng)每個(gè)IP地址的子網(wǎng)地址,并確定各個(gè)子網(wǎng)的網(wǎng)絡(luò)類型。把查到的各個(gè)子網(wǎng)加入地址表中。
關(guān)鍵詞:拓?fù)浒l(fā)現(xiàn);ICMP;SNMP
中圖分類號(hào):TP393.02 文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1007-9599 (2011) 20-0000-01
Network Topology Auto-discovery System Design and Implementation
Tan Jian
(Guilin University of Electronic Science and Technology Hechi College,Yizhou546300,China)
Abstract:The design is based on SNMP and other protocols of the network topology discovery algorithm,three switches and routers as gateways rapid discovery of network topology,as much as possible to find a complete network,and network overhead of the extra load and as much as possible small.
Keywords:Topology discovery;ICMP;SNMP
一、系統(tǒng)功能模塊
從功能上看,網(wǎng)絡(luò)拓?fù)渥詣?dòng)發(fā)現(xiàn)系統(tǒng)由4個(gè)模塊構(gòu)成:一)主干網(wǎng)拓?fù)浒l(fā)現(xiàn)模塊主要功能為獲取主干網(wǎng)中路由器、子網(wǎng)之間的連接信息,將路由器地址放入路由隊(duì)列,將子網(wǎng)地址放入子網(wǎng)隊(duì)列,將連接信息放入連接隊(duì)列;二)子網(wǎng)拓?fù)浒l(fā)現(xiàn)模塊主要功能是獲取所有的子網(wǎng)內(nèi)的所有主機(jī)地址、掩碼和子網(wǎng)地址;三)主干網(wǎng)拓?fù)渖赡K主要功能是在主干網(wǎng)拓?fù)洳@得了已裝有了所有路由器地址的路由隊(duì)列、裝有所有子網(wǎng)地址的子網(wǎng)隊(duì)列和裝有連接信息的連接隊(duì)列后,將信息進(jìn)一步進(jìn)行處理,使網(wǎng)絡(luò)設(shè)備及其連接關(guān)系以圖像的形式展示在屏幕上;四)子網(wǎng)拓?fù)渖赡K的功能是在獲得了已裝有了所有路由器地址的路由隊(duì)列、裝有所有連接信息的連接隊(duì)列和裝有所有主機(jī)地址的主機(jī)隊(duì)列后,將信息進(jìn)一步處理,將指定子網(wǎng)內(nèi)的主機(jī)及其連接關(guān)系以圖像的形式展示在屏幕上。
二、研究解決途徑
本算法采用異步的方式發(fā)送和接收ICMP回應(yīng)應(yīng)答包,提高了算法的性能和效率。圖4.19表示了SNMP和ICMP的層次位置關(guān)系。
圖1:網(wǎng)絡(luò)管理的層次結(jié)構(gòu)
三、網(wǎng)絡(luò)拓?fù)渥詣?dòng)發(fā)現(xiàn)算法
(一)子網(wǎng)與路由器發(fā)現(xiàn)算法描述
1.與網(wǎng)管所在子網(wǎng)直連的路由器檢測(cè)算法。確定主機(jī)地址。以子網(wǎng)地址+1為第一個(gè)主機(jī)地址,依次加1,增加N臺(tái)機(jī)器為止,這樣得到了N個(gè)主機(jī)地址IP。
檢查該IP是否在子網(wǎng)內(nèi)。若IP&MASK=Net,在子網(wǎng)中該地址可能是子網(wǎng)中一臺(tái)主機(jī)的地址。
回應(yīng)的ICMP包如果包含在輸入的IP中,該IP地址是一臺(tái)活動(dòng)的主機(jī)。
對(duì)于已檢測(cè)出來(lái)的主機(jī),用異步方式向每臺(tái)主機(jī)的161號(hào)端口發(fā)送SNMP報(bào)文,如果有回應(yīng)則表示該主機(jī)運(yùn)行了SNMP。
對(duì)于已經(jīng)檢測(cè)出的SNMP主機(jī),檢查其MIB值sysServices,這是一個(gè)整型變量,假設(shè)其值為m。設(shè)L是ISO七層模型中的某一層,如果該主機(jī)在第i層提供了服務(wù),則Li被賦予相應(yīng)的層數(shù)(Li取值范圍為1,2,3,4,7)
i=1為物理層,如中繼器;i=2為鏈路層;i=3為網(wǎng)絡(luò)層,如路由器;i=4為傳輸層,如主機(jī);i=7為應(yīng)用層,如應(yīng)用程序。由于路由器提供鏈路層和網(wǎng)絡(luò)層,因此m=2(2-1)+2(3-1)=6。如果某臺(tái)SNMP主機(jī)的值為6,則它是要找的路由器。
2.子網(wǎng)和路由器的連接檢測(cè)算法。通過(guò)SNMP GetNext操作獲取路由表,表中有兩項(xiàng)極為重要的MIB變量ipRouteType和ipRouteDest,它們分別表示路由類型和所要到達(dá)的目的網(wǎng)絡(luò)地址,如果ipRouteType的值為3,則表示目的網(wǎng)絡(luò)與路由器直接相連。因而只需找出對(duì)應(yīng)的ipRouteType的值為3的目的網(wǎng)絡(luò)地址即可。同時(shí)可利用ipAdEnt If Index作為索引,與In2terface組的If Index和If Type相結(jié)合來(lái)確定子網(wǎng)的網(wǎng)絡(luò)拓?fù)漕愋汀?/p>
(二)主機(jī)發(fā)現(xiàn)算法描述
本算法中用到兩種報(bào)文:回應(yīng)(echo)請(qǐng)求或回應(yīng)應(yīng)答;信宿機(jī)發(fā)回響應(yīng)的回應(yīng)應(yīng)答。下圖所示的“標(biāo)識(shí)符”和“序號(hào)”用于匹配請(qǐng)求與應(yīng)答。
算法如下:
把子網(wǎng)內(nèi)所有主機(jī)加入鏈表,設(shè)置一次發(fā)送和接收間的最大延遲、鏈表循環(huán)次數(shù)最大值和檢查接收棧的時(shí)間。遍歷鏈表,鏈表空則轉(zhuǎn)至a。若檢查接收棧的時(shí)間到,則轉(zhuǎn)至d。依次檢查節(jié)點(diǎn);若此時(shí)時(shí)間與發(fā)包時(shí)間差值大于延遲便轉(zhuǎn)c,不然檢查下一節(jié)點(diǎn)。若循環(huán)次數(shù)超過(guò)最大值,從鏈表中刪除,加入不可到達(dá)主機(jī)鏈表。不然發(fā)送ICMP包,設(shè)置當(dāng)前時(shí)間為發(fā)包時(shí)間,循環(huán)計(jì)數(shù)加1。檢查接收棧是否為空,若空就返回b。否則檢查回應(yīng)包,從鏈表中刪除相應(yīng)節(jié)點(diǎn),加入可達(dá)主機(jī)鏈表。
四、算法的實(shí)現(xiàn)
(一)ICMP包的發(fā)送和接收。(1)構(gòu)造ICMP包,填充ICMP包頭中某些域,如序號(hào)、標(biāo)識(shí)等;(2)用SOCK-RAW類型創(chuàng)建套接字,調(diào)用函數(shù)為socket();(3)采取異步方式,用WSAAsyncSelect()函數(shù)注冊(cè)FD-READ事件;(4)分別用sentto()和recvfrom()發(fā)送和接收ICMP包,在接收到ICMP包時(shí)還要進(jìn)行檢驗(yàn)和匹配操作。
(二)用SNMP++技術(shù)實(shí)現(xiàn)SNMP編程。SNMP++把復(fù)雜的WinSNMP的APl函數(shù)封裝成一個(gè)個(gè)相關(guān)的C++類,從而大大簡(jiǎn)化了SNMP網(wǎng)絡(luò)管理軟件開發(fā)的復(fù)雜性。它把SNMP編程中的核心部分都面向?qū)ο蠡庋b起來(lái),因此程序員無(wú)需了解SNMP底層的機(jī)制,只需了解SNMP編程的流程即可快速開發(fā)出高效的SNMP程序。
參考文獻(xiàn):
[1]胡谷雨,張巍等.簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議教程[M].電子工業(yè)出版社,2000
LAN接口
列出支持的LAN接口類型:防火墻所能保護(hù)的網(wǎng)絡(luò)類型,如以太網(wǎng)、快速以太網(wǎng)、千兆以太網(wǎng)、ATM、令牌環(huán)及FDDI等。
支持的最大LAN接口數(shù):指防火墻所支持的局域網(wǎng)絡(luò)接口數(shù)目,也是其能夠保護(hù)的不同內(nèi)網(wǎng)數(shù)目。
服務(wù)器平臺(tái):防火墻所運(yùn)行的操作系統(tǒng)平臺(tái)(如Linux、UNIX、Win NT、專用安全操作系統(tǒng)等)。
協(xié)議支持
支持的非IP協(xié)議:除支持IP協(xié)議之外,又支持AppleTalk、DECnet、IPX及NETBEUI等協(xié)議。
建立VPN通道的協(xié)議: 構(gòu)建VPN通道所使用的協(xié)議,如密鑰分配等,主要分為IPSec、PPTP、專用協(xié)議等。
可以在VPN中使用的協(xié)議:在VPN中使用的協(xié)議,一般是指TCP/IP協(xié)議。
加密支持
支持的VPN加密標(biāo)準(zhǔn):VPN中支持的加密算法, 例如數(shù)據(jù)加密標(biāo)準(zhǔn)DES、3DES、RC4以及國(guó)內(nèi)專用的加密算法。
除了VPN之外,加密的其他用途: 加密除用于保護(hù)傳輸數(shù)據(jù)以外,還應(yīng)用于其他領(lǐng)域,如身份認(rèn)證、報(bào)文完整性認(rèn)證、密鑰分配等。
提供基于硬件的加密: 是否提供硬件加密方法,硬件加密可以提供更快的加密速度和更高的加密強(qiáng)度。
認(rèn)證支持
支持的認(rèn)證類型: 是指防火墻支持的身份認(rèn)證協(xié)議,一般情況下具有一個(gè)或多個(gè)認(rèn)證方案,如RADIUS、Kerberos、TACACS/TACA
CS+、 口令方式、數(shù)字證書等。防火墻能夠?yàn)楸镜鼗蜻h(yuǎn)程用戶提供經(jīng)過(guò)認(rèn)證與授權(quán)的對(duì)網(wǎng)絡(luò)資源的訪問(wèn),防火墻管理員必須決定客戶以何種方式通過(guò)認(rèn)證。
列出支持的認(rèn)證標(biāo)準(zhǔn)和CA互操作性:廠商可以選擇自己的認(rèn)證方案,但應(yīng)符合相應(yīng)的國(guó)際標(biāo)準(zhǔn),該項(xiàng)指所支持的標(biāo)準(zhǔn)認(rèn)證協(xié)議,以及實(shí)現(xiàn)的認(rèn)證協(xié)議是否與其他CA產(chǎn)品兼容互通。
支持?jǐn)?shù)字證書:是否支持?jǐn)?shù)字證書。
訪問(wèn)控制
通過(guò)防火墻的包內(nèi)容設(shè)置:包過(guò)濾防火墻的過(guò)濾規(guī)則集由若干條規(guī)則組成,它應(yīng)涵蓋對(duì)所有出入防火墻的數(shù)據(jù)包的處理方法,對(duì)于沒(méi)有明確定義的數(shù)據(jù)包,應(yīng)該有一個(gè)缺省處理方法;過(guò)濾規(guī)則應(yīng)易于理解,易于編輯修改;同時(shí)應(yīng)具備一致性檢測(cè)機(jī)制,防止沖突。IP包過(guò)濾的依據(jù)主要是根據(jù)IP包頭部信息如源地址和目的地址進(jìn)行過(guò)濾,如果IP頭中的協(xié)議字段表明封裝協(xié)議為ICMP、TCP或UDP,那么再根據(jù)ICMP頭信息(類型和代碼值)、TCP頭信息(源端口和目的端口)或UDP頭信息(源端口和目的端口)執(zhí)行過(guò)濾,其他的還有MAC地址過(guò)濾。應(yīng)用層協(xié)議過(guò)濾要求主要包括FTP過(guò)濾、基于RPC的應(yīng)用服務(wù)過(guò)濾、基于UDP的應(yīng)用服務(wù)過(guò)濾要求以及動(dòng)態(tài)包過(guò)濾技術(shù)等。
在應(yīng)用層提供支持:指防火墻是否支持應(yīng)用層,如HTTP、FTP、TELNET、SNMP等。服務(wù)在確認(rèn)客戶端連接請(qǐng)求有效后接管連接,代為向服務(wù)器發(fā)出連接請(qǐng)求,服務(wù)器應(yīng)根據(jù)服務(wù)器的應(yīng)答,決定如何響應(yīng)客戶端請(qǐng)求,服務(wù)進(jìn)程應(yīng)當(dāng)連接兩個(gè)連接(客戶端與服務(wù)進(jìn)程間的連接、服務(wù)進(jìn)程與服務(wù)器端的連接)。為確認(rèn)連接的唯一性與時(shí)效性,進(jìn)程應(yīng)當(dāng)維護(hù)連接表或相關(guān)數(shù)據(jù)庫(kù)(最小字段集合),為提供認(rèn)證和授權(quán),進(jìn)程應(yīng)當(dāng)維護(hù)一個(gè)擴(kuò)展字段集合。
在傳輸層提供支持:指防火墻是否支持傳輸層服務(wù)。
允許FTP命令防止某些類型文件通過(guò)防火墻:指是否支持FTP文件類型過(guò)濾。
用戶操作的類型:應(yīng)用層高級(jí)功能,如HTTP、POP3 。
支持網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT):NAT指將一個(gè)IP地址域映射到另一個(gè)IP地址域,從而為終端主機(jī)提供透明路由的方法。NAT常用于私有地址域與公有地址域的轉(zhuǎn)換以解決IP地址匱乏問(wèn)題。在防火墻上實(shí)現(xiàn)NAT后,可以隱藏受保護(hù)網(wǎng)絡(luò)的內(nèi)部結(jié)構(gòu),在一定程度上提高了網(wǎng)絡(luò)的安全性。
支持硬件口令、智能卡: 是否支持硬件口令、智能卡等,這是一種比較安全的身份認(rèn)證技術(shù)。
防御功能
支持病毒掃描: 是否支持防病毒功能,如掃描電子郵件附件中的DOC和ZIP文件,F(xiàn)TP中的下載或上載文件內(nèi)容,以發(fā)現(xiàn)其中包含的危險(xiǎn)信息。
提供內(nèi)容過(guò)濾: 是否支持內(nèi)容過(guò)濾,信息內(nèi)容過(guò)濾指防火墻在HTTP、FTP、SMTP等協(xié)議層,根據(jù)過(guò)濾條件,對(duì)信息流進(jìn)行控制,防火墻控制的結(jié)果是:允許通過(guò)、修改后允許通過(guò)、禁止通過(guò)、記錄日志、報(bào)警等。 過(guò)濾內(nèi)容主要指URL、HTTP攜帶的信息:Java Applet、 JavaScript、ActiveX和電子郵件中的Subject、To、From域等。
能防御的DoS攻擊類型:拒絕服務(wù)攻擊(DoS)就是攻擊者過(guò)多地占用共享資源,導(dǎo)致服務(wù)器超載或系統(tǒng)資源耗盡,而使其他用戶無(wú)法享有服務(wù)或沒(méi)有資源可用。防火墻通過(guò)控制、檢測(cè)與報(bào)警等機(jī)制,可在一定程度上防止或減輕DoS黑客攻擊。
阻止ActiveX、Java、Cookies、JavaScript侵入:屬于HTTP內(nèi)容過(guò)濾,防火墻應(yīng)該能夠從HTTP頁(yè)面剝離Java Applet、ActiveX等小程序,及從Script、PHP和ASP等代碼檢測(cè)出危險(xiǎn)代碼或病毒,并向?yàn)g覽器用戶報(bào)警。同時(shí),能夠過(guò)濾用戶上載的CGI、ASP等程序,當(dāng)發(fā)現(xiàn)危險(xiǎn)代碼時(shí),向服務(wù)器報(bào)警。
安全特性
支持轉(zhuǎn)發(fā)和跟蹤ICMP協(xié)議(ICMP ):是否支持ICMP,ICMP為網(wǎng)間控制報(bào)文協(xié)議。
提供入侵實(shí)時(shí)警告:提供實(shí)時(shí)入侵告警功能,當(dāng)發(fā)生危險(xiǎn)事件時(shí),是否能夠及時(shí)報(bào)警,報(bào)警的方式可能通過(guò)郵件、呼機(jī)、手機(jī)等。
提供實(shí)時(shí)入侵防范:提供實(shí)時(shí)入侵響應(yīng)功能,當(dāng)發(fā)生入侵事件時(shí),防火墻能夠動(dòng)態(tài)響應(yīng),調(diào)整安全策略,阻擋惡意報(bào)文。
識(shí)別/記錄/防止企圖進(jìn)行IP地址欺騙:IP地址欺騙指使用偽裝的IP地址作為IP包的源地址對(duì)受保護(hù)網(wǎng)絡(luò)進(jìn)行攻擊,防火墻應(yīng)該能夠禁止來(lái)自外部網(wǎng)絡(luò)而源地址是內(nèi)部IP地址的數(shù)據(jù)包通過(guò)。
管理功能
通過(guò)集成策略集中管理多個(gè)防火墻:是否支持集中管理,防火墻管理是指對(duì)防火墻具有管理權(quán)限的管理員行為和防火墻運(yùn)行狀態(tài)的管理,管理員的行為主要包括:通過(guò)防火墻的身份鑒別,編寫防火墻的安全規(guī)則,配置防火墻的安全參數(shù),查看防火墻的日志等。防火墻的管理一般分為本地管理、遠(yuǎn)程管理和集中管理等。
提供基于時(shí)間的訪問(wèn)控制:是否提供基于時(shí)間的訪問(wèn)控制。
支持SNMP監(jiān)視和配置:SNMP是簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議的縮寫。
本地管理:是指管理員通過(guò)防火墻的Console口或防火墻提供的鍵盤和顯示器對(duì)防火墻進(jìn)行配置管理。
遠(yuǎn)程管理:是指管理員通過(guò)以太網(wǎng)或防火墻提供的廣域網(wǎng)接口對(duì)防火墻進(jìn)行管理,管理的通信協(xié)議可以基于FTP、TELNET、HTTP等。
支持帶寬管理:防火墻能夠根據(jù)當(dāng)前的流量動(dòng)態(tài)調(diào)整某些客戶端占用的帶寬。
負(fù)載均衡特性:負(fù)載均衡可以看成動(dòng)態(tài)的端口映射,它將一個(gè)外部地址的某一TCP或UDP端口映射到一組內(nèi)部地址的某一端口,負(fù)載均衡主要用于將某項(xiàng)服務(wù)(如HTTP)分?jǐn)偟揭唤M內(nèi)部服務(wù)器上以平衡負(fù)載。
失敗恢復(fù)特性:指支持容錯(cuò)技術(shù),如雙機(jī)熱備份、故障恢復(fù),雙電源備份等。
記錄和報(bào)表功能
防火墻處理完整日志的方法:防火墻規(guī)定了對(duì)于符合條件的報(bào)日志,應(yīng)該提供日志信息管理和存儲(chǔ)方法。
提供自動(dòng)日志掃描:指防火墻是否具有日志的自動(dòng)分析和掃描功能,這可以獲得更詳細(xì)的統(tǒng)計(jì)結(jié)果,達(dá)到事后分析、亡羊補(bǔ)牢的目的。
提供自動(dòng)報(bào)表、日志報(bào)告書寫器:防火墻實(shí)現(xiàn)的一種輸出方式,提供自動(dòng)報(bào)表和日志報(bào)告功能。
警告通知機(jī)制:防火墻應(yīng)提供告警機(jī)制,在檢測(cè)到入侵網(wǎng)絡(luò)以及設(shè)備運(yùn)轉(zhuǎn)異常情況時(shí),通過(guò)告警來(lái)通知管理員采取必要的措施,包括E-mail、呼機(jī)、手機(jī)等。
提供簡(jiǎn)要報(bào)表(按照用戶ID或IP 地址):防火墻實(shí)現(xiàn)的一種輸出方式,按要求提供報(bào)表分類打印。
關(guān)鍵詞:包過(guò)濾;訪問(wèn)控制列表;防火墻
中圖分類號(hào):TN915.08 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9599?。?012) 19-0000-02
隨著網(wǎng)絡(luò)的迅速發(fā)展,各種各樣的網(wǎng)絡(luò)軟件也隨之出現(xiàn),人們的生活和學(xué)習(xí)對(duì)網(wǎng)絡(luò)的依賴也越來(lái)越多,但網(wǎng)絡(luò)安全問(wèn)題也接踵而來(lái)。防火墻是一種非常有效的網(wǎng)絡(luò)安全模型,通過(guò)它可以隔離風(fēng)險(xiǎn)區(qū)域和安全區(qū)域的連接,同時(shí)不會(huì)妨礙人們對(duì)風(fēng)險(xiǎn)區(qū)域的訪問(wèn),因此防火墻已經(jīng)成為世界上用的最多的網(wǎng)絡(luò)安全產(chǎn)品之一。包過(guò)濾技術(shù)是防火墻最基本的實(shí)現(xiàn)技術(shù),它具有通用、廉價(jià)、有效等特點(diǎn)。在不增加軟、硬件投資的情況下,利用路由器的訪問(wèn)控制列表來(lái)設(shè)置包過(guò)濾放火墻,可以實(shí)現(xiàn)防火墻的大部分功能,是一種增強(qiáng)網(wǎng)絡(luò)安全的行之有效的方法。
1 包過(guò)濾技術(shù)基本原理
在網(wǎng)絡(luò)中,所有的信息傳輸都是以包的方式來(lái)實(shí)現(xiàn)的。包過(guò)濾是指對(duì)通過(guò)網(wǎng)絡(luò)的數(shù)據(jù)包進(jìn)行 過(guò)濾操作,只有滿足條件的數(shù)據(jù)包才能通過(guò)網(wǎng)絡(luò),包過(guò)濾設(shè)備可以是路由器、網(wǎng)橋或計(jì)算機(jī) ,通常是包過(guò)濾路由器。
包過(guò)濾防火墻一般作用在網(wǎng)絡(luò)層(IP層),故也稱網(wǎng)絡(luò)層防火墻(Network Lev Firewall)或IP過(guò)濾器(IP filters)。數(shù)據(jù)包過(guò)濾(Packet Filtering)是指在網(wǎng)絡(luò)層對(duì)數(shù)據(jù)包進(jìn)行分析、選擇。通過(guò)檢查數(shù)據(jù)流中每一個(gè)數(shù)據(jù)包的源IP地址、目的IP地址、源端口號(hào)、目的端口號(hào)、協(xié)議類型等因素或它們的組合來(lái)確定是否允許該數(shù)據(jù)包通過(guò)。防火墻檢查每一條規(guī)則直至發(fā)現(xiàn)包中的信息與某規(guī)則相符。如果沒(méi)有一條規(guī)則能符合,防火墻就會(huì)使用默認(rèn)規(guī)則。在包過(guò)濾防火墻中,廣泛使用ACL(Access Control List,訪問(wèn)控制列表)來(lái)實(shí)現(xiàn)數(shù)據(jù)識(shí)別,流經(jīng)包過(guò)濾防火墻的數(shù)據(jù)與ACL定義的規(guī)則進(jìn)行匹配,并決定是轉(zhuǎn)發(fā)還是丟棄這些數(shù)據(jù)包。
2 ACL訪問(wèn)控制列表
訪問(wèn)控制列表是為了對(duì)路由器或者防火墻處理的流量進(jìn)行過(guò)濾而建立的規(guī)則,它在改善網(wǎng)絡(luò)性能和加強(qiáng)網(wǎng)絡(luò)安全等方面已經(jīng)發(fā)揮出越來(lái)越重要的作用。以Cisco路由器為例,access-list(訪問(wèn)列表)最基本的有兩種,分別是標(biāo)準(zhǔn)訪問(wèn)列表和擴(kuò)展訪問(wèn)列表,二者的區(qū)別主要是前者是基于目標(biāo)地址的數(shù)據(jù)包過(guò)濾,而后者是基于目標(biāo)地址、源地址和網(wǎng)絡(luò)協(xié)議及其端口的數(shù)據(jù)包過(guò)濾。
2.1 標(biāo)準(zhǔn)訪問(wèn)控制列表
標(biāo)準(zhǔn)訪問(wèn)控制列表檢查路由的數(shù)據(jù)包的源地址,從而允許或拒絕基于網(wǎng)絡(luò)、子網(wǎng)或主機(jī)的IP地址的所有通信流量通過(guò)路由器的出口。當(dāng)我們要想阻止來(lái)自某一網(wǎng)絡(luò)的所有通信流量,或者充許來(lái)自某一特定網(wǎng)絡(luò)的所有通信流量,或者想要拒絕某一協(xié)議簇的所有通信流量時(shí),可以使用標(biāo)準(zhǔn)訪問(wèn)控制列表來(lái)實(shí)現(xiàn)這一目標(biāo)。
標(biāo)準(zhǔn)訪問(wèn)控制列表是最簡(jiǎn)單的ACL。它的具體格式如下:
access-list ACL號(hào) permit|deny host ip地址
例如:access-list 10 deny host 192.168.1.1這句命令是將所有來(lái)自192.168.1.1地址的數(shù)據(jù)包丟棄。access-list 10 deny 192.168.1.0 0.0.0.255是對(duì)192.168.1.0/24這個(gè)網(wǎng)段進(jìn)行過(guò)濾。
2.2 擴(kuò)展訪問(wèn)控制列表
擴(kuò)展訪問(wèn)控制列表既檢查數(shù)據(jù)包的源地址,也檢查數(shù)據(jù)包的目的地址,還檢查數(shù)據(jù)包的特定協(xié)議類型、端口號(hào)等。擴(kuò)展訪問(wèn)控制列表更具有靈活性和可擴(kuò)充性,即可以對(duì)同一地址允許使用某些協(xié)議通信流量通過(guò),也可以拒絕使用其他協(xié)議的流量通過(guò)。
擴(kuò)展訪問(wèn)列表的具體格式如下:
access-list ACL號(hào) permit|deny protocol source 源地址 destination 目的地址 operator operan established log
例如:access-list 101 deny tcp any host 192.168.1.1 eq www這句命令是將所有主機(jī)訪問(wèn)192.168.1.1這個(gè)地址網(wǎng)頁(yè)服務(wù)(WWW)TCP連接的數(shù)據(jù)包丟棄。
3 訪問(wèn)控制列表的應(yīng)用
訪問(wèn)控制列表的應(yīng)用領(lǐng)域很廣,包括流量控制、病毒過(guò)濾、設(shè)備管理和時(shí)間控制等方面,下面是應(yīng)用ACL保護(hù)企業(yè)內(nèi)部網(wǎng)絡(luò)安全的兩個(gè)案例。
3.1 禁止外部ICMP攻擊
ICMP協(xié)議是傳輸層的重要協(xié)議,用于在IP主機(jī)、路由器之間傳遞控制消息。控制消息是指網(wǎng)絡(luò)通不通、主機(jī)是否可達(dá)、路由是否可用等網(wǎng)絡(luò)本身的消息。在企業(yè)網(wǎng)絡(luò)中,我們希望保證正常的網(wǎng)絡(luò)通信的同時(shí)屏蔽惡意的ICMP消息,可以通過(guò)設(shè)置如下的訪問(wèn)控制列表來(lái)實(shí)現(xiàn):
(1)access-list 100 permit icmp any 路由器E0接口地址 echo。允許外網(wǎng)主機(jī)可以PING通我方路由器廣域口地址,便于外網(wǎng)進(jìn)行網(wǎng)絡(luò)測(cè)試。(2)access-list 100 deny icmp any any echo。禁止外網(wǎng)主機(jī)發(fā)起的任何ICMP ECHO 報(bào)文到達(dá)我方網(wǎng)絡(luò)主機(jī),杜絕了外網(wǎng)主機(jī)發(fā)起的“端口掃描器Nmap ping操作”。(3)access-list 100 permit ip any any。允許所有的IP協(xié)議數(shù)據(jù)包通過(guò),是保證不影響其他各種應(yīng)用。(4)access-group 100 in。端口應(yīng)用上設(shè)置在入方向進(jìn)行應(yīng)用,保證了我方網(wǎng)絡(luò)主機(jī)可PING通外網(wǎng)任意主機(jī),便于我方進(jìn)行網(wǎng)絡(luò)連通性測(cè)試。
3.2 用訪問(wèn)控制列表控制訪問(wèn)時(shí)間
為了保證員工的上班質(zhì)量,許多企業(yè)需要對(duì)內(nèi)部機(jī)器訪問(wèn)FTP服務(wù)器或者WWW服務(wù)器進(jìn)行限制和管理,基于時(shí)間的ACL就比較適合這種對(duì)指定時(shí)間段或者指定服務(wù)的管理。例如在圖1所示的網(wǎng)絡(luò)環(huán)境中,只容許172.16.3.0網(wǎng)段的用戶在周末訪問(wèn)172.16.4.13上的FTP資源,工作時(shí)間不能下載該FTP資源??梢岳迷L問(wèn)列表做以下配置。
(1)time-range softer。定義時(shí)間段名稱為workday。
(2)periodic weekend 00:00 to 23:59。定義具體時(shí)間范圍,為每周周末(6,日)的0點(diǎn)到23點(diǎn)59分??梢允褂胮eriodic weekdays定義具體的工作日。
(3)access-list 101 deny tcp any 172.16.4.13 0.0.0.0 eq ftp time-range softer。設(shè)置ACL,禁止在時(shí)間段softer范圍內(nèi)訪問(wèn)172.16.4.13的FTP服務(wù)。
(4)access-list 101 permit ip any any。設(shè)置ACL,容許其他時(shí)間段和其他條件下的正常訪問(wèn)。
4 ACL技術(shù)局限性分析
由于ACL是使用包過(guò)濾技術(shù)來(lái)實(shí)現(xiàn)的,過(guò)濾的依據(jù)又僅僅只是第三層和第四層包頭中的部分信息,這種技術(shù)具有一些固有的局限性,如無(wú)法識(shí)別到具體的人,無(wú)法識(shí)別到應(yīng)用內(nèi)部的權(quán)限級(jí)別等。因此,要達(dá)到端到端的權(quán)限控制目的,需要和系統(tǒng)級(jí)及應(yīng)用級(jí)的訪問(wèn)權(quán)限控制結(jié)合使用。但將ACL應(yīng)用到路由器上可以在不添加任何軟硬件的條件下,起到保護(hù)內(nèi)部網(wǎng)絡(luò)安全,控制網(wǎng)絡(luò)流量以及靈活管理內(nèi)部網(wǎng)絡(luò)的作用,所以這種方法還是非常值得應(yīng)用和推廣的。
參考文獻(xiàn):
[1]Cisco網(wǎng)絡(luò)技術(shù)學(xué)院教程.北京人民郵電出版社,2004,7.
[2]諸燁.用ACL實(shí)現(xiàn)系統(tǒng)的安全訪問(wèn)控制.計(jì)算機(jī)應(yīng)用與軟件,2005,3.
[3]王華麗.訪問(wèn)控制列表在網(wǎng)絡(luò)安全中的應(yīng)用.電子科技,2007
[4]王芳.路由器訪問(wèn)控制列表及其實(shí)現(xiàn)技術(shù)研究.計(jì)算機(jī)工程與設(shè)計(jì).2007
關(guān)鍵詞:網(wǎng)絡(luò)管理 網(wǎng)間控制報(bào)文協(xié)議(ICMP) WBM
網(wǎng)絡(luò)管理的目的就是確保一定范圍內(nèi)的網(wǎng)絡(luò)及其網(wǎng)絡(luò)設(shè)備能夠穩(wěn)定、可靠、高效地運(yùn)行,使所有的網(wǎng)絡(luò)資源處于良好的運(yùn)行狀態(tài),達(dá)到用戶預(yù)期的要求。過(guò)去有一些簡(jiǎn)單的工具用來(lái)幫助網(wǎng)管人員管理網(wǎng)絡(luò)資源,但隨著網(wǎng)絡(luò)規(guī)模的擴(kuò)大和復(fù)雜度的增加,對(duì)強(qiáng)大易用的管理工具的需求也日益顯得迫切,管理人員需要依賴強(qiáng)大的工具完成各種各樣的網(wǎng)絡(luò)管理任務(wù),而網(wǎng)絡(luò)管理系統(tǒng)就是能夠?qū)崿F(xiàn)上述目的系統(tǒng)。
1 WBM 技術(shù)介紹
隨著應(yīng)用Intranet的企業(yè)的增多,同時(shí)Internet技術(shù)逐漸向Intranet的遷移,一些主要的網(wǎng)絡(luò)廠商正試圖以一種新的形式去應(yīng)用M I S 。因此就促使了W e b ( W e b - B a s e dManagement)網(wǎng)管技術(shù)的產(chǎn)生[2]。它作為一種全新的網(wǎng)絡(luò)管理模式—基于Web的網(wǎng)絡(luò)管理模式,從出現(xiàn)伊始就表現(xiàn)出強(qiáng)大的生命力,以其特有的靈活性、易操作性等特點(diǎn)贏得了許多技術(shù)專家和用戶的青睞,被譽(yù)為是“將改變用戶網(wǎng)絡(luò)管理方式的革命性網(wǎng)絡(luò)管理解決方案”。
WBM融合了Web功能與網(wǎng)管技術(shù),從而為網(wǎng)管人員提供了比傳統(tǒng)工具更強(qiáng)有力的能力。WBM可以允許網(wǎng)絡(luò)管理人員使用任何一種Web瀏覽器,在網(wǎng)絡(luò)任何節(jié)點(diǎn)上方便迅速地配置、控制以及存取網(wǎng)絡(luò)和它的各個(gè)部分。因此,他們不再只拘泥于網(wǎng)管工作站上了,并且由此能夠解決很多由于多平臺(tái)結(jié)構(gòu)產(chǎn)生的互操作性問(wèn)題。WBM提供比傳統(tǒng)的命令驅(qū)動(dòng)的遠(yuǎn)程登錄屏幕更直接、更易用的圖形界面,瀏覽器操作和W e b頁(yè)面對(duì)W W W用戶來(lái)講是非常熟悉的,所以WBM的結(jié)果必然是既降低了MIS全體培訓(xùn)的費(fèi)用又促進(jìn)了更多的用戶去利用網(wǎng)絡(luò)運(yùn)行狀態(tài)信息。所以說(shuō),WBM是網(wǎng)絡(luò)管理方案的一次革命。
2 基于WBM 技術(shù)的網(wǎng)管系統(tǒng)設(shè)計(jì)
2.1 系統(tǒng)的設(shè)計(jì)目標(biāo)
在本系統(tǒng)設(shè)計(jì)階段,就定下以開發(fā)基于園區(qū)網(wǎng)、Web模式的具有自主版權(quán)的中文網(wǎng)絡(luò)管理系統(tǒng)軟件為目標(biāo),采用先進(jìn)的WBM技術(shù)和高效的算法,力求在性能上可以達(dá)到國(guó)外同類產(chǎn)品的水平。
本網(wǎng)管系統(tǒng)提供基于WEB的整套網(wǎng)管解決方案。它針對(duì)分布式IP網(wǎng)絡(luò)進(jìn)行有效資源管理,使用戶可以從任何地方通過(guò)WEB瀏覽器對(duì)網(wǎng)絡(luò)和設(shè)備,以及相關(guān)系統(tǒng)和服務(wù)實(shí)施應(yīng)變式管理和控制,從而保證網(wǎng)絡(luò)上的資源處于最佳運(yùn)行狀態(tài),并保持網(wǎng)絡(luò)的可用性和可靠性。
2.2 系統(tǒng)的體系結(jié)構(gòu)
在系統(tǒng)設(shè)計(jì)的時(shí)候,以國(guó)外同類的先進(jìn)產(chǎn)品作為參照物,同時(shí)考慮到技術(shù)發(fā)展的趨勢(shì),在當(dāng)前的技術(shù)條件下進(jìn)行設(shè)計(jì)。我們采用三層結(jié)構(gòu)的設(shè)計(jì),融合了先進(jìn)的WBM技術(shù),使系統(tǒng)能夠提供給管理員靈活簡(jiǎn)便的管理途徑。
三層結(jié)構(gòu)的特點(diǎn)[2]:1)完成管理任務(wù)的軟件作為中間層以后臺(tái)進(jìn)程方式實(shí)現(xiàn),實(shí)施網(wǎng)絡(luò)設(shè)備的輪詢和故障信息的收集;2)管理中間件駐留在網(wǎng)絡(luò)設(shè)備和瀏覽器之間,用戶僅需通過(guò)管理中間層的主頁(yè)存取被管設(shè)備;3)管理中間件中繼轉(zhuǎn)發(fā)管理信息并進(jìn)行S N M P 和H T T P之間的協(xié)議轉(zhuǎn)換三層結(jié)構(gòu)無(wú)需對(duì)設(shè)備作任何改變。
3 網(wǎng)絡(luò)拓?fù)浒l(fā)現(xiàn)算法的設(shè)計(jì)
為了實(shí)施對(duì)網(wǎng)絡(luò)的管理,網(wǎng)管系統(tǒng)必須有一個(gè)直觀的、友好的用戶界面來(lái)幫助管理員。其中最基本的一個(gè)幫助就是把網(wǎng)絡(luò)設(shè)備的拓?fù)潢P(guān)系以圖形的方式展現(xiàn)在用戶面前,即拓?fù)浒l(fā)現(xiàn)。目前廣泛采用的拓?fù)浒l(fā)現(xiàn)算法是基于SNMP的拓?fù)浒l(fā)現(xiàn)算法。基于SNMP的拓?fù)渌惴ㄔ谝欢ǔ潭壬鲜欠浅S行У?,拓?fù)涞乃俣纫卜浅?臁5嬖谝粋€(gè)缺陷[3]。那就是,在一個(gè)特定的域中,所有的子網(wǎng)的信息都依賴于設(shè)備具有SNMP的特性,如果系統(tǒng)不支持SNMP,則這種方法就無(wú)能為力了。還有對(duì)網(wǎng)絡(luò)管理的不重視,或者考慮到安全方面的原因,人們往往把網(wǎng)絡(luò)設(shè)備的SNMP功能關(guān)閉,這樣就難于取得設(shè)備的M I B值,就出現(xiàn)了拓?fù)涞牟煌暾?,?yán)重影響了網(wǎng)絡(luò)管理系統(tǒng)的功能。針對(duì)這一的問(wèn)題,下面討論本系統(tǒng)對(duì)上述算法的改進(jìn)—基于ICMP協(xié)議的拓?fù)浒l(fā)現(xiàn)。
3.1 PING和路由建立
PING的主要操作是發(fā)送報(bào)文,并簡(jiǎn)單地等待回答。PING之所以如此命名,是因?yàn)樗且粋€(gè)簡(jiǎn)單的回顯協(xié)議,使用ICMP響應(yīng)請(qǐng)求與響應(yīng)應(yīng)答報(bào)文。PING主要由系統(tǒng)程序員用于診斷和調(diào)試實(shí)現(xiàn)PING的過(guò)程主要是:首先向目的機(jī)器發(fā)送一個(gè)響應(yīng)請(qǐng)求的ICMP報(bào)文,然后等待目的機(jī)器的應(yīng)答,直到超時(shí)。如收到應(yīng)答報(bào)文,則報(bào)告目的機(jī)器運(yùn)行正常,程序退出。
路由建立的功能就是利用I P 頭中的TTL域。開始時(shí)信源設(shè)置IP頭的TTL值為0,發(fā)送報(bào)文給信宿,第一個(gè)網(wǎng)關(guān)收到此報(bào)文后,發(fā)現(xiàn)TTL值為0,它丟棄此報(bào)文,并發(fā)送一個(gè)類型為超時(shí)的ICMP報(bào)文給信源。信源接收到此報(bào)文后對(duì)它進(jìn)行解析,這樣就得到了路由中的第一個(gè)網(wǎng)關(guān)地址。然后信源發(fā)送TTL值為1的報(bào)文給信宿,第一個(gè)網(wǎng)關(guān)把它的TTL值減為0后轉(zhuǎn)發(fā)給第二個(gè)網(wǎng)關(guān),第二個(gè)網(wǎng)關(guān)發(fā)現(xiàn)報(bào)文TTL值為0,丟棄此報(bào)文并向信源發(fā)送超時(shí)ICMP報(bào)文。這樣就得到了路由中和第二個(gè)網(wǎng)關(guān)地址。如此循環(huán)下去,直到報(bào)文正確到達(dá)信宿,這樣就得到了通往信宿的路由。
3.2 網(wǎng)絡(luò)拓?fù)涞陌l(fā)現(xiàn)算法具體實(shí)現(xiàn)的步驟:
(1)于給定的IP區(qū)間,利用PING依次檢測(cè)每個(gè)IP地址,將檢測(cè)到的IP地址記錄到IP地址表中。
(2)對(duì)第一步中查到的每個(gè)IP地址進(jìn)行traceroute操作,記錄到這些IP地址的路由。并把每條路由中的網(wǎng)關(guān)地址也加到IP表中。(3)對(duì)IP地址表中的每個(gè)IP地址,通過(guò)發(fā)送掩碼請(qǐng)求報(bào)文與接收掩碼應(yīng)答報(bào)文,找到這些IP地址的子網(wǎng)掩碼。
(4)根據(jù)子網(wǎng)掩碼,確定對(duì)應(yīng)每個(gè)IP地址的子網(wǎng)地址,并確定各個(gè)子網(wǎng)的網(wǎng)絡(luò)類型。把查到的各個(gè)子網(wǎng)加入地址表中。
(5)試圖得到與IP地址表中每個(gè)IP地址對(duì)應(yīng)的域名(Domain Name),如具有相同域名,則說(shuō)明同一個(gè)網(wǎng)絡(luò)設(shè)備具有多個(gè)IP地址,即具有多個(gè)網(wǎng)絡(luò)接口。
(6)根據(jù)第二步中的路由與第四步中得到的子網(wǎng),產(chǎn)生連接情況表。
4 結(jié)語(yǔ)
本文提出的ICMP協(xié)議的拓?fù)浒l(fā)現(xiàn)方法能夠較好的發(fā)現(xiàn)網(wǎng)絡(luò)拓?fù)洌撬枰加么罅康膸捹Y源。本系統(tǒng)進(jìn)行設(shè)計(jì)時(shí),主要考慮的是對(duì)園區(qū)網(wǎng)絡(luò)的網(wǎng)絡(luò)管理,所有的被管理設(shè)備和網(wǎng)管系統(tǒng)處于同一段網(wǎng)絡(luò)上,也就是說(shuō),系統(tǒng)可以直接到達(dá)被管理的網(wǎng)絡(luò),所以對(duì)遠(yuǎn)程的局域網(wǎng)就無(wú)能為力了。在做下一步工作的時(shí)候,可以添加系統(tǒng)對(duì)遠(yuǎn)程局域網(wǎng)絡(luò)的管理功能。
參考文獻(xiàn)
[1] 晏蒲柳.大規(guī)模智能網(wǎng)絡(luò)管理模型方法[J].計(jì)算機(jī)應(yīng)用研究.2005,03.
[2] 周楊,家海,任憲坤,王沛瑜.網(wǎng)絡(luò)管理原理與實(shí)現(xiàn)技術(shù)[M].北京:清華大學(xué)出版社.2000.
關(guān)鍵詞:IP網(wǎng)絡(luò);可用帶寬;背景流量;瓶頸帶寬
中圖分類號(hào):TP393.01 文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1007-9599 (2011) 13-0000-02
Technical Analysis of Network Bandwidth Measurement
Li Yan1,Tian Liang1,Wang Yan2
(1.School of Computer and Information Engineering,Xinxiang College,Xinxiang453003,China;2.Xinyang Vocational and Technical College,Xinyang464000,China)
Abstract:The measurement of change package of algorithms and packet/packet queue measurement algorithm theory analysis resulted in their different environments in the availability,accuracy,robustness,timeliness of analysis,indicating the existence of flaws and problems.Integration of the two types of algorithms,using transmission control protocol packets encapsulated detection algorithm to solve the Internet Control Message Protocol dependence,the use of transmission control protocol feedback mechanisms to measure the algorithm only deploy software at the sending end.
Keywords:IP network;Available bandwidth;Background traffic;Bottleneck bandwidth
一、背景
Internet對(duì)信息化的普及和發(fā)展起到了巨大的推動(dòng)作用,但I(xiàn)nternet并沒(méi)有一個(gè)正規(guī)統(tǒng)一的商業(yè)模式,網(wǎng)絡(luò)也缺乏有效的管理和運(yùn)營(yíng)手段,存在服務(wù)質(zhì)量、信息安全和網(wǎng)絡(luò)管理等諸多問(wèn)題。由于我國(guó)互聯(lián)網(wǎng)現(xiàn)階段的情況,馬上改善基礎(chǔ)設(shè)施并不現(xiàn)實(shí),要解決以上這些難題,非常重要的一點(diǎn)就是能夠獲得對(duì)網(wǎng)絡(luò)狀態(tài)準(zhǔn)確、詳盡的了解,在現(xiàn)有網(wǎng)絡(luò)條件的基礎(chǔ)上,使得有效帶寬得到充分的利用。
綜上所述,在IP網(wǎng)絡(luò)中采用網(wǎng)絡(luò)瓶頸帶寬測(cè)量技術(shù)顯得尤為重要,可以實(shí)現(xiàn)[1][2]:
1.網(wǎng)絡(luò)實(shí)時(shí)監(jiān)控:在進(jìn)行網(wǎng)絡(luò)測(cè)量的同時(shí)實(shí)時(shí)獲取網(wǎng)絡(luò)當(dāng)前的運(yùn)行狀態(tài),了解網(wǎng)絡(luò)中的各種性能指標(biāo);在網(wǎng)絡(luò)發(fā)生異?;虺霈F(xiàn)故障之前給出分析和預(yù)測(cè),并向網(wǎng)絡(luò)管理員發(fā)出警報(bào),與入侵檢測(cè)系統(tǒng)IDS、IPS更好的協(xié)同工作,避免網(wǎng)絡(luò)擁塞的出現(xiàn)和網(wǎng)絡(luò)蠕蟲病毒的侵襲。
2.網(wǎng)絡(luò)的科學(xué)規(guī)劃、優(yōu)化和合理設(shè)計(jì):通過(guò)對(duì)網(wǎng)絡(luò)帶寬進(jìn)行測(cè)量所得到的數(shù)據(jù)進(jìn)行分析,獲取網(wǎng)絡(luò)流量分布、數(shù)據(jù)報(bào)文分布、協(xié)議分布等特征,對(duì)獲取的數(shù)據(jù)進(jìn)行收集處理,為網(wǎng)絡(luò)的科學(xué)規(guī)劃、設(shè)計(jì)、路由策略的優(yōu)化等方面提供依據(jù)。
3.提供網(wǎng)絡(luò)增值服務(wù):通過(guò)對(duì)業(yè)務(wù)流占用網(wǎng)絡(luò)帶寬的分析、統(tǒng)計(jì),可以獲得并分析網(wǎng)絡(luò)特征和用戶使用的偏好,進(jìn)而開發(fā)和規(guī)劃新的網(wǎng)絡(luò)應(yīng)用和業(yè)務(wù)平臺(tái),開發(fā)增值服務(wù),從而進(jìn)一步滿足用戶的需求。
4.適用不同情況的資費(fèi)標(biāo)準(zhǔn):通過(guò)對(duì)用戶上網(wǎng)時(shí)間、流量、網(wǎng)絡(luò)業(yè)務(wù)流等參數(shù)的數(shù)據(jù)分析,可以根據(jù)上網(wǎng)時(shí)間段、使用帶寬的容量、服務(wù)質(zhì)量等方面實(shí)行更加靈活多樣的資費(fèi)標(biāo)準(zhǔn)。
二、VPS測(cè)量算法
VPS變包測(cè)量技術(shù)[3][4][5]最早由Steve Bellovin與Van Jacobson提出,用于測(cè)量鏈路的瓶頸帶寬。VPS的基本原理是在發(fā)送方發(fā)送大量的探測(cè)數(shù)據(jù)包,經(jīng)過(guò)鏈路中的路由節(jié)點(diǎn)到達(dá)接收方。探測(cè)包經(jīng)過(guò)路由節(jié)點(diǎn)時(shí),記錄路由器收到這些數(shù)據(jù)包的響應(yīng)時(shí)間,由此計(jì)算出帶寬容量。
(一)算法理論分析。VPS測(cè)量算法在發(fā)送大小一定的若干個(gè)數(shù)據(jù)包給傳輸路徑上的路由節(jié)點(diǎn)時(shí),假設(shè)發(fā)送的數(shù)據(jù)包中至少有一個(gè)數(shù)據(jù)包和產(chǎn)生的ICMP返回信息都沒(méi)有排隊(duì)時(shí)延,則實(shí)際測(cè)量的RTT只包含傳輸時(shí)延和傳播時(shí)延兩部分,那么對(duì)于給定大小為L(zhǎng)的包,總共傳輸i跳,其最小的RTT 就可以由公式1計(jì)算得出:
(式1)
其中, 為第j跳的帶寬容量, 為數(shù)據(jù)包在鏈路j上的傳輸時(shí)延, 為到達(dá)第i跳前所產(chǎn)生的延遲, 表示為單位長(zhǎng)度的數(shù)據(jù)包在通過(guò)鏈路j時(shí)所產(chǎn)生的時(shí)延,由于鏈路容量是物理容量,即為鏈路的吞吐量。通過(guò)發(fā)送不同大小的數(shù)據(jù)包,可通過(guò)數(shù)學(xué)原理估算出 的值。對(duì)于每一跳i,重復(fù)測(cè)量最小的RTT值,據(jù)此可由公式2估計(jì)出每跳的帶寬容量。
(式2)
VPS通過(guò)以上過(guò)程可以計(jì)算出每跳的鏈路帶寬容量,通過(guò)對(duì)數(shù)據(jù)收集比對(duì),其中各段鏈路中容量最小的鏈路帶寬即為整條路徑的路徑帶寬容量,即如公式3所示:
(式3)
(二)影響測(cè)量精確度的原因分析。通過(guò)上面的理論分析,可以發(fā)現(xiàn),影響VPS算法測(cè)量的幾個(gè)主要因素如下:
1.探測(cè)包大小、發(fā)送頻率。探測(cè)包長(zhǎng)度如果過(guò)小,在其還沒(méi)有到達(dá)接收方就可能被路由節(jié)點(diǎn)丟棄或被排隊(duì),影響測(cè)量精度;而探測(cè)包長(zhǎng)度如果過(guò)大,則會(huì)增加探測(cè)包本身通過(guò)鏈路時(shí)所產(chǎn)生的傳輸時(shí)延,同樣也會(huì)對(duì)測(cè)量精度產(chǎn)生影響。
2.背景流量。當(dāng)網(wǎng)絡(luò)中存在背景流量時(shí),則探測(cè)數(shù)據(jù)包和其他業(yè)務(wù)流共享帶寬。當(dāng)網(wǎng)絡(luò)出現(xiàn)擁塞或有高優(yōu)先級(jí)的業(yè)務(wù)流存在時(shí),探測(cè)包通過(guò)路由節(jié)點(diǎn)時(shí)可能會(huì)被排隊(duì),產(chǎn)生排隊(duì)時(shí)延,由此影響RTT值的準(zhǔn)確度,進(jìn)而影響最終的測(cè)量精度。
3.中間設(shè)備。當(dāng)網(wǎng)絡(luò)路徑中存在存儲(chǔ)轉(zhuǎn)發(fā)的二層設(shè)備時(shí),這些二層設(shè)備會(huì)對(duì)數(shù)據(jù)包進(jìn)行存儲(chǔ)轉(zhuǎn)發(fā),由此產(chǎn)生等待時(shí)延,可并不會(huì)發(fā)送ICMP協(xié)議的回應(yīng)報(bào)文。同樣如果網(wǎng)絡(luò)中的中間設(shè)備對(duì)ICMP協(xié)議進(jìn)行過(guò)濾或限速處理的話,都會(huì)影響最終的測(cè)量精度。
4.路徑的對(duì)稱性。VPS算法主要的測(cè)量參數(shù)是路徑往返時(shí)間RTT,若探測(cè)路徑與返回路徑不一致,則所得的RTT就不是實(shí)際的路徑返回時(shí)間,由此產(chǎn)生較大的誤差。
(三)算法優(yōu)缺點(diǎn)分析。VPS算法屬于單端測(cè)量,即在測(cè)量時(shí)只需要在發(fā)送端部署軟件即可。基于上述的分析可以看出:算法的實(shí)現(xiàn)依賴于中間節(jié)點(diǎn)對(duì)ICMP協(xié)議的支持,當(dāng)中間節(jié)點(diǎn)對(duì)ICMP協(xié)議數(shù)據(jù)包實(shí)行丟棄或限速策略時(shí),算法測(cè)量精度將大大下降;在測(cè)量時(shí)需要發(fā)送大量的探測(cè)包,占用網(wǎng)絡(luò)帶寬;算法是逐段測(cè)量鏈路的帶寬容量,最后對(duì)數(shù)據(jù)收集進(jìn)行比對(duì)得出瓶頸帶寬,測(cè)量時(shí)間較長(zhǎng);后一個(gè)鏈路的測(cè)量結(jié)果要依賴于前面鏈路的測(cè)量結(jié)果,容易產(chǎn)生誤差累積。
三、PPTD包對(duì)/包隊(duì)列測(cè)量算法
包對(duì)技術(shù)最初是由Jacobson、Keshav和Bolot小組共同完成的。包對(duì)法是非常經(jīng)典的一種測(cè)量方法,可以說(shuō),目前絕大多數(shù)的帶寬測(cè)量都是對(duì)包對(duì)法的改進(jìn)。
(一)算法理論分析。VPS算法需要發(fā)送探測(cè)報(bào)文等待接收方回應(yīng)后通過(guò)計(jì)算RTT時(shí)間來(lái)測(cè)量帶寬,而PPTD算法是利用數(shù)據(jù)包在傳輸過(guò)程中所形成的時(shí)間間隔來(lái)測(cè)量帶寬。發(fā)送方發(fā)送若干對(duì)數(shù)據(jù)包對(duì)給接收方,每對(duì)數(shù)據(jù)包都由兩個(gè)長(zhǎng)度相等的背靠背數(shù)據(jù)包組成。在特定的鏈路中,兩個(gè)數(shù)據(jù)包之間的距離指兩個(gè)包在鏈路上傳輸時(shí),最后一個(gè)比特位之間的距離。
圖1:包對(duì)測(cè)量方法原理圖
圖1描述了一個(gè)數(shù)據(jù)包對(duì)中的兩個(gè)數(shù)據(jù)包在通過(guò)鏈路i時(shí)前后的時(shí)間間隔變化情況。設(shè)數(shù)據(jù)包對(duì)的長(zhǎng)度為L(zhǎng),經(jīng)過(guò)的路由跳數(shù)為h,所經(jīng)過(guò)的第i跳鏈路的帶寬為 ,則包對(duì)經(jīng)過(guò) 所需的時(shí)間間隔 。設(shè)在進(jìn)入鏈路前兩數(shù)據(jù)包之間的時(shí)間間隔為 ,通過(guò)鏈路后的時(shí)間間隔為 ,可由公式4計(jì)算得出。
(式4)
數(shù)據(jù)包對(duì)在通過(guò)鏈路i時(shí),會(huì)產(chǎn)生傳輸時(shí)延 ,當(dāng) 的值小于 時(shí),說(shuō)明兩個(gè)數(shù)據(jù)包在通過(guò)鏈路i時(shí)并沒(méi)有產(chǎn)生排隊(duì)時(shí)延,由此當(dāng)數(shù)據(jù)包離開鏈路i時(shí), 。而當(dāng) 的值大于 ,說(shuō)明數(shù)據(jù)包在通過(guò)鏈路i時(shí),產(chǎn)生了排隊(duì)時(shí)延,由此造成包對(duì)之間的距離增大, 。
當(dāng)數(shù)據(jù)包對(duì)經(jīng)過(guò)最后一條鏈路到達(dá)接收端時(shí)總的時(shí)間間隔可由公式5計(jì)算得出。
(式5)
其中C就是這條路徑端到端的帶寬,也就是我們平常說(shuō)的瓶頸帶寬。那么我們就可以通過(guò)接收端測(cè)得的 的值估算出 。
包隊(duì)列技術(shù)是包對(duì)技術(shù)的改進(jìn)和擴(kuò)展,將一對(duì)背靠背的數(shù)據(jù)包對(duì)擴(kuò)展到多個(gè)背靠背的數(shù)據(jù)包,形成一個(gè)隊(duì)列,測(cè)量的基本思想是一致的。
(二)影響測(cè)量精確度的原因分析。通過(guò)上面的理論分析,可以發(fā)現(xiàn),影響PPTD算法測(cè)量的幾個(gè)主要因素如下:
1.背景流量。當(dāng)網(wǎng)絡(luò)中存在背景流量時(shí),包對(duì)之間的時(shí)間間隔就不在僅僅的受傳輸時(shí)延的影響,因?yàn)楸尘傲髁康拇嬖跁?huì)造成數(shù)據(jù)包在路由設(shè)備上產(chǎn)生排隊(duì)時(shí)延,由此無(wú)法準(zhǔn)確的估算出 值的大小。
2.網(wǎng)絡(luò)擁塞造成探測(cè)包丟失。PPTD算法的實(shí)現(xiàn)是以估算背靠背數(shù)據(jù)包之間的時(shí)間間隔為基礎(chǔ)的,如果數(shù)據(jù)包對(duì)在鏈路上傳輸時(shí),任意一個(gè)數(shù)據(jù)包對(duì)或者全部發(fā)生丟包現(xiàn)象,則PPTD就無(wú)法在進(jìn)行帶寬測(cè)量。
3.數(shù)據(jù)包對(duì)的數(shù)量。通過(guò)采用包隊(duì)列的測(cè)量方法,發(fā)送多組數(shù)據(jù)包對(duì),利用統(tǒng)計(jì)學(xué)原理來(lái)過(guò)濾掉誤差較大的測(cè)量樣本,可以減小背景流量對(duì)測(cè)量結(jié)果造成的影響,但這也不能完全解決問(wèn)題。
(三)算法優(yōu)缺點(diǎn)分析。PPTD算法屬于雙端測(cè)量,在測(cè)量時(shí)發(fā)送方和接收方都需要部署軟件,同時(shí)還要保證時(shí)間的同步;算法只需要了解路徑的單向延遲,測(cè)量結(jié)果與路徑的對(duì)稱性無(wú)關(guān);PPTD不依賴于ICMP協(xié)議,可以在應(yīng)用層實(shí)現(xiàn);測(cè)量時(shí)發(fā)送的背靠背數(shù)據(jù)包相對(duì)較小,占用的網(wǎng)絡(luò)帶寬也相對(duì)少一些;無(wú)需了解每段鏈路的帶寬容量,測(cè)量時(shí)間短;測(cè)量時(shí)每次采用的結(jié)果之間相互獨(dú)立,互不干擾,不存在誤差積累的問(wèn)題。
四、新模型的提出
在廣域網(wǎng)的測(cè)量工作中,把VPS算法和PPTD算法結(jié)合起來(lái),取長(zhǎng)補(bǔ)短,設(shè)計(jì)一種新型的測(cè)量模型。這種模型采用TCP協(xié)議作為探測(cè)數(shù)據(jù)包的封裝,這樣就可以有效地避免了VPS算法過(guò)于依賴ICMP協(xié)議而無(wú)法通過(guò)廣域網(wǎng)中有些路由器的問(wèn)題,利用TCP協(xié)議三次握手的機(jī)制來(lái)收集返回信息,用以進(jìn)行帶寬測(cè)量,這樣就可以解決PPTD必須采用雙端配置的問(wèn)題。
但在實(shí)際的廣域網(wǎng)環(huán)境中網(wǎng)絡(luò)情況比較復(fù)雜,采用TCP協(xié)議也可能會(huì)出現(xiàn)以下問(wèn)題:
1.TCP協(xié)議存在貪婪流的問(wèn)題。改進(jìn)方法:用慢啟動(dòng)算法啟動(dòng)并使傳輸速度達(dá)到極限值,然后降低增加速度,改為線性增加傳輸速度,當(dāng)探測(cè)到網(wǎng)絡(luò)中出現(xiàn)擁塞即發(fā)送數(shù)據(jù)包超時(shí),將極限值減半,并且重新使用慢啟動(dòng)算法。
2.抖動(dòng)問(wèn)題也是使用TCP協(xié)議不可避免要碰到的問(wèn)題。改進(jìn)辦法:采用大小一致的數(shù)據(jù)包,并且設(shè)定每個(gè)數(shù)據(jù)包的大小均為MTU最大傳輸單元所要求的1500字節(jié)。這樣可以使每個(gè)測(cè)量數(shù)據(jù)包的傳輸都能平衡、高效,盡可能減少傳輸過(guò)程中的排隊(duì)時(shí)間。
3.進(jìn)行TCP傳輸時(shí),窗口大小的確定。改進(jìn)辦法:數(shù)據(jù)的傳輸速率主要由TCP協(xié)議的滑動(dòng)窗口大小決定,設(shè)定接收窗口保持最大值狀態(tài),盡可能避免在接收方出現(xiàn)因?yàn)榇翱谶^(guò)小而造成的丟包現(xiàn)象。
五、總結(jié)與展望
雖然本文對(duì)主流的網(wǎng)絡(luò)帶寬測(cè)量算法進(jìn)行了研究,并且對(duì)其在各種不同網(wǎng)絡(luò)環(huán)境下的工作情況進(jìn)行了實(shí)驗(yàn)分析,但從理論分析和實(shí)驗(yàn)數(shù)據(jù)的結(jié)果上可以看出目前現(xiàn)有的技術(shù)還都存在較大的缺陷。目前測(cè)量的數(shù)據(jù)相對(duì)準(zhǔn)確的都是進(jìn)行瓶頸帶寬測(cè)量,而更為重要的參數(shù)可用帶寬容量一直都沒(méi)有得到較好的解決。因此,關(guān)于網(wǎng)絡(luò)帶寬測(cè)量還有很多工作要做,對(duì)兩種典型的算法進(jìn)一步提煉,吸取其中值得借鑒的思想,進(jìn)一步改進(jìn)和完善文中最后提出的新的測(cè)量模型。
參考文獻(xiàn):
[1]劉湘輝.IP網(wǎng)絡(luò)帶寬測(cè)量的模型與算法的研究[D].[博士學(xué)位論文].長(zhǎng)沙:國(guó)防科學(xué)技術(shù)大學(xué),2005
[2]楊帆.可用帶寬主動(dòng)測(cè)量算法的研究[D].[碩士學(xué)位論文].北京:北京郵電大學(xué),2008
[3]M.Mathis,M.Allman.A Framework for Defining Empirical Bulk Transfer Capacity Metrics.RFC 3148,2001,162-198
[4]魏蔚,董亞波,魯東明,金光.低速率TCP拒絕服務(wù)攻擊的檢測(cè)響應(yīng)機(jī)制[J].浙江大學(xué)學(xué)報(bào)(工學(xué)版),2008,36(5):757-762
級(jí)別:部級(jí)期刊
榮譽(yù):中國(guó)優(yōu)秀期刊遴選數(shù)據(jù)庫(kù)
級(jí)別:北大期刊
榮譽(yù):Caj-cd規(guī)范獲獎(jiǎng)期刊
級(jí)別:省級(jí)期刊
榮譽(yù):Caj-cd規(guī)范獲獎(jiǎng)期刊
級(jí)別:部級(jí)期刊
榮譽(yù):中國(guó)優(yōu)秀期刊遴選數(shù)據(jù)庫(kù)
級(jí)別:北大期刊
榮譽(yù):Caj-cd規(guī)范獲獎(jiǎng)期刊