網絡測量和網絡監控在拓撲發現、安全監測與網絡異常方面占有舉足輕重的地位,已成為開展互聯網技術研究的重要支撐。但是随着互聯網的逐步擴大,對測量位置的要求也越來越高,開展大規模的網絡測量變得越來越困難。LG(LookingGlass)是由國内外的運營商提供的部署在主幹網或者AS(AutonomousSystem)邊界的測量點,提供了ping、traceroute、bgp等豐富的測量功能,用戶可以通過LG網址發起測量任務,解決調試連接性等一系列性能方面的問題。LG主要有兩個優點,第一,良好的測量位置與廣闊的分布。第二,LG網址提供可視化的界面和豐富的測量功能,能使用戶更全面地了解網絡的狀況。盡管如此,它并不适用于系統的可重複的測量。其一,每個LG都是由運營商獨自擁有并運營的,沒有統一的模闆;其二,LG網址沒有标準的輸入輸出;其三,為了減少Dos的攻擊,LG的運營商還會配置查詢速率設置。
面對LG存在的上述問題,尤其是統一調度問題,Periscope可謂是提出LG統一調度平台的先驅。Periscope是由互聯網數據分析合作協會(CooperativeAssociationforInternetDataAnalysis,CAIDA)設計的一個LG的統一調度平台,具有自動發現和使用LG能力。但是,它具有以下不足:
1.需身份認證,用戶需要進行身份驗證才能創建測量,未經認證的用戶隻能查詢測量結果,我們嘗試聯系該機構進行身份認證,并未收到回複,因此periscope可能隻服務于特定機構,不對大衆開放。
2.缺乏普适性,隻提供了主流的6種LG網址模闆,未對所有的LG網址進行适配。3.缺乏高效性,由于隻提供可用的LG資源,并未對其進行整體評估,無法推薦高效可靠的LG資源。
鑒于LG的問題,北京郵電大學設計并實現一個統一的開放資源調度平台UniteLGs。首先,通過爬蟲技術自動爬取LG網址并利用模塊技術自動生成相應的模闆;其次,利用統一調度的API,獲取全球可用的LG網址并得到統一格式的輸出結果;進一步,采用分布式的調度策略以解決查詢速率限制的問題;最後,提出一種通過加權單次調用評分得到整體評分的LG網址評分機制,進而可推薦給用戶高可用性的LG網址。
同時,為了解決Periscope的不足,UniteLGs也做了相關的努力。例如,不用需要系統授權便可使用,提供了統一調度API接口和配置UniteLGs的docker,用戶可以自己搭建統一調度平台,也可以直接使用UniteLGs進行測量。其次,此平台采用爬蟲技術,自動适配網頁參數,填充LG網址模闆,因此能适配更多的LG網址,并且對每次測量進行評分,周期性的對所有LG網址進行整體性評估,推薦給用戶高效的網址,提高測量結果的準确性。
圖1系統API調度模型系統設計與調度流程
下文主要從UniteLGs系統架構與調度流程展開,對系統的各個模塊進行介紹,最後設計了一種評分模型,用來推薦高可用性的開放資源。圖2模闆自動生成機制
圖3系統架構API接口
用戶可以通過API接口獲取所有的開放資源列表以及詳細信息。核心控制器屏蔽了所有系統流程,用戶隻需要填充表單,下發任務即可得到任務結果,如圖1所示。
系統流程如下:首先用戶獲取開放資源列表,選擇合适的開放資源并填充請求JSON,然後調用系統的API,此時核心控制器會收到相應的參數并根據用戶選擇的網址,提取網頁模闆,填充測量參數,執行測量任務,最後把結果解析後返回給用戶。
針對于用戶的不同需求,UniteLGs提供了兩種任務結果返回形式:(1)原生的任務結果,即頁面得到的原始測量結果,核心控制器不對其做任何處理;(2)序列化的JSON,根據任務結果提取相應的參數,以JSON格式返回給用戶。這樣系統可以根據用戶的需求匹配結果,同時提供了标準化的輸入接口,便于程序的直接調用。
模闆生成
系統模闆生成機制是基于網絡爬蟲技術,通過爬取網址,分析網頁源代碼,提取相應的字段,生成相應的網站模闆。同時測試模闆的可用性,當測試通過即表示當前網址可以供用戶調度。如圖2所示。
由于LG并沒有一個統一的公示網站,UniteLGs從traceroute.org、bgplookingglass、lookingglass三個網站獲取可用于測量的源網址,自動檢測HTML網頁代碼是否包含LG界面,若包含LG界面則提取該網頁并自動生成模闆。UniteLGs分析了主流LG網站的測量提交機制進而發現:絕大多數LG都是通過FORM表單方式提交。主要參數如表1所示。
對于每一個網址,通過分析LG網頁源代碼,提取query、addr、protocol、router四個參數(其中包括提交的四個字段的名稱與支持的内容),提取完畢後,通過任務執行模塊自動填充各個字段執行測量。如果有返回結果,則證明模闆可用,對該開放資源進行可用标記,供用戶下次使用。如果返回錯誤或無返回結果,則證明模闆不可用,對該開放資源進行不可用标記,供系統管理員進行模闆的升級或手工配置。
調度流程
用戶下達測量任務後,所有的處理流程都由核心控制器完成。核心控制器主要包括任務隊列、消息隊列、客戶端連接池三個部分,如圖3所示。
任務隊列用來存儲用戶的任務,系統将每次到達的新任務放入任務隊列;消息隊列用于不同模塊之間的通信;客戶端連接池主要存儲客戶端的連接,當将任務發送給客戶端的連接時,相應的客戶端便接收到任務。新創建的任務首先會發送到任務隊列,當輪到它執行時,核心控制器會通過消息隊列通知客戶端連接池,并通過特定的算法确定要調用的客戶端,通過調用此客戶端的回調函數,讓客戶端去執行測量任務。當獲取任務結果後,系統提取頁面結果,返回給核心控制器,核心控制器存儲結果,同時将任務結果返回給相應的用戶。
由于大多數LG網址存在查詢速率限制,所以UniteLGs使用了分布式調度客戶端去執行相應的測量任務。目前系統中有一百多個客戶端可以供UniteLGs調用,同時用戶可以通過下載UniteLGs提供的客戶端源代碼,運行程序加入到系統的連接池。當任務交給核心控制器時,核心控制器會挑選一個可對此網址調度的客戶端進行任務測量并标記客戶端訪問LG網址的時間,當下次訪問時,UniteLGs會從客戶端的連接池中尋找最近未訪問該網址的客戶端去執行測量任務。這樣既能夠保證查詢速率不會受到影響,又能夠保證多用戶的并發測量。
周期性檢測
由于大多數LG是由運營商提供,具有不穩定性與易變性,為此UniteLGs實現了開放資源的周期性檢測。系統加入了定時任務,檢測開放資源的可用性以及其可供調用的路由與測量類型,若發生變化,則變更數據庫存儲,以保證提供給用戶的網址都是可調度的。
網址評分
為了提高每次測量的準确率與反應速度,UniteLGs提出了一種LG網址評分策略。通過分析每次測量返回的數據,确定單次測量評分,最後通過貝葉斯加權統計得到網址的綜合評分。單次測量評分根據每次測量花費時間,以及開放資源的可用率,通過算法(1)計算得出。評分同時,更新此開放資源的可用率。其中當測量無結果或錯誤時不進行評分;對于網址的綜合評分,根據算法(2)對所有單次測量評分進行貝葉斯加權統計,同時考慮測量評分的時間,以及系統支持測量類型的數量和可用探測點的個數,進行計算。為了确保評分結果的偏離值不會過大,系統設定了一個平均分。評分算法如下所示:
各個參數指标說明如表2所示。
系統測試
本文以用戶訪問TOP100網站為測量對象,根據網絡的拓撲情況選取了幾十個測量點,以覆蓋網絡中不同層面。利用可視化的視圖展示,觀察了時延、抖動、丢包等性能指标,準确的定位出網絡擁堵的時間。
在UniteLGs中,用戶可以通過API接口或頁面的形式進行測量。API接口主要有兩個,/opensourcelist接口用于獲取LG網址信息,/LGtask接口會調度相應的LG網址,并返回結果。網頁會提供一個可用的開放資源的列表,每個LG會展示國家、城市、AS域等基本信息,同時按照系統評分結果進行排序。這樣既提高了LG信息的準确性,又能推薦高效的LG網址。點擊網頁中的某一LG網址會彈出測量相關的參數,填充query、protocol、router、address四個字段,點擊提交按鈕,任務結果将會在測量完成後顯示在右側的結果區,如圖4所示。
本次選擇了在墨西哥的LG網址中rt1.msk資源,對166.111.9.229進行類型為IPV4的ping測試,測量能在5s之内返回原始的測量結果,證明了系統評分的高效性以及系統的可靠性。
當任務結果返回後,我們提供了更直觀的任務展示視圖。我們利用圖4選用的LG網址,對166.111.9.229網址進行了時間間隔為5分鐘的周期任務,最後用可視化視圖方式将結果展示出來,如圖5所示。
視圖可以更直觀的展示出某一個測量點對某一個目标一段時間内的持續測量結果,能夠快速地定位異常點,由圖中可以發現,166.111.9.229這個網址在19日、20日、22日這三天淩晨4點半左右的連續半個小時内時延增大,同時伴随着丢包,疑似發生Dos攻擊。系統管理員發現此問題後,可以在此時段對主機進行監控,來确定具體的原因。
綜上所述,網絡測量是了解網絡運行狀況和進行網絡監控管理的有效手段。本平台實現了對LG開放資源的統一調度,擴大了網絡的監控能力,同時給出統一的API接口和評分機制,方便用戶使用而且提高用戶體驗。以較小的投入整合了大量的分布廣泛的資源,對解決網絡測量中測量點覆蓋的難題起到了一定的減緩作用。今後的工作重點主要是對該軟件進行擴充,優化開放資源的動态評分功能,提高用戶測量的精準性,獲取更好的使用體驗。
(責編:陶春)
(作者單位為北京郵電大學網絡技術研究院)
圖4系統演示
圖5測量結果