[netfilter]-ip_rcv包转发流程
1,ip_rcv收到包之后,调用NF_HOOK,NF_HOOK首先调用nf_hook遍历NFPROTO_IPV4,
NF_INET_PRE_ROUTING的钩子点上的hook,然后执行ip_rcv_finish
2,ip_rcv_finish调用首先调用查找路由获取rtable,得到input方法,对于RTN_LOCAL,input=ip_local_ip_local_deliver,非RTN_LOCAL,input=ip_forward;之后调用dst_input;
3,如果是RTN_LOCAL进入ip_local_ip_local_deliver,遍历NFPROTO_IPV4
NF_INET_LOCAL_IN的钩子点的hook,最后执行ip_local_deliver_finish
4,非RTN_LOCAL则进入ip_forward,之后遍历NFPROTO_IPV4
NF_INET_FORWARD的钩子点的hook,之后执行ip_forward_finish
5,ip_forward_finish调用ip_output,遍历NFPROTO_IPV4
NF_INET_POST_ROUTING钩子点的hook,之后执行ip_finish_output
[netfilter]-ip_rcv包转发流程相关推荐
- NGFW中数据包转发流程
状态检测防火墙报文处理流程 查询会话前的处理过程:基础处理 查询会话中的处理过程:转发处理,关键是会话建立 查询会话后的处理过程:安全业务处理及报文发送 了解转发流程之前,先给报文分个类 协议报文:使 ...
- ip数据包转发和iptables
Linux内核数据包转发功能和iptables的关系 内核数据包转发(路由)功能是内核将从A网卡接收到的目的地址不是自身地址的ip数据包通过B网卡发送出去的功能(即路由器的功能). 使用以下命令即可开 ...
- Linux Kernel TCP/IP Stack — 协议栈收包处理流程
目录 文章目录 目录 L2 NIC Controller 收包处理流程 L3-4 收包处理流程 Socket Layer 收包处理流程 参考文档 L2 NIC Controller 收包处理流程 硬件 ...
- vxlan 分布式网关数据包转发过程_Vxlan基础
一.为什么需要Vxlan 普通的VLAN数量只有4096个,无法满足大规模云计算IDC的需求,而IDC为何需求那么多VLAN呢,因为目前大部分IDC内部结构主要分为两种L2,L3.L2结构里面,所有的 ...
- 数据中心AR G3系列路由器的数据转发流程
数据转发流程 - AR150&160&20 LAN口间的二层数据转发直接在LSW完成. LAN口间的三层数据转发,或LAN口与WAN口间的数据转发,需要经过LSW和CPU处理. 数据转 ...
- C 语言网络编程 — 内核协议栈收包/发包流程
目录 文章目录 目录 关键技术 DMA sk_buff 结构体 Net driver Rx/Tx Ring Buffer Buffer Descriptor Table NAPI 收包机制 网卡多队列 ...
- Ejabberd源码学习——端口监听及报文转发流程
这篇文章是我之前在RYTong内部分享的一篇文章.上一篇文章说到Ejabberd在启动的时候会监听配置的端口,但没有详细解释监听的流程.这篇我们就来看看Ejabberd监听端口的实现逻辑,了解下一个X ...
- 路由个数据包转发简介
第一章: 网络的核心是路由器, 路由器的作用就是将各个网络彼此连接起来.因此,路由器需要负责不同网络之间的数据包传送.网际通信的效率取决于路由器的性能,即取决于路由器是否能以最有效的方式转发数据包. ...
- linux net.ipv4.ip_forward 数据包转发
出于安全考虑,Linux系统默认是禁止数据包转发的.所谓转发即当主机拥有多于一块的网卡时,其中一块收到数据包,根据数据包的目的ip地址将数据包发往本机另一块网卡,该网卡根据路由表继续发送数据包.这通常 ...
- 【Android 应用开发】Android 工程修改包名流程 ( 修改 applicationId | 修改 package | 修改 R 资源引用 | 修改 BuildConfig 引用 )
文章目录 一. Android 工程修改包名流程 二. 修改 applicationId 三. 修改 package 包名 四. AndroidManifest.xml 清单文件组件 五. 修改 R ...
最新文章
- OpenCV中的尺度不变特征变换(SIFT Scale-Invariant Feature Transform)
- 循环队列,定义循环队列长度为10,编写初始化队列、入队、出队、求队长,实现10,20,30,40,50,60,70,80入队,10,20,30出队,56,67入队的算法功能。
- 二叉树前序遍历-递归与非递归
- Windows下VisualSVN Server的安装与配置方法(图文)
- 管道的另一端上无任何进程。_历史上突然消失的二位牛人,其下落无任何记载...
- System类的常用方法及类字段
- java final 方法重载_java方法重载和覆写的定义,static和final修饰符的讲解,java面试题...
- Swift中的延迟加载(懒加载)
- VBScript的参数引用
- 机器人视觉场景理解挑战赛
- linux tlhelp32.h,CreateToolhelp32Snapshot
- ftp ---- 本地用户登录(实例配置1:)
- SQL Server Reporting Services最佳做法
- elementos php开发,PHPWord
- SIP协议详解(二)
- python正版软件多少钱_多款正版软件 + 付费教程迎来史低价,少数派「双十一」活动全面开始...
- 局域网聊天程序 java MySQL_局域网聊天软件设计与实现(Linux,C++,MySQL)
- Windows系统通过cmd查找结束进程
- 虚函数指针 虚函数表
- GPS测量误差来源分析
热门文章
- 著名的光伏系统设计——pvsyst7.2中文版
- 2022---hgame第一周WriteUp
- caffe源码学习:Blobs
- java序列化算法透析_java--序列化及其算法透析
- Snappy Installer
- 20200804自编译openwrtx86_64固件,源码来自L大
- 與情分析系统,包括爬虫、文本摘要、主题分类、情感倾向性识别以及可视化...
- 正则表达式中的前瞻,后顾,负前瞻,负后顾
- CSDN如何删除上传的资源
- IDEA中 Maven name group、artifact、package区别