Yazan : Şadi Evren ŞEKER
İngilizce, Internet Control Message Protocol kelimelerinin baş harflerinden oluşan kısaltmadır. Türkçe olarak İnternet Tespit Mesajı Teşrifatı olarak çevrilebilir.
Genel olarak işletim sistemleri tarafından, ağda bulunan cihazların durumunu tespit amaçlı kullanılan bir teşrifattır (protocol). Örneğin bir cihaza erişilip erişilemediğini tespit için gönderilen mesaj tipidir.
ICMP mesajları, birer IP paketi halinde yollanmaktadır. ICMP hem UDP hem de TCP üzerinde çalışabilmektedir ancak çalıştığı protokole göre farklılık gösterebilir. Örneğin UDP paketlerine itibar etmek doğru olmaz çünkü paket kaybı olabilir.
ICMP paketleri ayrıca üzerinde çalıştıkları IP sürümüne göre (IP Version) ismlendirilmektedirler. Örneğin IPv4 için olan paketlere ICMPv4, IPv6 için olanlara ise ICMPv6 ismi verilmektedir.
ICMP paketlerinin 8 byte uzunluğunda bir başlığı (header) ve bunu takip eden ve değişken boyutta veri kısmı bulunur. Klasik bir windows ICMP paketi 32 byte uzunluğundaykey, klasik bir UNIX / Linux paketi ise 64 byte uzunluğundadır. Bu durumda windows için veri uzunluğu 24 byte, linux için ise 56 byte olmaktadır.
ICMP paketinin başlığında ilk byte, ICMP tipini belirtir. İkinci byte ICMP kodunu, üçüncü ve dördüncü bytelar ise paketin tamamının, toplam kontrolünü (check sum) belirtir. Başlık boyutunun 8 byte olduğunu belirtimiştik, geri kalan 4 byte ise ICMP tip ve koduna göre değişiklik göstermektedir. Bu durumda ICMP paketi aşağıdaki yapıda olacaktır:
Bitler |
0–7 |
8–15 |
16–23 |
24–31 |
0 |
Tip |
Kod |
||
32 |
Başlığın tipine ve koduna bağlı olarak devamı |
Yukarıdaki tiplerin değerine örnek olması açısından aşağıdaki tablodan istifade edilebilir:
Tip |
Açıklama |
0 | Eko yanıt-ping yanıtı(Echo Reply) |
3 | Hedefe Erişilemedi(Destnation Not Reachable) |
4 | Kaynak Kapatmak(Source Quench) |
5 | Yeniden Yönlendirme(Redirection Required) |
8 | Eko yanıt-ping isteği(Echo Request) |
9 | Yönlendirici tanıtımı |
10 | Yönlendirici istemi |
11 | Zaman aşımı–traceroute kullanır(Time to Live Exceeded) |
12 | Parametre Problemi(Parameter Problem) |
13 | Timestamp İstemi(Timestamp Request) |
14 | Timestamp Yanıtı(Timestamp Reply) |
15 | Bilgi İstemi(Information Request) |
16 | Bilgi Yanıtı(Information Reply) |
17 | Addres Maskesi istemi(Address Mask Request) |
18 | Addres Maskesi yanıtı(Address Mask Reply) |
Yukarıdaki her tip için ayrıca kodlar bulunmaktadır.
Örneğin 5 numaralı tip olan yeniden yönlendirme tipinin (redirection required) alt kodları olarak aşağıdaki tabloda yer alan değerlerden birisi atanabilir:
Kod |
Açıklama |
0 | Ağ için yönlendir (Redirect Datagram for the Network ) |
1 | Sahibi için yönlendir (Redirect Datagram for the Host) |
2 | Servis tipine göre ve ağa göre yönlendir (Redirect Datagram for the TOS & network) |
3 | Servis tipine ve sahibine göre yönlendir (Redirect Datagram for the TOS & host) |
Ayrıca diğer tiplerinde benzer şekilde alt kodları bulunmaktadır. ICMP paketi, ayrıca internet standartlarını belirleyen kurum olan IETF (internet engineerint task force) tarafından yayınlanan ve standartların yayınlandığı RFC dokümanlarında (yorum için talep, request for comment) 792 numaralı yayında geçmektedir. İlgili dokümana aşağıdaki bağlantıdan erişilebilir: