CN115883338A - 基于滞留帧重发的船用双冗余网络通信零丢帧实现方法 - Google Patents

基于滞留帧重发的船用双冗余网络通信零丢帧实现方法 Download PDF

Info

Publication number
CN115883338A
CN115883338A CN202211573043.XA CN202211573043A CN115883338A CN 115883338 A CN115883338 A CN 115883338A CN 202211573043 A CN202211573043 A CN 202211573043A CN 115883338 A CN115883338 A CN 115883338A
Authority
CN
China
Prior art keywords
frame
sending
data message
dual
transmission
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
Application number
CN202211573043.XA
Other languages
English (en)
Other versions
CN115883338B (zh
Inventor
孔祥营
张振华
陈学兵
凌云锋
徐利娟
姚洁
梁源辉
罗超
王阳
周睿宁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
716th Research Institute of CSIC
Original Assignee
716th Research Institute of CSIC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 716th Research Institute of CSIC filed Critical 716th Research Institute of CSIC
Priority to CN202211573043.XA priority Critical patent/CN115883338B/zh
Publication of CN115883338A publication Critical patent/CN115883338A/zh
Application granted granted Critical
Publication of CN115883338B publication Critical patent/CN115883338B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

本发明公开了一种基于滞留帧重发的船用双冗余网络通信零丢帧实现方法,涉及到高可用通信领域,解决船用双冗余网络故障切换时的丢帧问题。该方法包括驱动发送函数中设置发送描述子的命令字,在EC故障切换时判断故障ECTD发送状态字,把滞留在故障EC中的相关帧TD复制到新工作EC空闲TD中等处理机制。本发明不需要额外的存储缓冲,可用于改进当前船用双冗余网络驱动程序,实现切换时的零丢帧,提升通信的高可用性。该方法简易、可行,且通用性强,具有较强的推广应用价值。

Description

基于滞留帧重发的船用双冗余网络通信零丢帧实现方法
技术领域
本发明属于船载双冗余网络通信技术领域,特别是一种基于滞留帧重发的船用双冗余网络通信零丢帧实现方法。
背景技术
船载装备对通信可靠性有着较高要求,通常采用并联的冗余通信通道以提升信息交换的高可用性,保证在一路通道故障时,通过切换到另一路备用通道,为***提供持续的通信能力。具体到终端,需要配置双冗余以太网卡。双冗余以太网卡包含由双冗余网卡驱动程序管理的两块物理上独立的以太网控制器(EthernetController,EC)。正常工作时,报文的收发由一块处于Active(激活)状态的EC完成,另一块EC处于Backup(备份)状态。当Active状态的EC发生故障时,双冗余网卡驱动程序检测到该故障,如果Backup状态的EC链路连接正常,则将Backup状态的EC激活,使其处于Active状态,将故障EC置于Backup状态,网络的收发改由新处于Active状态的EC完成。由于故障检测、网络状态切换、新EC与交换机建立IP映射都需要一定时间,因此从故障出现到新通信链路正常工作需要一定时间,称为双冗余网络切换时间。当前双冗余驱动成实现机制中,当切换发生时,由于故障的出现,原来已填入故障状态EC发送描述子(TransmitDescriptor,TD)中的数据并未成功发送到网络上,出现滞留,造成“丢帧”现象。
发明内容
本发明的目的在于针对现有技术机制的不足,提供一种可将现有船用双冗余驱动切换时造成的“丢帧”数降为0的处理机制。
实现本发明目的的技术解决方案为:一种基于滞留帧重发的船用双冗余网络通信零丢帧实现方法,所述方法包括以下机制:在以太网控制器驱动发送函数中设置发送描述子TD的命令字,在以太网控制器EC故障切换时判断故障EC的TD发送状态字,将滞留在故障EC中的相关帧TD复制到新工作EC的空闲TD中。
进一步地,所述方法包括以下步骤:
步骤1,在以太网控制器驱动程序发送函数中,当上层协议栈提交数据报文需要发送时,查找当前工作以太网控制器EC的空闲发送描述子TD,如果无可用空闲TD,则返回EWOULDBLOCK,否则转入步骤2;
步骤2,将数据报文的信息写入TD,并设置TD命令字的相关位,要求EC在完成发送时,设置TD状态字的发送状态;
步骤3,在链路发生故障需要进行切换时,依次扫描故障EC的TD,针对所有状态字的发送状态指示为对应的帧发送未完成的TD,将其中的帧信息填入新工作EC的空闲TD中,然后启动发送数据报文。
进一步地,步骤2中所述数据报文信息包括内存地址、报文长度。
进一步地,步骤2中TD状态字的发送状态位为1,表示TD中的帧发送完成;TD状态字的发送状态位为0,表示TD中的帧未发送完成。
进一步地,所述方法还包括:
步骤4,应用程序在调用send、sendto等函数发送数据报文时,判断调用的返回值,如果返回EWOULDBLOCK,则延时一定时间后重发该数据报文。
本发明与现有技术相比,其显著优点为:
1)可有效解决切换带来的“丢帧”问题。
2)与IEC62439并行冗余协议PRP相比,本方案的优势:一是不增加网络流量,二是未增加接收方网络处理负荷,三是通信的可靠性高。
3)本发明不需要额外的存储缓冲,可用于改进当前船用双冗余网络驱动程序,实现切换时的零丢帧,提升通信的高可用性。
4)本发明方法简易、可行,且通用性强,具有较强的推广应用价值。
下面结合附图对本发明作进一步详细描述。
附图说明
图1为本发明总体方案示意图。
图2为双冗余网卡驱动的层次图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
需要说明,若本发明实施例中有涉及“第一”、“第二”等的描述,则该“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
在一个实施例中,结合图1和图2,提供了一种基于滞留帧重发的船用双冗余网络通信零丢帧实现方法,通过对双冗余网卡驱动程序进行改进设计,实现对切换时故障以太网控制器(EthernetController,EC)未能成功发送到网络上的帧搬运到新ActiveEC中重新发送,实现零丢帧的效果。具体内容如下:
步骤1:在双冗余网卡驱动程序发送函数中,当上层协议栈提交数据报文需要发送时,查找当前工作EC的空闲发送描述子(TransmitDescriptor,TD),如果无可用空闲TD,则返回EWOULDBLOCK,否则转入步骤2;
步骤2:将数据报文的内存地址、长度等信息写入TD,并设置TD命令字的相关位,要求EC在完成发送时,设置TD状态字的发送状态;
步骤3:在链路发生故障,需要进行切换时,依次扫描故障EC的TD,将所有状态字的发送状态指示对应的帧发送未完成TD中的帧信息填入新工作EC的空闲TD中,然后启动发送;
步骤4:应用程序在调用send、sendto等函数发送数据报文时,判断调用的返回值,如果返回EWOULDBLOCK,则延时一定时间后重发该数据报文。
在一个实施例中,提供了一种基于滞留帧重发的船用双冗余网络通信零丢帧实现***,所述***包括依次执行的:
第一模块,用于在以太网控制器驱动程序发送函数中,当上层协议栈提交数据报文需要发送时,查找当前工作以太网控制器EC的空闲发送描述子TD,如果无可用空闲TD,则返回EWOULDBLOCK,否则转入第二模块;
第二模块,用于将数据报文的信息写入TD,并设置TD命令字的相关位,要求EC在完成发送时,设置TD状态字的发送状态;
第三模块,用于在链路发生故障需要进行切换时,依次扫描故障EC的TD,针对所有状态字的发送状态指示为对应的帧发送未完成的TD,将其中的帧信息填入新工作EC的空闲TD中,然后启动发送数据报文;
第四模块,用于在应用程序在调用函数发送数据报文时,判断调用的返回值,如果返回EWOULDBLOCK,则延时一定时间后重发该数据报文。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
步骤1,在以太网控制器驱动程序发送函数中,当上层协议栈提交数据报文需要发送时,查找当前工作以太网控制器EC的空闲发送描述子TD,如果无可用空闲TD,则返回EWOULDBLOCK,否则转入步骤2;
步骤2,将数据报文的信息写入TD,并设置TD命令字的相关位,要求EC在完成发送时,设置TD状态字的发送状态;
步骤3,在链路发生故障需要进行切换时,依次扫描故障EC的TD,针对所有状态字的发送状态指示为对应的帧发送未完成的TD,将其中的帧信息填入新工作EC的空闲TD中,然后启动发送数据报文;
步骤4,应用程序在调用函数发送数据报文时,判断调用的返回值,如果返回EWOULDBLOCK,则延时一定时间后重发该数据报文。
该步骤的具体限定可以参见上文中对于基于滞留帧重发的船用双冗余网络通信零丢帧实现方法的限定,在此不再赘述。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
步骤1,在以太网控制器驱动程序发送函数中,当上层协议栈提交数据报文需要发送时,查找当前工作以太网控制器EC的空闲发送描述子TD,如果无可用空闲TD,则返回EWOULDBLOCK,否则转入步骤2;
步骤2,将数据报文的信息写入TD,并设置TD命令字的相关位,要求EC在完成发送时,设置TD状态字的发送状态;
步骤3,在链路发生故障需要进行切换时,依次扫描故障EC的TD,针对所有状态字的发送状态指示为对应的帧发送未完成的TD,将其中的帧信息填入新工作EC的空闲TD中,然后启动发送数据报文;
步骤4,应用程序在调用函数发送数据报文时,判断调用的返回值,如果返回EWOULDBLOCK,则延时一定时间后重发该数据报文。
该步骤的具体限定可以参见上文中对于基于滞留帧重发的船用双冗余网络通信零丢帧实现方法的限定,在此不再赘述。
本发明不需要额外的存储缓冲,可用于改进当前船用双冗余网络驱动程序,实现切换时的零丢帧,提升通信的高可用性。该方法简易、可行,且通用性强,具有较强的推广应用价值。
以上显示和描述了本发明的基本原理、主要特征及优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (9)

