專利名稱:基于混合探測技術的網絡拓撲發現和自動布局方法及系統的制作方法
基于混合探測技術的網絡拓撲發現和自動布局方法及系統技術領域
本發明屬于互聯網中的網絡管理和控制領域,具體涉及一種基于混合探測技術的網絡拓撲發現和自動化布局方法。
背景技術:
計算機網絡作為信息社會的基礎設施已經滲透到社會生產生活的方方面面,對人類生活方式和工作方式產生了巨大的影響。但是與此同時,網絡規模的擴大使得網絡拓撲越來越復雜;為了更好地管理網絡,首先很有必要快速的自動發現網絡的拓撲。而且由于網絡節點過多,所以如何直觀簡單的布局網絡拓撲,也是網絡管理中一個必須要解決的問題。
簡單網絡管理協議(SNMP)是一個管理者和代理之間通信的標準,提供了一種訪問由任何廠商生產的任何網絡設備,并獲得一系列標準值的一致性方式。它是專門設計用于在IP網絡管理網絡節點的一種應用層協議。SNMP提供了一種從網絡上的設備中收集網絡管理信息的方法,本發明中主要用到其中的管理信息庫(MIB) ;MIB是由網絡管理協議使用并維護的網絡管理信息數據庫,它定義了一系列對象組,這些信息組包括了網絡拓撲發現的重要信息。由于SNMP具有簡單、靈活、擴展性好、開銷小、易于實現等優點,很快得以普及,并已成為事實上的工業標準。目前流行的絕大多數的拓撲發現方法都是基于SNMP的。
Internet控制報文協議(ICMP)是一個用于在IP主機、路由器之間傳遞控制消息的協議。控制消息是指網絡通不通、主機是否可達、路由是否可用等網絡本身的消息。Ping 是ICMP中用于探測網絡中主機連通性的重要工具,幾乎每種拓撲發現算法都不同程度地使用它。
地址解析協議(ARP)是用于將計算機的網絡地址轉化為物理地址的協議,一般網絡設備都支持它,即網絡設備上維護著一張ARP表,保存了與它直接相連的活動主機,因此也被廣泛應用于拓撲發現算法中。
發現被管理網絡拓撲需要分兩步進行第一步是邏輯網絡拓撲發現,即發現該網絡的網絡設備間的連接關系,以及網絡設備與子網的連接關系;第二步是發現每個子網中的活動主機。上面所述的3個協議中的SNMP協議是用來實現第一步的;而ICMP協議和ARP 協議是用來發現子網中的活動主機的。ARP協議雖然高效快速,但是實時性卻不好,不能實時的刪除已經關閉的主機,也不能及時的加入新加入子網的主機。相反,ICMP協議卻可以探測所有正在活動的主機;為了提高發現效率,給被管理網絡中的每個邏輯子網安裝一個采集機。
目前網絡拓撲布局算法主要有以下幾種樹形布局算法、環形布局算法、啟發式布局算法、隨機建模布局算法、基于斥力張力模型的布局算法以及基于抽象點的布局算法。但是從算法的效率和布局的效果等方面因素來看,以上算法都不能很好的達到效果。因此,一種層次分明、直觀顯示、算法簡單高效的廣度優先環狀樹布局算法得到了實現。發明內容
為了克服上述現有技術的不足,本發明的目的在于提供了一種基于混合探測技術的網絡拓撲發現和自動化布局方法,可以快速高效的自動發現被管理網絡的拓撲,并很好的將拓撲布局顯示給網絡管理人員。為了實現上述目的,本發明采用的技術方案是一種基于混合探測技術的網絡拓撲發現和自動化布局系統,包括邏輯拓撲采集機M,為被管理網絡中的一臺服務器,通過獲取與其直連的路由設備的SNMP協議提供的信息,發現整個被管理網絡的邏輯拓撲,并將發現的路由設備間的連接以及路由設備與子網的連接信息存儲到數據庫服務器DB中;分布式信息采集機Cl,C2,…,Cn,通過ICMP中的ping工具來發現子網中的活動主機,并將子網中的活動主機與路由設備間的連接信息存儲到數據庫服務器DB中,η為信息采集機的數量且η大于1;數據庫服務器DB,用于存儲被管理網絡的拓撲數據,同時也是組成基于SNMP和 ICMP的拓撲自動發現和布局系統中各構件之間的接口 ;Web服務器WS,數據庫服務器DB交互,獲取數據庫服務器DB中的拓撲,執行拓撲布局算法,將被管理網絡的拓撲布局;瀏覽器BS,與用戶交互,向作為網絡管理人員的用戶提供人機交互界面,將Web服務器WS的布局結果提供給網絡管理人員。基于以上系統,本發明還提供了一種基于混合探測技術的網絡拓撲發現和自動化布局方法,包括以下步驟步驟1,利用邏輯拓撲采集機M通過SNMP協議獲取被管理網絡的路由設備間的連接以及路由設備與子網的連接關系,并將所有的連接關系存儲到數據庫服務器DB中,所述邏輯拓撲采集機M為被管理網絡中的一臺服務器;步驟2,利用η個分布式信息采集機C1,C2,…,Cn,根據步驟一獲取的路由設備的子網信息,獲取所有子網中的所有活動主機信息,并將所有活動主機與路由設備間的連接信息存儲到數據庫服務器DB中,其中η大于1 ;步驟3,利用Web服務器WS獲取數據庫服務器DB中的拓撲,執行拓撲布局算法,將被管理網絡的拓撲布局后通過瀏覽器BS提供給網絡管理人員。所述步驟1中,連接關系的獲取通過以下步驟完成步驟1. 1,先定義如下幾個數據結構用于表示路由設備的數據結構Router、用于表示子網的Subnet、用于存儲網絡中所有路由設備信息的AllRouters隊列、用于存儲未訪問的路由設備隊列AccessRouters和用于存儲所有子網的Subnets隊列,并初始化所有的隊列為空;步驟1.2,所述邏輯拓撲采集機M通過執行ipconfig命令獲取與其直接相連路由設備的ip,通過配置文件獲取被管理網絡中所有的路由設備的community集,其中 community是用來訪問路由設備SNMP協議提供的信息的密碼,將該路由設備的信息加入 AllRouters隊列和AccessRouters隊列,并存入數據庫服務器DB ;步驟1. 3,將與邏輯拓撲采集機M直連的路由設備從AccessRouters隊列中出隊, 并用ip和community獲取該路由設備的MIB中的信息,可以得到與該路由設備相連的所有的其他路由設備或者子網的信息,對應地加入AllRouters、AccessRouters和Subnets隊列,并將這些信息以及路由設備間的連接信息和路由設備與子網的連接信息存入數據庫服務器DB中;
步驟1.4,給AccessRouters中所有的路由設備執行步驟1.3,如此往復直至 AccessRouters中為空,即可以發現被管理網絡中的所有路由設備之間的連接關系以及路由設備與子網的連接關系。
所述步驟2中,活動主機信息的獲取通過以下步驟完成
步驟2. 1,定義用于存儲網絡中所有路由設備信息的AllRouters隊列,每個分布式信息采集機Ci,從AllRouters中取出它所負責采集的所有路由設備的所有子網信息,其中 i e (1,2,3,……,η);
步驟2. 2,各個分布式信息采集機Ci用ping工具來發現所有子網中的活動主機, 并將活動主機與路由設備的連接信息存入數據庫服務器DB中,其中i e (1,2,3,……,η);
步驟2. 3,重復上述步驟,直至所有的分布式信息采集機Ci停止采集,整個被管理網絡的拓撲就已全部存入數據庫服務器DB中。
所述步驟3中,執行拓撲布局算法并將被管理網絡的拓撲布局具體通過以下步驟完成
步驟3. 1,設拓撲布局中的路由設備以及子網圖標半徑大小為r,Web服務器WS從數據庫服務器DB中取出被管理網絡的入口路由設備Rin,以Rin為起始執行廣度優先搜索算法,得到一個以Rin中心、其他路由設備環繞Rin的廣度優先環狀樹拓撲布局,深度為d, 其中Rin為樹根,即O層,再定義以下變量對于1彡k彡d,k-Ι層的所有路由設備中直連π R的接口數目最大為Nk,根據Sin7r^f可以得到一個較為合適的Rk,其中Rd+1 = r ;Nk Kk
步驟3. 2,在瀏覽器BS的屏幕中央畫出一個大小為r的路由設備圖標,代表Rin, 把與Rin直連的所有路由設備或者子網布局在以該圖標為中心,以札為半徑的圓環上;
步驟3. 3,同理,把第2層上所有的路由設備也以該路由設備為中心,R2為半徑來布局與該路由設備直連的所有路由設備或者子網圖標;
步驟3. 4,同理,布局好所有層的圖標;之后再查詢數據庫服務器DB把路由設備或者子網之間的其他連接也畫在拓撲圖上;
步驟3. 5,將每個子網中活動的主機與子網之間用星形方法連接起來;在上述步驟的基礎上得到了所有的路由設備之間的相連和路由設備與子網的相連,而每個葉子節點都代表的是一個子網,當點擊這個子網圖標時,就可以顯示出該子網中所有的主機與路由設備呈星形連接的布局。
與現有的網絡拓撲自動發現和布局方法相比,本發明所述的技術方法,首先能夠通過SNMP和ICMP協議實時采集,能夠更直接反映當前網絡拓撲,實時性更好;環狀樹布局算法可以層次分明、直觀、簡單高效地將被管網絡拓撲顯示給網絡管理人員;網絡管理人員快速了解網絡的狀況以后,就可以采取相應的行動使網絡達到想要的效果。
圖1為根據本發明技術所構建的拓撲自動發現和布局系統的示意圖。
圖2為本發明的基本流程圖。6
圖3為本發明基于SNMP的邏輯網絡拓撲發現流程圖。圖4為本發明拓撲布局算法的流程圖。圖5為本發明拓撲布局的一個示例圖。圖6為本發明拓撲布局算法的一個應用實例圖。
具體實施例方式下面結合附圖和實施例對本發明做進一步詳細說明。如圖1所示,為本發明基于混合探測技術的網絡拓撲發現和自動化布局系統。邏輯拓撲采集機M負責實時采集路由設備間的連接信息和路由設備與子網的連接信息;信息采集機Cl到Cn負責實時探測出所有子網中活動的主機,出于性能考慮可以采用分布式的采集方式;數據庫服務器DB負責存儲數據同時也是系統各組成構件之間的接口 ;整個管理系統通過Web服務器WS提供給管理人員以良好的人機交互界面。圖2是本發明的基本流程圖(1)獲取與M直連的路由器的IP和community集;(2)邏輯拓撲采集機M通過SNMP協議采集路由設備間的連接和路由設備與子網的連接并存入數據庫DB中;(3)分布式采集機(Cl,…,Cn)實時采集所有子網中活動的主機并存入數據庫 DB ;(4) Web服務器WS運行布局算法計算出布局結果;(5)瀏覽器BS將布局結果顯示給網絡管理人員。整個過程都是周期性啟動的,周期由用戶設定。圖3是基于SNMP的邏輯網絡拓撲發現流程圖(1)獲取與M直連的路由器的IP和community集,其中community集是被管理網絡的所有路由器的SNMP訪問密碼;(2)訪問該路由器的MIB庫,獲取該路由器的基本信息,基本信息用于生成Router 對象實例;(3)將該路由器插入 AccessRouters 禾口 AllRouters 隊列,其中 AccessRouters 是未訪問的路由器隊列,AllRouters是已經發現的全部路由器的隊列,以防重復訪問路由器;(4)取出AccessRouters中的一個路由器R,獲取R的所有接口的連接信息;(5)將R接口連接的子網的子網信息都插入Subnets隊列,并記錄R和子網的連接信息以及Subnets信息到DB中;(6)把R接口連接的是路由器的,而且沒有在AllRouters中出現的路由器信息插入AllRouters和AccessRouters隊列中,并記錄R和路由器的連接信息;(7)判斷AccessRouters是否為空,如果為空算法結束,不空則跳轉去執行第
止
少ο圖4是本發明拓撲布局算法的流程圖(1)初始化要布局的路由器和子網圖標的半徑均為r,兩者的圖標也可以不同,但是為了布局美觀,兩者圖標半徑均設為r ;
(2)以被管理網絡的入口路由器Rin為起始執行廣度優先算法,得到一個深度為d 的多層環狀樹形的布局,Rin記為0層,初始Rd+1 = r,然后對于1彡k彡d中所有的k,可以π R得到k-1層所有路由器直連的接口數目最大為Nk,根據可以得到一個較為合適Nk Kk的&,初始k = 0 ;
(3)判斷k是否大于d-Ι,不大于則繼續,否則跳去執行(6);
(4)對于k層所有的路由器R,把與R相連的路由器或者子網的圖標以R為圓心、 Rk+1為半徑布局;
(5)k++,跳到(3);
(6)再查詢DB把路由器或者子網之間的其他連接也畫在拓撲圖上;
(7)每個子網中活動的主機與該子網的路由器呈星形連接,當網絡管理人員要查看子網內活動的主機,點擊子網的葉子節點即可。
圖5為本發明拓撲布局的一個示例圖,圖中的所示拓撲中參數d = 2,r為已知,N1 =4,N2 = 3,由此可得仏和隊。圖中白色的實線小圓圈是路由器圖標,黑色小圓圈為子網圖標。圖中最中心的圖標代表入口路由器Rin,它連接4個路由器,而這4個路由器分別與 3個子網相連。下面以布局Rin周圍的4個路由器圖標為例來介紹如何布局一個路由器和與它相連的子網或者路由器。
對于Rin有η個路由器與它相連,其中η = 4,已知Rin圖標的圓心為(centerX,centerY),布局半徑為禮。則對于這4個路由器圖標的計算如下2π
Xi = centerX + R1 cos(——/)η2π
Y1 =CenterY + R1 sin(—/),其中 1 < i < 4η
同理可以布局整個被管理網絡的拓撲。
圖6為本發明拓撲布局算法的一個應用實例圖。是一個深度d = 4,r = 8,N1 = 4,N2 = 4,N3 = 4,N4 = 8,R1 = 240,R2 = 120,R3 = 50,R4 = 20, R5 = r = 8 的應用實例, 其中非葉子圖標代表路由器等網絡設備,葉子圖標代表子網;線代表網絡設備與網絡設備之間的連線或者網絡設備與子網的連線。通過該圖可以發現,本發明的拓撲布局算法達到了層次分明、直觀布局的效果。
權利要求
1.一種基于混合探測技術的網絡拓撲發現和自動化布局系統,其特征在于,包括邏輯拓撲采集機M,為被管理網絡中的一臺服務器,通過獲取與其直連的路由設備的 SNMP協議提供的信息,發現整個被管理網絡的邏輯拓撲,并將發現的路由設備間的連接以及路由設備與子網的連接信息存儲到數據庫服務器DB中;分布式信息采集機Cl,C2,···,&!,通過ICMP中的ping工具來發現子網中的活動主機, 并將子網中的活動主機與路由設備間的連接信息存儲到數據庫服務器DB中,η為信息采集機的數量且η大于1;數據庫服務器DB,用于存儲被管理網絡的拓撲數據,同時也是組成基于SNMP和ICMP的拓撲自動發現和布局系統中各構件之間的接口;Web服務器WS,數據庫服務器DB交互,獲取數據庫服務器DB中的拓撲,執行拓撲布局算法,將被管理網絡的拓撲布局;瀏覽器BS,與用戶交互,向作為網絡管理人員的用戶提供人機交互界面,將Web服務器 WS的布局結果提供給網絡管理人員。
2.利用權利要求1所述系統的網絡拓撲發現和自動化布局方法,其特征在于包括以下步驟步驟1,利用邏輯拓撲采集機M通過SNMP協議獲取被管理網絡的路由設備間的連接以及路由設備與子網的連接關系,并將所有的連接關系存儲到數據庫服務器DB中,所述邏輯拓撲采集機M為被管理網絡中的一臺服務器;步驟2,利用η個分布式信息采集機C1,C2,…,Cn,根據步驟一獲取的路由設備的子網信息,獲取所有子網中的所有活動主機信息,并將所有活動主機與路由設備間的連接信息存儲到數據庫服務器DB中,其中η大于1 ;步驟3,利用Web服務器WS獲取數據庫服務器DB中的拓撲,執行拓撲布局算法,將被管理網絡的拓撲布局后通過瀏覽器BS提供給網絡管理人員。
3.根據權利要求2所述的網絡拓撲發現和自動化布局方法,其特征在于所述步驟1 中,連接關系的獲取通過以下步驟完成步驟1. 1,先定義如下幾個數據結構用于表示路由設備的數據結構Router、用于表示子網的Subnet、用于存儲網絡中所有路由設備信息的AllRouters隊列、用于存儲未訪問的路由設備隊列AccessRouters和用于存儲所有子網的Subnets隊列,并初始化所有的隊列為空;步驟1. 2,所述邏輯拓撲采集機M通過執行ipconfig命令獲取與其直接相連路由設備的ip,通過配置文件獲取被管理網絡中所有的路由設備的community集,其中community是用來訪問路由設備SNMP協議提供的信息的密碼,將該路由設備的信息加入AllRouters隊列和AccessRouters隊列,并存入數據庫服務器DB ;步驟1. 3,將與邏輯拓撲采集機M直連的路由設備從AccessRouters隊列中出隊,并用 ip和community獲取該路由設備的MIB中的信息,可以得到與該路由設備相連的所有的其他路由設備或者子網的信息,對應地加入AlIRouters、AccessRouters和Subnets隊列,并將這些信息以及路由設備間的連接信息和路由設備與子網的連接信息存入數據庫服務器 DB中;步驟1. 4,給AccessRouters中所有的路由設備執行步驟1. 3,如此往復直至AccessRouters中為空,即可以發現被管理網絡中的所有路由設備之間的連接關系以及路由設備與子網的連接關系。
4.根據權利要求2所述的網絡拓撲發現和自動化布局方法,其特征在于所述步驟2 中,活動主機信息的獲取通過以下步驟完成步驟2. 1,定義用于存儲網絡中所有路由設備信息的AllRouters隊列,每個分布式信息采集機Ci,從AllRouters中取出它所負責采集的所有路由設備的所有子網信息,其中i e (1,2,3, ......,η);步驟2. 2,各個分布式信息采集機Ci用ping工具來發現所有子網中的活動主機,并將活動主機與路由設備的連接信息存入數據庫服務器DB中,其中i e (1,2,3,……,η);步驟2. 3,重復上述步驟,直至所有的分布式信息采集機Ci停止采集,整個被管理網絡的拓撲就已全部存入數據庫服務器DB中。
5.根據權利要求2所述的網絡拓撲發現和自動化布局方法,其特征在于所述步驟3 中,執行拓撲布局算法并將被管理網絡的拓撲布局具體通過以下步驟完成步驟3. 1,設拓撲布局中的路由設備以及子網圖標半徑大小為r,Web服務器WS從數據庫服務器DB中取出被管理網絡的入口路由設備Rin,以Rin為起始執行廣度優先搜索算法, 得到一個以Rin中心、其他路由設備環繞Rin的廣度優先環狀樹拓撲布局,深度為d,其中 Rin為樹根,即O層,再定義以下變量對于1 < k < d,k-Ι層的所有路由設備中直連的接π R口數目最大為Nk,根據Sin7r^f可以得到一個較為合適的Rk,其中Rd+1 = r ;Nk Kk步驟3. 2,在瀏覽器BS的屏幕中央畫出一個大小為r的路由設備圖標,代表Rin,把與 Rin直連的所有路由設備或者子網布局在以該圖標為中心,以札為半徑的圓環上;步驟3. 3,同理,把第2層上所有的路由設備也以該路由設備為中心,R2為半徑來布局與該路由設備直連的所有路由設備或者子網圖標;步驟3. 4,同理,布局好所有層的圖標;之后再查詢數據庫服務器DB把路由設備或者子網之間的其他連接也畫在拓撲圖上;步驟3. 5,將每個子網中活動的主機與子網之間用星形方法連接起來;在上述步驟的基礎上得到了所有的路由設備之間的相連和路由設備與子網的相連,而每個葉子節點都代表的是一個子網,當點擊這個子網圖標時,就可以顯示出該子網中所有的主機與路由設備呈星形連接的布局。
全文摘要
本發明為一種基于SNMP和ICMP的拓撲自動發現以及廣度優先環狀樹布局方法,屬于網絡管理和控制領域,通過SNMP協議輪詢自動發現被管網絡的所有網絡設備間的連接關系以及網絡設備與子網的連接關系,存儲到數據庫;然后通過ICMP中的ping工具發現所有子網中活動的主機,存儲到數據庫;通過基于廣度優先搜索算法得到被管網絡的所有網絡設備與子網呈環狀圓形的拓撲;而子網內的活動主機與子網的路由器呈星形連接;本發明自動發現被管網絡中所有網絡設備之間的連接關系、網絡設備與子網的連接關系、子網中活動的主機,并將被管網絡的拓撲層次分明、直觀的呈現給網絡管理人員。
文檔編號H04L12/24GK102546251SQ20111046063
公開日2012年7月4日 申請日期2011年12月31日 優先權日2011年12月31日
發明者孔祥震, 林闖, 董揚威, 魏兵 申請人:清華大學