Method and system for access point roaming

Efficient access point roaming techniques involve a terminal device handing over a wireless communications session from a first access point to a second access point. The terminal device establishes a link with the second access point; authenticates the link with the second access point using an alternative access point address and a group key associated with the terminal device; and continues the communications session with the second access point using an address of the second access point. Various alternative access point addresses may be used, such as the address of the first access point, or a random address created by the terminal device during initiation of a prior access point connection. The terminal device may transmit a directive to the second access point to employ the alternative access point address.

FIELD OF THE INVENTION

The present invention relates to wireless communications. More particularly, the present invention relates to roaming techniques in a wireless communications network.

BACKGROUND OF THE INVENTION

Short range wireless systems typically involve devices that have a communications range of one hundred meters or less. To provide communications over long distances, these short range systems often interface with other networks. For example, short range networks may interface with cellular networks, wireline telecommunications networks, and the Internet.

Wireless personal area networks (PANs) and wireless local area networks (LANs) are each types of short range wireless systems. PANs and WLANs typically have the common feature of operating in unlicensed portions of the radio spectrum, usually either in the 2.4 GHz Industrial, Scientific, and Medical (ISM) band or the 5 GHz Unlicensed-National Information Infrastructure (U-NII) band. Examples of wireless local area network technology include the IEEE 802.11 WLAN Standard and the HiperLAN Standard. A well known example of wireless personal area network technology is the Bluetooth Standard.

Bluetooth defines a short-range radio network, originally intended as a cable replacement. It can be used to create ad hoc networks of up to eight devices, where one device is referred to as a master device. The other devices are referred to as slave devices. The slave devices can communicate with the master device and with each other via the master device. The Bluetooth Special Interest Group,Specification Of The Bluetooth System, Volumes 1 and 2, Core and Profiles: Version 1.1, Feb. 22, 2001, describes the principles of Bluetooth device operation and communication protocols. This document is incorporated herein by reference in its entirety. The devices operate in the 2.4 GHz radio band reserved for general use by Industrial, Scientific, and Medical (ISM) applications. Bluetooth devices are designed to find other Bluetooth devices within their communications range and to discover what services they offer.

In many communications applications, portable terminal devices communicate with one or more fixed access points. Often, such portable terminal devices can pass in and out of the communications ranges of several access points during a single communications session. The maintenance of such a single communications session requires the terminal devices and access points to support what is known as access point roaming.

Access point roaming occurs when a terminal device performs one or more “handovers.” During a handover, an existing communications link with a first access point is terminated, while a new communications link with a second access point is established.

Establishing a new link requires various processes to be performed. For example, in Bluetooth networks, devices perform a process known as paging. Paging establishes an unsecured connection between two devices (e.g., a terminal device and an access point). In addition, when certain security features are desired, terminal devices and access points perform a process known as authentication. Authentication is a process where two devices verify that they both have the same secret key. This secret key can then be used to effect security features, such as link encryption.

A successful authentication process requires that both devices know each other's address. For instance in the case of access point roaming a terminal device must know the new access point's address and the new access point must know the terminal device's address. If this condition is not met, then a process known as pairing must also be performed. Pairing is a procedure where two devices exchange information, such as personal identification numbers (PINs) to establish a common secret key.

Fast access point roaming is desirable. Therefore, it is advantageous to minimize the latencies involved with each handover. Unfortunately, performance of both pairing and authentication is time consuming. In addition, the combination of these processes places large demands on network bandwidth as well as on terminal device and access point processing capacity.

In order to solve some problems associated with access point roaming, the Bluetooth Special Interest Group (“the Bluetooth SIG”) has defined a concept known as group keys (also called service access keys). According to this concept, a network of access points maintains a database that can store a terminal's common link key (i.e., its Group Key). These group keys are indexed by the unique address associated with each terminal device.

Each access point in the network can query a group key for a terminal from this database. Alternatively, access points in close proximity can exchange group keys during events such as handovers. The group key concept is attractive because it reduces the complexity involved in maintaining a key database because each terminal has only one link key.

Nevertheless, group keys do not alleviate problems associated with access point roaming. For instance, despite the existence of group keys, a terminal device cannot engage in authentication with a new access point, because the terminal device does not know the new access point's address. Therefore, both pairing and authentication must be performed.

Maintaining a database of access point addresses in each terminal device is one approach to solve this problem. Since typical access point roaming network environments involve an extremely large number of access points, this approach would require each terminal device to have excessively large memory capabilities to store an address for each access point. Accordingly, maintaining such a database is impractical. Therefore, despite the existences of group keys, both pairing and authentication processes need to be performed for each handover.

The Bluetooth SIG has also proposed a concept known as anonymity mode. Anonymity mode is geared to preventing location tracking of terminal devices. In particular, anonymity mode enables a terminal device to initiate another device to change its address. However, anonymity mode has not been proposed for use with access point roaming.

Accordingly, what is needed are techniques for making access point roaming more efficient.

SUMMARY OF THE INVENTION

The present invention is directed to techniques for making access point roaming more efficient. Accordingly, a method of the present invention involves a terminal device handing over a wireless communications session from a first access point to a second access point. The terminal device establishes a link with the second access point; authenticates the link with the second access point using an alternative access point address and a group key associated with the terminal device; and continues the communications session with the second access point using an address of the second access point. Various alternative access point addresses may be used, such as the address of the first access point, or a random address created by the terminal device during initiation of a prior access point connection. The terminal device may transmit a directive to the second access point to employ the alternative access point address.

A further method of the present invention involves a current access point handing over a wireless communications session with a terminal device from a previous access point. The current access point establishes a link with the terminal device; authenticates the link with the terminal device using an alternative access point address and a group key based on a terminal device address; and continues the communications session with the terminal device using an address of the second access point. Various alternative access point addresses may be used, such as the address of the first access point, or a random address created by the terminal device during initiation of a prior access point connection.

The access point may retrieve the group key from a remote database. Also, the access point may receive a handover notification from the first access point. This handover notification may contain various types of information, such as the terminal device address, and the alternative access point address. The access point may interrupt links with one or more other terminal devices for authentication.

In yet a further method of the present invention, a terminal device hands over a wireless communications session from a first access point to a second access point. In particular, the terminal device enters a first coverage area associated with the first access point; establishes a first link with the first access point; authenticates the first link with the first access point using an alternative access point address and a group key associated with the terminal device; and establishes a communications session with the first access point using an address of the first access point. When entering a second coverage area associated with the second access point, the terminal device establishes a second link with the second access point; authenticates the second link with the second access point using the alternative access point address and the group key associated with the terminal device; and continues the communications session with the second access point using an address of the second access point.

In a Bluetooth environment, the present invention may advantageously utilize group keys and anonymity mode to perform these methods.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

I. Exemplary Operational Environment

Before describing the invention in detail, it is helpful to describe an environment in which the invention may be used. Accordingly,FIG. 1is a block diagram of an operational environment where multiple terminal devices102communicate with access points104across various ad hoc networks. Communications between these terminals may be performed according to various personal area network (PAN) standards, such as the Bluetooth communications standard.

FIG. 1shows that each access point104has a corresponding coverage area108. Each of these coverage areas108identifies the locations where the corresponding access point104may engage in communications with terminals102. As shown inFIG. 1, coverage area108acorresponds to access point104a, coverage area108bcorresponds to access point104b, and coverage area108ccorresponds to access point104c. These coverage areas may overlap. For example, coverage area108aoverlaps with coverage area108band coverage area108boverlaps with coverage area108c.

In many communications applications, terminal devices may be portable. Therefore, they may move through more than one coverage area108during the course of a communications session. Such terminal activity is referred to herein as access point roaming (APR). More particularly, the process of a communications session being transferred from a first access point to a second access point is referred to herein as a handover. The present invention provides mechanisms that allow handovers to occur without excessively interrupting ongoing communications sessions.

Each access point104is connected to a backbone network110(also referred to herein as access point network110). Backbone network110may be implemented with various technologies. For instance, backbone network110may include an IP network, such as the Internet. Backbone network110may also include telephony networks.

Backbone network110allows access points104to communicate with each other. Such communications may allow portable terminal devices in different coverage areas to communicate with each other. In addition, backbone network110further provides each access point104with the ability to retrieve information from common resources, such as a link management database112. In addition to employing backbone network110, access points104may communicate with each other using Bluetooth links.

Link management database112stores group keys for each terminal device102. These group keys are indexed according to terminal device address. For example, in a Bluetooth environment, the group keys are indexed according to BD_ADDR. Link management database112may implemented as a server according to a variety of techniques, as would be apparent to persons skilled in the relevant arts.

Backbone network110also enables terminal devices to engage in communications sessions with remote devices. For example, terminal devices may receive information, such as Internet content, from remote server114. In addition, communications sessions may include other communications services, such as telephony. Such telephony may include connections between terminal devices104, as well as connections with other devices (not shown). Backbone network110facilitates such connections.

II. Exemplary Terminal Device

