首页 > 范文大全 > 正文

一种向量网可编程交换机实现

开篇:润墨网以专业的文秘视角,为您筛选了一篇一种向量网可编程交换机实现范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘 要:向量网是一种向量地址为基础的新型数据通信网络。向量网硬件交换机的主要功能是根据向量地址转发向量数据包,是决定组网成本的重要硬件设备。提出一种完整的向量网硬件交换机设计,并在NetFPGA平台实现。结果表明,在完成功能的前提下,该方案可完全移植到Xilinx Spartan-3A系列的XC3S1400A芯片,其成本远低于同等性能IP网路由器。

关键词:下一代网络;向量网;向量网硬件交换机;NetFPGA

中图分类号:TP393.0 文献标识码:A DOI:10.3969/j.issn.1003-6970.2013.07.033

本文著录格式:[1]及晓萌,梁满贵.一种向量网可编程交换机实现[J].软件,2013,34(7):95-99

0 引言

传统网络体系结构[1]主要特征是开放和互连,采用层次化结构,遵循端到端原则,简化了网络协议的模型和网络的复杂性,使不同的网络系统可以方便的相互连接,在较短时间内成功构建了全球性网络。但是随着新的应用层出不穷,传统网络体系渐渐暴露出不足,例如不能保证QOS,安全性差和扩展性差等。在此背景下,提出了一种新型网络体系——向量网[2,3],它对应着OSI七层网络模型的第三层—网络层,采用数据面与控制面分离的方式。与ATM网和IP网相比,向量网具有支持QOS,安全性好、无限扩展和交换设备简单等优点。

向量网硬件交换机是组建向量网重要的硬件设备,承担着转发向量网数据包的作用,其功能可与IP网路由器对比。不同的是,向量网路由部分[4]由控制面负责,交换部分由数据面负责,所以交换机并不承担搜集和维护路由信息的工作,交换过程也不需要查找路由表,这样大大减少了网络交换设备的复杂性,降低了交换设备的成本。在一个网络体系中,转发设备的基数最大[3],所以有效的降低转发设备的成本对于降低组网的成本有重要的意义。

论文提出一种基于以太网端口的向量网硬件交换机设计方案,在NetFPGA平台下采用Verilog语言编程实现,并通过观察该方案所占用资源的数量,选择合适的FPGA芯片,验证向量网交换设备简单、成本低的特点。

1 向量网体系

1.1 向量地址和向量交换

向量地址[5](Vector address,简称Va)依据数据传输路径方向上的信源设备(A)和转发设备(E、I、F)的输出端口名进行编码,每个输出端口名作为一个分量地址,这些分量地址依据路径方向次序组成一个序列。如图1所示,信源设备A向信宿设备C发送向量网数据包,序列的第一个分量地址是信源设备A及其输出端口号:A1;第二个分量地址是第一个转发设备E及其输出端口号:E2;第三个分量地址是第二个转发设备I及其输出端口号:I3;最后一个分量地址则是最后一个转发设备F及其输出端口号:F2。得到的序列{A1,E2,I3,F2}就是向量网络地址编码结果,即信源设备A向信宿设备C传输数据的向量网络地址,简化表示为{1,2,3,2},为了更有效表示向量地址,需要进一步表示成2进制。

向量交换[2]是向量网硬件交换机最主要的功能。向量交换的过程如图3,当交换机收到一个向量网数据包时,首先要分离出分量地址,即当前转发操作输出端口号,记为To,然后修改向量地址,把To从向量地址中删除,并以0补齐(填充位的0位达到8位则删除该字节),最后将修改后的数据包从转发到To。

1.3 向量网与以太网融合

IP网是由以太网承载实现的,参考这一方式,用以太网实现向量网子网[8],使以太网成为向量网的一部分,这样可以保留现有的以太网交换机来部署向量网,实现以太网和向量网融合。图5是一个简单的网络模型,E1、E2、E3、E4代表终端,SW1代表以太网交换机,它们共同组成局域网LAN1,同理,端系统E5、E6、E7、E8和SW2组成局域网LAN2。如果是IP网,则R代表IP网路由器,LAN1、LAN2和R共同组成IP子网;同理向量网,R则代表向量网硬件交换机,LAN1、LAN2和R共同组成向量网子网。

2 向量网硬件交换机设计

2.1 系统架构

图6给出了4端口向量网硬件交换机设计的系统架构。主要分成四个模块,向量数据包到达硬件交换机端口后,首先进入解析地址模块,从数据包中提取向量地址并解析,找到本次转发的分量地址,并修改填充位,然后整个数据包进入FIFO中缓存,等待发送。其次是调度模块,调度模块采用CPU实现,即通过硬件模拟一个CPU,功能是实现4个端口的调度,建立交换阵列。最后是输出模块,确定要发送的向量数据包后,由相应端口的输出部分进行输出。

2.2 解析向量地址模块

采用流水线的方式解析向量地址。向量网硬件交换机是基于以太网端口设计的,所以收到的数据包首先封装的是以太网包头,其次才是向量网数据部分。所以交换机收到数据包之后,首先跳过以太网包头,然后进入向量网数据部分进行解析。

如图7所示,解析模块采用寄存器流水线的方式。每当时钟到来时,数据就从当前寄存器流入到下一个寄存器,同时,Reg_0读入新的值,并输出当前Reg_4的值到FIFO。表1是解析向量地址的过程,左边代表时钟信号,右边表示该时钟内流水线上寄存器的变化。

2.4 调度CPU模块

数据包缓存到FIFO模块之后,触发CPU执行调度程序,决定当前由哪个输入端口缓存的数据输出到相应的输出端口。

CPU由Xilinx提供的工具PicoBlaze实现,Picoblaze提供49个不同指令,16个寄存器(CPLD为8个),256 个直接或间接的可设定地址的端口,1个可屏蔽的、速率为35MIPS 的中断。它的性能超过了传统独立元器件组成的微处理器,而且成本低,图9为PicoBlaze内部模块图:

CPU的主要功能是以输出端口为主体依次扫描,并建立交换阵列。例如,检查是否有发送到0端口的数据,则依次扫描4个输入端口,如果有且0端口空闲,则开始传输;否则,检查是否有发送到1端口的数据,以此类推。

CPU线程有两个状态:空闲态和扫描态。如图10所示,当CPU处于空闲态时,若此时有数据包等待发送或者某一端口的数据包输出完毕,则触发CPU进入扫描状态;反之,若CPU此时处于扫描态,当扫描到数据包可以发送到相应的输出端口或者输出端口忙此时不能发送时,CPU进入空闲态。例如,当扫描到有数据包要发送到0端口且0端口此时空闲,则CPU发出指令开始传送,数据包从该端口的FIFO经过输出模块打包输出到0端口;若0端口此时忙,则扫描1端口,4个端口均扫描完毕后,CPU进入空闲态等待输出端口输出完毕。

2.5 输出模块

输出模块主要功能是打包以太网包头,发送数据,并计算CRC(Cyclic Redundancy Check)。

因为当前设计的向量网硬件交换机是基于以太网端口的,所以输出FIFO中存储的向量网数据之前,首先要打包以太网包头。以太网包头包括:目的MAC地址—DMAC,6个字节;源MAC地址—SMAC,6个字节;类型字段—TYPE,2个字节,共14字节。为了读取方便,每个端口设计一个分布式RAM,存储以太网包头信息。

RAM采用Xilinx提供IP核Distrbiute RAM实现,每个端口建立一个16byte大小的RAM,存储该端口的以太网包头信息。向量网设计了专门的向量网ARP协议[8],规定了以太网包头的值,在交换机接入到一个向量网子网的时候,该子网内部的组长会首先向该交换机发出一个信令,规定以太网包头部分的值。交换机收到这个信令之后,按照规定,把以太网包头部分写入RAM中。

