毕业论文
计算机论文
经济论文
生物论文
数学论文
物理论文
机械论文
新闻传播论文
音乐舞蹈论文
法学论文
文学论文
材料科学
英语论文
日语论文
化学论文
自动化
管理论文
艺术论文
会计论文
土木工程
电子通信
食品科学
教学论文
医学论文
体育论文
论文下载
研究现状
任务书
开题报告
外文文献翻译
文献综述
范文
基于Netfilter的网络数据包捕获与分析(5)
(1)针对每种网络协议(IPv4、IPv6等)定义若干个钩子(IPv4、IPv6都定义了5个钩子点),这些钩子点在协议栈中被精心定位;数据包在通过IP协议栈时,根据路由表会经过其中的某些钩子点。
(2)内核模块可以在一个或多个这样的钩子点注册挂接钩子函数。
(3)这样,数据包在通过某个钩子点时,就会调用注册在此钩子点上的钩子函数,此函数实现对数据包的具体处理,并将处理结果换回相应的内核模块。
2.2.4 Netfilter工作原理
开发基于Netfilter框架的内核模块一般有一下几个步骤:分析功能需求,确定要在哪几个钩子挂载点处注册钩子函数;按照钩子函数的接口规范编写钩子函数;在挂载点处注册钩子函数。
Netfilter的设计为Linux内核中其它模块动态参与IP层中的数据包处理提供了途径。其实现方法是:
(1)在内核中建立了一个函数指针链表,即钩子函数链表,加入到链表中的函数指针所指的函数称为钩子函数(Hook Function)。当内核模块需要参与IP层中对数据包的处理时,通过调用Netfilter中钩子函数的注册函数,注册内核模块的数据包处理函数,Netfilter将在钩子函数链表中记录下此模块中的数据包处理函数指针。
(2)IP层在数据包处理过程中,会检查相应的钩子函数链表中是否有钩子函数被注册:如果存在注册的钩子函数,便会调用此函数,并且根据该函数的处理结果,决定是继续完成IP层中的后续处理过程,还是丢弃此数据包,中断数据包的传输;如果不存在注册的钩子函数,则继续完成IP层中的后续处理。
(3)当内核模块不需要参与IP层的数据包处理时,调用Netfilter钩子注销函数,Netfilter从钩子函数链表中去掉此钩子函数指针,这样IP层检测不到钩子函数的存在,会继续其后续操作。
钩子和挂载函数是Netfilter架构中的核心部分。Linux内核的Netfilter框架为IPv4协议实现了五个钩子函数挂载点,分别为:NF_IP_PRE_ROUTING,NF_IP_LOCAL_IN,NF_IP_FORWARD,NF_IP_POST_ROUTING,NF_IP_LOCAL_OUT。当数据包流经IPv4协议栈的五个挂载点时,内核就会调用在挂载点注册的回调函数对数据包进行处理。Netfilter挂载点回调函数的调用代码是通过NF_HOOK宏嵌入在网络协议栈的代码之中的,其定义在include/linux/netfilter.h中。
共5页:
上一页
1
2
3
4
5
下一页
上一篇:
fMRI中的时序信号比对分析+文献综述
下一篇:
基于NS2的COPE编码机制实现仿真
Android手机考勤平台的设计与实现
基于android的环境信息管理系统设计
java+mysql班级评优系统的设计实现
Python+mysql宠物领养平台的设计与实现
ASP.NET飞翔租贷汽车公司信...
基于激光超声检测金属材...
多频激励下典型非线性系统的振动特性研究
基于Joomla平台的计算机学院网站设计与开发
STC89C52单片机NRF24L01的无线病房呼叫系统设计
浅谈高校行政管理人员的...
酵母菌发酵生产天然香料...
浅论职工思想政治工作茬...
上海居民的社会参与研究
AES算法GPU协处理下分组加...
从政策角度谈黑龙江對俄...
提高教育质量,构建大學生...
压疮高危人群的标准化中...