Patent Publication Number: US-8982798-B2

Title: Dynamic multi-point access network

Description:
CROSS REFERENCE TO REALTED APPLICATION 
     This application is a continuation of U.S. patent application Ser. No. 12/469,183, filed May 20, 2009 by Stelle et al. and entitled, “Dynamic Multi-Point Access Network”, which is hereby incorporated by reference in its entirety. 
    
    
     TECHNICAL FIELD OF THE INVENTION 
     The present invention generally relates to routers. The present invention specifically relates to creating an optimal aggregate bandwidth by a router from multiple broadband sources within a local computer network. 
     BACKGROUND OF THE INVENTION 
     A router is a device that forwards data packets between computer networks, and the amount of information per unit of time that can be exchanged between the router and another device is generally known as bandwidth. For example, in the context of a home or a business, a router may be utilized to forward data packets between a local computer and the Internet at a specified broadband transmission. 
     Multiple bandwidth sources of varying types may exist within a local computer network at any given time. In particular, a mobile phone or mobile data card in a computer may be added ad hoc to the local computer network and the router can aggregate all of its connected devices, wired and wireless, into a single bandwidth route to a remote computer network. The routing industry is striving to provide new and unique techniques for optimizing such aggregate bandwidth. 
     SUMMARY OF THE INVENTION 
     In one disclosed embodiment, a local computer network employing a plurality of local computers, and a router having one or more connections to a remote computer network is disclosed. These connection(s) provide for one or more data routes between the local computers and the remote computer network that are managed by the router. In providing for a dynamic access to the remote computer network by any of the local computers, one or more of the connection(s) of the router to the remote computer network includes one or more wireless connections between the local computers and the remote computer network that is independent of the router. 
     In another disclosed embodiment, a method of operating a router within a local computer network is disclosed. The method involves operatively coupling the router to a plurality of local computers, and connecting the router to a remote computer network for managing one or more data routes between the local computers and the remote computer network. In providing for a dynamic access to the remote computer network by any of the local computers, one of the connections of the router to the remote computer network includes one or more wireless connections between the local computers and the remote computer network that is independent of the router. 
     The foregoing embodiments and other embodiments of the present invention as well as various features and advantages of the present invention will become further apparent from the following detailed description of various embodiments of the present invention read in conjunction with the accompanying drawings. The detailed description and drawings are merely illustrative of the present invention rather than limiting, the scope of the present invention being defined by the appended claims and equivalents thereof. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  illustrates a block diagram of an exemplary embodiment of a network environment in accordance with the present invention; 
         FIG. 2  illustrates a flowchart representative of an aggregate bandwidth method of the present invention; 
         FIG. 3  illustrates a schematic diagram of a first exemplary embodiment of the network environment shown in  FIG. 1  in accordance with the present invention; and 
         FIG. 4  illustrates a schematic diagram of a second exemplary embodiment of the network environment shown in  FIG. 1  in accordance with the present invention. 
     
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     For the purposes of promoting an understanding of the principles of the invention, reference will now be made to the embodiments illustrated in the drawings and specific language will be used to describe the same. It will nevertheless be understood that no limitation of the scope of the invention is thereby intended, and alterations and modifications in the illustrated devices and methods, and further applications of the principles of the invention as illustrated therein are herein contemplated as would normally occur to one skilled in the art to which the invention relates. 
     A router according to the presently disclosed embodiments incorporates common router features (e.g., routing tables, rules, protocols, firewalls, port forwarding, etc.) with a novel routing scheme involving dynamic access by a local computer network (e.g., a local area network or a wide area network) of which the router is a part to a remote computer network (e.g., a local area network or a wide area network) to which the router is remotely connected. In particular, the router combines all the available bandwidth from multiple connections to the remote computer network and allows access by the local computer network to the remote computer network on a selective allocation of the aggregate bandwidth. The dynamic access to the remote computer network is derived from the router using wireless connections of the local computer network independent of the router to the remote computer network. The following description of an exemplary router  10  of the present invention as shown in  FIG. 1  and an exemplary routing method  40  of the present invention as shown in  FIG. 2  will facilitate further understanding of the present invention. 
     Specifically,  FIG. 1  illustrates router  10  having a W number of physical ports  13  for wired connections to a W number of computers  20  (e.g., desktops or servers), where W≧1, and an X number of wireless ports  14  for wireless connections to an X number of computers  21  (e.g., laptops), where X≧1. Alternatively, a portion or all of the wired and wireless connections may be to another computer network (e.g., an Ethernet). Additionally, router  10  has a Y number of physical ports  15  for wired connections to a Y number of computers  22  (e.g., desktops or servers), where Y≧1,and a Z number of wireless ports  16  for wireless connections to a Z number of computers  23  (e.g., laptops), where Z≧1. 
     In operation, router  10  implements a control unit  11  structurally configured to implement common router features (e.g., routing tables, rules, protocols, firewalls, port forwarding, etc.). A bandwidth management module  12  is incorporated in router  10 , either within control unit  11  or working in conjunction with control unit  11 , to execute flowchart  40  ( FIG. 2 ) for the dynamic access between local computers  20 - 23  and remote computer network  30 . Additionally, a bandwidth management module  24  is incorporated in each computer  23  to facilitate bandwidth management module  12  in executing flowchart  40 . 
     Specifically, as shown in  FIG. 2 , module  12  during a stage S 41  of flowchart  40  determines if a new connection between router  10  and remote computer network  30  has been established, if an existing connection between router  10  and remote computer network  30  has been terminated or if a bandwidth availability status of an existing connection between router  10  and remote computer network  30  has changed (collectively a “bandwidth event”). For the dynamic access scheme of the present invention, such connections include independent wireless connections between computers  22 ,  23  and remote computer network  30  as shown in  FIG. 1  via any type of wireless network (e.g., a 3G network, a WiFi network and a WiMax network). In particular, module  12  communicates with a bandwidth module  24  incorporated within computers  22 ,  23  to determine the available bandwidth between the computers  22 ,  23  and the remote computer network  30  as well as the access parameters required for allowing module  12  to exchange data packets with remote computer network  30  via computers  23 . 
     Upon making a determination of a bandwidth event, module  12  proceeds to a stage S 42  of flowchart  40  to determine an aggregate bandwidth of all of the data routes between local computers  20 - 23  and remote computer network  30  (in some embodiments, module  12  aggregates multiple, but not all, available data routes). The aggregate bandwidth increases for a bandwidth event where a new connection between router  10  and remote computer network  30  has been established (e.g., a new wireless connection between a local computer  23  and remote compute network  30 ), and conversely decreases for a bandwidth event where an existing connection between router  10  and remote computer network  30  has been terminated (e.g., a disconnection of a wireless connection between a local computer  23  and remote computer network  30 ). Furthermore, the aggregate bandwidth is adjusted for a bandwidth event where the bandwidth availability of a connection between router  10  and remote computer network  30  has changed. This bandwidth aggregation of stage S 42  enables computers  20 - 23  to operate as if they were all connected to a large bandwidth pipe while being unaware of the multiple data routes with remote computer network  30 . As such, computers  23  may be coupled and decoupled to router  10  without any impact to the local computer network, because module  12  dynamically adjusts the size of the available bandwidth as needed. 
     Upon determining an aggregate bandwidth, module  12  proceeds to a stage S 43  of flowchart  40  to allocate the aggregate bandwidth to local computers  20 - 23  as needed. Generally, module  12  ascertains which connections, particularly wireless connections, should be utilized in an exchange of data packets between local computers  20 - 23  and remote computer network  30 . 
     In one allocation mode, module  12  executes a load balancing over a portion, if not all, of the available data routes. In another allocation mode, module  12  segregates the aggregate bandwidth into two or more independent bandwidth routes for the selective allocation of one of the bandwidth routes to each data exchange between local computers  20 - 23  and remote computer network  30 . The segregation of the aggregate bandwidth by module  12  is based on one or more predetermined routing parameters that provide for an intelligent use of the aggregate bandwidth. Furthermore, a load balancing technique may be implemented for each bandwidth route including multiple connections to remote computer network  30 . A more detailed explanation of stage S 41  will now be provided herein with reference to  FIG. 3  and  FIG. 4 . 
     Specifically,  FIG. 3  illustrates a router  50  (having the same architecture as router  10 ) having wired connections to desktops  60  and  61 , a laptop  65 , and servers  66  and  67 , and wireless connections to laptops  62 - 64 . In an alternative embodiment,  FIG. 4  illustrates servers  66 - 68  having a wired connection to a router  51 , which has a router connection to router  50 . Additionally,  FIGS. 3 and 4  illustrate a wired connection to Internet  80  via an Internet service provider  70  having a bandwidth A, a wireless connection by laptop  62  to Internet  80  via an AirCard of laptop  62  and a wireless network  71  (e.g., a 3G network) having a bandwidth B, a wireless connection by laptop  63  to Internet  80  via an AirCard of laptop  63  and a wireless network  72  (e.g., a WiFi network) having a bandwidth C, and a wireless connection to Internet  80  via an AirCard of laptop  65  and wireless network  73  (e.g., a WiMax network) having a bandwidth D. The connections have an aggregate bandwidth A-D. Computers  60 ,  61 ,  64 ,  66  and  67  have no direct connection to internet  80 . In one example, bandwidth B is 10 Mbps, bandwidth C is 2 Mbps and bandwidth D is 5 Mbps for a total bandwidth of 18 Mbps for the wireless connections that may shared along with wired bandwidth A by all of the local computers coupled to the router. 
     In order to accomplish this sharing of bandwidth by the local computers coupled to router  50 , each of the computers having an external connection to internet  80  are provided with software that enables them to share with router  50  information about the currently-available bandwidth and access parameters that the router  50  will use to aggregate the total available bandwidth and make it available to all of the computers coupled to router  50 . This bandwidth is made available as a single connection, such that the devices in the network only need to be aware of the single connection to internet  80  provided by the router  50 , and would not need to be aware of the total number of actual connections to internet  80 , which number can be dynamically changing while any of the network devices are communicating with internet  80 . 
     Referring to  FIGS. 3 and 4 , for load balancing purposes, module  12  will utilize the aggregate bandwidth A-D as needed to exchange data packets between the local computers and Internet  80 . The dynamic nature of laptops  62 ,  63  and  65  being connected or disconnected from router  50  and Internet  80  at any given moment in time as well as the dynamic nature of additional laptops being connected to or disconnected from router  50  and Internet  80  at any given moment in time is constantly being monitored by router  50  to ensure a complete and accurate data exchange between router  50  and Internet  80 . 
     Still referring to  FIGS. 3 and 4 , for bandwidth segregation purposes, one routing parameter that may be utilized by module  12  in segregating aggregate bandwidth A-D may be the type of connection between router  50  and Internet  80 . For example, module  12  may segregate the aggregate bandwidth A-D into a wired bandwidth route A for the wired connection between router  50  and Internet  80 , and a wireless bandwidth route B-D for the wireless connections between router  50  and Internet  80 . A load balancing technique may be implemented for wireless bandwidth route B-D. 
     Another routing parameter that may be utilized by module  12  in segregating aggregate bandwidth A-D may be the type of connection between router  50  and the local computers. For example, as shown in  FIG. 3 , module  12  may segregate the aggregate bandwidth A-D into a wired bandwidth route A for the wired connections between router  50  and computers  60 ,  61  and  65 - 67 , and a wireless bandwidth route B-D for the wireless connections between router  50  and computers  62 - 64 . Also by example, as shown in  FIG. 4 , module  12  may segregate the aggregate bandwidth A-D into a wired bandwidth route A for the wired connections between router  50  and computers  60 ,  61  and  65  and router  51 , and a wireless bandwidth route B-D for the wireless connections between router  50  and computers  62 - 64 . 
     Another routing parameter that may be utilized by module  12  in segregating aggregate bandwidth A-D may be the mode of connection between router  50  and the computers. For example, as shown in  FIG. 4 , module  12  may segregate the aggregate bandwidth A-D into a direct bandwidth route A for the direct connections between router  50  and computers  60 - 65 , and a switch bandwidth route B-D for the connections between router  50  and router  51 . 
     Another routing parameter that may be utilized by module  12  in segregating aggregate bandwidth A-D may be the latency of the data routes. For example, module  12  may segregate the aggregate bandwidth A-D into a low latency bandwidth route A for each data exchange of video, audio and/or images between router  50  and Internet  80 , and a high latency bandwidth route B-D for each data exchange of text and/or database data between router  50  and Internet  80 . 
     Another routing parameter that may be utilized by module  12  in segregating aggregate bandwidth A-D may be the directional flow of data between router  50  and Internet  80 . For example, module  12  may segregate the aggregate bandwidth A-D into an upstream bandwidth route A for upstream data exchange from router  50  to Internet  80 , and a downstream bandwidth route B-D for each downstream data exchange from Internet  80  to router  50 . 
     Another routing parameter that may be utilized by module  12  in segregating aggregate bandwidth A-D may be the desired security level of the data exchange between router  50  and Internet  80 . For example, module  12  may segregate the aggregate bandwidth A-D into a bandwidth route A-B for secure data exchange between router  50  and Internet  80 , and a bandwidth route C-D for each unsecure data exchange between router  50  and Internet  80 . 
     Another routing parameter that may be utilized by module  12  in segregating aggregate bandwidth A-D may be the security level of each connection between router  50  and Internet  80 . For example, module  12  may segregate the aggregate bandwidth A-D into a bandwidth route A-B for secure connections between router  50  and Internet  80 , and a bandwidth route C-D for unsecure connections between router  50  and Internet  80 . 
     Referring again to  FIG. 2 , module  12  will continually execute stages S 41 - 43  of flowchart  40  until such time router  10 / 50  is powered off. In practice, module  12  may be implemented in hardware, firmware and/or software as would be appreciated by those having ordinary skill in the art. Furthermore, module  12  may provide an administrator control panel to enable a customization of routing and access restrictions. For example, the control panel can enable an administrator to define which local computers may or may not functions as access points to the network or, alternatively, to allow any local computer to function as an access point. In cases where specific access devices are identified, the control panel can connect to the wireless service provider account to track the overall usage (both while connected and unconnected to the router  10 / 50 ) of each local computer and to set rules to control the amount of bandwidth that is consumed by the local computer network based on the wireless rate plan and/or other business rules. The control panel can additionally define routing requirements for specific types of data traffic. For example, the control panel may specify that encrypted data traffic will only be routed over secure connections, etc. The control panel may further enable quality of service control, such as providing the ability to test the latency of each connection, and having programming instructions that route specific types of data traffic over specific connections depending upon the requirements of the data traffic. 
     While the invention has been illustrated and described in detail in the drawings and foregoing description, the same is to be considered as illustrative and not restrictive in character, it being understood that only the preferred embodiment has been shown and described and that all changes and modifications that come within the spirit of the invention are desired to be protected.