Since the present invention may be employed in environments involving wireless communications, a device capable of engaging in such communications is described.FIG. 2is a block diagram of an implementation of an exemplary terminal device102. Terminal device102may be a wireless mobile phone, a wireless PDA, a pager, a two-way radio, a smartphone, a personal communicator, a laptop computer equipped with a Bluetooth (BT) module, or other wireless devices apparent to persons skilled in the relevant arts.

FIG. 2shows that terminal device102includes several components. For instance, terminal device102includes a communications hardware portion204that is coupled to an antenna202. Communications hardware portion204includes electronics, such as a transceiver and a diplexer. These electronics allow terminal device102to engage in bi-directional RF communications with network entities, such as base stations and Bluetooth access points.

A processor206is coupled to communications hardware portion204. Processor206controls all of the functions of terminal device106. Processor206may be implemented with one or more microprocessors that are each capable of executing software instructions stored in a memory208.

A user interface210is coupled to processor206. User interface210facilitates the exchange of information with a user.FIG. 2shows that user interface210includes a user input portion212and a user output portion214. User input portion212may include one or more devices that allow a user to input information. Examples of such devices include keypads, touch screens, and microphones. User output portion214allows a user to receive information from terminal device102. Thus, user output portion214may include various devices, such as a display, and one or more audio speakers. Exemplary displays include liquid crystal displays (LCDs), and video displays.

Memory208stores information in the form of data and software components. These software components include instructions that can be executed by processor206. Various types of software components may be stored in memory208. For instance, memory208may store software components that control the operations of communications hardware portion204, and software components that control the exchange of information through user interface210. In addition, memory208stores software components that are associated with user applications that allow terminal device102to engage in communications sessions involving services, such as telephony and remote server access.

The above components may be coupled according to various techniques. One such technique involves coupling communications hardware204, processor206, memory208, and user interface210through one or more bus interfaces. In addition, each of these components is coupled to a power source, such as a removable and rechargeable battery pack (not shown).

As described above, memory208stores software components that are associated with user applications that allow terminal device102to select and receive content items from remote server104. Since such user applications may involve the exchange of information with remote server104, memory208stores software components that enable communications with remote server104according to protocols, such as the Wireless Application Protocol (WAP).

When engaging in WAP communications with remote server114, terminal device102functions as a WAP client. To provide this functionality, terminal device102includes WAP client software, such as WAP Client Version 2.0. WAP Client Version 2.0 is a commercially available software product provided by Nokia Corporation of Finland. WAP Client Version 2.0 contains components, such as a Wireless Markup Language (WML) Browser, a WMLScript engine, a Push Subsystem, and a Wireless Protocol Stack.

Application software components stored in memory208of terminal device102interact with the WAP client software to implement a variety of communications applications. Examples of such communications applications include the reception of Internet-based content, such as headline news, exchange rates, sports results, stock quotes, weather forecasts, multilingual phrase dictionaries, personal online calendars, and online travel and banking services.

WAP-enabled terminal device102may access small files called decks which are each composed of smaller pages called cards. Cards are small enough to fit into a small display area that is referred to herein as a microbrowser. The small size of the microbrowser and the small file sizes are suitable for accommodating low memory devices and low-bandwidth communications constraints imposed by the wireless portions of communications networks, such as network106.

Cards are written in the Wireless Markup Language (WML), which is specifically devised for small screens and one-hand navigation without a keyboard. WML is scaleable so that it is compatible with a wide range of displays that covers two-line text displays, as well as large LCD screens found on devices, such as smart phones, PDAs, and personal communicators.

WML cards may include programs written in WMLScript, which is similar to JavaScript. However, through the elimination of several unnecessary functions found in these other scripting languages, WMLScript makes minimal demands on memory208and processor206.

III. Exemplary Access Point

FIG. 3is a block diagram of an implementation of an exemplary access point device104.FIG. 3shows that this implementation includes several components. For instance, access point-device104includes a radio frequency (RF) communications portion304that is coupled to an antenna302. RF communications portion304includes electronics, such as a transceiver and a diplexer. These electronics allow access point104to engage in bi-directional RF communications with terminal devices104.

A baseband segment310is coupled to RF communications portion304. Baseband segment310performs connection processing functions, such as link establishment and termination, as well as security functions, such as authentication, pairing, and encryption. A backbone network interface312is coupled to baseband segment310. Backbone network interface312handles communications with other devices across backbone network110.

A processor306is coupled to RF communications portion304, baseband segment310, and backbone network interface312. Processor306controls all of the functions of the access point device. Processor306may be implemented with one or more microprocessors that are each capable of executing software instructions stored in a memory308.

Memory308stores information in the form of data and software components. These software components include instructions that can be executed by processor306to control the operation of the access point device components shown inFIG. 3.

The components shown inFIG. 3may be coupled according to various techniques. One such technique involves coupling RF communications segment304, processor306, and memory308through one or more bus interfaces.

IV. Access Point Roaming

FIG. 4is a diagram of an exemplary handover scenario. This scenario involves a first access point404and a second access point406. Each of these access points has a limited coverage area. For instance, access point404has a coverage area408, while access point406has a coverage area410. These coverage areas overlap at a handover region412.

In this scenario, a terminal device402moves from a position P1to a position P2. As shown inFIG. 4, position P1is within coverage area408, while position P2is within handover region412(i.e., P2is within both coverage areas408and410).

While at position P1, terminal device402has a short range wireless communications connection or link420with access point404. During this connection, terminal device402is involved in a communications session with one or more other devices. Link420continues until terminal device402reaches position P2. At this point, connection420is terminated, and a new short range wireless connection or link422is established and authenticated between terminal device402and access point406. Through link422, terminal device402maintains the communications session previously carried over link420.

The scenario ofFIG. 4illustrates a second connection being established in a handover region that includes two overlapping coverage areas. However, in other scenarios, second connection422may be established after terminal402has completely left a first coverage area, and entered a second coverage area.

During access point roaming, handover may be either access point initiated or terminal initiated.FIG. 5is a diagram of a signaling sequence in an access point initiated handover process according to an embodiment of the present invention. More particularly,FIG. 5illustrates a series of steps that shows how terminal device402interacts with access points404and406during an access point initiated handover. Although this signaling sequence is described with reference to the elements ofFIG. 4, this illustrated process may be applied to other scenarios and topologies.

First, in a step502, access point404“forces” an APR handover when terminal device402is at point P2. This step comprises access point404transmitting a message to terminal device402that its link will be terminated. AlthoughFIG. 5shows access point404forcing an APR handover, terminal402may initiate the handover. In this case, step502comprises terminal402sending a message or query to access point404for access point roaming.

Next, in a step504, the link between terminal device402and first access point404is terminated. Following this termination, terminal device402enters a page scan state520. While in this state, terminal device402waits to receive a message containing information based on its address.

In a step506, access point404notifies access point406of the pending handover. This step includes providing access point406with the address of terminal device402. Next, in a step508, access point406pages terminal device402. In the context of Bluetooth, paging is a process that establishes a connection between two devices. With reference toFIG. 4, this process involves the exchange of information between access point406and terminal device402.

More particularly, during this paging process, access point406enters a paging mode and transmits one or more paging packets. These paging packets each include an identification number based on the address of terminal device402. Meanwhile, terminal device402(which is in page scan mode) responds to the paging packets by transmitting a packet that includes its address.

Access point406receives this packet from terminal device402. In response, access point406transmits a frequency hop synchronization (FHS) packet. The FHS packet is used to pass information that allows terminal device402to synchronize with the frequency hopping sequence of access point406. Upon receipt of this FHS packet, terminal device402transmits a further packet to confirm receipt of the FHS packet. Both terminal device402and access point406enter into the connection state at this point. When in this state, access point406operates as a master device and terminal device402operates as a slave device.

Upon completion of this paging process, a step510is performed. In step510, a link is formed between terminal device402and second access point406. In particular, terminal device402synchronizes its clock to the clock of access point406. Thus, terminal device402employs the timing and frequency hopping sequence of access point406. Additionally, access point406transmits a packet to verify that a link has been set up. Terminal device402confirms this link by sending a packet to access point406.

In a step512, terminal device402and the access point406conduct authentication and pairing processes. Next, in a step514, terminal device402continues its communications session.

As set forth above, security features are desired for various types of communications services. Features, such as encryption, require both devices to share an encryption key. Authentication is a security procedure where two devices exchange information to verify that they both have the same encryption key.

If this authentication reveals that the two devices do not share an encryption key, then a process, referred to as pairing is performed. Pairing is a procedure that establishes a link key for use between two devices. As stated above, valuable processing capacity and network bandwidth are consumed when both authentication and pairing processes need to be performed. Valuable time will also be lost when both authentication and pairing processes need to be performed. Adverse consequences may result from this loss of time. For instance, terminal402may move out the coverage area of access point406.

Details of Bluetooth authentication and pairing processes are now described with reference to the flowchart ofFIG. 6. This flowchart illustrates that these processes are based on a challenge-response protocol that occurs between a verifier device (such as access point406) and a claimant device (such as terminal device402).

The process illustrated inFIG. 6begins with a step602, where a verifier challenges a claimant by sending the claimant a challenge message. This challenge message includes a random number. In the context of Bluetooth, this challenge message is in the format of an LMP_au_rand packet and contains a 16-byte random number.

In a step604, the claimant receives the challenge message and determines whether it has a key that corresponds to the verifier. If so, the authentication process continues and a step606is performed. Otherwise, operation proceeds to a step620, where the pairing process commences.

In step606, the claimant operates on the random number in the challenge message. Next, in a step608, the claimant transmits the result of this operation to the verifier. In the context of Bluetooth, this transmission is in the format of an LMP_sres packet.

In a step610, the verifier receives the result from the claimant and compares it to an expected result. As shown by step612, if the result is the same as the expected result, operation proceeds to a step614where the verifier considers the claimant an authenticated device. Otherwise, operation proceeds to a step616, where the verifier does not consider the claimant an authenticated device.

As described above, the pairing process commences when the verifier and claimant devices do not have a common link key. Accordingly, if a link key does not exist for a device when a challenge message is received, a pairing process is performed so that a link key may be established between the two devices. Accordingly, step620follows step604when the claimant determines that it does not have a key that corresponds to the verifier. In step620, the claimant will respond with a message indicating that it does not have a key for the verifier device. In the context of Bluetooth, this message is an LMP_not_accepted packet.

In a step622, a temporary initialization key is generated. The initialization key may be generated according to various techniques. For example, this key may be based on a personal identification number (PIN) that is common to both of the pairing devices (i.e., both the verifier and the claimant). Performance of step622may be performed without transmitting the PIN and the temporary key between the verifier and the claimant.

Since the verifier and the claimant have established a common key between them, the authentication process may continue. Accordingly, operation returns from step622to step602. However, in the context of Bluetooth, when step602is performed after step622, the verifier transmits the LMP_in_rand packet instead of the LMP_au_rand packet.

Upon completion of the authentication process described with reference toFIG. 6, the two devices may optionally exchange their roles as verifier and claimant and perform authentication in the opposite direction.

As illustrated inFIG. 6, performance of both authentication and pairing is an involved process. The present invention streamlines access point roaming by eliminating the need to perform both authentication and pairing at each handover.

Accordingly,FIGS. 7 and 8are flowcharts that illustrate streamlined access point roaming from different perspectives. In particular,FIG. 7illustrates the perspective of a current access point acquiring a terminal device connection from a previous access point.FIG. 8illustrates the perspective of a terminal device that is engaged in a handover from a first access point to a second access point. It is important to note that the steps ofFIGS. 7 and 8may be performed in sequences other than the ones shown.

FIG. 7is a flowchart of a handover operation performed by an access point according to an embodiment of the present invention, such as access point406, into which a terminal device, such as terminal device402, is roaming. This operation is described with reference to the operational scenario ofFIG. 4. The process shown inFIG. 7begins with a step702. In this step, access point406receives a handover notification from access point404.

This handover notification may include various types of information. For example, it may include the address of terminal device402. The handover notification may also include an access point address, such as the address of access point404. Alternatively, this notification may include a random access point address created by the terminal device402during a connection with a prior access point. The transmission of such access point addresses enables access point406to page terminal402with an address for which terminal device402has the corresponding link key.

Access point404may transmit this handover notification to access points in addition to access point406. For example, access point404may transmit this handover notification to all access points (including access point406) within a predetermined range.

A step703follows step702. In this step, access point406obtains a group key for terminal device402. With reference to the environment ofFIG. 1, this step may comprise transmitting a query to link management database112and receiving a response from link management database112that contains this group key. Alternatively, this step may comprise obtaining the group key from a local database within access point406. In a further alternative, step703comprises obtaining the group key from access point404, either through a request from access point406or as part of the handover notification received in step402.

Next, in a step704, access point406establishes a link with terminal device402. This step may comprise performing a paging process, such as the Bluetooth paging process described above with reference toFIG. 5.

A step706follows step704. In this step, access point404authenticates the link that was established with terminal device402in step704.FIG. 7shows that step706includes steps708through712. In step708, access point406interrupts links with one or more terminal devices other than terminal device402. This step may comprise access point406placing these other terminal devices in an operational mode, such as the Bluetooth connection hold mode.

Next, in step710, access point406receives a directive from terminal device402to apply an alternative address for link authentication purposes. This alternative address is an address that is different from the address of access point406. For example, this alternative address may be the address of the previous access point (i.e., the address of access point404). Alternatively, this alternative address may be a random address created by terminal device402during initiation of a prior access point connection, such as the first access point connection of the pending communications session.

The scenario where terminal device402initially applies this random address for the access point may occur in the following manner. First, terminal device402creates link level connection to an access point. Next, terminal device402generates a random address (e.g., a BD_ADDR) and requests the first access point to apply it. Authentication is then performed using this random address. After authentication, the access point that its address is changed back to its original address. From this on, the random access point address may be applied in handovers.

Using a group key that is associated with a random access point address, eliminates the situation where two access points simultaneously employ the same address. This advantageously reduces the possibility of neighboring access points interfering with each other when using the same address.

In step712, access point406performs an authentication process with terminal device402using a key that corresponds to the alternative access point address and the group key obtained in step703. Since terminal device402knows the key that corresponds to the alternative address, terminal device402and access point406do not have to perform a pairing process.

After authentication, access point406can change its address back to its original address. Accordingly, a step713follows step706. In this step, access point406receives a directive from terminal device402to apply its standard address. In the context of Bluetooth, this standard address is the BD_ADDR address assigned to access point406. Alternatively, step713may comprise access point406transmitting a message to terminal device402that requests approval to apply its standard address. In this case, step713also comprises receiving an approval message from terminal device402. This approval message authorizes access point406to apply its standard address.

A step714follows step713. In step714, access point406applies its standard address and resumes the links that it interrupted with any other terminal devices in step708. Accordingly, step714may comprise access point406placing these other terminal devices in an operational mode, such as a Bluetooth active connection mode. Next, in a step716, the communication session of terminal device402is continued.

FIG. 8is a flowchart of a handover operation performed by a roaming terminal device, such as terminal device402, according to an embodiment of the present invention. LikeFIG. 7, this operation is described with reference to the operational scenario ofFIG. 4. The process shown inFIG. 8begins with a step802. In this step, terminal device402establishes a link with access point406. This step may comprise engaging in a paging process, such as the Bluetooth paging process described above with reference toFIG. 5.

Next, in a step804, terminal device402engages in an authentication process with access point406. This process authenticates the link that was established with access point404in step802.FIG. 8shows that step804includes steps806and808. In step806, terminal device402transmits a directive to access point406. This directive instructs access point406to apply an alternative address for link authentication purposes.

This alternative address is an address that is different from the address of access point406. For example, this alternative address may be the address of the previous access point (i.e., the address of access point404). Alternatively, this alternative address may be a random address created by terminal device402during initiation of a connection with a prior access point, such as the first access point connection of the pending communications session.

In step808, access point406authenticates the link established with terminal device402using a key that corresponds to the alternative access point address and a group key associated with terminal device402. Since terminal device402knows the key that corresponds to the alternative address, terminal device402and access point406do not have to perform a pairing process.

In a step810, terminal device402, transmits a directive that instructs access point406to apply its standard address. In the context of Bluetooth, this standard address is the BD_ADDR address assigned to access point406. In addition, step810may include receiving a message from access point406that indicates it approved this directive. Alternatively, step810may comprise access point406transmitting a message that requests such an address change, and terminal device402responding with approval of this requested change.

A step812follows step810. In step812, the communication session of terminal device402is continued.

FIG. 9is a diagram of a signaling sequence in accordance with the operations described above with reference toFIGS. 7 and 8. This signaling sequence eliminates the need for full authentication and pairing. In particular,FIG. 9illustrates a series of steps that shows how terminal device402interacts with access points404and406during an access point initiated handover according to an embodiment of the present invention.FIG. 9is similar toFIG. 5. However,FIG. 9shows additional steps that are not includes inFIG. 5.

In addition, step506may further comprise access point404notifying access point406(as well as possibly other access points within a predetermined range) of either the random address (established by terminal device402during a prior connection setup) or the standard address of access point404. This enables access points to page terminal device with this address (for which terminal device402already has the link key).

In a step902, terminal device402requests an address change after a link is formed in step510. Next, in a step904, access point406sends a message approving this address change.FIG. 9shows the address of access point406being changed to the address of access point404. However, other alternative addresses may be employed.

Step512follows step904. In this step, the link between access point406and terminal device402is authenticated. However, unlike the authentication described with reference toFIG. 6, this authentication process is based on the alternative access point address requested in step902.

After authentication, a step906is performed. In this step, a request is placed to change the address of access point406to its assigned address. This step may comprise access point406sending a request message to terminal device402. Alternatively, this step may comprise terminal device402sending a request message to access point406.

