ana sayfa : araştırma : TCP-IP ve İnternet : TCP-IP mimarisi [ 2 / 7 ]

GERİ

II.TCP/IP MİMARİSİ

       Bu bölümde TCP/IP’ nin alt katmanlarında bulunan protokoller ile ilgili detaylı  bilgiler verilecek ve sistemin temel çalışma prensipleri açıklanmaya çalışılacaktır.


 

           Şekil-4 TCP/IP Protokolü Alt Katmanlar ve Protokoller

2.1 Fiziksel Katman

       Fiziksel katman için herhangi bir protokol tanımlanmamıştır. Bu katmanda OSI modelinde olduğu gibi ağ bağlantı cihazları, ethernet ve benzeri ağ protokolleri, kablolama alt yapısı ve repeaterlar(tekrarlayıcı) gibi ağın fiziksel yönü ile ilgili araçlar bulunur.  

       Fiziksel katman ham bitleri bir haberleşme kanalı üzerinden iletmekle ilgilidir. Tasarımının amacı, bir uçtan 1 biti(bilgisi) gönderildiğinde karşı taraftan da 1 bilgisini alınmasını sağlamaktır. Tipik sorunlar, 1 veya 0 bitini temsil etmek  için kaç volt gerilim kullanılmalıdır, bir bit kaç mikro saniye tutulmalıdır, aynı anda iletimin iki yönlü olup olmayacağı, ilk bağlantının nasıl kurulacağı ve iki taraf iletimi bitirdiğinde bağlantının nasıl sonlandırılacağı, ağ konnektörünün kaç pinden oluşacağı ve hangi pinin ne amaçla kullanılacağı gibi.

       Fiziksel katman gerçekte Data Link Connection (DLC) ve Fiziksel ortamı içermektedir. Günümüzde pek çok bilgisayar ağının Etherneti temel iletişim ortamı olarak kullanmasından dolayı da Ethernet teknolojisi örnek olarak verilebilir. Dolayısıyla burada Ethernet ortamının TCP/IP ile olan iletişimini ele alacağı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 izlenmistir. 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ı üretici 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ı makineler 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 makine 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 Internet adresleri arasında bir bağlantı olmadığını belirtmekte yarar var. Her makine hangi Ethernet adresinin hangi Internet adresine karşılık geldiğini tutan bir tablo tutmak durumundadır. Tip kodu alanı aynı ağ üzerinde farklı protokollerin kullanılmasını saglar. 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 ya da bilgi aşağıdaki formatı  alır.

       Bu paketler (frame) varış noktasında alındığında bütün başlıklar uygun katmanlarca atılır. Ethernet ara yü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ı 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.2 Yönlendirme Katmanı

2.2.1 IP Protokolü

       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ık bilgisinin formatı şekilde gösterilmiştir.

             0                           1                           2                           3 

             0 1 2 3 4 5 6 7 8 90 1 2 3 4 5 6 7 8 90 1 2 3 4 5 6 7 8 90 1

Uyarlama

Başlık

Hizmet Türü

Toplam Uzunluk

Kimlik Saptaması

Bayrak Bitleri

Fragment Kayıklığı

Yaşam Süresi(TTL)

Protokol

Başlık İçin Hata Sınama Bitleri

 

 

Gönderici IP Adresi

 

Alıcı IP Adresi

Seçenekler

 

 

TCP Segmenti

(TCP Başlığı + Kullanıcı Verisi)

       

Şekil-5 IP Başlığı İçindeki Alanlar

 

IP başlığında kullanılan alanların amaçları aşağıda açıklanmıştır. 

Uyarlama: O anda kullanılan IP’nin uyarlanmasını gösterir. Farklı uyarlamada başlıktaki alanların yerleri değişiklik göstereceğinden, paketin doğru yorumlanması için kullanılır.

Başlık Uzunluğu: Datagram başlığının gerçek uzunluğunu gösterir. Başlık alanının kaç adet 32 bitlik sözcükten oluştuğunu gösterir.

