@@ -290,7 +290,7 @@ flow, and the types of packets for each bone are:
290290 - bone 14, acks of naxplanations to `~worwel-sipnum`,
291291 - bone 15, naxplanations to `~bacbel-tagfeg`.
292292
293−Each bone is handled separately by congestion control, and this is the reason
293+Each bone is handled separately by congestion control, and this is one reason
294294for their segregation. For example, say a two-packet `%plea` is sent on bone 12,
295295with `~bacbel-tagfeg` requesting to join a group on `~worwel-sipnum`.
296296Then `~worwel-sipnum` can ack the first packet on bone 13, and then send a nack
@@ -299,6 +299,14 @@ happened. Then `~worwel-sipnum` can also send a naxplanation on bone 15 saying
299299to `~bacbel-tagfeg` that they cannot join the group, to which an ack is received
300300on bone 14.
301301
302+Another reason to separate bones is to avoid race conditions. If
303+`~worwel-sipnum` and `~bacbel-tagfeg` attempt to start a flow with each other at
304+the same time we do not wish there to be a conflict when they receive each
305+others' packets. Flipping the last bit of the bone based on whether a packet is
306+an ack or a message fragment allows for `~worwel-sipnum` to create flow 8 with
307+`~bacbel-tagfeg` without coming into conflict with the flow 8 `~bacbel-tagfeg`
308+created for `~worwel-sipnum`.
309+
302310`%plea`s and `%boon`s are handled on separate bones so that e.g. sending a large
303311`%boon` doesn't stop an additional `%plea` from being received. It is also
304312simply cleaner to make each bone one-way. Acks and nacks are very small packets