融合idc信息安全管理系統(tǒng)-業(yè)務(wù)框架處理詳細(xì)設(shè)計(jì)說(shuō)明書(shū)_第1頁(yè)
融合idc信息安全管理系統(tǒng)-業(yè)務(wù)框架處理詳細(xì)設(shè)計(jì)說(shuō)明書(shū)_第2頁(yè)
融合idc信息安全管理系統(tǒng)-業(yè)務(wù)框架處理詳細(xì)設(shè)計(jì)說(shuō)明書(shū)_第3頁(yè)
融合idc信息安全管理系統(tǒng)-業(yè)務(wù)框架處理詳細(xì)設(shè)計(jì)說(shuō)明書(shū)_第4頁(yè)
融合idc信息安全管理系統(tǒng)-業(yè)務(wù)框架處理詳細(xì)設(shè)計(jì)說(shuō)明書(shū)_第5頁(yè)
已閱讀5頁(yè),還剩23頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

目錄

目錄.................................................................................2

1皿...............................................................................4

2詳細(xì)設(shè)計(jì)...........................................................................4

2.1全局常用宏定義.................................................................4

2.2業(yè)務(wù)鏈表管理詳細(xì)設(shè)計(jì)...........................................................4

2.2.1數(shù)據(jù)描述....................................................................4

2.2.2函數(shù)或流程描述..............................................................7

2.3業(yè)務(wù)處理設(shè)計(jì)....................................................................7

2.3.1數(shù)據(jù)描述.....................................................................7

232函數(shù).........................................................................9

2.4基于業(yè)務(wù)處理的規(guī)則匹配........................................................12

2.4.1數(shù)據(jù)描述...................................................................12

2.4.2函數(shù)........................................................................23

2.5錯(cuò)誤處理和調(diào)試手段............................................................31

2.5.1命令行......................................................................31

關(guān)鍵詞:

摘要:

縮略語(yǔ)清單:〈對(duì)本文所用縮略語(yǔ)進(jìn)行說(shuō)明,要求提供每個(gè)縮略語(yǔ)的英文全名和中文解釋。>

縮略語(yǔ)英文全名中文解釋

1簡(jiǎn)介

2詳細(xì)設(shè)計(jì)

2.1全局常用宏定義

1.數(shù)據(jù)長(zhǎng)度宏定義

#defineBUSI_DATA_8BYTE_LEN8

#defineBUSI_DATA_16BYTE_LEN16

#defineBUSI_DATA_32BYTE_LEN32

#defineBUSI_DATA_64BYTE_LEN64

#defineBUSI_DATA_128BYTE_LEN128

#defineBUSI_DATA_256BYTE_LEN256

#defineBUSI_DATA_512BYTE_LEN512

#defineBUSI_DATA_1024BYTE_LEN1024

該處定義的宏為業(yè)務(wù)處理整體模塊設(shè)計(jì)所引用,除非必要在設(shè)計(jì)與實(shí)現(xiàn)流程中禁止采用數(shù)字,涉

及數(shù)據(jù)長(zhǎng)度引用的地方均采用宏定義。

2.2業(yè)務(wù)鏈表管理詳細(xì)設(shè)計(jì)

2.2.1數(shù)據(jù)描述

1.處理流程

該業(yè)務(wù)初始處理失敗,后愎

不再處理?xiàng)壪⑻幚頎顟B(tài)

2.結(jié)構(gòu)體定義

當(dāng)前數(shù)據(jù)結(jié)構(gòu)是根據(jù)當(dāng)前系統(tǒng)需求來(lái)添加的,后續(xù)如需變更請(qǐng)?jiān)诋?dāng)前變量后需添加;請(qǐng)不

要變更結(jié)構(gòu)體已有成員的字節(jié)長(zhǎng)度以及變量名。

Typedefstructbusi_http_parser_s

(

Uint32_tulHttpInfoTempBitMap;/*臨時(shí)位圖,用來(lái)表示在當(dāng)前數(shù)據(jù)包處理流程

中,新增的信息*/

Uint32_tulHttpInfoB讓Map;展物存■息位圖,用來(lái)標(biāo)示,當(dāng)前處理已提取到哪些完

整信息。

r

enumBUSI_HTTPINFO_E

(

BUSI_HTTPINFO_HOST,

BUSI_HTTPINFO_HOST_END,

BUSI_HTTPINFO_URL,

BUSI_HTTPINFO_URLEND,

BUSI_HTTPINFO_COOKIE,

BUSI_HTTPINFO_COOKIE_END,

BUSI_HTTPINFO_USEFIAGENT,

BUSI_HTTPINFO_USERAGENT_END,

};

7

Uint8_t*pucHttpHost;/*動(dòng)態(tài)申請(qǐng)內(nèi)存*/

Uint8_t*pucHttpUrl;/*動(dòng)態(tài)申請(qǐng)內(nèi)存*/

Uint8_t*pucHttpCookie;/*動(dòng)態(tài)申請(qǐng)內(nèi)存*/

Uint8_t*pucHttpUseragent;/*動(dòng)態(tài)申請(qǐng)內(nèi)存*/

Uint8JucHttpParserStatus;〃H丁丁尸處理狀態(tài)

/*

enumBUSI_HTTP_PAFISER_STATUS_S

HTTP_PARSER_GET_REQUEST,

HTTP_PARSER_POST_REQUEST,

HTTP_PARSER_REQUEST_CONT!NUE,

HTTP_PARSER_REQUEST_END,〃請(qǐng)求處理完成

HTTP_PAFISER_FIESPONSE,

HTTP_PARSER_RESPONSE_CONTINUE,

HTTP_PARSER_RETRANS_REQUEST,

};

7

Uint16_tusHttpStatus;〃H丁丁尸的龍回狀態(tài)得

Uint32_t\JX^N曲C\ass\n6ex,〃歸屬的網(wǎng)站類(lèi)型;結(jié)構(gòu)化

Uint32_tulWebSitelndex;砥屬的站點(diǎn)類(lèi)型結(jié)構(gòu)化

Structlist_headstKeyld;/*當(dāng)前URL命中的關(guān)鍵詞ID信息,采用freelist方式存儲(chǔ)。*/

}busi_httpj3arser_t;

Typedefstructbusi_ftp_parser_s

Uint16_tusFtpStatus;/*即狀態(tài)碼*/

charftp_file_name[DATA_64BYTE_LEN];

uint8_tftp_trans_direct;/*傳輸方向*/

uint8_tftrans_mode;/*傳輸模式*/

uint32_tfile_size;/*文件大小*/

Tuple_13_tdatajp;/*數(shù)據(jù)連接ip信息*/

Unsignedshortintdata_port;/*數(shù)據(jù)連接端口信息*/

}busi_ftpj)arser_t;

Typedefstructbusi_dns_parser_s

Chardomain[DATA_64BYTE_LEN];/*DA/S城名7

Charresult_ip[DATA_64BYTE_LEN];/*CWS建海績(jī)果7

}busi_dns_parser_t;

3.數(shù)據(jù)描述

1)HTTP業(yè)務(wù)全局FreeList變量

lib_freelist_t*g_pstBusiHttpFreeList=NULL;

2)DNS業(yè)務(wù)全局FreeList變量

lib_freelist_t*g_pstBusiDnsFreeList=NULL;

3)FTP業(yè)務(wù)全局FreeList變量

lib_freelist_t*g_pstBusiFtpFreeList=NULL;

4)VOIP業(yè)務(wù)全局FreeList變量

lib_freelist_t*g_pstBusiVoipFreeList=NULL;

5)EMAIL業(yè)務(wù)全局FreeList變量

lib_freelist_t*g_pstBusiEmailFreeList=NULL;

6)RTSP業(yè)務(wù)全局FreeList變量

lib_freelist_t*g_pstBusiRtspFreeList=NULL;

7)P2P業(yè)務(wù)全局FreeList變量

lib_freelist_t*g_pstBusiP2pFreeList=NULL;

8)GAME業(yè)務(wù)全局FreeList變量

lib_freelist_t*gjastBusiGameFreeList=NULL;

9)INSTANT業(yè)務(wù)全局FreeList變量

lib_freelist_t*g_pstBusilnstantFreeList=NULL;

2.2.2函數(shù)或流程描述

1.函數(shù):業(yè)務(wù)節(jié)點(diǎn)freelist的創(chuàng)建

在進(jìn)程初始化流程調(diào)用

lib_freelist_t*Iib_freelist_new(uint8_t*pucName,uint32_tulNodeSize,

uint32_tulThreshholdMin,uint32_tulThreshholdWarn,uint32_tulThreshholdMax)

2.函數(shù):申請(qǐng)業(yè)務(wù)結(jié)點(diǎn)

void*lib_freelist_alloc_node(lib_freelist_t*pstFreelist);

3.函數(shù):歸還業(yè)務(wù)結(jié)點(diǎn)

voidlib_freelist_free_node(lib_freelist_t*pstFreelist,void*pstPtr);

2.3業(yè)務(wù)處理設(shè)計(jì)

2.3.1數(shù)據(jù)描述

1.結(jié)構(gòu)體定義

1)業(yè)務(wù)處理函數(shù)結(jié)構(gòu)體

typedefstructbusi_application_func_struct_s

(

〃各業(yè)務(wù)類(lèi)型定義的業(yè)務(wù)解析函數(shù)指針。

void(*busi_ApplicationLayerProtocolParser)(ssn_t*,pdesc_t*);

oooooo,

}busi_application_func_struct_t;

/*

enumBUSI_PARSER_TYPE_E

(

BUSI_PARSER_TYPE_HTTP,

BUSI_PARSER_TYPE_DNS,

BUSI_PARSER_TYPE_FTP,

BUSI_PARSER_TYPE_EMAIL,

BUSI_PARSER_TYPE_VOIP,

BUSI_PARSER_TYPE_RTSP,

BUSI_PARSER_TYPE_P2P,

BUSI_PARSER_TYPE_GAME,

BUSI_PARSER_TYPEJNSTANT,

BUSI_PARSER_TYPE_OTHER,

BUSI_PARSER_TYPE_MAX,

);

*/

Application_func_struct_tg_busiParserFunc[BUSI_PARSER_TYPE_MAX];/*務(wù)盛"

務(wù)對(duì)應(yīng)的處理函數(shù)結(jié)構(gòu)體。*/

2)基本統(tǒng)計(jì)信息結(jié)構(gòu)體

Typedefstructbusi_static_info_s

