CN111683009B - 一种虚拟转发器的控制方法及装置 - Google Patents
一种虚拟转发器的控制方法及装置 Download PDFInfo
- Publication number
- CN111683009B CN111683009B CN202010542150.0A CN202010542150A CN111683009B CN 111683009 B CN111683009 B CN 111683009B CN 202010542150 A CN202010542150 A CN 202010542150A CN 111683009 B CN111683009 B CN 111683009B
- Authority
- CN
- China
- Prior art keywords
- virtual
- data packet
- current
- repeater
- data
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/22—Alternate routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/28—Routing or path finding of packets in data switching networks using route fault recovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/54—Organization of routing tables
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
Abstract
本发明公开了一种虚拟转发器的控制方法及装置,应用于数据包发送端,所述方法包括:1)、每个虚拟网卡对应至少两个虚拟转发器,将用于发送数据包的路由同步至各个虚拟转发器中,其中,所述虚拟网卡是基于独立物理网卡建立的;2)、备用转发器探测当前工作的虚拟转发器的状态,判断所述当前虚拟转发器是否发生故障;3)、若是,将除当前虚拟转发器中的一个虚拟转发器作为当前虚拟转发器进行数据包的发送。应用本发明实施例,可保证系统在主虚拟转发器出现故障的情况下仍能可靠的工作。
Description
技术领域
本发明涉及一种控制方法及装置,更具体涉及一种虚拟转发器的控制方法及装置。
背景技术
目前,随着信息化技术的发展,各种设备之间越来越多的通过局域或者互联网进行数据的传输,例如,在机器人系统中,AIRT-ROS(Artificial Intelligence real-time-Robot Operating System,人工智能实时机器人操作系统)节点通常在一个局域网内传输数据,对ROS中节点通信的保障机制主要采用节点的QoS(Quality of Service,服务质量)。该方案的原理是:针对某种类别的数据流,可以为它赋予某个级别的传输优先级,来标识它的相对重要性,并使用设备所提供的各种优先级转发策略、拥塞避免等机制为这些数据流提供特殊的传输服务。配置了QoS的网络环境,增加了网络性能的可预知性,并能够有效地分配网络带宽,更加合理地利用网络资源。
但是,现有技术都是基于虚拟网卡针对数据流进行优先级控制,在虚拟网卡发生故障时,不能进行数据的发送,进而导致系统的工作可靠性不高的技术问题。
发明内容
本发明所要解决的技术问题在于提供了一种虚拟转发器的控制方法及装置,以解决现有技术中系统的工作可靠性不高的技术问题。
本发明是通过以下技术方案解决上述技术问题的:
本发明实施例提供了一种虚拟转发器的控制方法,应用于数据包发送端,所述方法包括:
1)、每个虚拟网卡对应至少两个虚拟转发器,将其中的一个虚拟转发器作为当前虚拟转发器;并将用于发送数据包的路由同步至各个虚拟转发器中,其中,所述虚拟网卡是基于独立物理网卡建立的;
2)、备用转发器探测当前工作的虚拟转发器的状态,判断所述当前虚拟转发器是否发生故障;
3)、若是,将除当前虚拟转发器中的一个虚拟转发器作为当前虚拟转发器进行数据包的发送。
可选的,所述方法还包括:
判断当前虚拟转发器使用的当前路由链路是否可以用于数据包的发送;
若否,从当前虚拟转发器中的备用路由链路进行数据包的转发,其中,所述备用路由链路是预先存储在路由数据中的。
可选的,所述步骤2),包括:
21)、设置定时器,以可配置的固定频率持续向当前转发器发送心跳包,并接收当前转发器返回的对应于所述心跳包的应答;
22)、在未接收到所述应答数据的情况下,再次发送心跳包,并累计未能收到对应应答数据的心跳包的数量;
23)、在未能收到对应应答数据的心跳包的数量达到第一预设数量时,判定所述当前虚拟转发器发生故障;
24)、在未能收到对应应答数据的心跳包的数量未达到第一预设数量时,将所累计的未能收到对应应答数据的心跳包的数量清零,并返回执行步骤21)。
可选的,所述方法还包括:
接收当前路由链路的目的端口所属设备针对所发送数据包的应答指令,其中,所述应答指令为对应于数据发送端的数据接收端发送的;
解析所述应答指令,并判断所述应答指令是否为复执指令;
若是,重复发送对应于所述应答指令的数据包,直至接收到的应答指令为接收成功的应答指令。
可选的,所述方法还包括:
接收当前路由链路的目的端口所属设备针对所发送数据包的应答指令;
解析所述应答指令,并判断所述应答指令是否为卷回指令;
若是,将所述数据包作为当前数据包,将接收所述当前数据包的时刻作为当前时刻,将当前时刻之前的、且与所述当前时刻间隔第二预设数量秒的历史时刻对应的数据包作为当前数据包,从所述当前数据包开始进行数据包的发送,直至接收到的应答指令为接收成功的应答指令。
本发明实施例还提供了一种应答指令的发送方法,应用于数据包接收端,所述方法包括:
接收数据包发送端发送的数据包;
根据所述数据包中携带的标识信息,判断所接收的数据包是否异常,其中,所述异常,包括:数据包损坏、数据包的标识信息不对应或者数据包数据量不对应;
若是,将复执指令作为应答指令发送给数据发送端,以使数据发送端解析所述应答指令,并判断所述应答指令是否为复执指令。
可选的,应用于数据包接收端,所述方法包括:
接收数据包发送端发送的数据包;
根据所述数据包中携带的标识信息,判断所接收的数据包是否异常和/或丢失,其中,所述异常,包括:数据包损坏、数据包的标识信息不对应或者数据包数据量不对应;
若是,将卷回指令作为应答指令发送给数据发送端,以使数据发送端解析所述应答指令,并判断所述应答指令是否为卷回指令。
本发明实施例提供了一种虚拟转发器的控制装置,所述装置包括:
建立模块,用于每个虚拟网卡对应至少两个虚拟转发器,将其中的一个虚拟转发器作为当前虚拟转发器;并将用于发送数据包的路由同步至各个虚拟转发器中,其中,所述虚拟网卡是基于独立物理网卡建立的;
第一判断模块,用于使备用转发器探测当前工作的虚拟转发器的状态,判断所述当前虚拟转发器是否发生故障;
第一发送模块,用于在所述第一判断模块的判断结果为是的情况下,将除当前虚拟转发器中的一个虚拟转发器作为当前虚拟转发器进行数据包的发送。
可选的,所述装置还包括:第二判断模块,用于:
判断当前虚拟转发器使用的当前路由链路是否可以用于数据包的发送;
若否,从当前虚拟转发器中的备用路由链路进行数据包的转发,其中,所述备用路由链路是预先存储在路由数据中的。
可选的,所述第一发送模块,用于:
21)、设置定时器,以可配置的固定频率持续向当前转发器发送心跳包,并接收当前转发器返回的对应于所述心跳包的应答;
22)、在未接收到所述应答数据的情况下,再次发送心跳包,并累计未能收到对应应答数据的心跳包的数量;
23)、在未能收到对应应答数据的心跳包的数量达到第一预设数量时,判定所述当前虚拟转发器发生故障;
24)、在未能收到对应应答数据的心跳包的数量未达到第一预设数量时,将所累计的未能收到对应应答数据的心跳包的数量清零,并返回执行步骤21)。
可选的,所述装置还包括:第一接收模块,用于:
接收当前路由链路的目的端口所属设备针对所发送数据包的应答指令,其中,所述应答指令为对应于数据发送端的数据接收端发送的;
解析所述应答指令,并判断所述应答指令是否为复执指令;
若是,重复发送对应于所述应答指令的数据包,直至接收到的应答指令为接收成功的应答指令。
可选的,所述应答指令的生成过程包括:
数据包接收端接收数据包发送端发送的数据包;根据所述数据包中携带的标识信息,判断所接收的数据包是否异常,其中,所述异常,包括:数据包损坏、数据包的标识信息不对应或者数据包数据量不对应;若是,将复执指令作为应答指令发送给数据发送端,以使数据发送端解析所述应答指令,并判断所述应答指令是否为复执指令。
可选的,所述装置还包括:第二接收模块,用于:
接收当前路由链路的目的端口所属设备针对所发送数据包的应答指令;
解析所述应答指令,并判断所述应答指令是否为卷回指令;
若是,将所述数据包作为当前数据包,将接收所述当前数据包的时刻作为当前时刻,将当前时刻之前的、且与所述当前时刻间隔第二预设数量秒的历史时刻对应的数据包作为当前数据包,从所述当前数据包开始进行数据包的发送,直至接收到的应答指令为接收成功的应答指令。
可选的,所述应答指令的生成过程包括:
数据包接收端接收数据包发送端发送的数据包;根据所述数据包中携带的标识信息,判断所接收的数据包是否异常和/或丢失,其中,所述异常,包括:数据包损坏、数据包的标识信息不对应或者数据包数据量不对应;若是,将卷回指令作为应答指令发送给数据发送端,以使数据发送端解析所述应答指令,并判断所述应答指令是否为卷回指令。
本发明相比现有技术具有以下优点:
应用本发明实施例,能够进行AIRT-ROS虚拟网卡的虚拟转发器的智能切换,即一个虚拟转发器作为主虚拟转发器正常工作,其他的虚拟转发器作为备用虚拟转发器处于激活状态,当虚拟转发器出错时,AIRT-ROS系统自动切换到备份虚拟转发器驱动,这样可保证整个系统在主虚拟转发器出现故障的情况下仍能可靠的工作。
附图说明
图1为本发明实施例提供的一种虚拟转发器的控制方法的流程示意图;
图2为本发明实施例提供的一种虚拟转发器的控制方法中虚拟网卡在AIRT-ROS系统中的位置的示意图;
图3为本发明实施例提供的一种虚拟转发器的控制方法中虚拟网卡的架构的示意图;
图4为本发明实施例提供的一种虚拟转发器的控制方法的原理示意图;
图5为本发明实施例提供的一种虚拟转发器的控制方法中备用路由链路的控制方法示意图;
图6为本发明实施例提供的一种虚拟转发器的控制方法中的数据回卷示意图;
图7为本发明实施例提供的一种虚拟转发器的控制装置的结构示意图。
具体实施方式
下面对本发明的实施例作详细说明,本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
本发明实施例提供了一种虚拟转发器的控制方法,下面首先就本发明实施例提供的一种虚拟转发器的控制方法进行介绍。
实施例1
图1为本发明实施例提供的一种虚拟转发器的控制方法的流程示意图;图2为本发明实施例提供的一种虚拟转发器的控制方法中虚拟网卡在AIRT-ROS系统中的位置的示意图;图3为本发明实施例提供的一种虚拟转发器的控制方法中虚拟网卡的架构的示意图;图4为本发明实施例提供的一种虚拟转发器的控制方法的原理示意图;如图1-图4所示,应用于数据包发送端,所述方法包括:
S101:每个虚拟网卡对应至少两个虚拟转发器,将其中的一个虚拟转发器作为当前虚拟转发器;并将用于发送数据包的路由同步至各个虚拟转发器中,其中,所述虚拟网卡是基于独立物理网卡建立的。
如图2-图3所示,AIRT-ROS系统中的其中一个虚拟网卡是基于LAPIC(LogicalAdvanced Programmable Interrupt Controller,高级可编程中断逻辑控制器)协议、FTP(File Transfer Protocol,文件传输)协议、HTTP(HyperText TransferProtocol,超文本传输协议)协议、ROS(Robot Operating System,机器人操作系统)协议,进而由软件App在Linux环境中实现的;或者可以由软件App基于RT-ROS协议、HTTP协议以及LAPIC协议实现的。
而实时操控系统的内核可以通过IOAPIC(Input/Output Advanced ProgrammableInterrupt Controller,高级可编程中断输入输出控制器)实现与其它设备之间的通信。
虚拟网卡与RTERS内核之间通过VNET函数实现二者的通讯,使用vswitch实现二者的切换。
S102:备用转发器探测当前工作的虚拟转发器的状态,判断所述当前虚拟转发器是否发生故障;若是,执行S103。
具体的,图5为本发明实施例提供的一种虚拟转发器的控制方法中备用路由链路的控制方法示意图,如图5所示,本步骤可以包括:
21)、持设置定时器,以可配置的固定频率持续向当前转发器发送心跳包,并接收当前转发器返回的对应于所述心跳包的应答;22)、在未接收到所述应答数据的情况下,再次发送心跳包,并累计未能收到对应应答数据的心跳包的数量;23)、在未能收到对应应答数据的心跳包的数量达到第一预设数量时,判定所述当前虚拟转发器发生故障;24)、在未能收到对应应答数据的心跳包的数量未达到第一预设数量时,将所累计的未能收到对应应答数据的心跳包的数量清零,并返回执行步骤21)。
S103:将除当前虚拟转发器中的一个虚拟转发器作为当前虚拟转发器进行数据包的发送。
应用本发明实施例,能够进行AIRT-ROS虚拟网卡的虚拟转发器的智能切换,即一个虚拟转发器作为主虚拟转发器正常工作,其他的虚拟转发器作为备用虚拟转发器处于激活状态,当虚拟转发器出错时,AIRT-ROS系统自动切换到备份虚拟转发器驱动,这样可保证整个通信系统在主虚拟转发器出现故障的情况下仍能可靠的工作。
在本发明实施例的进一步改进的技术方案中,可以为虚拟网卡安装至少两个驱动软件,将其中一个驱动软件作为主驱动,其他的驱动软件作为备用驱动,当主驱动出现故障或者问题时,切换至备用驱动,应用本发明上述实施例,可以能够进行AIRT-ROS虚拟网卡驱动智能切换,进而可保证整个AIRT-ROS系统在虚拟网卡出现故障的情况下仍能可靠的工作。
进一步的,如果当前虚拟转发器为虚拟转发器1,可以周期性的将虚拟转发器1切换为虚拟转发器2,此时虚拟转发器2为当前虚拟转发器。并对被替换的虚拟转发器1进行自检,在自检结果正常的情况下,再将当前虚拟转发器切换为虚拟转发器1。
实施例2
本发明实施例2在本发明实施例1的基础上,增加了以下步骤:
判断当前虚拟转发器使用的当前路由链路是否可以用于数据包的发送;若否,从当前虚拟转发器中的备用路由链路进行数据包的转发,其中,所述备用路由链路是预先存储在路由数据中的。
首先要实现虚拟网卡的备用路由链路,虚拟网卡只需要处理不在己知路由范围内的目的地址。因此只需修改默认路由即可。将0.0.0.0/0拆为0.0.0.0/1和128.0.0.0/1两段,在AIRT-ROS系统启动时向虚拟网卡的路由表中插入这两条新的表项,连接关闭时需要删除这两条新增的表项。这种方法基于路由表的最长前缀匹配原则。在进行IP路由选择时,若当前IP与若干条规则同时满足匹配条件,则优先选择子网掩码中与高位相匹配最多的一条。因为这条规则能够以最明确的方式指出所要到达的下一跳地址。基于以上原则,转发数据包会优先选择新加入的两条记录。在虚拟网卡的备用路由链路问题解决后,构造链路进行通信。以系统调用的方式实现所需要的字符设备,提供内核态与用户态之间的网络数据读写操作。提供处理数据链路层报文和网络层报文的能力。
为实现对链路通信的流程控制,设计了一个主控结构体vpn_ctx_t,其结构见表1。系统中对链路的控制主要包括初始化、启动以及停止三个操作,三者之间通过该结构体变量进行关联。除实现基本的逻辑外,此处的关键三处IO操作,包括管道IO、Socket IO、以及TUN设备IO。vpn_ctx_init函数在系统启动后根据所加载的配置文件参数对主控结构体ctx中的多项字段进行初始化,主要包括:打开虚拟网卡设备描述符;打开守护进程管道描述符;初始化UDP连接地址;服务端绑定指定端口号监听客户端发送数据等。vpn_stop函数用于连接关闭时释放相应的链路底层资源。vpn_run中以一个while循环体来对所有的数据包进行处理,在其内部进行与虚拟网卡之间的TUN设备IO操作,与物理网卡之间的Socket IO操作,以及发送数据的加密,封装和接收数据的解密,解封装等。对于TUN设备接口而言,每执行一次read操作,只能处理一个IP报文,而TUN设备本身并不会维护read操作的结果状态,即使read未将数据完全提取,下一次调用过程也会只返回新的数据包。write操作同理。同时提供fread以及fwrite函数,这两个函数是在read和write基础上实现带缓冲的IO。虽然可以通过函数动态调整缓冲区大小,但同时也会降低性能,缓冲区的最大长度取决于MTU字段。链路保活策略是在通信畅通的情况下,使用定时器时间(例如10s)发送心跳包,而在一次中断之后,将会连续多次发送同一心跳包,以确认是否确实发生了网络中断,通过维护一个计数器counter,来统计心跳包发送连续失败的次数,当counter的值超过某一阂值(例如5)时,则判定虚拟网卡转发出现故障,此时热倒换虚拟网卡驱动。通过是否收到来自虚拟网卡的ack数据判断虚拟网卡当前状态。接收ack采用非阻塞IO技术,使用select函数完成超时检测。
表1主控结构体vpn_ctx_t结构
应用本发明实施例,可以为虚拟网卡建立备用路由链路,在当前路由链路发生故障时,可以继续进行数据的传输,进一步提高了数据传输的可靠性。
实施例3
本发明实施例3在本发明实施例1的基础上,增加了以下步骤:
31)、数据包接收端接收数据包发送端发送的数据包;根据所述数据包中携带的标识信息,判断所接收的数据包是否异常,其中,所述异常,包括:数据包损坏、数据包的标识信息不对应或者数据包数据量不对应;若是,将复执指令作为应答指令发送给数据发送端,以使数据发送端解析所述应答指令,并判断所述应答指令是否为复执指令。
例如,数据包接收端接收数据包发送端发送的数据包的数据头中的标识信息一次为1、2、3、4、5.....。
数据包接收端根据所接接收的数据包的数据头中的信息,判断标识信息是否中断或者跳跃,若是,说明数据包异常。
在实际应用中,数据包异常的判断方法包括但不仅限于上述方法。
32)、接收当前路由链路的目的端口所属设备针对所发送数据包的应答指令,其中,所述应答指令为对应于数据发送端的数据接收端发送的;解析所述应答指令,并判断所述应答指令是否为复执指令;若是,重复发送对应于所述应答指令的数据包,直至接收到的应答指令为接收成功的应答指令。
应用本发明实施例3,可以在数据包故障时进行数据包的重复发送,进而提高了数据包发送的可靠性。
实施例4
图6为本发明实施例提供的一种虚拟转发器的控制方法中的数据回卷示意图;如图6所示,本发明实施例4在本发明实施例1的基础上,增加了以下步骤:
41)、数据包接收端接收数据包发送端发送的数据包;根据所述数据包中携带的标识信息,判断所接收的数据包是否异常和/或丢失,其中,所述异常,包括:数据包损坏、数据包的标识信息不对应或者数据包数据量不对应;若是,将卷回指令作为应答指令发送给数据发送端,以使数据发送端解析所述应答指令,并判断所述应答指令是否为卷回指令。
例如,数据包发送端从t0时刻持续发送数据包,经过t1时刻、t2时刻、t3时刻、t4时刻,此时数据包发送端接收到了数据包接收端的卷回指令。
42)、接收当前路由链路的目的端口所属设备针对所发送数据包的应答指令;解析所述应答指令,并判断所述应答指令是否为卷回指令;若是,将所述数据包作为当前数据包,将接收所述当前数据包的时刻作为当前时刻,将当前时刻之前的、且与所述当前时刻间隔第二预设数量秒的历史时刻对应的数据包作为当前数据包,从所述当前数据包开始进行数据包的发送,直至接收到的应答指令为接收成功的应答指令。
例如,根据第二预设数量的数据包与数据包的发送速度之商确定恢复点距当前时刻t4之间的时间长度,然后找到对应的回卷时间点t3,从t3开始发送数据包。
在实际应用中还可以,t4时刻发送的是第100个数据包,此时接收到了卷回指令,在第二预设数量为20的情况下,数据包发送端从第80个数据包开始重新发送数据包。
应用本发明实施例3,可以在数据包故障时进行数据包的卷回发送,避免了数据包的中断,进而提高了数据包发送的可靠性。
另外,目前,各大厂商利用的主要方法为基于服务质量QoS的扩展,主要是对数据流标识优先级,基于优先级策略转发。然而,基于QoS的通信保障只能提供基于数据流的优先级,不能进一步提供针对节点、业务和数据流叠加的优先级区分。也就是说,基于服务质量QoS扩展的方法适合在局域网等组网拓扑简单的环境中,在跨域拓扑,以及网络拥塞等复杂网络环境中缺乏对数据流的多层级服务质量保证。因此,现有技术中存在复杂网络环境中数据流调度效果不理想。
本发明公开了AIRT-ROS虚拟网卡可靠性检测及恢复方案,即提出具有容错功能的AIRT-ROS虚拟网卡驱动设计,具体包括AIRT-ROS虚拟网卡双驱动冗余备份及智能切换技术,这项技术基于双驱动冗余备份及智能切换技术采用旁连可靠性模型,主要内容涉及AIRT-ROS虚拟网卡转发链路及其可靠性检测方法,具体包括修改虚拟网卡的路由表,在虚拟网卡构造链路进行通信,虚拟网卡转发链路保活策略;提出虚拟网卡错误恢复方案,包括指令复执,即当应用软件中的监测点检测出当前接收到的数据包有异常,通知虚拟网卡反复执行当前数据包的接收动作。数据包发送卷回,在虚拟网卡或者应用程序检测到数据包异常或者丢失的情况下,通知虚拟网卡重新发送数据包的过程。应用本发明实施例提高了数据传输的可靠性。
与本发明图1所示实施例相对应,本发明实施例还提供了一种虚拟转发器的控制装置。
图7为本发明实施例提供的一种虚拟转发器的控制装置的结构示意图,如图7所示,应用于数据包发送端,所述装置包括:
建立模块701,用于每个虚拟网卡对应至少两个虚拟转发器,将其中的一个虚拟转发器作为当前虚拟转发器;并将用于发送数据包的路由同步至各个虚拟转发器中,其中,所述虚拟网卡是基于独立物理网卡建立的;
第一判断模块702,用于使备用转发器探测当前工作的虚拟转发器的状态,判断所述当前虚拟转发器是否发生故障;
第一发送模块703,用于在所述第一判断模块702的判断结果为是的情况下,将除当前虚拟转发器中的一个虚拟转发器作为当前虚拟转发器进行数据包的发送。
应用本发明图7所示实施例,能够进行AIRT-ROS虚拟网卡的虚拟转发器的智能切换,即一个虚拟转发器作为主虚拟转发器正常工作,其他的虚拟转发器作为备用虚拟转发器处于激活状态,当虚拟转发器出错时,AIRT-ROS系统自动切换到备份虚拟转发器驱动,这样可保证整个通信系统在主虚拟转发器出现故障的情况下仍能可靠的工作。
在本发明实施例的一种具体实施方式中,所述装置还包括:第二判断模块,用于:
判断当前虚拟转发器使用的当前路由链路是否可以用于数据包的发送;
若否,从当前虚拟转发器中的备用路由链路进行数据包的转发,其中,所述备用路由链路是预先存储在路由数据中的。
在本发明实施例的一种具体实施方式中,所述第一发送模块703,用于:
21)、设置定时器,以可配置的固定频率持续向当前转发器发送心跳包,并接收当前转发器返回的对应于所述心跳包的应答;
22)、在未接收到所述应答数据的情况下,再次发送心跳包,并累计未能收到对应应答数据的心跳包的数量;
23)、在未能收到对应应答数据的心跳包的数量达到第一预设数量时,判定所述当前虚拟转发器发生故障;
24)、在未能收到对应应答数据的心跳包的数量未达到第一预设数量时,将所累计的未能收到对应应答数据的心跳包的数量清零,并返回执行步骤21)。
在本发明实施例的一种具体实施方式中,所述装置还包括:第一接收模块,用于:
接收当前路由链路的目的端口所属设备针对所发送数据包的应答指令,其中,所述应答指令为对应于数据发送端的数据接收端发送的;
解析所述应答指令,并判断所述应答指令是否为复执指令;
若是,重复发送对应于所述应答指令的数据包,直至接收到的应答指令为接收成功的应答指令。
在本发明实施例的一种具体实施方式中,所述应答指令的生成过程包括:
数据包接收端接收数据包发送端发送的数据包;根据所述数据包中携带的标识信息,判断所接收的数据包是否异常,其中,所述异常,包括:数据包损坏、数据包的标识信息不对应或者数据包数据量不对应;若是,将复执指令作为应答指令发送给数据发送端,以使数据发送端解析所述应答指令,并判断所述应答指令是否为复执指令。
在本发明实施例的一种具体实施方式中,所述装置还包括:第二接收模块,用于:
接收当前路由链路的目的端口所属设备针对所发送数据包的应答指令;
解析所述应答指令,并判断所述应答指令是否为卷回指令;
若是,将所述数据包作为当前数据包,将接收所述当前数据包的时刻作为当前时刻,将当前时刻之前的、且与所述当前时刻间隔第二预设数量秒的历史时刻对应的数据包作为当前数据包,从所述当前数据包开始进行数据包的发送,直至接收到的应答指令为接收成功的应答指令。
在本发明实施例的一种具体实施方式中,所述装置包括:
第三接收模块,用于接收数据包发送端发送的数据包;
第三判断模块,用于根据所述数据包中携带的标识信息,判断所接收的数据包是否异常,其中,所述异常,包括:数据包损坏、数据包的标识信息不对应或者数据包数据量不对应;
第一发送模块703,用于在所述第三判断模块的判断结果为是的情况下,将复执指令作为应答指令发送给数据发送端,以使数据发送端解析所述应答指令,并判断所述应答指令是否为复执指令。
在本发明实施例的一种具体实施方式中,所述应答指令的生成过程包括:
数据包接收端接收数据包发送端发送的数据包;根据所述数据包中携带的标识信息,判断所接收的数据包是否异常和/或丢失,其中,所述异常,包括:数据包损坏、数据包的标识信息不对应或者数据包数据量不对应;若是,将卷回指令作为应答指令发送给数据发送端,以使数据发送端解析所述应答指令,并判断所述应答指令是否为卷回指令。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种虚拟转发器的控制方法,其特征在于,应用于数据包发送端,所述方法包括:
1)、每个虚拟网卡对应至少两个虚拟转发器,将其中的一个虚拟转发器作为当前虚拟转发器;并将用于发送数据包的路由同步至各个虚拟转发器中,其中,所述虚拟网卡是基于独立物理网卡建立的;
判断当前虚拟转发器使用的当前路由链路是否可以用于数据包的发送;
若否,从当前虚拟转发器中的备用路由链路进行数据包的转发,其中,所述备用路由链路是预先存储在路由数据中的;
其中,要实现虚拟网卡的备用路由链路,虚拟网卡只需要处理不在己知路由范围内的目的地址,将默认路由0.0.0.0/0拆为0.0.0.0/1和128.0.0.0/1两段地址,在AIRT-ROS系统启动时向虚拟网卡的路由表中插入这两段地址,连接关闭时需要删除这两段地址;
2)、如果当前虚拟转发器为虚拟转发器1,可以周期性的将虚拟转发器1切换为虚拟转发器2,此时当前虚拟转发器切换为虚拟转发器2,并对被替换的虚拟转发器1进行自检,在自检结果正常的情况下,再将当前虚拟转发器切换为虚拟转发器1;
备用转发器探测当前虚拟转发器的状态,判断所述当前虚拟转发器是否发生故障;包括:
21)、设置定时器,以可配置的固定频率持续向当前转发器发送心跳包,并接收当前转发器返回的对应于所述心跳包的应答;
22)、在未接收到应答数据的情况下,再次发送心跳包,并累计未能收到对应应答数据的心跳包的数量;
23)、在未能收到对应应答数据的心跳包的数量达到第一预设数量时,判定所述当前虚拟转发器发生故障;
24)、在未能收到对应应答数据的心跳包的数量未达到第一预设数量时,将所累计的未能收到对应应答数据的心跳包的数量清零,并返回执行步骤21);
3)、若是,将除当前虚拟转发器中的一个虚拟转发器作为当前虚拟转发器进行数据包的发送;能够进行AIRT-ROS虚拟网卡的虚拟转发器的智能切换,即一个虚拟转发器作为主虚拟转发器正常工作,其他的虚拟转发器作为备用虚拟转发器处于激活状态,当主虚拟转发器出错时,AIRT-ROS系统自动切换到备份虚拟转发器。
2.根据权利要求1所述的一种虚拟转发器的控制方法,其特征在于,所述方法还包括:接收当前路由链路的目的端口所属设备针对所发送数据包的应答指令,其中,所述应答指令为对应于数据发送端的数据接收端发送的;
解析所述应答指令,并判断所述应答指令是否为复执指令;
若是,重复发送对应于所述应答指令的数据包,直至接收到的应答指令为接收成功的应答指令。
3.根据权利要求2所述的一种虚拟转发器的控制方法,其特征在于,所述应答指令的生成过程包括:数据包接收端接收数据包发送端发送的数据包;根据所述数据包中携带的标识信息,判断所接收的数据包是否异常,其中,所述异常,包括:数据包损坏、数据包的标识信息不对应或者数据包数据量不对应;若是,将复执指令作为应答指令发送给数据发送端,以使数据发送端解析所述应答指令,并判断所述应答指令是否为复执指令。
4.根据权利要求1所述的一种虚拟转发器的控制方法,其特征在于,所述方法还包括:接收当前路由链路的目的端口所属设备针对所发送数据包的应答指令;
解析所述应答指令,并判断所述应答指令是否为卷回指令;
若是,将所述数据包作为当前数据包,将接收所述当前数据包的时刻作为当前时刻,将当前时刻之前的、且与所述当前时刻间隔第二预设数量秒的历史时刻对应的数据包作为当前数据包,从所述当前数据包开始进行数据包的发送,直至接收到的应答指令为接收成功的应答指令。
5.根据权利要求4所述的一种虚拟转发器的控制方法,其特征在于,所述应答指令的生成过程包括:数据包接收端接收数据包发送端发送的数据包;根据所述数据包中携带的标识信息,判断所接收的数据包是否异常和/或丢失,其中,所述异常,包括:数据包损坏、数据包的标识信息不对应或者数据包数据量不对应;若是,将卷回指令作为应答指令发送给数据发送端,以使数据发送端解析所述应答指令,并判断所述应答指令是否为卷回指令。
6.一种虚拟转发器的控制装置,其特征在于,应用于数据包发送端,所述装置包括:建立模块,用于每个虚拟网卡对应至少两个虚拟转发器,将其中的一个虚拟转发器作为当前虚拟转发器;并将用于发送数据包的路由同步至各个虚拟转发器中,其中,所述虚拟网卡是基于独立物理网卡建立的;
第二判断模块,用于判断当前虚拟转发器使用的当前路由链路是否可以用于数据包的发送;
若否,从当前虚拟转发器中的备用路由链路进行数据包的转发,其中,所述备用路由链路是预先存储在路由数据中的;
其中,要实现虚拟网卡的备用路由链路,虚拟网卡只需要处理不在己知路由范围内的目的地址,将默认路由0.0.0.0/0拆为0.0.0.0/1和128.0.0.0/1两段地址,在AIRT-ROS系统启动时向虚拟网卡的路由表中插入这两段地址,连接关闭时需要删除这两段地址;
第一判断模块,用于如果当前虚拟转发器为虚拟转发器1,可以周期性的将虚拟转发器1切换为虚拟转发器2,此时虚拟转发器2为当前虚拟转发器;并对被替换的虚拟转发器1进行自检,在自检结果正常的情况下,再将当前虚拟转发器切换为虚拟转发器1;
用于使备用转发器探测当前虚拟转发器的状态,判断所述当前虚拟转发器是否发生故障;具体的:
21)、设置定时器,以可配置的固定频率持续向当前转发器发送心跳包,并接收当前转发器返回的对应于所述心跳包的应答;
22)、在未接收到应答数据的情况下,再次发送心跳包,并累计未能收到对应应答数据的心跳包的数量;
23)、在未能收到对应应答数据的心跳包的数量达到第一预设数量时,判定所述当前虚拟转发器发生故障;
24)、在未能收到对应应答数据的心跳包的数量未达到第一预设数量时,将所累计的未能收到对应应答数据的心跳包的数量清零,并返回执行步骤21);
第一发送模块,用于在所述第一判断模块的判断结果为是的情况下,将除当前虚拟转发器中的一个虚拟转发器作为当前虚拟转发器进行数据包的发送;其中,能够进行AIRT-ROS虚拟网卡的虚拟转发器的智能切换,即一个虚拟转发器作为主虚拟转发器正常工作,其他的虚拟转发器作为备用虚拟转发器处于激活状态,当虚拟转发器出错时,AIRT-ROS系统自动切换到备份虚拟转发器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010542150.0A CN111683009B (zh) | 2020-06-15 | 2020-06-15 | 一种虚拟转发器的控制方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010542150.0A CN111683009B (zh) | 2020-06-15 | 2020-06-15 | 一种虚拟转发器的控制方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111683009A CN111683009A (zh) | 2020-09-18 |
CN111683009B true CN111683009B (zh) | 2022-12-16 |
Family
ID=72455070
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010542150.0A Active CN111683009B (zh) | 2020-06-15 | 2020-06-15 | 一种虚拟转发器的控制方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111683009B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018188313A1 (zh) * | 2017-04-12 | 2018-10-18 | 中兴通讯股份有限公司 | 备份网络中的业务切换方法及装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9907096B2 (en) * | 2013-09-27 | 2018-02-27 | Solacom Technologies Inc. | Recovery of established emergency video calls |
CN105553866A (zh) * | 2014-10-29 | 2016-05-04 | 中兴通讯股份有限公司 | 一种流量负载均衡方法及路由设备 |
CN106559739B (zh) * | 2016-09-28 | 2020-03-20 | 深圳成谷科技有限公司 | 适于蓝牙低功耗无线通信系统的轻量级数据传输方法 |
CN108632155B (zh) * | 2017-03-16 | 2021-11-23 | 网宿科技股份有限公司 | 云平台流量调度方法和系统、计算机可读的存储介质 |
US10291433B2 (en) * | 2017-07-07 | 2019-05-14 | Juniper Networks, Inc. | Signaling multicast information to a redundant multi-homing router for a layer 2 virtual private network |
-
2020
- 2020-06-15 CN CN202010542150.0A patent/CN111683009B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018188313A1 (zh) * | 2017-04-12 | 2018-10-18 | 中兴通讯股份有限公司 | 备份网络中的业务切换方法及装置 |
Non-Patent Citations (1)
Title |
---|
基于MPLS L2VPN技术的VPWS冗余备份的设计与实现;孙文胜等;《计算机系统应用》;20101115(第11期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111683009A (zh) | 2020-09-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10218592B2 (en) | Method, device and system for performing bidirectional forwarding detection on aggregated link | |
EP1958400B1 (en) | Managing the distribution of control protocol information in a network node | |
US8305882B2 (en) | Methods, systems, and computer program products for detecting and/or correcting faults in a multiprotocol label switching network by using redundant paths between nodes | |
US8098682B2 (en) | System and method for interfacing with a management system | |
US8306039B2 (en) | Methods and systems for automatic transport path selection for multi-homed entities in stream control transmission protocol | |
US7706281B2 (en) | Selecting paths in multi-homed transport-layer network associations | |
US20100149969A1 (en) | BFD rate-limiting and automatic session activation | |
US20140376373A1 (en) | Congestion notification in leaf and spine networks | |
WO2008080792A1 (en) | Path mtu discovery in network system | |
US8520509B2 (en) | System and a method for routing data traffic | |
US20060133287A1 (en) | Frame forwarding device and method for staying loop of frame | |
US10432519B2 (en) | Packet redirecting router | |
US7974188B2 (en) | Repeater and communication method | |
CN101425942A (zh) | 一种实现双向转发检测的方法、装置及系统 | |
WO2018140880A1 (en) | Method and apparatus for managing routing disruptions in a computer network | |
US20060002306A1 (en) | Failure detection of path information corresponding to a transmission path | |
JP4611863B2 (ja) | ループ検出方法およびループ検出装置 | |
CN111683009B (zh) | 一种虚拟转发器的控制方法及装置 | |
US20080069106A1 (en) | Communication apparatus | |
Cisco | Bridging and IBM Networking Command Reference Cisco IOS Release 11.3 | |
Cisco | Interface Configuration Commands | |
Cisco | Novell IPX Commands | |
Cisco | Novell IPX Commands | |
Cisco | Interface Configuration Commands | |
Cisco | Configuring Novell IPX |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220920 Address after: 236000 room 316, building 3, Zone C, intelligent technology park, No. 3963 Susong Road, Hefei Economic and Technological Development Zone, Anhui Province Applicant after: Hefei Hagong Xuanyuan Intelligent Technology Co.,Ltd. Address before: Room 6012, Haiheng building, No.6 Cuiwei Road, Hefei Economic and Technological Development Zone, Anhui Province Applicant before: HRG INTERNATIONAL INSTITUTE FOR RESEARCH & INNOVATION |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |