徐 翔 徐 皓
(中国船舶重工集团公司第722研究所 武汉 430079)
随着通信网络的快速发展,人们对通信的需求由原来的语音变为结合数据、图像、语音等的综合通信需求。大规模、高流量的综合通信业务,对网络交换技术的要求持续提高,数据交换的设计将直接决定网络的整体性能。因此设计出高效、稳定的数据交换平台就显得尤为重要。
现有基于电路业务的舰船内部通信系统仍然由TDM网络承载,带宽窄,信号传输速率一般为E1(2.048Mb/s)或E3(34.368Mb/s)。网络拓扑多为环形结构,如图1所示。由于网速较低,信号传输时延大。而且TDM格式的数据包对时钟变化范围有严格的要求,失帧的几率大。由于信号传输通道的冗余只有1个,网络的整体可靠性较低。当网络中出现一处电缆故障时,网元间可以采用迂回传输模式保障通信的正常传输;但当出现第二处电缆故障时,通信传输将中断,网元降级使用。
随着装备信息化水平的不断提升,上述舰船内部通信系统多采用的窄带TDM(Time Division Multiplexing,时分复用)格式环形传输网络已经越来越不适应未来信息化战争的需要。网络技术的飞速发展,使得IP技术的主导地位日益明晰,未来网络的主体架构必定是IP,也就是说IP将是无所不在的[1]。本文通过对IP交换技术的研究,提出了一种基于IP(Internet Protocol,互联网协议)格式的宽带综合业务传输网络,以满足日益增长的对综合通信业务的需求。
基于IP的宽带综合业务网络以IP为技术基础,网络拓扑采用网状结构,如图2所示。
该网络系统由IP网络承载,以 IP交换为依托,带宽宽,信号传输速率高达1Gb/s,信号传输时延小。IP格式的数据包对时钟变化范围的要求比TDM数据包低,失帧的几率小。网络内各个网元间关联紧密,信号传输通路的冗余数量大大增多,中断传输或网元降级使用的几率极大降低,网络的整体可靠性极大提高。网元单端口吞吐量高达1Gb,可以流畅的承载各种语音、数据和视频等综合宽带业务。
交换是按照通信两端传输信息的要求,用人工或设备自动完成的方法,动态地把要传输的信息送到符合要求的相应路由上的技术的统称。交换的方式经历了电路交换、数据交换和IP交换三个主要阶段,其间实现了从模拟信号到数字信号,从窄带到宽带的跨越[2]。
从传统意义上讲,真正的交换是在第二层(数据链路层)实现的,俗称第二层交换。由于第二层交换技术不处理网络层的IP地址,不处理高层协议的端口地址,它只需要数据包的物理地址即MAC地址。可以说,直接面向用户的第二层交换已得到了令人满意的答案。
IP交换也称为第三层交换,顾名思义,就是在OSI的第三层(网络层)实现数据的交换。更确切的说,第三层交换就是利用第三层协议中的信息来加强第二层交换功能,在网络模型的第三层实现了数据包的高速转发。用一个公式来表示为:
第三层交换=第二层交换+第三层转发
IP交换技术可以操作在网络协议的第三层,作为一种路由设备并起到路由作用。它的速度极快,不仅解决了局域网中网段划分后子网必须以来路由器进行管理的局面,而且解决了由于传统路由器低速复杂造成的网络瓶颈问题[3]。
IP交换分为纯硬件和纯软件两种方式。纯硬件的IP交换相对来说技术复杂、成本高,但是速度快、性能好、带负载能力强。其原理是采用ASIC(Application Specific Integrated Circuit,专业集成电路)芯片,用硬件的方式进行路由表的查找和刷新。纯软件的IP交换技术较简单,但速度较慢,不适合作为主干。其原理是采用CPU用软件的方式查找路由表[4]。基于上述两种IP交换的实现方式各有不足,我们提出了基于ASIC硬件芯片与CPU控制交换软件相结合的方式,实现对第三层表格进行查找和刷新。
具体表现为:当IP数据包由端口接收进来以后,ASIC交换器芯片首先在第二层表格中查找相应的目的MAC地址,如果查到就进行第二层转发,否则将IP数据包发送至第三层引擎。在第三层引擎中,CPU运行软件查找相应的第三层表格信息,与IP数据包的目的IP地址比较,然后发送ARP(Address Resolution Protocol,地址解析协议)到目的主机,得到该目的主机的MAC地址,接着将MAC地址发送到第二层引擎,由第二层引擎转发该IP数据包。
交换平台为用户提供交换功能。可以将多个端口的数据连接到一起,完成多端口转发过来的网络层数据包格式转换与转发。也可同时提供网络层接入,向网络提供高带宽的网络接口。IP交换平台功能框图如图3所示。
图3 IP交换平台功能框图
硬件设计包含控制模块、交换模块和接口模块设计3个部分。
1)控制模块:主要负责系统的初始化、配置、管理以及运行上层协议等。采用PowerPC系列通信处理器(CPU)为控制核心,辅以外围器件,构成PowerPC最小系统,并经PCI桥通过PCI(Peripheral Component Interconnect,外部器件互连)[5]总线实现对交换模块进行访问和控制。控制模块框图如图4所示。
IP交换平台要使用通信处理器来运行路由协议,通信处理器选用MPC866,它是一款性能稳定的CPU[6]。其核心频率达到133MHz,与133MHz的PCI总线相匹配。
这样控制模块中的CPU将只完成控制面的路由功能,而不参与数据面的转发,使得数据转发实现了线速(Wire-Speed)。
2)交换模块:主要负责第二层交换、第三层交换和其他一些功能。使用第三层ASIC芯片为交换器,负责IP数据包的交换,实现IP交换的功能。
交换器选用Broadcom的BCM56224,它集成了24个1GbE,4个1/2.5Gb复用接口,最大吞吐量高达34Gb。同时支持IPv4和IPv6协议;支持硬件处理的第二层交换,第三层路由及数据包的分类和过滤功能,内部集成数据包缓冲内存[7]。系统设计中通常使用CPU通过PCI总线对交换器进行初始化、配置管理和实现第三层交换功能。每个交换器的4个复用接口可以与相邻的交换器按图2所示组成网状拓扑,满足了组网需要。
3)接口模块:分为PCI接口、SERDES(Serialization-Deserialization,串行-解串行)接口和SGMII(Gb Media-Independent Interface,千兆介质无关)接口。
(1)PCI接口为控制模块与交换模块的信号交互通道,如图4所示,主要器件为一片PCI桥芯片;
图4 控制模块框图
(2)SERDES接口为1GbE的光接口,可以直接与光模块SFP连接;
(3)SGMII接口为1GbE的电接口,经PHY(Physics,物理层)芯片连接到铜线。
IP交换平台的软件设计包含交换模块的硬件初始化和软件启动过程。交换平台采用VxWorks操作系统。在PowerPC最小系统完成启动后,需要通过PCI总线对交换模块的交换部分进行初始化,主要步骤如下:
◦对交换器和CPU的头模式进行设置;
◦根据硬件连接选择PCI设备的设备号,配置交换器的PCI基地址和窗口大小;
◦通过PCI总线使用交换器的CPU管理接口确定交换器的型号,然后根据不同的芯片类型进行初始化和DMA通道的配置;
◦挂接交换器的驱动程序和各种API,完成交换器的初始化。
最后两步需要Broadcom的软件开发包支持,直接从程序中调用初始化程序,保证完成初始化和加载驱动。
对于PCI驱动部分,我们直接调用VxWorks系统中的标准PCI驱动程序。对于交换器的PCI挂接过程,主要步骤如下:
◦在bootROM中用sysHwInit()调用 sysP-ciAutoConfig(),对PCI_SYSTEM结构进行实例化;
◦在sysHwInit()中,使用pciConfigOutLong()对交换器的基地址和窗口大小进行配置,然后使用pciConfigOutBite()挂接交换器的中断到CPU的外部中断向量表;
◦到此,PCI配置完成。通过交换器的 S_Channel可以配置交换器中的各个寄存器和表项。S_Channel的信息传输有特殊的格式和规范,一般通过Broadcom提供的软件开发包(SDK)中自带的标准函数来配置。
交换器初始化结束后,进入正常的工作模式。依据IP交换的原理设计的交换软件流程图如图5所示。
图5 交换软件流程图
基于IP的舰船通信交换平台以IP网络为依托,以IP交换技术为支撑,迎合了未来网络的发展方向,满足了未来信息化战争条件下对舰船综合通信业务提出的种种需求。该平台把IP硬交换与软交换,第二层交换和第三层转发的优势结合为一个有机的整体来完成IP交换,并提出了该平台的具体实施内容。IP交换技术具有以当前系统1/10的代价获得传输性能于过去10倍的能力,随着IP交换技术在未来舰船通信系统中的应用,必将使网络的整体性能得到大幅度的提升。
[1]Mark Weiser.The Computer for the 21st Century[J].Scientific American,1991(9):94~100
[2]谢希仁.计算机网络[M].北京:电子工业出版社.2003
[3]M etzler J,DeNoia.L.第三层交换[M].卢泽新,周榕,译.北京:机械工业出版社,2000
[4]温钰,等.三层交换技术的原理及应用[J].网络安全,2007(7):43~46
[5]PCI Special Interest Group.PCI LocalBus Specification Revision 2.1.1995
[6]MPC866 PowerQUICCTM Family Reference Manual[R].Freescale Semiconductor,2004
[7]BCM56220 DataSheet.Broadcom Corporation,2007