1.一种基于滞留帧重发的船用双冗余网络通信零丢帧实现方法,其特征在于,所述方法包括以下机制:在以太网控制器驱动发送函数中设置发送描述子TD的命令字,在以太网控制器EC故障切换时判断故障EC的TD发送状态字,将滞留在故障EC中的相关帧TD复制到新工作EC的空闲TD中。
2.根据权利要求1所述的基于滞留帧重发的船用双冗余网络通信零丢帧实现方法,其特征在于,所述方法包括以下步骤:
步骤1,在以太网控制器驱动程序发送函数中,当上层协议栈提交数据报文需要发送时,查找当前工作以太网控制器EC的空闲发送描述子TD,如果无可用空闲TD,则返回EWOULDBLOCK,否则转入步骤2;
步骤2,将数据报文的信息写入TD,并设置TD命令字的相关位,要求EC在完成发送时,设置TD状态字的发送状态;
步骤3,在链路发生故障需要进行切换时,依次扫描故障EC的TD,针对所有状态字的发送状态指示为对应的帧发送未完成的TD,将其中的帧信息填入新工作EC的空闲TD中,然后启动发送数据报文。
3.根据权利要求2所述的基于滞留帧重发的船用双冗余网络通信零丢帧实现方法,其特征在于,步骤2中所述数据报文信息包括内存地址、报文长度。
4.根据权利要求2所述的基于滞留帧重发的船用双冗余网络通信零丢帧实现方法,其特征在于,步骤2中TD状态字的发送状态位为1,表示TD中的帧发送完成;TD状态字的发送状态位为0,表示TD中的帧未发送完成。
5.根据权利要求2所述的基于滞留帧重发的船用双冗余网络通信零丢帧实现方法,其特征在于,所述方法还包括:
步骤4,应用程序在调用函数发送数据报文时,判断调用的返回值,如果返回EWOULDBLOCK,则延时一定时间后重发该数据报文。
6.基于权利要求1至5任意一项所述方法的基于滞留帧重发的船用双冗余网络通信零丢帧实现***,其特征在于,所述***包括依次执行的:
第一模块,用于在以太网控制器驱动程序发送函数中,当上层协议栈提交数据报文需要发送时,查找当前工作以太网控制器EC的空闲发送描述子TD,如果无可用空闲TD,则返回EWOULDBLOCK,否则转入第二模块;
第二模块,用于将数据报文的信息写入TD,并设置TD命令字的相关位,要求EC在完成发送时,设置TD状态字的发送状态;
第三模块,用于在链路发生故障需要进行切换时,依次扫描故障EC的TD,针对所有状态字的发送状态指示为对应的帧发送未完成的TD,将其中的帧信息填入新工作EC的空闲TD中,然后启动发送数据报文。
7.根据权利要求6所述的基于滞留帧重发的船用双冗余网络通信零丢帧实现***,其特征在于,所述***还包括:
第四模块,用于在应用程序在调用函数发送数据报文时,判断调用的返回值,如果返回EWOULDBLOCK,则延时一定时间后重发该数据报文。
8.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5中任一项所述方法的内容。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述方法的内容。
CN202211573043.XA 2022-12-08 2022-12-08 基于滞留帧重发的船用双冗余网络通信零丢帧实现方法 Active CN115883338B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211573043.XA CN115883338B (zh) 2022-12-08 2022-12-08 基于滞留帧重发的船用双冗余网络通信零丢帧实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211573043.XA CN115883338B (zh) 2022-12-08 2022-12-08 基于滞留帧重发的船用双冗余网络通信零丢帧实现方法

