logo

Kollisionsdetektion i CSMA/CD

CSMA/CD (Carrier Sense Multiple Access/ Collision Detection) er en metode til medieadgangskontrol, der blev brugt i vid udstrækning i Early Ethernet-teknologi/LAN'er, da der plejede at være delt bustopologi, og hver node (computere) var forbundet med koaksiale kabler. Nu er et Days Ethernet fuld duplex, og topologi er enten Star (tilsluttet via switch eller router) eller punkt til punkt (direkte forbindelse). Derfor bruges CSMA/CD ikke, men de understøttes dog stadig.

Overvej et scenario, hvor der er 'n' stationer på et link, og alle venter på at overføre data gennem den kanal. I dette tilfælde vil alle 'n' stationer gerne have adgang til linket/kanalen for at overføre deres egne data. Problemet opstår, når mere end én station transmitterer data i øjeblikket. I dette tilfælde vil der være kollisioner i dataene fra forskellige stationer.



CSMA/CD er en sådan teknik, hvor forskellige stationer, der følger denne protokol, er enige om nogle vilkår og kollisionsdetektionsforanstaltninger for effektiv transmission. Denne protokol bestemmer, hvilken station der skal sende hvornår, så data når destinationen uden korruption.

Hvordan virker CSMA/CD?

    Trin 1: Tjek, om afsenderen er klar til at sende datapakker. Trin 2: Kontroller, om transmissionsforbindelsen er inaktiv.
    Afsender skal blive ved med at kontrollere, om transmissionslinket/mediet er inaktivt. Til dette registrerer den kontinuerligt transmissioner fra andre noder. Afsender sender dummy-data på linket. Hvis den ikke modtager noget kollisionssignal, betyder det, at linket er inaktivt i øjeblikket. Hvis den registrerer, at transportøren er fri, og der ikke er nogen kollisioner, sender den dataene. Ellers afholder den sig fra at sende data. Trin 3: Overfør dataene og kontroller for kollisioner.
    Afsender transmitterer sine data på linket. CSMA/CD bruger ikke et 'bekræftelse'-system. Den kontrollerer for vellykkede og mislykkede transmissioner gennem kollisionssignaler. Under transmission, hvis et kollisionssignal modtages af noden, stoppes transmissionen. Stationen sender derefter et jam-signal til linket og venter i tilfældige tidsintervaller, før den sender rammen igen. Efter nogen tilfældig tid forsøger den igen at overføre dataene og gentager ovenstående proces. Trin 4: Hvis der ikke blev registreret nogen kollision under udbredelsen, fuldfører afsenderen sin rammetransmission og nulstiller tællerne.

Hvordan ved en station, om dens data kolliderer?




Overvej ovenstående situation. To stationer, A & B.
Udbredelsestid: Tp = 1 time (signal tager 1 time at gå fra A til B)

At time t=0, A transmits its data. t= 30 mins : Collision occurs.>

Efter kollisionen opstår, genereres et kollisionssignal og sendes til både A & B for at informere stationerne om kollisionen. Da kollisionen skete midtvejs, tager kollisionssignalet også 30 minutter at nå A & B.

Therefore, t=1 hr: A & B receive collision signals.>

Dette kollisionssignal modtages af alle stationerne på denne forbindelse. Derefter,



Hvordan sikrer man, at det er vores stations data, der kolliderede?
Til dette, Transmissionstid (Tt)> Udbredelsestid (Tp) [Rough bound]
Dette er fordi vi ønsker, at før vi sender den sidste bit af vores data fra vores station, skal vi i det mindste være sikre på, at nogle af bitsene allerede har nået deres destination. Dette sikrer, at forbindelsen ikke er optaget, og kollisioner vil ikke forekomme.
Men ovenfor er en løs afgrænsning. Vi har ikke brugt den tid, kollisionssignalet tog på at rejse tilbage til os. Overvej derfor det værst tænkelige scenarie.

Overvej ovenstående system igen.

At time t=0, A transmits its data. t= 59:59 mins : Collision occurs>

Denne kollision sker lige før dataene når B. Nu tager kollisionssignalet igen 59:59 minutter at nå A. Derfor modtager A kollisionsinformationen cirka efter 2 timer, det vil sige efter 2 * Tp.

Hence, to ensure tighter bound, to detect the collision completely, Tt>>= 2 * By>

Dette er den maksimale kollisionstid, som et system kan tage for at opdage, om kollisionen var af dets egne data.

Hvad skal minimumslængden af ​​pakken være, der skal transmitteres?

Transmission Time = Tt = Length of the packet/ Bandwidth of the link [Number of bits transmitted by sender per second] Substituting above, we get, Length of the packet/ Bandwidth of the link>= 2 * By>
Length of the packet>= 2 * Tp * Båndbredde på linket>

Polstring hjælper i tilfælde, hvor vi ikke har så lange pakker. Vi kan udfylde ekstra tegn til slutningen af ​​vores data for at opfylde ovenstående betingelse.

Kollisionsdetektion i CSMA/CD involverer følgende funktioner:

    Carrier sense: Inden data overføres, lytter en enhed til netværket for at kontrollere, om transmissionsmediet er ledigt. Hvis mediet er optaget, venter enheden, indtil den bliver ledig, før den transmitterer data. Multiple Access: I et CSMA/CD-netværk deler flere enheder det samme transmissionsmedium. Hver enhed har lige adgang til mediet, og enhver enhed kan overføre data, når mediet er ledigt. Kollisionsdetektion: Hvis to eller flere enheder transmitterer data samtidigt, opstår der en kollision. Når en enhed registrerer en kollision, stopper den straks med at sende og sender et jam-signal for at informere alle andre enheder på netværket om kollisionen. Enhederne venter derefter et tilfældigt tidspunkt, før de forsøger at sende igen, for at reducere chancerne for endnu en kollision. Backoff-algoritme: I CSMA/CD bruges en backoff-algoritme til at bestemme, hvornår en enhed kan gentransmittere data efter en kollision. Algoritmen bruger en tilfældig forsinkelse, før en enhed gentransmitterer data, for at reducere sandsynligheden for, at en anden kollision opstår. Minimumsrammestørrelse: CSMA/CD kræver en minimumsrammestørrelse for at sikre, at alle enheder har tid nok til at registrere en kollision, før transmissionen slutter. Hvis en ramme er for kort, registrerer en enhed muligvis ikke en kollision og fortsætter med at sende, hvilket fører til datakorruption på netværket.

Fordele ved CSMA/CD:

    Enkel og udbredt: CSMA/CD er en meget brugt protokol til Ethernet-netværk, og dens enkelhed gør den nem at implementere og bruge.
    Retfærdighed: I et CSMA/CD-netværk har alle enheder lige adgang til transmissionsmediet, hvilket sikrer retfærdighed i datatransmission.
    Effektivitet: CSMA/CD giver mulighed for effektiv brug af transmissionsmediet ved at forhindre unødvendige kollisioner og reducere netværksoverbelastning.

Ulemper ved CSMA/CD:

    Begrænset skalerbarhed: CSMA/CD har begrænsninger med hensyn til skalerbarhed, og den er muligvis ikke egnet til store netværk med et stort antal enheder.
    Sårbarhed over for kollisioner: Selvom CSMA/CD kan registrere kollisioner, kan den ikke forhindre dem i at opstå. Kollisioner kan føre til datakorruption, retransmissionsforsinkelser og reduceret netværksydelse.
    Ineffektiv brug af båndbredde: CSMA/CD bruger en tilfældig backoff-algoritme, der kan resultere i ineffektiv brug af netværksbåndbredde, hvis en enhed konstant oplever kollisioner.
    Modtagelighed for sikkerhedsangreb: CSMA/CD giver ingen sikkerhedsfunktioner, og protokollen er sårbar over for sikkerhedsangreb såsom pakkesniffing og spoofing.

Læs næste – Effektivitet af CSMA/CD