Abstract:
The disclosure concerns the expansion of wireless network access beyond networks for which a user is registered. A method of facilitating connection to a wireless network access point includes receiving a request from a user device for access information-required to connect to a network through an access point. The network being a network for which the user is not registered, determining user contribution account acceptability for the access point, and providing the access information to the user if the user contribution account is acceptable for said access point. In this manner, users who are willing to share network access to networks for which they are registered will be able to access networks for which they are not registered.

Description:
CROSS REFERENCE TO OTHER APPLICATIONS 
     This application claims priority to U.S. Provisional Patent Application No. 60/687,463 entitled Collaborative Mobile Broad Band (CMBB) Service filed Jun. 3, 2005 which is incorporated herein by reference for all purposes. 
     This application claims priority to U.S. Provisional Patent Application No. 60/728,918 entitled Wireless Broadband by Centrally Managed Peer to Peer Networking filed Oct. 21, 2005 which is incorporated herein by reference for all purposes. 
     This application claims priority to U.S. Provisional Patent Application No. 60/772,084 entitled Client Based Wireless Network for Collaborative Community filed Feb. 9, 2006 which is incorporated herein by reference for all purposes. 
     This application claims priority to U.S. Provisional Patent Application No. 60/776,444 entitled Enhancing VoIP/WiFi Quality Using “Packet Path Diversity” &amp; MultiNet filed Feb. 23, 2006 which is incorporated herein by reference for all purposes. 
    
    
     BACKGROUND OF THE INVENTION 
     Wireless connectivity can provide the ability to communicate between a user&#39;s device and the Internet enabling access to the information and services that the Internet makes available. Because of the utility of the information and services available on the Internet, it is desirable to be able to wirelessly connect to the Internet from any location. However, to provide wireless coverage for many locations, as, for example, cell phone networks do, requires a large infrastructure that is expensive. And as bandwidth requirements for wireless connectivity increase, the cost for the wireless connectivity rises. It would be beneficial to be able to connect wirelessly to the Internet from any location without the cost of building a large infrastructure. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       Various embodiments of the invention are disclosed in the following detailed description and the accompanying drawings. 
         FIG. 1  is a block diagram illustrating an embodiment of a system for providing network access. 
         FIG. 2  is a flow diagram illustrating an embodiment of a process for providing network access. 
         FIG. 3  is a flow diagram illustrating an embodiment of a process for providing network access. 
         FIG. 4  is a flow diagram illustrating an embodiment of a process for providing network access. 
         FIG. 5  is a flow diagram illustrating an embodiment of a process for determining access information. 
         FIG. 6  is a flow diagram illustrating an embodiment of a process for providing access information. 
     
    
    
     DETAILED DESCRIPTION 
     The invention can be implemented in numerous ways, including as a process, an apparatus, a system, a composition of matter, a computer readable medium such as a computer readable storage medium or a computer network wherein program instructions are sent over optical or electronic communication links. In this specification, these implementations, or any other form that the invention may take, may be referred to as techniques. A component such as a processor or a memory described as being configured to perform a task includes both a general component that is temporarily configured to perform the task at a given time or a specific component that is manufactured to perform the task. In general, the order of the steps of disclosed processes may be altered within the scope of the invention. 
     A detailed description of one or more embodiments of the invention is provided below along with accompanying figures that illustrate the principles of the invention. The invention is described in connection with such embodiments, but the invention is not limited to any embodiment. The scope of the invention is limited only by the claims and the invention encompasses numerous alternatives, modifications and equivalents. Numerous specific details are set forth in the following description in order to provide a thorough understanding of the invention. These details are provided for the purpose of example and the invention may be practiced according to the claims without some or all of these specific details. For the purpose of clarity, technical material that is known in the technical fields related to the invention has not been described in detail so that the invention is not unnecessarily obscured. 
     Providing network access is disclosed. A request is received for access information. User contribution account acceptability is determined. Access information is provided. In some embodiments, a collaborative community of users allows a percentage of bandwidth of the user&#39;s access point to be accessed by one or more other users in order to be able to use other access points when in locations not within range of the user&#39;s own access point. In some embodiments, some access or limited access is provided to use other users&#39; access points without allowing use of an access point to other users. Access information comprises the information that can be used to access one or more of the following: the Internet, the world wide web, network services, wireless network services, broadband wireless network services, broadband wireless network services via Wi-Fi® access points, broadband wireless network services via a social network, and broadband wireless network services via a social network that is enabled by a community of collaborative users. 
     In some embodiments, a user contribution account is established when a user registers. In some embodiments, a temporary user contribution account is established—for example, for a trial period. When a user registers, the user provides registration information. In some cases registration information can be used to enable other users to access to the user&#39;s access point. In some embodiments, registration information is used to request access to the user&#39;s access point. In some embodiments, the user may choose to grant or deny access to his/her access point. In some embodiments, a user is provided with the ability to monitor and control access allowed to the user&#39;s access point—for example, viewing the users connected to the access point, viewing the to and from traffic usage of the access point, controlling or permitting the traffic levels to and from the access point, terminating or denying access through the access point, etc. In various embodiments, user allows access to other users by designated acceptable groups that are allowed access, by indicating that an immediate “friend” on a list is allowed, by indicating that a “friend of a friend” on a list of a friend is allowed, or any other appropriate way of designating one or more users can use the user&#39;s access point. Registration information can include one or more of the following: the user&#39;s access point information to enable a second user to use the user&#39;s access point, the user&#39;s identifier information (e.g., media access control (MAC) address), the user&#39;s access point service set identifier (SSID), the user&#39;s access point wired equivalent privacy (WEP) key or password, and the user&#39;s access point Wi-Fi protected access (WPA) key or password. 
     In some embodiments, user contribution accounting tracks the balance of bandwidth provided by a user via the user&#39;s access point to other users and the bandwidth used by the user via other&#39;s access points. In some embodiments, user contribution account balance is added to when bandwidth is used by a second user when accessing the user&#39;s access point and/or user contribution account balance is subtracted from when bandwidth is used by the user when accessing a third user&#39;s access point. In various embodiments, additions to a user&#39;s user contribution account balance are weighted proportional to a user&#39;s access point bandwidth allocation to other users or additions to a user&#39;s user contribution account balance are weighted proportional to a user&#39;s access point bandwidth used by a second, or other, users. 
     In various embodiments, user contribution account acceptability comprises having agreed to a trial period and being associated with a temporary user contribution account, having registered and being associated with a temporary user contribution account, having a temporary user contribution account, having a user contribution account, having a user contribution account balance, having a user contribution account balance above a threshold value, having a user contribution account balance below a threshold value, having a user contribution account balance in a range a values, or any other appropriate criteria for acceptability. 
     In some embodiments, connection status information is provided and/or received. Connection status information can be used to select appropriate access point. Status information can include one or more of the following: visible network access points at a given location, number of users using each of the visible access points, signal strength for the visible network access points, average transfer rates to or from the visible network access points, bandwidth allocation for the visible network access points, retry statistics for visible network access points, the user&#39;s access point bandwidth allocation for other users, and mean and/or variance of the return ping delays (e.g., the time it takes for a return message from the provider&#39;s server or any other computer dedicated to this function, to arrive after a message was sent to it from the user device or from an access point) for visible network access points. In some embodiments, the appropriate access point comprises an access point that has better performance (e.g., higher bandwidth from the network, shorter response delays, lower variance of signal strength/bandwidth, etc.). In various embodiments, user determines one or more types of connection status information, user transmits one or more types of connection status information to a provider server or other users, and/or user receives one or more types of connection stats information from a provider server or other users. 
       FIG. 1  is a block diagram illustrating an embodiment of a system for providing network access. In the example shown, wireless access points, represented in  FIG. 1  by  100  and  102 , enable access to Internet  114 . In various embodiments, access to Internet  114  is via an internet service provider (e.g., a local phone carrier using a dial-up modem or digital subscriber line (DSL), a cable provider using a cable modem, a satellite company using a modem that can communicate via a satellite, etc.), via a local area network, a wide area network, a wired network, a wireless network, an optical network, or any other appropriate network enabling communication with Internet  114 . A user, represented in  FIG. 1  as laptop device  104 ,  106 , and  108 , or personal digital assistant (PDA)  110  and  112 , allows access to the user&#39;s access point in exchange for being allowed to access other user&#39;s access points. In some embodiments, a user is allowed minimal or limited access without allowing other user&#39;s to access the user&#39;s access point. This can enable a user to be able to access the Internet, its services and information, from a large number of locations. A user registers with the provider of network access by communicating with provider application server  116 . Application server  116  receives and stores registration information. Registration information enables another user to request access to or access the user&#39;s access point. Application server  116  provides the user with a software client. In some embodiments, the user is provided a software client without being connected directly or indirectly to application server  116  (e.g., the software is sent via the mail on a piece of storage media or the software is downloaded from a third party web site). The software client enables the user to access another user&#39;s access point either directly or by relaying information through another registered user&#39;s device. Access point information (e.g., SSID&#39;s, WEP/WPA keys or passwords, etc.) can be provided to a user via a wired network by preloading the user&#39;s device, a cell phone network, a Wi-Fi network, or any other appropriate network. In some embodiments, access information is provided to a user not in real time—for example, the user down loads access information form server while connected to his own access point before going to a new location where user desires to user other user&#39;s access points. 
       FIG. 2  is a flow diagram illustrating an embodiment of a process for providing network access. In some embodiments, the process of  FIG. 2  is caused to be executed by user on a user&#39;s device—for example, users represented in  FIG. 1  by  104 ,  106 ,  108 ,  110 , or  112 . In the example shown, in  200  registration information is transmitted. Registration information can include one or more of the following: the user&#39;s access point information to enable a second user to use the user&#39;s access point, the user&#39;s identifier information (e.g., media access control (MAC) address), the user&#39;s access point service set identifier (SSID), the user&#39;s access point wired equivalent privacy (WEP) key or password, the user&#39;s access point Wi-Fi protected access (WPA) key or password, and the user&#39;s access point bandwidth allocation for a second user. The registration information is used by the provider of the network to set up a user contribution account and to enable other registered users of the network to access the user&#39;s access point. In  202 , client software is received. The client software is provided by the provider to enable the user&#39;s device to be able to contact the provider application server and to acquire access information for network access points that are made available by a given user to other network users. In  204 , client software is installed. In various embodiments, client software is installed before registration or client software is installed after registration. In some embodiments, the client software enables the user to contact the provider&#39;s application server in order to obtain access information for a location where the user is not able to use the user&#39;s own access point. Access information enables the user to use another user&#39;s access point in order to gain access to the Internet. 
       FIG. 3  is a flow diagram illustrating an embodiment of a process for providing network access. In some embodiments, the process of  FIG. 3  is caused to be executed by provider application server  116  of  FIG. 1 . In the example shown, in  300  registration information is received. In some embodiments, registration information is received via a web application—for example, a user&#39;s browser communicating with the provider&#39;s web site or a web applet communicating via the Internet. Registration information can include one or more of the following: the user&#39;s access point information to enable a second user to use the user&#39;s access point, the user&#39;s identifier information (e.g., media access control (MAC) address), the user&#39;s access point service set identifier (SSID), the user&#39;s access point wired equivalent privacy (WEP) key or password, the user&#39;s access point Wi-Fi protected access (WPA) key or password, and the user&#39;s access point bandwidth allocation for other users. The registration information is used by the provider of the network to set up a user contribution account and, if appropriate, to enable other registered users of the network to access the user&#39;s access point. In  302 , user contribution account is established. The user contribution account comprises a way to track the amount of access that is given by a user to other users of the network. Similarly, the user contribution account comprises a way to track the amount of access that is used by a user of other users&#39; access points. In some embodiments, user contribution accounting tracks the balance of bandwidth provided by a user via the user&#39;s access point to other users and the bandwidth used by the user via other&#39;s access points. In some embodiments, user contribution account balance is added to when bandwidth is used by a other users when accessing the user&#39;s access point and/or user contribution account balance is subtracted from when bandwidth is used by the user when accessing another user&#39;s access point. In some embodiments, the user accesses a plurality of access points because an access point becomes unavailable—for example, the user has changed locations (e.g., roaming) or the access point that the user was connected to is no longer available or is no longer desirable (e.g., over loaded). In various embodiments, user contirbution account acceptability comprises having a user contribution account, having a user contribution account balance, having a user contribution account balance above a threshold value, having a user contribution account balance below a threshold value, having a user contribution account balance in a range a values. In various embodiments, additions to a user contribution account balance are weighted in proportion to a user&#39;s access point bandwidth allocation to other users or a user&#39;s access bandwidth used by another user. In some embodiments, the registration information is accepted after being received. In some embodiments, determining user contribution account acceptability includes checking user contribution account registration information for a user. In  304 , client software is transmitted. The client software, once installed in the client device, enables the user to contact the provider&#39;s application server in order to obtain access information for a location where the user is not able to use the user&#39;s own access point. Access information enables the user to use another user&#39;s access point in order to gain access to the Internet. 
       FIG. 4  is a flow diagram illustrating an embodiment of a process for providing network access. In some embodiments, the process of  FIG. 4  is caused to be executed by user on a user&#39;s device—for example, users represented in  FIG. 1  by  104 ,  106 ,  108 ,  110 , or  112 . In some embodiments, the process of  FIG. 4  is executed as a part of client software that is provided by the network provider. In the example shown, in  400  visible access points are determined. The user&#39;s device identifies the visible wireless access points. In  402 , access information with respect to the visible access points is determined. Access information can be determined by looking access information up in a preloaded table or file located on the user&#39;s device, or downloaded or accessed via a cellular connection, a text messaging system, a Wi-Fi network, an open wireless access system, a wired or phone system, or any other appropriate manner of obtaining access information. In  404 , an access point is selected with which to attempt a connection. Access point selection is based on the most appropriate access point for a user&#39;s device, where most appropriate comprises appropriate performance (e.g., most reliable, highest average bandwidth, lowest variance in signal strength, highest average signal strength, shortest response delays, best average transfer rates, most bandwidth allocated for outside users, fewest retries, and lowest return ping delays, etc.). In  406 , a connection is attempted to the selected access point. In some embodiments, the connection is attempted to more than one access point simultaneously, where the multiple connections are used concurrently to increase performance—for example, reliability and/or throughput. Access information is used to attempt a connection to the access point and communication via the access point is attempted to the Internet. In  408 , it is determined if the connection attempt was successful. In the event that the attempt was not successful, control is passed to  404 . In the event that the attempt was successful, the process ends. 
       FIG. 5  is a flow diagram illustrating an embodiment of a process for determining access information. In some embodiments, the process of  FIG. 5  implements  402  in  FIG. 4 . In some embodiments, the process of  FIG. 4  is executed as a part of client software that is provided by the network provider (e.g., downloaded directly from the provider, from a third party, or as received on a removable piece of storage media such as a CD or DVD). In the example shown, in  500  a request is transmitted for access information. Access information is requested regarding one or more access points. In some embodiments, access information is requested before arriving at a given location—preloading access information for a given location. In  502 , user contribution account acceptability is requested. In some embodiments, user contribution account acceptability request comprises a request for access information. In  504 , access information is received, if necessary. Access information can include SSID&#39;s, WEP or WPA passwords or keys or any other appropriate information for accessing access points. In some embodiments, access information is received before arriving at a given location (e.g., preloading access information for a given location). In some embodiments, a default set of network access information is preloaded. In some embodiments, one or more elements of the access information are calculated from other access information—for example, a password or key is calculated from an SSID, MAC address, user name, etc. In  506 , connection status information is received. Connection status information can include access point type, backhaul band width (e.g., actual bandwidth available to the local access point from the Internet), number of users using visible access points, traffic each user consumes and/or generates, network congestion, usage priority, average signal strength and variance of signal strengths to and from the access point, average and variance statistics for ping delays, response times, retry statistics, etc. Connection status information can be used to determine the most appropriate access point to choose when attempting to communicate with the network. In some embodiments, each user may report his/her connection experience with a specific access point (e.g., connection status information such as average and/or variance of data rate, retry statistics, connection failures, etc.) and the connection status information becomes a part of the connection status information available to all users connecting the access point. In some embodiments, access is caused to be granted to the user. In some embodiments, access is caused to be granted by providing access information to a user. 
       FIG. 6  is a flow diagram illustrating an embodiment of a process for providing access information. In some embodiments, the process of  FIG. 6  is executed on application server  116  of  FIG. 1 . In the example shown, in  600  a request is received for access information. Access information is requested regarding one or more access points. In some embodiments, access information is requested before arriving at a given location—preloading access information for a given location. In  602 , user contribution account acceptability is determined. In various embodiments, user contribution account acceptability comprises having a user contribution account (temporary account or permanate account), having a user contribution account balance, having a user contribution account balance above a threshold value, having a user contribution account balance below a threshold value, having a user contribution account balance in a range a values, and/or any other appropriate acceptability criteria. In various embodiments, additions to a user contribution account balance are weighted proportion to a user&#39;s access point bandwidth allocation to other users or a user&#39;s access bandwidth used by another user. In some embodiments, the registration information is accepted after being received. In some embodiments, determining user contribution account acceptability includes checking user contribution account registration information for a user. In  604 , access information is provided, if necessary. Access information can include SSID&#39;s, WEP or WPA passwords or keys or any other appropriate information for accessing access points. In some embodiments, access information is received before arriving at a given location (e.g., preloading access information for a given location). In some embodiments, a default set of network access information is preloaded. In  606 , connection status information is provided. Connection status information can include access point type, backhaul band width (e.g., actual bandwidth available to the local access point from the Internet), number of users using visible access points, average signal strength and variance of signal strengths to and from the access point, ping delay statistics, response times, retry statistics, the user&#39;s access point bandwidth allocation for other users, etc. Connection status information can be used to determine the most appropriate access point to choose when attempting to communicate with the network. In some embodiments, connection status information is received from a plurality of users or clients, aggregated for a given access point, and provided to a user so that the user can best determine which access point to connect to. 
     Although the foregoing embodiments have been described in some detail for purposes of clarity of understanding, the invention is not limited to the details provided. There are many alternative ways of implementing the invention. The disclosed embodiments are illustrative and not restrictive.