Hizmet Türü: Datagramın nasıl yönlendirileceğini belirler. Yönlendirmede yapılan yol seçiminde ve bağlantıda kullanılır. Datagramlara bu alan aracılığıyla önem düzeyi atanabilir. Göndericinin ağdan beklediği güvenilirlik, hız ve gecikmenin düzeyini belirtir. Ancak bu alanı mevcut yönlendiricilerin pek azı değerlendirmektedir.

Toplam Uzunluk: Tüm IP paketinin uzunluğunu belirtir. Toplam uzunluk maximum

 65535 bit olabilir.

Kimlik Saptaması: Kullanıcı karşı tarafla etkileşim içindeyken, mesajlar parçalanarak birçok datagram içinde gönderilebilir. Bu alan aynı kullanıcı mesajının farklı datagramlar içinde bulunması durumunu açıklayan kimlik bilgisi içerir.

Bayrak Bitleri: Üç tane olan bayrak bitlerinden ilki (D biti) içinde bulunduğu datagramın kaç parçadan oluştuğunu belirtir. Eğer 1 ise gönderilen verinin tek datagramdan oluştuğu anlaşılır. Alıcıya veri gönderildikten sonra başka mesaj olmadığına dair mesaj gönderilir. İkinci bayraksa, parçalanıp birçok datagram haline gönderilen verinin en son olduğunu belirtir. Üçüncüsü saklı tutulmuştur.   

Fragment Kayıklığı: 8 byte’ lık birimler halinde fragmentin datagram içindeki konumun gösterir. DF (Don’t Fragment) yönlendiricilerden datagramı fragmentlere bölmemesini söyleyen 1 bitlik bir istek alanıdır. Alıcının fragmentleri birleştiremediği durumlarda gereklidir. MF (More Fragment), bir datagramın son fragmenti dışındaki tüm fragmentlerinde MF=1’dir.

Yaşam Süresi(TTL): Datagramın ağ üzerinde dolaşma süresini belirler. Verici tarafında yerleştirilen dolaşma değeri her düğümden geçerken azaltılır. Sıfıra ulaşırsa kaybolmuş olduğu varsayılarak datagram ağdan çıkarılır. TTl alanına başlangıçta 255 veya daha küçük bir tam sayı yerleştirilir. Her yönlendiricide bu alandaki değer 1 eksiltilir. Ayrıca yönlendiricide paket bir bekleme kuyruğuna alınırsa her geçen birim zamanda TTL alanındaki sayı 1 eksiltilir. Sayı 0’a ulaşırsa paket geçersiz sayılır ve atılır. Paketi atan yönlendirici paketin gönderildiği yönlendiriciye bir uyarı paketi gönderir.  

Protokol: Bir datagramın hangi üst katman protokolüne ait olduğunu belirtir. Alıcı tarafın IP katmanı bu alana bakarak paketi bir üstünde bulunan protokollerden hangisine ileteceğini anlar.

Başlı Hata Sınama Bitleri: Datagram başlığında bir bozulma olup olmadığını belirlemeye yarar. Her yönlendiricide bu alandaki değer kullanılarak datagramın bozulup bozulmadığı araştırılır. Sonuç olumlu ise paket bir sonraki yönlendiriciye gönderilir bu arada başlıktaki bazı değerlerle birlikte (örneğin TTL) bu alandaki değer de gönderilen pakette yeniden hesaplanır. Yöntem yalnızca başlıktaki hataları açığa çıkardığı için ulaşım katmanının verideki muhtemel bozuklukları yakalayacak önlemler alması gerekebilir.   

Gönderici IP Adresi: Datagramı gönderen yerin gerçek Internet adresi yerleştirilir.

Alıcı IP Adresi: Datagramın gideceği yerin Internet adresi yerleştirlir.

Seçenekler: Bu alan değişik amaçlar için kullanılır. Güvenlik hata raporlama gib seçimliktir. Ancak kullanılırsa 32 bitin katları uzunluğunda olmalıdır. yani uzunluğu 32 bitin katlarına tamamlanmalıdır.

TCP Segmenti: Bir üst katmandan gelen veriyi içerir.

