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 timing?" > 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 > occurred. 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 > excluded. 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 http://en.wikipedia.org/wiki/Carrier_sense_multiple_access_with_collision_detection: "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, dke...@hiwaay.net ======================================================================== Whom computers would destroy, they must first drive mad. _______________________________________________ email@example.com mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to "freebsd-questions-unsubscr...@freebsd.org"