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. 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
Ş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.
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. ·
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) 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. 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.
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.
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.
|