Internet Kontrol Protokolleri IP yanında internette ICMP, ARP, RARP, BOOTP ve DHCP gibi çeşitli kontrol protokolleri de kullanılmaktadır. ICMP (Internet Control Message Protokol, Internet Kontrol Mesajı Prot.) Đnternetin işleyişi routerlar tarafından yakından takip edilmektedir. Beklenmeyen bir durum gerçekleştiğinde bu olay ICMP ile rapor edilir. Aynı zamanda ICMP interneti test için de kullanılır. Aşağıdaki tabloda en önemlileri verilen ICMP mesajları bir IP paketinin içinde bulunur.
DESTINATION UNREACHABLE mesajı subnet veya bir router gönde-rilen adresi bulamadığında veya DF (don t fragment) biti yanık büyük bir pa-ketin küçük paket standardına sahip bir ağdan geçemediğinde üretilir. TIME EXCEEDED mesajı paketin içinde bulunan sayaç sıfırlandığında verilen bir mesajdır. Bu olay paketlerin ağda bir döngüde döndüklerini, bir yerde sıkışma olduğunu veya sayacın çok küçük seçildiğinin habercisidir. SOURCE QUENCH günümüzde çok fazla kullanılmayan, çok fazla paket gönderen kaynakları yavaşlatmak amacıyla kullanılan bir mesajdır. Bu paketi alan kaynak yavaşlamak zorundadır. REDIRECT mesajını bir router, gelen paketin yanlış yönlendirilmiş olduğuna karar verdiğinde, paketi gönderen tarafa durumu bildirmek için kullanır. ECHO ve ECHO REPLY bir hedefin hayatta ve ulaşılabilir olduğunu anlamak için kullanılan mesajlardır. Sorgulayan taraf hedefe ECHO gönderir, hedef bu mesajı aldığında geriye ECHO REPLY yollar. ECHO nun yanında zaman bilgisi de isteniyorsa TIMESTAMP REQUEST ve TIMESTAMP REPLY mesajları kullanılır. Bu şekilde ağın gecikme performansı ölçülebilir.
ARP (Address Resolution Protocol, Adres Çözme Protokolü) Internette her bilgisayarın eşi olmayan bir IP adresine sahip olmasına rağmen veri bağlantı katmanının bu adresleri anlamaması nedeniyle bu adresler aslında paket göndermek için doğrudan kullanılamaz. Veri bağlantı katmanı için anlamlı olan adres örneğin Ethernet teki MAC adresidir. Paket gönderimi için bir şekilde IP adresinin MAC adresini çevirilmesi gerekmektedir. Bu çevirimi aşağıdaki örnek üzerinden inceleyelim.
Bu ağda örneğin sırasıyla 192.31.65.0 ve 192.31.63.0 taban adreslerine sahip Bilgisayar ve Elektronik Müh. Bölümlerinin ağlarını bağlayan 192.31.60.0 adresine sahip kampüs FDDI backbone u bulunsun. Ağdaki her bilgisayarın eşi olmayan bir Ethernet adresi E1-E6 ve FDDI ring üzerindeki her birimin F1-F3 FDDI adresleri olsun. Đlk olarak 1 ve 2 bilgisayarlarının bağlantı kurmasını inceleyelim. Örneğin gönderici alıcının adresinin mary@eagle.cs.uni.edu olduğunu bilsin. Öncelikle eagle.cs.uni.edu adresinin IP numarası bulunmalıdır. Bu işlem Domain Name System (DNS) tarafından yapılır. Burada bu işlemin detayına girilmeyecektir. Örneğin gönderici DNS ten ilgili IP nin 193.31.65.5 olduğunu öğrenmiş olsun. Üst katmanlar 193.31.65.5 IP adresli bir paket hazırlayıp IP yazılımına iletmesi için verirler. Bu noktadan sonra IP yazılımının adresin hangi ağda bulunduğunu bulması gerekir. Örnekte gönderici ve alıcı aynı ağda bulunmaktadırlar. Fakat hala alıcının Ethernet adresine ihtiyaç bulunmaktadır. Bunun için sistemde IP-Ethernet adres bilgisinin tutulduğu bir tablo yaratılabilir. Ancak binlerce bilgisayarı olan ağlarda bu yöntem çok verimli olmayabilir. Bunun yerine Bilgisayar 1 bulunduğu ağda 192.31.65.5 IP adresine sahip bilgisayarı soran bir broadcast paketi yayınlar. Bu paket 192.31.65.0 Ethernetindeki herkese ulaşır ve bütün bilgisayarlar istenilen IP ile kendi IP adreslerini karşılaştırırlar. Dolayısıyla isteğe E2 Ethernet ve 192.31.65.5 IP
adresli Bilgisayar 2 cevap verir. Bu soru-cevap protokolünü ARP ismi verilir. Đnternetteki hemen bütün bilgisayarlar bu protokolü işletecek yazılıma sahiptirler. ARP nin tabloya üstünlüğü basitliğidir. Ağ yöneticisi sürekli tabloyu yenilemekle uğraşmak zorunda kalmaz. Sadece her bilgisayara bir IP ve subnet mask atar, işin kalınını ARP halleder. ARP den sonra Bilgisayar 1, 193.31.65.5 IP adresli ağ katmanı paketlerini E2 Ethernet adresli veri bağlantı katmanı çerçevelerinin veri kısmına ekler ve Ethernete gönderir. Bilgisayar 2 nin Ethernet kartı kendi E2 adresini hatta görünce bu çerçeveyi alıp işleyerek bir IP paketine dönüştürür ve üst katmandaki IP yazılımına iletir. ARP protokolü için çeşitli iyileştirmeler mümkündür: Genellikle bir bilgisayara peşpeşe paketler gönderileceği için gönderici ARP ı bir kere çalıştırır ve elde ettiği Ethernet adresini sonraki iletişimlerinde de kullanır. Ayrıca iletişim genellikle iki bilgisayar arasında yapıldığı için Bilgisayar 2 de 1 in Ethernet adresine ihtiyaç duyar. Bu durumda 2 den 1 e ARP çalıştırılması gerekir. Bunu engellemek için 1 ARP paketini gönderirken kendi Ethernet adresini de bu pakete ekleyebilir. Aslında kendilerine gönderilmemiş olsa bile bu paketleri alan bütün bilgisayarlar kendi ARP tablolarını oluşturabilir.
Aynı yapıda başka bir örnek olarak Bilgisayar 1 in 4 (193.31.63.8) ile iletişim kurma isteğini inceleyebiliriz. Burada ARP ın kullanılması mümkün olmaz çünkü iki bilgisayar aynı ağ üzerinde değiller. Bu durumda iki çözüm düşünülebilir. Birincisinde CS routerı kendi ağı dışında 193.31.63.0 ağına da gönderilen ARP paketlerine cevap verecek şekilde ayarlanabilir. Bu durumda Bilgisayar 1 (193.31.63.8, E3) çiftini kabul edecektir ve Bilgisayar 4 ile iletişim kurduğunu varsayıp (ağ katmanında gerçekten kuruyor) Ethernet paketlerini CS routerına gönderecektir (Burada fiziksel doğrudan bir bağlantı sözkonusu değil). CS routerı ise 193.31.63.0 ağına gönderilen paketleri kabul edip oraya yönlendirecektir. Bu yönteme proxy ARP ismi verilir. Diğer bir yöntemde Bilgisayar 1 hedef adresinin kendi ağına ait olmadığını farkeder ve paketin yönlendirilmesi için kendi (CS) routerına iletir. Bu şekilde CS routerının diğer ağların adreslerini bilmesine ve onlar adına cevap vermesine gerek kalmaz. Eğer CS routerı FDDI daki diğer routerların IP adresini biliyor fakat FDDI adreslerini tanımıyorsa, aynı ARP işlemleri FDDI backbone u üzerinden de işletilir.
RARP, BOOTP ve DHCP Bazı durumlarda ARP ın tersi de, yani bilinen bir Ethernet adresinden IP adresini bulmaya da ihtiyaç olabilir. Bu yöntem özellikle diski olmayan ve image bilgisini uzaktaki bir serverdan alan bilgisayarların olduğu ağlarda gereklidir. Bir bilgisayar boot edildiğinde IP adresini bilmediği için ağa benim Ethernet adresim 14.04.05.18.01.25, benim IP adresimi bilen var mı? paketi gönderir. Bu yönteme RARP (Reverse ARP, Ters ARP) ismi verilir. Ağda bulunan RARP serverı bu isteği duyduğunda ilgili bilgisayara daha önce bir tabloda belirlenmiş IP adresini gönderir. Bu yöntemin dezavantajı RARP paketi hep 1 lerden oluşan bir adrese yani broadcast adresine gönderilmektedir ve çoğu router bu paketi geçirmez. Dolayısıyla her altağda bir RARP server bulunmalıdır. Bu sorunu aşmak için BOOTP protokolü kullanılır. BOOTP RARP ın tersine routerlardan geçen UDP paketleri kullanır. Dezavantajı IP- Ethernet adres tablolarının elle girilmesidir. Ağa yeni üye katıldığında adresleri tabloya girilmeden çalıştırılamaz. Bunu engellemenin yolu tabloları dinamik yönetmektedir. Bu amaçla BOOTP geliştirilerek DHCP (Dynamic Host Configuration Protocol) meydana getirilmiştir. DHCP hem elle hem otomatik IP adres atanmasına izin vermektedir. DHCP serverının her altağda bulunması gerekmez. Bütün ağ için bir tane olabilir, ancak doğrudan bağlı olmayan altağlardan ulaşım için altağlarda DHCP relay agent kurulu olmalıdır.
Yeni boot edilen bir bilgisayar IP adresini bulmak için öncelikle DHCP DISCOVER paketini broadcast yayınlar. Üzerinde bulunduğu LAN daki DHCP relay agent bütün DHCP paketlerini durdurur ve DHCP DISCOVER paketini gördüğünde muhtemelen başka bir ağdaki DHCP serverına gönderir. Dolayısıyla agent sadece DHCP serverının IP adresini bilmek zorundadır. Otomatik adres atamasıyla ilgili bir problem IP adresi alan bilgisayarların kapanmadan önce adresleri servera geri dödürmemeleridir. Bu durumda kısa zamanda mevcut bütün adresler tükenecektir. Dolayısıyla her IP adresi belirli bir süre için atanır. Bir bilgisayar bu süre bitmeden DHCP serverına hala hayatta olduğunu ve o IP adresini kullandığını bildirmek zorundadır, aksi takdirde IP adresini kaybeder.
IPv6 CIDR ve NAT yetersiz IPv4 adresleri için geçici bir çözüm olabilir, ama en sonunda IPv4 ten çok daha fazla yeteneğe sahip IPv6 ya geçilecektir. (Aradaki sürüm olan IPv5, deney sürümü olmaktan öteye geçememiştir.) IPv6 tasarlanmadan önce tasarım grubu bir takım hedefler belirlemişti: 1. Verimsiz bir adres alanı ile bile olsa milyarlarca hostun desteklenmesi, 2. Routing tablolarının boyutlarının küçültülmesi, 3. Routerların paket işleme hızlarını arttırmak için protokolün basitleştirilmesi, 4. Mevcut IP den daha iyi güvenlik sağlanması, 5. Özellikle gerçek zamanlı uygulamalar için servis tiplerine daha fazla önem verilmesi, 6. Multicasting e scopelar tanımlanarak yardım edilmesi, 7. Bir hostun adresini değiştirmeden roam yapmasına izin verilmesi (mobil kullanıcılar için) 8. Protokolün ileride gelişmesine izin verilmesi, 9. Eski ve yeni protokollerin bir arada kullanılabilmesi.
Tüm bu amaçları gerçekleştirmek üzere yapılan davete katılan 21 proje-den 3 ü finalist seçildi. Çeşitli tartışmalardan sonra Deering ve Francis in önerileri birleştirilerek SIPP (Simple Internet Protocol Plus) ismi verildi ve IPv6 takma adıyla anılmaya başlandı. IPv6 yukarıdaki hedefleri oldukça tatmin etmektedir. IP nin iyi yanlarını tutup kötü yanlarını atmış veya arkaplana koymuş, gerektiğinde yenilerini de eklemiştir. IPv6, IPv4 ile uyumlu olmamakla birlikte çoğu internet protokolünü (TCP, UDP, ICMP, IGMP, OSPF, BGP ve DNS) hala desteklemektedir. IPv6 nın temel özellikleri şöyle sıralanabilir: 1. IPv4 e oranla daha uzun adreslere sahiptir. Bu şekilde adres sıkıntısı problemi çok uzun süre için çözülmüştür. 2. Başlık yapısı çok büyük miktarda basitleştirilmiştir. IPv4 ün 13 alanına karşılık IPv6 da 7 alan bulunmaktadır. Bu şekilde routerların iş yükü azaltılmaktadır. 3. Option lar IPv4 e oranla daha iyi desteklenmektedir. IPv4 başlığındaki standart olan çoğu alan IPv6 da opsiyonel olmuştur. Böylece routerlar kendilerini ilgilendirmeyen optionlar ile uğraşmak zorunda kalmamaktadırlar. 4. IPv6 güvenlik alanında çok daha gelişmiştir. 5. Servis kalitesi daha ağırlık kazanmıştır. Multimedia internet için IPv4 e göre daha elverişlidir.
Ana IPv6 Başlığı Aşağıdaki IPv6 başlığından görülebileceği gibi IPv4 başlığına oranla çoğu alan çıkarılmış ve opsiyonel yapılmıştır.
Version alanında paketin hangi IP sürümüne ait olduğu belirtilir. Burada paketin IPv6 ya ait olduğu belirtilir. Traffic Class alanında paketin ne tür bir trafik akışına ait olduğu belirtilir. Böylece değişik gerçek zaman gereksinimleri olan paketler arasında ayrım yapılabilir. Flow label alanı iki kullanıcının aralarında belirli özellik ve gereksinimleri olan sanal bağlantılar kurmasına yardım edebilecek bir alandır. Örneğin iki bilgisayar arasında çalışan bir süreç çok sıkı gecikme gereksinimlerine sahip olabilir. Akış iletişimden önce kurulup bir kimlik (flow label) verilerek paketler işaretlenebilir. Router gelen paketin bu alanına bakarak daha önceden belirlenmiş/talep edilmiş kaynakları bu akışa ayırabilir. Böylece hem datagram gibi esnek hem de sanal-devre gibi garantili bir iletişim sağlanabilir. Payload length kısmı IPv4 ün aksine 40byte-lık paket hariç, toplam veri yükünün miktarını belirtir. Next header uzatılmış başlıklardan (opsiyonel) hangisinin takip eden pakette geleceğini bildirir. Hop limit alanı IPv6 paketinin ömrünün kaç hop olduğunu belirler. IPv4 teki benzer alan saniye saymak için tasarlanmıştı ancak genellikle hop saymaktadır. Source ve Destination Address alanları uzun tartışmalar sonucunda 16-byte olarak belirlenmiştir.
IPv4 e benzer olarak IPv6 adresleri de gruplanarak yazılacaktır: 8000:0000:0000:0000:0123:4567:89AB:CDEF IPv4 ten farklı olarak adres yazılırken baştaki sıfırlar ve tüm sıfırlar atılabilecektir. Yukarıdaki örnek 8000:::123:4567:89AB:CDEF olacaktır. IPv4 adresleri ise ::192.31.20.46 olarak yazılabilecektir. Adres alanı toplam 2 128 =~3x10 38 hostu adresleme yeteneğine sahiptir. Bu şekilde yeryüzünün kara ve su dahil heryeri bilgisayarla kaplanmış olsa bile metrekare başına 7x10 23 IP adresi düşeceği hesaplanmaktadır. Elbette bu adreslerin büyük kısmı IPv4 te olduğu gibi boşa harcanabilir. Ancak bu durumda bile metrekare başına 1000 IP adresinden fazlası düşebilir. IPv4 teki IHL alanı başlığın sabit uzunlukta olması nedeniyle kaldırılmıştır. Benzer şekilde paket parçalama işlemi IPv6 ta daha farklı şekilde yapılacağı için ilgili alanlar da kaldırılmıştır. Ayrıca veri bağlantı ve taşıma katmanlarının Checksum hesaplaması nedeniyle, routerlarda çok zaman alan bu işlem Ipv6 da kaldırılmıştır.
IPv6 ile ilgili tartışmalar: Her yeni sistem gibi IPv6 hakkında da ciddi tartışmalar yaşanmaktadır. Bunlardan en büyüğü adres alanı ile ilgilidir. Tasarım aşamasında adres için 8-20 byte arasında çeşitli önerilerden 16-byte seçilmiştir. Kimileri ise değişken adres uzunluğunu savunmuştur. Başka bir konu 255 olan max. hop sayısıdır. Bu sayının gelişen internette zamanla kısa kalacağı ve ayrılan çok büyük adres alanı yanında küçük kaldığıdır. Ancak karşıt fikirliler her alanın arttırılmasının başlığı çok büyüteceği ve hop sayısının amacının ortamda dolaşan paket sayısını sınırlamak olduğunu bu sayının arttırılmasının ortamdaki paket sayısını da arttıracağını savunmaktadır. Ayrıca yeni açılan ülkeler/kıtalararası hatlar sayesinde hop sayısının çok kısaldığı ve 125 hoptan fazla sayılmasının bir problemin habercisi olduğunu savunanlar bulunmaktadır. Diğer bir konu max. paket boyutudur. Kimileri 64kbyte boyutun yetersiz olduğunu ve MB boyutlarında paketler gerektiğini savunmaktadır. Ancak buna karşılık örneğin 1MB lık bir paket 1.5Mbps bir hattı 5 sn. boyunca meşgul edeceğinden gerçek zamanlı uygulamaları kötü etkileyeceğine karar verilmiş ve standart IP boyutu 64KB korunmuştur.
Checksum ın kaldırılması da tartışılmıştır. Arabayı hafifletmek için frenleri çıkarmak gibi benzetmeler yapılmasına rağmen sonunda güvenlik isteyen üst katman uygulamalarının bu işi taşıma katmanında yapmalarına karar verilmiştir. Bir tartışma konusu da mobil IP kullanıcılarının dünyanın her yerinde aynı IPv6 adresini kullanabilmeleridir. En büyük savaş güvenlik alanında yaşanmıştır. Gerekliliği tartışılmazken nerede ve nasıl olacağı tartışılmıştır. Muhtemel bugların olabileceği ve kullanıcının kontrolünün dışındaki ağ katmanında yoksa uygulamanın kendisinde mi yapılacağı tartışma konusudur. Başka bir konu ise güvenli bir ağ yapısının ulusal güvenliği tehlikeye atıp atmayacağıdır. Çok güçlü kriptoya sahip uygulamalar Amerika nın (vs.) dışına çıkarılamaz.