(

Uint64_tullUpTra什ic;/*上行流量*/

Uint64_tullDnTra什ic;/*下行流量*/

Uint64JullUpPkts;/*上行報(bào)文數(shù)*/

Uint64_tullDnPkts;/*下行報(bào)文數(shù)*/

Uint16_tusSsnCnt;

}busi_static_info_t;

3)會(huì)話(huà)上基本結(jié)構(gòu)

Typedefstructssn_s

(

void*ps\BuWNode;/*指向具體的業(yè)務(wù)結(jié)點(diǎn):初始為NULL*/

busi_static_info_t*pstStaticInfo;/*會(huì)話(huà)初始化對(duì)創(chuàng)建,初始化空間*1

}ssn_t;

2.數(shù)據(jù)描述

全局業(yè)務(wù)處理控制變量,通過(guò)命令行進(jìn)行配置

Uint32Jg_u舊usiParserContro舊itMap;/*通過(guò)命令行投翊用位圖的方式表示*/

3.處理流程

2.3.2函數(shù)

1.函數(shù):會(huì)話(huà)處理業(yè)務(wù)流程

Function://ssn_work

Description://會(huì)話(huà)處理函數(shù)

Calls:

DataAccessed:

DataUpdated:

Input:ssn:會(huì)話(huà)信息結(jié)構(gòu),申請(qǐng)的業(yè)務(wù)結(jié)點(diǎn)存放到當(dāng)前流的會(huì)話(huà)上。

Taskinfo_disp:dispacher線(xiàn)程描述結(jié)構(gòu)

Pdesc:數(shù)據(jù)包描述結(jié)構(gòu)

Output://無(wú)。

Return:H無(wú)

Others:

staticvoidssn_worker(pdesc_t*pstPdesc,ssn_t*pstSsn)

(

/*業(yè)務(wù)處理部分

/*調(diào)用DPT識(shí)別引擎,對(duì)流進(jìn)行識(shí)別”

〃busi_DpiProc(dpi_ssn_t*dpi_ssn,dpi_pdesc_t*pdesc);

if(/*判斷DPI識(shí)別是否結(jié)束*/)

(

/*DPl識(shí)別已經(jīng)結(jié)束,明確當(dāng)前會(huì)話(huà)的應(yīng)用類(lèi)型*/

If(/*判斷當(dāng)前會(huì)話(huà)是否己經(jīng)進(jìn)行過(guò)對(duì)應(yīng)用信息的規(guī)則匹配*/)

(

/*沒(méi)有對(duì)應(yīng)用信息進(jìn)行規(guī)則匹配7

COMPLKUP_PROC();/*調(diào)用規(guī)則匹配函數(shù)*/

/*判斷是否有管控類(lèi)策略命中*/

)

〃調(diào)用業(yè)務(wù)處理函數(shù),進(jìn)行業(yè)務(wù)處理

busi_DissectApplicationLayerProtocol(pdescj*pstPdesc,ssn_t

pstSsn);

)

*/

)

2.函數(shù):業(yè)務(wù)解析處理函數(shù)

Function://busi_DissectApplicationLayerProtocol

Description:〃業(yè)務(wù)解析處理函數(shù)

Calls:

DataAccessed:

DataUpdated:

Input:pstSsn:會(huì)話(huà)信息結(jié)構(gòu),申請(qǐng)的業(yè)務(wù)結(jié)點(diǎn)存放到當(dāng)前流的會(huì)話(huà)上。

pstPdesc:數(shù)據(jù)包描述結(jié)構(gòu)

Output:“無(wú)。

Return:II無(wú)

Others:

Voidbusi_DissectApplicationLayerProtocol(pdesc_t*pstPdesc,ssn_t*pstSsn);

If(/*當(dāng)前業(yè)務(wù)是否需要處理*/)

/*當(dāng)前業(yè)務(wù)不需要處理返回*/

Return;

Switch"*判斷當(dāng)前業(yè)務(wù)處理狀態(tài)*/)

Case初始狀態(tài):

/*根據(jù)DPI識(shí)別結(jié)果獲取業(yè)務(wù)類(lèi)型*/

_busi_ApplicationTypeJudgeProc(ssn);

if(/*判斷業(yè)務(wù)類(lèi)型是否獲取成功*/)

/*如果獲取失敗,標(biāo)記該會(huì)話(huà)后續(xù)不再進(jìn)行處理*/

Return;

}/*判斷當(dāng)前業(yè)務(wù)是否進(jìn)行處理7

If(!(g_ulBusiParserControlBitMap&業(yè)務(wù)類(lèi)型))

/*如果當(dāng)前業(yè)務(wù)不進(jìn)行處理*/

/*標(biāo)記該會(huì)話(huà)后續(xù)不再進(jìn)行處理*/

Return;

Return_value=busi_GetFreeListNode(ssn,app_num,taskjdx);

if(return_value==、)/*業(yè)務(wù)結(jié)點(diǎn)獲取失敗*/

/*標(biāo)記該會(huì)話(huà)后續(xù)不再進(jìn)行處理*/

Return;

Break;

Case正常處理狀態(tài):

/*正常處理狀態(tài),繼續(xù)做后續(xù)流程處理*/

Break;

Default:

Break;

)

/*調(diào)用具體的業(yè)務(wù)解析函數(shù)*/

