1. OSI Katmanları
1.1 Fiziksel Katman: Fiziksel katmanlar elektriksel bağlantılar ve sinyallemeden oluşur. Daha sonra gelen katmanlar fiziksel katman aracılığıyla konuşur. Dolanmış-çift tel, fiber-optik kablo ve eş eksenli kablo fiziksel katmanın parçalarıdırlar. Fiziksel katmandaki en yaygın standart RS-232C’dir. Bir kablo ve sinyalleme standardıdır ve konnektörlerdeki her iğnenin görevinin ne olduğunu açıklar. Fiziksel katman üstündeki bütün katmanlar için sinyalleri taşır.
1.2 Veri-Hattı Katmanı: Veri-hattı katmanı karakterleri bir dizi halinde birleştirip mesajlar haline getirir ve daha sonra yola koymadan önce kontrol eder. Göderdikten sonra karşı taraftan “düzgün şekilde geldi” diye bir mesaj gelebilir veya veri doğru gitmediyse yeniden oluşturabilir. PC tabanlı iletişim sistemlerinde, arabirim kartlarının üzerindeki özel devreler veri-hattı katmanının fonksiyonlarını yerine getirirler.
1.3 Ağ Katmanı: Geniş alan ağlar, bir karakterler dizisini bir coğrafik noktadan diğerine taşımak için birkaç yöntem sunar. OSI’nın üçüncü katmanı olan ağ katmanı, ağın durumuna servisin önceliğine ve diğer faktörlere göre verinin hangi fiziksel yola iletileceğine karar verir.
1.4 Taşıma Katmanı: Taşıma katmanı OSI modelinin dördüncü katmanıdır ve ağ katmanının yaptığı işleri yapar. Farkı bu işleri yerel olarak yapar. Ağ yazılımındaki sürücüler taşıma katmanının görevlerini yerine getirirler. Ağda bir arıza olduğu zaman, taşıma katmanı yazılımı alternatif güzergahları arar veya gönderilecek veriyi ağ bağlantısı yeniden kurulasıya kadar bekletir, alınan verilerin doğru biçimde ve sırada olup olmadığını kontrol eder. Bu biçimlendirme ve sıralama yetenekleri, taşıma-katmanı programları farklı bilgisayarlar arasında bağlantı kurdukları zaman önem kazanır.
1.5 Oturum Katmanı: Beşinci katman olan oturum katmanı ekseriya PC-tabanlı sistemlerde çok önemlidir. Ağda iki uygulamanın haberleşmesini sağlar. Güvenlik, isim tanıma, yönetme ve diğer benzeri fonksiyonları yerine getirir.
1.6 Sunma Katmanı: Ekranda yanıp sönen karakterler, özel veri-giriş biçimleri, grafikler ve diğer şeyler gördüğünüz an sunma katmanındasınız demektir. Bu katman aynı zamanda, şifreleme ve özel dosya biçimlendirme işlemlerini de yapar. Ekranları ve dosyaları programcıların istediği şekilde biçimlendirebilir.
1.7 Uygulama Katmanı: En üst katman olan uygulama katmanı kullanıcıya hizmet verir. Ağ işletim sistemi ve uygulama programlarının bulunduğu katmandır. Dosya paylaşımından yazılacak iş birikimine, elektronik postadan veritabanı yönetimine kadar olan her şey burada bulunur.
Ağ protokolleri verilerin nasıl paketleneceğini, kullanılacağını ve ağdan iletileceğini belirten anlaşmadır. Satıcılar ve endüstriyel komiteler bu anlaşmaları geliştirirler ve firmalar bunlara uyan yazılımlar yazmaya çalışırlar. Ağlar heterojen oldukça, değişik sistemlerin kontrolü ve yönetimi daha zor olur. Denenmiş ve doğrulanmış standartların olmasına rağmen, böyle karma ağları yönetmek hala karmaşık bir iştir.
Ağlar verileri güvenilir şekilde kullanmak için protokollere ihtiyaç duyarlar. Ağ protokolleri kullanıcılara görünmese de, protokol mimarisi bir LAN veya WAN planlanırken ve kurarken seçmemiz gereken en önemli parçalardan biridir.
1. SPX/IPX Protokolü
SPX/IPX diğer ağ iletişim protokolleri gibi tek bir protokol değildir, fakat bilgisayarları birbirine bağlayan bir standart prosedürler takımıdır. Pratikte, her protokol seti mesajı, veya paketi, adresleme, alındı veya yönlendirme bilgisi gibi belirli bir yapıda biçimlendirir. Paketler genelde üç dört katman derinlikte yuvarlanırlar, böylece her birinin belirli bir fonksiyonu olan paketler iç içe bulunabilir.
Protokolün IPX bölümü NetWare düğümleri arasında paketlerin adreslenmesinden sorumludur, fakat onlar için herhangi bir sayma ya da hesaplama yapmaz. Kullanıldığında, SPX IPX paketlerini kapsüller ve varış noktasındaki verileri kabul eder. Ağ dosya transferi veya elektronik posta gibi garantili teslimat isteyen bazı uygulamalar veri bloklarını SPX aracılığıyla adresleyebilirler. Kendi iletişimlerini takip edebilen uygulamalar başta olmak üzere bir çok uygulama IPX’i kullanır çünkü daha verimlidir ve ağa daha az aşırı yük iletir.
Novell’in IPX’i genelde DOS veya Windows uygulamaları tarafından istenen nispeten küçük veri paketleri için (512 byte’a kadar) hızlı ve verimlidir. Fakat küçük veri paketleri daha yavaş ve pahalı ağ-içi hatlara sahip geniş alan ağlarda arzu edilmez çünkü aşırı yük ekler. Yerel ağlarda IPX TCP/IP’den daha verimlidir. SPX/IPX kişiler tarafından tayin edilen bağımsız ağ adreslerine bel bağlamaz ve yüklenmesi ve kullanması TCP/IP’den daha kolaydır. (Frank J., Network Sistemleri ve Bilgisayar bağlantı kılavuzu,s. 55, 56, 57, 58, 172, 173, 174)
2. TCP/IP Protokolü
TCP/IP, birbirinden farklı yapıda ağların iletişimini sağlayan, aynı zamanda Internet’te kullanılan en yaygın protokoldür. TCP/IP ismini içinde yer alan en önemli iki alt protokolden alır. TCP (Transmission Control Protocol ) ve IP (Internet Protocol). (İnternet)
TCP/IP protokolü A.B.D.’de Department Defense (DoD) tarafından binlerce farklı bilgisayarı birbirine bağlamak için geliştirilmiş açık bir standarttır. SPX/IPX gibi TCP/IP de bir tek protokol değildir, fakat iletişim hizmetlerini kontrol etmek üzere tasarlanmış bir protokoller takımıdır. SPX/IPX’in aksine TCP/IP gerçek anlamda heterojen ağlarda değişik tipte bilgisayarlar arasında iletişimi sağlamak için tasarlanmıştır.
TCP (Transmission Control Protocol ), gönderilen bilgilerin yerine ulaşmasından sorumludur. IP (Internet Protocol), IP paketlerinin (datagram) oluşturulması ve adres bilgilerinin yerleştirilmesi ile ilgilenir, hata kontrolü ve düzeltilmesi gibi işlemleri TCP’ye bırakmıştır. Bunun yanında datagramların yönlendirilmesinden sorumludur. (internet)
TCP/IP’nin IP bölümü ağ düğümleri arasında adreslemeyi ele alır. IPX ve IP’nin her ikisi de verinin gönderilme alınma mekanizmalarını sağlar. IPX gibi IP’de verinin teslimatını garanti etmez. IP’nin basit ama çok önemli bir faydası ağ-içi bir hatta büyük veri bloklarını verimli bir şekilde taşıyabilmesidir. Bir IP paketi 65.535 byte’a kadar çıkabilir ve bu da bir IPX paketinin yüz katından fazladır.
Bir IP paketinde (Datagram) gönderilecek bilginin yanı sıra, o paketin uzunluğu ve gideceği noktanın 32bit’ten oluşan IP adresi yer alır. IP adresleri 8 bitlik 4 kısıma ayrılır ve bu 8 bit 0-255 arası bir sayı ile gösterilir. Örnek IP adresi olarak 192.168.10.1 verilebilir. Bu IP adresleme sistemi IP v4 olarak adlandırılır. IP adresleri Class A, Class B ve Class C olarak adlandırılan üç sınıfa ayrılmıştır. Class A sınıfı adresler, 0.0.0.0 ile 127.255.255.255 arasında değişir. Bu adresler 65534’den fazla kullanıcılı ağlar için kullanılır. Class B sınıfı adresler, 128.000 ile 191.255.255.255 arasında değişir ve 255 ile 65534 kullanıcı arasında değişen ağlar için kullanılırlar. Class C sınıfı adresler 255’ten az sayıda kullanıcılı ağlar için ayrılmıştır ve 192.0.0.0 ile 223.255.255.255 arasında değişir.
Her IP adresinin bir de Netmask Adresi bulunur. Genelde Class C sınıfı için kullanılan Netmask Adresi 255.255.255.0 dır. 10-15 kullanıcılı ağlar için bir Class C sınıfı adres vermek diğer adreslerin boşa gitmesi anlamına gelmektedir. Netmask Adresleri değiştirilerek Class C sınıfı adresler bölünmekte ve zaten kısıtlı olan IP adresleme sistemi daha verimli olarak kullanılabilmektedir. Bu işleme Subnetting adı verilir. IP ve adreslerin tükenmesi durumunda IP v6 adı verilen yeni bir adresleme sistemi gündemdedir. (internet)
TCP/IP protokolü IP paketlerini kapsüller ve iletişim hizmetlerine bağlanmayı sağlarlar. TCP aynı zamanda IP de olmayan teslim etme garantisini de sağlar. FTP, Telnet ve SMTP gibi diğer TCP/IP hizmet ve yardımcı programlarının hepsi veri taşımak için isteklerini TCP’ye bildirir. Netware LAN’larda çok az kullanılan SPX’in aksine, TCP TCP/IP ortamında çoğu uygulamalar tarafından kullanılır çünkü onların yaratıcıları daha az güvenilir bağlantılarda çalışmayı beklemişlerdir.
TCP/IP’nin en önemli noktalarından biri de yönlendirme işlemidir. Router’lar bünyelerinde bulunan adres tablolarındaki adresler ile kendilerine gelen IP paketindeki adres arasında karşılaştırma yapar. Bu adres yerel bir kullanıcıya ait ise yönlendirme yapılmaz, farklı bir ağa ait ise o ağa yönlendirilir. Eğer adres tablosunda yer almıyorsa Default Gateway adı verilen adrese yönlendirilir. Örnek olarak; Internet’te, bir adres Internet Router’ının adres tablosunda yoksa default gateway olarak tanımlanan daha büyük adres tablosuna sahip bir Router’a yönlendirilir. Bu zincir tüm Internet’e bağlı adreslerin tutulduğu omurga Router’lara kadar gidebilmektedir.(internet)
TCP pencereleme adlı bir teknikle verimliliği artırır. Bununla bütün paketlerin alındı-bildirimini pencerede izlerken belirli sayıda paket iletebilir. Penceredeki paketlerin sayısı iletişimin başarı derecesine göre değişir. Netware aynı genel prensibi kullanan paket patlama adlı benzer bir özellik içerir; bununla beraber paket patlama yüksek seviyeli Netware Core Portokolünün bir parçasıdır, SPX veya IPX’in değil.
TCP/IP’nin SPX/IPX’e göre en belirgin avantajı milyonlarca farklı bilgisayarı bir küresel ağ üzerinden birleştirebilme yeteneğidir. Yaklaşık üç milyon bilgisayarın birbirine bağlı olduğu internet TCP/IP’nin gücünü gösteren en iyi örnektir. Ağdaki bilgisayarların ve hizmetlerin takibini yayın tekniği ile yapan SPX/IPX’ten farklı olarak , TCP/IP bir dizi eşi olmayan 32-bit adres kullanır. Bir TCP/IP ağında her düğümün tek bir adresi olmalıdır ve organizasyonda bir kişi tayin edilen bu adresleri takip etmelidir.
Pratikte, SPX/IPX yüksek hızda, güvenilir iletişim cihazları ile bağlanmış PC-tabanlı LAN’lar veya WAN’lar için kendini kanıtlamış bir standarttır. TCP/IP daha düşük işlem gücü ve güvenirliği olan genişletilmiş ağlar üzerinden farklı bilgisayar sistemlerinin bağlanılmasında tercih edilir. TCP/IP’nin en cazip tarafı sistemleri birbirine bağlama yeteneğidir.
TCP/IP protokolünde tüm bilgisayarlar 32 bitlik “özgün” bir IP numarasına sahip olacak şekide adreslenirler (buradan çıkarılabilecek teorik bir sonuç ise internete aynı anda bağlı olabilecek bilgisayar sayısının en fazla 232 = 4,294,967,296 olabileceğidir) Bunu bir örnekle ele alırsak, internet üzerinde 3,559,735,316 sayısı ile adreslenmiş bir bilgisayar düşünelim. Bu sayının heksadesimal karşılığının D42D4014 olduğunu kolaylıkla hesaplayabiliriz. Bu şekilde bir gösterimin hemen hiç kimseye birşey ifade etmeyeceği sanırım oldukça açık bir şekilde görülmektedir. Bu yüzden şu şekilde bir yol izlenir, bu 32 bitlik adres 8 bitlik adresler halinde 4’e ayrılıp (D4 2D 40 14 şeklinde), daha alışıldık bir sayı sistemiyle çalışabilmek için desimale çevrilirler (0xD4 = 212, 0x2D = 45, 0x40 = 64 ve 0x14=20). Bu gösterim son olarak aralara konan bir nokta ile birleştirilir ve sonuç olarak IP numarası olarak tanımlanan notasyona ulaşılır, yani internet üzerinde 3,559,735,316 sayısı ile adreslenmiş bilgisayar 212.45.64.20 IP nolu bilgisayardır. Benzer bir yaklaşımı tersten izleyecek olursak A.B.C.D IP nosuna sahip olduğu bilinen bir bigisayarın gerçek adresi, A * 224 + B * 216 + C * 28 + D şekline hesaplanır.
Örneğimizden yola çıkarsak 212.45.64.20 için gerçek adres 212 * 224 + 45 * 216 + 64 * 28 + 20 = 3,559,735,316 ‘dır.
IP numarasının bu şekildeki gösterilimi aslında internet trafiğinin yönünün nasıl bulunduğu konusunda hiçbirşey ifade etmez elbette, bir yığın halinde bulunan 4 milyarın üzerindeki adresin bir kısım gruplara ayrılması zorunludur. Trafiğin yönünün belirlenmesi ancak paketlerin belli IP gruplarından gelmesi ve belli gruplara yönelmesi ile mümkün olabilecektir. Bu durumda her IP paketi, kendi numarasının bağlı olduğu gruplar için tanımlanmış kurallara göre hareket eder. Yapılan gruplama işlemine ise subnetting adı verilir. Bu işlem sırasında IP adresi ait olduğu grubu ve bu grubun üyeleri arasında kaçıncı sırada olduğunu belirtmek üzere iki kısma ayrılır. İlk kısma network numarası, ikinci kısma ise uç
Adresin adı verilir ve işlem şu şekilde gerçekleşir.
Tüm internet IP bloğunu 255 kısma ayırmayı istediğimizi düşünelim, bu gruplama sonucunda ortaya çıkacak IP numaralarının 1.x.y.z, 2.x.y.z, ……,255.x.y.z şeklinde olacağı kolay bir akıl yürütme ile görülebilmektedir. Bu tanımlamada elde edilen IP numaralarının oluşturduğu blokların her birine subnet veya network adı verilmektedir ve 1.0.0.0 networkü, 2.0.0.0 network’ü vs şeklinde telaffuz edilmektedir. Bu durumda örneğin 2 ile başlayan bütün IP numaralarının (2.x.y.z) 2.0.0.0 networkü’nün parçası olduğu kolayca anlaşılabilir. Dikkati çekmesi gereken bir nokta elde edilen blokların hala devasa boyularda olduklarıdır (224 = 16,777,216) ve bu bloklar kendi içlerinde daha fazla bölünmeye tabi tutulabilirler, örneğin 1.0.0.0 networkü’nü 1.0.0.0, 1.1.0.0, ….. 1.254.0.0, 1.255.0.0 şeklinde 255 ayrı networke ayırmak da mümkündür, aynı şekilde 1.1.0.0 networkü’nü de 1.1.1.0, 1.1.2.0,…..1.1.255.0 vs şeklinde daha da küçültmek mümkündür, bu işleme her blokta 2 hatta 1 IP kalıncaya kadar devam edilebilir. Burada önemli nokta bu blok büyüklerinin ihtiyaca göre belirlenmesi gereği ve her bloğun bir üst bloğun alt kümesi olmasıdır. Daha detaylı açıklarsak, 1.0.0.0 networkünden bahsediyor iseniz otomatik olarak 1.1.0.0 networkünden ve 1.10.5.0
networkünden de bahsediyorunuz demektir.
IP numarasını network numarası ve uç adresi olarak ikiye böldüğümüzü yukarıda söylemiştik, bunları örneklerle açıklaylım, test amacıyla seçtiğimiz 212.45.64.20 IP numarasından yola çıkarsak, bu IP’nin hem 212.0.0.0 hem 212.45.0.0 hem de 212.45.64.0 networklerinde yer alan bir IP olduğu söylenebilir. Burada kritik nokta network numarası olarak hangisinin alınacağı (212, 212.45, 212.45.64) daha da önemlisi buna nasıl karar verileceğidir. Açıkça görülen odur ki bunu bilmek yalnızca IP numarası ile mümkün olmamaktadır. Bu nedenle IP numarasının hangi bitlerinin network numarasınını temsil ettiğini, hangilerinin ise uç adresini oluşturduğunu tanımlayacak başka bir bilgiye ihtiyaç duyulmaktadır. Buna “subnet mask” adı verilmektedir. Çoğu zaman kullanıcıların kafasını karıştırmakla beraber aslında anlamı ve kullanımı son derece açıktır.
Subnet mask’ı network numarasının bulunduğu bit pozisyonlarında 1, kalan pozisyonlarda 0 bulunduran bir sayı olarak tarif edebiliriz.
Örneğin 212.45.64.20 IP’sini alt bölümlemeye gitmeden 212.0.0.0 bloğunun bir parçası olarak görmek istiyorsak, network adresini yalnızca ilk 8 bitin oluşturduğunu söylüyoruz demektir. Bu durumda subnet maskımız 8 tane 1 ve 24 tane 0 ‘dan oluşacaktır (toplam 32’yı verecek şekilde).
Subnet mask (binary) : 11111111 00000000 000000000 0000000Subnet mask (desimal) : 255 0 0 0
Subnet mask : 255.0.0.0
Ya da 212.45.0.0 bloğunun bir parçası olmasını istiyorsak, bu kez network adresini ilk 16 biti ile tanımlamamız gerekecektir, bu durumda subnet mask 16 tane 1 ve 16 tane 0’dan oluşacaktır.
Subnet mask (binary) : 11111111 11111111 000000000 0000000
Subnet mask (desimal) : 255 255 0 ; 0
Subnet mask : 255.255.0.0
Subnet mask (desimal) : 255 255 0 ; 0
Subnet mask : 255.255.0.0
Son olarak, 212.45.64.0 bloğu için aynı hesaplamayı yaparsak, network adresi ilk 24 bitte bulunacaktır. Subnet mask ise 24 tane 1 ve 8 tane 0’dan oluşacaktır.
Subnet mask (binary) : 11111111 11111111 11111111 0000000Subnet mask (desimal) : 255 255 255 0
Subnet mask : 255.255.255.0
Burada subnet mask’ı belitrmek için kullanılan farklı bir yöntemden bahsetmek gerekir, bu da “/” ayracı ile IP numarasına ya da network numarasına eklenen bir sayıdır (212.45.64.20/25 veya 212.45.64.0/19 gibi). Burada verilen sayı subnet maskta ilk kaç bitin 1 olduğunu gösterir. Örneğin /8, 8 tane 1, 24 tane 0 anlatır, bu da 255.0.0.0 netmaskının eşdeğeridir, yine benzer şekilde /16, 16 tane 1, 16 tane sıfırı tanımladığı için 255.255.0.0’ın, /24 de 255.255.255.0’ın eşdeğer gösterimleridir. (internet)
2.1 TCP/IP Katmanları
TCP/IP katmanlardan oluşan bir protokoller kümesidir. Her katman değişik görevlere sahip olup altındaki ve üstündeki katmanlar ile gerekli bilgi alışverişini sağlamakla yükümlüdür. Aşağıdaki şekilde bu katmanlar bir blok şema halinde gösterilmektedir.
|
TCP/IP katmanlarının tam olarak ne olduğu, nasıl çalıştığı konusunda bir fikir sahibi olabilmek için bir örnek üzerinde inceleyelim:
TCP/IP nin kullanıldığı en önemli servislerden birisi elektronik postadır (e-posta). E- posta servisi için bir uygulama protokolü belirlenmiştir (SMTP). Bu protokol e- posta’nın 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 oluşturulması 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. En genel haliyle TCP/IP uygulamaları 4 ayrı katman kullanır. Bunlar:
- Bir uygulama protokolü, mesela e-posta
- Üst seviye uygulama protokollerinin gereksinim duyduğu TCP gibi bir protokol katmanı
- IP katmanı. Gönderilen bilginin istenilen adrese yollanmasını sağlar.
- Belirli bir fiziksel ortamı sağlayan protokol katmanı. Örneğin Ethernet, seri hat, X.25 vs.
2.1.1 TCP katmani
TCP’nin (“transmission control protocol-iletisim kontrol protokolü”) temel işlevi, üst katmandan (uygulama katmanı) gelen bilginin segmentler haline dönüştürülmesi, iletişim ortamında kaybolan bilginin tekrar yollanması ve ayrı sıralar halinde gelebilen bilginin doğru sırada sıralanmasıdır. IP (“internet protocol”) ise tek, tek datagramların yönlendirilmesinden sorumludur. Bu açıdan bakıldığında TCP katmanının hemen, hemen tüm işi üstlendiği görülmekle beraber (küçük ağlar için bu doğrudur) büyük ve karmaşık ağlarda IP katmanı en önemli görevi üstlenmektedir. Bu gibi durumlarda değişik fiziksel katmanlardan geçmek, doğru yolu bulmak çok karmaşık bir iş halini almaktadır.
Birden fazla kişinin aynı sisteme ulaşmak istemesi durumunda neler olacak? Doğal olarak bir segment’i doğru varış noktasına ulaştırmak tek başına yeterli değildir. TCP bu segment’in kime ait olduğunu da bilmek zorundadır. “Demultiplexing” bu soruna çare bulan yöntemdir. TCP/IP ‘de değişik seviyelerde “demultiplexing” yapılır. Bu işlem için gerekli bilgi bir seri “başlık” (header) içinde bulunmaktadır. Başlık, datagram’a eklenen basit bir kaç octet’den oluşan bir bilgiden ibarettir. Yollanmak istenen mesajı bir mektuba benzetecek olursak başlık o mektubun zarfı ve zarf üzerindeki adres bilgisidir. Her katman kendi zarfını ve adres bilgisini yazıp bir alt katmana iletmekte ve o alt katmanda onu daha büyük bir zarfın içine koyup üzerine adres yazıp diğer katmana iletmektedir. Benzer işlem varış noktasında bu sefer ters sırada takip edilmektedir.
Bir örnek vererek açıklamaya çalışırsak: Aşağıdaki noktalar ile gösterilen satir bir noktadan diğer bir noktaya gidecek olan bir dosyayı temsil etsin,
ooooooooooooooo
TCP katmanı bu dosyayı taşınabilecek büyüklükteki parçalara ayırır:
ooo ooo ooo ooo ooo
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 ayni 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. Ayni zamanda varış noktasındaki TCP de ayrıca bir “varIŞ” port numarası verir. Kaynak noktasındaki TCP nin varış port numarasını bilmesi gereklidir ve bunu iletişim kurulduğu anda TCP karşı taraftan öğrenir. Bu bilgiler başlıktaki “kaynak” ve “varış” port numaraları olarak belirlenmiş olur. Ayrıca her segment bir “sıra” numarasına sahiptir. Bu numara ile karşı taraf doğru sayıdaki segmenti eksiksiz alıp almadığını anlayabilir. Aslında TCP segmentleri değil octet leri numaralar. Diyelim ki her datagram içinde 500 octet bilgi varsa ilk datagram numarası 0, ikinci datagram numarası 500, üçüncüsü 1000 şeklinde verilir. Başlık içinde bulunan üçüncü önemli bilgi ise “kontrol toplamı” (Checksum) sayısıdır. Bu sayı segment içindeki tüm octet ler toplanarak hesaplanır ve sonuç baslığı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.
2.1.2 IP katmani
TCP katmanına gelen bilgi segmentlere ayrıldıktan sonra IP katmanına yollanır. IP katmanı, kendisine gelen TCP segmenti içinde ne olduğu ile ilgilenmez. Sadece kendisine verilen bu bilgiyi ilgili IP adresine yollamak amacındadır. IP katmanının görevi bu segment için ulaşılmak istenen noktaya gidecek bir “yol” (route) bulmaktır. Arada geçilecek sistemler ve geçiş yollarının bu paketi doğru yere geçirmesi için kendi başlık bilgisini TCP katmanından gelen segment’e ekler. TCP katmanından gelen segmentlere IP başlığının eklenmesi ile oluşturulan IP paket birimlerine datagram adı verilir. IP başlığı eklenmiş bir datagram aşağıdaki çizimde gösterilmektedir:
IP Datagram
IP başlığını “I” ile gösterecek olursak IP katmanından çıkan ve TCP verisi taşıyan bir datagram şu hale gelir:
IT...IT...IT...IT...IT...
Başlıktaki “Yaşam süresi” (Time to Live) alanı IP paketinin yolculuğu esnasında geçilen her sistemde bir azaltılır ve sıfır olduğunda bu paket yok edilir. Bu sayede oluşması muhtemel sonsuz döngüler ortadan kaldırılmış olur. IP katmanında artık başka başlık eklenmez ve iletilecek bilgi fiziksel iletişim ortamı üzerinden yollanmak üzere alt katmana (bu Ethernet, X.25, telefon hattı vs. olabilir) yollanır.
2.1.3 Fiziksel katman
Ethernet kendine has bir adresleme kullanır. Ethernet tasarlanırken dünya üzerinde herhangi bir yerde kullanılan bir Ethernet kartının tüm diğer kartlardan ayrılmasını sağlayan bir mantık izlenmiştir. Ayrıca, kullanıcının Ethernet adresinin ne olduğunu düşünmemesi için her Ethernet kartı fabrika çıkışında kendisine has bir adresle piyasaya verilmektedir. Her Ethernet kartının kendine has numarası olmasını sağlayan tasarım 48 bitlik fiziksel adres yapısıdır. Ethernet kart üreticisi firmalar merkezi bir otoriteden üretecekleri kartlar için belirli büyüklükte numara blokları alır ve üretimlerinde bu numaraları kullanırlar. Böylece başka bir üreticinin kartı ile bir çakışma meydana gelmez. Ethernet teknoloji olarak yayın teknolojisini (broadcast medium) kullanır. Yani bir istasyondan Ethernet ortamına yollanan bir paketi o Ethernet ağındaki tüm istasyonlar görür. Ancak doğru varış noktasının kim olduğunu, o ağ’a bağlı makinalar Ethernet başlığından anlarlar. Her Ethernet paketi 14 octet’lik bir başlığa sahiptir. Bu başlıkta kaynak ve varis Ethernet adresi ve bir tip kodu vardır. Dolayısıyla ağ üzerindeki her makina bir paketin kendine ait olup olmadığını bu başlıktaki varış noktası bilgisine bakarak anlar (Bu Ethernet teknolojisindeki en önemli güvenlik boşluklarından birisidir). Bu noktada Ethernet adresleri ile Internet adresleri arasında bir bağlantı olmadığını belirtmekte yarar var. Her makina hangi Ethernet adresinin hangi Internet adresine karşılık geldiğini tutan bir tablo tutmak durumundadır (Bu tablonun nasıl yaratıldığı ilerde açıklanacaktır). Tip kodu alanı aynı ağ üzerinde farklı protokollerin kullanılmasını sağlar. Dolayısıyla aynı anda TCP/IP, DECnet, IPX/SPX gibi protokoller ayni 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 bilginin (Bu bilgi paketlerine frame adı verilir) son hali aşağıdaki duruma gelir:
Ethernet Paketi
Ethernet başlığını “E” ile ve Kontrol toplamını “C” ile gosterirsek yolladığımız dosya şu şekli alır:
EIT...C EIT...C EIT...C EIT...C EIT...C
Bu paketler (frame) varış noktasında alındığında bütün başlıklar uygun katmanlarca atılır. Ethernet arayüzü Ethernet başlık ve kontrol toplamını atar. Tip koduna bakarak protokol tipini belirler ve Ethernet cihaz sürücüsü (device driver) bu datagram’ı 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. (İnternet)
Özet Olarak bu protokol UNIX işletim sisteminin ön tanımlı protokolüdür. İki protokolden oluşur. TCP(Transmission Control Protocol) ve IP(Internet Protocol). Bunlardan TCP taşınacak paketin nasıl taşınacağından, büyüklüğünden ve güvenliğinden sorumludur. IP ise paketin nereye ve hangi yollardan taşınacağından sorumludur. Bu protokollerin özelliklerini şöyle sıralayabiliriz:
1. Dünyada en çok kabul gören ve genellikle internet uygulamalarında kullanılan bir protokoldür.
2. Sunucu/istemci mantığına en yakın protokoldür.
3. Paketlerin küçük olması nedeniyle yerel ağda pek tercih edilmeyen bir protokoldür.
4. Yönlendirilebilir bir protokoldür.
5. Yapılandırılması oldukça zordur.
6. Paketlerin taşınmasında meydana gelebilecek bozuklukları anlayıp, bozulan kısmı sunucudan tekrar isteyebilmesi, güvenli bir protokol olmasını sağlar.
7. Diğer protokolleri taşıyabilmesi, çok amaçlı bir protokol olma özelliği katar.(Teknik Eğitim Ders notları)
3. Ethernet encapsulation: ARP
Internet adresi ile iletişime geçmek için hangi Ethernet adresine ulaşmamız gerektiğini belirlemek amacıyla 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 bilgisayarınız 128.6.4.194 IP adresine sahip ve siz de 128.6.4.7 ile iletişime geçmek istiyorsunuz. Sizin sisteminizin ilk kontrol edeceği nokta 128.6.4.7 ile aynı ağ üzerinde olup olmadığınızdır. Aynı ağ üzerinde yer alıyorsanız, bu Ethernet üzerinden direk olarak haberleşebileceksiniz 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 cevabı ile “128.6.4.7 nin Ethernet adresi 8:0:20:1:56:34” bilgisini istek yapan istasyona yollar. Bu bilgi, alici noktada ARP tablosuna islenir ve daha sonra benzer sorgulama yapılmaksızın iletişim mümkün kılınır. Ağ üzerindeki bazı istasyonlar sürekli ağı dinleyerek ARP sorgularını alıp kendi tablolarını da güncelleyebilirler.
4. TCP dışındaki diğer protokoller: UDP ve ICMP
Yukarıda sadece TCP katmanını kullanan bir iletişim türünü açıkladık. TCP gördüğümüz gibi mesajı segment’lere bölen ve bunları birleştiren bir katmandı. Fakat bazı uygulamalarda yollanan mesajlar tek bir datagram’in 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 kotu ihtimalle bu sorgulama tekrar yapılır. Bu cins kullanımlar için TCP nin alternatifi protokoller vardır. Böyle amaçlar için en çok kullanılan protokol ise UDP’dir(User Datagram Protocol).
UDP datagramlarin belirli sıralara konmasının gerekli olmadığı uygulamalarda kullanılmak üzere dizayn edilmiştir. TCP’de olduğu gibi UDP’de de bir başlık vardır. Ağ yazılımı bu UDP başlığını iletilecek bilginin başına koyar. Ardından UDP bu bilgiyi IP katmanına yollar. IP katmanı kendi başlık bilgisini ve protokol numarasını yerleştirir (bu sefer protokol numarası alanına UDP’ye ait değer yazılır). Fakat UDP TCP’nin yaptıklarının hepsini yapmaz. Bilgi burada datagramlara bölünmez ve yollanan paketlerin kayıdı tutulmaz. UDP’nin tek sağladığı port numarasıdır. Böylece pek çok program UDP’yi kullanabilir. Daha az bilgi içerdiği için doğal olarak UDP başlığı TCP başlığına göre daha kısadır. Başlık, kaynak ve varis port numaraları ile kontrol toplamını içeren tüm bilgidir.
Diğer bir protokol ise ICMP’dir (“Internet Control Message Protocol”). ICMP, hata mesajları ve TCP/IP yazılımının bir takım kendi mesaj trafiği amaçları için kullanılır. Mesela bir bilgisayara bağlanmak istediğinizde sisteminiz size “host unreachable” ICMP mesajı ile geri dönebilir. ICMP ağ hakkında bazı bilgileri toplamak amacı ile de kullanılır. ICMP yapı olarak UDP’ye benzer bir protokoldur. 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. Butun 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. Şu ana kadar gördüğümüz katmanları ve bilgi akışının nasıl olduğunu aşağıdaki şekilde daha açık izleyebiliriz. (Internet)
Katmanlar arası bilgi akışı
5. NETBEUI Protokolü
IBM tarafından geliştirilmiş ve Microsoft’un yerel ağlar için tercih ettiği bir protokoldür. Bazı özellikleri şunlardır:
1. 20-30 bilgisayardan oluşmuş küçük LAN’lar için geliştirilmiştir.
2. Yönlendirilemeyen protokoldür.
3. İstemci/sunucu mantığına uymaz.
4. Büyük paketlerin taşınması, yerel ağlarda tercih edilmesine yol açar.
5. Yapılandırılması oldukça kolaydır.(Teknik eğitim Ders notları)
Bu protokol 20-200bilgisayardan oluşan küçük LAN’lar için geliştirilmiş bir protokoldür. Gateway’ler (geçit) aracılığıyla diğer LAN segmentlerine ve mainframe’lere bağlanır. Ancak NetBEUI protokolü routable (yönlendirilebilir) değildir. Bu nedenle NetBEUI kullanan iki bilgisayar birbirine routing’le değil, bridging’le bağlanır.
6.NWLink Protokolü
Nowell IPX/SPX protokolünün NDIS uyumlu olanıdır. Özellikle Netware ile olan bağlantıda kullanılır. NWLink sadece bir protokoldür. Netware server’de bulunan bir dosyaya ya da yazıcıya doğrudan ulaşımı sağlamaz. NWLink yaygın olarak kullanılır. Büyük alanlarda ve çok sayıda istemciye kapsayabilir. (Çubukçu, Her yönüyle Windows NT,s.339)