|
Abruzzi
|
 |
« : Mayıs 14, 2008, 17:29:01 ÖS » |
|
I. TCP/IP ve INTERNET 1.1 TCP/IP’nin Tarihi Gelişimi TCP/IP ilk olarak 1970’li yılların başında Amerikan Savunma Bakanlığı’na bağlı İleri Araştırma Ajansı’nın (Advanced Research Projects Agency,ARPA) savunma amaçlı projelere destek vermek üzere paket anahtarlamalı ağ deneylerinde kullanılmaya başlanmıştır. Bu proje Amerika’da bulunan bilgisayarların bir felaket halinde bile ayakta kalabilmesini sağlamak ve iletişimini devam ettirmesi için gerekli unsurları kapsayacak şekilde tasarlanıyordu. Bu nedenle ARPA geliştirdiği paket anahtarlamalı deneysel çalışmaları ilk olarak WAN (Wide Area Network)’lara uygulamaya başladı daha sonra geliştirilen bu sistemi LAN (Local Area Network) sistemlerine göre de adapte etmeye başladı. 1980’li yılların başlarında Berkeley’in UNIX 4.2 versiyonu da tam olarak TCP/IP protokolünü içermeye başladı. Sonuç olarak bu protokol kümesinin kullanılma alanının artışı diğer network sistemlerinde de kullanılmasına sebep oldu. 1983 yıllarında ise TCP/IP protokolü artık bütün yerel ve genel ağlarla birlikte askeri çalışmalarında standardını teşkil etmektedir.
Şekil-1 TCP/IP protokolünün yıllara göre kullanıcı sayısı
Yapılan çalışmalar sonucu TCP/IP protokolü 1990 yıllarının sonunda her türlü işletim sistemi ve ağ ortamına uyumlu olması ve OSI standartları ile etkileşimli olması nedeniyle çok fazla kullanılır hale gelmiştir. Bu nedenle Internet bağlantıları için TCP/IP ve bileşenleri kaçınılmaz hale gelmiştir. TCP/IP protokolünün sağlamış olduğu bazı avantajlar aşağıda belirtilmiştir. • 32 bitlik işlem yapan ve korumalı modda çalışan Microsoft TCP/IP protokolü standart bellek kullanmaz. • DHCP (Dynamic Host Configuration Protocol – Dinamik Bilgisayar Ayarlama Protokolü) protokolünü TCP/IP desteklemektedir. Bu protokol, IP adreslerini otomatik olarak iletişim ağı üzerinde bulunan tüm bilgisayarlara dağıtma görevini üstlenmektedir. • TCP/IP, IP adreslerini bilgisayar isimlerine dönüştürmek üzere otomatik olarak çözümlenmesini sağlayan WINS (Windows Internet Naming Service)‘i desteklemektedir. Örneğin tef.gazi.edu.tr gibi bir NetBIOS ismi WINS ile 194.27.12.2 gibi bir IP adresine dönüştürülür. • TCP/IP protokolü dial-up Internet bağlantılarında TCP/IP tabanlı hizmet birimlerine uzaktan erişimi sağlayan Point-to-Point Protocol (PPP – Noktadan Noktaya Protokol) ve Serial Line IP (SLIP) protokollerini desteklemektedir. • TCP/IP uygulamalarında TELNET, FTP ve HTTP gibi birçok hizmet birimi TCP/IP protokolü tarafından desteklemektedir. 1.2 TCP/IP ve OSI Katman İlişkisi OSI başvuru modeli, bilgisayar ağlarında iletişim halinde olan bilgisayarların haberleşme süreci boyunca işlemleri katmanlar düzeyinde tanımlayan bir örnek modeldir. Bu modelde veri haberleşmesi için yapılması gereken tüm iş birbirinden bağımsız olarak işleyecek şekilde parçalara ayrılmış ve her parçaya ait görev tanımlamaları yapılmıştır. OSI başvuru modeli diğer tüm protokollerin veya standartların açıklanmasında örnek bir başvuru modeli olmuştur. OSI standardı ISO tarafından 1979 yılında yayınlandı. Genel yapısı bir düğümün iletişim sürecini çok katmanlı bir yapı şeklinde tanımlamaktır. OSI modelinde bir uç düğümde, her biri farklı işlevlere sahip 7 katman tanımlıdır. Uç bilgisayarlarda 7 katmanın tamamı bulunurken, bilgisayar ağında yer alan ara düğüm cihazlarda daha az sayıda katman bulunabilmektedir. Mesela ağ içinde kullanılan tekrarlayıcılar yalnızca 1.katmana, köprü ve anahtar cihazları 1. ve 2.katmana, yönlendiriciler ise ilk 3 katmana ait işlevlere sahiptir. 1.2.1 OSI Modeli Mimarisi OSI başvuru modelinde hiyerarşi bir yapı söz konusudur. Bu modele göre en üst katmanda kullanıcı programları en alt katmanda ise verinin bit düzeyinde iletilip alınması ve gönderilmesi için protokol kümeleri ve kablo bağlantıları vardır. Ara katmanlar ise bu iki katman arasında gerekli uygulamaları içerir. Her katman bir üst katmana hizmet sunarken bir alt katmandan kendi için hizmet ister. Şekil-2’de OSI modeli katmanlar arası ilişkiler belirtilerek gösterilmiştir. Bu katmanların oluşturulmasında uygulanan prensipler aşağıda belirtilmiştir. 1.Değişik seviye bir ayırım gerektiğinde bir tabaka oluşturulmalıdır. 2.Her tabaka iyi tanımlanmış bir fonksiyonu yerine getirmelidir. 3.Her tabakanın fonksiyonu uluslararası standartlaştırılmış protokoller açısından seçilmelidir. 4.Tabaka sınırları arabirimler arası bilgi akışını en aza indirecek şekilde seçilmelidir. 5.Tabakaların sayısı belirgin fonksiyonların aynı tabakalar üzerinde atlama yapmayacak kadar geniş, mimariyi hantallaştırmayacak kadar az olmalıdır.
Şekil-2 OSI Referans Modeli ve Katmalar Arası İlişkisi
7. Uygulama Katmanı: Ağın kullanıcıya bakan kısmıdır. Bu katman uygulama programlarının ağa erişimi için gerekli olan işlevleri kapsar. Kullanıcının etkileşimde bulunduğu uygulama programları doğrudan bu katmanla iletişim içindedir. Bu katman içinde dosya transferi FTP, elektronik mektup E-MAIL, ağ yönetimi SNMP ve TELNET gibi standartlar geliştirilmiştir. 6. Sunum Katmanı: Bilgisayarlar arasında gönderilecek olana verinin gönderilme biçimini ve düzenlenmesini sağlar. Bu katmanda verinin şifrelenmesi, şifresinin çözülmesi, sıkıştırılması, açılması, ASCII dönüşümü ve ters dönüşümü yapılması gibi işlemler bu katmanda yapılmaktadır. 5. Oturum Katmanı: Uç düğümler arası gerekli oturumun kurulması, yönetimi ve sonlandırılması işleri bu katmanda düzenlenir. Ayrıca yarıda kesilen oturumun kaldığı yerden devam etmesi için bir senkronizasyon noktasından başlayarak iletimin devam etmesini sağlar. 4. Taşıma Katmanı: Bilginin son kullanıcıda hatadan arındırılmış olarak elde edilmesini sağlar. Ulaşım katmanının oluşturduğu bilgi bloklarına segment adı verilir ve veriler ağ üzerinde segmentler olarak taşınır. Ulaşım katmanı sırası bozulmuş olan segmentleri numaralandırarak sıraya koyar. 3. Ağ Katmanı: Veri paketlerinin ağ üzerinde bir yerden başka bir yere gönderilirken çeşitli ağ cihazları (router,bridge,switch) üzerinden geçirilip yönlendirilerek alıcısına ulaşmasını sağlayan işlevlere sahiptir. Veri paketinin ağ üzerinde alıcısına giderken ağ koşullarına, önceliklere ve ağın durumuna göre uygun yönlendiriciyi seçerek hangi yolun uygun olduğu bu katmanda değerlendirilir. TCP/IP’nin IP protokolü bu bölümde yer almaktadır. 2. Veri Bağı Katmanı: Gönderilecek bilginin hatalara karşı bağışık bir yapıda lojik işaretlere dönüştürülmesi, alıcıda hataların sezilmesi, düzeltilemiyorsa doğrusunun elde edilmesi için göndericinin uyarılması gibi işlevleri vardır. Bu katmanda fiziksel katmanda belirtilen ağ cihazlarının birbirleri ile iletişimini sağlayan 802.3, 802.4 ve 802.5 gibi çeşitli ethernet protokolleri vardır. 1. Fiziksel Katman: Verinin fiziksel olarak hat üzerinden aktarılması için gerekli işlevleri kapsar. Bu katmanda bit düzeyinde veri iletişimi söz konusudur verinin doğruluğu ile ilgilenilmez. Fiziksel katman adından da anlaşılacağı üzere kablo bağlantılarının, ağ kartlarının, ağ bağlantı cihazlarının ve ağın donanımsal özelliklerini içeren katmandır. Yukarıda özelliklerine değindiğimiz katmanlar, bir veri paketinin bir uçtan diğer bir uca gönderilmesi sırasında çeşitli zamanlarda görev alarak verinin iletilmesi için gerekli olan kontrol ve yöntemleri uygulayarak veri transferini gerçekleştirmeye yarar. 1.2.2 TCP/IP’ nin Yapısı TCP/IP protokol OSI standartlarını esas almak üzere toplam 4 katmandan oluşmaktadır. OSI standardında bulunan 7 katman TCP/IP mimarisinde 4 katmanda birleştirilmiş ve benzer işlevlere sahiptir. Ancak TCP/IP protokolü kendi katmanları içinde birbirinden farklı görevlere sahip protokoller içeren bir protokol kümesidir. Aşağıdaki şekilde OSI ve TCP/IP mimarileri karşılaştırmalı olarak görülmektedir. Şekil–3 TCP/IP Protokolü ve OSI Katman İlişkisi 1.2.3 Niçin TCP/IP ? • IBM, 3Com, DEC, Sun, HP ve benzeri firmaların çoğu TCP/IP protokolünü benimsemişlerdir. • Her türlü bilgisayar ortamında rahatlıkla çalışmaktadır.(PC, Server, İş İstasyonu, Mainframe gibi) • Unix ortamına çok iyi entegrasyon sağlar. • Dinamik router(yönlendirici) teknolojisini destekler. • İstemci – server mimarisini destekler. • Ethernet, X.25 ve Token Ring gibi birçok yerel ve genel ağ protokollerini destekler. • Peer to peer (noktadan noktaya) mimarisini destekler. • OSI uygulamaları TCP/IP protokolü üzerinde rahatlıkla çalıştırılabilir.
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.
III. ADRESLEME, ALT AĞLARA AYIRMA VE ADRES ÇÖZME 3.1 IP ADRESİ TANIMLAMA Bir ağ üzerinde IP adresi tanımlamanın iki yolu vardır. Bu adres ya kullanıcı tarafından elle girilir yada ağ üzerindeki bir ana makinenin adres havuzundan alınarak dağıtılır. Elle adres girmek hem çok hataya neden olabilir hem de çok fazla bilgisayardan oluşan bir ağa IP numarası yanında subnet mask ve default gateway gibi değerlerinde girilmesi gerekmektedir. Bu işlemde çok fazla zaman alır onun için genellikle bir adres havuzundan IP adresi alınması tercih edilir. Bu adresleri otomatik olarak dağıtmanın yolu Dinamik Bilgisayar Konfigürasyonu Protokolü (Dynamic Host Configuration Protocol, DHCP)’dir. Bu protokolde ağ üzerindeki ana makine DHCP sunucu (Server) olarak tanımlanır ve bu makine üzerinden IP dağıtma işlemi gerçekleştirilir. IP adresi tanımlanmış olan bir bilgisayar ağ üzerinde diğer bilgisayarlarla iletişimi artık çok rahat gerçekleştirebilir. Ama bir ağ üzerinde iletişim gerçekleşecekse bu işlem için iletişime geçeceğimiz bilgisayarın ismini kullanmak çok daha mantıklıdır. Çünkü bir IP numarasını akılda tutmak pek akıllıca bir iş değildir. Bunun için ağ ortamlarında genellikle isme dayalı iletişim söz konusudur. Ancak bizim kullandığımız isim önce IP numarasına daha sonra MAC adresine çevrilerek istediğimize ulaşıyoruz. Zaten bir ağda iletişim MAC adresi ile gerçekleşmektedir. IP adresini MAC adresine çeviren ARP(Address Resulation Protocol) idi. Fakat önce bilgisayar ismi IP adresine çevrilecek daha sonra IP adresi MAC adresine çevrilmelidir. Bilgisayar ağlarında bilgisayar ismini IP adresine çevrilmesini sağlayan servislere DNS (Domain Name System) ve WINS (Windows Internet Naming Service) servisleri denir. Burada karşımıza iki yeni kavram çıkmaktadır. Bilgisayar dünyasında bir bilgisayarın iki ismi mevcuttur. Bunlardan birincisi NetBIOS ismi olan 15 karakterlik bir isim diğeri ise Unix/Internet ortamında kullanılan host ismidir. NetBIOS ismi “Cengiz“ olan bir makinenin internet üzerinde “cengiz.deneme.com.tr” olarak host isminin tanımlanması mümkündür. Host ismindeki ilk parametre bir Internet domainindeki bilgisayarın ismini “deneme.com.tr” olarak tanımlanan kısım ise o bilgisayarın bulunduğu bilgisayar domain’ini tanımlar. Bir bilgisayarın domain + bilgisayar isminden oluşan ismine Tümüyle Tanımlanmış İsim (Fully Qualified Name. FQN) denir.(2) NetBIOS isimlerini IP adresine çevirmek için Windows Internet Adlandırma Servisi (Windows Internet Naming Service,WINS)’ni kullanılır. Host isimlerini IP’ ye çevirme konusunda ise Domain İsim Sistemi (Domain Name System,DNS)’ni kullanılır. TCP/IP protokolü beraberinde bir çok yeni kavram getirmiş ve bu kavramlar çok farklı kaynaklarda değişik şekilde açıklanmıştır. TCP/IP protokolü ile kurulan bir ağda bulunan bir bilgisayarı ifade etmek için üç parametre kullanılır. a-) Bilgisayarın İsmi(Host Name) b-) IP Adresi(IP Address) c-) MAC Adresi (Media Access Control Address) Bilgisayarın ismi her işletim sisteminde klasik olarak kullanılan ve kullanıcının isteğine bağlı olarak değişebilen herhangi bir isim olabilir. IP adresi, ağ üzerinde bulunan makinenin adresini ifade eder. Bu adres ile bir makine diğerlerine ulaşma imkanı bulur. Ağ üzerinde bulunan herhangi bir bilgisayarı ifade etmek için 32 bitlik bir IP adresi kullanılır. TCP/IP protokolü kullanılan bir ağda her bilgisayarın mutlaka bir IP adresi olmak zorundadır. 32 bitlik bir IP adresi 8 bitlik dört oktet halinde ifade edilir. Bunun nedeni ise okumayı kolaylaştırmak içindir. Adresleme için toplam 32 bitimiz varsa 232 = 4 milyar 294 milyon 967 bin 196 tane bilgisayar adreslenebilir. Ancak bu gerçekte böyle değildir. 32 bitlik bir adres diyelim ki 11000010.00011011.00001100.00001100 şeklinde ifade edilmiş olsun bu adresin okunması için ikilik sistemde bir okuma gerekmektedir, ancak bu şekilde de okuma oldukça zor olduğunda yazdığımız adres onluk sisteme çevrilerek 194.27.12.12 şekline dönüşür ve bu tür bir ifadeye noktalı yazım(dotted decimal notation) denir.(2) Nokta ile ayrılan kısımların her biri 0 ile 255 arsında bulunan birer tamsayı olmak zorundadır. MAC adresi ise bilgisayarın ağ kartının içinde fabrikasyon olarak yerleştirilmiş bir adrestir. Mesela 0031FFD-8A755 örneği hexadecimal bir MAC adresini ifade etmektedir. Bazı kaynaklar MAC adresini donanım adresi (hardware address) yada fiziksel adres (physical address) olarak ifade etmişlerdir. Internet ağı üzerinde bilgisayarların birbirleri ile iletişimi aslında MAC adresi ile gerçekleşmektedir. Çünkü IP adresi sadece TCP/IP protokolüne has bir özelliktir. Diğer protokollerde bu özellik yoktur onlarda MAC adresi ile iletişimi gerçekleştirmektedirler. TCP/IP protokolünde dahi MAC adresleri ile iletişim söz konusudur. Her protokol kendine özgü bir adresleme şekli kullanır ancak en sonunda bu adreslerin çevrildiği adres MAC adresidir. İşte TCP/IP protokolü kullanılan bir ağ ortamında iki bilgisayarın birbiri ile haberleşmesi için mutlaka MAC adresine dönüştürülmesi gerekir. Bir bilgisayar diğerinin IP adresini biliyor ancak MAC adresini bilmiyorsa Adres Çözümleme Protokolü (Address Resulation Protocol) adı verilen bir protokol ile IP adresi MAC adresine çevrilir. TCP/IP protokolü altındaki bir protokolde ARP’dir. Diyelim ki ağ üzerinde iki bilgisayar iletişim kurmak istiyor bunun için ağdaki bilgisayar iletişime geçeceği IP adresini biliyorsa “Bu IP adresine sahip olan bilgisayarın MAC adresini söylesin” diye bir mesaj yayınlar. Zaten TCP/IP ’nin yapısı broadcast’a dayanır. Karşı taraftaki bilgisayar mesajı alır ve kendine uygun ise cevabını gönderir ve böylece iletişim ortamı kurulmuş olur. Burada ağ üzerinde MAC adresi sorgulaması ARP(Address Resulation Protocol) protokolü ile gerçekleştirilir. 3.1.1 IP Adres Sınıflandırmaları IP adres uzayı farklı büyüklükteki ağ gereksinimlerini karşılamak ve yönlendirici konfigürasyonunu kolaylaştırmak amacıyla büyüklü küçüklü parçalara ayrılmıştır. Bir LAN kurulacağı zaman ihtiyacı optimum düzeyde karşılayacak sayıda IP adresi içeren bir adres aralığı kullanılır. IP adresi gruplamasından biri sınıflamalı IP adresleme diğeri ise sınıflamasız IP adreslemedir. IP adreslerinin gruplanması hem IP adreslerin kullanılmasını düzenler hem de router’lara yerleştirilecek yönlendirme bilgilerini azaltır.
3.1.1.1 Sınıflamalı IP Adresleme Bu yöntemde adresler iki parçaya ayrılır; parçanın soldaki kısmı ağ adresi, sağdaki kısım ise sistem adresi olarak adlandırılır. Ağ adresleri yönlendiriciler için daha anlamlıdır. Tüm yönlendirme işlemleri ağ adreslerine bakılarak yapılır. Şekil-11’de sınıflanmış bir ağın ayrılmış hali görülmektedir.
Şekil-11 Parçalı Ağ Adresi
Sınıflamalı adreslemede 32 bitlik adresin kaçar bitinin ağ ve sisteme ait olduğunu belirlemek için ağ maskesi kullanılır. Ağ maskesi IP adresiyle mantıksal VE işlemine tabii tutulur ve sonuç ağ adresini verir. Mesela 167.34.1.1 IP adresine ve 255.255.0.0 ağ maskesine sahip bir bilgisayarın VE işleminden sonra ağ adresi 167.34.0.0 ve sistem adresi 1.1 olur. Sınıflamalı adreslemede IP adresleri A,B,C,D ve E şeklinde ayrılır.
0 1 7 BİT 7 8 24 BİT 31 0 Ağ Adresi Yerel Bilgisayarlar Adresleri
0 2 14 BİT 15 16 16 BİT 31 1 0 Ağ Adresi Yerel Bilgisayarlar Adresleri
0 1 2 3 21 BİT 23 24 8 BİT 31 110 Ağ Adresi Yerel Adresler Adresleri
0 1 2 3 4 28 BİT 31 1 1 1 0 Çoklu Gönderim(Multicast)Adresi Şekil – 12 IP Adreslerinin Sınıflandırılması
Noktalı gösterimde yukarıdaki şekliden de anlaşılacağı üzere her sınıf için tanımlanabilecek maksimum sayıda bilgisayar adedi vardır. Bu bilgisayarlar Internet ortamında “host” diye adlandırılır. Her bir sınıf için tanımlanabilecek host sayısı şekilsel olarak aşağıda belirtilmiştir.
h:”host” Ağ üzerinde tanımlanacak olan bilgisayarlar. A Sınıfı: 001.hhh.hhh.hhh ‘dan 126.hhh.hhh.hhh ‘a kadar B Sınıfı: 128.001.hhh.hhh ‘dan 191.254.hhh.hhh ‘a kadar C Sınıfı: 192.000.001.hhh ‘dan 223.255.254.hhh ‘a kadar D Sınıfı: 224.000.000.000 ‘dan 239.255.255.255 ‘a kadar
3.1.1.1.1 A Sınıfı Adresler A sınıfı adreslerde ağ adresi ilk oktet ile belirlenir. Geri kalan diğer oktetler ise o ağdaki bir bilgisayarı gösterir. IBM firması A sınıfı bir adres kullanmaktadır. İlk oktet 0 ile 126 arasında ise o adres bir A sınıfı adrestir. A sınıfı adres her biri 16 777 214 tane bilgisayar içeren 126 tane alt ağa izin verir. 16 777 214 sayısı (224 – 2)’den hesaplanır. Burada iki sayısının çıkarılması A sınıfı adreslemede iki adresin özel amaçlı olarak kullanılmasıdır. 126 sayısı ise (27-2)’ den hesaplanır. Burada da iki çıkarılmıştır çünkü, 0.0.0.0 ve 127.0.0.0 adresleri özel amaçlı kullanılmaktadır. 0.0.0.0 adresi varsayılan yönlendirme ve 127.0.0.0 adresi ise yerel çevrim için kullanılır.
3.1.1.1.2 B Sınıfı Adresler B sınıfı ağlar 14 bit, ağ içindeki bilgisayarlar ise 16 bit ile ifade edilir. İlk iki biti 1 0 şeklindedir. B sınıfı her biri 65 534 bilgisayar içeren 16 384 tane alt ağa izin verir. Bu tür adres alanı büyük ve orta büyüklükte ağlar için kullanılır. Birçok büyük üniversite ve ISS’ ler bu tür adres alanına sahiptirler. Aşağıdaki şekilde 128.001.000.000 ve 128.002.000.000 IP adreslerine sahip olan B Sınıfı iki ayrı ağ router ile birbirinden ayrılmış ve bu ağlardan 128.001.000.000 IP adresine sahip olan ağ kendi içinde mantıksal iki ayrı alt ağa köprü (bridge) yardımı ile ayrılarak ağ konfigürasyonu sağlanmıştır. Şekil-13 B Sınıfı Adresleri Kullanarak Örnek Ağ Uygulaması
3.1.1.1.3 C Sınıfı Adresler C sınıfı adres alanı içinde ağlar 21 bit, ağ içindeki bilgisayarlar 8 bit ile temsil edilir. Kamu kuruluşlarına C Sınıfı adresler verilmektedir.
3.1.1.1.4 D Sınıfı Adresler D sınıfı adresler özel amaçlı adresler olup bir datagram’ın birçok sisteme dağıtılması için kullanılır.
3.1.1.1.5 E Sınıfı Adresler E sınıfı adresler’ in özelliği gizli tutulmuştur.
3.1.1.2 Sınıflamasız IP Adresleme Sınıflamasız adreslemede IP adres uzayı için herhangi bir sınıflama yapılmamıştır. Farklı büyüklükte ağların IP adres gereksinimi için yine adres grupları oluşturulur. Ancak bunlar A, B, C gibi sınıflama yapılmaksızın gerçekleştirilir. Sınıflamasız adresleme yapısında IP adreslerin sonuna bir takı eklenir. Bu bir tamsayı olup adresin soldan sağa kaç bitinin ağı adreslediğini gösterir.
Örneğin; 194.220.12.32/24 Bu adres grubu C sınıfı bir adres olduğundan soldan ilk 24 biti ağı adreslemede kullanılır. 99.7.13.15/8 Bu adres grubu A sınıfı bir adres olduğundan soldan ilk 8 biti ağı adreslemede kullanılır. Sınıflamasız IP adresleme daha sonra ortaya atılmış olup, ana amacı var olan IP adresleri dağıtım sarfiyatını azaltmak ve daha optimum kullanmayı sağlamaktır.
3.2 ALT AĞ KAVRAMI Kurumumuza aldığımız bir IP adresini sistemlere dağıtırken ağ daha küçük birimlere parçalanarak alt ağlar(subnets) oluşturulur. Alt ağlara ayırma işlemi, hem birbiri ile ilgili olan birimlerin kendi aralarındaki haberleşmeleri sırasında hızdan kazanç sağlayacak hem de diğer ağ dilimleri ile iletişime geçileceği sırada yönlendirme işleminin daha çabuk bir şekilde gerçekleşmesini sağlayacaktır. Örneğin bir üniversiteye B sınıfı bir IP adresi alındığında, bu adreslerin fakültelere dağıtılmasında alt ağlara ayrılması hiyerarşi olarak ağ yapısını güçlendirecektir. Bu hiyerarşik adresleme yapısı; birbiri ile ilgili olan fakülte yada bölümler IP adresindeki host(bilgisayar) adresi kısmına bakarak hangi bilgisayarın hangi bölüme ait olduğu konusunda kolayca fikir sahibi olabileceklerdir. 3.2.1 Alt Ağlara Ayırma Alt ağlara ayırma işlemi verilen bir adres aralığını bölümlemek demektir. Internet’e ulaşmak için yetkili bir kurumdan internet adresi alırız ve bu adres diyelim ki, 195.27.12.0 gibi bir adres olsun buradan anlaşılacağı üzere bu adres C sınıfı bir adrestir. C sınıfı bir adres için 255.255.255.0 gibi bir subnet maskemiz vardır. Bu durumda internet bağlayacağımız yere 28-2 ‘den 254 adet bilgisayar adresi verebiliriz. Ancak bizim bağlayacağımız bilgisayar sayısı diyelim ki, 50 adet olsun bu durumda yaklaşık olarak 200 adet IP adresi boşa gitmiş olur bu işlemi engellemek için subnetting (alt ağlar’a ayırma) işlemi kullanılır. Buradaki diğer bir problemde, kurumumuz bilgisayarları farklı ortamlarda bulunuyor olabilirler. Mesela Ankara, Eskişehir ve Antalya gibi üç ayrı ilde bulunuyorlar olabilir. Bu durumda kurumumuzda üç ayrı ağ segmenti bulunacak ve bunlar yönlendiriciler (router) aracılığı ile birbirlerine bağlanacaklardır. Bu tür bir ağ sistemini router’lar ile konfigüre edebiliriz. Bizim burada alt ağlara ayırma işlemini adresimiz C sınıfı bir adres olduğundan IP numaramızın son oktetinde gerçekleştireceğiz. Yönlendiriciler ile birbirine bağlanan ağların her biri ve yönlendiriciler arasında kalan her alan için bir ağ adresi tanımlamam gerekiyor yani toplam 5 adet. Bu nedenle IP adresimin son oktetinin yüksek değerlikli 3 bitini bunun için ayırmam gerekir. Yüksek değerlikli ilk üç biti alt ağlara ayırmak için kullanacağımdan bu bitleri binary olarak gösterip almış olduğumuz C sınıfı ağımızda kullanabiliriz. Decimal Binary 1 001 2 010 3 011 4 100 5 101 C sınıfı ağımız ikili sistemde: 11000011.00011011.00001100.00000000 şeklinde gösterilir. Bu IP adresinin sadece son okteti ile oynama yaparak alt ağları oluşturacağız.
1.Alt ağ: 11000011.00011011.00001100.00100000 :195.27.12.32 2.Alt ağ: 11000011.00011011.00001100.01000000 :195.27.12.64 3.Alt ağ: 11000011.00011011.00001100.01100000 :195.27.12.96 4.Alt ağ: 11000011.00011011.00001100.10000000 :195.27.12.128 (yönlendiriciler arası) 5.Alt ağ: 11000011.00011011.00001100.10100000 :195.27.12.160 (yönlendiriciler arası) Şekil-14 Yönlendiriciler ile ağ konfigürasyonu
Yukarıdaki şekilde farklı illerde bulunan alt ağlarımızın aldığı IP adresleri ve router konfigürasyonu görülmektedir. Dikkat edilecek olursa router‘lar yönlendirici) arasında kalan IP adreslerimiz kullanılamaz durumdadır. Bu özellik alt ağlara ayırma işlemi sırasında kaçınılmaz bir durumdur. Bu dağılımı yaptıktan sonra her ildeki ağ adreslerimin son oktetinin geriye kalan 5 bitini de ağ içindeki bilgisayarları tanımlamak için kullanacağım. Kuralımıza göre 25-2= 30 olarak bulunur ve bir ağımızda 30 adet bilgisayar tanımlayabiliriz. Toplam 6 adet ağ tanımlama hakkımız vardı buna göre 6*30=180 adet bilgisayarı bu ağımız için tanımlamamız mümkün. İlk başta bize verilen IP adresine göre toplam 254 adet bilgisayar tanımlama hakkımız vardı ancak alt ağlara ayırdıktan sonra sadece 180 bilgisayar tanımlayabiliyoruz buradaki 74 adet adres alt ağlara ayırma işlemi sırasında boşa gitti. 3.1.2 Alt Ağ Maskesi (Subnet Maskesi) Alt ağ maskesi bir bilgisayar ağında ağı gösteren bitlere 1, sistemleri gösteren bitlere ise 0 koyularak bulunur. Yukarıda verdiğimiz örnekteki bilgisayar ağında bilgisayarların hem kendi aralarında hem de diğer illerdeki bilgisayarlar ile haberleşmesini sağlayacak bir alt ağ maskesi tanımlamak zorundayız. Bu adresi tanımlamada bizim servis sağlayıcı şirketten aldığımız alt ağ maskesini kullanarak bu işlemi gerçekleştireceğiz. Bize verilen 255.255.255.0 adresinin ilk üç okteti ile oynayamıyoruz. Bu nedenle son oktet ile işlem yapmak zorundayız. Yukarıda son oktetin ilk üç bitini ağ bitleri için kullanmıştık, geriye kalan bitleri ise bilgisayarları tanımlamak için kullanmıştık. Bu ne dedenle alt ağ maskemiz ağ maskemiz olan 255.255.255.00000000 adresinin son oktetinin yüksek değerlikli ilk üç bitini 1’e set ederek 255.255.255.11100000 adresini elde ederiz, buda desimal olarak 255.255.255.224 adresine tekabül eder. Bu alt ağ maskesi ile ağda bulunan tüm bilgisayarlar ile iletişim kurmamız mümkün olur. Şekil-14’de alt ağ maskesi ve IP adresleri tanımlanmış bir ağı görüyorsunuz. Bu ağda iki farklı ilde bulunan bilgisayarın birbirleri ile iletişim kurup kuramadığının kontrolünü ise IP adreslerini ve subnet mask’ını (alt ağ maskesi) “VE” işlemine tabi tutarak anlayabiliriz. Mesela 195.27.12.34 IP adresine sahip olan bilgisayarın 195.27.12.67 no’lu bilgisayar ile nasıl iletişime geçtiğine bakalım. Önce bilgisayarın kendi adresi ile subnet maskemizi “VE” işlemine tabi tutarız. 195. 27. 12. 00100010 (195. 27. 12.34) VE 255.255.255.11100000 (255.255.255.224) 195.27.12.00100000 (195. 27. 12.32) Çıkan sonuç bizim birinci alt ağımızın adresini verir. Sonra hedef bilgisayarın IP adresi (195.27.12.67) ile kendi subnet maskesini “VE” işleminden geçiririz. Bu işlemin sonucunda ikinci alt ağımızın adresini elde ederiz. “VE” işlemine tabi tuttuğumuz zaman çıkan sonuçtan o bilgisayarın kendi ağımızda olmadığını anlayacak ve bu durumda veri paketini yönlendirici üzerinden gerekli olan yere iletecektir.
195. 27. 12. 01000011 (195. 27. 12.34) VE 255.255.255.11100000 (255.255.255.224) 195.27.12.01000000 (195. 27. 12.64) Eğer kendi ağımızdaki bilgisayarlar ile iletişim kurmak isteseydik “VE” işleminin sonucu her iki durumda da aynı olacak ve bilgi sadece ait olduğu ağ üzerinde dolaşacaktı.
3.1.3 Örnek Alt Ağ Uygulamaları 3.1.3.1 Örnek 1 Aldığımız B sınıfı (128.001.000.000) IP adresini 254 tane alt ağa bölerek her alt ağın 254 tane bilgisayarı destekleyecek şekilde bir konfigürasyon gerçekleştirilmesini istiyoruz. Gerçekte bu tür bir ayırma işlemi alt ağlara ayırmanın en kolay yoludur. Zaten ilk iki oktetimize ağı adreslediği için herhangi bir müdahale yapamıyoruz sadece sistemi adresleyen kısımda 254 tane alt ağ oluşturacağız ve bu alt ağlarda kendi içinde 254 adet bilgisayarı destekleyecek. Ağ adresimizi ikili sistemde ifade edersek; 128.001.000.000 =10000000.00000001.00000000.00000000 Bu adres grubunu 254 tane alt ağa bölmek için üçüncü oktetimiz üzerinde bazı değişiklikler yapacağız. Bunun için alt ağlarımızı adreslerken, düşük değerlikli bit düzeyinden başlayarak 1’den 254’e kadar olan alt ağlarımızı ikili sistemde ifade ederiz . Alt Ağların Onlu ve İkili Düzende Gösterilişi Tablo-3.1 Alt Ağların Düzenlenmesi Onluk Gösterim İkili Gösterim 1 00000001 2 00000010 3 00000011 4 00000100 . . 254 11111110 Ağ adreslerimizi tablodaki gibi düzenledikten alt ağ adreslerimiz aşağıdaki gibi sınıflandırılır. Böylece aldığımız IP adresini 254 tane alt ağa ve her alt ağda 254 tane bilgisayarı destekleyecek şekilde böldük. Alt Ağ #1: 10000000.00000001.00000001.00000000=128.1.1.000 Alt Ağ #2: 10000000.00000001.00000010.00000000=128.1.2.000 Alt Ağ #3: 10000000.00000001.00000011.00000000=128.1.3.000 Alt Ağ #4: 10000000.00000001.00000100.00000000=128.1.4.000 Alt Ağ #5: 10000000.00000001.00000101.00000000=128.1.5.000 Alt Ağ #6: 10000000.00000001.00000110.00000000=128.1.6.000 . . . Alt Ağ #254: 10000000.00000001.11111110.00000000=128.1.254.000
Elde ettiğimiz bu alt ağların her birinin desteleyeceği bilgisayar adedi 254 tane. Alt ağ sayımızda 254 olduğuna göre 254*254= 64516 tane bilgisayarı bu “B sınıfı” IP adresi ile destekleyebiliriz. Alt ağların adres sınırlarını iki örnekle ifade edecek olursak: Alt Ağ #1: 10000000.00000001.00000001.00000000=128.1.1.000 Düşük Seviyeli IP: 10000000.00000001.00000001.00000001=128.1.1.001 Yüksek Seviyeli IP: 10000000.00000001.00000001.11111110=128.1.1.254
Alt Ağ #145: 10000000.00000001.10010001.00000000=128.1.145.000 Düşük Seviyeli IP: 10000000.00000001.10010001.00000001=128.1.145.001 Yüksek Seviyeli IP: 10000000.00000001.10010001.11111110=128.1.145.254 Yukarıdaki sınıflamaya dikkat edilecek olursa 128.1.1.000 adresi ile 128.1.1.255 adresi ağ içindeki hostları tanımlamak için kullanılmaz. Bunlardan ilki ağ adresi ikincisi ise yayın(broadcast) adresidir. Yayın adresi ağ içindeki bilgisayarlar birbiri ile iletişime geçmek istedikleri zaman kullanılan özel adrestir. Normal şartlarda network standardı olarak B sınıfı bir IP adresinin ağ maskesi 255.255.255.0’dır. Ancak aldığımız IP adresini alt ağlara ayırdığımız bilgisayarlar kendi içinde haberleşmeleri için birde alt ağ maskemiz olmak zorunda onu ağı gösteren bitleri 1 hostları gösteren bitleri 0 yaparak buluruz. Ağ Adresimiz: 10000000.00000001.00000000.00000000=128.001.000.000 Alt Ağ Maskesi 11111111.11111111.11111111.00000000=255.255.255.000
3.1.3.2 Örnek 2 Aynı B sınıfı adresimizi (128.001.000.000) bu sefer altı tane alt ağa bölerek her alt ağ maksimum host adedini destekleyecek şekilde konfigüre edilecektir. Ağ adresimizi ikili sistemde ifade edersek; 128.001.000.000 =10000000.00000001.00000000.00000000 Bir önceki örnekte olduğu gibi IP adresimizin altı çizili kısmında bir değişiklik yapamıyoruz. Geriye kalan 3.oktette alt ağlarımızı 4.oktette ise hostlarımızı tanımlayacağız. Öncelikle alt ağlarımızın ikili sistemdeki karşılıklarını buluyoruz ve ona göre yüksek değerlikli bit düzeyinde alt ağlarımızı tanımlıyoruz.
Alt Ağların Onlu ve İkili Düzende Gösterilişi Tablo-3.2 Alt Ağların Düzenlenmesi Onluk Gösterim İkili Gösterim 1 001 2
|