Değerli arkadaşlar, merhaba! Bu yazımızda sizlere, Network camiasında önemli bir yere sahip olan 'ping' komutundan bahsedeceğiz.
Pencereleri kapalı, bomboş bir evde konuştuğunuzu hayal edin. Sesiniz size geri döner, öyle değil mi? Yani ortamda bir yankı söz konusudur. İşte, 'ping' dediğimiz bu komut tam olarak bu mantıkla çalışır. Siz, bir IP adresine 'ping' yolladığınız zaman ping yolladığınız IP adresi de size cevap verir. Yani örneğin birine 'merhaba' dediğinizde aslında ona ping atmış oluyorsunuz :).

Ağ bağlantılı bir aygıtın erişilebilir olup olmadığını görmek için bu komutu uygularız ve uygulanışı da yukarıdaki gibidir. 'ping' komutu, her işletim sisteminde çalışır. Zaten mantıksal açıdan baktığımız zaman farklı cihazların da erişilebilir olup olmadığını bilmemize olanak tanıdığı için öyle de olması gerekir. 'ping' komutu bize, parametre olarak verdiğimiz adresin çalışır durumda olup olmadığını, veri iletişimi yapıp yapamadığını gösterir. Bir aygıta veya adrese ping yolladığımızda aygıt çalışır durumdaysa arka arkaya bilgiler döndürülür. Yukarıda görselde bir alttaki komuta baktığımız zaman eski sitemize (artık çalışmıyor) 'ping' uyguladığımızı ve işlemin takılı kaldığını görüyoruz. Çünkü verdiğimiz parametreyi tutan aygıt çalışmıyor ve veri alışverişi yapılamıyor. Bunu, az önceki 'merhaba' olayıyla bağdaştırabilirsiniz. Örneğin, siz birine 'merhaba' diye mesaj attığınız zaman size cevap vermiyor veya veremiyorsa ping işlemi başarısız yani veri iletişimi başarısız; verebiliyorsa da ping işlemi başarılı yani veri iletişimi başarılıdır. Yukarıdaki komutu uyguladıysanız çıkmak için 'CTRL + C' kombinasyonunu kullanabilirsiniz.
Hemen yukarıdaki paragrafta "ping işlemi başarısızdır" şeklinde ifadeler kullandık çünkü mantığı anlamamız gerekiyordu. Ancak 'ping' işlemi başarısız oluduğunda bu, her zaman "bağlantı yok demek değildir". Birçok Firewall'da (örneğin NGFW) ping varsayılan olarak kapalıdır; bu yüzden ping atamıyor olabilirsiniz.
Elbette, az önce 'adres'ten bahsettik. Bu adresten kastımız bir web sitesinin ismi, IP adresi veya bir cihazın (sunucu, bilgisayar vb.) IP adresi de olabilir. İsterseniz bu sefer de google.com yazmak yerine onun IP adresini yazıp deneyelim.

Gördüğünüz gibi işlem çalıştı ve bize çeşitli bilgiler döndürüldü. Buradan şunu anlayabiliriz: "ping, aslında DNS çözümleme işini de yapar." Bu, isim ve IP adresi arasındaki ilişkiyi bilmiyorsanız yani bunun nasıl çalıştığını bilmiyorsanız DNS (Domain Name System) adlı blogumuzu okumanızda yarar vardır.
Biraz önce 'yankı'dan bahsettik. Aslında ping dediğimiz şey, bu işlemlerin hepsini iki paket ile sağlar. Bu paketlerden birinin ismi 'Echo Request Packet - Yankı İstek Paketi' iken diğerinin ismi 'Echo Reply Packet - Yankı Cevap Paketi' şeklindedir. Bir IP adresine ping attığınız zaman aslında 'Echo Request Packet' yollamış oluyorsunuz. Aynı şekilde IP adresi size bir yanıt verdiği zaman 'Echo Reply Packet' yollamış oluyor. Elbette, yanıt alamadığınız veya istek yollayamadığınız zaman bu paketler gönderilememiş veya yollanamamış oluyor. ping aslında basit bir uygulamadır; asıl marifet arkasındaki ICMP protokolündedir.

Yukarıdaki; ping işleminin, bir ağ analiz aracı ile analiz edilirkenki ekran görüntüsüdür. Dikkatli bakın; biz, 'ping <IP_adresi>' şeklinde bir komut verdiğimizde aslında DNS sorgusu yapmış olmuyor muyuz? Tabii ki. Dolayısıyla 'Protocol' kısmında DNS olduğunu görüyoruz. Satırı takip ederseniz şu yazıyı göreceksiniz: 'Standard query' yani 'Standart sorgu'. Evet, ping ile aslında bir sorgu yaptık.
Daha sonra ICMP kısmına bakalım. Az önce sözüne ettiğim 'Echo Request Packet' ve 'Echo Reply Packet' mevcut. İşte, ping işlemi arka tarafta böyle çalışır.
Peki, bir ping attığımız zaman bize dönen yanıtların içerisinde ne olduğuna bir bakalım. Aşağıdaki görsel ile açıklamalar arasındaki renk uyumuna lütfen dikkat edin.

