一种具有网络编码功能的代数交换系统及其预处理算法
【技术领域】
[0001]本发明属于通信技术领域,涉及到代数交换和网络编码等范围,具体涉及一种具有网络编码功能的代数交换系统及其预处理算法。
【背景技术】
[0002]随着互联网的发展突飞猛进,网络技术已经渗透到人类生活的各个方面,深刻影响着人们的工作和学习方式。互联网规模的扩大和用户数量急剧增加,网络复杂性日益明显。现有网络的数据流量持续迅猛增长,这给以IP为核心的互联网带来了越来越严重的技术挑战。现有的网络主要由交换设备和传输设备组成。目前以路由器为代表的交换设备的核心交换能力严重滞后于传输线卡带宽的发展,路由器已经成为制约网络进一步发展的瓶颈。同时,Internet以TCP/IP体系结构为基础,其网络层只提供尽最大努力交付的服务并不提供服务质量(QoS)承诺。因此,研宄出更高效且保证QoS的交换结构是充分利用现有传输能力和为下一代网络提供QoS保证的业务的关键。
[0003]为了提高路由器的性能并降低实现代价,国际国内提出了许多交换结构,其中又引人注目的有共享总线结构[I],共享存储(Shared Memory) [2],交叉矩阵(Crossbar) [4]等结构。
[0004]共享总线结构易于扩展也比较容易实现,但是其速率较低。共享存储结构虽然可以达到比较高的速度,但是其速率仍然受到内存速度的限制,其存储器带宽性能瓶颈使得当端口数量较多时,存储器带宽需求较大,不能满足大规模扩展应用的条件。交叉矩阵是最典型的使用最普遍的交换结构,它是一种简单的空分交换开关,将N个输入端口和N个输出端口任意的互连。当端口数N较小时,交叉矩阵是一种实现无阻塞、自路由的理想交换结构。但该结构需要的交换单元的数量是N2,硬件实现复杂度为O (N2),当N较大时,其成本变得不可接受,难以满足大规模扩展的要求。
[0005]代数交换是一种多路径自路由交换结构[3],这种结构将代数分配格理论应用于自路由模型,该结构具有完全分布式自路由、无内部缓存、线速及无抖动等优势[3]。在保证提供QoS的条件下,适合大规模扩展。然而这种结构会产生内部争用和外部阻塞,从而导致了一定的丢包率。为了降低丢包率和提高数据在传输中的吞吐率,一种有效的方法是将网络编码和代数交换结构融合,利用网络编码来恢复丢失的数据包,从而有效降低系统的丢包率。本发明就是针对基于网络编码的代数交换系统中的数据预处理算法。
[0006]引用文献:
[0007][I]Cheng T D, Franaszek P A, Georg1u C J, et al.Dynamic switch protocolson a shared medium network:U.S.Patent 5,235,592 [P].1993-8-10.11s.
[0008][2]Andrade P, Cooperman M, Sieber R ff.ATM shared memory switch withcontent addressing:!! S.Patent 5,513,134[P].1996-4-30.
[0009][3] Hui Li, Wei He, Xi CHEN, Peng Yi, Binqiang Wang, “Mult1-pathSelf-routing Switching Structure by Interconnect1n of Multistage SortingConcentrators”,IEEE CHINAC0M2007,Aug.2007,Shangha1.
[0010][4] B.Prabhakar ? N.McKeown ? R.Ahu ja ; “Mult icast scheduling forinput-queued switches”,IEEE J.Selected Areas Commun,vol.15,n0.5,p855_866,1997.
【发明内容】
[0011]一种具有网络编码功能的代数交换系统,主要包含以下模块:N个输入端口(1-1-1,...,1-1-N)、数据预处理模块(1-2)、编码模块(1-3)、N个VOQ调度模块(1-4-1,1-4-2,1-4-N)、代数交换模块(1-5)、组装模块(1-6-1,1-6-N),解码模块(1-7-1,...,1-7-N)、N 个输出端口(1-8-1,...,1-8-N);
[0012]上述各个模块相互配合完成数据包在系统中的切割、编码、交换、组装、解码等操作。
[0013]一种具有网络编码功能的代数交换系统的预处理算法,包括:从原始数据包中提取目的地址和数据进入的端口号,然后根据数据包的长度和信元长度,判断该数据包是否需要切割,若需要切割的话,计算出将要切割成的信元的数目以及需要填充的字节数,然后再把所有这些信息储存在一个信元包头(图2)中并对数据包根据前面的判断和计算结果切割成多个信元,最后把包头附加在每个切割而成的信元上发送给后面编码模块;
[0014]预处理模块产生的信元包头中包含了各种控制信息,后面的编码模块,交换结构以及解码模块都要依据此包头所包含的信息完成一系列指定的功能。
[0015]本发明在数据进入编码模块之前进行预处理,对进入的数据包添加了一个包头,并把数据包进行切割为长度固定的信元,然后再送入到调度器和编码器中,极大地加速了编码和解码的处理过程,从而提高了系统的吞吐量和通信效率。
【附图说明】
[0016]图1为实施例一的具有网络编码功能的代数交换系统示意图。
[0017]图2(a)为实施例一的数据总线和控制总线格式。
[0018]图2(b)为实施例一的包头信息定义。
【具体实施方式】
[0019]下面通过【具体实施方式】结合附图对本发明作进一步详细说明。
[0020]本实施例提出了一种在具有网络编码功能的代数交换系统中的适合代数交换的编码算法。该算法以信元为单位进行编码,把编码后的数据发送到VOQ调度模块器和代数交换结构中,最后在解码和组装模块中恢复出原来的数据包。
[0021]本实施例中所涉及的整个基于网络编码的代数交换系统的结构如图1所示。标准的IP数据包从N个输入端口 11(1-1-1,...,