1.2 协议栈底层机制 “栈”模式底层机制基本就是像下面这个样子: 对于收到的每个数据包,都从“A”点进来,经过路由判决,如果是发送给本机的就经 过“B”点,然后往协议栈的上层继续传递;否则,如果该数据包的目的地是不本机,那么 就经过“C”点,然后顺着“E”点将该包转发出去。 对于发送的每个数据包,首先也有一个路由判决,以确定该包是从哪个接口出去,然后 经过“D”点,最后也是顺着“E”点将该包发送出去。 协议栈那五个关键点 A,B,C,D 和 E 就是我们 Netfilter 大展拳脚的地方了。 2 Netfilter 2.1Netfilter 介绍 Netfilter 是 Linux 2.4.x 引入的一个子系统,它作为一个通用的、抽象的框架,提供一整 套的 hook 函数的管理机制,使得诸如数据包过滤、网络地址转换(NAT)和基于协议类型的 连接跟踪成为了可能。Netfilter 在内核中位置如下图所示: 这幅图,很直观的反应了用户空间的 iptables 和内核空间的基于 Netfilter 的 ip_tables 模 块之间的关系和其通讯方式,以及 Netfilter 在这其中所扮演的角色。 Netfilter 在 netfilter_ipv4.h 中将那五个关键点“ABCDE”上来。重新命名,如下图所示。
2024-10-26 15:21:33 975KB netfilter 网络安全 钩子函数
1
Rockchip 官方开发板最新PCB源文件:RK_EVB_RK3288_LPDDR3P232SD6_V12_20190228final.pcb
2024-06-05 21:18:53 9.23MB RK3288 rockchip LPDDR3 RK808
1
gcc-buildroot-9.3.0-2020.03-x86_64_aarch64-rockchip-linux-gnu
2023-02-21 16:01:27 191.24MB gcc
1
前⾔ 概述 本⽂主要指导读者如何在U-Boot next-dev分⽀进⾏项⽬开发。 读者对象 本⽂档(本指南)主要适⽤于以下⼯程师: 技术⽀持⼯程师 软件开发⼯程师 各芯⽚feature⽀持状态
2023-01-13 10:06:07 1.4MB rockchip
1
本文档提供Rockchip平台USB 2.0/3.0模块传输性能分析的方法以及支持的最大传输速率。 本文档将分别对USB Host和USB Device(Peripheral)两部分进行介绍。其中,USB Host将会介绍USB Disk、USB Ethernet以及USB Camera的传输性能分析。USB Device(Peripheral)将会介绍USB MTP、USB MSC(Mass Storage Class)、USB Gadget Webcam、USB Rndis、USB Gadget HID的传输性能分析。
2023-01-09 20:31:14 704KB rockchip
1
优之星 u551 刷机(固件升级)工具,我用来刷ut551,也可以刷RockChip RK26XX 系列主控芯片的工具。
2023-01-06 09:46:28 5.88MB 优之星 刷机 固件升级 rt
1
二、基本概念 链接器把一个或多个输入文件合成一个输出文件. 输入文件: 目标文件或链接脚本文件. 输出文件: 目标文件或可执行文件. 目标文件(包括可执行文件)具有固定的格式, 在 UNIX 或 GNU/Linux 平台下, 一般为 ELF 格 式 有时把输入文件内的 section 称为输入 section(input section), 把输出文件内的 section 称为 输出 section(output sectin). 目标文件的每个 section 至少包含两个信息: 名字和大小. 大部分 section 还包含与它相关联 的一块数据, 称为 section contents(section 内容). 一个 section 可被标记为“loadable(可加 载的)”或“allocatable(可分配的)”. loadable section: 在输出文件运行时, 相应的 section 内容将被载入进程地址空间中. allocatable section: 内容为空的 section 可被标记为“可分配的”. 在输出文件运行时, 在进 程地址空间中空出大小同 section 指定大小的部分. 某些情况下, 这块内存必须被置零. 如果一个 section 不是“可加载的”或“可分配的”, 那么该 section 通常包含了调试信息. 可用 objdump -h 命令查看相关信息. 每个“可加载的”或“可分配的”输出 section 通常包含两个地址: VMA(virtual memory address 虚拟内存地址或程序地址空间地址)和LMA(load memory address加载内存地址或进程地址 空间地址). 通常 VMA 和 LMA 是相同的. 在目标文件中, loadable 或 allocatable 的输出 section 有两种地址: VMA(virtual Memory Address)和 LMA(Load Memory Address). VMA 是执行输出文件时 section 所在的地址, 而 LMA 是加载输出文件时 section 所在的地址. 一般而言, 某 section 的 VMA == LMA. 但在 嵌入式系统中, 经常存在加载地址和执行地址不同的情况: 比如将输出文件加载到开发板 的 flash中(由 LMA指定), 而在运行时将位于 flash中的输出文件复制到SDRAM中(由VMA 指定). 可这样来理解 VMA 和 LMA, 假设: (1) .data section对应的VMA地址是 0×08050000, 该 section内包含了 3个 32位全局变量, i、j 和 k, 分别为 1,2,3. (2) .text section 内包含由”printf( “j=%d “, j );”程序片段产生的代码. 连接时指定.data section 的 VMA 为 0×08050000, 产生的 printf 指令是将地址为 0×08050004 处的 4 字节内容作为一个整数打印出来。 如果.data section 的 LMA 为 0×08050000,显然结果是 j=2 如果.data section 的 LMA 为 0×08050004,显然结果是 j=1 还可这样理解 LMA:
1
Rockchip Secure Boot Application Note_v1.7_20170519 Secure Boot 的目的是保证芯片只运行用户指定的程序,芯片每次启动时都会验证从 flash 中加载的 partition table 和 app images 是否是用户指定的
2022-12-10 23:55:05 1.34MB secure
1
rockchip-Secureboot+介绍 rockchip-Secureboot+介绍
2022-12-10 23:52:04 1.33MB rockchip
1
pdf Rockchip RK809M&RK817&RK809 Datasheet 
2022-12-08 09:55:31 10.77MB pmu
1