Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Carrier-sense multiple access
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{short description|System allowing transmitters to take turns on a shared media}} '''Carrier-sense multiple access''' ('''CSMA''') is a [[medium access control]] (MAC) protocol in which a node verifies the absence of other [[Network traffic|traffic]] before [[Transmission (telecommunications)|transmitting]] on a shared [[transmission medium]], such as an [[Bus (computing)|electrical bus]] or a band of the [[electromagnetic spectrum]]. Under CSMA, a [[transmitter]] uses a carrier-sense mechanism to determine whether another transmission is in progress before initiating a transmission. 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, in turn, 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 (telecommunications)|collision]]-avoidance ([[CSMA/CA]]), collision-detection ([[CSMA/CD]]) and collision-resolution techniques. ==Access modes== {{SAFESUBST:<noinclude />#invoke:Unsubst||date=__DATE__ |$B= {{More citations needed|section | name = More citations needed section | find = {{#if:{{{find|}}}|{{{find|}}}|none}} | find2 = {{{find2|{{{unquoted|}}}}}} | date = {{{date|May 2025}}} | talk = {{{talk|}}} | small = {{{small|}}} }} }} Variations of CSMA use different algorithms to determine when to initiate transmission onto the shared medium. A key distinguishing feature of these algorithms is how aggressive or persistent they are in initiating transmission. A more aggressive algorithm may begin transmission more quickly and utilize a greater percentage of the available bandwidth of the medium. This is typically at the expense of an increased likelihood of collision with other transmitters. ===1-persistent=== 1-persistent CSMA is an aggressive transmission algorithm. When the transmitting node is ready to transmit, it senses the transmission medium for idle or busy. If idle, then it transmits immediately. If busy, then it senses the transmission medium continuously until it becomes idle, then transmits the message (a [[Frame (telecommunications)|frame]]) unconditionally (i.e. with probability=1). In case of a [[Collision (telecommunications)|collision]], the sender waits for a [[Randomness|random]] period of time and attempts the same procedure again. 1-persistent CSMA is used in CSMA/CD systems including [[Ethernet]]. ===Non-persistent=== Non persistent CSMA is a non-aggressive transmission algorithm. When the transmitting node is ready to transmit data, it senses the transmission medium for idle or busy. If idle, then it transmits immediately. If busy, it jumps to the final random waiting step of 1-persistent CSMA directly before repeating the whole logic cycle again: it does not persist in checking the busy channel trying to get its transmission through, hence the name. This approach reduces the chance of collision and results in overall higher medium throughput but with a penalty of longer initial delay compared to 1–persistent. ===P-persistent=== This approach lies between the 1-persistent and non-persistent CSMA access modes.<ref>F. Calí, M. Conti, and E. Gregori, "Dynamic IEEE 802.11: design, modeling and performance evaluation," IEEE J. Selected Areas Commun., vol. 18, pp. 1774–1786, Sept. 2000</ref> When the transmitting node is ready to transmit data, it senses the transmission medium for idle or busy. If idle, then it transmits immediately. If busy, then it senses the transmission medium continuously until it becomes idle, then transmits with probability ''p''. If the node does not transmit (the probability of this event is ''1-p''), it waits for a [[Randomness|random]] period of time before re-attempting the same procedure, using the same probability ''p''.<ref>{{Cite journal |last1=Kleinrock |first1=L. |last2=Tobagi |first2=F. |date=December 1975 |title=Packet Switching in Radio Channels: Part I--Carrier Sense Multiple-Access Modes and Their Throughput-Delay Characteristics |url=https://ieeexplore.ieee.org/document/1092768 |journal=IEEE Transactions on Communications |language=en |volume=23 |issue=12 |pages=1400–1416 |doi=10.1109/TCOM.1975.1092768 |s2cid=5879608 |issn=0096-2244|url-access=subscription }}</ref> If the transmission medium is not busy, it transmits again with the same probability ''p''. This probabilistic hold-off repeats until the frame is finally transmitted or when the medium is found to become busy again (i.e. some other node has already started transmitting). In the latter case the node repeats the whole logic cycle (which started with sensing the transmission medium for idle or busy) again. p-persistent CSMA is used in CSMA/CA systems including [[Wi-Fi]] and other [[packet radio]] systems. Note that ''p = 0''-persistent CSMA is different from non-persistent CSMA. Both can only transmit at the start of the procedure (if the channel is idle), but their behaviour on a busy channel differs: non-persistent CSMA doesn't attempt to sense the channel and restarts its logical cycle, whilst ''p = 0'' necessarily gets stuck in an infinite loop of waiting (since it has zero probability of transmission even if the channel goes back to being idle). ===O-persistent=== Each node is assigned a transmission order by a supervisory node. When the transmission medium goes idle, nodes wait for their time slot in accordance with their assigned transmission order. The node assigned to transmit first transmits immediately. The node assigned to transmit second waits one time slot (but by that time the first node has already started transmitting). Nodes monitor the medium for transmissions from other nodes and update their assigned order with each detected transmission (i.e. they move one position closer to the front of the queue).<ref>{{Cite patent|country=US|number=5761431|pubdate=1998-06-02|title=Order persistent timer for controlling events at multiple processing stations|assign1=Peak Audio Inc.|inventor1-last=Gross|inventor1-first=Kevin Paul|inventor2-last=Anderson|inventor2-first=Charles William|inventor3-last=Lieb|inventor3-first=Derek Wearin}}</ref> O-persistent CSMA is used by [[CobraNet]], [[LonWorks]] and the [[controller area network]]. ==Protocol modifications== When broadcasting over vehicular ad hoc networks, the original 1-persistence and p-persistence strategies often cause the [[broadcast storm]] problem.{{citation needed|date=November 2018}} To improve performance, engineers developed three modified techniques: weighted p-persistence, slotted 1-persistence, and slotted p-persistence.<ref> Najafzadeh; Ithnin; Karimi. "An Analytical Model for Sparse and Dense Vehicular Ad hoc Networks". [https://books.google.com/books?id=d8AaeYeLVK8C "Advances in Computer Science and Information Technology"]: First International Conference on Computer Science and Information Technology, CCSIT 2011. p. 211. </ref><ref> Choi et al.: [https://www.researchgate.net/publication/269591370_Robust_broadcast_scheme_regardless_of_vehicle_distribution_in_vehicular_ad_hoc_networks "Robust broadcast scheme regardless of vehicle distribution in vehicular ad hoc networks"]. EURASIP Journal on Wireless Communications and Networking 2014 2014:133. {{doi|10.1186/1687-1499-2014-133}} [accessed Sep 2, 2017]. </ref> ===Carrier-sense multiple access with collision detection=== {{Main|CSMA/CD}} [[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. CSMA/CD is used by [[Ethernet]]. === Carrier-sense multiple access with collision avoidance === {{Main|CSMA/CA}} 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. CSMA/CA is used by [[Wi-Fi]]. ===CSMA with Collision Resolution=== CSMA/CR uses priorities in the frame header to avoid collisions. It is used in the [[Controller Area Network]]. ===Virtual time CSMA=== VTCSMA is designed to avoid collision generated by nodes transmitting signals simultaneously, used mostly in hard [[Real-time computing|real-time systems]]. It uses two clocks to prioritize messages based on their deadline.<ref>{{cite book |last1=Krishna |first1=C. M. |last2=Shin |first2=K. G. |date=1997 |title=Real-Time Systems |publisher=McGraw-Hill Higher Education |page=240 |isbn=978-0-07-070115-1 }}</ref> ==See also== *[[Local collision]] *[[Remote collision]] ==References== {{Reflist}} ;General * [[Andrew S. Tanenbaum]], ''Computer Networks''. Prentice Hall, Upper Saddle River, NJ (2003). 892 pp. {{ISBN|0-13-066102-3}} {{Channel access methods}} [[Category:Media access control]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Channel access methods
(
edit
)
Template:Citation needed
(
edit
)
Template:Cite book
(
edit
)
Template:Cite journal
(
edit
)
Template:Cite patent
(
edit
)
Template:Doi
(
edit
)
Template:ISBN
(
edit
)
Template:Main
(
edit
)
Template:More citations needed
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)