g_busiParserFunc[/*)lk^-^S*/].application_layer_protocol_parser(taskinfo_disp,

ssn,pdesc);

/*判斷是否符合策略匹配條件*/

//Judge_policy_complkup_proc(ssn);

/*對(duì)與HTTP業(yè)務(wù),當(dāng)HTTP請(qǐng)求解析完成或匹配到對(duì)應(yīng)的關(guān)鍵詞就進(jìn)行規(guī)則匹配*/

/*當(dāng)前只針對(duì)HTTP業(yè)務(wù)*/

busi_JudgePolicyComplkupFunc();

If(/*具備條件*/)

(

/*滿(mǎn)足規(guī)則匹配條件*/

COMPLKUP_PROC();/*調(diào)用規(guī)則匹配函數(shù)*/

/*后續(xù)判斷是否有滿(mǎn)足管控類(lèi)策略匹配,檢查并執(zhí)行動(dòng)作。*/

/*匹配規(guī)則的條件提取順序*/

)

return;

)

2.4基于業(yè)務(wù)處理的規(guī)則匹配

2.4.1數(shù)據(jù)描述

1.結(jié)構(gòu)體定義

1)會(huì)話(huà)基本信息存儲(chǔ)結(jié)構(gòu)

/*用戶(hù)組信息freelist結(jié)構(gòu)體?/

Typedefstructusergroup_freelist_node_s

(

Uint32_tulUserGroupIndex;

Structlist_headstList;

}usergroup_freelist_node_t;

Typedeflib_user_freelist_node_s

(

Uint8_tucUserType;

Uint32_tulUserld;

Structlist_headstList;

}ib_user_freelist_node_t;

/*基本信息結(jié)構(gòu)體,用來(lái)存儲(chǔ)會(huì)話(huà)新建階段獲取基本信息,用來(lái)進(jìn)行規(guī)則匹配*/

/*該結(jié)構(gòu)體放到會(huì)話(huà)上*/

Typedefbusi_base_info_s

(

/*采用freelist的方式來(lái)存儲(chǔ)*/

Structlist_headstUserlnfo;/*勿戶(hù)一個(gè)會(huì)話(huà)可能會(huì)屬于多個(gè)用戶(hù)*/

structlist_headstUsergroupInfoList;/*用戶(hù)級(jí)一個(gè)會(huì)話(huà)可能會(huì)屬于多個(gè)用戶(hù)

組。7

Uint32_tulLinkld;/*^/D7

Uint32_tulSrcAreald;

Uint32JulDstAreald;

}busi_base_info_t;

Typedefstructssn_s

busi_base_info_t*25a泡N。;/*會(huì)話(huà)初始化時(shí)創(chuàng)建,初始化空間*/

}ssn_t;

2)用戶(hù)信息存儲(chǔ)結(jié)構(gòu)

/*用戶(hù)信息傳輸結(jié)構(gòu)體,該結(jié)構(gòu)體主要用來(lái)策略解析模塊向庫(kù)文件安裝模塊傳輸用戶(hù)信

息*/

Typedefstructlib_policy_userinfo_s

(

Uint8_tucUserName[USER_NAME_LEN];

Uint8_tucUserType;〃用戶(hù)類(lèi)型

tupleJ3_tstStartlp;

tupleJ3_tstEndlp;

}lib_policy_userinfo_t;

/*用戶(hù)組信息傳輸結(jié)構(gòu)體,該結(jié)構(gòu)體主要用來(lái)策略解析模塊向庫(kù)文件安裝模塊傳輸用戶(hù)

組信息*/

Typedefstructlib_policy_usergroup_s

(

Uint8JucUserName[USER_NAME_LEN];

Uint8_tucUserGroupName[USER_NAME_LEN];

}libjDolicy_usergroup_t;

Typedefstructusergroup_freelist_node_s

Uint32_tulUserGroupIndex;

Structlist_headstList;

}usergroup_freelist_node_t;

/*共享內(nèi)存用戶(hù)信息線(xiàn)性存儲(chǔ)結(jié)構(gòu),用來(lái)存儲(chǔ)用戶(hù)與內(nèi)部索引的對(duì)應(yīng)關(guān)系*/

Typedefstructlib_userinfo_save_s

{

Uint8_tucUserName[USER_NAME_LEN];

structlist_headstUserGroupList;

Uint8_tubvpe:4,/*信息類(lèi)型,是靜態(tài)信息,還是動(dòng)態(tài)信息*/

ucAttention:4/*該信息是否關(guān)注*I

Uint8_tucUserType;

}lib_userinfo_save_t;

3)用戶(hù)組信息結(jié)構(gòu)體

/?共享內(nèi)存用戶(hù)組信息線(xiàn)性存儲(chǔ)結(jié)構(gòu),用來(lái)存儲(chǔ)用戶(hù)組與內(nèi)部索引的對(duì)應(yīng)關(guān)系*/

Typedefstructlib_userinfo_save_s

(

Uint8_tucUserGroupName[USER_NAME_LEN];

}lib_userinfo_save_t;

4)鏈路信息結(jié)構(gòu)體

