【技术实现步骤摘要】
一种基于Bond机制的PRP协议实现方法
[0001]本专利技术属于高可用通信
,特别是涉及一种基于Bond机制的PRP协议实现方法。
技术介绍
[0002]IEC 62439
‑
3:2016制定了(Parallel Redundancy Protocol,PRP)并行冗余协议标准,PRP是控制领域为提高网络通信的可靠性,在TCP/IP基础上改进的一种零丢包通信机制,PRP通过连接在两个独立的子网上的两个网口发送复制的、在数据尾部追加PRP特定信息(帧号、长度、PRP协议类型、端口号等)字段的报文,接收方也通过连接在独立的子网上的两个网口接收报文,通过对数据尾部PRP特定信息判断,提交先接收到的报文,丢弃后接收到的重复帧。
[0003]Linux操作系统已经得到广泛应用,但当前主流的3.10、4.4、4.14、4.19、5.4等内核版本并不支持PRP协议。最新的(2020年8月后)内核版本开始在链路层增加对PRP协议支持,但需要向低版本内核反向移植,且不支持与网络中同时存在普通单节点和PRP双
【技术保护点】
【技术特征摘要】
1.一种基于Bond机制的PRP协议实现方法,其特征在于,包括以下步骤:步骤1、在Linux系统的Bond驱动的工作模式中新增PRP协议工作模式,用于针对PRP协议的报文进行收发处理;Bond驱动中预设有mode参数,加载Bond驱动时,向mode传入PRP协议工作模式值,用于Bond驱动切换模式时使用;步骤2、将两个物理网卡作为slave网卡通过Bond驱动进行绑定,生成名为bondX的虚拟Master网卡,其中X是指虚拟Master的编号,为大于等于零的整数;步骤3、当Bond驱动处于PRP协议工作模式下发送报文时,根据PRP协议格式在报文尾部增加PRP协议特征码,然后分别通过Master网卡下处于Link UP状态的slave网卡发送该PRP报文;步骤4、当Bond驱动处于PRP协议工作模式下接收报文时,根据PRP协议特征码解析报文;如果接收的是PRP报文,根据PRP协议特征码中的帧序号判断该报文是否为首次接收,若是首次接收,则对报文尾部移除PRP特征码,提交到上层协议栈;否则,该报文为重复帧,则直接丢弃。2.根据权利要求1所述的一种基于Bond机制的PRP协议实现方法,其特征在于,步骤2中,当Bond驱动处于PRP协议模式时,两个slave网卡设置相同的MAC地址、组播地址和最大MTU值;两个slave网卡共用Master网卡的IP地址。3.根据权利要求1所述的一种基于Bond机制的PRP协议实现方法,其特征在于,Master网卡的MTU值设为slave网卡的最大MTU值减去PRP协议特征码长度。4.根据权利要求1所述的一种基于Bond机制的PRP协议实现方法,其特征在于,为兼容与单节点SAN通信,定义SAN节点地址列表;SAN节点地址列表中地址基于MAC地址或IP地址,能够向该列表动态增加或删除节点地址。5.根据权利要求4所述的一种基于Bond机制的PRP协议实现方法,其特征在于,步骤3中,当Bond驱动处于PRP协议工作模式下发送报文时,具体步骤如下:步骤3
‑
...
【专利技术属性】
技术研发人员:陈学兵,孔祥营,王凯龙,曹向辉,张振华,凌云峰,沈毅南,陈国华,王瑞妮,赵世昭,
申请(专利权)人:中国船舶集团有限公司第七一六研究所,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。