專利名稱:基于fpga的3g數(shù)據(jù)包重組系統(tǒng)及方法
技術(shù)領(lǐng)域:
發(fā)明涉及一種基于FPGA的3G數(shù)據(jù)包重組系統(tǒng)及方法,屬于 TD-SCDMA網(wǎng)絡(luò)安全領(lǐng)域的凄t據(jù)重組系統(tǒng)及方法。
背景技術(shù):
3G移動(dòng)通信技術(shù)主要包括3大標(biāo)準(zhǔn)體系中國的TD-SCDMA標(biāo)準(zhǔn),歐 日的WCDMA標(biāo)準(zhǔn)和美國的CDMA2000標(biāo)準(zhǔn)。TD-SCDMA標(biāo)準(zhǔn)和WCDMA
標(biāo)準(zhǔn)承接了 GSM的原有核心網(wǎng)結(jié)構(gòu),它們數(shù)據(jù)包統(tǒng)一封裝在GTP協(xié)議中, 因此如果獲取所有的GTP協(xié)議,可以監(jiān)控所有的移動(dòng)用戶的核心網(wǎng)數(shù)據(jù)信 息。GTP協(xié)議分為GTP-C,GTP-U兩種協(xié)議,其中GTP-C為用戶信令協(xié)-漢, 部分信令協(xié)議中含有國際移動(dòng)用戶識(shí)別號(hào)(IMSI)。 GTP-U封裝的是用戶數(shù) 據(jù)信息,不含有標(biāo)志用戶身份的IMSI,無法將用戶數(shù)據(jù)與用戶信息統(tǒng)一起 來。但是在監(jiān)控系統(tǒng)中需要用戶身份和用戶狀態(tài)和用戶數(shù)據(jù)的統(tǒng)一。因此數(shù) 據(jù)采集過程中需要通過GTP-C和GTP-U之間的聯(lián)系樞紐TEID (隧道標(biāo)志 號(hào))將3G核心網(wǎng)數(shù)據(jù)包重新組合。
目前對(duì)于用戶身份信息及用戶狀態(tài)和用戶數(shù)據(jù)的綁定與重組通常放在 軟件平臺(tái)上實(shí)現(xiàn)。但是由于對(duì)于大量用戶的監(jiān)管,需要對(duì)大量用戶身份信息 (IMSI)動(dòng)態(tài)的存取,軟件上常采用數(shù)據(jù)結(jié)構(gòu)中的樹表實(shí)現(xiàn),根據(jù)測(cè)試顯示 軟件實(shí)現(xiàn)用戶數(shù)據(jù)與用戶身4分的綁定,處理速度4義能達(dá)到150Mbps。而3G 移動(dòng)通信的通信速率往往高達(dá)1 Gbps,用軟件處理數(shù)據(jù)用戶身份與用戶數(shù)據(jù) 的綁定,達(dá)不到實(shí)時(shí)的目。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是針對(duì)現(xiàn)有技術(shù)存在的缺陷提供一種基于 FPGA的3G數(shù)據(jù)包重組系統(tǒng)及方法。
本發(fā)明為實(shí)現(xiàn)上述目的,采用如下技術(shù)方案
本發(fā)明基于FPGA的3G數(shù)據(jù)包重組系統(tǒng),其特征在于包括EMAC核模 塊和用戶接口模塊,其中用戶接口模塊包括消息類型處理模塊、HASH模 塊、IMSI存儲(chǔ)模塊、讀寫控制模塊、IMSI插入模塊、IMSI非空判斷模塊, 消息類型處理模塊的輸出端依次串接HASH模塊、讀寫控制模塊、IMSI插 入模塊、IMSI非空判斷模塊,消息類型處理模塊的輸出端接IMSI插入模塊 的輸入端,HASH模塊的輸出端接IMSI存儲(chǔ)模塊的輸入端,IMSI存儲(chǔ)模塊 與讀寫控制模塊雙向連接,消息類型處理模塊的輸入端接EMAC核模塊的
4輸出端,IMSI非空判斷模塊的輸出端接EMAC核模塊的輸入端。
所述的基于FPGA的3G數(shù)據(jù)包重組系統(tǒng)的重組方法,其特征在于包括 如下步驟
步驟(1 ):采用EMAC軟核模塊的接收客戶端接口接收網(wǎng)關(guān)節(jié)點(diǎn)GGSN 和支持節(jié)點(diǎn)SGSN的鏈路上的所有3G數(shù)據(jù)包;
步驟(2 ):將步驟(1 )所述的3G數(shù)據(jù)包經(jīng)過消息類型處理才莫塊判斷得 到網(wǎng)關(guān)節(jié)點(diǎn)GGSN與支持節(jié)點(diǎn)SGSN的協(xié)議類型
當(dāng)網(wǎng)關(guān)節(jié)點(diǎn)GGSN與支持節(jié)點(diǎn)SGSN的協(xié)議類型為控制信令協(xié)議 GTP-C,則插入標(biāo)志位0;
當(dāng)網(wǎng)關(guān)節(jié)點(diǎn)GGSN與支持節(jié)點(diǎn)SGSN的協(xié)議類型為用戶數(shù)據(jù)協(xié)議 GTP-U,則插入標(biāo)志位l;
步驟(3):將步驟(2)所述的控制信令協(xié)議GTP-C和用戶數(shù)據(jù)協(xié)議 GTP-U的數(shù)據(jù)包經(jīng)過HASH模塊得到存取IMSI的地址;
步驟(4 ):將步驟(3 )所述存取IMSI的地址經(jīng)過讀寫控制模塊對(duì)IMSI 信息進(jìn)行讀或者寫
a )當(dāng)為控制信令協(xié)議GTP-C類型的數(shù)據(jù)包,則判斷控制信令協(xié)議GTP-C 頭部的消息類型①當(dāng)控制信令協(xié)議GTP-C頭部的消息類型是建立請(qǐng)求信 息,則將IMSI存儲(chǔ)進(jìn)步驟(3)所述存取IMSI的地址;②當(dāng)控制信令協(xié)議 GTP-C頭部的消息類型是建立請(qǐng)求響應(yīng)信息,則將控制信令協(xié)議GTP-C類 型的數(shù)據(jù)包頭部的TEID-CP經(jīng)過HASH模塊得到取IMSI新地址得到IMSI, 并將控制信令協(xié)議GTP-C類型的數(shù)據(jù)包上行TEID-DII經(jīng)過HASH才莫塊得到 存IMSI新的地址,將IMSI存儲(chǔ)進(jìn)存IMSI新的地址內(nèi);③當(dāng)控制信令協(xié)議 GTP-C頭部的消息類型是下線響應(yīng)信息,則將控制信令協(xié)議GTP-C類型的 數(shù)據(jù)包頭部的TEID-CP經(jīng)過HASH才莫塊得到耳又IMSI新地址得到IMSI;
b)當(dāng)為用戶數(shù)據(jù)協(xié)議GTP-U類型的數(shù)據(jù)包,則將用戶數(shù)據(jù)協(xié)議GTP-U 類型的數(shù)據(jù)包頭部的TEID-DII經(jīng)過HASH才莫塊得到取IMSI新地址得到 IMSI;
步驟(5 ):將步驟(4 )中讀出的IMSI信息經(jīng)過IMSI插入模塊插入到 用戶數(shù)據(jù)包和用戶上下線響應(yīng)信息中去得到重組數(shù)據(jù)包;
步驟(6):將步驟(5)所述的重組數(shù)據(jù)經(jīng)過IMSI非空判斷模塊當(dāng)重 組數(shù)據(jù)包中IMSI部分為零,則將該重組數(shù)據(jù)包發(fā)往指定主機(jī)作為異常包處 理;當(dāng)重組數(shù)據(jù)包中IMSI部分不全為零,則重組的數(shù)據(jù)包作為新的數(shù)據(jù)負(fù) 載輸入到TCP/IP協(xié)議棧中去,最后通過EMAC核模塊的發(fā)送客戶端輸出。
本發(fā)明提供了 一種基于FPGA的TD-SCDMA的數(shù)據(jù)包重組系統(tǒng)及方法。 TD-SCDMA的核心網(wǎng)因?yàn)閰R聚了多個(gè)基站傳來的分組數(shù)據(jù),大量的流量數(shù) 據(jù)會(huì)極大的加重?cái)?shù)據(jù)包重組的難度?;贔PGA的TD-SCDMA的數(shù)據(jù)包重 組方法利用了 FPGA的快速處理能力,根據(jù)SGSN和GGSN之間的控制信 令協(xié)議GTP-C提耳又出用戶身份信息IMSI,然后根據(jù)TEID-CP、 TEID-DII存儲(chǔ)IMSI信息,并將用戶上下線狀態(tài)信息與用戶身份信息綁定傳輸?shù)胶蠖?br>
處理;并且將用戶數(shù)據(jù)協(xié)議GTP-U中的數(shù)據(jù)包根據(jù)頭部的TEID-DII查找 IMSI,將用戶數(shù)據(jù)與IMSI綁定重組數(shù)據(jù)包,并且將不同用戶數(shù)據(jù)包根據(jù)應(yīng) 用層不同協(xié)議類型發(fā)往后端處理。這種重組方法有效的提高了整體監(jiān)管系統(tǒng) 的效率,有利于對(duì)后端的負(fù)載均衡。
本發(fā)明采用FPGA硬件編程實(shí)現(xiàn),由于硬件處理的高速性,最高速度可 達(dá)1.6Gbps,可以滿足對(duì)3G監(jiān)管數(shù)據(jù)處理的需求。
圖1是TD-SCDMA核心網(wǎng)分組域結(jié)構(gòu)示意圖2是Gn接口協(xié)議棧模型;
圖3是TEID工作原理示意圖4是Virtex5 EMAC核才莫塊示意圖,
圖5是基于FPGA的數(shù)據(jù)包重組結(jié)構(gòu)示意圖6是基于FPGA的數(shù)據(jù)包重組流程圖
圖7是用戶接口模塊結(jié)構(gòu)示意圖。
具體實(shí)施例方式
下面結(jié)合附圖對(duì)發(fā)明的技術(shù)方案進(jìn)行詳細(xì)說明
本發(fā)明所使用的系統(tǒng)在TD-SCDMA分組域網(wǎng)絡(luò)中的位置如圖l所示。
就本系統(tǒng)而言,我們考慮的設(shè)備和通訊鏈路是SGSN和GGSN設(shè)備以及兩 者之間的通信《連路。
GPRS服務(wù)支持節(jié)點(diǎn)(SGSN)的主要作用是記錄移動(dòng)臺(tái)的當(dāng)前位置信息, 并且在移動(dòng)臺(tái)和GGSN之間完成移動(dòng)分組數(shù)據(jù)的發(fā)送和接收。同時(shí)SGSN作為 GPRS/WCDMA核心網(wǎng)分組域i殳備重要組成部分,完成分組tt據(jù)包的^各由轉(zhuǎn) 發(fā),移動(dòng)性管理,會(huì)話管理,邏輯鏈路管理,鑒權(quán)和加密,話單產(chǎn)生和輸出等功能。 GRPS網(wǎng)關(guān)節(jié)點(diǎn)(GGSN)主要是起網(wǎng)關(guān)作用,可以把核心網(wǎng)中的GPRS分組 數(shù)據(jù)包進(jìn)行協(xié)議轉(zhuǎn)換,從而可以把這些分組數(shù)據(jù)包傳送到遠(yuǎn)端的TCP / IP或 X.25網(wǎng)絡(luò)。它可以和多種不同的數(shù)據(jù)網(wǎng)絡(luò)連接。
另夕卜SGSN和GGSN之間的接口是Gn/Gp接口 ,其中Gn用來描述SGSN和 同一PL國的GGSN接口 , Gp用來描述SGSN和不同PLMN的GGSN接口 。 Gn/Gp接口協(xié)議棧如圖2所示。GTP協(xié)議基于3G核心網(wǎng)的Gn/Gp接口之間,負(fù) 責(zé)SGSN和GGSN之間數(shù)據(jù)和信令的傳輸。
GTP協(xié)議分為控制信令協(xié)議(GTP-C)、用戶數(shù)據(jù)協(xié)議(GTP-U)、和計(jì) 費(fèi)協(xié)議(GTP,)我們這里進(jìn)行的GTP協(xié)議分析主要指GTP-C、 GTP-U。如果 要實(shí)現(xiàn)網(wǎng)絡(luò)監(jiān)管,用戶數(shù)據(jù)和用戶身份信息是兩個(gè)必不可少的方面,而GTP 協(xié)議中并不是所有的信息中都含有用戶身份IMSI信息。其中用戶第 一次上線 請(qǐng)求信息(Create PDP Request)中包含用戶身份IMSI(國際移動(dòng)用戶識(shí)別碼)信息。為了達(dá)到用戶數(shù)據(jù)以及用戶上下線信息與用戶身份的綁定,需要通過
分析GTP協(xié)議將3G核心網(wǎng)數(shù)據(jù)包重組。在這里所提到的數(shù)據(jù)重組與普通意義 上的IP分片的重組有著很大的區(qū)別,這里的重組,是從上線請(qǐng)求信令中提取 標(biāo)志用戶身份的IMSI信息并存儲(chǔ),然后將IMSI信息插入到用戶上下線響應(yīng)信 息和用戶數(shù)據(jù)包中,從而得到一種包含用戶身份信息的數(shù)據(jù)包,發(fā)往后臺(tái)處理。
GTP協(xié)議中關(guān)聯(lián)用戶控制信令和用戶數(shù)據(jù)的唯一元素是TEID。核心網(wǎng)中 上行(SGSN至GGSN方向)鏈路和下行(GGSN至SGSN方向)鏈路使用不 同的TEID,并且用戶數(shù)據(jù)信息和控制信令使用不同的TEID,所以一個(gè)用戶 在整個(gè)會(huì)話過程中用到四個(gè)TEID,現(xiàn)在分別定義如下TEID一UP—C(上行 控制信令使用)、TEID—UP—U (上行用戶數(shù)據(jù)信息使用)、TEID—DOWN—C (下行控制信令使用)、TEID—DOWN—U (下行用戶數(shù)據(jù)信息使元)。TEID 的具體工作原理如圖3所示。在獲—^數(shù)據(jù)的處理過程中,需要用到 TEID—DOWN—C、 TEID—DOWNU和TEID—UP—U三個(gè)TEID計(jì)算地址,存取 IMSI信息。
以下對(duì)各個(gè)模塊進(jìn)行展開說明。
1、 EMAC核模塊
改發(fā)明方法使用的硬件平臺(tái)為v51xtPCI開發(fā)板。平臺(tái)上兩個(gè)三態(tài)網(wǎng)口 , 兩個(gè)千兆電口 , FPGA芯片為V5LX50T,片內(nèi)含有4個(gè)內(nèi)置的三態(tài)以太網(wǎng)MAC 模塊(TEMAC)。其中Virtex5 EMAC核模塊如圖4所示。EMAC核主要分為 如下幾個(gè)接口 接收客戶端(RX Client )、發(fā)送客戶端(TX Client )、流控制 接口 ( Flow Control )、通用主機(jī)總線接口 ( Generic Host Bus )、 DCR總線接 口 ( DCR Bus)、物理層接口 (Physical Interface )、 GTP收發(fā)器(GTP Transceiver )、管理凄t據(jù)輸入/輸出接口 ( Management Data I/O )。下面對(duì)以太 網(wǎng)內(nèi)核的各個(gè)接口作一下簡要介紹
來;
(2) 流控制接口的設(shè)計(jì)符合IEEE 802.3第31條款;
(3) 通用主機(jī)總線接口和DCR總線接口是和以太網(wǎng)MAC主機(jī)接口的兩種 控制可選的總線接口 ,可以通過以太網(wǎng)MAC的信號(hào)線選才奪其中的任何一種, 在外部處理器與以太網(wǎng)MAC協(xié)作的情況下,選擇DCR總線接口比較理想, 主機(jī)總線接口更適合于FPGA邏輯直接控制以太網(wǎng)MAC的情況;
(4) 物理層接口可以連接符合以太網(wǎng)物理層標(biāo)準(zhǔn)BASE-T、 BASE-X的任何 一種物理層設(shè)備;當(dāng)物理層接口配置成1000BASE-X或者SGMII模式時(shí),需 要用到以太網(wǎng)MAC內(nèi)部的PCS/PMA子層模塊,該模塊與以太網(wǎng)MAC的GTP 收發(fā)器接口連接。此GTP收發(fā)器接口直接連接到以太網(wǎng)MAC外部的GTP收發(fā) 器實(shí)現(xiàn)1000B ASE-X物理層。
2、 用戶接口模塊
7基于FPGA的數(shù)據(jù)包重組結(jié)構(gòu)如圖5所示。其中FPGA模塊串連在SGSN 和GGSN之間,可以捕獲3G核心網(wǎng)絡(luò)中通過的所有數(shù)據(jù)包。
整個(gè)數(shù)據(jù)包重組過程首先根據(jù)UDP端口號(hào)判斷從核心網(wǎng)獲取的GTP數(shù) 據(jù)包類型(GTP-U端口號(hào)為2152, GTP-C端口號(hào)2123),然后根據(jù)數(shù)據(jù)包頭 部的TEID^r索出用戶IMSI,將IMSI信息插入到用戶數(shù)據(jù)中去,實(shí)現(xiàn)數(shù)據(jù)包 重組。數(shù)據(jù)包重組流程如圖6所示
由于監(jiān)管的用戶量大,數(shù)據(jù)重組過程中,用戶數(shù)據(jù)與用戶特征信息的綁 定需要對(duì)IMSI信息的不斷動(dòng)態(tài)存取,因此,要保證處理的實(shí)時(shí)性,對(duì)于整個(gè) 數(shù)據(jù)包處理過程中的瓶頸部分一IMSI的動(dòng)態(tài)存取,要求尋求一種達(dá)到線速處 理的方法。
數(shù)據(jù)包重組模塊如圖7所示,其中主要包括消息類型處理模塊,HASH 模塊,IMSI存儲(chǔ)模塊,讀寫控制模塊,IMSI插入模塊,IMSI非空判斷模塊。 下面對(duì)各個(gè)模塊的功能作簡單描述。
(1) 消息類型處理;漠塊消息類型處理^t塊用來判斷GTP協(xié)議的類型。并 對(duì)GTP-C與GTP-U分別做不同的標(biāo)記,以供后臺(tái)處理時(shí)分辨。
(2) HASH模塊HASH模塊是整個(gè)模塊中最關(guān)鍵部分,它主要實(shí)現(xiàn)IMSI 存取地址計(jì)算。由于含有IMSI信息的Create PDP Request信令(信令就是信息, 不需要重復(fù))與用戶上下線響應(yīng)信息以及用戶數(shù)據(jù)信息是通過TEID相關(guān)聯(lián), 所以為了滿足大量用戶動(dòng)態(tài)的對(duì)IMSI的存取,需要找到TEID與IMSI直接關(guān) 聯(lián)的存取方式。根據(jù)這一思想,本文提出一種基于FPGA的Hash算法實(shí)現(xiàn)地 址計(jì)算,該算法過程最主要用到下面Hash函數(shù)h(x,y)=ax+y (a為2的冪次, x,yEZ+)通過多次調(diào)用這個(gè)Hash函數(shù)分解TEID得到不同尋址信號(hào)。具體的 數(shù)據(jù)重組查找算法過程為(設(shè)用戶的三個(gè)TEID值分別為A, B, C)
一、 將用戶的三個(gè)個(gè)TEID分別跟相對(duì)應(yīng)的基TEID (值設(shè)為Ai, B" d ) 異或,得到的值記為A2, B2, C2;
二、 將A!, BP d分別按照HASH函數(shù)h(x, y) =216x+y ( O^c-17-1, 0Sy蘭2"-l)分解。求出系數(shù)x, y的l直,以A,處理過程為例,設(shè)A,求出的系 凄t分別記為E、 F;
三、 將E的值按照h (x, y) =28x+y (0^28-l, 0£y^28-l)分解。求出 系凄bc, y的^f直,分別i己為G、 H; ^奪F的^直才安照h (x, y) =28x+y ( 1 , 0^^28-l)分解。求出系數(shù)x, y的值,分別記為I、 J;
四、 將G、 H相異或,得到的值記為K,將J做3次估支循環(huán)移位,得到的值 即為L。
五、 將得到的I作為RAM的片選信號(hào)、L作為初始地址值;K的值作為超 范圍用戶的IMSI的存儲(chǔ)和查找。
下面對(duì)算法做簡要的注釋,第 一步中的基TEID為隨機(jī)抽取的任一用戶的 TEID的值,并保持T時(shí)間內(nèi)基TEID不變。這樣做的原因是,在現(xiàn)實(shí)中用戶 TEID的分配與用戶的IP分配類似,具有總體上升到趨勢(shì),選擇在T時(shí)刻內(nèi),所有用戶跟同一用戶的TEID異或,可以將不同用戶的TEID之間的差異,由 原本的分布在不同位置移動(dòng)的TEID的低位置上,其中T的選取對(duì)于沖突概率 的影響很大。這樣就可以用較少的位數(shù)區(qū)分大量的用戶。這一步的異或可以 用簡單的硬件描述語言實(shí)現(xiàn),這一步運(yùn)算需要兩個(gè)時(shí)間周期。
第二步,是利用HASH函數(shù)分解,這里對(duì)函數(shù)系數(shù)的選擇做簡要解釋, 第二步選擇了系數(shù)2"這樣分解得到的E、 F的位數(shù)16bit。這樣選擇的目的主 要是為第三步的E、 F分解做鋪墊。這一步的分解,用硬件描述語言實(shí)現(xiàn)也是 4艮簡單的,這一步運(yùn)算需要一個(gè)時(shí)間周期。
第三步中對(duì)F的分解,系數(shù)選擇的是28,分解得到的I、 J的位數(shù)為8bit, 這樣做的目的是根據(jù)監(jiān)控用戶的數(shù)目而定的,目前我們所做的監(jiān)控設(shè)備針對(duì) 在線用戶數(shù)為一萬個(gè),每一個(gè)用戶的IMSI是8Byte,由于一個(gè)用戶要用到3個(gè) TEID跟其IMSI相聯(lián)系,這樣需要的存儲(chǔ)空間為104*3*8*81^-1.5*221]^1^,我 們用來存儲(chǔ)IMSI的BRAM的大小為2^2^也需要這樣的RAM28個(gè),這樣得到 的I作為片選信號(hào),J左移3bit后得到llbit的地址信號(hào),容量大小為8Byte,用 來存儲(chǔ)一個(gè)用戶的IMSI。運(yùn)算的硬件語言實(shí)現(xiàn)跟第二步相同。這一步運(yùn)算需 要一個(gè)時(shí)間周期
第四步運(yùn)算簡單易懂不多做解釋。這一步運(yùn)算需要一個(gè)時(shí)間周期 第五步中超范圍的意思是,在T時(shí)間內(nèi),用戶總TEID的分配趨勢(shì)是遞增 的,然后由第一步的基TEID的異或,可以將不同轉(zhuǎn)移到低位置上,但是由于 TEID分配有一些特殊情況,可能其變化范圍超出了所選的位數(shù),需要考慮到 這種特殊情況,于是把特殊情況的TEID稱作超范圍用戶,這些用戶的IMSI 單獨(dú)存放在一個(gè)RAM中。實(shí)際中,這種超范圍用戶是纟艮少的。最后IMSI的 存儲(chǔ)或讀取需要八個(gè)時(shí)間周期。
(3) IMSI存儲(chǔ)模塊IMSI存儲(chǔ)模塊是用到的存儲(chǔ)器為BRAM。
(4) 讀寫控制模塊讀寫控制模塊是根據(jù)消息類型處理模塊做的標(biāo)志采取 動(dòng)作,如果是Create PDP Request信令,則根據(jù)Hash模塊計(jì)算出來的地址寫 RAM,如果是用戶數(shù)據(jù)包或用戶上下線響應(yīng)信息則根據(jù)Hash模塊計(jì)算出來 的;也址讀RAM 。
(5) IMSI插入模塊IMSI插入模塊主要是完成將讀出的IMSI信息,插入到 用戶上下線響應(yīng)信息和用戶數(shù)據(jù)信息中去。對(duì)于用戶上下線響應(yīng)信息,則將 IMSI插入到GTP協(xié)議頭部的前8Byte,如果是用戶數(shù)據(jù)信息,則將IMSI插入 到數(shù)據(jù)負(fù)載前的8Byte。
(6) IMSI非空模塊IMSI非空模塊用來判定插入的IMSI部分是否為空。 由于處理過程來不及,或者網(wǎng)絡(luò)丟包等原因?qū)е履硞€(gè)用戶的IMSI信息沒有 存儲(chǔ),則該用戶的上下線響應(yīng)信息和用戶數(shù)據(jù)信息中的IMSI插入部分則會(huì) 全部為零。IMSI非空模塊判斷若該部分全部為零,則將該用戶數(shù)據(jù)包發(fā)往 指定主機(jī)作為異常包處理;如果不全部為零,則重組的數(shù)據(jù)包作為新的數(shù)據(jù) 負(fù)載輸入到TCP/IP協(xié)議棧中去,生成TCP/IP包傳輸?shù)胶笈_(tái)處理。
9
權(quán)利要求
1、一種基于FPGA的3G數(shù)據(jù)包重組系統(tǒng),其特征在于包括EMAC核模塊和用戶接口模塊,其中用戶接口模塊包括消息類型處理模塊、HASH模塊、IMSI存儲(chǔ)模塊、讀寫控制模塊、IMSI插入模塊、IMSI非空判斷模塊,消息類型處理模塊的輸出端依次串接HASH模塊、讀寫控制模塊、IMSI插入模塊、IMSI非空判斷模塊,消息類型處理模塊的輸出端接IMSI插入模塊的輸入端,HASH模塊的輸出端接IMSI存儲(chǔ)模塊的輸入端,IMSI存儲(chǔ)模塊與讀寫控制模塊雙向連接,消息類型處理模塊的輸入端接EMAC核模塊的輸出端,IMSI非空判斷模塊的輸出端接EMAC核模塊的輸入端。
2、 一種如權(quán)利要求1所述的基于FPGA的3G數(shù)據(jù)包重組系統(tǒng)的重組方 法,其特征在于包括如下步驟步驟(1 ):采用EMAC核模塊的接收客戶端接口接收網(wǎng)關(guān)節(jié)點(diǎn)GGSN 和支持節(jié)點(diǎn)SGSN的鏈路上的所有3G數(shù)—據(jù)包;步驟(2 ):將步驟(1 )所述的3G數(shù)據(jù)包經(jīng)過消息類型處理模塊判斷得 到網(wǎng)關(guān)節(jié)點(diǎn)GGSN與支持節(jié)點(diǎn)SGSN的協(xié)議類型當(dāng)網(wǎng)關(guān)節(jié)點(diǎn)GGSN與支持節(jié)點(diǎn)SGSN的協(xié)議類型為控制信令協(xié)議 GTP-C,則插入標(biāo)志位0;當(dāng)網(wǎng)關(guān)節(jié)點(diǎn)GGSN與支持節(jié)點(diǎn)SGSN的協(xié)議類型為用戶數(shù)據(jù)協(xié)議 GTP-U,則插入標(biāo)志位l;步驟(3):將步驟(2)所述的控制信令協(xié)議GTP-C和用戶數(shù)據(jù)協(xié)議 GTP-U的數(shù)據(jù)包經(jīng)過HASH模塊得到存取IMSI的地址;步驟(4 ):將步驟(3 )所述存取IMSI的地址經(jīng)過讀寫控制模塊對(duì)IMSI 信息進(jìn)行讀或者寫a) 當(dāng)為控制信令協(xié)議GTP-C類型的數(shù)據(jù)包,則判斷控制信令協(xié)議GTP-C 頭部的消息類型①當(dāng)控制信令協(xié)議GTP-C頭部的消息類型是建立請(qǐng)求信 息,則將IMSI存儲(chǔ)進(jìn)步驟(3)所述存取IMSI的地址;②當(dāng)控制信令協(xié)議 GTP-C頭部的消息類型是建立請(qǐng)求響應(yīng)信息,則將控制信令協(xié)議GTP-C類 型的數(shù)據(jù)包頭部的TEID-CP經(jīng)過HASH才莫塊得到耳又IMSI新地址得到IMSI, 并將控制信令協(xié)議GTP-C類型的數(shù)據(jù)包上行TEID-DII經(jīng)過HASH模塊得到 存IMSI新的地址,將IMSI存儲(chǔ)進(jìn)存IMSI新的地址內(nèi);③當(dāng)控制信令協(xié)議 GTP-C頭部的消息類型是下線響應(yīng)信息,則將控制信令協(xié)議GTP-C類型的 數(shù)據(jù)包頭部的TEID-CP經(jīng)過HASH模塊得到取IMSI新地址得到IMSI;b) 當(dāng)為用戶數(shù)據(jù)協(xié)議GTP-U類型的數(shù)據(jù)包,則將用戶數(shù)據(jù)協(xié)議GTP-U 類型的數(shù)據(jù)包頭部的TEID-DII經(jīng)過HASH模塊得到取IMSI新地址得到 IMSI;步驟(5 ):將步驟(4 )中讀出的IMSI信息經(jīng)過IMSI插入^t塊插入到 用戶數(shù)據(jù)包和用戶上下線響應(yīng)信息中去得到重組數(shù)據(jù)包;步驟(6 ):將步驟(5 )所述的重組數(shù)據(jù)經(jīng)過IMSI非空判斷模塊當(dāng)重 組數(shù)據(jù)包中IMSI部分為零,則將該重組數(shù)據(jù)包發(fā)往指定主機(jī)作為異常包處 理;當(dāng)重組數(shù)據(jù)包中IMSI部分不全為零,則重組的數(shù)據(jù)包作為新的數(shù)據(jù)負(fù) 載輸入到TCP/IP協(xié)議棧中去,最后通過EMAC核模塊的發(fā)送客戶端輸出。
3、根據(jù)權(quán)利要求2所述的基于FPGA的3G數(shù)據(jù)包重組系統(tǒng)的重組方法, 其特征在于HASH模塊中包括HASH函數(shù)h(x,y)=ax+y ,其中a為2的冪 次,x,y為正整數(shù)為HASH函數(shù)的系數(shù)。
全文摘要
本發(fā)明公布了一種基于FPGA的3G數(shù)據(jù)包重組系統(tǒng)及方法。本發(fā)明所述系統(tǒng)包括EMAC核模塊和用戶接口模塊,其中用戶接口模塊包括消息類型處理模塊、HASH模塊、IMSI存儲(chǔ)模塊、讀寫控制模塊、IMSI插入模塊、IMSI非空判斷模塊。本發(fā)明所述方法根據(jù)SGSN和GGSN之間的控制信令協(xié)議GTP-C提取出用戶身份信息IMSI,然后根據(jù)TEID-CP、TEID-DII存儲(chǔ)IMSI信息,并將用戶上下線狀態(tài)信息與用戶身份信息綁定傳輸?shù)胶蠖颂幚?;并且將用戶?shù)據(jù)協(xié)議GTP-U中的數(shù)據(jù)包根據(jù)頭部的TEID-DII查找IMSI,將用戶數(shù)據(jù)與IMSI綁定重組數(shù)據(jù)包,并且將不同用戶數(shù)據(jù)包根據(jù)應(yīng)用層不同協(xié)議類型發(fā)往后端處理。本發(fā)明提高了整體監(jiān)管系統(tǒng)的效率,速度迅速。
文檔編號(hào)H04L29/06GK101582884SQ20091003314
公開日2009年11月18日 申請(qǐng)日期2009年6月15日 優(yōu)先權(quán)日2009年6月15日
發(fā)明者孫婷婷, 張曉曉, 秦中元, 杰 黃 申請(qǐng)人:東南大學(xué)