ICMP (Internet Control Message Protocol) Nedir? | Ağda Nasıl Çalışır?

Hızlı Bakış

ICMP, ağ cihazlarının hata ve kontrol mesajlarını IP datagramları içinde taşıyarak bağlantı sorunlarını teşhis eden bir ağ katmanı protokolüdür. Ping aracı, Echo Request paketini hedefe gönderiyor. Hedef, Echo Reply ile yanıt veriyor. Traceroute ise TTL değerini kademeli artırıp her yönlendiriciden Time Exceeded mesajı alıyor. Hedefe Ulaşılamaz kodu, paketin neden teslim edilemediğini kaynağa bildiriyor. Yönlendirme mesajı, daha verimli bir rota varsa göndericiyi uyarıyor. Bu sayede sistem yöneticileri, ağdaki kopuklukları ve gecikmeleri anında tespit ediyor.

ICMP (Internet Control Message Protocol – İnternet Kontrol Mesajı Protokolü), IP kontrolü/hata raporlaması içindir. Hizmet kullanılabilirliği, yönlendirici/ana bilgisayar durumu için hata mesajları üretir.

Ayrıca ICMP, İnternet Protokolünün (IP) kontrolü ve hata raporlaması için kullanılan bir alt protokoldür. Hata mesajları, bir şeyin çalışıp çalışmadığını bize söyleyen sinyaller gibidir. Bir cihazın veya bağlantının mevcut olup olmadığını gösterebilirler.

ICMP Nedir?

ICMP Protokolü Nedir ve Ağ Sorun Gidermedeki Rolü Nedir?

Kullanıcı uygulamaları, ağ üzerinde doğrudan ICMP kullanmaz. TCP ve UDP’den farklıdır. Ancak, ICMP genellikle bir ağdaki kullanıcı uygulamaları tarafından kullanılmaz. Ancak, TCP ve UDP protokolünün çalışma şeklinden oldukça farklıdır.

ICMP protokolü için birincil amaç, ağ bilgisayarlarına ping atmak veya izlemektir. Kullanılabilirliği, seyahat süresini ve rotayı bilgisayarlar aracılığıyla hesaplamak için Echo ICMP istek mesajları gönderir. Kısacası ICMP, ağ bilgisayarı ayrıntılarını belirleyen Ping & Trace işlevlerine hizmet eder.

ICMP, IP protokol paketindedir (RFC 792). Mesajlar IP hatalarına, teşhislere ve yönlendirmeye yanıt verir. Ayrıca, bu mesajlar IP hatalarını, teşhislerle birlikte yönlendirmeyi işler.

ICMP protokolü mesajlarının ağ katmanında iki temel versiyonu vardır. Yani bu mesajlar LAN’da iki temel versiyon halinde gelir;

  1. IPv4 için ICMPv4
  2. IPv6 için ICMPv6.

Sistem, mesajları yeni IP başlığı ile kapsüller. Daha sonra, bunları datagramlar olarak iletir. Sonuç olarak, her cihazın IP paketleri için TTL değeri vardır.

TTL değeri 0 ise, kaynak bir Süre Aşıldı (Time Exceeded) mesajı alır. Ayrıca, ICMP paketi bağlantıyı doğrular. Tüm ICMP mesajları, IP datagramında paket teslimini sağlamaz. Ancak, bazı ICMP protokolü mesajları başarılı paket iletimine katkıda bulunur.

Uygulama genellikle hata mesajını incelemek ve göndermek için iletir. Akabinde, uygun mesaj içeriği iletimini sağlar. Bu işlemin tek faydası, bir paketin TTL’si dolduğunda hedefine ulaşıp ulaşamayacağını kontrol etmektir.

ICMP Protokolü Ne İşe Yarar ve Nasıl Çalışır?

Yerel ağlarda sorun gidermeye yardımcı olan ICMP protokolü, hata & kontrol mesajları oluşturur. Ek olarak, problem tespiti ve düzeltilmesine yardımcı olur. Web’deki cihazları kontrol eden çoğu 3. taraf yazılım, ICMP mesajlarını kullanır.

Kullanıcılar, bilgisayar işletim sistemi sorunlarını belirlemek için Ping & Traceroute kullanır. Ayrıca, bu komutlar belirli sorunları doğru şekilde belirlemeye yardımcı olur.

Ping, ağlarda Yankı İsteği (Echo Request) ve Yanıt (Reply) mesajlarını kullanan cihazları kontrol eder. Ek olarak, UDP datagramlarını kullanarak Yaşam Süresini (Time to Live) ve Ulaşılamayan Hedefi (Destination Unreachable) kontrol eder.

Traceroute, kaynak & hedef cihazlar arasındaki yönlendiricileri ve ana bilgisayarları belirler. Böylece rota boyunca sorunlu cihazları tespit eder. Kısacası, hedefe giden yolun Hop sayısını ve paketin hangi cihazlardan geçtiğini kontrol eder.

ICMP yalnızca sistem yöneticilerine rapor verir ayrıca hataları düzeltmez.

ICMP Protokolü Mesajları Nelerdir?

1. Echo Request / Echo Reply (Yankı İsteği / Yankı Yanıtı)

Ağdaki cihazın çalışıp çalışmadığını belirlemek için yankı mesajlarını kullanır. Böylece, yerel bilgisayar, hedef bilgisayara ICMP Yankı İsteği gönderir. Ardından, alıcı bilgisayar Yankı Yanıtı ile yanıt verir.

2. Destination Unreachable (Hedefe Ulaşılamaz)

Destination Unreachable mesajı, ulaşılamayan hedef veya hizmet hakkında bilgi verir. Böylece, kullanılamama konusunda bilgisayarı uyarır.

Bilgisayar alınan teslim edilemeyen paketler için Ulaşılamaz mesajı gönderir. Böylece sorunu gönderene bildirir. Bu senaryoda, paketlerin iletilmemesini açıklamak için kodlar üretir.

Kodlar şunları içerir;

  1. Destination Unreachable (Ulaşılamaz Hedef): 0.
  2. Network Unreachable (Ağa Ulaşılamıyor): 1.
  3. Host Unreachable (Sunucuya Ulaşılamıyor): 2.
  4. Protocol Unreachable (Ulaşılamayan Protokol): 3.

Ağ ve Ana Bilgisayar Ulaşılamaz mesajları, paket iletim hatasını gösteren yönlendirici yanıtlarıdır. Ayrıca bu mesajlar, kaybın özel nedeni hakkında değerli bilgiler sağlar.

Bir yönlendirici veya sunucu rotasız bir paket aldığında, Destination Unreachable mesajıyla yanıt verebilir. Bu yanıt, ağa erişilemez olduğunu gösterir. Ayrıca, bu yanıtlar, bağlantı sorunlarını etkili bir şekilde çözmek için çok önemlidir.

Son yönlendirici bir mesajla yanıt verebilir: ağ biliniyor, hedef erişilemiyor. Ek olarak, bu yanıt, bağlantı sorunlarının doğru bir şekilde tanımlanmasına yardımcı olur.

3. Time Exceeded (Süre Aşıldı)

IP başlığı, paket yönlendirmesini TTL değeri üzerinden sınırlar. Ayrıca, bu, hedefe verimli teslimat sağlar.

TTL sınırlaması olmadan, yönlendiriciler ağda sonsuz döngüler oluşturur. Ayrıca, bu hedefe işlevsel paket teslimatı sağlar.

IP başlığındaki TTL değeri, paketin hedefine ulaşmak için geçtiği yönlendirici sayısını kısıtlar. Ayrıca, paketlerin ağ içinde sonsuz bir şekilde dolaşmasını engeller.

Yönlendirici, kaynağa Süre Aşıldı mesajı gönderir. Ek olarak, bu, süresi dolmuş TTL nedeniyle paket hatası olduğunu gösterir.

4. Redirect (Yönlendirme)

Yönlendiriciler, Yönlendirme mesajları yoluyla ağ bilgisayarlarına en uygun rota hakkında bilgi verir. Dolayısıyla, yönlendirici, rota ile bir paket alır ve ICMP’yi kullanarak sonraki sekmeyi bilgilendirir. Böylece, mesajı kaynak bilgisayara yönlendirir.

