Method and apparatus for shortening multi-hop routes in a wireless ad hoc network
First Claim
1. A method for routing data packets in a network, comprising:
- at a first node of the network;
establishing communication with a plurality of neighbor nodes in the network, the plurality of neighbor nodes being within a radio communication range of the first node;
determining a destination node for a data packet;
determining a path for routing the data packet from the first node to the destination node, wherein the path comprises a sequence of one or more relay nodes for relaying the data packet from the first node to the destination node, the one or more relay nodes comprising a first neighbor node of the first node for receiving the data packet from the first node;
comparing the destination node and each node in the sequence of one or more relay nodes in backwards order with the plurality of neighbor nodes until a node from the one or more relay nodes and the destination node is identified as being a second neighbor node of the first node; and
reducing a length of the path by transmitting the data packet to the second neighbor node instead of the first neighbor node in response to identifying the second neighbor node.
1 Assignment
0 Petitions
Accused Products
Abstract
A method for routing data packets in a network comprising, at a first node of the network, establishing communication with a plurality of neighbor nodes in the network, determining a destination node for a data packet, determining a path for routing the data packet from the first node to the destination node, wherein the path comprises one or more relay nodes for relaying the data packet from the first node to the destination node, the one or more relay nodes comprising a first neighbor node of the plurality of neighbor nodes for receiving the data packet from the first node, identifying among the one or more relay nodes and the destination node a second neighbor node of the plurality of neighbor nodes, and in accordance with the identification of the second neighbor node, transmitting the data packet to the second neighbor node.
36 Citations
27 Claims
-
1. A method for routing data packets in a network, comprising:
at a first node of the network; establishing communication with a plurality of neighbor nodes in the network, the plurality of neighbor nodes being within a radio communication range of the first node; determining a destination node for a data packet; determining a path for routing the data packet from the first node to the destination node, wherein the path comprises a sequence of one or more relay nodes for relaying the data packet from the first node to the destination node, the one or more relay nodes comprising a first neighbor node of the first node for receiving the data packet from the first node; comparing the destination node and each node in the sequence of one or more relay nodes in backwards order with the plurality of neighbor nodes until a node from the one or more relay nodes and the destination node is identified as being a second neighbor node of the first node; and reducing a length of the path by transmitting the data packet to the second neighbor node instead of the first neighbor node in response to identifying the second neighbor node. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
10. A device for routing data packets in a network, comprising:
-
one or more processors, memory, and one or more programs, wherein the one or more programs are stored in the memory and configured to be executed by the one or more processors, the one or more programs comprising instructions for; establishing communication with a plurality of neighbor nodes in the network, the plurality of neighbor nodes being within a radio communication range of the first node; determining a destination node for a data packet; determining a path for routing the data packet from the device to the destination node, wherein the path comprises a sequence of one or more relay nodes for relaying the data packet from the device to the destination node, the one or more relay nodes comprising a first neighbor node of the first node for receiving the data packet from the device; comparing the destination node and each node in the sequence of one or more relay nodes in backwards order with the plurality of neighbor nodes until a node from the one or more relay nodes and the destination node is identified as being a second neighbor node of the first node; and reducing a length of the path by transmitting the data packet to the second neighbor node instead of the first neighbor node in response to identifying the second neighbor node. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17)
-
-
18. A non-transitory computer readable storage medium storing one or more programs, the one or more programs comprising instructions, which when executed by a node of a network, cause the node to:
-
establish communication with a plurality of neighbor nodes in the network, the plurality of neighbor nodes being within a radio communication range of the first node; determine a destination node for a data packet; determine a path for routing the data packet from the node to the destination node, wherein the path comprises a sequence of one or more relay nodes for relaying the data packet from the node to the destination node, the one or more relay nodes comprising a first neighbor node of the first node for receiving the data packet from the node; compare the destination node and each node in the sequence of one or more relay nodes in backwards order with the plurality of neighbor nodes until a node from the one or more relay nodes and the destination node is identified as being a second neighbor node of the first node; and reducing a length of the path by transmitting the data packet to the second neighbor node for relay to the destination node instead of the first neighbor node in response to identifying the second neighbor node.
-
-
19. A method for routing data packets in a network, comprising:
at a first node of the network; establishing communication with a plurality of neighbor nodes in the network, the plurality of neighbor nodes being within a radio communication range of the first node; storing, in a memory of the first node, information identifying the plurality of neighbor nodes; determining a path for routing data from the first node to a second node in the network, wherein the path comprises a sequence of one or more relay nodes for relaying the data from the first node to the second node, the one or more relay nodes comprising a first neighbor node of the first node for receiving the data from the first node; comparing the destination node and the one or more nodes in the sequence with the information identifying the plurality of neighbor nodes until a node from the one or more relay nodes and the destination node is identified as being a second neighbor node of the first node; storing, in the memory of the first node, at least a portion of a shortened path for routing data from the first node to the second node, wherein the at least a portion of the shortened path comprises at least the second neighbor node; determining that a destination for a data packet comprises the second node; and reducing a length of the path by transmitting the data packet to the second neighbor node instead of the first neighbor node in accordance with the at least a portion of the shortened path stored in the memory. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26)
-
27. A device for routing data packets in a network, comprising:
-
one or more processors, memory, and one or more programs, wherein the one or more programs are stored in the memory and configured to be executed by the one or more processors, the one or more programs comprising instructions for; establishing communication with a plurality of neighbor nodes in the network, the plurality of neighbor nodes being within a radio communication range of the first node; storing, in a memory of the first node, information identifying the plurality of neighbor nodes; determining a path for routing data from the device to a second node in the network, wherein the path comprises a sequence of one or more relay nodes for relaying the data from the first node to the second node, the one or more relay nodes comprising a first neighbor node of the first node for receiving the data from the device; comparing the destination node and the one or more relay nodes in the sequence with the information identifying the plurality of neighbor nodes until a node from the one or more relay nodes and the destination node is identified as being a second neighbor node of the first node; storing, in a routing table in the memory of the first node, at least a portion of a shortened path for routing data from the first node to the second node, wherein the at least a portion of the shortened path comprises at least the second neighbor node; determining that a destination for a data packet comprises the second node; and reducing a length of the path by transmitting the data packet to the second neighbor node instead of the first neighbor node in accordance with the at least a portion of the shortened path stored in the routing table.
-
Specification