文档编号:482 浏览:6393 评分:22 最后更新于:2009-11-18
路由器系统是硬件和软件的结合体,硬件用的可以是ARM内核或者MIPS内核,或者是PPC,或者是Intel的CPU。这个核心部分相当于我们使用的PC的CPU。一台PC一般只要一个网卡,但是路由器需要多个网卡。现在大部分PC的网卡是通过PCI总线连接到CPU的总线的,所有的数据交换都需要通过CPU的处理。而路由器的设计,网卡一般直接连接到数据总线上,比PC的PCI连接效率要高很多,一些高级的路由器的网卡采用了专用的芯片,芯片上有数据处理器,网卡和网卡之间的数据传送不需要CPU参与太多。路由器系统除了CPU,网卡以外,还有flash,和内存。Flash相当于PC的硬盘,内存当然是相当于PC的内存了。由于路由器系统是用来转发数据的,而PC系统的设计却是满足某种应用服务,或者办公或者家用界面的使用,如编辑,存储等,虽然路由器的设计和PC的设计在基本理论上是相似的,有CPU/内存/“硬盘”,但是实际上千差万别。我们分几个方面来看:
1、 首先硬件上的差别。
安装一台PC以后,我们可以不停地往里面安装应用程序,也不停地存储自己编写的或者从其他机器和网络上的文件,所以希望硬盘越大越好;办公系统的程序设计是不太考虑内存的优化的,有多少内存使用多少内存,内存不够,还从硬盘借,因此安装PC,只要资金许可,我们能用1G就不用512M。由于PC一般使用Windows,当然,在相同的操作系统下面,CPU越快,程序运行得也就越快。但是大家都知道,在相同的硬件下,Linux就比Windows快,Linux运行程序占用的内存比Windows的少,效率高。
我们前面已经说过,路由器的系统设计是用来转发数据包的,将Internet的包送到本地的PC,也将本地PC的包发送到Internet。路由器做的除了和包转发有关的事情以外,还需要做些管理等方面的工作。买了路由器以后,使用者无需象Windows那样不停地往里面安装程序,也不需要将Internet下载的东西存储到路由器里。因此,路由器的flash一般是安装系统本身的操作系统软件,还有配置文件,所以不需要太多的容量,不需要象PC一样大的硬盘。一般地,好的路由器系统很小,也许只有2M以内,在这种情况下,路由器要使用8M甚至更大的flash没有意义的。同样的道理,内存也是如此,路由器的功能是转发数据包,硬件内存的使用效率依赖精简的软件,一个好的系统在运行的时候也只需要几兆的内存,再多的内存也是没用的。如果某系统说我的内存比谁的大,我的flash比谁的大,那只是很片面的误导,除非他的程序效率太低,无用的代码太多,需要更多的flash和内存,而更多的内存和flash也意味需要更多的资金,最后,当然是购买者来付这些额外的钱。
所以,如果宣传只有说硬件好是片面的,就如一台PC用的CPU是P4 3.2G,内存1G,硬盘120G,但是使用者安装了一个DoS操作系统,没有应用程序,那么这个系统恐怕满足不了绝大部分使用者的需求。所以,系统需要一个很好的软件和硬件配合。还有一个方面的差别,路由器的硬件设计是无间断使用的,而PC不是。你可以将好的路由器开上一年,它仍然能保持硬件的稳定性,而PC(非服务器),你只要连续开一个星期,就得当心了。
2、 其次是软件上的差别。
在PC使用的软件从微软公司这条线看,以前有DoS,后来有Windows 3.1,Windows95/98,到今天普遍应用的Windows 2000/XP,2003。相信现在除了极其少数的怀旧者以外,CPU的主频再高,内存和硬盘再庞大,大家都不会安装DoS或者Windows 3.1做办公和家庭用,原因是显而易见的。路由器也是如此,一个好的硬件系统,还需要一个操作系统软件才能一起工作。软件有大,有小。不像PC,大家都使用有限的几种软件,因此,买机器的时候,当然只需要比较硬件;而路由器,除了硬件之外,更主要的是它的操作系统。由于这些软件不像桌面软件那样,绝大部分市场是微软占据着,而是哪家公司出的产品,就是用哪家的。硬件是明摆的东西,软件才是核心,是路由器厂家的中心。华为是国内很大的企业,在国际上的也算大的通信企业,虽然它的产品看上去都有硬件,但是它还是号称自己是一个软件企业。为什么?因为,软件是核心,是华为的竞争力所在。Cisco是路由器的老大,它什么东西值钱?就是它的IOS。所以,看一家公司是否有技术能力,就看它是否有自己的操作系统就知道了。
这里再说说HiPER。HiPER的硬件这么小,为什么能做到这么快的转发能力?为什么上面的功能那么多?硬件采用的是低功耗的芯片,高度集成的芯片,而且需要保证能不间断运行。但是,核心是软件。HiPER能发挥它的功能是基于HiPER的操作系统ReOS。ReOS上海艾泰科技有限公司自主研发的,具备自主知识产权的路由器实时操作系统,是路由器和VPN网关的基础。一个在路由器和VPN网关上运行的操作系统具备哪些特点呢?
有一下几个部分:
1、稳定性
2、吞吐量
3、基本接入功能
4、高级功能:如多种NAT,多线路扩展带宽和负载均衡,备份,流量控制,网络管理和监控等
基本接入功能在这里不说了,主要谈一下以上列出的高级功能。
1、 首先是稳定性。
稳定是基础。ReOS实时操作系统以精简的代码,高效率的算法来实现,是艾泰公司科技人员的创新和积累。路由器毕竟不是HUB,不是家用电器,它是一个复杂的系统。到目前为止,在这个领域,著名的当然要数:Cisco公司的IOS,Juniper公司JNOS,华为的VRP等等。而目前市场上大家见到的还有一些公司的产品基本上基于Linux改造而来。Linux大家都知道,这是一个开放的源代码系统,谁都可以改。表面上都是透明的,但是Linux本身不是为转发系统而设计,反而是类似于Windows系统和其他服务器系统,还有的如Sun公司的Solaris,HP公司的HP-UNIX,IBM公司的AIX等。现在大部分芯片提供商都提供了开发平台,这些开发平台如果不计较稳定性和效率,可以当作一个起点,做为初级产品使用。但是,由于这些系统不是自己开发的,Linux又是一个非常庞大的系统,很少能在比较短的时间里将它理解透彻,因此,这些产品如果在使用中出了问题,那么解决起来的时间会是很长,特别是时好时不好的情况下很难解决问题。我们用Red Hat Linux 9.0做过测试,在2个以太网口的情况下,依靠它的转发机制,从一个以太网口输入,另外一个以太网口输出,Red Hat Linux 9.0的稳定性不好。在相同的100M的输入下,一共测试10次,每次得到的输出差别很大。我们也利用市场上某知名品牌的产品,做测试,经过若干次测试以后,只有输入,没有输出了。
ReOS的设计以满足转发为最基本的要求,要求的稳定性是电信级的稳定性,能7X24X365工作。实际上,ReOS在运营商的小区接入,网吧这个下小运营商等实际环境考验下,也证明了它的稳定性。用事实上的工业标准测试仪Smart bits测试的结果,也表面ReOS的稳定和可靠。一个路由器的操作系统实现不是一蹴而就的,是需要经过多年的实践和积累的。如果一个厂商不注重开发,今天看到一个可适合产品就买一个,明天发现有问题,解决不了,再换一个,这样子实际上就是一个恶性循环,永远掌握不了核心技术,因此它的产品也就没有什么稳定性可言。
2、 其次是性能。
路由器的工作就是对它的端口收进来的包进行适当的修改以后,转发到需要去的端口。如果运营商的带宽超过路由器的转发能力,那么这种路由器将是网络瓶颈。路由器的吞吐量以每秒可以转发的数据量和每秒可以转发的包的数量为衡量指标,而不是用什么CPU,多少内存,多少flash,多少层电路板为指标。这个指标是IETF(Internet标准管理和维护的机构)给出的。性能指标主要有以下几个:
全双工线速转发能力
路由器最基本且最重要的功能是数据包转发。在同样端口速率下转发小包是对路由器包转发能力最大的考验。全双工线速转发能力是指以最小包长(以太网64字节)和符合协议规定的最小包间隔在路由器端口上双向传输同时不引起丢包。该指标是路由器性能重要指标。 使用ReOS的系统,如HiPER 3300,在包长为512字节的时候,已经达到双向线速转发。
端口吞吐量
端口吞吐量是指端口包转发能力,通常使用PPS(Packages Per Second):包每秒来衡量,它是路由器在某端口上的包转发能力。通常采用两个相同速率接口测试。但是测试接口可能与接口位置及关系相关。例如同一插卡上端口间测试的吞吐量可能与不同插卡上端口间吞吐量值不同。 使用ReOS的系统,如HiPER 3300NB,端口的吞吐量可以达到60K PPS,也就是说,最多的时候,HiPER 3300NB,每秒可以转发6万多个包。当然,这个数字在HiPER使用更好的硬件的时候会再提高。
背靠背帧数
背靠背帧数是指以最小帧间隔发送最多数据包不引起丢包时的数据包数量。该指标用于测试路由器缓存能力。有线速全双工转发能力的路由器该指标值无限大。
路由表能力
路由器通常依靠所建立及维护的路由表来决定如何转发。路由表能力是指路由表内所容纳路由表项数量的极限。
丢包率
丢包率是指测试中所丢失数据包数量占所发送数据包的比率,通常在吞吐量范围内测试。丢包率与数据包长度以及包发送频率相关。在一些环境下可以加上路由抖动、大量路由后测试。
时延
时延是指数据包第一个比特进入路由器到最后一比特从路由器输出的时间间隔。在测试中通常使用测试仪表发出测试包到收到数据包的时间间隔。时延与数据包长相关,通常在路由器端口吞吐量范围内测试,超过吞吐量测试该指标没有意义。
再来看看行业内的情况。ReOS能在166M的ARM9芯片上达到60K的PPS,并且在包长为256的时候单向线速,在包长是512字节的时候,双向线速。比较市场上使用同类CPU的产品,它的吞吐量只有7K PPS,ReOS是他们的9倍。这是ReOS高效率的体现。对比Cisco的路由器,如Cisco 25系列,26系列路由器和目前的HiPER 2000/3000系列采用的体系一致,按照吞吐量和CPU主频对比原则,HiPER已经超过了Cisco这类路由器的效率。
3、 在保证稳定和快速转发的基础上,大家接下来关心的就是功能了。
前面说过,一些路由器采用Linux为基础的软件,如果该公司的开发能力有限的话,那么路由器上的功能就会比较少。一些基本的接入功能这里就不说了,我们要讨论主要有四个:一个是智能NAT和多线路接入,一个是业务管理,一个流量控制,一个是网络监控和维护功能。
在一些企业和ICP等应用中,由于需要提供比较多的对外服务,往往会向运营商申请多个IP地址,一方面满足自己内部上网的需要,另一个方面为服务器的对外服务提供地址。ReOS设计的智能NAT可以将多个用户的IP地址映射到一个公网地址,也可以将用户分成多个组,在有多个地址的情况下,每个组的用户对应一个公网地址,同时,还支持内部地址到公网地址的一对一映射,内部服务器配置内部的地址,而从公网访问则通过公网地址,而且,智能NAT还可以将NAT和路由混合在一起,部分对外服务器可以配置公网地址。当然,使用智能NAT功能还可以配置NAT的静态映射,将内部服务器的服务端口映射到公网地址的一个端口,因此,HiPER系列能完全满足各种复杂的网络规划。
ADSL的接入方式限于技术,带宽有限,因此很多网吧和企业申请多个ADSL以扩展内部网的带宽,或者申请光纤接入作为主线路,ADSL作为备份;学校一般通过教育科研网接入,然而,限于教育科研网和电信的互联互通的带宽,从学校访问电信的网络很慢,反之亦然,因此,学校往往再申请电信的接入线路,等等。HiPER 多线路的产品可以轻松实现提供多线路接入以扩展接入带宽。接入方式可以是ADSL,光纤,Cable Modem,FTTx+LAN的自由组合。而且,HiPER的ReOS还提供了一套完整的线路监测技术,在某个线路失效的时候自动将流量切换到好用的线路,检测方式从链路层到应用层都有。多个线路的负载均衡技术可以根据带宽的比例分配出口的流量,也可以根据数据包的目的地址和源地址指定线路。举个例子,HiPER 3300NB虽然提供了1个WAN口和1个WAN2口,但是,通过WAN口连接交换机的方式,HiPER 3300NB最多可以支持16个ADSL线路的同时接入。而对于学校的应用,经过设置,HiPER3300NB可以将往教育科研网的流量送到教育科研网的出口,其他的流量送到电信的出口。
ReOS系统的业务管理功能基于Filter机制和IP/MAC绑定来实现。首先,通过IP/MAC绑定不仅可以做到内部机器的IP地址和MAC地址绑定在一起,使得普通用户不能随便修改自己的IP,而且,IP/MAC绑定可以实现上网黑白名单。具体地说,如果内部有些机器不允许上网,那么可以使用IP/MAC绑定的黑名单功能,在IP/MAC绑定的配置中,给不能上网的机器的MAC地址对应的IP地址中输入不是本路由器网络的IP地址。HiPER 3300NB可以实现200个IP/MAC绑定。
如果对内网机器的控制不仅仅限制在上网,要对他们的某些行为进行控制,如禁止访问限制网站,禁止使用MSN和QQ,那么可以使用基于Filter机制的业务管理策略。ReOS有三种Filter。
IP Filter只是对IP包进行判断和处理。它可以根据IP包的特点,如IP源地址,目的地址,协议和源端口,目的端口等对包进行处理,如转发或者丢弃。IP Filter的这些参数非常容易从实际环境得到。
IPSSG Filter是扩展的Filter,是HiPER转有的Filter。IPSSG Filter判断的条件除了IP Filter中说的IP源地址,目的地址,协议和源端口,目的端口这些IP基本信息以外,还可以根据MAC地址,时间段等来判断。判断的灵活度加大了,IPSSG Filter可以列出一段地址和一段端口。
Generic Filter 是按照字节( bytes)或者比特(bits)检查任何包。使用Generic Filter,管理员需要可以根据包的内容来查找。
一般来说,基于存储转发机制的Internet(IPv4标准)只为用户提供了“尽力而为(best-effort)”的服务,不能保证数据包传输的实时性、完整性以及到达的顺序性,不能保证服务的质量,所以主要应用在文件传送和电子邮件服务。随着Internet的飞速发展,人们对于在Internet上传输分布式多媒体应用的需求越来越大,一般说来,用户对不同的分布式多媒体应用有着不同的服务质量要求,这就要求网络应能根据用户的要求分配和调度资源,因此,传统的所采用的“尽力而为”转发机制,已经不能满足用户的要求。为了解决在Internet等计算机网上高质量地传输多媒体信息地问题,IETF(Internet Engineering Task Force)成立了专门的工作小组来研究多媒体服务质量的定义和相关的标准。
网络服务质量(quality of service,简称QoS)是网络于用户之间以及网络上互相通信的用户之间关于信息传输与共享的质的约定,例如,传输延迟允许时间、最小传输画面失真度以及声像同步等。
在Internet等计算机网络上为用户提供高质量的QoS必须解决以下问题:
a. QoS的分类与定义。对QoS进行分类和定义的目的是使网络可以根据不同类型的QoS进行管理和分配资源。例如 ,给实时服务分配较大的带宽和较度的CPU处理时间等,另一方面,对QoS进行分类定义也方便用户根据不同的应用提出QoS需求。
b. 准入控制和协商。即根据网络中资源的使用情况,允许用户进入网络进行多媒体信息传输并协商其QoS。
c. 资源预约。为了给用户提供满意的QoS,必须对端系统、路由器以及传输带宽等相应的资源进行预约,以确保这些资源不被其他应用所强用。
d. 资源调度与管理。对资源进行预约之后,是否能得到这些资源,还依赖于相应的资源调度与管理系统。
IP网能发展到今天,就是因为它的简单和接入费用低廉。简单,就带来了新的应用的问题。反观ATM网,它能实现到点到点的QoS控制,但是这个功能的实现导致ATM网络的成本很高,以至用户难以接收的程度,所以到今天,ATM网络的发展和使用远远不如IP网来得那么广泛。因此,不可能让IP网回到ATM的复杂度上面,否则IP的简单的优点不复存在。但是,从目前网络情况来看,骨干带宽很大,如中国电信目前已经拥有了2500G的总容量,而用户的接入端应用比较多而且复杂,根据中国运营商的网络的使用统计,在大部分瞿,在接入端更容易造成网络瓶颈,那么在接入线路上实现IP QoS,就能大部分地解决这些对QoS敏感的语音和视频应用。
一般情况下,来自多个不同源到多个不同目的地的IP 包交汇在HiPER上。为了达到IP 流量控制和拥塞控制的目的,很关键的一点是网络根据不同的性能指标和所做的承诺,把IP包区别对待。因此把IP包划分为相应的类型是有意义的。为了提供适当的流量控制和拥塞控制机制,把IP 包区别开的过程叫包分类。IP 包分类基于如下IP 头字段中的信息:
源地址、目的地址、 协议、端口。
HiPER 通过基于类的排队(CBQ)提供了领先的IP QoS。CBQ是Internet 业内主要成员定义的开放的、非专有的带宽管理技术。通过CBQ,网络管理员可以建立和实施具体的带宽策略,同时获得有效管理成本和QoS所需的可视能力。这种提高的控制水平保证了能够在需要的时间和需要的地方为适当的用户提供需要的带宽。
HiPER实现的CBQ是处理外出的流量,也就是从LAN口到内网的流量,或者从WAN口到外网的流量。因此,可以实现用户的上行和下行的流量控制。必须注意,经过NAT处理的出入流量,在WAN的外出方向,CBQ看到的源地址都是NAT以后的地址。
配置方式,因为CBQ涉及的参数比较多,HiPER为了简化配置,基本的思路是先给需要带宽管理的用户进行分组,在组管理中对他们进行配置,以便在配置页面进行引用。可以配置的参数有:
a、本组带宽的大小
b、本组带宽空闲时可以借给其他组
c、本组带宽使用率高时可以借用其他组的带宽
d、本组内的组员平均共享带宽
WEB页面配置最终是将CBQ应用于LAN口。命令行配置可以随意定义。
通过ReOS的IP QoS功能,可以为内网的语音,视频等时延,带宽敏感的业务保证带宽,也可以管理和规划内部各个用户的带宽。这个IP QoS控制的精度比较高。
值得一提的是,ReOS还有一种高效率的平均带宽控制功能,能限制在网内使用的所有的连接在HiPER上的PC的上行和下载带宽。当把路由器安装好能用以后,不是万事大吉。由于网络的环境千变万化,今天规划好的可能明天需要改动,或者由于内部机器使用不慎,引入了病毒,造成蠕虫攻击,或者应用的变化,实际使用的带宽已经接近可用带宽。当网络发生故障的时候,就需要管理员去查找和判断故障所在。
针对HiPER的定位,ReOS设计了有很强的网络监控功能,一旦网络发生故障,他可以帮助网络管理员在最短的时间内找出问题所在。在HiPER 上能查看到网络带宽的使用情况,如WAN口的上行和下行的带宽利用率,包括数据包的数量,每秒转发的包的数量,单播包和广播包的数量等。不仅如此,管理员还能看到内网的主机使用的带宽,这样子,在网速变慢的时候,管理员通过查看带宽使用情况就能轻松了解是哪台机器的流量偏高,影响了整个网络的应用,还是因为申请的WAN口带宽偏小而造成网速变慢等。
通过HiPER 的上网监控,网络管理员能看到内网用户的上网行为,也能了解到诸如发送冲击波病毒攻击的机器,便于故障诊断。ReOS设计了友好的WEB配置界面,方便使用和管理;同时保持传统的命令行方式,可通过TELNET或串口进行配置。提供了telnet的客户端程序,为管理HiPER内部连接的可网管的交换机或者服务器提供了通道。提供标准的SNMP接口,供远程SNMP网管管理;提供系统日志功能,可通过远程SYSLOG服务器将日志记录下来。