TCP/IP protokol takımında , İnternet Protokolü (IP) bilgisayarlar arasında veya ağ geçitlerinde hata raporlama, hata düzeltme ya da durum bildirme yeteneklerine sahip değildir. Bağlantısız (connectionless) bir protokol olan IP Kullanıcı Veribloğu Protokolü(UDP) üstünden iki uç nokta arasında bağlantını kurulup kurulmadığıyla ilgilenmez.
ICMP (Internet Control Message Protocol-İnternet Kontrol Mesaj Protokolü), İnternet Katmanında IP paketinin veri bölümünde çalışıp, sorunları haberleşen birimlere bildirerek bir geri besleme mekanizması oluşturur.
ICMP genel olarak; TTL süresi dolduğu zaman paketin sahibine bildirim yapma, herhangi bir durumda yok edilen paket hakkında geribildirim sağlama, hata oluşumlarında geribildirim sağlama, paket başka bir yoldan gideceği zaman geribildirim sağlama gibi görevler üstlenir. Örneğin, sorun çözümü için sıkça kullanılan Ping ve Tracert komutları ICMP Echo Request ve ICMP Echo Reply mesajları ile çalışır.
ICMP Paket Yapısı
ICMP mesajları IP datagramının veri alanında taşınır. IP başlığındaki protokol alanı 1'e ayarlanarak ICMP'nin kullanıldığı gösterilir.
IP Başlığı |
Tip (8) |
Kod (8) |
Toplamsal Hata (16) |
Parametreler (eğer parametreler yoksa kullanılmaz) |
Bilgi (değişken) |
(n) = Alandaki bitlerin sayısı |
-
Tip Alanı: Mesaj tipini tanımlar.
-
Kod Alanı: Hata veya durum bilgisi tipini tanımlar.
-
Toplamsal Hata(Checksum): ICMP mesajının 16-bit'lik 1'e tümleyenini hesaplar.
-
Parametreler: Parametrelerin daha uzun halinin belirlenmesinde kullanılır.
-
Bilgi: Mesajla ilgili bilgidir.
Mesaj Tipinin Alabileceği İfadeler
ICMP paketinde durum bilgisi tip bölümünün aldığı parametreler ile tanımlanır.
- 0 - Yankı(Echo) yanıtı (Echo Reply)-ping yanıtı
- 3 - Hedefe Erişilemedi(Destnation Unreachable)
- 4 - Kaynak Kapatmak(Source Quench)
- 5 - Yeniden Yönlendirme(Redirection Required)
- 8 - Yankı isteği(Echo Request)-(ping isteği)
- 9 - Yönlendirici(Router) tanıtımı
- 10 - Yönlendirici(Router) istemi
- 11 - Zaman aşımı (Time to Live Exceeded)-traceroute tarafından kullanılır.
- 12 - Parametre Problemi(Parameter Problem)
- 13 - Tarih Bilgisi İstemi(Timestamp Request)
- 14 - Tarih Bilgisi 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)
Hedef ulaşılamaz (Destination Unreachable): Hedef bilgisayardan ağda herhangi bir bilgi alınamadığı durumlarda bu parametre kullanılır.
Yankı (Echo): Yankı mesajları, bir yönlendirici(Router) veya bilgisayar tarafından diğer bir yönlendirici veya bilgisayara gönderilen mesajlardır. Yankı mesajı kaynaktan hedefe yönelen bir mesaj olup, yankı mesajı olarak hedeften kaynağa Yankı Cevabı (Echo Reply) mesajı döner. Yankı mesajı ile hedef bilgisayarın çalışıp çalışmadığı ve iletişim kurmak için gerekli yolun sağlanıp sağlanamayacağının testi yapılır. TCP / IP protokol grubu yüklü olan bilgisayarlar üzerinde çalıştırılan Ping komutu bu işlevi yerine getirir. Ping isteğini gönderen cihaz (Yankı İsteği) Echo Request’te bulunur. ICMP mesajlarındaki Yankı İsteği Tipi (Echo Request Type) 8 ve Kod(Code) 0'dır.Hedef IP adresi Yankı İsteği (Echo Request) mesajını aldığında gönderen cihaza Yankı Cevabı(Echo Reply) mesajını gönderir. Bu mesajın Tip'i (Type) ve Kod’u (Code) 0'dır.
Hedeften cevap dönen bir PING sorgusu:
Kaynak Kapatmak (Source Quench): Datagramların geçiş oranını kontrol eder. Bu mesaj alındığında gönderim hızı azaltılmalıdır.
Yeniden Yönlendirme (Redirect): Daha iyi bir rota mevcut olduğu durumlarda ağ geçidine(gateway) gönderilir. Bu mesaj gönderilince kod alanında(code field) oluşan numara yönlendirmenin(routing) nasıl olucağını belirler.
Parametre Problemi(Parameter Problem): Parametre sorunu paket başlık parametrelerinde oluşan hataları paremeter problem message olarak geri bildirir.
Tarih Bilgisi İstemi ve Yanıtı (timestamp request ve Reply): ağdan geçen mesajın süresinin gözlenmesini sağlar.
Bilgi İstemi ve Yanıtı, Addres Maskesi İstemi ve Yanıtı (information request ve reply, address mask request ve Reply): Özel ağın veya altağın denenmesini sağlar.
Bunun yanında Tracert komutu bir veri paketinin gönderilmek istenildiği adrese ulaşıncaya kadar gecen sürede, veri paketinin hangi cihazlar (Bilgisayar,Yönlendirici) üzerinden geçtiğini gösterir. Tracert IP başlığındaki TTL alanını ve ICMP kullanır. TTL'in başlangıç değeri paket başlığının 8 bitlik bir alanına sistem tarafından öntanımlı olarak ayarlanmıştır. TTL’in asıl amacı belirlenmiş zaman aralığında, süresi dolmuş paketlerin ağdan atılmasına dayanır. Her yönlendirici TTL alanindaki sayıdan 1 çıkartır, bu sayı yönlendirici "hop" sayısına karşılık gelir. Her yönlendiriciye TTL alanındaki sayıdan bir çıkartılmış bir paket ulaşır. Bu sayı sıfır olduğunda ,yönlendirici paketin düşürüleceğini yani iptal edileceğini belirler ve paketi üreten istemciye ICMP mesajı gonderir. Örneğin bir yönlendirici TTL alanı 0 ya da 1 olan bir veri paketi almış ise paketi başka bir yere yönlendirmez ve kaynak bilgisayarına ICMP “zaman aşımı” mesajı gönderir. ICMP mesajına sahip olan veri paketi yönlendiricinin ip adresini kaynak adresi olarak alır. Tracert bu sistemi kullanır.