İnternet Kontrol Mesajı Protokolü (ICMP), bilgisayar ağlarında hata raporlama ve tanı amaçlı kullanılan bir yardımcı programdır. ICMP, İnternet Protokolü (IP) Paketinin bir parçasıdır ve değişen amaçlarla önceden tanımlanmış mesajlardan oluşur. İnternet Kontrol Mesaj Protokolünün çoğu yönü son kullanıcılar tarafından farkedilmez, ancak traceroute ve ping gibi birkaç ağ aracı işlevsellikleri için ICMP mesajlarına güvenir.
Hem İnternet'in hem de daha küçük bilgisayar ağlarının merkezinde, IP Suite olarak bilinen bir protokoller topluluğudur. Bu protokoller, ağ aygıtları arasında değiştirilen mesajların formatlarını belirtir ve bu mesajların nasıl gönderilip alındığı konusunda kurallar belirler. Protokoller ayrıca katmanlıdır, her katman altındaki katmana dayanır. ICMP, ikinci en yüksek katman olan İnternet katmanının bir parçasıdır. Bu katman, bir veya daha fazla ağ üzerinden paket olarak adlandırılan bireysel veri gruplarının iletilmesinden sorumlu olan iyi bilinen İnternet Protokolünü içerir.
ICMP, İnternet Protokolünü kullanarak cihazlar veya ana bilgisayarlar arasında hata mesajları veya tanılama bilgileri göndermek için kullanılır. ICMP mesajları önceden tanımlanmıştır ve adı ya da tip numarası ile belirtilebilir. Bu mesajların çoğu farklı hata raporlama türleri içindir. Örneğin, belirli bir ana bilgisayara erişilemediğinde, veri dağıtımını önleyen belirli bir sorunu belirten bir ICMP mesajı sıklıkla üretilir. Paketler bozulursa veya bir ağdaki bir yönlendirici veya ana bilgisayar sıkışıksa diğer mesaj türleri gönderilir.
Bir paketin maksimum boyutu önceden tanımlanmadı, ancak belirli bir ağ bağlantısının Maksimum İletim Birimi (MTU) tarafından belirlendi. Farklı bağlantılar farklı MTU'lara sahip olabilir, ancak bir paketin yolculuğunu tamamlamak için verilen bir yol boyunca en küçük MTU'dan daha küçük olması gerekir. Yol MTU Keşfi (PMTUD) olarak bilinen bir teknik, paketler belirli bir yol kesimi için çok büyük olduğunda göndereni bilgilendirmek için ICMP mesajlarını kullanır.
ICMP Router Discovery Protocol (IRDP) olarak bilinen ilgili bir protokol, onu destekleyen ana bilgisayarlar için otomatik ağ yapılandırmasını kolaylaştırabilir. IRDP, yakındaki yönlendiricileri, yani iki veya daha fazla ağı birbirine bağlayan ana bilgisayarları duyurmak ve keşfetmek için iki tür Internet Denetimi İletisi Protokolü mesajı kullanır. IRDP'yi destekleyen bir yönlendirici, belirli aralıklarla ana bilgisayarlara varlığını bildiren bir ICMP yönlendirici reklam mesajı yayınlar. Toplantı sahipleri ayrıca yakındaki tüm yönlendiricilerin kendilerini tanımlamasını isteyen bir talep mesajı gönderebilir.
Bazı popüler ağ yardımcı programları ayrıca İnternet Kontrol Mesajı Protokolüne de güvenmektedir. Traceroute olan bir araç, bir paketin “yaşama süresini” (TTL) süresi dolduğunda veya aştığında oluşturulan ICMP mesajını kullanır. Bir paket için kasıtlı olarak düşük bir TTL değeri ayarlayarak, traceroute, paketin son kullanma tarihinden önce ulaştığı son yönlendiriciden bir ICMP Zaman Aşıldı mesajı alır. Bu işlemi tekrarlamak ve TTL değerini artırmak, teoride, seyahat ettikleri tüm ana bilgisayar paketlerinin bir listesini oluşturacaktır.
Ping adı verilen başka bir araç, bir ICMP Yankı Yanıtı mesajı ile yanıtlanan ICMP Yankı İsteği iletisine dayanır. Ne yazık ki, bir bilgisayar korsanı sahte gönderici bilgileriyle yankı istekleri gönderdiğinde, daha sonra diğer birçok makinenin yanıtladığı yankı istekleri gönderdiğinde, “bir saldırı” olarak adlandırılan ping de kötüye kullanılabilir. Bu, bir ağı, hizmet reddi olarak bilinen bir meşru paketin geçemediği noktaya getirebilir.