Publications (2)

Publication Number Publication Date
CN115883338A true CN115883338A (zh) 2023-03-31
CN115883338B CN115883338B (zh) 2024-07-09

Family

ID=85766576

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211573043.XA Active CN115883338B (zh) 2022-12-08 2022-12-08 基于滞留帧重发的船用双冗余网络通信零丢帧实现方法

Country Status (1)

Country Link
CN (1) CN115883338B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011072536A1 (zh) * 2009-12-17 2011-06-23 研祥智能科技股份有限公司 一种VxWorks***下的多网卡双冗余装置及***
US20120124431A1 (en) * 2010-11-17 2012-05-17 Alcatel-Lucent Usa Inc. Method and system for client recovery strategy in a redundant server configuration
CN103514121A (zh) * 2012-06-29 2014-01-15 中国船舶重工集团公司第七0九研究所 WindowsXp操作***下一种网卡冗余切换方法
CN111447078A (zh) * 2019-11-14 2020-07-24 天津津航计算技术研究所 一种基于组播协议的以太网热备热切换的冗余方法
CN115314388A (zh) * 2022-08-03 2022-11-08 中国船舶集团有限公司第七一六研究所 一种基于Bond机制的PRP协议实现方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011072536A1 (zh) * 2009-12-17 2011-06-23 研祥智能科技股份有限公司 一种VxWorks***下的多网卡双冗余装置及***
US20120124431A1 (en) * 2010-11-17 2012-05-17 Alcatel-Lucent Usa Inc. Method and system for client recovery strategy in a redundant server configuration
CN103514121A (zh) * 2012-06-29 2014-01-15 中国船舶重工集团公司第七0九研究所 WindowsXp操作***下一种网卡冗余切换方法
CN111447078A (zh) * 2019-11-14 2020-07-24 天津津航计算技术研究所 一种基于组播协议的以太网热备热切换的冗余方法
CN115314388A (zh) * 2022-08-03 2022-11-08 中国船舶集团有限公司第七一六研究所 一种基于Bond机制的PRP协议实现方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
BAIGEN HE等: "Sea Ship Target Detection Method of Remote Sensing Image", 《2019 INTERNATIONAL CONFERENCE ON ARTIFICIAL INTELLIGENCE AND ADVANCED MANUFACTURING (AIAM)》, 9 January 2020 (2020-01-09) *
巴海涛;张振华;孙艺;: "Windows 2000下应用程序与网卡驱动程序间的数据交互", 指挥控制与仿真, no. 04, 15 August 2007 (2007-08-15) *

