Ana sayfa » CSMA/CD Protokolü Nedir? Ne İçin Kullanılır?
Protokoller

CSMA/CD Protokolü Nedir? Ne İçin Kullanılır?

CSMA/CD Protokolü

Veri iletişimi söz konusu olduğunda karşımıza en çok çıkan kavramlardan biri olan CSMA/CD, aslında çoklu erişimin olduğu bilgisayar ağlarında bir protokoldür. Bazı kaynaklarda Random Access Protocol kapsamında sınıflandırılır. Bu protokol ailesi içinde olan ALOHA ve Slotted ALOHA protokollerinin çok verimsiz bir şekilde çalışması bu protokolün ortaya çıkması için en geçerli sebeplerden bir tanesidir. Peki tam olarak CSMA/CD nedir? ve hangi amaçla kullanılır? İsterseniz bu sorulardan yola çıkarak konumuza başlayalım.

CSMA/CD Nedir ve Nasıl Çalışır?

Yazının başında da belirttiğim gibi CSMA/CD bir protokoldür. Bu protokolün amacı, birden fazla cihazın ortak bir hat üzerinden haberleşme yaptığı bir topoloji de, çarpışma(collision) olmadan paketlerin verimli bir şekilde hedeflerine ulaşmasını sağlamaktır. Günümüzde Ethernet teknolojisini kullanan tüm kablolu ağlar temelde bu protokolü desteklemektedir. Dikkat ettiyseniz kablolu ağlar kelimesini koyu ile belirttim. Çünkü bu protokol yapısı kablolu ağlar için geliştirilmiştir. Kablosuz, yani 802.11x frame yapısına göre çalışan ağlarda bu protokol kullanılmaz. Bunun yerine kablosuz ağlarda collision’u engellemek için CSMA/CA protokolü geliştirilmiştir ve günümüzde evlerimizde, ofislerimizde kullandığımız kablosuz cihazlar, bu protokole göre veri iletimlerini gerçekleştirmektedirler.

Konumuza dönecek olursak CSMA/CD’nin ortak bir hat üzerinden tüm cihazların haberleşme yaptığı bir topoloji de, paketlerin çarpışmasını engellemek için geliştirildiğini belirtmiştim. Peki bu ortak bir hat kavramı tam olarak neyi ifade ediyor? Aslında bu soruya cevap vermeden önce ağ topolojileri hakkında temel de olsa bir bilginizin olması faydalı olacaktır. Temel olarak ağ topolojileri aşağıdaki gibidir.

  • Token Ring
  • BUS
  • Star
  • Point to Point
  • Mesh
  • Full Mesh

Biz burada CSMA/CD protokolünü kavrayabilmek için BUS topolojisi üzerinden konumuza devam edeceğiz. Aşağıdaki görsel BUS topolojisini çok güzel bir şekilde tasvir etmektedir.

bus topoloji

Yukarıdaki görselde görülen kalın siyah kısım bizim ortak hattımız olmaktadır. Böylelikle yukarıda sorduğumuz ortak hat nedir? sorusuna bu şekilde cevap vermiş olduk. Günümüzde evlerimizde veya ofislerimizde switch tabanlı star topolojisini kullanıyoruz. Start topolojide, switch kullandığımız için hiçbir şekilde collision yani çarpışma olmamaktadır. Aynı zamanda cihazlar ortak bir hat üzerinden değil, her biri kendisi için tanımlanmış bir hat(kablo) üzerinden switche bağlanmaktadırlar. Bu sebeplerden ötürü bu tarz topolojilerde CSMA/CD protokolü kullanılmamaktadır. Daha doğrusu bu protokole gerek kalmamaktadır. Artık konumuza başlamak için gerekli ön bilgileri öğrendik. Şimdi isterseniz yukarıdaki görselden yola çıkarak, CSMA/CD nasıl çalışır? sorusuna cevap bulmaya çalışalım.

CSMA/CD Nasıl Çalışır?

Öncelikle ortak olarak kullanılan ağlarda temel sorun, paketlerin birbirleri ile çarpışması sonucu bozulmasıdır. Paketler bozulduğu zaman yani anlamlı 1 ve 0 bitlerinin anlamını kaybetmesi sonucunda verinin tekrar gönderilmesi gerekir. Aynı zamanda bu veri tekrar gönderilirken, bir daha verinin çarpışma sonucu bozulmasının engellenmesi gerekmektedir. Peki bunları nasıl yapacağız? İşte bizim için en önemli olan kısma geldik. İşte bu sorunlar, CSMA/CD protokolü kapsamında geliştirilmiş olan bir algoritma tarafından çözülmektedir. Bu algoritmanın yapısını anladığımız zaman CSMA/CD protokolünü de tam manası ile anlamış olacağız. Şimdi maddeler halinde yukarıdaki görselden yola çıkarak algoritmanın çalışma şeklini adım adım inceleyelim. Örneğimizde 1. Cihaz, 6. Chaza veri göndermek istesin. Sırası ile algoritma şu şekilde işler;

  1. Öncelikle 1. Cihaz ağı dinler. Eğer herhangi bir veri iletimi yoksa, verilerini frame formatında hedef cihaza göndermek üzere hatta bırakır. Ağda bir iletim olup olmadığını, sezgi devreleri adı verilen NIC kartının bir özelliği ile anlar. Kısaca mantık şu şekilde; dinleme yaptığı ortamdan herhangi bir voltajda kendisine veri gelip gelmediğini kontrol eder. Eğer 1V dahi olsa bir gürültü varsa hatta veri iletimi var demektir. Yoksa hatta veri iletimi yoktur demektir.
  2. Eğer hatta veri iletimi yoksa frameleri hatta gönder. Var ise veri iletimi bitene kadar bekle.
  3. Frameleri gönderdikten sonra eğer, başka bir cihaz da aynı anda bir veri göndermeye başladıysa çarpışma olacak demektir. Çarpışma(collision) algılandığı vakit veri iletimini kes ve hatta bir jam sinyali gönder. Burada bu çakışmayı cihazlar nasıl algılıyor? kısmına bu maddeler bittikten sonra değineceğiz. Ek bilgi olarak JAM sinyali 32 bit yani 4 byte’lık özel bir sinyaldir. Bu sinyali alan cihazlar, algoritma gereği, hatta bir çarpışma olduğunu anlarlar.
  4. Çarpışma olduysa, Backoff algoritmasına göre rastgele bir süre ağa hiç bir veri göndermeden bekle. Buradaki bekleme işlemi, networkteki tüm cihazlar için geçerlidir. Hepsi birbirinden farklı sürelerde beklerler ve hatta bu süre boyunca hiçbir veri göndermezler. Bu sürenin belirlenme işlemi de, Backoff algoritması kapsamında gerçekleşmektedir.
  5. Süre bittikten sonra, ağı tekrar dinle. Eğer iletim varsa bekle, yok ise frame’i gönder. Yani 5. adımdan sonra işlemler 1. adıma geri dönmektedir.

Yukarıdaki maddeleri aşağıdaki görsel güzel bir şekilde özetlemiş.

Aşağıdaki görsel ise bu protokolün akış şemasını göstermektedir. İncelemeniz konuyu anlamak açısından faydalı olacaktır.

Hattaki Bir Çarpışma(Collision) Nasıl Algılanır?

Çarpışmanın nasıl algılandığı kısmı aslında mantık olarak çok basit. Mesela 10/100mbps hızda bir ağda 1 bitinin 3V ve -3V olarak 0 bitinin de 0V olarak iletildiğini varsayarsak(Bu Gigabit bağlantılarda değişebilir), eğer sizin NIC kartınıza böyle bir durumda 3V’dan büyük bir değer geldiğinde hatta bir çarpışma olduğu yorumunu yapabilirsiniz. Yukarıdaki ilk görselimizden yola çıkarak bunu bir örnek ile açıklayalım.

Mesela 2. cihaz 4.cihaza veri göndermeye başlasın, tam bu sırada da 3. cihaz 2.cihaza veri gönderimini başlatsın. Böyle bir senaryoda 2. cihazdan çıkan veri ile 3. cihazdan çıkan veri hatta çarpışacaktır. Veriler burada frame formatında olsun. Sinyallerimiz çarpışacağı için her iki cihazında 1 bitleri(3V) bozulacak ve artacaktır. İşte bu artma değeri, NIC kartlarımızdaki özel devreler sayesinde algılanabilmektedir. Böyle bir algılama olduğunda ağ kartımız, bir collision olduğu yorumunu yapar ve hatta bir JAM sinyali yollar. Daha sonra algoritmadaki adımlar sırası ile işletilir.

Yazar Hakkında

Hakan İlbiz

Ağ güvenliği başta olmak üzere çeşitli siber güvenlik konularında çalışmalar yapan ve bu yaptığı çalışmalardan elde ettiği tecrübeleri blog yazısı olarak takipçileri ile paylaşan Sakarya Üniversitesi öğrencisi, siber güvenlik meraklısı bir vatandaş.

Yorum Ekle

Yorum Yazmak İçin Tıkla