Bluetooth is designed for communication over a small network called a piconet. The simplest configuration is a point-to-point piconet, with one device designed as a "master" and the other a "slave." The master initiates the communication link, and in general, has control over the network's timing. Up to seven slaves can be connected to a master in a point-to-multipoint configuration. An example of this kind of operation is a smartphone (master) connecting to multiple Bluetooth slaves—a Bluetooth headset for streaming music, a Bluetooth keyboard as an input and a second smartphone for Bluetooth-based file transfers. This kind of system implies an ad-hoc network with no fixed roles or designations. Also, a Bluetooth master can dissolve its piconet and then go join a different piconet as a slave. Here's an example of Bluetooth network organization; Network 1 is a piconet in standalone mode, Network 2 is a scatternet:
A Bluetooth device can be a slave in more than one network (an example would be a multi-point Bluetooth headset that connects to a smartphone and a laptop simultaneously, and the data input from each source device switches the operation of the headset), or a slave in one network and a master in another. Configurations that go beyond the master-and-seven-slave setup are called scatternets.
Establishing A Bluetooth Piconet
Initiating a piconet is done by a master, and the Bluetooth protocol establishes a universal method for establishing links:
- INQUIRY: the master sends out an inquiry to determine which devices are in range
- INQUIRY RESPONSE: the devices hearing the inquiry respond with specific information (their paging parameters)
- PAGE: the master then pages the specific device it wants to connect to
- PAGE RESPONSE: the paged device acknowledges and responds
- LINK PARAMETER EXCHANGE: now the two devices exchange their link parameters, and bi-directional data transfer can begin.
Each Bluetooth device can be in a number of states, depending on the commands sent to it (either internal, or based upon the type/commands of received data packets over the radio) and the type of operation that is expected of it. The three overall states are "standby," "connection," and "park." Each device maintains its own state, and the master maintains a list of its slaves' states (or expected states). There are also a number of sub-states: page, page scan, inquiry, inquiry scan, master response, slave response and inquiry response.