Also Published As

Publication number Publication date
CN115883338B (zh) 2024-07-09

Similar Documents

Publication Publication Date Title
KR100744448B1 (ko) 통신 시스템
CN103957155A (zh) 报文传输方法、装置及互联接口
TWI410084B (zh) 於負載平衡網路環境中之智慧型故障排除
GB2458546A (en) Network switch wherein egress port specified by ingress interface is overwritten with standby port before switch fabric for failed ports
CN111130893A (zh) 一种报文传输方法和装置
JPH11340986A (ja) 無線通信システムで用いられる装置とプログラム記録媒体
CN113132159B (zh) 存储集群节点故障的处理方法、设备及存储***
CN115883338B (zh) 基于滞留帧重发的船用双冗余网络通信零丢帧实现方法
CN112235141B (zh) 一种单广播域下的Linux操作***的轻量级以太网冗余装置
US7689702B1 (en) Methods and apparatus for coordinating processing of network connections between two network protocol stacks
KR20050002865A (ko) 인피니밴드 채널 어댑터 장애용 리던던시 제공 방법 및 컴퓨터 시스템
CN111490932A (zh) 一种通信方法和装置
CN110677283B (zh) 一种网络双冗余快速切换的方法
CN116016130B (zh) 基于延时丢弃的船用双冗余网络切换时降低丢帧数的方法
CN110391941B (zh) 一种电路板收发数据的方法、电路板及存储介质
JP2003078567A (ja) 分散配置型高信頼通信システムおよびその制御装置、ならびに障害検知方法とそのプログラムと記録媒体
JPH0556057B2 (zh)
US8549345B1 (en) Methods and apparatus for recovering from a failed network interface card
US6556827B1 (en) Method of managing a plurality of radio links in wireless local loop
CN114362893A (zh) 数据发送方法、数据接收方法、终端及计算机存储介质
US7286254B2 (en) Communication control apparatus and method of converting between facsimile and e-mail transmissions
CN111404812B (zh) 一种通信方法和装置
JP2008219551A (ja) 伝送システム、通信装置、伝送制御方法及びプログラム
US20090204773A1 (en) Method of writing device data in dual controller network storage environment
CN111917590B (zh) 制造物联网网关主备倒换数据包mac表处理装置及方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant