Burak Sağlık – İnternet, Extranet,İntranet Kitabının Tümü

 Bir uygulama protokolü, mesela e-posta
 Üst seviye uygulama protokollerinin gereksinim duyduğu TCP gibi bir protokol katmanı
 IP katmanı. Gönderilen bilginin istenilen adrese yollanmasını sağlar.
 Belirli bir fiziksel ortamı sağlayan protokol katmanı. Örneğin Ethernet, seri hat, X.25 vs.

İnternet birbirine geçiş yolları (gateway) ile bağlanmış çok sayıdaki bağımsız bilgisayar ağlarından oluşur ve buna ‘catenet model’ adı verilir. Kullanıcı bu ağlar üzerinde yer alan herhangi bir bilgisayara ulaşmak isteyebilir. Bu işlem esnasında kullanıcı farkına varmadan bilgiler, düzinelerce ağ üzerinden geçiş yapıp varış yerine ulaşırlar. Bu kadar işlem esnasında kullanıcının bilmesi gereken tek şey ulaşmak istediği noktadaki bilgisayarın ‘Internet adresi’ dir. Bu adres toplam 32 bit uzunluğunda bir sayıdır. Fakat bu sayı 8 bitlik 4 ayrı ondalık sayı şeklinde kullanılır (144.122.199.20 gibi). Bu 8 bitlik gruplara ‘octet’ ismi de verilir. Bu adres yapısı genelde karşıdaki sistem hakkında bilgi de verir. Mesela 144.122 ODTÜ için verilmiş bir numaradır. ODTÜ üçüncü octet’i kampüs içindeki birimlere dağıtmıştır. Örneğin, 144.122.199 bilgisayar merkezinde bulunan bir Ethernet ağda kullanılan bir adrestir. Son octet ise bu Ethernete 254 tane bilgisayar bağlanmasına izin verir (0 ve 255 bilgisayar adreslemesinde kullanılmayan özel amaçlı adresler olduğu için 254 bilgisayar adreslenebilir).

IP bağlantısız “connectionless” ağ teknolojisini kullanmaktadır ve bilgi “datagramlar” (TCP/IP temel bilgi birim miktarı) dizisi halinde bir noktadan diğerine iletilir. Büyük bir bilgi grubunun (büyük bir dosya veya e-posta gibi) parçaları olan “datagram” ağ üzerinde tek başına yol alır. Mesela 15000 octet’lik bir kütük pek çok ağ tarafından bir kere de iletilemeyecek kadar büyük olduğu için protokoller bunu 30 adet 500 octetlik datagramlara böler. Her datagram ağ üzerinden tek tek yollanır ve bunlar karşı tarafta yine 15000 octet lik bir kütük olarak birleştirilir. Doğal olarak önce yola çıkan bir datagram kendisinden sonra yola çıkan bir datagramdan sonra karşıya varabilir veya ağ üzerinde oluşan bir hatadan dolayı bazı datagramlar yolda kaybolabilir. Kaybolan veya yanlış sırada ulaşan datagramların sıralanması veya hatalı gelenlerin yeniden alınması hep üst seviye protokollerce yapılır. Bu arada “paket” ve “datagram” kavramlarına bir açıklama getirmek yararlı olabilir. TCP/IP ile ilgili kavramlarda “datagram” daha doğru bir terminolojidir. Zira datagram TCP/IP de iletişim için kullanılan birim bilgi miktarıdır. Paket ise fiziksel ortamdan (Ethernet, X.25 vs.) ortama değişen bir büyüklüktür. Mesela X.25 ortamında datagramlar 128 byte lik paketlere dönüştürülüp fiziksel ortamda böyle taşınırlar ve bu işlemle IP seviyesi hiç ilgilenmez. Dolayısıyla bir IP datagramı X.25 ortamında birden çok paketler halinde taşınmış olur.

2.10.1. TCP Katmanı
TCP’nin (“transmission control protocol-iletişim kontrol protokolü”) temel işlevi, üst katmandan (uygulama katmanı) gelen bilginin segmentler haline dönüştürülmesi, iletişim ortamında kaybolan bilginin tekrar yollanması ve ayrı sıralar halinde gelebilen bilginin doğru sırada sıralanmasıdır. IP (“internet protocol”) ise tek tek datagramların yönlendirilmesinden sorumludur. Bu açıdan bakıldığında TCP katmanının hemen hemen tüm işi üstlendiği görülmekle beraber (küçük ağlar için bu doğrudur) büyük ve karmaşık ağlarda IP katmanı en önemli görevi üstlenmektedir. Bu gibi durumlarda değişik fiziksel katmanlardan geçmek, doğru yolu bulmak çok karmaşık bir iş halini almaktadır.

Doğal olarak bir segment’i doğru varış noktasına ulaştırmak tek başına yeterli değildir. TCP bu segment’in kime ait olduğunu da bilmek zorundadır. “Demultiplexing” bu soruna çare bulan yöntemdir. TCP/IP ‘de değişik seviyelerde “demultiplexing” yapılır. Bu işlem için gerekli bilgi bir seri “başlık” (header) içinde bulunmaktadır. Başlık, datagram’a eklenen basit bir kaç octet’den oluşan bir bilgiden ibarettir. Yollanmak istenen mesajı bir mektuba benzetecek olursak başlık o mektubun zarfı ve zarf üzerindeki adres bilgisidir. Her katman kendi zarfını ve adres bilgisini yazıp bir alt katmana iletmekte ve o alt katmanda onu daha büyük bir zarfın içine koyup üzerine adres yazıp diğer katmana iletmektedir. Benzer işlem varış noktasında bu sefer ters sırada takip edilmektedir.

Bir örnek vererek açıklamaya çalışırsak: Aşağıdaki noktalar ile gösterilen satır bir noktadan diğer bir noktaya gidecek olan bir dosyayı temsil etsin,
……………
TCP katmanı bu dosyayı taşınabilecek büyüklükteki parçalara ayırır:
… … … … …
Her segment’in başına TCP bir başlık koyar. Bu başlık bilgisinin en önemlileri ‘port numarası’ ve ‘séra numarası’ dır. Port numarası, örneğin birden fazla kişinin aynı anda dosya yollaması veya karşıdaki bilgisayara bağlanması durumunda TCP’nin herkese verdiği farklı bir numaradır. Üç kişi aynı anda dosya transferine başlamışsa TCP, 1000, 1001 ve 1002 “kaynak” port numaralarını bu üç kişiye verir böylece herkesin paketi birbirinden ayrılmış olur. Aynı zamanda varış noktasındaki TCP de ayrıca bir “varışâ€ port numarası verir. Kaynak noktasındaki TCP nin varış port numarasını bilmesi gereklidir ve bunu iletişim kurulduğu anda TCP karşı taraftan öğrenir. Bu bilgiler başlıktaki “kaynak” ve “varışâ€ port numaraları olarak belirlenmiş olur. Ayrıca her segment bir “sıra” numarasına sahiptir. Bu numara ile karşı taraf doğru sayıdaki segmenti eksiksiz alıp almadığını anlayabilir. Aslında TCP segmentleri değil octet leri numaralar. Diyelim ki her datagram içinde 500 octet bilgi varsa ilk datagram numarası 0, ikinci datagram numarası 500, üçüncüsü 1000 şeklinde verilir. Başlık içinde bulunan üçüncü önemli bilgi ise “kontrol toplamı” (Checksum) sayısıdır. Bu sayı segment içindeki tüm octet ler toplanarak hesaplanır ve sonuç başlığın içine konur. Karşı noktadaki TCP kontrol toplamı hesabını tekrar yapar. Eğer bilgi yolda bozulmamışsa kaynak noktasındaki hesaplanan sayı ile varış noktasındaki hesaplanan sayı aynı çıkar. Aksi takdirde segment yolda bozulmuştur bu durumda bu datagram kaynak noktasından tekrar istenir. Aşağıda bir TCP segmenti örneği verilmektedir.