2.2.2 ICMP Protokolü

       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 için kullanılır. Genel olarak sistemler arası kontrol mesajları IP yerine ICMP üzerinden aktarılır. ICMP, IP ile aynı düzeyde olmasına rağmen aslında kendisi de IP’yi kullanır. ICMP mesajları IP üzerinde gönderilir.

       Mesela bir bilgisayara bağlanmak istediğimizde sistemimiz bize eğer “bilgisayara erişilemiyor (host unreachable)” gibi bir mesaj verirse bu ICMP mesajı ile geri döner. 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 Internet uygulaması PING komutudur. Bu komut yardımı ile Internet kullanıcıları ulaşmak istedikleri herhangi bir bilgisayarın açık olup olmadığını, hatlardaki sorunları anında test etmek imkanına sahiptirler.

       Aşağıdaki şekilde ICMP formatı görülmektedir.

                                                 32 Bit

Tip

Kod

Hata Sınama

 

Parametreler

 

 

Bilgi

  Şekil–6 ICMP Mesajı Formatı

Tip: ICMP mesajlarının tipini gösterir.

Kod: Mesajın parametreleri belirlemek için kullanılır.

Hata Sınama: Tüm ICMP mesajının hata sınaması için kullanılır.

Parametreler: Parametrelerin daha uzun halinin belirlenmesinde kullanılır.

Bilgi: Mesajın içeriği ile ilgili bilgi.

Örnek ICMP mesaj tipleri

·         Alıcıya Erişilemiyor (Destination Unreachable)

·         Zaman Aşımı (Time Exceeded)

·         Parametre Sorunu (Parameter Problem)

·         Yansıma (Echo)

·         Yansıma Karşılığı (Echo Reply)

·         Zaman Damgası (Time Stamp)

Bu mesajlara benzer daha birçok örneği vardır.

2.2.3 ARP Protokolü

            Ethernet üzerinde IP datagramların nasıl yer aldığından fiziksel katmanda bahsedilmişti. Fakat açıklanmadan kalan bir nokta bir Internet adresi ile iletişime geçmek için hangi Ethernet adresine ulaşmamız gerektiği idi. Bu amaçla kullanılan protokol ARP’dir (“Address Resolution Protocol”). ARP aslında bir IP protokolü değildir ve dolayısıyla ARP datagramları IP başlığına sahip değildir. Varsayalım ki 128.6.4.194 IP adresine sahip bir bilgisayar ile  128.6.4.7 IP adresine sahip bilgisayar iletişime geçmek istiyor. Sistemin ilk kontrol edeceği nokta 128.6.4.7 ile aynı ağ üzerinde olup olmadığıdır. Aynı ağ üzerinde yer alıyorsa, bu Ethernet üzerinden direk olarak haberleşebilecek anlamına gelir. Ardından 128.6.4.7 adresinin ARP tablosunda olup olmadığı ve Ethernet adresini bilip bilmediği kontrol edilir. Eğer tabloda bu adresler varsa Ethernet başlığına eklenir ve paket yollanır. Fakat tabloda adres yoksa paketi yollamak için bir yol yoktur.                 Dolayısıyla burada ARP devreye girer. Bir ARP istek paketi ağ üzerine yollanır ve bu paket içinde “128.6.4.7” adresinin Ethernet adresi nedir sorgusu vardır. Ağ üzerindeki tüm sistemler ARP isteğini dinlerler bu isteği cevaplandırması gereken istasyona bu istek ulaştığında cevap ağ üzerine yollanır. 128.6.4.7 isteği görür ve bir ARP cevabi ile “128.6.4.7 adresinin Ethernet adresi 8:0:20:1:56:34” bilgisini istek yapan istasyona yollar. Bu bilgi, alıcı noktada ARP tablosuna işlenir ve daha sonra benzer sorgulama yapılmaksızın iletişim gerçekleştirilir. Aşağıdaki şekilde ARP protokolünün gerçekleşmesi açıklanmıştır. 


 

Şekil-7 ARP İstek Paketi Gönderilmesi

       199.6.13.7 nolu IP’ye sahip olan bilgisayar 199.6.13.8 nolu IP’ye sahip olan bilgisayar ile haberleşmek istiyor. 199.6.13.7 nolu bilgisayar hazırladığı ARP istek paketinde hedef bilgisayarın IP adresi ve 0.0.0.255 olan yayın(broadcast) adresi ve paketin hangi düğümden çıktığını belirten kaynak (source) düğüm adı yazılır. Bu paket ethernet boyunca tüm düğümlerden geçer ve ağdaki bilgisayarlar hedef IP kısmına bakarak eğer paket kendilerini ilgilendiriyorsa alıp işleyerek MAC adresini kaynak düğüme(E1) gönderirler. Bu şekilde bir ARP isteği cevaplanmış olur.   

2.3 Taşıma (Ulaşım) Katmanı

       Ulaşım katmanın temel işlevi, hazırlanan veriyi alıp, ihtiyaç duyulduğunda küçük bileşenlere ayırıp ağ katmanına geçirerek, diğer uca bu parçaların doğru bir şekilde ulaştığına emin olmaktır. Normal şartlar altında, ulaşım katmanı, uygulama katmanı tarafından ihtiyaç duyulan her taşıma bağlantısı için bir sanal ağ bağlantısı oluşturur.

       Eğer taşıma bağlantısı yüksek bir kapasite isterse, ulaşım katmanı birçok ağ bağlantısı oluşturup, kapasiteyi artırmak için veriyi bu bağlantılara paylaştırır. Öte yandan, farklı ağ bağlantılarının oluşturulması maliyeti artırdığı durumlarda ulaşım katmanı çeşitli taşıma bağlantılarını bir ağ bağlantısı üzerinde maliyeti azaltmak için birleştirebilir. Tüm durumlarda ulaşım katmanı birleştirme işinin uygulama katmanına yansımaması için gereklidir.

       Ulaşım katmanı ayrıca uygulama katmanına sonuç olarak ağ kullanıcılarına ne tip servisler sunulacağına karar verir. Ulaşım bağlantısının en popüler tipi gönderildiği sıra ile hatasız uçtan-uca ulaştıran kanaldır. Ancak, diğer tip taşıma, servis ve taşıma bilgisi ayrılmış mesajları değişik lokasyonlara ileten ve hedefine ulaştırma konusunda herhangi bir garanti vermeyenidir. Servis tipi bağlantı sağlandığında belirlenir.

       Ulaşım katmanı, gerçek bir kaynaktan hedefe veya uçtan uca  katmandır. Başka bir değişle, Kaynak sistemde çalışan bir program mesaj başlıkları ve denetim mesajlarını kullanarak, hedef sistemdeki benzeri bir programla konuşur.

       Birçok bilgisayar üstünde birden fazla programı çalıştırır, yani sisteme giren ve çıkan birçok bağlantı vardır. Bu yüzden hangi mesajın hangi bağlantıya ait olduğunun belirlenmesi için bir metoda ihtiyaç duyulur. Taşıma başlığı bu bilginin koyulabileceği bir yerdir.

       Değişik mesajları bir kanal içinde birleştirmenin yanında, taşıma katmanı ağ boyunca bağlantıların kurulması ve kaldırılmasını da takip etmelidir. Bu, bir bilgisayar üzerinde kiminle konuştuğunu atrif edecek bir tür isimlendirme mekanizması gerekliliğini doğurur. Ayrıca hızlı bir bilgisayarın yavaş bir bilgisayarı aşmaması için bilgi akışını düzenleyecek bir mekanizmanın olması gereklidir.

2.3.1 TCP Protokolü

       TCP’nin (“Transmission Control Protocol - İletiş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. 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.

       Şu ana kadar sadece Internet adresleri ile bir noktadan diğer noktaya ulaşılması konusundan bahsettik ancak birden fazla kişinin aynı sisteme ulaşmak istemesi durumunda neler olacağı konusuna henüz bir açıklık getirmedik. 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, datagrama 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.

       TCP katmanı bir 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 oktetleri 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 oktetler 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ğıdaki

şekilde TCP protokolü tarafından hazırlanan segmentin formatı görülmektedir.


                                              Şekil-8 TCP Protokolü Başlığı

TCP protokolünün yaptığı işleri üç madde halinde özetlemek gerekirse

1.       Bir üst katmandan gelen verinin uygun uzunlukta parçalara (segmentlere) bölünmesi,

2.       Herbir parçaya, alıcı kısımda aynı biçimde sıraya koyulabilmesi amacıyla sıra numarası verilmesi

3.       Kaybolan veya bozuk gelen parçaların tekrarlanması olarak verilebilir.

 

Başlık içinde kullanılan alanların amaçları aşağıda açıklanmıştır.

·         Gönderici Port No: Bir üst katmanda TCP hizmetini isteyen uygulama protokol prosesinin kimliği durumundadır. Karşı mesaj geldiğinde bir üst katmana iletmek için, o protokolün adı değil de port numarası kullanılır.

·         Alıcı Port No: Gönderilen veri paketinin alıcı tarafta hangi uygulama prosesine ait olduğunu belirtir.

·         Sıra Numarası: Gönderilen paketin sıra numarasını gösterir. Gönderilmeden önce daha küçük parçalara ayrılan verinin, alıcı kısımda yeniden aynı sırada elde edilmesinde kullanılır.

·         Onay Numarası: Gönderilen verinin en son hangi sekizlisinin alındığını  göndericiye iletmek için kullanılır. Örneğin 4 sayısı gönderilmişse 4’e kadar olanlar alınmış 4. Paketin istendiğini bildirir. 

·         Başlık Uzunluğu: TCP başlığında var olan 32 bit  uzunluğundaki sözcüklerin sayısını gösterir.

·         Saklı Alan: İlerde olabilecek genişlemem için gizli tutulmuştur.

·         Kod Bitleri: Kontrol bilgilerini taşımak için kullanılır.

·         Pencere: Alıcının tamponunda (buffer) kullanılan alanın oktet olarak ifade edilmesi.

·         Hata Sınama Bitleri: Verinin ve başlığın hatasız olarak aktarılıp aktarılmadığını kontrol etmek için kullanılır.

·         Acil İşaretçisi: Acil veri alıcının uygulama katmanında öncelikle değerlendirilmesi gereken veridir.

·         Veri: Değerlendirilmesi istenen verinin bölüm içindeki yerini işaret eder.

 

2.3.2 UDP Protokolü

       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). Internet üzerindeki bir bilgisayara ulaşmak için kullanıcılar Internet adresi yerine o bilgisayarın adını kullanırlar. Bilgisayar sistemi bağlantı kurmak için çalışmaya başlamadan önce bu ismi Internet adresine çevirmek durumundadır. Internet 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 tür 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 oldugu gibi UDP’de de bir başlık vardır. Ağ yazılımı bu UDP başlığını iletilecek bilginin başına koyar. Ardından UDP bu bilgiyi IP katmanına yollar. Aşağıdaki şekilde UDP protokolünün formatı görünmektedir.


Şekil-9 UDP Protokolü Başlığı

 


       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 kaydı tutulmaz. UDP’nin tek aldığı 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.

       UDP protokolü basit bir protokol olduğu için hızlı iletişim kurmamız gereken yerlerde kullanmamız yararımıza olacaktır. Buradaki basitlikten kasıt TCP protokolü gibi verinin gönderilmesi gibi kontrolleri içermediği içindir. UDP protokolünü kullanan programlara örnek olarak 161 nolu portu kullanan SNMP servisini verebiliriz.

 

 

       TCP ve UDP protokollerinin veri üzerinde yaptıkları temel işlevler karşılaştırmalı olarak gösterilmiştir.

 


Şekil-10 TCP ve UDP Protokollerinin karşılaştırması

2.4 Uygulama Katmanı

       Uygulama katmanı çokça ihtiyaç duyulan birçok protokolü içerir. Örneğin dünyada birbirine uyumsuz yüzlerce terminal, uç birim tipi vardır. Örneğin her biri farklı ekran düzenleri, metin silme ve düzenleme için farklı ara yüzler, imleç konumlandırması vs. kullanan değişik uç birimlerle çalışan bir tam ekran metin editörünü ele alalım.

       Bu problemi çözmenin editörlerin ve diğer programların yazabildiği sanal bir ağ uç birimi oluşturmaktır. Her uç birim tipini karşılamak için, sanal uç birimin fonksiyonlarının gerçek uç birim üzerine eşleşmesini sağlamak için bir yazılım yazılmalıdır. Örneğin bu yazılım, editör sanal uç birimin imlecini sol üst köşeye konumlandırdığında, yazılım gerçek uç birimde imlecin asıl konumuna yerleşimi için düzgün komut dizisini işlemelidir. Tüm sanal uç birim yazılımları uygulama katmanındadır.

       Uygulama katmanının diğer bir işlevi ise dosya transferidir. Değişik dosya sistemleri, değişik dosya isimlendirme tanımlamalarına, metin bilgisinin temsili için değişik metotlara sahiptir. Değişik dosya sistemlerinden dosya transferleri bu uyumsuzlukları ortadan kaldırmayı gerektirir. Bu iş, yine, elektronik posta, dizin taraması ve diğer özel ve genel amaçlı işlevlerde yapıldığı gibi uygulama katmanına aittir.

       TCP/IP’nin kullanıldığı en önemli servislerden birisi elektronik postadır.(e-mail) E- posta servisi için bir uygulama protokolü belirlenmiştir (SMTP). Bu protokol e-mail’in bir bilgisayardan bir başka bilgisayara nasıl iletileceğini belirler. Yani e- postayı gönderen ve alan kişinin adreslerinin belirlenmesi, mektup içeriğinin hazırlanması vs. gibi. Ancak e-posta servisi bu mektubun bilgisayarlar arasında nasıl iletileceği ile ilgilenmez, iki bilgisayar arasında bir iletişimin olduğunu varsayarak mektubun yollanması görevini TCP ve IP katmanlarına bırakır. TCP katmanı komutların karşı tarafa ulaştırılmasından sorumludur. Karşı tarafa ne yollandığı ve hatalı yollanan mesajların tekrar yollanmasının kayıtlarını tutarak gerekli kontrolleri yapar. Eğer gönderilecek mesaj bir kerede gönderilemeyecek kadar büyük ise (Örneğin uzunca bir e-posta gönderiliyorsa) TCP onu uygun boydaki segment’lere (TCP katmanlarının iletişim için kullandıkları birim bilgi miktarı) böler ve bu segment’lerin karşı tarafa doğru sırada, hatasız olarak ulaşmalarını sağlar. Internet üzerindeki tek servis e-posta olmadığı için ve segment’lerin karşı tarafa hatasız ulaştırılmasını sağlayan iletişim yöntemine tüm diğer servisler de ihtiyaç duyduğu için TCP ayrı bir katman olarak çalışmakta ve tüm diğer servisler onun üzerinde yer almaktadır. Böylece yeni bir takım uygulamalar da daha kolay geliştirilebilmektedir. Üst seviye uygulama protokollerinin TCP katmanını çağırmaları gibi benzer şekilde TCP de IP katmanını çağırmaktadır. Ayrıca bazı servisler TCP katmanına ihtiyaç duymamakta ve bunlar direk olarak IP katmanı ile görüşmektedirler. Böyle belirli görevler için belirli hazır yordamlar olusturulması ve protokol seviyeleri inşa edilmesi stratejisine ‘katmanlaşma’ adı verilir. Yukarıda verilen örnekteki e- posta servisi (SMTP), TCP ve IP ayrı katmanlardır ve her katman altındaki diğer katman ile konuşmakta diğer bir deyişle onu çağırmakta ya da onun sunduğu servisleri kullanmaktadır.

