一种数据的传输方法和设备的制作方法

文档序号:7567987阅读:171来源:国知局
专利名称:一种数据的传输方法和设备的制作方法
一种数据的传输方法和设备
技术 领域本发明涉及通信技术领域,尤其涉及一种数据的传输方法和设备。
背景技术
以太网络中IP (Internet Protocol,网络互连协议)的数据报分片原理具体为 在IP协议中,由于链路层存在所能承载的最大数据量(称为最大传输单元MTU)的限制,当 所发数据载荷的尺寸超过MTU的尺寸时,不能将数据一次性整体交给输出链路,因此可将 数据“分片”成两个或者更多的较小数据报,然后向输出链路上发送这些较小的数据报,这 些较小的数据报称为“片”。其中,片在通过链路层到达目的端的传输层以前,需要被重新 组装,这样接收方位于传输层的TCP (Transmission Control Protocol,传输控制协议)和 UDP (User Datagram Protocol,用户数据报协议)看到的是未分片的报文。为了便于目的端的传输层软件完成数据报重组,发送端的传输层软件需要在数据 报分片时,为每个分成的数据报(“片”)附加上原始数据报的源地址、目的地址和标识号;当 目的端从同一发送端收到一批数据报时,目的端可以检查数据报的标识号以确定哪些数据 报是某一较大尺寸数据报的分片。此外,IP协议还规定了使用一个固定标志比特来表示原始数据报的最后一个片, 并加入偏移字段来指示当前分片应位于原始数据报的哪个具体位置;当有了上述信息后, 目的端在收到最后一个分片后就可以按照正确顺序重组数据报。现有以太网络中基于IP协议栈的以太网络数据传输流程如图1所示,在底层传输 链路上,使用以太网协议中的以太帧格式进行数据交互,将上述分片后的数据从发送端(源 端)处理器经以太交换网络运送到目的端处理器。目前,另一种广泛应用的处理器间通信网络是Rapid 10 (快速输入输出)网络,该 网络中底层数据传输是基于Rapid 10包交换来完成的。相应数据传输的过程是源端器件 通过产生一个请求事务开始一次操作,该请求包被传输到交换结构,交换结构收到请求包 后,发出控制符号给源端器件进行确认,然后交换结构将请求包转发给目的器件。同样的, 目的器件收到请求包后会给予交换结构控制符号进行确认;当目的器件完成请求包携带的 操作后,产生响应包,再次经过交换结构传回源端器件。在此过程中,每两个器件之间传输都会有确认符号,以保证传输的可靠性。其中交 换结构是根据包结构中的器件ID字段进行路由的,并完成包转发功能。Rapid 10包由包 头、可选的载荷数据和CRC (Cyclic Redundancy Check,循环冗余校验)校验组成,包头的 长度由包的事务类型决定,一般为十几到二十几字节;数据载荷长度不超过256字节,以减 少传输时延,简化硬件实现,并适合在板内完成高速数据通信。因此,基于上述Rapid 10网络的特点,现有的板内通信网络正在经历从以太网络 向Rapid 10网络逐步过渡的阶段。在实现本发明的过程中,发明人发现现有技术中至少存在以下问题
在原有的以太网络中使用IP协议和以太帧收发可以完成多个处理器之间的大数据量传输,但是其至少存在如下问题(1)传输速率较低,以太控制器的理论传输速率仅为 lGbit/s,很难满足高速嵌入式系统互连的需要;(2)以太网络传输不可靠,当网络出现拥 塞的情况,交换设备会选择丢弃部分以太帧数据,造成数据丢失;(3)部分芯片厂商提供的 以太控制器与SRIO (串行Rapid 10)控制器在共用硬件资源时存在冲突,影响到SRIO控制 器的传输速率和传输模式。 进一步的,如果将以太网络替换为Rapid IO网络,则需要解决目前Rapid IO网络 传输中存在的问题。其中,Rapid IO协议主要有两种事务类型,IO模式和MSG (message, 消息)模式;IO模式对传输尺寸没有限制,但是需要发送端了解对端的物理内存分配,在发 送和接收缓冲区的维护上双方必须严格约定,当网络中的处理器数量较多且相互之间交互 量较大时,缓冲区管理复杂且浪费较大,灵活性也较差;MSG模式中,发送端无需了解对端 的实际物理内存,接收端根据邮箱和信件编号等信息将数据存放到本地规划的缓冲区,发 送和接收缓冲区的维护较为简单,但传输尺寸不能超过4K,只能用于小尺寸数据传输。因此 在大型的多处理器混合网路中,上述两种模式都有很大局限性。