Şekil 9: TCP Segmenti
Eğer TCP baslığını “T” ile gösterecek olursak yukarda noktalarla gösterdiğimiz dosya aşağıdaki duruma gelir:
T… T… T… T… T…

2.10.2. IP Katmanı
TCP katmanına gelen bilgi segmentlere ayrıldıktan sonra IP katmanına yollanır. IP katmanı, kendisine gelen TCP segmenti içinde ne olduğu ile ilgilenmez. Sadece kendisine verilen bu bilgiyi ilgili IP adresine yollamak amacındadır. IP katmanının görevi bu segment için ulaşılmak istenen noktaya gidecek bir “yol” (route) bulmaktır. Arada geçilecek sistemler ve geçiş yollarının bu paketi doğru yere geçirmesi için kendi başlık bilgisini TCP katmanından gelen segment’e ekler. TCP katmanından gelen segmentlere IP başlığının eklenmesi ile oluşturulan IP paket birimlerine datagram adı verilir. IP başlığı eklenmiş bir datagram aşağıdaki çizimde gösterilmektedir:

Şekil 10: IP Datagram
Bu başlıktaki temel bilgi kaynak ve varış İnternet adresi (32-bitlik adres, 144.122.199.20 gibi), protokol numarası ve kontrol toplamıdır. Kaynak İnternet adresi tabi ki sizin bilgisayarınızın internet adresidir. Bu sayede varış noktasındaki bilgisayar bu paketin nereden geldiğini anlar. Varış İnternet adresi ulaşmak istediğiniz bilgisayarın adresidir. Bu bilgi sayesinde aradaki yönlendiriciler veya geçiş yolları (gateway) bu datagram’i nereye yollayabileceklerini bilirler. Protokol numarası IP’ye karşı tarafta bu datagram’i TCP’ye vermesi gerektiğini söyler. Her ne kadar IP trafiğinin çoğunu TCP kullansa da TCP dışında bazı protokollerde kullanılmaktadır dolayısıyla protokoller arası bu ayrım protokol numarası ile belirlenir. Son olarak kontrol toplamı IP başlığının yolda bozulup bozulmadığını kontrol etmek için kullanılır. Dikkat edilirse TCP ve IP ayrı ayrı kontrol toplamları kullanmaktalar. IP kontrol toplamı başlık bilgisinin bozulup bozulmadığı veya mesajın yanlış yere gidip gitmediğini kontrol için kullanılır. Bu protokollerin tasarımı sırasında TCP’nin ayrıca bir kontrol toplamı hesaplaması ve kullanması daha verimli ve güvenli bulunduğu için iki ayrı kontrol toplamı alınması yoluna gidilmiştir.
IP başlığını “I” ile gösterecek olursak IP katmanından çıkan ve TCP verisi taşıyan bir datagram şu hale gelir:
IT…IT…IT…IT…IT…

Başlıktaki “Yaşam süresi” (Time to Live) alanı IP paketinin yolculuğu esnasında geçilen her sistemde bir azaltılır ve sıfır olduğunda bu paket yok edilir. Bu sayede oluşması muhtemel sonsuz döngüler ortadan kaldırılmış olur. IP katmanında artık başka başlık eklenmez ve iletilecek bilgi fiziksel iletişim ortamı üzerinden yollanmak üzere alt katmana (bu Ethernet, X.25, telefon hattı vs. olabilir) yollanır.

