ICMP (Internet Control Message Protocol/Internet Denetim İletisi Protokolü), hata bildirimi ve Internet Protokolü’nün (IP) kontrolü için alt protokoldür. Bu nedenle, örneğin belirli bir hizmetin mevcut olmadığını veya bir yönlendiricinin veya ana bilgisayarın bulunamadığını belirten hata mesajları göndermek için kullanılır.

ICMP, TCP ve UDP‘nin amaçlarından farklıdır, çünkü genellikle ağdaki kullanıcı uygulamaları tarafından doğrudan kullanılmaz. Tek istisna, bir ana makinenin kullanılabilir olup olmadığını, paketlerin o ana makineye gidip gelmesi için geçen süreyi ve içinden geçen ana bilgisayar sayısını belirlemek için Yankı ICMP istek mesajları gönderen Ping ve Traceroute aracıdır.

Nasıl Çalışır?

ICMP, IP protokol paketinin bir parçası olduğu gibi ve RFC 792’de tanımlandığı gibidir. ICMP iletileri, IP Datagrams’daki hatalara yanıt olarak veya tanılama ve yönlendirme için yaygın olarak oluşturulur. IPv4 için ICMP sürümü ICMPv4 olarak da bilinir. IPv6’nın eşdeğer ICMPv6 protokolü vardır. ICMP iletileri ağ katmanı düzeyinde oluşturulur. IP, uygun ICMP iletisini yeni bir IP üstbilgisiyle (gönderen orijinal ana bilgisayardan yanıt iletileri almak için) içine alır ve elde edilen datagramı her zamanki gibi iletir.

Örneğin, bir IP datagramı ileten her yönlendiricinin IP başlığının TTL (time to live/yaşam süresi) alanını bir birim azaltması gerekir; TTL 0’a ulaşırsa, datagramın kaynağına bir ICMP “Time to Live to Transmit/Gönderme Süresi” mesajı gönderilir. Her ICMP mesajı doğrudan tek bir IP veri biriminde kapsüllenir ve bu nedenle ICMP iletimini garanti etmez. ICMP iletileri standart IP datagramlarında yer almasına rağmen, ICMP iletileri, IP IP protokolü işleme gibi, normal IP işlemenin özel bir durumu olarak işlenir. Çoğu durumda, ICMP iletisinin içeriğini denetlemek ve ICMP iletisinin gönderilmesini isteyen orijinal IP paketini oluşturan uygulamaya uygun hata iletisini göndermek gerekir.

ICMP protokolünün faydası, bir paketin ömrü dolduğunda hedefine ulaşıp ulaşamayacağını kontrol etmektir. Yani, ağ sistemleri için gerekli olan hata ve kontrol mesajlarını işlemek için kullanılır, orijinal kaynağı onlarla algılanır, böylece algılanan sorunu önler veya düzeltir.

Ortak ağ yardımcı programlarının çoğu ICMP iletilerine dayanır. Traceroute komutu, başlıkta özel TTL IP alanlarına sahip UDP datagramlarının iletilmesi ve yanıt olarak oluşturulan “Time to Live in Transit” ve “Destination Unreachable” mesajlarının aranmasıyla uygulanır. Ping aracı ICMP “Echo request” ve “Echo reply” mesajları kullanılarak uygulanır.

Protokol Biçimi

İzin verilen kontrol mesajlarının listesi:

0 – Echo Reply

1 – Reserved

2 – Reserved

3 – Destination Unreachable

4 – Source Quench

5 – Redirect Message

6 – Alternate Host Address

7 – Reserved

8 – Echo Request

9 – Router Announcement

10 – Router Request

11 – Time Out

12 – Parameter Problem

13 – Timestamp

14 – Timestamp Response

15 – Request for Information

16 – Information Response

17 – Request for Address Mask

18 – Address Mask Response

19 – Reserved for security

20-29 – Reserved for robustness experiments

30 – Traceroute

31 – Datagram Conversion Error

32 – Mobile Host Redirection

33 – IPv6

34 – IPv6

35 – Mobile Registration Request

36 – Mobile Registration response

37 – Domain Name Request

38 – Domain Name Response

39 – SKIP Discovery Algorithm Protocol

40 – Photuris, Security Bugs

41-255 – Reserved

ICMP parametlerinin tam listesi için IANA’nın yayınladığı listeye göz atabilirsiniz.

Ping Nasıl Kullanılır?

Windows XP, Windows 7, Windows 8, Windows 8.1 ve Windows 10 üzerinde CMD komut istemini kullanarak Ping’i kullanabilirsiniz. Ping’in kullanımı için aşağıdaki adımları sırasıyla takip ediniz.

Adım 1

Öncelikle, sisteminizde Windows tuşuna basılı tutarak R’ye basınız ve Çalıştır‘ı açınız.

Adım 2


Çalıştır penceresinde Aç kısmına cmd yazınız ve Tamam butonuna tıklayınız.


Adım 3


CMD (Command Prompt) komut istemi aşağıdaki görüntüdeki gibidir.


Adım 4


ADSL modeminizin IP adresini pinglemek için, CMD üzerinde ping 192.168.1.1 yazınız ve Enter‘a basınız. Buradaki varsayılan ağ geçidi IP adresiniz farklı olabilir.


