易截截图软件、单文件、免安装、纯绿色、仅160KB

linux内核netfilter的实现以及ipset

netfilter的实现机制基于四个层次的匹配,数据包在每个层次都要经过一个过滤链表,第一个层次就是hook,众所周知linux内核中一共拥有5个hooks,当然你也可以自己修改内核在任何地方添加hook;第二个层次就是每个hook下面的tables,每一个hook都过挂载零个或者若干个tables,数据包要一个一个经过这些tables;第三个层次就是rule,每个table下面拥有零个或者若干个rule,数据包要依次经过这些rules,只要有一个rule对数据包进行了裁决,那么将不再经过该hook的该table的对应rule的后面rules;第四个层次是matchs,和rules的遍历正好相反,数据包只有在对应rule下面的所有的matchs都匹配后才算匹配。
     在内核中,netfilter是由下面4个核心结构体支撑起来的:
struct xt_table_info
{
    unsigned int size;
    unsigned int number;
    unsigned int initial_entries;
    unsigned int hook_entry[NF_IP_NUMHOOKS];
    unsigned int underflow[NF_IP_NUMHOOKS];
    char *entries[NR_CPUS];
};
entries[cpu]指向了一个ipt_entry数组,该数组的内存组织形式是平坦的,通过ipt_entry的next_offset字段进行遍历:
struct ipt_entry
{
    struct ipt_ip ip;
    unsigned int nfcache;
    u_int16_t target_offset;
    u_int16_t next_offset;
    unsigned int comefrom;
    struct xt_counters counters;
    unsigned char elems[0];
};
elems指向了一块平坦内存模式的,包含了若干个matchs和一个target,target通过target_offset来定位,各个matchs正如上面所说,通过next_offset来进行遍历的:
struct xt_entry_match
{
    union {
        struct {
            u_int16_t match_size;
            char name[XT_FUNCTION_MAXNAMELEN-1];
            u_int8_t revision;
        } user;
        struct {
&nbs


相关文档:

Linux iptable文档

总览
用iptables -ADC 来指定链的规

,-A添加 -D删除 -C 修改
iptables - [RI] chain rule num rule-specification[option]
用iptables - RI 通过规则的顺序指定
iptables -D chain rule num[option]
删除指定规则
iptables -[LFZ] [chain][option]
用iptables -LFZ 链名 [选项]
iptables -[NX] chain
用 -NX ......

oracle在linux下怎么安装

red hat linux 下安装 oracle 10g
racle考资料:
Oracle官方网站: http://download.oracle.com/docs/html/B10813_01/toc.htm
一、以root用户登录, 进行如下操作:
1 检查硬件要求
* 主要包括:
********************************************************************
* 内存:      & ......

linux下vim+ctags用法


[/home/brimmer/src]$ ctags -R
"
-R"表示递归创建,也就包括源代码根目录下的所有子目录下的源程序。"
tags"文件中包括这些对象的列表:
l        

#define定义的宏
l        
枚举型变量的值
l  ......

Linux下的定时器:alarm()与 setitimer()

Linux下的定时器有两种,以下分别介绍:
 
1、alarm
 
如果不要求很精确的话,用alarm()和signal()就够了
 
unsigned int alarm(unsigned int seconds)
 
函数说明:
alarm()用来设置信号SIGALRM在经过参数seconds指定的秒数后传送给目前的进程。如果参数seconds为0,则之前设置的闹钟会被取 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号