`
文章列表
本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。 msn: yfydz_no1@hotmail.com 来源:http://yfydz.cublog.cn 5.10 TEQL("True" (or "trivial") link equalizer.) TEQL流控 ...
本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。 msn: yfydz_no1@hotmail.com 来源:http://yfydz.cublog.cn 5.9 ingress ingress流控方法是针对输入数据进行流控处理的,在net/sched/sch_ingress.c中定义, 使用时要求在内核配置中定义CONFIG_NET_CLS_ACT或CONFIG_NETFILTER,不过从代码实现看起来好象没什么意义。 5.9.1 ingress操作结构定义 // ingress私有数据结构 s ...
本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性, 严禁用于任何商业用途。 msn: yfydz_no1@hotmail.com 来源:http://yfydz.cublog.cn 5.8 GRED(Generic Random Early Detection queue) GRED算法是GRED的通用化,还是以RED算法为基础,但不再是根据一个RED流控节点计算丢包情况,而 是可以定义多个虚拟RED流控节点,然后根据skb数据包中的tc_index参数将数据分配到不同的节点, 每个节点都按RED算法进行流控。之所以叫虚拟队列, ...
本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。 msn: yfydz_no1@hotmail.com 来源:http://yfydz.cublog.cn 5.7 RED(Random Early Detection queue) RED算法由Sally Floyd和Van Jacobson提出, 论文为"Random Early Detection Gateways for Congestion Avoidance", 1993, IEEE/ACM Transactions on Net ...
本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。 msn: yfydz_no1@hotmail.com 来源:http://yfydz.cublog.cn 5.6 DSMARK(Differentiated Services field marker) DSMARK算法实际不能算特别流控算法, 本身只是一个pfifo流控, 所做的多余功能就是能设置数据包的tos/ds域, 其实意义不大, 该功能在网络层就能作(netfilter/TOS目标)。使用时除了用tc qdisc命令设置外, 还要用tc class ...
本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性, 严禁用于任何商业用途。 msn: yfydz_no1@hotmail.com 来源:http://yfydz.cublog.cn 5.5 SFQ(Stochastic Fairness Queueing discipline) SFQ算法是个比较简单的算法,速度也比较快,算法维护一定数量的数据包队列,入队是将数据包进 行哈希后插入某队列,出队则是轮询方式出队列,另外可设置一定的随机因子,在计算哈希值时能碰 撞少些,流控算法在net/sched/sch_sfq.c中定义,在实现中, ...
本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性, 严禁用于任何商业用途。 msn: yfydz_no1@hotmail.com 来源:http://yfydz.cublog.cn 5.4 PRIO(priority) PRIO是PFIFO_FAST算法的扩展,PFIFO_FAST中一共是3个队列, 而PRIO最多可设置16个带(band),每 个带都相当于是一个PFIFO_FAST, 因此可以进行更细粒度地分类然后进行排队, 在 net/sched/sch_prio.c中定义。 5.4.1 操作结构定义 // 最大带数 ...
本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性, 严禁用于任何商业用途。 msn: yfydz_no1@hotmail.com 来源:http://yfydz.cublog.cn 5.2 FIFO FIFO算法在net/sched/sch_fifo.c中定义, 既可以单独使用, 也可以被其他流控算法(如TBF)作为内 部流控算法使用. 5.2.1 流控结构 FIFO分两种, 一种是PFIFO, 一种是BFIFO, 分别按包数和字节数进行FIFO的流量控制. // 私有数据结构, 就是流量参数 struct fi ...
本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性, 严禁用于任何商业用途。 msn: yfydz_no1@hotmail.com 来源:http://yfydz.cublog.cn 5. 流控算法的具体实现 5.1 PFIFO_FAST PFIFO_FAST是缺省的流控算法,网卡初始化时就是设置该算法为网卡的流控算法,算法比较简单,就 在net/sched/sch_generic.c中定义了,没在单独文件中定义。 5.1.1 操作结构定义 #define PFIFO_FAST_BANDS 3 static struc ...
本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性, 严禁用于任何商业用途。 msn: yfydz_no1@hotmail.com 来源:http://yfydz.cublog.cn 1. 前言 linux内核中提供了流量控制的相关处理功能,相关代 ...
本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性, 严禁用于任何商业用途。 msn: yfydz_no1@hotmail.com 来源:http://yfydz.cublog.cn 在内核的lib/ts_bm.c文件中,实现了Boyer-Moore字符串查找算法, 但有一个小BUG: static unsigned int bm_find(struct ts_config *conf, struct ts_state *state) { struct ts_bm *bm = ts_config_priv(conf); u ...
本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。 msn: yfydz_no1@hotmail.com 来源:http://yfydz.cublog.cn 1. 前言 inode是类Unix系统的文件系统的基本索引方法,每个文件都对应一个inode,再通过inode找到文件中的实际数据,因此根据文件路径名找到具体的inode节点就是一个很重要的处理步骤。系统会缓存用过的每个文件或目录对应的dentry结构, 从该结构可以指向相应的inode, 每次打开文件, 都会最终对应到文件的inode,中间查找过程称为na ...
本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性, 严禁用于任何商业用途。 msn: yfydz_no1@hotmail.com 来源:http://yfydz.cublog.cn 1. 前言 kmem_cache是Linux内核提供的快速内存缓冲接口,这些 ...
本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性, 严禁用于任何商业用途。 msn: yfydz_no1@hotmail.com 来源:http://yfydz.cublog.cn 1. 前言 信号是类UNIX系统中一个重要的进程控制方法,向中断一样,可通过向进程发送不同的信号临时中断 程序的正常运行而进入信号处理程序或执行缺省的信号响应,如重新更新程序配置、终止进程等。 在用户空间中,信号处理接口是通过一系列系统调用来实现的,包括signal, sigaction, sigsuspend, sigaltstack等,进程 ...
本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。 msn: yfydz_no1@hotmail.com 来源:http://yfydz.cublog.cn 1. 前言 工作队列(workqueue)的Linux内核中的定义的用来处理不是很紧急事件的回调方式处理方法. 以下代码的linux内核版本为2.6.19.2, 源代码文件主要为kernel/workqueue.c. 2. 数据结构 /* include/linux/workqueue.h */ // 工作节点结构 struct work_ ...
Global site tag (gtag.js) - Google Analytics