Why is a full duplex Ethernet connection significantly faster ?

A full duplex connection is more than twice as fast as half duplex ? Why ? The real point of this question is that a half duplex connection is much slower than full duplex connection.

Some Basics

Lets recap some of the basics.

Half Duplex

A half duplex Ethernet port must detect collisions on the broadcast medium. A small process in the network driver checks that the medium is free before transmitting thus adding a small amount of delay. The driver must also monitor for a collision and, if a collision occurs, must backoff for a random interval before checking availability and retransmitting the frame.

Full Duplex

A full duplex port has no requirement to check for collisions and thus immediately transmits the frame. And has no need to check for collisions (thus having a secondary benefit on driver and CPU performance). The driver can immediately transmit the frame without any delay.

Acknowledgements, Collisions and CPU

It is easy to forget that data transfer is a two way process. Consider a large file transfer where data is mostly flowing in a single direction. TCP/IP will transmit acknowledgements regularly, and these frames are returned to the sender. It is certain that some of these ACK’s will collide and cause a delay in the transmission. Any Ethernet collision will cause a pause in transmission, CPU will be expended to manage the buffers / queues will determining if the packet can be retransmitted.

In a full duplex connection, each direction has dedicated bandwidth and collisions cannot occur. This removes the delay and retransmissions that occur in a shared medium.



A Ethernet port at half duplex will be appreciably slower than a full duplex connection. This is a good illustration of the difference between bandwidth and speed. The speed of 100Mbps half duplex connection is still 100Mbps, but the [slider title="maximum bandwidth is about 60 Mbps"]I can’t provide you with exact numbers but it will be less than 70Mbps, and tends to vary according to the application. Small frames perform OK, big frames go slower in half duplex. Either way you will not be able to move as much data as a full duplex connection. [/slider]

You should always remember the difference when designing high performance networks.

About Greg Ferro

Greg Ferro is a Network Engineer/Architect, mostly focussed on Data Centre, Security Infrastructure, and recently Virtualization. He has over 20 years in IT, in wide range of employers working as a freelance consultant including Finance, Service Providers and Online Companies. He is CCIE#6920 and has a few ideas about the world, but not enough to really count.

He is a host on the Packet Pushers Podcast, blogger at EtherealMind.com and on Twitter @etherealmind and Google Plus

You can contact Greg via the site contact page.

Subscribe For Weekly Updates by Email

Get a Weekly Summary of Latest Articles and Posts to your Email Inbox Every Sunday

Thanks for signing up. Look for the email from MailChimp & make sure you confirm your email address. You may need to check your spam or gmail settings to be sure of receiving the email.

Note: You can unsubscribe at any time using the link at the bottom of every email.