发明内容
本发明实施例提供一种数据的传输方法和设备,以提高传输速率,并保证可靠传 输。为了达到上述目的,本发明实施例提供一种数据的传输方法,包括
当根据待发送数据包的尺寸信息确定对所述待发送数据包进行分片时,IP协议栈对所 述待发送数据包进行分片处理;
所述IP协议栈调用快速输入输出Rapid IO驱动发送处理后的分片数据。本发明实施例提供一种数据的传输方法,包括
当IP协议栈接收到来自呼入邮箱控制器的分片数据后,根据所述分片数据中携带的 源端IP地址对分片数据进行分类,每个IP地址对应一个分类;
所述IP协议栈将该分类的所有分片数据作为完整的数据包,并将该数据包存储到上 层协议软件提供的接收buffer中。本发明实施例提供一种数据的传输设备,包括
IP协议栈,用于当根据待发送数据包的尺寸信息确定对所述待发送数据包进行分片 时,对所述待发送数据包进行分片处理;并调用Rapid IO驱动发送处理后的分片数据; Rapid IO驱动,用于发送处理后的分片数据。本发明实施例提供一种数据的传输设备,包括
IP协议栈,用于当接收到来自呼入邮箱控制器的分片数据后,根据所述分片数据中携 带的源端IP地址对分片数据进行分类,每个IP地址对应一个分类;并将该分类的所有分片 数据作为完整的数据包,以及将该数据包存储到上层协议软件提供的接收buffer中。与现有技术相比,本发明至少具有以下优点
通过IP协议栈对待发送数据包进行分片,并通过Rapid IO驱动发送处理后的分片数 据,可提高传输速率;而且Rapid IO的消息传输过程为有响应的传输,属于可靠传输,如果 发生链路拥塞,可以通过重传保证数据最终能够到达对端。


