Carrier-sense multiple access (CSMA) is a media access control (MAC) protocol in which a node verifies the absence of other traffic before transmitting on a shared transmission medium, such as an electrical bus or a band of the electromagnetic spectrum.
A transmitter attempts to determine whether another transmission is in progress before initiating a transmission using a carrier-sense mechanism. That is, it tries to detect the presence of a carrier signal from another node before attempting to transmit. If a carrier is sensed, the node waits for the transmission in progress to end before initiating its own transmission. Using CSMA, multiple nodes may send and receive on the same medium. Transmissions by one node are generally received by all other nodes connected to the medium.
Variations on basic CSMA include addition of collision-avoidance, collision-detection and collision-resolution techniques.
CSMA/CD is used to improve CSMA performance by terminating transmission as soon as a collision is detected, thus shortening the time required before a retry can be attempted.
In CSMA/CA collision avoidance is used to improve the performance of CSMA. If the transmission medium is sensed busy before transmission, then the transmission is deferred for a random interval. This random interval reduces the likelihood that two or more nodes waiting to transmit will simultaneously begin transmission upon termination of the detected transmission, thus reducing the incidence of collision.
VTCSMA is designed to avoid collision generated by nodes transmitting signals simultaneously, used mostly in hard real-time systems. The VTCSMA uses two clocks at every node, a virtual clock (vc) and a real clock (rc) which tells "real time". When the transmission medium is sensed to be busy, the vc freezes, when the transmission medium is free, it is reset. Hence, calculating vc runs faster than rc when channel is free, and vc is not initiated when the transmission medium is busy...