CSMA (Carrier Sense Multiple Access) je pravděpodobnostní protokol přístupu k médiu (Media Access Control protocol, MAC protocol), ve kterém uzel ověřuje nepřítomnost dalšího provozu před vysíláním na sdíleném fyzickém médiu, jako například elektrickém propojovacím vedení či pásmu elektromagnetického spektra. Jedná se o modifikaci sítě Aloha.

Carrier Sense“ („Naslouchání nosné“) popisuje fakt, že vysílač naslouchá nosné vlně před pokusem vysílat. To znamená, že se pokouší detekovat přítomnost signálu přenášeného z jiné stanice před pokusem o vysílání. Je-li nosná detekována, uzel před pokusem o započetí jeho vlastního vysílání počká, než probíhající vysílání skončí.

Multiple Access“ („Vícenásobný přístup“) popisuje fakt, že na médiu vysílá a přijímá více uzlů. Vysílání jednoho uzlu je obecně přijímáno všemi ostatními uzly užívajícími médium.

Současné vysílání více uzlů vede ke kolizi rámců. Více vysílání navzájem interferuje, takže jsou všechny zkresleny a přijímače nejsou schopny rozlišit překrývající se přijaté signály jeden od druhého. V sítích CSMA je nemožné zcela zabránit kolizím, avšak existují způsoby, jak se s nimi vypořádat.

V čistém CSMA je pro zabránění kolizím použito jen naslouchání nosné. Pokud se dva uzly pokusí vysílat v téměř totožném čase, žádný nedetekuje nosnou, takže oba začnou vysílat. Vysílající nezjišťují kolize, takže přenesou celý rámec (a plýtvají šířkou pásma). Přijímače nemohou rozlišit mezi kolizemi a jinými zdroji chyb rámců, takže obnova z kolize závisí na schopnosti komunikujících uzlů detekovat chyby rámců a vyvolat proceduru obnovy z chyb. Například přijímač nepošle požadované potvrzení, což přiměje vysílač myslet si, že došlo k vypršení časového limitu a opakovat pokus o odeslání.

V CSMA/CA (CSMA s předcházením kolizím, Carrier Sense Multiple Access With Collision Avoidance) musí každý uzel informovat ostatní uzly o úmyslu vysílat. Jakmile byly ostatní uzly informovány, informace je vyslána. Toto opatření zabrání kolizím, protože všechny uzly vědí o vysílání dříve, než k němu dojde. Kolize jsou nicméně stále možné a nejsou detekovány, takže mají stejné důsledky jako v čistém CSMA. CSMA/CA se využívá především v bezdrátových sítích, protože účastníci bezdrátového přenosu nejsou schopni zároveň vysílat a přijímat.

V CSMA/CD (CSMA s detekcí kolizí, Carrier Sense Multiple Access With Collision Detection) jsou vysílající uzly schopny detekovat výskyt kolize a zastavit vysílání okamžitě a počkat náhodnou dobu před dalším pokusem o odeslání. Toto vede k mnohem efektivnějšímu využití média, protože se neplýtvá časem na vysílání celých kolidujících rámců. CSMA/CD však nelze použít pro všechna média (např. pro rádio) a vyžaduje přídavnou elektroniku (to při současných technologiích nepředstavuje vážnější problém, ale je jedním z důvodů proč Apple použil LocalTalk založený na CSMA/CA namísto tehdy podstatně dražšího Ethernetu).

V CSMA/BA (CSMA s bitovou arbitráží, Carrier Sense Multiple Access With Bitwise Arbitration, rovněž známo jako CSMA/CR, Carrier Sense Multiple Access with Collision Resolution, CSMA s rozlišením kolizí) je všem uzlům na propojovacím vedení přiřazeno identifikační číslo či kód priority. Při výskytu kolize jeden z uzlů pokoušejících se vysílat současně dostane prioritu vysílat podle identifikačního čísla či kódu priority (oproti počkání náhodnou dobu a znovuvyslání jako v CSMA/CD). Používáno v CAN komunikacích, často k nalezení na vozidlech.

Existuje další novější technologie zvaná CSMA/CP (CSMA se zábranou kolizím, Carrier Sense Multiple Access With Collision Prevention).

Existují tři typy kolizí:

  • Lokální kolize
  • Vzdálená kolize
  • Pozdní kolize

Protokoly používající CSMA

editovat

Reference

editovat

V tomto článku byl použit překlad textu z článku Carrier sense multiple access na anglické Wikipedii.