一种堆叠交换机报文传输方法、系统及堆叠交换的制造方法

文档序号:7823184阅读:543来源:国知局
一种堆叠交换机报文传输方法、系统及堆叠交换的制造方法
【专利摘要】本发明提供一种堆叠交换机报文传输方法、系统及堆叠交换机。所述堆叠交换机报文传输方法包括:分配一个连续的内存地址空间,并使得所述内存地址空间为用户层与系统层共用存取;发送报文时,用户层将所述报文数据拷贝到所述内存地址空间中,系统层所述报文在所述内存地址空间的位置信息并通知网卡硬件根据所述报文在所述内存地址空间的位置信息发送报文。本发明的技术方案可以解决VxWorks下堆叠交换机系统大量传输长度为1518的报文时网卡收发过程中需要额外拷贝数据导致收发数据包效率低、消耗宝贵的CPU资源的问题。
【专利说明】一种堆叠交换机报文传输方法、系统及堆叠交换机

【技术领域】
[0001] 本发明涉及一种网络【技术领域】,特别是涉及一种堆叠交换机报文传输方法、系统 及堆叠交换机。

【背景技术】
[0002] 随着社会的发展,传统盒式交换机很能满足人们对网络带宽需求。堆叠交换机由 于能提供更大的带宽,更多的端口,管理更方便,愈来愈流行。堆叠交换机是物理上由多个 独立的交换系统构成,在通过堆叠协议的控制下,逻辑上看起来是一台交换机。堆叠协议的 正常运行离不开各种控制报文,控制报文最大长度为1518,各种控制报文通过网卡传输,因 此,网卡报文的高效传输对堆叠系统意义重大。
[0003] VxWorks是美国WindRiverSystem公司(简称风河公司,即WRS公司)推出的一 个实时操作系统。尽管VxWorks下面所有线程都运行在同一个地址空间,没有linux下面 内核空间和用户进程空间的概念,但在VxWorks系统下,网络模块也采用和linux下网络模 块类似的分层思想。应用层发送数据时先将数据放在用户缓冲中,系统Mux层会复制用户 缓冲到DMA缓冲,最后通过写网卡硬件寄存器启动DMA传输将数据发送出去。当网卡收到 数据包时会产生中断,中断处理程序会将数据放入DMA缓冲中,系统Mux层又将数据复制到 用户缓冲中并通知用户层有接收到数据。通常报文收发的具体实现包括:一、应用层发包。 应用层使用接口User_buf_all〇C先从用户缓存中申请一段内存,填充好欲发送数据,然后 调用sys_tx接口发送数据。sys_tx调用时会先用Dma_buf_alloc在DMA缓存中申请一段 可DMA的内存,然后将位于用户缓存的发送数据拷贝到位于DMAC缓存中的可DMA内存,最 后通知网卡硬件启动DMA传输将数据发送出去。发送完成后,系统会调用Dma_buf_free释 放可DMA内存到DMA缓存中,同时通知应用层调用User_buf_free释放内存到用户缓存中。 二、应用层收包。网卡硬件接收到数据时会将数据通过DMA传输到事先Dma_buf_alloc申请 的DMA缓存中,同时通知应用层接收数据。应用层会用Dma_buf_alloc申请用户缓存。系 统Mux层调用sys_rX将DMA缓存中的数据复制到用户缓存中,复制完成后调用Dma_buf_ free释放缓存到DMA缓存中。最后,应用层处理完数据会调用User_buf_free释放缓存到 用户缓存中。
[0004] 鉴于此,如何进一步提高堆叠交换机中数据报文的收发效率成为了本领域技术人 员亟待解决的问题。


【发明内容】

[0005] 鉴于以上所述现有技术的缺点,本发明的目的在于提供一种堆叠交换机报文传输 方法、系统及堆叠交换机,用于解决现有技术中堆叠交换机中数据报文的收发效率低的问 题。
[0006] 为实现上述目的及其他相关目的,本发明提供一种堆叠交换机报文传输方法,所 述堆叠交换机报文传输方法包括:分配一个连续的内存地址空间,并使得所述内存地址空 间为用户层与系统层共用存取;发送报文时,用户层将所述报文数据拷贝到所述内存地址 空间中,系统层获取所述报文在所述内存地址空间的位置信息并通知网卡硬件根据所述报 文在所述内存地址空间的位置信息发送报文。
[0007] 可选地,所述用户层与系统层通过一个数据结构共用存取所述内存地址空间;所 述数据结构包括为系统层指示报文数据位置信息的成员以及为用户层指示报文数据位置 信息的成员,通过所述为系统层指示报文数据位置信息的成员以及为用户层指示报文数据 位置信息的成员在用户层与系统层传递报文位置信息。
[0008] 可选地,所述内存地址空间长度为2048字节。
[0009] -种堆叠交换机报文传输方法,所述堆叠交换机报文传输方法包括:分配一个连 续的内存地址空间,并使得所述内存地址空间为用户层与系统层共用存取;接收报文时,系 统层将所述报文数据接收到所述内存地址空间,用户层获取所接收报文在所述内存地址空 间中的位置信息并根据所述位置信息在所述内存地址空间中读取报文数据。
[0010] 可选地,所述用户层与系统层通过一个数据结构共用存取所述内存地址空间;所 述数据结构包括为系统层指示报文数据位置信息的成员以及为用户层指示报文数据位置 信息的成员,通过所述为系统层指示报文数据位置信息的成员以及为用户层指示报文数据 位置信息的成员在用户层与系统层传递报文位置信息。
[0011] 可选地,所述内存地址空间长度为2048字节。
[0012] 本发明还提供一种堆叠交换机报文传输系统,所述堆叠交换机报文传输系统包 括:共用内存分配模块,用于分配一个连续的内存地址空间,并使得所述内存地址空间为用 户层与系统层共用存取;发送报文模块,与所述共用内存分配模块相连,用于获取所述共用 内存分配模块的内存地址空间,在发送报文时,用户层将所述报文数据拷贝到所述内存地 址空间中,系统层所述报文在所述内存地址空间的位置信息并通知网卡硬件根据所述报文 在所述内存地址空间的位置信息发送报文。
[0013] 可选地,所述用户层与系统层通过一个数据结构共用存取所述内存地址空间;所 述数据结构包括为系统层指示报文数据位置信息的成员以及为用户层指示报文数据位置 信息的成员,通过所述为系统层指示报文数据位置信息的成员以及为用户层指示报文数据 位置信息的成员在用户层与系统层传递报文位置信息。
[0014] 可选地,所述内存地址空间长度为2048字节。
[0015] -种堆叠交换机报文传输系统,所述堆叠交换机报文传输系统包括:共用内存分 配模块,用于分配一个连续的内存地址空间,并使得所述内存地址空间为用户层与系统层 共用存取;接收报文模块,与所述共用内存分配模块相连,用于获取所述共用内存分配模块 的内存地址空间,接收报文时,系统层将所述报文数据接收到所述内存地址空间,用户层获 取所接收报文在所述内存地址空间中的位置信息并根据所述位置信息在所述内存地址空 间中读取报文数据。
[0016] 可选地,所述用户层与系统层通过一个数据结构共用存取所述内存地址空间;所 述数据结构包括为系统层指示报文数据位置信息的成员以及为用户层指示报文数据位置 信息的成员,通过所述为系统层指示报文数据位置信息的成员以及为用户层指示报文数据 位置信息的成员在用户层与系统层传递报文位置信息。
[0017] 可选地,所述内存地址空间长度为2048字节。
[0018] 一种堆叠交换机,所述堆叠交换机包括以上所述的堆叠交换机报文传输系统。
[0019] 可选地,所述堆叠交换机采用VxWorks操作系统。
[0020] 如上所述,本发明的一种堆叠交换机报文传输方法、系统及堆叠交换机,具有以下 有益效果:确保基于VxWorks堆叠交换机网卡报文收发过程中不需要额外进行数据拷贝。 具体地,当应用层发送数据时,数据不需要从用户缓存拷贝数据到DMA缓存,发包效率高, 节省CPU资源。当网卡收到数据时,数据也不需要从DMA缓存拷贝到用户缓存,收包效率高, 节省CPU资源。解决VxWorks下堆叠交换机系统大量传输长度为1518的报文时网卡收发 过程中需要额外拷贝数据导致收发数据包效率低、消耗宝贵的CPU资源的问题。

【专利附图】

【附图说明】
[0021] 图1显示为本发明的一种堆叠交换机报文传输方法的一实施例的流程示意图。
[0022] 图2显示为本发明的一种堆叠交换机报文传输方法的一实施例的流程示意图。
[0023] 图3显示为本发明的一种堆叠交换机报文传输方法的一实施例的流程示意图。
[0024] 图4显不为本发明的一种堆叠交换机报文传输系统的一实施例的模块不意图。
[0025] 图5显不为本发明的一种堆叠交换机报文传输系统的一实施例的模块不意图。
[0026] 图6显不为本发明的一种堆叠交换机报文传输系统的一实施例的模块不意图。
[0027] 元件标号说明
[0028] 1堆叠交换机报文传输系统
[0029] 11共用内存分配模块
[0030] 12发送报文模块
[0031] 13接收报文模块
[0032]S1 ?S3 步骤

【具体实施方式】
[0033] 以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书 所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实 施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离 本发明的精神下进行各种修饰或改变。
[0034] 需要说明的是,本实施例中所提供的图示仅以示意方式说明本发明的基本构想, 遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘 制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可 能更为复杂。
[0035] 本发明提供一种堆叠交换机报文传输方法。在一个实施例中,如图1所不,所述堆 叠交换机报文传输方法包括:
[0036] 步骤S1,分配一个连续的内存地址空间,并使得所述内存地址空间为用户层与系 统层共用存取。在一个实施例中,所述用户层与系统层通过一个数据结构共用存取所述内 存地址空间。具体地,所述数据结构包括为系统层指示报文数据位置信息的成员以及为用 户层指示报文数据位置信息的成员,通过所述为系统层指示报文数据位置信息的成员以及 为用户层指示报文数据位置信息的成员在用户层与系统层传递报文位置信息。在一个实施 例中,所述内存地址空间长度为2048字节。
[0037] 在一个实施例中,所述数据结构包括以下数据结构:

【权利要求】
1. 一种堆叠交换机报文传输方法,其特征在于,所述堆叠交换机报文传输方法包括: 分配一个连续的内存地址空间,并使得所述内存地址空间为用户层与系统层共用存 取; 发送报文时,用户层将所述报文数据拷贝到所述内存地址空间中,系统层获取所述报 文在所述内存地址空间的位置信息并通知网卡硬件根据所述报文在所述内存地址空间的 位置信息发送报文。
2. 根据权利要求1所述的堆叠交换机报文传输方法,其特征在于:所述用户层与系统 层通过一个数据结构共用存取所述内存地址空间;所述数据结构包括为系统层指示报文数 据位置信息的成员W及为用户层指示报文数据位置信息的成员,通过所述为系统层指示报 文数据位置信息的成员W及为用户层指示报文数据位置信息的成员在用户层与系统层传 递报文位置信息。
3. -种堆叠交换机报文传输方法,其特征在于;所述堆叠交换机报文传输方法包括: 分配一个连续的内存地址空间,并使得所述内存地址空间为用户层与系统层共用存 取; 接收报文时,系统层将所述报文数据接收到所述内存地址空间,用户层获取所接收报 文在所述内存地址空间中的位置信息并根据所述位置信息在所述内存地址空间中读取报 文数据。
4. 根据权利要求3所述的堆叠交换机报文传输方法,其特征在于:所述用户层与系统 层通过一个数据结构共用存取所述内存地址空间;所述数据结构包括为系统层指示报文数 据位置信息的成员W及为用户层指示报文数据位置信息的成员,通过所述为系统层指示报 文数据位置信息的成员W及为用户层指示报文数据位置信息的成员在用户层与系统层传 递报文位置信息。
5. -种堆叠交换机报文传输系统,其特征在于;所述堆叠交换机报文传输系统包括: 共用内存分配模块,用于分配一个连续的内存地址空间,并使得所述内存地址空间为 用户层与系统层共用存取; 发送报文模块,与所述共用内存分配模块相连,用于获取所述共用内存分配模块的内 存地址空间,在发送报文时,用户层将所述报文数据拷贝到所述内存地址空间中,系统层获 取所述报文在所述内存地址空间的位置信息并通知网卡硬件根据所述报文在所述内存地 址空间的位置信息发送报文。
6. 根据权利要求5所述的堆叠交换机报文传输系统,其特征在于:所述用户层与系统 层通过一个数据结构共用存取所述内存地址空间;所述数据结构包括为系统层指示报文数 据位置信息的成员W及为用户层指示报文数据位置信息的成员,通过所述为系统层指示报 文数据位置信息的成员W及为用户层指示报文数据位置信息的成员在用户层与系统层传 递报文位置信息。
7. -种堆叠交换机报文传输系统,其特征在于;所述堆叠交换机报文传输系统包括: 共用内存分配模块,用于分配一个连续的内存地址空间,并使得所述内存地址空间为 用户层与系统层共用存取; 接收报文模块,与所述共用内存分配模块相连,用于获取所述共用内存分配模块的内 存地址空间,接收报文时,系统层将所述报文数据接收到所述内存地址空间,用户层获取所 接收报文在所述内存地址空间中的位置信息并根据所述位置信息在所述内存地址空间中 读取报文数据。
8. 根据权利要求7所述的堆叠交换机报文传输系统,其特征在于:所述用户层与系统 层通过一个数据结构共用存取所述内存地址空间;所述数据结构包括为系统层指示报文数 据位置信息的成员W及为用户层指示报文数据位置信息的成员,通过所述为系统层指示报 文数据位置信息的成员W及为用户层指示报文数据位置信息的成员在用户层与系统层传 递报文位置信息。
9. 一种堆叠交换机,其特征在于:所述堆叠交换机包括如权利要求5或6所述的堆叠 交换机报文传输系统或/和如权利要求7或8所述的堆叠交换机报文传输系统。
10. 根据权利要求9所述的堆叠交换机,其特征在于;所述堆叠交换机采用VxWorks操 作系统。
【文档编号】H04L12/931GK104468417SQ201410783579
【公开日】2015年3月25日 申请日期:2014年12月16日 优先权日:2014年12月16日
【发明者】易开东 申请人:上海斐讯数据通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1