typo fix authored by paul's avatar paul
...@@ -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:
![allocator-char-diagram](uploads/b09ac8ca880e598d01bba8bb0985afe6/allocator-char-diagram.png) ![allocator-char-diagram](uploads/b09ac8ca880e598d01bba8bb0985afe6/allocator-char-diagram.png)
... ...
......