High performance wireless network
11368537 · 2022-06-21
Assignee
Inventors
Cpc classification
H04L12/4625
ELECTRICITY
H04L12/4641
ELECTRICITY
H04W84/18
ELECTRICITY
H04L67/145
ELECTRICITY
H04W4/14
ELECTRICITY
H04W80/12
ELECTRICITY
H04W4/70
ELECTRICITY
International classification
H04L67/145
ELECTRICITY
H04W40/24
ELECTRICITY
H04W28/06
ELECTRICITY
H04W4/14
ELECTRICITY
Abstract
A wireless mesh network is described. The mesh network uses a plurality of data communications nodes that are organized in a tree-like structure. The network also includes an access server which communicates with the nodes. The mesh network nodes are one or more root access point nodes having a wired connection to an external network; and one or more mesh access point nodes. Both types of nodes communicate with an external network. Each non-root node automatically connects to an associated parent node selected from one or more nodes within a direct wireless communication range of the node. The node selects a parent node based on one or more parent selection criteria from the access server and establishes a connection to the selected parent node. The node then calculates its routing path to the external network. The nodes include unique identifiers and two or more radios.
Claims
1. A wireless mesh network comprising: a plurality of Wi-Fi nodes in the wireless mesh network organized in a tree shape; an access server in data communication with the nodes, wherein the nodes are comprised of: one or more root access point (RAP) nodes having a wired connection to an external network; one or more mesh access point (MAP) nodes; wherein a MAP node is in a data communication with the external network through an associated RAP node; wherein the MAP node is in a direct wireless data communication with a single associated parent node, wherein the associated parent node is either the associated RAP node, or another MAP node in a data communication with the external network through its associated RAP node; wherein the MAP node automatically connects to the associated parent node by selecting the single associated parent node from one or more potential parent nodes that are within a direct wireless communication range of the MAP node and establishing a parent-child relationship with the associated parent node, process for the automatic connection comprising: selecting a parent node from the one or more potential parent nodes based at least in part on one or more parent selection criteria defined by the access server, wherein the parent node so selected is the associated parent node; and establishing a direct wireless data connection between the MAP node and the associated parent node; wherein the automatic connection process establishes the MAP node's routing path to the external network; the one or more parent selection criteria comprising: a throughput value representing signal strength between two nodes; and a latency value representing number of hops in a routing path; the MAP node comprising: one or more identifier values representing a unique identity of the MAP node in the wireless mesh network; two or more radios for wirelessly communicating with another node or a client device in the wireless mesh network.
2. The wireless mesh network of claim 1 further comprising: one or more network health monitoring criteria defined by the access server, wherein the one or more network health monitoring criteria comprises one or more of: whether or not the associated parent node is offline or can be found in the wireless mesh network; whether or not data can be routed to the external network through the MAP node's routing path; whether or not the one or more parent selection criteria is satisfied; and testing whether the MAP node's routing path fails to satisfy the one or more network health monitoring criteria; when it is determined that the MAP node's routing path does not meet one or more of the one or more network health monitoring criteria, establishing a new routing path from the MAP node to the external network by connecting the MAP node to a new associated parent node through the automatic connection process.
3. The wireless mesh network of claim 2 wherein the access server further comprises causing an update to the wireless mesh network, the update comprising one or more of: a change to the one or more parent selection criteria, a change to the one or more network health monitoring criteria, and an upgrade of software or firmware residing on at least some of the nodes.
4. The wireless mesh network of claim 2 wherein the at least one of the one or more network health monitoring criteria overlap with at least one of the one or more parent selection criteria.
5. The wireless mesh network of claim 1 wherein the selection of the parent node further comprises selecting a potential parent node over another potential parent node based at least in part on a comparison of their latency values.
6. The wireless mesh network of claim 5 wherein the selection of the parent node further comprises selecting the potential parent node over the another potential parent node if the potential parent node has a lower latency value than the another potential parent node.
7. The wireless mesh network of claim 1 wherein the selection of the parent node further comprises selecting a potential parent node over another potential parent node based at least in part on a comparison of their throughput values.
8. The wireless mesh network of claim 7 wherein the selection of the parent node further comprises selecting the potential parent node over the another potential parent node if the potential parent node has a higher throughput value than the another potential parent node.
9. The wireless mesh network of claim 1 wherein the selection of the parent node further comprises not selecting a potential parent node if the potential parent node's wireless signal strength with the MAP node does not meet a threshold throughput value defined by the access server.
10. The wireless mesh network of claim 1 wherein the MAP node further comprises a data store having data representing the MAP node's routing path to the external network.
11. The wireless mesh network of claim 1 wherein the MAP node further comprises: an ethernet port through which a direct wired connection can be established with another device.
12. The wireless mesh network of claim 1 wherein the one or more identifier values of the MAP comprises a MAC address or an IP address.
13. The wireless mesh network of claim 1 wherein a first radio of the MAP is adapted for communicating with the client device and wherein a second radio is adapted for communicating with another node.
14. The wireless mesh network of claim 13, wherein the second radio is configurable to be used as a dual-purpose radio for communicating with both the client and another node.
15. The wireless mesh network of claim 1 further comprising a client device wirelessly connected to the MAP node, wherein the client device exchanges data with the external network through the MAP's routing path to the external network.
16. The wireless mesh network of claim 1 further comprising one or more data types being routed through the routing path, wherein the one or more data types include at least two of: voice data, video data, and other data type that is not the voice or video data; wherein routing a priority data type with a higher priority than another type of data, wherein the priority data type may be one or both of: the voice data or the video data.
17. A wireless mesh network comprising: a plurality of Wi-Fi nodes in the wireless mesh network organized in a tree shape; an access server in data communication with the nodes, wherein the nodes are comprised of: one or more root access point (RAP) nodes having a wired connection to an external network; one or more mesh access point (MAP) nodes; wherein a MAP node is in a data communication with the external network through an associated RAP node; wherein the MAP node is in a direct wireless data communication with a single associated parent node, wherein the associated parent node is either the associated RAP node, or another MAP node in a data communication with the external network through its associated RAP node; wherein the MAP node automatically connects to the associated parent node by selecting the single associated parent node from one or more potential parent nodes that are within a direct wireless communication range of the MAP node and establishing a parent-child relationship with the associated parent node, process for the automatic connection comprising: selecting a parent node from the one or more potential parent nodes based at least in part on one or more parent selection criteria defined by the access server, wherein the parent node so selected is the associated parent node; and establishing a direct wireless data connection between the MAP node and the associated parent node; wherein the automatic connection process establishes the MAP node's routing path to the external network; the one or more parent selection criteria comprising: a throughput value representing signal strength between two nodes; and a latency value representing number of hops in a routing path; the MAP node comprising: one or more identifier values representing a unique identity of the MAP node in the wireless mesh network; two or more radios for wirelessly communicating with another node or a client device in the wireless mesh network; one or more network health monitoring criteria defined by the access server, wherein the one or more network health monitoring criteria comprises one or more of: whether or not the associated parent node is offline or can be found in the wireless mesh network; whether or not data can be routed to the external network through the MAP node's routing path; whether or not the one or more parent selection criteria is satisfied; and whether or not the MAP node's routing path is more congested than a threshold load value representing data congestion level of a routing path; testing whether the MAP node's routing path fails to satisfy the one or more network health monitoring criteria; when it is determined that the MAP node's routing path does not meet one or more of the one or more network health monitoring criteria, establishing a new routing path from the MAP node to the external network by connecting the MAP node to a new associated parent node through the automatic connection process.
18. A wireless mesh network comprising: a plurality of Wi-Fi nodes in the wireless mesh network organized in a tree shape; an access server in data communication with the nodes, wherein the nodes are comprised of: one or more root access point (RAP) nodes having a wired connection to an external network; one or more mesh access point (MAP) nodes; wherein a MAP node is in a data communication with the external network through an associated RAP node; wherein the MAP node is in a direct wireless data communication with an a single associated parent node, wherein the associated parent node is either the associated RAP node, or another MAP node in a data communication with the external network through its associated RAP node; wherein the MAP node automatically connects to the associated parent node by selecting the single associated parent node from one or more potential parent nodes that are within a direct wireless communication range of the MAP node and establishing a parent-child relationship with the associated parent node, process for the automatic connection comprising: selecting a parent node from the one or more potential parent nodes based at least in part on one or more parent selection criteria defined by the access server, wherein the parent node so selected is the associated parent node; and establishing a direct wireless data connection between the MAP node and the associated parent node; wherein the automatic connection process establishes the MAP node's routing path to the external network; the one or more parent selection criteria comprising: a loop prevention criterion which verifies that a potential parent node's routing path to the external network does not contain the MAP node; a throughput value representing signal strength between two nodes; and a latency value representing number of hops in a routing path; the MAP node comprising: one or more identifier values representing a unique identity of the MAP node in the wireless mesh network; two or more radios for wirelessly communicating with another node or a client device in the wireless mesh network.
19. The wireless mesh network of claim 18 wherein the selection of the parent node further comprises not selecting a potential parent node if the MAP node's potential routing path to the external network through the potential parent node exceeds a threshold latency value.
Description
BRIEF DESCRIPTION OF DRAWINGS
(1) In order to more fully describe embodiments of the present invention, reference is made to the accompanying drawings. These drawings are not to be considered limitations in the scope of the invention, but are merely illustrative.
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
(16)
(17)
(18)
(19)
(20)
DETAILED DESCRIPTION OF SPECIFIC EMBODIMENTS
(21) The description above and below and the drawings of the present document focus on one or more currently preferred embodiments of the present invention and also describe some exemplary optional features and/or alternative embodiments. The description and drawings are for the purpose of illustration and not limitation. Those of ordinary skill in the art would recognize variations, modifications, and alternatives. Such variations, modifications, and alternatives are also within the scope of the present invention. Section titles are terse and are for convenience only.
(22) The object of this invention is a new type of wireless AP nodes that: Configure them selves based on considerations, set by the access server for the network. Support automatic load balancing: AP nodes avoid data congestion hot spots. Support fail over: if one node dies, nodes connected to it automatically switch to another. Is fully functional when powered up: no installation procedure or site survey required. Support software upgrades to them selves through a communications interface Support both isochronous and asynchronous application requirements in the same network Support the wireless equivalent of switches Supports centralized control and is application aware based on settings provided by the access server.
(23) Each AP Node is implemented as a self-contained embedded system, with all algorithms resident in its operating system. The normal day-to-day functioning of the AP node is based entirely on resident control algorithms. Upgrades are possible through a communications interface described later.
Description of System Components
(24) There are three typical components of the system proposed. In
To enable voice and data types of requirements to be serviced satisfactorily within the same network configuration, the access server (10) maintains a list of applications and their latency and throughput requirements. Based on those application “profiles”, the access server (10) sets the Network “profile” that each wireless communication device (30) in the network strives towards.
(25) In one implementation of the invention, the root node (20) acts as the interface between the wireless communication devices (30) and the Ethernet. All Wireless devices (30) communicate to the Ethernet-through a root node (20), which is has a radio interface and an Ethernet link.
(26) In that implementation of the invention, other wireless communications devices or AP nodes (30) have two radios: one to communicate with its clients which includes wireless devices such as laptops, VOIP wireless phones etc. Clients to one AP node (30) also include other AP nodes (30) connecting to it. In
(27) In an alternate implementation of the invention, all Wireless AP Nodes are roots—they are all wired, in this case the network is not a mesh network and redundancy is dependant on having a large number of nearby AP nodes. However there is still communication between the nodes so load balancing and wireless switching, as described later, is supported.
Description of Variables Used by Algorithm
(28)
The Global Throughput of Node 005 is (LS to Node 002)*(GT of Node 002)=0.79*70=0.55
Description of Parent Selection Algorithm
(29) Since there is no central point of control in a distributed system, the same algorithms, running in every node, must determine what is best, based on the information it received from the Access Server and other nearby nodes. Much of this relates to selecting correct “route” or path to the root node. As an illustration, in
(30) Assuming for the present, that the Access Server wishes the network to have the maximum throughput. Then, if each node independently makes the best selection of its parent—to maximize throughput—then a question arises of whether one can be assured that the network as a whole is running as “best” as possible,
(31) To answer this, consider the network in
(32) Since GT is product function of the LS times the GT of the potential node. Node 005 would have examined all potential parent nodes before selecting node 002. Similarly Node 002 has chosen Node 000. Other nodes would yield a lower GT. Thus, since each node is making a parent selection based on the “best” throughput, the throughput of the network as a whole is also maximized.
(33) Thus, each node, starting from those closest to the root and spreading outwards maximizes its GT based on products related to the GT at each previous node, the overall throughput of the system is the sum of all individual throughputs, which have been maximized by the selection algorithm.
(34) The implementation steps taken by the selection algorithm are:
(35) 1. Seek out and list all active nearby nodes.
(36) 2. Remove descendants: nodes that are connected to it, or children of nodes connected to it.
(37) 3. Order the list: push nodes closer to the route (shorter routing paths) up in the list.
(38) 4. Compute total throughput for each routing in the list of connection nodes
(39) 5. Select the node that provides the best latency or max throughput or combination of both.
(40) 6. Repeat steps 1,5 on a periodic basis.
(41) To compute throughput, Nodes receive the following pieces of information from all nearby nodes:
(42) 1) The current routing path of the node. This is a list of nodes that the AP node has to connect to, in order to reach a root node. In
(43) 2) The current throughput of that node. The signal strength of that node's parent as seen by the node, is correlated to a look up table that maps the signal strength to throughput. For Node 002 (
(44) Based on these two pieces of information, collected for all nearby AP nodes, the node selects one parent node that satisfies the requirements of low latency or high throughput. If low latency is the issue then a short routing path is desirable: In
Throughput (Node 002−Node 000)*Throughput (Node 005−Node 002): 0.79*0.70=0.55.
(45) At the end of step 4, the global throughput—computed as a product of the local signal strength to that potential parent node and the GT of the potential parent node—is computed and compared for each potential parent in the list of nearby nodes. The one with the highest throughput wins.
Controlling Network Latency/Throughput
(46) The section on the selection of the parent assumed that only maximizing throughput was the sole objective. Often there is a tradeoff between low latency and high throughput as evidenced in
(47) The aforementioned describes the algorithm for maximized throughput. For lowest latency, the choice of parent is restricted to the parent with the highest throughput with an upper bound on the number of hops the parent is away from the root. There are two ways in which the Access Server can control the latency of the network:
(48) 1. Place an upper hound on the number of hops admissible for any node—this forces nodes on the fringe of the network to choose shorter path routes. This approach acts a cut of it forces nodes at the fringe of the network towards selecting low latency routes, regardless of the loss in throughput. In terms of the routing algorithm, this translates to computing the throughput for selecting a parent with the highest throughput that fall in a group with latency better or equal to the upper bound.
2. Define a latency loss threshold whereby selecting a longer route path requires throughput gain to more than offset the loss of latency:
Throughput (Longer Route)+Latency_loss_threshold>Throughput (Shorter route)
(49) If the latency loss threshold is set high, the choices a node in selecting its parent is restricted, to nodes closer to the root, with shorter route paths. In contrast to the cutoff approach this approach is more forgiving: Selecting a longer path is allowed if throughput gains in choosing a longer routing path offset increased latency. In terms of the routing algorithm, this translates to computing the throughput for all nearby nodes.
(50) Reference is now made to re-examining the parent selection process with latency restrictions in place. With reference to
(51) Combinations of both restrictions, based on the parameters set, result in networks that, address both latency and throughput requirements. This was shown in
Automatic Load Balancing
(52) Described thus far is how the parent selection process takes into account latency/throughput criteria set by the access server. However, one must also take into account how the system behaves under load, when the load increases at one node, causing congestion.
(53) Since this is a distributed system, each node is responsible for selecting a parent that can service it satisfactorily—it is not part of a congested route. During the selection process, the connect cost associated with selecting a new parent is supplied by the parent. Thus a congested route will have a higher connect cost than a less congested route—and a lower throughput. The routing algorithm selects the parent with the highest throughput. As its connect cost increases a congested parent is increasing less attractive.
(54) In
(55) Increasing the cost of connectivity acts as an incentive for nodes to find other routes, but does not prevent a child node from continuing its association. This ensures that all child nodes are serviced always. Additionally, the cost of connectivity is increased only until all child nodes that have the option to leave have left—for example, in
(56) As the load is balanced, the congestion is reduced and the cost of connectivity is gradually reduced, enabling the child nodes that left to return. If this is not done, then nodes leaving one parent would contribute to congestion elsewhere, resulting in increased cost of connectivity elsewhere and system instability.
(57) One characteristic of a mesh network is the ability for nodes to select alternate routes, in case one node fails or becomes congested. As shown in
(58) In
(59) It is desirable to configure the network to ensure all nodes have alternate paths. This is achieved by increasing the number of nodes connecting to the root. The access server can force this by increasing the latency cost factor, resulting in nodes that can connect to the root directly to do so rather than through another node closer to them to the root. This was described earlier as depicted in
(60) By controlling the latency cost factor, or the upper bound of the max hops, the access server can change the configuration of the network resulting in a higher redundancy of the system and less likelihood of load congestion hot spots.
Real World Constraints to Load Balancing Algorithm
(61) Implementation of the load balancing algorithm on the wireless devices, required modifications to the connect cost algorithms based on real world constraints. Wireless devices communicating with devices running the load balancing software may not all be running the same software. As an example, consider the case where the load balancing software is loaded on wireless Access Points but not on laptops communicating with the access points. Clearly, the laptop has no way of knowing that the connect cost has increased and therefore will continue to “stick” to the access point
(62) The load balancing algorithm has therefore been modified to work where there is no communication regarding connect cost by the following approach: When the load exceeds a out off threshold, the Access Point (or other wireless device performing load balancing) will drop its signal strength to the lowest possible—thereby dissuading clients such as laptops from associating with it and encouraging them to seek another association with a higher signal strength access point.
(63) Since the laptops seek the access point with the highest signal strength, this is a necessary hut not sufficient cause for a re-association: some laptops may continue to “stick” to the access point, due to proximity or a sticky algorithm. The Access Point must therefore forcibly disassociate the laptop.
(64) After disassociating all the stations that it needed to, in order to shed load, the access point can gradually increase its signal strength to attract back some the stations that it disassociated. Those that did not find other associations, will return, almost immediately after association, and the access point takes them back because despite the lowered signal strength, these devices have no place to go.
(65) This load balancing algorithm has been implemented and demonstrated to shed load by moving one laptop from one root node to another when overloaded by two laptops on the same root node.
Monitoring the Health of the Network
(66) By controlling the latency cost factor, or the upper bound of the max hops, the access server can change the configuration of the network resulting in a higher redundancy of the system and less likelihood of load congestion hot spots. In
(67) Congestion in
(68) Algorithms have been implemented that reside in the device and periodically check to see what potential associations are possible. If the number is reduced to one then a warning (shown in red) is forwarded to the Network Management System. The system administrator is then advised to add another root node to preserve the fail safe nature of the network. Note that this type of warning is coming from the edge device to the management system and without the algorithm in place, the management system would not know that a problem existed
Dynamic Channel Allocation and RF Interference Control
(69) Managing the throughput of voice, video and data traffic in a wireless network is complicated by the nature of the wireless medium. Since wireless is a shared medium, all traffic can potentially interfere with other traffic on the same radio channel—at any point in time only one device can be active on any one given channel. This limits the bandwidth in cases where high bandwidth traffic (e.g. video) needs to be transported or when there are many devices on the network.
(70) One solution is to allocate different channels to devices communicating on different portions of the network. For example, in
(71) An algorithm to define what the best channel allocations should be between devices and their parents has been devised and shown in
Dynamic Channel Allocation and Seamless Roaming Requirements
(72) A situation can occur when, as shown in
(73) The algorithm implemented addresses the case where siblings of a multi layered wireless network are to be assigned the same channels. In
(74) Protocols for sharing this information have been implemented and tested. Appendix A hereto describes the 802.11 Infrastructure Control Layer Protocol version 2.0. In addition, Appendix B hereto describes in another embodiment of the present invention, a distributed adaptive control algorithm for ad-hoc wireless personal area networks.
(75) Note that seamless roaming requires that the Wireless AP shown in
Asynchronous Application Data Flow
(76) Algorithms that show how data from nodes will flow to the root node have been modeled for both high throughput and for low latency requirements. High throughput data flow requirements are discussed first.
(77) To service asynchronous applications each node services its children in a round robin manner, ensuring that all children are serviced in sequence. But to ensure that all children receive at least one service request, each recently serviced child must wait for at least another child to be serviced before it can be serviced again. Additionally, some child nodes servicing applications with higher priority will be serviced before others.
(78) In one implementation of this algorithm, related to this invention, the priorities may be stored in the Access server and different applications fall into different priority buckets. By changing the priorities in the Access Server, applications with higher priority are serviced before other competing applications with a lower priority. Also with a priority bucket, applications with more data to transfer are serviced first.
(79) In another implementation, the determination regarding which child to service next is based on which child needs servicing the most. This is determined by examining the load of each child, each time; the node services its children. It is done each time because: Child nodes may have made other connections, if load balancing is also active Child nodes data may have changed—data with short time to live, will have been removed
(80) The node then makes the decision to service the child with the highest need, in a priority bucket, provided it has not serviced that same child most recently. This is simply to avoid any one child from “hogging” all the attention.
(81) This proprietary PCF (Point Control Function) implementation worked well for asynchronous applications, when compared to 802.11a standard DCF (Distributed Control Function) approach that was also implemented for benchmarking reasons as shown in
Isochronous Application Data Flow
(82) Isochronous applications require more deterministic service intervals that are less sensitive to variations of load. The algorithm described above is not suitable when: Each child must be serviced by the parent in a regular and predictable time interval The amount of data transferred is relatively fixed—else it will affect the time interval.
(83) The algorithm to service Isochronous Application has also been implemented. In
(84) Thus if the parent of the red service cycle (70) spends 10 ms with each child, it will revisit each child every 3*10=30 ms. Data from each child cannot then be retrieved at a rate faster than once every 30 ms.
(85) Having retrieved the data, it will sit at the buffer of the parent, until the parent is serviced (the black (80) circle). Since there are 5 children in that service cycle, the service period is 5*10=50 ms.
(86) Since both service cycles are running independently of each other with no synchronization, it is impossible to predict when the parent in either service cycle will service its children. It can be stated, however that each child in service cycle marked red (70) (005, 001, 008) will have data transferred to the root at best every 30 ms and at worst every 50 ms. In other words, in the isochronous network, the worst time interval is the maximum time period of all service cycles.
(87) If it is assumed that, to ensure multiple routing paths, there are more nodes connected to the root, then the service cycle will be driven by the number of 1 hop nodes, in this case 5. Note that the network configuration is set for high throughput. In this configuration the worst service cycle is 5 T. Ironically, the network configuration for a “low latency”. Isochronous network would have been 9 T, will all nodes connected to the root. In other words, in the case of isochronous networks, the algorithm proposed provides a better service cycle and a better throughput. In general, splitting the number of nodes into two or more service cycles will improve the service cycle. The high throughput mode setting for the routing algorithm makes that happen naturally.
Internal Traffic Flow/Wireless Equivalent of Switching
(88) Referring again to
(89) Traffic from Node 005 to Node 001 would logically travel to Parent 002 and then from 002 to 001. This affects the throughput of the entire system because the traffic is buffered in 002 and then retransmitted. If node 005 was aware of its siblings, within its wireless range, then Node 005 and Node 001 could communicate directly over wireless. In effect this would be a wireless equivalent of Ethernet switches.
(90) This direct communication link between siblings (within range) increases throughput 100%. This is so because 2 transfers of data (Source node to parent and then Parent to destination node) are now reduced to 1 transfer (Source node to destination node).
(91) In this embodiment, the algorithm has been implemented whereby traffic intended for a destination node is automatically sent to the destination node if it is within the family/BSS and within range. When the routing algorithm runs, the routing paths of each nearby node is recorded to determine the number of hops it is away from the root. From the routing paths, the list of siblings within range can be inferred—they all share the same parent in their routing paths. If data intended for these siblings is received, it will automatically be sent to the sibling, without involving the parent.
(92) If the destination node is not in the list of nearby siblings, then the data has to be sent onwards to the parent node. At that point the parent node, which “knows” its siblings, can route traffic to one if its siblings. Thus the switching algorithm ensures that traffic is routed only as far as a parent whose child is a destination node.
Extensions with Multiple Radios
(93) As shown in
(94) Adding more radios to the outward interface increases throughput but also enables more freedom in making choices related to latency/throughput tradeoffs. For example, suppose that some traffic requires high throughput and other traffic low latency. If the compromise approach described in this invention is unacceptable because the range of requirements are too high, then two radios for the outward interface can reduce the range of requirements: One radio will address more of the low latency traffic with a low latency traffic route while the other will address the high throughput needs with a different high throughput traffic route. The wireless node now begins to resemble a wireless equivalent of network routers.
(95) The algorithms described in this invention are still applicable: only the range of applicability has changed. The embodiment of the present invention is also relevant for wireless routers.
Security of the Network
(96) Wireless transmissions are inherently insecure. While the technology to encrypt/decrypt secure data exists, the problem is communication of the keys over wireless to the nodes, from the access server. This common key distribution problem is addressed by the following embodiment of the system.
(97) The wireless communication devices will have, as part of the algorithms resident in their operating system, the ability to generate a public and private key based on the RSA algorithm. These keys will be based on some unique identifier in the AP node—the processor Chip Serial Number as an example.
(98) When the Wireless device is first deployed, it will be connected via Ethernet cable to the access server and the node's public key will be transmitted to the Access Server. This public key will be used by the Access Server to transmit a common private key (using the symmetric AES encryption algorithm) to all nodes. Since only the Access Server knows the public key for each node, only the access server will be able to transmit this private key. Further, since the common private key for all nodes was transmitted in encrypted form to all nodes, it is impossible to decipher the common private key without knowing the public key for the node it was intended for. In addition, even if that public key for that node is known, it is useless since the private key for that node was never exchanged. The transmission of the common Private Key is thus secure.
(99) Secure data transmitted by one AP node will then be encrypted with the common private key and be decrypted only at a destination AP node. By the same token, all data from the Ethernet to an AP node will be encrypted with the same private key for onward transmission.
(100) The enterprise Access Server can be used to generate a new private key at regular intervals and transmit it to all Wireless AP Nodes in the system. The system is thus doubly secure.
Implementation of Algorithm in Firmware
(101) The control algorithms described above require significant resources—CPU Memory—resulting in large footprint applications. Wireless devices and other network aware communication devices are typically embedded systems with low foot print requirements. A challenge that must be addressed—if this technology is to have practical applications is how to reduce the footprint of the software control layer to fit into embedded devices with 64 KB or 128 KB RAM.
(102) A self-standing executable containing some of the algorithms and support functions has been produced within a footprint of less than 100 KB running on an Intel PXA250 Processor. Additionally in an embodiment of the present invention, the mesh and load balancing algorithms have been successfully ported to run on the hardware depicted in
(103) The reason for the small footprint is that the approach of the embodiment of the present invention to building software is to include only the portions of an operating system needed by the programs. Thus, only functional blocks needed by the algorithms are added to the make file needed by the compiler to create the executable. If string functions are not required by any procedures in the program, then the string function library is not included when the executable is made. In contrast, a typical embedded operating system is more general purpose, requiring a larger footprint and possibly more CPU resources.
(104) The language in which the algorithms are written is currently Java, and will may also include Microsoft™.NET languages. In the embodiment of the present invention, a Java Class file converter has been built that takes Java Byte Code and disassembles it to produce what is referred to internally as R (for Real) classes. R classes are the C code equivalent of the Java Op codes, used by a Java Virtual Machine (JVM) to run the Java program. The R classes map to C code which is produced after examining the functional libraries needed and adding them to the list of support libraries needed to make an executable self standing. Once that is completed a self-standing executable is made for the processor.
(105) An extensible service library of software components needed to build complete Operating system (OS) is implemented through the embodiment of the present invention. This component based approach to building an Operating system from scratch enables one to select only the essential services needed by an application when it is ported from high level languages to small footprint embedded devices. Since only the essential services and not an entire general purpose OS is included, the footprint is compact. Additionally, there is a significant (3×-6×) performance improvement because layers of software needed to run code written in high level languages like Java or .NET languages are no longer needed.
(106)
(107) Thus there is a clear migration strategy in place from high level code generation to low level object code that includes all the functionality provided by an operating system to ensure that the object code is self contained.
(108) There is implemented one version of this migration strategy where one begins with high level code written and tested in a development environment and can swiftly ingrate it to a low footprint executable.
(109) Since there is no OS, there is no easy way to tamper with the system. This approach—internally referred to as Application Specific Embedded OS software—thereby protects the security of the algorithms and enables the algorithms to run on low power (and less expensive) processors and with lower (and less expensive) memory requirements.
(110) The simulations depicted are running the same code in each node shown in the figures. The code running in each node has been compiled to object code for the Intel™PX250 processor as a proof of concept (
Upgrade Path for New Algorithms
(111) A distributed network poses problems related to upgrading the software at each node. If the software is cast in concrete—as in an ASIC implementation—then there is no upgrade path available. Since the wireless standards are evolving, this is not a practical approach.
(112) In the description of the embodiment of the modular approach to generating a self standing executable, it becomes apparent that there is no migration path available to the system to upgrade the executable easy.
(113) This is resolved by providing a simple communication protocol for uploading new object code into the system. This has also been implemented as is internally called Simple Upgrade Protocol (SUP).
(114) When the executable is made, a simple communication protocol is added, which, with proper authentication, using the public key of the node, can be used upload object code into the Hash memory of the device. A very thin boot kernel with the AP Node and the rest of the code is remotely installed. The boot kernel contains the simple communications protocol to upload object code and the security to ensure that only the Access Server can access the device. By building security at the hoot level, one ensures that all code, loaded into the system has to be authorized—since the security code cannot be overwritten.
(115) Throughout the description and drawings, example embodiments are given with reference to specific configurations. It will be appreciated by those of ordinary skill in the art that the present invention can be embodied in other specific forms. Those of ordinary skill in the art would be able to practice such other embodiments without undue experimentation. The scope of the present invention, for the purpose of the present patent document, is not limited merely to the specific example embodiments of the foregoing description, but rather is indicated by the appended claims. All changes that come within the meaning and range of equivalents within the claims are intended to be considered as being embraced within the spirit and scope of the claims.