为了更清楚地说明本发明的技术方案,下面将对实施例描述中所需要使用的附图 作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普 通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是现有技术中以太网络中基于IP协议栈的以太网络数据传输流程示意图; 图2是本发明实施例一中基于IP协议栈的Rapid IO网络数据传输过程示意图3是本发明实施例一提供的一种数据的传输方法流程示意图; 图4是本发明实施例一中初始化操作的示意图; 图5是本发明实施例一中数据发送阶段流程示意图; 图6是本发明实施例一中数据接收阶段流程示意图。
具体实施例方式Rapid IO技术是近年来发展迅速的一种新型的高速数据互联总线,尤其是串行 Rapid IO (SRIO)传输方式,由于仅使用很少的连线则可以达到很高的传输速率,该技术目 前正被广泛用于通信基础设施的芯片间,板间高速互联。其中,在最新的V2. 1协议中,SRIO 传输速率已经可以达到20Gbit/s。本发明实施例中,结合以太网络中IP协议数据报分片和Rapid IO高速传输的特 点,提出了一种数据的传输方法和设备,即基于IP协议的Rapid IO链路通信设计方案,可 在保持较高传输速率的同时,以较小的内存开销完成多处理器网络中的大尺寸数据块传 输,并且可平滑完成上层软件以太网协议到Rapid IO协议的转换,以Rapid IO协议的MSG 数据包承载IP协议数据,并可取代千兆以太链路,达到节约成本的目的。下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显 然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的 实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都 属于本发明保护的范围。实施例一
本发明实施例一提供一种数据的传输方法,以下结合图2所示的基于IP协议栈的 Rapid IO网络数据传输过程对该方法进行详细说明。在图2中,包括源端处理器(发送端 的处理器)和目的端处理器(接收端的处理器),源端处理器与目的端处理器之间通过Rapid IO交换网络进行通信,各处理器内部从上层到下层依次包括上层协议软件、IP协议栈、 Rapid IO驱动、呼出/呼入邮箱控制器(源端为呼出、目的端为呼入)。基于上述架构,如图3所示,该数据的传输方法包括以下步骤
步骤301,对处理器(源端处理器和目的端处理器)的相关信息进行初始化操作。如图 4所示,该初始化操作包括
步骤3011,IP协议栈初始化。 具体的,初始化IP协议栈基本参数和发送/接收buffer (缓冲器),对源端处理器 为初始化发送buffer,对目的端处理器为初始化接收buffer。其中,IP协议栈负责维护的 buffer是一个用链表管理的消息池,其数量远远多于Rapid IO收发队列上描述符所指向 的buffer数,IP协议栈每次从消息池中取出一个buffer,挂入到收发队列当前处理的描述符上,而在使用后可将该buffer归还给消息池,等待下一次使用。步骤3012,初始化 Rapid IO 的器件 ID 和 MAC (Media Access Control,介质访问 控制)地址的映射关系。其中,Rapid IO的器件ID为8位或16位,MAC地址通常用48位来表示,因此 可将Rapid IO对应到MAC地址的低8位或低16位,而在高40位或32位使用指定值(如 ff:00:00:00)来表示当前网络为Rapid IO网络。以Rapid IO器件ID为Oxl为例,其对 应的 MAC 地址为 ff: 00:00:00:00:01。步骤3013,初始化Rapid IO控制器硬件,其包括但不限于配置端口传输速率和 传输模式、设置器件ID以及清除错误状态等。步骤3014,对源端处理器初始化呼出邮箱控制器的硬件,对目的端处理器初始化 呼入邮箱控制器的硬件。其中,初始化呼出邮箱控制器的硬件包括但不限于创建呼出邮箱 发送队列的描述符,用于连接发送队列;初始化呼入邮箱控制器的硬件包括但不限于创 建呼入邮箱接收队列。步骤3015,Rapid IO驱动获取IP协议栈的发送和接收回调函数指针,用于在使用 前获取IP协议栈提供的buffer和使用后归还这些buffer。其中,上述步骤3011-步骤3015之间的顺序关系并不局限于此,可根据实际需要 进行顺序调整。步骤302,源端处理器将数据发送给目的端处理器。如图5所示的数据发送阶段流 程示意图,在源端处理器中,该发送过程包括
步骤(1)、上层协议软件调用IP协议栈发送数据,将待发送数据包的信息发送给IP协 议栈(如IP协议栈发送函数);其中,该待发送数据包的信息包括但不限于待发送数据包的 尺寸信息和目的IP地址信息;实际应用中,还可以包括待发送数据包的首地址、Socket编 号、端口号等信息。步骤(2)、当根据待发送数据包的尺寸信息确定对待发送数据包进行分片时,IP 协议栈对待发送数据包进行分片处理(IP协议栈发送函数根据数据包的尺寸信息进行分 片处理);从预先分配的消息池中取出对应各分片数据的buffer来承载各分片数据,并在各 分片数据上添加IP协议头;该IP协议头中包含根据目的IP地址信息确定的目的MAC地址 信息和分片长度信息。步骤(3)、IP协议栈调用Rapid IO驱动发送处理后的分片数据。其中,IP协议栈 发送函数可调用Rapid IO驱动发送函数,发送(如逐一发送)步骤(2)中产生的分片数据。具体的,Rapid IO驱动(Rapid IO的发送函数)可根据IP协议头中的MAC地址信 息计算目的端处理器的Rapid IO器件ID ;并根据IP协议头中的分片长度信息计算实际发 送尺寸信息;以及根据目的端处理器的Rapid IO器件ID和实际发送尺寸信息将处理后的 分片数据发送给目的端处理器。本发明实施例中,Rapid IO驱动将目的端处理器的Rapid IO器件ID以及实际 发送尺寸信息填入呼出邮箱发送队列的描述符中,并令描述符指向承载分片数据的发送 buffer ;之后,将呼出邮箱控制器的入队指针指向该描述符,并启动呼出邮箱控制器发送处 理后的分片数据。实际应用中,由于Rapid IO的MSG事务对载荷尺寸存在限制,则发送尺寸需要满足2的幂次,因此需要根据分片数据的IP协议头中携带的当前分片数据总长度计算实际发 送尺寸;并将对端Rapid IO器件ID和实际MSG尺寸填入呼出邮箱发送队列的描述符中,然 后令描述符指向承载分片数据的发送buffer,即将该分片数据放入Rapid IO呼出邮箱的 发送队列中,将呼出邮箱控制器的入队指针指向该描述符,启动呼出邮箱控制器发送数据。步骤(4 )、当呼出邮箱控制器将数据发送完成后,将产生完成中断。在中断服务程 序中,软件通过查询硬件发送队列的出队指针来判断已经完成发送的消息,并将这些消息 对应的buffer调用IP协议栈的回调函数归还给IP协议栈维护的消息池。步骤303,目的端处理器接收来自源端处理器的数据。如图6所示的数据接收阶段 流程示意图,在目的端处理器中,该接收过程包括
步骤(1)、Rapid IO的呼入邮箱控制器接收到分片数据后,调用IP协议栈提供的接收 buffer信息将接收到的分片数据存储到IP协议栈的接收buffer中。其中,当收到分片数 据后,将产生呼入邮箱接收中断,在中断服务程序中,软件通过查询硬件接收队列的出队指 针来判断需要处理的消息。具体的,在收到分片数据后,软件需要从分片数据的IP协议头中获得当前分片数 据的总长度,并调用IP协议栈提供的获取接收buffer的回调函数,将收到的分片数据整体 拷贝到协议栈的接收buffer中,由IP协议栈负责对收到的分片数据进行重组。步骤(2)、IP协议栈接收到来自呼入邮箱控制器的分片数据后,根据分片数据中 携带的源端IP地址对分片数据进行分类,每个IP地址对应一个分类。

