專利名稱:網絡信令監(jiān)測方法及設備的制作方法
技術領域:
本發(fā)明涉及網絡通信技術,尤其涉及網絡信令監(jiān)測方法及設備。
背景技術:
IP多媒體子系統(tǒng)(IMS, IP Multimedia Subsystem)是下一代網絡的核心技術,IMS域中所涉及到的應用層協(xié)議大部分都由傳輸控制協(xié)議(TCP, Transmission ControlProtocol)承載。TCP是一個面向連接的傳輸層協(xié)議,雖然TCP不屬于國際標準化組織(IS0,International Organization for Standardization)制定的協(xié)議集,但由于其在商業(yè)界和工業(yè)界的成功應用,已成為事實上的網絡標準,廣泛應用于各種網絡主機間的通信中。通過網絡信令監(jiān)測方式對MS各個接口的TCP流進行分析,以對MS網絡進行維·護,是一種重要的手段。進行網絡信令監(jiān)測時從IMS各個接口獲取TCP流,從TCP流種界定出一個個完整的包數據單元(rou,Packet DataUnit),對界定出的PDU進行解碼分析。對TCP流進行網絡信令分析,須基于PDU進行解碼分析,因此,需先從TCP流中界定出rou。但是,由于TCP是一種面向字節(jié)流的協(xié)議,數據是以字節(jié)流進行傳輸的,沒有消息邊界,這給網絡信令監(jiān)測帶來了不少困難。為了從TCP流中確定出rou,目前通常采用下述三種方法(I)進行網絡信令監(jiān)測時,獲取的TCP流為一個一個的TCP包,也稱為TCP段;TCP段包括TCP頭和TCP段數據內容,每個TCP段承載的上層協(xié)議消息即TCP段數據內容部分,該方法假定每個TCP段數據內容上承載的上層協(xié)議消息都是完整的,也就是將每個TCP段數據內容視為一個H)U。這種做法雖然簡單快捷,但常出現PDU界定錯誤的情況。該方法中沒有涉及到定界技術,很難準確地界定出rou,從而導致網絡信令監(jiān)測的準確性較低。(2)本方法將rou的定界過程和解碼分析過程放在一個分析模塊中實現。TCP上的承載的協(xié)議數據都送往該模塊,該模塊進行TCP流分析,跟蹤TCP流的建立過程,跟蹤到連接建立成功消息,便可將該連接建立成功消息后數據內容中的第一個字節(jié)界定為rou的起始點,然后將數據流緩存起來,根據ProtoA協(xié)議的規(guī)范,找出一個ProtoA的TOU的結束位置,ProtoA為TCP上承載的需要進行信令監(jiān)測的上層協(xié)議,建立成功消息位于TCP頭中;然后,再以當前PDU的結束位置作為下一個PDU的開始點,并根據規(guī)范找出下一個PDU的結束點,若緩存的數據不夠長,則繼續(xù)接收下一個TCP段,獲取其數據內容,如此下去便可逐個界定出各rou。該方法引入了 PDU界定技術,但只適合TCP連接是短連接或者能監(jiān)測到TCP連接建立初始階段的情況。對于TCP短連接的情況,如果沒有監(jiān)測到某個短連接的初始階段,至多丟棄這個短連接中所傳遞的rou (通常一個短連接中的PDU數量不多),待到下一個短連接的開始便可界定出rou ;雖然如此,該方法還是丟棄了一些本可定界出來的rou。而對于TCP長連接或不能監(jiān)測到TCP連接建立初始階段的情況,一旦錯過了連接建立初始階段的TCP段,就無法定界開始點,從而無法準確確定出rou。可見,方法二具有局限性,其準確性不高,也導致了網絡信令監(jiān)測的準確性較低。(3)本方法把rou的定界過程和解碼分析過程放在一個分析模塊中實現。該方法以接收到的TCP段作為判定單位,分析每個收到的TCP段,根據ProtoA的協(xié)議規(guī)范,判斷當前TCP段數據內容開始部分的特征是否恰好符合ProtoA的H)U的特征,如果是,則以當前TCP段數據內容作為界定的開始,從而將當前TCP段數據內容及后續(xù)的各TCP段數據內容分別界定成一個I3DU ;如果不是,則忽略當前TCP段,接收下一個TCP段,繼續(xù)上述分析,直到找到符合ProtoA PDU特征的TCP段為止。為了適應更廣泛的范圍,該方法以TCP段作為判定粒度進行PDU界定,但該方法過于粗糙;因為獲取的TCP段數據內容的開始部分很少有剛好是PDU開始部分的情況,并且,即使找到某個TCP段數據內容的開始部分正好是PDU的開始部分,也會丟掉不少TCP段,丟失的TCP段將影響網絡信令監(jiān)測的準確性。
發(fā)明內容
本發(fā)明提供了一種網絡信令監(jiān)測方法,該方法能夠提高網絡信令監(jiān)測的準確性。本發(fā)明提供了一種網絡信令監(jiān)測設備,該設備能夠一種網絡信令監(jiān)測方法,該方法包括緩存?zhèn)鬏斂刂茀f(xié)議TCP段數據內容;用包數據單元PDU特征逐字節(jié)去匹配緩存的TCP段數據內容,匹配成功則界定出PDU的起始點,確定出rou ;對確定出的PDU進行解碼分析。一種網絡信令監(jiān)測設備,該設備包括界定模塊和主分析模塊;所述界定模塊,用于緩存TCP段數據內容,用PDU特征逐字節(jié)去匹配緩存的TCP段數據內容,匹配成功則界定出PDU的起始點,確定出rou,傳送給所述主分析模塊;所述主分析模塊,用于對確定出的PDU進行解碼分析。從上述方案可以看出,本發(fā)明用PDU特征逐字節(jié)去匹配緩存的TCP段數據內容,細化了判定粒度,如果與TCP段數據內容中的部分字節(jié)匹配上,便可界定出rou的起始點,進而確定出rou,使PDU界定更加準確,從而提高了網絡信令監(jiān)測的準確性;并且,采用本發(fā)明方案,因未匹配上而丟失的數據較少,進一步提高了網絡信令監(jiān)測準確性。
圖I為本發(fā)明網絡信令監(jiān)測方法的示意性流程圖;圖2為本發(fā)明網絡信令監(jiān)測設備的結構示意圖;圖3為本發(fā)明網絡信令監(jiān)測方法的流程圖實例。
具體實施例方式為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚明白,下面結合實施例和附圖,對本發(fā)明進一步詳細說明。為了描述方面,同樣地,將基于TCP承載的當前被分析的上層協(xié)議用ProtoA表示。本發(fā)明基于ProtoA PDU結構特點,用ProtoA PDU特征對TCP段數據內容逐字節(jié)進行匹配,細化了判定粒度。參見圖1,為本發(fā)明網絡信令監(jiān)測方法的示意性流程圖,該方法包括以下步驟步驟101,緩存TCP段數據內容。接收待分析的TCP段后,可直接緩存TCP段數據內容;也可以跟蹤TCP流的建立過程,先監(jiān)測該TCP段中是否包含連接建立成功消息,具體地判斷接收的TCP段中是否包含連接建立成功消息,如果是,如果有,則將該連接建立完成消息后數據內容中的第一個字節(jié)界定為PDU起始點;如果沒有,則執(zhí)行所述緩存TCP段數據內容的步驟。步驟102,用PDU特征逐字節(jié)去匹配緩存的TCP段數據內容,匹配成功則界定出PDU的起始點,確定出rou。
基于ProtoA PDU結構特點,將I3DU中比較特殊的部分,尤其是開頭部分或結尾部分等作為PDU特征;PDU特征例如為位于PDU起始點的頭部特殊標識、位于PDU中指定位置的版本信息字段、長度字段等。一般地,ProtoA PDU的結構中都有一些顯著的頭部特殊標識,該頭部特殊標識在PDU的其它部分不會出現,將頭部特殊標識作為rou特征,則可大大提高rou判定的準確性。以 ProtoA 是會話初始化協(xié)議(SIP, SessionInitiation Protocol)為例,其 PDU 以 Invite、200 OK等字符作為開始,只要監(jiān)測到這些字符,便可將這些字符作為rou的起始點,而rou 的長度是已知的,進而便可確定出rou的結束點,進而確定出一個完整的rou。版本信息字段、長度字段也是ProtoA PDU結構中一些顯著的特殊標識,位于TOU中的指定位置,若以版本信息字段或長度字段作為PDU特征,監(jiān)測到緩存的TCP段數據內容中包含版本信息字段或長度字段,根據其在PDU中所處的位置便可確定出PDU的起始點,確定出起始點之后,再根據rou的長度確定出rou的結束點,進而確定出一個完整的rou。用于匹配判定的PDU特征可以是一個,為了提高準確性,PDU特征也可以是兩個以上。同樣以ProtoA是SIP為例進行說明,對SIP PDU進行結構分析后獲知其PDU的開始部分為INVITE、ACK、OPTIONS、BYE、CANCEL或REGISTER等字符,跟一個空格符,再跟版本信息;或者,其rou的開始部分為版本信息接一個空格,再跟3個數字表示的狀態(tài)碼。因此,可以將上述的兩個開始部分作為SIP PDU的特征,對TCP段數據內容進行判定時,只要與其中一個特征匹配,便可將相應的字節(jié)界定為rou的起始點,進而確定出rou。用ProtoA PDU特征去匹配緩存的TCP段數據內容中的第一個字節(jié),如果匹配成功,則可以界定出PDU的起始點,確定出第一個PDU,后續(xù)rou便可相應定界出來,這樣,被監(jiān)測的TCP流就被定位成功;如果沒有匹配成功,則用ProtoA PDU特征去匹配第二個字節(jié),若仍匹配未成功,則用ProtoA PDU特征去匹配下一字節(jié),以此類推,直到匹配成功為止。本步驟中,也可以待緩存的TCP段數據內容的數據長度達到設定長度時,才觸發(fā)匹配判定,具體地判斷緩存的TCP段數據內容的數據長度是否達到設定長度,如果是,則執(zhí)行所述用PDU特征逐字節(jié)去匹配緩存的TCP段數據內容的步驟。所述設定長度可根據需要設置,一般地,可將設定長度設置為ProtoAPDU的2倍,因為ProtoA PDU 2倍長度的TCP流中通常包含至少一個完整的rou。從緩存的TCP段數據內容中的第一個字節(jié)開始去匹配,可能碰巧成功,但接下來的剩余數據又可能匹配不上,這時通常出現了誤判;為了防止誤判,也可以將設定長度設置為更大的值,以足夠容納兩個以上完整的H)U,比如將其設置為ProtoA PDU的5倍;這樣,匹配成功一次后,在此基礎上繼續(xù)匹配后續(xù)的數據,看是否也能匹配成功,一般地,如果接連兩次匹配成功后再界定rou的起始點,將大大減小誤判的可能性。步驟103,對確定出的PDU進行解碼分析。參見圖2,為本發(fā)明網絡信令監(jiān)測設備的結構示意圖,其包括界定模塊和主分析模塊; 所述界定模塊,用于緩存TCP段數據內容,用PDU特征逐字節(jié)去匹配緩存的TCP段數據內容,匹配成功則界定出PDU的起始點,確定出rou,傳送給所述主分析模塊; 所述主分析模塊,用于對確定出的PDU進行解碼分析??蛇x地,所述界定模塊包括緩存區(qū)和界定子單元;所述緩存區(qū),用于緩存TCP段數據內容;所述界定子單元,用PDU特征逐字節(jié)去匹配緩存的TCP段數據內容,匹配成功則界定出rou的起始點,確定出rou,傳送給所述主分析模塊??蛇x地,所述界定模塊還包括連接建立判定子單元,用于判斷接收的TCP段中是否包含連接建立成功消息,如果是,則將該連接建立完成消息后數據內容中的第一個字節(jié)界定為PDU起始點,確定出rou,傳送給所述主分析模塊;否則,將接收的TCP傳送到緩存區(qū)??蛇x地,所述緩存區(qū)中還包括長度判定子單元,用于判斷緩存的TCP段數據內容的數據長度是否達到設定長度,如果是,則向所述界定子單元發(fā)送啟動指令;所述界定子單元接收所述啟動指令后,用PDU特征逐字節(jié)去匹配緩存的TCP段數據內容。這里將網絡信令監(jiān)測設備分成界定模塊和主分析模塊兩部分,而不是像現有技術都在主分析模塊完成網絡信令監(jiān)測。首先是因為進行PDU定界的工作邏輯本身就比較復雜,涉及到TCP流跟蹤、緩沖區(qū)管理、PDU定界、PDU確定提交等,PDU確定提交也就是,將緩沖區(qū)里的若干連續(xù)字節(jié)合在一起形成PDU提交給主分析模塊;而基于完整rou的解碼分析工作也有可能很復雜,其復雜度依業(yè)務分析功能需求而定;這兩類工作分開在不同的模塊中邏輯會更清晰。其次,是因為ProtoA協(xié)議通常也可以由其他承載協(xié)議承載,如UDP等;在基于PDU的前提下,無論哪種承載,其主體分析邏輯,即PDU界定的工作邏輯幾乎是一樣的,將PDU界定與解碼分析區(qū)分開來,可提高主分析模塊的復用度。不同的TCP流具有不同的方向性,根據接收的待分析的TCP段中的方向性信息,便可獲知TCP流方向,所述方向性信息包括源IP地址、源端口、目的IP地址和目的端口。所述網絡信令監(jiān)測設備中可以包括多個界定模塊,所述界定模塊為多個,每個對應不同方向的TCP流,該設備還包括方向獲取單元,用于從接收的TCP段中的方向性信息獲取TCP流方向,將接收的TCP傳送給對應的界定模塊。具體運用軟件程序實現時,每個界定模塊可基于一個TCP流對象完成,方向獲取單元可基于一個ProtoAFix對象實現,每個TCP流對象都有一個狀態(tài)是否定位,即是否界定出I3DU ;ProtoAFix對象的主要功能是管理各個TCP流對象,應用這些TCP流對象進行I3DU定界。圖3是ProtoAFix對象的主控函數的處理流程,其包括以下步驟
步驟301,從接收的TCP段中的方向性信息獲取TCP流方向。步驟302,根據獲取的TCP流方向,判斷是否存在相應的TCP流處理對象,如果是,則執(zhí)行步驟304 ;否則執(zhí)行步驟303。步驟303,依據獲取的方向性信息創(chuàng)建一個TCP流處理對象,并將其初始化為未定位狀態(tài),并加入到ProtoAFix的TCP流對象組中,執(zhí)行步驟304。步驟304,將接收的TCP段傳給相應的TCP流對象進行界定處理。相應的TCP流對象用PDU特征逐字節(jié)去匹配緩存的TCP段數據內容,以界定出完整的rou。具體地,TCP流對象主函數的處理包括判斷本TCP流是否處于定位狀態(tài),如果是,則直接將當前接收的TCP段的數據內容置入緩存區(qū),進行PDU合成,若數據長度不夠,則繼續(xù)接收下一個TCP段,直至能夠合成一個完整的rou,然后等待下一個TCP段的到來,繼續(xù)下一個rou的合成;如果本TCP流不是處于定位狀態(tài),則先判斷當前接收的TCP段中是否包含連接建 立成功消息,如果是,則將該連接建立完成消息后數據內容中的第一個字節(jié)界定為PDU起始點,確定出rou ;否則將當前接收的TCP段數據內容置入緩存區(qū),判斷緩存的TCP段數據內容的數據長度是否達到設定長度,如果是,則用rou特征逐字節(jié)去匹配緩存的TCP段數據內容,如果緩存的TCP段數據內容的數據長度小于設定長度,則繼續(xù)接收下一個TCP段。步驟305,如果TCP流對象處理失敗,則結束流程;如果TCP流對象處理成功,則循環(huán)彈出rou,提交給主分析模塊。本發(fā)明不僅適用于MS信令監(jiān)測,也適用于其它進行IP網絡監(jiān)測的情形。 采用本發(fā)明方案,判定粒度更細,使PDU界定更加準確,從而提高了網絡信令監(jiān)測的準確性;也使丟失的數據僅限于字節(jié)級,也減少了丟失的數據量,進一步提高了網絡信令監(jiān)測準確性。并且,本發(fā)明方案的適用范圍廣,既適用于TCP連接是短連接以及能監(jiān)測到TCP連接建立初始階段的情況,也適用于TCP連接是長連接以及沒有檢測到TCP連接建立初始階段的情況。因為即使沒有監(jiān)測到TCP連接建立初始階段的數據,也可以用PDU特征逐字匹配的方法進行流定位,以從殘缺流中界定出一個個完整的rou。以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發(fā)明保護的范圍之內。
權利要求
1.一種網絡信令監(jiān)測方法,其特征在于,該方法包括 緩存?zhèn)鬏斂刂茀f(xié)議TCP段數據內容; 用包數據單元PDU特征逐字節(jié)去匹配緩存的TCP段數據內容,匹配成功則界定出rou的起始點,確定出rou ; 對確定出的PDU進行解碼分析。
2.如權利要求I所述的方法,其特征在于,所述緩存TCP段數據內容之前,該方法還包括 判斷接收的TCP段中是否包含連接建立成功消息,如果是,則將該連接建立完成消息后數據內容中的第一個字節(jié)界定為PDU起始點,確定出rou,并執(zhí)行所述對確定出的PDU進行解碼分析的步驟;如果沒有,則執(zhí)行所述緩存TCP段數據內容的步驟。
3.如權利要求I所述的方法,其特征在于,所述用PDU特征逐字節(jié)去匹配緩存的TCP段數據內容之前,該方法還包括 判斷緩存的TCP段數據內容的數據長度是否達到設定長度,如果是,則執(zhí)行所述用rou特征逐字節(jié)去匹配緩存的TCP段數據內容的步驟。
4.如權利要求I所述的方法,其特征在于,所述rou特征包含位于PDU開始部分的頭部特殊標識;或者,所述PDU特征包含位于PDU中指定位置的版本信息字段或長度字段。
5.如權利要求I至4中任一項所述的方法,其特征在于,所述PDU特征為至少一個。
6.一種網絡信令監(jiān)測設備,其特征在于,該設備包括界定模塊和主分析模塊; 所述界定模塊,用于緩存TCP段數據內容,用PDU特征逐字節(jié)去匹配緩存的TCP段數據內容,匹配成功則界定出rou的起始點,確定出rou,傳送給所述主分析模塊; 所述主分析模塊,用于對確定出的PDU進行解碼分析。
7.如權利要求6所述的設備,其特征在于,所述界定模塊包括緩存區(qū)和界定子單元; 所述緩存區(qū),用于緩存TCP段數據內容; 所述界定子單元,用PDU特征逐字節(jié)去匹配緩存的TCP段數據內容,匹配成功則界定出PDU的起始點,確定出rou,傳送給所述主分析模塊。
8.如權利要求7所述的設備,其特征在于,所述界定模塊還包括連接建立判定子單元,用于判斷接收的TCP段中是否包含連接建立成功消息,如果是,則將該連接建立完成消息后數據內容中的第一個字節(jié)界定為PDU起始點,確定出rou,傳送給所述主分析模塊;否則,將接收的TCP傳送到緩存區(qū)。
9.如權利要求6所述的設備,其特征在于,所述緩存區(qū)中還包括長度判定子單元,用于判斷緩存的TCP段數據內容的數據長度是否達到設定長度,如果是,則向所述界定子單元發(fā)送啟動指令;所述界定子單元接收所述啟動指令后,用PDU特征逐字節(jié)去匹配緩存的TCP段數據內容。
10.如權利要求6至9中任一項所述的設備,其特征在于,所述界定模塊為多個,每個對應不同方向的TCP流,該設備還包括方向獲取單元,用于從接收的TCP段中的方向性信息獲取TCP流方向,將接收的TCP段傳送給對應的界定模塊。
全文摘要
本發(fā)明提供了網絡信令監(jiān)測方法及設備,其中,該方法包括緩存?zhèn)鬏斂刂茀f(xié)議TCP段數據內容;用包數據單元PDU特征逐字節(jié)去匹配緩存的TCP段數據內容,匹配成功則界定出PDU的起始點,確定出PDU;對確定出的PDU進行解碼分析。本發(fā)明方案能夠提高網絡信令監(jiān)測的準確性。
文檔編號H04L12/26GK102761457SQ20111011144
公開日2012年10月31日 申請日期2011年4月29日 優(yōu)先權日2011年4月29日
發(fā)明者戴力, 楊海龍, 陳維新 申請人:中國移動通信集團浙江有限公司