NQA是Network Quality Analyzer(網絡質量分析)的簡稱。NQA通過發送測試報文,對網絡性能、網絡提供的服務及服務質量進行分析,並為用戶提供網絡性能和服務質量的參數,如時延抖動、TCP連接時延、FTP連接時延和文件傳輸速率等。
利用NQA的測試結果,用戶可以:
(1) 及時了解網絡的性能狀況,針對不同的網絡性能進行相應處理。
(2) 對網絡故障進行診斷和定位。
以往的Ping功能是使用ICMP(Internet Control Message Protocol,互聯網控製報文協議)測試數據包在本端和指定目的端之間的往返時間。NQA是對Ping功能的擴展和增強,它增加了多種測試類型,提供了更多的功能。
目前NQA支持11種測試類型:ICMP-echo、DHCP、DNS、FTP、HTTP、UDP-jitter、SNMP、TCP、UDP-echo、Voice和DLSw測試。客戶端向對端發送不同類型的測試報文,統計對端是否回應報文以及報文的往返時間等參數,以便用戶根據統計結果判斷協議的可用性和網絡的性能。
聯動功能是指通過建立聯動項,對當前所在測試組中的探測結果進行監測,當連續探測失敗次數達到一定數目時,就觸發其他模塊聯動。聯動功能的實現如圖1所示。
圖1 聯動功能實現示意圖
聯動功能由監測模塊、Track模塊和應用模塊三部分組成:
l 監測模塊負責對鏈路狀態、網絡性能等進行監測,並將探測結果通知給Track模塊。
l Track模塊接收到監測模塊的探測結果後,及時改變Track項的狀態,並通知應用模塊。Track模塊位於應用模塊和監測模塊之間,主要功能是屏蔽不同監測模塊的差異,為應用模塊提供統一的接口。
l 應用模塊根據Track項的狀態,進行相應的處理,從而實現聯動。
以靜態路由為例,用戶配置了一條靜態路由,下一跳為192.168.0.88,如果192.168.0.88可達,那麼該靜態路由有效;如果192.168.0.88不可達,則該靜態路由無效。通過在NQA、Track模塊和應用模塊之間建立聯動,可以實現靜態路由有效性的實時判斷:
(1) 通過NQA監測目的地址192.168.0.88是否可達;
(2) 如果發現192.168.0.88不可達,NQA將通過Track模塊通知靜態路由模塊;
(3) 靜態路由模塊可以據此判斷該靜態路由項無效。
NQA測試過程中可以通過設置Trap開關控製是否向網管服務器發送Trap消息。在探測失敗或測試完成時通知網管服務器,以便網絡管理員根據Trap消息及時了解測試運行狀況和網絡性能。
進行NQA測試前,需要創建NQA測試組。在NQA測試組中配置NQA測試的參數,如測試類型,測試目的地址,測試目的端口等。
每個測試組都有一個管理員名稱和一個操作標簽,管理員名稱和操作標簽可以唯一確定一個測試組。
啟動NQA測試後,每隔一段時間啟動一次測試,測試的時間間隔可以由用戶來設定。
一次NQA測試由若幹次連續的探測組成,探測的次數可以由用戶來設定。
不同測試類型中,探測的含義不同:
l 對於TCP和DLSw測試,一次探測是指一次連接;
l 對於UDP-jitter和Voice測試,一次探測中連續發送多個探測報文,發送探測報文的個數由用戶來設定;
l 對於FTP、HTTP、DHCP和DNS測試,一次探測是指完成一次相應的功能;
l 對於ICMP-echo和UDP-echo測試,一次探測發送一個探測報文;
l 對於SNMP測試,一次探測發送三個探測報文。
NQA客戶端是發起NQA測試的設備,NQA測試組在客戶端創建。
NQA服務器負責處理NQA客戶端發來的測試報文,如圖2所示。NQA服務器通過監聽指定IP地址和端口的報文對客戶端發起的測試進行響應。
圖2 NQA客戶端與服務器之間的關係
在大多數的測試中,隻需要配置NQA客戶端。但在進行TCP、UDP-echo、UDP-jitter和Voice類型測試時,必須配置NQA服務器。
在一個NQA服務器上可以創建多個TCP或UDP監聽服務,每個監聽服務對應一個目的地址和一個端口號,配置的目的地址和端口號必須與NQA客戶端的配置一致,且不能與已有的監聽服務衝突。
NQA測試操作的過程為:
(1) NQA客戶端構造指定測試類型的報文,並發送給對端;
(2) 對端收到測試報文後,回複帶有時間戳的應答報文;
(3) NQA客戶端根據是否收到應答報文,以及應答報文中的時間戳,計算報文丟失率、往返時間等參數。