TDAT2004 Datakommunikasjon med nettverksprogrammering

Oppgave 41 - CSMA/CD

Knut Aasgaard Kirkhorn, Ingunn Sund og Nicole Uybengkee

 

Innholdsfortegnelse


1. Innledning

Carrier sense multiple access with collision detection, forkortet CSMA/CD, er et sett regler som bestemmer hvordan nettverksenheter svarer når to enheter prøver å bruke en datakanal samtidig. Når en slik kollisjon oppstår avsluttes overføringen fra begge verter og de må vente et tilfeldig intervall før de kan prøve å overføre på nytt igjen. Dette fører til at det tar kortere tid før et nytt forsøk kan initieres og til overføringen blir gjennomført.

CSMA/CD er en standard for overføring av pakker på ethernet (IEEE 802.3), og en forbedret versjon av CSMA, som hører hjemme i lenkelaget i lagmodellen. Lenkelagets ansvar er å overføre og klargjøre pakker som skal sendes mellom nettverkslagene.

[2][3]

2. Ønsket funksjonalitet

CSMA/CD er en variasjon av vanlig CSMA. En forbedring fra CSMA til CSMA/CD er at CSMA/CD avslutter overføringen i et tilfeldig intervall hos begge verter når en kollisjon oppstår. Dette fører til at det tar kortere tid til et nytt forsøk på overføring kan gjennomføres. Poenget med et tilfeldig intervall er at sjansen for kollisjon hos to eller flere noder som samtidig venter på å overføre minker. Svakheter med CSMA/CD er spesielt for travle busser. Overføring blir lite effektivt, det brukes unødvendig mye båndbredde og kan skape stor opphopning.

En stor fordel med CSMA/CD er at det er lett å implementere. Dette er en av hovedgrunnene til at det er en internasjonal standard og en viktig del av Ethernet, som er den mest utbredte arkitekturen for lokalnett.

CSMA/CD administrerer et delt medium for Ethernet. Å bruke delt medium har flere negative sider i form av ytelse og administrasjon. Eksempler på det er at bare en node i nettverket kan sende om gangen og aksess må reguleres. Nyere installasjoner av Ethernet benytter svitsjer. Bruk av svitsjer der datamaskiner er knyttet til hver sine porter fører til at de ikke har noen konkurranse om mediet.


CSMA/CD: illustrasjon av de ulike delene med CSMA/CD ved sending


Et alternativ til CSMA/CD er CSMA/CA. Det er også en variasjon av CSMA der CA står for “Collision Avoidance”. CSMA/CA går ut på at hvis overføringsmediet virker opptatt før en overføring, blir overføringen utsatt i et tilfeldig intervall. I trådløse lokalnett forsøker man å redusere sannsynligheten for at kollisjoner oppstår. I slike nettverk har ikke nodene mulighet til å bruke CSMA/CD, nodens eget signal vil overdøve andre noders signal når det høres fra sin egen radiomottaker. Kollisjoner blir derfor umulig å oppdage.

Andre alternativer til CSMA/CD er for eksempel VTCSMA (Virtual time CSMA) og CSMA/CARP. VTCSMA er utformet for å unngå kollisjoner som oppstår av noder som sender signaler samtidig og brukes vanligvis i sanntidssystemer. CSMA/CARP ligner på CSMA/CD, men CSMA/CARP har ingen måte å oppdage kollisjoner. CSMA/CARP prøver å unngå kollisjoner ved å bruke et system med overføringsprioriteter.

[2][3][4]

3. Virkemåte

3.1 Generell virkemåte 

CSMA er en teknologi for å håndtere kollisjoner som oppstår på et nettverk som benytter seg av et delt medium, for eksempel en elektrisk buss. Siden bare en node kan sende samtidig, må tilgang til mediet reguleres. CSMA baserer seg på konkurranseprinsippet, og nodene trenger ikke å vente på beskjed fra tjeneren av nettverket for å kunne sende en ramme. En ramme er en pakke og består av et headerfelt og en nyttelast. Denne teknologien gjør at mange noder kan dele samme nettverk (Multiple Access). Nodene sjekker om noen andre noder sender rammer ved å lytte på mediet (Carrier Sense) før den sender noe, dette reduserer kollisjoner. Kollisjoner kan likevel oppstå dersom en annen node sender en ramme akkurat samtidig som en annen node, selv om de begge lyttet og trodde det var ledig.

Når en node sender en ramme, overvåker den også strømnivået for å oppdage kollisjoner. Om verten oppdager en kollisjon vil den sende et jammesignal på kabelen. Dette jammesignalet forteller alle verter at det har oppstått en kollisjon og at de ikke bør sende data. En annen måte å oppdage kollisjoner er støyen som oppstår etter en kollisjon. Etter å ha sendt jammesignalet, venter verten en tilfeldig tid før den prøver å sende på nytt. Tiden må være tilfeldig for å unngå flest mulig kollisjoner. Dersom flere kollisjoner oppstår med samme ramme, øker ventetiden. Tiden blir beregnet ved en algoritme som heter “truncated binary exponential backoff”. 

I Ethernet (lokalt internett) brukes en versjon av CSMA som heter CSMA/CD. Ved trådløst internett bruker man CSMA/CA. CSMA/CD er en versjon av CSMA der hovedtanken er at kollisjoner er en naturlig del av en nettverksoperasjon, og ikke er til skade for sendelsene dersom de oppdages.

[2][5]

 
CSMA/CD: aktivitetsdiagram over prosedyren 

3.2 Prosedyre 

Prosessen for overføring av data ved CSMA/CD kan beskrives slik:

  1. Rammen er klar til overføring

  2. Dersom mediet er ledig kan man starte overføring av rammen

  3. Overføring av ramme, og dersom kollisjon oppstår går man til punkt 5

  4. Overføring er vellykket og det blir sendt en melding til laget over som sier at det har gått bra. Prosessen blir så avsluttet.

  5. Det blir sendt et 32-bit jammesignal som gjør at alle nodene får mulighet til å finne kollisjonen. Resten av rammeoverføringen blir så avbrutt.

  6. En tilfeldig ventetid blir beregnet. Når ventetiden er over går man tilbake til punkt 2.

[2]


CSMA/CD: mer detaljert illustrasjon over prosedyren

3.3 Jammesignal

Et jammesignal blir sendt av en vert over Ethernet for å indikere at det har oppstått en kollisjon. Signalet inneholder et 32-bit binærmønster sent av noden som informerer de andre nodene om at det har oppstått en kollisjon, og at de ikke kan sende.

I et CSMA/CD-nettverk brukes jammesignalet for å indikere at det har oppstått en kollisjon. Jammesignalet i et CSMA/CA-nettverk blir brukt for å indikere at en vert har planer om å sende noe.

[1]

3.4 Sen kollisjon

En sen kollisjon (“Late Collision”) er en type kollisjon som oppstår lenger inn i en pakkesending enn protokollen tillater. På et 10 megabit Ethernet vil en kollisjon regnes som sen hvis den oppstår etter de første 512 bitsene men informasjon har blitt sendt. Sene kollisjoner blir ikke sendt på nytt av Network Interface Controller (NIC), så det er opp til de øvre protokollagene å avgjøre om informasjon har gått tapt. 

Det skal ikke være mulig for sene kollisjoner å oppstå i velfungerende CSMA/CD nettverk. Hvis de oppstår er det vanligvis på grunn av full-duplex/half-duplex mistilpasning, for lang kabel, skadet kabel, for mange hubber eller ødelagte NICer.

[1][2]

3.5 “Channel capture effect”

En ulempe med CSMA/CD er at båndbredden ikke alltid blir rettferdig fordelt. Når alle maskiner som er koblet til nettet sender få rammer blir det omtrent lik access-tid per Network Interface Controller (NIC). Urettferdig fordeling kan oppstå hvis én NIC sender en større mengde rammer og dominerer nettverket. Denne effekten kalles “channel capture effect”. 

Et eksempel på dette er at node A og node B begge prøver å sende på en ledig linje samtidig. Siden begge to oppdager en kollisjon, venter begge en tilfeldig tid før de prøver igjen. Anta at A har lavere back-off-tid. A begynner da å sende, og B lar A fullføre før B sender. Hvis A ønsker å sende igjen, vil det oppstå en ny kollisjon, og begge må vente en tilfeldig tid før de prøver igjen. Siden B har hatt to kollisjoner på rad må B vente lenger enn sist. Da er det høy sannsynlighet for at A får sende først denne gangen også. Hvis det skjer, er det også høy sannsynlighet for at A vinner alle de påfølgende kampene, og etter 16 kollisjoner sier spesifikasjonen at B må ta en lang pause, og A kan sende uforstyrret.

[2][4]

4. Referanser 

4.1 Innhold 

[1] V. Beal, "What is CSMA/CD? Webopedia Definition", Webopedia.com, 2017. URL: http://www.webopedia.com/TERM/C/CSMA_CD.html. [Besøkt: 22. Mars 2017].

[2] Ø. Hallsteinsen, B. Klefstad og O. Skundberg, Innføring i datakommunikasjon, 2. utgave. TISIP og Gyldendal Akademisk, 2015, side 118-119 og 144-167.

[3] T. Pickett, "Layers 1 & 2 of the OSI Model - Contract Network Engineering", Contract Network Engineering, 2013. URL: http://www.tonypickett.com/2013/07/layer_1_2/. [Besøkt: 30. Mars 2017].

[4] "CSMA/CD: a physical layer protocol for dealing with network collisions", Linfo.org, 2005. URL: http://www.linfo.org/csma_cd.html. [Besøkt: 30. Mars 2017].

[5] "Carrier Sense Multiple Access Collision Detect (CSMA/CD) Explained : Learn Networking", Learn-networking.com, 2008. URL: http://learn-networking.com/network-design/carrier-sense-multiple-access-collision-detect-csmacd-explained. [Besøkt: 30. Mars 2017].

4.2 Bilder

  • No labels