CN101072087A - 基于缓冲管理的多链路冗余的实现方法 - Google Patents
基于缓冲管理的多链路冗余的实现方法 Download PDFInfo
- Publication number
- CN101072087A CN101072087A CNA2007100243817A CN200710024381A CN101072087A CN 101072087 A CN101072087 A CN 101072087A CN A2007100243817 A CNA2007100243817 A CN A2007100243817A CN 200710024381 A CN200710024381 A CN 200710024381A CN 101072087 A CN101072087 A CN 101072087A
- Authority
- CN
- China
- Prior art keywords
- data
- send
- link
- buffering
- packet
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Communication Control (AREA)
Abstract
本发明公开了一种基于缓冲管理的多链路冗余的实现方法,它在多任务操作系统基础上,以多任务管理多个链路通讯。每条链路的通讯均由独立的任务进行管理,链路通讯管理任务之间不设立关联。在链路管理任务与应用任务之间通过数据缓冲进行接口,管理数据。本方法完全以软件的方式实现,基于多任务系统,使用标准操作系统接口。无需增加任何输入输出单元等硬件设备,具有极强的可移植性。另外,本发明可匹配多种同构或异构链路的冗余,配置灵活,实用性高。
Description
技术领域
本发明涉及一种数据通讯保障方法,尤其是一种多路保障系统中确保数据成功发送接收的方法,具体地说是一种基于缓冲管理的多链路冗余的实现方法。
背景技术
在一些涉及重大人身和设备安全的自动控制系统领域,要求系统具有极高的通讯可靠性,为此,通常在需要通讯的两台设备之间设置两条或多条通讯链路,防止当其中某条链路发生故障的时候,设备之间的通讯中断。而多链路冗余系统也因此应运而生。以双链路冗余系统为例,在需要通讯的两台设备之间设置两条通讯链路。当其中一条链路出现故障时,另一条链路仍然能够保证通讯正常。
实现多链路冗余系统的核心技术是如何处理多条链路的数据传输问题,既不能让通讯数据在多链路冗余系统中丢失,也不能让通讯数据因为通过多链路冗余系统而产生多个副本。实现多链路冗余系统的方式有两种:一种是使得数据在任何时刻只通过多个链路中的某个链路进行通讯。该种方式的好处是不会产生同一个数据的多个副本,而且一次只选择一个链路进行通讯,管理较容易。但这种方式当正在通讯的链路故障时会产生数据丢失,当然可以通过超时重传的方法重新传输数据,但数据传输效率将受到影响。另一种方式是多个链路同时传输通讯数据的多个副本。在数据接收方对多个数据副本进行筛选,只保留其中一个。该种方式在多个链路中只要有一个链路中的数据安全到达接收方,则传输过程完成,传输效率较高,但该种方式对多链路的管理较为复杂。
发明内容
本发明的目的是提供一种基于缓冲管理的多链路冗余的实现方法。
本发明的技术方案是:
一种基于缓冲管理的多链路冗余的实现方法,其特征是:
首先为每个通讯链路设置一个独立的通讯管理任务,并使每个通讯链路独立工作,相互之间不设立关联;
其次在通讯时采用时标和回函机制,即发送方在发出的数据包中加入标记数据唯一识别码的数据编号、包括发送接收方的设备识别号的目的码、包括发送方的设备识别号的数据源码以及数据发送时的时标;接收方收到发送方发来的数据包后,对数据包进行处理并送入接收缓冲,然后发送包含有接收方数据的数据编号、目的码、数据源码及时标的回复数据包;
第三,发送方根据收到的回复数据包处理发送缓冲中的数据;
第四,使发送方和接收方按以下规则处理数据的发送和接收:
数据包发送过程:发送方先从发送缓冲中取出一个待发送的数据并对其进行打包,加入数据编号、目的码、数据源码以及数据发送时的时标,然后将数据包从通讯链路端口发出,但此时并不删除发送缓冲中相应的数据;
数据包接收过程:接收方收到数据包后,首先分离数据包中包含的数据编号、目的码、数据源码、数据发送时标以及应用数据,根据目的地码判断是否为自身所需数据,不是则丢弃,是则首先根据数据源码、数据编号以及数据发送时标搜索接收缓冲中匹配的数据,如果匹配成功再进一步比较数据包中报文的内容,如果内容也匹配则说明该数据已经通过另外的链路送达,此时将丢弃该数据,反之,在接收缓冲中未搜索到匹配的数据,则说明该数据是第一个抵达目的地的数据,将其连同数据源码、数据编号以及数据发送时标一同存入接收缓冲中,同时无论是保留还是丢弃数据,都将收到的数据编号作为回复数据发还给数据发送方;
回复数据包处理过程:当发送方当收到回复数据包时,取出数据编号并根据该数据编号搜索发送缓冲中相匹配的数据,如果搜索到则说明该回复数据包是自相应编号的数据发出后收到的第一个回复数据,且证明发送方已经正确接收了该编号的数据,此时从发送缓冲中删除该编号的数据,并结束对该回复数据的处理,如果没有匹配的数据,则说明在该回复数据到达前已经有另一个链路的回复数据已经到达,或者该回复数据是错误数据,此时直接结束该回复数据的处理。
所述的时标是指发送方数据发出前时刻的时间。
本发明的有益效果:
本发明以多任务操作系统为基础,通过独立的任务处理每个链路的数据通讯,并通过对缓冲的处理实现多链路冗余。无需复杂的硬件电路,可移植性极强;又由于通过缓冲的处理实现多链路冗余。与采用什么样的链路没有关系,且不同链路之间相互独立,没有关联,因此可匹配多种同构或异构链路的冗余,配置灵活,实用性高。
附图说明
图1是本发明多链路冗余实现方法的发送方发送数据示意图(双链路冗余);
图2是本发明多链路冗余实现方法的接收方接收数据示意图(双链路冗余);
图3是本发明多链路冗余实现方法的接收方拒收第二链路相同数据示意图(双链路冗余);
图4是本发明多链路冗余实现方法的发送方收到回复数据示意图(双链路冗余);
图5是本发明多链路冗余实现方法的发送方处理第二链路回复数据示意图(双链路冗余);
图6是本发明多链路冗余实现方法的数据接收处理流程图;
图7是本发明多链路冗余实现方法的回复数据处理流程图。
具体实施方式
下面结合附图和实施例对本发明作进一步的说明。
一种基于缓冲管理的多链路冗余的实现方法,首先为每个通讯链路设置一个独立的通讯管理任务,并使每个通讯链路独立工作,相互之间不设立关联;
其次在通讯时采用时标和回函机制,即发送方在发出的数据包中加入标记数据唯一识别码的数据编号、包括发送接收方的设备识别号的目的码、包括发送方的设备识别号的数据源码以及数据发送时的时标;接收方收到发送方发来的数据包后,对数据包进行处理并送入接收缓冲,然后发送包含有接收方数据的数据编号、目的码、数据源码及时标的回复数据包;
第三,发送方根据收到的回复数据包处理发送缓冲中的数据;
第四,使发送方和接收方按以下规则处理数据的发送和接收:
数据包发送过程:发送方先从发送缓冲中取出一个待发送的数据并对其进行打包,加入数据编号、目的码、数据源码以及数据发送时的时标,然后将数据包从通讯链路端口发出,但此时并不删除发送缓冲中相应的数据;
数据包接收过程:接收方收到数据包后,首先分离数据包中包含的数据编号、目的码、数据源码、数据发送时标以及应用数据,根据目的地码判断是否为自身所需数据,不是则丢弃,是则首先根据数据源码、数据编号以及数据发送时标搜索接收缓冲中匹配的数据,如果匹配成功再进一步比较数据包中报文的内容,如果内容也匹配则说明该数据已经通过另外的链路送达,此时将丢弃该数据,反之,在接收缓冲中未搜索到匹配的数据,则说明该数据是第一个抵达目的地的数据,将其连同数据源码、数据编号以及数据发送时标一同存入接收缓冲中,同时无论是保留还是丢弃数据,都将收到的数据编号作为回复数据发还给数据发送方;其流程如图6所示;
回复数据包处理过程:当发送方当收到回复数据包时,取出数据编号并根据该数据编号搜索发送缓冲中相匹配的数据,如果搜索到则说明该回复数据包是自相应编号的数据发出后收到的第一个回复数据,且证明发送方已经正确接收了该编号的数据,此时从发送缓冲中删除该编号的数据,并结束对该回复数据的处理,如果没有匹配的数据,则说明在该回复数据到达前已经有另一个链路的回复数据已经到达,或者该回复数据是错误数据,此时直接结束该回复数据的处理,其流程如图7所示。
下面结构附图1-5及双链路冗余系统为例,作进一步的阐述。
本实例的双链路冗余实现方法以两个独立的任务分别对两个链路的数据收发处理进行管理。并通过收发缓冲在两个链路管理任务以及应用任务之间进行接口。如图1所示,定义A机为发送方,B机为接收方;定义通讯任务1管理链路1,通讯任务2管理链路2。并定义链路1先于链路2发送数据。发送方发送数据示意图如图1所示:每个冗余的通讯任务都从同一个发送缓冲中获取排在发送缓冲队首的数据(数据编号为1的数据),并对其进行打包,加入数据编号,目的码,数据源码,以及数据发送时的时标(取发送方数据发出前时刻的时间),然后将数据包从通讯链路端口发出。但此时并不删除发送缓冲中相应的数据。
接收方接收数据示意图如图2所示:接收方从链路1来的数据包后,首先分离数据包中包含的数据编号、目的码、数据源码、数据发送时标以及应用数据。根据目的地码判断为自身所需数据,并根据数据源码,数据编号以及数据发送时标搜索接收缓冲中匹配的数据,在接收缓冲中未搜索到匹配的数据(数据编号为1的数据),说明该数据是第一个抵达目的地的数据。将其连同数据源码,数据编号以及数据发送时标一同存入接收缓冲中。然后将收到的数据编号作为回复数据发还给数据发送方。
接收方拒收第二链路相同数据示意图如图3所示:接收方收到从链路2来的数据包后,同样搜索接收缓冲,发现接收缓冲中已经存在匹配的数据(数据编号为1的数据),则删除从链路2收到的数据,然后将收到的数据编号作为回复数据发还给数据发送方。
发送方收到回复数据示意图如图4所示:发送方收到从链路1来的回复数据,取出数据编号1,并搜索发送缓冲。从发送缓冲中找到了匹配的数据,则从发送缓冲中删除该匹配的数据(数据编号为1的数据)。
发送方处理第二链路回复数据示意图如图5所示:发送方收到从链路2来的回复数据,取出数据编号1,并搜索发送缓冲。从发送缓冲中未找到了匹配的数据,则直接丢弃该回复数据。
Claims (2)
1、一种基于缓冲管理的多链路冗余的实现方法,其特征是:
首先为每个通讯链路设置一个独立的通讯管理任务,并使每个通讯链路独立工作,相互之间不设立关联;
其次在通讯时采用时标和回函机制,即发送方在发出的数据包中加入标记数据唯一识别码的数据编号、包括发送接收方的设备识别号的目的码、包括发送方的设备识别号的数据源码以及数据发送时的时标;接收方收到发送方发来的数据包后,对数据包进行处理并送入接收缓冲,然后发送包含有接收方数据的数据编号、目的码、数据源码及时标的回复数据包;
第三,发送方根据收到的回复数据包处理发送缓冲中的数据;
第四,使发送方和接收方按以下规则处理数据的发送和接收:
数据包发送过程:发送方先从发送缓冲中取出一个待发送的数据并对其进行打包,加入数据编号、目的码、数据源码以及数据发送时的时标,然后将数据包从通讯链路端口发出,但此时并不删除发送缓冲中相应的数据;
数据包接收过程:接收方收到数据包后,首先分离数据包中包含的数据编号、目的码、数据源码、数据发送时标以及应用数据,根据目的地码判断是否为自身所需数据,不是则丢弃,是则首先根据数据源码、数据编号以及数据发送时标搜索接收缓冲中匹配的数据,如果匹配成功再进一步比较数据包中报文的内容,如果内容也匹配则说明该数据已经通过另外的链路送达,此时将丢弃该数据,反之,在接收缓冲中未搜索到匹配的数据,则说明该数据是第一个抵达目的地的数据,将其连同数据源码、数据编号以及数据发送时标一同存入接收缓冲中,同时无论是保留还是丢弃数据,都将收到的数据编号作为回复数据发还给数据发送方;
回复数据包处理过程:当发送方当收到回复数据包时,取出数据编号并根据该数据编号搜索发送缓冲中相匹配的数据,如果搜索到则说明该回复数据包是自相应编号的数据发出后收到的第一个回复数据,且证明发送方已经正确接收了该编号的数据,此时从发送缓冲中删除该编号的数据,并结束对该回复数据的处理,如果没有匹配的数据,则说明在该回复数据到达前已经有另一个链路的回复数据已经到达,或者该回复数据是错误数据,此时直接结束该回复数据的处理。
2、根据权利要求1所述的基于缓冲管理的多链路冗余的实现方法,其特征是所述的时标是指发送方数据发出前时刻的时间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007100243817A CN100553189C (zh) | 2007-06-15 | 2007-06-15 | 基于缓冲管理的多链路冗余的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007100243817A CN100553189C (zh) | 2007-06-15 | 2007-06-15 | 基于缓冲管理的多链路冗余的实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101072087A true CN101072087A (zh) | 2007-11-14 |
CN100553189C CN100553189C (zh) | 2009-10-21 |
Family
ID=38899096
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2007100243817A Active CN100553189C (zh) | 2007-06-15 | 2007-06-15 | 基于缓冲管理的多链路冗余的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100553189C (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101403895B (zh) * | 2008-11-13 | 2010-06-02 | 南京恩瑞特实业有限公司 | 高安全性冗余缓冲队列实现方法 |
CN102739644A (zh) * | 2012-04-20 | 2012-10-17 | 深圳证券通信有限公司 | 一种金融数据的发送/接收方法及装置 |
US9015521B2 (en) | 2011-08-25 | 2015-04-21 | Huawei Technologies Co., Ltd. | Method for switching a node controller link, processor system, and node |
CN105553613A (zh) * | 2015-12-10 | 2016-05-04 | 中国航空工业集团公司西安航空计算技术研究所 | 一种分区间时间触发通信的数据完整性检测方法 |
CN107579804A (zh) * | 2017-07-17 | 2018-01-12 | 福建星网锐捷通讯股份有限公司 | 一种过滤重复数据的方法和系统 |
CN109635504A (zh) * | 2019-01-04 | 2019-04-16 | 广东智科电子股份有限公司 | 一种热泵控制系统软件设计方法 |
CN110445578A (zh) * | 2019-07-29 | 2019-11-12 | 广芯微电子(广州)股份有限公司 | 一种spi数据传输方法及装置 |
CN111034089A (zh) * | 2017-06-26 | 2020-04-17 | 瑞典爱立信有限公司 | 利用带内控制信令的缓冲区处理 |
-
2007
- 2007-06-15 CN CNB2007100243817A patent/CN100553189C/zh active Active
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101403895B (zh) * | 2008-11-13 | 2010-06-02 | 南京恩瑞特实业有限公司 | 高安全性冗余缓冲队列实现方法 |
US9015521B2 (en) | 2011-08-25 | 2015-04-21 | Huawei Technologies Co., Ltd. | Method for switching a node controller link, processor system, and node |
CN102739644A (zh) * | 2012-04-20 | 2012-10-17 | 深圳证券通信有限公司 | 一种金融数据的发送/接收方法及装置 |
CN102739644B (zh) * | 2012-04-20 | 2015-11-18 | 深圳证券通信有限公司 | 一种金融数据的发送/接收方法及装置 |
CN105553613A (zh) * | 2015-12-10 | 2016-05-04 | 中国航空工业集团公司西安航空计算技术研究所 | 一种分区间时间触发通信的数据完整性检测方法 |
CN111034089A (zh) * | 2017-06-26 | 2020-04-17 | 瑞典爱立信有限公司 | 利用带内控制信令的缓冲区处理 |
CN107579804A (zh) * | 2017-07-17 | 2018-01-12 | 福建星网锐捷通讯股份有限公司 | 一种过滤重复数据的方法和系统 |
CN109635504A (zh) * | 2019-01-04 | 2019-04-16 | 广东智科电子股份有限公司 | 一种热泵控制系统软件设计方法 |
CN110445578A (zh) * | 2019-07-29 | 2019-11-12 | 广芯微电子(广州)股份有限公司 | 一种spi数据传输方法及装置 |
CN110445578B (zh) * | 2019-07-29 | 2020-06-23 | 广芯微电子(广州)股份有限公司 | 一种spi数据传输方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN100553189C (zh) | 2009-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100553189C (zh) | 基于缓冲管理的多链路冗余的实现方法 | |
US7355992B2 (en) | Relay for extended range point-to-point wireless packetized data communication system | |
CN102377685B (zh) | 一种订阅消息的发送系统以及订阅消息的发送方法 | |
US6760766B1 (en) | Data transmission method and device | |
CN101980468A (zh) | 网络热备数据传输方法 | |
CN101378334A (zh) | 基于双网冗余通用网络模型的通讯方法 | |
CN103684974A (zh) | 邮件处理方法及系统 | |
CN101562506B (zh) | 数据传输方法 | |
CN106301871A (zh) | 一种基于lacp的转发检测方法及系统 | |
CN100576787C (zh) | 一种在维护终端与后台设备之间进行大数据量安全传送的方法 | |
CN1317841C (zh) | 利用置换电报识别错误和避免错误的方法和节点 | |
CN1976259B (zh) | 有指导无反馈光纤单向传输的物理隔离方法和适用于该方法的单向传输系统 | |
CA2562182A1 (en) | Method for handling communications over a non-permanent communication link | |
JP2011082655A (ja) | メールシステム、端末およびメール送信方法 | |
CN101695029A (zh) | 数据备份方法、主从倒换方法及通信系统以及相关设备 | |
CN101662351A (zh) | 热备冗余计算机通过冗余网络与其它设备进行通信的方法 | |
CN1878067A (zh) | 一种级连系统 | |
CN102137346A (zh) | 多媒体消息业务处理方法和相关设备以及系统 | |
CN101510901B (zh) | 一种分布式设备间的通信方法、通信设备和通信系统 | |
CN100426884C (zh) | 发送短消息状态报告的方法 | |
CN109922466B (zh) | 一种在多节点无线传输系统中实现定向数据访问的方法 | |
CN101060487B (zh) | 一种数据转发系统和方法 | |
CN201491022U (zh) | 热备冗余计算机通过冗余网络与其它设备进行通信的系统 | |
CN102281150B (zh) | 多模块网关及其流量控制方法 | |
CN101378538B (zh) | 一种群发消息处理方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |