CSMA/CD (Carrier Sense Multiple Access/ Collision Detection) är en mediaåtkomstkontrollmetod som användes flitigt i tidig Ethernet-teknik/LAN när det brukade vara delad busstopologi och varje nod (datorer) var anslutna med koaxialkablar. Nu är ett Days Ethernet Full Duplex och Topology är antingen Star (ansluten via Switch eller Router) eller Point to Point (direktanslutning). Därför används inte CSMA/CD men de stöds ändå.
Tänk på ett scenario där det finns 'n' stationer på en länk och alla väntar på att överföra data via den kanalen. I det här fallet skulle alla 'n' stationer vilja komma åt länken/kanalen för att överföra sina egna data. Problemet uppstår när mer än en station sänder data för tillfället. I detta fall kommer det att bli kollisioner i data från olika stationer.
CSMA/CD är en sådan teknik där olika stationer som följer detta protokoll kommer överens om vissa villkor och kollisionsdetekteringsåtgärder för effektiv överföring. Detta protokoll bestämmer vilken station som ska sända när så att data når destinationen utan korruption.
Hur fungerar CSMA/CD?
- Steg 1: Kontrollera om avsändaren är redo att överföra datapaket. Steg 2: Kontrollera om överföringslänken är inaktiv.
Avsändaren måste fortsätta att kontrollera om överföringslänken/mediet är inaktivt. För detta känner den kontinuerligt av överföringar från andra noder. Avsändaren skickar dummydata på länken. Om den inte tar emot någon kollisionssignal betyder det att länken är inaktiv för tillfället. Om den känner av att transportören är ledig och det inte förekommer några kollisioner, skickar den data. Annars avstår den från att skicka data. Steg 3: Överför data och kontrollera kollisioner.
Avsändaren sänder sina data på länken. CSMA/CD använder inte ett 'bekräftelse'-system. Den kontrollerar framgångsrika och misslyckade överföringar genom kollisionssignaler. Under överföring, om en kollisionssignal tas emot av noden, stoppas överföringen. Stationen sänder sedan en störningssignal till länken och väntar på slumpmässiga tidsintervall innan den skickar om ramen. Efter en slumpmässig tid försöker den återigen överföra data och upprepar ovanstående process. Steg 4: Om ingen kollision upptäcktes vid fortplantningen, slutför avsändaren sin ramöverföring och nollställer räknarna.
Hur vet en station om dess data kolliderar?
Tänk på ovanstående situation. Två stationer, A & B.
Utbredningstid: Tp = 1 timme (signalen tar 1 timme att gå från A till B)
At time t=0, A transmits its data. t= 30 mins : Collision occurs.>
Efter att kollisionen inträffat genereras en kollisionssignal och skickas till både A & B för att informera stationerna om kollisionen. Eftersom kollisionen skedde halvvägs tar även kollisionssignalen 30 minuter att nå A & B.
Therefore, t=1 hr: A & B receive collision signals.>
Denna kollisionssignal tas emot av alla stationer på den länken. Sedan,
Hur säkerställer man att det är vår stations data som kolliderade?
För detta, sändningstid (Tt)> Utbredningstid (Tp) [Grundgräns]
Detta beror på att vi vill att innan vi sänder den sista biten av vår data från vår station, ska vi åtminstone vara säkra på att några av bitarna redan har nått sin destination. Detta säkerställer att länken inte är upptagen och att kollisioner inte kommer att inträffa.
Men ovan är en lös gräns. Vi har inte tagit den tid det tar för kollisionssignalen att resa tillbaka till oss. För detta överväga det värsta scenariot.
Tänk på ovanstående system igen.

At time t=0, A transmits its data. t= 59:59 mins : Collision occurs>
Denna kollision inträffar precis innan data når B. Nu tar det igen 59:59 minuter för kollisionssignalen att nå A. A får därför kollisionsinformationen ungefär efter 2 timmar, det vill säga efter 2 * Tp.
Hence, to ensure tighter bound, to detect the collision completely, Tt>>= 2 * Stad>
Detta är den maximala kollisionstiden som ett system kan ta för att upptäcka om kollisionen var av dess egna data.
Vad ska vara minsta längd på paketet som ska överföras?
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 * Stad>
Length of the packet>= 2 * Tp * Bandbredd för länken>
Vaddering hjälper i de fall vi inte har så långa paket. Vi kan fylla med extra tecken till slutet av vår data för att uppfylla ovanstående villkor.
Kollisionsdetektering i CSMA/CD involverar följande funktioner:
- Carrier sense: Innan data överförs lyssnar en enhet på nätverket för att kontrollera om överföringsmediet är ledigt. Om mediet är upptaget väntar enheten tills den blir ledig innan den överför data. Fleråtkomst: I ett CSMA/CD-nätverk delar flera enheter samma överföringsmedium. Varje enhet har lika tillgång till mediet, och vilken enhet som helst kan överföra data när mediet är ledigt. Kollisionsdetektering: Om två eller flera enheter sänder data samtidigt uppstår en kollision. När en enhet upptäcker en kollision slutar den omedelbart att sända och skickar en jam-signal för att informera alla andra enheter i nätverket om kollisionen. Enheterna väntar sedan en slumpmässig tid innan de försöker sända igen, för att minska risken för en annan kollision. Backoff-algoritm: I CSMA/CD används en backoff-algoritm för att bestämma när en enhet kan återsända data efter en kollision. Algoritmen använder en slumpmässig fördröjning innan en enhet återsänder data, för att minska sannolikheten för att en annan kollision inträffar. Minsta ramstorlek: CSMA/CD kräver en minsta ramstorlek för att säkerställa att alla enheter har tillräckligt med tid för att upptäcka en kollision innan överföringen avslutas. Om en ram är för kort kan det hända att en enhet inte upptäcker en kollision och fortsätter att sända, vilket leder till datakorruption i nätverket.
Fördelar med CSMA/CD:
- Enkelt och allmänt använt: CSMA/CD är ett allmänt använt protokoll för Ethernet-nätverk, och dess enkelhet gör det enkelt att implementera och använda.
Rättvisa: I ett CSMA/CD-nätverk har alla enheter lika tillgång till överföringsmediet, vilket säkerställer rättvisa dataöverföringar.
Effektivitet: CSMA/CD möjliggör effektiv användning av överföringsmediet genom att förhindra onödiga kollisioner och minska nätverksstockning.
Nackdelar med CSMA/CD:
- Begränsad skalbarhet: CSMA/CD har begränsningar när det gäller skalbarhet, och den kanske inte är lämplig för stora nätverk med ett stort antal enheter.
Sårbarhet för kollisioner: Även om CSMA/CD kan upptäcka kollisioner, kan den inte förhindra att de inträffar. Kollisioner kan leda till datakorruption, återsändningsförseningar och minskad nätverksprestanda.
Ineffektiv användning av bandbredd: CSMA/CD använder en slumpmässig backoff-algoritm som kan resultera i ineffektiv användning av nätverksbandbredd om en enhet ständigt upplever kollisioner.
Mottaglighet för säkerhetsattacker: CSMA/CD tillhandahåller inga säkerhetsfunktioner och protokollet är sårbart för säkerhetsattacker som paketsniffning och spoofing.
Läs nästa – Effektivitet av CSMA/CD