CSMA

Fra Wikipedia, den frie encyklopædi

Carrier sense multiple access (CSMA) er en media access control-protokol, hvori en knude verificerer fraværet af anden netværkstrafik før afsending på et delt transmissionsmedium som for eksempel en datakommunikationsbus eller et bånd i det elektromagnetiske spektrum.

Senderen forsøger at afgøre, om der er en anden transmission i gang, før den sætter gang i sin transmission, hvilket gøres ved hjælp af en såkaldt carrier sense-mekanisme. Det vil sige, at den forsøger at afgøre, om der er en bærebølge til stede fra en anden knude, før den forsøger at sende sit signal. Hvis en carrier (bærer) bliver sensed (opfattet), venter knuden på, at den transmission, der er i gang, afsluttes, før knuden sætter gang i sin transmission. Ved at bruge CSMA kan mange knuder sende og modtage på samme medie. Transmissioner fra en knude bliver i almindelighed modtaget af alle andre knuder forbundet til mediet.

Variationer af CSMA omfatter tilføjelser af, om kollisioner skal undgås, opfattes eller søgt løst.

  • CSMA/CA: Ved CSMA/CA undgås kollisioner for at forøge effektiviteten af CSMA. Hvis transmissionsmediet opfattes som optaget før transmissionen, så udsættes den nye transmission et stykke tid (tilfældig længde). Denne tilfældige længde reducerer sandsynligheden for, at to eller flere knuder, der venter på at sende et signal, samtidig begynder transmissionen, når den nuværende transmission er afsluttet, hvorved kollionschancen reduceres.
  • CSMA/CD: CSMA/CD anvendes for at øge effektiviteten af CSMA ved at afslutte transmissionen, så snart en kollision opfattes, hvorved tiden, der går før et nyt forsøg kan gøres, forkortes.
  • VTCSMA: Virtuel tid-CSMA er beregnet på at undgå kollisioner genereret af knuder, der transmitterer signaler samtidig, mest anvendt i tunge realtidssystemer. VTCSMA anvender to ure på hver knude, et virtuelt ur (vc) og et realtidsur (rc), som meddeler den reelle tid. Når transmissionsmediet opfattes som værende optaget, stopper vc, og når mediet er tilgængeligt, nulstilles vc. Derfor går beregningen af vc hurtigere end rc, når kanalen er tilgængelig, og vc nulstilles ikke, når transmissionsmediet er optaget.