当CPU发出信号,某一输入端口的数据向其输出端口进行发送时,输出模块首先读入当前输出端口RAM中存储的以太网包头的值发出,然后从当前输入端口的FIFO中读取向量网数据依次发出,在这个过程中同时计算CRC的值,在向量网数据发送完成后,发送4个字节的CRC字段。

3 实验说明

3.1 NetFPGA平台

NetFPGA[9]是一个低成本可重用的硬件平台,把FPGA的可配置特性带入了网络通信领域,非常方便的使研究人员或者高校学生搭建一个高速的网络系统,为更多的研究人员研究下一代网络提供一个开放的平台。NetFPGA是一个PCI插卡,可以安装在任何具有标准PCI槽的计算机上。NetFPGA开发板如图11所示:

NetFPGA是一个全世界开发人员可采用的开放式平台,有多个参考设计:IPV4路由器、以太网交换机和4端口的网卡等。这就使得开发人员可以修改这些参考设计来开发自己的网络设备,而不必从头开始编写,只需要在参考设计的基础上添加自己修改的模块即可。

向量网硬件交换机参考了IPV4路由器的设计,在原设计的基础上,仅保留了GMII接口部分,舍弃IPV4路由器数据交换的部分,替换为上述向量网交换设计,然后经仿真调试,综合成.bit文件下载到NetFPGA开发板上。

实验环境如图12,NetFPGA开发板的4个端口依次连接到一台PC机上,中间插入NetFPGA板卡的PC0充当向量网硬件交换机。

3.2 实验结果

实验结果如图13所示,在PC终端利用Wireshark抓包软件抓包进行分析,可以看到,经一侧终端发送向量网数据包,经向量网硬件交换机转发之后,可以正确的到达目的终端,并且向量网地址修改正确。

实验结果发现,该方案只占用了10%左右NetFPGA上Xilinx Virtex-II Pro 50的芯片资源,改用Xilinx Spartan-3A系列的XC3S1400A芯片仿真时,也可以满足上述功能要求。由此证明,脱离PC机的向量网硬件交换机只需要XC3S1400A芯片和其它网络接口设备等,不需要外部存储芯片,且端口速度可达1Gbps,而成本只在几十元,远低于同等性能IP网路由器,降低了组网成本。

4 结论

本文给出一种基于以太网端口的向量网硬件交换机设计方案,在NetFPGA平台实现,同时得出NetFPGA芯片资源使用情况,选取了更小型成本更低的FPGA芯片,体现出向量网交换设备简单、组网成本低的优势,也为进一步实现脱离PC机的向量网硬件交换机做准备。

参考文献

[1]WANG Ji-Lu. Review of next generation network architecture.In: Internet Technology and Applications (iTAP), 2011 International Conference ,Wuhan, China,2011.

[2] Mangui Liang,Jinxin Zhang,Shujuan Wang. A new network based on Vector Address[A]. Wireless, Mobile and Multimedia Networks (ICWMMN 2008), IET 2nd International Conference[C], Beijing,2008

[3]Jinxin Zhang, Mangui Liang.The third kind of communication network.ICFCC, 2010, vol.2, no., pp.V2-764-V2-768, 21-24 May 2010.

[4] Jinxin Zhang and Mangui Liang.A Hierarchical Networking Architecture Based on New Switching Address.in ICAIT 2008

[5]梁满贵. 一种向量网络地质编码方法[P]. 中国发明专利200610089302.6,2006.11.22.

[6]梁满贵,赵阿群.一种向量包定义及其实现方法[p].中国发明专利200910238387.3,2009.12.03

[7]赵阿群,梁满贵,廉松海,郭箫铭.向量地址平均长度研究[J].高技术通讯,2011, 21(12)

[8]张若晨,梁满贵. 以太网实现向量交换机的方法[J]. 中国科技论文在线精品论文,2012,5(8):750-756.

[9]陆佳华等.零存整取NetFPGA开发指南[M].北京:北京航空航天大学出版社,2010