dkelly at hiwaay.net
Thu Jul 16 13:38:03 UTC 2009
On Thu, Jul 16, 2009 at 02:49:11AM -0400, Michael Powell wrote:
> David Kelly wrote:
> > Since when does one have CSMA/CD when configured as full duplex? All
> > full duplex ethernet connections are point to point, machine to
> > machine, or machine to switch. There is no multiple access on full
> > duplex. No chance of collision.
> You are running Ethernet, right? CSMA/CD is part of the Ethernet
> framing protocol. It is present in the protocol independent of
> simplex/duplex, etc. As such the timing windows contain non-infinite
> discreet value ranges. It is integral to Ethernet and does not get
> 'switched off' or disappear just because a link is full-duplex.
Please explain more. I have coded ethernet and TCP/IP on 68HC12NE64
embedded microcontrollers and in full duplex the MAC doesn't listen nor
wait before transmitting. There is no carrier detect but for the status
from the PHY indicating a wire is present.
> These physical parameters drive the limitations designed into the
> Ethernet protocol. There are maximum distances in fiber just as there
> are in copper. If we could simply ignore these things and do whatever
> we want why would they need exist in the first place?
Because not all ethernets are full duplex.
Fiber transceivers are not "smart" devices the way switches are
semi-smart and routers are fully smart. What I've seen of fiber
transceivers they are no smarter than the old AUI to thick, thin, or
10baseT transceivers. So what is happening in your scenario where
ethernet over fiber works but will not work over copper due to "protocol
> They exist because the propagation speed in the medium is not instantaneous.
> This makes the problem time. The furthest apart two nodes can be located is
> the time it takes for the smallest Ethernet packet to get from one end to
> the other.
Why is the same not true with fiber?
> When a NIC transceiver is in the process of transmitting a packet it
> is also listening at the same time and calculating a CRC. It knows
> when a collision has occurred when the CRC does not match on both TX
> and RX. If they are too far apart in time, and both NICs key up at the
> same instant neither will ever know the collision has not yet
A collision can never occur full duplex. When full duplex is enabled the
receive verify function you describe is disabled.
> Both will assume no collision has occurred and queue up the next
> packet, and so on and so forth. The problem is time, and time is
> directly related to the propagation speed of the medium.
> This relationship to time is present in the Ethernet protocol. The
> misconception present is that "with full duplex there is no chance of
> collision" meaning that CSMA/CD is somehow magically turned off or
But it is turned off. A full duplex switch does not echo the sender's
bits back to the sender's receiver. A full duplex switch buffers the
incoming bits, reads the header, selects an output port, and then starts
sending the bits to that one port out of the FIFO. If it is a broadcast
packet then most cheap switches will wait until all ports are available
before sending the packet. Perhaps expensive switches will queue a copy
of the broadcast to each port.
Last sentences in last paragraph before See Also at
"Also, in Full Duplex Ethernet, collisions are impossible since data is
transmitted and received on different wires, and each segment is
connected directly to a switch. Therefore, CSMA/CD is not used on Full
Duplex Ethernet networks."
David Kelly N4HHE, dkelly at HiWAAY.net
Whom computers would destroy, they must first drive mad.
More information about the freebsd-questions