Title:
Naming distribution method for ad hoc networks
Document Type and Number:
Kind Code:
A1

Abstract:
Device name conflicts are resolved when adding devices to existing ad hoc networks or when joining two ad hoc networks together. After a connection has been established between a new device to be added and a first member device in the ad hoc network, a name distribution message is transferred by the new device to the first member device. The name distribution message will be passed from member device to member device in the ad hoc network, and at each member device a name conflict check is performed. Device name conflicts are also resolved when joining two ad hoc networks together. The contents of name manager tables of the two respective ad hoc networks must be exchanged. This is accomplished by forming a name distribution message for each name record in the name manager tables of the two devices establishing the connection on behalf of their respective ad hoc networks. Then the name distribution messages formed in each respective ad hoc network are distributed to the other ad hoc network. In the process of distributing the name distribution messages through the other network, any name conflicts are commonly resolved in all of the devices in both ad hoc networks.
Representative Image:
Inventors:
Nyman, Kai (Espoo, FI)
Olkkonen, Mikko (Kirkkonummi, FI)
Murto, Juhani (Helsinki, FI)
Oinonen, Kari (Lempaala, FI)
Application Number:
09/932464
Publication Date:
02/20/2003
Filing Date:
08/20/2001
View Patent Images:
Images are available in PDF form when logged in. To view PDFs, Login  or  Create Account (Free!)
Primary Class:
International Classes:
(IPC1-7): G06F007/00
Attorney, Agent or Firm:
MORGAN & FINNEGAN, L.L.P (345 Park Avenue, New York, NY, 10154, US)
Claims:

What is claimed is:



1. A method to distribute a user-defined name of a user's wireless device to a plurality of member wireless devices in an ad hoc network, comprising: associating a member device address with a member-defined name, in a member name record stored in a plurality of member devices in the ad hoc network; receiving a name distribution message associating a user device address with a user-defined name; comparing the user-defined name with the member-defined name; storing the user device address in association with the user-defined name in a user name record in the plurality of member devices in the ad hoc network, if there is no name conflict; and using the user-defined name at the plurality of member devices to access the user's wireless device in the ad hoc network.

2. The method of claim 1, which further comprises: associating the user device address with a user-defined alternate name, in the name distribution message; and substituting the user-defined alternate name for the user-defined name in the user name record, if there is a name conflict.

3. The method of claim 1, which further comprises: associating the member device address with a member-defined alternate name, in the member name record stored in the plurality of member devices in the ad hoc network; and substituting the member-defined alternate name for the member-defined name in the member name record, if there is a name conflict.

4. The method of claim 1, which further comprises: distributing the name distribution message to the plurality of member devices in the ad hoc network; comparing the user-defined name with the member-defined name in each of the plurality of member devices in the ad hoc network; storing the user device address in association with the user-defined name in a user name record in the plurality of member devices in the ad hoc network, if there is no name conflict; and using the user-defined name at the plurality of member devices in the ad hoc network, to access the user's wireless device in the ad hoc network.

5. The method of claim 4, which further comprises: associating the user device address with a user-defined alternate name, in the name distribution message; and substituting the user-defined alternate name for the user-defined name in the user name record, if there is a name conflict.

6. The method of claim 4, which further comprises: associating the member device address with a member-defined alternate name, in the member name record stored in the plurality of member devices in the ad hoc network; and substituting the member-defined alternate name for the member-defined name in the member name record, if there is a name conflict.

7. The method of claim 1, which further comprises: receiving the name distribution message from the user's device when connecting the user's wireless device to the ad hoc network.

8. The method of claim 1, which further comprises: receiving the name distribution message from the user's device, which is located in a second ad hoc network, when connecting the second ad hoc network with the first said ad hoc network.

9. The method of claim 1, which further comprises: associating the user device address with a user-defined alternate name and a user device time stamp, in the name distribution message; and substituting the user-defined alternate name for the use r-defined name in the user name record, if there is a name conflict and the user device time stamp is younger than a member device time stamp.

10. The method of claim 1, which further comprises: associating the user device address with a user-defined alternate name and a user device time stamp, in the name distribution message; and substituting the user-defined alternate name for the user-defined name in the user name record, if there is a name conflict and the user device time stamp is older than a member device time stamp.

11. The method of claim 1, which further comprises: associating the member device address with a member-defined alternate name and a member device time stamp, in the member name record stored in the plurality of member devices in the ad hoc network; and substituting the member-defined alternate name for the member-defined name in the member name record, if there is a name conflict and the member device time stamp is younger than a user device time stamp.

12. The method of claim 1, which further comprises: associating the member device address with a member-defined alternate name and a member device time stamp, in the member name record stored in the plurality of member devices in the ad hoc network; and substituting the member-defined alternate name for the member-defined name in the member name record, if there is a name conflict and the member device time stamp is older than a user device time stamp.

13. The method of claim 1, which further comprises: including a current hop count value and a maximum hop count value in the name distribution message; incrementing the current hop count value in the plurality of member devices in the ad hoc network; and displaying the user-defined name in the plurality of member devices if the current hop count value is not greater than the maximum hop count value.

14. The method of claim 1, which further comprises: associating the user device address with a user-defined permission to display, in the name distribution message; and granting to the plurality of member devices, permission to display the user-defined name.

15. The method of claim 1, which further comprises: storing a member device address in a member name record stored in a plurality of member devices in the ad hoc network; receiving a name distribution message associating the member device address with a delete device indication; distributing the name distribution message associating the member device address with the delete device indication, to the plurality of member devices in the ad hoc network; and deleting the member record from the plurality of member devices in the ad hoc network.

16. The method of claim 1, which further comprises: receiving a name distribution message associating the member device address with a change name indication; distributing the name distribution message associating the member device address with the change name indication, to the plurality of member devices in the ad hoc network; and changing the member-defined name in the member record of the plurality of member devices in the ad hoc network.

17. The method of claim 1, which further comprises: associating a member device address with a member-defined name and a name display attribute, in a member name record stored in a plurality of member devices in the ad hoc network; receiving a name distribution message associating the member device address with a change display attribute indication; distributing the name distribution message associating the member device address with a change display attribute indication, to the plurality of member devices in the ad hoc network; and changing the name display attribute of the member-defined name in the member record of the plurality of member devices in the ad hoc network.

18. The method of claim 1, which further comprises: associating a member device address with a member-defined name and a name display attribute, in a member name record stored in a plurality of member devices in the ad hoc network; receiving a name distribution message associating the member device address with a name flash display attribute indication; distributing the name distribution message associating the member device address with a name flash display attribute indication, to the plurality of member devices in the ad hoc network; and flashing the display of the member-defined name in the plurality of member devices in the ad hoc network.

19. The method of claim 1, which further comprises: associating a member device address with a security attribute, in a member name record stored in a plurality of member devices in the ad hoc network; receiving a name distribution message associating the member device address with a change security attribute indication; distributing the name distribution message associating the member device address with a change security attribute indication, to the member device; and changing the security attribute in the member record in the plurality of member devices in the ad hoc network.

20. The method of claim 1, which further comprises: associating a member device address with a member-defined name and a security attribute, in a member name record stored in a plurality of member devices in the ad hoc network; receiving a name distribution message associating the member device address with an authorization list of member devices; distributing the name distribution message associating the member device address with an authorization list of member devices, to the plurality of member devices in the ad hoc network; and changing the security attribute of the member device, if it is listed on the authorization list.

21. A method to distribute a user-defined name of a user's wireless device to a plurality of member wireless devices in an ad hoc network, comprising: associating a member device address with a member-defined name, in a member name record stored in a plurality of member devices in the ad hoc network; distributing a name distribution message associating a user device address with a user-defined name and a user-defined alternate name, to the plurality of member devices in the ad hoc network; comparing the user-defined name with the member-defined name in each of the plurality of member devices in the ad hoc network; storing the user device address in association with the user-defined name in a user name record in the plurality of member devices in the ad hoc network, if there is no name conflict; storing the user device address in association with the user-defined alternate name in a user name record in the plurality of member devices in the ad hoc network, if there is a name conflict; and using the stored name at the plurality of member devices in the ad hoc network, to access the user's wireless device in the ad hoc network.

22. The method of claim 21, which further comprises: associating the member device address with the member-defined name and a member-defined alternate name, in the member name record stored in the plurality of member devices in the ad hoc network; distributing a second name distribution message associating the user device address with the user-defined name, to the plurality of member devices in the ad hoc network; substituting the member-defined alternate name for the member-defined name in the member name record in the plurality of member devices in the ad hoc network, if there is a name conflict; storing the user device address in association with the user-defined name in a second user name record in the plurality of member devices in the ad hoc network; and using the user-defined name from the second user name record at the plurality of member devices in the ad hoc network, to access the user's wireless device in the ad hoc network.