/*鏈路信息傳輸結(jié)構(gòu)體,該結(jié)構(gòu)體主要用來(lái)策略解析模塊向庫(kù)文件安裝模塊傳輸鏈路

信息*1

Typedefstructlib_FlowTrafficlnfo_s

(

Chardirection[BUSI_DATA_8BYTE_LEN];

Charcontent[CONTENT_LEN];

}lib_FlowTrafficlnfo_t;

Typedefstructlib_policy_linkinfo_s

(

Charlink_type[LINK_TYPE_LEN];/*對(duì)子同一臺(tái)。尸/火能存在

一種類(lèi)型的劃分*/

Charlink_name[LINK_NAME_LEN];

Chardev_id[DEVJD_LEN];

lib_FlowTrafficlnfo_tpstFlowTrafficlnfo[2];

}libjDOlicy_linkinfo_t;

/*共享內(nèi)存鏈路信息線(xiàn)性存儲(chǔ)結(jié)構(gòu),用來(lái)存儲(chǔ)鏈路與內(nèi)部索引的對(duì)應(yīng)關(guān)系*/

Typedefstructlib_linkinfo_save_s

Charlink_name[USER_NAME_LEN];

}lib_linkinfo_save_t;

/*鏈路信息查找表,以數(shù)組線(xiàn)性表的方式存儲(chǔ),以vlan_id或內(nèi)部物理端口對(duì)應(yīng)的id為數(shù)

組下標(biāo)進(jìn)行存儲(chǔ)*/

Typedefstructlib_linkinfo_lookup_s

d\ndex;/*當(dāng)前物理端口或vlanjd對(duì)應(yīng)的鏈路在內(nèi)部存儲(chǔ)索引*/

}lib_linkinfo_lookup_t;

5)IP地址庫(kù)結(jié)構(gòu)體

/*IP地址庫(kù)信息傳輸結(jié)構(gòu)體,該結(jié)構(gòu)體主要用來(lái)策略解析模塊向IP地址庫(kù)安裝模塊傳

輸信息*/

Typedefstruct/串eanameB*傳輸解析到的區(qū)域名信息*/

Uint8_tucAreaType;//表示區(qū)域類(lèi)型:AS號(hào)或區(qū)域名

/*

enumAFIEA_TYPE_E

{

AREA_TYPE_AS”只有AS號(hào)

AREA_TYPE_NAME,//只有區(qū)域名

AREA_TYPE_NAMEJP,〃區(qū)域名與IP地址對(duì)應(yīng)關(guān)系

AREA_TYPE_MAX,

};

*/

Uint8_tucAreaName[AREA_NAME_LEN];

TupleJ3_tipaddr;

}lib_policy_areaname_t;

/*共享內(nèi)存用戶(hù)信息線(xiàn)性存儲(chǔ)結(jié)構(gòu),用來(lái)存儲(chǔ)用戶(hù)與內(nèi)部索引的對(duì)應(yīng)關(guān)系*/

Typedefstructlib_areainfo_save_s

Uint8_tucAreaName[USER_NAME_LEN];

Uint8_tucIntfoType:4,/*信息類(lèi)型,是靜態(tài)信息,還是動(dòng)態(tài)信息*/

ucAttention;/*該信息是否關(guān)注*/

}lib_areainfo_save_t;

/*IP地址和用戶(hù)的對(duì)應(yīng)關(guān)系存儲(chǔ),調(diào)用動(dòng)態(tài)信息同步模塊接口*/

6)WEB分類(lèi)庫(kù)

/*WEB分類(lèi)庫(kù)信息傳輸結(jié)構(gòu)體,該結(jié)構(gòu)體主要用來(lái)策略解析模塊向WEB分類(lèi)安裝模塊

傳輸信息*/

Typedefstructlib_policy_webinfo_s/*H/EB班點(diǎn)信意、網(wǎng)站類(lèi)型信息結(jié)構(gòu)體*/

(

Uint8_tucInfoType;/*信息類(lèi)型:站點(diǎn)信息;網(wǎng)站類(lèi)型信息;URL歸屬信息;

域名歸屬信息*/

/*

enumWEBINFO_TYPE_E

(

WEBINFO_TYPE_WEBSITE,

WEBINFO_TYPE_WEBCLASS,

WEBINFO_TYPEJJRLINFO,

WEBINFO_TYPE_DOMAININFO,

WEBINFO_TYPE_MAX,

};

7

Uint8_tucWebSiteName[BUSI_DATA_8BYTE_LEN];

Uint8_tucWebClassName[BUSI_DATA_8BYTE_LEN];

Uint8_tucWeblnfo[BUSI_DATA_128BYTE_LEN];

}lib_policy_webinfo_t;

/*WEB分類(lèi)庫(kù)HASH存儲(chǔ)結(jié)構(gòu),以URL為key值*/

/*采用模糊匹配*/

Typdefstructlib_webinf_hash_data_s

(

Unit32_tulWebSitelndex;

Unit32_tulWebClassIndex;

}lib_webinfo_hash_data_t;

/*WEB分類(lèi)庫(kù)信息線(xiàn)性存儲(chǔ)結(jié)構(gòu),用來(lái)存儲(chǔ)站點(diǎn)名與內(nèi)部索引的對(duì)應(yīng)關(guān)系,以?xún)?nèi)部索

引為類(lèi)型*/

Typedefstructlib_websiteinfo_save_s

(

Uint8_tucWebSiteName[HTTP_WEBSITE_NAME_LEN];

}lib_websiteinfo_save_t;

/?用來(lái)存儲(chǔ)站點(diǎn)類(lèi)型名與內(nèi)部索引的對(duì)應(yīng)關(guān)系,以?xún)?nèi)部索引為類(lèi)型*/

Typedefstructlib_webclassinfo_save_s

Uint8_tucWebClassName[HTTP_WEBCLASS_NAME_LEN];

}lib_webclassinfo_save_t;

7)關(guān)鍵詞信息結(jié)構(gòu)體

/*關(guān)鍵詞信息傳輸結(jié)構(gòu)體,該結(jié)構(gòu)體主要用來(lái)策略解析模塊向WEB分類(lèi)安裝

模塊傳輸信息*/

Typedefstructlib_keyinfo_s

Uint32_tullCommandld;〃關(guān)鍵詞對(duì)應(yīng)的實(shí)際策略的Policyld;

Uint8_tucKeylndex;//當(dāng)前關(guān)鍵詞在策略中所屬條件編號(hào)

L)int32_tullPolicyVersion;//關(guān)鍵詞對(duì)應(yīng)的實(shí)際策略的版本號(hào)

Uint8_tucKeylnfo[KEYINFO_LEN];

}lib_keyinfo_t;

/*用來(lái)存儲(chǔ)站點(diǎn)類(lèi)型名與內(nèi)部索引的對(duì)應(yīng)關(guān)系,以?xún)?nèi)部索引為類(lèi)型*/

Typedefstructlib_keyinfo_save_s

Structlist_headstList;//用來(lái)存儲(chǔ)關(guān)鍵詞信息

}lib_keyinfo_save_t;

8)線(xiàn)性表結(jié)構(gòu)

StructStruct;|Struct^蒯睡:

lib_xxxinfo_lib_xxxinfo_lib_xxxinfo_lib_xxxinfo_

save_tsave_tsave」save_t

StructStructStructStruct

lib_xxxinfo_lib_xxxinfo_lib_xxxinfo_lib_xxxinfo_

savetsavetsavetsavet

/*線(xiàn)性?xún)?nèi)部存儲(chǔ)表結(jié)構(gòu)*/

TypdefStructlib_xxxinfotable_s

Uint8_tucTableld;/*各庫(kù)信息的內(nèi)部版本號(hào)*/

Uint32_tullnfoCnt;/*記錄當(dāng)前線(xiàn)性表的使用的節(jié)點(diǎn)數(shù)*/

Lib_xxxinfo_save_t*pstxxxinfo;

}lib_xxxinfotable_t;

lib_xxxinfotable_t*g_pstXxxlnfotable[2];

2.數(shù)據(jù)描述:

1)全局FreeList表變量

/*全局Id存儲(chǔ)FreeList變量*/

Typedefstructpolicy_interld_s

Structlist_headstList;

Policylnterld_tstPolicylnterlD;

}policy_interld_t;

lib_freelist_t*g_pstPolicylnterlDFreeList=NULL;

2)用戶(hù)信息相關(guān)變量定義

Uint8_tg_ucUserLibTableld;〃記錄當(dāng)前正在使用的用戶(hù)信息內(nèi)部存儲(chǔ)表的ID號(hào)。

Uint8_tg_ucUserLibTablePlcyld;〃當(dāng)前正在使用的用戶(hù)信息內(nèi)部策略版本號(hào),從。開(kāi)

始。

Uint8_tg_ucllserLibTablePlcyNewld;〃當(dāng)前用戶(hù)信息內(nèi)部最新策略版本號(hào),從。開(kāi)

始。

lib_userinfo_save_t*g_pstUserlnfoTablellsed;//當(dāng)前正在使用的用戶(hù)信息內(nèi)部存儲(chǔ)

表。

3)鏈路信息相關(guān)變量定義

Uint8」g_ucLinkLibTableld;〃記錄當(dāng)前正在使用的鏈路信息內(nèi)部存儲(chǔ)表的ID號(hào)。

Uint8_tg_ucLlnkLibTablePlcyld;//當(dāng)前正在使用的鏈路信息內(nèi)部策略版本號(hào)。

Uint8_tg_ucLlnkLibTablePlcyNewld;//當(dāng)前鏈路信息內(nèi)部最新策略版本號(hào)。

lib_linkinfo_save_t*gjostLinklnfoTablellsed;//記錄當(dāng)前正在使用的鏈路信息內(nèi)部存

儲(chǔ)表

4)IP地址庫(kù)(區(qū)域)信息

Uint8_tg_ucAreaLibTableld;〃記錄當(dāng)前正在使用的區(qū)域信息內(nèi)部存儲(chǔ)表的ID號(hào)。

Uint8_tg_ucsAreaLibTablePlcyld;〃當(dāng)前正在使用的鏈路信息內(nèi)部策略版本號(hào)。

Uint8_tg_ucAreaLibTablePlcyNewld;〃當(dāng)前鏈路信息內(nèi)部最新策略版本號(hào)。

lib_areainfo_save_t*g_pstArealnfoTableUsed;//當(dāng)前正在使用的區(qū)域信息內(nèi)部存儲(chǔ)

表。

5)WEB分類(lèi)庫(kù)

Uint8_tg_ucWebLibTableld;〃記錄當(dāng)前正在使用的Web分類(lèi)信息內(nèi)部存儲(chǔ)表的ID號(hào)。

Uint8_tg_ucWebLibTablePlcyld;〃當(dāng)前正在使用的Web分類(lèi)信息內(nèi)部策略版本號(hào)。

Uint8_tg_ucWebLibTablePlcyNewld;〃當(dāng)前Web分類(lèi)信息內(nèi)部最新策略版本號(hào)。

lib_areainfo_save_t*g_pstWeblnfoTableUsed;//當(dāng)前正在使用的Web分類(lèi)信息內(nèi)部

存儲(chǔ)表。

6)關(guān)鍵詞信息

Uint8_tg_ucWebLibTableld;//記錄當(dāng)前正在使用的Web分類(lèi)信息內(nèi)部存儲(chǔ)表的ID

號(hào)。

Uint8_tg_ucKeyTablePlcyld;〃當(dāng)前正在使用的關(guān)鍵詞信息內(nèi)部策略版本號(hào)。

Uint8_tg_ucKeyTablePlcyNewld;〃當(dāng)前關(guān)鍵詞信息信息內(nèi)部最新策略版本號(hào)。

lib_key_acsearch_t*g_pstKeyAcSearchEgine;//當(dāng)前正在使用的關(guān)鍵詞匹配引擎。

7)相關(guān)庫(kù)信息內(nèi)部關(guān)聯(lián)ID的計(jì)算方式

Uint32_txxxjnfo_index;/*xxx表示具體的庫(kù)信息類(lèi)型*/

高8位來(lái)表示當(dāng)前使用的該類(lèi)型庫(kù)信息存儲(chǔ)表的內(nèi)部策略版本號(hào);

低24位用來(lái)表示信息在當(dāng)前存儲(chǔ)表中的實(shí)際索引值。

/*轉(zhuǎn)化為結(jié)構(gòu)體*/

TypedefUnion

(

Struct

(

Uint32_tucPolicylnterVer:8,

ulPolicylnterlndex:24;

Jinterld;

Uint32_tall;

}Policylnterld_t;

3.處理流程

1)策略變更流程

更新相應(yīng)類(lèi)型庫(kù)信息

獲取當(dāng)前未使用的內(nèi)部將最新的版本號(hào)

;清理獲取的未使用的的內(nèi)部最新版本號(hào).

策略解析模塊存儲(chǔ)表的ID號(hào),通過(guò)更新到未使用表

|內(nèi)部存儲(chǔ)表空間,清將

策略發(fā)生變更jusXxxLibTablcld來(lái)判的結(jié)構(gòu)變舜中

空所有數(shù)據(jù)g_usXxxLibTablePlcy

斷ucTabelD

Newld自增I

用戶(hù)與IP地址關(guān)系的安裝,區(qū)域與IP地址關(guān)系的安裝在HASH節(jié)點(diǎn)中存儲(chǔ)的是

g_usXxxLibPlcyNewld;

策略切換流程

更新當(dāng)前正在使用的

更新當(dāng)前正在使用的內(nèi)

內(nèi)部策略版本號(hào)更新正在使用的庫(kù)信

部存儲(chǔ)表的ID號(hào),

主備表切換消息g_usXxxLibTablcPlcykl為息內(nèi)部存儲(chǔ)表

g_usXxxLibTablekl更新為最g_usXxxLibTablePlcy

新的庫(kù)信息存儲(chǔ)裝的ID號(hào)

Newld

3)規(guī)則匹配流程

會(huì)話(huà)處理和DPI識(shí)別階段

記錄用戶(hù)在內(nèi)部存儲(chǔ)的2號(hào)(內(nèi)前

1?木號(hào)?實(shí)以?xún)?nèi)部索引值)

上記錄用戶(hù)蛆信息的結(jié)構(gòu)

E4案?為zuu.

寓所熊用戶(hù)信息記點(diǎn)到"讓.以

式存儲(chǔ)

HTTP業(yè)務(wù)處理

4)關(guān)聯(lián)查詢(xún)流程

處理結(jié)束

根據(jù)名稱(chēng)查詢(xún)內(nèi)部索引值

存在

要查詢(xún)的庫(kù)信息

(用戶(hù)名、區(qū)域

名、鏈路名等)

根據(jù)內(nèi)部索引值獲取對(duì)應(yīng)的庫(kù)信息名稱(chēng)

2.4.2函數(shù)

1.函數(shù):HASH算法

/*根據(jù)字符串獲取Hash_key值的算法*/

Function://_busi_BkdrHashFunc

Description:〃根據(jù)字符串獲取對(duì)應(yīng)的HASH值

Calls:

DataAccessed:

DataUpdated:

Input:pucSt:字符串指針

ulHashBitMap:HASH表位圖

Output:II無(wú)。

Return:II無(wú)

Others:

Uint32_t_busi_BkdrHashFunc(uint8_t*pucStr,uint32_tulHashBitMap)

Uint32_tulSeed=131;〃累乘因子31131131313131131313

Uint32_tulHash=0;

While(*pucStr!=0)

{

ulHash=(ulHash*ulSeed)+(*pucStr++);

)

Return(ulHash&ulHashBitmap)

)

2.函數(shù):安裝用戶(hù)信息,并進(jìn)行存儲(chǔ)

Function://Hb_lnstallUserlnfoToLinearList

Description://安裝用戶(hù)信息到線(xiàn)性表中

Calls:

DataAccessed:

DataUpdated:

Input:userinfo:用戶(hù)信息結(jié)構(gòu)體

Output:H無(wú)°

Return:"無(wú)

Others:

Int32_tlib_lnstallllserlnfoToLinearList(lib_policy_userinfo_t*pstUserlnfo)

(

/*根據(jù)用戶(hù)名查找在線(xiàn)性表中當(dāng)前用戶(hù)是否存在*/

If(當(dāng)前用戶(hù)存在)

(

Returnuserjndex;

)

/*不存在,添加用戶(hù)名到索引表中,并返回用戶(hù)內(nèi)部索引*/

lf(linear_list==FULL)〃檢查線(xiàn)性表是否處于FULL

(

Return;

)

Returnuser_new_index;

}

/*將用戶(hù)信息安裝到HASH存儲(chǔ)表中,調(diào)用動(dòng)態(tài)信息同步信息安裝接口*/

DYNAMIC_INSTALL_USERINFO_API();

3.函數(shù):安裝區(qū)域信息

Function://lib_lnstallArealnfoToLinearList

Description://安裝用戶(hù)信息到線(xiàn)性表中

Calls:

DataAccessed:

DataUpdated:

Input:userinfo:用戶(hù)信息結(jié)構(gòu)體

Output:II無(wú)。

Return:“無(wú)

Others:

Int32_tlib_lnstallArealnfoToLinearList(lib_policy_areaname_t*pstAreaInfo)

(

)

/*將用戶(hù)信息安裝到HASH存儲(chǔ)表中,調(diào)用動(dòng)態(tài)信息同步信息安裝接口*/

DYNAMIC」NSTALL_AREAINFO_API();

4.函數(shù):安裝鏈路信息

Function://Hb_lnstallLinklnfoToLinearList

Description:〃安裝鏈路信息到線(xiàn)性表中

Calls:

DataAccessed:

DataUpdated:

Input:userinfo:用戶(hù)信息結(jié)構(gòu)體

Output:II無(wú)°

Return:II無(wú)

Others:

Intlib_lnstallLinklnfoToLinearList(lib_policy_linkinfo__tlinkinfo)

/*如果是vlan_id,則直接以vlan_id為線(xiàn)性索引值,進(jìn)行安裝*/

If(vlan_id)/*vlan_id&&vlanjd沒(méi)有超過(guò)線(xiàn)性表的最大值*/

If(信息已存在)

Returnlink_old_index;

)

&ARRAY[vlan_id];

Returnlink_new_index;

)

If(物理口)

(

/*根據(jù)物理口名稱(chēng),查找內(nèi)部編號(hào)intfjd,以?xún)?nèi)部編號(hào)為線(xiàn)性索引值*/

If(信息已存在)

(

Returnlink_old_index;

)

&ARRAY[intf_id];

Returnlink_new_index;

}

)

5.函數(shù):安裝WEB分類(lèi)庫(kù)

Function://Hb_lnstallLinklnfoToLinearList(CP)

Description:〃安裝鏈路信息到線(xiàn)性表中

Calls:

DataAccessed:

DataUpdated:

Input:userinfo:用戶(hù)信息結(jié)構(gòu)體

Output:II無(wú)。

Return:H無(wú)

Others:

Intlib_lnstallWeblnfoToLinearList(libjDolicy_webinfo_t*pstWebinfo)

(

/*判斷是站點(diǎn)名稱(chēng)還是網(wǎng)站類(lèi)型*/

if(站點(diǎn)名稱(chēng)信息)

(

/*安裝到站點(diǎn)名稱(chēng)線(xiàn)性表中*/

Jib_installWebSitelnfoToLinearList(lib_policy_webinfo_tWebinfo);

)

If(網(wǎng)站類(lèi)型分類(lèi)信息)

/*安裝到網(wǎng)站類(lèi)型分類(lèi)名稱(chēng)線(xiàn)性表中*/

Jib_installWebClasslnfoToLinearList(lib_policy_webinfo_tWebinfo);

)

)

6.獲取:用戶(hù)、用戶(hù)組、鏈路信息、區(qū)域信息(會(huì)話(huà)處理階段)

Function://busi_GetUserlnfo

Description://獲取用戶(hù)信息

Calls:

DataAccessed:

DataUpdated:

Input:ssn:會(huì)話(huà)信息結(jié)構(gòu),申請(qǐng)的業(yè)務(wù)結(jié)點(diǎn)存放到當(dāng)前流的會(huì)話(huà)上

Output://無(wú)。

Return:“無(wú)

Others:

獲取用戶(hù)信息、用戶(hù)組信息

Voidbusi_Getllserlnfo(ssn_t*ssn)

(

/*調(diào)用查詢(xún)接口,查找歸屬的用戶(hù)信息并存儲(chǔ)*/

/*如果查不到對(duì)應(yīng)的用戶(hù)信息,則用戶(hù)ID默認(rèn)為Oxffff*/

DYNAMIC_API(DYNAMIC_STRUCT,func);

)

Function://busi_GetLinklnfo

Description://獲取鏈路信息

Calls:

DataAccessed:

DataUpdated:

Input:ssn:會(huì)話(huà)信息結(jié)構(gòu),申請(qǐng)的業(yè)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論