当前位置:首页 > 思想汇报 > 基于Linux,TC的带宽管理设计与实现_mutilink 实现10m带宽
 

基于Linux,TC的带宽管理设计与实现_mutilink 实现10m带宽

发布时间:2019-01-18 03:42:22 影响了:

  [摘要] 随着Internet应用的迅猛发展,校园网带宽管理日益成为网络管理者不得不面对的问题。本文以Linux Traffic Control为工具,使用HTB作为层次式带宽共享框架,以U32分类器作为包分类的工具,规划和设计校园网带宽管理,以提高网络带宽使用效率。
  [关键词] Tracfic control U32 HTB
  如何将有限的带宽资源做最有效分配是网络管理者必须考虑的问题,由于成熟的商业带宽管理产品动辄几万甚至数十万以上,对于学校单位或小企业来讲是一笔天文数字。如果能使用开源Linux平台与普通计算机设备作为校园带宽管理器,并以透明网桥的方式架设在校园网INTERNET出口做管理,对于学校单位或小企业有着很重要的价值,将大大减轻单位经费开支并有效增强网络带宽管理能力。
  一、带宽管理主要功能
  网络中各种信息流量是以数据包方式进行传输的,它们互相争夺有限的网络带宽,当网络带宽足以满足信息流量时并不会有影响,但是当包总流量超过网络带宽负载时就会发生拥塞,好比在道路上行驶的各种车辆,因互相争夺车道造成整条道路严重塞车;但是如果每一车辆能够按所分配的车道行驶,可能当汽车、货车等车道发生拥塞时而公交车仍然能够顺畅行驶。
  网络带宽管理概念与车道划分观念相相似,当网络拥塞时仍可保障重要应用的网络带宽,通常把网络带宽切割成几个不同的通道,把各种类型的流量控制在规定的带宽中传输,这样,就不会出现网络拥塞时,各种流量互不相让的情况。
  带宽管理器一般置于LAN与Internet的中间,如图1所示,利用队列算法调整包送出顺序,让优先级高包优先通过,延迟优先级低的包,以保证带宽的服务,主要功能特性如下:
  1.保证带宽
  事先设定带宽管理规则,对带宽的使用作适当规划,当网络发生拥塞时可提供基本带宽保证;可依据网络的使用特性预先规划出重要用户、重要部门或实时性应用等等,给予适当保证带宽以确保其传输服务质量。
  2.限制带宽
  对于一般非实时性的应用如 e- mail或 www、ftp则分配适量的限制频宽,以免由于大量下载占用大量的带宽而影响其他网路应用的进行。
  3.带宽共享/互借
  不同类别的带宽之间如何做带宽共享与互借,除了依规划分配带宽外,更进一步将目前未使用带宽提供给需要的类别,可避免带宽浪费进而提高带宽的使用率。
  二、网络带宽共享架构
  网络带宽共享架构一般可按下列方式组织:
  1.以组织为单位
  组织可为一个部门、某一段IP地址或网段,每一个组织可分配到保证带宽,且当某一个组织所分配的带宽有剩余时可供其它组织所使用。
  2.以流量类型或服务类别为单位
  根据不同流量类型(如 telnet、ftp、www、real- time audio与video)作不同的带宽分配。在带宽分配时可根据数据流量的重要性作带宽占有率参考,如telnet、ftp、www类型数据无时间延迟的顾虑可配给较少保证带宽;而 real-time audio与 video类型数据对时间延迟与包丢失有相当敏感性,应配置较高保证带宽。
  由于网络应用日益丰富,数据流量类型亦趋复杂,可在上述各种的网络带宽分享类型基础上,进一步规划组合形成一较复杂的层次型网络带宽共享类型,如图2所示,整体网络带宽由两个部门所分享,而部门所占用的带宽又分配各种不同服务类型去使用。
  可将网络带宽规划想象成一颗树,其中树干代表网络可得到最大带宽称为root class,每一分枝(branch)称为class,每一个class可使用其父节点分支带宽,若有需求时可经由父节点借其兄弟姊妹class未使用的带宽,整棵树可表示网络适配器的带宽管理设定。
  根据上述说明可总结网络带宽共享( Link- sharing)的主要原理为:
  1.首先根据设定一初始的带宽保证,每一个 interior或 leaf class能够得到所分配的带宽,当拥塞发生时这些 class将在保证带宽范围内。
  2.当某些class未完全使用它所被分配的带宽时,其剩余的带宽不会任意分配给其它 class,必须遵循一套适当的指导方针去处理剩余带宽。例如图2中,当部门A所分配的FTP带宽尚有剩余带宽时将由WWW与其它带宽类别所分享使用。
  三、TC原理介绍
  Linux操作系统中的流量控制器TC(Traffic Control)用于Linux内核的流量控制,主要是通过在输出端口处建立一个队列来实现流量控制。Linux流量控制的基本原理如下图3所示。
  数据包进来后,由Input De-Multiplexing进行判断选择:如该接收包的目的地是本地地址则将该封包送给上层协议(TCP/UDP)处理,否则将进入的数据包送至forwarding处理,forwarding也可能接受由本地产生经传输层所传入的包,其主要是负责选择输出接口与处理查询 routing table并决定该包的下一个目的地,最后则将送入 output queue中进行相关分类后排列输出,一般我们只能限制网卡发送的数据包,不能限制网卡接收的数据包,所以我们可以通过改变发送次序来控制传输速率。Linux流量控制主要是在输出接口排列时进行处理和实现的。
  四、校园网带宽管理实现
  在校园网带宽管理设计时采用Linux TC(Traffic Control)作为工具,并使用HTB作为层次型带宽共享系统的主要技术组件,以U32分类器作为封包分类工具,而各类别带宽内部队列算法采用SFQ,希望借着公平性原则让各个链接平均地分享带宽。下面简介实现的关键技术:
  HTB : Hierarchy Token Bucket(层次型令牌桶)。是一个基于类的队列规定算法。?它是CBQ的一个精简改进版,继承了CBQ的多项功能,去掉了一些复杂且不实用的部分。HTB可以实现带宽分类、带宽共享、设置优先级、设定突发流量等功能。更重要的是,HTB改变了限制带宽的方法。它通过限制每个分队列上数据包的发送速率来限制每个分类的带宽。提高了带宽限制的精确度。对于每一个网络接口来说,同一时刻只能发送一个数据包,所以网络接口处数据包的发送速率是一定的。HTB队列规定通过在一个固定时间段内从每个分类的分队列中取出的数据包个数来决定该分类的带宽。取的数据包数越多,则分配给它的带宽就越大。这就很好地解决了CBQ对带宽限制不精确的问题。并且允许特定的类可以突破带宽上限,占用其他类的带宽,实现带宽借用。HTB 可以通过TBF (Token Bucket Filter)实现带宽限制,也能够划分类别的优先级。
  SFQ : Stochastic Fairness Queuing(随机公平队列),SFQ队列规定是公平队列算法家族中的一个简单实现。它将数据流分成相当多数量的FIFO队列,每个队列按照轮转的方式发送,每个会话都按顺序得到发送机会。需说其精确性不如其它方法,但这种方式非常公平,在实现高度公平的同时,需要的计算量却最少。在校园网带宽管理时可作为最底层类别的内部 qdisc,提供类别中各个连接平均分享该带宽。
  U32 filter:u32 是目前性能最优的过滤器。可根据源/目标IP地址、源/目标TCP/UDP端口、TOS和协议进行分类。u32有选择子(Selector)和动作(Action)两个部分。系统首先用每条准则的选择子与数据包做比较,如果匹配成功,则把数据包转发到定义好的HTB 类中。Selector定义了用于和数据包进行比较的匹配模式,目前有两种形式的选择子:通用(Generic)选择子和特定(Specitic)选择子。使用Generic可匹配IP头或更高层的协议头中的任何位,要求用户对IP 数据包的内部结构非常了解。Specitic的形式相对直观,最后系统内部还是转化成Generic来匹配的。
  五、结束语
  在目前网络环境下,适当地利用层次型网络带宽共享技术做带宽管理,依照流量本身的特性或重要性,妥善地分类及分配各项流量带宽,适当的带宽管理策略规划是解决学校或企业网络出口瓶颈的关键。希望本文的讨论能给学校或企业的网络带宽管理提供些参考,以便将目前有限的网络带宽作适当地规划、有效地分配与分享,进而建置一个完全适合于自己网络架构需求的带宽管理策略。
  参考文献:
  [1]Floyd,S,Jacobson,V. Link- sharing and Resource Management Models for Packet Networks.IEEE/ACM Transactions on Networking,1995,3(4).
  [2]Almesberger,W. Linux Traffic Control- Implementation Overview.EPFL ICA,Nov 1998.
  [3]Netherlabs BV,Gregory Maxwell,Remco van Mook, Martij n van Oosterhout,Paul B Schroeder and Jasper Spaans.Linux Advanced Routing & Traffic Control HOWTO. 2002,7.
本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文

猜你想看
相关文章

Copyright © 2008 - 2022 版权所有 职场范文网

工业和信息化部 备案号:沪ICP备18009755号-3