2.10.3. Fiziksel Katman
Fiziksel katman gerçekte Data Link Connection (DLC) ve Fiziksel ortamı içermektedir. Burada ara katmanları genelleyip tümüne Fiziksel katman diyoruz. Günümüzde pek çok bilgisayar ağının Etherneti temel iletişim ortamı olarak kullanmasından dolayı da Ethernet teknolojisini örnek alalım ve Ethernet ortamının TCP/IP ile olan iletişimini açıklayalım. Ethernet kendine has bir adresleme kullanır. Ethernet tasarlanırken dünya üzerinde herhangi bir yerde kullanılan bir Ethernet kartının tüm diğer kartlardan ayrılmasını sağlayan bir mantık izlenmiştir. Ayrıca, kullanıcının Ethernet adresinin ne olduğunu düşünmemesi için her Ethernet kartı fabrika çıkışında kendisine has bir adresle piyasaya verilmektedir. Her Ethernet kartının kendine has numarası olmasını sağlayan tasarım 48 bitlik fiziksel adres yapısıdır. Ethernet kart üreticisi firmalar merkezi bir otoriteden üretecekleri kartlar için belirli büyüklükte numara blokları alır ve üretimlerinde bu numaraları kullanırlar. Böylece başka bir üreticinin kartı ile bir çakışma meydana gelmez. Ethernet teknoloji olarak yayın teknolojisini (broadcast medium) kullanır. Yani bir istasyondan Ethernet ortamına yollanan bir paketi o Ethernet ağındaki tüm istasyonlar görür. Ancak doğru varış noktasının kim olduğunu, o ağa bağlı makinalar Ethernet başlığından anlarlar. Her Ethernet paketi 14 octet’lik bir başlığa sahiptir. Bu başlıkta kaynak ve varış Ethernet adresi ve bir tip kodu vardır. Dolayısıyla ağ üzerindeki her makina bir paketin kendine ait olup olmadığını bu başlıktaki varış noktası bilgisine bakarak anlar (Bu Ethernet teknolojisindeki en önemli güvenlik boşluklarından birisidir). Bu noktada Ethernet adresleri ile İnternet adresleri arasında bir bağlantı olmadığını belirtmekte yarar var. Her makina hangi Ethernet adresinin hangi İnternet adresine karşılık geldiğini tutan bir tablo tutmak durumundadır (Bu tablonun nasıl yaratıldığı ilerde açıklanacaktır). Tip kodu alanı aynı ağ üzerinde farklı protokollerin kullanılmasını sağlar. Dolayısıyla aynı anda TCP/IP, DECnet, IPX/SPX gibi protokoller aynı ağ üzerinde çalışabilir. Her protokol başlıktaki tip alanına kendine has numarasını koyar. Kontrol toplamı (Checksum) alanındaki değer ile komple paket kontrol edilir. Alıcı ve vericinin hesapladığı değerler birbirine uymuyorsa paket yok edilir. Ancak burada kontrol toplamı başlığın içine değil de paketin sonuna konulur. Ethernet katmanında işlenip gönderilen mesaj yada bilginin (Bu bilgi paketlerine frame adı verilir) son hali aşağıdaki duruma gelir:

Şekil 11: Ethernet Paketi
Ethernet başlığını “E” ile ve Kontrol toplamını “C” ile gösterirsek yolladığımız dosya şu şekli alır:
EIT…C EIT…C EIT…C EIT…C EIT…C
Bu paketler (frame) varış noktasında alındığında bütün başlıklar uygun katmanlarca atılır. Ethernet arayüzü Ethernet başlık ve kontrol toplamını atar. Tip koduna bakarak protokol tipini belirler ve Ethernet cihaz sürücüsü (device driver) bu datagram’i IP katmanına geçirir. IP katmanı kendisi ile ilgili katmanı atar ve protokol alanına bakar, protokol alanında TCP olduğu için segmenti TCP katmanına geçirir. TCP sıra numarasına bakar, bu bilgiyi ve diğer bilgileri iletilen dosyayı orijinal durumuna getirmek için kullanır. Sonuçta bir bilgisayar diğer bir bilgisayar ile iletişimi tamamlar.

2.11. TCP Dışındaki Diğer Protokoller: UDP ve ICMP
Yukarıda sadece TCP katmanını kullanan bir iletişim türünü açıkladık. TCP gördüğümüz gibi mesajı segment’lere bölen ve bunları birleştiren bir katmandı. Fakat bazı uygulamalarda yollanan mesajlar tek bir datagram’ın içine girebilecek büyüklüktedirler. Bu cins mesajlara en güzel örnek adres kontrolüdür (name lookup). İnternet üzerindeki bir bilgisayara ulaşmak için kullanıcılar İnternet adresi yerine o bilgisayarın adını kullanırlar. Bilgisayar sistemi bağlantı kurmak için çalışmaya başlamadan önce bu ismi İnternet adresine çevirmek durumundadır. İnternet adreslerinin isimlerle karşılık tabloları belirli bilgisayarlar üzerinde tutulduğu için kullanıcının sistemi bu bilgisayardan bu adresi sorgulayıp öğrenmek durumundadır. Bu sorgulama çok kısa bir işlemdir ve tek bir segment içine sığar. Dolayısıyla bu iş için TCP katmanının kullanılması gereksizdir. Cevap paketinin yolda kaybolması durumunda en kötü ihtimalle bu sorgulama tekrar yapılır. Bu cins kullanımlar için TCP nin alternatifi protokoller vardır. Böyle amaçlar için en çok kullanılan protokol ise UDP’dir(User Datagram Protocol).
UDP datagramların belirli sıralara konmasının gerekli olmadığı uygulamalarda kullanılmak üzere dizayn edilmiştir. TCP’de olduğu gibi UDP’de de bir başlık vardır. Ağ yazılımı bu UDP başlığının iletilecek bilginin başına koyar. Ardından UDP bu bilgiyi IP katmanına yollar. IP katmanı kendi başlık bilgisini ve protokol numarasını yerleştirir (bu sefer protokol numarası alanına UDP’ye ait değer yazılır). Fakat UDP TCP’nin yaptıklarının hepsini yapmaz. Bilgi burada datagramlara bölünmez ve yollanan paketlerin kayıdı tutulmaz. UDP’nin tek sağladığı port numarasıdır. Böylece pek çok program UDP’yi kullanabilir. Daha az bilgi içerdiği için doğal olarak UDP başlığı TCP başlığına göre daha kısadır. Başlık, kaynak ve varış port numaraları ile kontrol toplamını içeren tüm bilgidir.

Diğer bir protokol ise ICMP’dir (“Internet Control Message Protocol”). ICMP, hata mesajları ve TCP/IP yazılımının bir takım kendi mesaj trafiği amaçları için kullanılır. Mesela bir bilgisayara bağlanmak istediğinizde sisteminiz size “host unreachable” ICMP mesajı ile geri dönebilir. ICMP ağ hakkında bazı bilgileri toplamak amacı ile de kullanılır. ICMP yapı olarak UDP’ye benzer bir protokoldür. ICMP de mesajlarını sadece bir datagram içine koyar. Bununla beraber UDP’ye göre daha basit bir yapıdadır. Başlık bilgisinde port numarası bulundurmaz. Bütün ICMP mesajları ağ yazılımının kendisince yorumlanır, ICMP mesajının nereye gideceği ile ilgili bir port numarasına gerek yoktur. ICMP ‘yi kullanan en popüler İnternet uygulaması PING komutudur. Bu komut yardımı ile İnternet kullanıcıları ulaşmak istedikleri herhangi bir bilgisayarın açık olup olmadığını, hatlardaki sorunları anında test etmek imkanına sahiptirler. Şu ana kadar gördüğümüz katmanları ve bilgi akışının nasıl olduğunu aşağıdaki şekilde daha açık izleyebiliriz.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir