前言:一篇好文章的誕生,需要你不斷地搜集資料、整理思路,本站小編為你收集了豐富的icmp協議主題范文,僅供參考,歡迎閱讀并收藏。
中圖分類號:TP393文獻標識碼:A文章編號: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 引言
隨著計算機技術及網絡技術的迅速發展,個人、家庭或宿舍中擁有多臺計算機已變得十分的普遍,將多臺計算機組建成網絡可以提高資源的利用率和協同工作的效率,所以網絡技術無論在教學還是在現實生活中都變得異常的重要。
在實際學習中,由于資源設備的限制,提供完善的實驗環境存在一定的難度,所以提供一種模擬的組建網絡的平臺具有很強的現實意義。雖然在應用中,業界有很多優秀的成品軟件,如:虛擬機軟件vmware、virtual pc;以及網絡認證考試的軟件NetSim、Dynamips等工具也可用于模擬組建網絡的練習工具,但是由于它們所面向的是高級的網絡應用,在教學的應用中需要更簡單直觀的平臺。
文中就是基于面向網絡技術教學的目的而設計的實驗平臺,提供了簡單直觀實驗的要求。文中重點實現了Ping命令,根據Ping命令的運行原理,對它進行了模擬實現,相應的其他檢查網絡狀態的命令,如:tracert、ipconfig、netstat等等,也可以根據各自的運行原理進行實現[1]。
2 Ping命令及ICMP協議簡介
2.1 Ping命令簡介
“Ping”這個名字源于聲納定位操作,最早Ping程序是由Mike Muuss編寫[2],目的是為了測試另一臺主機是否可達,該程序發送一份ICMP回顯請求報文給主機,并等待返回ICMP回顯應答。
一般來說,如果不能Ping到某臺主機,那么就不能Telnet或者FTP到那臺主機;反過來,如果不能Telnet到某臺主機,那么通常可以用Ping程序來確定問題出在哪里。但是隨著Internet安全意識的增強,Ping不通一臺主機也可能是受路由器、防火墻的影響,但在一般的應用中可以將Ping作為檢測網絡連通狀況的實用工具。
■
圖1 Ping命令發送ICMP報文
2.2 ICMP協議簡介
ICMP協議(Internet Control Message Protocol, Internet控制報文協議)是TCP/IP協議族的一個子協議,該協議位于網絡層,提供了傳輸差錯報文、控制報文和詢問報文的功能;允許ICMP報文在IP數據報內攜帶。封裝格式如下圖:
■
圖2 ICMP封裝在IP數據報內部
ICMP報文有多種類型,Ping程序使用ICMP的回顯請求報文,該報文的結構如下:前四個字節為報文頭部分,第一個字節為報文類型,第二個字節未用,第三、四個字節為報文的校驗和,第五、六個字節為報文的標志符,第六、七個字節為報文的序號,最后為選項數據但是報文總長度不超過64KB。
ICMP回顯請求和回顯應答報文格式如下圖:
■
圖3 ICMP回顯請求和回顯應答報文格式
3 Ping命令執行原理及實現步驟
3.1 執行原理和步驟
在進行Ping操作時,首先從客戶機向服務器發送ICMP回顯請求報文,當服務器接收到客戶機發送來的ICMP回顯請求報文時,服務器就會向客戶機發送ICMP回顯應答報文,客戶機通過接收來自服務器的ICMP回顯應答報文,從而判斷與遠程主機的聯通狀態。
實現步驟如下:
步驟 1:根據ICMP回顯請求的報文格式,定義報文;
步驟 2:客戶機發送封裝ICMP回顯請求報文的IP數據包;
步驟 3:客戶機接收封裝ICMP應答報文的IP數據包。
3.2 數據包的檢驗和算法
為了保證包頭和數據不被破壞,數據包在計算機網絡中傳輸期間使用了檢驗和(圖3中的第三四字節),ICMP的檢驗和字段覆蓋整個ICMP報文,而求ICMP的檢驗和是必須的,檢驗和保證了ICMP報頭和數據的正確性。
檢驗和算法在所有的協議中都是相同的,只是由于協議的不同,檢驗和保證的域的內容不同。檢驗和在各種協議中所保證的各種域如下:
■
檢驗和icmp_ckSum算法如下[4]:
① 在檢驗和的域中設置為0;
② 在數據長度為奇數時,在其域中最后追加0,使其調整為以16為單位(在這種調整方法中,即使追加8位,也不包含包長度);
③ 以16位為單位,將一個偽報頭、報頭、數據部分加上1的補碼;
④ 將所求出的值:1的補碼存儲到報頭檢查和的區域中。
如果首部在傳輸的過程中沒有發生任何差錯,那么接收方計算的結果應該為全1;如果結果不是全1(即檢驗和錯誤),那么IP就丟棄收到的數據報,但是不生成差錯報文,由上層去發現丟失的數據報并進行重傳。
4 模擬命令的實驗過程及結果
4.1 實驗要完成的功能
本實驗平臺要實現的功能界面如圖4。
在“工作臺”窗口中,組建了一個簡單的局域網,通過模擬網絡命令測試該局域網的網絡連通狀態,在“命令交互”窗口中,用Ping命令從PC1到PC2,返回的結果將與實際的局域網中得到的結果相似。
4.2 Ping命令的Visual C#模擬實現
安裝Ping命令的執行原理、步驟,其具體的實現過程如下:
① ICMP數據包類的定義和實現。
public class IcmpPacket{private Byte_type;// 報文類型
private Byte_subCode;// 字代碼類型
private UInt16 _checkSum;// 報文校驗和
private UInt16 _identifier;//識別符
private UInt16 _sequenceNumber;// 序列號
private Byte[]_data; // 數據選項 }
② 模擬Socket的SendTo()方法的SimSendTo()方法。
在執行Ping命令時該方法將被調用,根據計算機名或虛擬的IP地址,將ICMP數據包的UInt16數組發送給目的主機進行驗證。
在該方法中增加了對計算機名的名稱的解析,可以將計算機名稱與虛擬的IP地址對應起來,因此Ping命令后面的參數可以是計算機名也可以是具體的IP地址。
③ 模擬Socket的ReceiveFrom()方法的SimReceiveFrom()方法。
此方法在執行Ping命令是也會被調用,該方法返回了目的主機回顯的信息,表明了目的主機是否已經接收到了發送的數據,若該方法的返回值為ICMP數據包的大小,則表明操作成功,將在終端顯示接收信息;若返回的值為-1,則在終端顯示“目的主機不可到達”的信息。
④ 檢驗和icmp_ckSum()算法的實現。
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 結束語
該文對模擬組網的實驗平臺進行了介紹,詳細介紹了Ping命令的原理及其工作方式,并對其模擬實現進行了詳細的分析。依據此實現方式,可以對其他的命令tracert、ipconfig、netstat等等進行實現,以完善該實驗平臺。
當然該平臺到目前只是對關鍵的技術進行了前期的研究和解決,很多的功能和相關的技術還要進行繼續的研究,在命令的交互體驗方面也應該更加真實,這些都成為以后工作的重點。
參考文獻:
[1] Jon C.Snader. 劉江林,譯. 高級TCP/IP編程[M].北京:中國電力出版社,2001.6.
[2] W.Richard Stevens.TCP/IP Illustrated, Volume 1:The Protocols.北京:機械工業出版社,2002.1.
[3] 潘愛明,譯.計算機網絡[M].第4版.北京:清華大學出版社,2004.8.
[4] 馮杰,閆魯生,譯.TCP/IP網絡實驗程序篇[M].北京:科學出版社,2003.4.
[5] Gary R.Wright,W.Richard Stevens.TCP/IP Illustrated, Volume 2:The Implementation[M].北京:機械工業出版社,2002.1.
[6] 李銘,黃靜,譯.C#2005&.NET 3.0高級編程.第5版.北京:清華大學出版社,2007.12.
[7] RFC 791-1981 INTERNET PROTOCOL[S].Network Working Group.
關鍵詞:黑客攻擊;網絡協議;ICMPIP
一、黑客基礎知識
不難想象,本文可選擇的攻擊類型范圍很廣。我之所以選取本文所討論的幾種特定攻擊,是因為它們不需要太多關于所涉及協議的知識,但仍然能有效地說明了攻擊是如何執行的、攻擊實際上是多么簡單(一旦您知道了詳細信息)以及攻擊者所需的資源(計算和網絡)是多么有限。盡管不可能在本文中涵蓋關于黑客攻擊的整個主題,但我已盡可能簡化基本原理,而仍然盡量多地提供必要信息,以便您理解所描述的攻擊。
二、攻擊的種類。拒絕服務攻擊:通常,黑客瞄準特定系統,闖入系統以便將其用于特定用途。那些系統的主機安全性經常會阻止攻擊者獲得對主機的控制權。但進行拒絕服務攻擊時,攻擊者不必獲得對系統的控制權。其目標只是使系統或網絡過載,這樣它們就無法繼續提供服務了。拒絕服務攻擊可以有不同的目標,包括帶寬消耗(bandwidth consumption)和資源缺乏(resource starvation)。
三、分析選定的網絡攻擊
(一)協議
本段討論了針對網際控制報文協議(ICMP)和傳輸控制協議(TCP)上的攻擊,這兩個協議都屬于網際協議(IP)系列。在深入研究關于這些協議的詳細信息之前,我打算先在適合于這些協議的環境中討論它們。
網際控制報文協議(ICMP)是IP的組成部分,但它使用某些IP服務。ICMP提供服務,使主機能夠彼此交流控制信息。ICMP由IP和一些更高級別的協議使用,如傳輸控制協議(TCP)。
傳輸控制協議(TCP)是本文中討論的第三個重要協議。TCP的功能比IP更進一步,并提供兩個重要特性:連接和服務質量。這意味著您可以在兩臺主機之間開一個虛擬通道,通過這個通道,使得所發送的包的順序及其實際傳遞都得到保障。
接下來更高的一級是應用層協議,如Telnet和SMTP。它們都使用由TCP提供的服務。例如,當您用Telnet連接到主機時,打開一個連接,并且您希望所有輸入這個Telnet會話的數據都以正確的順序發送到接收主機。
(二)理解IP
因為IP提供的是無連接、不可靠、最高效的(best-effort)數據報傳遞服務,所以IP的使用范圍多少受到了限制。但是,它提供兩個基本功能:尋址和分段。地址(在IP數據報頭中封裝為源和目的地地址)用來將數據報傳輸到其目的地,這個過程稱為路由。有兩種基本情況:
接收主機和發送主機位于同一子網,這種情況下數據報將被直接從發送方發送到接收方。
接收主機位于不同的子網,這種情況下發送主機將把數據報轉發到網關(連接兩個子網的IP主機),然后,如果目的地主機在一個與網關相連的子網中,則網關會嘗試將數據報傳遞到目的地主機。如果目的地主機不在與網關相連的子網中,網關將會把數據報轉發到另一個網關。這個過程將反復進行,直到能夠將數據報傳遞到其目的地主機為止。
既然我已經介紹了基礎知識,現在可以討論個別協議了。在以下幾節中,您將找到關于ICMP和TCP的更詳細的信息以及一些使用這些協議的有趣的攻擊。
(三)使用ICMP
超時消息:每個IP數據報頭中都包含一個字段―稱為“生存時間字段”―它指出數據報在被丟棄之前還能在因特網上保持多久。數據報在因特網上保持的時間以跳躍點(hop)衡量,其中一個跳躍點表示數據報通向目的地節點路徑上的一個網關。當數據報經過網關轉發時,它就將生存時間字段中的值減一。如果處理數據報的網關測定該數據報IP頭中的生存時間字段為0,則丟棄該數據報并用超時消息通知源主機。
回應請求和回應應答消息:如果主機A想知道主機B是否是活動的,則主機A會向主機B發送一條ICMP回應請求消息。主機B將用ICMP回應應答消息來應答,以表明自己是活動的。這條消息就是眾所周知的ping包。
以上這些并不是ICMP所使用的全部消息類型,但它們能使您大致了解ICMP的用途。接下來我將向您介紹兩種ICMP攻擊。
目的地不可到達攻擊
類別:拒絕服務攻擊
描述:如上所述,ICMP目的地不可到達消息向嘗試轉發消息的網關提供了一種工具,用來通知發送方:因為在數據報目的地地址中指定的主機不可到達,所以無法傳遞該消息。
如果入侵者獲得了網絡10.1.0.0中一臺主機的訪問權,那么,他可以廣播一條“目的地不可到達消息”,聲明網關G對于他所在網絡的所有主機是不可到達的。這將使網關G和網絡10.2.0.0暫時變得不可用,因而不可能從網絡10.1.0.0向網絡10.2.0.0傳輸任何消息。
這種攻擊背后的動機只是使網絡或服務暫時癱瘓。因為攻擊者不需要功能強大的機器或高速的網絡連接來執行這種攻擊,所以它特別危險。
(四)Smurf攻擊
類別:拒絕服務攻擊
描述:Smurf攻擊是拒絕服務攻擊的一種非常可怕的形式,因為它具有放大效應。Smurf攻擊利用ICMP回應消息。如上所述,主機A每次向主機B發送回應請求消息時,主機B都會返回回應應答消息以表明自己是活動的。名稱“Smurf攻擊”源自一個名為smurf的利用程序,攻擊者用該程序來執行這種攻擊。
(五)傳輸控制協議(TCP)
在繼續討論攻擊之前,我將更詳細地討論TCP的某些方面,這些知識對于下面討論的攻擊是必需的。尤其是TCP包(稱為段)的結構、如何在主機之間建立TCP連接和如何關閉連接。
(六)TCP包的結構
與IP數據報類似,TCP段包含頭部分、可選(選項)部分和數據部分。現在,讓我們更仔細地研究一下TCP頭的某些重要字段:
源端口:分配給啟動連接的主機上虛連接的端口號。
目的地端口:目的地端口號。這也由啟動連接的主機分配,因為只有該主機知道自己“想”連接到哪里。例如,如果您打開到特定主機的Telnet連接,則目的地端口將被設置為23。
序列號和確認號:發送方和接收方使用兩個序列號來確保包沒有丟失、沒有重復以及可以在目的地節點以正確順序重新組裝。
標志:這個字段包含六個控制位:
URG:向接收方表明一接收完數據就進行緊急處理。
ACK:表明確認號字段是有意義的。
PSH:表明必須迅速地將數據傳遞到接收方。
RST:表明要立即復位連接。
SYN:在需要同步序列號的情況下設置。
FIN:表明不會再有來自發送方的數據了(也就是說,連接將要關閉)。
以上是TCP頭中的重要字段,下面關于TCP連接的建立和關閉的幾節將使您更好地理解這些字段的用途。
關鍵詞:網絡管理協議(SNMP) 網絡拓撲自動發現算法 網絡管理
隨著計算機網絡的普及,人們對計算機網絡的依賴性大大加強了。在現有的技術條件下,人們希望有一個更加穩定可靠的網絡環境。計算機網絡管理系統就是應這樣的需求而產生的。它對網絡上的各種設備進行管理,通過監視和控制這些設備。及時地向管理人員報告網絡狀態,并且簡化網絡故障的處理,減少故障造成的損失,提高網絡的服務質量和效率。在我國,人們開始認識到網絡管理的重要性。
一、網絡管理中傳統的網絡拓撲發現算法
網絡拓撲的發現,實際上就是根據網絡上節點連接情況,構造出來一個反映這種連接關系的圖。網絡節點可以是網關,也可以是子網:網關節點是與子網和其它網關節點相鄰的節點;子網節點可被認為只與網關節點相鄰,至少與它的缺省網關相鄰。各子網通過各目的網關與其他子網通信,這些子網可以是一個局域網,也可以是某個局域網的一部分,它們都連接到網關的一個端口上。網關的端口可以連接子網,也可以同其他路由器相連。
主拓撲指的是反映出關鍵設備包括路由器,它們的接口和子網的連接關系,即路由器一路由器、路由器一子網、接口的關系。這些信息需要對網絡進行搜索而獲得:一般只需要對連接設備進行遍歷就可以得到主拓撲結構。當前的網管軟件都是通過對網絡設備的MIB庫進行訪問,所以這種方法又被稱為基于SNMP的拓撲發現。經過上述的遍歷過程,可以得到網絡拓拓撲圖的整體構成,知道了網絡主干通道情況。但是子網內部的具體設備以及連接狀態尚不可知。這就需要依靠子網發現來做進一步的工作。子網發現完成的任務是確定子網內各網絡設備的狀態、類型以及網絡接口。
遍歷的定義是:對于無向圖,以圖中某一點為出發點,沿著邊依次訪問圖的其余節點,如果圖是連通的,則從圖的任一點出發按一定的順序沿著某些邊可以訪問圖中的所有節點,而且每個節點僅被訪問一次,這一過程稱為圖的遍歷。在網絡上,一個節點可以和很多的節點連接,所以當進行網絡拓撲結構發現的時候,有可能會訪問已經被發現過的節點。因此,在遍歷的時候,必須對每一個節點設置一個標志。當節點未被訪問過時,相應的標志為0,否則,就置為1。
二、改進的網絡拓撲算法
前面基于SNMP的拓撲算法在一定程度上是非常有效的,拓撲的速度也非常快。但它存在一個缺陷。那就是,在一個特定的域中,所有的子網的信息都依賴于設備具有SNMP的特性,如果系統不支持SNMP,則這種方法就無能為力了。還有對網絡管理的不重視,或者考慮到安全方面的原因,人們往往把網絡設備的SNMP功能關閉,這樣就難于取得設備的MIB值,就出現了拓撲的不完整性,嚴重影響了網絡管理系統的功能。針對這一的問題,下面討論本文對上述算法的改進一基于ICMP協議的拓撲發現。
(一)ICMP報文的格式
ICMP被認為是IP層的一個組成部分。它傳遞差錯報文以及其他需要注意的信息。網際協議CIP沒有出錯報告或出錯校正機制,它依靠網際控制報文協議(ICMP)模塊來報告數據處理過程,井提供管理和狀態信息。ICMP報文在傳送時被封裝在IP數據報中,使用IP協議發送,但ICEP不看作是高層協議的內容。
回應請求與應答均以IP數據報的形式在網間傳輸,假如成功地收到一個應答(應答中的數據拷貝與請求中的任選數據完全一致),不但說明信宿機可以到達,而且說明數據報傳輸系統的相應部分工作正常,至少信源機和信宿機的ICMP軟件和IP軟件工作正常,請求與應答經過中間網關也在正常工作。在許多TCP/IP實現中,用戶命令Ping便是利用ICMP回應請求/應答報文測試信宿機的可到達性的。
(二)PING的實現
PING的主要操作是發送報文,并簡單地等待回答。PING之所以如此命名,是因為它是一個簡單的回顯協議,使用ICMP響應請求與響應應答報文。PING主要由系統程序員用于診斷和調試。一般的,PING的功能有:
LOOP BACK PING用于驗證TCP/IP軟件的操作。
PIN G地址確定能否尋址物理網絡設備。
PING遠程IP地址驗證能否尋址網絡。
關鍵詞:簡單網絡管理協議(SNMP) 網絡拓撲自動發現算法 網絡管理
隨著計算機網絡的普及,人們對計算機網絡的依賴性大大加強了。在現有的技術條件下,人們希望有一個更加穩定可靠的網絡環境。計算機網絡管理系統就是應這樣的需求而產生的。它對網絡上的各種設備進行管理,通過監視和控制這些設備。及時地向管理人員報告網絡狀態,并且簡化網絡故障的處理,減少故障造成的損失,提高網絡的服務質量和效率。在我國,人們開始認識到網絡管理的重要性。
一、網絡管理中傳統的網絡拓撲發現算法
網絡拓撲的發現,實際上就是根據網絡上節點連接情況,構造出來一個反映這種連接關系的圖。網絡節點可以是網關,也可以是子網:網關節點是與子網和其它網關節點相鄰的節點;子網節點可被認為只與網關節點相鄰,至少與它的缺省網關相鄰。各子網通過各目的網關與其他子網通信,這些子網可以是一個局域網,也可以是某個局域網的一部分,它們都連接到網關的一個端口上。網關的端口可以連接子網,也可以同其他路由器相連。
主拓撲指的是反映出關鍵設備包括路由器,它們的接口和子網的連接關系,即路由器一路由器、路由器一子網、接口的關系。這些信息需要對網絡進行搜索而獲得:一般只需要對連接設備進行遍歷就可以得到主拓撲結構。當前的網管軟件都是通過對網絡設備的MIB庫進行訪問,所以這種方法又被稱為基于SNMP的拓撲發現。經過上述的遍歷過程,可以得到網絡拓拓撲圖的整體構成,知道了網絡主干通道情況。但是子網內部的具體設備以及連接狀態尚不可知。這就需要依靠子網發現來做進一步的工作。子網發現完成的任務是確定子網內各網絡設備的狀態、類型以及網絡接口。
遍歷的定義是:對于無向圖,以圖中某一點為出發點,沿著邊依次訪問圖的其余節點,如果圖是連通的,則從圖的任一點出發按一定的順序沿著某些邊可以訪問圖中的所有節點,而且每個節點僅被訪問一次,這一過程稱為圖的遍歷。在網絡上,一個節點可以和很多的節點連接,所以當進行網絡拓撲結構發現的時候,有可能會訪問已經被發現過的節點。因此,在遍歷的時候,必須對每一個節點設置一個標志。當節點未被訪問過時,相應的標志為0,否則,就置為1。
二、改進的網絡拓撲算法
前面基于SNMP的拓撲算法在一定程度上是非常有效的,拓撲的速度也非常快。但它存在一個缺陷。那就是,在一個特定的域中,所有的子網的信息都依賴于設備具有SNMP的特性,如果系統不支持SNMP,則這種方法就無能為力了。還有對網絡管理的不重視,或者考慮到安全方面的原因,人們往往把網絡設備的SNMP功能關閉,這樣就難于取得設備的MIB值,就出現了拓撲的不完整性,嚴重影響了網絡管理系統的功能。針對這一的問題,下面討論本文對上述算法的改進一基于ICMP協議的拓撲發現。
(一)ICMP報文的格式
ICMP被認為是IP層的一個組成部分。它傳遞差錯報文以及其他需要注意的信息。網際協議CIP沒有出錯報告或出錯校正機制,它依靠網際控制報文協議(ICMP)模塊來報告數據處理過程,井提供管理和狀態信息。ICMP報文在傳送時被封裝在IP數據報中,使用IP協議發送,但ICEP不看作是高層協議的內容。
回應請求與應答均以IP數據報的形式在網間傳輸,假如成功地收到一個應答(應答中的數據拷貝與請求中的任選數據完全一致),不但說明信宿機可以到達,而且說明數據報傳輸系統的相應部分工作正常,至少信源機和信宿機的ICMP軟件和IP軟件工作正常,請求與應答經過中間網關也在正常工作。在許多TCP/IP實現中,用戶命令Ping便是利用ICMP回應請求/應答報文測試信宿機的可到達性的。
(二)PING的實現
PING的主要操作是發送報文,并簡單地等待回答。PING之所以如此命名,是因為它是一個簡單的回顯協議,使用ICMP響應請求與響應應答報文。PING主要由系統程序員用于診斷和調試。一般的,PING的功能有:
LOOP BACK PING用于驗證TCP/IP軟件的操作。
PIN G地址確定能否尋址物理網絡設備。
PING遠程IP地址驗證能否尋址網絡。
PING遠程主機名驗證主機上某個服務器的操作。
實現PING的過程主要是:首先向目的機器發送一個響應請求的ICMP報文,然后等待目的機器的應答,直到超時。如收到應答報文,貝以報告目的機器運行正常,程序退出。
(三)traceroute的實現
在IP頭的結構中,存在一個ip_ttl域,即生存時間(time to_live,TTL)。TTL參數用于測量數據報在網際存在多長時間。網絡中的每個路由器都檢查該域,如果TTL值為0,路由器就拋棄該數據報。路由器還必須對它處理的每個數據報的該域進行減I操作。在實際執行中,TTL域是一個反映跳段的值。所以,當數據報穿過一個IP節點(網關)時。TTL域中的值就減1。
traceroute的功能就是利用IP頭中的TTL域。開始時信源設置IP頭的TTL值為0,發送報文給信宿,第一個網關收到此報文后,發現TTL值為0,它丟棄此報文,并發送一個類型為超時的ICMP報文給信源。信源接收到此報文后對它進行解析,這樣就得到了路由中的第一個網關地址。然后信源發送TTL值為1的報文給信宿,第一個網關把它的TTL值減為0后轉發給第二個網關,第二個網關發現報文TTL值為0,丟棄此報文并向信源發送超時ICMP報文。這樣就得到了路由中和第二個網關地址。如此循環下去,直到報文正確到達信宿,這樣就得到了通往信宿的路由。
(四)網絡拓撲的發現算法
具體實現的步驟:
1、于給定的IP區間,利用PING依次檢測每個IP地址,將檢測到的IP地址記錄到IP地址表中。
2、對第一步中查到的每個IP地址進行traceroute操作,記錄到這些IP地址的路由。并把每條路由中的網關地址也加到IP表中。
3、對IP地址表中的每個IP地址,通過發送掩碼請求報文與接收掩碼應答報文,找到這些IP地址的子網掩碼。
4、根據子網掩碼,確定對應每個IP地址的子網地址,并確定各個子網的網絡類型。把查到的各個子網加入地址表中。
關鍵詞:拓撲發現;ICMP;SNMP
中圖分類號:TP393.02 文獻標識碼:A文章編號: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
一、系統功能模塊
從功能上看,網絡拓撲自動發現系統由4個模塊構成:一)主干網拓撲發現模塊主要功能為獲取主干網中路由器、子網之間的連接信息,將路由器地址放入路由隊列,將子網地址放入子網隊列,將連接信息放入連接隊列;二)子網拓撲發現模塊主要功能是獲取所有的子網內的所有主機地址、掩碼和子網地址;三)主干網拓撲生成模塊主要功能是在主干網拓撲并獲得了已裝有了所有路由器地址的路由隊列、裝有所有子網地址的子網隊列和裝有連接信息的連接隊列后,將信息進一步進行處理,使網絡設備及其連接關系以圖像的形式展示在屏幕上;四)子網拓撲生成模塊的功能是在獲得了已裝有了所有路由器地址的路由隊列、裝有所有連接信息的連接隊列和裝有所有主機地址的主機隊列后,將信息進一步處理,將指定子網內的主機及其連接關系以圖像的形式展示在屏幕上。
二、研究解決途徑
本算法采用異步的方式發送和接收ICMP回應應答包,提高了算法的性能和效率。圖4.19表示了SNMP和ICMP的層次位置關系。
圖1:網絡管理的層次結構
三、網絡拓撲自動發現算法
(一)子網與路由器發現算法描述
1.與網管所在子網直連的路由器檢測算法。確定主機地址。以子網地址+1為第一個主機地址,依次加1,增加N臺機器為止,這樣得到了N個主機地址IP。
檢查該IP是否在子網內。若IP&MASK=Net,在子網中該地址可能是子網中一臺主機的地址。
回應的ICMP包如果包含在輸入的IP中,該IP地址是一臺活動的主機。
對于已檢測出來的主機,用異步方式向每臺主機的161號端口發送SNMP報文,如果有回應則表示該主機運行了SNMP。
對于已經檢測出的SNMP主機,檢查其MIB值sysServices,這是一個整型變量,假設其值為m。設L是ISO七層模型中的某一層,如果該主機在第i層提供了服務,則Li被賦予相應的層數(Li取值范圍為1,2,3,4,7)
i=1為物理層,如中繼器;i=2為鏈路層;i=3為網絡層,如路由器;i=4為傳輸層,如主機;i=7為應用層,如應用程序。由于路由器提供鏈路層和網絡層,因此m=2(2-1)+2(3-1)=6。如果某臺SNMP主機的值為6,則它是要找的路由器。
2.子網和路由器的連接檢測算法。通過SNMP GetNext操作獲取路由表,表中有兩項極為重要的MIB變量ipRouteType和ipRouteDest,它們分別表示路由類型和所要到達的目的網絡地址,如果ipRouteType的值為3,則表示目的網絡與路由器直接相連。因而只需找出對應的ipRouteType的值為3的目的網絡地址即可。同時可利用ipAdEnt If Index作為索引,與In2terface組的If Index和If Type相結合來確定子網的網絡拓撲類型。
(二)主機發現算法描述
本算法中用到兩種報文:回應(echo)請求或回應應答;信宿機發回響應的回應應答。下圖所示的“標識符”和“序號”用于匹配請求與應答。
算法如下:
把子網內所有主機加入鏈表,設置一次發送和接收間的最大延遲、鏈表循環次數最大值和檢查接收棧的時間。遍歷鏈表,鏈表空則轉至a。若檢查接收棧的時間到,則轉至d。依次檢查節點;若此時時間與發包時間差值大于延遲便轉c,不然檢查下一節點。若循環次數超過最大值,從鏈表中刪除,加入不可到達主機鏈表。不然發送ICMP包,設置當前時間為發包時間,循環計數加1。檢查接收棧是否為空,若空就返回b。否則檢查回應包,從鏈表中刪除相應節點,加入可達主機鏈表。
四、算法的實現
(一)ICMP包的發送和接收。(1)構造ICMP包,填充ICMP包頭中某些域,如序號、標識等;(2)用SOCK-RAW類型創建套接字,調用函數為socket();(3)采取異步方式,用WSAAsyncSelect()函數注冊FD-READ事件;(4)分別用sentto()和recvfrom()發送和接收ICMP包,在接收到ICMP包時還要進行檢驗和匹配操作。
(二)用SNMP++技術實現SNMP編程。SNMP++把復雜的WinSNMP的APl函數封裝成一個個相關的C++類,從而大大簡化了SNMP網絡管理軟件開發的復雜性。它把SNMP編程中的核心部分都面向對象化封裝起來,因此程序員無需了解SNMP底層的機制,只需了解SNMP編程的流程即可快速開發出高效的SNMP程序。
參考文獻:
[1]胡谷雨,張巍等.簡單網絡管理協議教程[M].電子工業出版社,2000
LAN接口
列出支持的LAN接口類型:防火墻所能保護的網絡類型,如以太網、快速以太網、千兆以太網、ATM、令牌環及FDDI等。
支持的最大LAN接口數:指防火墻所支持的局域網絡接口數目,也是其能夠保護的不同內網數目。
服務器平臺:防火墻所運行的操作系統平臺(如Linux、UNIX、Win NT、專用安全操作系統等)。
協議支持
支持的非IP協議:除支持IP協議之外,又支持AppleTalk、DECnet、IPX及NETBEUI等協議。
建立VPN通道的協議: 構建VPN通道所使用的協議,如密鑰分配等,主要分為IPSec、PPTP、專用協議等。
可以在VPN中使用的協議:在VPN中使用的協議,一般是指TCP/IP協議。
加密支持
支持的VPN加密標準:VPN中支持的加密算法, 例如數據加密標準DES、3DES、RC4以及國內專用的加密算法。
除了VPN之外,加密的其他用途: 加密除用于保護傳輸數據以外,還應用于其他領域,如身份認證、報文完整性認證、密鑰分配等。
提供基于硬件的加密: 是否提供硬件加密方法,硬件加密可以提供更快的加密速度和更高的加密強度。
認證支持
支持的認證類型: 是指防火墻支持的身份認證協議,一般情況下具有一個或多個認證方案,如RADIUS、Kerberos、TACACS/TACA
CS+、 口令方式、數字證書等。防火墻能夠為本地或遠程用戶提供經過認證與授權的對網絡資源的訪問,防火墻管理員必須決定客戶以何種方式通過認證。
列出支持的認證標準和CA互操作性:廠商可以選擇自己的認證方案,但應符合相應的國際標準,該項指所支持的標準認證協議,以及實現的認證協議是否與其他CA產品兼容互通。
支持數字證書:是否支持數字證書。
訪問控制
通過防火墻的包內容設置:包過濾防火墻的過濾規則集由若干條規則組成,它應涵蓋對所有出入防火墻的數據包的處理方法,對于沒有明確定義的數據包,應該有一個缺省處理方法;過濾規則應易于理解,易于編輯修改;同時應具備一致性檢測機制,防止沖突。IP包過濾的依據主要是根據IP包頭部信息如源地址和目的地址進行過濾,如果IP頭中的協議字段表明封裝協議為ICMP、TCP或UDP,那么再根據ICMP頭信息(類型和代碼值)、TCP頭信息(源端口和目的端口)或UDP頭信息(源端口和目的端口)執行過濾,其他的還有MAC地址過濾。應用層協議過濾要求主要包括FTP過濾、基于RPC的應用服務過濾、基于UDP的應用服務過濾要求以及動態包過濾技術等。
在應用層提供支持:指防火墻是否支持應用層,如HTTP、FTP、TELNET、SNMP等。服務在確認客戶端連接請求有效后接管連接,代為向服務器發出連接請求,服務器應根據服務器的應答,決定如何響應客戶端請求,服務進程應當連接兩個連接(客戶端與服務進程間的連接、服務進程與服務器端的連接)。為確認連接的唯一性與時效性,進程應當維護連接表或相關數據庫(最小字段集合),為提供認證和授權,進程應當維護一個擴展字段集合。
在傳輸層提供支持:指防火墻是否支持傳輸層服務。
允許FTP命令防止某些類型文件通過防火墻:指是否支持FTP文件類型過濾。
用戶操作的類型:應用層高級功能,如HTTP、POP3 。
支持網絡地址轉換(NAT):NAT指將一個IP地址域映射到另一個IP地址域,從而為終端主機提供透明路由的方法。NAT常用于私有地址域與公有地址域的轉換以解決IP地址匱乏問題。在防火墻上實現NAT后,可以隱藏受保護網絡的內部結構,在一定程度上提高了網絡的安全性。
支持硬件口令、智能卡: 是否支持硬件口令、智能卡等,這是一種比較安全的身份認證技術。
防御功能
支持病毒掃描: 是否支持防病毒功能,如掃描電子郵件附件中的DOC和ZIP文件,FTP中的下載或上載文件內容,以發現其中包含的危險信息。
提供內容過濾: 是否支持內容過濾,信息內容過濾指防火墻在HTTP、FTP、SMTP等協議層,根據過濾條件,對信息流進行控制,防火墻控制的結果是:允許通過、修改后允許通過、禁止通過、記錄日志、報警等。 過濾內容主要指URL、HTTP攜帶的信息:Java Applet、 JavaScript、ActiveX和電子郵件中的Subject、To、From域等。
能防御的DoS攻擊類型:拒絕服務攻擊(DoS)就是攻擊者過多地占用共享資源,導致服務器超載或系統資源耗盡,而使其他用戶無法享有服務或沒有資源可用。防火墻通過控制、檢測與報警等機制,可在一定程度上防止或減輕DoS黑客攻擊。
阻止ActiveX、Java、Cookies、JavaScript侵入:屬于HTTP內容過濾,防火墻應該能夠從HTTP頁面剝離Java Applet、ActiveX等小程序,及從Script、PHP和ASP等代碼檢測出危險代碼或病毒,并向瀏覽器用戶報警。同時,能夠過濾用戶上載的CGI、ASP等程序,當發現危險代碼時,向服務器報警。
安全特性
支持轉發和跟蹤ICMP協議(ICMP ):是否支持ICMP,ICMP為網間控制報文協議。
提供入侵實時警告:提供實時入侵告警功能,當發生危險事件時,是否能夠及時報警,報警的方式可能通過郵件、呼機、手機等。
提供實時入侵防范:提供實時入侵響應功能,當發生入侵事件時,防火墻能夠動態響應,調整安全策略,阻擋惡意報文。
識別/記錄/防止企圖進行IP地址欺騙:IP地址欺騙指使用偽裝的IP地址作為IP包的源地址對受保護網絡進行攻擊,防火墻應該能夠禁止來自外部網絡而源地址是內部IP地址的數據包通過。
管理功能
通過集成策略集中管理多個防火墻:是否支持集中管理,防火墻管理是指對防火墻具有管理權限的管理員行為和防火墻運行狀態的管理,管理員的行為主要包括:通過防火墻的身份鑒別,編寫防火墻的安全規則,配置防火墻的安全參數,查看防火墻的日志等。防火墻的管理一般分為本地管理、遠程管理和集中管理等。
提供基于時間的訪問控制:是否提供基于時間的訪問控制。
支持SNMP監視和配置:SNMP是簡單網絡管理協議的縮寫。
本地管理:是指管理員通過防火墻的Console口或防火墻提供的鍵盤和顯示器對防火墻進行配置管理。
遠程管理:是指管理員通過以太網或防火墻提供的廣域網接口對防火墻進行管理,管理的通信協議可以基于FTP、TELNET、HTTP等。
支持帶寬管理:防火墻能夠根據當前的流量動態調整某些客戶端占用的帶寬。
負載均衡特性:負載均衡可以看成動態的端口映射,它將一個外部地址的某一TCP或UDP端口映射到一組內部地址的某一端口,負載均衡主要用于將某項服務(如HTTP)分攤到一組內部服務器上以平衡負載。
失敗恢復特性:指支持容錯技術,如雙機熱備份、故障恢復,雙電源備份等。
記錄和報表功能
防火墻處理完整日志的方法:防火墻規定了對于符合條件的報日志,應該提供日志信息管理和存儲方法。
提供自動日志掃描:指防火墻是否具有日志的自動分析和掃描功能,這可以獲得更詳細的統計結果,達到事后分析、亡羊補牢的目的。
提供自動報表、日志報告書寫器:防火墻實現的一種輸出方式,提供自動報表和日志報告功能。
警告通知機制:防火墻應提供告警機制,在檢測到入侵網絡以及設備運轉異常情況時,通過告警來通知管理員采取必要的措施,包括E-mail、呼機、手機等。
提供簡要報表(按照用戶ID或IP 地址):防火墻實現的一種輸出方式,按要求提供報表分類打印。
關鍵詞:包過濾;訪問控制列表;防火墻
中圖分類號:TN915.08 文獻標識碼:A 文章編號:1007-9599 (2012) 19-0000-02
隨著網絡的迅速發展,各種各樣的網絡軟件也隨之出現,人們的生活和學習對網絡的依賴也越來越多,但網絡安全問題也接踵而來。防火墻是一種非常有效的網絡安全模型,通過它可以隔離風險區域和安全區域的連接,同時不會妨礙人們對風險區域的訪問,因此防火墻已經成為世界上用的最多的網絡安全產品之一。包過濾技術是防火墻最基本的實現技術,它具有通用、廉價、有效等特點。在不增加軟、硬件投資的情況下,利用路由器的訪問控制列表來設置包過濾放火墻,可以實現防火墻的大部分功能,是一種增強網絡安全的行之有效的方法。
1 包過濾技術基本原理
在網絡中,所有的信息傳輸都是以包的方式來實現的。包過濾是指對通過網絡的數據包進行 過濾操作,只有滿足條件的數據包才能通過網絡,包過濾設備可以是路由器、網橋或計算機 ,通常是包過濾路由器。
包過濾防火墻一般作用在網絡層(IP層),故也稱網絡層防火墻(Network Lev Firewall)或IP過濾器(IP filters)。數據包過濾(Packet Filtering)是指在網絡層對數據包進行分析、選擇。通過檢查數據流中每一個數據包的源IP地址、目的IP地址、源端口號、目的端口號、協議類型等因素或它們的組合來確定是否允許該數據包通過。防火墻檢查每一條規則直至發現包中的信息與某規則相符。如果沒有一條規則能符合,防火墻就會使用默認規則。在包過濾防火墻中,廣泛使用ACL(Access Control List,訪問控制列表)來實現數據識別,流經包過濾防火墻的數據與ACL定義的規則進行匹配,并決定是轉發還是丟棄這些數據包。
2 ACL訪問控制列表
訪問控制列表是為了對路由器或者防火墻處理的流量進行過濾而建立的規則,它在改善網絡性能和加強網絡安全等方面已經發揮出越來越重要的作用。以Cisco路由器為例,access-list(訪問列表)最基本的有兩種,分別是標準訪問列表和擴展訪問列表,二者的區別主要是前者是基于目標地址的數據包過濾,而后者是基于目標地址、源地址和網絡協議及其端口的數據包過濾。
2.1 標準訪問控制列表
標準訪問控制列表檢查路由的數據包的源地址,從而允許或拒絕基于網絡、子網或主機的IP地址的所有通信流量通過路由器的出口。當我們要想阻止來自某一網絡的所有通信流量,或者充許來自某一特定網絡的所有通信流量,或者想要拒絕某一協議簇的所有通信流量時,可以使用標準訪問控制列表來實現這一目標。
標準訪問控制列表是最簡單的ACL。它的具體格式如下:
access-list ACL號 permit|deny host ip地址
例如:access-list 10 deny host 192.168.1.1這句命令是將所有來自192.168.1.1地址的數據包丟棄。access-list 10 deny 192.168.1.0 0.0.0.255是對192.168.1.0/24這個網段進行過濾。
2.2 擴展訪問控制列表
擴展訪問控制列表既檢查數據包的源地址,也檢查數據包的目的地址,還檢查數據包的特定協議類型、端口號等。擴展訪問控制列表更具有靈活性和可擴充性,即可以對同一地址允許使用某些協議通信流量通過,也可以拒絕使用其他協議的流量通過。
擴展訪問列表的具體格式如下:
access-list ACL號 permit|deny protocol source 源地址 destination 目的地址 operator operan established log
例如:access-list 101 deny tcp any host 192.168.1.1 eq www這句命令是將所有主機訪問192.168.1.1這個地址網頁服務(WWW)TCP連接的數據包丟棄。
3 訪問控制列表的應用
訪問控制列表的應用領域很廣,包括流量控制、病毒過濾、設備管理和時間控制等方面,下面是應用ACL保護企業內部網絡安全的兩個案例。
3.1 禁止外部ICMP攻擊
ICMP協議是傳輸層的重要協議,用于在IP主機、路由器之間傳遞控制消息。控制消息是指網絡通不通、主機是否可達、路由是否可用等網絡本身的消息。在企業網絡中,我們希望保證正常的網絡通信的同時屏蔽惡意的ICMP消息,可以通過設置如下的訪問控制列表來實現:
(1)access-list 100 permit icmp any 路由器E0接口地址 echo。允許外網主機可以PING通我方路由器廣域口地址,便于外網進行網絡測試。(2)access-list 100 deny icmp any any echo。禁止外網主機發起的任何ICMP ECHO 報文到達我方網絡主機,杜絕了外網主機發起的“端口掃描器Nmap ping操作”。(3)access-list 100 permit ip any any。允許所有的IP協議數據包通過,是保證不影響其他各種應用。(4)access-group 100 in。端口應用上設置在入方向進行應用,保證了我方網絡主機可PING通外網任意主機,便于我方進行網絡連通性測試。
3.2 用訪問控制列表控制訪問時間
為了保證員工的上班質量,許多企業需要對內部機器訪問FTP服務器或者WWW服務器進行限制和管理,基于時間的ACL就比較適合這種對指定時間段或者指定服務的管理。例如在圖1所示的網絡環境中,只容許172.16.3.0網段的用戶在周末訪問172.16.4.13上的FTP資源,工作時間不能下載該FTP資源。可以利用訪問列表做以下配置。
(1)time-range softer。定義時間段名稱為workday。
(2)periodic weekend 00:00 to 23:59。定義具體時間范圍,為每周周末(6,日)的0點到23點59分。可以使用periodic weekdays定義具體的工作日。
(3)access-list 101 deny tcp any 172.16.4.13 0.0.0.0 eq ftp time-range softer。設置ACL,禁止在時間段softer范圍內訪問172.16.4.13的FTP服務。
(4)access-list 101 permit ip any any。設置ACL,容許其他時間段和其他條件下的正常訪問。
4 ACL技術局限性分析
由于ACL是使用包過濾技術來實現的,過濾的依據又僅僅只是第三層和第四層包頭中的部分信息,這種技術具有一些固有的局限性,如無法識別到具體的人,無法識別到應用內部的權限級別等。因此,要達到端到端的權限控制目的,需要和系統級及應用級的訪問權限控制結合使用。但將ACL應用到路由器上可以在不添加任何軟硬件的條件下,起到保護內部網絡安全,控制網絡流量以及靈活管理內部網絡的作用,所以這種方法還是非常值得應用和推廣的。
參考文獻:
[1]Cisco網絡技術學院教程.北京人民郵電出版社,2004,7.
[2]諸燁.用ACL實現系統的安全訪問控制.計算機應用與軟件,2005,3.
[3]王華麗.訪問控制列表在網絡安全中的應用.電子科技,2007
[4]王芳.路由器訪問控制列表及其實現技術研究.計算機工程與設計.2007
關鍵詞:網絡管理 網間控制報文協議(ICMP) WBM
網絡管理的目的就是確保一定范圍內的網絡及其網絡設備能夠穩定、可靠、高效地運行,使所有的網絡資源處于良好的運行狀態,達到用戶預期的要求。過去有一些簡單的工具用來幫助網管人員管理網絡資源,但隨著網絡規模的擴大和復雜度的增加,對強大易用的管理工具的需求也日益顯得迫切,管理人員需要依賴強大的工具完成各種各樣的網絡管理任務,而網絡管理系統就是能夠實現上述目的系統。
1 WBM 技術介紹
隨著應用Intranet的企業的增多,同時Internet技術逐漸向Intranet的遷移,一些主要的網絡廠商正試圖以一種新的形式去應用M I S 。因此就促使了W e b ( W e b - B a s e dManagement)網管技術的產生[2]。它作為一種全新的網絡管理模式—基于Web的網絡管理模式,從出現伊始就表現出強大的生命力,以其特有的靈活性、易操作性等特點贏得了許多技術專家和用戶的青睞,被譽為是“將改變用戶網絡管理方式的革命性網絡管理解決方案”。
WBM融合了Web功能與網管技術,從而為網管人員提供了比傳統工具更強有力的能力。WBM可以允許網絡管理人員使用任何一種Web瀏覽器,在網絡任何節點上方便迅速地配置、控制以及存取網絡和它的各個部分。因此,他們不再只拘泥于網管工作站上了,并且由此能夠解決很多由于多平臺結構產生的互操作性問題。WBM提供比傳統的命令驅動的遠程登錄屏幕更直接、更易用的圖形界面,瀏覽器操作和W e b頁面對W W W用戶來講是非常熟悉的,所以WBM的結果必然是既降低了MIS全體培訓的費用又促進了更多的用戶去利用網絡運行狀態信息。所以說,WBM是網絡管理方案的一次革命。
2 基于WBM 技術的網管系統設計
2.1 系統的設計目標
在本系統設計階段,就定下以開發基于園區網、Web模式的具有自主版權的中文網絡管理系統軟件為目標,采用先進的WBM技術和高效的算法,力求在性能上可以達到國外同類產品的水平。
本網管系統提供基于WEB的整套網管解決方案。它針對分布式IP網絡進行有效資源管理,使用戶可以從任何地方通過WEB瀏覽器對網絡和設備,以及相關系統和服務實施應變式管理和控制,從而保證網絡上的資源處于最佳運行狀態,并保持網絡的可用性和可靠性。
2.2 系統的體系結構
在系統設計的時候,以國外同類的先進產品作為參照物,同時考慮到技術發展的趨勢,在當前的技術條件下進行設計。我們采用三層結構的設計,融合了先進的WBM技術,使系統能夠提供給管理員靈活簡便的管理途徑。
三層結構的特點[2]:1)完成管理任務的軟件作為中間層以后臺進程方式實現,實施網絡設備的輪詢和故障信息的收集;2)管理中間件駐留在網絡設備和瀏覽器之間,用戶僅需通過管理中間層的主頁存取被管設備;3)管理中間件中繼轉發管理信息并進行S N M P 和H T T P之間的協議轉換三層結構無需對設備作任何改變。
3 網絡拓撲發現算法的設計
為了實施對網絡的管理,網管系統必須有一個直觀的、友好的用戶界面來幫助管理員。其中最基本的一個幫助就是把網絡設備的拓撲關系以圖形的方式展現在用戶面前,即拓撲發現。目前廣泛采用的拓撲發現算法是基于SNMP的拓撲發現算法。基于SNMP的拓撲算法在一定程度上是非常有效的,拓撲的速度也非常快。但它存在一個缺陷[3]。那就是,在一個特定的域中,所有的子網的信息都依賴于設備具有SNMP的特性,如果系統不支持SNMP,則這種方法就無能為力了。還有對網絡管理的不重視,或者考慮到安全方面的原因,人們往往把網絡設備的SNMP功能關閉,這樣就難于取得設備的M I B值,就出現了拓撲的不完整性,嚴重影響了網絡管理系統的功能。針對這一的問題,下面討論本系統對上述算法的改進—基于ICMP協議的拓撲發現。
3.1 PING和路由建立
PING的主要操作是發送報文,并簡單地等待回答。PING之所以如此命名,是因為它是一個簡單的回顯協議,使用ICMP響應請求與響應應答報文。PING主要由系統程序員用于診斷和調試實現PING的過程主要是:首先向目的機器發送一個響應請求的ICMP報文,然后等待目的機器的應答,直到超時。如收到應答報文,則報告目的機器運行正常,程序退出。
路由建立的功能就是利用I P 頭中的TTL域。開始時信源設置IP頭的TTL值為0,發送報文給信宿,第一個網關收到此報文后,發現TTL值為0,它丟棄此報文,并發送一個類型為超時的ICMP報文給信源。信源接收到此報文后對它進行解析,這樣就得到了路由中的第一個網關地址。然后信源發送TTL值為1的報文給信宿,第一個網關把它的TTL值減為0后轉發給第二個網關,第二個網關發現報文TTL值為0,丟棄此報文并向信源發送超時ICMP報文。這樣就得到了路由中和第二個網關地址。如此循環下去,直到報文正確到達信宿,這樣就得到了通往信宿的路由。
3.2 網絡拓撲的發現算法具體實現的步驟:
(1)于給定的IP區間,利用PING依次檢測每個IP地址,將檢測到的IP地址記錄到IP地址表中。
(2)對第一步中查到的每個IP地址進行traceroute操作,記錄到這些IP地址的路由。并把每條路由中的網關地址也加到IP表中。(3)對IP地址表中的每個IP地址,通過發送掩碼請求報文與接收掩碼應答報文,找到這些IP地址的子網掩碼。
(4)根據子網掩碼,確定對應每個IP地址的子網地址,并確定各個子網的網絡類型。把查到的各個子網加入地址表中。
(5)試圖得到與IP地址表中每個IP地址對應的域名(Domain Name),如具有相同域名,則說明同一個網絡設備具有多個IP地址,即具有多個網絡接口。
(6)根據第二步中的路由與第四步中得到的子網,產生連接情況表。
4 結語
本文提出的ICMP協議的拓撲發現方法能夠較好的發現網絡拓撲,但是它需要占用大量的帶寬資源。本系統進行設計時,主要考慮的是對園區網絡的網絡管理,所有的被管理設備和網管系統處于同一段網絡上,也就是說,系統可以直接到達被管理的網絡,所以對遠程的局域網就無能為力了。在做下一步工作的時候,可以添加系統對遠程局域網絡的管理功能。
參考文獻
[1] 晏蒲柳.大規模智能網絡管理模型方法[J].計算機應用研究.2005,03.
[2] 周楊,家海,任憲坤,王沛瑜.網絡管理原理與實現技術[M].北京:清華大學出版社.2000.
關鍵詞:IP網絡;可用帶寬;背景流量;瓶頸帶寬
中圖分類號:TP393.01 文獻標識碼:A文章編號: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對信息化的普及和發展起到了巨大的推動作用,但Internet并沒有一個正規統一的商業模式,網絡也缺乏有效的管理和運營手段,存在服務質量、信息安全和網絡管理等諸多問題。由于我國互聯網現階段的情況,馬上改善基礎設施并不現實,要解決以上這些難題,非常重要的一點就是能夠獲得對網絡狀態準確、詳盡的了解,在現有網絡條件的基礎上,使得有效帶寬得到充分的利用。
綜上所述,在IP網絡中采用網絡瓶頸帶寬測量技術顯得尤為重要,可以實現[1][2]:
1.網絡實時監控:在進行網絡測量的同時實時獲取網絡當前的運行狀態,了解網絡中的各種性能指標;在網絡發生異常或出現故障之前給出分析和預測,并向網絡管理員發出警報,與入侵檢測系統IDS、IPS更好的協同工作,避免網絡擁塞的出現和網絡蠕蟲病毒的侵襲。
2.網絡的科學規劃、優化和合理設計:通過對網絡帶寬進行測量所得到的數據進行分析,獲取網絡流量分布、數據報文分布、協議分布等特征,對獲取的數據進行收集處理,為網絡的科學規劃、設計、路由策略的優化等方面提供依據。
3.提供網絡增值服務:通過對業務流占用網絡帶寬的分析、統計,可以獲得并分析網絡特征和用戶使用的偏好,進而開發和規劃新的網絡應用和業務平臺,開發增值服務,從而進一步滿足用戶的需求。
4.適用不同情況的資費標準:通過對用戶上網時間、流量、網絡業務流等參數的數據分析,可以根據上網時間段、使用帶寬的容量、服務質量等方面實行更加靈活多樣的資費標準。
二、VPS測量算法
VPS變包測量技術[3][4][5]最早由Steve Bellovin與Van Jacobson提出,用于測量鏈路的瓶頸帶寬。VPS的基本原理是在發送方發送大量的探測數據包,經過鏈路中的路由節點到達接收方。探測包經過路由節點時,記錄路由器收到這些數據包的響應時間,由此計算出帶寬容量。
(一)算法理論分析。VPS測量算法在發送大小一定的若干個數據包給傳輸路徑上的路由節點時,假設發送的數據包中至少有一個數據包和產生的ICMP返回信息都沒有排隊時延,則實際測量的RTT只包含傳輸時延和傳播時延兩部分,那么對于給定大小為L的包,總共傳輸i跳,其最小的RTT 就可以由公式1計算得出:
(式1)
其中, 為第j跳的帶寬容量, 為數據包在鏈路j上的傳輸時延, 為到達第i跳前所產生的延遲, 表示為單位長度的數據包在通過鏈路j時所產生的時延,由于鏈路容量是物理容量,即為鏈路的吞吐量。通過發送不同大小的數據包,可通過數學原理估算出 的值。對于每一跳i,重復測量最小的RTT值,據此可由公式2估計出每跳的帶寬容量。
(式2)
VPS通過以上過程可以計算出每跳的鏈路帶寬容量,通過對數據收集比對,其中各段鏈路中容量最小的鏈路帶寬即為整條路徑的路徑帶寬容量,即如公式3所示:
(式3)
(二)影響測量精確度的原因分析。通過上面的理論分析,可以發現,影響VPS算法測量的幾個主要因素如下:
1.探測包大小、發送頻率。探測包長度如果過小,在其還沒有到達接收方就可能被路由節點丟棄或被排隊,影響測量精度;而探測包長度如果過大,則會增加探測包本身通過鏈路時所產生的傳輸時延,同樣也會對測量精度產生影響。
2.背景流量。當網絡中存在背景流量時,則探測數據包和其他業務流共享帶寬。當網絡出現擁塞或有高優先級的業務流存在時,探測包通過路由節點時可能會被排隊,產生排隊時延,由此影響RTT值的準確度,進而影響最終的測量精度。
3.中間設備。當網絡路徑中存在存儲轉發的二層設備時,這些二層設備會對數據包進行存儲轉發,由此產生等待時延,可并不會發送ICMP協議的回應報文。同樣如果網絡中的中間設備對ICMP協議進行過濾或限速處理的話,都會影響最終的測量精度。
4.路徑的對稱性。VPS算法主要的測量參數是路徑往返時間RTT,若探測路徑與返回路徑不一致,則所得的RTT就不是實際的路徑返回時間,由此產生較大的誤差。
(三)算法優缺點分析。VPS算法屬于單端測量,即在測量時只需要在發送端部署軟件即可。基于上述的分析可以看出:算法的實現依賴于中間節點對ICMP協議的支持,當中間節點對ICMP協議數據包實行丟棄或限速策略時,算法測量精度將大大下降;在測量時需要發送大量的探測包,占用網絡帶寬;算法是逐段測量鏈路的帶寬容量,最后對數據收集進行比對得出瓶頸帶寬,測量時間較長;后一個鏈路的測量結果要依賴于前面鏈路的測量結果,容易產生誤差累積。
三、PPTD包對/包隊列測量算法
包對技術最初是由Jacobson、Keshav和Bolot小組共同完成的。包對法是非常經典的一種測量方法,可以說,目前絕大多數的帶寬測量都是對包對法的改進。
(一)算法理論分析。VPS算法需要發送探測報文等待接收方回應后通過計算RTT時間來測量帶寬,而PPTD算法是利用數據包在傳輸過程中所形成的時間間隔來測量帶寬。發送方發送若干對數據包對給接收方,每對數據包都由兩個長度相等的背靠背數據包組成。在特定的鏈路中,兩個數據包之間的距離指兩個包在鏈路上傳輸時,最后一個比特位之間的距離。
圖1:包對測量方法原理圖
圖1描述了一個數據包對中的兩個數據包在通過鏈路i時前后的時間間隔變化情況。設數據包對的長度為L,經過的路由跳數為h,所經過的第i跳鏈路的帶寬為 ,則包對經過 所需的時間間隔 。設在進入鏈路前兩數據包之間的時間間隔為 ,通過鏈路后的時間間隔為 ,可由公式4計算得出。
(式4)
數據包對在通過鏈路i時,會產生傳輸時延 ,當 的值小于 時,說明兩個數據包在通過鏈路i時并沒有產生排隊時延,由此當數據包離開鏈路i時, 。而當 的值大于 ,說明數據包在通過鏈路i時,產生了排隊時延,由此造成包對之間的距離增大, 。
當數據包對經過最后一條鏈路到達接收端時總的時間間隔可由公式5計算得出。
(式5)
其中C就是這條路徑端到端的帶寬,也就是我們平常說的瓶頸帶寬。那么我們就可以通過接收端測得的 的值估算出 。
包隊列技術是包對技術的改進和擴展,將一對背靠背的數據包對擴展到多個背靠背的數據包,形成一個隊列,測量的基本思想是一致的。
(二)影響測量精確度的原因分析。通過上面的理論分析,可以發現,影響PPTD算法測量的幾個主要因素如下:
1.背景流量。當網絡中存在背景流量時,包對之間的時間間隔就不在僅僅的受傳輸時延的影響,因為背景流量的存在會造成數據包在路由設備上產生排隊時延,由此無法準確的估算出 值的大小。
2.網絡擁塞造成探測包丟失。PPTD算法的實現是以估算背靠背數據包之間的時間間隔為基礎的,如果數據包對在鏈路上傳輸時,任意一個數據包對或者全部發生丟包現象,則PPTD就無法在進行帶寬測量。
3.數據包對的數量。通過采用包隊列的測量方法,發送多組數據包對,利用統計學原理來過濾掉誤差較大的測量樣本,可以減小背景流量對測量結果造成的影響,但這也不能完全解決問題。
(三)算法優缺點分析。PPTD算法屬于雙端測量,在測量時發送方和接收方都需要部署軟件,同時還要保證時間的同步;算法只需要了解路徑的單向延遲,測量結果與路徑的對稱性無關;PPTD不依賴于ICMP協議,可以在應用層實現;測量時發送的背靠背數據包相對較小,占用的網絡帶寬也相對少一些;無需了解每段鏈路的帶寬容量,測量時間短;測量時每次采用的結果之間相互獨立,互不干擾,不存在誤差積累的問題。
四、新模型的提出
在廣域網的測量工作中,把VPS算法和PPTD算法結合起來,取長補短,設計一種新型的測量模型。這種模型采用TCP協議作為探測數據包的封裝,這樣就可以有效地避免了VPS算法過于依賴ICMP協議而無法通過廣域網中有些路由器的問題,利用TCP協議三次握手的機制來收集返回信息,用以進行帶寬測量,這樣就可以解決PPTD必須采用雙端配置的問題。
但在實際的廣域網環境中網絡情況比較復雜,采用TCP協議也可能會出現以下問題:
1.TCP協議存在貪婪流的問題。改進方法:用慢啟動算法啟動并使傳輸速度達到極限值,然后降低增加速度,改為線性增加傳輸速度,當探測到網絡中出現擁塞即發送數據包超時,將極限值減半,并且重新使用慢啟動算法。
2.抖動問題也是使用TCP協議不可避免要碰到的問題。改進辦法:采用大小一致的數據包,并且設定每個數據包的大小均為MTU最大傳輸單元所要求的1500字節。這樣可以使每個測量數據包的傳輸都能平衡、高效,盡可能減少傳輸過程中的排隊時間。
3.進行TCP傳輸時,窗口大小的確定。改進辦法:數據的傳輸速率主要由TCP協議的滑動窗口大小決定,設定接收窗口保持最大值狀態,盡可能避免在接收方出現因為窗口過小而造成的丟包現象。
五、總結與展望
雖然本文對主流的網絡帶寬測量算法進行了研究,并且對其在各種不同網絡環境下的工作情況進行了實驗分析,但從理論分析和實驗數據的結果上可以看出目前現有的技術還都存在較大的缺陷。目前測量的數據相對準確的都是進行瓶頸帶寬測量,而更為重要的參數可用帶寬容量一直都沒有得到較好的解決。因此,關于網絡帶寬測量還有很多工作要做,對兩種典型的算法進一步提煉,吸取其中值得借鑒的思想,進一步改進和完善文中最后提出的新的測量模型。
參考文獻:
[1]劉湘輝.IP網絡帶寬測量的模型與算法的研究[D].[博士學位論文].長沙:國防科學技術大學,2005
[2]楊帆.可用帶寬主動測量算法的研究[D].[碩士學位論文].北京:北京郵電大學,2008
[3]M.Mathis,M.Allman.A Framework for Defining Empirical Bulk Transfer Capacity Metrics.RFC 3148,2001,162-198
[4]魏蔚,董亞波,魯東明,金光.低速率TCP拒絕服務攻擊的檢測響應機制[J].浙江大學學報(工學版),2008,36(5):757-762