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.针对网络协议的流量控制设计
分享到:
相关推荐
WebGUI 设置指南 在 SAP NetWeaver 平台中, WebGUI 是一个功能强大且易用的工具,用于将 SAP 事务 Web 化,而无需编写任何代码。本文将指导读者如何设置 WebGUI,以便快速地运行 ITS WebGUI 应用程序。 第一个...
标题中的“Python-用于管理Haproxy服务器的Web界面用户友好的WebGUI”指的是一个使用Python编程语言开发的工具,它的主要目的是为Haproxy负载均衡器提供一个直观且易于操作的Web图形用户界面(GUI)。Haproxy是一款...
Visual WebGui是一个新型的AJAX framework,给开发Web应用带来了一条不同的方式,并且特别适合开发一个高度复杂的应用。Visual WebGui使得开发者可以使用完全的WinForms服务器端的API,并且有设计时支持。通过借用...
1. 如果不想用本插件了,到添加删除程序中卸载Visual WebGUI Professional Studio 1.1 (Build 6.3.6) Registration即可。 详情请见:http://blog.csdn.net/Danny_Su/archive/2009/04/06/4051231.aspx 有关本注册...
《Gizmox.WebGUI.SDK.Community:拓展.NET 2.0 Web GUI开发新维度》 Gizmox.WebGUI.SDK.Community.5.81.3.74.5_NET20是一款专为.NET 2.0平台设计的扩展工具,它极大地丰富了开发者在构建Web GUI(图形用户界面)...
**ARM Cortex-M0**是ARM公司推出的一种超低功耗且高效的微控制器核心,它属于Cortex-M系列,专门设计用于嵌入式应用,尤其是在物联网(IoT)和消费电子设备中广泛使用。Cortex-M0是基于ARMv6-M架构,具有简单的指令...
企业级的AJAX开发框架--Visual WebGuiversion 6.3.8a
Gizmox WebGUI SDK Silverlight 6.1.4 是一个专为开发基于Silverlight技术的桌面和Web应用程序的软件开发工具包。这个压缩包包含的主要组件是 Gizmox.WebGUI.SDK.Silverlight.msi,这是一个安装程序,用于在开发环境...
WebGUI_Recover_Feature01
它们可能包括了特征提取、模式匹配和决策算法,以便微控制器能够理解和响应用户的特定手势。 压缩包子文件的名称表明了其中的内容: 1. "评估GUI发现手势识别.zip" - 这个文件可能包含了GUI应用程序的源代码、可...
Array networks tmx 3000负载均衡设备WEB GUI中文配置手册。
MATLAB GUI是MATLAB编程环境中的一种功能,允许开发者创建具有图形用户界面的程序,使得非编程人员也能方便地操作和控制复杂的计算过程。 MATLAB(矩阵实验室)是MathWorks公司开发的一种高级编程语言,主要用于...
描述指出,这个SDK是为了扩展.NET 1.0的开发能力,特别是对于构建Web GUI项目。安装此SDK后,开发者在创建新项目时将能够发现并使用其提供的功能。"来源于:www.visualwebgui.com"表明,Gizmox WebGUI可能与Visual ...
Gizmox WebGUI 是一个用于构建富客户端Web应用的框架,它允许开发者使用类似WinForms的界面来创建Web应用程序,提高开发效率和用户体验。 【描述】中的信息告诉我们这是一个安装包,它的主要作用是扩展 .NET 2.0 的...
总结来说,"webgui:pilight 的官方 webGUI" 提供了一个强大且易用的工具,让用户可以通过直观的Web界面控制家庭自动化设备,而"CSS"标签则强调了界面设计的优雅与用户体验的重要性。对于喜欢DIY和追求便利的用户,这...
标题 "用于Gardener基于Web的GUI" 指向的是一个专为Gardener项目设计的Web图形用户界面。Gardener是一个开源项目,它主要用于自动化Kubernetes集群的生命周期管理,包括创建、扩展和维护云环境中的Kubernetes集群。...
WebGui WebGui是一个示例,显示了如何在Web浏览器中使用IMGUI用户界面。 在此处查看。 截屏: 本示例使用Emscripted将c ++编译为Web Assembly(WASM)二进制文件,可以将其作为应用程序在浏览器中运行。 来源取...
sam_webgui 基于roswasm_webgui的SAM AUV的仪表板界面 运行界面 使用roslaunch sam_webgui webgui.launch运行,并在浏览器(最好是chrome)中导航到1.2.3.4:8080 ,其中应使用启动接口的计算机的IP替换1.2.3.4 。 ...
House:一个运行时移动应用程序分析工具包,带有由Frida提供支持的Web GUI,用Python编写。 它旨在通过实现动态函数挂接和拦截来帮助评估移动应用程序,并且旨在尽可能简化Frida脚本的编写。
【标题】"addons4webgui - WebGUI的开源扩展组件" 在开源软件的世界里,WebGUI是一个知名的内容管理系统(CMS),它提供了丰富的功能,让用户能够方便地创建、管理和发布网络内容。而“addons4webgui”是针对WebGUI...