Test aşağıdaki görüntüdeki gibi başarılı ise, ağınız üzerinde ADSL modeminize bağlantınız var demektir.


( 0% loss ) çıktısı paketlerin sorunsuz bir şekilde iletildiğini bildirir. Bytes=32 yazan kısım ise, Ping’in varsayılan olarak 32 Byte paket gönderdiğini gösterir.


Adım 5 | Destination Host Unreachable (Hedef Makine Ulaşılamaz) Nedir?


Ağ üzerinde Down olmuş bir istemciyi pinglediğinizde Destination Host Unreachable (Hedef Makine Ulaşılamaz) mesajı alacaksınız. Hedef Makine Ulaşılamaz mesajının başlıca sebepleri şunlardır:


Hedef makine Down olduğunda Hedef Makine Ulaşılamaz hatası alırsınız.


Hedef makinenin TCP/IP yapılandırmasında bir hata olduğunda Hedef Makine Ulaşılamaz hatası alırsınız.


Hedef ağı bulduğunda fakat hedef istemciyi bulamadığında Hedef Makine Ulaşılamaz hatası alırsınız.




Adım 6 | Request Timed Out (İstek Zaman Aşımına Uğradı) Nedir?


Aynı ağ üzerinde olmayan bir istemciye Ping attığınızda Request Time Out (İstek Zaman Aşımına Uğradı) hatası alacaksınız. Örneğin, 192.168.1.0/24 ağındaki tüm istemcilere başarılı bir şekilde pingliyorsunuz fakat 192.168.2.0/24 ağındaki bir istemciye pingleyemiyor ve Request Time Out (İstek Zaman Aşımına Uğradı) hatası alıyorsanız, bu durum hedefe kesinlikle erişemediğiniz anlamına gelir.


Request Time Out (İstek Zaman Aşımına Uğradı) hatasının başlıca nedenleri şunlardır:


Hedef Down olduğunda İstek Zaman Aşımına Uğradı hatası alırsınız.


Hedef istemci belli fakat yinede pingleyemiyorsanız, Router üzerinde Routing (Yönlendirme) protokolü hatasından dolayı İstek Zaman Aşımına Uğradı hatası alırsınız.


Hedef üzerinde kurulu bir Firewall (Güvenlik Duvarı) varsa, ICMP paketlerini engellediği için İstek Zaman Aşımına Uğradı hatası alırsınız.




Adım 7 | Web Sitesine Ping Nasıl Atılır?


Bir web sitesini pinglemek çok kolaydır. Web sitesinin bağlantısını sınamanın amacı, onun online olup olmadığını kontrol etmektir. Aynı şekilde, CMD komut istemini açınız ve pinglemek istediğiniz bir web sitesini belirledikten sonra, aşağıdaki komutu yazınız ve Enter‘a basınız.


Aşağıdaki görüntüyü incelediğinizde websitesine başarılı bir şekilde erişilebiliyor olduğunu görebilirsiniz.


Linux Üzerinde Ping Nasıl Atılır?


Linux tabanlı Ubuntu, Fedora, Linux Mint, Debian, Kali Linux gibi işletim sistemleri üzerinde de pingleme oldukça kolaydır. Ve Windows sistemlerinde yaptığınız işlem ile aynıdır.


Linux/Ubuntu’da Ping atmak için Ctrl + Alt + T tuşlarına birlikte basarak Terminal’i açınız. Terminal’de aşağıdaki komutunu uygulayınız.


Aynı zamanda Linux üzerinde bir web sitesini pinglemek o websitesinin adını yazmanız yeterlidir.


Bir başka örnek ise paket sayısını belirlemektir. Komuta [ -c sayı ] komutunu ekleyerek hedefe gönderilecek paket sayısını belirleyebilirsiniz.


macOS Üzerinde Ping Nasıl Atılır?


MacBook veya iMac üzerinde çalışan macOS Sierra / macOS High Sierra üzerinde Ping atmak için iki farklı yöntem vardır. İlk yöntem macOS üzerinde Terminal kullanmaktır. İkinci yöntem ise, macOS’un Network Utility aracını kullanmaktır.


macOS üzerinde Terminal üzerinden pinglemek için öncelikle Terminal’i açınız. Terminal’i açmak için Windows Tuşu + Space (Boşluk) Tuşu’na birlikte basınız. Arama kutusuna terminal yazarak programı bulunuz ve çalıştırınız.


Terminal’i açtıktan sonra, ping 192.168.1.1 komutunu kullanarak IP adresini sürekli pingleyebilirsiniz.


Sadece belirlediğiniz sayıda bir IP adresine veya web sitesini pinglemek [ -c + sayı ] komutunu ekleyebilirsiniz.


macOS üzerinde Network Utility programını kullanarakta bir IP adresine veya web sitesinin bağlantısını sınayabilirsiniz. Arama kutusuna network utility yazınız ve programı bulunuz ve açınız.


Ping sekmesine tıklayınız ve aşağıdaki görüntüdeki gibi gerekli alanları doldurduktan sonra Network Utility ile Ping komutunu kullanabilirsiniz.


Güncelleme (19 Haziran 2018): Yukarıdaki adımları takip ederek macOS Mojave 10.14 üzerinde de herhangi bir websitesine veya IP adresini pingleyebilir ve ağ bağlantısını test edebilirsiniz!