En başta, yeşil kutu ile gösterdiğim kısımda alınan verinin büyüklüğünü görüyoruz. Kırmızı kutuda ise bize yanıt veren IP adresini görüyoruz. Mor kutuya geldiğimizde 'icmp_seq = 0' şeklinde yazılar görüyoruz. Bu, 'ICMP Sequence'den gelir ve anlamı 'ICMP Sırası' şeklindedir. Bu kısım, yolladığımız paketleri sayar ve bize gösterir. Turkuaz kısımda 'time =...' olarak gördüğümüz şey, bu alışverişin ne kadar sürdüğünü gösterir.
Sarı kısımda bulunan TTL (time to live), veri paketinin yaşama süresini ifade eder. Veri paketlerinin içerisine gömülmüş sayaç gibi bir mekanizma vardır. Yönlendiriciden her geçişinde bu değer birer birer azaltılır ve gittikçe sıfıra yaklaşır. Değer, sıfıra geldiğinde yani yaşam süresi dolduğunda bu veri paketi ağdan düşürülür (drop).
Elbette, birçok şeyde olduğu gibi 'ping' için de bazı özellikler mevcuttur. İhtiyacınız olduğunda bu bloga gelmek yerine size bunları görmenin kısa yolunu göstermek isterim.

Windows veya Linux fark etmez; terminal ekranına 'ping -?' şeklinde bir komut verdiğiniz zaman ping'e verebileceğiniz parametreleri ve bu parametrelerin ne işe yaradığını görebilirsiniz. İsterseniz bunlar İngilizce olduğu için bazılarını Türkçe'ye çevirelim ve uygulamasını görelim. Diğer komutları isterseniz araştırabilirsiniz.
/tNormal şartlarda bir adrese ping yolladığınız zaman 4 istek yollanır ve ping işlemi otomatik olarak sonlandırılır. Örnek:

Eğer siz, bir ağı veya bir cihazın kullanılabilirliğini sürekli olarak denetlemek zorundaysanız sürekli olarak aynı komutu çalıştırmanıza gerek yoktur; zaten bunu yapmak oldukça saçmadır. İşte, bunun için yapacağımız ping işlemine '/t' parametresini veriyoruz. Bu parametreyle beraber işlemimiz kesintiye uğramayacaktır. İşleme ihtiyacınız kalmadığında çıkmak için 'CTRL + C' kombinasyonunu kullanabilirsiniz.

Gördüğünüz gibi işleme müdahale etmediğim sürece devam edecektir.
Bu parametre genelde erişim sorunu çözerken kullanılır. Bildiğiniz gibi cihaza erişilemiyorsa terminal ekranına hiçbir şey yazdırılmaz, öylece bekler. Bir cihaza erişim sorunu yaşanırken siz, başka cihazlardan o cihaza '/t' parametresi ile ping yollayabilirsiniz. Bu durumda arızalı cihazdaki sorunu giderdiğinizde bu parametre çalışmaya başlayacaktır. Birkaç dakikada bir ping atmak yerine tek sefer bunu çalıştırıp sorunu çözmeye çalışabilirsiniz; sorun çözüldüğünde ping atılmaya başlanacaktır.
Bir sorunu çözmede kullanıldığını söyledik. Bununla beraber aslında bağlantının kalitesi de takip edilir. /t parametresi ile ping attığınızda paketler sürekli olarak gideceği için birkaç dakika beklenir. Bu bekleyiş sonrasında işlem durdurulur ve istatistik (statistics) kısmında '%0 loss' yazan yere bakılır. Eğer oradaki yüzde değeri (paket kaybı) 2'nin üstündeyse bir sorun olduğu kabul edilir.
/aBu parametre, ping yolladığınız IP adresinin host'unu yani barındırıldığı yeri (ana bilgisayarı) gösterir.

/nAz önce, ping işleminin 4 adet istek yaptığını ve otomatik olarak sonlandığını belirtmiştik. Bu parametre ile, kaç adet paket göndermek istediğinizi belirtebilirsiniz. Kullanımı aşağıdaki gibidir; parametreyi yazdıktan sonra bir boşluk bırakıp kaç paket yollayacaksanız o sayıyı yazmanız gerekir.

/lBu parametre ise az önce bahsettiğimiz 'paketin boyutu' ile alakalıdır. Az önce '64 bytes' olarak geçiyordu ama biz bunu değiştirebiliriz.

Gördüğünüz gibi artık 1000 baytlık paket yollayabiliyoruz. Elbette, bu parametreleri tek tek kullanacaksınız diye bir şey söz konusu değildir. İç içe de kullanabilirsiniz:

ping /n 10 /l 1000 google.com komutunu verdiğimizde bu komut; yukarıdaki gibi her biri 1000 bayttan oluşan 10 adet paket yollayacaktır.
>'Matematikteki 'büyüktür' işareti ile ping sonuçlarını istediğiniz dosyaya yazdırabilirsiniz.

Gördüğünüz gibi klasik 'ping google.com' komutunu verdikten sonra büyüktür işaretini koyuyoruz ve içine yazdırmak istediğimiz dosyanın lokasyonunu veriyoruz.
Yayınlanma Tarihi: 2022-08-22 16:43:14
Son Düzenleme Tarihi: 2022-11-18 23:05:06