Socket_Kernel_Module 07

4 利用系统提供Module: Netfilter

4.1 Netfilter简介

参考 http://www.ibm.com/developerworks/cn/linux/l-ntflt/index.html

Netfilter是从2.4内核引入的,与Linux中的TCP/IP协议族紧密结合,提供了对网络功能的扩展功能。下面分别从报文发送和报文接收两个流程介绍Netfilter,Netfilter以NF_HOOK()的形式出现在报文处理的过程之中。

 

4.2 IP报文发送接收介绍

在介绍Netfilter之前,先要介绍一下Linux中网络报文的发送、接收、中转过程,这里以IP报文为例。

4.2.1报文发送

采用ipip模块发送IP Tunnel报文为例, 从net/ipv4/ipip.c::ipip_tunnel_xmit()开始,到net/core/dev.c::dev_queue_xmit()

 

4.2.2 报文接收

报文接收从网卡驱动开始,当网卡报文接收从网卡驱动程序开始,当网卡收到一个报文时,会产生一个中断,其驱动程序中的中断服务程序将调用确定的接收函数来处理。以下仍以IP Tunnel报文为例。流程分成两个阶段:驱动程序中断服务程序阶段和IP协议栈处理阶段:

 

报文接收流程之驱动程序阶段

 

报文接收流程之协议栈阶段

如果报文需要转发,则在上图红箭头所指处调用ip_forward():


4.2.3报文转发流程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值