Extremely shooting from the hip here, but it seems like TCP does a pretty excessive thing in terms of establishing fully-in-order communications. Which is to say: any Bob message will be correctly placed between two Alice messages.
What seems way more useful, and easier to accomplish, is half-in-order communications: all Bob messages will be in order, all Alice messages will be in order, but it is unspecified in what order Alice and Bob messages interleave.
I know of/have found no written information to corroborate my intuition on this topic.