- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
入侵防御系统中TCP数据流重组设计与实现
入侵防御系统中TCP数据流重组设计与实现 摘要:网络攻击越来越隐蔽,很多攻击把特征信息隐藏在多个数据包中,这大大增加了攻击检测的难度,TCP数据流重组是可靠数据传输及网络数据内容还原的基础,也是入侵防御系统中的基础模块。论文详细介绍了入侵防御系统中TCP数据流重组的设计原理及实现,给出了核心数据结构,最后分析了重组的效率及目前存在的问题。 关键词:入侵防御系统;TCP数据流重组;哈希表;缓存; 中图分类号:TP393.01 文献标识码:A 文章编号:1007-9599 (2012) 17-0000-02 1 引言 IPS(Intrusion Prevention System)是网络安全领域的一种基本安全防护设施,是对入侵检测系统(Intrusion Detection System IDS)和各种防火墙的有力补充。在攻击检测的过程中,为了准确有效得检测出隐蔽在多个数据包中的攻击,必须进行TCP会话的还原,从而得到完整的攻击特征。完成还原后再与攻击特征库???规则进行匹配,可以有效提高检测攻击的效率和准确度。 2 TCP数据流重组的实现原理 2.1 核心数据结构 用于保存一个完整TCP连接信息的结构: struct tcp_stream{ struct tuple4 addr; //TCP连接双方的地址信息 char nids_state; //连接的逻辑状态 struct lurker_node *listeners; //包含回调函数的链表 struct half_stream client; //客户端状态及数据 struct half_stream server; //服务器端状态及数据 struct half_stream *next_node; //HASH中同一键值的下一个节点指针 struct half_stream *prev_node; //HASH中同一键值的前一个节点指针 int hash_index; //HASH表中的索引值 struct half_stream *next_time; //用于保存TCP连接的先后顺序,构建时间链 struct half_stream *prev_time; int read; //本次读进数据缓冲区的数据长度 struct half_stream *next_free; //指向TCP连接缓冲池中下一个空闲结构 } 用于保存TCP连接终端信息的结构体: struct half_stream{ char state; //状态 char collect; //如果大于0,则保存其数据到缓冲区中 char collect_urg; //如果大于0,则保存紧急数据 char *data; //未处理TCP数据缓冲区 int offset; //保存到“data”缓冲区的首字节数据偏移量 int count; //自从连接建立以来保存的数据字节数 int count_new; //最近一次接收到的数据字节数 int bufsize; //data区的长度 int rmem_alloc; //该TCP连接的所有数据的长度和 int urg_count; //该终端接收到得紧急数据的总数目 u_int acked; //未用 u_int seq; //本次TCP包中的SEQ u_int ack_seq; //ACK u_int first_data_seq; //TCP建立连接时的初始SEQ u_char urgdata; //紧急数据 u_char count_new_urg; //如果非0,表示有紧急数据到达 u_char urg_seen; //有新的URG数据,并且不是以前的重复数据 u_int urg_ptr; //指向URG数据在流中的位置 u_short window; //TCP窗口大小 u_char wscale_on; //窗口扩大因子标志 u_int curr_ts; //当前时间 u_int wscale; //窗口扩大因子 struct skbuff *list; //当收到的TCP包中的SEQ比期望的大时,则将该数据先保存在此双向链表中,为访问方便,此链表按包中的SEQ从小到大排列 struct skbuff *listtail; //指向list链表的链尾 } 2.2 Hash表及Hash算法的设计 在TCP数据流的重组过程中,为了提高查找连接的速度,使用了Hash算法,并通过双向链表解决了Hash冲突情况,这与普通的链表的顺序查找相比,大大
您可能关注的文档
最近下载
- 2025年全国硕士研究生招生考试《英语一》真题及解析【完整版】.pdf VIP
- 道德与法治四年级上册全册教案.docx VIP
- 临时便道施工组织设计.pdf VIP
- 小型太阳能手机充电器1.doc VIP
- 1.2 坚持”两个毫不动摇“ 课件-高中政治统编版必修二经济与社会.pptx
- 生物安全柜的使用及维护培训.pptx VIP
- 江苏省公园绿地海绵技术应用导则.docx VIP
- 专题22.7 二次函数图象与系数的关系选填压轴专项训练(30道)(解析版).pdf VIP
- 中职新生主题班会-开学第一课-:新的起点-课件-(30张PPT).pptx VIP
- C++程序设计教程(第2版)PPT完整全套教学课件.pptx
文档评论(0)