Ağ Sistemi Protokolleri
Böylece bir IP adresinin nasıl alındığını gördük. IP adresinin MAC adresine nasıl çevrildiğini de gördük. Peki ama biz yukarıda bahsedilenleri değil yalnızca tanımlanmış olan bilgisayar isimlerini kullanıyoruz . Başta da söylediğimiz gibi TCP/IP protokolünde bir bilgisayar üç unsurdan meydana gelir : Bilgisayarın ismi, IP adresi ve MAC adresi. Herhalde bunlardan bilgisayarın ismini ezberlemek zorunda olmak sizin için en kolayı olsa gerek . Bu yüzden bilgisayarlara açıklayıcı ve kolayca hatırda kalan isimler veriyoruz ( Arda , Nihat , Kerem , Finans gibi) ve iletişim sırasında bu isimleri kullanıyoruz.
Bilgisayar isimlerini kullanmak kolayımıza geliyor ama ağ üzerinde iletişim MAC adresleri üzerinden gerçekleşiyor. O zaman bilgisayar ismini önce IP adresine çeviren sonra da MAC adresine çeviren protokoller olmalı. Daha önce IP adresini MAC adresine çeviren protokolü görmüştük ( ARP ) . Basit olarak bulunduğumuz yerde “Adı şu olan makine bana IP adresini bildirsin” şeklinde broadcast bir mesaj yayınlarız. Eğer bulunduğumuz yerde böyle bir makine varsa bize IP adresini verir. Fakat bu ağdaki bilgisayarları gereksiz yere meşgul eder. İşte bu nedenle bu iş için DNS ve WINS denilen mekanizmalara ihtiyaç duyulur. Niçin iki seçenek diye sorabilirsiniz. Çünkü iki ayrı seçenek iki ayrı ismi IP adresine çeviriyor. Doğru, PC dünyasında bilgisayarların iki ayrı ismi var. Birincisi en çok 15 karaktere kadar olabilen NETBIOS ismi. Diğeri ise 256 karakter olabilen Unix/İnternet ortamındaki “host” ismi. NETBIOS ismine örnek olarak YTU şeklinde bir isim verebiliriz. Host ismine ise ” ytu.edu.tr ” ismini verebiliriz. Host ismindeki ilk parametre ” ytu ” bir internet domain’ indeki bilgisayarın ismidir . Geri kalanı ise o bilgisayarın bulunduğu internet domainini tanımlar.
Bilgisayarın domain + bilgisayar isminden oluşan host ismine Tümüyle Tanımlanmış İsim (Fully Qualified Name, FQN) de denilir.
İsimler iki tane olunca çözümleme mekanizması da iki tane oluyor. Microsoft NetBIOS isimlerini IP adresine çevirme konusunda WINS ( Windows Internet Naming Service ) ‘ i öneriyor. Host isimlerini IP’ ye çevirme konusunda ise hem microsoft hem de İnternet dünyası DNS ( Domain Name Server ) mekanizmasını kullanıyor.
WINS servisinde bir makineyi WINS sunucu olarak tanımlıyoruz. Bütün bilgisayarlar gidip IP adreslerini ve adlarını bu sunucuya bildiriyorlar. Böylece bu sunucu üstünde , ortamdaki bilgisayarlar hakkında bir veri tabanı oluşuyor. Bir bilgisayar ismini bildiği bir bilgisayarın IP adresini bulmak için bu sunucuya gidiyor.
İnternette isim-IP eşleştirmesi için DNS kullanılır. Bu sistemde bilgisayar adları ve IP adresleri DNS sunucu olarak konumlandırılan bilgisayarlara elle kaydediliyor. DNS sistemin kötülüğü bilgilerin elle girilmesinde ve statik olmasında. Tabii ki otomatik kayıt devreye alınmamışsa .. ( Yeni işletim sistemlerinde ( W2k3 gibi ) otomatik kayıt varsayılan olarak çalıştırılıyor )
TCP/ IP YAPISI
Bilgisayar ağlarından bahsederken 7 katmanlı OSI ( Open System Interconnection Referance Model ) yapısını incelemiştik . Bu yapıya biraz değinmekte fayda var.
| Application | Upper Layer |
| Presentation | Upper Layer |
| Session | Upper Layer |
| Transport | Lower Layers |
| Network | Lower Layers |
| Lower Layers | |
| Physical | Lower Layers |
TCP/IP ‘ yi anlatırken ise 4 katmanlı bir yapıdan söz edeceğiz :
| Windows Sockets , NetBIOS | Uygulama ( Application ) | |
| TCP , UDP | İletim( Transport ) | |
| ICMP , IGMP , IP , ARP | İnternet | |
| Ethernet , Token-Ring , FDDI , Frame Relay , X-25 , SLIP , PPP | Ağ ( Network ) |
|
Network katmanı bilgisayarda bulunan ağ kartını , kabloları vb. şeyleri gösteriyor . Veri paketlerinin ağa iletilmesinden ve ağdan çekilmesinden bu katman sorumlu .
İnternet-IP katmanında IP’ ye göre düzenlenmiş veri paketlerini görüyoruz. İletim katmanından gelen veriler burada internet paketleri haline geliyor. Paketlerin yönlendirilmesi ile ilgili işler de burada yapılıyor. Bu katmanda bulunan 4 protokolü kısaca inceleyelim.
ARP : IP adreslerini MAC adreslerine çeviriyor.
ICMP : Kontrol mesajları gönderip karşılığında gitti gitmedi bilgisini sağlar. PING komutu , bu protokolü kullanarak karşı bilgisayarın ayakta olup olmadığını anlar.
IGMP : Multicast gruplarını belirlemek için kullanılır. Bir ağda mesajlar üç şekilde gönderilir. Mesaj ya bütün makinalara ( broadcast mesaj ) , ya bir gruba ( multicast ) , ya da doğrudan bir makinaya ( directed ) gönderilebilir.
IP : Paketlerin adresleme ve yönlendirme işlemini yapar. İletim katmanında bulunan TCP ve UDP’ yi daha sonra ayrıntılı bir şekilde inceleyeceğiz.
Uygulama katmanı ağ üzerinden iş yapacak uygulamaların bulunduğu katmandır. FTP, Telnet , Http , DNS , WINS gibi uygulamalar bu katmanda bulunur .
İçinde ağ işlevi olan bir uygulama geliştirmek için iki API’ miz var. API ( Application Programming Interface ) , bir program yazarken kullanacağımız fonksiyonlar , uyacağımız kurallar anlamına geliyor . Örneğin , program yazmak için Win32 API’ sini kullanırsak Windows 95 ve NT ortamlarında çalışabilecek 32 bitlik bir program oluştururuz .
İnternet üzerinde ağ uygulamaları için soket API’ si kullanılır. Bir diğeri de NetBIOS API ‘si .
TCP ( Transmission Control Protocol ) :
TCP/IP protokolüne ismini veren TCP , bağlantılı ( connection-oriented ) ve güvenilir ( reliable ) bir iletişim sağlar . Bağlantılı ne demek ?
Biraz bunun üstünde duralım . Bilgisayarlar iletişime geçmeden önce aralarında bir oturum ( session ) açarlar . Oturumun açılması sırasında bilgisayarlar kendi iletişim parametrelerini birbirlerine iletiyorlar . Ve iletişim sırasında bu parametrelere göre hareket ediyorlar .
Güvenilirlikten kasıt ise ; bilginin karşı tarafa gittiğinden emin olmak anlamındadır . Bu da bilginin alındığına dair karşı taraftan gelen bir onay mesajı ile ( acknowledge, ACK ) sağlanır. Eğer belli bir sure sonunda bu mesaj gelmezse paket yeniden gönderilir . Kritik işler yapan protokoller ve servisler verileri TCP ile iletirler . Örneğin , 21 nolu portu kullanan FTP , 23 nolu portu kullanan Telnet , 53 nolu portu kullanan DNS gibi .
Bir TCP oturumu açılırken ilk önce üç adet çerçevenin ( frame ) gidip geldiğini görürüz . Bu üç çerçevenin amacı :
- Veri paketlerinin ( segment ) geliş ve gidişini senkronize etmek ,
- Karşı tarafa tampon bellek miktarımız hakkında bilgi vermek
- TCP bağlantısını kurmaktır.
TCP iletişiminde veriler segmentlere ayrılır . Her segmente sıra numarası verilir . Bu segmentler belli sayılarda ( mesela onar onar ) gönderilir . Alıcı bilgisayar da frameler yani segmentler kendine ulaştıkça bunları tampon belleğine yerleştirir . İki ardışık çerçeve tampon belleğe yerleşince alıcı bilgisayar gönderilen en son çerçeve için bir onay mesajını gönderici bilgisayara yollar .
Bir TCP segmenti 2 kısımdan oluşur. Başlık ( header ) ve veri ( data ) kısmı . Başlık kısmı şu alanlardan meydana gelir :
Source port : Gönderen bilgisayarın kullandığı TCP portu
Destination port : Alıcı bilgisayarın TCP portu
Sequence number : Segmentlere verilen sıra numarası
Acknowledgement number : Onay numarası
Data length : TCP segmentinin uzunluğu
Reserved : Gelecekte kullanılmak üzere rezerve edilmiş
Flags : Segmentin içeriğine dair bilgi taşır
Window : TCP penceresinde ne kadar yer kalmış olduğunu gösterir
Checksum : Başlık kısmının bozulup bozulmadığını gösteren kontrol kısmı
Urgent pointer : Flag kısmında belirtilen acil bir verinin iletilmek istendiğini belirtir.
