设为首页收藏本站
m0n0wall pppoe server

m0n0中文论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1187|回复: 2

对于m0n0 WebGUI流量控制的理解 ver 1.0(转) [复制链接]

Rank: 1

发表于 2008-11-12 14:25:36 |显示全部楼层
虽然前次写了管理大法,但是还是觉得没有说得明白,很多朋友都是无论吞枣不一定能消化,这里,我想讲下关于流量控制的理解,帮助大家更好的使用流量控制。

   m0n0提供的流量管理软件为ipfw,我们并不需要了解该软件的机理,所以了解该软件并不妨碍我们对流量控制的理解。通过对自动化生成的队列和管道,我们可以简单的发现一个共同点,就是“队列共用管道,且该管道队列权值和为100”。
   
   通过实践总结和理论分析,我们对于“管道”和“队列”会有如下认识

   “管道” 就是一个网络带宽划分的模型,一个网络的带宽可以划分为任意个管道。管道是逻辑的而不是物理,所以管道在数值上叠加没有实际意义。管道具有独立性,一个管道在逻辑上是独立的,不会和任何其他的管道叠加。

   "队列"就是“管道”内TCP/IP数据包转发机制的模型,一个管道内充满了队列永不停息。队列在管道中的逻辑行为只有2种,就是upload和download,但是这两种行为只是逻辑上的相对意义,你定义了两种行为的其中之一,另一个行为才会存在。比如定义了“上”的方向,自然就有了“下”的方向,反过来亦然。
   
    对于队列组建方式m0n0提供的非常灵活,有三个影响队列的参数是权重,延时,slot长度。首先讲队列的slot概念。 slots是单个队列的长度,这个可以任意设定,主要取决于你的CPU和网卡的处理能力,当然还有你的内存。原则上理解,单个队列越长,处理起来效率就会越低,CPU占用越高,内存使用越大,但是网速肯定会提高,因为潜在的缩短了TCP/IP包流通的时间。

   单位长度TCP/IP流通时间=(单队列组建+单队列转发+单队列处理+延时)*队列总数

其中括号中的时间数值受到单个队列长度影响较小,所以,队列总数成为影响时间的关键。由于数据流永远存在的,所以,slots值一旦确定,m0n0就会自动填充当前队列到达slot值,然后再建立下一个队列,长度依然是slots值。

    对于单个队列的每个数据槽按何种次序填充则依据权重进行分配,例如:某个管道内队列定义了5个A权重50,B权重20,C权重15,D权重10,E权重5。队列slots=100,那么权重50的A数据包会自动填充100单位的前50个单位,从51位开始填充权重为20的B数据包,从71位开始填充权重为15的C数据包,到达队列的86位开始填充权重为10 的D数据包,最后填充E数据包直到长度实现100。然后依次建立下一个队列。
                  简单的排列顺序:100=50+20+15+10+5。

     也就是说,管道内的数据包依据流量规则被打上标签以后,根据权重自动组成队列。这样,权重高的数据被优先传输,并且占用更大的管道带宽,权重最低的数据被最后处理,并占用最低的管道带宽。

    延时就不用说了,上面的公式可以看得出延时的作用,这个主要用于网络非常拥堵的状况,人为的架设信号灯提供CPU更长的分时处理机会。

    到这里,我们虽然理解了管道,队列,但是 队列和管道究竟如何设计?这是一个难点,这是因为,队列规则的最终生成其实是整个流量管理模型设计最后的产物,也就是说,你必须在写出流量规则以前要明白你要建立什么规则,需要几个管道,管道如何使用这3个问题。这是至顶向下的设计,然而WebGUI却要先写队列再写规则,造成了理解的困难。了解这些后我们基本上会把注意力集中在管道,队列,规则的设计上。
   
    以 下是就是三种流量控制的管理思路:
   
      1.针对上网行为的流量控制设计
      2.针对特定应用的流量控制设计
      3.针对网络协议的流量控制设计


    流控精灵就是采用1方式,分别建立 上传 和 下载两种行为的管道,然后细分上传和下载的具体行为,以此来达到控制流量的目的。优点是,思路清晰,结构明朗,配置简单。缺点是,胡子头发一把抓,对于未知因素的控制缺乏应变。往往需要了解更多的网络行为才能满足需要,工作量巨大。

    针对网络特定应用的流量控制设计,这是比较灵活的也是有效的设计思路,针对需要控制的网络应用进行流量控制。优点是,配置简单,效果明显,特别是针对服务器访问的控制非常有意义,缺点是,必须了解具体应用的网络特征,比如端口号或者ip地址等等,对于可变端口的p2p软件无能为力。

    针对网络协议的流量控制,就是我采用的主要方法,对于单个协议建立管道队列,例如TCP协议管道,UDP协议管道等等。优点是,思路简洁,配置简单,效果明显,对于复杂网络环境非常有效。缺点是,网络速度过于均衡,对于单个应用的优先需要手动添加规则,例如 UDP QQ上传。否则,会影响用户的网络感受。

    技巧和提示:
     
     1。TCP的上传和下载的权值比例可以为1:4~1:2,影响用户感受的是下载速度,例如网页下载速度,游戏对象的更新速度。
     2。上传的权值如果太低会导致游戏服务器与用户通讯频繁短线,例如 UDP 上传权值为5 的时候 浩方会经常短线,改为15就正常了。
     3。UDP带宽尽量给的够小,通常与TCP的带宽比例为TCP:UDP=3:1 这样可以有效的控制p2p软件的泛滥。
     4。LAN的流量规则也很有用,但是会增加LAN网卡的负荷,可酌情使用。
     5。从防火墙角度来看进/出观点如下:
               PC->LAN->WAN->         LAN口:进,WAN口:出
               PC<-LAN<-WAN<-         LAN口:出,WAN口:进

Rank: 1

发表于 2008-12-20 02:34:22 |显示全部楼层
linux下现在都不用ipfw了,早改用netfiler了,不知道是不是可以改用netfiler啊

使用道具 举报

Rank: 1

发表于 2008-12-27 10:56:37 |显示全部楼层
看不明白哦,能不能说的再直白一些啊?

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

Archiver|m0n0中国   

GMT+8, 2012-5-21 15:34 , Processed in 0.048849 second(s), 14 queries , Gzip On.

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部