Routing method and system for a wireless network
10798634 ยท 2020-10-06
Assignee
Inventors
Cpc classification
H04W4/06
ELECTRICITY
H04W40/02
ELECTRICITY
H04L45/00
ELECTRICITY
H04W40/24
ELECTRICITY
International classification
H04W40/02
ELECTRICITY
H04W4/06
ELECTRICITY
H04W40/24
ELECTRICITY
Abstract
A method and system for selecting a route in a wireless network for the transmission of a data packet between wireless nodes in the network using a modified link-state routing algorithm. A subset of nodes called portal nodes within the network are elected to do the broadcasting for the entire network. A wireless node identifies a unicast route back to its root portal node, and sends a link-state register message to this portal node. These link-state register messages received by each portal node are aggregated by them and are broadcast to each of the wireless nodes for storage. When a data packet is thereafter received by a wireless node from a neighboring node, it detects if the data packet satisfies one of a plurality of predetermined conditions and rebroadcasts the data packet to neighboring wireless nodes if none of the conditions is satisfied.
Claims
1. A method, comprising: receiving, at a portal routing device, a packet including a destination network address assigned to a wireless device; receiving, at the portal routing device, a link-state register message from each of a plurality of non-portal routing devices, the link-state register message comprising backhaul link information and client link information; aggregating, by the portal routing device, the link-state register messages from the plurality of non-portal routing devices to generate a backhaul link data structure storing the backhaul link information from the plurality of non-portal routing devices and a client link data structure storing the client link information from the plurality of non-portal routing devices, the backhaul link data structure being stored separately from the client link data structure at the portal routing device; based on the client link data structure, identifying, at the portal routing device, a first wireless non-portal routing device from among the plurality of non-portal routing devices connected to the wireless device; based on the backhaul link data structure, identifying, at the portal routing device, a route from the portal routing device to the first wireless non-portal routing device; and wirelessly forwarding the packet from the portal routing device to the wireless device via the first wireless non-portal routing device.
2. The method of claim 1, further comprising dropping, at the portal routing device, the packet transmitted from a second wireless non-portal routing device in the route, after the packet has been forwarded from the portal routing device.
3. The method of claim 1, further comprising updating the client link data structure based on a roaming message transmitted from a third wireless non-portal routing device to which the wireless device is newly connected.
4. The method of claim 1, wherein the backhaul link data structure includes a network address of a second wireless non-portal routing device as a next-hop address for the portal routing device to forward the packet to the first wireless non-portal routing device.
5. The method of claim 1, wherein the backhaul link data structure includes an identifier of an outgoing network interface of the portal routing device connected to a next wireless non-portal routing device for the portal routing device to forward the packet to the first wireless non-portal routing device.
6. The method of claim 1, wherein the packet is forwarded in response to the wireless device roaming to the first wireless non-portal routing device from a second wireless non-portal routing device.
7. The method of claim 1, wherein the backhaul link data structure is unchanged due to an update of the client link data structure in response to the wireless device roaming between a plurality of wireless non-portal routing devices.
8. The method of claim 1, wherein the client link data structure is shared with the first and other wireless non-portal routing devices in the network.
9. The method of claim 1, further comprising: generating, by the portal routing device, a link-state-update message comprising the backhaul link information and the client link information of each of the plurality of non-portal routing devices; and broadcasting, by the portal routing device, the link-state-update message to the plurality of non-portal routing devices, wherein each of the plurality of non-portal routing devices is configured to be synchronized with one another and the portal routing device based on the link-state-update message.
10. The method of claim 1, wherein, for each of the plurality of non-portal devices, the backhaul link information comprises logical link information between the non-portal device and an adjacent node of the network and the client link information comprises link information indicating a connection between the non-portal device and the wireless device.
11. A system, comprising: a plurality of wireless non-portal routing devices; and a portal routing device configured to: receive a packet including a destination network address assigned to a wireless device; receive a link-state register message from each of the plurality of non-portal routing devices, the link-state register message comprising backhaul link information and client link information; aggregate the link-state register messages from the plurality of non-portal routing devices to generate a backhaul link data structure storing the backhaul link information from the plurality of non-portal routing devices and a client link data structure storing the client link information from the plurality of non-portal routing devices, the backhaul link data structure being stored separately from the client link data structure at the portal routing device; based on the client link data structure, identify a first wireless non-portal routing device from among the plurality of non-portal routing devices connected to the wireless device; based on the backhaul link data structure, identify a route from the portal routing device to the first wireless non-portal routing device; and wirelessly forward the packet from the portal routing device to the wireless device via the first wireless non-portal routing device.
12. The system of claim 11, wherein the portal routing device is further configured to drop the packet transmitted from a second wireless non-portal routing device in the route, after the packet has been forwarded from the portal routing device.
13. The system of claim 11, wherein the portal routing device is further configured to update the client link data structure based on a roaming message transmitted from third a wireless non-portal routing device to which the wireless device is newly connected.
14. The system of claim 11, wherein the backhaul link data structure includes a network address of a second wireless non-portal routing device as a next-hop address for the portal routing device to forward the packet to the first wireless non-portal routing device.
15. The system of claim 11, wherein the backhaul link data structure includes an identifier of an outgoing network interface of the portal routing device connected to a next wireless non-portal routing device for the portal routing device to forward the packet to the first wireless non-portal routing device.
16. The system of claim 11, wherein the portal routing device forwards the packet in response to the wireless device roaming to the first wireless non-portal routing device from another wireless non-portal routing device.
17. The system of claim 11, wherein the backhaul link data structure is unchanged due to an update of the client link data structure in response to the wireless device roaming between a plurality of wireless non-portal routing devices.
18. A portal routing device, comprising: a processor; and a memory coupled to the processor storing instructions that when executed cause the processor to: receive a packet including a destination network address assigned to a wireless device; receive a link-state register message from each of a plurality of non-portal routing devices, the link-state register message comprising backhaul link information and client link information; aggregate the link-state register messages from the plurality of non-portal routing devices to generate a backhaul link data structure storing the backhaul link information from the plurality of non-portal routing devices and a client link data structure storing the client link information from the plurality of non-portal routing devices, the backhaul link data structure being stored separately from the client link data structure at the portal routing device; based on the client link data structure, identify a first wireless non-portal routing device from among the plurality of non-portal routing devices connected to the wireless device; based on the backhaul link data structure, identify a route from the portal routing device to the first wireless non-portal routing device; and wirelessly forward the packet from the portal routing device to the wireless device via the first wireless non-portal routing device.
19. The portal routing device of claim 18, wherein the instructions further cause the processor to: generate a link-state-update message comprising the backhaul link information and the client link information of each of the plurality of non-portal routing devices; and broadcast the link-state-update message to the plurality of non-portal routing devices, wherein each of the plurality of non-portal routing devices is configured to be synchronized with one another and the portal routing device based on the link-state-update message.
20. The portal routing device of claim 18, wherein, for each of the plurality of non-portal devices, the backhaul link information comprises logical link information between the non-portal device and an adjacent node of the network and the client link information comprises link information indicating a connection between the non-portal device and the wireless device.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) The present invention is illustrated by way of example, and not limitation, in the figures of the accompanying drawings in which like reference numerals refer to similar elements and in which:
(2)
(3)
(4)
(5)
(6)
(7)
(8)
DETAILED DESCRIPTION
(9) The present invention provides a method and system for synchronizing network link-state information, determining routing for each participating device, forwarding of data packets accordingly, and internetworking with existing layer 2 switching networks.
(10) According to the present invention, to synchronize link-state information for a particular node in a wireless network having a plurality of nodes, the node link-state must be broadcast to the whole network. Only a small subset of nodes are enabled to broadcast to the whole network. If a node belongs to this subset, the node is called a portal node. Preferably each portal node also is a backhaul link to an external wired LAN, e.g., an Ethernet link to the an Internet Service Provider (ISP). All other wireless nodes will have to unicast their link-state to one of the portal nodes, and then that portal node will aggregate and broadcast the nodes' link-states to the whole network. Eventually, each node within the network will have a synchronized link-state database of every node in the network, and can then run a standard shortest path selection algorithm to determine the route to each destination. With a unicast routing table now residing in each wireless node, a further embodiment of the present invention comprises a reverse-path-lookup method and system which is used by each node to break broadcast/multicast data packet loops. The protocol method according to the present invention includes the following parts:
(11) Portal node election.
(12) Link-state register/broadcasting.
(13) Route determination.
(14) Packet forwarding.
(15)
(16) The portal announcements generated by each portal node serve two purposes. The first is to let every other node know of each portal node's existence. The second is to cause each non-portal node to elect one portal node to be its root portal node, to establish a unicast path back to its elected root portal node, and then to unicast the node's link-state to its root portal node.
(17) The announcement packet generated by each portal node contains the following information:
(18) TABLE-US-00001 Node ID Sequence number Metric
Where:
(19) The NodeID is the address of a portal node (e.g., its Ethernet address);
(20) The Sequence number is an increasing integer per node; and
(21) The Metrics value is the cost of each network link.
(22) In a preferred embodiment, the metric value represents the number of links that the announcement has traversed from the portal node to the node receiving the announcement. Each non-portal wireless node elects as its root portal node the portal node whose announcement metric value is the lowest.
(23)
(24) To abstract the steps of this portal node election process according to the present invention from the above example, when a node receives an announcement, the following actions are preferably done at each node: 1. Identify who originated the announcement, by reading the node ID from the announcement. 2. Decide if the packet should be taken, by comparing the stored node's sequence number and the one carried in the announcement. 3. Once the announcement is taken, update the stored sequence number, and install a unicast route to the announcing portal node. 4. Relay the announcement after updating the Metric value.
(25) If multiple portal nodes exist, the same logic will apply to the announcement from each portal node. As can be seen, each portal node operates independently of the other portal nodes and so the wireless network is not limited to having only one portal node operating at a time.
(26) Link-State Register/Broadcasting:
(27) After each node has identified a route back to each portal node, it will register local link-state information to one or more selected portal nodes. The portal nodes will aggregate and broadcast the nodes' link-states to the whole network.
(28) The Link-state-register is a unicast message and contains the following information:
(29) TABLE-US-00002 Node ID Backhaul links Client links
(30) The link-state-broadcast is a broadcast message that contains a common header and the aggregated link-states registered by other nodes:
(31) TABLE-US-00003 Node ID Sequence number Node-1 link-state . . . . . . Node-n link-state
(32)
Route Calculation:
(33) By doing portal announcing and link-state register/broadcasting, each node in the network will have the same synchronized database. The present invention uses a novel technique to organize the link-state data structure in such a way that the frequent wireless client (e.g., laptop) mobility will not cause the route selection algorithm to constantly run, which will save a significant amount of system resources (e.g., CPU time and memory usage).
(34) As illustrated in the above example, each wireless node divides the link-states into two categories: backhaul link: a logical link between two wireless nodes, either through a wireless radio or a wired link (e.g., an Ethernet link). Such a link can be a wireless link or a wired link, unlike 802.11s, where the link must always be a wireless link. client link: A link between a client mobile device or station and a wireless node AP.
(35) To calculate a route to a client station, for example, a single table lookup can identify which node the station is attached to, and then any standard link-state algorithm can be used to get the route to the attaching node. We call this a 2-level route calculation.
(36) An exemplary route calculation using a link-state routing protocol known in the art is as follows. As background, the link-state routing protocol is one of the two well known main classes of routing protocols used in packet-switched networks for computer communications. Examples of link-state routing protocols include Open Shortest Path First (OSPF) and Intermediate System to Intermediate System (IS-IS). The link-state protocol is performed by every wireless node in the network (i.e. nodes which are prepared to forward packets, also called routers). The basic concept of link-state routing is that every node receives a map of the connectivity of the network, in the form of a table showing which nodes are connected to which other nodes. Each node then independently calculates the best next hop from it for every possible destination in the network. It does this using only its local copy of the map, and without communicating in any other way with any other node. The collection of best next hops forms the routing table for the node.
(37) With the complete set of link-states (one from each node in the network) in hand, it is straightforward for each wireless node to produce this table for the map of the network. The algorithm simply iterates over the collection of link-states, and for each one, it makes links on the map of the network, from the node which sent that message, to all the nodes which that message indicates are neighbors of the sending node. No link is considered to have been correctly reported unless the two ends agree, i.e., if one node reports that it is connected to another, but the other node does not report that it is connected to the first, there is a problem, and the link is not included on the map.
(38) The second step in the link-state algorithm is for each node to produce routing tables from the map it has generated. Each node independently runs an algorithm over the map to determine the shortest path from itself to every other node in the network. Generally, some variant of Dijkstra's algorithm is used. Basically, each node maintains two data structures: a tree containing nodes which are done, and a list of candidates. The algorithm starts with both structures empty; it then adds to the first one the node itself. The algorithm then repetitively: Adds to the second (candidate) list all nodes which are connected to the node just added to the tree (excepting of course any nodes which are already in either the tree or the candidate list). Of the nodes in the candidate list, the one which is closest to any of the nodes already in the tree is moved to the tree (attaching it to the appropriate neighbor node already there). Repeats as long as there are any nodes left in the candidate list. (When there are none, all the nodes in the network will have been added to the tree.)
(39) This procedure ends with the tree containing all the nodes in the network, with the node on which the algorithm is running as the root of the tree. The shortest path from that node to any other node is indicated by the list of nodes one traverses to get from the root of the tree, to the desired node in the tree. With the shortest paths in hand, filling in the routing table is again straightforward. For any given destination node, the best next hop for that destination is the node which is the first step from the root node, down the branch in the shortest-path tree which leads toward the desired destination node. To create the routing table, it is only necessary to walk the tree, remembering the identity of the node at the head of each branch, and fill in the routing table entry for each node one comes across with that identity.
(40) As mentioned above, a key disadvantage of prior art link-state protocols is that each wireless node is able to broadcast link-state messages to other nodes throughout the network (i.e., it is flooded throughout the network whenever there is a change in the connectivity between the node and its neighbors, e.g., when a link fails or a client station moves from one node to another). Then, each node must recreate its routing table to incorporate this new connectivity information. As can be seen, this creates a burdensome overhead for a network of any significant size.
(41) According to a preferred embodiment of the present invention, each portal node periodically broadcasts a new announcement, to thereby institute a new portal node election process and link-state register updating. In a preferred embodiment, this step is performed once every minute. As is seen, the wireless network according to the present invention is enabled to reestablish all routes between nodes in the network in this time frame.
(42) Packet Forwarding:
(43) According to the present invention, for unicast packet forwarding, once a route is established for a wireless client, the unicast packet forwarding is done by doing the 2-level route lookup at each node. First, the wireless client destination lookup is performed to identify the node this client is attached to. This will give us the node ID of the wireless access point node. Then the backhaul route lookup is performed by using the access point node ID as the destination. This will give us the next-hop address and the outgoing interface (whether the outgoing interface is a selected one of the node's radio interfacesit typically will have more than one such interfacesor a wired Ethernet interface) in order to forward the packet. Any failure during the lookup process will cause the packet to be dropped silently.
(44) The challenge for broadcast forwarding in a wireless network is the need to break forwarding (broadcast) loops. The present invention uses a technique called reverse-path-lookup to decide if a broadcast looping is occurring, such that the looped packet needs to be dropped. In a wireless network, to relay a broadcast packet, the broadcast packet will be sent out to the same radio interface from which it was received, so all the neighboring nodes, including the upstream node, will receive the packet. From the upstream node's point of view, this packet is looping and should be dropped.
(45) According to the IEEE 802.11 standard, all wireless packets being forwarded in wireless backhaul will contain 4 addresses (FF is used to represent the broadcast destination address):
(46) Tx: the transmitting node address.
(47) Rx: the receiving address within one hop.
(48) Src: the original sending node address.
(49) Dst: the ultimate destination address.
(50) Reverse-path-lookup will do a unicast route lookup for the Src of any broadcast packet. If the nexthop of the route doesn't match the Tx value of the packet, the broadcast packet will be dropped.
(51)
(52) Each node already has identified a unicast route to H9 by performing the nexthop route calculation as stated above. In this example, we list the route to H9 at each node. The reverse-path-lookup procedure will use this table later as described in the steps below:
(53) TABLE-US-00004 Node Nexthop At node H2 H6 At node H5 H9 At node H6 H9 At node H9 H9 Step-1: H9 originates a broadcast packet (as illustrated by the thin dashed arrow pointing from H9). As indicated in
(54) So, by having each node do a reverse-path-lookup check and relay a broadcast packet only when the reverse-path-lookup conditions are met, the broadcast message successfully reaches everywhere in the wireless network as well as leaking to the wired network, without causing any unwanted packet looping.
(55)
(56) To summarize the generic rule of reverse-path-lookup, any of the following conditions will indicate a possible broadcast loop, and therefore the packet must be dropped: 1) There is no route with destination matching the original sender. 2) There is a route match, the outgoing interface is a wireless backhaul interface, and the next-hop address of the route is different from the relaying node's transmitting interface address. 3) There is a route match, the outgoing interface is NOT a wireless interface, and it is different from the incoming interface.
(57) The above described reverse-path-lookup procedure is significantly different from the prior art RPF (Reverse Path Forward) technique, which is used in IP multicast routing protocols like PIM (Protocol Independent Multicast). The major difference is in condition 2 above. In RPF, it does not check the next hop address but rather the incoming interface. If the outgoing interface of RPF lookup is the same as the incoming interface, the packet is then dropped. However, this technique does not work for wireless networks. In wireless networks, when a node forwards a broadcast/multicast packet, it will be forwarded out to the same radio interface from which the packet was received. For example, there are four nodes, Node A, B, C and D, in an exemplary wireless network as shown in
(58) According to the prior art RPF technique: 1) Node A relays a multicast packet from one of its clients to B; 2) B receives the multicast packet, the RPF check is OK, and so B relays the traffic out to C. But notice it's a wireless network, so at the same time A also receives the multicast packet relayed by B; 3) The same logic happens at C and C will relay the multicast traffic to D. Again, B will receive the packet relayed by C as well because of the wireless media; and 4) When B receives the packet relayed by C, it cannot be differentiated from the original packet sent by A from the RPF point of view. Therefore, the packet relayed by C will not be dropped by doing the RPF check, and so it will cause an unwanted loop in the wireless network.
(59) The present invention of reverse-path-lookup is the solution to this problem.
(60) Wireless Client Roaming:
(61) In a wireless network, client roaming happens virtually all of the time (e.g., people carry their laptop around). The present invention maintains the continuing data flow while the client is roaming. The following example illustrates the method. In this example, as shown in
(62)
(63) To perform the roaming notification step for maintaining continuous data traffic, we have to have the client link-state information synchronized across the network. This can be done periodically or whenever a client links up to or disconnects from a given wireless node.
(64) All embodiments of the present invention described above are illustrative of the principles of the invention and are not intended to limit the invention to the particular embodiments described. Accordingly, while the preferred embodiment of the invention has been illustrated and described, it will be appreciated that various changes can be made therein without departing from the scope of the invention as claimed.