2.5 TCP/IP ’yi Kullanarak Haberleşmek

       Kullandığımız bilgisayardan karşı taraftaki bir makineye e-mail göndereceğimizi düşünelim.

       Uygulama Katmanı: Uygulama katmanında e-maillerimizi düzenlememiz için çeşitli editörler ve gönderme ara yüzleri mevcuttur. Bu protokol katmanı bir bilgisayardan diğerine göndermek için bir takım komutlar tanımlar. Bu tanımlanan komutlar hem gönderici hem de alıcı tarafında aynı şekilde anlaşılıp yorumlanan komutlar kümesidir. Diyelim ki, göndereceğimiz mesaj “DenemeMailMesajı”şeklinde olsun:

       Bu veri grubu, karşı makineye ulaşması için sigortası konumunda olan  mesajın gönderilmesinden sorumlu olan TCP modülüne gönderilir. TCP ‘yi güvenilir bir ağ haberleşmesi için kullanılan servis olarak düşünebiliriz.

       İletim Katmanı Servisleri: TCP protokolü uzun mail mesajlarını yönetilebilir segmentlere böler. Her segment netice olarak kendi datagramına yerleştirilir.

       Deneme  Mail  Mesajı

       Daha sonra TCP protokolü segmentlere ayrılan mesajın başına kendi başlığını yerleştirir. Bu başlık içinde kaynak portu, hedef port ve takip sırası bulunur. Eğer TCP başlığını(header) “T” ile adlandıracak olursak her segment başına eklenmiş hali:

       (T)Deneme (T)Mail (T)Mesajı olur.

       Bu datagram artık işlenmesi son gönderim işleminin gerçekleşmesi için IP katmanına gönderilir. Gönderilme işlemi sırasında TCP protokolü ne gönderildiğinin bilgisini eğer gönderilme sırasında bir hata meydana gelirse tekrar gönderime tabi tutulur ve bu protokol verinin düzgün olarak gönderildiğine dair “OK” mesajını alacaktır.

       Internet Katmanı: TCP ve IP katmanları arasındaki  sanal ara yüz diğer katmanlara göre oldukça basit bir yapıya sahiptir. TCP protokolü gönderilecek olan  datagramı basitçe hedef IP protokolüne iletir. IP protokolü bu datagramın nakli yada ondan önceki ve sonraki datagramların nakli ile ilgili herhangi bir iletim bilgisine sahip değildir.

       Burada IP protokolünün görevi kısaca gönderilecek olan datagramı uygun yolu seçerek göndermek ve varış noktasına iletmektir. Tamamlanmış olan kişisel mail dosyamızın içinde datagramı toplamak hedef adresin sorumluluğundadır. Datagramın gönderilmesi sırasında IP protokolünü “I” ile temsil edersek oda kendi başlığını(header) mesajın baş kısmına ekler.

       (I)(T)Deneme (I)(T)Mail (I)(T)Mesajı         

       Bu IP başlığı da, kaynak Internet Adresini, hedef Intrenet Adresini TCP protokolünü gösteren port adresini ve hata kontrol bitlerini içerir. Bundan sonra her datagram ayrı ayrı Fiziksel Katmana aktarılır.  

       Fiziksel Katman: Fiziksel network katmanı da her datgramın başına kendi başlığını(header) ekler. Biz bir ethernet network’e ulaştığımızı varsayarsak ve ethernet başlığını “E”, ethernet kontrol başlığını “C” ile temsil edersek mailimizin gönderilmeye hazır düzenlenmiş hali:

       (E)(I)(T)Deneme(C)    (E)(I)(T)Mail(C)  (E)(I)(T)Mesajı(C)    

şeklinde olur.

 

Hedef İstasyon:

·         Mailimiz hedef istasyon tarafından alındığında ve datagramımız protokol kümelerinin çeşitli katmanlarında işlendikten sonra IP başlığı kaldırılır.

·         Ethernet ara yüzü gönderilen dosyanın Ethernet tipine bakarak veriyi IP protokolüne aktarır.

·         IP protokolü verinin protokol alanına bakarak TCP protokolüne gönderir.

TCP  protokolü verinin geliş sırasına ve diğer bilgilere bakarak veriyi orjinal haline getirerek birleştirir ve gönderilen mail artık uygulama katmanına okunmak üzere aktarılır.