... | @@ -336,7 +336,7 @@ At Bluetooth service startup the number of read characteristics is known so for |
... | @@ -336,7 +336,7 @@ At Bluetooth service startup the number of read characteristics is known so for |
|
|
|
|
|
- Allocator Characteristic
|
|
- Allocator Characteristic
|
|
|
|
|
|
The allocator characteristic is a readable characteristic that displays a list of SESSION<sub>ID</sub>'s of connected devices.
|
|
The allocator characteristic is a readable characteristic that displays a list of `SESSION_ID`'s of connected devices.
|
|
When a new central tries to make a connection to the peripheral device, it will first check this list to confirm it is not already currently reading from that peripheral device.
|
|
When a new central tries to make a connection to the peripheral device, it will first check this list to confirm it is not already currently reading from that peripheral device.
|
|
This system also allows centrals to monitor when a peripheral is fully busy with devices reading from it.
|
|
This system also allows centrals to monitor when a peripheral is fully busy with devices reading from it.
|
|
|
|
|
... | @@ -352,7 +352,7 @@ At its core, peer discovery is similar to the approach listed in the BLESSED sec |
... | @@ -352,7 +352,7 @@ At its core, peer discovery is similar to the approach listed in the BLESSED sec |
|
|
|
|
|
Because each peripheral has a limited number of read characteristics, protocols built on top of this strategy should prioritize quicker, more frequent connections rather than long lasting data transfers.
|
|
Because each peripheral has a limited number of read characteristics, protocols built on top of this strategy should prioritize quicker, more frequent connections rather than long lasting data transfers.
|
|
|
|
|
|
A central connects to a peripheral by first by reading the peripheral's allocator characteristic, and confirming it is not already reading from that peripheral. On the connection, the central gives the peripheral it's SESSION<sub>ID</sub>, which is then added to the peripheral's allocator characteristic. By reading this update, the central receives information on which read characteristic to read from. The full handshake as implemented in `blessed-gatt-allocator-vuln` and `blessed-gatt-allocator-pairfix` is outlined below:
|
|
A central connects to a peripheral by first by reading the peripheral's allocator characteristic, and confirming it is not already reading from that peripheral. On the connection, the central gives the peripheral it's `SESSION_ID`, which is then added to the peripheral's allocator characteristic. By reading this update, the central receives information on which read characteristic to read from. The full handshake as implemented in `blessed-gatt-allocator-vuln` and `blessed-gatt-allocator-pairfix` is outlined below:
|
|
|
|
|
|

|
|

|
|
|
|
|
... | | ... | |