duplex

Hi all,

What is the difference between half duplex and full duplex? What are the advantages and disadvantages of each mode, if any?

Thanks.

In very general terms, half duplex means that you can send stuff in one direction at a time. Full duplex means that you can dend stuff in both directions at the same time.

On the cop shows on TV, you hear the cop using his radio..."Come in Headquaters....over". And then he listens. He is using a half duplex system.

When you talk on the phone, you are using a full duplex system.

Comparing the two, the advantages of full-duplex are obvious. But half-duplex requires less resources to implement.

So in general, you use full-duplex if you can. But if you have some simpler device that is only half-duplex, then you go with half-duplex, since it's better than nothing.

In ethernet context, for half duplex mode collision detection is required at the NIC end, I assumed.

But for full duplex mode, is collision detection required at the NIC end? Or is the collision detection being handled by the hub or switch, thereby lighten the load of NIC?

With half duplex ethernet in a 10baseT environment, collisions can occur between the network card and the hub port when they both try to talk at they same time. If either one detects a collision, I would guess that they both will, but it might depend on the length on the cable. In any event both must be ready to detect collisions. And when one detects a collisions, it transmits a jamming signal that the other would see anyway. NB, with a modern 10baseT hub, the only collisions possible are between a host's incoming and outgoing packets. One host's traffic will not collide with another host's traffic. This is very different from the old 10base5 ethernet.

Full duplex ethernet eliminates collisions and this is a major performance boost. (This is what the host sees and describes the connection between the hub and the host. I don't know what in happening inside the hub.) Full duplex 10baseT did exist for awhile, but mostly you see full duplex 100baseT. 1000baseT is out, but I have never worked with it. Using 100baseT as my example, in addition to the no collisions concept, some folks claim that you also get a 100 megabits in both directions. Others claim that the 100 megabits is shared bandwidth. I don't know who is correct.

But there is a nasty landmine here and I have stepped on it dozens of times. The standards guys allow something called autonegoiation. This is intended for, say, a visitors office. You are supposed to be able to have a network connection that allows your visitor to just plug in a laptop and everything automatically works.

The trouble is that this autonegoiation doesn't work right and you end up with one side in half-duplex and the other in full-duplex. This is a disaster because the HD side is detecting collisions and sending jamming signals which the FD side ignores. The performance impact is incredible. So we have to turn off autonegoiation on all of our boxes and lock them in to 100 FD mode.