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 0000000
Subnet 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
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 0000000
Subnet 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ı
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.