Ping ve traceroute nedir? Bağlantı sorunlarını teşhis etme
İnternet yavaşladığında ya da bir siteye ulaşamadığınızda sorunun nerede olduğunu bulmak için iki basit komut işe yarar: ping ve traceroute.
Ping nedir?
Ping, hedef adrese küçük bir ICMP "echo" isteği gönderir ve yanıtın ne kadar sürede geldiğini ölçer. Örnek kullanım: ping example.com. Çıktıda her yanıt için milisaniye (ms) cinsinden süre görürsünüz.
Çıktıyı okumak
- Süre (time): Düşük olması iyidir. Aynı ülkedeki bir sunucuya genellikle birkaç ile birkaç on ms arasında yanıt gelir. Uzak kıtalara bu süre yüzlerce ms'ye çıkabilir.
- Paket kaybı: Gönderilen isteklerden yanıtsız kalanların oranıdır. Düzgün bir bağlantıda sıfıra yakın olmalıdır. Sürekli kayıp, Wi-Fi sorununa ya da hat sorununa işaret edebilir.
- Dalgalanma: Süreler çok değişiyorsa bağlantı kararsızdır. Bu özellikle görüntülü görüşme ve oyunlarda hissedilir.
Bir hedefin ping'e yanıt vermemesi onun kapalı olduğu anlamına gelmez. Birçok sunucu ve güvenlik duvarı ICMP isteklerini bilerek yanıtsız bırakır.
Traceroute nedir?
Traceroute, paketlerin hedefe giderken hangi ara düğümlerden (yönlendiricilerden) geçtiğini gösterir. Windows'ta komut tracert example.com, macOS ve Linux'ta traceroute example.com'dur.
Her IP paketinin bir TTL (yaşam süresi) değeri vardır ve her yönlendirici bunu bir azaltır. Değer sıfıra inince yönlendirici paketi atar ve göndericiye haber verir. Traceroute, TTL değerini 1, 2, 3 diye artırarak her adımda bir yönlendiricinin cevap vermesini sağlar ve böylece yolu çıkarır.
Çıktıyı okumak
- Her satır bir "atlama" (hop) demektir. Satırda o düğümün adresi ve birkaç ölçüm süresi bulunur.
*işareti o düğümün yanıt vermediğini gösterir. Tek bir yıldızlı satır sorun değildir, birçok yönlendirici bu istekleri yanıtlamaz. Son hedefe kadar tüm satırlar yıldızsa yolun bir yerde kesildiğine ya da filtrelendiğine işaret edebilir.- Sürenin bir adımda ani yükselip sonraki adımlarda yüksek kalması, yavaşlamanın o noktada başladığını gösterir.
Ping çıktısını okumak
$ ping -c 4 example.com
PING example.com (93.184.216.34): 56 data bytes
64 bytes from 93.184.216.34: icmp_seq=0 ttl=56 time=18.4 ms
64 bytes from 93.184.216.34: icmp_seq=1 ttl=56 time=17.9 ms
64 bytes from 93.184.216.34: icmp_seq=2 ttl=56 time=19.1 ms
64 bytes from 93.184.216.34: icmp_seq=3 ttl=56 time=18.2 ms
--- example.com ping statistics ---
4 packets transmitted, 4 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 17.9/18.4/19.1/0.4 ms
Buradaki önemli değerler şunlardır:
- time: Paketin gidip dönmesinin milisaniye cinsinden süresi (gecikme).
- ttl: Paketin ömrü. Her yönlendirici bu değeri bir azaltır, sıfıra inerse paket atılır. Bu mekanizma paketlerin ağda sonsuza kadar dolaşmasını engeller ve traceroute'un da dayanağıdır.
- packet loss: Kaybolan paketlerin yüzdesi. Sağlıklı bir bağlantıda %0 olmalıdır. Sürekli kayıp, Wi-Fi sorunu ya da hat sorunu işaretidir.
- stddev ya da min/max farkı: Gecikmenin ne kadar oynadığını (jitter) gösterir. Oyun ve görüntülü görüşme için düşük ve istikrarlı olması gerekir.
Genel olarak aynı şehirdeki sunuculara birkaç ile on milisaniye, aynı kıtadaki sunuculara on ile elli, kıtalar arası sunuculara ise yüz ile üç yüz milisaniye arası süre normaldir. Bu değerler yalnızca kaba bir rehberdir.
Adım adım teşhis
- Kendi cihazınız:
ping 127.0.0.1. Yanıt yoksa ağ yığınında sorun var demektir. - Modem: Genellikle
192.168.1.1ya da192.168.0.1. Yanıt yoksa Wi-Fi ya da kablo bağlantınızda sorun vardır. - İnternetteki bir adres:
ping 1.1.1.1. Yanıt varsa internet erişiminiz çalışıyordur. - Bir alan adı:
ping example.com. Önceki adım çalışıp bu adım çalışmıyorsa sorun DNS'tedir.
Bu dört adım, "internetim yok" şikâyetinin hangi katmanda olduğunu çoğu zaman iki dakikada gösterir.
Traceroute nasıl çalışır?
Traceroute, TTL değeri 1 olan bir paket gönderir. İlk yönlendirici TTL'yi sıfıra düşürüp paketi atar ve size "süre doldu" mesajı yollar. Böylece ilk adımın adresini öğrenirsiniz. Sonra TTL 2 olan paket gönderilir, ikinci yönlendirici cevap verir, ve böyle hedefe ulaşana kadar sürer. Windows'ta komut tracert example.com, macOS ve Linux'ta traceroute example.com şeklindedir.
Çıktının her satırı bir adımdır. Her adım için genellikle üç ölçüm görürsünüz. Yıldız (*) o adımdan cevap alınamadığını gösterir. Bir ya da iki satırda yıldız görmek normaldir, çünkü birçok yönlendirici bu tür sorgulara cevap vermeyecek şekilde ayarlıdır. Sorun, yıldızların hedefe kadar devam etmesi ya da gecikmenin belli bir adımdan sonra kalıcı olarak yükselmesidir.
Çıktıdan yanlış sonuç çıkarmamak
- Ortadaki bir adımda yüksek gecikme ve sonrasında düşük gecikme sorun değildir. Yönlendiriciler kendilerine yönelik ICMP isteklerine düşük öncelik verir. Önemli olan hedefe giden son adımlardaki gecikmedir.
- Hedef ping'e cevap vermiyorsa hedef kapalı olmayabilir. Birçok sunucu ve güvenlik duvarı ICMP'yi engeller. Böyle bir sitede ping çalışmazken web sayfası açılır.
- Yollar her seferinde aynı olmak zorunda değildir. Yük dengeleme nedeniyle ardışık ölçümlerde farklı yönlendiriciler görebilirsiniz.
Daha güçlü araçlar
macOS ve Linux'ta mtr aracı ping ve traceroute'u birleştirir ve her adımdaki kaybı ve gecikmeyi sürekli güncelleyerek gösterir. Windows'ta benzer işi pathping yapar. Bir sağlayıcıya sorun bildirirken bu araçların çıktısını eklemek, destek ekibinin sorunu çok daha hızlı bulmasını sağlar. Ayrıca ağ yolunun hangi sağlayıcılardan geçtiğini ve kaç kez yurt dışına çıktığını görmek için adres sahiplerine bakmak ilginç bir inceleme olur: IP konumu yazısındaki sınırlamaları akılda tutun.
Sık sorulan sorular
Ping atmak yasal mı, zararlı mı?
Birkaç ping göndermek tamamen normal bir tanı işlemidir. Ancak başka birinin sunucusuna sürekli ve yüksek hacimde paket göndermek, hizmeti aksatabilir ve izinsiz yapılırsa sorun yaratabilir.
İyi bir ping değeri kaç ms olmalı?
Oyun için yakın sunucularda 50 ms altı genellikle rahat sayılır. Görüntülü görüşme ve günlük gezinme için 100 ms'ye kadar sorun olmaz. Ama değerin istikrarlı olması, tek bir sayıdan daha önemlidir.
Basit bir teşhis sırası
- Önce modeminize ping atın (çoğunlukla
192.168.1.1). Yanıt yoksa sorun cihazınız ile modem arasındadır, örneğin Wi-Fi. - Sonra
1.1.1.1adresine ping atın. Yanıt geliyorsa internet bağlantınız çalışıyordur. - Son olarak bir alan adına ping atın. Adres yanıt veriyor ama alan adı çözülmüyorsa sorun DNS tarafındadır. Bu durumda DNS sunucusunu değiştirmeyi deneyebilirsiniz.
Alan adının hangi adrese çözüldüğünü görmek için sitemizdeki DNS aracını kullanabilirsiniz.