一种基于通道的异构网络数据发送方法和接收方法与流程

文档序号:14843415发布日期:2018-06-30 14:28阅读:337来源:国知局
一种基于通道的异构网络数据发送方法和接收方法与流程

本发明属于计算机系统软件专业技术领域,提供一种基于通道的异构网络数据发送方法和接收方法。



背景技术:

在分布式异构网络环境中,计算机处理系统已经由传统的单一计算机向分布式多计算机发展,涉及到的网络种类及系统间的互联关系日益复杂,应用软件需要使用多种网络进行信息交互,面临着网络资源多样化的问题,由于缺少一种能够屏蔽异构网络差异的通讯方法,导致应用软件重复开发度高,网络配置数据量大、软件移植性差复用度低。据此,提出了一种基于通道的异构网络数据发送方法和接收方法,提供统一的数据收发接口及分包组包功能,支持异构网络通信。



技术实现要素:

本发明的目的是基于不同网络之间的共性,设计消息通道封装不同的传输协议,屏蔽传输协议间的差异,提供统一的数据收发接口,为应用程序提供透明的网络通讯服务,提高应用程序的复用程度,减少软件研制的工作量。

本发明的具体技术解决方案如下:

一种基于通道的异构网络数据发送方法,包括以下步骤:

步骤1、确定配置数据,所述配置数据指定待发送数据与网络类型之间的对应关系以及数据发送所需要的网络参数;

步骤2、注册需要使用的消息通道,判断是否有要发送的数据,如有则进入步骤3;

步骤3、从配置数据中查找待发送数据对应的消息通道,判断数据长度是否超过了网络驱动中对最大包长的限制,如果超过,将数据分包后依次发送;如果没有,直接发送。

一种基于通道的异构网络数据接收方法,包括以下步骤:

步骤1、确定配置数据,所述配置数据待接收数据与网络类型之间的对应关系以及接收数据所需要的网络参数;

步骤2、注册需要使用的消息通道;

步骤3、接收端驻留的消息接收任务根据配置数据从不同的网络接收数据,并判断是否进行组包,如果需要,将数据组包后,放入对应的消息通道缓冲区,如果不需要,直接将数据放入缓冲区中;

步骤4、判断是否有要接收的数据,如有则进入步骤5;

步骤5、从配置数据中查找待接收数据对应的消息通道,接收数据。

本发明具有的优点:

该发明有效支持了分布式异构网络应用的研制需求,为应用程序提供透明的通讯服务,应用程序不需要考虑网络差异对程序的影响,应用软件的复用性得到增强。

基于通道的数据发送方法和接收方法具有可扩展性,适用于多种不同的网络,当需要支持新的网络时,只需要针对该网络封装网络资源初始化、数据发送、数据接收这三个接口便可以支持。

该发明提升了应用程序的适用范围,减少了网络驱动程序所支持的最大包长对应用程序的限制。

附图说明

图1为本发明结构示意图;

图2为数据收发过程示意图;

图3为分包组包示意图;

具体实施方式

下面具体介绍本发明技术方案:

应用程序使用该方法进行通讯时,首先要确定配置数据,通过配置数据指定数据与网络类型之间的对应关系以及数据收发所需要的网络参数。接下来,应用注册需要使用的消息通道。

应用发送数据时,从配置数据中查找待发送数据对应的消息通道,发送数据。此时,需要考虑数据长度是否超过了网络驱动中对最大包长的限制,如果超过,需要对数据进行分包,依次发送;如果没有,直接发送。

应用接收数据时,由接收端驻留的消息接收任务根据配置数据从不同的网络接收数据,并判断是否进行组包,如果需要,将数据分片组包后,放入对应的消息通道缓冲区;如果不需要,直接将数据放入缓冲区中。应用根据需要接收的数据,从配置数据中查找对应的消息通道,读取数据。

1)针对异构网络分析抽象出不同网络的通用接口,包括:网络资源初始化、数据发送、数据接收,这些接口可以映射到不同的网络驱动程序之上。

应用程序进行通讯时,需要根据需求注册对应的消息通道,建立网络资源初始化、数据发送、数据接收接口与实际网络驱动的对应关系;传输数据所使用的消息通道由配置数据指定,应用间进行数据传输时,从配置数据中查找数据对应的消息通道,之后进行数据收发。

2)应用程序在进行数据收发之前,需要通过配置数据指定网络拓扑关系,以及数据收发所需要的网络参数。配置数据包括{数据id,消息通道id,消息通道类型,网络参数}。数据标识(数据id)代表一类消息;消息通道id标识一个实际的消息通路;消息通道类型指定网络类型;网络参数指定数据收发所使用的参数。应用程序发送、接收数据时需要根据配置数据,选择网络,执行相应的动作。

3)分包组包过程。在发送端,当需要发送一个超过最大限度的包时,先将待发送的数据包分为指定长度的分包,为分包添加包头信息,包括分包标志位、偏移量、分包结束标志位,依次将分包发送给接收者。在接收端,接收端驻留的消息接收任务根据配置数据从不同网络依次接收到分包,首先判断是否为数据分包,如果是数据分包,则根据偏移量放入指定的缓冲区中;再判断是否为分包中的最后一包,如果不是则继续接收分包,如果是则将分包缓冲区中的内容拷贝到数据接收缓冲区中,等待应用程序读取。

以下结合附图1、图2、图3,对该通讯方法进行详细说明,该实例中包括以太网、FC、Rapi dIO三种网络:

1)静态部署网络配置数据,配置数据的格式如:{数据id,消息通道id,消息通道类型,网络参数}。消息通道类型对应具体的网络,网络参数与消息通道相匹配。例如,消息通道类型为以太网,网络参数则使用IP地址、端口号;消息通道类型为FC,网络参数则使用设备号、消息id;消息通道类型为Rapi dI O,网络参数则使用端口号、消息id。

2)因为需要在以太网、FC、Rap idI O三种网络上进行通讯,发送端、接收端应用程序都需要注册三种类型的消息通道。

3)发送端应用程序执行发送动作,此时需要根据发送的数据id查找配置数据,找到对应的消息通道id,消息通道类型,网络参数,再调用对应的网络驱动进行发送。如果该数据id只对应以太网上的消息通道id,则该消息只使用以太网进行发送;如果该数据id对应以太网、FC或其他组合型的多种网络,则数据会依次发送到多个网络上。

4)发送端需要判断所发送的数据是否超过最大包长的限制,如果超过最大包长需要进行分包。以FC网络为例它所支持的最大包长为2096字节,当发送的数据包为超过最大包长,将数据切分为最大长度不超过2048的数据包,并加上分包标识、偏移量、分包结束符信息,然后依次采用底层网络驱动发送;当数据小于最大包长时,直接采用FC网络发送。

5)接收端驻留接收消息的任务,负责根据配置数据,读取不同网络的数据并放入对应的消息接收缓冲区中。

6)驻留的接收消息的任务需要根据读到的数据内容判断是否进行组包,同以FC网络为例,当读到的数据中分包标识被置位,则进行组包,直到数据被完整的接收,将其放入消息接收缓冲区。

7)接收端应用程序执行数据读取动作,会从该数据对应的消息接收缓冲区中获取数据。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1