一種自治系統(tǒng)級網(wǎng)絡拓撲識別方法
【技術領域】
[0001] 本發(fā)明屬于網(wǎng)絡拓撲技術領域,具體涉及一種自治系統(tǒng)級網(wǎng)絡拓撲識別方法的設 計。
【背景技術】
[0002] 在如今這樣一個信息技術高速發(fā)展的時代,網(wǎng)絡早已滲透于當今社會各行各業(yè), 并且深深地影響與改變著人們的生活,人們也逐漸有意識地想要對網(wǎng)絡拓撲結構進行識別 與分析。作為實踐與理論網(wǎng)絡研究的基石,互聯(lián)網(wǎng)的網(wǎng)絡拓撲分析和建模在如今越來越引 起更廣泛的關注。網(wǎng)絡流量特性、安全特性、性能特性,應用、路由程序和協(xié)議性能評價、網(wǎng) 絡在遭遇攻擊時的健壯性等,都有網(wǎng)絡的拓撲結構決定。所以,學者們都更傾向于研究各 種網(wǎng)絡識別技術從而捕獲網(wǎng)絡拓撲結構,并且希望可以從真實的數(shù)據(jù)中獲取真實的網(wǎng)絡拓 撲。
[0003] 依據(jù)網(wǎng)絡的定義可以將網(wǎng)絡拓撲劃分為三個層次:基于網(wǎng)絡層、基于鏈路層以及 Overlay網(wǎng)絡拓撲。在這三類網(wǎng)絡拓撲中,對網(wǎng)絡層的網(wǎng)絡拓撲研究最多,所以現(xiàn)在已經(jīng)有 很多的研究均是對網(wǎng)絡層的拓撲進行分析與研究。
[0004] 根據(jù)網(wǎng)絡層的實體,可以將網(wǎng)絡拓撲分為四個層次:AS級(自治系統(tǒng)級)、IP級、 PoP(Point of Presence)級、路由器級,由于其構成元素不同,測量方法也有所區(qū)別。而 本專利主要研究的是AS (Autonomous System)級網(wǎng)絡拓撲識別。所謂AS (Autonomous System),即自治系統(tǒng),一個自治系統(tǒng)由許多路由器組成,這些路由器有相同的自治系統(tǒng)號 (ASN),每個路由器有兩個以上的接口,每個接口分配不同的IP地址,該層次結構如圖1所 示。一個自治系統(tǒng)是一個有權自主地決定在本系統(tǒng)中應采用何種路由協(xié)議的小型單位。所 謂的AS級拓撲,指各個自治系統(tǒng)之間的連接關系。AS級(自治系統(tǒng)級)拓撲的測量和分析 是一項關于互聯(lián)網(wǎng)絡的基礎研究,其測量目的在于尋找包含Internet結構信息的圖并探 索其內(nèi)在規(guī)律,從而預測網(wǎng)絡結構與技術、政策、經(jīng)濟之間的互動。
[0005] 網(wǎng)絡拓撲測量是各個網(wǎng)絡行為研究的基礎,具有相當重要的作用,其主要意義在 于:
[0006] (1)網(wǎng)絡拓撲的結構是網(wǎng)絡路由協(xié)議和網(wǎng)絡算法設計的基石,高效的網(wǎng)絡協(xié)議的 設計必須考慮整個底層網(wǎng)絡拓撲的特性;
[0007] (2)網(wǎng)絡中的各種仿真恤建立網(wǎng)絡拓撲的模型來擬合實際的網(wǎng)絡拓撲結構,所以 研究網(wǎng)絡拓撲結構能為仿真環(huán)境的建立提供更堅實的理論基礎;
[0008] (3)對網(wǎng)絡拓撲結構的了解能夠對網(wǎng)絡中的各個行為進行良好的預測和檢測;
[0009] (4)網(wǎng)絡拓撲結構對于網(wǎng)絡的安全特性和抗攻擊能力的研究具有重要價值;
[0010] (5)網(wǎng)絡拓撲結構識別對于網(wǎng)絡安全特性以及對抗網(wǎng)絡外界攻擊能力的研究具有 非常重要的價值。
[0011] 綜上所述,網(wǎng)絡拓撲測量是一項意義重大的研究工作,而隨著互聯(lián)網(wǎng)規(guī)模的不斷 擴大,拓撲結構越來越復雜,如何獲得一個完整而準確的全球互聯(lián)網(wǎng)拓撲成為了一個異常 艱巨的任務。
[0012] 1、基于Traceroute路由信息收集的主動測量
[0013] 在UNIX中的Traceroute,及Windows中的Tracert程序,都是用來追蹤一個分組 從源點到終點的路徑。這個程序很巧妙地使用了兩個ICMP報文(超時報文和終點不可達 報文)來找出一個分組的路由,它是應用級的程序,使用UDP服務。
[0014] 圖2可以說明程序Traceroute的工作原理。給出了這個拓撲,就可以知道分組從 主機A到主機B要經(jīng)過路由器R1和R2,但是在大多數(shù)時間,實際是不知道拓撲的。在A和 B之間可能會有很多路由器。Traceroute使用ICMP報文和IP分組的生存時間(TTL)字段 就可以找到這一條路由。
[0015] Traceroute使用以下步驟找到路由器R1的地址和主機A到路由器R1之間的往返 時間。
[0016] (1)主機A的程序Traceroute使用UDP向終點B發(fā)送一個分組,這個報文被封裝 成IP分組,其TTL為1,這個程序記錄該分組的發(fā)送時間;
[0017] (2)路由器R1收到這個分組,把TTL值減到0,路由器R1丟棄這個分組;但是路由 器R1要發(fā)送一個超時ICMP報文(類型:11,代碼:0),表示TTL值為0而該分組被丟棄;
[0018] (3)主機A的程序Traceroute收到這個ICMP報文,利用封裝ICMP的IP分組的源 地址找到路由器R1的地址,這個程序記錄下該分組的到達時間;步驟(1)的時間和這個時 間之差就是往返時間。
[0019] Traceroute重復步驟(1)到(3)三次,以便得到往返時間更好的平均值。第一個 往返時間可能會比第二或第三個大得多,因為程序ARP找到路由器R1的物理地址需要花費 時間,對于第二和第三個往返時間,ARP可使用高速緩存中的地址。
[0020] Traceroute重復前面的步驟找出路由器R1的地址,以及主機A和路由器R2之間 的往返時間。但是,這一步設置TTL為2,因此路由器R1轉發(fā)這個報文,而路由器R2丟棄 它,并發(fā)送ICMP超時報文。
[0021] 重復前面的步驟找到主機B的地址,以及主機A和主機B之間的往返時間。當主 機B收到這個分組時,就把TTL值減1,但并不丟棄這個報文,因為現(xiàn)在報文以及到達了它 最后的終點。此時Traceroute采用另一種策略將ICMP報文發(fā)回給主機A,UDP的目的端 口被設置為UDP協(xié)議不支持的一個端口,但主機B收到這個分組時,它找不到可以接收交付 的應用程序,于是它丟棄了這個分組,并向主機A發(fā)送一個ICMP終點不可達報文(類型: 3,代碼:3),因為路由器不檢查UDP是否接收,所以路由器R1和R2中并沒有發(fā)生此情況。 Traceroute記錄了到達的IP數(shù)據(jù)報的目的地址,并記下往返時間,收到代碼為3的終點不 可達報文就表示整個路由已經(jīng)找到,就不會再發(fā)送更多的分組。
[0022] 2、基于BGP的被動測量
[0023] 邊界網(wǎng)關協(xié)議(BGP)是一個使用路徑向量路由選擇的域間路由選擇協(xié)議,是唯 一一個用來處理Internet大小的網(wǎng)絡協(xié)議,主要用以和自治系統(tǒng)之間交換可達信息和路 由信息。BGP的主要功能是和其他的BGP系統(tǒng)交換網(wǎng)絡可達信息,網(wǎng)絡可達信息包括列出的 自治系統(tǒng)(AS)的信息。這些信息有效地構造了 AS互聯(lián)的拓撲圖并由此清除了路由環(huán)路, 同時在AS級別上可實施策略決策。
[0024] BGP的主旨是提供一種域間路由選擇系統(tǒng),確保自治系統(tǒng)能夠無環(huán)地交換路由選 擇信息,BGP路由器交換有關前往目標網(wǎng)絡的路徑信息,它是一種基于策略的路由選擇協(xié) 議,BGP在確定最佳路徑時考慮的不是速度,而是讓AS能夠根據(jù)多種BGP屬性來控制數(shù)據(jù) 流的傳輸。
[0025] 每個BGP會話通過不斷向BGP鄰居發(fā)送BGP更新消息來建立AS路徑,每一個BGP 路由更新消息都有一個長度可變的路徑屬性序列(屬性類型,屬性長度,屬性值),第一個 比特如果為0,則屬于公認屬性,如果是1,則屬于任選屬性,第二個比特0表示不可傳遞,1 表示可傳遞。公認屬性總是可傳遞的,屬性標志域中的第三個比特指示任選可傳遞屬性中 的信息是部分的(值為1)還是完整的(值為0),第四個比特確定該屬性長度是1字節(jié)還是 2字節(jié),標志域其他4個比特總為0,屬性類型代碼字節(jié)含有屬性代碼。
[0026] BGP路由表的格式和內(nèi)容如下:
[0028] 現(xiàn)有的自治系統(tǒng)級的網(wǎng)絡拓撲識別主要是依靠基于BGP路由信息收集的方法,通 過提取BGP路由表中的關于AS路徑屬性信息從而得到各個AS之間的連接關系,進一步獲 得相應的AS級網(wǎng)絡拓撲。但是在實際應用中,為了獲取全球性的完整的自治系統(tǒng)級網(wǎng)絡拓 撲結構,由于BGP本身的缺陷,其看待問題的視角具有局限性,有BGP提供的信息是控制層 信息,根據(jù)它的路由策略,它反映在BGP路由層面上期望數(shù)據(jù)經(jīng)過的鏈路,所以收集BGP路 由表的數(shù)據(jù)收集器一般是在網(wǎng)絡中比較上層的位置,這就導致無法發(fā)現(xiàn)更多下層的連接, 使得許多下層的網(wǎng)絡連接無法識別。有國際上的學者提出用IRR的數(shù)據(jù)庫數(shù)據(jù)來補充BGP 路由信息得到的AS拓撲數(shù)據(jù),該方法的最大優(yōu)點是易于操作,不需要很復雜的數(shù)據(jù)融合過 程,但是由于IRR這一數(shù)據(jù)庫更新速度較慢,得到的數(shù)據(jù)都不是實時的數(shù)據(jù),不能滿足得到 全球實時網(wǎng)絡拓撲的需求。
【發(fā)明內(nèi)容】
[0029] 本發(fā)明的目的是為了解決現(xiàn)有技術中基于BGP路由信息收集的網(wǎng)絡拓撲識別方 法由于BGP本身的缺陷,其看待問題的視角具有局限性,導致無法發(fā)現(xiàn)更多下層的連接,使 得許多下層的網(wǎng)絡連接無法識別的問題,提出了一種自治系統(tǒng)級網(wǎng)絡拓撲識別方法。
[0030] 本發(fā)明的技術方案為:一種自治系統(tǒng)級網(wǎng)絡拓撲識別方法,包括以下步驟:
[0031] S1、測量得到全球Traceroute的IP路徑數(shù)據(jù);
[0032] S2、將Traceroute的IP路徑數(shù)據(jù)映射為AS路徑數(shù)據(jù);
[0033] S3、收集全球BGP數(shù)據(jù)收集器的AS路徑數(shù)據(jù);
[0034] S4、將Traceroute的AS路徑數(shù)據(jù)與BGP的AS路徑數(shù)據(jù)進行對比與合并,得到完 整的AS級網(wǎng)絡拓撲。
[0035] 進一步地,步驟S2包括以下分步驟:
[0036] S21、進行數(shù)據(jù)收集;
[0037] S22、計算IP-to-AS的最佳匹配方式;
[0038] S23、修正IP-to-AS的匹配方式;
[0039] S24、建立 IP-to-AS 映射表。
[0040] 進一步地,步驟S21包括收集BGP路由表信息以及BGP和Traceroute兩種數(shù)據(jù)源 同屬一個AS的連接信息。
[0041] 進一步地,步驟S4中將Traceroute的AS路徑數(shù)據(jù)與BGP的AS路徑數(shù)據(jù)進行對 比與合并時,相同的AS路徑數(shù)據(jù)以BGP的AS路徑數(shù)據(jù)為準。
[0042] 本