Also stands for Collision Detecting Multi-Access, a scheme by which multiple devices can transmit data on a network in an uncoordinated manner. CDMA governs the transmission of data on Ethernet (IEEE 802.3) networks, and thus is vitally important to what you're doing right now.

In CDMA, when a device wants to transmit a packet of data it does so immediately, rather than first checking to see if the network is busy (i.e. there is another transmission in progress).

Device "a" transmits a packet of data. As it transmits, it "listens" to the network to ensure that what it hears is its own data packet. If another device "b" is transmitting data at the same time as device "a", as device "a" listens to the network it will here device "b"'s transmission interfering with its own. In this manner, a simultaneous use of the network, or a "collision", can be detected.

Because device "a" must detect the collision while it is still transmitting its packet, the signal from device "b" must be received before device "a" has finished its transmission. Therefore, the size of a packet that can be sent is restricted such that the time it takes to transmit the packet is less than or equal to the time it will take the signal from device "b" to reach device "a". Thus, even as device "a" sends the end of its packet it will detect the interference from the beginning of device "b"'s packet while the transmission is still in progress.

As such, in a CDMA network, the maximum size of a data packet is the transmission rate (bits per second) times the signal propogation delay (roughly the speed of light (C) times the length of the cable) when the distance on the network between any two devices is the maximum distance allowed.

When a collision occurs, all of the colliding packets must be re-sent. However, if both device "a" and "b" attempted to retransmit their packets in the same instant, the collision would simply repeat. In order to avoid this problem, each device randomly selects a time slice from a window of time that is two time slices long (the length of the time slice is the transmission time for a packet). Hopefuly, the collision will not reoccur, however because both devices may randomly choose the same time slice for retransmission, each device will continue to retry the transmission, doubling the number of time slices in the window each time, until there are 32768 time slices in the window. If the packets are still colliding, the transmission is abandoned.

editor's note:
CDMA is referenced here as the generic term for Collision-Detect Multi-Access busses, not in the specific communications usage.

iceowl: 2/11/03