Simple example: you have 3 peers A, B , C.
So, you can represent is in this way:
�� A<->B , A<->C , B<->C,
or this:
�� A -> (B,C)
�� B -> (A, C)
�� C -> (A,B)
The bidirectional model implies that you have symmetry in number of outgoing and incoming channels (hence <->)..
and if you send data over one of them, only single node will receive it.
Logically, that leads to sending same data to two different channels. So, at very beginning you nailing down
how the traffic is going to flow.
With unidirectional model, as illustrated when you sending data over one channel,
it will be delivered to all participants, and you don't have to do it yourself - the transport layer handles it for you.
The thing is, that the way how data gets to receivers is heavily depends on network topology: