Pek çoğumuz, İnternet'i günlük hayatımızda web sayfalarını gezmek için, e-posta alıp göndermek için, sohbet etmek için kullanıyoruz. Acaba bu sistemin nasıl çalıştığını tam olarak biliyor muyuz? Her şeyin yerli yerinde olmasını sağlayan bu düzen nasıl işler? Verinin doğru yere ulaşması, hatasızlığı nasıl denetlenir? Adresler, protokoller ve diğer kavramlar tam olarak nedir? Bu yazımızda bu sorulara cevap aramaya çalışacağız.
Temel Kavramlar
Bilgisayar Ağı: İki ya da daha çok bilgisayar arasındaki iletişimi sağlamak için kurulan yapılara bilgisayar ağı adı verilir. Bilgisayar ağları, bilgi ve kaynakların paylaşımını sağlar. Bilgisayarlar arasındaki iletişim, bakır kablolar, fiberoptik kablolar, kablosuz bağlantı gibi altyapılarla sağlanabilir.
İnternet: Küçük bilgisayar ağları bir araya gelerek daha büyük bilgisayar ağlarını oluşturabilirler. İrili ufaklı pek çok ağın birbirine bağlanmasıyla ortaya çıkan, dünya üzerindeki en büyük ağ sistemi İnternet'tir. En büyük özelliklerinden bir tanesi herhangi bir merkeze bağlı olmamasıdır. Bilgisayarlar, telefon hatları (çevirmeli bağlantı), ADSL, WiFi gibi yöntemlerle İnternet'e bağlanırlar.
İletişim protolü: Bilgisayarlar, ağ kullanan tek sistem değildirler. Örneğin, otomobiller de trafik ağını kullanırlar. Trafik akışında her şey rastgele gerçekleşmez. Hangi aracın nereye gideceği, kavşak noktalarında kimin durup kimin geçeceği, araçların hangi hızda hareket etmesi gerektiği belli bir düzenle sağlanır. Trafik ağındaki trafik kurallarına benzer bir kurallar dizisi bilgisayar ağlarında da vardır. İnternet'te verilerin yerli yerine ulaşması için kullanılan kural dizilerine iletişim protokolleri adı verilir.
IP adresi: Posta ağında, bir mektupun yerine ulaşması için zarfın üzerine gitmesi gereken adres yazılır. Bu adrese göre mektup, önce gitmesi gereken ülkenin ana dağıtım noktasına gönderilir. Oradan ilgili şehre, mahalleye, sokağa ve nihayet doğru eve ulaşır. Bigisayar ağlarında veri paketlerinin iletilmesi ve ara dağıtım noktalarında transferi çok benzer bir şekilde gerçekleşir. Tek fark, mektup adreslerinin yerini IP adreslerinin almasıdır. Bir IP adresi "142.98.254.2" gibi bir yapıya sahiptir. Noktalarla ayrılmış dört sayıdan oluşur ve her bir sayı 0'dan 255'e kadar değerler alabilir. En sağdaki sayı, bilgisayarın yerel ağdaki konumunu gösterirken, sola gidildikçe ağların dünya üzerindeki konumunu belirler. İnternet'te gönderilen IP (Internet Protocol) paketlerinin içinde gönderen ve alan bilgisayarların IP adresleri de yer alır.
Alan Adı Sunucusu (Domain Name Server-DNS): IP adresleri, İnternet'teki verilerin nereye ulaşması gerektiğini anlatmak için yeterlidir. Ancak, ne yazık ki sayılar, kelimeler kadar kolay akılda tutulamazlar. Bu nedenle kelimelerle ifade edilen alan adları (domain name) kullanılmaktadır. Alan adı sunucusu denen bilgisayarlar, alan adlarını IP adreslerine "tercüme" ederler. Bu sayede "144.122.1.1" adresini aklımızda tutmaktansa "www.odtu.edu.tr" adresini aklımızda tutmamız ilgili siteye erişmemiz için yeterli olur.
Veri İletimi
Bir web sayfasını ziyaret etmek istediğimizde, bunun bilgisayarımıza nasıl transfer edildiğini ele alalım. Yapmamız gereken ilk şey, web sitesinin adresini, İnternet tarayıcıya (Firefox, Internet Explorer vb) girmektir: "http://www.odtu.edu.tr". Sayfanın açılabilmesi için hangi adreste bulunduğunu öğrenmemiz gerekir. "odtu.edu.tr" alan adına karşılık gelen IP adresi, alan adı sunucusundan öğrenilir.
Bundan sonra İnternet tarayıcımızın web sunucusuna gönderilecek "Bana ana sayfanı gönder" mesajını, web sunucu programının (Apache vb) anlayabileceği bir dile çevirmek gerekir. Web sunucu programları ile İnternet tarayıcılarının anlaşabilmeleri için kullandıkları ortak dil, HTTP'dir. HTTP (Hyper Text Transfer Protocol), uygulama katmanındaki bir iletişim protokolüdür. Bu protokolde, "Bana ana sayfanı göster" cümlesi "GET /index.php" benzeri bir şekilde tercüme edilebilir.
Şimdi mesajı göndereceğimiz bilgisayarın adresini ve göndereceğimiz mesajı hazırladığımıza göre, geriye sadece bu mesajı yollamak kaldı. Ancak bu mesaj yollama işleminde, mesajın doğru bilgisayardaki doğru programa iletildiğinden, mesajın yolda bozunmadığından ve yerine kesin olarak ulaştığından emin olmamız gerekir. Bu ve buna benzer problemleri çözmek için belli bir düzen gerekidir. Bu düzen, farklı katmanlardaki iletişim protokolleri ile sağlanır. Şimdi bu protokoleri ve bulundukları katmanları açıklayalım.
Protokol katmanları
İnternet üzerinde veri iletimi, iç içe geçmiş pek çok protokol katmanı ile sağlanır. Her katman, veri iletişimi ile ilgili bir takım problemleri çözmeyi sağlar ve bir üst katman için veriyi organize eder. Temel olarak İnternet protokol takımında dört katman bulunur.
1.Uygulama katmanı
Bu katman, ağ üzerinden veri iletişimi yapan programların, işlevlerini gerçekleştirmek için kullandıkları protokolleri içerir ve uygulamaya göre çeşitlilik gösterir. Bir uygulamanın gönderdiği ve aldığı ham veri, en üst katman olan uygulama katmanında yer alır. HTTP, HTTPS, FTP, DNS, POP3, IMAP ve SMTP bu katmanda yer alan protokollere örnektir ve her biri farklı uygulamalar tarafından farklı amaçlar için kullanılır.
2.Taşıma katmanı
Taşıma katmanı, donanım altyapısıyla ve verinin hangi bilgisayara gönderileceğiyle ilgilenmeksizin, iki bilgisayar arasındaki veri akışını sağlayan katmandır. Akış ve bütünlük kontrolü gibi denetlemeler bu katmanda yapılır ve verinin hatasız olması sağlanır. Bu katmandaki protokoller, kendi içinde gerekli işlemleri yaptıktan sonra port numarası denen sayılardan verinin hangi programa ait olduğunu öğrenir ve ham veriyi ilgili uygulamaya iletir. Bu katmandaki protokoller bağantı temelli protokoller ve bağlantısız protokoller olmak üzere ikiye ayrılır. Bağlantı temelli protokollerden en önemlisi TCP, bağlantısız protokollerden en önemlisi de UDP'dir.
TCP-Transmission Control Protocol (Aktarım Denetim Protokolü): TCP, bağlantı temelli bir protokoldür. Veri transferi gerçekleşmeden önce iki bilgisayar arasında sanal bir bağlantı kurulmasını gerektirir. Temel işlevleri, verinin doğru sırada iletilmesini, hatalı ya da yerine ulaşmayan verilerin tekrar gönderilmesini, aynı verinin birden fazla gönderilmesi durumunda ayıklanmasını sağlamaktır. Kısaca verinin yerine doğru biçimde ulaştığını garanti eder.
UDP-User Datagram Protocol (Kullanıcı Veri Paketi Protokolü): UDP protokolünde iki bilgisayar arasında kalıcı bir bağlantı kurulmasına gerek yoktur. UDP, yalnızca alınan verinin hatasızlığını denetler. Ancak gönderilen verinin yerine ulaşıp ulaşmadığını ve paketlerin doğru sırada gittiğini garanti edemez. Bu protokolü kullanan uygulamalar, verinin yerine ulaşıp ulaşmadığını kendileri denetlemek zorundadır. Bunu uygulama protokolünde yapabilirler. UDP, genellikle anında ses ve görüntü iletimi gibi verinin zamanında yerine ulaşmasının önemli olduğu uygulamalarda ya da alan adı sorgusu gibi küçük verilerin transfer edildiği ve kalıcı bir bağlantı kurulmasının "masraflı" olduğu uygulamalarda kullanılır.
3.Ağ katmanı (IP-Internet Protocol)
Bu katmanda kullanılan en temel protokol, IP'dir (Internet Protocol). Günümüzde yaygın olarak bu protokolün dördüncü sürümü (IPv4) kullanılmakta olup, altıncı sürümü olan IPv6 yavaş yavaş bunun yerini alacaktır. Internet Protocol, IP adresi denen sayılar kullanarak gönderilen verinin hangi adresten hangi adrese iletildiğini kontrol eder ve verinin doğru yere gitmesini sağlar. Donanım altyapısından bağımsızdır.
4.Donanım katmanı
Fiziksel bir bağlantı üzerinden iletilen veri paketleri, bu katmandaki protokoller tarafından denetlenir. Bu protokoller, ağ kartlarının sürücü yazılımları ve çipler tarafından yürütülür. IP paketlerinin telefon kablosu, fiberoptik kablolar, uydu bağlantıları ve kablosuz ağlar gibi donanımlar üzerinden gönderilip alınması bu katman aracılığıyla sağlanır. Çevirmeli ağ bağlantıları (dial-up modemler aracılığıyla), PPP protokolü ile, ADSL ve kablo modem bağlantıları PPPoE protokolü ile yürütülür. Ethernet, Frame Relay, ATM gibi donanımsal protokoller bu katmanda yer alır.
Veri Paketlenmesi
Bir bilgisayardan diğerine iletilecek veri, protokol katmanlarından aşağı doğru inerken, sırayla ilgili protokoller tarafından paketlenir. Her protokol, bir üstteki protokolden gelen veriye bir başlık ekler. Daha ender olarak, bazı protokoller verinin sonuna bir dipnot da ekleyebilir. Buna göre veri, aşağıdaki şekle benzer bir biçimde paketlenmiş olur.
Bir web sayfasını açmaya çalıştığımızda gerçekleşen veri transferini örnek alalım. Web tarayıcı tarafından gösterilen HTML formatındaki sayfa içeriği, öncelikle HTTP tarafından paketlenir. Bu protokol, sayfayı gönderen sunucu ve gönderilen sayfa ile ilgili temel bilgilerin ve tarayıcıdan talep edilen işlevlerin yer aldığı bir başlık bilgisi ekler. Daha sonra bu paket, TCP'ye aktarılır. TCP, bu paketin başına port numarası, önceki ve sonraki paketlerin numarası, veri bütünlüğünü denetleyen bir kontrol kodu (checksum) gibi bilgiler ekler. TCP'nin paketlediği veri daha sonra da Internet Protocol(IP) tarafından bir başlık bilgisi eklenerek bir kez daha paketlenir. IP'nin eklediği başlıkta gönderen ve alanın IP adresleri, kontrol numarası, paket büyüklüğü ve kontrol kodu gibi bilgiler yer alır. Yeni oluşan paket son kez de donanım katmanındaki bir protokol tarafından (örn. ethernet) paketlenir ve aktarıma hazır hale gelir.
Kaynaklar:
- http://en.wikipedia.org/wiki/internet_protocol_suite
- http://www.po.metu.edu.tr/links/inf/css25/bolum1.html
- http://www.belgeler.org/bgnet/bgnet.html
- http://www.comsci.us/datacom/ippacket.html
- http://computer.howstuffworks.com/internet-infrastructure.htm
- http://www.bilgisayardershanesi.com/yerel_htm/bilgisayar_aglari_nasil_calisir.htm