Volledige versie bekijken : CSMA/CD Protocol.



Fck_
6 May 2010, 13:11
Hallo,

Ik ben een beetje meer aan het leren over Ethernet, dat gebruik maakt van het CSMA/CD protocol.
Ik weet dat de CS staat voor Carrier Sensing. Dat gaat controleren of de kabel momenteel gebruikt word of niet. Is dit niet het geval, dan kan een computer bijvoorbeeld een frame op de kabel zetten.

Er zijn echter botsingen mogelijk, als computer A een frame verstuurd, en het duurt bijvoorbeeld 10seconden om computer B te bereiken (Dat is inderdaad heel lang, maar bij wijze van voorbeeld), en computer B stuurt 9 seconden nadat A zijn frame gestuurd heeft ook een frame, dan 'ziet' B door de Carrier Sensing dat de kabel nog steeds vrij is. Een halve seconde daarna echter botst hij op het frame van A. Nog een halve seconde later weet B door de CD (Collision detection) dat er een botsing gebeurd is.
A weet dit echter pas 19 seconden (Tel ik goed?) nadat hij zijn Frame gestuurd heeft.
Nu, dat is mijn verhaaltje.

Maar nu lees ik hier:

'Als er zich een botsing voordoet dan weet de zender dit reeds tijdens het versturen van het frame, omdat een frame altijd uit minstens 64bytes bestaat. De tijd nodig om 64bytes te versturen is lang genoeg om te weten of het frame botst of niet. De lengte van de Ethernet-kabel en de snelheid waarmee bits verstuurd worden, speelt hierbij een rol.'

Door die zin weet ik het even precies niet meer zo goed.

Ik interpreteer het zoals dit, corrigeer me als ik fout ben alsjeblieft ;).

Als een frame minstens 64byte groot is, en computer A verstuurd het. Dan komt het aan bij B, terwijl
'de bitrij' nog steeds 'uit A aan het gaan is'. Als B nu iets verstuurd, en hij raakt het frame van A, dan weet A dit direct omdat het frame nog 'uit A aan het gaan is'. Als het frame 'volledig uit A' is, dan is het ook al B 'aan het binnengaan', waardoor B automatisch niets kan zenden.

Is een frame kleiner dan 64byte, en computer A verstuurd het, dan is het 'volledig uit A', terwijl het nog 'over de kabel aan het reizen is', en B nog niet 'binnengedrongen' is. Hierdoor ziet B de kabel als vrij, en kan hij ook iets zenden. Zodra het frame van B het frame van A raakt, gebeurt er een botsing, maar A weet dit nog niet direct omdat het frame al 'volledig uit A' is. Zodra A en B dit dan weten, versturen ze hun 'JAM-signaal'.

Gekke woordspelingen :p , mr ik hoop dat het zowat duidelijk is voor jullie. Begrijp ik het zo goed, of zie ik het verkeerd?

Bedankt !

EDIT: Nog even een klein vraagje erbij, bij het oude Ethernet dat aan 10mbits/seconde ging, mocht de kabel max. 2500m zijn. Bij Ethernet met 10mbits/sec was dit nog maar 250m, en bij Gbits/Sec veronder stel ik dat dit dan 25meter is. Is dit omdat het signaal dan niet meer sterk genoeg is?

Snakey
7 May 2010, 12:05
Collisions worden gedetecteerd door het controleren van een apart signaal in de fysieke laag, en bij wat je gelezen hebt, men veronderstelt dan dat men al iets ontvangt tijdens het verzenden van die 64bytes. De apparaten gebruiken dan een random tijdsinterval om te wachten voordat ze opnieuw verzenden. Als er direct daarna opnieuw een collision is tussen de apparaten, dan gebeurt er een exponential back-off (tijdsinterval wordt vergroot).
CSMA/CD is trouwens een methode voor oudere netwerken, probeer in netwerken een collision domain te vermijden of zo klein mogelijk te houden door repeaters & hubs te vermijden. Met switches heb je dit probleem niet.

Dat laatste vraagje hangt totaal af van de kabel. Ethernet kan over glasvezel, twisted pair (RJ-45) en coax. Twisted pair kabels worden nog eens apart onderverdeeld in CAT (bv CAT5 of CAT6)
Meest gebruikte voor de eindverbinding is de twisted pair, meerbepaald de 100BASE-T of Cat5 kabel, deze mag maar 100m lang zijn.