WO2008006926A1 - Sistema y procedimiento para enrutar un paquete de datos en una red inalámbrica, sistema de computación en un sistema para enrutar un paquete de datos en una red inalámbrica, y procedimiento para enrutar un paquete de datos en un sistema de computación. - Google Patents

Sistema y procedimiento para enrutar un paquete de datos en una red inalámbrica, sistema de computación en un sistema para enrutar un paquete de datos en una red inalámbrica, y procedimiento para enrutar un paquete de datos en un sistema de computación. Download PDF

Info

Publication number
WO2008006926A1
WO2008006926A1 PCT/ES2007/070129 ES2007070129W WO2008006926A1 WO 2008006926 A1 WO2008006926 A1 WO 2008006926A1 ES 2007070129 W ES2007070129 W ES 2007070129W WO 2008006926 A1 WO2008006926 A1 WO 2008006926A1
Authority
WO
WIPO (PCT)
Prior art keywords
node
intermediate node
nodes
data packet
intended
Prior art date
Application number
PCT/ES2007/070129
Other languages
English (en)
French (fr)
Inventor
Jorge GARCÍA VIDAL
Julián David MORILLO POZO
David FUSTÉ VILELLA
Original Assignee
Miraveo Inc.
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 Miraveo Inc. filed Critical Miraveo Inc.
Priority to EP07803656A priority Critical patent/EP2045976A1/en
Priority to US12/373,219 priority patent/US20090279481A1/en
Publication of WO2008006926A1 publication Critical patent/WO2008006926A1/es

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/22Alternate routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/28Routing or path finding of packets in data switching networks using route fault recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • H04W40/24Connectivity information management, e.g. connectivity discovery or connectivity update
    • H04W40/28Connectivity information management, e.g. connectivity discovery or connectivity update for reactive routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • H04W40/34Modification of an existing route
    • H04W40/38Modification of an existing route adapting due to varying relative distances between nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/02Terminal devices
    • H04W88/04Terminal devices adapted for relaying to or from another terminal or user

Definitions

  • the present invention relates to a system for routing a packet of data in a wireless network, from a source node to a destination node, through at least one node of the network that acts as the intended intermediate node, forming a route of the data packet. More specifically, it refers to a cooperative routing mechanism for multi-hop ad-hoc networks, which allows the use of node resources adjacent to the nodes of the data packet path, to increase their communication and processing capabilities. .
  • It also refers to a procedure for routing a packet of data in a wireless network, a computer system in a system to route a packet of data in a wireless network, and a procedure to route a packet of data in a computer system. .
  • the invention is directly applicable as a cooperative mechanism for routing a data packet, or it can be adapted to known protocols.
  • One of the solutions adopted for the transmission of data packets via radio frequency has been the creation of multi-hop (multihop) communications networks, through whose nodes the desired data packet is routed, from a source node to a destination node of the network.
  • multi-hop multi-hop
  • the intervention of a protocol for determining the route of the packet of data is necessary, said protocol selecting the nodes of the network most suitable for routing the packet of data.
  • a routing mechanism ⁇ forwarding) that indicates to each node of the route which path it should take and which normally consists of consulting a routing table (forwarding tabib) that indicates the next node on the path to the destination, and the subsequent forwarding of the data packet directed to said node.
  • the route determination protocol establishes, from among the plurality of nodes of the network, the nodes that must intervene to route the data packet from the source node to the destination node, that is, it establishes the planned intermediate nodes through which the data packet must circulate.
  • said protocol provides all the necessary routing information to the routing tables (forwarding tables) of each of the nodes that are part of the route of the established data packet (each node knows, according to the destination node, to which node the data packet should transmit).
  • the nodes of the network must communicate with each other (for example, exchanging messages with routing information), so that the most suitable nodes for routing the data packet are obtained, and it is determined how they should communicate with each other
  • An example of a route determination protocol is described in European patent application EP1 122919, entitled “Routing procedure for ad hoc networks", in the name of CIT Alcatel. This request describes a methodology that allows determining a route in a multi-hop ad hoc network, between a source node and a destination node.
  • AODV Ad hoc On-demand Distance Vector
  • the routing or forwarding mechanism uses the address of the final destination node of the data packet (that is, of the final end of the route that said data packet must follow) to obtain the address of the node to which said data must be transmitted.
  • data packet (what is usually called the next-hop node). This mapping is in what is called a forwarding or routing table. Said addresses (together with the address of the node that originated the data packet and that of the node that is transmitting it) appear in the control header of the data packet when said data packet is transmitted.
  • each node of the route has a forwarding table that indicates to which node the data packet must transmit to a specific destination node, the node processes the data packet and, by means of the Routing mechanism, determines to which node the data packet should transmit.
  • the known routing mechanisms work in an acceptable manner.
  • the problem appears when any of the intermediate nodes planned of the route passes to a state of inability to route the data packet. This happens, for example, if the intended intermediate node moves outside the coverage range of the previous node to that planned intermediate node, or if the expected intermediate node has been shut down, due to lack of power or because the node enters a power saving state, or if the package is received with errors. Whatever the situation, the communication between the nodes of the data packet path is cut and, therefore, data packets are lost.
  • a possible solution to a situation like this is to update the forwarding tables of the nodes of the data packet path, to adapt them to the new situation, and establish a new data packet path.
  • the main drawback of said solution is the amount of data packets that are lost during the time that elapses since the communication is cut until the forwarding tables of the nodes involved are updated, since said process usually requires high times (several seconds) for its realization.
  • P2P peer-to-peer
  • the same mechanism can be used by communications protocols located at different levels of the ISO ISA reference model.
  • packet routing is usually be done at level 3, but it can also be done at other levels (for example, at level 2 or even at the application level). Therefore, the mechanism described in the document is not limited to its application at a specific level of the ISO ISA reference model.
  • a system for routing at least one data packet in a wireless network which comprises means for detecting the inability of the intermediate node intended to route, through it, the data packet. from the node before said intermediate node provided to the node after said intermediate node provided in the data packet path; and means for determining a group of cooperating nodes of the intended intermediate node, from among the plurality of nodes of the network, to route, through it, the data packet from the previous node to the intended intermediate node to the node after the node planned intermediate of the data packet path, in case the inability of the intended intermediate node is detected.
  • the system according to the invention can be considered as a cooperative routing mechanism.
  • the fact of providing means for determining a group of cooperating nodes of an intended intermediate node means that, in the event that the inability of the intended intermediate node is detected, said group of cooperating nodes, which may be formed by one or more nodes of the network, is responsible for routing the data packet, so that there is no cut in the communication between the nodes of the data packet path, and, therefore, there is no loss of data packets, resolving existing transmission problems in current wireless networks.
  • none of the nodes involved in routing the data packet should modify its routing table, so no time is wasted on it, and therefore, no data packets are lost.
  • the group of cooperating nodes fully takes on the functions of the intended intermediate node, to ensure that the operating state of the network is not affected by the movement or disappearance of said intended intermediate node.
  • the nodes of the wireless network cooperate with each other, so that the intended intermediate node of the data packet route uses the resources of adjacent nodes to increase their communication and processing capabilities, obtaining a stronger network as a result of sharing their capabilities of transmission and routing.
  • shared resources may be, for example, antennas, Radio Frequency chains, network interfaces, memory or processors.
  • the route determination protocol can search for an alternative path. Once an alternative path has been established, the data flow will follow the new routing. The key to the mechanism described is that, during this period of determining a new route, the data flow is not interrupted.
  • Another advantage of the invention is that the mechanism can be useful to accommodate, in wireless networks, the operation of existing cooperative protocols (for example, cooperative MAC protocols or cooperative ARQ protocols), making its operation more natural.
  • existing cooperative protocols for example, cooperative MAC protocols or cooperative ARQ protocols
  • the wireless network would continue to function as it would if it were a non-cooperative network, never worse.
  • the system comprises means for obtaining a set of possible cooperating nodes of the intended intermediate node.
  • Said set of possible cooperating nodes comprises the nodes that can potentially act as cooperating nodes of the intended intermediate node, when said node is unable to route a data packet.
  • the obtaining of said set of possible cooperating nodes of the intended intermediate node can be carried out at certain time intervals, for example, every three seconds, and is independent of the transmission of the data packet by the node prior to the intended intermediate node of the route of the data packet.
  • the set of possible cooperating nodes is known, the time required to confirm the reception of the data packet is reduced, which is suitable for certain protocols.
  • the means for obtaining the set of possible cooperating nodes of the intended intermediate node comprise means for obtaining the set of nodes that are within the coverage range of the intended intermediate node; and means for selecting, from said set of nodes, the set of possible cooperating nodes of the intended intermediate node, such that said set of possible cooperating nodes meets suitable conditions to act as the cooperating node of the intended intermediate node.
  • the set of possible cooperating nodes can be formed by those nodes that present particularly favorable communication channels with the intended intermediate node of the data packet path.
  • the determination of a favorable communication channel can be based on certain quality parameters, such as the signal to noise ratio (Signal-to-Noise Ratio, SNR) or the error rate per bit (Bit-Error-Rate, BER).
  • Another advantage to highlight of the invention is that the node prior to the intended intermediate node does not intervene in the decision regarding which node of the set of possible cooperating nodes of said intended intermediate node should route the data packet, in case the intermediate node planned to be unable to do so (the group of cooperating nodes is chosen between the planned intermediate node and its set of possible cooperating nodes). Given the inability of the intended intermediate node to route the data packet, it is not understood from the previous node that the route of the data packet has been broken, since it receives a confirmation of receipt of the data packet from any of the nodes of the set of possible cooperating nodes of the intended intermediate node itself, if said node cannot route the data packet.
  • the set of possible cooperating nodes may comprise the means to detect the inability of the intended intermediate node, although it is possible, as described above, that the intended intermediate node itself can incorporate them.
  • the set of possible cooperating nodes of an intended intermediate node may also comprise means for communicating the inactivity of the intended intermediate node, to the node prior to said intended intermediate node of the data packet path, although as also described above, they may be incorporated by the intended intermediate node itself.
  • Said inactivity communication can be carried out, for example, after a certain period of inactivity of the intended intermediate node, or after a certain number of data packets that have not been able to be routed by it without the cooperation of nodes having been necessary.
  • Cooperators to the planned intermediate node Whatever it is The cause can cause a modification in the forwarding table of the previous node, so that the routing of the data packet for a given destination node is done through another node, obtaining a new route of the data packet. This modification can be caused either by invoking the functionality of the route determination protocol (routing protocol) or from local information provided by the cooperating nodes of the intended intermediate node.
  • each of the nodes of the network comprises routing information, which may be in the form of a routing table (forwarding board).
  • Said information must comprise at least the address of the destination node of the data packet, and the address of the node to which the data packet must transmit for said packet to reach the destination node.
  • Said information is complemented with the information that incorporates the data packet in its control header, among which the address of the destination node of the data packet stands out.
  • the intended intermediate node may comprise means for distributing to its set of possible cooperating nodes, the necessary routing information, so that said information is entered in the forwarding table of each of the nodes of the set of possible cooperating nodes.
  • the planned intermediate node keeps the forwarding tables of its set of possible cooperating nodes updated, in case of possible disappearances of nodes, either, for example, by mobility or by disconnection.
  • the distribution of said routing information can be done at certain time intervals.
  • Ia transmission of the data packet by the previous node to the intended intermediate node can be done, at the same time, both to said planned intermediate node and to its set of possible cooperating nodes, so, provided that some node of the group of Cooperators of the intended intermediate node correctly receive the packet, the previous node must not re-transmit the data packet to be routed by the group of cooperating nodes, in case the intended intermediate node is unable to route it. Since the set of possible cooperating nodes also receives the data packet, it processes and maintains it until it determines that the intended intermediate node has been routed.
  • the group of cooperating nodes which is part from the set of possible cooperating nodes, routes the data packet to the node after the intended intermediate node.
  • the routing of the data packet to the node after the intended intermediate node can be done by all the nodes of the cooperating node group or by only one of said nodes. In the latter case, the determination of the node that should route the data packet can be performed, for example, according to an order established by the intended intermediate node, by proximity, or by quality of the communication channel.
  • the data packet transmitted to the intended intermediate node and its set of possible cooperating nodes may comprise an indicator that informs said set of possible cooperating nodes whether or not to cooperate in the routing of said data packet ⁇ flag áe cooperation).
  • the set of possible cooperating nodes knows that, in case of incapacity of the intended intermediate node, it must intervene in the routing of the packet and, therefore, saves the data packet until it confirms that the intended intermediate node has routed it.
  • the network functions as if it were a non-cooperative routing mechanism, that is, there is no cooperation between the nodes of the data packet path and the nodes adjacent to said nodes of the Ia route.
  • the means for determining the group of cooperating nodes of the intended intermediate node comprise means for obtaining, from the set of possible cooperating nodes, the subset of nodes that is within the coverage range of the node prior to expected intermediate node of the data packet path, when said node prior to the intended intermediate node has transmitted the data packet; and means for selecting, from said subset of nodes, the group of cooperating nodes of the intended intermediate node.
  • the group of cooperating nodes is at significant risk, since it does not know if the node after the intended intermediate node is within its coverage range, although such implementation considerably speeds up the process.
  • This feature is suitable for those protocols in which a fast reception confirmation is necessary, such as 802.1 1.
  • the means for determining the group of cooperating nodes of the intended intermediate node may comprise means for obtaining, from the set of possible cooperating nodes, the subset of nodes that are within the coverage range of the node prior to the intended intermediate node of the route of the data packet, when said node prior to the intended intermediate node has transmitted the data packet; means for obtaining, from said subset of nodes, a second subset of nodes, such that the node after the intended intermediate node of the path of the data packet is within the coverage range of said second subset of nodes; and means for selecting, from said second subset of nodes, the group of cooperating nodes of the intended intermediate node.
  • the routing of the data packet is performed with high probability, since the system verifies that the node to which the data packet should be transmitted is within the coverage range of the group of cooperating nodes of the intended intermediate node.
  • the system may also comprise means to detect the improper operation of a node of the set of possible cooperating nodes. Such improper operation may be due, for example, to the node's malfunction or unnecessary operation.
  • the presence of said means prevents the node from being part of the group of cooperating nodes and, therefore, that communication problems may appear in the network (loss of data packets).
  • the fact that a node that is malfunctioning stops working avoids unnecessary consumption of system resources.
  • the set of possible cooperating nodes (also referred to hereinafter as "cloud”) comprises an identifier of said set (or cloud identifier).
  • cloud comprises an identifier of said set (or cloud identifier).
  • the routing information of at least one of the nodes of the data packet path may comprise the identifier of its set of possible cooperating nodes. In this way, they will only cooperate with the node planned intermediate those nodes that have connectivity at that time with said intermediate intermediate node.
  • the invention can also incorporate a mechanism that allows a cooperating node of a cloud to know that it has failed to correctly receive messages from the intended intermediate node of that cloud (which will be referred to hereinafter as the master of the cloud), while the master node correctly receives the frames, which is indicative that the node must stop cooperating, since a broken cloud condition occurs.
  • the invention provides a method for routing at least one packet of data in a wireless network, comprising the steps of (A) detecting the inability of the intermediate node intended to route, through it, the packet of data from the previous node to said intended intermediate node to the subsequent node to said intended intermediate node of the data packet path; (B) in case of positive detection in step (A), determine a group of cooperating nodes of the intended intermediate node, from among the plurality of nodes of the network, to route, through it, the data packet from the node before the intermediate node provided to the node after the intermediate node provided for the data packet path.
  • the method may also comprise a stage (C) of obtaining a set of possible cooperating nodes of the intended intermediate node, said stage (C) being able to comprise the sub-stages of (C.1) obtaining the set of nodes that are within the range coverage of the planned intermediate node; (C.2) select, from said set of nodes, the set of possible cooperating nodes of the intended intermediate node, such that said set of possible cooperating nodes meets suitable conditions to act as cooperating nodes of the intended intermediate node.
  • the step (B) of determining the group of cooperating nodes of the intended intermediate node comprises the sub-stages of (B.1) obtaining, from the set of possible cooperating nodes, the subset of nodes that are within of the coverage range of the previous node to the intended intermediate node of the data packet route, when said previous node to the intended intermediate node has transmitted the data packet; (B.2) select, from said subset of nodes, the group of cooperating nodes of the intended intermediate node.
  • the step (B) of determining the group of cooperating nodes of the intended intermediate node may comprise the sub-stages of (B.3) obtaining, from the set of possible cooperating nodes, the subset of nodes that are within the coverage range from the previous node to the intended intermediate node of the data packet path, when said previous node to the intended intermediate node has transmitted the data packet; (B.4) obtain, from said subset of nodes, a second subset of nodes, such that the node after the intended intermediate node of the data packet path is within the coverage range of the second subset of cooperating nodes of the intended intermediate node; (B.5) select, from said second subset of nodes, the group of cooperating nodes of the intended intermediate node.
  • a computer system in a system for routing a data packet in a wireless network, which is suitable to act as a cooperating node of the intended intermediate node, and comprising means for detecting the inability of the intermediate node intended to route, through it, the data packet from the previous node to said intended intermediate node to the subsequent node to said intended intermediate node of the data packet route; and means for routing the data packet, which comprise means for receiving the data packet from the previous node to the intended intermediate node of the route of the data packet, and means for transmitting said data packet to the node subsequent to the intended intermediate node of the path of the data packet, in case the Ia is detected inability of the intended intermediate node.
  • the means for transmitting the data packet from the previous node to the intermediate node provided to the node subsequent to the intended intermediate node of the data packet path may comprise means for entering into the data packet an indicator informing the set of possible cooperating nodes. of the intended intermediate node whether or not to cooperate in the routing of the data packet.
  • a method for routing at least one data packet in a computing system such as that described, which comprises the steps of (D) receiving the data packet from the previous node to the intermediate node planned of the data packet path; (A) detecting the inability of the intermediate node intended to route, through it, the data packet from the previous node to said intended intermediate node to the node subsequent to said intended intermediate node of the data packet path; (E) in case of positive detection in step (A), transmit the data packet to the subsequent node to the intended intermediate node of the data packet path.
  • the invention provides a computer program comprising program instructions that are executed in a computer system to perform the procedure for routing a packet of data in a computer system.
  • Said computer program may be stored in physical storage media, such as recording media, a computer memory, or a read-only memory, or it may be carried by a carrier wave, such as electrical or optical.
  • route refers to the sequence of nodes between S and D, (S, Ai, A 2 , .., A N , D), which define a path between S and D. It is assumed that the routes are determined by the route determination protocol (for example, AODV). Routes can be broken temporarily (for example, during times of milliseconds to seconds) or permanently (times longer than several seconds). Transient ruptures may occur due to non-deterministic changes in the radio transmission channel due to environmental movements, temporary blockages between antennas (for example, by a vehicle crossing a radio link), etc. They can also occur because the transmission / reception systems of the nodes can enter sleep states in order to achieve energy savings. Permanent breaks are normally due to the mobility of the nodes. The cooperative routing mechanism tries to maintain the reliability of the route in both cases:
  • the group of cooperating nodes assume the routing function until the routing protocol can find an alternative path.
  • the cooperative mechanism notifies the routing protocol of the need to determine a new route.
  • the term "planned intermediate node” refers to a node that is part of a route. Initially, it is chosen by the routing protocol. The intermediate node is not the one that necessarily performs packet routing.
  • the term "cooperating node” refers to the node that has been chosen by another node (intended intermediate node) to assist in the routing task. Receive from the planned intermediate node routing information (which is considered to belong to the context of the planned intermediate node; see definition of "forwarding table") and listen to the transmission of said node and other cooperators to know whether or not it needs to act.
  • the set of possible cooperating nodes (also referred to as "cloud") of a node N is Cloud (N). Cooperators can be sorted according to a priority level that determines the order in which they must cooperate.
  • the cloud number Io sets the expected intermediate node around which the set of possible cooperating nodes is formed.
  • Cooperation Flaa Not all packets use the cooperative routing mechanism. For example, some signaling messages between neighboring nodes do not use it. This is notified in the cooperative header, that is to say the part of the data packet that contains specific information related to the cooperation function, and must include information regarding whether or not the cooperation function should be performed.
  • routing refers to the operation of a node that effectively performs the task of retransmission of a packet to bring it closer to its final destination, following the route set by the route determination protocol. If in the corresponding hop the intermediate node is N, the routing node is either node N or one of the cooperators of N.
  • the neighbors of a node N are those with which said node N can maintain a communication with a certain level of reliability.
  • Table of forwardin ⁇ Table in which the pairs are included ("final destination node", "next-hop"), whose content is modified from the routing protocol information and the information obtained from other nodes (for example, from intermediate nodes with which it cooperates).
  • the forwarding table can be viewed from various contexts. When a node N acts like itself, it observes the entries of the forwarding table that belong to the context "node N". If a node N acts as a cooperator of another node N ', it only uses the entries in the forwarding table that belong to the context "node N'". It is important to note that the entries in the forwarding table can include node or cloud addresses.
  • C-ACK Cooperative Confirmations
  • the generation of C-ACKs must follow a certain order.
  • the planned intermediate node will be the first to generate the C-ACK in case it had received the data packet correctly. Otherwise, the C-ACK will be generated by one of the cooperating nodes (which would detect that the intended intermediate node does not generate the C-ACK).
  • the frame sending mechanism natively incorporates some confirmation mechanism (for example, the ACK for unicast data packets of ⁇ IEEE 802.1 standard 1) the use of C-ACK will not always be necessary.
  • C-HELLO Cooperative Helio
  • Fig. 1 is a schematic representation of a wireless network, on which the system is applied to route a data packet, in accordance with the invention
  • Fig. 2 is a schematic representation of a first routing scheme for a cooperative network such as that of Fig. 1;
  • Fig. 3 is a schematic representation of a second routing scheme for a cooperative network such as that of Fig. 1;
  • Fig. 4 is a schematic representation of the wireless network of Fig. 1, in which a jump of a data packet is made for routing, the routing node being the intended intermediate node itself of the data packet route. ;
  • Fig. 5 is a schematic representation of the wireless network of Fig. 1, in which another jump of the data packet is made, the routing node being the group of cooperating nodes of the corresponding intended intermediate node;
  • Fig. 6 is a schematic representation of the wireless network of Fig. 1, in which a change of one of the planned intermediate nodes of the data packet path is requested.
  • the mechanism for routing a data packet in the wireless network, between a source node and a destination node allows, among other things, to facilitate the operation of cooperative protocols in wireless networks.
  • the idea of introducing cooperation between the nodes of a wireless network to optimize the use of resources is certainly attractive, since one node of the network must fully take on the functions of another, with the intention of ensuring that the operating status of the network It is not affected by the movement or disappearance of nodes.
  • the shared resources can be, among others, antennas, Radio Frequency chains, network interfaces, memory or processors.
  • the invention is applicable in wireless networks, to allow the nodes to use resources from adjacent nodes to increase their communication and processing capacity, the mechanism being able to work by itself, adapting all the existing software and hardware to this new mechanism of routing, or as an improvement of some existing protocols, for example ARQ protocols or MAC protocols such as IEEE 802.1 1 (Wi-Fi).
  • the impersonation of the functionality of a node that acts as a transmitter provides greater resistance to the network in the presence of mobility of the nodes.
  • the wireless network comprises a plurality of nodes (N 0 , N 1 , N 2 , .... N 15 ) distributed in a certain way in space.
  • D) for the data packet which determines the nodes of the plurality of nodes (N 0 , N 1 , N 2 , .... N 15 ) that must intervene in said transmission, said nodes being referred to as intermediate nodes provided A 1 , A 2 .
  • the normal optimization criteria could be used: minimum number of jumps, maximum transfer rate, etc.
  • other optimization criteria can be used, such as maximizing the number of nodes in the set of possible cooperating nodes of an intended intermediate node, etc.
  • a tool is necessary to control the routing of the data packet through the nodes of said route, said tool being the mechanism for routing a data packet in a wireless network, according to the invention.
  • the mechanism also comprises a module that allows the previous node A, -a said intermediate node provided in the path of the data packet to determine the inability of an intermediate node provided A 1 ; and a module for determining the improper operation of a node of the set B 1 of possible cooperating nodes of an intermediate node provided A 1 .
  • the module for obtaining the set B 1 of possible cooperating nodes of an intended intermediate node comprises a submodule for obtaining the set of nodes of the network that are within the coverage range of the intended intermediate node A 1 ; and a submodule to select, from said set of nodes, the set B 1 of possible cooperating nodes, of such so that said set of possible cooperating nodes meets suitable conditions to act as the cooperating node of the intended intermediate node A 1 .
  • these conditions are based on quality parameters referring above all to the communication channels established between the planned intermediate node and the set of possible cooperating nodes (for example, the signal-to-Noise Ratio, SNR) or The error rate per bit (Bit-Error-Rate, BER)).
  • the module for obtaining the set B 1 of possible cooperating nodes of an intermediate node provided A 1 can also be presented in the form of a computer program or of a module of a more general computer program, which is executed in the node planned intermediate, so that it is the planned intermediate node itself that determines its set of possible cooperating nodes.
  • Said module acts at certain time intervals, for example, every three seconds, regardless of whether a data packet has been transmitted from the previous node to the intended intermediate node of the data packet path, that is, each said data interval. determined time a new set of possible cooperating nodes for the planned intermediate node is established.
  • the set B 1 of possible cooperating nodes of a planned intermediate node A 1 is arranged in a distributed and opportunistic manner, that is, the adjacent nodes with which a planned intermediate node can establish cooperation are those with which it has communication channels particularly favorable and with those who have established a relationship of trust.
  • the module for detecting the inability of an intermediate node provided A 1 can also be presented in the form of a computer program or a module of a more general computer program, which is executed on the set B 1 of possible cooperating nodes of the intended intermediate node A 1 , or on the intermediate nodes provided A 1 of the data packet path. In this way, it is the set of possible cooperating nodes of a planned intermediate node or the planned intermediate node itself that determines its inability.
  • the way to detect the inability of an expected intermediate node is based on the fact that, since the set of possible cooperating nodes is within the coverage range of the planned intermediate node, none of the nodes of the set of possible cooperating nodes receives the confirmation of receipt of the data packet sent by the intended intermediate node to the previous node A, -i of the data packet path, which is the one that transmits it.
  • the module for determining a group L 1 of cooperating nodes of a planned intermediate node, from among the set B 1 of possible cooperating nodes comprises a submodule to obtain, from said set of possible cooperating nodes, the subset of cooperating nodes that are it is within the coverage range of the previous node A, -i to the intended intermediate node A 1 of the data packet path, when said previous node to the intended intermediate node has transmitted the data packet; and a submodule to select, from said subset of nodes, the group L 1 of cooperating nodes of the intended intermediate node. It is important to note that, in the present preferred embodiment, the determination of the group of cooperating nodes is made for the corresponding intermediate node provided, for the given data packet, and when said intermediate node provided is unable to route it.
  • the module for determining, among the set B 1 of possible cooperating nodes, a group L 1 of cooperating nodes of an intermediate node provided A 1 comprises a submodule to obtain, from said set of possible cooperating nodes, the subset of nodes that are within the coverage range of the previous node to the planned intermediate node of the data packet path, when said previous node has transmitted the data packet; a submodule to obtain, from said subset of nodes, a second subset of nodes, such that the node subsequent to the intended intermediate node of the data packet path is within the coverage range of said second subset of nodes; and a submodule to select, from said second subset of nodes, the group of cooperating nodes of the intended intermediate node.
  • the determination of the group L 1 of cooperating nodes is performed for the corresponding intermediate node provided, for the given data packet, and when said intended intermediate node is unable to route it.
  • the condition that the node after the intended intermediate node of the data packet path is within the coverage range of said second subset of nodes may be equivalent to the condition that the second subset of nodes be It is within the coverage range of the node after the intended intermediate node, provided that the communication channels are bidirectional.
  • the module for determining the group B 1 of possible cooperating nodes of an intermediate node provided A 1 can also be presented in the form of a computer program or a module of a more general computer program, which is executed in an intended intermediate node, thus being the intended intermediate node which determines the group of possible cooperating nodes.
  • the module for determining the group of cooperating nodes L 1 of an intermediate node provided A 1 can also be presented in the form of a computer program or a module of a more general computer program, which is executed in the cooperating nodes L 1 , thus being the set of cooperating nodes L 1 which determines whether or not to cooperate, for a given data package.
  • an intermediate node provided A 1 can comprise a plurality of computer programs or modules of a general program, among which a module for receiving a data packet from the previous node A 1- 1 or in general a node belonging to the cloud whose master is A 1- I, to the expected intermediate node of the data packet path; the module to detect its inability to route the data packet; the module for communicating said inability to the previous node of the data packet route; the module to obtain its set of possible cooperating nodes; the module to determine its group of cooperating nodes, for a received data packet; a module for transmitting the data packet to the subsequent node of the data packet path; a module to distribute to its set of possible cooperating nodes, the necessary routing information; the module to detect the improper operation of a cooperating node; and a module to properly manage the forwarding table.
  • each node of the network must comprise a routing table (forwarding) in which information regarding the address of the destination node D and the address of the subsequent node to which the data packet must transmit is stored to reach the destination node D indicated. Therefore, the table must contemplate, for each destination node, to which node of the network the data packet should transmit. In the same routing table there may be information regarding different routes present in the network, in which the node must intervene. Since the set of possible cooperating nodes of a planned intermediate node can vary at each time interval that is determined, it is necessary that said planned intermediate node keep the routing tables of the set of possible cooperating nodes updated, for which reason the transmission must be transmitted. routing information, from time to time, for example, after determining the set of possible cooperating nodes. There are also protocols in which it is not necessary to be transmitting continuously routing information, since such information is already known by the interested nodes.
  • the set B 1 of possible cooperating nodes can comprise, as described so far, the module for receiving a data packet from the previous node to the corresponding intended intermediate node; the module to detect the inability of the intended intermediate node; the module for communicating the inability of the intended intermediate node; the module for transmitting the data packet to the node after the intended intermediate node, in case the incapacity of said node is detected; the module to detect the improper operation of a cooperating node; and the module to properly manage the forwarding table.
  • the set of possible cooperating nodes also comprises a module to process the received data packet, so that, when received, the set of possible cooperating nodes can determine whether or not to intervene in the routing thereof, based on the address of reception present in the data packet, and, in case it should intervene, by means of the address of the destination node D present in the data packet, it can determine the address of the node to which the data packet should transmit, that is to say , The address of the node after the intended intermediate node.
  • SRSP Single Relay Single Path
  • Io performs a single node, either the first intermediate node provided A 1 , for the first jump, which transmits the data packet to both the subsequent node A 2 to the intended intermediate node of the data packet path, and to the cloud B 2 of possible cooperating nodes of said subsequent node, or group L 2 of cooperating nodes of the second intermediate node provided A 2 , for second jump, which transmits the data packet to the subsequent node D, which is the destination node.
  • the node that transmits the packet is the corresponding intended intermediate node, although sometimes, as described above, the mechanism object of the invention must intervene to determine the group of cooperating nodes, in order to route the data packet and avoid transmission problems between the nodes of the established route.
  • Said determination of the group of cooperating nodes may be made by the intended intermediate node itself and / or its set of possible cooperating nodes, instead of being made by the previous node.
  • the group of cooperating nodes comprises more than one node, since only one of the data packets can transmit, a criterion can be established on which of the nodes of the group of cooperating nodes should route the data packet.
  • the intended intermediate node can prescribe an order, assigning to each node of the group of nodes an action priority level. Therefore, according to the SRSP type scheme, the transmission address present in the data packet refers to a "node" and not to a set of nodes.
  • a 2 , D) between the source node S and the destination node D there are several nodes to route the data packet or part thereof to the next intended intermediate node and / or its set of possible cooperating nodes. Transmissions from this plurality of nodes must be performed orthogonally (for example, at different times, at different frequencies, etc.), that is, both the intended intermediate node and the group of cooperating nodes of said intended intermediate node act as routers, using orthogonal channels
  • the mechanism object of the invention is necessary to determine the nodes that should route the data packet, in case the intended intermediate node is not capable of doing so.
  • the address of transmission corresponds to the "set of nodes" that transmit the data packet.
  • a possible addressing scheme comprises an indicator that informs the set B 1 of possible cooperating nodes of an intended intermediate node A 1 , which must intervene in the routing of the data packet, in case of incapacity of said intended intermediate node. Therefore, said scheme allows not only to refer to the planned intermediate nodes, but also to its set of possible cooperating nodes.
  • the addressing scheme of the invention is as follows:
  • @A is a string ⁇ string) of bits, which may or may not contain routing information and that only identifies the wireless interface of the intermediate node provided
  • a 1 , "0" and “1" are bits used to differentiate the addresses of cloud and node, while n is the cloud sequence number, which is used to detect conditions of cooperators malfunction because they lose contact with the cloud to which they belong.
  • Said addresses, as described, can be used in the wireless network for the address of the origin node S, for the address of the destination node D, for the transmission address, and / or for the reception address, within The control header of a data packet.
  • the addresses of a group of cooperating nodes are closely related to the multicast addresses of several Layer 2 or 3 addressing schemes.
  • the addresses of the IEEE 802.2 multicast or IP multicast are examples of this. In both cases, simple mechanisms have not been defined to allow a multicast address to be assigned. to each unicast address.
  • the set of possible cooperating nodes only receives and processes it (later discards it), while, if the intended intermediate node cannot route the packet, the group of cooperating nodes, determined from among the set of possible cooperating nodes, receives it, processes it and transmits it to the node after the intended intermediate node.
  • the previous node determines that neither the intended intermediate node nor its cooperators have correctly received the data packet, it can proceed to retransmission or start a procedure to obtain a new route, as would happen in a non-cooperative network.
  • the node that transmits the data packet must incorporate, in the control part of the data packet, more specifically, in the receiving address, the indicator ( ⁇ @ A ,, 1, n>) that informs the set of possible cooperating nodes of the intended intermediate node recipient of the data packet, which should cooperate in the routing of the data packet, in case They can and be necessary.
  • the protocol for determining a route determines the intermediate nodes provided A 15 A 2 , among all the nodes of the network, to route the data packet from the origin node S to the destination node D, obtaining the route (S, A 15 A 2 , D) of the data packet.
  • each of the intermediate nodes provided A 1 , A 2 determines its set of possible cooperating nodes, based on the nodes of the network that are within its coverage range and that meet the ideal conditions to act as the cooperating node of the corresponding intermediate node provided, performing said action every certain time interval.
  • each planned intermediate node of the data packet route sends the necessary routing information to its set of possible cooperating nodes, from which the routing table of the set of possible cooperating nodes is updated.
  • a routing scheme of the SRSP type is used.
  • the origin node S which is the one that generates the data packet, transmits it to the set B 1 of possible cooperating nodes of the first planned intermediate node A 1 and to the first planned intermediate node itself, using the Extended addressing scheme described above, that is, it establishes as the receiving address the address ⁇ @A 1 , 1, n>, so that the set of possible cooperating nodes, when processing the received data packet, knows that it must cooperate in the routing of the data packet in the event that the first planned intermediate node A 1 is unable to do so.
  • the The first intermediate node provided A 1 is in a position to be able to route the data packet, so that the set B 1 of possible cooperating nodes only receives and processes it.
  • Said set of possible cooperating nodes knows that the intended intermediate node is able to route the data packet because it receives the confirmation of receipt sent by the first intended intermediate node A 1 to the origin node S. It should be remembered that the set of possible cooperating nodes of a planned intermediate node is within the coverage range of said planned intermediate node (it is one of the conditions established for a node to be part of the set of possible cooperating nodes).
  • the figures also contemplate the possibility that the cooperating nodes help the intermediate nodes provided in the correction of possible errors in the received package, sending them information about the received package.
  • the first intermediate node provided A 1 can route the data packet (it has received it, and without errors), it processes and determines it, from the control header of the data packet, more specifically from the address of the data node. destination D, and its routing table (from the address of the destination node, the routing table allows determining the address of the subsequent node of the route), the node to which the data packet must transmit so that said packet of data reach the destination node D, that is, the second intermediate node provided A 2 . Therefore, the first intended intermediate node A 1 transmits the data packet to the second intended intermediate node A 2 and to its set B 2 of possible cooperating nodes.
  • the second intended intermediate node A 2 Since the second intended intermediate node A 2 is capable of routing the data packet, everything described for the first hop of the data packet (which refers to the first intended intermediate node), is applicable to this second hop (the one refers to the second node planned intermediate). Thus, the second planned intermediate node of the route transmits the data packet to the destination node D, whereby the objective of routing the data packet from the source node S to the destination node D is achieved.
  • the mechanism of the invention comprises a module (or computer program) that determines whether a node of a set of possible cooperating nodes is improperly functioning, causing its elimination of said set of possible cooperating nodes.
  • Fig. 5 a situation of the network different from that of Fig. 4 is shown.
  • the origin node S transmits the data packet using the extended addressing scheme. Therefore, the data packet, in its control header, more specifically, in the receiving address, comprises the address ⁇ @A 1 , 1, n>, which indicates to the set B 1 of possible nodes of the first node Intermediate planned to cooperate in the routing of the data packet in case the first planned intermediate node Ai is not trained to do so.
  • the data packet in its control header, more specifically, in the receiving address, comprises the address ⁇ @A 1 , 1, n>, which indicates to the set B 1 of possible nodes of the first node Intermediate planned to cooperate in the routing of the data packet in case the first planned intermediate node Ai is not trained to do so.
  • the first intermediate node provided is not able to route the data packet, either because it has moved and has been outside the appropriate coverage ranges, or because it has simply disappeared, for example , by a cut in the power supply, or because the conditions of the radiofrequency channel have worsened significantly.
  • its set B 1 of possible cooperating nodes does not receive confirmation of receipt of the data packet that said first planned intermediate node must send to the origin node S. Therefore, set B 1 of possible cooperating nodes of the first node Intermediate planned A 1 knows that it must intervene in the routing of the data packet.
  • the first node planned intermediate and / or its set of possible cooperating nodes determine the group L 1 of cooperating nodes of the first planned intermediate node, so that it is responsible for routing the data packet from the previous node (the origin node S) to the subsequent node (the second planned intermediate node) of the route.
  • the determination of the Li group of cooperating nodes has only a local impact, and is transparent to the rest of the nodes that route the data packet.
  • the source node S continues sending data packets with the receiving address ⁇ @A 1 , 1, n >, which are received and routed by the group L 1 of cooperating nodes of the first intermediate node provided A 1 .
  • the determination of the L 1 group of cooperating nodes can be done in several ways.
  • said group L 1 of cooperating nodes of the first intermediate node provided A 1 can be formed by all those nodes of the set B 1 of possible cooperating nodes, which are also within the coverage range of the previous node of the route, that is, within the coverage range of the origin node S.
  • Said option is a bit risky because there is no certainty that the group of cooperating nodes is within the coverage range of the rear node of the route, that is, of the second intermediate node provided A 2 , or what is the same, that the second planned intermediate node A 2 is within the coverage range of group L 1 of cooperating nodes of the first planned intermediate node A 1 .
  • the group U of cooperators of the first intended intermediate node Ai may be formed by those nodes that are within the coverage range of the origin node S and, in turn, within the coverage range of the subsequent node of the route, is that is, the second intermediate node provided A 2 , or what is the same, that the second intermediate node provided A 2 is within the coverage range of group L 1 of cooperating nodes of the first intermediate node provided A 1 This option ensures that the node selected to route the data packet can really do it.
  • the corresponding planned intermediate node previously establishes a cooperation criterion, such as the assignment of an order of intervention between the nodes that make up the group of cooperating nodes.
  • a cooperation criterion such as the assignment of an order of intervention between the nodes that make up the group of cooperating nodes.
  • the previous node in no case intervenes in the selection of the node that should subsequently route the data packet; This is done by the corresponding intermediate node and / or its set of possible cooperating nodes. Said previous node knows that the packet has been received by some node of the following cloud since it receives the confirmation of reception, either from the corresponding planned intermediate node or from one of the cooperating nodes of said corresponding intended intermediate node. However, in the case of receiving confirmations from the cooperating nodes, you can initiate an alternative route search procedure. While said route has not been established, packages can continue traveling on the current route.
  • the node of said group of cooperating nodes responsible for routing the data packet sends the confirmation of receipt of the data packet to the node of origin S, and transmits the data packet to the subsequent node of the route, that is, to the second intermediate node provided A 2 and to its set B 2 of possible cooperating nodes, after processing the data packet and obtaining the address of the rear node of the route (the second intermediate node provided) by means of the address of the destination node D present in the control header of the data packet and the routing table of said node of the group of cooperating nodes responsible for routing the data packet .
  • origin node S must not transmit the data packet again in case the first intermediate node is unable to route said data packet, since the group of cooperating nodes in charge of routing the data packet already It has received, processed and saved, to route it in the case of detecting the inability to do so, of the first planned intermediate node.
  • the second intermediate node provided A 2 sends the confirmation of receipt to the previous node of the route (the node of group U of cooperating nodes of the first intermediate node provided A 1 ), it processes and determines the address of the subsequent node of the route, that is, the address of the destination node D, to which the data packet must transmit. Said destination node D confirms the reception of the data packet to the second intermediate node provided, the routing of the data packet being completed.
  • the group L 1 of cooperating nodes of the first planned intermediate node A 1 requests a change to be the new planned first intermediate node, so that the new route is defined by (S, L 1 , A 2 , D).
  • Said route change can alternatively be decided by node S, upon receiving confirmations from cooperating nodes of A 1 , instead of receiving them from node A 1 itself .
  • the mechanism activates a process to establish a new route, using, for example, the group L 1 of cooperating nodes of the first intermediate node provided A 1 as the new first intermediate node intended.
  • an intermediate node provided A 1 is incapable of routing data packets for a long period of time, there is the possibility that its group L 1 of cooperating nodes or its set B 1 of possible cooperating nodes, requests establishing a new route, utilizing, for example, the group of cooperating nodes as the new intermediate node being Ia new route (S, a 1, a 1 -I L 1, 1 + 1, .. .D).
  • the routing table of node A, -i is updated, packets are transmitted with a new receiving address ⁇ @ L 1 , 1, n>.
  • level 2 refers to the level of data link, including the functions of Media Access Control (MAC).
  • MAC Media Access Control
  • the protocol described by the IEEE 802.1 1 standard is used. Said level 2 technology allows communication between nodes ad hoc. The frames do not have to incorporate the addressing described below (that is, addressing the set of possible cooperating nodes or cloud of cooperators), although a level 2 protocol that incorporated it natively would certainly be more efficient. It is assumed that the level 2 frames directed to a single node receive some type of confirmation (ACK frame). As a reference, the description of the implementation takes the standard IEEE 802.1 1 nomenclature and mechanisms for level 2 technology, although its scope is much more general.
  • the routing between nodes is made at level 3, although it is not decisive, meaning "level 3" the Network level.
  • the IP protocol defined by the IETF for level 3 is used.
  • the L3 routing protocol is made with AODV with Local Repair capability (at least for preventive Local Repair).
  • the mechanisms are general and could be adapted to other L3 routing protocols with dynamic route repair capability (for example, AODV s ⁇ n Local Repair, OLSR, etc.).
  • the forwarding table will be referenced in the present implementation as Table L2 / L3 since the destination / source addresses are assumed to be IP addresses (i.e., L3 level), while the Transmission / Receive addresses are MAC level (i.e. 48 bit addresses of the same type to those used in the IEEE 802.1 1 standard to which new information fields have been added to indicate if the address is to cloud or node and to indicate the cloud sequence number).
  • IP addresses i.e., L3 level
  • MAC level i.e. 48 bit addresses of the same type to those used in the IEEE 802.1 1 standard to which new information fields have been added to indicate if the address is to cloud or node and to indicate the cloud sequence number.
  • the affected node while performing the Local Repair, the affected node continues the transmission of packets. It is assumed that the link to the destination has not been broken thanks to the action of cooperating nodes of the next-hop node. It is possible that during a preventive LR process a normal LR will be passed. In that case, the LR process continues (no new RREQ messages are generated in the case of AODV), although packets located on the affected node become stored.
  • the set of possible cooperating nodes is determined from the exchange of C-HELLOs messages.
  • C-HELLOs messages will be normally transmitted in L2 frames in broadcast. The time between transmissions of these messages must be less than TC-HELLO.
  • the format of these packages is defined below. It is possible to send the C-HELLO messages with a transmission power lower than that of the other packets (the objective is to discover cooperators, not neighbors), and thus occupy less the transmission medium.
  • - They allow the nodes neighboring the node N that transmits the message (data packet) to determine the level of signal strength of N transmissions.
  • Cooperating nodes should typically have a level of reception of messages sent by their intermediate node very well, so that not all neighboring nodes are possible cooperators.
  • - They include a list of the nodes that the node N that transmits the message considers as its cooperators. This list can include information on priority or timing in the actions of the cooperators. If a node does not have cooperators an empty list is sent.
  • They can include a list of intermediate nodes (masters) of the node.
  • the intermediate node may know that a cooperator has stopped considering it as an intermediate node, which is a sign that the cooperator does not have a good transmission with the neighbors of the intermediate node.
  • a node is an intermediate node and has cooperators, then it also includes the routing information for the cooperators to know.
  • Inputs for this algorithm can be: priorities assigned by the planned intermediate node, next-hop is or is not in our routing table, link quality in the last times the node has transmitted to the next-hop, etc. Some of them are detailed below.
  • a planned intermediate node selects cooperators and assigns priorities based on: SNR received in the C-HELLOs, number of times in which a node has voluntarily declared itself as non-cooperating, etc.
  • a node N is considered a cooperator of another node N 'when it hears a C-HELLO message sent by N' in which it is included in the list of cooperators.
  • N is an expected intermediate node and there are modifications in Table L3 / 2 that do not affect the context N (since, for example, they only affect the context N 'being N' a node that is an intermediate node of N), N does not have to notify these changes to its neighboring nodes.
  • the number of C-HELLO must be limited per second.
  • a node When a node detects the reception of duplicate C-ACKs for the same packet with cloud sequence number n, it must increase the cloud sequence number of the packets to n + 1. If these packets reach the planned intermediate node, it must increase the sequence number of the cloud to n + 1, sending a C-HELLO, so that from that moment only cooperators cooperating with the intermediate node provided in that moment
  • Node N first determines whether or not to discard the packet, by looking at the level 2 receiving address. If this address corresponds to:
  • a cooperating node of a certain cloud has as a cloud sequence number the number m and receives a packet addressed to said cloud with cloud sequence number n, with n less than or equal to am, saves the packet in a buffer, waiting for it that is either discarded or forwarded. If that the packet must be forwarded, in the search in table L2 / L3, the context of the corresponding intended intermediate node is used.
  • node N If a node N must forward a packet, consult the table L3 / 2, using the appropriate context, looking for the next-hop to route the packet to.
  • the cases in which node N is an expected intermediate node of the route that the package follows or acts as a cooperator must be distinguished.
  • Each node maintains its CloudSN sequence number, which will be the one with the cloud in which it is the intended intermediate node.
  • the L2 level protocol sends [ACK] confirmations for frames with a unicast destination address (that is, addressed to a single node) and received correctly.
  • the node that has transmitted the data frame knows that it has been correctly received. , although it was not for the planned intermediate node, but for one of its cooperators. Although the ideal situation would be that the possibility of sending C-ACKs were contemplated by the L2 level protocol itself, this is not necessarily so. For example, the IEEE 802.1 1 protocol does not contemplate this possibility. Therefore, the possibility of generating 802.1 1 frames whose content corresponds to C-ACK packets, sent either by the intended intermediate node itself or by the cooperators, is contemplated.
  • the operation of the node when receiving a data packet is specified by the following algorithm:
  • CIoUdSN [M] refers to the value that node N has of the sequence number of the cloud whose master is M. To simplify instead of N. CIoudSN [N] N. CloudSN is used.
  • node N receives more than one C-ACK associated with said packet, it increases the sequence number associated with the transmission of said packet, so that the next packet it transmits will have an increased sequence number. It is important to note that this will cause that, if one of the nodes that sends C-ACKs is the master, that master node adopts the increased sequence number, and communicates the change to its cooperators by sending a C-ACK, while The node that has retransmitted the packet erroneously (probably because it is not in coverage with the master node) will not retransmit that packet with the increased cloud sequence number. Unless you are able to listen to the C-ACKs in which the cloud sequence number is updated, said cooperating node is out of the cloud. In this way, it is possible to detect and correct the situations in which a cooperating node continues to cooperate erroneously when the master has a correct operation but has been located outside the range of coverage of the cloud.
  • the context is an identifier of a node that is used as a key when handling the L3 / 2 table (for example, when doing a lookup). Indicates that the node that appears in ⁇ @ 2 Context> is considered the intended intermediate node of a route with destination ⁇ @ 3 Dest>. If the table L3 / 2 of a node N has an entry with context N, it is said that that entry is in the "proper context". This entry will have been generated as a result of L3 level routing decisions in node N itself. If the entry has a context N ', N' must belong to Cloud (N) and the entry will have been generated as a result of receiving a C-HELLO message.
  • a node When a node queries its L3 / 2 table (for example, to do a lookup), it does so under a certain context. For example, if the node is routing a packet without cooperating with another, the context will be its own. If, on the contrary, the node is routing the packet as a result of its cooperation with another node, it will do so with the context associated with the other node. In other words, the context allows the same node to have several views of packet routing: the one corresponding to the node itself and the one corresponding to that of each of its planned intermediate nodes (or masters).
  • the carrier medium can be any entity or device capable of carrying the program.
  • the carrier medium may comprise a storage medium, such as a ROM, for example a CD ROM or a semiconductor ROM, or a magnetic recording medium, for example a floppy disc or a hard disk.
  • the carrier means may be a transmissible carrier medium such as an electrical or optical signal that can be transmitted via electrical or optical cable or by radio or other means.
  • the carrier means may be constituted by said cable or other device or medium.
  • the carrier means may be an integrated circuit in which the computer program is encapsulated ⁇ embedded ⁇ , said integrated circuit being adapted to perform, or to be used in the realization of, the relevant processes.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Comprende medios para detectar la incapacidad del nodo intermedio previsto (A1;A2) para enrutar, a través del mismo, el paquete de datos desde el nodo anterior a dicho nodo intermedio previsto hasta el nodo posterior a dicho nodo intermedio previsto de la ruta del paquete de datos; y medios para determinar un grupo de nodos cooperadores del nodo intermedio previsto (A1;A2), de entre la pluralidad de nodos de la red (No,...,N15), para enrutar, a través del mismo, el paquete de datos desde el nodo anterior al nodo intermedio previsto hasta el nodo posterior al nodo intermedio previsto de la ruta del paquete de datos, en caso de que se detecte la incapacidad del nodo intermedio previsto. Se consigue un sistema que permite usar los recursos de nodos adyacentes a los nodos de la ruta del paquete de datos, para incrementar sus capacidades de comunicación y procesamiento.

Description

Sistema y procedimiento para enrutar un paquete de datos en una red inalámbrica, sistema de computación en un sistema para enrutar un paquete de datos en una red inalámbrica, y procedimiento para enrutar un paquete de datos en un sistema de computación
La presente invención se refiere a un sistema para enrutar un paquete de datos en una red inalámbrica, desde un nodo de origen hasta un nodo de destino, a través de al menos un nodo de Ia red que actúa como nodo intermedio previsto, formando una ruta del paquete de datos. Más concretamente, se refiere a un mecanismo cooperativo de enrutamiento para redes ad-hoc multisalto {multi-hop), que permite usar los recursos de nodos adyacentes a los nodos de Ia ruta del paquete de datos, para incrementar sus capacidades de comunicación y procesamiento.
También se refiere a un procedimiento para enrutar un paquete de datos en una red inalámbrica, a un sistema de computación en un sistema para enrutar un paquete de datos en una red inalámbrica, y a un procedimiento para enrutar un paquete de datos en un sistema de computación.
La invención es directamente aplicable como mecanismo cooperativo de enrutamiento de un paquete de datos, o puede adaptarse a protocolos conocidos.
Antecedentes de Ia invención
Uno de los problemas más importantes que supone Ia transmisión de señales por radiofrecuencia, es Ia rápida atenuación que sufre Ia señal transmitida con Ia distancia. Así, cuando se pretende transmitir un paquete de datos a velocidades más o menos importantes y largas distancias, es necesario un transmisor con una potencia de transmisión elevada para que el paquete de datos llegue a su destino con una baja tasa de errores. Obviamente, dicha solución no es adecuada para, por ejemplo, dispositivos portátiles, tales como teléfonos móviles o PDAs, que, por configuración, deben consumir poca potencia o tienen limitada su potencia de transmisión.
Una de las soluciones adoptadas para Ia transmisión de paquetes de datos vía radiofrecuencia ha sido Ia creación de redes de comunicaciones multisalto (multihop), a través de cuyos nodos se enruta el paquete de datos deseado, desde un nodo de origen hasta un nodo de destino de Ia red. En primer lugar, para poder realizar dicho enrutamiento del paquete de datos, es necesaria Ia intervención de un protocolo de determinación de Ia ruta del paquete de datos, seleccionando dicho protocolo los nodos de Ia red más adecuados para el enrutamiento del paquete de datos. Por otro lado, es necesario un mecanismo de enrutamiento {forwarding) que indique a cada nodo de Ia ruta qué camino debe tomar y que normalmente consiste en Ia consulta de una tabla de enrutamiento (forwarding tablé) que indica el próximo nodo en el camino hacia el destino, y el posterior reenvío del paquete de datos dirigido a dicho nodo.
Básicamente, el protocolo de determinación de ruta establece, de entre Ia pluralidad de nodos de Ia red, los nodos que deben intervenir para enrutar el paquete de datos desde el nodo de origen hasta el nodo de destino, es decir, establece los nodos intermedios previstos por los que debe circular el paquete de datos. Además, dicho protocolo aporta toda Ia información de enrutamiento necesaria a las tablas de enrutamiento (forwarding tables) de cada uno de los nodos que forman parte de Ia ruta del paquete de datos establecida (cada nodo conoce, de acuerdo con el nodo de destino, a qué nodo debe transmitir el paquete de datos). Para conseguir Ia determinación de Ia ruta, los nodos de Ia red deben comunicarse entre ellos (por ejemplo, intercambiando mensajes con información de enrutamiento), de manera que se obtienen los nodos más adecuados para enrutar el paquete de datos, y se determina como deben comunicarse entre sí. Un ejemplo de protocolo de determinación de ruta se describe en Ia solicitud de patente europea EP1 122919, con título "Procedimiento de enrutamiento para redes ad hoc", a nombre de CIT Alcatel. En dicha solicitud se describe una metodología que permite determinar una ruta en una red ad hoc multi- salto {multi-hop), entre un nodo de origen y un nodo de destino.
Otro ejemplo del protocolo descrito es el estándar del IETF {Internet Engineering Task Forcé) conocido como AODV (Ad hoc On-demand Distance Vector), que permite establecer rutas en redes ad hoc multisalto. Dicho protocolo AODV entra en funcionamiento cuando un nodo de Ia red necesita determinar una ruta a un nuevo destino.
En cuanto al mecanismo de enrutamiento o forwarding, utiliza Ia dirección del nodo destino final del paquete del datos (es decir, del extremo final de Ia ruta que debe seguir dicho paquete de datos) para obtener Ia dirección del nodo al que se debe transmitir dicho paquete de datos (Io que normalmente se denomina nodo next-hop). Este mapeo se encuentra en Io que se denomina tabla de forwarding o enrutamiento. Dichas direcciones (junto con Ia dirección del nodo que originó el paquete de datos y Ia del nodo que Io está transmitiendo) aparecen en Ia cabecera de control del paquete de datos cuando dicho paquete de datos sea transmitido. Puesto que, como ya se ha descrito anteriormente, cada nodo de Ia ruta tiene una tabla de forwarding que Ie indica a qué nodo debe transmitir el paquete de datos para un determinado nodo de destino, el nodo procesa el paquete de datos y, mediante el mecanismo de enrutamiento, determina a qué nodo debe transmitir el paquete de datos.
En el caso de que los nodos intermedios previstos de Ia ruta establecida se encuentren en una posición estática, los mecanismos de enrutamiento conocidos (por ejemplo, mecanismos no-cooperativos) funcionan de forma aceptable. El problema aparece cuando alguno de los nodos intermedios previstos de Ia ruta pasa a un estado de incapacidad para encaminar el paquete de datos. Esto sucede, por ejemplo, si el nodo intermedio previsto se mueve situándose fuera del rango de cobertura del nodo anterior a dicho nodo intermedio previsto, o si se ha producido el apagado del nodo intermedio previsto, por falta de alimentación o porque el nodo entra en un estado de ahorro de energía, o si el paquete se recibe con errores. Sea cual sea Ia situación, se corta Ia comunicación entre los nodos de Ia ruta del paquete de datos y, por tanto, se pierden paquetes de datos. Una posible solución ante una situación como ésta es Ia de actualizar las tablas de forwarding de los nodos de Ia ruta del paquete de datos, para adaptarlas a Ia nueva situación, y establecer una nueva ruta del paquete de datos. El inconveniente principal de dicha solución es Ia cantidad de paquetes de datos que se pierden durante el tiempo que pasa desde que se corta Ia comunicación hasta que se actualizan las tablas de forwarding de los nodos implicados, puesto que dicho proceso requiere usualmente tiempos elevados (varios segundos) para su realización.
Por otro lado, son conocidos en el estado de Ia técnica los protocolos cooperativos, que permiten que los nodos utilicen recursos de nodos adyacentes para incrementar su capacidad de comunicación y procesado. El diseño de dichos protocolos es un campo de investigación nuevo y prometedor. Sin embargo, aunque está creciendo su popularidad en transmisiones inalámbricas y aplicaciones peer-to-peer, es menos común en los niveles intermedios del stack de comunicaciones, principalmente para las capas 2 a 4 del modelo de referencia de Interconexión de Sistemas Abiertos (ISA) de ISO (International Standards Organization). La causa principal puede ser que los mecanismos y abstracciones básicas, tales como un enrutamiento adecuado, que facilitarían el diseño de esta clase de protocolos, no están definidos en los protocolos de comunicaciones de uso mayoritaho en Ia actualidad: TCPHP, estandarizado por IETF.
Recientemente se han publicado varios documentos referentes a protocolos cooperativos en Ia capa física (nivel 1 del stack de comunicaciones), por ejemplo, en [A. Nosratinia, T.E. Hunter, A. Hedayat, "cooperative Communication in Wireless Networks", IEEE Communications Magazine, Octubre de 2004]. Los resultados obtenidos muestran que se pueden obtener ahorros sustanciales de energía e incrementos en el alcance, aunque, por el contrario, requieren hardware de radiofrecuencia complejo.
En el campo de los protocolos cooperativos en Ia capa de aplicación (capas 5 a 7 del stack de comunicaciones), últimamente se ha producido un incremento de propuestas para protocolos conocidos, tales como peer-to-peer (P2P), que han demostrado su capacidad para formar sistemas distribuidos y auto- organizados, en los que se comparten recursos, por ejemplo, contenidos, ciclos de CPU, almacenamiento o ancho de banda.
En cuanto a las capas 2 a 4, existen evidencias de que se pueden obtener grandes ganancias de protocolos cooperativos en estos niveles sin un incremento en Ia complejidad del hardware, aunque, como se ha descrito anteriormente, su desarrollo no ha sido muy tratado en Ia literatura. Cabe citar por ejemplo los siguientes trabajos: [P. Larsson/'Selection Diversity Forwarding in a Multihop Packet Radio Network with Fading Channel and Capture", ACM SIGMOBILE Mobile Computing and Communication Review, VoI 5 No. 4 (2001), 47-54], [S. Biswas, R. Morris, "ExOR: Opportunistic Multihop Routing for Wireless Networks", Proceedings oí ACM SIGCOMM'05 pp. 133-143, Philadelphia, Pennsylvania, USA, 2005] y [A. Bletsas, A. Khisti, D. Reed, A. Lippman, "A Simple Cooperative Diversity Method Based on Network Path Selection" IEEE Journal on Selected Áreas in Communications, VoI. 24, No. 3, March 2006].
Debe señalarse que, en general, el mismo mecanismo puede ser utilizado por protocolos de comunicaciones situados en diferentes niveles del modelo de referencia ISA de ISO. Por ejemplo, el enrutamiento de paquetes suele realizarse a nivel 3, pero también puede realizarse en otros niveles (por ejemplo, a nivel 2 o incluso en el nivel de aplicación). Por ello el mecanismo que se describe en el documento no está limitado a su aplicación a un nivel específico del modelo de referencia ISA de ISO.
Descripción de Ia invención
A partir de Io descrito anteriormente, es un objetivo de Ia presente invención proporcionar un sistema para enrutar un paquete de datos en una red inalámbrica, que permite optimizar el funcionamiento de Ia misma.
Este objeto se consigue de acuerdo con Ia reivindicación 1 , proporcionando un sistema para enrutar al menos un paquete de datos en una red inalámbrica, que comprende medios para detectar Ia incapacidad del nodo intermedio previsto para enrutar, a través del mismo, el paquete de datos desde el nodo anterior a dicho nodo intermedio previsto hasta el nodo posterior a dicho nodo intermedio previsto de Ia ruta del paquete de datos; y medios para determinar un grupo de nodos cooperadores del nodo intermedio previsto, de entre Ia pluralidad de nodos de Ia red, para enrutar, a través del mismo, el paquete de datos desde el nodo anterior al nodo intermedio previsto hasta el nodo posterior al nodo intermedio previsto de Ia ruta del paquete de datos, en caso de que se detecte Ia incapacidad del nodo intermedio previsto.
El sistema de acuerdo con Ia invención puede considerarse como un mecanismo cooperativo de enrutamiento. El hecho de proporcionar unos medios para determinar un grupo de nodos cooperadores de un nodo intermedio previsto, hace que, en el caso que se detecte Ia incapacidad del nodo intermedio previsto, dicho grupo de nodos cooperadores, que puede estar formado por uno o más nodos de Ia red, se encargue de enrutar el paquete de datos, por Io que no se produce un corte en Ia comunicación entre los nodos de Ia ruta del paquete de datos, y, por tanto, no se produce una pérdida de paquetes de datos, resolviéndose los problemas de transmisión existentes en las redes inalámbricas actuales. Básicamente, ninguno de los nodos implicados en el enrutamiento del paquete de datos debe modificar su tabla de enrutamiento, por Io que no se pierde tiempo en ello, y por tanto, tampoco se pierden paquetes de datos.
El grupo de nodos cooperadores toma completamente las funciones del nodo intermedio previsto, para asegurar que el estado de funcionamiento de Ia red no se vea afectado por el movimiento o Ia desaparición de dicho nodo intermedio previsto. Los nodos de Ia red inalámbrica cooperan entre ellos, de manera que el nodo intermedio previsto de Ia ruta del paquete de datos utiliza los recursos de nodos adyacentes para incrementar sus capacidades de comunicación y procesamiento, obteniéndose una red más sólida como resultado de compartir sus capacidades de transmisión y enrutamiento. Dichos recursos compartidos pueden ser, por ejemplo, antenas, cadenas de Radio Frecuencia, interfaces de red, memoria o procesadores.
Durante el periodo de tiempo en el que se produce Ia cooperación, el protocolo de determinación de rutas puede realizar una búsqueda de un camino alternativo. Una vez que un camino alternativo ha sido establecido, el flujo de datos seguirá el nuevo enrutamiento. La clave del mecanismo descrito está en que, durante este periodo de determinación de nueva ruta, el flujo de datos no queda interrumpido.
Otra ventaja de Ia invención es que el mecanismo puede ser útil para acomodar, en redes inalámbricas, el funcionamiento de protocolos cooperativos ya existentes (por ejemplo, protocolos MAC cooperativos o protocolos ARQ cooperativos,), consiguiéndose que su funcionamiento sea más natural.
En una situación extrema, en Ia que el grupo de nodos cooperadores del nodo intermedio previsto encargado de enrutar el paquete de datos no presente ningún nodo, Ia red inalámbrica seguiría funcionando como Io haría en el caso de que fuera una red no cooperativa, nunca peor.
Preferentemente, el sistema comprende medios para obtener un conjunto de posibles nodos cooperadores del nodo intermedio previsto. Dicho conjunto de posibles nodos cooperadores comprende los nodos que potencialmente pueden actuar como nodos cooperadores del nodo intermedio previsto, cuando dicho nodo sea incapaz de enrutar un paquete de datos. La obtención de dicho conjunto de posibles nodos cooperadores del nodo intermedio previsto puede realizarse a intervalos de tiempo determinados, por ejemplo, cada tres segundos, y es independiente de Ia transmisión del paquete de datos por parte del nodo anterior al nodo intermedio previsto de Ia ruta del paquete de datos. De este modo, puesto que, cuando se realiza Ia transmisión, el conjunto de posibles nodos cooperadores es conocido, el tiempo necesario para confirmar Ia recepción del paquete de datos es reducido, Io cual es adecuado para determinados protocolos.
Según una realización preferida de Ia invención, los medios para obtener el conjunto de posibles nodos cooperadores del nodo intermedio previsto comprenden medios para obtener el conjunto de nodos que se encuentran dentro del rango de cobertura del nodo intermedio previsto; y medios para seleccionar, de entre dicho conjunto de nodos, el conjunto de posibles nodos cooperadores del nodo intermedio previsto, de tal modo que dicho conjunto de posibles nodos cooperadores cumple unas condiciones idóneas para actuar como nodo cooperador del nodo intermedio previsto.
Así, el conjunto de posibles nodos cooperadores puede estar formado por aquellos nodos que presenten unos canales de comunicación particularmente favorables con el nodo intermedio previsto de Ia ruta del paquete de datos. La determinación de un canal de comunicación favorable puede basarse en determinados parámetros de calidad, tales como Ia relación señal a ruido (Signal-to-Noise Ratio, SNR) o Ia tasa de error por bit (Bit-Error-Rate, BER).
Otra ventaja a destacar de Ia invención es que el nodo anterior al nodo intermedio previsto no interviene en Ia decisión referente a qué nodo del conjunto de posibles nodos cooperadores de dicho nodo intermedio previsto debe enrutar el paquete de datos, en caso de que el nodo intermedio previsto sea incapaz de hacerlo (el grupo de nodos cooperadores se escoge entre el nodo intermedio previsto y su conjunto de posibles nodos cooperadores). Ante Ia incapacidad del nodo intermedio previsto de enrutar el paquete de datos, desde el nodo anterior no se entiende que se haya roto Ia ruta del paquete de datos, puesto que recibe una confirmación de recepción del paquete de datos de alguno de los nodos del conjunto de posibles nodos cooperadores del propio nodo intermedio previsto, si dicho nodo no puede enrutar el paquete de datos.
De acuerdo con una realización de Ia invención, el conjunto de posibles nodos cooperadores puede comprender los medios para detectar Ia incapacidad del nodo intermedio previsto, aunque es posible, tal como se ha descrito arriba, que el propio nodo intermedio previsto los pueda incorporar.
Del mismo modo, el conjunto de posibles nodos cooperadores de un nodo intermedio previsto puede comprender también medios para comunicar Ia inactividad del nodo intermedio previsto, al nodo anterior a dicho nodo intermedio previsto de Ia ruta del paquete de datos, aunque como también se ha descrito arriba, es posible que los incorpore el propio nodo intermedio previsto. Dicha comunicación de inactividad puede realizarse, por ejemplo, después de un tiempo determinado de inactividad del nodo intermedio previsto, o después de un número determinado de paquetes de datos que no han podido ser enrutados por el mismo sin que haya sido necesaria Ia cooperación de nodos cooperadores al nodo intermedio previsto. Sea cual sea Ia causa, se puede provocar una modificación en Ia tabla de forwarding del nodo anterior, para que el enrutamiento del paquete de datos para un nodo de destino determinado se haga a través de otro nodo, obteniéndose una nueva ruta del paquete de datos. Esta modificación puede provocarse bien invocando Ia funcionalidad del protocolo de determinación de rutas (protocolo de enrutamiento) o bien a partir de información local proporcionada por los propios nodos cooperadores del nodo intermedio previsto.
Preferiblemente, cada uno de los nodos de Ia red comprende información de enrutamiento, Ia cual puede estar en forma de tabla de enrutamiento (forwarding tablé). Dicha información debe comprender al menos Ia dirección del nodo de destino del paquete de datos, y Ia dirección del nodo al que debe transmitir el paquete de datos para que dicho paquete alcance el nodo de destino. Dicha información se complementa con Ia información que incorpora el paquete de datos en su cabecera de control, entre Ia que destaca Ia dirección del nodo de destino del paquete de datos. De este modo, cuando el nodo intermedio previsto que recibe el paquete de datos Io procesa, determina el nodo de destino del paquete y, a partir de su tabla de forwarding determina el nodo al que debe transmitir el paquete de datos.
El nodo intermedio previsto puede comprender medios para distribuir a su conjunto de posibles nodos cooperadores, Ia información de enrutamiento necesaria, de manera que dicha información se introduce en Ia tabla de forwarding de cada uno de los nodos del conjunto de posibles nodos cooperadores. De este modo, el nodo intermedio previsto mantiene actualizadas las tablas de forwarding de su conjunto de posibles nodos cooperadores, ante posibles desapariciones de nodos, ya sea, por ejemplo, por movilidad o por desconexión. La distribución de dicha información de enrutamiento puede realizarse a intervalos de tiempo determinados.
Es importante destacar que, gracias a Ia utilización de ondas radio, Ia transmisión del paquete de datos por parte del nodo anterior al nodo intermedio previsto, puede realizarse, al mismo tiempo, tanto a dicho nodo intermedio previsto como a su conjunto de posibles nodos cooperadores, por Io que, con tal de que algún nodo del grupo de cooperadores del nodo intermedio previsto reciba correctamente el paquete, el nodo anterior no debe volver a transmitir el paquete de datos para que sea enrutado por el grupo de nodos cooperadores, en caso de que el nodo intermedio previsto sea incapaz de enrutarlo. Puesto que el conjunto de posibles nodos cooperadores también recibe el paquete de datos, Io procesa y Io mantiene hasta que determina que el nodo intermedio previsto Io ha enrutado. En caso de que el conjunto de posibles nodos cooperadores determine que el nodo intermedio previsto no ha enrutado el paquete de datos, ya que no ha enviado Ia confirmación de recepción del paquete de datos al nodo anterior, el grupo de nodos cooperadores, que forma parte del conjunto de posibles nodos cooperadores, enruta el paquete de datos hasta el nodo posterior al nodo intermedio previsto.
Si el grupo de nodos cooperadores comprende más de un nodo, el enrutamiento del paquete de datos hasta el nodo posterior al nodo intermedio previsto puede ser hecho por todos los nodos del grupo de nodos cooperadores o por sólo uno de dichos nodos. En este último caso, Ia determinación del nodo que debe enrutar el paquete de datos puede realizarse, por ejemplo, de acuerdo con un orden establecido por el nodo intermedio previsto, por proximidad, o por calidad del canal de comunicación.
El paquete de datos transmitido al nodo intermedio previsto y a su conjunto de posibles nodos cooperadores puede comprender un indicador que informa a dicho conjunto de posibles nodos cooperadores si debe o no cooperar en el enrutamiento de dicho paquete de datos {flag áe cooperación). De este modo, si el paquete de datos incorpora dicho indicador, el conjunto de posibles nodos cooperadores sabe que, en caso de incapacidad del nodo intermedio previsto, debe intervenir en el enrutamiento del paquete y, por tanto, guarda el paquete de datos hasta que confirma que el nodo intermedio previsto Io ha enrutado. Si el paquete de datos no incorpora dicho indicador, Ia red funciona como si se tratara de un mecanismo no cooperativo de enrutamiento, es decir, no existe cooperación entre los nodos de Ia ruta del paquete de datos y los nodos adyacentes a dichos nodos de Ia ruta.
De acuerdo con otra realización de Ia invención, los medios para determinar el grupo de nodos cooperadores del nodo intermedio previsto comprenden medios para obtener, del conjunto de posibles nodos cooperadores, el subconjunto de nodos que se encuentra dentro del rango de cobertura del nodo anterior al nodo intermedio previsto de Ia ruta del paquete de datos, cuando dicho nodo anterior al nodo intermedio previsto ha transmitido el paquete de datos; y medios para seleccionar, de entre dicho subconjunto de nodos, el grupo de nodos cooperadores del nodo intermedio previsto.
En este caso, el grupo de nodos cooperadores corre un riesgo importante, puesto que no sabe si el nodo posterior al nodo intermedio previsto se encuentra dentro de su rango de cobertura, aunque dicha realización acelera considerablemente el proceso. Esta característica es adecuada para aquellos protocolos en los que es necesario una confirmación de recepción rápida, como puede ser el 802.1 1.
Alternativamente, los medios para determinar el grupo de nodos cooperadores del nodo intermedio previsto puede comprender medios para obtener, del conjunto de posibles nodos cooperadores, el subconjunto de nodos que se encuentra dentro del rango de cobertura del nodo anterior al nodo intermedio previsto de Ia ruta del paquete de datos, cuando dicho nodo anterior al nodo intermedio previsto ha transmitido el paquete de datos; medios para obtener, de dicho subconjunto de nodos, un segundo subconjunto de nodos, de tal modo que el nodo posterior al nodo intermedio previsto de Ia ruta del paquete de datos se encuentra dentro del rango de cobertura de dicho segundo subconjunto de nodos; y medios para seleccionar, de entre dicho segundo subconjunto de nodos, el grupo de nodos cooperadores del nodo intermedio previsto.
En este segundo caso, el enrutamiento del paquete de datos se realiza con alta probabilidad, puesto que el sistema verifica que el nodo al que se debe transmitir el paquete de datos está dentro del rango de cobertura del grupo de nodos cooperadores del nodo intermedio previsto.
El sistema puede comprender también medios para detectar el funcionamiento inadecuado de un nodo del conjunto de posibles nodos cooperadores. Dicho funcionamiento inadecuado puede deberse, por ejemplo, a un funcionamiento erróneo del nodo o a un funcionamiento innecesario. En el primer caso, Ia presencia de dichos medios evita que el nodo pueda formar parte del grupo de nodos cooperadores y, por tanto, que puedan aparecer problemas de comunicación en Ia red (pérdida de paquetes de datos). En cuanto al segundo punto, el hecho de que deje de trabajar un nodo que presenta un funcionamiento inadecuado, evita un consumo innecesario de recursos del sistema.
De acuerdo con una realización de Ia invención, el conjunto de posibles nodos cooperadores (también referenciado de aquí en adelante como "nube") comprende un identificador de dicho conjunto (o identificador de nube). De este modo, cuando el conjunto de posibles nodos cooperadores se modifica (ya sea, por ejemplo, porque uno de los nodos se mueve y queda fuera de cobertura o porque uno de los nodos se apaga) se asigna un nuevo identificador a dicho conjunto.
Además, Ia información de enrutamiento de al menos uno de los nodos de Ia ruta del paquete de datos puede comprender el identificador de su conjunto de posibles nodos cooperadores. De este modo, sólo van a cooperar con el nodo intermedio previsto aquellos nodos que tengan conectividad en ese momento con dicho nodo intermedio previsto.
La invención puede incorporar también un mecanismo que permite a un nodo cooperador de una nube saber que ha dejado de recibir correctamente los mensajes del nodo intermedio previsto de esa nube (que será referenciado de aquí en adelante como master de Ia nube), mientras que el nodo master recibe correctamente las tramas, Io que es indicativo que el nodo debe dejar de cooperar, ya que se produce una condición de nube rota.
De acuerdo con otro aspecto, Ia invención proporciona un procedimiento para enrutar al menos un paquete de datos en una red inalámbrica, que comprende las etapas de (A) detectar Ia incapacidad del nodo intermedio previsto para enrutar, a través del mismo, el paquete de datos desde el nodo anterior a dicho nodo intermedio previsto hasta el nodo posterior a dicho nodo intermedio previsto de Ia ruta del paquete de datos; (B) en caso de detección positiva en Ia etapa (A), determinar un grupo de nodos cooperadores del nodo intermedio previsto, de entre Ia pluralidad de nodos de Ia red, para enrutar, a través del mismo, el paquete de datos desde el nodo anterior al nodo intermedio previsto hasta el nodo posterior al nodo intermedio previsto de Ia ruta del paquete de datos.
El procedimiento puede comprender también una etapa (C) de obtención de un conjunto de posibles nodos cooperadores del nodo intermedio previsto, pudiendo comprender dicha etapa (C) las subetapas de (C.1 ) obtener el conjunto de nodos que se encuentran dentro del rango de cobertura del nodo intermedio previsto; (C.2) seleccionar, de entre dicho conjunto de nodos, el conjunto de posibles nodos cooperadores del nodo intermedio previsto, de tal modo que dicho conjunto de posibles nodos cooperadores cumple unas condiciones idóneas para actuar como nodos cooperadores del nodo intermedio previsto. Según una realización de Ia invención, Ia etapa (B) de determinación del grupo de nodos cooperadores del nodo intermedio previsto, comprende las subetapas de (B.1 ) obtener, del conjunto de posibles nodos cooperadores, el subconjunto de nodos que se encuentra dentro del rango de cobertura del nodo anterior al nodo intermedio previsto de Ia ruta del paquete de datos, cuando dicho nodo anterior al nodo intermedio previsto ha transmitido el paquete de datos; (B.2) seleccionar, de entre dicho subconjunto de nodos, el grupo de nodos cooperadores del nodo intermedio previsto.
Alternativamente, Ia etapa (B) de determinación del grupo de nodos cooperadores del nodo intermedio previsto, puede comprender las subetapas de (B.3) obtener, del conjunto de posibles nodos cooperadores, el subconjunto de nodos que se encuentra dentro del rango de cobertura del nodo anterior al nodo intermedio previsto de Ia ruta del paquete de datos, cuando dicho nodo anterior al nodo intermedio previsto ha transmitido el paquete de datos; (B.4) obtener, de dicho subconjunto de nodos, un segundo subconjunto de nodos, de tal modo que el nodo posterior al nodo intermedio previsto de Ia ruta del paquete de datos se encuentra dentro del rango de cobertura del segundo subconjunto de nodos cooperadores del nodo intermedio previsto; (B.5) seleccionar, de entre dicho segundo subconjunto de nodos, el grupo de nodos cooperadores del nodo intermedio previsto.
De acuerdo con otro aspecto de Ia invención, se proporciona un sistema de computación en un sistema para enrutar un paquete de datos en una red inalámbrica, que es adecuado para actuar como nodo cooperador del nodo intermedio previsto, y que comprende medios para detectar Ia incapacidad del nodo intermedio previsto para enrutar, a través del mismo, el paquete de datos desde el nodo anterior a dicho nodo intermedio previsto hasta el nodo posterior a dicho nodo intermedio previsto de Ia ruta del paquete de datos; y medios para enrutar el paquete de datos, los cuales comprenden medios para recibir el paquete de datos del nodo anterior al nodo intermedio previsto de Ia ruta del paquete de datos, y medios para transmitir dicho paquete de datos al nodo posterior al nodo intermedio previsto de Ia ruta del paquete de datos, en caso de que se detecte Ia incapacidad del nodo intermedio previsto.
Los medios para transmitir el paquete de datos desde el nodo anterior al nodo intermedio previsto al nodo posterior al nodo intermedio previsto de Ia ruta del paquete de datos pueden comprender medios para introducir en el paquete de datos un indicador que informa al conjunto de posibles nodos cooperadores del nodo intermedio previsto si debe o no cooperar en el enrutamiento del paquete de datos.
De acuerdo con aún otro aspecto de Ia invención, se proporciona un procedimiento para enrutar al menos un paquete de datos en un sistema de computación como el descrito, que comprende las etapas de (D) recibir el paquete de datos del nodo anterior al nodo intermedio previsto de Ia ruta del paquete de datos; (A) detectar Ia incapacidad del nodo intermedio previsto para enrutar, a través del mismo, el paquete de datos desde el nodo anterior a dicho nodo intermedio previsto hasta el nodo posterior a dicho nodo intermedio previsto de Ia ruta del paquete de datos; (E) en caso de detección positiva en Ia etapa (A), transmitir el paquete de datos al nodo posterior al nodo intermedio previsto de Ia ruta del paquete de datos.
De acuerdo con otro aspecto, Ia invención proporciona un programa de ordenador que comprende instrucciones de programa que se ejecutan en un sistema de computación para realizar el procedimiento para enrutar un paquete de datos en un sistema de computación.
Dicho programa de ordenador puede estar almacenado en unos medios de almacenamiento físico, tales como unos medios de grabación, una memoria de ordenador, o una memoria de solo lectura, o puede ser portado por una onda portadora, tal como eléctrica u óptica.
Defi niciones
El termino "ruta" se refiere a Ia secuencia de nodos entre S y D, (S, Ai , A2, .., AN, D), que definen un camino entre S y D. Se supone que las rutas son determinadas por el protocolo de determinación de rutas (por ejemplo, AODV). Las rutas pueden romperse de forma transitoria (por ejemplo, durante tiempos de milisegundos a segundos) o de forma permanente (tiempos superiores a varios segundos). Las rupturas transitorias pueden suceder por cambios no deterministas en el canal de transmisión radio debidos a movimientos del entorno, a bloqueos temporales entre antenas (por ejemplo, por un vehículo que cruza un enlace radio), etc. También pueden darse debido a que los sistemas de transmisión/recepción de los nodos pueden entrar en estados de suspensión (sleep) con el objetivo de conseguir ahorros de energía. Las rupturas permanentes se deben normalmente a Ia movilidad de los nodos. El mecanismo cooperativo de enrutamiento intenta mantener Ia fiabilidad del trayecto en ambos casos:
- En rupturas transitorias, el grupo de nodos cooperadores asumen de forma transitoria Ia labor de enrutamiento.
- En rupturas permanentes, el grupo de nodos cooperadores asumen Ia función de enrutamiento hasta que el protocolo de enrutamiento pueda encontrar un trayecto alternativo. En este caso, el mecanismo cooperativo notifica al protocolo de enrutamiento Ia necesidad de determinar una nueva ruta.
El término "nodo intermedio previsto" (Anchor o Master) se refiere a un nodo que forma parte de una ruta. Inicialmente, es escogido por el protocolo de enrutamiento. El nodo intermedio no es el que necesariamente realiza el enrutamiento de paquetes. El término "nodo cooperador" se refiere al nodo que ha sido elegido por otro nodo (nodo intermedio previsto) para que Ie ayude en Ia tarea de enrutamiento. Recibe del nodo intermedio previsto información sobre enrutamiento (que se considera perteneciente al contexto del nodo intermedio previsto; ver definición de "Tabla de forwarding") y escucha Ia transmisión de dicho nodo y de otros cooperadores para saber si necesita o no actuar. El conjunto de posibles nodos cooperadores (también referenciado como "nube") de un nodo N es Nube(N). Los cooperadores se pueden ordenar según un nivel de prioridad que determina el orden en el que deben cooperar.
Los términos "dirección a nodo" y "dirección a nube" se refieren a que si <@N> es una secuencia de bits que únicamente determina al nodo N, es posible usar una dirección de nodo <@N,0> indicando que el paquete está únicamente dirigido al nodo N y no a sus cooperadores. Si se usa una dirección de nube <@N,1 ,n>, siendo n un número entero positivo, se indica que el paquete también está dirigido a sus cooperadores con número de nube >= n. El número de nube Io fija el nodo intermedio previsto en torno al cual se forma el conjunto de posibles nodos cooperadores. Lo incrementa en +1 , por ejemplo, cuando o bien se produce un cambio importante en su estado (por ejemplo, cambio en Ia tabla de enrutamiento) o cuando se detectan condiciones como por ejemplo "nube rota", es decir, que los cooperadores de una nube han perdido conectividad con el nodo intermedio previsto. Esta última condición se detecta porque el nodo anterior al nodo intermedio previsto recibe más de una confirmación para el mismo paquete. En este caso el nodo anterior al nodo intermedio previsto notifica al nodo intermedio previsto que debe incrementar el número de secuencia de nube. Los nodos cooperadores que no tengan conectividad con el nodo intermedio previsto no podrán escuchar esta actualización del número de secuencia de nube llevada a cabo por el nodo intermedio previsto, siendo de esta forma excluidos de Ia nube, ya que recibirán paquetes con números de secuencia de nube superiores a los que dichos cooperadores tendrán. El término "Flaa de Cooperación": No todos los paquetes usan el mecanismo de enrutamiento cooperativo. Por ejemplo, algunos mensajes de señalización entre nodos vecinos no Io usan. Esto se notifica en Ia cabecera cooperativa, es decir a Ia parte del paquete de datos que contiene información específica relativa a Ia función de cooperación, y debe incluir información relativa a si Ia función de cooperación debe o no realizarse.
El término "enrutamiento" o "forwarding" se refiere a Ia operación de un nodo que hace efectivamente Ia tarea de retransmisión de un paquete para acercarlo a su destino final, siguiendo Ia ruta fijada por el protocolo de determinación de rutas. Si en el hop correspondiente el nodo intermedio es N, el nodo de enrutamiento es o bien el nodo N o bien uno de los cooperadores de N.
El término "Vecino": Los vecinos de un nodo N, son aquellos con los que dicho nodo N puede mantener una comunicación con un determinado nivel de fiabilidad.
El término "Tabla de forwardinα": Tabla en Ia que se incluyen los pares ("nodo destino final", "next-hop"), cuyo contenido se modifica a partir de Ia información del protocolo de enrutamiento y de Ia información que se obtiene de otros nodos (por ejemplo, de nodos intermedios con los que se coopera). La tabla de forwarding puede ser vista desde varios contextos. Cuando un nodo N actúa como él mismo, observa las entradas de Ia tabla de forwarding que pertenecen al contexto "nodo N". Si un nodo N actúa como cooperador de otro nodo N', sólo usa las entradas de Ia tabla de forwarding que pertenecen al contexto "nodo N' ". Es importante destacar que las entradas de Ia tabla de forwarding pueden incluir direcciones a nodo o a nube. En una ruta, todos los next_hops serán normalmente direcciones a nube excepto, normalmente, en el último salto. El término "Confirmaciones Cooperativas (C-ACK)": Se supone que alguno de los nodos cooperadores que haya recibido correctamente Ia trama enviará un ACK, que se conoce por C-ACK De esta forma, el nodo que ha transmitido Ia trama de datos sabe que ha sido correctamente recibida, si no por el nodo intermedio, al menos por alguno de sus cooperadores, y los nodos cooperadores sabrían si deben cooperar o no.
La generación de C-ACKs debe seguir un orden determinado. El nodo intermedio previsto será el primero que genere el C-ACK en el caso de que hubiera recibido el paquete de datos de forma correcta. En caso contrario, el C-ACK será generado por alguno de los nodos cooperadores (que detectarían que el nodo intermedio previsto no genera el C-ACK).
En el caso de que el mecanismo de envío de las tramas incorpore de forma nativa algún mecanismo de confirmación (por ejemplo, el ACK para paquetes de datos unicast de\ estándar IEEE 802.1 1 ) el uso de C-ACK no será siempre necesario.
El término "Cooperative Helio (C-HELLO)": Mensaje que sirve para que el master de una nube pueda gestionar Ia nube. Incluye números de secuencia de nube, lista de cooperadores, lista de master, e información de enrutamiento. Se envían en broadcast de forma periódica o cuando se produce algún cambio relevante en el estado de Ia nube.
Breve descripción de los dibujos
Para mayor comprensión de cuanto se ha expuesto se acompaña unos dibujos en los cuales, esquemáticamente y sólo a título de ejemplo no limitativo, se representa un caso práctico de realización.
En los dibujos, Fig.1 es una representación esquemática de una red inalámbrica, sobre Ia que se aplica el sistema para enrutar un paquete de datos, de acuerdo con Ia invención;
Fig.2 es una representación esquemática de un primer esquema de enrutamiento para una red cooperativa como Ia de Ia Fig.1 ; Fig.3 es una representación esquemática de un segundo esquema de enrutamiento para una red cooperativa como Ia de Ia Fig.1 ; Fig.4 es una representación esquemática de Ia red inalámbrica de Ia Fig.1 , en Ia que se realiza un salto de un paquete de datos para su enrutamiento, siendo el nodo de enrutamiento el propio nodo intermedio previsto de Ia ruta del paquete de datos;
Fig.5 es una representación esquemática de Ia red inalámbrica de Ia Fig.1 , en Ia que se realiza otro salto del paquete de datos, siendo el nodo de enrutamiento el grupo de nodos cooperadores del nodo intermedio previsto correspondiente;
Fig.6 es una representación esquemática de Ia red inalámbrica de Ia Fig.1 , en Ia que se solicita un cambio de uno de los nodos intermedios previstos de Ia ruta del paquete de datos.
Descripción de una realización preferida de Ia invención
A continuación se realizará Ia descripción de una realización preferida de Ia invención, aplicada a una red inalámbrica del tipo ad-hoc multisalto (multihop). Para dicha descripción, se asume que dicha red es una red homogénea, es decir, se trata de una red en Ia que todos los nodos utilizan el mismo esquema de direccionamiento.
También se describirán esquemas de direccionamiento y de enrutamiento, que forman parte de Ia invención, que permiten que el potencial de cooperación en redes inalámbricas sea explotado de manera más eficiente. Como norma general, no se puede garantizar Ia existencia de nodos cooperativos. Si un nodo intermedio previsto no encuentra ningún posible nodo cooperativo, Ia red debe continuar funcionando como si se tratara de una red no-cooperativa. De este modo, utilizando el sistema de Ia invención, Ia red funciona como caso más negativo, como una red no-cooperativa, pero nunca peor.
El mecanismo para enrutar un paquete de datos en Ia red inalámbrica, entre un nodo de origen y un nodo de destino, permite, entre otras cosas, facilitar el funcionamiento de los protocolos cooperativos en las redes inalámbricas. La idea de introducir cooperación entre los nodos de una red inalámbrica para optimizar el uso de recursos es ciertamente atractiva, puesto que un nodo de Ia red debe tomar completamente las funciones de otro, con Ia intención de asegurar que el estado de funcionamiento de Ia red no se vea afectado por el movimiento o Ia desaparición de nodos.
Los recursos compartidos pueden ser, entre otros, antenas, cadenas de Radio Frecuencia, interfaces de red, memoria o procesadores.
Básicamente, Ia invención es aplicable en redes inalámbricas, para permitir que los nodos utilicen recursos de nodos adyacentes para incrementar su capacidad de comunicación y procesado, pudiendo trabajar el mecanismo por sí sólo, adaptando todo el software y el hardware existentes a este nuevo mecanismo de enrutamiento, o como una mejora de algunos protocolos existentes, por ejemplo protocolos ARQ o protocolos MAC tal como IEEE 802.1 1 ( Wi-Fi).
Aunque Ia idea de cooperación puede aplicarse de manera general, combina particularmente bien con las características de las redes inalámbricas, dado que:
- Explota las ventajas de broadcast inherentes a las transmisiones inalámbricas.
- El hecho de que Ia calidad de los enlaces inalámbricos dependa en mayor parte de Ia distancia, significa que, en muchos casos, hay una clara relación de adyacencia entre nodos. - El uso cooperativo de antenas o interfaces de otros nodos permite Ia introducción de técnicas básicas para transmisiones inalámbricas, tales como Ia diversidad espacial (spatial diversity).
- La utilización compartida de buffers de memoria, sistemas de transmisión, etc. permite el ahorro de recursos, siempre escasos en nodos muy sencillos.
- La suplantación de Ia funcionalidad de un nodo que actúa como un transmisor, proporciona una mayor resistencia a Ia red ante Ia presencia de movilidad de los nodos.
Como se puede ver en Ia Fig.1 , Ia red inalámbrica comprende una pluralidad de nodos (N0, N1, N2, ....N15) distribuidos de una manera determinada en el espacio.
Cuando se desea transmitir un paquete de datos (o más) entre un nodo de origen S y un nodo de destino D, formando parte dichos nodos de origen S y de destino D de Ia pluralidad de nodos (N0, N1, N2, ....N15), es necesario que un protocolo de determinación de rutas haya determinado una ruta (S, A1, A2,
D) para el paquete de datos, que determina los nodos de Ia pluralidad de nodos (N0, N1, N2, ....N15) que deben intervenir en dicha transmisión, siendo referenciados dichos nodos como nodos intermedios previstos A1, A2. Para este propósito, podrían utilizarse los criterios normales de optimización: mínimo número de saltos, máxima tasa de transferencia, etc. Sin embargo, en una red cooperativa, se pueden utilizar otros criterios de optimización, tales como Ia maximización del número de nodos del conjunto de posibles nodos cooperadores de un nodo intermedio previsto, etc. Una vez establecida Ia ruta del paquete de datos (S, A1, A2, D), es necesaria una herramienta que controle el enrutamiento del paquete de datos a través de los nodos de dicha ruta, siendo dicha herramienta el mecanismo para enrutar un paquete de datos en una red inalámbrica, de acuerdo con Ia invención.
El mecanismo para enrutar un paquete de datos se presenta en forma de programa de ordenador y comprende un módulo para obtener, para cada nodo intermedio previsto A1 (i=1 ,2 para Ia presente realización), un conjunto B1 de posibles nodos cooperadores; un módulo para detectar Ia incapacidad de un nodo intermedio previsto A1 para enrutar, a través del mismo, el paquete de datos desde el nodo anterior A,-i hasta el nodo posterior Al+i a dicho nodo intermedio previsto A1 de Ia ruta del paquete de datos; un módulo para determinar un grupo L1 de nodos cooperadores de un nodo intermedio previsto A1, de entre su conjunto B1 de posibles nodos cooperadores, para enrutar, a través de dicho grupo de nodos cooperadores, el paquete de datos desde el nodo anterior hasta al nodo posterior al nodo intermedio previsto de Ia ruta del paquete de datos, en caso de que se detecte Ia incapacidad del nodo intermedio previsto.
El mecanismo comprende también un módulo que permite que el nodo anterior A,-i a dicho nodo intermedio previsto de Ia ruta del paquete de datos determine Ia incapacidad de un nodo intermedio previsto A1; y un módulo para determinar el funcionamiento inadecuado de un nodo del conjunto B1 de posibles nodos cooperadores de un nodo intermedio previsto A1.
El módulo para obtener el conjunto B1 de posibles nodos cooperadores de un nodo intermedio previsto comprende un submódulo para obtener el conjunto de nodos de Ia red que se encuentran dentro del rango de cobertura del nodo intermedio previsto A1; y un submódulo para seleccionar, de entre dicho conjunto de nodos, el conjunto B1 de posibles nodos cooperadores, de tal modo que dicho conjunto de posibles nodos cooperadores cumple unas condiciones idóneas para actuar como nodo cooperador del nodo intermedio previsto A1. Normalmente, dichas condiciones se basan en parámetros de calidad referentes sobretodo a los canales de comunicación establecidos entre el nodo intermedio previsto y el conjunto de posibles nodos cooperadores (por ejemplo, Ia relación señal-ruido {Signal-to-Noise Ratio, SNR) o Ia tasa de error por bit (Bit-Error-Rate, BER)).
Por otro lado, el módulo para obtener el conjunto B1 de posibles nodos cooperadores de un nodo intermedio previsto A1 puede presentarse también en Ia forma de programa de ordenador o de módulo de un programa de ordenador más general, que se ejecuta en el nodo intermedio previsto, de manera que es el propio nodo intermedio previsto el que determina su conjunto de posibles nodos cooperadores. Dicho módulo actúa a intervalos de tiempo determinados, por ejemplo, cada tres segundos, con independencia de que se haya transmitido un paquete de datos desde el nodo anterior al nodo intermedio previsto de Ia ruta del paquete de datos, es decir, cada dicho intervalo de tiempo determinado se establece un nuevo conjunto de posibles nodos cooperadores para el nodo intermedio previsto.
El conjunto B1 de posibles nodos cooperadores de un nodo intermedio previsto A1 está dispuesto de una manera distribuida y oportunista, es decir, los nodos adyacentes con los que un nodo intermedio previsto puede establecer una cooperación son aquellos con los que tiene canales de comunicación particularmente favorables y con los que ha establecido una relación de confianza.
El módulo para detectar Ia incapacidad de un nodo intermedio previsto A1 puede presentarse también en Ia forma de programa de ordenador o de módulo de un programa de ordenador más general, que se ejecuta sobre el conjunto B1 de posibles nodos cooperadores del nodo intermedio previsto A1, o sobre los nodos intermedios previstos A1 de Ia ruta del paquete de datos. De este modo, son el conjunto de posibles nodos cooperadores de un nodo intermedio previsto o el propio nodo intermedio previsto el que determina Ia incapacidad del mismo. La manera de detectar Ia incapacidad de un nodo intermedio previsto se basa en el hecho de que, puesto que el conjunto de posibles nodos cooperadores está dentro del rango de cobertura del nodo intermedio previsto, ninguno de los nodos del conjunto de posibles nodos cooperadores recibe Ia confirmación de recepción del paquete de datos que envía el nodo intermedio previsto al nodo anterior A,-i de Ia ruta del paquete de datos, que es el que Io transmite.
El módulo para determinar un grupo L1 de nodos cooperadores de un nodo intermedio previsto, de entre el conjunto B1 de posibles nodos cooperadores, comprende un submódulo para obtener, de entre dicho conjunto de posibles nodos cooperadores, el subconjunto de nodos cooperadores que se encuentra dentro del rango de cobertura del nodo anterior A,-i al nodo intermedio previsto A1 de Ia ruta del paquete de datos, cuando dicho nodo anterior al nodo intermedio previsto ha transmitido el paquete de datos; y un submódulo para seleccionar, de entre dicho subconjunto de nodos, el grupo L1 de nodos cooperadores del nodo intermedio previsto. Es importante destacar que, en Ia presente realización preferida, Ia determinación del grupo de nodos cooperadores se realiza para el correspondiente nodo intermedio previsto, para el paquete de datos dado, y cuando dicho nodo intermedio previsto es incapaz de enrutarlo.
De acuerdo con otra realización preferida de Ia invención, el módulo para determinar, de entre el conjunto B1 de posibles nodos cooperadores, un grupo L1 de nodos cooperadores de un nodo intermedio previsto A1 comprende un submódulo para obtener, de dicho conjunto de posibles nodos cooperadores, el subconjunto de nodos que se encuentran dentro del rango de cobertura del nodo anterior al nodo intermedio previsto de Ia ruta del paquete de datos, cuando dicho nodo anterior ha transmitido el paquete de datos; un submódulo para obtener, de dicho subconjunto de nodos, un segundo subconjunto de nodos, de tal modo que el nodo posterior al nodo intermedio previsto de Ia ruta del paquete de datos se encuentra dentro del rango de cobertura de dicho segundo subconjunto de nodos; y un submódulo para seleccionar, de entre dicho segundo subconjunto de nodos, el grupo de nodos cooperadores del nodo intermedio previsto. Del mismo modo, Ia determinación del grupo L1 de nodos cooperadores se realiza para el correspondiente nodo intermedio previsto, para el paquete de datos dado, y cuando dicho nodo intermedio previsto es incapaz de enrutarlo.
La condición de que el nodo posterior al nodo intermedio previsto de Ia ruta del paquete de datos se encuentra dentro del rango de cobertura de dicho segundo subconjunto de nodos, en algunos casos, puede ser equivalente a Ia condición de que el segundo subconjunto de nodos se encuentra dentro del rango de cobertura del nodo posterior al nodo intermedio previsto, siempre que los canales de comunicación sean bidireccionales.
Sea cual sea Ia realización, el módulo para determinar el grupo B1 de posibles nodos cooperadores de un nodo intermedio previsto A1 puede presentarse también en forma de un programa de ordenador o de un módulo de un programa de ordenador más general, que se ejecuta en un nodo intermedio previsto, siendo, de este modo, el nodo intermedio previsto el que determina el grupo de posibles nodos cooperadores.
Sea cual sea Ia realización, el módulo para determinar el grupo de nodos cooperadores L1 de un nodo intermedio previsto A1 puede presentarse también en forma de un programa de ordenador o de un módulo de un programa de ordenador más general, que se ejecuta en los nodos cooperadores L1, siendo, de este modo, el conjunto de nodos cooperadores L1 el que determina si debe cooperar o no, para un paquete de datos dado. Por lo tanto, un nodo intermedio previsto A1 puede comprender una pluralidad de programas de ordenador o de módulos de un programa general, entre los que destacan un módulo para recibir un paquete de datos del nodo anterior A1- 1 o en general un nodo perteneciente a Ia nube cuyo master es A1-I, al nodo intermedio previsto de Ia ruta del paquete de datos; el módulo para detectar su incapacidad para enrutar el paquete de datos; el módulo para comunicar dicha incapacidad al nodo anterior de Ia ruta del paquete de datos; el módulo para obtener su conjunto de posibles nodos cooperadores; el módulo para determinar su grupo de nodos cooperadores, para un paquete de datos recibido; un módulo para transmitir el paquete de datos al nodo posterior de Ia ruta del paquete de datos; un módulo para distribuir a su conjunto de posibles nodos cooperadores, Ia información de enrutamiento necesaria; el módulo para detectar el funcionamiento indebido de un nodo cooperador; y un módulo para gestionar adecuadamente Ia tabla de forwarding.
Con referencia a este último módulo, cada nodo de Ia red debe comprender una tabla de enrutamiento (forwarding) en Ia que se almacena información referente a Ia dirección del nodo de destino D y a Ia dirección del nodo posterior al que debe transmitir el paquete de datos para que alcance el nodo de destino D indicado. Por tanto, Ia tabla debe contemplar, para cada nodo de destino, a qué nodo de Ia red debe transmitir el paquete de datos. En una misma tabla de enrutamiento puede haber información referente a diferentes rutas presentes en Ia red, en las que debe intervenir el nodo. Puesto que el conjunto de posibles nodos cooperadores de un nodo intermedio previsto puede variar a cada intervalo de tiempo que se determina, es necesario que dicho nodo intermedio previsto mantenga actualizadas las tablas de enrutamiento del conjunto de posibles nodos cooperadores, por Io que debe transmitir Ia información de enrutamiento, cada cierto tiempo, por ejemplo, después de determinar el conjunto de posibles nodos cooperadores. Existen también protocolos en los que no es necesario estar transmitiendo continuamente información de enrutamiento, puesto que dicha información ya es conocida por los nodos interesados.
Por otro lado, el conjunto B1 de posibles nodos cooperadores puede comprender, a partir de Io descrito hasta el momento, el módulo para recibir un paquete de datos del nodo anterior al nodo intermedio previsto correspondiente; el módulo para detectar Ia incapacidad del nodo intermedio previsto; el módulo para comunicar Ia incapacidad del nodo intermedio previsto; el módulo para transmitir el paquete de datos al nodo posterior al nodo intermedio previsto, en caso de que se detecte Ia incapacidad de dicho nodo; el módulo para detectar el funcionamiento indebido de un nodo cooperador; y el módulo para gestionar adecuadamente Ia tabla de forwarding.
El conjunto de posibles nodos cooperadores comprende también un módulo para procesar el paquete de datos recibido, de modo que, cuando Io recibe, el conjunto de posibles nodos cooperadores puede determinar si debe intervenir o no en el enrutamiento del mismo, en base a Ia dirección de recepción presente en el paquete de datos, y, en caso de que deba intervenir, mediante Ia dirección del nodo de destino D presente en el paquete de datos, puede determinar Ia dirección del nodo al que debe transmitir el paquete de datos, es decir, Ia dirección del nodo posterior al nodo intermedio previsto.
Así, en Ia Fig.2 se muestra un esquema SRSP (Single Relay Single Path) en el que, después de que el protocolo de determinación de ruta determine una ruta (S, A1, A2 ,D) entre el nodo de origen S y el nodo de destino D, cada salto
Io realiza un único nodo, ya sea el primer nodo intermedio previsto A1, para el primer salto, que transmite el paquete de datos tanto al nodo posterior A2 al nodo intermedio previsto de Ia ruta del paquete de datos, como a Ia nube B2 de posibles nodos cooperadores de dicho nodo posterior, o el grupo L2 de nodos cooperadores del segundo nodo intermedio previsto A2, para el segundo salto, que transmite el paquete de datos al nodo posterior D, que es el nodo de destino. Normalmente, el nodo que transmite el paquete es el nodo intermedio previsto correspondiente, aunque algunas veces, como se ha descrito anteriormente, el mecanismo objeto de Ia invención debe intervenir para determinar el grupo de nodos cooperadores, para poder realizar el enrutamiento del paquete de datos y evitar problemas de transmisión entre los nodos de Ia ruta establecida. Dicha determinación del grupo de nodos cooperadores puede ser realizada por el propio nodo intermedio previsto y/o su conjunto de posibles nodos cooperadores, en vez de ser realizada por el nodo anterior. En el caso de que el grupo de nodos cooperadores comprenda más de un nodo, puesto que sólo puede transmitir uno el paquete de datos, se puede establecer un criterio sobre cuál de los nodos del grupo de nodos cooperadores debe enrutar el paquete de datos. Así, el nodo intermedio previsto puede prestablecer un orden, asignando a cada nodo del grupo de nodos un nivel de prioridad de actuación. Por consiguiente, de acuerdo con el esquema del tipo SRSP, Ia dirección de transmisión presente en el paquete de datos hace referencia a un "nodo" y no a un conjunto de nodos.
En Ia Fig.3 puede verse un esquema de direccionamiento del tipo MRSP {Múltiple Relay Single Path) en el que, después de determinarse Ia ruta (S, Ai,
A2 ,D) entre el nodo de origen S y el nodo de destino D, existen varios nodos para enrutar el paquete de datos o parte de él al siguiente nodo intermedio previsto y/o a su conjunto de posibles nodos cooperadores. Las transmisiones desde esta pluralidad de nodos debe realizarse ortogonalmente (por ejemplo, en diferentes momentos, a diferentes frecuencias, etc.), es decir, tanto el nodo intermedio previsto como el grupo de nodos cooperadores de dicho nodo intermedio previsto actúan como enrutadores, utilizando canales ortogonales.
Igual que para el esquema anterior, es necesario el mecanismo objeto de Ia invención para determinar los nodos que deben enrutar el paquete de datos, en caso de que el nodo intermedio previsto no esté capacitado para ello. En resumen, para este tipo de esquema de enrutamiento, Ia dirección de transmisión corresponde al "conjunto de nodos" que transmiten el paquete de datos.
Con referencia a Ia dirección de recepción, debe utilizarse un esquema adecuado de direccionamiento. Un posible esquema de direccionamiento comprende un indicador que informa al conjunto B1 de posibles nodos cooperadores de un nodo intermedio previsto A1, que deben intervenir en el enrutamiento del paquete de datos, en caso de incapacidad de dicho nodo intermedio previsto. Por tanto, dicho esquema permite no sólo referirse a los nodos intermedios previstos, sino también a su conjunto de posibles nodos cooperadores. El esquema de direccionamiento de Ia invención es el siguiente:
Dirección del nodo intermedio previsto A1: <@A,,0> Dirección de nube: <@A,,1 ,n>
donde @A, es una tira {string) de bits, que puede contener o no información de enrutamiento y que únicamente identifica Ia interfaz inalámbrica del nodo intermedio previsto A1 , "0" y "1 " son bits usados para diferenciar las direcciones de nube y de nodo, mientras que n es el número de secuencia de nube, que es utilizado para detectar condiciones de mal funcionamiento de los cooperadores debido a que pierden el contacto con Ia nube a Ia que pertenecen. Dichas direcciones, tal como se han descrito, pueden utilizarse en Ia red inalámbrica para Ia dirección del nodo de origen S, para Ia dirección del nodo de destino D, para Ia dirección de transmisión, y/o para Ia dirección de recepción, dentro de Ia cabecera de control de un paquete de datos. Las direcciones de un grupo de nodos cooperadores están relacionadas de manera muy cercana con las direcciones multicast de varios esquemas de direccionamiento de capa 2 ó 3. Las direcciones del IEEE 802.2 multicast o IP multicast son ejemplos de esto. En ambos casos, no se han definido mecanismos sencillos para permitir que una dirección multicast sea asignada a cada dirección unicast.
Es importante destacar que, cuando el nodo anterior a un nodo intermedio previsto transmite un paquete de datos, dicha transmisión se realiza, al mismo tiempo, al nodo intermedio previsto y a su conjunto de posibles nodos cooperadores, de manera que, si el nodo intermedio previsto es incapaz de enrutar el paquete de datos, no es necesario que el nodo anterior vuelva a transmitir el paquete de datos, puesto que el grupo de nodos cooperadores, que es el que debe enrutar el paquete de datos, ya Io ha recibido y procesado a partir de Ia primera y única transmisión. Así, en el caso de que el nodo intermedio previsto pueda enrutar el paquete de datos, el conjunto de posibles nodos cooperadores sólo Io recibe y Io procesa (posteriormente Io descarta), mientras que, si el nodo intermedio previsto no puede enrutar el paquete, el grupo de nodos cooperadores, determinado de entre el conjunto de posibles nodos cooperadores, Io recibe, Io procesa y Io transmite al nodo posterior al nodo intermedio previsto. Cuando el nodo anterior determina que ni el nodo intermedio previsto ni sus cooperadores han recibido correctamente el paquete de datos, puede proceder a su retransmisión o puede arrancar un procedimiento de obtención de una nueva ruta, tal como sucedería en una red no-cooperativa.
Por otro lado, para que el conjunto de posibles nodos cooperadores sepa que debe intervenir en el enrutamiento del paquete de datos, en caso de que el nodo intermedio previsto esté incapacitado para ello, es necesario que el nodo anterior a dicho nodo intermedio previsto utilice el esquema de direccionamiento ampliado descrito con anterioridad. Así, el nodo que transmite el paquete de datos debe incorporar, en Ia parte de control del paquete de datos, más concretamente, en Ia dirección de recepción, el indicador (<@ A,,1 ,n>) que informa al conjunto de posibles nodos cooperadores del nodo intermedio previsto destinatario del paquete de datos, que debe cooperar en el enrutamiento del paquete de datos, en caso de que puedan y sea necesario.
A partir del mecanismo descrito anteriormente y con Ia ayuda de las figuras 4, 5 y 6, se describirá a continuación el procedimiento para enrutar un paquete de datos en una red inalámbrica, de acuerdo con Ia invención.
Como se puede ver en Ia Fig.4, el protocolo para Ia determinación de una ruta determina los nodos intermedios previstos A15A2, de entre todos los nodos de Ia red, para enrutar el paquete de datos desde el nodo de origen S hasta el nodo de destino D, obteniéndose Ia ruta (S, A15A2, D) del paquete de datos. Una vez establecida Ia ruta, cada uno de los nodos intermedios previstos A1, A2 determina su conjunto de posibles nodos cooperadores, a partir de los nodos de Ia red que están dentro de su rango de cobertura y que cumplen las condiciones idóneas para actuar como nodo cooperador del correspondiente nodo intermedio previsto, realizando dicha acción cada cierto intervalo de tiempo. También cada cierto intervalo de tiempo, cada nodo intermedio previsto de Ia ruta del paquete de datos envía a su conjunto de posibles nodos cooperadores Ia información de enrutamiento necesaria, a partir de Ia cual se actualiza Ia tabla de enrutamiento del conjunto de posibles nodos cooperadores. En Ia presente realización se utiliza un esquema de enrutamiento del tipo SRSP.
En un determinado instante de tiempo, el nodo de origen S, que es el que genera el paquete de datos, Io transmite al conjunto B1 de posibles nodos cooperadores del primer nodo intermedio previsto A1 y al propio primer nodo intermedio previsto, utilizando el esquema de direccionamiento ampliado descrito anteriormente, es decir, establece como dirección de recepción Ia dirección <@A1,1 ,n>, de modo que el conjunto de posibles nodos cooperadores, cuando procesa el paquete de datos recibido, sabe que debe cooperar en el enrutamiento del paquete de datos en el caso de que el primer nodo intermedio previsto A1 sea incapaz de hacerlo. En el caso de Ia Fig.4, el primer nodo intermedio previsto A1 está en situación de poder enrutar el paquete de datos, por Io que el conjunto B1 de posibles nodos cooperadores únicamente Io recibe y Io procesa. Dicho conjunto de posibles nodos cooperadores sabe que el nodo intermedio previsto es capaz de enrutar el paquete de datos porque recibe Ia confirmación de recepción enviada por el primer nodo intermedio previsto A1 al nodo de origen S. Cabe recordar que el conjunto de posibles nodos cooperadores de un nodo intermedio previsto se encuentra dentro del rango de cobertura de dicho nodo intermedio previsto (es una de las condiciones establecidas para que un nodo forme parte del conjunto de posibles nodos cooperadores).
Las figuras contemplan asimismo Ia posibilidad de que los nodos cooperadores ayuden a los nodos intermedios previstos en Ia corrección de posibles errores en el paquete recibido, enviándoles información sobre el paquete recibido.
Puesto que el primer nodo intermedio previsto A1 puede enrutar el paquete de datos (Io ha recibido, y sin errores), Io procesa y determina, a partir de Ia cabecera de control del paquete de datos, más concretamente de Ia dirección del nodo de destino D, y de su tabla de enrutamiento (a partir de Ia dirección del nodo de destino, Ia tabla de enrutamiento permite determinar Ia dirección del nodo posterior de Ia ruta), el nodo al que debe transmitir el paquete de datos para que dicho paquete de datos alcance el nodo de destino D, es decir, el segundo nodo intermedio previsto A2. Por tanto, el primer nodo intermedio previsto A1 transmite el paquete de datos al segundo nodo intermedio previsto A2 y a su conjunto B2 de posibles nodos cooperadores.
Puesto que el segundo nodo intermedio previsto A2 está capacitado para enrutar el paquete de datos, todo Io descrito para el primer salto del paquete de datos (el que hace referencia al primer nodo intermedio previsto), es aplicable a este segundo salto (el que hace referencia al segundo nodo intermedio previsto). De este modo, el segundo nodo intermedio previsto de Ia ruta, transmite el paquete de datos al nodo de destino D, por Io que se alcanza el objetivo de enrutar el paquete de datos desde el nodo de origen S hasta el nodo de destino D.
Es importante recordar que el mecanismo de Ia invención comprende un módulo (o programa de ordenador) que determina si un nodo de un conjunto de posibles nodos cooperadores presenta un funcionamiento inadecuado, provocando su eliminación de dicho conjunto de posibles nodos cooperadores.
En Ia Fig.5 se muestra una situación de Ia red diferente a Ia de Ia Fig.4. En dicha Fig.5, partiendo de Ia misma configuración de Ia Fig.4, es decir, se ha determinado una ruta (S, Ai, A2, D) del paquete de datos, etc., el nodo de origen S transmite el paquete de datos utilizando el esquema de direccionamiento ampliado. Por Io tanto, el paquete de datos, en su cabecera de control, más concretamente, en Ia dirección de recepción, comprende Ia dirección <@A1,1 ,n>, Io que indica al conjunto B1 de posibles nodos del primer nodo intermedio previsto que deben cooperar en el enrutamiento del paquete de datos en el caso de que el primer nodo intermedio previsto Ai no esté capacitado para ello. Como se puede ver en Ia Fig.5, el primer nodo intermedio previsto no está capacitado para enrutar el paquete de datos, ya sea porque se ha movido y ha quedado fuera de los rangos de cobertura adecuados, o porque simplemente ha desaparecido, por ejemplo, por un corte en Ia alimentación eléctrica, o porque las condiciones del canal de radiofrecuencia han empeorado significativamente. Sea como sea, su conjunto B1 de posibles nodos cooperadores no recibe Ia confirmación de recepción del paquete de datos que dicho primer nodo intermedio previsto debe mandar al nodo de origen S. Por consiguiente, el conjunto B1 de posibles nodos cooperadores del primer nodo intermedio previsto A1 sabe que debe intervenir en el enrutamiento del paquete de datos. Para ello, el primer nodo intermedio previsto y/o su conjunto de posibles nodos cooperadores determinan el grupo L1 de nodos cooperadores del primer nodo intermedio previsto, para que se encargue de enrutar el paquete de datos desde el nodo anterior (el nodo de origen S) hasta el nodo posterior (el segundo nodo intermedio previsto) de Ia ruta. La determinación del grupo Li de nodos cooperadores tiene sólo un impacto local, y es transparente para el resto de nodos que enrutan el paquete de datos. Por ejemplo, si el primer nodo intermedio previsto A1 se muestra incapaz de enrutar el paquete de datos durante un largo periodo de tiempo, el nodo de origen S sigue enviando paquetes de datos con Ia dirección de recepción <@A1,1 ,n>, que son recibidos y enrutados por el grupo L1 de nodos cooperadores del primer nodo intermedio previsto A1.
La determinación del grupo L1 de nodos cooperadores puede realizarse de varias maneras. Primeramente, dicho grupo L1 de nodos cooperadores del primer nodo intermedio previsto A1 puede estar formado por todos aquellos nodos del conjunto B1 de posibles nodos cooperadores, que además están dentro del rango de cobertura del nodo anterior de Ia ruta, es decir, dentro del rango de cobertura del nodo de origen S. Dicha opción es un poco arriesgada porque no hay seguridad de que el grupo de nodos cooperadores esté dentro del rango de cobertura del nodo posterior de Ia ruta, es decir, del segundo nodo intermedio previsto A2, o Io que es Io mismo, que el segundo nodo intermedio previsto A2 esté dentro del rango de cobertura del grupo L1 de nodos cooperadores del primer nodo intermedio previsto A1. Por Io tanto, existe Ia posibilidad de que el grupo de nodos cooperadores del primer nodo intermedio previsto no pueda comunicarse con el nodo posterior (el segundo nodo intermedio previsto) y, por Io tanto, no pueda transmitir el paquete de datos, por Io que se cortaría Ia comunicación entre los nodos de Ia red, tal como sucede en una red no-cooperativa. Por el contrario, esta opción permite que el nodo de origen reciba más rápido Ia confirmación de recepción del paquete de datos, Io cual es adecuado para determinados protocolos conocidos.
Alternativamente, el grupo U de cooperadores del primer nodo intermedio previsto Ai puede estar formado por aquellos nodos que estén dentro del rango de cobertura del nodo de origen S y, a su vez, dentro del rango de cobertura del nodo posterior de Ia ruta, es decir, el segundo nodo intermedio previsto A2, o Io que es Io mismo, que el segundo nodo intermedio previsto A2 esté dentro del rango de cobertura del grupo L1 de nodos cooperadores del primer nodo intermedio previsto A1 Dicha opción asegura que el nodo seleccionado para enrutar el paquete de datos realmente Io puede hacer.
En el caso de que el grupo de nodos cooperadores comprenda más de un nodo, el nodo intermedio previsto correspondiente establece previamente un criterio de cooperación, tal como Ia asignación de un orden de intervención entre los nodos que conforman el grupo de nodos cooperadores. Así, en el caso de Ia primera opción descrita para determinar el grupo de nodos cooperadores, el nodo encargado en primer lugar de enrutar el paquete de datos envía Ia confirmación de recepción del paquete de datos al nodo anterior de Ia ruta, puesto que está dentro de su rango de cobertura, pero es posible que no pueda transmitir el paquete de datos al nodo posterior porque no está dentro de su rango de cobertura. En ese caso, el nodo encargado en segundo lugar de enrutar el paquete de datos puede ocuparse de ello. De todo Io descrito se desprende que el nodo anterior en ningún caso interviene en Ia selección del nodo que debe enrutar posteriormente el paquete de datos; de ello se ocupa el nodo intermedio correspondiente y/o su conjunto de posibles nodos cooperadores. Dicho nodo anterior sabe que el paquete ha sido recibido por algún nodo de Ia nube siguiente puesto que recibe Ia confirmación de recepción, ya sea del nodo intermedio previsto correspondiente o de uno de los nodos cooperadores de dicho nodo intermedio previsto correspondiente. Sin embargo, en el caso de recibir confirmaciones de los nodos cooperadores, puede iniciar un procedimiento de búsqueda de ruta alternativa. Mientras dicha ruta no se haya establecido, los paquetes pueden seguir viajando por Ia ruta actual.
Volviendo a Ia Fig.5, una vez determinado el grupo U de nodos cooperadores del primer nodo intermedio previsto A1, el nodo de dicho grupo de nodos cooperadores encargado de enrutar el paquete de datos envía Ia confirmación de recepción del paquete de datos al nodo de origen S, y transmite el paquete de datos al nodo posterior de Ia ruta, es decir, al segundo nodo intermedio previsto A2 y a su conjunto B2 de posibles nodos cooperadores, después de procesar el paquete de datos y de obtener Ia dirección del nodo posterior de Ia ruta (el segundo nodo intermedio previsto) mediante Ia dirección del nodo de destino D presente en Ia cabecera de control del paquete de datos y Ia tabla de enrutamiento de dicho nodo del grupo de nodos cooperadores encargado de enrutar el paquete de datos.
Es importante destacar que el nodo de origen S no debe volver a transmitir el paquete de datos en caso de que el primer nodo intermedio sea incapaz de enrutar dicho paquete de datos, puesto que el grupo de nodos cooperadores encargado de enrutar el paquete de datos ya Io ha recibido, procesado y guardado, para enrutarlo en el caso de detectar Ia incapacidad para hacerlo, del primer nodo intermedio previsto.
Por otro lado, si no se consigue ningún nodo cooperador del primer nodo intermedio previsto para el paquete recibido, el funcionamiento de Ia red es el mismo que el de una red no-cooperativa, nunca peor.
Siguiendo con Ia Fig.5, una vez el segundo nodo intermedio previsto A2 ha recibido el paquete de datos, envía Ia confirmación de recepción al nodo anterior de Ia ruta (el nodo del grupo U de nodos cooperadores del primer nodo intermedio previsto A1), Io procesa y determina Ia dirección del nodo posterior de Ia ruta, es decir, Ia dirección del nodo de destino D, al que Ie debe transmitir el paquete de datos. Dicho nodo de destino D confirma Ia recepción del paquete de datos al segundo nodo intermedio previsto, completándose el enrutamiento del paquete de datos.
En Ia Fig.6, el grupo L1 de nodos cooperadores del primer nodo intermedio previsto A1 solicita un cambio para ser el nuevo primer nodo intermedio previsto, de manera que Ia nueva ruta queda definida por (S, L1, A2, D). Dicho cambio de ruta puede ser alternativamente decidido por el nodo S, al recibir confirmaciones por parte de nodos cooperadores de A1, en vez de recibirlas del propio nodo A1. Para poder realizar dicho cambio, el mecanismo activa un proceso para establecer una nueva ruta, utilizando, por ejemplo, el grupo L1 de nodos cooperadores del primer nodo intermedio previsto A1 como nuevo primer nodo intermedio previsto. Una vez actualizada Ia tabla de enrutamiento del nodo de origen S (y de su conjunto de posibles nodos cooperadores, si fuera el caso) de forma que no se formen bucles en las rutas de origen a destino, los paquetes se transmiten con una nueva dirección de recepción, tal
Figure imgf000041_0001
De manera más general, cuando un nodo intermedio previsto A1 se muestra incapaz de enrutar paquetes de datos durante un largo periodo de tiempo, existe Ia posibilidad de que su grupo L1 de nodos cooperadores o su conjunto B1 de posibles nodos cooperadores, solicite el establecimiento de una nueva ruta, utilizando, por ejemplo, dicho grupo de nodos cooperadores como el nuevo nodo intermedio previsto, siendo Ia nueva ruta (S, A1, , A1-I, L1, A1+1, ...D). Una vez actualizada Ia tabla de enrutamiento del nodo A,-i, los paquetes son transmitidos con una nueva dirección de recepción <@ L1, 1 ,n>.
A continuación se realizará Ia descripción de otra implementación de Ia invención. Más concretamente, se describirá una posible implementación de un mecanismo cooperativo de enrutamiento para una red inalámbrica ad-hoc basada en el estándard IEEE 802.1 1
Para Ia descripción de dicha implementación se realizan las siguientes suposiciones:
- Se utiliza una tecnología de nivel 2, derivándose dicha nomenclatura de niveles, del "Modelo de Referencia de Sistemas Abiertos" de OSI. Así, "nivel 2" se refiere al nivel de enlace de datos, incluyendo las funciones de Control de Acceso al Medio (MAC). Como principal ejemplo, se utiliza el protocolo descrito por el estándar IEEE 802.1 1 . Dicha tecnología de nivel 2 permite Ia comunicación entre nodos de forma ad- hoc. Las tramas no tienen porqué incorporar el direccionamiento descrito más adelante (es decir, direccionamiento al conjunto de posibles nodos cooperadores o nube de cooperadores), aunque un protocolo de nivel 2 que Io incorporara de forma nativa sería sin duda más eficiente. Se supone que las tramas de nivel 2 dirigidas a un único nodo reciben algún tipo de confirmación (trama ACK). Como referencia, Ia descripción de Ia implementación toma Ia nomenclatura y mecanismos estándar IEEE 802.1 1 para Ia tecnología de nivel 2, aunque su ámbito es mucho más general.
- Se supone que el enrutamiento entre nodos, es decir, Ia elección del trayecto que queda reflejado en las tablas de enrutamiento de los nodos, se hace a nivel 3, aunque no es determinante, entendiendo por "nivel 3" el nivel de Red. Como ejemplo, se utiliza el protocolo IP definido por el IETF para el nivel 3. Además, el protocolo de enrutamiento L3 se hace con AODV con capacidad de Local Repair (como mínimo para Local Repair preventivo). Sin embargo, los mecanismos son generales y podrían adaptarse a otros protocolos de enrutamiento de L3 con capacidad de reparación dinámica de rutas (por ejemplo, AODV s\n Local Repair, OLSR, etc.).
- La tabla de forwarding será referenciada en Ia presente implementación como Tabla L2/L3 ya que se supone que las direcciones de destino/origen son direcciones IP (es decir, de nivel L3), mientras que las de Transmisión/Recepción son de nivel MAC (es decir, direcciones de 48 bits del mismo tipo a las usadas en el estándar IEEE 802.1 1 a las que se han añadido nuevos campos de información para indicar si Ia dirección es a nube o a nodo y para indicar el número de secuencia de nube).
- Se distingue entre dos tipos de Local Repair (LR):
- Local Repair normal: mientras se realiza el Local Repair, los paquetes situados en el nodo afectado por el cambio de ruta no se transmiten y quedan almacenados en un buffer, en espera de que Ia ruta se reestablezca.
- Local Reoair preventivo: mientras se realiza el Local Repair, el nodo afectado continúa Ia transmisión de paquetes. Se supone que el enlace hasta el destino no se ha roto gracias a Ia actuación de nodos cooperadores del nodo next-hop. Es posible que durante un proceso de LR preventivo se pase a un LR normal. En ese caso, el proceso de LR continúa (no se generan nuevos mensajes RREQ en el caso de AODV), aunque los paquetes situados en el nodo afectado pasan a ser almacenados.
- En Ia descripción de los mecanismos se asumen cooperadores globales, es decir, no se considera Ia posibilidad de que un nodo tenga distintos cooperadores para cada ruta, aunque este hecho no es clave a Ia hora de describir el mecanismo.
- Se asume que los nodos tienen una única interfaz para Ia transmisión radio, aunque nuevamente dicho punto no es determinante para el funcionamiento del protocolo.
El conjunto de posibles nodos cooperadores se determina a partir del intercambio de mensajes C-HELLOs. Los mensajes C-HELLOs serán normalmente transmitidos en tramas L2 en broadcast. El tiempo entre transmisiones de estos mensajes ha de ser menor a TC-HELLO. El formato de dichos paquetes se define más adelante. Cabe Ia posibilidad de enviar los mensajes C-HELLO con una potencia de transmisión menor a Ia de los otros paquetes (el objetivo es descubrir cooperadores, no vecinos), y así ocupar menos el medio de transmisión.
Los mensajes C-HELLO tienen varias funciones:
- Permiten que los nodos vecinos al nodo N que transmite el mensaje (paquete de datos) determinen el nivel de intensidad de señal de las transmisiones de N. Los nodos cooperadores típicamente deben tener un nivel de recepción de los mensajes enviados por su nodo intermedio muy bueno, de forma que no todos los nodos vecinos son posibles cooperadores. - Incluyen una lista de los nodos que el nodo N que transmite el mensaje considera como cooperadores suyos. En esta lista se puede incluir información sobre prioridad o temporización en Ia actuación de los cooperadores. Si un nodo no tiene cooperadores se envía una lista vacía. - Pueden incluir una lista de los nodos intermedios (masters) del nodo. De esta forma el nodo intermedio puede saber que un cooperador Io ha dejado de considerar como nodo intermedio, Io que es síntoma de que el cooperador no tiene una buena transmisión con los vecinos del nodo intermedio. - Cuando un nodo es un nodo intermedio y tiene cooperadores, entonces también incluye Ia información de enrutamiento para que los cooperadores Ia conozcan.
- Permiten que el nodo intermedio comunique cambios del identificador de nube (es decir, el conjunto de posibles nodos cooperadores) a sus cooperadores.
- Potencialmente podrían incorporar información relativa a políticas de ahorro de potencia.
Cuando se produce una modificación en el conjunto de posibles nodos cooperadores o en su prioridad, o en Ia tabla L2/3 con contexto propio, también se transmite inmediatamente un mensaje C-HELLO que incluye los correspondientes cambios. Típicamente en esa condición el nodo intermedio también incrementa su identificador de nube.
Es posible desarrollar varios algoritmos para determinar el orden o tiempo en Ia actuación de los cooperadores de un nodo. Entradas para dicho algoritmo pueden ser: prioridades asignadas por el nodo intermedio previsto, next-hop está o no en nuestra tabla de enrutamiento, calidad del enlace en las ultimas veces que el nodo ha transmitido al next-hop, etc. Alguno de ellos se detalla más adelante.
Se podría considerar que también se generase un C-HELLO al cambiar Ia lista de nodos intermedios previstos.
Un nodo intermedio previsto elige cooperadores y asigna las prioridades en función de: SNR recibida en los C-HELLOs, número de veces en los que un nodo voluntariamente se ha declarado como no cooperador, etc.
Un nodo N se considera cooperador de otro nodo N' cuando escucha algún mensaje C-HELLO enviado por N' en el que aparece incluido en Ia lista de cooperadores.
Los motivos por los que un nodo deja de ser cooperador de otro son:
- Recibe un C-HELLO y ve que Ie han borrado como cooperador del nodo intermedio previsto; - Salta el timeout (porque deja de recibir C-HELLOS);
- Cuando actuando como cooperador, falla en Ia transmisión de N_MAX_RETRY_COOP paquetes MAX_RETRY_COOP veces;
- No encuentra Ia ruta en su tabla con contexto del nodo intermedio previsto;
- Se podría incluir el caso de que los C-HELLOs recibidos de un nodo intermedio previsto tengan una mala SNR, con Io cual también dejarían de considerarse cooperadores;
- Si recibe un paquete con número de secuencia de nube mayor al que tiene asignado, no coopera para ese paquete pero se mantiene como cooperador.
Es importante que el número de C-HELLOs no recibidos para considerarse no cooperador sea suficientemente grande como para dejar actuar al mecanismo de cambio de ruta {Local Repair preventivo) en el caso de que desaparezca el nodo intermedio previsto.
Por otro lado, si N es un nodo intermedio previsto y se producen modificaciones en Ia tabla L3/2 que no afectan al contexto N (ya que, por ejemplo, solo afectan al contexto N' siendo N' un nodo que es un nodo intermedio de N), N no tiene que notificar estos cambios a sus nodos vecinos. Además, hay que limitar el número de C-HELLO por segundo.
Cuando un nodo detecta Ia recepción de C-ACKs duplicados para un mismo paquete con número de secuencia de nube n, debe incrementar el número de secuencia de nube de los paquetes a n+1. Si estos paquetes llegan al nodo intermedio previsto, este debe incrementar el número de secuencia de Ia nube a n+1 , enviando un C-HELLO, para que a partir de ese momento sólo cooperen los cooperadores que tienen conectividad con el nodo intermedio previsto en ese momento
A continuación se describirá Ia transmisión de los paquetes en los que el flag de cooperación en Ia cabecera cooperativa está activado. Es importante destacar que no todos los paquetes tendrán este flag activado (por ejemplo, los mensajes de señalización).
El nodo N determina en primer lugar si debe descartar o no el paquete, fijándose en Ia dirección de nivel 2 de recepción. Si esta dirección corresponde al:
- propio nodo (con dirección unicast a nodo o dirección broadcast, es decir, con una dirección de recepción con formato <@N,0>, en donde @N corresponde a Ia dirección del nodo); - a Ia de cualquiera de las nubes a las que pertenece como cooperador, es decir con una dirección de recepción del tipo <@N',1 ,n>, siempre y cuando el número de secuencia de nube que aparece en Ia dirección del paquete sea inferior o igual a Ia de Ia nube; - A Ia de Ia nube en Ia que es master, es decir con una dirección de recepción con formato <@N,1 ,n>, en donde @N corresponde a Ia dirección del nodo, pasa a procesar el paquete. En caso contrario, Io descarta.
Si Ia dirección de recepción de nivel L2 corresponde a Ia del propio nodo, o bien es una dirección de broadcast, el nodo N debe examinar Ia dirección de nivel 3 de destino, comprobando si @3Dest = @3N. Si @3Dest ≠@3N se hará forwarding del paquete (En el caso de paquetes IP, por ejemplo, esto implica decrementar el TTL, recalcular el checksum de Ia cabecera IP, etc.). Esto mismo se hará también en el caso de que Ia dirección sea de Ia nube de Ia que el nodo es master, independientemente del número de nube.
Si un nodo cooperador de una cierta nube tiene como número de secuencia de nube el número m y recibe un paquete dirigido a dicha nube con número de secuencia de nube n, con n menor o igual a m, guarda el paquete en un buffer, a Ia espera de que sea o bien descartado o bien reenviado. En el caso de que el paquete deba ser reenviado, en Ia búsqueda en Ia tabla L2/L3, se usa el contexto del nodo intermedio previsto correspondiente.
Si un nodo N debe hacer forwarding de un paquete, consulta Ia tabla L3/2, usando el contexto adecuado, buscando el next-hop al cual enrutar el paquete. Se deben distinguir los casos en los que el nodo N es un nodo intermedio previsto de Ia ruta que sigue el paquete o actúa como cooperador.
Cada nodo mantiene su número de secuencia CloudSN que será el que tendrá Ia nube en Ia que es nodo intermedio previsto.
Se supone que el protocolo de nivel L2 envía confirmaciones [ACK) para las tramas con dirección de destino unicast (es decir, dirigidas a un solo nodo) y recibidas correctamente.
Cuando el nodo intermedio previsto no envía el ACK correspondiente, alguno de los nodos cooperadores que haya recibido correctamente Ia trama envía un ACK, referenciado como C-ACK De esta forma, el nodo que ha transmitido Ia trama de datos sabe que ha sido correctamente recibida, aunque no Io haya sido por el nodo intermedio previsto, sino por alguno de sus cooperadores. Aunque Ia situación ideal sería que Ia posibilidad de envío de C-ACKs fuera contemplada por el propio protocolo de nivel L2, esto no es necesariamente así. Por ejemplo, el protocolo IEEE 802.1 1 no contempla esta posibilidad. Por ello, se contempla Ia posibilidad de que se generen tramas 802.1 1 cuyo contenido corresponda a paquetes C-ACKs, enviados bien por el propio nodo intermedio previsto o por los cooperadores.
La operación del nodo al recibir un paquete de datos se especifica mediante el siguiente algoritmo:
N. CIoUdSN[M] se refiere al valor que el nodo N tiene del número de secuencia de la nube cuyo master es M. Para simplificar en vez de N.CIoudSN[N] se usa N. CloudSN.
Se supone que un nodo N envía un paquete P con cooperación con dirección de recepción <@2M, 1 , n>
Si (el nodo M recibe P de forma correcta), Io acepta sea cual sea el valor de n. Si (n > M. CloudSN) Entonces
Modifica el valor M. CloudSN a n. Envía un C-HELLO después del C-ACK para actualizar a los cooperadores. FSi Como Ia recepción ha sido correcta, M responde con C-ACK, en el que incluye su M. CloudSN y el flag_master = 1 (es decir, un flag que indica que es master de Ia nube). FSi
Si (el nodo M' perteneciente a Nube(M) recibe el paquete P de forma correcta) Entonces
Si (el número de secuencia de nube indicado en el paquete, es decir n, es mayor que el número de secuencia de nube que el nodo M' tiene asociado a Ia nube cuyo master es M, es decir n>M'.CIoudSN[M]) Entonces NO coopera y descartar paquete.
Si no, coopera en Ia transmisión, es decir: Si Ie toca cooperar, envía un C-ACK con el correspondiente número de secuencia, y un flag indicando que no es master de Ia nube (flag_master=O), y después hará el reenvío del paquete. FSi FSi Para la detección de Ia condición de nube rota, es necesaria Ia intervención del nodo N que está enviando los paquetes a Ia nube: Cuando el nodo N recibe un C-ACK con un número de secuencia de nube, actualiza el número de secuencia asociado a dicha nube, en el caso de que el que él conozca sea menor. En funcionamiento normal del algoritmo, no debe darse el caso de que el nodo que reciba el C-ACK tenga un número de secuencia de nube asociado mayor que el que aparece en el C-ACK.
Si el nodo N, recibe más de un C-ACK asociado a dicho paquete, incrementa el número de secuencia asociado a Ia transmisión de dicho paquete, de forma que el próximo paquete que transmita, tendrá un número de secuencia incrementado. Es importante destacar que esto provocará que, si uno de los nodos que envía C-ACKs es el master, dicho nodo master adopte el número de secuencia incrementado, y comunique el cambio a sus cooperadores mediante el envío de un C-ACK, mientras que el nodo que ha retransmitido el paquete erróneamente (probablemente porque no está en cobertura con el nodo master) no retransmitirá dicho paquete con el número de secuencia de nube incrementado. Salvo que sea capaz de escuchar los C-ACKs en los que se actualiza el número de secuencia de nube, dicho nodo cooperador queda fuera de Ia nube. De esta forma se consiguen detectar y corregir las situaciones en las que un nodo cooperador sigue cooperando erróneamente cuando el master tiene un funcionamiento correcto pero se ha situado fuera del rango de cobertura de Ia nube.
El contexto es un identificador de un nodo que se utiliza como llave a Ia hora de manejar Ia tabla L3/2 (por ejemplo, a Ia hora de hacer un lookup). Indica que el nodo que aparece en <@2Contexto> se considera nodo intermedio previsto de una ruta con destino <@3Dest>. Si Ia tabla L3/2 de un nodo N tiene una entrada con contexto N, se dice que esa entrada está en el "contexto propio". Esta entrada se habrá generado como consecuencia de decisiones del enrutamiento de nivel L3 en el propio nodo N. Si Ia entrada tiene un contexto N', N' debe pertenecer a Nube(N) y Ia entrada se habrá generado como consecuencia de Ia recepción de un mensaje C-HELLO.
Cuando un nodo consulta su tabla L3/2 (por ejemplo, para hacer un lookup) Io hace bajo un cierto contexto. Por ejemplo, si el nodo está encaminando un paquete sin cooperar con otro, el contexto será el propio. Si por el contrario el nodo está encaminando el paquete como fruto de su cooperación con otro nodo, Io hará con el contexto asociado al otro nodo. En otras palabras, el contexto permite que un mismo nodo tenga varias visiones del enrutamiento de paquetes: Ia correspondiente al propio nodo y Ia correspondiente a Ia de cada uno de sus nodos intermedios previstos (o masters).
A pesar de que se ha descrito y representado una realización concreta de Ia presente invención, es evidente que el experto en Ia materia podrá introducir variantes y modificaciones, o sustituir los detalles por otros técnicamente equivalentes, sin apartarse del ámbito de protección definido por las reivindicaciones adjuntas.
A pesar también de que las realizaciones descritas de Ia invención con referencia al dibujo comprenden sistemas de computación y procesos realizados en sistemas de computación, Ia invención también se extiende a programas de ordenador, más particularmente a programas de ordenador en o sobre unos medios portadores, adaptados para poner Ia invención en práctica. El programa de ordenador puede estar en forma de código fuente, de código objeto o en un código intermedio entre código fuente y código objeto, tal como en forma parcialmente compilada, o en cualquier otra forma adecuada para usar en Ia implementación de los procesos de acuerdo con Ia invención. El medio portador puede ser cualquier entidad o dispositivo capaz de portar el programa. Por ejemplo, el medio portador puede comprender un medio de almacenamiento, tal como una ROM, por ejemplo un CD ROM o una ROM semiconductora, o un medio de grabación magnético, por ejemplo un floppy disc o un disco duro. Además, el medio portador puede ser un medio portador transmisible tal como una señal eléctrica u óptica que puede transmitirse vía cable eléctrico u óptico o mediante radio u otros medios.
Cuando el programa de ordenador está contenido en una señal que puede transmitirse directamente mediante un cable u otro dispositivo o medio, el medio portador puede estar constituido por dicho cable u otro dispositivo o medio.
Alternativamente, el medio portador puede ser un circuito integrado en el que está encapsulado {embedded} el programa de ordenador, estando adaptado dicho circuito integrado para realizar, o para usarse en Ia realización de, los procesos relevantes.

Claims

REIVINDICACIONES
1. Sistema para enrutar al menos un paquete de datos en una red inalámbrica, desde un nodo de origen (S) hasta un nodo de destino (D), a través de al menos un nodo (Ai,A2) de Ia red que actúa como nodo intermedio previsto, formando una ruta (S,Ai,A2,D) del paquete de datos, caracterizado por el hecho de que comprende medios para detectar Ia incapacidad del nodo intermedio previsto (A1 JA2) para enrutar, a través del mismo, el paquete de datos desde el nodo anterior a dicho nodo intermedio previsto hasta el nodo posterior a dicho nodo intermedio previsto de Ia ruta del paquete de datos; y medios para determinar un grupo (Li ;L2) de nodos cooperadores del nodo intermedio previsto (Ai ;A2), de entre Ia pluralidad de nodos de Ia red (N0,...,Ni5), para enrutar, a través del mismo, el paquete de datos desde el nodo anterior al nodo intermedio previsto hasta el nodo posterior al nodo intermedio previsto de Ia ruta del paquete de datos, en caso de que se detecte Ia incapacidad del nodo intermedio previsto.
2. Sistema según Ia reivindicación 1 , caracterizado por el hecho de que comprende medios para obtener un conjunto (Bi ;B2) de posibles nodos cooperadores del nodo intermedio previsto.
3. Sistema según Ia reivindicación 2, caracterizado por el hecho de que los medios para obtener el conjunto (B1 JB2) de posibles nodos cooperadores del nodo intermedio previsto (A1 JA2) comprenden medios para obtener el conjunto de nodos que se encuentran dentro del rango de cobertura del nodo intermedio previsto; y medios para seleccionar, de entre dicho conjunto de nodos, el conjunto de posibles nodos cooperadores del nodo intermedio previsto, de tal modo que dicho conjunto de posibles nodos cooperadores cumple unas condiciones idóneas para actuar como nodo cooperador del nodo intermedio previsto.
4. Sistema según cualquiera de las reivindicaciones 2 ó 3, caracterizado por el hecho de que los medios para determinar el grupo (L1 JL2) de nodos cooperadores del nodo intermedio previsto (Ai ;A2) comprenden medios para obtener, del conjunto (Bi ;B2) de posibles nodos cooperadores, el subconjunto de nodos que se encuentra dentro del rango de cobertura del nodo anterior al nodo intermedio previsto de Ia ruta del paquete de datos, cuando dicho nodo anterior al nodo intermedio previsto ha transmitido el paquete de datos; y medios para seleccionar, de entre dicho subconjunto de nodos, el grupo de nodos cooperadores del nodo intermedio previsto.
5. Sistema según cualquiera de las reivindicaciones 2 ó 3, caracterizado por el hecho de que los medios para determinar el grupo (Li ;L2) de nodos cooperadores del nodo intermedio previsto (Ai ;A2) comprenden medios para obtener, del conjunto (Bi ;B2) de posibles nodos cooperadores, el subconjunto de nodos que se encuentra dentro del rango de cobertura del nodo anterior al nodo intermedio previsto de Ia ruta del paquete de datos, cuando dicho nodo anterior al nodo intermedio previsto ha transmitido el paquete de datos; medios para obtener, de dicho subconjunto de nodos, un segundo subconjunto de nodos, de tal modo que el nodo posterior al nodo intermedio previsto de Ia ruta del paquete de datos se encuentra dentro del rango de cobertura de dicho segundo subconjunto de nodos; y medios para seleccionar, de entre dicho segundo subconjunto de nodos, el grupo de nodos cooperadores del nodo intermedio previsto.
6. Sistema según cualquiera de las reivindicaciones 2 a 5, caracterizado por el hecho de que Ia transmisión del paquete de datos por parte del nodo anterior al nodo intermedio previsto se realiza, al mismo tiempo, tanto al nodo intermedio previsto (Ai ;A2) como al conjunto (Bi ;B2) de posibles nodos cooperadores de dicho nodo intermedio previsto.
7. Sistema según cualquiera de las reivindicaciones 2 a 6, caracterizado por el hecho de que los medios para obtener el conjunto (B1 JB2) de posibles nodos cooperadores del nodo intermedio previsto (A1 JA2) actúan a intervalos de tiempo determinados.
5 8. Sistema según cualquiera de las reivindicaciones 2 a 7, caracterizado por el hecho de que al menos uno de los nodos del conjunto (B1 JB2) de posibles nodos cooperadores del nodo intermedio previsto (A1 JA2) comprende los medios para detectar Ia incapacidad del nodo intermedio previsto.
10 9. Sistema según cualquiera de las reivindicaciones 2 a 8, caracterizado por el hecho de que al menos uno de los nodos del conjunto (B1 JB2) de posibles nodos cooperadores del nodo intermedio previsto (A1 JA2) comprende medios para comunicar Ia incapacidad del nodo intermedio previsto, al nodo anterior al nodo intermedio previsto de Ia ruta del paquete de datos.
15
10. Sistema según cualquiera de las reivindicaciones anteriores, caracterizado por el hecho de que al menos uno de los nodos de Ia ruta (5,A1 JA25D) del paquete de datos comprende información de enrutamiento.
20 1 1. Sistema según cualquiera de las reivindicaciones 2 a 10, caracterizado por el hecho de que el paquete de datos transmitido al nodo intermedio previsto (A1 JA2) y a su conjunto (B1 JB2) de posibles nodos cooperadores comprende un indicador que informa a dicho conjunto de posibles nodos cooperadores que deben cooperar en el enrutamiento de dicho paquete de datos.
25
12. Sistema según cualquiera de las reivindicaciones 2 a 1 1 , caracterizado por el hecho de que el nodo intermedio previsto (A1 JA2) comprende medios para distribuir a su conjunto (B1 JB2) de posibles nodos cooperadores, Ia información de enrutamiento necesaria.
30
13. Sistema según cualquiera de las reivindicaciones 2 a 12, caracterizado por el hecho de que comprende medios para detectar el funcionamiento inadecuado de un nodo del conjunto (B1 JB2) de posibles nodos cooperadores.
14. Sistema según cualquiera de las reivindicaciones 2 a 13, caracterizado por el hecho de que el conjunto (Bi ;B2) de posibles nodos cooperadores comprende un identificador de dicho conjunto (Bi ;B2).
15. Sistema según Ia reivindicación 14, caracterizado por el hecho de que Ia información de enrutamiento de al menos uno de los nodos de Ia ruta (5,A1 JA25D) del paquete de datos comprende el identificador de su conjunto (B1 JB2) de posibles nodos cooperadores.
16. Sistema según cualquiera de las reivindicaciones 2 a 15, caracterizado por el hecho de que comprende un mecanismo que permite a un nodo cooperador del conjunto (B1 JB2) de posibles nodos cooperadores saber que ha dejado de recibir correctamente los mensajes del nodo intermedio previsto de ese conjunto (B1 JB2) de posibles nodos cooperadores.
17. Procedimiento para enrutar al menos un paquete de datos en una red inalámbrica, desde un nodo de origen (S) hasta un nodo de destino (D), a través de al menos un nodo (A1 JA2) de Ia red que actúa como nodo intermedio previsto, formando una ruta (5,B1 JB25D) del paquete de datos, caracterizado por el hecho de que comprende las etapas de:
A) Detectar Ia incapacidad del nodo intermedio previsto para enrutar, a través del mismo, el paquete de datos desde el nodo anterior a dicho nodo intermedio previsto hasta el nodo posterior a dicho nodo intermedio previsto de Ia ruta del paquete de datos;
B) En caso de detección positiva en Ia etapa (A), determinar un grupo (L1 JL2) de nodos cooperadores del nodo intermedio previsto, de entre Ia pluralidad de nodos de Ia red, para enrutar, a través del mismo, el paquete de datos desde el nodo anterior al nodo intermedio previsto hasta el nodo posterior al nodo intermedio previsto de Ia ruta del paquete de datos.
18. Procedimiento según Ia reivindicación 17, caracterizado por el hecho de que comprende una etapa (C) de obtención de un conjunto (Bi 1B2) de posibles nodos cooperadores del nodo intermedio previsto.
19. Procedimiento según Ia reivindicación 18, caracterizado por el hecho de que Ia etapa (C) de obtención del conjunto (B1 JB2) de posibles nodos cooperadores del nodo intermedio previsto (A1 JA2), comprende las subetapas de:
C.1 ) Obtener el conjunto de nodos que se encuentran dentro del rango de cobertura del nodo intermedio previsto;
C.2) Seleccionar, de entre dicho conjunto de nodos, el conjunto (B1 , B2) de posibles nodos cooperadores del nodo intermedio previsto, de tal modo que dicho conjunto de posibles nodos cooperadores cumple unas condiciones idóneas para actuar como nodos cooperadores del nodo intermedio previsto.
20. Procedimiento según cualquiera de las reivindicaciones 18 ó 19, caracterizado por el hecho de que Ia etapa (B) de determinación del grupo
(L1 JL2) de nodos cooperadores del nodo intermedio previsto (A1 JA2), comprende las subetapas de:
B.1 ) Obtener, del conjunto (B1 , B2) de posibles nodos cooperadores, el subconjunto de nodos que se encuentra dentro del rango de cobertura del nodo anterior al nodo intermedio previsto de Ia ruta del paquete de datos, cuando dicho nodo anterior al nodo intermedio previsto ha transmitido el paquete de datos;
B.2) Seleccionar, de entre dicho subconjunto de nodos, el grupo de nodos cooperadores del nodo intermedio previsto.
21 . Procedimiento según cualquiera de las reivindicaciones 18 ó 19, caracterizado por el hecho de que Ia etapa (B) de determinación del grupo de nodos cooperadores del nodo intermedio previsto, comprende las subetapas de:
B.3) Obtener, del conjunto (Bi ;B2) de posibles nodos cooperadores, el 5 subconjunto de nodos que se encuentra dentro del rango de cobertura del nodo anterior al nodo intermedio previsto (Ai ;A2) de Ia ruta del paquete de datos, cuando dicho nodo anterior al nodo intermedio previsto ha transmitido el paquete de datos;
B.4) Obtener, de dicho subconjunto de nodos, un segundo subconjunto 10 de nodos, de tal modo que el nodo posterior al nodo intermedio previsto
(Ai ;A2) de Ia ruta del paquete de datos se encuentra dentro del rango de cobertura del segundo subconjunto de nodos cooperadores del nodo intermedio previsto;
B.5) Seleccionar, de entre dicho segundo subconjunto de nodos, el grupo 15 de nodos cooperadores del nodo intermedio previsto.
22. Sistema de computación en un sistema según cualquiera de las reivindicaciones 1 a 16, caracterizado por el hecho de que es adecuado para actuar como nodo cooperador del nodo intermedio previsto (Ai ;A2),
20 comprendiendo medios para detectar Ia incapacidad del nodo intermedio previsto para enrutar, a través del mismo, el paquete de datos desde el nodo anterior a dicho nodo intermedio previsto hasta el nodo posterior a dicho nodo intermedio previsto de Ia ruta del paquete de datos; y medios para enrutar el paquete de datos, los cuales comprenden medios para recibir el paquete de
25 datos del nodo anterior al nodo intermedio previsto de Ia ruta del paquete de datos, y medios para transmitir dicho paquete de datos al nodo posterior al nodo intermedio previsto de Ia ruta del paquete de datos, en caso de que se detecte Ia incapacidad del nodo intermedio previsto.
30 23. Sistema según Ia reivindicación 22, caracterizado por el hecho de que los medios para transmitir el paquete de datos al nodo posterior al nodo intermedio previsto de Ia ruta del paquete de datos comprenden medios para introducir en el paquete de datos un indicador que informa al conjunto (B1 JB2) de posibles nodos cooperadores del nodo intermedio previsto (Ai ;A2) que deben cooperar en el enrutamiento del paquete de datos.
24. Procedimiento para enrutar al menos un paquete de datos en un sistema de computación según cualquiera de las reivindicaciones 22 ó 23, caracterizado por el hecho de que comprende las etapas de:
D) Recibir el paquete de datos del nodo anterior al nodo intermedio previsto de Ia ruta del paquete de datos;
A) Detectar Ia incapacidad del nodo intermedio previsto (Ai ;A2) para enrutar, a través del mismo, el paquete de datos desde el nodo anterior a dicho nodo intermedio previsto hasta el nodo posterior a dicho nodo intermedio previsto de Ia ruta del paquete de datos; E) En caso de detección positiva en Ia etapa (A), transmitir el paquete de datos al nodo posterior al nodo intermedio previsto de Ia ruta del paquete de datos.
25. Programa de ordenador que comprende instrucciones de programa que se ejecutan en un sistema de computación para realizar el procedimiento de acuerdo con Ia reivindicación 24.
26. Programa de ordenador según Ia reivindicación 25, caracterizado por el hecho de que está almacenado en unos medios de almacenamiento.
27. Programa de ordenador según Ia reivindicación 25, caracterizado por el hecho de que es portado por una onda portadora.
PCT/ES2007/070129 2006-07-10 2007-07-09 Sistema y procedimiento para enrutar un paquete de datos en una red inalámbrica, sistema de computación en un sistema para enrutar un paquete de datos en una red inalámbrica, y procedimiento para enrutar un paquete de datos en un sistema de computación. WO2008006926A1 (es)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP07803656A EP2045976A1 (en) 2006-07-10 2007-07-09 System and method for routing a data packet in a wireless network, computing system in a system for routing a data packet in a wireless network and method for routing a data packet in a computing system
US12/373,219 US20090279481A1 (en) 2006-07-10 2007-07-09 System and method for routing a data packet in a wireless network, computing system in a system for routing a data packet in a wireless network, and method for routing a data packet in a computing system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
ESP200601862 2006-07-10
ES200601862A ES2302438B1 (es) 2006-07-10 2006-07-10 Sistema y procedimiento para enrutar un paquete de datos en una red inalambrica, sistema de computacion en un sistema para enrutar un paquete de datos en una red inalambrica, y procedimiento para enrutar un paquete de datos en un sistema de computacion.

Publications (1)

Publication Number Publication Date
WO2008006926A1 true WO2008006926A1 (es) 2008-01-17

Family

ID=38922968

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/ES2007/070129 WO2008006926A1 (es) 2006-07-10 2007-07-09 Sistema y procedimiento para enrutar un paquete de datos en una red inalámbrica, sistema de computación en un sistema para enrutar un paquete de datos en una red inalámbrica, y procedimiento para enrutar un paquete de datos en un sistema de computación.

Country Status (4)

Country Link
US (1) US20090279481A1 (es)
EP (1) EP2045976A1 (es)
ES (1) ES2302438B1 (es)
WO (1) WO2008006926A1 (es)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101047151B1 (ko) 2009-07-13 2011-07-07 한국과학기술원 애드혹 네트워크에서의 그룹 협력 전송방법

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8762518B2 (en) * 2009-07-10 2014-06-24 Telcordia Technologies, Inc. Program and method for adaptively maintaining a local peer group in a dynamic environment
KR101764888B1 (ko) * 2010-02-16 2017-08-16 한국전자통신연구원 광대역 근거리 무선 통신 장치 및 방법
JP5922902B2 (ja) * 2011-09-30 2016-05-24 日本信号株式会社 無線通信ネットワークシステムの同期方法
US8873518B2 (en) * 2012-09-24 2014-10-28 Silver Spring Networks, Inc. System and method for broadcasting messages to nodes within a wireless mesh network
CN104469845B (zh) * 2013-09-18 2019-05-10 华为技术有限公司 一种报文处理方法、系统及设备
CN107404712A (zh) * 2016-05-20 2017-11-28 北京信威通信技术股份有限公司 一种数据传输的方法、装置及系统
CN109769000A (zh) * 2019-03-15 2019-05-17 江苏中利电子信息科技有限公司 基于olsr协议的网络节点定位信息的传输方法
US20230188506A1 (en) * 2021-12-09 2023-06-15 Matrixcare, Inc. Invisible middleware for asynchronous communication
CN115022228B (zh) * 2022-06-30 2023-05-23 华南理工大学 基于蚁群算法的声电协同网络的自适应路由系统及方法
US11943138B1 (en) * 2022-09-26 2024-03-26 Arista Networks, Inc. Detecting duplicate network device identifiers for routing protocols

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1122919A1 (fr) 2000-02-03 2001-08-08 Alcatel Procédé d'acheminement de messages dans un réseau ad hoc
US20020145978A1 (en) * 2001-04-05 2002-10-10 Batsell Stephen G. Mrp-based hybrid routing for mobile ad hoc networks
US20030118051A1 (en) * 2001-12-12 2003-06-26 Alcatel Telecommunications network and a packet header therefor
US20030202477A1 (en) * 2002-04-25 2003-10-30 Samsung Electronics Co., Ltd. Method for bluetooth on-demand routing and network formation, and communication method in bluetooth group ad hoc network
US20050030921A1 (en) * 2003-07-25 2005-02-10 Royal Holloway University Of London Routing protocol for ad hoc networks

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6940832B2 (en) * 2003-01-17 2005-09-06 The Research Foundation Of The City University Of New York Routing method for mobile infrastructureless network
US20050100029A1 (en) * 2003-11-12 2005-05-12 Research Foundation Of The State University Of New York Ad hoc network routing for hotspot mitigation and load balancing in wireless LANs
JP4559237B2 (ja) * 2005-01-07 2010-10-06 株式会社エヌ・ティ・ティ・ドコモ ルーティング方法及び移動端末

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1122919A1 (fr) 2000-02-03 2001-08-08 Alcatel Procédé d'acheminement de messages dans un réseau ad hoc
US20020145978A1 (en) * 2001-04-05 2002-10-10 Batsell Stephen G. Mrp-based hybrid routing for mobile ad hoc networks
US20030118051A1 (en) * 2001-12-12 2003-06-26 Alcatel Telecommunications network and a packet header therefor
US20030202477A1 (en) * 2002-04-25 2003-10-30 Samsung Electronics Co., Ltd. Method for bluetooth on-demand routing and network formation, and communication method in bluetooth group ad hoc network
US20050030921A1 (en) * 2003-07-25 2005-02-10 Royal Holloway University Of London Routing protocol for ad hoc networks

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
A. BLETSAS ET AL.: "A Simple Cooperative Diversity Method Based on Network Path Selection", IEEE JOURNAL ON SELECTED AREAS IN COMMUNICATIONS, vol. 24, no. 3, March 2006 (2006-03-01)
A. NOSRATINIA; T.E. HUNTER; A. HEDAYAT: "Cooperative Communication in Wireless Networks", IEEE COMMUNICATIONS MAGAZINE, October 2004 (2004-10-01)
PO LARSSON: "Selection Diversity Forwarding in a Multihop Packet Radio Network with Fading Channel and Capture", ACM SIGMOBILE MOBILE COMPUTING AND COMMUNICATION REVIEW, vol. 5, no. 4, 2001, pages 47 - 54
S. BISWAS; R. MORRIS: "ExOR: Opportunistic Multi-hop Routing for Wireless Networks", PROCEEDINGS OF ACM SIGCOMM'05, 2005, pages 133 - 143

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101047151B1 (ko) 2009-07-13 2011-07-07 한국과학기술원 애드혹 네트워크에서의 그룹 협력 전송방법

Also Published As

Publication number Publication date
EP2045976A1 (en) 2009-04-08
US20090279481A1 (en) 2009-11-12
ES2302438A1 (es) 2008-07-01
ES2302438B1 (es) 2009-05-21

Similar Documents

Publication Publication Date Title
WO2008006926A1 (es) Sistema y procedimiento para enrutar un paquete de datos en una red inalámbrica, sistema de computación en un sistema para enrutar un paquete de datos en una red inalámbrica, y procedimiento para enrutar un paquete de datos en un sistema de computación.
KR100915054B1 (ko) 무선 통신 네트워크에서 경로 수렴 시간을 감소시키고 최적경로를 찾기 위한 시스템 및 방법
US7519045B2 (en) Optimal direction-based flooding method for mobile ad-hoc networks
US12003403B2 (en) Link management and routing in hybrid mesh networks
US20090296704A1 (en) Method for multi-path source routing in sensor network
JP2007129542A (ja) 無線通信システム、無線通信装置及び無線通信方法、並びにコンピュータ・プログラム
ES2627694T3 (es) Comunicaciones de par a par en AMI con encaminamiento de origen-árbol
KR20070039916A (ko) 무선 네트워크에서 안정된 경로들을 선택하기 위한 시스템및 방법
ES2612832T3 (es) Procedimiento de comunicación en una red inalámbrica de telecomunicaciones, programa de ordenador y nodo inalámbrico de comunicación asociados
ES2638214T3 (es) Método de comunicación de tipo SMF para una red manet, nodo de red y red móvil que implementan este método de comunicación
CN113490251B (zh) 基于泛洪约束和多度量函数的移动自组网路由构建方法
Singh et al. A survey: Ad-hoc on demand distance vector (AODV) protocol
BR112021005085A2 (pt) Método para apoiar o estabelecimento de um caminho para a transmissão de uma mensagem em uma rede mesh, método para determinar um caminho para a transmissão de uma mensagem em uma rede mesh, nó intermediário em uma rede mesh, nó de destino paradeterminar um caminho para transmitir uma mensagem em uma rede mesh, e, mídia de armazenamento legível por computador
CN108093457B (zh) 一种无线自组网的路由查找方法及其系统
JP4683488B2 (ja) アドホックネットワークにおける送信元無線局の中継無線局選択方法、無線局及びプログラム
Lee et al. A reliable and hybrid multi-path routing protocol for multi-interface tactical ad hoc networks
Gburzynski et al. A tiny and efficient wireless ad-hoc protocol for low-cost sensor networks
RU2758593C1 (ru) Обнаружение критических линий связи в ячеистых сетях BLUETOOTH
Meireles et al. DAZL: Density-Aware Zone-based packet forwarding in vehicular networks
Bosunia et al. A robust and reliable routing protocol for energy-constrained mobile ad hoc networks
Modani et al. Adaptivity of arod routing protocol in sparse and dense Ad-hoc networks
Kavitha et al. Performance analysis of efficient position-based opportunistic routing for MANET
Araniti et al. A cooperative framework for reliable multicast forwarding in mobile ad hoc networks
Hamad et al. Efficient flooding based on node position for mobile ad hoc network
Holter Wireless extensions to ospf: Implementation of the overlapping relays proposal

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 07803656

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 12373219

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2007803656

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: RU