CN101835195B - Byzantine failure tolerance method for improving reliability of wireless Mesh backbone network - Google Patents
Byzantine failure tolerance method for improving reliability of wireless Mesh backbone network Download PDFInfo
- Publication number
- CN101835195B CN101835195B CN2010101215229A CN201010121522A CN101835195B CN 101835195 B CN101835195 B CN 101835195B CN 2010101215229 A CN2010101215229 A CN 2010101215229A CN 201010121522 A CN201010121522 A CN 201010121522A CN 101835195 B CN101835195 B CN 101835195B
- Authority
- CN
- China
- Prior art keywords
- node
- information
- data
- byzantine
- backup
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 29
- 230000007246 mechanism Effects 0.000 claims description 4
- 238000012217 deletion Methods 0.000 claims 1
- 230000037430 deletion Effects 0.000 claims 1
- 238000000151 deposition Methods 0.000 claims 1
- 230000002159 abnormal effect Effects 0.000 abstract description 9
- 230000006399 behavior Effects 0.000 abstract 1
- 230000002708 enhancing effect Effects 0.000 abstract 1
- 230000004044 response Effects 0.000 abstract 1
- 230000008569 process Effects 0.000 description 17
- 230000005540 biological transmission Effects 0.000 description 15
- 230000006872 improvement Effects 0.000 description 5
- 230000005856 abnormality Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 230000033001 locomotion Effects 0.000 description 4
- 230000003044 adaptive effect Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 3
- 230000006854 communication Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 235000008694 Humulus lupulus Nutrition 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供的是一种提高无线Mesh骨干网可靠性的拜占庭容错方法。包括拜占庭单元的查找和建立以及数据备份与容错。应用提出的拜占庭算法对现有路由协议进行改进,针对不同情况的网络攻击行为,或者节点本身的异常情况,选择相应的节点数据信息进行备份。当攻击行为出现,遭受攻击的节点某些信息被窜改,或者在网络中出现冒充节点,以及节点出现人为故障时,融入拜占庭原理的路由协议就会通过判断异常节点所在拜占庭单元中其它节点的备份信息,得出正确的节点信息,从而排除干扰,增强网络的容错能力,使得无线Mesh骨干网的可靠性得到提升。
The invention provides a Byzantine fault tolerance method for improving the reliability of the wireless Mesh backbone network. Including the search and establishment of Byzantine units, as well as data backup and fault tolerance. Apply the proposed Byzantine algorithm to improve the existing routing protocol, and select the corresponding node data information for backup in response to different network attack behaviors or abnormal conditions of the node itself. When an attack occurs, some information of the attacked node is tampered with, or a fake node appears in the network, and the node has a human failure, the routing protocol integrated with the Byzantine principle will judge the backup of other nodes in the Byzantine unit where the abnormal node is located. information to obtain correct node information, thereby eliminating interference, enhancing the fault tolerance of the network, and improving the reliability of the wireless Mesh backbone network.
Description
技术领域 technical field
本发明涉及无线网络技术领域、可信计算领域,具体来说是一种提高无线Mesh骨干网可靠性的拜占庭容错策略。The invention relates to the field of wireless network technology and the field of trusted computing, in particular to a Byzantine fault-tolerant strategy for improving the reliability of a wireless Mesh backbone network.
背景技术 Background technique
无线Mesh网(Wireless Mesh Network,简称WMN)是以移动Ad hoc网络为基础研究开发的一种基于多条路由、支持多点对多点技术的新型网络结构,具有动态扩展、自组网、自管理、自动修复、自我平衡、移动宽带的特性,是一种大容量、高速率、覆盖范围广的网络,可以成为宽带接入的一种有效手段。其先期投入低、渐进部署、易维护、网络健壮以及可靠的服务范围等等这些特点更有助于无线Mesh网成为未来的核心通信网络之一。Wireless Mesh Network (WMN for short) is a new type of network structure based on multiple routes and supporting multipoint-to-multipoint technology researched and developed on the basis of mobile Ad hoc network. With the characteristics of management, automatic repair, self-balancing, and mobile broadband, it is a large-capacity, high-speed, and wide-coverage network that can become an effective means of broadband access. Its characteristics of low initial investment, gradual deployment, easy maintenance, robust network and reliable service range will help the wireless mesh network become one of the core communication networks in the future.
无线Mesh网良好的发展前景使得对其可靠性的研究显得尤为重要,刨除硬件因素,良好的路由协议是其可靠性的重要保证。在无线Mesh网路由协议可靠性设计方面,需要考虑以下因素:The good development prospect of wireless Mesh network makes the research on its reliability particularly important. Apart from hardware factors, a good routing protocol is an important guarantee for its reliability. In terms of the reliability design of wireless mesh network routing protocols, the following factors need to be considered:
(1)路由判据。许多已有的Ad hoc网络路由协议均以最小跳数作为路由判据,但在大多数情况下,这种路由判据的性能在无线Mesh网中并不是最优的,由于干扰冲突、通信距离等因素的影响,基于这种路由判据生成的路径链路质量将会恶化,从源节点到目的节点的端到端的吞吐量、误码率等性能将变得非常差。为了解决这种问题,就要求无线Mesh网采用一些新的路由判据,而且该判据能正确反映出链路质量对各指标的影响。(1) Routing criterion. Many existing Ad hoc network routing protocols use the minimum hop count as the routing criterion, but in most cases, the performance of this routing criterion is not optimal in wireless Mesh networks, due to interference conflicts, communication distances, etc. Influenced by other factors, the link quality of the path generated based on this routing criterion will deteriorate, and the end-to-end throughput and bit error rate from the source node to the destination node will become very poor. In order to solve this problem, some new routing criteria are required for wireless mesh networks, and the criteria can correctly reflect the influence of link quality on each index.
(2)负载均衡。在无线Mesh网中,所有节点通过路由协议共享网络资源。因此,无线Mesh网路由协议必须满足负载均衡的这一要求。例如当网络中某些节点发生拥塞,并成为整个网络的瓶颈节点(Mesh路由器)时,新的业务流应能“绕过”该节点,自动选择其他路径进行数据传输。路由判据也需要在一定程度上满足负载均衡的要求。(2) Load balancing. In a wireless Mesh network, all nodes share network resources through routing protocols. Therefore, wireless Mesh network routing protocols must meet this requirement of load balancing. For example, when some nodes in the network are congested and become the bottleneck node (Mesh router) of the entire network, new business flows should be able to "bypass" this node and automatically select other paths for data transmission. Routing criteria also need to meet the requirements of load balancing to a certain extent.
(3)路由容错:在无线Mesh网中,路由节点相对固定,但有时会因为数据冲突而产生路由错误,而移动节点的不确定性也会影响链路的联通状况,甚至导致链路失效,这就需要无线Mesh网的路由协议在路由发生错误时,尽快完成路由重建,以避免服务中断;或是因新的可用节点出现而生成新的链路。(3) Routing fault tolerance: In wireless Mesh networks, routing nodes are relatively fixed, but sometimes routing errors may occur due to data conflicts, and the uncertainty of mobile nodes will also affect the connectivity of the link, and even lead to link failure. This requires the routing protocol of the wireless mesh network to complete routing reconstruction as soon as possible when a routing error occurs, so as to avoid service interruption; or generate a new link due to the emergence of a new available node.
(4)路由安全:一个高效的路由协议如果得不到很好的保护,恶意的攻击者可能对路由协议造成破坏甚至使路由协议完全瘫痪。在无线Mesh网中,由于Mesh客户端也具有路由的角色,Mesh节点可以根据路由信息创建、删除或者更新网络中路由路径。这个事实也是无线Mesh网和Ad hoc网路由协议中的一个共同的重要弱点,因为恶意节点可以产生错误的路由信息改变路由的方向或者是简单地截断路由。另外,攻击者可以通过攻击路由协议来误导路由,从而导致网络的崩溃。提高路由协议的安全性,也是对路由容错性能的更高要求。(4) Routing security: If an efficient routing protocol is not well protected, malicious attackers may cause damage to the routing protocol or even completely paralyze the routing protocol. In the wireless Mesh network, because the Mesh client also has the role of routing, Mesh nodes can create, delete or update routing paths in the network according to routing information. This fact is also a common important weakness in wireless Mesh network and Ad hoc network routing protocols, because malicious nodes can generate wrong routing information to change the direction of routing or simply truncate routing. In addition, the attacker can mislead the routing by attacking the routing protocol, thus causing the collapse of the network. Improving the security of routing protocols is also a higher requirement for routing fault-tolerant performance.
由于在现有的很多应用情况下,无线Mesh网的无线设备布置的区域离人群较近容易受到人为的破坏,网络节点本身也极易遭受其它节点的攻击、干扰、窃听,所以安全是无线Mesh网必须解决的重要问题之一。为了提高无线Mesh网的可靠性,需要对现有的路由协议进行改进,当前的改进策略主要是通过对合法节点信息的加密、认证等方式等来提高网络协议的安全性能,从而提高无线Mesh网的可靠性。In many existing applications, the area where the wireless devices of the wireless Mesh network are arranged is close to the crowd and is vulnerable to human damage, and the network nodes themselves are also extremely vulnerable to attacks, interference, and eavesdropping by other nodes, so security is the key to wireless Mesh networks. One of the important problems that the network must solve. In order to improve the reliability of the wireless Mesh network, it is necessary to improve the existing routing protocol. The current improvement strategy is mainly to improve the security performance of the network protocol through encryption and authentication of legal node information, thereby improving the reliability of the wireless Mesh network. reliability.
拜占庭原理是可信计算中的一个容错原理,该原理可以使得系统能够在一个或者多个系统部件工作异常的情况下,仍然能够不受影响的正常工作。该原理在可信计算、容错以及网络安全等方面有非常广泛的应用。拜占庭原理的本质是保持并行计算中数据一致性问题的一种抽象的表达,是以数据备份作为基础来实现的,即一个系统中的各个组成部分就某一数据或指令信息彼此进行交换,最终系统中的有效部分将收到的信息以少数服从多数的原则选出正确的数据或指令,从而保证系统的可靠性。The Byzantine principle is a fault-tolerant principle in trusted computing, which enables the system to work normally without being affected even when one or more system components are working abnormally. This principle has a very wide range of applications in trusted computing, fault tolerance, and network security. The essence of the Byzantine principle is to maintain an abstract expression of the data consistency problem in parallel computing. It is realized on the basis of data backup, that is, each component in a system exchanges a certain data or instruction information with each other, and finally The effective part of the system selects the correct data or instructions from the received information on the principle of minority obeying the majority, so as to ensure the reliability of the system.
发明内容 Contents of the invention
本发明的目的在于提供一种能增强网络的容错能力,使得无线Mesh骨干网的可靠性得到提升的提高无线Mesh骨干网可靠性的拜占庭容错方法。The purpose of the present invention is to provide a Byzantine fault tolerance method for improving the reliability of the wireless Mesh backbone network, which can enhance the fault tolerance capability of the network and improve the reliability of the wireless Mesh backbone network.
本发明的目的是这样实现的:包括拜占庭单元的查找和建立以及数据备份与容错;The purpose of the present invention is achieved in this way: including the search and establishment of Byzantine units and data backup and fault tolerance;
(1)拜占庭单元的查找和建立(1) Search and establishment of Byzantine units
①取出收到路由包中的NoNnode地址和邻节点地址信息;① Take out the NoNnode address and neighbor node address information in the received routing packet;
②路由请求包中加入NoNnode地址信息,即节点在广播路由包时,除了发送自身节点地址信息外,同时将自身收到的邻节点地址信息封装到路由包中一起进行发送;②The NoNnode address information is added to the routing request packet, that is, when the node broadcasts the routing packet, in addition to sending its own node address information, it also encapsulates the neighbor node address information received by itself into the routing packet and sends it together;
③遍历双邻节点表N-Nform,查找收到的节点信息在表中是否存在,若不存在相同节点信息,则将收到的节点信息存入双邻节点表N-Nform中;③Traverse the double neighbor node table N-Nform, find out whether the received node information exists in the table, if there is no identical node information, then store the received node information in the double neighbor node table N-Nform;
④判断等待时间t是否小于TB,是则返回第①步;④ Determine whether the waiting time t is less than T B , if so, return to
⑤遍历双邻节点表,取出不相同的三个邻节点地址;⑤Traverse the double neighbor node table, and take out three different neighbor node addresses;
⑥查找双邻节点表,判断所取的三个节点是否互为邻节点,如果是,首先查找拜占庭单元索引表,查看该节点组是否已经记录,如果没有则将三个节点地址存入索引表,同时自定义单元号存于表中;⑥Look up the double-adjacent node table, and judge whether the three selected nodes are adjacent nodes to each other. If so, first search the Byzantine unit index table to check whether the node group has been recorded. If not, store the addresses of the three nodes into the index table , and the custom unit number is stored in the table;
⑦分别以三个节点为目的节点,转发自身以及除目的节点外其它两个节点的地址,同时附带拜占庭单元序号;⑦ Take the three nodes as the destination nodes, forward the address of itself and the other two nodes except the destination node, and attach the Byzantine unit serial number;
⑧如收到附带拜占庭单元号的节点地址,查看拜占庭单元索引表中该节点组是否已经记录,如果没有,则将收到的三个节点地址,连同拜占庭单元号存入拜占庭单元索引表;⑧If you receive a node address with a Byzantine unit number, check whether the node group has been recorded in the Byzantine unit index table. If not, store the three node addresses received, together with the Byzantine unit number, into the Byzantine unit index table;
⑨双邻节点表是否遍历完,如果没有,则继续选取不同的三个邻节点地址,返回第⑤步;⑨Whether the double-adjacent node list has been traversed, if not, continue to select three different adjacent node addresses, and return to
⑩拜占庭单元的查找和建立结束;⑩The search and establishment of the Byzantine unit is completed;
(2)数据备份与容错策略(2) Data backup and fault tolerance strategy
①选择需要备份的自身节点数据信息;①Select the own node data information that needs to be backed up;
②查找拜占庭单元索引表,将数据信息分别发送给拜占庭单元号相同的3个节点;②Look up the Byzantine unit index table, and send the data information to the three nodes with the same Byzantine unit number;
③对收到的节点数据信息进行判断,如果消息来源与数据信息所属节点为同一节点,将该数据信息存入数据信息备份表,权值记为1;同时查找拜占庭单元索引表,找出与消息来源节点的拜占庭单元号相同的两个节点,将数据信息分别转发给这两个节点;③ Judging the received node data information, if the source of the message is the same node as the node to which the data information belongs, store the data information in the data information backup table, and record the weight as 1; at the same time, search the Byzantine unit index table to find out the The two nodes with the same Byzantine unit number of the source node forward the data information to the two nodes respectively;
④如果消息来源与数据信息所属节点不同,则该信息为非信息所属节点转发的节点信息,此数据信息在数据信息备份表中已经存在,则在数据信息备份表中找到该信息,将其权值加1;④ If the source of the message is different from the node to which the data information belongs, the information is the node information forwarded by the node to which the information does not belong, and the data information already exists in the data information backup table, then find the information in the data information backup table and assign
⑤如果接收到的转发信息与已存储的数据信息不同,则判断已存储信息的权值是否大于1,是,则丢弃当前收到的数据信息;否则,将收到的数据信息存入数据备份表,权值记为1;⑤ If the received forwarding information is different from the stored data information, then judge whether the weight of the stored information is greater than 1, if yes, then discard the currently received data information; otherwise, store the received data information into the data backup table, the weight is recorded as 1;
⑥遍历信息备份表,如果信息备份表中存在节点名称相同但数据信息不同的项,则判断这些项的权值,以权值高的数据信息作为正确的备份信息,同时删除其它的同名信息;如果这些项的权值相同,则以最新增长权值的数据信息作为正确的备份信息,删除其它的同名信息;⑥Traversing the information backup table, if there are items with the same node name but different data information in the information backup table, then judge the weights of these items, take the data information with high weight as the correct backup information, and delete other information with the same name at the same time; If the weights of these items are the same, use the data information of the latest growth weight as the correct backup information, and delete other information with the same name;
⑦如果接收数据未完成,则返回到第③步;⑦ If the receiving data is not completed, return to
⑧结束。⑧ end.
本发明根据无线Mesh网的结构特点,首先提出无线Mesh网应用拜占庭原理的适应性网络结构,然后以拜占庭原理中“口头协议”解决方案为基础,给出了适合应用于无线Mesh网的拜占庭算法。该算法包括无线Mesh网骨干网节点的拜占庭单元的查找和建立,以及选择备份的数据信息的存储与容错判断两部分。最后给出原理实际应用中的特殊情况的对应策略。According to the structural characteristics of the wireless Mesh network, the present invention firstly proposes the adaptive network structure of the wireless Mesh network applying the Byzantine principle, and then provides a Byzantine algorithm suitable for the wireless Mesh network based on the "oral agreement" solution in the Byzantine principle . The algorithm includes the search and establishment of the Byzantine unit of the wireless Mesh network backbone network node, as well as the storage of selected backup data information and fault-tolerant judgment. Finally, the corresponding strategies for special cases in the practical application of the principle are given.
本发明的方法中涉及到的技术术语的定义为:The definition of technical term involved in the method of the present invention is:
(1)拜占庭单元(Byzantine Unit,UB)(1) Byzantine Unit (U B )
如果网络中的4个节点,它们彼此都能够一跳可达,即彼此互为邻节点,我们将这4个节点组成一个分组,称为拜占庭单元(见图1)。If there are 4 nodes in the network, they can reach each other in one hop, that is, they are adjacent nodes to each other, we will form these 4 nodes into a group, which is called a Byzantine unit (see Figure 1).
(2)邻节点的邻节点(The Neighbor of the Neighbor Node,NoNnode)(2) The Neighbor of the Neighbor Node (NoNnode)
在无线Mesh网中,如果存在这样的三个节点a、b、c,a是b的邻节点,b是c的邻节点,数据信息从a经由b发送到c,我们定义节点a为节点c的邻节点的邻节点。In a wireless Mesh network, if there are three nodes a, b, and c, a is a neighbor of b, b is a neighbor of c, and data information is sent from a to c via b, we define node a as node c Neighbors of neighbors of .
(3)双邻节点表(Neighbor and Neighbor From,N-Nform)(3) Neighbor and Neighbor From, N-Nform
该表用来存储节点收到的邻节点地址及NoNnode地址的信息(表1)。This table is used to store the neighbor node address and NoNnode address information (Table 1) received by the node.
表1双邻节点表结构Table 1 Structure of dual neighbor node table
该表的数据结构为:The data structure of the table is:
struct N-Nform{struct N-Nform{
char*NoNnode_Address;char*NoNnode_Address;
char*Neighbor_Node_Address;char*Neighbor_Node_Address;
};};
(4)拜占庭单元索引表(Byzantine Unit Form,Bform)(4) Byzantine Unit Form (Bform)
该表用来存储节点所在的拜占庭单元节点地址及拜占庭单元号(表2)。This table is used to store the Byzantine unit node address and Byzantine unit number where the node is located (Table 2).
表2拜占庭单元索引表结构Table 2 Byzantine unit index table structure
该表的数据结构为:The data structure of the table is:
struct Bform{struct Bform{
char*IP;char*IP;
char*Byzantine_Unit_num;char*Byzantine_Unit_num;
};};
(5)触发周期(Byzantine Time,TB)(5) Trigger period (Byzantine Time, TB)
触发周期指节点自收到第一个路由包开始等待执行拜占庭查找算法的时间。如果该无线Mesh网中节点的最大度数为N,则TB大小设定为一跳数据传输最大时延的N倍,以确保在TB时间时,节点存储了足够的地址信息。The trigger period refers to the time when the node waits to execute the Byzantine search algorithm since it receives the first routing packet. If the maximum degree of nodes in the wireless Mesh network is N, then the TB size is set to N times the maximum delay of one-hop data transmission to ensure that the nodes store enough address information during the TB time.
(6)数据的权值(The quantity of data,QoD)(6) The weight of data (The quantity of data, QoD)
在拜占庭原理的执行过程中,每个节点将不断的接收、发送数据,同样的数据可能接收多次,我们将该节点接收到相同数据信息的数量定义为这个数据的权值。During the implementation of the Byzantine principle, each node will continuously receive and send data, and the same data may be received multiple times. We define the number of the same data received by the node as the weight of this data.
(7)数据信息备份表(Data Form,Dform)(7) Data information backup table (Data Form, Dform)
该表用来存储选择备份的数据信息,同时记录该数据信息所属的节点名称和数据的权值(表3)。This table is used to store the data information selected for backup, and at the same time record the name of the node to which the data information belongs and the weight of the data (Table 3).
表3数据信息备份表结构Table 3 Data information backup table structure
该表的数据结构为:The data structure of the table is:
struct Dform{struct Dform{
char*Node_Name;char*Node_Name;
char*Data;char*Data;
char*Data_Quantity;char*Data_Quantity;
char*Time;char*Time;
};};
本发明中的无线Mesh网适应性结构为:The wireless Mesh network adaptive structure among the present invention is:
将拜占庭容错原理应用于网络可靠性,对无线Mesh网的结构要有一定的要求。为了更好的发挥拜占庭原理的作用,考虑到无线Mesh网中用户节点的移动性,拜占庭算法将只针对无线Mesh网的骨干节点。Applying the principle of Byzantine fault tolerance to network reliability requires certain requirements for the structure of the wireless mesh network. In order to better play the role of the Byzantine principle, considering the mobility of user nodes in the wireless Mesh network, the Byzantine algorithm will only target the backbone nodes of the wireless Mesh network.
首先提出在无线Mesh网中应用拜占庭原理的适应性结构约束,包括以下两点:Firstly, the adaptive structural constraints of applying the Byzantine principle in the wireless Mesh network are proposed, including the following two points:
①结构下限:网络节点数量是4,且所有的节点彼此均能一跳可达。①Structure lower limit: the number of network nodes is 4, and all nodes can reach each other with one hop.
②适应性要求:网络中的任意节点(Internet接入点除外)至少保证有3个邻居节点一跳可达,且这3个节点彼此能够一跳可达。即网络中的任意节点都要至少包含在一个“拜占庭单元”中。② Adaptability requirements: Any node in the network (except the Internet access point) is guaranteed to have at least three neighbor nodes reachable by one hop, and these three nodes can be reached by one hop to each other. That is, any node in the network must be included in at least one "Byzantine unit".
本发明基于拜占庭原理,给出提高无线Mesh骨干网可靠性的拜占庭容错策略,应用提出的拜占庭算法对现有路由协议进行改进,主要用来提高无线Mesh骨干网针对节点的容错及入侵容忍能力,和能够容忍因节点故障或攻击行为导致的链路失效或错误的链路状况判断的能力。改进后的路由协议将具有以下优点:Based on the Byzantine principle, the present invention provides a Byzantine fault-tolerant strategy for improving the reliability of the wireless Mesh backbone network, and uses the proposed Byzantine algorithm to improve the existing routing protocol, and is mainly used to improve the fault tolerance and intrusion tolerance of the wireless Mesh backbone network for nodes. And the ability to tolerate link failure or wrong link status judgment caused by node failure or attack behavior. The improved routing protocol will have the following advantages:
(1)提高无线Mesh网路由协议可靠性的策略不同于以往的节点、数据加密和认证的方式,而是采取网络节点彼此进行信息备份的方法,无需数据的加解密过程,实现方式更为简单快捷。(1) The strategy to improve the reliability of the wireless Mesh network routing protocol is different from the previous node, data encryption and authentication methods, but adopts the method of network nodes performing information backup with each other, without the need for data encryption and decryption process, and the implementation method is simpler fast.
(2)通过拜占庭算法的数据备份机制,改进后的路由协议,当链路中的某一节点因链路故障、自身异常或遭受攻击而出现数据错传或丢包时,使数据传输能够正确进行,不需要像传统路由协议那样选择重传数据包或用新的链路进行传输。改进后的路由协议与传统路由协议相比在执行效率和效果方面具有明显的优势。(2) Through the data backup mechanism of the Byzantine algorithm and the improved routing protocol, when a node in the link has data error transmission or packet loss due to link failure, self abnormality or attack, the data transmission can be correct It does not need to choose to retransmit data packets or use new links for transmission like traditional routing protocols. Compared with traditional routing protocols, the improved routing protocol has obvious advantages in execution efficiency and effect.
(3)通过拜占庭算法的数据容错机制,改进后的路由协议可以辨识出因攻击而导致的虚假链路失效数据包,从而避免了不必要的重新发起链路过程。(3) Through the data fault tolerance mechanism of the Byzantine algorithm, the improved routing protocol can identify the false link failure data packets caused by the attack, thus avoiding unnecessary re-initiation of the link process.
(4)改进后的路由协议与改进之前相比,容错能力明显提高(见图6、图7),因此达到了提高无线Mesh骨干网可靠性的目的。(4) Compared with the improved routing protocol, the fault-tolerant ability is significantly improved (see Figure 6 and Figure 7), so the purpose of improving the reliability of the wireless Mesh backbone network is achieved.
附图说明 Description of drawings
图1a和图1b拜占庭单元基本型;The basic type of Byzantine unit in Figure 1a and Figure 1b;
图2a-图2c拜占庭单元建立过程模拟;其中图2a.WMN骨干节点、图2b.一跳链路拓扑结构、图2c.拜占庭单元建立;Figure 2a-Figure 2c simulation of Byzantine unit establishment process; among them, Figure 2a. WMN backbone node, Figure 2b. One-hop link topology, and Figure 2c. Byzantine unit establishment;
图3拜占庭单元建立过程样例;Figure 3 is an example of the process of establishing a Byzantine unit;
图4拜占庭原理实际应用中遇到的特殊情况;Figure 4 The special situation encountered in the practical application of the Byzantine principle;
图5节点信息的备份;Figure 5 backup of node information;
图6改进后的BAODV协议与AODV协议随网络失效节点数增加的包传输率对比;Figure 6. Comparison of the packet transmission rate between the improved BAODV protocol and the AODV protocol as the number of network failure nodes increases;
图7改进后的BDSR协议与DSR协议随网络失效节点数增加的包传输率对比;Figure 7. Comparison of the packet transmission rate between the improved BDSR protocol and the DSR protocol as the number of network failure nodes increases;
图8数据传输时的拜占庭容错情况;Figure 8 Byzantine fault tolerance during data transmission;
图9Wormhole攻击;Figure 9 Wormhole attack;
图10拜占庭容错后的Wormhole攻击;Figure 10 Wormhole attack after Byzantine fault tolerance;
图11链路失效包(RERR)的拜占庭容错。Figure 11 Byzantine Fault Tolerance for Link Failure Packets (RERR).
具体实施方式 Detailed ways
下面结合附图举例对本发明做更详细地描述:The present invention is described in more detail below in conjunction with accompanying drawing example:
(1)拜占庭单元的查找和建立(1) Search and establishment of Byzantine units
算法的作用是在无线Mesh网骨干网节点中,找到拜占庭单元结构,同时处在单元中的节点记录该单元的地址信息,为接下来的数据备份做准备(见图2)。The function of the algorithm is to find the Byzantine unit structure in the backbone network nodes of the wireless mesh network, and at the same time, the nodes in the unit record the address information of the unit to prepare for the next data backup (see Figure 2).
该部分拜占庭算法执行时将依据以下两种节点信息:The execution of this part of the Byzantine algorithm will be based on the following two types of node information:
①NoNnode地址;①NoNnode address;
②邻节点地址。②adjacent node address.
需要注意的是,现有的路由协议的路由数据包中并不含有NoNnode地址信息,因此在算法应用时要对现有的路由协议路由数据包信息进行修改,加入NoNnode地址信息。It should be noted that the routing data packet of the existing routing protocol does not contain NoNnode address information, so when the algorithm is applied, the routing data packet information of the existing routing protocol must be modified to add the NoNnode address information.
现在将拜占庭单元查找和建立的算法思想描述如下:Now the algorithm idea of Byzantine unit search and establishment is described as follows:
①取出收到路由包中的NoNnode地址和邻节点地址信息。① Take out the NoNnode address and neighbor node address information in the received routing packet.
②路由请求包中加入NoNnode地址信息,即节点在广播路由包时,除了发送自身节点地址信息外,同时将自身收到的邻节点地址信息封装到路由包中一起进行发送。②The NoNnode address information is added to the routing request packet, that is, when the node broadcasts the routing packet, in addition to sending its own node address information, it also encapsulates the neighbor node address information received by itself into the routing packet and sends it together.
③遍历双邻节点表N-Nform,查找收到的节点信息在表中是否存在(表元素要按位对应查找),若不存在相同节点信息,则将收到的节点信息存入双邻节点表N-Nform中。③Traverse the double-adjacent node table N-Nform to find out whether the received node information exists in the table (the table elements need to be searched in bit-by-bit correspondence), if there is no identical node information, then store the received node information into the double-neighbor node Form N-Nform.
④判断等待时间t是否小于TB,是则返回第①步。④ Determine whether the waiting time t is less than T B , if so, return to
⑤遍历双邻节点表,取出不相同的三个邻节点地址。⑤Traversing the double-adjacent node table, take out three different adjacent node addresses.
⑥查找双邻节点表,判断所取的三个节点是否互为邻节点,如果是,首先查找拜占庭单元索引表,查看该节点组是否已经记录,如果没有则将三个节点地址存入索引表,同时自定义单元号存于表中。⑥Look up the double-adjacent node table, and judge whether the three selected nodes are adjacent nodes to each other. If so, first search the Byzantine unit index table to check whether the node group has been recorded. If not, store the addresses of the three nodes into the index table , and the custom unit number is stored in the table.
⑦分别以三个节点为目的节点,转发自身以及除目的节点外其它两个节点的地址,同时附带拜占庭单元序号。⑦ Take the three nodes as the destination nodes, forward the address of itself and the other two nodes except the destination node, and attach the Byzantine unit serial number.
⑧如收到附带拜占庭单元号的节点地址,查看拜占庭单元索引表中该节点组是否已经记录,如果没有,则将收到的三个节点地址,连通拜占庭单元号存入拜占庭单元索引表。⑧If you receive a node address with a Byzantine unit number, check whether the node group has been recorded in the Byzantine unit index table. If not, store the received three node addresses together with the Byzantine unit number in the Byzantine unit index table.
⑨双邻节点表是否遍历完,如果没有,则继续选取不同的三个邻节点地址,返回第⑤步。⑨Whether the double-adjacent node list has been traversed, if not, continue to select three different adjacent node addresses, and return to
⑩拜占庭单元的查找和建立结束;⑩The search and establishment of the Byzantine unit is completed;
现在举例说明该部分算法的执行过程。如图3,路由请求包从E点广播。经过TB时间之后,以节点D为参照,该节点的双邻节点表内容如下:Now give an example to illustrate the execution process of this part of the algorithm. As shown in Figure 3, the routing request packet is broadcast from point E. After the TB time, with reference to node D, the content of the node's dual-neighbor node table is as follows:
表4节点D的双邻节点表Table 4 The double-adjacent node list of node D
首先取出表中不相同的三个邻节点地址A、B、C,然后判断这三个节点是否互为一跳的邻节点,即三个节点中任意两个节点的地址是否同时出现在表中的某一行。通过判断,得出A、B、C三个节点满足要求,因此A、B、C以及当前节点D构成拜占庭单元,D节点将A、B、C三个节点的地址存入拜占庭单元索引表中,同时生成拜占庭单元号,并分别向A转发B、C、D;向B转发A、C、D;向C转发A、B、D节点信息以及拜占庭单元号。First, take out the three different adjacent node addresses A, B, and C in the table, and then judge whether these three nodes are one-hop adjacent nodes to each other, that is, whether the addresses of any two nodes among the three nodes appear in the table at the same time a row of . Through judgment, it is concluded that the three nodes A, B, and C meet the requirements, so A, B, C and the current node D constitute a Byzantine unit, and D node stores the addresses of A, B, and C nodes in the Byzantine unit index table , generate Byzantine unit numbers at the same time, and forward B, C, D to A; forward A, C, D to B; forward A, B, D node information and Byzantine unit numbers to C.
算法伪代码如下:The pseudo code of the algorithm is as follows:
1)while(t<TB) /*双邻节点地址的存储与转发*/1) while(t<T B ) /*Storage and forwarding of dual neighbor node addresses*/
2) receive data,save in RREQ;2) receive data, save in RREQ;
3) send Self Address and Neighbor Node Address;3) send Self Address and Neighbor Node Address;
4) if(NoNnode Address||Neighbor Node Address not in N-Nform[])4) if(NoNnode Address||Neighbor Node Address not in N-Nform[])
5) N-Nform[].NoNnode_Address=NoNnode Address;5) N-Nform[].NoNnode_Address=NoNnode Address;
6) N-Nform[].Neighbor_Node_Address=Neighbor Node Address;6) N-Nform[].Neighbor_Node_Address=Neighbor Node Address;
7) end if /*查找当前NoNnode和邻节点地址在7) end if /* Find the address of the current NoNnode and neighbor node in
N-Nform中是否存在,否,则存入*/Whether it exists in N-Nform, if not, it will be stored*/
8)end while8) end while
9)while(N-Nform[]!=NULL)9) while(N-Nform[]!=NULL)
10) select N-Nform[i],N-Nform[j],N-Nform[k];10) select N-Nform[i], N-Nform[j], N-Nform[k];
11) if(N-Nform[i].Neighbor_Node_Address!=11) if(N-Nform[i].Neighbor_Node_Address!=
N-Nform[j].Neighbor_Node_Address!=N-Nform[j].Neighbor_Node_Address! =
N-Nform[k].Neighbor_Node_Address)N-Nform[k].Neighbor_Node_Address)
12) char*A=N-Nform[i].Neighbor_Node_Address;12) char*A=N-Nform[i].Neighbor_Node_Address;
13) char*B=N-Nform[j].Neighbor_Node_Address;13) char*B=N-Nform[j].Neighbor_Node_Address;
14) char*C=N-Nform[k].Neighbor_Node_Address;14) char*C=N-Nform[k].Neighbor_Node_Address;
15) if((AB||BA∈N-Nform[])&&(AC||CA∈N-Nform[])&&15) if((AB||BA∈N-Nform[])&&(AC||CA∈N-Nform[])&&
(BC||CB∈N-Nform[]))/*判断ABC是否互为邻节点*/ (BC||CB∈N-Nform[]))/*Determine whether ABC are adjacent nodes*/
16) A,B,C→Bform[].IP;16) A, B, C→Bform[].IP;
17) num→Bform[].Byzantine_Unit_num;17) num→Bform[].Byzantine_Unit_num;
18) char*D=Self Node Address;18) char*D=Self Node Address;
19) send B,C,D&num to node A;19) send B, C, D&num to node A;
20) send A,C,D&num to node B;20) send A, C, D&num to node B;
21) send A,B,D&num to node C;/*存储并转发拜占庭单元信息*/21) send A, B, D&num to node C; /*store and forward Byzantine unit information*/
22) end if22) end if
23) else23) else
24) break24) break
25) end if25) end if
26)end while26) end while
27)while(receive IP&num) /*接收转发的拜占庭单元信息*/27) while(receive IP&num) /*Receive the forwarded Byzantine unit information*/
28) if(IP&num not in Bform[])28) if(IP&num not in Bform[])
29) IP&num→Bform[];29) IP&num→Bform[];
30)end while30) end while
(2)数据备份与容错(2) Data backup and fault tolerance
拜占庭单元查找、建立完成之后,就要进行数据信息的备份过程,这也是拜占庭算法容忍网络节点异常的主要策略。After the Byzantine unit is searched and established, it is necessary to carry out the backup process of data information, which is also the main strategy of the Byzantine algorithm to tolerate the abnormality of network nodes.
针对不同情况的网络攻击行为,选择相应的节点数据信息进行备份,当攻击行为出现,遭受攻击的节点某些信息被窜改,或者在网络中出现冒充节点时,融入拜占庭原理的路由协议就会通过判断异常节点所在拜占庭单元中其它节点的备份信息,得出正确的节点信息,从而排除干扰。According to different situations of network attack behavior, select the corresponding node data information for backup. When the attack behavior occurs, some information of the attacked node is tampered with, or when a fake node appears in the network, the routing protocol that incorporates the Byzantine principle will pass Judging the backup information of other nodes in the Byzantine unit where the abnormal node is located, and obtaining the correct node information, thereby eliminating interference.
现将该部分算法描述如下:Now this part of the algorithm is described as follows:
①选择需要备份的自身节点数据信息。①Select the own node data information that needs to be backed up.
②查找拜占庭单元索引表,将数据信息分别发送给拜占庭单元号相同的3个节点。②Look up the Byzantine unit index table, and send the data information to the three nodes with the same Byzantine unit number.
③对收到的节点数据信息进行判断,如果消息来源与数据信息所属节点为同一节点,将该数据信息存入数据信息备份表,权值记为1。同时查找拜占庭单元索引表,找出与消息来源节点的拜占庭单元号相同的两个节点,将数据信息分别转发给这两个节点。③ Judging the received node data information, if the source of the message is the same node as the node to which the data information belongs, store the data information in the data information backup table, and record the weight as 1. At the same time, look up the Byzantine unit index table, find out two nodes with the same Byzantine unit number as the source node, and forward the data information to these two nodes respectively.
④如果消息来源与数据信息所属节点不同,则该信息为非信息所属节点转发的节点信息,此数据信息在数据信息备份表中已经存在(1跳信息先于2跳信息到达),则在数据信息备份表中找到该信息,将其权值加1。④ If the source of the message is different from the node to which the data information belongs, the information is the node information forwarded by the node to which the information does not belong. This data information already exists in the data information backup table (1-hop information arrives before 2-hop information), Find the information in the information backup table, and add 1 to its weight.
⑤如果接收到的转发信息与已存储的数据信息不同,则判断已存储信息的权值是否大于1,是,则丢弃当前收到的数据信息。否则,将收到的数据信息存入数据备份表,权值记为1。⑤ If the received forwarding information is different from the stored data information, then judge whether the weight of the stored information is greater than 1, if yes, then discard the currently received data information. Otherwise, store the received data information in the data backup table, and record the weight as 1.
⑥遍历信息备份表,如果信息备份表中存在节点名称相同但数据信息不同的项,则判断这些项的权值,以权值高的数据信息作为正确的备份信息,同时删除其它的同名信息。如果这些项的权值相同,则以最新增长权值的数据信息作为正确的备份信息,删除其它的同名信息。⑥ Traversing the information backup table, if there are items with the same node name but different data information in the information backup table, then judge the weights of these items, take the data information with high weight as the correct backup information, and delete other information with the same name. If the weights of these items are the same, the data information with the latest weight increase is used as the correct backup information, and other information with the same name is deleted.
⑦如果接收数据未完成,则返回到第③步⑦ If receiving data is not completed, return to
⑧结束⑧ end
下面举例说明该部分算法的执行过程,如图5,假设当前需要备份的信息为节点的IP地址。则:The following example illustrates the execution process of this part of the algorithm, as shown in Figure 5, assuming that the current information to be backed up is the IP address of the node. but:
节点1查找自身的拜占庭单元索引表,将自己的IP地址发送给节点2、3、M,M节点将收到的节点1的IP地址存入数据信息备份表中,权值记为1,同时将节点1的IP地址转发给节点2、3,节点2收到节点1发来的数据信息,同时也会接收到来自M节点转发的节点1的IP地址,则节点2将数据信息备份表中节点1的IP信息权值加1(假设此时节点2还未收到节点3转发的数据信息)。同理,节点M、2、3也同样将自身IP地址发送给同单元的其它节点(M节点同属两个拜占庭单元,因此将对两个单元的6个节点全部发送自身的备份信息),收到信息的节点同样进行信息的判断、存储和转发。如果在整个备份过程中没有出现异常(节点自身故障或外来攻击),以拜占庭单元α为例,最终其单元节点1、2、3、M的数据信息备份表内容如下:
表5节点1的数据信息备份表内容Table 5 Contents of the data information backup table of
表6节点2的数据信息备份表内容Table 6 Contents of the data information backup table of
表7节点3的数据信息备份表内容Table 7 Contents of the data information backup table of
表8节点M的数据信息备份表内容Table 8 Contents of the data information backup table of node M
算法伪代码如下:The pseudo code of the algorithm is as follows:
1)while(data’s copy not finish)1) while(data's copy not finish)
2) select A.IP,B.IP,C.IP from Bform[],2) select A.IP, B.IP, C.IP from Bform[],
where A.Byzantine_Unit_num=where A.Byzantine_Unit_num=
B.Byzantine_Unit_num=B.Byzantine_Unit_num=
C.Byzantine_Unit_num;C.Byzantine_Unit_num;
3) send self data to node A,node B,node C;3) send self data to node A, node B, node C;
4) while(receive data not finish)4) while(receive data not finish)
/*从同一拜占庭单元的其它节点处接收备份数据*//*Receive backup data from other nodes of the same Byzantine unit*/
5) if(data.name==node.name)5) if(data.name==node.name)
6) save data in Dform[];6) save data in Dform[];
7) Dform[].Data_Quantity=1;7) Dform[].Data_Quantity=1;
8) select A.IP,B.IP from Bform[],8) select A.IP, B.IP from Bform[],
where A.Byzantine_Unit_num= where A.Byzantine_Unit_num=
B.Byzantine_Unit_num=B.Byzantine_Unit_num=
node.Byzantine_Unit_num;node.Byzantine_Unit_num;
9) send data to nodeA,nodeB;9) send data to nodeA, nodeB;
10) end if /*源节点备份数据的处理*/10) end if /*Processing of source node backup data*/
11) else11) else
12) for(i=1;i<=n;i++)12) for(i=1; i<=n; i++)
13) if(Dform[i].Node_Name==data.name&&13) if(Dform[i].Node_Name==data.name&&
Dform[i].Data==data)Dform[i].Data==data)
14) Dform[i].Data_Quantity++;14) Dform[i].Data_Quantity++;
15) break;15) break;
16) end if16) end if
17) end for17) end for
18) if(i>n)18) if(i>n)
19) for(i=1;i<=n;i++)19) for(i=1; i<=n; i++)
20) if(Dform[i].Node_Name==data.name&&20) if(Dform[i].Node_Name==data.name&&
Dform[i].Data!=data)Dform[i].Data! =data)
21) if(Dform[i].Data_Quantity==1)21) if(Dform[i].Data_Quantity==1)
22) save data in Dform[];22) save data in Dform[];
23) Dform[].Data_Quantity=1;23) Dform[].Data_Quantity=1;
24) break;24) break;
25) end if25) end if
26) end if26) end if
27) end for27) end for
28) end if28) end if
29) if(i>n)29) if(i>n)
30) save data in Dform[];30) save data in Dform[];
31) Dform[].Data_Quantity=1;31) Dform[].Data_Quantity=1;
32) end if32) end if
33) end else /*转发节点发送备份数据的处理*/33) end else /*processing of forwarding node sending backup data*/
34) select A,B from Dform[],34) select A, B from Dform[],
where A.Node_Name=B.Node_Name where A.Node_Name=B.Node_Name
and A.time>B.time; /*数据A比数据B新*/and A.time>B.time; /*data A is newer than data B*/
35) if(A.Data_Quantity<B.Data_Quantity)35) if(A.Data_Quantity<B.Data_Quantity)
36) delete A;36) delete A;
37) else37) else
38) delete B;38) delete B;
39) end while39) end while
40)end while40) end while
异常情况的处理Handling of exceptions
我们知道,在“口头协议”情况中,如果失效个体数小于总个体数量1/3,我们认为这样的系统可以容忍拜占庭问题,或者说此时拜占庭问题可解。但在实际应用中,若直接使用拜占庭容错原理,在失效节点数量小于总节点数量1/3时,仍然存在特殊情况(图4)。We know that in the case of "oral agreement", if the number of failed individuals is less than 1/3 of the total number of individuals, we believe that such a system can tolerate the Byzantine problem, or that the Byzantine problem can be solved at this time. However, in practical applications, if the Byzantine fault tolerance principle is directly used, there are still special cases when the number of failed nodes is less than 1/3 of the total number of nodes (Figure 4).
从图中我们看出,当信息发起点异常时,“司令”分别向三个“副官”发出“进攻”、“待命”、“撤退”三个完全不同的命令,执行拜占庭算法后,三个“副官”得到的指令集均为(“进攻”、“待命”、“撤退”),拜占庭原理中定义:所有忠诚的“副官”遵守同一个命令,则我们认为该种情况为可解的拜占庭问题,以此作为依据,似乎三个“副官”达成了一致;但事实上,每一个副官都不能做出正确的行动。We can see from the figure that when the information initiation point is abnormal, the "commander" issued three completely different orders of "attack", "standby" and "retreat" to the three "adjutants". After executing the Byzantine algorithm, the three The instruction set obtained by the "adjutant" is ("attack", "standby", "retreat"), and the Byzantine principle is defined: all loyal "adjutants" obey the same order, then we consider this situation to be a solvable Byzantine The problem, based on this, seems that the three "adjutants" have reached an agreement; but in fact, each of the adjutants is unable to make the correct action.
当拜占庭单元中的某一节点出现异常时,以备份节点IP地址为例,异常节点向同处一个单元的其它三个节点发送自己的IP地址,待节点彼此交互信息完成之后,其它三个节点都无法得到该节点的正确IP地址,因为每个节点都得到该节点完全不同的三种IP地址,且地址信息的权值均为1。When a node in the Byzantine unit is abnormal, taking the IP address of the backup node as an example, the abnormal node sends its own IP address to the other three nodes in the same unit. After the nodes exchange information with each other, the other three nodes The correct IP address of the node cannot be obtained, because each node obtains three completely different IP addresses of the node, and the weight of the address information is 1.
另一种情况,拜占庭单元中的某一节点并未出现异常,但处在运动状态中(尽管无线Mesh网中骨干网节点移动性相对较低,相对固定,但仍存在这种可能),因运动而导致该节点的某些信息发生变化(如物理地址),那么正确当节点在移动过程中向所在拜占庭单元的其它节点发送不断变化的数据信息,其它三个节点也无法得出需要备份的该节点的正确信息。In another case, a node in the Byzantine unit does not appear abnormal, but is in a state of motion (although the mobility of the backbone network nodes in the wireless Mesh network is relatively low and relatively fixed, this possibility still exists), so Movement causes some information of the node to change (such as the physical address), so when the node sends changing data information to other nodes in the Byzantine unit during the movement process, the other three nodes cannot get the information that needs to be backed up. The correct information for this node.
因此,需要对提出的算法进行改进,以应对备份信息的发起点出现异常时的情况。Therefore, the proposed algorithm needs to be improved to deal with the situation when the originating point of the backup information is abnormal.
改进策略:Improvement strategy:
①如果网络中的某个节点处于经常移动的状态,则在该节点中加入定时广播信息机制,提高该节点信息备份的频率。① If a node in the network is in a state of frequent movement, add a regular broadcast information mechanism to the node to increase the frequency of information backup of the node.
②如果拜占庭单元中的节点长时间无法得到某节点的相同信息(即节点信息的权值始终为1),则从备份信息表中删除该节点的备份信息。直接将该节点视为无效节点,从拜占庭单元索引表中删除该节点及与其同单元的节点,重新发起拜占庭单元查找过程。② If the nodes in the Byzantine unit cannot obtain the same information of a node for a long time (that is, the weight of the node information is always 1), delete the backup information of the node from the backup information table. Directly regard this node as an invalid node, delete this node and its nodes with the same unit from the Byzantine unit index table, and re-initiate the Byzantine unit search process.
对无线Mesh网节点的容错不仅要考虑节点因硬件原因导致的拥塞、失效等问题,还应考虑移动节点的主动攻击、网络欺骗、拥塞链路等人为入侵因素。The fault tolerance of wireless Mesh network nodes should not only consider node congestion and failure caused by hardware reasons, but also consider human intrusion factors such as active attacks of mobile nodes, network deception, and congested links.
基于拜占庭原理的可靠路由协议将主要针对这些影响网络可靠性的因素,在原有路由协议中加入拜占庭算法,从而达到提升整个网络的可靠性的目的。为了应对节点的攻击行为,我们选择备份节点的信息可以包括节点的ID、路由表、节点跳数信息、链路拥塞判断信息等。因此,我们针对不同的节点备份信息,选择相应的现有路由协议进行改进。The reliable routing protocol based on the Byzantine principle will mainly focus on these factors that affect the reliability of the network, and add the Byzantine algorithm to the original routing protocol, so as to achieve the purpose of improving the reliability of the entire network. In order to deal with the attack behavior of nodes, the information we choose to backup nodes can include node ID, routing table, node hop information, link congestion judgment information, etc. Therefore, we select corresponding existing routing protocols for improvement according to different node backup information.
提出拜占庭算法的目的就是将拜占庭容错原理普适化,即将该算法作为一种增强现有网络路由协议可靠性的通用方法,一种补充性的协议单元,因此,对于现有的实用性网络协议(Ad hoc网络经典协议以及无线Mesh网原创性协议),我们都可以用来进行融入拜占庭算法的改进,从而提高现有路由协议的可靠性。The purpose of proposing the Byzantine algorithm is to generalize the principle of Byzantine fault tolerance, that is, to use the algorithm as a general method to enhance the reliability of existing network routing protocols, and as a supplementary protocol unit. Therefore, for existing practical network protocols (Ad hoc network classic protocol and wireless Mesh network original protocol), we can use it to improve the Byzantine algorithm, so as to improve the reliability of existing routing protocols.
下面以AODV协议和DSR协议为例,将拜占庭算法融入两种路由协议中,给出改进的策略和选择不同备份信息的实例效果分析。Taking the AODV protocol and the DSR protocol as examples, the Byzantine algorithm is integrated into the two routing protocols, and an improved strategy and an example effect analysis of selecting different backup information are given.
1.针对节点容错情况的改进协议BAODV(Byzantine Ad hoc On-demand Distance VectorRouting)1. BAODV (Byzantine Ad hoc On-demand Distance VectorRouting), an improved protocol for node fault tolerance
(1)改进策略(1) Improvement strategy
拜占庭算法首先要进行无线Mesh网骨干网节点的拜占庭单元的查找和建立。该部分算法依据的节点信息为:The Byzantine algorithm first needs to search and establish the Byzantine units of the backbone network nodes of the wireless mesh network. The node information based on this part of the algorithm is:
①NoNnode地址;①NoNnode address;
②邻节点地址。②adjacent node address.
拜占庭单元的查找与建立的过程应该在网络拓扑结构形成的过程中同时进行。因此,先对AODV协议源节点用于发现到目的节点的路由而进行广播的路由请求包中的信息进行改进。The process of finding and establishing Byzantine units should be carried out simultaneously with the formation of network topology. Therefore, the information in the route request packet broadcast by the source node of the AODV protocol for finding the route to the destination node is firstly improved.
路由请求包(RREQ)信息包括:源节点地址、源节点序列号、路由请求包用序列号、目的节点地址、目的节点序列号以及跳数值。现在将中间节点转发的RREQ信息包结构进行修改:即,在源节点地址后,加入当前节点收到RREQ请求的“邻节点地址”和“当前节点地址”。The routing request packet (RREQ) information includes: source node address, source node serial number, routing request packet serial number, destination node address, destination node serial number and hop value. Now modify the structure of the RREQ packet forwarded by the intermediate node: that is, after the source node address, add the "adjacent node address" and "current node address" that the current node receives the RREQ request.
然后,修改AODV协议对数据包进行判断操作的次序,即:在接收到RREQ时,首先判断该节点是否拥有到达目的节点的路由或者就是目的节点本身,如果是,则判断收到该包的次数,如果是第一次收到,则执行拜占庭算法的第一部分,在这个过程中,RREQ的第二、三项值被取出,第二项为其NoNnode地址,第三项为其邻节点地址,将取出的信息存入Bform;然后RREQ的第二、三项值被当前节点修改,节点将修改后的RREQ进行广播发送,待拜占庭算法的第一步完成之后,再继续执行AODV协议的原有算法流程。如果该包是目的节点或拥有到达目的节点路由的中间节点第二次收到,则直接执行AODV协议。若该节点不是目的节点,则首先执行拜占庭算法的第一部分,然后执行AODV协议。Then, modify the order in which the AODV protocol judges data packets, that is, when receiving RREQ, first judge whether the node has a route to the destination node or the destination node itself, and if so, judge the number of times the packet has been received , if it is received for the first time, execute the first part of the Byzantine algorithm. During this process, the second and third items of RREQ are taken out, the second item is its NoNnode address, and the third item is its neighbor node address. Store the retrieved information into Bform; then the second and third values of RREQ are modified by the current node, and the node broadcasts the modified RREQ. After the first step of the Byzantine algorithm is completed, continue to execute the original AODV protocol. Algorithmic process. If the packet is received for the second time by the destination node or an intermediate node with a route to the destination node, the AODV protocol is directly executed. If the node is not the destination node, first execute the first part of the Byzantine algorithm, and then execute the AODV protocol.
待拜占庭算法的第一步执行结束后,进行算法的第二步:选择备份的数据信息的存储与容错判断。备份的信息可以按照实际的需求进行选取,当然,同时备份节点的多种信息也是可以的,但是需要对节点的数据信息备份表Dform进行相应的修改,加入相应的表项。After the first step of the Byzantine algorithm is executed, the second step of the algorithm is performed: storage of selected backup data information and fault-tolerant judgment. The backup information can be selected according to the actual needs. Of course, it is also possible to back up multiple information of the node at the same time, but it is necessary to modify the data information backup table Dform of the node and add corresponding entries.
在原AODV协议中,当节点收到与之前备份的不同信息时,会直接用收到的信息对原信息进行替换,如果当前节点收到的信息是消息发送节点受到攻击后发出的错误信息或由攻击节点直接发出的干扰信息,那么正确的信息将被错误信息替代。加入拜占庭算法后,当节点要更改相应的记录信息时,首先在自身的Dform中进行查找,然后判断原备份信息的权值,当权值大于1时,不会修改该信息,只是将收到的信息存入Dform中,权值记为1。只有新收到的信息在其Dform中的权值大于1时(执行拜占庭算法第二部分,拜占庭单元内节点彼此交互信息后),才会以该信息为准,对原信息进行修改,同时将原信息在Dform中的备份删除。In the original AODV protocol, when the node receives different information from the previous backup, it will directly replace the original information with the received information. If the information received by the current node is an error message sent by the message sending node after being attacked If the interference information sent directly by the attack node, the correct information will be replaced by the wrong information. After adding the Byzantine algorithm, when the node wants to change the corresponding record information, it first searches in its own Dform, and then judges the weight of the original backup information. When the weight is greater than 1, the information will not be modified, but the received The information of is stored in Dform, and the weight is recorded as 1. Only when the weight of the newly received information in its Dform is greater than 1 (the second part of the Byzantine algorithm is executed, after the nodes in the Byzantine unit exchange information with each other), the original information will be modified based on the information, and the The backup of the original information in Dform is deleted.
(2)实例分析(2) Example analysis
①数据传输的容错① Fault tolerance of data transmission
在正常的无线Mesh网数据传输时,如果链路中的某一节点因链路故障、自身异常或遭受攻击而出现错传或丢包,会导致目标节点收到错误的数据,甚至无法收到数据。对于丢包的情况,传统的无线Mesh网路由协议是在没有收到确认帧后定时重传数据,或选择新的链路进行传输,而对于目的节点收到错误数据的情况,只有带目标节点重新发起数据请求时,才会将所要的数据重新发送,而且不能保证重发的数据能够正确的到达目的节点。During normal wireless Mesh network data transmission, if a node in the link has mistransmission or packet loss due to link failure, self abnormality or attack, it will cause the target node to receive wrong data or even fail to receive it. data. For the case of packet loss, the traditional wireless Mesh network routing protocol is to retransmit the data regularly after receiving the confirmation frame, or select a new link for transmission, and for the case where the destination node receives wrong data, only the destination node The required data will be resent only when the data request is re-initiated, and there is no guarantee that the resent data can reach the destination node correctly.
基于以上情况,我们可以在利用拜占庭算法时,将所传输的数据作为节点的备份信息。Based on the above situation, we can use the transmitted data as the backup information of the node when using the Byzantine algorithm.
如图8所示,源节点A向节点B发送数据信息,链路中间节点为1、2、3、4。通常情况下,当节点2因链路原因未能收到节点1发来的数据,或节点2因自身故障、遭受攻击等原因,将错误的信息发给节点3,节点3都无法将正确的数据信息传输给节点B。As shown in FIG. 8 , source node A sends data information to node B, and intermediate nodes of the link are 1, 2, 3, and 4. Normally, when
利用拜占庭算法将路由协议进行改进后,传输的数据作为节点的备份信息,我们假设正确信息为T,错误信息为F,数据T在传输到节点1时,通过执行拜占庭算法的第二部分,节点1将数据T分别转发给同一拜占庭单元中的节点2、3、5,节点2、3、5在收到数据后存入Dform中,又将数据进行转发,最后,节点3的Dform中存储的数据为T(权值2)、F(权值1),因为T、F均为源节点A发送的数据,属于同名信息的不同值,比较其权值后,以数据T作为正确信息进行发送,这样,尽管节点2传输的是错误信息,节点B仍能收到正确信息T。After the Byzantine algorithm is used to improve the routing protocol, the transmitted data is used as the backup information of the node. We assume that the correct information is T, and the wrong information is F. When the data T is transmitted to
当然,选取传输的数据作为备份信息时,为了得到正确信息,同时处于拜占庭单元和链路中的节点,除备份信息来源点外,都要等待备份周期的完成,对收到的数据做出判断后才能继续发送,因此数据的传输时间将会延长,传输效率会降低。Of course, when the transmitted data is selected as the backup information, in order to obtain the correct information, the nodes in the Byzantine unit and the link at the same time, except the source of the backup information, must wait for the completion of the backup cycle and make a judgment on the received data The transmission can only be continued after a long time, so the data transmission time will be extended and the transmission efficiency will be reduced.
②特殊攻击的容错② Fault tolerance for special attacks
特殊攻击的容错情况以Wormhole攻击为例。The fault-tolerant situation of special attacks takes Wormhole attack as an example.
Wormhole,虫洞。顾名思义,这种攻击是两个节点将数据包以隧道方式传送到非一跳节点,然后再让数据包在合法的链路中继续传输,造成链路中某一部分路由节点间的跳数不超过两跳的假象。如图9,在AODV协议中,当节点间通过传递Hello消息进行路由维护时,攻击节点A、B分别将节点2和节点4的Hello消息通过隧道方式传送给对方,这样造成节点2和节点4误以为彼此是邻节点,而事实上他们根本就不是邻节点,因此造成节点存储信息(邻节点表等)的错误,当有数据通过该链路(链路节点为1、2、4)传递时,数据无法从节点2发送到节点4,因为它们不是邻节点,不存在一跳链路。Wormhole, wormhole. As the name implies, this kind of attack is that two nodes tunnel the data packet to a non-one-hop node, and then let the data packet continue to be transmitted in the legal link, so that the number of hops between a certain part of the routing nodes in the link does not exceed The illusion of two jumps. As shown in Figure 9, in the AODV protocol, when nodes maintain routes by transmitting Hello messages, attacking nodes A and B respectively transmit the Hello messages of
如果节点4与节点5、6、7构成拜占庭单元(图10),当节点A、B进行Wormhole攻击时,通过Hello包的传递,告知节点2节点4为其邻节点,节点2首先查找自身邻节点表,发现没有节点4,节点2会继续查找其双邻节点表N-Nform,如果节点4确实为其邻节点,则在拜占庭单元建立时,通过RREQ数据包的广播,节点2的N-Nform中一定会存有信息(5,4)、(6,4)、(7,4),但节点2无法在其N-Nform中找到这些信息,因此节点2能够判断出“节点4为其邻节点”的信息是错误的,不会将该节点存入其邻节点表中,正确的链路仍为1、2、3、4。If
2.针对链路容错情况的改进协议BDSR(Byzantine Dynamic Source Routing Protocol)2. Improved protocol BDSR (Byzantine Dynamic Source Routing Protocol) for link fault tolerance
(1)改进策略(1) Improvement strategy
与改进AODV协议的思路类似,首先对DSR协议的源节点为查找路由而进行广播的路由请求包中的信息进行改进。Similar to the idea of improving the AODV protocol, the information in the routing request packet broadcast by the source node of the DSR protocol to find the route is firstly improved.
DSR路由请求包(RREQ)信息包括:源节点地址、目的节点地址、唯一的标志号以及中间节点列表。DSR routing request packet (RREQ) information includes: source node address, destination node address, unique sign number and intermediate node list.
现在将中间节点进行转发的RREQ信息包结构进行修改:在源节点地址后,加入当前节点收到RREQ请求的“邻节点地址”和“当前节点地址”。Now modify the structure of the RREQ packet forwarded by the intermediate node: after the source node address, add the "neighboring node address" and "current node address" that the current node receives the RREQ request.
然后,修改DSR协议对收到数据包进行判断与操作的次序:在接收到RREQ时,首先判断该节点是否为目的节点或缓存了到目的节点的路由,如果是,则判断收到该包的次数,如果是第一次收到,则执行拜占庭算法的第一部分,再继续执行DSR协议的原有算法流程。如果该包是目的节点或缓存有到目的节点路由的中间节点第二次收到,则直接执行DSR协议。若该节点不是目的节点或者其缓存中没有到达目的节点的路由,则首先执行拜占庭算法的第一部分,然后执行DSR协议。Then, modify the order in which the DSR protocol judges and operates the received data packets: when receiving the RREQ, first judge whether the node is the destination node or has cached the route to the destination node, and if so, then judge whether the packet has been received If it is received for the first time, execute the first part of the Byzantine algorithm, and then continue to execute the original algorithm process of the DSR protocol. If the packet is received for the second time by the destination node or an intermediate node that caches a route to the destination node, the DSR protocol is directly executed. If the node is not the destination node or there is no route to the destination node in its cache, first execute the first part of the Byzantine algorithm, and then execute the DSR protocol.
待拜占庭算法的第一步执行结束后,进行算法的第二步:选择备份的数据信息的存储与容错判断。备份的信息同样可以按照实际的需求进行选取,如果多种信息同时备份,则对节点的数据信息备份表Dform进行相应的修改,加入相应的表项。After the first step of the Byzantine algorithm is executed, the second step of the algorithm is performed: storage of selected backup data information and fault-tolerant judgment. The information to be backed up can also be selected according to actual needs. If multiple pieces of information are backed up at the same time, the data information backup table Dform of the node is correspondingly modified and corresponding entries are added.
加入拜占庭算法后,当节点要更改相应的记录信息时,首先查找自身的Dform,然后对原备份信息的权值进行判断,如果权值大于1,不修改该信息,但会将收到的信息存入Dform中,权值记为1。只有新收到的信息在其Dform中的权值大于1时,才会用该信息替代原信息,并删除原信息在Dform中的备份。After adding the Byzantine algorithm, when the node wants to change the corresponding record information, it first looks for its own Dform, and then judges the weight of the original backup information. If the weight is greater than 1, the information will not be modified, but the received information will be Stored in Dform, the weight is recorded as 1. Only when the newly received information has a weight greater than 1 in its Dform, will the information be used to replace the original information, and the backup of the original information in the Dform will be deleted.
(2)实例分析(2) Example analysis
①拓扑结构本身的容错能力① Fault tolerance of the topology itself
我们知道,满足拜占庭原理适用性结构约束第二条的无线Mesh网,除其连接Internet的网关节点外,网络中的骨干节点都至少包含在一个拜占庭单元中,这样的无线Mesh网骨干节点的拓扑结构本身就要比一般情况下的无线Mesh网联通性更强,可使用的链路更多,网络本身的容错能力优于普通的无线Mesh网(如图2中b所示)。We know that for a wireless Mesh network that satisfies the second structural constraint of the applicability of the Byzantine principle, except for the gateway node connected to the Internet, the backbone nodes in the network are all contained in at least one Byzantine unit. The topology of such a wireless Mesh network backbone node The structure itself is stronger than the general wireless mesh network, with more links available, and the fault tolerance of the network itself is better than that of the ordinary wireless mesh network (as shown in b in Figure 2).
②节点攻击导致的链路失效②Link failure caused by node attack
为了达到独占某条链路资源的目的,攻击节点会向链路的前驱节点发送假冒的链路失效数据包。DSR协议在通信过程中,当中间节点收到攻击节点向其发出的虚假的RERR数据包时,误认为该RERR数据包中标注的失效链路为真,将自身路由表中使用了该条中断链的全部链路删除,并向当前链路的源节点方向继续传输RERR包,致使最终源节点重新发起链路查找过程,且该查找过程将避开RERR包中标注的失效链路。In order to achieve the purpose of monopolizing the resources of a certain link, the attack node will send a fake link failure packet to the predecessor node of the link. During the communication process of the DSR protocol, when the intermediate node receives the false RERR packet sent by the attacking node, it mistakenly believes that the failed link marked in the RERR packet is true, and uses this interrupt link in its own routing table. Delete all the links of the chain, and continue to transmit RERR packets to the source node of the current link, causing the final source node to re-initiate the link search process, and the search process will avoid the failed link marked in the RERR packet.
我们将RERR数据包作为备份信息,如图11,当链路S→A→1→B→4→5中,节点B发现节点4异常导致后续链路中断时,首先向其所在的拜占庭单元中的其它节点1、2、3发送该RERR,这些节点在收到RERR后彼此转发该RERR,链路中节点B的前驱节点1在收到RERR后存入其Dform中,如果该RERR为真,则通过B所在的拜占庭单元节点彼此转发后,节点1的Dform中该RERR包权值必会大于1,此时,节点1才会将该RERR包进行分析,处理,然后继续向链路前驱节点A转发。当攻击节点C发出伪造的RERR时,收到该RERR包的节点1不会收到其它节点转发的相同RERR,故该包的权值始终为1,据此,节点1能够做出该RERR包为假的正确判断,将该RERR包丢弃。We use the RERR data packet as backup information, as shown in Figure 11, when node B finds that
Claims (3)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101215229A CN101835195B (en) | 2010-03-11 | 2010-03-11 | Byzantine failure tolerance method for improving reliability of wireless Mesh backbone network |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101215229A CN101835195B (en) | 2010-03-11 | 2010-03-11 | Byzantine failure tolerance method for improving reliability of wireless Mesh backbone network |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101835195A CN101835195A (en) | 2010-09-15 |
CN101835195B true CN101835195B (en) | 2012-08-22 |
Family
ID=42719082
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010101215229A Expired - Fee Related CN101835195B (en) | 2010-03-11 | 2010-03-11 | Byzantine failure tolerance method for improving reliability of wireless Mesh backbone network |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101835195B (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107291580A (en) * | 2017-05-04 | 2017-10-24 | 复旦大学 | MATLAB software system and method |
CN110061831A (en) * | 2019-04-15 | 2019-07-26 | 中国人民解放军国防科技大学 | A method for realizing network security communication of unmanned aerial vehicle swarm during combat |
CN111199400A (en) * | 2019-12-31 | 2020-05-26 | 北京笔新互联网科技有限公司 | Security monitoring method and device for blockchain network |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7016328B2 (en) * | 2003-06-24 | 2006-03-21 | Tropos Networks, Inc. | Method for allowing a client to access a wireless system |
US8233905B2 (en) * | 2007-06-15 | 2012-07-31 | Silver Spring Networks, Inc. | Load management in wireless mesh communications networks |
CN101562861B (en) * | 2009-05-15 | 2011-04-13 | 重庆邮电大学 | Cross-layer and bi-directional routing method based on hop number and energy in wireless sensor network |
-
2010
- 2010-03-11 CN CN2010101215229A patent/CN101835195B/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN101835195A (en) | 2010-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102395172B (en) | Data transmission method of industrial wireless mesh network | |
Tyagi et al. | Performance analysis of proactive and reactive routing protocols for ad hoc networks | |
Sharma et al. | The black-hole node attack in MANET | |
CN103118412B (en) | Trust-based on-demand multipath vector routing algorithm of Ad Hoc network | |
CN110100479B (en) | A device and method for optimizing routing failure using modified pathless DAO signaling | |
CN103260211B (en) | A kind of AOMDV method for routing of improvement | |
EP3200404B1 (en) | Content-centric network on-demand distance vector route method | |
CN106954243A (en) | Route implementation method based on wireless chain network | |
Sharma et al. | Ant colony based node disjoint local repair in multipath routing in MANET network | |
CN101932065A (en) | Distributed Satellite Network Resource Discovery Method | |
CN101835195B (en) | Byzantine failure tolerance method for improving reliability of wireless Mesh backbone network | |
Zheng et al. | A QoS Routing Protocol for Mobile Ad Hoc Networks Based on Multipath. | |
CN101170498A (en) | A Secure Multipath Routing Method Applied to Ad hoc Networks | |
Wibling et al. | Ad hoc routing protocol verification through broadcast abstraction | |
Al-Shakarchi et al. | A survey of selfish nodes detection in MANET: solutions and opportunities of research | |
Abbas et al. | Path diminution in node-disjoint multipath routing for mobile ad hoc networks is unavoidable with single route discovery | |
Rookhosh et al. | Disjoint categories in low delay and on-demand multipath dynamic source routing adhoc networks | |
Alapati et al. | Efficient route identification method for secure packets transfer in MANET | |
Wang et al. | A distributed data caching framework for mobile ad hoc networks | |
Yang et al. | Performance research of an improved hybrid routing protocol | |
CN106658636B (en) | Millimeter wave network multi-path return routing method based on residual bandwidth | |
Gaber et al. | Blackhole Attack effect on MANETs' Performance | |
Kumar et al. | An acknowledgement-based approach for the detection of routing misbehavior in manets | |
Wang et al. | Improvement and optimization of a mobile multi-agent AODV routing protocol | |
Lalwani et al. | Optimized & Secure Ad-hoc on Demand Distance Vector Routing Protocol |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120822 Termination date: 20180311 |