从网络的演进分析中,我们看到,最终网络会统一到完全基于分组交换,目前来说是IP报文交换的体系构架上。这样广泛用于传统网络中的PSTN交换机,就会被彻底摒弃。因为这些传统的PSTN交换机,是基于TDM时隙进行交换的,而在未来的分组网络中,已没有时隙的概念。
不论未来的网络是演进到IMS统一PSTN和PLMN,还是Internet统一整个网络,整个网络都必须提供下列三个方面的功能:
I) 用户接入控制功能。对于用户的接入,需要严格把关,同时对于用户的网络访问内容,应该能够识别,从而进行不同的处理。这种设备处于整个网络的边缘层,可提供不同的用户接入方式,比如Ethernet,ADSL,专线等。或者不同的用户物理接入方式需要另外的设备进行转换,但我们把这种用户接入物理方式的处理,以及用户接入内容的识别和用户认证功能,作为一个网络实体来描述,后续称为接入控制器(AC,Access Controller);
II) 业务管理与控制功能,后续称为SC(Service Control)用户接入网络之后,若需要使用语音、视频、即时消息等业务,则必须通过联系业务管理功能模块来达成。比如用户若希望给另外的朋友发送即时消息,则用户必须首先联系即时消息提供服务器,获取到对方的位置信息,然后才能进行发送。这个过程中,业务管理与控制设备会跟踪用户的发送过程,并对用户进行计费。这种提供业务管理与控制功能的设备,往往是一些服务器;
III) 分组报文转发功能,后续称为PF(Packet Forwarding)。这实际上就是路由器,但由于网络结构的进一步规范化和功能分立,路由器的功能和实现模式,也跟目前IP网络上应用的路由器略有不同。
当然,还有一个重要的网络层次,那就是接入网络。随着网络的演进,网络的核心层将统一到分组网络上,但网络的接入层却无法完全统一,至少存在有线和无线之分。对于无线,也存在不同的频率划分和利用方式,以及不同的信号调制和解调方式。而对于有线网络,也存在诸如铜线接入、光纤接入、有线电视接入等不同的接入方式。这样就需要有不同的接入网设备,来完成不同接入方式的适配,从而把用户的业务报文统一转换为IP报文或其它类型的分组报文。在我们的描述中,把接入网络这部分划归为用户接入控制功能AC的一部分。在实现的时候,是可以采用独立的设备来进行实现的。
但随着网络的进一步演进,AC的业务控制功能必然会标准化和统一,比如对用户的认证,接入计费,用户业务报文的深度解析,用户流量的统计和限制,以及用户接入的安全控制等。而用户接入的适配部分是变化的,因此未来的网络,可能会在AC的业务控制功能模块和用户接入适配功能模块之间,定义一个标准的接口。这样就可把AC部分分立实现,类似与目前GSM网络中的Abis接口(基站和基战控制器之间的接口)。
这样抽象下来,未来的网络,将会由三个功能功能独立的实体组成:AC、SC和PF。相应地,最终的通信网络设备,都应该可以归纳为这三类。目前来看,这三个网络实体,都可以采用平台化的思路来实现,下面就对这三个网络实体的一种可能的体系构架进行描述。
接入控制功能实体,即AC,必须具备下列功能:
I) 对接入用户进行接入控制。这包含用户的认证,用户的计费(可按照不同的计费策略进行,比如用户接入时长、用户访问网络的流量,或者两者的结合等),用户的鉴权等。AC必须适合大规模的用户接入控制,以降低网络建设成本;
II) 对用户业务报文的深度解析。通过解析报文的内容,判断用户目前请求或正在使用的业务情况,从而做出不同的处理。比如,判断用户访问了哪个网站,对应不同的网站,可采用不同的计费或带宽策略;
III) 网络安全功能,需要对用户的行为或报文进行精确的控制,确保只有合法的报文才能进入网络。同时应具备病毒防护功能;
IV) 大容量、快速的数据报文交换和转发,确保用户能够获得高服务质量和快速的网络响应。
综合上述要求,可采用通用处理器加增强型网络处理器的方式实现。所谓通用处理器,就是广泛应用于个人电脑和PC服务器上的CPU,比如Intel公司的X86/X64/A64系列,或者PowerPC系列CPU。可以把这类通用CPU集成到一块单板上,完成对整机的管理、用户鉴权与计费、路由协议处理等功能。当然,采用板卡式的分布式体系结构,是所有通信设备的最基础选择,后续认为这是默认的,因此不作特殊说明。
对于运行在通用CPU上的操作系统,通用操作系统是最好的选择。比如Windows系列操作系统或Linux系列操作系统。尤其是Linux操作系统,具备开源、免费的特点,可大大节约成本,而且便于维护。之所以选择通用操作系统,是因为通用CPU完成的都不是实时性很强的业务处理任务,通用操作系统完全可以胜任。选用通用操作系统,设备的软件开发工作也会得到简化,可根据不同的需要,充分利用通用操作系统开发工具多样性的特点,选择合适的开发工具和软件中间运行平台,从而大大降低软件开发成本。
所谓增强型网络处理器,是在传统网络处理器的基础上,增加新的功能,以适应AC的需要。传统的网络处理器,更加注重分组报文的快速转发,对报文的深度解析以及业务处理功能欠缺。比如,为了实现病毒防护功能,除了深度解析报文内容外,AC设备还必须完成报文内容跟病毒码的对比操作。再比如,传统的网络处理器提供的漏桶数量(用于对报文流进行速率控制和整形),可能会维持在4K个以下。而对于接入以M计的用户的AC来说,这显然是不够的,因为对每个用户,需要维持的漏桶数量可能超过16个。这样就需要对传统网络处理器进行增强。
需要说明的是,增强型网络处理器的功能是通用处理器无法取代的。当然,在通用处理器上通过软件编程,可灵活的实现任何业务控制,但其性能是无法满足需要的。
对于运行在增强型处理器上的软件,最好以通用编程语言进行编写,而不是采用其专用的硬件微码。这样可使得AC设备的功能代码移植性强,可以适应不同的网络处理器的需要。因为与专注于报文的快速转发不同,对用户报文的深度解析和策略处理,涉及到十分复杂的算法和处理过程,完成这些功能的软件开发工作量,是十分庞大的。若采用网络处理器专用的微码来实现,则相当于是把这部分开发工作量绑定在了特定的处理器上,将来一旦需要移植到另外的网络处理器,就需要重新开发,以前的成果无法继承。
增强型网路处理器一般会提供硬件支持的线程上下文和同步信号量,以及硬件支持的线程切换方式,以增强性能。同时,它也会支持基于硬件的定时器、漏桶、报文加密/解密协处理器、报文压缩协处理器等功能,以加快报文的处理过程。这也是增强型网络处理器不同与通用CPU的地方。
一般情况下,一片单独的增强网络处理器是无法支撑大容量设备的,因此在同一个机架中,需要配置多块内嵌增强网络处理器的单板,来共同完成用户接入业务的处理。这样就涉及到不同的单板之间进行通信的问题。同时,板间通信问题,还存在于通用CPU支持板跟业务板之间。由于增强处理器板之间的流量一般很大,而且对服务质量要求较高,不能出现乱序、头阻塞等情况,因此基于以太网交换的通信网络是无法适应的。这时候就需要大容量的交换芯片,来完成业务板之间的业务交换。而对于通用处理器板和业务板之间的通信,则可以通过以太网交换网络实现,既标准,又可满足要求。
综上所述,对于AC设备,可采用通用处理器加增强网络处理器的方式来实现。其硬件构架,可采用目前流行的ATCA硬件平台来支撑,但需要对其进行增强,增加用于业务单板之间的交换功能,以支撑设备内部大容量、高质量的报文交换要求。对于通用CPU板和业务板之间的通信,可采用ATCA平台的BASE或Fabric总线来实现。
对于业务控制SC设备,可采用通用的服务器来进行担当。因为业务控制设备,不需要提供实时的业务交换功能,只是实现了用于的数据管理、业务接续控制等功能,实际上都是通过软件完成的。相对专用的业务控制设备,在通用服务器和通用操作系统上开发业务控制软件,可大大降低实现和部署、维护成本。因为任何一家软件公司都可有能力完成这项工作,这就使得提供业务控制设备的门槛大大降低,从而使得市场竞争加剧,最终会导致价格停留在一个合理的水平上,这对网络运营商来说是有利的。
目前来看,不论从可靠性还是性能上来说,基于通用操作系统的服务器都是可以与专用电信设备相比美的。随着网络的进一步发展和新业务的不断出现,运营商参与到业务控制软件的开发中是必然的趋势。目前的商业模式下,所有设备功能的开发和测试,都是由设备提供商完成,运营商只负责设备的部署和使用。这样一旦有新的业务或需求出现,运营商必须把这种需求反馈给设备提供商,由设备提供商完成新增功能的开发,然后再完成设备软件的升级或补丁操作,这样才能最终提供新的业务。显然,这个过程周期很长,因为设备提供商必须按照内部的流程或要求去完成软件的开发,而且期间的交流也会大大增加开发周期。其次,这种方式实现的成本偏高。因为仅仅增加一个有限的功能,就需要对设备进行升级或改造。因此,开放业务管理模块的开发接口,是必然的趋势。
在接口开放的情况下,设备提供商除了提供给运营商必须的支撑软件和平台软件外,还需提供一个开发工具包。后续一旦有新的业务需求,运营商可采用软件工具包快速的开发出新的业务模块,并加载到现有的支撑软件中,从而可很容易的实现业务需要。当然,目前来看这种模式是非常遥远的,但一旦SC功能由专用平台迁移到了通用平台,则这种模式会很容易推进,并一定会显现出良好的效果。
对于实现分组转发功能(PF)的设备,实际上就是路由器。但考虑到未来网络体系构架的转变,路由器上的一些功能就可以移除掉。比如QoS功能(报文标记、限速、整形、拥塞管理等)、ACL功能等。这些功能由AC设备完成,把这些功能从路由器上取消之后,会大大减轻路由器软件的规模和复杂程度,同时也会大大提升路由器的性能。这使得路由器只专注于报文的转发即可。
PF设备可仍然沿用目前的基于分布式的路由器体系结构,即由控制平面和转发平面组成。其中控制平面可由通用CPU加通用操作系统组成,这样会大大降低软件开发的成本,同时增加控制平面软件的可移植性和通用性。对于转发平面,可由网络处理器或基于FPGA逻辑等专用电路组成。随着网络的演进,超大规模专用集成芯片,或许是一个更好的选择。因为网络演进到一定程度,PF设备的功能就只有报文转发了,其它相关功能会统一转移到AC设备上完成。这样网络处理器的优点就无法体现了,因为网络处理器擅长于对网络报文的定制化处理,比如速率限制、策略路由,甚至报文深度解析等。而对PF来说,这些功能将不再是必须的功能,因此ASC芯片的优势会更加明显。
对于设备控制平面,除完成对整个设备本身的管理之外,还需要运行路由协议,来学习路由以指导转发,并把本地路由信息发布出去。目前的控制平面,基本上都是基于多任务模型的嵌入式操作系统来做支撑的。这种操作系统不能提供任务之间的保护功能,也不能为每个任务提供单独的地址空间。实际上,整个系统类似于通用操作系统(比如Windows或Linux、Unix等)的一个进程,而不同的任务,则类似与对应进程的多个线程,相互之间可直接引用内存单元数据。这显然对整个系统的可靠性造成较大影响,因为一个任务模块的崩溃或异常,很可能会导致整个系统崩溃。同时,设备提供商一般会把控制平面的操作系统配置为不可抢占的工作模式。这意味着一个任务的长时间运行或陷入死循环,会导致其它紧急任务无法及时投入运行,甚至会导致整个系统不能响应请求。显然,虽然设备提供商往往会宣称设备是实时的且可靠的,但最重要的支撑软件,却无法支撑设备的实时性和可靠性。根据个人的经验,目前网络设备控制平面的可靠性和实时性,甚至不如安装了通用操作系统的一台个人计算机。毕竟个人计算机的任务或进程调度,还是基于严格优先级的可抢占的调度模式。所以,PF的控制平面必须改变这种方式。考虑到控制平面对实时性要求不是很高,一般情况下,从任务就绪到任务得到调度,在50ms内就可达到要求,因此,可采用通用的操作系统作为支撑平台,比如Windows或高版本的Linux。之所以采用高版本的Linux,是因为一些低版本的Linux不支持内核模式的可重入性和可抢占性。
采用通用处理器和通用操作系统后,可把整个控制平面的所有任务,通过等价类等方式划分成进程的集合,通过进程的方式来实现整个控制平面。这样既可降低软件开发难度,也可大大提升整个系统的可靠性,因为一个进程的瘫痪,不会对其它进程造成影响。这种模式对补丁或升级操作也会带来大大的便利性,只需要将特定的补丁或新版本拷贝到控制平面的本地存储介质上,重新加载就可以了,而无需重启整个系统。或许有人认为进程间的切换或进程之间的通信(IPC)会很消耗系统资源,但这都是基于以前资源匮乏型系统的思维进行考虑的。以前的处理器工作频率低,流水线水平也不是很高。而且对进程的切换也没有做太大的优化,因此进程切换过程中的cache刷新以及TLB和页表的更新等,会造成很大的CPU资源消耗。但现在的通用CPU都针对进程切换或IPC进行了专门的优化,同时其工作频率也以指数的形式不知提高了多少倍(遵循摩尔指数定律),因此这部分性能的损耗或时间的消耗,是可以忽略不计的。实际上,目前互联网上十分流行的由Juniper公司开发的路由器,就是采用了通用CPU和通用操作系统(Free BSD内核),并以进程方式实现各功能模块的,其表现是十分优秀的。
采用通用操作系统来实现PF的控制平面,还有另外的好处,那就是可轻松的实现分布式计算。比如,若PF设备的容量足够大,则必须有多个机架来共同组成一台设备。这样可在每台机架上配置两个控制单元,机架之间的控制单元通过Ethernet方式进行连接,组成一个对等网络。这样可在这个对等网络上均衡配置不同的任务,这样在正常状态下,可使得系统性能得以充分发挥。但在故障状态下,比如一个机架断电,则该机架的主控单元上运行的任务,可被正常机架的主控单元接管。这样就不至于出现但点故障。传统的路由器或电信设备,即使实现了多机架的分布式结构,往往控制单元也是集中在同一个机架上,这样始终存在一个单点故障。
对于控制平面,通过网络处理器或专用ASC芯片,形成一个一个的转发单元,同时整个系统通过中央交换芯片组成一个统一的转发系统。这种体系构架已十分成熟,但其中的一些细节地方,需要做进一步改进。比如,一般情况下,网络处理器或ASC芯片会有自己的本地存储器,用于存储转发表和作为报文本地缓存。对存放转发表的存储器,可采用静态的随机访问存储器来提升访问性能,同时借鉴通用CPU的做法,引入一级或二级缓存,把这些表结构存储在速率更快的本地缓存中。而对于缓存数据报文的内存,可采用动态随机存储器实现,这样可大大降低成本。控制平面的转发表数据结构,一般也是由控制平面根据路由表来生成,这样必然存在刷新或更替的过程,比如路由表的变化,必然会导致主控单元重新形成转发表并刷新到转发单元中。这样为了避免形成刷新转发表时的短暂中断,可采用主、备转发表备份的方式,首先刷新备用转发表,刷新完毕后,通过调整指针,把备用转发表调整为主用,同时主用降为备用,然后再刷新原主用转发表。
对于PF功能设备的硬件支持平台,可采用比较流行的ATCA平台,另外增加转发单元之间的交换芯片。因为ATCA平台的板间通信通道,或许满足不了业务的需要。当然,若系统设计容量不是很大,仍然可以完全采用ATCA平台来完成设计。
总之,对于AC设备,其控制单元可采用通用CPU和通用操作系统来实现,而对于业务控制和处理单元,则采用增强型的网络处理器来实现。可采用ATCA硬件标准作为其平台,但必须辅助集中的交换单元,来完成业务单元之间的本地交换。
对于SC设备,则就是一些通用的服务器和通用操作系统,并辅助采用可移植性开发语言开发的业务软件。同时,SC模块需要开放接口,便于用户直接通过编程的方式实现业务定制。
对于未来的PF设备,其控制平面可采用通用CPU和通用操作系统来担当,而其业务转发平面,则可采用通用的网络处理器或专门的ASC芯片来充当。
可以看出,随着网络的进一步演进,进一步归一化,网络设备的开发和设计也趋向简单。而且通用计算机技术也更加深入的渗透到网络设备的实现中,占据了大半壁的江山。这是符合网络演进规律的。从网络的演进过程来看,是一步一步朝着分组化方向来发展和演进的,而分组化正是计算机通信的核心思想。因此,在计算机领域得到广泛应用的经验和成果,逐渐迁移到通信领域,甚至取代原有的通信机制和标准,将是一个比较明显的趋势。
从目前网络的演进趋势,我们也可以断言,目前的电信设备供应模式也会逐渐转变,最终会演变成跟计算机行业一样的商业模式。比如,会存在芯片生产厂家,生产通用处理器、网络处理器或用于报文转发的ASC芯片。也会存在电信设备硬件供应商,类似现在的Lenovo、Dell等计算机供应商,它们会提供通信设备的硬件平台。同时,还会存在软件供应商,提供用于通信网络的软件系统。可以看出,后续通信行业将会彻底演进为计算机行业。这对电信设备供应商的冲击是非常大的,因此,电信设备供应商需要充分做好准备,以应对这种变化。
但有一点是不能忽略不计的,就是网络的接入层。随着网络的演进,接入层技术可能会最终统一到少量的几种接入方式上,比如Ethernet、光纤、无线等。但跟核心网不同,接入层永远不可能统一到一种体系结构上,因为至少会存在有线和无线的差别。这个层面,或许是通信行业最后的自留地。