Next, in a step908, the request made in step906is approved. This approval may be made by either terminal device402or access point406. In particular, step908may comprise terminal device402sending an approval message to access point406. Alternatively, step908may comprise access point406sending an approval message to terminal device402. As a result of step908, access point406resumes the use of its assigned address.

Step514follows step908. As described above with reference toFIG. 5, terminal device402continues its communications session in this step.

Although this signaling sequence is described with reference to the elements ofFIG. 4, this illustrated process may be applied to other scenarios and topologies.

V. Multiple Device Access Point Implementations

FIG. 10is a block diagram of a multiple device access point implementation104′ according to an embodiment of the present invention. This implementation includes coupled first and second device1002aand1002b(e.g., Bluetooth modules). Each of devices1002may be implemented as described above with reference toFIG. 3. These devices may be coupled according to various techniques, such as local area networks, computer interfaces, and/or other techniques apparent to persons skilled in the relevant arts.

Devices1002may each perform dedicated functions. For example, device1002amay serve ongoing terminal device connections, while device1002bmay actively seek new terminal device connections. As described above with reference toFIGS. 7 and 9, an access point may place certain connections in a hold or park mode when receiving a terminal device handover. By providing at least two of these “dedicated” devices, handovers may be performed without placing existing terminal device connections in such a hold or park mode.

FIG. 11is a flowchart of a handover operation according to an embodiment of the present invention performed by a multiple device access point implementation, such as the implementation shown inFIG. 10. This flowchart is similar to the flowchart ofFIG. 7. However, this flowchart does not include steps708and714. Moreover, this flowchart includes a step1102that is not present inFIG. 7. As shown in FIG. the steps in this operation may be allocated between devices1002aand1002b. In particular,FIG. 11shows that steps702–713, and1102are performed by device1002a, while step716is performed by device1002b. However, other allocations may be employed.

The steps ofFIG. 11are described with reference to the operational scenario ofFIG. 4. However, these steps may be performed in other scenarios. As shown inFIG. 11, device1002areceives a handover notification from the previous access point. Next, in step703, device1002aobtains a group key for terminal device402. Step704follows step703. In this step, device1002aestablishes a link with terminal device402.

After step704, module1002aperforms a step706′. Unlike step of706inFIG. 7, step706′ does not include step708. That is, step706′ does not include interrupting links with other terminal devices. However, step706′ includes steps710and712. In step710, module1002areceives a directive from terminal device402to apply an alternative address for link authentication purposes. This alternative address is an address that is different from the address of access point406. For example, this alternative address may be the address of the previous access point (i.e., the address of access point404). Alternatively, this alternative address may be a random address created by terminal device402during initiation of a prior access point connection, such as the first access point connection of the pending communications session.

In step712, device1002performs an authentication process with terminal device402using a key that corresponds to the alternative access point address and the group key obtained in step703. Since terminal device402knows the key that corresponds to the alternative address, terminal device402and access point406do not have to perform a pairing process.

After step706′, module1002aperforms step713. In this step, device1002areceives a directive from terminal device402to apply its standard address. In the context of Bluetooth, this standard address is the BD_ADDR address assigned to device1002a. Alternatively, step713may comprise access point406transmitting a message to terminal device402that requests approval to apply its standard address. In this case, step713also comprises receiving an approval message from terminal device402. This approval message authorizes access point406to apply its standard address.

Next, device1002aperforms step1102. In this step, device1002atransfers the terminal device connection to module1002b. In step1102, device1002apasses or transfers the connection with terminal device402in step127to device1002b. To transfer this connection in a Bluetooth environment, device1002amust establish a connection with terminal device402that employs a frequency hop sequence synchronized with the frequency hop sequence employed by device1002b.

To accomplish this, device1002aperforms some special operations in step704. In particular, device1002asends an FHS paging packet to terminal device402that provides the timing information and access code of device1002b. This FHS packet also contains a new active member address (AM_ADDR) assigned to terminal device402. This address is the next available slave-member number for the network of connections managed by device1002b. By doing this, both device1002aand the terminal device402have the frequency hop sequence of device1002b.

In step1102, device1002atransfers the connection formed with terminal device402in step704to device1002b. In the context of Bluetooth, this step includes sending device1002bthe active member address (AM_ADDR) assigned to terminal device402in step704. Thus, terminal device402becomes a slave device to device1002b. Accordingly, in step716, the communication session of terminal device402is continued.

Further details regarding the transfer of connections between devices are provided in U.S. application Ser. No. 10/072,969, filed Feb. 12, 2002, and entitled “Short-Range RF Access Point Design Enabling Services to Master and Slave Mobile Devices.” This application is incorporated herein by reference in its entirety.

