新四季網

監測網絡丟包率的方法及系統的製作方法

2023-05-12 09:24:06

專利名稱:監測網絡丟包率的方法及系統的製作方法
技術領域:
本發明涉及網絡技術領域,特別涉及一種監測網絡丟包率的方法及系統。
背景技術:
在Internet中,IP包本身並不具有任何安全特性,很容易被仿造、修改,重播和攔 截查看包內容。而IPSec(IP安全協議)提供了一種標準的、健壯的以及包容廣泛的機制來 為IP及上層協議提供安全保證。IPSec可以保護通信的源IP位址和目的IP位址,提供數 據完整性驗證,保證數據的機密性,還提供抗重播功能。 IPSec VPN是採用IPSec安全協議建立的VPN (Virtual PrivateNetwork,虛擬專 用網絡)隧道,可以在公網上建立安全的虛擬通道以便遠程訪問。而儘管IPSec VPN可以 保障主機之間、網絡安全網關之間或主機與安全網關之間的數據包的安全,並提供端到端 的認證,但是IPSec VPN卻不能避免由於所跨的網絡本身可靠性低,網絡性能差或者人為原 因導致VPN傳輸受阻等原因造成的網絡丟包、安全性下降等問題。因此,在IPSec VPN網絡 中,我們仍然需要實時地監測網絡性能,了解網絡運行狀況,根據網絡性能對網絡進行管理 或者與相關部門協商解決網絡中存在的問題。 丟包率是體現網絡性能的一個重要指標,能夠反映網絡對業務的服務質量,所以 有必要對丟包率進行監測。在IPSec VPN網絡中監測丟包率需要知道網絡源端發送的報文 數以及網絡宿端收到的報文數。有的方案提出源端向宿端發送帶有統計的報文數量的幀 或者標有報文序號的幀,但是這些方法或者改變幀結構或者增加幀中填充內容,其實現都 有一定的特定性,無法應用於所有的IPSec VPN網絡中。同時,源端和宿端設備都要增加 相應的解析功能,也導致成本的增加。也有方法提出使用網管系統監測源端發送報文數以 及目的端接收報文數,而網管對數據的統計不具有實時上報的特性,所以使丟包率的監測 不具有實時性。還有的方法提出在網絡內部設置監測器來監測網絡性能,這種方法的前提 是對網絡的拓撲結構比較了解,且對網絡具有控制權,可以在其內部放置監測儀器,而對於 IPSec VPN的使用者來說,通常所使用的網絡不歸自己所有,也就無法獲知網絡內部情況。
與上述現有技術相關的專利技術有 技術方案1 :申請號為200510058846. 1的中國專利申請公開了一種在多協議標籤 網絡中監測丟包率的方法。其中,所述方法包括以下內容在MPLS(multi protocol label switch,多協議標籤交換)連接的源節點定時發送給宿節點的連通性校驗幀(CV幀)或快 速故障檢測幀(FFD幀)中,攜帶該源節點已發送的報文數;在所述MPLS連接的宿節點捕 獲並解析所述CV幀或FFD幀,記錄源節點已發送的報文數和本節點當前時刻已接收的報文 數,並根據連續兩個時刻已發送的報文數和接收的報文數計算出丟包率。
技術方案2 :申請號為200810210890. 3的中國專利申請公開了一種基於鏈路層發 現協議進行鏈路質量檢測的方法及系統,網絡設備以單位時間Tl為周期,採集各LLDP信宿 埠在單位時間Tl內收到的鏈路層發現協議LLDP數據包數Ml,並在管理信息庫MIB保存 當前採集的各LLDP信宿埠的LLDP數據包數Ml ;網絡管理系統對每一待檢測鏈路進行質
5量檢測時,從該鏈路目的埠所在網絡設備的MIB獲取當前採集的該目的埠在單位時間 Tl內收到的LLDP數據包數M1的信息,並得到該鏈路的源埠在單位時間T1內發送的LLDP 數據包數M2,計算出該鏈路當前的丟包率H二 (1-M1/M2)X100%。該發明無需消耗額外資 源,且易於實現。 技術方案3 :申請號為200810115485. 3的中國專利申請公開了一種基於內部監測 器的鏈路丟包率的推測方法,該方法在初始邏輯拓撲樹內部放置監測器,並收集初始邏輯 樹的所有觀測數據,然後建立每棵子樹對應的葉子節點的丟包序列,從而推測出它內部每 條鏈路的丟包率。本發明具有低複雜度、估計出的丟包率更接近於真實丟包率的優點。
上述技術方案1的缺陷為該方案是通過主動發送探測幀的方式將源節點在兩個 時刻發送的報文數分別傳送給宿節點。對於主動探測本身來說,當網絡中流量很大時,會 增加網絡負荷。同時,由於幀中需要攜帶報文數等信息,所以需要改變原來幀的信息,對於 該專利可以將改動信息放在MPLS的預留標籤中,但是對於其他網絡,則會需要增加幀的字 節,改變幀結構或者使用新的幀來專門傳送報文數,這樣會使數據包的信源端和信宿端都 相應的增加幀的解析功能,而如果在很大範圍內增加這種功能將造成成本的提高。除此以 外,該方案中傳送的幀也有可能丟失,而這種丟失的幀沒有被計算在發送的報文數之內,這 也導致其丟包率計算不夠準確,不能真實反映網絡的狀況。 上述技術方案2的缺陷為該方案採用了網管設備對源端發送數據包數和宿端接 收數據包數進行了統計,由於網管本身可以實現這種統計功能,所以無需增加新的設備和 資源,但是網管統計的特徵是周期比較長,需要長時間的統計計算然後上報,這樣無法做到 實時監測網絡中的丟包率,實時性比較差。 上述技術方案3的缺陷為該方案主要用於推測網絡內部各節點的丟包率,事先 知道網絡的樹形拓撲結構,然後在網絡內部安置監測器,這種丟包率算法要求在網絡內部 已知的情況下進行,而對於內部拓撲未知的且由於人為因素無法在網絡內部設置檢測器的 網絡則無法使用。 在其它現有方案中,一般是針對不同網絡使用不同的丟包率計算方法,目前還沒 有一種針對IPSec VPN網絡的端到端丟包率方法。而且現有方案多是從網絡兩端分別統計 發送數據包數和接收的數據包數,而在一些網絡中,普遍存在多個終端設備與一個集中式 設備控制器通信,如果在多個終端都放置統計工具明顯是不合理的,會增加成本。如果只在 集中的設備控制器中進行統計就可以得到網絡中每個終端到控制器的鏈路丟包率,將會節 省很多的成本。

發明內容
本發明針對現有技術的不足,提出了一種成本低、效率高的網絡丟包率監測方法, 尤其適用於IPSec VPN網絡中。 為了達到上述目的,本發明提供了一種監測網絡丟包率的方法,所述方法包括以 下步驟 Sl,在信宿端捕獲數據包;
S2,存儲所述數據包的頭部信息; S3,利用所述頭部信息將每個數據包連續地存儲在協議信息表中,其中,來自不同信源端的數據包存儲在不同的協議信息表中,在協議信息表中按照讀到的數據包的標識位 identification域值從小到大順序存儲; S4,在信宿端根據所述協議信息表中的信息計算信源端發送的完整數據報文個數 以及信宿端接收到的完整數據報文個數; S5,根據所述信源端發送的完整數據報文個數以及信宿端接收到的完整數據報文 個數計算得到來自該信源端的數據報文的丟包率。 所述信宿端和信源端為處於IP安全協議IPSec網絡中的通信節點。 所述步驟S2具體為對所述數據包從頭開始讀取,首先檢查該數據包是否為IP數
據包,若不是,則讀取下一個數據包;否則,判斷該數據包的內部協議是否為封裝安全負載
ESP協議,若不是則讀取下一個數據包,否則存儲該數據包的IP頭部信息及ESP頭部信息。 所述步驟S4具體為 S41,根據所述協議信息表中的信息判斷該數據包使用的安全聯盟SA是否經過重 新協商; S42,保存SA重新協商次數以及每次重新協商後使用的最大SA序列號MaxSA,根據 每次重新協商後使用的最大SA序列號確定該次重新協商後信源端發送的完整數據報文個 數; S43,確定數據報文是否完整,計算信宿端接收到的完整數據報文個數B ; S44,將每次重新協商後信源端發送的數據報文個數求和,得到信源端發送的數據
報文總數 ZMu&4 A =" ; 其中,判斷SA是否經過重新協商以及獲得每次SA重新協商後使用的最大SA序列 號的方法為初始化SA協商次數SAContNum = 0 ;讀取每個數據包的SPI值,當SPI值發生 改變時,代表SA重新協商;每次SA重新協商,SA協商次數加1 ;在每次SA重新協商後,初 始化本次重新協商後SA序列號最大值MaxSA = 0 ;每讀取一個數據包,比較數據包的SA序 列號與MaxSA的大小,若前者大於後者,則將當前的SA序列號賦值給MaxSA,依次操作,從而 得到本次SA協商後最大的SA序列號,也即本次重新協商後信源端發送的完整數據報文個 數; 確定數據報文是否完整,並計算信宿端收到的完整數據報文個數B的方法為
①設信宿端收到的完整數據報文個數初值B = 0,標識位identification初值Id
=0 ; ②檢查協議信息表中所有Identification域值為Id且未被處理過的數據包標誌 位Flag的域值; ③如果不存在標誌位Flag域值為0的數據包,則說明標識位Identification域 值為Id的數據報文不完整,沒有最後一個分段,則將標識位Identification域值為Id的 所有數據包均標識為已處理,並讀取下一個協議信息表信息,將標識位Identification的 域值賦值給Id,重複②; ④否則,設協議信息表當前數據包的偏移量初值OffsetValue = 0,檢查所有 Identification域值為Id的數據包的偏移量Offset的域值; ⑤如果不存在Offset域值等於0ffsetValue的數據包,則說明標識位Identification域值為Id的數據報文不完整,則將標識位Identification域值為Id的所 有數據包均標識為已處理,並讀取下一個協議信息表信息,將標識位Identification的域 值賦值給Id,重複②; ⑥否則,檢查該數據包的標誌位Flag域值是否為0,如果為0,說明標識位 Identification域值為Id的數據報文已完整收到,將收到的完整數據報文個數B增加1 ; 將該數據包標識為已處理,並讀取下一個協議信息表信息,將標識位Identification的域 值賦值給Id,重複②; ⑦如果該數據包的標誌位Flag域值不為O,將該數據包標識為已處理,同時進 行如下賦值0ffsetValue = OffsetValue+TotalLen-HeadLen,其中TotalLen為數據 包總長度,HeadLen為數據包的頭長度,然後繼續檢查是否有數據包的Offset域值等於 0ffsetValue,重複⑤; 將所有的協議信息表都處理完成後,所得到的B值即為信宿端收到的完整數據報 文個數。 所述步驟S5具體為 根據所述步驟S43中信宿端接收到的完整數據報文個數B、所述步驟S44中信 源端發送的完整數據報文總數A;從而計算出網絡中來自該信源端的數據報文的丟包率
P = (l-^)xl00%。
本發明還提供了一種監測網絡丟包率的系統,所述系統包括
數據包獲取模塊,用於在信宿端捕獲數據包; 數據包存儲模塊,用於存儲所述數據包的頭部信息;利用所述頭部信息將每個數 據包連續地存儲在協議信息表中,其中,來自不同信源端的數據包存儲在不同的協議信息 表中,在協議信息表中按照數據包的標識位identification的域值從小到大順序存儲;
數據包分析模塊,用於根據所述協議信息表中的信息計算信源端發送的完整數據 報文個數以及信宿端接收到的完整數據報文個數; 丟包率計算模塊,用於根據所述信源端發送的完整數據報文個數以及信宿端接收
到的完整數據報文個數計算得到所述網絡中來自該信源端的數據報文的丟包率。 所述信宿端和信源端為處於IP安全協議IPSec網絡中的通信節點。 所述數據包分析模塊包括信源端發送數據報文計算模塊,其用於根據所述協議
信息表中的信息判斷數據包使用的安全聯盟SA是否經過重新協商;然後保存SA重新協商
次數以及每次重新協商後使用的最大SA序列號MaxSA,根據每次重新協商後使用的最大SA
序列號確定該次重新協商後信源端發送的完整數據報文個數; 判斷SA是否經過重新協商並計算每次重新協商後使用的最大SA序列號時,首先 初始化SA協商次數SAContNum = 0 ;讀取每個數據包的SPI值,當SPI值發生改變時,代表 SA重新協商;每次SA重新協商,SA協商次數加1 ;在每次SA重新協商後,初始化本次重新 協商後SA序列號最大值MaxSA = 0 ;每讀取一個數據包,比較數據包的SA序列號與MaxSA 的大小,若前者大於後者,則將當前的SA序列號賦值給MaxSA,依次操作,從而得到本次SA 協商後最大的SA序列號,也即本次重新協商後信源端發送的完整數據報文個數。
所述數據包分析模塊還包括信宿端接收報文計算模塊,其用於確定數據報文是否完整,並計算信宿端收到的完整數據報文個數B ; 確定數據報文是否完整並計算信宿端收到的完整數據報文數時, ①設信宿端收到的完整數據報文個數初值B = 0,標識位identification初值Id
=0 ; ②檢查協議信息表中所有Identification域值為Id且未被處理過的數據包標誌 位Flag的域值; ③如果不存在標誌位Flag域值為0的數據包,則說明標識位Identification域 值為Id的數據報文不完整,沒有最後一個分段,則將標識位Identification域值為Id的 所有數據包均標識為已處理,並讀取下一個協議信息表信息,將標識位Identification的 域值賦值給Id,重複②; ④否則,設協議信息表當前數據包的偏移量初值OffsetValue = 0,檢查所有 Identification域值為Id的數據包的偏移量Offset的域值; ⑤如果不存在Offset域值等於0ffsetValue的數據包,則說明標識位 Identification域值為Id的數據報文不完整,則將標識位Identification域值為Id的所 有數據包均標識為已處理,並讀取下一個協議信息表信息,將標識位Identification的域 值賦值給Id,重複②; ⑥否則,檢查該數據包的標誌位Flag域值是否為0,如果為0,說明標識位 Identification域值為Id的數據報文已完整收到,將收到的完整數據報文個數B增加1 ; 將該數據包標識為已處理,並讀取下一個協議信息表信息,將標識位Identification的域 值賦值給Id,重複②; ⑦如果該數據包的標誌位Flag域值不為O,將該數據包標識為已處理,同時進 行如下賦值0ffsetValue = OffsetValue+TotalLen-HeadLen,其中TotalLen為數據 包總長度,HeadLen為數據包的頭長度,然後繼續檢查是否有數據包的Offset域值等於 0ffsetValue,重複⑤; 將所有的協議信息表都處理完成後,所得到的B值即為信宿端收到的完整數據報 文個數。 上述技術方案具有如下優點本發明採用被動監測丟包率的方法,不會給網絡帶 來額外的符合,也不需要更改數據幀的結構或者內容;實時監測丟包率,可以及時監測網絡 運行性能,監控網絡質量;無需知道IPSec VPN網絡內部拓撲結構,也無需在網絡內部安置 檢測器即可較為準確的估算出網絡丟包率;只在網絡一端即可計算丟包率,無需將計算設 備增設到網絡的每一臺設備中,可以節省成本。


圖1為本發明實施例的監測網絡丟包率的方法流程圖; 圖2為本發明實施例的方法中過濾數據包流程圖; 圖3為本發明實施例的方法中存儲數據包信息流程圖; 圖4為本發明實施例的方法中計算信源端發送的完整數據報文個數流程圖; 圖5為本發明實施例的方法中計算信宿端收到的完整數據報文個數流程圖; 圖6為對本發明實施例的方法進行仿真時的網絡拓撲 圖7為對圖6所示的網絡進行仿真的結果示意圖。
具體實施例方式
下面結合附圖和實施例,對本發明的具體實施方式
作進一步詳細描述。以下實施 例用於說明本發明,但不用來限制本發明的範圍。 依據本發明實施例的監測網絡丟包率的方法流程如圖1所示, 步驟101,使用網絡抓包工具winpc即抓取IPSec VPN網絡信宿端網卡上的數據包
並存儲抓包時間可以自由確定,即可以是一直持續的,也可以選擇某一個時間段;每次抓
包的時間長度也是可以自由確定的,即可以每次持續時間長度不同。所有數據包的目的IP
地址均為宿端的IP位址。 步驟102,讀取cap文件,過濾得到IP/ESP數據包對存儲在cap文件中的數據包 從頭開始讀取,首先檢查收到的數據包是否為IP數據包,不是IP包則越過該數據包讀下一 個數據包。如果是IP數據包,分析其內部協議是否為ESP協議,不是ESP數據包則越過讀取 下一個數據包。如果是ESP數據包,則對數據包的IP頭和ESP頭信息進行存儲之後分析。 其流程參見如圖2所示的步驟201 205。 步驟103,存儲數據包信息的流程參見圖2 3所示的步驟301 305。由於不同 的信源端可能同時向同一個信宿端發送數據包,所以在存儲IP/ESP信息時,應先檢查數據 包的源IP位址,不同信源端的數據包存儲到不同的協議信息表中。 同時,由於底層網絡傳輸數據都存在最大傳輸單元MTU的限制,一個完整的數據 報文在IP層可能會根據MTU被分段,分成幾個數據包,同一報文被分段後,各分段的IP頭 中Identification域值相同。 在後面計算完整報文數中,我們需要知道同一個Identification共有幾個分段,
而由於IP協議的無連接特性,導致數據包可能不是按照發送順序到達目的地址的,同時源
端每發送一個報文,Identification的值就會增1,因此為了方便檢查數據報文的完整性,
而不是每查一個分段都要在所有已存信息中檢索一遍,我們在存儲數據包信息時將數據包
按照Identification域值從小到大順序存儲,Identification域值相同的數據包會被連
續地存儲在協議信息表中。 信息協議表包括以下內容 例如,若為IPv4網絡,則IPv4協議中的內容為版本Version,頭長度HeadLen,服 務類型T0S,總長度TotalLen,標識位Identification,生存時間TTL,標誌位Flag,偏移量 Offset,協議Protocol,校驗和CheckSum,源IP位址SrcIP,目的IP位址DestIP。還包括 ESP協議相關信息安全參數索引SPI,安全聯盟序列號SASeq。為了便於處理信息,還包括 數據包編號PacketN咖,安全聯盟協商次數SAContN咖,數據包是否被處理isDesposed。
步驟104,計算收到的完整報文數和發送的完整報文數。在信宿端我們接收到的都 是IP數據包,每個數據包可能是完整的報文,也可能是一個報文的分段,因此我們要在宿 端統計接收到的完整的報文數,就需要知道每個數據包是否是一個分段,如果是分段則需 要確定該報文的所有分段是否都被接收到。通過步驟103,已經將同一個報文的所有分段都 連續地存儲在協議信息表中。在本步驟中我們將從協議信息表中讀出每個數據包的信息, 並完成以下功能
(1)判斷該數據包使用的SA是否經過重新協商; (2)保存SA重新協商次數以及每次重新協商使用的最大SA序列號; (3)處理分段數據包,確定報文是否完整,並計算信宿端接收到的完整數據報文個
數B ; (4)將每次重新協商後信源端發送的完整數據報文個數求和,得到信源端發送的
完整數據報文總數 Z^"x&i A ="=i ; 其中,判斷SA是否經過重新協商以及獲得每次SA重新協商後使用的最大SA序列 號的方法為初始化SA協商次數SAContNum = 0。讀取每個數據包的SPI值,當SPI值發 生改變時,代表SA重新協商。每次SA重新協商,SA協商次數加1。在每次SA重新協商後, 初始化本次協商SA序列號最大值MaxSA = 0。每讀取一個數據包,比較數據包的SA序列號 與MaxSA的大小,若前者大於後者,則將當前SA序列號賦值給MaxSA,依次操作,從而得到本 次SA協商後最大的SA序列號,也即本次重新協商後信源端發送的完整數據報文總數。由 此可見,信源端發送報文數的計算主要根據IP包中的ESP頭信息計算,在IPSec隧道建立 後,通信雙方會協商SA,源端每發送一個報文,SA序列號會增加1, SA超時或者傳送字節數 超過闕值(由加密算法確定)時,雙方會重新協商SA,此時SPI值會改變,SA的序列號會重 新開始計算,Identification相同的數據包SPI和SA也相同。其流程如圖4中步驟401 407所示。 確定報文是否完整,並計算信宿端收到的完整數據報文個數B的方法為
①設信宿端收到的完整數據報文個數初值B = O,標識位初始值Id = 0。
②檢查協議信息表中所有Identification域值為Id且未被處理過的數據包 (isDisposed域的值為未處理)的標誌位Flag的域值。 ③如果不存在標誌位Flag域值為0的數據包,則說明標識位Identification域 值為Id的數據報文不完整,沒有最後一個分段,則將標識位Identification域值為Id的 所有數據包均標識為已處理(isDisposed的域值設置為已處理),並讀取下一個協議信息 表信息,將標識位Identification的域值賦值給Id,重複②; ④否則,設協議信息表當前數據包的偏移量初值OffsetValue = 0,檢查所有 Identification域值為Id的數據包的偏移量Offset的域值。 ⑤如果不存在Offset域值等於0ffsetValue的數據包,則說明標識位 Identification域值為Id的數據報文不完整,則將標識位Identification域值為Id的所 有數據包均標識為已處理(isDisposed的域值設置為已處理),並讀取下一個協議信息表 信息,將標識位Identification的域值賦值給Id,重複②; ⑥否則,檢查該數據包的標誌位Flag域值是否為0,如果為0,說明標識位 Identification域值為Id的數據報文已完整收到,將收到的完整數據報文個數B增加1 ; 將該數據包標識為已處理(isDisposed的域值設置為已處理),並讀取下一個協議信息表 信息,將標識位Identification的域值賦值給Id,重複②; ⑦如果該數據包的標誌位Flag域值不為0,將該數據包標識為已 處理(isDisposed域值設置為已處理),同時進行如下賦值OffsetValue = OffsetValue+TotalLen-HeadLen(其中TotalLen為數據包總長度,HeadLen為數據包的頭
11長度),然後繼續檢查是否有數據包的Offset域值等於OffsetValue,重複⑤。 將所有的協議信息表都處理完成後,所得到的B值即為信宿端收到的完整數據報
文個數。其流程如圖5所示的步驟408 420。 步驟105,計算丟包率。在本步驟中,我們直接使用步驟104計算所得信宿端收到 的完整數據報文總數B和信源端發送的完整數據報文總數A,最終可以計算出IPSec VPN網
絡中來自某一個源地址的數據報文的丟包率P-(l-導)x100。/。。
」 如果需要計算全網丟包率,則需要將信宿端收到的每個源地址發來的數據報文總 數求和,即E B,同時對每個源地址發送的所有數據報文求和,即E A,然後計算全網丟包率 以下舉例說明本發明實施例的方法。如圖6所示,為使用GNS3仿真軟體對IPSec VPN網絡進行丟包率監測實驗的網絡拓撲圖,其中,RO和Rl為信源端,持續向信宿端R3發 送數據包,通過在信宿端R3部署一個抓包工具,在信宿端R3的el/O埠處抓取數據包。 在控制臺每五分鐘抓一次c即文件,每次實驗抓取十次以上,並在R2處不定時使用filter 丟包命令。依據本發明上述實施例的方法對抓取到的包進行存儲、解析和計算,最終得到 IPSec VPN網絡的丟包率。 計算結果如圖7所示,圖中,粗實線為標準上限;一個信源端的丟包率計算一條折 線,不同信源端用不同線條區別。每個時間段計算出的丟包率值顯示在該點上方。從圖7 中可以很明顯的看出,信源端16. 1. 1.0發送的數據包丟包率在第4個時間段內超出了標準 上限。 本發明的實施例還提供了一種監測網絡丟包率的系統,該系統包括
數據包獲取模塊,用於在信宿端捕獲數據包; 數據包存儲模塊,用於存儲所述數據包的頭部信息;利用所述頭部信息將每個數 據包連續地存儲在協議信息表中,其中,來自不同信源端的數據包存儲在不同的協議信息 表中,在協議信息表中按照數據包的標識位(identification)的域值從小到大順序存儲;
數據包分析模塊,用於根據所述協議信息表中的信息計算信源端發送的完整數據 報文個數以及信宿端接收到的完整數據報文個數; 丟包率計算模塊,用於根據所述信源端發送的完整數據報文個數以及信宿端接收
到的完整數據報文個數計算得到所述網絡中來自該信源端的數據報文的丟包率。 由以上實施例可以看出,本發明採用被動監測丟包率的方法,不會給網絡帶來額
外的符合,也不需要更改數據幀的結構或者內容;實時監測丟包率,可以及時監測網絡運行
性能,監控網絡質量;無需知道IPSec VPN網絡內部拓撲結構,也無需在網絡內部安置檢測
器即可較為準確的估算出網絡丟包率;只在網絡一端即可計算丟包率,無需將計算設備增
設到網絡的每一臺設備中,可以節省成本。 以上所述僅是本發明的優選實施方式,應當指出,對於本技術領域的普通技術人 員來說,在不脫離本發明技術原理的前提下,還可以做出若干改進和變型,這些改進和變型 也應視為本發明的保護範圍。
權利要求
一種監測網絡丟包率的方法,其特徵在於,所述方法包括以下步驟S1,在信宿端捕獲數據包;S2,存儲所述數據包的頭部信息;S3,利用所述頭部信息將每個數據包連續地存儲在協議信息表中,其中,來自不同信源端的數據包存儲在不同的協議信息表中,在協議信息表中按照讀到的數據包的標識位identification域值從小到大順序存儲;S4,在信宿端根據所述協議信息表中的信息計算信源端發送的完整數據報文個數以及信宿端接收到的完整數據報文個數;S5,根據所述信源端發送的完整數據報文個數以及信宿端接收到的完整數據報文個數計算得到來自該信源端的數據報文的丟包率。
2. 如權利要求1所述的監測網絡丟包率的方法,其特徵在於,所述信宿端和信源端為 處於IP安全協議IPSec網絡中的通信節點。
3. 如權利要求2所述的監測網絡丟包率的方法,其特徵在於,所述步驟S2具體為對 所述數據包從頭開始讀取,首先檢查該數據包是否為IP數據包,若不是,則讀取下一個數 據包;否則,判斷該數據包的內部協議是否為封裝安全負載ESP協議,若不是則讀取下一個 數據包,否則存儲該數據包的IP頭部信息及ESP頭部信息。
4. 如權利要求1 3之任一項所述的監測網絡丟包率的方法,其特徵在於,所述步驟 S4具體為S41,根據所述協議信息表中的信息判斷該數據包使用的安全聯盟SA是否經過重新協商;S42,保存SA重新協商次數以及每次重新協商後使用的最大SA序列號MaxSA,根據每次 重新協商後使用的最大SA序列號確定該次重新協商後信源端發送的完整數據報文個數; S43,確定數據報文是否完整,計算信宿端接收到的完整數據報文個數B ; S44,將每次重新協商後信源端發送的數據報文個數求和,得到信源端發送的數據報文總數 2]M^&i A = "=i ;其中,判斷SA是否經過重新協商以及獲得每次SA重新協商後使用的最大SA序列號的 方法為初始化SA協商次數SAContNum = 0 ;讀取每個數據包的SPI值,當SPI值發生改變 時,代表SA重新協商;每次SA重新協商,SA協商次數加1 ;在每次SA重新協商後,初始化 本次重新協商後SA序列號最大值MaxSA = 0 ;每讀取一個數據包,比較數據包的SA序列號 與MaxSA的大小,若前者大於後者,則將當前的SA序列號賦值給MaxSA,依次操作,從而得到 本次SA協商後最大的SA序列號,也即本次重新協商後信源端發送的完整數據報文個數;確定數據報文是否完整,並計算信宿端收到的完整數據報文個數B的方法為① 設信宿端收到的完整數據報文個數初值B = O,標識位初值Id = 0 ;② 檢查協議信息表中所有Identification域值為Id且未被處理過的數據包的標誌位 Flag的域值;③ 如果不存在標誌位Flag域值為0的數據包,則說明標識位Identification域值為 Id的數據報文不完整,沒有最後一個分段,則將標識位Identification域值為Id的所有數 據包均標識為已處理,並讀取下一個協議信息表信息,將標識位Identification的域值賦值給Id,重複②; 否則,設協議信息表當前數據包的偏移量初值OffsetValue = 0,檢查所有 Identification域值為Id的數據包的偏移量Offset的域值;⑤ 如果不存在Off set域值等於Off setValue的數據包,則說明標識位Identification 域值為Id的數據報文不完整,則將標識位Identification域值為Id的所有數據包均標識 為已處理,並讀取下一個協議信息表信息,將標識位Identification的域值賦值給Id,重 復②;⑥ 否貝U,檢查該數據包的標誌位Flag域值是否為0,如果為0,說明標識位 Identification域值為Id的數據報文已完整收到,將收到的完整數據報文個數B增加1 ; 將該數據包標識為已處理,並讀取下一個協議信息表信息,將標識位Identification的域 值賦值給Id,重複②;⑦ 如果該數據包的標誌位Flag域值不為O,將該數據包標識為已處理,同時進行如下 賦值OffsetValue = OffsetValue+TotalLen-HeadLen,其中TotalLen為數據包總長度, HeadLen為數據包的頭長度,然後繼續檢查是否有數據包的Offset域值等於OffsetValue, 重複⑤;將所有的協議信息表都處理完成後,所得到的B值即為信宿端收到的完整數據報文個數。
5. 如權利要求4所述的監測網絡丟包率的方法,其特徵在於,所述步驟S5具體為 根據所述步驟S43中信宿端接收到的完整數據報文個數B、所述步驟S44中信源端發送的完整數據報文總數A;從而計算出網絡中來自該信源端的數據報文的丟包率P = (l_2)xlOOo/0。
6. —種監測網絡丟包率的系統,其特徵在於,所述系統包括 數據包獲取模塊,用於在信宿端捕獲數據包;數據包存儲模塊,用於存儲所述數據包的頭部信息;利用所述頭部信息將每個數據包 連續地存儲在協議信息表中,其中,來自不同信源端的數據包存儲在不同的協議信息表中, 在協議信息表中按照數據包的標識位identification的域值從小到大順序存儲;數據包分析模塊,用於根據所述協議信息表中的信息計算信源端發送的完整數據報文 個數以及信宿端接收到的完整數據報文個數;丟包率計算模塊,用於根據所述信源端發送的完整數據報文個數以及信宿端接收到的完整數據報文個數計算得到所述網絡中來自該信源端的數據報文的丟包率。
7. 如權利要求6所述的監測網絡丟包率的系統,其特徵在於,所述信宿端和信源端為 處於IP安全協議IPSec網絡中的通信節點。
8. 如權利要求6所述的監測網絡丟包率的系統,其特徵在於,所述數據包分析模塊包 括信源端發送數據報文計算模塊,其用於根據所述協議信息表中的信息判斷數據包使用 的安全聯盟SA是否經過重新協商;然後保存SA重新協商次數以及每次重新協商後使用的 最大SA序列號MaxSA,根據每次重新協商後使用的最大SA序列號確定該次重新協商後信源 端發送的完整數據報文個數;判斷SA是否經過重新協商並計算每次重新協商後使用的最大SA序列號時,首先初始化SA協商次數SAContNum = 0 ;讀取每個數據包的SPI值,當SPI值發生改變時,代表SA重 新協商;每次SA重新協商,SA協商次數加1 ;在每次SA重新協商後,初始化本次重新協商 後SA序列號最大值MaxSA = 0 ;每讀取一個數據包,比較數據包的SA序列號與MaxSA的大 小,若前者大於後者,則將當前的SA序列號賦值給MaxSA,依次操作,從而得到本次SA協商 後最大的SA序列號,也即本次重新協商後信源端發送的完整數據報文個數。
9.如權利要求6所述的監測網絡丟包率的系統,其特徵在於,所述數據包分析模塊還 包括信宿端接收報文計算模塊,其用於確定數據報文是否完整,並計算信宿端收到的完整 數據報文個數B ;確定數據報文是否完整並計算信宿端收到的完整數據報文數時,① 設信宿端收到的完整數據報文個數初值B = O,標識位identification初值Id =0 ;② 檢查協議信息表中所有Identification域值為Id且未被處理過的數據包標誌位 Flag的域值;③ 如果不存在標誌位Flag域值為0的數據包,則說明標識位Identification域值為 Id的數據報文不完整,沒有最後一個分段,則將標識位Identification域值為Id的所有數 據包均標識為已處理,並讀取下一個協議信息表信息,將標識位Identification的域值賦 值給Id,重複②; 否則,設協議信息表當前數據包的偏移量初值OffsetValue = 0,檢查所有 Identification域值為Id的數據包的偏移量Offset的域值;⑤ 如果不存在Off set域值等於Off setValue的數據包,則說明標識位Identification 域值為Id的數據報文不完整,則將標識位Identification域值為Id的所有數據包均標識 為已處理,並讀取下一個協議信息表信息,將標識位Identification的域值賦值給Id,重 復②;⑥ 否貝U,檢查該數據包的標誌位Flag域值是否為0,如果為0,說明標識位 Identification域值為Id的數據報文已完整收到,將收到的完整數據報文個數B增加1 ; 將該數據包標識為已處理,並讀取下一個協議信息表信息,將標識位Identification的域 值賦值給Id,重複②;⑦ 如果該數據包的標誌位Flag域值不為O,將該數據包標識為已處理,同時進行如下 賦值OffsetValue = OffsetValue+TotalLen-HeadLen,其中TotalLen為數據包總長度, HeadLen為數據包的頭長度,然後繼續檢查是否有數據包的Offset域值等於OffsetValue, 重複⑤;將所有的協議信息表都處理完成後,所得到的B值即為信宿端收到的完整數據報文個數。
全文摘要
本發明公開了一種監測網絡丟包率的方法及系統。該方法包括步驟在信宿端捕獲數據包;存儲所述數據包的頭部信息;利用所述頭部信息將每個數據包連續地存儲在協議信息表中,其中,來自不同信源端的數據包存儲在不同的協議信息表中,在協議信息表中按照讀到的數據包的標識位的值從小到大順序存儲。在信宿端根據所述協議信息表中的信息計算信源端發送的完整數據報文個數以及信宿端接收到的完整數據報文個數;根據所述信源端發送的完整數據報文個數以及信宿端接收到的完整數據報文個數計算得到所述網絡中來自該信源端的數據報文的丟包率。本發明的方法不會給網絡帶來額外的負荷,也不需要更改數據幀的結構或者內容,能實時監測丟包率,成本低。
文檔編號H04L12/46GK101783715SQ20091023796
公開日2010年7月21日 申請日期2009年11月19日 優先權日2009年11月19日
發明者劉會永, 孟朱麗, 李文璟, 王智立, 詹志強, 陳興渝 申請人:北京郵電大學

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