Is TCP bidirectional or full-duplex?

smwikipedia picture smwikipedia · Feb 13, 2015 · Viewed 36.8k times · Source

Bidirectional and full-duplex are different concepts. For example the Ethernet is only half-duplex because at a specific time, only one host can send data over the wire, and it cannot send and receive data simultaneously.

So when we use TCP over an Ethernet, I think TCP is only bidirectional or half-duplex.

But here it says TCP is full-duplex. Why?

Answer

user207421 picture user207421 · Feb 13, 2015

It is both. It is bidirectional because it can send data in both directions, and it is full-duplex because it can do that simultaneously, without requiring line turnarounds, at the API level.

Of course at a lower level it may be restricted by the available physical layer.