1.一种基于两级双向哈希链表的IP数据流管理方法,其特征在于,所述方法包括:
第一步,构建IP数据流状态信息,所述状态信息包括:标识域、长度域、时间域、和/或TCP比特域,所述标识域包括:所述IP数据流的源IP地址、目的IP地址、源端口、目的端口、协议号;所述长度域包括:每个所述IP数据流的报文数、每个所述IP数据流的字节数;所述时间域包括:时间戳、相邻报文的时间间隔;所述TCP比特域包括:紧急比特、确认比特、推送比特、连接复位比特、序号同步、发送方字节流结束比特;
第二步,构建用于存储所述IP数据流状态信息的两级双向哈希链表,包括计算所述两级双向哈希链表的长度;确定所述两级双向哈希链表中任意节点的结构信息;确定所述IP数据流状态信息在所述两级双向哈希链表中的存储位置;
其中,计算所述两级双向哈希链表的长度包括:根据网络运行环境,确定用于存储所述两级双向哈希链表的存储空间大小M;确定所述IP数据流状态信息占用数据大小m;确定所述两级双向哈希链表的长度比例分别为k%和(100‐k)%,得到第一级双向哈希链表的长度为 第二级双向哈希链表的长度为所述两级双向哈希链表中任意节点的结构信息包括所述节点的IP数据流状态信息、指向前一相邻节点的地址pre、指向后一相邻节点的地址next;
确定所述IP数据流状态信息在所述两级双向哈希链表中的存储位置包括:提取所述IP数据流状态信息中的源IP地址;将所述源IP地址对所述第一级双向哈希链表的长度L1做除余运算,得到所述IP数据流状态信息在所述第一级双向哈希链表的存储位置;将所述源IP地址对所述第二级双向哈希链表的长度L2做除余运算,得到所述IP数据流状态信息在所述第二级双向哈希链表的存储位置;
第三步,对于网络中任意到达的IP数据流,实时更新所述两级双向哈希链表;
第四步,设定测量周期,定时导出所述两级双向哈希链表中的所述IP数据流状态信息。
2.根据权利要求1所述的基于两级双向哈希链表的IP数据流管理方法,其特征在于,所述存储空间大小M=223bits,所述IP数据流状态信息占用数据大小m=100bits,所述k%=
60%,所述第一级双向哈希链表的长度为L1=50331,所述第二级双向哈希链表的长度为L2=33554,所述IP数据流的IP源地址为16843009,所述IP数据流在所述第一级双向哈希链表的存储位置为L1[16843009%50331]=L1[334],所述IP数据流在所述第二级双向哈希链表的存储位置为L2[16843009%33554]=L2[501]。
3.根据权利要求1所述的基于两级双向哈希链表的IP数据流管理方法,其特征在于,所述实时更新所述两级哈希链表的信息包括:第一步提取,对任意到达的IP数据流,提取到达IP数据流状态信息;
第二步查询,查询所述到达IP数据流状态信息是否存在于所述第一级双向哈希链表或所述第二级双向哈希链表;
第三步处理,若所述到达IP数据流状态信息存在于所述第一级双向哈希链表,则将所述到达IP数据流状态信息迁移至所述第一级双向哈希链表的头部;
若所述到达IP数据流状态信息存在于所述第二级双向哈希链表,则将所述到达IP数据流状态信息与所述第一级双向哈希链表尾部已存储的另一IP数据流状态信息进行互换;
若所述到达IP数据流状态信息在所述第一级双向哈希链表和所述第二级双向哈希链表均不存在,则该到达IP数据流为新IP数据流,将该到达IP数据流状态信息直接插入第一级双向哈希链表的头部,若此时所述第一级双向哈希链表已满,则将所述第一级双向哈希链表尾部的IP数据流状态信息顺移至所述第二级双向哈希链表的头部,若此时第二级双向哈希链表也已满,将所述第二级双向哈希链表中长度最小的IP数据流状态信息删除。
4.根据权利要求3所述的基于两级双向哈希链表的IP数据流管理方法,其特征在于,所述第一步提取还包括提取所述IP数据流的协议号,若所述协议号为17,则所述IP数据流为UDP数据流,进一步提取所述UDP数据流状态信息中的标识域、长度域、时间域;
若所述协议号为6,则所述IP数据流为TCP数据流,进一步提取所述TCP数据流状态信息中的标识域、长度域、时间域、TCP比特域。
5.根据权利要求3所述的基于两级双向哈希链表的IP数据流管理方法,其特征在于,所述测量周期为1分钟。