Ağ
Teknolojileri ve Ethernet
Ağ teknolojileri bilgisayarların birbirleriyle iletişimini sağlayan ağ kartları, kablolar, elektrik sinyalleri, switch benzeri aygıtları içerir.
1980’ler ve 1990’lar boyunca birden fazla ağ teknolojisi yaygın olarak kullanılıyordu. Bunların içinde de üç tanesi, Ethernet, Token-Ring ve ATM öne çıkıyordu.
Son yirmi yıldırsa hemen hemen yalnızca Ethernet kaldı, diğer teknolojiler ortadan kalktı ya da arka plana geçti.
ETHERNET
Ethernet 1973 yılında çıktı. Basit bir yapıya sahipti:
Yukarıdaki şekilde görüldüğü gibi, tüm bilgisayarlar tek bir ortak kabloya (“Ether” lafı buradan geliyor) bağlanıyordu.
Her bilgisayarda en az bir adet Ethernet kartı bulunuyordu.
Ethernet kartlarının MAC (Media Access Control) adresi denilen 6 baytlık bir adresi bulunuyordu.
Bilgisayarlar bu MAC adreslerinden yararlanarak birbirlerine ulaşıyordu.
Ethernet’te veri paketlerine Çerçeve (Frame) deniyordu.
Çerçevenin oldukça basit bir yapısı vardı:
Yukarıdaki örnek ağda A makinesinin E makinesine bir veri göndermek istediğini varsayalım.
A makinesi bir Ethernet çerçevesi hazırlıyordu.
Alıcı adresi kısmına E’nin MAC adresini yazıyor, gönderen kısmına kendisinin MAC adresini yerleştiriyor, çok az bir miktar kontrol verisi oluşturuyor, göndermek istediği veriyi de Ethernet’in DATA alanına yazıyordu.
Sonra da kablonun boş olmasını bekliyordu (kablo ortak olduğu için başka bir makine o sırada gönderimde olabilirdi).
Eğer kablo boşsa paketini (çerçevesini) hatta çıkarıyordu.
Kablo ortak olduğu için bu paket aslında tüm makinelere gidiyordu.
Her makine paketi alıyor, Alıcı adresi kısmındaki adrese bakıyor, adres kendilerine ait değilse paketi çöpe atıyordu.
Örneğimizde alıcı E makinesi olduğu için yalnızca E makinesi paketin kendisini hedeflediğini anlayıp işlenmek üzere üst katmanlara geçiriyordu (ağ protokolü, işletim sistemi, uygulama).
E makinesi yanıt verecekse o da aynı yolu izliyordu.
Peki, A makinesi hattı boş bulup da paketini gönderirken aynı anda başka bir makine de hattı boş bulup verisini kabloya çıkartırsa ne olacak?
Bu durumda bir çarpışma (collision) oluşuyordu.
Bilgisayarlar hattı sürekli dinledikleri için çarpışmayı anlayabiliyordu (A makinesi ne gönderdiğini biliyor, öte yandan hattan dinlediği şeyi de biliyor.
İkisini karşılaştırdığında farklılık görürse çarpışma olduğunu anlıyor).
Çarpışma olduğunda, çarpışmaya neden olan makineler kendilerinin belirlediği rastgele bir süre boyunca bekleyip, sonra tekrar hattı dinleyip paketlerini göndermeye çalışıyordu.
Bu mekanizmaya CSMA/CD (Carrier Sense-Multiple Access/Collision Detection) deniyordu.
Çarpışmalar ve çarpışma sonrası beklemeler hattın verimliliğini düşürüyordu.
Yapılan çalışmalar, 10 Mbpslik bir Ethernet ağında ortalama olarak 3 Mbps’lik bir iletimin olduğunu gösteriyordu.
Kötü bir rakam.
Token-Ring ve ATM gibi diğer ağ teknolojilerinin üretilmesinin nedenlerinden birisi de buydu.
Hiç çarpışma olmasa da bu teknolojinin verimliliği düşük. Çünkü tüm makineler 10 Mbps’lik bir bantgenişliğini paylaşmak zorunda kalıyorlar.
Ethernet’in ağ kablosu televizyonların anten kablosu gibiydi (eşekesenli-koaksiyel kablo).
Hem Ethernet’in hem de koaks kablonun özellikleri nedeniyle kablonun belli bir uzunluğu aşmaması gerekiyordu. Bu uzunluk da yaklaşık 200 metreydi.
Peki, bir kurumun ağının 200 metreden daha uzağa kadar yayılması gerekiyorsa ne yapılacak?
O zaman sinyali alıp kuvvetlendiren bir aygıta, Repeater’a (Tekrarlayıcı) gerek vardı.
Tekrarlayıcı o zamanlar için gelişmiş bir elektronik aygıt; gelen sinyalleri güçlendiriyor, diğer tarafa aktarıyor.
Ama aynı zamanda aptal bir aygıt.
Yalnızca solundan duyduğu sinyali sağına, sağından duyduğu sinyali de soluna geçiriyor.
Bu durum A ile K makinesi iletişimdeyken iyi: A’dan çıkıp K’yı hedefleyen paketi alıp sağ tarafa geçiriyor, K’ye ulaşmasını sağlıyor.
Ama A ile B ya da K ile L makinesi iletişime geçtiğinde de, hiç gereği yokken paketleri alıp karşı tarafa geçirebiliyor.
Aynı zamanda, 10 Mbpslik bantgenişliği şu anda daha da fazla makine tarafından paylaşılıyor.
Bridge (Köprü)
Elektronik sanayinin gelişmesiyle birlikte ağ aygıtları da akıllanmaya başlandı. Repeater’ların yerine Bridge’ler (Köprü) geldi.
Bridge de aynen repeater gibi bir tarafından gelen sinyali diğer tarafına aktarıyor.
Ama Bridge’te bir MAC adresi tablosu var. Bu tabloda makinelerin MAC adreslerini ve hangi ağda olduklarını tutuyor.
İlk başta tablo boş. Makineler birbirleriyle iletişime geçtikçe tablo doluyor.
Yukarıdaki örnek ağda Repeater’ın yerinde Bridge olduğunu varsayalım.
A makinesi B makinesine bir paket gönderiyor olsun.
Bu paket Bridge’in sol bacağı tarafından duyulacaktır.
Bridge’imiz paketi gönderen A makinesinin MAC adresini tabloya ekler, onun sol ağda olduğu bilgisini de kaydeder.
Şu anda B’nin nerede olduğunu bilmediği için bu paketi sağ ağa da aktarır.
B’nin A’ya yanıt verdiğini varsayalım. Bridge sol bacağından bu paketi de duyacaktır ve B’nin sol ağda olduğunu kaydedecektir.
Alıcı ve verici bilgisayarlar aynı ağda, sol ağda olduğu için bu paketi sağ tarafa geçirmeyecektir.
Bu şekilde, ağı dinleyerek, tablosunu doğru bilgilerle dolduracak ve ancak bir paket farklı bir ağa gidiyorsa o paketi ilgili ağa geçirecektir.
Bu şekilde, A ile B’nin arasındaki trafik sağ ağa yansımayınca sol ve sağ ağlar ayrı ayrı 10 Mbps’lik bir bantgenişliğine kavuşacaktır.
Bridge bu şekilde kullanılabilecek bantgenişliğini artırır.
Switch (Anahtar)
Bridge’lerin başlangıçta iki portu vardı; iki ağı birbirine bağlaybiliyordu.
Yine elektronik sanayindeki gelişmeler sayesinde port sayısı arttırılıp her bilgisayarı tek bir porta bağlama olanağı çıktı.
Yeni aygıta ilk başlarda multiport bridge (çok portlu köprü) denilirken sonradan Switch (Anahtar) denmeye başlandı.
Switch’lerin de bir MAC tablosu olduğunu unutmayalım.
Bu tablo başlangıçta boş olduğu için bir portundan gelen paketleri tüm portlara gönderir.
Sonrasındaysa tablo doğru bilgilerle doldukça yalnızca ilgili makineler arasında iletişimi sağlar.
Bu şekilde, her makine, switch’in yapısına bağlı olarak, 10-100-1000 Mbps’lik bir bantgenişliğine kavuşur.
Switch yalnızca ilgili makineler arasında iletişim sağladığı için bir switch’e bağlı makineler diğer makinelerin kendi aralarındaki iletişimini dinleyemez.
Ama burada da çeşitli açıklar var. Bu açıklar switch içindeki trafiği dinlemeye olanak sağlayabiliyor.
Birinci açık, switch’lerin MAC adresi tablosunun sonlu büyüklükte olması; tipik olarak 1024 ya da 2048 MAC adresi depolayabiliyorlar.
Eğer bir nedenle MAC adresi tablosu dolarsa, bu sefer switch durumla başa çıkıp iletişimi devam ettirebilmek için bir portundan gelen paketi tüm portlara yayınlayabiliyor (broadcast).
Hacker’lar bu yöntemi kullanarak ağ trafiğini dinleyebiliyor.
İkincisi de akıllı switch’lerdeki çeşitli olanaklar.
Akıllı ya da yönetilebilir (manageable) switchler yöneticilere neredeyse sonsuz olanaklar sağlıyor.
Örneğin, bir switch’e bağlı bilgisayarlar normalde aynı Ethernet ağındayken, yönetilebilir switchlerde bazı portları farklı bir ağmış gibi (virtual LAN-VLAN) gösterebiliyoruz.
Yönetilebilir switchlerde yapılabilecek başka bir şey de tüm portlardan gelen trafiğin bir kopyasının belli bir porta yansıtılması (port mirroring).
Bu şekilde de ağ trafiği dinlenebilir.