5. Source Quench (Kaynak Söndürme)

Source Quench, akış kontrolünü uygulayarak kaynağa göndermeyi duraklatmasını söyler. Sonuç olarak, paket iletimini geçici olarak düzenler.

Mesaj, datagramlara iletim hızını kaynak mevcudiyetine göre ayarlama talimatı verir. Böylece, ağ performansını ve kaynak tahsisini etkin bir şekilde optimize eder.

Bilgisayar, TCP akış kontrolünü kullanarak Source Quench’i taşıma katmanına bildirir. Böylece ağ iletişiminde paket akışını yönetir.

ICMP Protokolü Bilgi Mesajları

ICMP Bilgi Mesajları
0Echo Reply
3Destination Unreachable
4Source Quench
5Redirect
8Echo
11Time Exceeded
12Parameter Problem
13Timestamp Request
14Timestamp Reply
15Information Request
16InformationReply
17Addressmask Request
18Addressmask Reply

İnternet Kontrol Protokolü Hata Mesajları

İnternet Kontrol Mesajı Protokolü Hata Mesajları
0It cannot reach the network. (Ağa ulaşamıyor.)
1It cannot reach the destination host or application. (Hedef ana bilgisayara veya uygulamaya ulaşamaz.)
2The destination does not have the requested protocol. (Hedef, istenen protokole sahip değil.)
3The system cannot reach the destination port, or the destination application is not free. (Sistem hedef bağlantı noktasına ulaşamıyor veya hedef uygulama boşta değil.)
4While fragmentation is necessary, the corresponding flag indicates otherwise. (Parçalanma gerekli olsa da, karşılık gelen bayrak aksini gösterir.)
5The source path is not correct. (Kaynak yolu doğru değil.)
6The destination network is not known. (Hedef ağ bilinmiyor.)
7The destination host is unknown. (Hedef ana bilgisayar bilinmiyor.)
8The source host is in an isolated state. (Kaynak ana bilgisayar yalıtılmış bir durumdadır.)
9Administrative reasons prohibit communication with the destination network. (Yönetimsel sebepler, hedef ağ ile iletişimi yasaklar.)
10Administrative reasons prohibit communication with the destination host. (Yönetimsel nedenler, hedef ana bilgisayarla iletişimi yasaklar.)
11The type of service prevents reaching the destination network. (Hizmet türü, hedef ağa ulaşmayı engeller.)
12The Type of Service prevents achieving the destination host. (Hizmet Türü, hedef ana bilgisayara ulaşmayı engeller.)

ICMP Protokolüyle Ağ Sorunlarını Çözmek: SSS

Ping komutu aslında ICMP üzerinden nasıl çalışır?

Ping, bilgisayarınızdan hedefe bir ‘Echo Request’ (Yankı İsteği) fırlatır. Bu küçük bir veri paketidir. Hedef cihaz çalışıyorsa hemen ‘Echo Reply’ (Yankı Yanıtı) gönderir.
Arka planda ICMP devreye girer. İstek mesajını kapsüller ve ağa bırakır. Yanıtı alınca da size ‘cevap geldi’ diye rapor verir.
Bu sayede bir IP adresine erişip erişemediğinizi anında öğrenirsiniz. Gecikme süresini de milisaniye cinsinden görürsünüz. Ağınızın nabzını tutmak için harika bir araçtır.

Traceroute, ağdaki yönlendiricileri nasıl ifşa eder?

Traceroute kurnaz bir taktik kullanır. Gönderdiği paketlerin TTL (Yaşam Süresi) değerini 1’den başlatır. İlk yönlendirici TTL’yi 1 azaltır, sıfır olunca paketi öldürür.
Yönlendirici size bir ‘Time Exceeded’ (Süre Aşıldı) mesajı gönderir. İşte bu mesaj sayesinde o yönlendiricinin IP adresini öğrenirsiniz.
Sonra TTL’yi 2 yapar, bir sonraki yönlendiriciyi yakalar. Hedefe ulaşana kadar böyle devam eder. Sonuçta yol üzerindeki tüm cihazların listesini elde edersiniz.