23. The method of claim 21, which further comprises: associating the member device address with the member-defined name and an annunciator attribute, in the member name record stored in the plurality of member devices in the ad hoc network; receiving a name distribution message associating the member device address with a change display attribute indication; distributing the name distribution message associating the member device address with a change display attribute indication, to the plurality of member devices in the ad hoc network; and changing the annunciator attribute of the member-defined name in the member record of the plurality of member devices in the ad hoc network.

24. The method of claim 23, wherein said annunciator attribute controls the font of the member-defined name as it is displayed.

25. The method of claim 23, wherein said annunciator attribute controls the color of the member-defined name as it is displayed.

26. The method of claim 23, wherein said annunciator attribute controls the animation of the member-defined name as it is displayed.

27. The method of claim 23, wherein said annunciator attribute controls a sound played in conjunction with the display of the member-defined name.

28. The method of claim 21, which further comprises: associating the member device address with the member defined name, in the member name record stored in the plurality of member devices in a first ad hoc network; receiving a name distribution message associating a second user device address with a second user-defined name from a user's device which is located in a second ad hoc network, when connecting the second ad hoc network with the first ad hoc network; comparing the second user-defined name with the member-defined name; storing the second user device address in association with the second user-defined name in a user name record in the plurality of member devices in the first ad hoc network, if there is no name conflict; and using the second user-defined name at the plurality of member devices to access the user's wireless device in the first ad hoc network.

29. The method of claim 21, for connecting two ad hoc networks, comprising: associating a first member device address with a first member-defined name, in a first member name record stored in a first plurality of member devices in a first ad hoc network; associating a second member device address with a second member-defined name, in a second member name record stored in a second plurality of member devices in a second ad hoc network; receiving a first name distribution message in the second ad hoc network, associating a first user device address with a first user-defined name from a first user's device which is located in the first ad hoc network, when connecting the second ad hoc network with the first ad hoc network; receiving a second name distribution message in the first ad hoc network, associating a second user device address with a second user-defined name from a second user's device which is located in the second ad hoc network, when connecting the second ad hoc network with the first ad hoc network; comparing the first user-defined name with the second member-defined name; storing the first user device address in association with the first user-defined name in a first user name record in the second plurality of member devices in the second ad hoc network, if there is no name conflict; storing the second user device address in association with the second user-defined name in a second user name record in the first plurality of member devices in the first ad hoc network, if there is no name conflict; using the first user-defined name at the second plurality of member devices to access the first user's wireless device in the first ad hoc network; and using the second user-defined name at the first plurality of member devices to access the second user's wireless device in the second ad hoc network.

30. A method to distribute user-defined names of wireless devices to a plurality of member wireless devices when connecting two ad hoc networks, comprising: associating a member device address with a member-defined name, in a member name record stored in a plurality of member devices in a first ad hoc network; connecting a second ad hoc network containing a user device, to the first ad hoc network; receiving a name distribution message in the first ad hoc network from the user device, the message associating a user device address with a user-defined name; comparing the user-defined name with the member-defined name; storing the user device address in association with the user-defined name in a user name record in the plurality of member devices in the first ad hoc network, if there is no name conflict; and using the user-defined name at the plurality of member devices in the first ad hoc network to access the user's wireless device in the second ad hoc network.

31. The method of claim 30, which further comprises: associating the user device address with a user-defined alternate name and a user device time stamp, in the name distribution message; and substituting the user-defined alternate name for the user-defined name in the user name record, if there is a name conflict and the user device time stamp is younger than a member device time stamp.

32. The method of claim 30, which further comprises: associating the user device address with a user-defined alternate name and a user device time stamp, in the name distribution message; and substituting the user-defined alternate name for the user-defined name in the user name record, if there is a name conflict and the user device time stamp is older than a member device time stamp.

33. The method of claim 30, which further comprises: associating the member device address with a member-defined alternate name and a member device time stamp, in the member name record stored in the plurality of member devices; and substituting the member-defined alternate name for the member-defined name in the member name record, if there is a name conflict and the member device time stamp is younger than a user device time stamp.

34. The method of claim 30, which further comprises: associating the member device address with a member-defined alternate name and a member device time stamp, in the member name record stored in the plurality of member devices; and substituting the member-defined alternate name for the member-defined name in the member name record, if there is a name conflict and the member device time stamp is older than a user device time stamp.

35. The method of claim 30, which further comprises: including a current hop count value and a maximum hop count value in the name distribution message; incrementing the current hop count value in the plurality of member devices; and displaying the user-defined name in the plurality of member devices if the current hop count value is not greater than the maximum hop count value.

36. The method of claim 30, which further comprises: associating the user device address with a user-defined permission to display, in the name distribution message; and granting to the plurality of member devices, permission to display the user-defined name.

37. The method of claim 30, wherein the wireless devices use a IEEE 802.11 Wireless LAN standard.

38. The method of claim 30, wherein the wireless devices use the High Performance Radio Local Area Network (HIPERLAN) standard.

39. The method of claim 30, wherein the wireless devices use the Bluetooth standard.

40. The method of claim 30, wherein the wireless devices use the Digital Enhanced Cordless Telecommunications (DECT) standard.

41. The method of claim 30, wherein the wireless devices use the Shared Wireless Access Protocol (SWAP) standard.

42. The method of claim 30, wherein the wireless devices use the IEEE 802.15 Wireless Personal Area Network (WPAN) standard.

43. The method of claim 30, wherein the wireless devices use the Infrared Data Association (IrDA) standard.

44. The method of claim 30, wherein the wireless devices use the Multimedia Mobile Access Communication (MMAC) Systems standard.

45. A system to distribute a user-defined name of a user's wireless device to a plurality of member wireless devices in an ad hoc network, comprising: a memory, for storing a member device address in association with a member-defined name, in a member name record stored in a member device in an ad hoc network; an input, for receiving a name distribution message associating a user device address with a user-defined name; a comparator coupled to the memory and the input, for comparing the user-defined name with the member-defined name; said memory storing the user device address in association with the user-defined name in a user name record, if there is no name conflict; and an interface coupled to the memory, for using the user-defined name to access the user's wireless device in the ad hoc network.

46. The system as claimed in claim 45, comprising: said input receiving a second name distribution message from a second user device in a second ad hoc network, the second message associating a second user device address with a second user-defined name; said comparator comparing the second user-defined name with the member-defined name; said memory storing the second user device address in association with the second user-defined name in a second user name record, if there is no name conflict; and said interface using the second user-defined name at the member device to access the second user wireless device in the second ad hoc network.

47. A computer program product to distribute a user-defined name of a user's wireless device to a plurality of member wireless devices in an ad hoc network, comprising: a computer readable medium; program code in said computer readable medium for storing a member device address in association with a member-defined name, in a member name record in a member device in the ad hoc network; program code in said computer readable medium for receiving a name distribution message associating a user device address with a user-defined name; program code in said computer readable medium for comparing the user-defined name with the member-defined name; program code in said computer readable medium for storing the user device address in association with the user-defined name in a user name record, if there is no name conflict; and program code in said computer readable medium for using the user-defined name to access the user's wireless device in the ad hoc network.

48. A computer program product of claim 47, which further comprises: comprising: program code in said computer readable medium for receiving a second name distribution message from a second user device in a second ad hoc network, the second message associating a second user device address with a second user-defined name; program code in said computer readable medium for comparing the second user-defined name with the member-defined name; program code in said computer readable medium for storing the second user device address in association with the second user-defined name in a second user name record, if there is no name conflict; and program code in said computer readable medium for using the second user-defined name at the member device to access the second user wireless device in the second ad hoc network.

49. A method to distribute a user-defined name of a user's wireless device to a plurality of member wireless devices in an ad hoc network, comprising: associating a member device address with a member-defined name, in an existing name table stored in a plurality of member devices in the ad hoc network; receiving a name distribution message associating a user device address with a user-defined name in a new name table; appending the new name table to the existing name table to form a composite name table; comparing the user-defined name with the member-defined name; storing the user device address in association with the user-defined name in the composite name table in the plurality of member devices in the ad hoc network, if there is no name conflict; and using the user-defined name at the plurality of member devices to access the user's wireless device in the ad hoc network.

50. The method of claim 49, which further comprises: receiving a second name distribution message associating a second user device address with a second user-defined name in a second new name table, from a user's device which is located in a second ad hoc network, when connecting the second ad hoc network with the first said ad hoc network; appending the second new name table to the existing name table to form a composite name table; comparing the second user-defined name with the member-defined name; storing the second user device address in association with the second user-defined name in the composite name table in the plurality of member devices in the first said ad hoc network, if there is no name conflict; and using the second user-defined name at the plurality of member devices to access the second user wireless device in the first said ad hoc network.

