İnsanlık var oluşunun uzun yılları boyunca bilgiyi aktarma, çoğaltma ve depolamanın çeşitli yollarını denemiştir. İnsanlık artan bilgi birikimi ve bu hedefine ulaşma çabalarının bir sonucu olarak, bu yolların en gelişmişlerinden birine ulaştı: bilgisayar ağları. Artık bilgiyi birbirine uzun mesafeler boyunca bağlı olan irili ufaklı türlü makinelerde saklıyoruz ve bunları devasa kablolar ağı ile bağlayarak aktarıyoruz. Peki nasıl oluyor da bu karmaşık sistem başarıyla işliyor? Adım adım, bir yapboz gibi karmaşık ve işin içinden çıkılmazmış gibi gözüken bu devasa mimariye giriş yapacağız. Genel olarak bilgisayar ağları bir veriyi nasıl iletir? Bilgisayarlar nasıl haberleşir? Bu iki soruya yanıt arayacağız. Ardından internet uygulamaları için kullanılan mimarilere bir göz atacağız ve son olarak ağ kurmak için gerekli olabilecek bazı temel bileşenleri inceleyeceğiz.
Bilgisayarlar Nasıl Haberleşir?
Bilgisayarlar birbirlerine bilgiyi nasıl aktarırlar? Bu soruyu iki farklı şekilde ele alabiliriz. Birincisi, bilgisayarlar haberleşmek için hangi tekniği izler? İkincisi, bilgisayarlar haberleşmek için hangi ortamları kullanır? Burada teknikten kasıt kullanılan protokoller ve kurallardır. Ortam derken kastedilen ise kablolu haberleşme yapılıyorsa bakır, eğer radyo dalgaları ise uzay ve benzeri farklı fiziksel ortamlardır. Bu makalede, iki soruyu da temel düzeyde ele alacağız.
Protokol Nedir?
Protokol, bir haberleşme sisteminde kullanılan kurallar bütünü olarak tanımlanabilir. Elimizde iki adet birbiri ile haberleştirmek istediğimiz sistem olduğunu varsayalım. Bu iki sistem birbiri ile haberleşirken belirlenmiş bazı kurallar çerçevesinde iletişime geçer. Eğer bu şekilde iyi ve ortak tanımlanmış kurallar olmazsa haberleşmeleri mümkün değildir. Bunu örnek vermek gerekirse iki farklı dili konuşan insana benzetebiliriz. Şimdi bunu daha iyi anlamak için şu örneği inceleyelim:

Bilgisayarın herhangi bir dosyayı diğer bir bilgisayardan almak istediğini varsayalım. Bu durumda şöyle bir protokol tasarlayabiliriz: Bir bilgisayar başka bir bilgisayardan dosya almak istediğinde önce bağlantı isteğinde bulunması, bu isteği alan bilgisayarın ise bu isteği aldığını bildiren bir yanıtta bulunması gereksin. Ardından bağlantıyı başlatan bilgisayar şu mesajı göndersin:
Buna yanıt olarak diğer bilgisayar istenen dosyayı göndersin. Bu protokole daha fazla komut ekleyebiliriz. Mesela dosya silme:
Mesajı alan bilgisayar yanıt olarak "metin.txt" dosyasını silsin ve sildiğini "SİLİNDİ" komutu ile onaylasın. İşte burada yaptığımız şey tam olarak bir protokol tasarlamak oluyor! Çeşitli kurallar bütünü oluşturarak iki bilgisayar arasındaki haberleşme için bir protokol tasarladık. Tabii ki gerçekte bir protokol tasarlamak bundan çok daha zor ve çok daha uzun süreç gerektiren bir iştir. Lakin buradaki örnek temelde protokol kavramını anlamak için oldukça yeterlidir.
İnternette Kullanılan Protokoller Nelerdir?
İnternette çeşitli uygulamalar, farklı protokoller kullanılır. Bunların bazıları kamuya açık iken bazıları ise değildir. Kamuya açık protokolleri isteyen herkes kullanabilir. Buna örnek olarak Web'te kullanılan HTTP ve e-posta sistemleri için kullanılan SMTP verilebilir. Bazı protokoller ise üreticiler tarafından sadece kendi ürünlerinde kullanılmak üzere geliştirilir. Ayrıca önemli bir detay da internette farklı katmanlarda farklı protokollerin kullanıldığıdır. Uygulama katmanından (bilgisayar ağları modelinde kullanıcılarla doğrudan etkileşimde bulunan en üst katman) birkaç protokol örneği verelim:
- HTTP (Hyper Text Transfer Protocol): Genel olarak Web sitelerinde ve Web uygulamalarında kullanılır.
- SMTP (Simple Mail Transfer Protocol): E-posta sistemleri için kullanılır.
- DNS (Domain Name System): Alan adları ile IP adreslerini eşleştirmek için kullanılır.
- FTP (File Transfer Protocol): Dosya aktarımı için kullanılır.
Burada şunu bilmek önemlidir: Şu ana kadar bahsettiklerimizin hepsi uygulama katmanı protokollerdir. İnternette farklı katmanlarda farklı protokoller kullanıldığını unutmamak gerekir. Örneğin, taşıma katmanında TCP ve UDP adı verilen protokoller bulunmaktadır.
Fiziksel Ortam Nedir?
Bilgisayarların haberleşme için kullandıkları kuralların protokoller olduğunu öğrendik. Peki bilgisayarlar bilgiyi nasıl iletir? Bir önceki konuda farklı diller kullanmaları üzerinden insanları örnek vermiştik. İnsanlar üzerinden devam edersek haberleşmek için biz insanlar sesi ve/veya mimikleri (ya da fiziksel gösterimleri) kullanırız. Ses üzerinden ilerleyecek olursak ses, atmosferde basınç dalgaları olarak yayılır. Burada insanların haberleşmesi için atmosfer fiziksel ortam olmuş olur. Bilgisayarlar da insanlar gibi haberleşmek için bir fiziksel ortam kullanır.
Temelde haberleşme şu şekilde ikiye ayrılabilir: kılavuzlu ve kılavuzsuz. Bu iki kavramı anlamak için şu örneği verebiliriz: Kılavuzlu haberleşmede sinyaller bir kablo gibi bir hattı takip ederken; kılavuzsuz haberleşmede ise sinyaller, radyo dalgaları gibi açık bir alanda yayılır.
Elektrik Kullanarak Kablolu Haberleşme
Elektrik kullanarak kablolu haberleşmede, bir iletken malzeme (genellikle bakır) kullanılır ve üzerinden elektrik sinyallerini ileterek iletişim sağlanır. Bu teknikte kablolar "konnektör" adı verilen uçlarla sonlandırılır. Günümüzde bilgisayar ağları kurulurken genellikle RJ45 olarak bilinen bir konnektör türünü kullanırız.

Ancak, eskiden BNC olarak bilinen bir konnektör kullanılırdı. Kamera sistemleri, radyo vericileri ve elektronik ölçü aletleri gibi cihazlar için günümüzde hâlâ sıklıkla kullanılıyor olsa da; artık bilgisayar ağları için kullanımı yaygın değildir.

İletken teller kullanılarak yapılan bu teknolojinin fiber optik kabloların çıkması ile popülaritesinin azalması beklenmiştir. Ancak, bu teknoloji gelişerek zamanın ruhuna yenilmemeyi başarmıştır. Günümüzde 10 Gbps gibi hızları desteklemektedir ve oldukça yaygın olarak kullanılmaktadır.
Işık Kullanarak Kablolu Haberleşme
Bu teknik, fiber optik kablo olarak bilinen kablo tipleri ile uygulanır. Işık kaynağı olarak genelde lazerler veya ledler kullanılır. Fiber optik kablolar iki ortamın yoğunluk farkı prensibine dayanarak çalışır. Bu makalede, fiziksel detaylarına girmeyeceğiz çünkü ayrıca bir makalenin konusu olacak kadar detaylıdır. Tıpkı iletken kullanılan haberleşme tekniğinde olduğu gibi bu teknikte de kablolar konnektörler ile sonlandırılır. Genelde SC, LC, ST, ve MTP gibi konnektörler kullanılır.
Radyo ve Mikordalga Kullanımı
Radyo dalgaları ve mirkodalgalar, elektromanyetik spektrumun özel iki bölümüdür. Radyo dalgaları ve mikrodalgalar elektronik tekniklerle üretilir ve antenler ile dışarıya saçılması sağlanır. Burada elektrik enerjisi başka bir forma dönüştürülür. Ardından sinyalleri almak için hazırda bekleyen bir cihaz, kendi antenini kullanarak bu sinyalleri tekrardan elektrik sinyallerine çevirir ve işler.
Hangisi Yöntem Daha Avantajlıdır?
Burada bahsettiğimiz ortamların pek çoğunun kendine has avantajları ve dezavantajları bulunmaktadır. Örneğin, kablosuz haberleşme atmosfer koşullarından etkilenebilirken, kablolu haberleşme atmosferik koşullardan etkilenmez. Ancak, kablosuz haberleşme de kullanıcıya daha rahat bir hareket imkânı sunar. Ayrıca optik ve elektrik ile yapılan kablolu haberleşmenin de kendi aralarında avantajları ve dezavantajları bulunur. Bakır kablolar kullanılarak yapılan haberleşme 100 metre gibi mesafelerde işlevselliğini yitirirken, fiber optik kablolar 100 kilometreye varan mesafelerde kullanılabilir. Fakat bu özelliğine karşın, fiber optik kablolar çok daha maliyetlidir. Gördüğünüz gibi kullanılacak yöntem tümüyle ihtiyaca göre belirlenmelidir.
İstemci-Sunucu Mimarisi
Bilgisayar ağlarını temel düzeyde ele alırken değinmemiz gereken önemli bir nokta, iki ayrı uygulama geliştirme mimarisi bulunduğudur. Bunlar istemci-sunucu mimarisi ve eşler arası mimari (İng: "peer-to-peer", P2P) olarak bilinen iki mimaridir.
İstemci-sunucu mimarisinde bilgisayarlar sunucu olarak adlandırılan ve aktif olarak her an istemcilerden gelecek bağlantıları karşılamak üzere bekleyen bir merkezi bilgisayara bağlanırlar. Bu mimarinin işleyişi hakkında temel bir fikir edinmek için aşağıdaki örneğe bakalım:

Dört tane istemcimiz olduğunu ve her bir istemcinin "dosya.txt" isimli bir dosyayı almak istediğini varsayalım. Eğer bu dosya dağıtımını istemciler arasında istemci-sunucu mimarisi kullanarak yapacak olursak tüm bu istemciler merkezi olan bir sunucuya bağlanarak dosyayı indirecektir. Dosya, sunucu olarak bilinen bir bilgisayarda bulunacaktır. Peki hangi sistemler genelde bu mimari üzerinde çalışır? Genelde internet siteleri, e-posta sistemleri gibi sistemler bu mimariyi benimsemektedir. Bir internet sitesine girdiğinizde, merkezi sunucudan kaynakları edinirsiniz.
P2P Mimarisi
Bu mimarinin istemci-sunucu mimarisinden oldukça farklı olduğunu belirterek başlayalım. Bu mimaride, ya minimum düzeyde bir sunucu gereksinimi olur ya da hiç sunucu gereksinimi olmaz. Gelin bunu da benzer bir örnek üzerinden giderek anlatalım:

Yine benzer bir şekilde dört bilgisayarın bir dosyayı indirmek istediğini varsayalım. Bu mimaride, istemci sunucu mimarisinden farklı olarak tüm eşler dosyayı bir merkezi sunucudan almak yerine kendi aralarında dağıtacaklardır. Ancak şu detayı unutmamak önemlidir: Burada asla bir merkezi sunucu olamaz diye bir durum söz konusu değildir. Sadece minimum düzeyde bir bağımlılık söz konusudur. İlk dosyayı diğer bir eşe aktarmak üzere indiren istemci, bunu bir sunucudan edinmiş de olabilirdi.
Ağ Anahtarları
Ağ anahtarları (İng: "switch"), bilgisayar ağları için oldukça temel bir bileşendir ve sadece bir anahtar kullanarak basit bir ağ kurulabilir. Üzerinde belli sayılarda ethernet port'ları bulunur. Bu port'ları kullanarak birden fazla bilgisayarı birbirine bağlayarak bir ağ oluşturabiliriz:

Anahtarlar yukarıda gördüğünüz ağ diyagramlarında ortada mavi renkli sembol ile gösterilirler. Farklı yazarlar ve tasarımcılar benzer fakat farklı görünümlerde tasarımlar kullanabilirler. Burada dört adet bilgisayarı bir anahtar ile birbirine bağlayarak son derece basit ve sıradan bir ağ oluşturduk. Anahtarın üzerinde bulunduğu port sayısına bağlı olarak ağımızı genişletebiliriz. Ayrıca anahtarlar, aşağıda gördüğünüz şekilde birbirine bağlayarak da ağı genişletebiliriz. Aşağıda iki adet anahtar kullanılarak yapılmış bir ağ görebilirsiniz. Burada iki ayrı anahtar kullanılmış olmasına rağmen bu yedi bilgisayar da aynı ağda bulunurlar.

İki anahtarı birbirine bağlanırken yine ethernet kabloları kullanılmaktadır fakat burada şu an da ele alınmayacak bazı detayları olduğunu belirtmekte fayda bulunmaktadır.
Ethernet Hub'lar
Ethernet hub'lar, anahtarlar ile aynı amaç için kullanılmaktadır. Ancak, aralarında ufak ve kritik bir fark bulunmaktadır. Bunu anlamak için bir senaryo düşünelim: A, B, C, D olarak etiketlenmiş dört adet bilgisayardan oluşan bir ağ tasarlayalım ve A bilgisayarı, D bilgisayarına bir ileti gönderecek olsun. Bunu bir anahtar ile yaptığımızı hayal edelim:

A bilgisayarı; anahtarın portlarından birine ulaştığında, sadece hedef bilgisayara gönderilir ve diğer bilgisayarlar bu iletiyi almaz. Bir de bu senaryoyu hub ile inceleyelim:

Hub iletiyi A'dan aldıktan sonra tüm portlarına gönderdi. D bilgisayarı iletimizi aldı fakat ileti, diğer tüm ağ bilgisayarlarına da ulaşmış oldu.
Yönlendiriciler
Yönlendiriciler iki ağı birbirine bağlamamızı sağlar. İki adet switch ile kurulmuş iki ayrı ağ düşünelim. Bunlardan birisine "Bilgisayar Ağı A" ve diğerine "Bilgisayar Ağı B" diyelim ve bunları birbirlerine yönlendirici ile bağlayalım:

Görselin ortasında mavi renkte gördüğünüz "yönlendirici" olarak etiketlenmiş olan sembol, ağ diyagramlarında yönlendiricileri sembolize etmek için kullanılır. Burada sol tarafta ve sağ tarafta bulunan iki anahtar ile kurulmuş ağın farklı ağlar olduğuna dikkat ediniz. Daha önce bunları doğrudan bir ethernet kablo ile bağladığımızda aynı ağda olduklarını söylemiştik.
Sonuç
Öncelikle burada henüz bahsetmediğimiz yüzlerce hatta binlerce detayı olan oldukça derin bir konu olduğunu hatırlatmak isteriz. İki bilgisayarın birbiri ile nasıl konuştuğunu ve bunu hangi ortamlar ile yaptığını, ağ uygulamaları için iki ayrı mimariyi ve günümüzde bir ağ kurmak için gerekli olan temel bazı fiziksel bileşenleri ele alık. Bu giriş niteliğindeki makalemiz sizde alana karşı bir ilgi uyandırdı ise ne mutlu bize!