Other Characteristics
Scatternet
Multiple piconets may cover the
same area. Since each piconet has a different master, the piconets hop
independently, each with their own channel hopping sequence and phase
as determined by the respective master. In addition, the packets carried
on the channels are preceded by different channel access codes as determined
by the master device addresses. As more piconets are added, the probability
of collisions increases; a graceful degradation of performance results
as is common in frequency-hopping spread spectrum systems.
If multiple piconets cover the same area, a unit can participate in two or more overlaying piconets by applying time multiplexing. To participate on the proper channel, it should use the associated master device address and proper clock offset to obtain the correct phase. A Bluetooth unit can act as a slave in several piconets, but only as a master in a single piconet. A group of piconets in which connections consists between different piconets is called a scatternet.
Synchronization
The piconet is synchronized by the system clock of the master.To
transmit on the piconet channel you need 3 pieces of information, The
(channel) hopping sequence, the phase of the sequence, and the CAC(Channel
Access Code) to place on the packets. The Channel Hopping Sequence The
Bluetooth Device Address of the master is used to derive this frequency
hopping sequence. The phase in the hopping sequence is determined by system
clock of the master. While the Channel Access Code is derived from the
Bluetooth Device Address of the master.
The slaves adapt their native clocks with a timing offset in order to match the master clock, giving then an estimated clock value. The offset is zero for the master as it's native clock is the master clock.
A 20us uncertainty window is allowed around the exact receive time in order for the access correlator for the receiver to search for the correct channel access code and get synchronized with the transmitter. When a slave returns from the hold mode, it can correlate over a bigger uncertainty window till they don't overlap slots. A parked slave periodically wakes up to listen to beacons from the master and re-synchronizes its clock offset.
Bluetooth Security
At the link layer, security is maintained by authentication of
the peers and encryption of the information. For this basic security we
need a public address which is unique for each device (BD_ADDR), two secret
keys (authentication keys and encryption key) and a random number generator.
First a device does the authentication by issuing a challenge and the
other device has to then send a response to that challenge which is based
on the challenge, it's BD_ADDR and a link key shared between them. After
authentication, encryption may be used to communicate.