51. A method to distribute user-defined names of users' wireless devices to a plurality of member wireless devices when connecting two ad hoc networks, comprising: associating a first member device address with a first member-defined name, in a first existing name table stored in a first plurality of member devices in a first ad hoc network; associating a second member device address with a second member-defined name, in a second existing name table stored in a second plurality of member devices in a second ad hoc network; receiving a first name distribution message including the first existing name table in the second ad hoc network, associating a first user device address with a first user-defined name from a first user's device which is located in the first ad hoc network, when connecting the second ad hoc network with the first ad hoc network; appending the first existing name table to the second existing name table to form a composite name table; comparing the first user-defined name with the second member-defined name; storing the first user device address in association with the first user-defined name in the composite name table in the second plurality of member devices in the second ad hoc network, if there is no name conflict; and using the first user-defined name at the second plurality of member devices to access the first user's wireless device in the first ad hoc network.

52. The method of claim 51, which further comprises: receiving a second name distribution message in the first ad hoc network from a second user device in the second network, the second message including the second existing name table associating a second user device address with a second user-defined name; appending the first existing name table to the second existing name table to form a second composite name table; comparing the second user-defined name with the first member-defined name; storing the second user device address in association with the second user-defined name in the second composite name table in the plurality of member devices in the first ad hoc network, if there is no name conflict; and using the second user-defined name at the plurality of member devices in the first ad hoc network to access the second user wireless device in the second ad hoc network.

Description:

FIELD OF THE INVENTION:

[0001] The invention disclosed broadly relates to ubiquitous computing and more particularly relates to improvements in short-range wireless systems.

BACKGROUND OF THE INVENTION

[0002] Short Range Wireless Systems

[0003] Short range wireless systems have a typical range of one hundred meters or less. They often combine with systems wired to the Internet to provide communication over long distances. The category of short range wireless systems includes wireless personal area networks (PANs) and wireless local area networks (LANs). They 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. Wireless personal area networks use low cost, low power wireless devices that have a typical range of ten meters. The best known example of wireless personal area network technology is the Bluetooth Standard, which operates in the 2.4 GHz ISM band. It provides a peak air link speed of one Mbps and a power consumption low enough for use in personal, portable electronics such as PDAs and mobile phones. Wireless local area networks generally operate at higher peak speeds of between 10 to 100 Mbps and have a longer range, which requires greater power consumption. Wireless local area networks are typically used as wireless links from portable laptop computers to a wired LAN, via an access point (AP). Examples of wireless local area network technology include the IEEE 802.11 Wireless LAN Standard and the HIPERLAN Standard, which operates in the 5 GHz U-NII band.

[0004] Ad Hoc Networks

[0005] An ad hoc network is a short range wireless system composed primarily of mobile wireless devices, which associate together for a relatively short time to carry out a common purpose. A temporary network such as this is called a “piconet” in the Bluetooth Standard, an “independent basic service set” (IBSS) in the IEEE 802.11 Wireless LAN Standard, a “subnet” in the HIPERLAN Standard, and generally a radio cell or a “micro-cell” in other wireless LAN technologies. Ad hoc networks have the common property of being an arbitrary collection of wireless devices, which are physically close enough to be able to communicate and which are exchanging information on a regular basis. The networks can be constructed quickly and without much planning. Members of the ad hoc network join and leave as they move into and out of the range of each other. Most ad hoc networks operate over unlicensed radio frequencies at speeds of from one to fifty-four Mbps using carrier sense protocols to share the radio spectrum. The distance over which they can communicate ranges from ten meters for Bluetooth piconets to over one hundred meters for wireless LAN micro-cells in an open environment. Ad hoc networks consist primarily of mobile wireless devices, but can also include one or more access points, which are stationary wireless devices operating as a stand-alone server or connected as gateways to other networks.

[0006] The Bluetooth Short Range Wireless Technology

[0007] Bluetooth is 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 operating together. The Bluetooth Special Interest Group, Specification Of The Bluetooth System, Volumes 1 and 2, Core and Profiles: Version 1.1, 22 nd February, 2001., describes the principles of Bluetooth device operation and communication protocols. 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 ten meter radio communications range and to discover what services they offer, using a service discovery protocol (SDP). The SDP searching function relies on links being established between the requesting Bluetooth device in a client role and the responding Bluetooth device in a server role. Once a link has been established, it can be used to find out about services in the responding Bluetooth device and how to connect to them.

[0008] A connection between two Bluetooth devices is initiated by an inquiring device sending out an inquiry message searching for other devices in its vicinity. Any other Bluetooth device that is listening by means of conducting an inquiry scan, will recognize the inquiry message and respond. The inquiry response is a message packet containing the responding device's Bluetooth Device Address (BD_ADDR). A Bluetooth device address is a unique, 48-bit IEEE address that is electronically engraved into each Bluetooth device.

[0009] The inquiring device uses the information provided in the inquiry response packet, to prepare and send a paging message to the responding device. To establish a connection, the inquiring device must enter the page state. In the page state, the inquiring device will transmit initial paging messages to the responding device using the access code and timing information acquired from the inquiry response packet. The responding device must be in the page scan state to allow the inquiring device to connect with it. Once in the page scan state, the responding device will acknowledge the initial paging messages and the inquiring device will send a paging packet that provides the clock timing and access code of the inquiring device to the responding device. The responding device responds with a page acknowledgment packet. This enables the two devices to form a connection and both devices transition into the connection state. The inquiring device that has initiated the connection assumes the role of a master device and the responding device assumes the role of a slave device in a new ad hoc network piconet.

[0010] Each piconet has one master device and up to seven slave devices. All communication is directed between the master device and each respective slave device. The master initiates an exchange of data and the slave responds to the master. When two slave devices are to communicate with each other, they must do so through the master device. The master device maintains the piconet's network clock and controls when each slave device can communicate with the master device. Members of the ad hoc network piconet join and leave as they move into and out of the range of the master device. Piconets support distributed activities, such as collaborative work projects, collaborative games, multi-user gateways to the Internet, and the like. A user's device that joins a particular piconet, does so to enable its user to participate in the currently running collaborative activity.

[0011] A Bluetooth-enabled laptop computer can send information to a Bluetooth-enabled printer in the next room. A Bluetooth-enabled microwave oven can send a message to a Bluetooth-enabled mobile phone announcing that that the meal is ready. Bluetooth will become the standard in mobile phones, PCs, laptops and other electronic devices, enabling users to share information, synchronize data, access the Internet, integrate with LANs or actuate electromechanical devices, such as unlocking a car. A passenger can write e-mails on his/her laptop on an airplane and then, after landing, the messages can be automatically forwarded to the Internet by Bluetooth devices that are ubiquitously located around the airport terminal. In another example, while waiting in an airport lounge, a the passenger can receive interesting duty-free offers directly on his/her mobile phone or play multiplayer games with friends.

[0012] The IEEE 802.11 Wireless LAN Standard

[0013] The IEEE 802.11 Wireless LAN Standard defines at least two different physical (PHY) specifications and one common medium access control (MAC) specification. The IEEE 802.11(a) Standard is designed for either the 2.4 GHz ISM band or the 5 GHz U-NII band, and uses orthogonal frequency division multiplexing (OFDM) to deliver up to 54 Mbps data rates. The IEEE 802.11(b) Standard is designed for the 2.4 GHz ISM band and uses direct sequence spread spectrum (DSSS) to deliver up to 11 Mbps data rates. The IEEE 802.11 Wireless LAN Standard describes two major components, the mobile station and the fixed access point (AP). IEEE 802.11 ad hoc networks have an independent configuration where the mobile stations communicate directly with one another, without support from a fixed access point. The IEEE 802.11 standard provides wireless devices with service inquiry features similar to the Bluetooth inquiry and scanning features. IEEE 802.11ad hoc networks support distributed activities similar those of the Bluetooth piconets, except that they have ten times the communications range.

[0014] In order for a IEEE 802.11 mobile station to communicate with other mobile stations in an ad hoc network, it must first find the stations. The process of finding another station is by inquiring. Active inquiry requires the inquiring station to transmit queries and invoke responses from other wireless stations in an ad hoc network. In an active inquiry, the mobile station will transmit a probe request frame. If there is an ad hoc network on the same channel that matches the service set identity (SSID) in the probe request frame, a station in that ad hoc network will respond by sending a probe response frame to the inquiring station. The probe response includes the information necessary for the inquiring station to access a description of the ad hoc network. The inquiring station will also process any other received probe response and Beacon frames. Once the inquiring station has processed any responses, or has decided there will be no responses, it may change to another channel and repeat the process. At the conclusion of the inquiry, the station has accumulated information about the ad hoc networks in its vicinity. Once a station has performed an inquiry that results in one or more ad hoc network descriptions, the station may choose to join one of the ad hoc networks. The IEEE, 802.11 Wireless LAN Standard is published in three parts as IEEE 802.11-1999; IEEE 802.11 a-1999; and IEEE 802.11b-1999, which are available from the IEEE, Inc. web site http://grouper.ieee.org/groups/802/11.

[0015] High Performance Radio Local Area Network (HIPERLAN)

[0016] The HIPERLAN standard provides a wireless LAN with a high data rate of up to 54 Mbps and a medium-range of 50 meters. HIPERLAN wireless LANs provide multimedia distribution with video quality of service (QoS), reserved spectrum, and good in-building propagation. There are two HIPERLAN standards. HIPERLAN Type 1 is a dynamic, priority driven channel access protocol similar to wireless Ethernet. HIPERLAN Type 2 is reserved channel access protocol similar to a wireless version of asynchronous transfer mode (ATM). Both HIPERLAN Type 1 and HIPERLAN Type 2 use dedicated spectrum at 5 GHz. HIPERLAN Type 1 uses an advanced channel equalizer to deal with intersymbol interference and signal multipath. HIPERLAN Type 2 avoids these interference problems by using orthogonal frequency division multiplex (OFDM) and a frequency transform function. The HIPERLAN Type 2 specification offers options for bit rates of 6, 16, 36, and 54 Mbps. The physical layer adopts an OFDM multiple carrier scheme using 48 carrier frequencies per OFDM symbol. Each carrier may then be modulated using binary phase shift keying (BPSK), quadrature phase shift keying (QPSK), or quadrature amplitude modulation (QAM) formats of 16-QAM or 64-QAM to provide different data rates. The modulation schemes chosen for the higher bit rates achieve throughput in the range 30-50 Mbps.

[0017] The HIPERLAN Type 1 is a dynamic, priority driven channel access protocol that can form ad hoc networks of wireless devices. HIPERLAN Type 1 ad hoc networks support distributed activities similar those of the Bluetooth piconets and IEEE 802.11 independent basic service sets (IBSS). The HIPERLAN Type 1 standard provides wireless devices with service inquiry features similar to those of the Bluetooth inquiry and scanning features and the IEEE 802.11 probe request and response features. An overview of the HIPERLAN Type 1 principles of operation is provided in the publication HIPERLAN Type 1 Standard, ETSI ETS 300 652, WA2 December 1997.

[0018] HIPERLAN Type 2 is a reserved channel access protocol that forms ad hoc networks. HIPERLAN Type 2 ad hoc networks support distributed activities similar those of the HIPERLAN Type 1 ad hoc networks, Bluetooth piconets and IEEE 802.11 independent basic service sets (IBSS). HIPERLAN Type 2 provides high speed radio communication with typical data rates from 6 MHz to 54 Mbps. It connects portable devices with broadband networks that are based on IP, ATM and other technologies. Centralized mode is used to operate HIPERLAN Type 2 as an access network via a fixed access point. In addition a capability for direct link communication is provided. This mode is used to operate HIPERLAN Type 2 as an ad hoc network without relying on a cellular network infrastructure. In this case a central controller (CC), which is dynamically selected among the portable devices, provides the same level of QoS support as the fixed access point. Restricted user mobility is supported within the local service area. Wide area roaming mobility can also be supported. An overview of the HIPERLAN Type 2 principles of operation is provided in the Broadband Radio Access Networks (BRAN), HIPERLAN Type 2; System Overview, ETSI TR 101 683 VI.I. 1 (2000-02) and a more detailed specification of its ad hoc network architecture is described in HIPERLAN Type 2 , Data Link Control ( DLC ) Layer; Part 4. Extension for Home Environment, ETSI TS 101 761-4 V1.2.1 (2000-12).

[0019] Other Wireless Standards Supporting Ad Hoc Networks

[0020] Other wireless standards support ad hoc networks. Examples include the IEEE 802.15 Wireless Personal Area Network (WPAN) standard, the Infrared Data Association (IrDA) standard, the Digital Enhanced Cordless Telecommunications (DECT) standard, the Shared Wireless Access Protocol (SWAP) standard, the Japanese 3rd Generation (3G) wireless standard, and the Multimedia Mobile Access Communication (MMAC) Systems standard of the Japanese Association of Radio Industries and Businesses.

[0021] What would be desirable in the prior art is a way to unambiguously associate a name entered by the user with the device address of the user's wireless device, and distribute that name throughout the ad hoc network. It would be desirable to enable a member of an ad hoc network to select the user's displayed name on the member's wireless device, and have the user's address automatically appended to a message to be sent by the member to the user's device. What would be desirable is to reliably resolve naming conflicts between members with the same selected device name, which they have distributed throughout an ad hoc network. What would be desirable is a way to solve the problem of resolving device name conflicts when adding devices to existing ad hoc networks or when joining two ad hoc networks together.

SUMMARY OF THE INVENTION

[0022] In accordance with one aspect of the invention, the name or alternate name entered by a user is unambiguously associated with the device address of the user's wireless device as it is distributed throughout the ad hoc network, and naming conflicts are automatically resolved. For example, when the user's name is displayed in the browser on another member's device in the ad hoc network, the access code for the user's device is associated with the user's displayed name, such as by means of a hyperlink displayed with the name. Name records for each of the wireless devices in the ad hoc network are stored in a name manager table in the member's device. When the member selects the user's displayed name, the user's address is accessed from the user's name record stored in the member's device. The user's address is appended to a message, for example, which has been prepared by the member, and the message is automatically sent to the user's device. Even if there are members in the ad hoc network with the same selected device name as the user's selected name, the invention automatically resolves the name conflicts.

[0023] The invention solves the problem of resolving device name conflicts when adding devices to existing ad hoc networks or when joining two ad hoc networks together. In one aspect of the invention, after a connection has been established between a new device to be added and a first member device in the ad hoc network, the new device transfers a name distribution message to the first member device. The name distribution message will be passed from member device to member device in the ad hoc network, and at each member device a name record of the new device will be stored in a name manager table.

[0024] The name distribution message has a device address portion, an op code portion, and an operand portion. There are several types of name distribution messages. One embodiment used to add a new device is an ADD DEVICE message. The device address portion of the ADD DEVICE message contains the address of the new device. The op code portion of the ADD DEVICE message contains the op code “ADD_DV” that distinguishes this type of name distribution message from other types. The operand portion of the ADD DEVICE message includes the primary name selected by the user and an alternate name selected by the user to be substituted for the primary name in the event of a name conflict. There is wide latitude in the user's choice of such device names, which can include the user's own name, nick names, descriptive names, and the like. The operand portion of the ADD DEVICE message also includes a time stamp value, which is used to resolve naming conflicts, by exercising a preference for either the older or newer names, depending on the respective values of the time stamps.

[0025] Each of the name records of the member devices stored in a name manager table, includes both a primary name and an alternate name chosen by the member device's user. As the ADD DEVICE message is processed in the ad hoc network, the new device name is compared with all of the member device names in the name manager table. If there is a conflict, then the alternate name of the device with the younger time stamp is substituted for its primary name. If the new device to be added has the younger timestamp, then its alternate name will be recorded in the name manager table as the name to which the device is referred. If the member device has the younger timestamp, then its alternate name will be substituted for its primary name in the name manager table as the name to which the device is referred, and the name record created for the new device to be added will use the device's primary name. In an alternate embodiment, younger time stamps can be preferred over older time stamps.

[0026] The operand portion of the ADD DEVICE message also includes a maximum hop count value chosen by the user, which is the maximum number of devices to which his/her name may be given. The ADD DEVICE message has a current hop count of zero when it is initially transferred by the new device to the first member device. As the ADD DEVICE message is propagated through the ad hoc network, each member device increments the current hop count by one and compares it with the maximum hop count. When the current hop count becomes greater than the maximum hop count, the member device will not display the name of the new device.

[0027] The operand portion of the ADD DEVICE message also selectively includes a blanket grant of permission to display the new name. If the permission to display is not granted in the message, then member devices processing the ADD DEVICE message and creating a name record for the new device, will not display the name of the new device. The new device's user can subsequently issue a different type of name distribution message, a SECURITY ATTRIBUTES message, that includes an authorization list of member devices to whom display permission is granted. The SECURITY ATTRIBUTES message has a device address portion containing the new device's address, an op code portion that contains the op code “SEC_ATTR” that distinguishes this type of name distribution message from other types, and an operand portion that includes the authorization list. The operand portion can optionally include the new device user's public key, a trust certificate, message authentication codes, and/or digital signatures to enforce the security desired by the user for the display of his/her name.

[0028] An alternate embodiment to add a new device is a COMPOSITE TABLE message. The op code portion of the COMPOSITE TABLE message contains the op code “TABLE” that distinguishes this type of name distribution message from other types. Instead of propagating an ADD DEVICE message received from the new device, the new device's entire name manager table is passed to the ad hoc network. This embodiment enables the first device in the ad hoc network forming the connection with the new device, to perform only once, all of the processing necessary to resolve name conflicts in the ad hoc network. The resulting composite name manager table includes all of the name records contributed by both the new device, as well as those in the ad hoc network that it is joining. The resulting composite name manager table is the operand portion of the COMPOSITE TABLE message. The COMPOSITE TABLE message is then propagated from the first device in the ad hoc network forming the connection, to the rest of the ad hoc network, including the new device being added. This, embodiment allows a selection to be made in the tradeoff between optimizing the average processing load on the devices and optimizing the bandwidth necessary to communicate updates from device to device in the network.

[0029] Other types of name distribution messages include DELETE DEVICE messages, CHANGE NAME messages, and CHANGE ALTERNATE NAME messages. As their names imply, when these messages are propagated through the ad hoc network, they delete designated name records, change designated primary names, and change designated alternate names.

[0030] Still another type of name distribution message is the NAME DISPLAY ATTRIBUTES message, which enables the user to design the appearance of his/her name as it is displayed throughout the network. The NAME DISPLAY ATTRIBUTES message includes the user's device address and the op code “DISP_ATTR” that distinguishes this type of name distribution message from other types. The operands in NAME DISPLAY ATTRIBUTES message are FONT, COLOR, ALT. COLOR, ANIMATION, SOUND, and other attributes. As the NAME DISPLAY ATTRIBUTES message is propagated through the ad hoc network, each member device changes the name display attributes in the name manager table to those attributes designated by the user in the message.

[0031] Still another type of name distribution message is the NAME FLASH DISPLAY ATTRIBUTES message. When the NAME FLASH message is propagated through the ad hoc network, each member device toggles the name color or other designated name display attributes in its name manager table. This gives the appearance of flashing the name displayed on all of the devices in the network. The NAME FLASH message includes the user's device address field, and the op code “FLASH”, that distinguishes this type of name distribution message from other types. The operands in NAME FLASH message are a flag “X” in each display attribute field that is desired to be flashed, for example in the color field and in the sound field. As the NAME FLASH message is propagated through the ad hoc network, each member device detects the color and sound flags. For the color flag, the member device accesses the color and alternate color attributes from the name record in the name manager table and then toggles the displayed name between the color and alternate colors specified in her name record. For the sound flag, the member device accesses the sound attribute from the name record in the name manager table and then plays the sound.

[0032] The invention solves the problem of resolving device name conflicts when joining two ad hoc networks together. The contents of the name manager tables of the two respective ad hoc networks must be exchanged. In one embodiment, this is accomplished by forming an ADD DEVICE message for each name record in the name manager tables of the two devices establishing the connection on behalf of their respective ad hoc networks. Then the ADD DEVICE messages formed in each respective ad hoc network are distributed to the other ad hoc network. In the process of distributing the ADD DEVICE messages through the other network, any name conflicts are commonly resolved in all of the devices in both ad hoc networks.

[0033] In an alternate embodiment, the COMPOSITE TABLE message is used when joining two ad hoc networks together. Instead of propagating a succession of ADD DEVICE messages received from the new ad hoc network, the new ad hoc network's name manager table is passed to the existing ad hoc network. This embodiment enables the first device in the existing ad hoc network forming the connection with the new ad hoc network, to perform only once, all of the processing necessary to resolve name conflicts in both ad hoc networks. The resulting composite name manager table includes all of the name records contributed by both the new ad hoc network, as well as those in the existing ad hoc network. The resulting composite name manager table is the operand portion of the COMPOSITE TABLE message. The COMPOSITE TABLE message is then propagated from the first device in the existing ad hoc network forming the connection to the new ad hoc network, to the rest of the existing ad hoc network. The corresponding first device in the new ad hoc network forming the connection to the existing ad hoc network, forms its own COMPOSITE TABLE message and propagates it to the rest of the new ad hoc network. This embodiment allows a selection to be made in the tradeoff between optimizing the average processing load on the devices and optimizing the bandwidth necessary to communicate updates from device to device in the networks.

[0034] Four example ad hoc network standards are described to embody the invention, the Bluetooth standard, the IEEE 802.11 Wireless LAN standard, the HIPERLAN Type 1 standard, and the HIPERLAN Type 2 standard. However, in addition to these four standards, the invention also applies to other wireless standards. The invention's principle of automatically resolving naming conflicts throughout an ad hoc network, is equally useful in many other wireless standards. The invention applies, for example, to the Infrared Data Association (IrDA) standard, the Digital Enhanced Cordless Telecommunications (DECT) standard, the Shared Wireless Access Protocol (SWAP) standard, the IEEE 802.15 Wireless Personal Area Network (WPAN) standard, the Japanese 3rd Generation (3G) wireless standard, and the Multimedia Mobile Access Communication (MMAC) Systems standard of the Japanese Association of Radio Industries and Businesses. The invention enables each of these wireless standards to automatically resolve naming conflicts throughout an ad hoc network.

[0035] The resulting invention unambiguously associates a name entered by the user with the device address of the user's wireless device, and distributes that name throughout the ad hoc network. The resulting invention enables a member of an ad hoc network to select the user's displayed name on the member's wireless device, and have the user's address automatically appended to a message to be sent by the member to the user's device. The resulting invention reliably resolves naming conflicts between members with the same selected device name, which they have distributed throughout an ad hoc network. The resulting invention solves the problem of resolving device name conflicts when adding devices to existing ad hoc networks or when joining two ad hoc networks together.

DESCRIPTION OF THE FIGURES

[0036] FIG. 1 shows an example appearance of the wireless device 100 and the naming menu 80 displayed to the user for entering the user's name, alternate name, the maximum number of devices to which to distribute the name, and other attributes of the name to be distributed to the ad hod network. The browser 211 of the device 100 displays a name list 84 the names of four wireless devices connected in the initial ad hoc network 132 ′. FIG. 1 applies to all short range wireless standards supporting ad hoc networks.

[0037] FIG. 1A shows an example generic wireless the enlarged ad hoc network 132 , in which an additional wireless device 128 is being added as a seventh device to the ad hoc network. The figure illustrates the propagation of an ADD-DEVICE message, which the wireless device 128 distributes to the rest of the ad hoc network 132 , to distribute its name to the network. The figure shows the incrementing of the hop count value attributed to the added device 128 as the ADD-DEVICE message transits each device in the ad hoc network. FIG. 1A applies to all short range wireless standards supporting ad hoc networks.

[0038] FIG. 1B shows an example format of the ADD-DEVICE message 244 (M), which the wireless device 128 distributes to the rest of the enlarged ad hoc network 132 , to distribute its name to the network. The figure shows the incrementing of the hop count value attributed to the added device 128 , as it appears in the name manager table of each device receiving the ADD-DEVICE message 244 (M) in the ad hoc network. FIG. 1B applies to all short range wireless standards supporting ad hoc networks.

[0039] FIG. 1C shows an example appearance of the wireless device 100 , in which the browser 211 displays the name list 84 with the names of the seven wireless devices connected in the enlarged ad hoc network 132 shown in FIG. 1A . FIG. 1C applies to all short range wireless standards supporting ad hoc networks.

[0040] FIG. 1D shows an example appearance of the wireless device 100 , in which the browser 211 displays a network baseball game application 95 , which displays the names of some of the wireless devices connected in the enlarged ad hoc network 132 shown in FIG. 1A . FIG. 1D applies to all short range wireless standards supporting ad hoc networks.

[0041] FIG. 1E shows name distribution messages, which are distributed by the wireless devices in an ad hoc network, to add a new device, delete a device, change the name of a device, substitute a new name manager table, specify security attributes for distributing the name, specify display attributes for displaying the name, and specify name flash display attributes for remotely flashing the displayed name. FIG. 1E applies to all short range wireless standards supporting ad hoc networks.

[0042] FIG. 1F shows the ad hoc network 132 of FIG. 1A as it propagates a name flash message from device 114 to the rest of the ad hoc network. The figure shows the appearance of the browser 211 in device 100 , in which the name for device 114 is flashing in response to the message. The figure also shows that two device names 94 and 96 are not displayed in browser 211 because their corresponding hop counts are greater than their maximum specified value. FIG. 1F applies to all short range wireless standards supporting ad hoc networks.

[0043] FIG. 1G shows an example appearance of the wireless devices 116 and 100 , in which both devices are running a network baseball game application 95 , which displays the names of some of the wireless devices connected in the ad hoc network 132 shown in FIG. 1A . In particular, the figure shows selecting a hyperlink for a recipient's name on the display of device 116 , to send a message to the recipient. FIG. 1G applies to all short range wireless standards supporting ad hoc networks.

[0044] FIG. 1H shows two ad hoc networks 102 and 112 , which are joining together by forming a new link 120 . The figure shows the resolution of a name conflict between the two ad hoc networks by substituting an alternate name for the conflicted name in the name manager tables of the devices in the two ad hoc networks. FIG. 1H applies to all short range wireless standards supporting ad hoc networks.

[0045] FIG. 1I shows an embodiment of the ad hoc network 132 of FIG. 1A as an IEEE 802.11 Wireless LAN independent basic service set (IBSS) 132 (I).

[0046] FIG. 1J shows an embodiment of the ad hoc network 132 of FIG. 1A as a HIPERLAN Type 2 Wireless LAN subnet 132 (H 2 ).

[0047] FIG. 1K shows an embodiment of the ad hoc network 132 of FIG. 1A as a Bluetooth scatternet 132 (BT).

[0048] FIG. 1L shows the application of the invention to multiple IEEE 802.11 Wireless LAN infrastructure basic service sets 102 (I), 112 (I), and 122 (I).

[0049] FIG. 1M shows the application of the invention to multiple HIPERLAN Type 2 Wireless LAN subnets 102 (H 2 ), 112 (H 2 ), and 122 (H 2 ).

[0050] FIG. 2A is a functional block diagram of the wireless device 100 , showing the application group 234 , the middleware protocol group 224 , and the transport protocol group 214 . FIG. 2A applies to all short range wireless standards supporting ad hoc networks.

[0051] FIG. 2B shows the name manager table 232 for the device 100 . The figure shows the association of each device's address with its user-selected name and alternate name. The figure also shows a current hop count, a maximum hop count and a time stamp associated with each device's name. The figure also shows user selected display attributes for each respective name, such as font, color, alternate color, animation features, and sound. The figure also shows the inclusion of a display permission for each respective name. FIG. 2B applies to all short range wireless standards supporting ad hoc networks.

[0052] FIG. 2C is a functional block diagram of the op code parser 242 in the application group 234 for the device 100 of FIG. 2 A, which interprets the op code field of name distribution messages to be processed by the device 100 and in response, invokes subroutines in the application programs 238 to process the add device message 244 , the delete device message 245 , the composite table message 247 , the display attribute message 249 , or the name flash message 250 . FIG. 2C applies to all short range wireless standards supporting ad hoc networks.

[0053] FIG. 3 is a network flow diagram of a first embodiment process flow in the ad hoc network 132 , illustrating the propagation of the ADD-DEVICE message for adding the device 128 to the network. FIG. 3 applies to all short range wireless standards supporting ad hoc networks.

[0054] FIG. 3A is a network flow diagram of the process flow in the ad hoc network 132 , illustrating the propagation of the DELETE DEVICE message for deleting the device 128 from the network. FIG. 3A applies to all short range wireless standards supporting ad hoc networks.

[0055] FIG. 3B is a network flow diagram of the process flow in the ad hoc network 132 , illustrating the propagation of the DISPLAY-ATTRIBUTE message for changing the name color of the device 128 as it is displayed on the devices in the network. FIG. 3B applies to all short range wireless standards supporting ad hoc networks.

[0056] FIG. 3C is a network flow diagram of the process flow in the ad hoc network 132 , illustrating the propagation of the NAME-FLASH message for toggling the name color, and other display attributes of the device 128 , as they are displayed on the devices in the network. FIG. 3C applies to all short range wireless standards supporting ad hoc networks.

[0057] FIG. 3D is a network flow diagram of a first embodiment process flow in the ad hoc networks 102 and 112 of FIG. 1 H, illustrating the process to join the two ad hoc networks. In particular, the figure shows the process of exchanging name manager tables between the two ad hoc networks and then distributing ADD DEVICE messages for the new devices being added to the two networks. FIG. 3D applies to all short range wireless standards supporting ad hoc networks.

[0058] FIG. 3E is a process flow diagram showing the process 325 to resolve name conflicts when joining devices 114 and 100 in FIG. 3D . FIG. 3E applies to all short range wireless standards supporting ad hoc networks.

[0059] FIG. 3F is a network flow diagram of an alternate embodiment of the process flow in the ad hoc network 132 , illustrating the propagation of the composite name manager table 232 ″ for adding the device 128 to the network. FIG. 3F applies to all short range wireless standards supporting ad hoc networks.

[0060] FIG. 3G is a network flow diagram of an alternate embodiment of the process flow in the ad hoc networks 102 and 112 of FIG. 1 H, in which the existing name manager tables 232 ′ are exchanged when joining the two ad hoc networks. FIG. 3G applies to all short range wireless standards supporting ad hoc networks.

DISCUSSION OF THE PREFERRED EMBODIMENT

[0061] This specification is organized into five major sections:

[0062] I. Generic Embodiment for All Short Range Wireless Systems

[0063] II. Example Embodiment Implemented in the Bluetooth Standard

[0064] III. Example Embodiment Implemented In The IEEE 802.11 Wireless LAN Standard

[0065] IV. Example Embodiments Implemented In The HIPERLAN Standard

[0066] V. Other Wireless Standards

[0067] I. Generic Embodiment for All Short Range Wireless Systems

[0068] This section is organized into the following subsections:

[0069] A. Overview

[0070] B. Process to Add New Device to Ad Hoc Network

[0071] C. Process to Delete Device From Ad Hoc Network

[0072] D. Process to Change Displayed Name Attributes in Network

[0073] E. Process to Flash Displayed Name in Ad Hoc Network

[0074] F. Process to Join Two Ad Hoc Networks

[0075] G. The Wireless Device

[0076] A. Overview

[0077] FIGS. 1, 1A to 1 H, 2 A to 2 C, 3 , and 3 A to 3 E describe the generic embodiment of the invention, which applies to all short range wireless systems supporting ad hoc networks.

[0078] FIG. 1 shows an example appearance of the wireless device 100 used by a user named Alice, which includes a display 212 that displays a naming menu 80 in its browser 211 . The naming menu enables Alice to enter her name or any alternate name, specify the conditions under which it will be distributed, and design the appearance in which it will be displayed on other devices in the ad hoc network 132 ′ of which she has become a member. The user Alice has become a member of an initial ad hoc network 132 ′ consisting of her wireless device 100 and three other devices, wireless device 108 used by a user named Dan Smith, wireless device 114 used by a user named Eve, and wireless device 116 used by a user named Dan Jones. Each of these devices is similarly equipped with a naming menu in its browser.

[0079] In accordance with one aspect of the invention, the name or alternate name entered in the naming menu 80 is associated with the device address of the respective wireless device. For example, the four users in FIG. 1 may be running a distributed program, such as a game 95 shown in FIG. 1 G, in which messages 97 are exchanged between the players as a part of the game. When the Alice's name is displayed in the browser of Dan Jones' wireless device 116 during the course of the game, the access code for Alice's device 100 is associated with the display of the Alice's name, such as by means of a hyperlink displayed with her name 86 on Dan's device 116 . Name records 236 for each of the wireless devices 100 , 108 , 114 , and 116 in the ad hoc network 132 ′ are stored in Dan's device 116 . When Dan Jones selects Alice's name 86 displayed by the browser 211 in his device 116 , Alice's access code ADDRESS(A) is accessed from her name record 236 stored in Dan's device 116 . Alice's access code is appended to a message 97 , which has been prepared by Dan, and the message is automatically sent to Alice's device 100 where it is received as message 97 ′.

[0080] The browser 211 in Alice's wireless device 100 of FIG. 1 , also displays a local display menu 84 , which allows Alice to specify how names are displayed on her own device. A stop list can be entered of user names that are not to be displayed. A stop list can be entered of classes of devices that are not to be displayed, such as vending machines. Since names can be animated accompanying a name flash in a display, Alice can specify that this feature be selectively not displayed on her browser. Alice can also specify that the sound accompanying a name flash, is to be turned off in her device.

[0081] The browser 211 in Alice's wireless device 100 of FIG. 1 , also displays a name list for the devices 100 , 108 , 114 , and 116 connected in the ad hoc network 132 ′ of FIG. 1 . In accordance with an aspect of the invention, the three names “ALICE” 86 , “DAN” 88 , and “DAN JONES” 90 are displayed in the Arial font in the color of black, as has been specified by these three users. The fourth user Eve has designed her name to be displayed as “EVE” 92 in a script font and in a different color.

[0082] The browser 211 in Alice's wireless device 100 also displays the button 98 labeled “SELECT TO FLASH YOUR NAME”. In accordance with an aspect of the invention, when actuated, the display of Alice's name 86 is flashed on the browsers of the other users in the ad hoc network.

[0083] Alice's wireless device 100 also includes a key pad 208 for the user to type in commands and text and a pointing device to control the position of a cursor on the display 212 . Alice's device 100 stores a name record 236 that specifies, among other things, Alice's selected name “ALICE” and alternate name “ALICE'S PC”, which it associates, with the device address “ADDRESS(A)”.

[0084] B. Process to Add New Device to Ad Hoc Network

[0085] Note in FIG. 1 that there are two users with the first name of “Dan”, each of whom has selected that name as his primary name to be distributed in the ad hoc network 132 ′. An important feature of the invention is the mechanism used for distributing the user's selected name throughout an ad hoc network so as to resolve name conflicts, which may occur when two users have selected the same name. In accordance with an aspect of the invention, a set of name distribution messages is employed, each of which includes a device address for the device to which it pertains, an op code portion to identify its function, and an operand portion to provide the user's selected names or other values. An example set of name distribution messages is shown in FIG. 1E .

[0086] Among set of name distribution messages is the ADD DEVICE message 244 , that includes the address of the device to be added, the op code ADD_DV that specifies the purpose of the message is to add a device, and an operand portion that includes the primary name “MARK” selected by the user and an alternate name “MARK'S PC” selected by the user to be substituted for the primary name in the event of a name conflict Also included in the operand portion of message 244 is a current hop count value for the device to be added, which begins with the value “0” and is incremented by “1” as the ADD-DEVICE message transits, during its distribution, each existing device in the ad hoc network. The current hop count value is stored as CURRENT HOP CNT in the operand portion of the ADD DEVICE message 244 .

[0087] FIG. 1 A, shows the propagation of the ADD-DEVICE message 244 (M) to add Mark's wireless device 128 to the ad hoc network 132 . FIG. 1A applies to all short range wireless standards supporting ad hoc networks. The FIG. 1A shows the incrementing of the current hop count value attributed to Mark's added device 128 as the ADD-DEVICE message transits each existing device in the ad hoc network. As shown in FIG. 1 , in addition to specifying a name or alternate name on the naming menu 80 , the user may also enter a maximum hop count value, which is the maximum number of devices to which his/her name may be given. This value is stored as MAX HOP CNT in the operand portion of the ADD DEVICE message 244 (M). As the user, Mark's ADD DEVICE message 244 (M) propagates through consecutive ones of the wireless devices 124 , 126 , 116 , 114 , 108 , and 100 in FIG. 1 A, the current hop count value CURRENT HOP CNT in the message is incremented by “1” and is compared with the value of MAX HOP CNT. This process is shown in FIG. 3 , which is a network flow diagram of the process flow in the ad hoc network 132 , illustrating the propagation of the ADD-DEVICE message for adding the device 128 to the network. The effect of processing the ADD-DEVICE message in each consecutive wireless device 124 , 126 , 116 , 114 , 108 , and 100 is shown in FIG. 1B . FIG. 1B shows the incrementing of the current hop count value attributed to Mark's added device 128 , as it appears in the name manager table 232 stored in each consecutive device receiving Mark's ADD-DEVICE message 244 (M) in the ad hoc network. FIG. 1B applies to all short range wireless standards supporting ad hoc networks.

[0088] A portion of the process to add a new device is shown in FIG. 3 for the first three devices in the ad hoc network 132 , Paul's device 124 , Ian's device 126 , and Dan Jones' device 116 . The process continues through the remaining devices 114 , 108 , and 100 . Before joining the ad hoc network 132 , the user Mark enters his primary name “MARK”, an alternate name “MARK'S PC”, and the maximum hop count value of “4” that be desires, into his naming menu 80 . These values are stored as operands in the ADD DEVICE message 244 (M) of FIG. 1B . Mark's device 128 then joins the ad hoc network 132 in step 252 , by forming a communications link with Paul's wireless device 124 in step 254 , using the appropriate short range wireless system protocol to establish a wireless connection. This can be the protocol to establish a connection in the Bluetooth standard, in the IEEE 802.11 Wireless LAN standard, in the HIPERLAN Type 1 standard, in the HIPERLAN Type 2 standard, or in other wireless standards. Mark's wireless device 128 then sends the ADD DEVICE message 244 (M) of FIG. 1 B, to Paul's wireless device 124 in step 253 .

[0089] Paul's wireless device 124 receives the ADD DEVICE message 244 (M) in step 255 of FIG. 3 . FIG. 2C is a functional block diagram of the op code parser 242 in the application group 234 for the device 100 of FIG. 2 A, which is substantially identical to Paul's wireless device 124 . The op code parser 242 interprets the op code field ADD_DV of name distribution messages to be processed by the device and in response to the ADD DEVICE message 244 (M), invokes subroutine 201 in the application program 238 to process the ADD DEVICE message 244 (M).

[0090] Step 255 of FIG. 3 increments the current hop count value of “0” by “1”, and writes the new value of “1” into the CURRENT HOP CNT field of the A/D DEVICE message 244 (M). FIG. 1B shows the name manager table 232 (P) in Paul's device 124 , in which a name record is created for Mark's device 128 , to store information copied from Mark's ADD DEVICE message 244 (M). Among the fields in the name manager table 232 (P) are DEVICE ADDRESS, NAME, ALTERNATE NAME, HOP CNT FLAG, MAX HOP CNT, and CURRENT HOP CNT. The values copied from Mark's ADD DEVICE message 244 (M) are DEVICE ADDRESS =“ADDRESS(M)”, NAME=“MARK”, ALTERNATE NAME=“MARK'S PC”, MAX HOP CNT=“4”, and CURRENT HOP CNT=“1”. An example of a name manager table 232 similar to the name manager table 232 (P) in Paul's device 124 , is shown in FIG. 2B for Alice's device 100 .

[0091] FIG. 2B shows the name manager table 232 for the device 100 . Each device maintains its own name manager table 232 . The figure shows name records 236 for each device in the ad hoc network. Each name record associates its device's address with its user-selected name and alternate name. Each name record 236 includes a current hop count, a maximum hop count and a time stamp associated with each device's name. A conflict flag is stored in field 231 and a hop count flag is stored in field 233 . Each name record 236 includes, user selected display attributes for each respective name, such as font, color and alternate color in field 235 , animation features in field 237 , and sound in field 239 . Each name record 236 includes a display permission in field 241 for each respective name.

[0092] Step 255 then flows to step 256 where the ADD DEVICE message 244 (M) with its newly incremented hop count value of “1” is forwarded to the next device, which is Ian's wireless device 126 . Step 256 in Paul's device 124 , flows to step 257 where a determination is made as to whether Paul is authorized to display with his device 124 , the name or alternate name provided in the received ADD DEVICE message 244 (M). Reference to the ADD DEVICE message 244 (M) in FIG. 1B shows that the operand portion of the message includes a field “OK TO DISPLAY”, in which the user Mark has stored a “YES” value. This field gives a blanket authorization to all receiving devices, if its value is “YES”. The “YES” permission is stored in the display permission in field 241 of the name manager table 232 .

[0093] Alternately, if the value is “NO”, then there is no blanket authorization granted by the user Mark to display his name or alternate name. The lack of permission is stored as a value “NO” in the display permission in field 241 of the name manager table 232 . In order to enable a device receiving an ADD DEVICE message without a blanket authorization, to display the name or alternate name provided in the message, a subsequent SECURITY ATTRIBUTES message 248 , shown in FIG. 1 E, must be received from the user Mark. The SECURITY ATTRIBUTES message 248 , shown in FIG. 1 E, includes Mark's device address ADDRESS(M), an op code SEC_ATTR to identify its function as a security attribute message, and an operand portion that includes an AUTHORIZATION LIST. If the AUTHORIZATION LIST includes the name of a device, then that receiving device is authorized to display Mark's name or alternate name. In the example SECURITY ATTRIBUTES message 248 shown in FIG. 1 E, the authorization list includes “ALICE”, “IAN”, and “PAUL”. Thus, in this example, if Mark's ADD DEVICE message 244 (M) had specified “NO” in the “OK TO DISPLAY” field, then Dan Jones' device 116 would not have received authorization, and his device would be restricted from displaying Mark's names. This restriction can be enforced by appropriate cryptographic techniques.

[0094] As an example of a method to enforce the restriction of name display, the SECURITY ATTRIBUTES message 248 of FIG. 1E includes fields for DIGITAL SIGNATURE, CERTIFICATE, and PUBLIC KEY. Each device in the ad hoc network can distribute its public key and a trust certificate verifying the authenticity of its public key, signed by a trusted third party. Each device retains a private key corresponding to its own public key, to enable it to decrypt messages encrypted under its public key. Public keys can be used to restrict which devices can display a name. For example, the expression of the originating user Mark's name “MARK” and his alternate name “MARK'S PC” stored in the operand portion of the ADD DEVICE message 244 (M), can be encrypted under the public key of an intended recipient, such as the public key of the user Paul. Then, only Paul's device 124 can decrypt the originating user Mark's name “MARK” and his alternate name “MARK'S PC”, which is then capable of display with Paul's device 124 . The originating user Mark's name and his alternate name can be accompanied with a message authentication code to insure the integrity of the data. Alternately, the NAME and ALTERNATE NAME fields of Mark's ADD DEVICE message 244 (M) can be left blank and a “NO” value specified in its “OK TO DISPLAY” field. Then the originating user Mark's name “MARK” and his alternate name “MARK'S PC” can be encrypted under Paul's public key and stored with their message authentication codes in the AUTHORIZATION LIST of the SECURITY ATTRIBUTES message 248 . Then, only Paul's device 124 can decrypt the originating user Mark's name “MARK” and his alternate name “MARK'S PC”, which is then capable of display with Paul's device 124 . Methods to provide message authentication to insure the integrity of data are described in the book by Stephen Thomas entitled SSL and TLS, published by John Wiley and Sons, 2000. Two example algorithms for message authentication are RSA's Message Digest (MD5) and the Secure Hash Algorithm (SHA), both of which are described in the book by Stephen Thomas. Another reference that goes into greater detail in its discussion of data integrity methods is the book by Bruce Schneier entitled Applied Cryptography— 2nd Edition” published by John Wiley and Sons., 1996. The originating user, Mark's digital signature can be used to sign the name “MARK” and his alternate name “MARK'S PC”, to insure that Mark is the true source of the name and alternate name. Methods to generate and evaluate digital signatures are described in the book by Richard E. Smith entitled Internet Cryptography, published by Addison Wesley, 1997.

[0095] Step 257 of FIG. 3 flows to step 258 , where Paul's device 124 determines if the current hop count value of “1” for Mark's device, in the name manager table 232 (P), is greater than the value “4” in the MAX HOP CNT field. If it is, then a hop count flag is set in the HOP CNT FLAG field 233 of the name manager table 232 (P), which will prevent the Mark's name or alternate name from being displayed. In this stage of the example, the hop count flag is not set and thus Mark's name is not prevented from display with Paul's device 124 .

[0096] Step 258 of FIG. 3 flows to step 259 , where Paul's device 124 determines if the primary name “MARK” in Mark's ADD DEVICE message 244 (M) conflicts with another device name currently in the name manager table 232 (P) in Paul's device 124 . If there is a conflict, then one of those two conflicting devices must have its alternate name substituted for its primary name. This determination is performed by the resolution process 325 shown in the flow diagram of FIG. 3E . An example of a name manager table 232 similar to the name manager table 232 (P) in Paul's device 124 , is shown in FIG. 2B for Alice's device 100 . There it is seen that name manager table 232 stores the primary names and the alternate names of all of the devices 124 , 126 , 116 , 114 , 108 , and 100 in the ad hoc network of FIG. 1A . Step 259 compares the primary name “MARK” in Mark's ADD DEVICE message 244 (M) with each of the respective names “PAUL”, “IAN”, “DAN JONES”, “EVE”, “DAN”, and “ALICE”. Note that where an existing name already has a conflict flag “X” in field 231 , for example where the alternate name “DAN JONES” has been substituted for the primary name “DAN”, then step 259 compares the primary name “MARK” of the added device 128 with the existing alternate name “DAN JONES” of the device 116 .

[0097] The resolution process 325 shown in the flow diagram of FIG. 3E makes use of the TIME STAMP field in the name manager table 232 . Each ADD DEVICE message 244 includes a TIME STAMP field. The TIME STAMP field in Mark's ADD DEVICE message 244 (M) contains the value “15:30”, which is the time at which Mark's device completed its connection to the ad hoc network 132 . The value in the TIME STAMP field in Mark's ADD DEVICE message 244 (M) is copied into each name manager table 232 , as shown in FIG. 2B . In step 346 of name conflict resolution process 325 of FIG. 3 E, if the primary name “MARK” in Mark's ADD DEVICE message 244 (M) conflicts with another device name currently in the name manager table 232 (P) in Paul's device 124 , then the program flows to either step 348 or step 350 . The value of a time stamp can be the local time of day, the time of day expressed in coordinated universal time (UTC), or the instant of occurrence of other events, such as the manufacturing date of the device, the user's birth date, or the user's starting date with an organization of which he/she is a member.

[0098] In step 348 , if the existing device in the ad hoc network has the older time stamp, then Mark's device's alternate name “MARK'S PC” must be substituted for its primary name “MARK”. In step 350 , if Mark's added device 128 has the older time stamp, then the existing device in the ad hoc network must have its alternate name substituted for its primary name. Then steps 348 and 350 flow to the return step 352 . In an alternate embodiment, younger time stamps can be preferred over older time stamps.

[0099] Step 259 in FIG. 3 than flows to step 260 , where it is determined in Paul's device whether Mark's device 128 to be added is authorized to join the ad hoc network 132 . This determination can be based on a prior blanket prohibition against the addition of certain types of devices or particular user names, which can be provided in a stop list entered by the user Paul. The browser 211 in the wireless device 100 shown in FIG. 1 , displays a local display menu 84 , which allows the user to specify user names or classes of devices that are not to be connected, such as vending machines. If Mark's device 128 is authorized to join the ad hoc network 132 , then step 260 sends a copy of the updated name manager table 232 to Mark's device 128 . This is accomplished by forming an ADD DEVICE message 244 for each name record in the name manager table 232 (P) of Paul's device 124 and forwarding it to Mark's device 128 .

[0100] Step 260 then flows to step 262 in Mark's device 128 , where each name record in the updated name manager table 232 is received and stored as Mark's name manager table. Mark's device 128 can then display the names of the devices in the ad hoc network 132 shown in FIG. 1A .

[0101] If any of the devices in the ad hoc network 132 is not aware of the process to add a new device in FIG. 3 , then when that unaware device receives the ADD DEVICE message 244 , it will respond with an error message. In response to this error message, the forwarding device will use any alternate wireless connections that it currently has or which it can establish to any other devices in the network, to continue the propagation of the ADD DEVICE message 244 . Reference can be made to FIG. 1 I, which shows the ad hoc network 132 of FIG. 1A embodied as an IEEE 802.11 Wireless LAN independent basic service set (IBSS) 132 (I). Wireless devices in IEEE 802.11 ad hoc networks operating in the independent configuration mode, communicate directly with one another and can establish alternate paths, as shown in FIG. 1 I, to circumvent unaware devices. Reference can also be made to FIG. 1 J, which shows the ad hoc network 132 of FIG. 1A embodied as a HIPERLAN Type 2 Wireless LAN subnet 132 (H 2 ). Wireless devices in HIPERLAN Type 2 ad hoc networks communicate directly with one another and can establish alternate paths to circumvent unaware devices. Reference can also be made to FIG. 1 K, which shows the ad hoc network 132 of FIG. 1A embodied as a Bluetooth scatternet 132 (BT) composed of multiple, interconnected piconets. All communication in Bluetooth scatternet ad hoc networks is directed between the master device and each respective slave device in a piconet. Any Bluetooth device can belong to two piconets, and can either be a slave device in both piconets or a slave device in one piconet and a master device in the other. Bluetooth devices in the scatternet ad hoc network 132 (BT) can establish alternate paths to circumvent unaware devices by establishing memberships in more than one piconet.

[0102] FIG. 1C shows an example appearance of Alice's wireless device 100 , in which the browser 211 displays the name list 84 with the names of the seven wireless devices connected in the ad hoc network 132 shown in FIG. 1A . FIG. 1C applies to all short range wireless standards supporting ad hoc networks. Note that the CURRENT HOP COUNT for Paul's device 124 is “5”, which is greater than the MAX HOP CNT in Alice's name manager table 232 of FIG. 2B . Also notice that the CURRENT HOP COUNT for Mark's device is “6”, which is greater than the MAX HOP CNT in Alice's name manager table 232 of FIG. 2B . Thus, neither Paul's device name 94 nor Mark's device name 96 is displayed in Alice's browser 211 in FIG. 1 C. FIG. 1D shows an example appearance of the wireless device 100 , in which the browser 211 displays a network baseball game application 95 , which displays the names of some of the wireless devices connected in the ad hoc network 132 shown in FIG. 1A . Neither Paul's device name 94 nor Mark's device name 96 is displayed in Alice's browser 211 in FIG. 1D . Optional substitute, generic names can be displayed, such as “DEVICE X” for Paul's name 94 and “DEVICE Y” for Mark's name 96 . FIG. 1D applies to all