The present invention relates generally to routing data in wireless networks, and in particular to routing mesh network traffic from a mesh access point to a non-mesh network.
Mesh network technology enables wireless devices to communicate with peers by relaying network data packets through a series of wireless intermediate nodes. The intermediate nodes can be fixed elements of a network infrastructure, or mobile wireless stations that are capable of routing or relaying data packets between neighboring network nodes. A gateway that functions as a bridge between a mesh network and a non-mesh network, such as a backbone network, is called a mesh gateway or an Intelligent Access Point (IAP). A wireless intermediate node, also referred to as a wireless router or a mesh access point, can act as a router, a bridge, or a repeater to relay data packets between neighboring network nodes that are in communication with the wireless intermediate node. Thus, wireless intermediate nodes can extend a communication range of an IAP by relaying data packets between neighboring network nodes.
A mesh network can comprise one or more mesh gateways. The mesh gateways can provide wireless mesh networking by establishing wireless backhaul connections, also referred to as wireless distribution systems (WDSs). This type of mesh networking is referred to as wireless backhaul meshing or infrastructure meshing. Alternatively, a mesh network can comprise mobile wireless stations that act as intermediate nodes by relaying data between nearby mobile stations. This type of mesh networking is referred to as client meshing or ad-hoc networking. A combination of both type of mesh networking also can be used.
A large scale wireless mesh network utilizing low-powered, short-range, high-data rate radios can thus provide long range wireless networking. Advantages of such wireless mesh networking include low interference and large scale wireless coverage that requires significantly less infrastructure than a cellular network. For example, wireless mesh networking can provide ubiquitous Internet access if a mesh gateway participating in the mesh networking is connected the Internet.
However, in mesh networks that manage a lot of data traffic, traffic congestion can occur at a mesh gateway connected to a backbone network such as the Internet or a public switched telephone network (PSTN). That is because each node in a mesh network is generally associated with only a single mesh gateway. Thus, network traffic queued at a mesh gateway can sometimes exceed a capacity of a backhaul link of the mesh gateway, even if another mesh gateway in the same mesh network still has available capacity to route network traffic over another backhaul link.
The accompanying figures, where like reference numerals refer to identical or functionally similar elements throughout the separate views and which together with the detailed description below are incorporated in and form part of the specification, serve to further illustrate various embodiments and to explain various principles and advantages all in accordance with the present invention.
Skilled artisans will appreciate that elements in the figures are illustrated for simplicity and clarity and have not necessarily been drawn to scale. For example, the dimensions of some of the elements in the figures may be exaggerated relative to other elements to help to improve understanding of embodiments of the present invention.
Before describing in detail embodiments that are in accordance with the present invention, it should be observed that the embodiments reside primarily in combinations of method steps and apparatus components related to routing mesh network traffic from a mesh access point to a non-mesh network. Accordingly, the apparatus components and method steps have been represented where appropriate by conventional symbols in the drawings, showing only those specific details that are pertinent to understanding the embodiments of the present invention, so as not to obscure the disclosure with details that will be readily apparent to those of ordinary skill in the art having the benefit of the description herein.
In this document, relational terms such as first and second, top and bottom, and the like may be used solely to distinguish one entity or action from another entity or action without necessarily requiring or implying any actual such relationship or order between such entities or actions. The terms “comprises,” “comprising,” or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. An element preceded by “comprises a . . . ” does not, without more constraints, preclude the existence of additional identical elements in the process, method, article, or apparatus that comprises the element.
It will be appreciated that embodiments of the invention described herein may be comprised of one or more conventional processors and unique stored program instructions that control the one or more processors to implement, in conjunction with certain non-processor circuits, some, most, or all of the functions of routing meshed network traffic from a mesh access point to a non-mesh network as described herein. The non-processor circuits may include, but are not limited to, a radio receiver, a radio transmitter, signal drivers, clock circuits, power source circuits, and user input devices. As such, these functions may be interpreted as steps of a method for routing mesh network traffic from a mesh access point to a non-mesh network. Alternatively, some or all functions could be implemented by a state machine that has no stored program instructions, or in one or more application specific integrated circuits (ASICs), in which each function or some combinations of certain of the functions are implemented as custom logic. Of course, a combination of the two approaches could be used. Thus, methods and means for these functions have been described herein. Further, it is expected that one of ordinary skill, notwithstanding possibly significant effort and many design choices motivated by, for example, available time, current technology, and economic considerations, when guided by the concepts and principles disclosed herein will be readily capable of generating such software instructions and programs and ICs with minimal experimentation.
Any embodiment described herein is not necessarily to be construed as preferred or advantageous over other embodiments. All of the embodiments described in this Detailed Description are illustratively provided to enable persons skilled in the art to make or use the invention and not to limit the scope of the invention which is defined by the claims.
According to one aspect, some embodiments of the present invention define a method for routing mesh network traffic from a mesh access point to a non-mesh network. The method includes identifying a data flow in the meshed network traffic. A priority of the data flow is then determined. Next, a preferred mesh gateway is selected from a plurality of mesh gateways based on the priority of the data flow and preference information of the plurality of mesh gateways, where the plurality of mesh gateways provides routes to the non-mesh network. The data flow is then routed to the preferred mesh gateway, whereby the preferred mesh gateway routes the data flow to the non-mesh network.
Some embodiments of the present invention thus enable multiple mesh gateways to share mesh network traffic communicated between nodes in a mesh network and nodes in a non-mesh network. The sharing of mesh network traffic improves network efficiency by increasing overall data throughput between a node in a mesh network and a non-mesh network, which data throughput could be otherwise limited to a single mesh gateway associated with the node. Furthermore, routing a data flow based on a priority of the data flow and preference information of mesh gateways enables a mesh network to provide improved Quality of Service (QoS).
Referring to
As known by those skilled in the art, each wireless node in a mesh network is normally associated with a single mesh gateway. For example, the wireless nodes 130-1 and 130-2 can be associated with the IAP1 node 105-1; the wireless nodes 130-3 and 130-4 can be associated with the IAP2 node 105-2; and the wireless node 130-5 can be associated with the IAP3 node 105-3. However, for cost and feasibility reasons, some of the backbone links 115 may have a limited bandwidth that may be exceeded under certain network conditions. For example, when all mesh network traffic received from the wireless nodes 130-1 and 130-2 are forwarded to the IAP1 node 105-1, the aggregated mesh network traffic at the IAP1 node 105-1 can exceed a capacity of the backbone link 115 of the IAP1 node 105-1. One method of overcoming this problem is to distribute some of the mesh network traffic to other available IAPs, for example, to the IAP2 node 105-2.
However, routing certain types of data packets received from the wireless nodes 130-1 and 130-2 to the IAP2 node 105-2, rather than to the associated mesh gateway (i.e., the IAP1 node 105-1), can be undesirable. For example, voice data packets are sensitive to latency, and thus routing voice data packets to the IAP2 node 105-2 via a first route 140 can be undesirable. That is because the first route 140 requires more hops to reach the backbone network 110 than an available, and more direct, second route 145. Each additional hop can introduce an additional delay, which means that routing certain types of data packets to an alternate mesh gateway can decrease Quality of Service (QoS) for some data packets. As described in detail below, some embodiments of the present invention enable a mesh access point to group data packets into data flows, and then distribute data flows across a plurality of mesh gateways based on priorities of data flows and preference information of mesh gateways.
According to some embodiments of the present invention, consider that the mesh access point 120-1 receives mesh network traffic in the form of data packets, also referred to as data frames, from the wireless nodes 130-1 and 130-2. The mesh access point 120-1 then groups a certain type of data packets in the mesh network traffic into a data flow. For example, a data flow can be identified by identifying data packets having the following properties: identical source addresses and identical destination addresses; identical source addresses, identical destination addresses, and identical priority values; or identical source addresses, identical destination addresses, and identical flow identities.
To provide priority based routing, the mesh access point 120-1 can then determine a priority of the identified data flow. The priority of the data flow can be determined in various ways, such as by priority values of data packets in the data flow. Alternatively, the priority of the data flow can be determined by types of data packets in the data flow, such as a voice type or a data type. For example, a mesh routing header of a data packet in the data flow can provide a priority value and/or a type of the data packet. As known by those skilled in the art, a Type of Service Differentiated Services Codepoint (ToS-DSCP) value contained in a mesh routing header of a data packet can be used to indicate service parameters, a priority type, and Quality of Service for a data packet. Generally, a first set of data packets in a data flow can be used to determine a priority of the data flow.
The priority of the identified data flow also can be determined by a flow type or a flow identity of the data flow. For example, a flow type of the data flow can be identified from a protocol identity (ID) field or a ToS-DSCP field in a mesh routing header of an initial data packet of the data flow. For instance, a flow type can be defined by a priority type in a ToS field, which can contain a value of “Routine”, “Priority”, or “Immediate”. A ToS-DSCP field of a data packet in a data flow can also provide service parameters, such as a latency factor, a reliability factor, and a bandwidth factor. A flow identity of the data flow can be obtained, for example, from a mesh routing header of a data packet in the data flow.
After a data flow is identified and a priority of the data flow is determined, the mesh access point 120-1 can select a preferred IAP node 105-n for the data flow based on the priority of the data flow and preference information of the IAP nodes 105-n. The mesh access point 120-1 then can route the data flow to the preferred IAP node 105-n, which in turn can route the data flow to the backbone network 110.
According to some embodiments of the present invention, preference information of one or more mesh gateways are determined by one or more of a reliability, bandwidth, latency, or available bandwidth of a backhaul link of each mesh gateway in the plurality of the mesh gateways to a non-mesh network. For example, the mesh access point 120-1 can obtain preference information of the IAP nodes 105-n via HELLO messages received from neighboring nodes, such as the IAP1 node 105-1 and the mesh access point 120-2. The mesh access point 120-1 can then use the preference information to maintain routes to the IAP nodes 105-n.
According to further embodiments, after a priority of a data flow is determined, the mesh access point 120-1 can generate route path metrics of the IAP nodes 105-n based on the priority of the data flow and preference information of the IAP nodes 105-n. The priority of the data flow may specify a flow type and service parameters, such as a latency factor, a reliability factor, and a bandwidth factor. The preference information of the IAP nodes 105-n can, for example, be obtained from HELLO messages received from neighboring nodes. The preference information of the IAP nodes 105-n can comprise metrics of the IAP nodes 105-n and flow weights, where each flow weight can comprise a latency factor weight, a reliability factor weight, and a bandwidth factor weight. The route path metrics then can be used to select one of the IAP nodes 105-n as a preferred mesh gateway. For example, consider that a priority type of a data flow is identified from a ToS-DSCP field of a mesh routing header of a data packet, and the priority type is associated with a flow type identity, ‘id’, that defines a flow type. A route path metric of the IAP node 105-1 then can be obtained for the flow type according to the following equation:
MetricValue1=RouteMetric1×(wid,l×fl+wid,r×fr+wid,b×fb) (Eq. 1)
where MetricValue1 is the route path metric of a route path to the IAP node 105-1 for the flow type of the data flow, RouteMetric1 is a routing metric of the route path, fl is a latency factor of the flow type, fr is a reliability factor of the flow type, fb is a bandwidth factor of the flow type, and wid,l, wid,r, and wid,b are, respectively, a latency factor weight value, a reliability factor weight value, and a bandwidth factor weight value for the flow type.
Referring to
Contents of the mesh routing header 200 can be used for routing and traffic prioritization. For example, a route of a data packet can be defined by a pair (source address, destination address), a first type of a 3-tuple (source address, destination address, priority), or a second type of a 3-tuple (source address, destination address, flow identity). Thus, a data flow can have an associated route, as the data flow can comprise data packets having, for example, identical source addresses, destination addresses, and priority values, which can be used to define the associated route. Mesh access points, such as the mesh access point 120-1, also can use priority fields, such as the ToS-DSCP field 240, to determine a priority of a data flow.
Referring to
The flow weight sections 325, 330 can provide preference information of the associated IAP and/or a route to the associated IAP for various flow types. For example, the flow weight section 325 can comprise a plurality of fields including the following: a flow type ID field 335 that identifies a flow type; a flow ID latency field 340; a flow ID reliability field 345; and a flow ID capacity field 350 that identifies a latency degree, a reliability, and a bandwidth of a backbone link of the associated IAP, or a route to the associated IAP, respectively. Also, a lack of a flow weight section 325, 330 for a flow type can be used to indicate that the associated IAP or a route to the associated IAP does not support the flow type. For example, advertising only voice flows can indicate that an IAP can backhaul only voice traffic.
Referring to
At step 410, a priority of the data flow is determined. For example, the mesh access point 120-1 can use a ToS-DSCP field value of a data packet in a data flow received from the wireless node 130-1 to determine a priority of the data flow, which ToS-DSCP field value can include a flow type and service parameters, such as a latency factor value of the data flow.
At step 415, a preferred mesh gateway is selected from a plurality of mesh gateways based on the priority of the data flow and preference information of the plurality of mesh gateways, where the plurality of mesh gateways provide routes to the non-mesh network. For example, a priority of a data flow and preference information of the IAP nodes 105-n can be used to determine a flow type of the data flow and obtain route path metrics of the IAP nodes 105-n for the data flow. The mesh access point 120-1 then can use the route path metrics of the IAP nodes 105-n to select a preferred IAP for the data flow.
At step 420, the data flow is routed to the preferred mesh gateway, where the preferred mesh gateway routes the data flow to the non-mesh network. For example, the mesh access point 120-1 can select the IAP2 node 105-2 as a preferred IAP and route a data flow to the IAP2 node 105-2 via the first route 140. The IAP2 node 105-2 then can route the data flow to the backbone network 110.
Referring to
The programmable memory 510 can store operating code (OC) for the processor 515 and code for performing functions associated with a mesh access point. For example, the programmable memory 510 can comprise mesh network traffic routing services computer readable program code components 530 configured to cause execution of a method for routing mesh network traffic as described herein.
Advantages of the present invention thus include enabling a node in a mesh network to distribute mesh network traffic across a plurality of mesh gateways based on priorities of data flows and preference information of the mesh gateways, which can improve network efficiency by increasing overall data throughput between a node in a mesh network and a non-mesh network. Data throughput between a node in a mesh network and a non-mesh network is normally limited by a bandwidth of a backbone link of a mesh gateway that is associated with the node. Also, routing data packets to alternate routes without considering conditions of the routes and/or a priority of the data packets can introduce undesirable side effects, such as a failure to provide an adequate Quality of Service (QoS) for certain types of data packets. Thus, some embodiments of the present invention enable a node to identify a data flow in mesh network traffic and to determine a priority of the data flow, where the priority is then used to select a preferred mesh gateway for the data flow from a plurality of available mesh gateways using preference information concerning the mesh gateways. Gateways that are not appropriate for a certain data type then can be avoided. For example, a gateway having a large latency factor on a backhaul link can be avoided when routing voice data packets. Therefore both traffic prioritization and load distribution can be performed efficiently, and a mesh network traffic distribution can be provided across a plurality of mesh gateways without sacrificing a QoS of a data flow.
In the foregoing specification, specific embodiments of the present invention have been described. However, one of ordinary skill in the art appreciates that various modifications and changes can be made without departing from the scope of the present invention as set forth in the claims below. Accordingly, the specification and figures are to be regarded in an illustrative rather than a restrictive sense, and all such modifications are intended to be included within the scope of the present invention. The benefits, advantages, solutions to problems, and any element(s) that may cause any benefit, advantage, or solution to occur or become more pronounced are not to be construed as critical, required, or essential features or elements of any or all the claims. The invention is defined solely by the appended claims including any amendments made during the pendency of this application and all equivalents of those claims as issued.