`
shaojiashuai123456
  • 浏览: 264351 次
  • 性别: Icon_minigender_1
  • 来自: 吉林
社区版块
存档分类
最新评论

libnids 主要数据结构

阅读更多

1.  tuple4   libnids最基本结构

 

struct  tuple4{

      u_short    source;    //源端口

      u_short    dest;       //目的端口

           u_int   saddr;     //源ip

           u_int   daddr;     //目的ip

}

 

2.  half_stream 

 

struct  half_stream{

      char        status;             //套接字的连接状态,如TCP_CLOSE

      char        collect;             //用来表示有数据到达,此数据存放在data成员中,也可以表示数据不存储数据到data

      char        collect_urg;      //表示是否有紧急数据到达,次数据存放在 urgdata中

      char        *data;              //用于存放数据

      int          offset;               //表示存储在data中数据的第一个字节的偏移量

      int          count;               //表示从tcp 连接开始已经存储在data中的数据的字节数

      int          count_new;      //有多少新的数据存储到data 中,如果为0,则表示没有新的数据到达

      int          bufsize;

      int          rmen_alloc;

      int          urg_count;

      u_int      acked;

      u_int      seq;

      u_int      ack_seq;

      u_int      first_data_seq;

      u_char   urgdata;             //存储紧急数据

      u_char   count_new_urg; //表示有新的紧急数据到达,如果为0,表示没有新的紧急数据

      u_char   urg_seen;

      u_int      urg_ptr;

      u_short  window;

      u_char   ts_on;

      u_int      curr_ts;

      struct     skbuff     *list;

      struct     skbuff     *listtail;        

}

 

3.  tcp_stream

 

struct  tcp_stream{

               struct tuple4    addr;                  

                            char     nids_state;

      struct lurker_node    *listeners;

      struct half_stream     *client;

      struct half_stream     *server;

      struct tcp_stream      *next_node;

      struct tcp_stream      *prev_node;

                             int       hash_index;

      struct tcp_stream       *next_time;

      struct tcp_stream       *prev_time;

                             int        read;

      struct tcp_stream       *next_free;            

}

分享到:
评论

相关推荐

    Libnids入门

    ### Libnids入门详解 #### 一、Libnids概览与重要性 ...通过深入理解Libnids的数据结构、状态管理及常用函数,开发者可以高效地构建定制化的网络监控和安全分析系统,有效应对日益复杂的网络安全威胁。

    libnids-tcp-code

    这些注释可能涵盖了关键函数的解释、数据结构的定义、事件处理流程等。通过深入研究这些代码,开发者可以更好地理解和应用libnids库,以实现自定义的网络流量分析或入侵检测解决方案。 总之,TCP重组是网络通信中的...

    libnids-1.24.rar

    libnids的源码结构清晰,易于理解和扩展。其设计遵循模块化原则,开发者可以根据需求选择使用特定的模块,如数据包捕获模块(依赖于libpcap库)、TCP状态管理模块和事件处理模块。同时,libnids提供了丰富的API接口...

    libnids-1.24.tar

    Libnids库的核心组件包括数据结构,如`NIDS_handle`用于表示一个网络连接,以及一系列函数,如`nids_register`用于注册数据包处理回调,`nids_run`用于开始数据包捕获。开发者需要了解这些基本的结构和函数,以便...

    libnids-1.18.tar.gz

    一、libnids的基本结构与原理 1. **数据包捕获与解析**:libnids利用底层的网络接口,如libpcap,来捕获网络中的数据包。它能够解析多种网络协议,包括TCP、UDP、IP等,为上层应用提供方便的数据包处理接口。 2. *...

    libnids 源码解读加了大量的注释

    - **TCP流重组**:libnids能够重组分片和乱序的TCP数据包,以恢复完整的应用层数据。 - **事件处理**:当检测到特定的网络行为时,libnids会触发回调函数,供用户实现自定义的检测逻辑。 **2. IP模块** libnids中...

    Libnids-API(中文版)

    Libnids 是一个网络入侵检测系统的库,主要用于实现高效的网络流量分析和监控功能。它能够处理各种复杂的网络协议,并提供高级特性如IP碎片重组和TCP流还原等。该库版本为1.16,在许多应用场景中被广泛采用,如网络...

    libnids_TCP.rar_C++ TCP_build589_libnids_tcp

    这些定义提供了与TCP处理相关的数据结构,如TCP流的信息表示、状态转换的枚举等。通过阅读`tcp.h`,我们可以了解到libnids如何组织和管理TCP连接的状态信息,以及如何对外提供接口供其他模块调用,例如添加新的TCP包...

    入侵检测系统的设计与实现 课程设计

    在Java实现中,可能会使用如字符串匹配、哈希表或二叉搜索树等数据结构和算法来高效地执行匹配过程。 4. Java语言应用: 选择Java作为开发语言是因为其跨平台性、丰富的类库和面向对象的特性,使得代码的可读性和可...

    NIDS协议驱动开发(文档)

    文档首先会介绍NDIS的基本概念,包括其架构、层次结构以及在Windows操作系统中的位置。NDIS作为网络驱动程序的基础框架,负责管理网络适配器,协调不同驱动程序之间的通信,并为上层的协议和下层的硬件提供统一的...

    网络安全开发包详解

    书中对每个开发包的功能、原理和安装步骤进行了介绍,对开发包的各种数据结构和输出函数进行了详细阐述,并通过举例对开发包的使用方法进行了详细说明,每个例子都给出了完整的源代码并有详细的注解和结果分析。...

    网络安全开发包详解代码

    书中对每个开发包的功能、原理和安装步骤进行了介绍,对开发包的各种数据结构和输出函数进行了详细阐述,并通过举例对开发包的使用方法进行了详细说明,每个例子都给出了完整的源代码并有详细的注解和结果分析。...

    论文研究-基于开源函数库的入侵检测系统的设计和实现 .pdf

    基于开源函数库的入侵检测系统设计和实现涉及多个知识点,包括入侵检测系统的体系结构、入侵规则库的建立、基于BPF过滤机制的Libpcap数据包捕获技术以及利用Libnids进行IP分片重组和TCP流重组的技术。此外,还涵盖了...

    测试报告1

    【测试报告1】主要涉及了网络协议中的HTTP数据包捕获、数据流还原以及协议分析的流程。在本文中,我们将深入探讨这些知识点,并详细解释它们的实现。 1. **HTTP数据包捕获**: 使用`libnet`库来捕获通过网卡80端口...

    libnet网络编程

    libnet与libpcap和libnids并称为网络安全开发的三大法宝,它们共同为开发者提供了丰富的API,帮助他们编写出结构良好、性能稳定且具有高度可移植性的程序。 #### 二、libnet的特点 1. **高级别的抽象**: libnet...

Global site tag (gtag.js) - Google Analytics