- 博客(183)
- 资源 (1)
- 收藏
- 关注
原创 linux内核数据包操作函数解析
[code="java"]/**@*/static inline void skb_copy_to_linear_data(struct sk_buff *skb, const void *from, const unsigned int len){ memcpy(skb->data, from, len);}static i...
2011-06-07 14:24:39
374
原创 Linux内核中流量控制(24)
本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。msn: yfydz_no1@hotmail.com来源:http://yfydz.cublog.cn[code="java"]8.10 mirred(mirror and redirection)packet mirroring and redir...
2011-01-10 16:33:01
685
原创 Linux内核中流量控制(23)
本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。msn: yfydz_no1@hotmail.com来源:http://yfydz.cublog.cn[code="java"]8.7 ipt动作操作结构ipt是借用了netfilter的目标操作, 根据netfilter的target结果作为是否接...
2011-01-10 16:30:01
364
原创 Linux内核中流量控制(22)
本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。msn: yfydz_no1@hotmail.com来源:http://yfydz.cublog.cn [code="java"]8. action动作操作8.1 概述tc action命令是用来定义数据包进行最终处理方法的命令, 其功能就象...
2011-01-10 16:29:25
306
原创 Linux内核中流量控制(21)
本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。msn: yfydz_no1@hotmail.com来源:http://yfydz.cublog.cn[code="java"]7.12 routeroute分类是根据数据包的路由信息进行分类的, 路由信息中会带tclassid参数用于分类, 代...
2011-01-10 16:28:28
179
原创 Linux内核中流量控制(20)
本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。msn: yfydz_no1@hotmail.com来源:http://yfydz.cublog.cn[code="java"]7.11 tcindextcindex是根据skb数据包中的tcindex参数对数据类型进行分类的, 而tcindex的值...
2011-01-10 16:27:47
240
原创 Linux内核中流量控制(19)
本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。msn: yfydz_no1@hotmail.com来源:http://yfydz.cublog.cn[code="java"]7.10 U32Ugly (or Universal) 32bit key Packet Classifier,丑陋(或通...
2011-01-10 16:27:06
227
原创 Linux内核中流量控制(18)
Linux内核中流量控制(18)本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。msn: yfydz_no1@hotmail.com来源:http://yfydz.cublog.cn[code="java"]7.9 RSVPRSVP同时支持IPv4和IPv6, 分别在net/sched/c...
2011-01-10 16:26:27
203
原创 Linux内核中流量控制(17)
本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。msn: yfydz_no1@hotmail.com来源:http://yfydz.cublog.cn[code="java"]7.6 tcf_proto_ops的一些相关操作7.6.1 登记和撤销/* Register(unregister...
2011-01-10 16:25:54
249
原创 Linux内核中流量控制(16)
本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。msn: yfydz_no1@hotmail.com来源:http://yfydz.cublog.cn [code="java"]6. 类别操作6.1 概述类别操作是通过tc class命令来完成的, 当网卡使用的流控算法是可分类的(如HTB...
2011-01-10 16:25:14
353
原创 Linux内核中流量控制(15)
本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。msn: yfydz_no1@hotmail.com来源:http://yfydz.cublog.cn [code="java"]5.15. Qdisc的netlink控制各网卡的Qdisc的用户层操作控制是通过rtnetlink接口实现用户空间和内...
2011-01-10 16:24:07
289
原创 Linux内核中流量控制(14)
本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。msn: yfydz_no1@hotmail.com来源:http://yfydz.cublog.cn[code="java"]5.14 CBQ(Class Based Queueing, 基于类别的排队)CBQ(Class-Based Queue...
2011-01-10 16:23:29
203
原创 Linux内核中流量控制(13)
本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。msn: yfydz_no1@hotmail.com来源:http://yfydz.cublog.cn [code="java"]5.11.9 入队static int htb_enqueue(struct sk_buff *skb, struct ...
2011-01-10 16:22:39
303
原创 Linux内核中流量控制(12)
本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。msn: yfydz_no1@hotmail.com来源:http://yfydz.cublog.cn[code="java"]5.11.3 HTB一些操作函数5.11.3.1 转换函数/* TODO: maybe compute ra...
2011-01-10 16:21:59
245
原创 Linux内核中流量控制(11)
本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。msn: yfydz_no1@hotmail.com来源:http://yfydz.cublog.cn[code="java"]5.11 HTB(Hierarchical token bucket, 递阶令牌桶)HTB, 从名称看就是TBF的扩展...
2011-01-10 16:21:22
356
原创 Linux内核中流量控制(10)
本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。msn: yfydz_no1@hotmail.com来源:http://yfydz.cublog.cn[code="java"]5.10 TEQL("True" (or "trivial") link equalizer.)TEQL流控方法是比较特殊...
2011-01-10 16:20:25
284
原创 Linux内核中流量控制(9)
本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。msn: yfydz_no1@hotmail.com来源:http://yfydz.cublog.cn[code="java"]5.9 ingressingress流控方法是针对输入数据进行流控处理的,在net/sched/sch_ingress.c...
2011-01-10 16:19:36
578
原创 Linux内核中流量控制(8)
本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。msn: yfydz_no1@hotmail.com来源:http://yfydz.cublog.cn[code="java"]5.8 GRED(Generic Random Early Detection queue)GRED算法是GRED的通...
2011-01-10 16:18:55
288
原创 Linux内核中流量控制(7)
本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。msn: yfydz_no1@hotmail.com来源:http://yfydz.cublog.cn[code="java"]5.7 RED(Random Early Detection queue)RED算法由Sally Floyd和Van Ja...
2011-01-10 16:18:11
250
原创 Linux内核中流量控制(6)
本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。msn: yfydz_no1@hotmail.com来源:http://yfydz.cublog.cn [code="java"]5.6 DSMARK(Differentiated Services field marker) DSMARK算法实际不...
2011-01-10 16:17:28
758
原创 Linux内核中流量控制(5)
本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。msn: yfydz_no1@hotmail.com来源:http://yfydz.cublog.cn[code="java"]5.5 SFQ(Stochastic Fairness Queueing discipline)SFQ算法是个比较简单...
2011-01-10 16:16:46
232
原创 Linux内核中流量控制(4)
本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。msn: yfydz_no1@hotmail.com来源:http://yfydz.cublog.cn[code="java"]5.4 PRIO(priority)PRIO是PFIFO_FAST算法的扩展,PFIFO_FAST中一共是3个队列, ...
2011-01-10 16:15:36
280
原创 Linux内核中流量控制(3)
本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。msn: yfydz_no1@hotmail.com来源:http://yfydz.cublog.cn[code="java"]5.2 FIFOFIFO算法在net/sched/sch_fifo.c中定义, 既可以单独使用, 也可以被其他流控算法...
2011-01-10 16:14:48
386
原创 Linux内核中流量控制(2)
本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。msn: yfydz_no1@hotmail.com来源:http://yfydz.cublog.cn[code="java"]5. 流控算法的具体实现5.1 PFIFO_FASTPFIFO_FAST是缺省的流控算法,网卡初始化时就是设置...
2011-01-10 16:14:05
218
原创 Linux内核中流量控制(1)
本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。msn: yfydz_no1@hotmail.com来源:http://yfydz.cublog.cn[code="java"]1. 前言linux内核中提供了流量控制的相关处理功能,相关代码在net/sched目录下;而应用层上的控制是通...
2011-01-10 16:13:27
767
原创 Linux内核中BM字符串查找算法的一个小BUG
本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。msn: yfydz_no1@hotmail.com来源:http://yfydz.cublog.cn [code="java"]在内核的lib/ts_bm.c文件中,实现了Boyer-Moore字符串查找算法, 但有一个小BUG: static...
2011-01-10 16:12:22
212
原创 从文件名找到文件信息(namei)
本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。msn: yfydz_no1@hotmail.com来源:http://yfydz.cublog.cn[code="java"]1. 前言inode是类Unix系统的文件系统的基本索引方法,每个文件都对应一个inode,再通过inode找到文件...
2011-01-10 16:10:57
416
原创 Linux内核中内存cache的实现
本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。msn: yfydz_no1@hotmail.com来源:http://yfydz.cublog.cn[code="java"]1. 前言kmem_cache是Linux内核提供的快速内存缓冲接口,这些内存块要求是大小相同的,因为分配出的内存...
2011-01-10 16:10:09
186
原创 Linux信号功能的实现
本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。msn: yfydz_no1@hotmail.com来源:http://yfydz.cublog.cn[code="java"]1. 前言信号是类UNIX系统中一个重要的进程控制方法,向中断一样,可通过向进程发送不同的信号临时中断程序的正常运...
2011-01-10 16:09:25
129
原创 Linux内核中工作队列(work_queue)的操作
本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。msn: yfydz_no1@hotmail.com来源:http://yfydz.cublog.cn[code="java"]1. 前言工作队列(workqueue)的Linux内核中的定义的用来处理不是很紧急事件的回调方式处理方法.以下代...
2011-01-10 16:08:17
1038
原创 UNPv1_r3读书笔记: SCTP编程
本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。msn: yfydz_no1@hotmail.com来源:http://yfydz.cublog.cn[code="java"]SCTP协议在UNP第2版中还未提及,是在第3版中新增加的,在第9、10、23章介绍SCTP。SCTP就好象是TCP和UD...
2011-01-10 16:07:21
94
原创 UNPv1_r3学习日记: PF_KEY
本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。msn: yfydz_no1@hotmail.com来源:http://yfydz.cublog.cn [code="java"]UNP第一卷的第3版是著名的RWS先生魂归上帝后由后人添加新的一些新的东西后发布的,增加的部分包括PF_KEY和SCTP...
2011-01-10 16:06:38
290
原创 使用sockopt与内核交换数据
本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。msn: yfydz_no1@hotmail.com来源:http://yfydz.cublog.cn[code="java"]1. 前言打开一个网络socket后可以使用set/getsockopt(2)可实现用户空间与内核的通信,本质和ioctl差不...
2011-01-10 16:05:38
161
原创 Linux内核如何接收不同类型以太帧
本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。msn: yfydz_no1@hotmail.com来源:http://yfydz.cublog.cn[code="java"]1. 前言以太头中除了6字节目的MAC地址、6字节源MAC地址外,还有两字节的以太帧类型值,如IPv4为0x0800,ARP为...
2011-01-10 16:04:57
115
原创 缓冲区的非法操作
本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。msn: yfydz_no1@hotmail.com来源:http://yfydz.cublog.cn[code="java"]1. 前言本文所描述的缓冲区可以是静态的,如通过数组方式定义;也可以是动态的,如通过malloc等函数分配的。2. 非...
2011-01-10 16:04:17
162
原创 使用/proc实现内核与用户空间通信
本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。msn: yfydz_no1@hotmail.com来源:http://yfydz.cublog.cn[code="java"]1. 前言 Linux内核空间与用户空间的通信可通过"/proc"目录的文件读写来实现,如果只是控制内核中的参数而不是传输...
2011-01-10 16:03:16
431
原创 使用ioctl与内核交换数据
本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。msn: yfydz_no1@hotmail.com来源:http://yfydz.cublog.cn[code="java"]1. 前言 使用ioctl系统调用是用户空间向内核交换数据的常用方法之一,从ioctl这个名称上看,本意是针对I/O设备进...
2011-01-10 16:02:33
147
原创 字符串搜索算法
本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。msn: yfydz_no1@hotmail.com来源:http://yfydz.cublog.cn 参考文献: google: boyer moore[code="java"]1. 前言 字符串搜索是一个基本的操作,C库函数中也提供了st...
2011-01-10 16:01:49
115
原创 连接计数的变化
本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。msn: yfydz_no1@hotmail.com来源:http://yfydz.cublog.cn[code="java"]1. 前言连接(ip_conntrack)的计数是很重要的, 用来表示正在使用该连接的用户的数量, 当计数为0时, 将...
2011-01-10 16:00:20
209
原创 Linux内核中的IPSEC实现(7)
[code="java"]本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。msn: yfydz_no1@hotmail.com来源:http://yfydz.cublog.cn9. IPSEC封装流程 IPSEC数据包的封装过程是在数据包发出前完成的, 是和路由选择密切相关的, 根据前面的...
2011-01-10 15:53:31
163
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人