Carrier Sense Multiple Access with Collision Detection ( CSMA/CD - Çoklu Erişimde Çakışma Saptamalı Taşıyıcı Sezme Mantığı)

Eyl 07, 2013

Birden çok kullanıcısı olan veri taşıma ortamlarında göndericinin herhangi bir veriyi göndermeden önce veri yolunda trafiğin olup olmadığını kontrol ettiği bir iletişim kuralıdır. IEEE’nin (Uluslararası Elektrik Elektronik Mühendisleri Topluluğu) 802.3 numaralı standardında tanımlıdır. Ethernet ağlarında kullanılır. Konunun detayına inmeden önce çakışma (collision) ve çakışma etki alanı (collision domain) kavramının bilinmesi gerekir.

Çakışma: Aynı veri iletim yolunu kullanan göndericilerin veri iletimi sırasında gönderdikleri verilerin çarpışmasıdır. Bu gönderilen verilerin bozulmasına neden olur.
Çakışma Etki Alanı: Veri iletimi yapan cihazların çarpışma oluşturabilecek veri iletim ortamında bulunmalarıdır.
CSMA/CD işte bu çakışma durumlarını en aza indirmeyi amaçlayan kurallardır. Veri gönderen cihazlar arasında o anda kimin veri göndereceği CSMA/CD ile belirlenir.

  • Carrier Sense (Taşıma dinleme): Veri göndericinin sürekli olarak kullanacağı ortamda başka bir veri iletimi olup olmadığını dinlemesidir.
  • Multiple Access (Çoklu erişim): Ağdaki herhangi bir cihazın ortamda trafik olmadığını belirledikten sonra veri iletimi yapabilmesidir.
CSMA teknolojisi half duplex (yarı yönlü iletişim) yapılarda kullanılan eski bir teknolojidir. Half duplex yapılarda aynı anda tek bir yöndeki trafiğe izin vardır. Bunun sonucu olarak herhangi bir çakışma olma ihtimali veri iletimi düzenlenmediği takdirde oldukça yüksektir.

CSMA/CD mekanizması şu adımlarda çalışır:

  • Aynı çakışma etki alanında bulunan birden fazla cihazlardan veri gönderecek olan cihaz öncelikle ufak bir sinyal göndererek ortam üzerinde herhangi bir veri iletimi olup olmadığını kontrol eder.




  • Eğer veri iletimi varsa kendi verisini göndermez ve ortamı dinlemeye devam eder.





  • Eğer veri iletimi yoksa kendi veri iletimine başlar.



  • Cihaz bu işlemi sürekli yapmak zorundadır. Çünkü kendi ortam iletim kontrolü ile veri iletimi arasında kontrol yapan başka bir cihaz ortamın boş olduğunu zannederek veri iletimine başlayabilir. Bunun sonucunda çakışmalar oluşacaktır.



  • Herhangi bir çakışma durumunda cihazların bunu bildirmesi gerekir.  Çakışma olduğunda her cihaz ortamda çarpışma olduğunu bildirmek için bir jam (sıkışma) sinyali yayınlarlar. Bundan sonra backoff (geri çekilme) algoritması ile her cihaza rastgele bir bekleme süresi atanır. Cihazlar bekleme süreleri bittikten sonra tekrar ortamı dinlerler. Ortam boş ise veri iletimine başlarlar.





  • Cihazlara  verilen bekleme süresi rastgele atandığından farklı cihazlara aynı bekleme süresi denk gelmesi mümkündür. Bu da ayrı bir çakışmaya neden olacaktır. Prosedür değişmeden aynı adımlar tekrarlanır. CSMA/CD çakışmayı en aza indirmeyi hedefler.

CSMA/CD Tipleri

  • 1-persistent (ısrarlı) CSMA:
    Gönderici  veri gönderimine hazır olduğunda, fiziksel ortamın dolu olup olmadığını kontrol eder. Sürekli olarak ortamın meşgul olup olmadığını kontrol eder eğer ortam boş kalırsa küçük bir veri paketi gönderir. Eğer çakışma gerçekleşirse bu işlemi rastgele zaman aralıklarında devam ettirir.

  • p-persistent CSMA:
    Bu iletişim kuralı 1-persistent CSMA'nın bir tür genelleştirilmiş şeklidir. Gönderici bir veri gönderimine hazır olduğunda, sürekli olarak ortamın boş olup olmadığını kontrol eder. Ortam boş kaldığında küçük bir veri paketi ile birlikte probability-p (olasılık) sinyalini de gönderir. Eğer gönderim gerçekleşmez ise kendisine tanınmış bir sonraki özel zaman aralığında tekrar küçük bir veri paketi ile birlikte p sinyalini gönderir. Bu işlem gönderim işlemi başarılı olana veya başka bir istasyon veri göndermeye başlayana kadar devam eder.

  • Non-persistent (ısrarlı olmayan) CSMA:
    Gönderici bir veri gönderimine hazır olduğunda ortamın boş olup olmadığını kontrol eder eğer boş değilse rastgele bir zaman aralığında bunu tekrar eder. Ortam boş kaldığında gönderici veri gönderimini başlatır. Eğer çakışma gerçekleşirse, gönderici rastgele bir süre bekler ve yukardaki işlemleri tekrar eder.

Görüldüğü gibi persistent CSMA'da ortam boş kaldığında küçük bir veri paketi deneme amaçlı gönderilirken, non-persistent CSMA'da doğrudan veri gönderimine başlanmaktadır.