具体的,当收到分片数据后,根据源端IP地址对分片数据进行分类,每一种IP地 址对应一条链表,如果当前接收到的分片数据的源端IP地址是第一次接收到,IP协议栈建 立一条新的链表,并以该分片数据作为链表的队首元素;此后将接收到的对应该源端IP地 址的分片数据顺序放在该链表的队尾,一直到接收到对应该源端IP地址且标识为分片结 束的分片数据;其中一个链表对应一个分类。之后,将这条链表上所有的分片数据作为一个完整IP数据,放入上层协议软件提 供的接收buffer中,通知上层协议软件处理,并将该链表从协议栈维护的接收链表组中删除。步骤(3)、上层协议软件收到IP协议栈的通知后,上层协议软件使用IP协议栈提 供的信息(函数)从接收buffer中取出该数据包进行相应处理。综上所述,本发明实施例中,利用Rapid IO协议中的消息类传输替代以太网协议 中的以太帧进行底层数据传输,在网络层使用IP协议栈进行数据包分片与重组,管理收发 缓冲区。具体的,使用IP协议栈与上层协议软件接口,底层驱动由以太网络平滑过渡到 Rapid IO网络;IP协议栈以消息池的形式负责管理Rapid IO驱动发送和接收缓冲区,并通 过回调函数的形式将缓冲区交给Rapid IO驱动使用,使用后驱动使用回调函数将缓冲区回 收给协议栈;将IP包中的MAC地址映射为Rapid IO的器件ID,IP协议栈的发送函数根据 目的MAC选择采用Rapid IO驱动发送分片数据,并且确定目的器件ID和目的邮箱编号;利 用IP包中的分片数据长度计算呼出邮箱实际发送的消息长度,并在呼入邮箱中断中按照 分片长度将数据从Rapid IO消息接收buffer拷贝到IP协议栈的接收buffer ;IP协议栈 收到数据后根据分片数据中的源端IP地址字段对数据包分类,并根据分片数据中的分片长度和结束标识等字段重新组包,每当完成一组分片包的重组,就将完成的IP数据发送给 层协议软件。通过采用本发明实施例提供的技术方案,具有以下优点(1)传输速率较高,分片 数据在Rapid IO交换网络的传输速率可以达到20Gbit/s,远远超过目前千兆以太网络的 lGbit/s。(2)Rapid IO的消息传输为有响应传输,属于可靠传输,如果发生链路拥塞,可以 通过重传保证数据最终能够到达对端。(3)使用IP协议栈与上层协议软件接口,可以做到 由以太网络平滑过渡到Rapid IO网络,不改变现有以太网络的上层接口。(4)利用IP协议 栈管理接收/发送buffer,可以解决目前Rapid IO网络使用中存在的IO模式缓冲区管理 复杂且浪费较大以及MSG模式传输尺寸受限等问题。实施例二基于与上述方法同样的发明构思,本发明实施例中还提供了一种数据的传输设备,该 设备包括
IP协议栈,用于当根据待发送数据包的尺寸信息确定对所述待发送数据包进行分片 时,对所述待发送数据包进行分片处理;并调用Rapid IO驱动发送处理后的分片数据; Rapid IO驱动,用于发送处理后的分片数据。本发明实施例中,该设备还包括
上层协议软件,用于将待发送数据包的信息发送给所述IP协议栈;其中,所述待发送 数据包的信息包括待发送数据包的尺寸信息和目的IP地址信息。本发明实施例中,所述IP协议栈,具体用于从预先分配的消息池中取出对应各分 片数据的buffer来承载各分片数据,并在各分片数据上添加IP协议头;所述IP协议头中 包含根据目的IP地址信息确定的目的MAC地址信息和分片长度信息。本发明实施例中,所述处理后的分片数据中携带有包含目的MAC地址信息和分片 长度信息的IP协议头;
所述Rapid IO驱动,具体用于根据所述MAC地址信息计算目的端处理器的Rapid IO 器件ID ;并根据所述分片长度信息计算实际发送尺寸信息;
根据所述目的端处理器的Rapid IO器件ID以及所述实际发送尺寸信息将处理后的分 片数据发送给目的端处理器。本发明实施例中,所述Rapid IO驱动,具体用于将所述目的端处理器的Rapid IO 器件ID以及所述实际发送尺寸信息填入呼出邮箱发送队列的描述符中,并令描述符指向 承载分片数据的发送buffer;
将呼出邮箱控制器的入队指针指向该描述符,并启动所述呼出邮箱控制器发送处理后 的分片数据;
本发明实施例中,该设备还包括呼出邮箱控制器,用于发送处理后的分片数据。本发明实施例中,该设备还包括初始化模块,用于执行以下操作之一或任意组 合
初始化IP协议栈基本参数和发送buffer ; 初始化Rapid IO器件ID和MAC地址的映射关系; 初始化Rapid IO控制器的硬件和呼出邮箱控制器的硬件。其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。另外,上述IP协议栈、Rapid IO驱动、上 层协议软件、呼出邮箱控制器还可通过相应的功能模块来实现。实施 例三
基于与上述方法同样的发明构思,本发明实施例中还提供了一种数据的传输设备,该 设备包括
IP协议栈,用于当接收到来自呼入邮箱控制器的分片数据后,根据所述分片数据中携 带的源端IP地址对分片数据进行分类,每个IP地址对应一个分类;并将该分类的所有分片 数据作为完整的数据包,以及将该数据包存储到上层协议软件提供的接收buffer中。本发明实施例中,该设备还包括
呼入邮箱控制器,用于当接收到分片数据后,调用IP协议栈提供的接收buffer信息将 接收到的分片数据存储到IP协议栈的接收buffer中。本发明实施例中,所述IP协议栈,具体用于如果当前接收到的分片数据的源端IP 地址是第一次接收到,建立一条新的链表,并以所述分片数据作为链表的队首元素;之后将 接收到的对应该源端IP地址的分片数据顺序放在该链表的队尾,一直到接收到对应该源 端IP地址且标识为分片结束的分片数据;其中一个链表对应一个分类。本发明实施例中,该设备还包括
上层协议软件,用于使用所述IP协议栈提供的信息从接收buffer中取出该数据包进 行相应处理。本发明实施例中,该设备还包括初始化模块,用于执行以下操作之一或任意组 合
初始化IP协议栈基本参数和接收buffer ; 初始化Rapid IO器件ID和MAC地址的映射关系; 初始化Rapid IO控制器的硬件和呼入邮箱控制器的硬件。其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合 并为一个模块,也可以进一步拆分成多个子模块。另外,上述IP协议栈、上层协议软件、呼 入邮箱控制器还可通过相应的功能模块来实现。需要说明的是,上述实施例二和实施例三的设备分别为数据的发送端和数据的接 收端;二者均可通过处理器来实现,实施例二的设备为源端处理器,实施例三的设备为目的 端处理器。在实际应用中,发送端和接收端是相对的,当实施例三的设备需要向实施例二的 设备发送数据时,则实施例三的设备为源端处理器,实施例二的设备为目的端处理器。因 此,对各处理器来说,可具有源端处理器的功能和目的端处理器的功能。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助 软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更 佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的 部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若 干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发 明各个实施例所述的方法。本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流 程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分 布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上 述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领 域的技术人员能思之的变化都应落入本发明的保护范围。
权利要求
1.一种数据的传输方法,其特征在于,包括当根据待发送数据包的尺寸信息确定对所述待发送数据包进行分片时,IP协议栈对所 述待发送数据包进行分片处理;所述IP协议栈调用快速输入输出Rapid IO驱动发送处理后的分片数据。
2.如权利要求1所述的方法,其特征在于,所述根据待发送数据包的尺寸信息确定对 所述待发送数据包进行分片,之前还包括上层协议软件将待发送数据包的信息发送给所述IP协议栈;其中,所述待发送数据包 的信息包括待发送数据包的尺寸信息和目的IP地址信息。
3.如权利要求1所述的方法,其特征在于,所述IP协议栈对所述待发送数据包进行分 片处理,包括所述IP协议栈从预先分配的消息池中取出对应各分片数据的buffer来承载各分片数 据,并在各分片数据上添加IP协议头;所述IP协议头中包含根据目的IP地址信息确定的 目的MAC地址信息和分片长度信息。
4.如权利要求1所述的方法,其特征在于,所述处理后的分片数据中携带有包含目的 MAC地址信息和分片长度信息的IP协议头;所述IP协议栈调用快速输入输出Rapid IO驱动发送处理后的分片数据,包括 所述Rapid IO驱动根据所述MAC地址信息计算目的端处理器的Rapid IO器件ID ;并 根据所述分片长度信息计算实际发送尺寸信息;所述Rapid IO驱动根据所述目的端处理器的Rapid IO器件ID以及所述实际发送尺 寸信息将处理后的分片数据发送给目的端处理器。
5.如权利要求4所述的方法,其特征在于,所述RapidIO驱动根据所述目的端处理器 的Rapid IO器件ID以及所述实际发送尺寸信息将处理后的分片数据发送给目的端处理 器,包括所述Rapid IO驱动将所述目的端处理器的Rapid IO器件ID以及所述实际发送尺寸 信息填入呼出邮箱发送队列的描述符中,并令描述符指向承载分片数据的发送buffer ;所述Rapid IO驱动将呼出邮箱控制器的入队指针指向该描述符,并启动所述呼出邮箱 控制器发送处理后的分片数据。
6.如权利要求1-5任一项所述的方法,其特征在于,所述根据待发送数据包的尺寸信 息确定对所述待发送数据包进行分片,之前还包括以下之一或任意组合初始化IP协议栈基本参数和发送buffer ; 初始化Rapid IO器件ID和MAC地址的映射关系; 初始化Rapid IO控制器的硬件和呼出邮箱控制器的硬件。
7.一种数据的传输方法,其特征在于,包括当IP协议栈接收到来自呼入邮箱控制器的分片数据后,根据所述分片数据中携带的 源端IP地址对分片数据进行分类,每个IP地址对应一个分类;所述IP协议栈将该分类的所有分片数据作为完整的数据包,并将该数据包存储到上 层协议软件提供的接收buffer中。
8.如权利要求7所述的方法,其特征在于,所述IP协议栈接收到来自呼入邮箱控制器 的分片数据,包括当呼入邮箱控制器接收到分片数据后,调用IP协议栈提供的接收buffer信息将接收 到的分片数据存储到IP协议栈的接收buffer中。
9.如权利要求7所述的方法,其特征在于,根据所述分片数据中携带的源端IP地址对 分片数据进行分类,每个IP地址对应一个分类,包括如果当前接收到的分片数据的源端IP地址是第一次接收到,所述IP协议栈建立一条 新的链表,并以所述分片数据作为链表的队首元素;之后将接收到的对应该源端IP地址的 分片数据顺序放在该链表的队尾,一直到接收到对应该源端IP地址且标识为分片结束的 分片数据;其中一个链表对应一个分类。
10.如权利要求7所述的方法,其特征在于,所述将该数据包存储到上层协议软件提供 的接收buffer中,之后还包括所述上层协议软件使用所述IP协议栈提供的信息从接收buffer中取出该数据包进行 相应处理。
11.如权利要求7-10任一项所述的方法,其特征在于,所述IP协议栈接收到来自呼入 邮箱控制器的分片数据,之前还包括以下之一或任意组合初始化IP协议栈基本参数和接收buffer ;初始化Rapid IO器件ID和MAC地址的映射关系;初始化Rapid IO控制器的硬件和呼入邮箱控制器的硬件。
12.—种数据的传输设备,其特征在于,包括IP协议栈,用于当根据待发送数据包的尺寸信息确定对所述待发送数据包进行分片 时,对所述待发送数据包进行分片处理;并调用Rapid IO驱动发送处理后的分片数据;Rapid IO驱动,用于发送处理后的分片数据。
13.如权利要求12所述的设备,其特征在于,还包括上层协议软件,用于将待发送数据包的信息发送给所述IP协议栈;其中,所述待发送 数据包的信息包括待发送数据包的尺寸信息和目的IP地址信息。
14.如权利要求12所述的设备,其特征在于,所述IP协议栈,具体用于从预先分配的消息池中取出对应各分片数据的buffer来承 载各分片数据,并在各分片数据上添加IP协议头;所述IP协议头中包含根据目的IP地址 信息确定的目的MAC地址信息和分片长度信息。
15.如权利要求12所述的设备,其特征在于,所述处理后的分片数据中携带有包含目 的MAC地址信息和分片长度信息的IP协议头;所述Rapid IO驱动,具体用于根据所述MAC地址信息计算目的端处理器的Rapid IO 器件ID ;并根据所述分片长度信息计算实际发送尺寸信息;根据所述目的端处理器的Rapid IO器件ID以及所述实际发送尺寸信息将处理后的分 片数据发送给目的端处理器。
16.如权利要求15所述的设备,其特征在于,所述Rapid IO驱动,具体用于将所述目的端处理器的Rapid IO器件ID以及所述实 际发送尺寸信息填入呼出邮箱发送队列的描述符中,并令描述符指向承载分片数据的发送 buffer ;将呼出邮箱控制器的入队指针指向该描述符,并启动所述呼出邮箱控制器发送处理后的分片数据;该设备还包括呼出邮箱控制器,用于发送处理后的分片数据。
17.如权利要求12-16任一项所述的设备,其特征在于,还包括 初始化模块,用于执行以下操作之一或任意组合初始化IP协议栈基本参数和发送buffer ; 初始化Rapid IO器件ID和MAC地址的映射关系; 初始化Rapid IO控制器的硬件和呼出邮箱控制器的硬件。
18.一种数据的传输设备,其特征在于,包括IP协议栈,用于当接收到来自呼入邮箱控制器的分片数据后,根据所述分片数据中携 带的源端IP地址对分片数据进行分类,每个IP地址对应一个分类;并将该分类的所有分片 数据作为完整的数据包,以及将该数据包存储到上层协议软件提供的接收buffer中。
19.如权利要求18所述的设备,其特征在于,还包括呼入邮箱控制器,用于当接收到分片数据后,调用IP协议栈提供的接收buffer信息将 接收到的分片数据存储到IP协议栈的接收buffer中。
20.如权利要求18所述的设备,其特征在于,所述IP协议栈,具体用于如果当前接收到的分片数据的源端IP地址是第一次接收到, 建立一条新的链表,并以所述分片数据作为链表的队首元素;之后将接收到的对应该源端 IP地址的分片数据顺序放在该链表的队尾,一直到接收到对应该源端IP地址且标识为分 片结束的分片数据;其中一个链表对应一个分类。
21.如权利要求18所述的设备,其特征在于,还包括上层协议软件,用于使用所述IP协议栈提供的信息从接收buffer中取出该数据包进 行相应处理。
22.如权利要求18-21任一项所述的设备,其特征在于,还包括 初始化模块,用于执行以下操作之一或任意组合初始化IP协议栈基本参数和接收buffer ; 初始化Rapid IO器件ID和MAC地址的映射关系; 初始化Rapid IO控制器的硬件和呼入邮箱控制器的硬件。
全文摘要
本发明公开了一种数据的传输方法和设备,该方法包括当根据待发送数据包的尺寸信息确定对所述待发送数据包进行分片时,IP协议栈对所述待发送数据包进行分片处理;所述IP协议栈调用快速输入输出RapidIO驱动发送处理后的分片数据。本发明实施例中,通过IP协议栈对待发送数据包进行分片,并通过RapidIO驱动发送处理后的分片数据,可提高传输速率;而且RapidIO的消息传输过程为有响应的传输,属于可靠传输,如果发生链路拥塞,可以通过重传保证数据最终能够到达对端。
文档编号H04L1/00GK102035751SQ201110022889
公开日2011年4月27日 申请日期2011年1月20日 优先权日2011年1月20日
发明者李坤, 王林, 马明礼 申请人:大唐移动通信设备有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1