ICMP (Internet Control Message Protocol) Nedir?
ICMP (Internet Control Message Protocol/İnternet Kontrol Mesajı Protokolü), İnternet Protokolünün (IP) kontrol ve hata bildirimi için kullanılan bir alt protokoldür ve belirli bir hizmetin mevcut olup olmadığını veya bir yönlendirici ve ana bilgisayarın bulunamadığını belirten hata mesajlarının oluşturulması ve gönderilmesi için kullanılır.
ICMP Protokolü Nedir?
ICMP, genellikle bir ağdaki kullanıcı uygulamaları tarafından doğrudan kullanılmaz ve TCP ve UDP‘nin çalışma yapısından oldukça farklıdır.
Kısacası, ICMP’nin temel amacı ağdaki bir bilgisayarın kullanılabilir olup olmadığını, paketlerin bu bilgisayara gidip gelme süresini ve geçtiği bilgisayarların sayısını hesaplamak ve belirlemek için Echo ICMP istek mesajları gönderen Ping veya Trace aracıdır.
ICMP, RFC 792’de tanımlanan bir IP protokol paketinin bir parçasıdır. Bu mesajlar, bir IP datagram içerisindeki hatalara yanıt için veya tanılama ve yönlendirme için oluşturulur.
Ağ katmanı seviyesinde oluşturulan ICMP mesajlarının iki temel sürümü vardır. IPv4 protokolü için kullanılan versiyonu ICMPv4’tür. IPv6 protokolü için ise, ICMPv6 versiyonudur.
Oluşturulan mesajlar IP protokolü tarafından yeni bir IP başlığı ile kapsüllenerek datagram şeklinde iletilir. Böylece, bir IP datagram paketi gönderen her aygıtın TTL (Time-to-Live) değeri vardı. Eğer TTL değeri 0 olursa, ICMP paketini gönderen datagram kaynağına Time Exceeded mesajı gönderilir ve bağlantının mevcut olup olmadığı doğrulanır.
Fakat, IP datagramındaki her ICMP mesajı, paketlerin teslim edildiğini garanti etmez. Genellikle, mesajın içeriğini incelemek ve göndermek isteyen uygulama, uygun hata mesajını iletmesi gerekir.
Bu işlemin tek faydası, bir paketin TTL değeri dolduğunda hedefine ulaşıp ulaşamayacağını kontrol etmektir.
Bilgisayar yerel ağ sistemlerinde ICMP, hata ve kontrol mesajları oluşturması için kullanılır ve tespit edilen problemlerin önlenmesi ve düzeltilmesi için yardımcı bir araç görevi görür. Ağdaki cihazları kontrol etmek için kullanılan 3. parti yazılımların çoğu ICMP mesajlarına dayanmaktadır.
Bilgisayar işletim sistemlerinde bazı problemlerin tespitini yapmak için Ping ve Traceroute komutları kullanılır.
Ping komutu, Echo Request ve Echo Reply mesajlarını kullanarak ağdaki bir aygıt için denetim yapar ve UDP datagramlarını kullanarak Time to Live in Transit ve Destination Unreachable mesaj türleri ile konrolü gerçekleştirir.
Traceroute komutu ise, kaynak ve hedef aygıt arasında yönlendirici ve ana bilgisayar sayısını belirlemek ve hedef yol üzerinde hangi cihazda sorun oluştuğunu denetlemek için kullanılır. Kısacası, hedefe giden yolun Hop (Atlama) sayısını ve paketin hangi cihazlardan geçtiğini denetler.
ICMP, sistem yöneticilerine yalnızca rapor verir ve hataları düzeltmez.
ICMP Mesajları
Echo Request / Echo Reply
Ağdaki bir aygıtın çalışıp çalışmadığını belirlemek için Echo mesajları kullanılabilir.
Yerel bilgisayar hedef bilgisayara bir ICMP Echo Request mesajı gönderir ve bu mesaj alan bilgisayar Echo Reply mesajını kullanarak yanıt verir.
Destination Unreachable / Hedef Ulaşılamaz
Destination Unreachable mesajı, bilgisayarı hedefin veya hizmetin erişilemez olduğu konusunda bilgilendirmek için kullanılabilir.
Bir bilgisayar gönderemediği bir paket aldığında, paketi oluşturan bilgisayara bir Destination Unreachable mesajı gönderir ve bu paketin neden gönderilemediğini belirten kodlar oluşturulacaktır.
Bu kodlar, Destination Unreachable:0, Network Unreachable:1, Host Unreachable:2, Protocol Unreachable:3 olacaktır.
Network Unreachable ve Host Unreachable mesajları, paket gönderemeyen bir yönlendiriciden gelen yanıtlardır. Bir kaynaktan bir hedefe giden yol üzerindeki herhangi bir yönlendirici veya sunucu, bir yolu olmayan bir paket alırsa, ağın erişilemez olduğunu belirten Destination Unreachable mesajı ile yanıt verebilir.
Bir kaynak, hedefe giden yol üzerindeki son yönlendirici, bir rotası olan ancak paketi ağdaki hedef bilgisayara gönderemeyen bir paket aldığında, ağın bilindiğini fakat hedef bilgisayarın erişilemez olduğunu belirten mesaj ile yanıt verebilir.
Time Exceeded / Zaman Aşıldı
IP başlığında, bir paketin hedefine ulaşmak için geçeceği yönlendirici sayısının sınırlandırılması için bir TTL değeri vardır.
Eğer TTL değeri ile paketin geçeceği aygıt sayısı sınırlandırılmasaydı, bir yönlendirici paketleri diğer cihazlara sürekli olarak gönderecekti ve bu ağda sonsuz bir döngü oluşturacaktı.
Bu yüzden, bir yönlendirici bir paket aldığında, paketin TTL alanının değerini bir değer azaltır ve eğer TTL’nin değeri sıfırsa, yönlendirici paketi bırakacaktır.
Dolayısıyla, yönlendirici, kaynak bilgisayara paketin TTL süresi tamamlandığı için paketin gönderilemediğini belirten bir Time Exceeded mesajı gönderir.
Redirect / Yönlendirme
Bir yönlendirici, bir ağdaki bilgisayarları belirli bir hedefe giden en uygun yol konusunda bilgilendirmek için bir Redirect mesajı kullanabilir.
Bir yönlendirici, hedefteki cihazdan bir yolu olan bir paket aldığında, yönlendirici, mesajı kaynak bilgisayara yeniden yönlendirmek için bir ICMP göndererek bir sonraki atlama hakkında bilgi verebilir.
Source Quench / Kaynak Daralması
Source Quench mesajı, temel bir akış kontrol mekanizması uygulamak için ve kaynağı bir süre için paket göndermeyi durdurması konusunda bilgilendirmek için kullanılır.
Bu mesaj, datagram paketlerinin ağda hızlı iletilmesi ve kaynağı meşgul etmesi durumunda kaynak aygıta paket gönderiminin yavaşlatılması konusunda bilgilendirir.
Bir bilgisayar bir Source Quench mesajı aldığında, bunu taşıma katmanına bildirir ve TCP akış kontrol mekanizmasını kullanır.
Bilgi Mesajları
Hata Mesajları
İlgili Yazılar
♦ Token Ring Nedir?
♦ IPX Protokolü
♦ SLIP Protokolü
♦ FDDI Nedir?
♦ Frame Relay Nedir?