Bir web sitesine ulaşamadığımda 'Destination Unreachable' hatası ne anlama gelir?

Bu mesaj, paketinizin hedefine varmasını engelleyen bir duvar olduğunu söyler. Sebebi birçok şey olabilir. Örneğin ağın kendisine ulaşamıyorsunuzdur ya da o bağlantı noktası kapalıdır.
ICMP, size tam olarak neyin yanlış gittiğini anlatan bir kod gönderir. Kod 0 ise ağa ulaşılamıyor. Kod 1 ise hedef ana bilgisayara ulaşılamıyor. Kod 3 ise o bağlantı noktasındaki uygulamaya erişemiyorsunuz.
Yönlendiriciniz veya güvenlik duvarınız bu mesajı üretir. Böylece sorunu teşhis etmek için ipucu yakalarsınız.

TTL değeri 0 olan bir pakete ne olur ve ICMP burada ne işe yarar?

Paket ağda dolaşırken her yönlendirici TTL değerini bir azaltır. Sıfıra indiğinde yönlendirici o paketi artık yolcu edemez. Onu hemen imha eder.
Ama iş bitmiyor. Yönlendirici, paketin sahibine bir ‘Time Exceeded’ mesajı gönderir. Bu mesajın içinde ‘TTL aşımı nedeniyle paketinizi attım’ der.
Bu mekanizma sonsuz döngüleri önler. Ağda kaybolan paketlerin gereksiz yere dolaşmasını engeller. Ayrıca size de rotanın nerede koptuğunu gösterir.

ICMP sadece hata mı bildirir, yoksa hataları düzeltebilir mi?

Net bir cevap vereyim: Bu protokol yalnızca rapor verir, asla onarmaz. O bir dedektiftir, tamirci değil.
Bir sorun algıladığında ilgili kaynağa ‘Şurada bir tuhaflık var’ diye mesaj yollar. Örneğin ‘Hedefe ulaşamıyorum’ ya da ‘TTL süresi doldu’ der.
Ancak bu mesajı alan uygulama veya yönetici ne yapacağına kendisi karar verir. ICMP paketi yeniden göndermez, rotayı değiştirmez. Sadece haberciliktir.

Ağınızda ICMP'yi tamamen engellemek neden kötü bir fikir olabilir?

Birçok güvenlik duvarı varsayılan olarak ICMP’yi bloklar. Ancak bu, ağ sorun gidermeyi imkansız hale getirir. Ping atamazsınız, traceroute çalıştıramazsınız.
Dahası, Path MTU Discovery gibi hayati mekanizmalar bozulur. Bu da büyük paketlerin parçalanmadan hedefe ulaşamamasına yol açar.
Bazı ICMP tiplerini (Echo, Destination Unreachable, Time Exceeded) kısmen izin vermek en iyisidir. Sadece ‘Redirect’ gibi potansiyel tehlikeli olanları engelleyin. Aksi halde karanlıkta el feneri olmadan dolaşmaya benzer.

Sonuç

ICMP protokolünü özetlemem gerekirse, IP iletişiminde hata & kontrol mesajları üretir. Böylece, ağ yapınızdaki ağ sorunlarını gidermede size yardımcı olur. Örneğin, Ping ve Traceroute gibi özellikleriyle ağdaki olası sorunları kolayca bulabilirsiniz.

Genellikle, ileri seviye sistem yöneticileri veya siz gibi kullanıcılar için ICMP protokolü önemlidir. Sonuç olarak, bu mesajların içeriğini bilmeniz önemlidir. Böylece, dijital dünyanızda network problemlerini çözerek güvenilirliği arttırırsınız.

Bu Rehberi Keşfettikleri İçin Sana Teşekkür Edecekler!

Sadece bir tıkla sevdiklerine dev bir iyilik yapmaya hazır mısın? Bilgi paylaştıkça devleşir.

İlk yorumu sen paylaş