專利名稱:基于流量通信模式的服務角色識別方法
技術領域:
本發(fā)明涉及用于網(wǎng)絡服務主機的識別方法,尤其是一種基于流量通信模式的服務
角色識別方法。
背景技術:
在流量應用分類中,服務方及其端口是流量分類的一個重要測度值,能否正確識 別出服務方及其端口對流量應用類型有重要影響;(2)網(wǎng)絡管理員可以實時跟蹤所管網(wǎng)絡 內(nèi)的主機角色的變化,以防止客戶機獨自向外提供服務,影響網(wǎng)絡的正常運行;(3)根據(jù)主 機的,有助于判斷主機行為的異?;蛘!?傳統(tǒng)主機角色識別方法有三種TCP SYN報文識別方法、端口識別方法和通信雙方 流量大小識別方法。TCP SYN報文識別方法是指如果主機A和主機B相互通信,主機A向主 機B放送SYN報文,而主機B向主機A應答SYN+ACK報文,根據(jù)TCP協(xié)議主機A是客戶方而 主機A是服務方。這種測量方法存在兩個問題首先,中間測量器必須要能測量到主機A發(fā) 送到主機B的SYN報文和主機B發(fā)送到A的SYN+ACK報文,如果丟失這兩個個報文,則不能 正確識別服務主機。其次,如果主機A和主機B之間通信的流量是UDP流量而為非TCP協(xié) 議,將無法識別通信主機雙方的角色。 第二種服務方識別方法是直接根據(jù)端口識別,Internet號分配機構(IANA)分配 1 1023之間的端口為知名端口, TCP/IP協(xié)議所提供的服務都使用這些知名端口,因此一 個流的兩個端口,如果其中一個端口小于1024,而另一個端口大于等于1024,則可以使用 端口法識別主機角色,端口號小于1024的一方為服務方,端口號大于1024的一方為客戶 方。這種方法的問題是現(xiàn)在很多應用服務不采用1024以下的知名端口,而采用大于5000 的端口號,另外,有些應用采用動態(tài)分配端口 ,因此直接采用端口號的方法識別服務方的準 確率越來越低。 第三種服務方識別方法是根據(jù)通信雙方的流量大小進行識別,在大多情況下服務 方主要是提供數(shù)據(jù)供客戶方下載使用,因而服務方發(fā)送到客戶方的流量要大于客戶方發(fā)送 到服務方的流量,因此將發(fā)送流量大的一方主機角色識別為服務方,而發(fā)送流量小的一方 為客戶方。該方法對于大多數(shù)網(wǎng)絡應用有效,如Web訪問、流量下載、在線視頻等,如ADSL 就是根據(jù)這一個原理將上行鏈路和下行鏈路分配不同的帶寬以提高用戶上網(wǎng)的速率。但是 有些網(wǎng)絡應用客戶方流量大于服務方,如文件上傳、發(fā)送電子郵件等,或雙方的流量大小接 近,如P2P、 TELNET 、 SSH流量等。
發(fā)明內(nèi)容
本發(fā)明提出一種基于流量通信模式的服務角色識別方法,本發(fā)明能夠高效準確地
識別出網(wǎng)絡流量的服務方。 本發(fā)明采用如下技術方案 —種基于流量通信模式的服務角色識別方法,其特征是在一個時間尺度5分鐘
4范圍內(nèi),在哈希鏈表中為測量到的流量維護(源IP地址和源端口1結點,并為每個相同{源 IP地址和源端口 }的結點記錄其對應的前兩個不同的宿IP地址,如果一個{源IP地址和 源端口 }結點中記錄了兩個不同的宿IP地址,說明該源IP地址從該源端口向至少2臺其他 不同主機發(fā)送流量,則認為該源IP地址是服務方,其服務端口為該源端口,具體步驟如下
第一步參數(shù)設置 設置一個指針數(shù)組A[n] , n為指針數(shù)組A的大小,設置n = 2m,其中m是大于0的 正整數(shù),數(shù)組A的每個元素賦值為空指針,設置一個48位長度的比特串S,設置一個哈希函 數(shù)F,哈希函數(shù)F的輸入是48位長度的比特串S,哈希函數(shù)F輸出的哈希值是一個取值范圍 為0到2m-l之間的正整數(shù),哈希函數(shù)F采用目前計算機常用的MD5哈希函數(shù),MD表示信息 摘要,是由Ron Rivest設計被廣泛使用的哈希函數(shù),MD5哈希函數(shù)的輸入是一個任意長度 的比特串,輸出是一個128位信息摘要,哈希函數(shù)F選取MD5哈希函數(shù)哈希值的前m個比特 作為其輸出哈希值,設置一個結構B,該結構B包括四個整數(shù)變量和一個指針變量,結構B的 四個整數(shù)變量分別記錄主機IP地址、源端口號、第一個宿IP地址、第二個宿IP地址,結構 B的指針變量指向下一個結點,測量開始,如果一個新流量記錄到達,進入第二步;
第二步處理到達流量記錄 讀取該流量記錄的源IP地址、源端口和宿IP地址,將源IP地址賦值到48位比特 串S的前32個比特,將源端口賦值到48位比特串S的后16個比特,將48位比特串S作為 哈希函數(shù)F的輸入,計算哈希值i,讀取指針數(shù)組A的第i個指針,如果該指針為空指針,根 據(jù)結構B生成一個新的結點,將指針數(shù)組A的第i個指針指向這個新生成的結點,進入第三 步,如果該指針不為空,則進入第四步;
第三步初始化新結點 設置這個新結點的源IP地址為該流量記錄的源IP地址,這個新結點的源端口為 該流量記錄的源端口,這個新結點的第一個宿IP地址為該流量記錄的宿IP地址,這個新結 點的第二個宿IP地址設置為O,設置該新結點的指針為空指針,進入第六步;
第四步查找指針鏈表 查找指針數(shù)組A的第i個指針指向的結點鏈表,如果在這個鏈表中找到一個結點, 該結點的源IP地址等于該流量記錄的源IP地址,該結點的源端口等于該流量記錄的源端 口,進入第五步,否則根據(jù)結構B生成一個新的結點,將指針數(shù)組A的第i個指針指向結點 鏈表的最后一個指針指向這個新生成的結點,回到第三步;
第五步更新結點 查找該結點的第一個宿IP地址,如果該流量記錄宿IP等于該結點的第一個宿IP 地址,則進入第六步,否則查找該結點的第二個宿IP地址,如果該結點的第二個宿IP地址 為O,則將該結點的第二個宿IP地址賦值為該流量記錄的宿IP地址,進入第六步,如果該結 點的第二個宿IP地址不為O,則直接進入第六步;
第六步測量結束 如果測量結束,進入第七步,如果測量沒有結束,等待一個新流量記錄到達,如果 一個新流量記錄到達,回到第二步;
第七步測量結果輸出 查找指針數(shù)組A中的所有的結點,如果一個結點的第二個宿IP地址不為0,則說明該結點所對應的源IP地址和源端口號在測量時間范圍內(nèi),向至少兩個不同宿IP地址發(fā)送流量,該結點的源IP地址和源端口為服務方,輸出該結點的源IP地址和源端口。
與現(xiàn)有技術相比,本發(fā)明具有如下優(yōu)點及有益效果 1、該方法的優(yōu)點是能夠同時識別TCP協(xié)議和UDP協(xié)議流量的服務角色,只需要抽取部分流量數(shù)據(jù)即可準確識別流量服務角色,可以根據(jù)原始報文數(shù)據(jù)進行服務角色識別也可以采用NetFlow等流式數(shù)據(jù)進行服務角色識別; 2、該方法可以對網(wǎng)絡流量中的服務角色進行高效識別,可以識別抽樣或全采集流量、報文或流數(shù)據(jù)、UDP流量或TCP流量等多種不同類型流量數(shù)據(jù)的服務角色;
3、該方法能夠根據(jù)網(wǎng)絡流量信息,準確地識別出流量通信的服務角色,即識別出服務IP和服務端口 ,服務IP和服務端口的準確識別在流量應用分類、網(wǎng)絡管理和網(wǎng)絡安全中具有重要意義,在流量應用分類中,服務IP及服務端口正確識別流量應用類型的一個重要測度指標,在網(wǎng)絡管理中,網(wǎng)絡管理員可以實時跟蹤所管網(wǎng)絡內(nèi)的主機角色的變化,以防止客戶機獨自向外提供服務,影響網(wǎng)絡的正常運行,同時可以監(jiān)控主機角色的變化以判斷主機行為的異?;蛘?。
圖1是使用基于流量通信模式的服務角色識別方法建立的哈希鏈表示意圖,圖中哈希鏈表數(shù)組大小為16, 一共有5個結點,處理了 8個流量數(shù)據(jù),每個流量數(shù)據(jù)的{源IP、源端口、宿IP)三元組是{3、7、5}、 {5、5、4}、 {4、1、7}、 {9、2、2}、 {3、1、4}、 {3、7、1}、 {4、1、5}、{3、1、7}。 圖2是基于流量通信模式的服務角色識別方法的流程圖。
具體實施例方式
—種基于流量通信模式的服務角色識別方法,其特征是在一個時間尺度5分鐘范圍內(nèi),在哈希鏈表中為測量到的流量維護(源IP地址和源端口1結點,并為每個相同{源IP地址和源端口 }的結點記錄其對應的前兩個不同的宿IP地址,如果一個{源IP地址和源端口 }結點中記錄了兩個不同的宿IP地址,說明該源IP地址從該源端口向至少2臺其他不同主機發(fā)送流量,則認為該源IP地址是服務方,其服務端口為該源端口,具體步驟如下
第一步參數(shù)設置 設置一個指針數(shù)組A[n] , n為指針數(shù)組A的大小,設置n = 2m,其中m是大于0的正整數(shù),數(shù)組A的每個元素賦值為空指針,設置一個48位長度的比特串S,設置一個哈希函數(shù)F,哈希函數(shù)F的輸入是48位長度的比特串S,哈希函數(shù)F輸出的哈希值是一個取值范圍為0到2m-l之間的正整數(shù),哈希函數(shù)F采用目前計算機常用的MD5哈希函數(shù),哈希函數(shù)F選取MD5哈希函數(shù)哈希值的前m個比特作為其輸出哈希值,設置一個結構B,該結構B包括四個整數(shù)變量和一個指針變量,結構B的四個整數(shù)變量分別記錄主機IP地址、源端口號、第一個宿IP地址、第二個宿IP地址,結構B的指針變量指向下一個結點,測量開始,如果一個新流量記錄到達,進入第二步;
第二步處理到達流量記錄 讀取該流量記錄的源IP地址、源端口和宿IP地址,將源IP地址賦值到48位比特串S的前32個比特,將源端口賦值到48位比特串S的后16個比特,將48位比特串S作為 哈希函數(shù)F的輸入,計算哈希值i,讀取指針數(shù)組A的第i個指針,如果該指針為空指針,根 據(jù)結構B生成一個新的結點,將指針數(shù)組A的第i個指針指向這個新生成的結點,進入第三 步,如果該指針不為空,則進入第四步;
第三步初始化新結點 設置這個新結點的源IP地址為該流量記錄的源IP地址,這個新結點的源端口為 該流量記錄的源端口,這個新結點的第一個宿IP地址為該流量記錄的宿IP地址,這個新結 點的第二個宿IP地址設置為O,設置該新結點的指針為空指針,進入第六步;
第四步查找指針鏈表 查找指針數(shù)組A的第i個指針指向的結點鏈表,如果在這個鏈表中找到一個結點, 該結點的源IP地址等于該流量記錄的源IP地址,該結點的源端口等于該流量記錄的源端 口,進入第五步,否則根據(jù)結構B生成一個新的結點,將指針數(shù)組A的第i個指針指向結點 鏈表的最后一個指針指向這個新生成的結點,回到第三步;
第五步更新結點 查找該結點的第一個宿IP地址,如果該流量記錄宿IP等于該結點的第一個宿IP 地址,則進入第六步,否則查找該結點的第二個宿IP地址,如果該結點的第二個宿IP地址 為O,則將該結點的第二個宿IP地址賦值為該流量記錄的宿IP地址,進入第六步,如果該結 點的第二個宿IP地址不為O,則直接進入第六步;
第六步測量結束 如果測量結束,進入第七步,如果測量沒有結束,等待一個新流量記錄到達,如果 一個新流量記錄到達,回到第二步;
第七步測量結果輸出 查找指針數(shù)組A中的所有的結點,如果一個結點的第二個宿IP地址不為0,則說明 該結點所對應的源IP地址和源端口號在測量時間范圍內(nèi),向至少兩個不同宿IP地址發(fā)送 流量,該結點的源IP地址和源端口為服務方,輸出該結點的源IP地址和源端口。
圖1、圖2是基于流量通信模式的服務角色識別方法具體實施方式
中涉及的示意 圖和流程圖,圖1中哈希鏈表數(shù)組大小為16,一共有5個結點,處理了 8個流量數(shù)據(jù),
該例子中處理每個流量數(shù)據(jù)的{源IP、源端口、宿IP}三元組是{3、7、5}、 {5、5、 4}、 {4、1、7}、 {9、2、2}、 {3、1、4}、 {3、7、1}、 {4、1、5}、 {3、 1、7},其中源IP為3和源端口為 7所對應的48位串S為0x000700000003,源IP為5和源端口為5所對應的48位串S為 0x000500000005,源IP為4和源端口為1所對應的48位串S為0x000100000004,源IP為 9和源端口為2所對應的48位串S為0x000200000009,源IP為3和源端口為1所對應的 48位串S為0x000100000003,同時假設哈希函數(shù)F對于輸入S = 0x000700000003的哈希 值是l,輸入S = 0x000500000005的哈希值是4,輸入S = 0x000100000004的哈希值是7, 輸入S = 0x000200000009的哈希值是13,輸入S = 0x000100000003的哈希值是13,
本發(fā)明實施舉例的具體技術步驟如下
(1)第一步參數(shù)設置 設置一個指針數(shù)組A[n],n為指針數(shù)組A的大小,設置n二 2m= 16,其中m二4是 大于0的正整數(shù),數(shù)組A的每個元素賦值為空指針,設置一個48位長度的比特串S,設置一
7個哈希函數(shù)F,哈希函數(shù)F的輸入是48位長度的比特串S,哈希函數(shù)F輸出的哈希值是一個取值范圍為0到15之間的正整數(shù),哈希函數(shù)F采用目前計算機常用的MD5哈希函數(shù),哈希函數(shù)F選取MD5哈希函數(shù)哈希值的前4個比特作為其輸出哈希值,設置一個結構B,該結構B包括四個整數(shù)變量和一個指針變量,結構B的四個整數(shù)變量分別記錄主機IP地址、源端口號、第一個宿IP地址、第二個宿IP地址,結構B的指針變量指向下一個結點,測量開始,如果一個新流量記錄到達,進入(2)第二步;[OO49] (2)第二步處理到達流量記錄 讀取該流量記錄的源IP地址為3、源端口為7和宿IP地址為5,將源IP地址賦值到48位比特串S的前32個比特,將源端口賦值到48位比特串S的后16個比特,S =0x000700000003,將48位比特串S作為哈希函數(shù)F的輸入,計算哈希值i為l,讀取指針數(shù)組A的第l個指針,該指針為空指針,根據(jù)結構B生成一個新的結點,將指針數(shù)組A的第1個指針指向這個新生成的結點,進入(3)第三步;
(3)第三步初始化新結點 設置這個新結點的源IP地址為該流量記錄的源IP地址為3,這個新結點的源端口為該流量記錄的源端口為7,這個新結點的第一個宿IP地址為該流量記錄的宿IP地址
為5,這個新結點的第二個宿IP地址設置為O,設置該新結點的指針為空指針,進入(4)第
丄止
八少5 (4)第六步測量結束 測量沒有結束, 一個新流量記錄到達,回到(5)第二步;
(5)第二步處理到達流量記錄 讀取該流量記錄的源IP地址為5、源端口為5和宿IP地址為4,將源IP地址賦值到48位比特串S的前32個比特,將源端口賦值到48位比特串S的后16個比特,S =0x000500000005,將48位比特串S作為哈希函數(shù)F的輸入,計算哈希值i為4,讀取指針數(shù)組A的第4個指針,該指針為空指針,根據(jù)結構B生成一個新的結點,將指針數(shù)組A的第4個指針指向這個新生成的結點,進入(6)第三步;
(6)第三步初始化新結點 設置這個新結點的源IP地址為該流量記錄的源IP地址為5,這個新結點的源端口為該流量記錄的源端口為5,這個新結點的第一個宿IP地址為該流量記錄的宿IP地址
為4,這個新結點的第二個宿IP地址設置為O,設置該新結點的指針為空指針,進入(7)第
丄止
八少5 (7)第六步測量結束 測量沒有結束, 一個新流量記錄到達,回到(8)第二步;
(8)第二步處理到達流量記錄 讀取該流量記錄的源IP地址為4、源端口為1和宿IP地址為7,將源IP地址賦值到48位比特串S的前32個比特,將源端口賦值到48位比特串S的后16個比特,S =0x000100000004,將48位比特串S作為哈希函數(shù)F的輸入,計算哈希值i為7,讀取指針數(shù)組A的第7個指針,該指針為空指針,根據(jù)結構B生成一個新的結點,將指針數(shù)組A的第7個指針指向這個新生成的結點,進入(9)第三步;
(9)第三步初始化新結點
8
設置這個新結點的源IP地址為該流量記錄的源IP地址為4,這個新結點的源端口 為該流量記錄的源端口為l,這個新結點的第一個宿IP地址為該流量記錄的宿IP地址為
7,這個新結點的第二個宿IP地址設置為O,設置該新結點的指針為空指針,進入(10)第六
止 少; (10)第六步測量結束 測量沒有結束,一個新流量記錄到達,回到(11)第二步;
(11)第二步處理到達流量記錄 讀取該流量記錄的源IP地址為9、源端口為2和宿IP地址為2,將源IP地址賦 值到48位比特串S的前32個比特,將源端口賦值到48位比特串S的后16個比特,S = 0x000200000009,將48位比特串S作為哈希函數(shù)F的輸入,計算哈希值i為13,讀取指針 數(shù)組A的第13個指針,該指針為空指針,根據(jù)結構B生成一個新的結點,將指針數(shù)組A的第 13個指針指向這個新生成的結點,進入(12)第三步;
(12)第三步初始化新結點 設置這個新結點的源IP地址為該流量記錄的源IP地址為9,這個新結點的源端口 為該流量記錄的源端口為2,這個新結點的第一個宿IP地址為該流量記錄的宿IP地址為
2,這個新結點的第二個宿IP地址設置為O,設置該新結點的指針為空指針,進入(13)第六
止 少; (13)第六步測量結束 測量沒有結束, 一個新流量記錄到達,回到(14)第二步;
(14)第二步處理到達流量記錄 讀取該流量記錄的源IP地址為3、源端口為1和宿IP地址為4,將源IP地址賦 值到48位比特串S的前32個比特,將源端口賦值到48位比特串S的后16個比特,S = 0x000100000003,將48位比特串S作為哈希函數(shù)F的輸入,計算哈希值i為13,讀取指針數(shù) 組A的第13個指針,該指針不為空,則進入(15)第四步;
(15)第四步查找指針鏈表 查找指針數(shù)組A的第13個指針指向的結點鏈表,在這個鏈表中找不到一個結點, 該結點的源IP地址等于該流量記錄的源IP地址3,該結點的源端口等于該流量記錄的源端 口 l,根據(jù)結構B生成一個新的結點,將指針數(shù)組A的第13個指針指向結點鏈表的最后一個 指針指向這個新生成的結點,回到(16)第三步;
(16)第三步初始化新結點 設置這個新結點的源IP地址為該流量記錄的源IP地址為3,這個新結點的源端口 為該流量記錄的源端口為l,這個新結點的第一個宿IP地址為該流量記錄的宿IP地址為
4,這個新結點的第二個宿IP地址設置為O,設置該新結點的指針為空指針,進入(17)第六
止 少; (17)第六步測量結束 測量沒有結束, 一個新流量記錄到達,回到(18)第二步; (18)第二步處理到達流量記錄 讀取該流量記錄的源IP地址為3、源端口為7和宿IP地址為1,將源IP地址賦 值到48位比特串S的前32個比特,將源端口賦值到48位比特串S的后16個比特,S =0x000700000003,將48位比特串S作為哈希函數(shù)F的輸入,計算哈希值i為l,讀取指針數(shù)組A的第1個指針,該指針不為空,則進入(19)第四步;
(19)第四步查找指針鏈表 查找指針數(shù)組A的第1個指針指向的結點鏈表,在這個鏈表中找到一個結點,該結點的源IP地址等于該流量記錄的源IP地址3,該結點的源端口等于該流量記錄的源端口7,進入(20)第五步;
(20)第五步更新結點 查找該結點的第一個宿IP地址,該流量記錄宿IP地址1不等于該結點的第一個宿IP地址5,查找該結點的第二個宿IP地址,該結點的第二個宿IP地址為0,則將該結點的第二個宿IP地址賦值為該流量記錄的宿IP地址為l,進入(21)第六步;
(21)第六步測量結束 測量沒有結束, 一個新流量記錄到達,回到(22)第二步;
(22)第二步處理到達流量記錄 讀取該流量記錄的源IP地址為4、源端口為1和宿IP地址為5,將源IP地址賦值到48位比特串S的前32個比特,源端口賦值到48位比特串S的后16個比特,S =0x000100000004,將48位比特串S作為哈希函數(shù)F的輸入,計算哈希值i為7,讀取指針數(shù)組A的第7個指針,該指針不為空,進入(23)第四步;
(23)第四步查找指針鏈表 查找指針數(shù)組A的第7個指針指向的結點鏈表,在這個鏈表中找到一個結點,該結點的源IP地址等于該流量記錄的源IP地址4,該結點的源端口等于該流量記錄的源端口l,進入(24)第五步;
(24)第五步更新結點 查找該結點的第一個宿IP地址,該流量記錄宿IP地址5不等于該結點的第一個宿IP地址7,查找該結點的第二個宿IP地址,該結點的第二個宿IP地址為0,則將該結點的第二個宿IP地址賦值為該流量記錄的宿IP地址為5,進入(25)第六步;
(25)第六步測量結束 測量沒有結束, 一個新流量記錄到達,回到(26)第二步;
(26)第二步處理到達流量記錄 讀取該流量記錄的源IP地址為3、源端口為1和宿IP地址為7,將源IP地址賦值到48位比特串S的前32個比特,將源端口賦值到48位比特串S的后16個比特,S =0x000100000003,將48位比特串S作為哈希函數(shù)F的輸入,計算哈希值i為13,讀取指針數(shù)組A的第13個指針,該指針不為空,則進入(27)第四步;
(27)第四步查找指針鏈表 查找指針數(shù)組A的第13個指針指向的結點鏈表,在這個鏈表中找到一個結點,該
結點的源IP地址等于該流量記錄的源IP地址3,該結點的源端口等于該流量記錄的源端口
l,進入(28)第五步; (28)第五步更新結點 查找該結點的第一個宿IP地址,該流量記錄宿IP地址7不等于該結點的第一個宿IP地址4,查找該結點的第二個宿IP地址,該結點的第二個宿IP地址為O,則將該結點的第二個宿IP地址賦值為該流量記錄的宿IP地址為7,進入(29)第六步;
(29)第六步測量結束
測量結束,進入(30)第七步;
(30)第七步測量結果輸出 查找指針數(shù)組A中的所有的結點,如果一個結點的第二個宿IP地址不為O,則說明 該結點所對應的源IP地址和源端口號在測量時間范圍內(nèi),向至少兩個不同宿IP地址發(fā)送 流量,該結點的源IP地址和源端口為服務方,輸出該結點的源IP地址和源端口。
輸出結果如下 服務方源IP地址 服務方源端口號
3 7
4 1 [O川]3 1
1權利要求
一種基于流量通信模式的服務角色識別方法,其特征是在一個時間尺度5分鐘范圍內(nèi),在哈希鏈表中為測量到的流量維護{源IP地址和源端口}結點,并為每個相同{源IP地址和源端口}的結點記錄其對應的前兩個不同的宿IP地址,如果一個{源IP地址和源端口}結點中記錄了兩個不同的宿IP地址,說明該源IP地址從該源端口向至少2臺其他不同主機發(fā)送流量,則認為該源IP地址是服務方,其服務端口為該源端口,具體步驟如下第一步參數(shù)設置設置一個指針數(shù)組A[n],n為指針數(shù)組A的大小,設置n=2m,其中m是大于0的正整數(shù),數(shù)組A的每個元素賦值為空指針,設置一個48位長度的比特串S,設置一個哈希函數(shù)F,哈希函數(shù)F的輸入是48位長度的比特串S,哈希函數(shù)F輸出的哈希值是一個取值范圍為0到2m-1之間的正整數(shù),哈希函數(shù)F采用MD5哈希函數(shù),哈希函數(shù)F選取MD5哈希函數(shù)哈希值的前m個比特作為其輸出哈希值,設置一個結構B,該結構B包括四個整數(shù)變量和一個指針變量,結構B的四個整數(shù)變量分別記錄主機IP地址、源端口號、第一個宿IP地址、第二個宿IP地址,結構B的指針變量指向下一個結點,測量開始,如果一個新流量記錄到達,進入第二步;第二步處理到達流量記錄讀取該流量記錄的源IP地址、源端口和宿IP地址,將源IP地址賦值到48位比特串S的前32個比特,將源端口賦值到48位比特串S的后16個比特,將48位比特串S作為哈希函數(shù)F的輸入,計算哈希值i,讀取指針數(shù)組A的第i個指針,如果該指針為空指針,根據(jù)結構B生成一個新的結點,將指針數(shù)組A的第i個指針指向這個新生成的結點,進入第三步,如果該指針不為空,則進入第四步;第三步初始化新結點設置這個新結點的源IP地址為該流量記錄的源IP地址,這個新結點的源端口為該流量記錄的源端口,這個新結點的第一個宿IP地址為該流量記錄的宿IP地址,這個新結點的第二個宿IP地址設置為0,設置該新結點的指針為空指針,進入第六步;第四步查找指針鏈表查找指針數(shù)組A的第i個指針指向的結點鏈表,如果在這個鏈表中找到一個結點,該結點的源IP地址等于該流量記錄的源IP地址,該結點的源端口等于該流量記錄的源端口,進入第五步,否則根據(jù)結構B生成一個新的結點,將指針數(shù)組A的第i個指針指向結點鏈表的最后一個指針指向這個新生成的結點,回到第三步;第五步更新結點查找該結點的第一個宿IP地址,如果該流量記錄的宿IP等于該結點的第一個宿IP地址,則進入第六步,否則查找該結點的第二個宿IP地址,如果該結點的第二個宿IP地址為0,則將該結點的第二個宿IP地址賦值為該流量記錄的宿IP地址,進入第六步,如果該結點的第二個宿IP地址不為0,則直接進入第六步;第六步測量結束如果測量結束,進入第七步,如果測量沒有結束,等待一個新流量記錄到達,如果一個新流量記錄到達,回到第二步;第七步測量結果輸出查找指針數(shù)組A中的所有的結點,如果一個結點的第二個宿IP地址不為0,則說明該結點所對應的源IP地址和源端口號在測量時間范圍內(nèi),向至少兩個不同宿IP地址發(fā)送流量,該結點的源IP地址和源端口為服務方,輸出該結點的源IP地址和源端口。
全文摘要
本發(fā)明公開一種基于流量通信模式的服務角色識別方法,其特征是在一個時間尺度5分鐘范圍內(nèi),在哈希鏈表中為測量到的流量維護{源IP地址和源端口}結點,并為每個相同{源IP地址和源端口}的結點記錄其對應的前兩個不同的宿IP地址,如果一個{源IP地址和源端口}結點中記錄了兩個不同的宿IP地址,說明該源IP地址從該源端口向至少2臺其他不同主機發(fā)送流量,則認為該源IP地址是服務方,其服務端口為該源端口,該方法可以對網(wǎng)絡流量中的服務角色進行高效識別,可以識別多種不同類型網(wǎng)絡流量數(shù)據(jù)的服務角色。
文檔編號H04L29/08GK101753639SQ20091026284
公開日2010年6月23日 申請日期2009年12月11日 優(yōu)先權日2009年12月11日
發(fā)明者劉軍, 吳昊, 程光, 龔儉 申請人:東南大學