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

【转帖LINUX】netfilter中的conntrack内核阅读笔记(3)

2008-07-07 22:06
PREROUTING:ip_conntrack_defrag à ip_conntrack_in
1,ip_conntrack_defrag:
通常当IP报文被送至L4层处理时,如果该报文是分片报文,那么报文就会先被保存起来,直到所有分片到达后重组成一个完整报文后,再被分发到L4层。当没有启动conntrack时,netfilter各HOOK点对报文操作时,并不检查该报文是否分片;但是如果启动conntrack功能,则必须保证进入netfilter HOOK点的报文是一个完整的报文,因此ip_conntrack_defrag一般处于最前端的HOOK,负责将分片报文重组。
/* 若报文分片,则 调用ip_ct_gather_frags 组装报文,如果所有分片均已到达,pskb指向新生成的报文,继续沿着HOOK链进行下一步处理;否则为空,报文被缓存等待下一分片到来*/
if ((*pskb)->nh.iph->frag_off & htons(IP_MF|IP_OFFSET)) {
     *pskb = ip_ct_gather_frags(*pskb,
                                hooknum == NF_IP_PRE_ROUTING ?
                      IP_DEFRAG_CONNTRACK_IN :
                      IP_DEFRAG_CONNTRACK_OUT);
     if (!*pskb)
          return NF_STOLEN;
}
return NF_ACCEPT;
ip_ct_gather_frags直接调用ip_defrag处理IP分片报文。对于分片报文的重组主要在ip_fragment.c中完成。
 
3, resolve_normal_ct:
   resolve_normal_ct在全局连接表中,查找与该报文相应的连接状态,返回的是ip_conntrack的指针,用于描述和记录连接的状态;若该连接尚不存在,则创建相应的结构,并进行初始化,设置连接状态。
   /*1,将数据包的内容转化成相应的tuple,对于和协议相关的部分,如端口,则调用相关协议的处理函数pkt_to_tuple*/
      if (!ip_ct_get_tuple(skb->nh.iph, skb, skb->nh.iph->ihl*4,
         


相关文档:

Freebsd与linux对比分析


FreeBSD是一个完整的操作系统,包含了从开发工具到各种各样的应用程序。
目前人们认为FreeBSD在稳定性和网络运作上的性能要优于Linux。
它由一个软件开发的核心团队来维护,整个原始程序代码会有组织地进行更新,所以程序代码比较有一致性。
由于人们对FreeBSD的认识比较少,使用范围也比较小,导致了它在对一些新产品 ......

linux文件的权限修改chmod用法

指令名称 : chmod
使用权限 : 所有使用者
使用方式 : chmod [-cfvR] [--help] [--version] mode file...
说明 : Linux/Unix 的档案调用权限分为三级 : 档案拥有者、群组、其他。利用 chmod 可以藉以控制档案如何被他人所调用。
参数 :
mode : 权限设定字串,格式如下 : [ugoa...][[+-=][rwxX]...][,...],其中
......

建立ARM+Linux应用程序调试环境

 
建立ARM+Linux应用程序调试环境
 
Gdb+gdbserver+insight环境的搭建
1.    下载gdb源代码    http://ftp.gnu.org/gnu/gdb/
 
2.    配置安装gdb+gdbser
$ tar jxvf gdb-6.6.tar.bz2
$ cd x/gdb
$ ./configure --target=arm-linux --prefix=/usr/lo ......

Notes for Advanced Linux Programming 4. Threads

4.  Threads
To use the POSIX standard thread API (pthreads), link libpthread.so
to your program.
4.1. Thread Creation
Each thread in a process is identified by a thread ID,
pthread_t.
The pthread_self function returns the thread ID of the current
thread.
This thread IDs can be compared ......

Linux设置环境变量小结

1
、总结背景

linux
系统下,如果你下载并安装了应用程序,很有可能在键入它的名称时出现
“command not found”
的提示内容。如果每次都到安装目标文件夹内,找到可执行文件来进行操作就太繁琐了。这涉及到环境变量
PATH
的设置问题,而
PATH
的设置也是在
linux
下定制环境变量的一个组成部分。 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号