Which is better analogy for describing the communication channel between two INET sockets:

one two-directional "pipe"
two unidirectional "pipes"

If I'm sending something to a two-directional "pipe" and then right away try to receive something from there, I'm expecting to get back what I just sent (unless other end managed to consume it in the meanwhile).
If there are two unidirectional pipes, one for sending and other for receiving (and vice versa for the other end), then I expect writes in one end don't affect the reads in the same end.
I'm new to sockets and after reading Python Socket HOWTO I wasn't able to tell which model is being used. I tried to deduce it by an experiment, but I'm not sure I set it up correctly. 
So, can sending in one end affect receiving in the same end, or are these directions separated as if there were two "pipes"?
A socket is like two unidirectional pipes. You won't ever read back data that you wrote. You'll only get data written by the other side.
Sockets analogy: a pipe or two pipes?