Following step1102, operation proceeds to step716, where device1002bcontinues the communications session of terminal device402.

AlthoughFIG. 10illustrates a two-device access point implementation, other implementations may employ various numbers of devices. For example, implementations may include three devices that each handle dedicated functions. Details regarding such implementations are found in U.S. application Ser. No. 10/072,969.

VI. Computer System

The access point devices and terminal devices described herein may implemented with one or more computer systems. An example of a computer system1201is shown inFIG. 12. Computer system1201represents any single or multi-processor computer. Single-threaded and multi-threaded computers can be used. Unified or distributed memory systems can be used.

Computer system1201includes one or more processors, such as processor1204. One or more processors1204can execute software implementing the process described above with reference toFIGS. 3,4,5,7, and8. Each processor1204is connected to a communication infrastructure1202(for example, a communications bus, cross-bar, or network). Various software embodiments are described in terms of this exemplary computer system. After reading this description, it will become apparent to a person skilled in the relevant art how to implement the invention using other computer systems and/or computer architectures.

Computer system1201also includes a main memory1207which is preferably random access memory (RAM). Computer system1201may also include a secondary memory1208. Secondary memory1208may include, for example, a hard disk drive1210and/or a removable storage drive1212, representing a floppy disk drive, a magnetic tape drive, an optical disk drive, etc. Removable storage drive1212reads from and/or writes to a removable storage unit1214in a well known manner. Removable storage unit1214represents a floppy disk, magnetic tape, optical disk, etc., which is read by and written to by removable storage drive1212. As will be appreciated, the removable storage unit1214includes a computer usable storage medium having stored therein computer software and/or data.

In alternative embodiments, secondary memory1208may include other similar means for allowing computer programs or other instructions to be loaded into computer system740. Such means can include, for example, a removable storage unit1222and an interface1220. Examples can include a program cartridge and cartridge interface (such as that found in video game devices), a removable memory chip (such as an EPROM, or PROM) and associated socket, and other removable storage units1222and interfaces1220which allow software and data to be transferred from the removable storage unit1222to computer system1201.

Computer system1201may also include a communications interface1224. Communications interface1224allows software and data to be transferred between computer system1201and external devices via communications path1227. Examples of communications interface1227include a modem, a network interface (such as Ethernet card), a communications port, etc. Software and data transferred via communications interface1227are in the form of signals228which can be electronic, electromagnetic, optical or other signals capable of being received by communications interface1224, via communications path1227. Note that communications interface1224provides a means by which computer system1201can interface to a network such as the Internet.

The present invention can be implemented using software running (that is, executing) in an environment similar to that described above with respect toFIG. 12. In this document, the term “computer program product” is used to generally refer to removable storage units1214and1222, a hard disk installed in hard disk drive1210, or a signal carrying software over a communication path1227(wireless link or cable) to communication interface1224. A computer useable medium can include magnetic media, optical media, or other recordable media, or media that transmits a carrier wave or other signal. These computer program products are means for providing software to computer system1201.

Computer programs (also called computer control logic) are stored in main memory1207and/or secondary memory1208. Computer programs can also be received via communications interface1224. Such computer programs, when executed, enable the computer system1201to perform the features of the present invention as discussed herein. In particular, the computer programs, when executed, enable the processor1204to perform the features of the present invention. Accordingly, such computer programs represent controllers of the computer system1201.

The present invention can be implemented as control logic in software, firmware, hardware or any combination thereof. In an embodiment where the invention is implemented using software, the software may be stored in a computer program product and loaded into computer system1201using removable storage drive1212, hard drive1210, or interface1220. Alternatively, the computer program product may be downloaded to computer system1201over communications path1227. The control logic (software), when executed by the one or more processors1204, causes the processor(s)1204to perform the functions of the invention as described herein.

In another embodiment, the invention is implemented primarily in firmware and/or hardware using, for example, hardware components such as application specific integrated circuits (ASICs). Implementation of a hardware state machine so as to perform the functions described herein will be apparent to persons skilled in the relevant art(s).

While various embodiments of the present invention have been described above, it should be understood that they have been presented by way of example only, and not limitation. For instance, the present invention is not limited to Bluetooth. Furthermore, the present invention can be applied to previous and future developed Bluetooth standards, as well as variations from such Bluetooth standards.

Accordingly, it will be apparent to persons skilled in the relevant art that various changes in form and detail can be made therein without departing from the spirit and scope of the invention. Thus, the breadth and scope of the present invention should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents.