Gecikme (Latency) Nedir ve Neden Ping ile Aynı Değildir
Gecikme, bir paketin kaynaktan hedefe ve tekrar kaynağa dönüşünün toplam süresidir. Birimi milisaniyedir (ms). "Ping'im 40" dediğinde aslında RTT'yi (Round-Trip Time) söylüyorsundur, tek yönlü gecikmeyi değil. Tek yönlü gecikme genellikle RTT'nin yarısıdır, ancak asimetrik yollarda bu kural bozulur; gidiş yolu bir operatörden, dönüş yolu başka bir operatörden geçer.
Ölçmek için paket sayısını belirten -c bayrağıyla ping kullan:
ping -c 10 8.8.8.8
Çıktı min/avg/max değerlerini içerir. min değerine değil, avg değerine bak. Minimum gecikme her zaman yanıltıcıdır; ortalama, yolun gerçek durumunu gösterir.
Yerel ağda 1 ila 20 milisaniyelik gecikme normaldir. Uluslararası bir yolda 100 milisaniyenin üzeri, trafiğin doymuş bir yoldan veya çok uzun mesafeli fiber optik hattan geçtiği anlamına gelir. Fiberde ışık gecikmesi kilometre başına yaklaşık 5 mikrosaniyedir; bu nedenle Tahran'dan Frankfurt'a, yaklaşık 4000 kilometre, fiziksel minimum RTT 40 milisaniyedir. Bundan çok daha düşük herhangi bir değer, daha doğrudan bir yol veya eksik bir ölçüm demektir.
İşte burada hata yaparlar: Yüksek gecikmeyi düşük bant genişliğiyle karıştırırlar. 200 milisaniye gecikme ve 100 megabit/sn bant genişliğiyle 100 megabaytlık bir dosyayı indirmek yaklaşık 8 saniye sürer. Aynı dosya, 5 milisaniye gecikme ve 1 megabit/sn bant genişliğiyle 800 saniye sürer. İki tamamen farklı sorun, iki farklı çözüm.
Bant Genişliği ve Verim: Satıcının Söylediği Sayı ile Aldığın Sayı Farklıdır
Bant genişliği (Bandwidth), yolun teorik maksimum kapasitesidir ve saniyedeki bit (bps) cinsinden ölçülür. Verim (Throughput), gerçekte taşınan miktardır. Bu ikisi arasındaki fark, protokollerin ek yükünden (overhead) kaynaklanır: TCP üç kez handshake yapar, her paketin başlığı (header) vardır ve ACK geri döner.
Bir kural: Bir bağlantıda gerçek TCP verimi genellikle nominal bant genişliğinin %80 ila %90'ıdır. Hizmetin 10 megabit/sn ise ve indirmen 1,2 megabayt/sn (9,6 megabit) ile gerçekleşiyorsa, her şey yolunda demektir. Hassas ölçüm için iperf3 kullan:
iperf3 -c server_ip -t 30
-t bayrağı test süresini belirtir. Otuz saniye adil bir minimumdur; daha kısa testler TCP yavaş başlangıcından (slow start) etkilenir ve düşük sayı gösterir.
Birimleri ciddiye al. Megabit (Mb) ile megabayt (MB) farklıdır; katsayı 8'dir. Sağlayıcılar neredeyse her zaman megabit söyler, indirme araçları megabayt gösterir. İndirme hızın 12,5 megabayt/sn ise, 100 megabit/sn hızın var demektir.
Atlama (Hop) Neden Önemlidir ve Gecikmeyle İlgisi Nedir
Atlama, bir paketin bir yönlendiriciden (Router) geçmesidir. Her atlama gecikme ekler; şehir içi yollarda genellikle 1 ila 5 milisaniye, uluslararası yollarda daha fazla. traceroute aracı (Windows'ta tracert) yolu gösterir:
traceroute -n example.com
-n bayrağı ters DNS sorgusunu engeller ve çıktıyı hızlandırır. Her satır bir atlamadır. Üç yıldız (* * *), o yönlendiricinin ICMP'ye yanıt vermediği anlamına gelir; bu mutlaka bir sorun değildir, bazı yönlendiriciler kasıtlı olarak yanıt vermez.
Atlama sayısı tek başına bir sorun değildir. Sorun, belirli bir atlamanın gecikmesinin aniden 5'ten 150 milisaniyeye sıçramasıdır. O nokta, darboğazdır. Son atlamayı değil, ani sıçrama olan ilk atlamayı ara.
MTU: Yanlış Ayarlarsan Paketler Sessizce Kaybolur
MTU (Maximum Transmission Unit), veri bağlantısı katmanındaki bir çerçevenin maksimum boyutudur ve bayt cinsindendir. Ethernet'te standart değer 1500 bayttır. PPPoE'de (İran'daki birçok ADSL ve fiber bağlantının kullandığı) bu sayı 1492 olur; 8 baytlık PPPoE başlığı bundan düşülür.
Yolun MTU'su, arayüzünün MTU'sundan küçükse iki şey olur: Büyük paketler parçalanır (Fragmentation) veya DF (Don't Fragment) bayrağı etkinse atılır ve "Fragmentation Needed" ICMP mesajı geri döner. Birçok güvenlik duvarı bu mesajı yutar ve sonuç, sayfaları açan ancak indirme veya yüklemenin kilitlendiği bağlantılardır.
Uygun MTU'yu bulmak için -M do (Linux'ta) ve payload boyutu için -s bayraklarıyla ping kullan:
ping -M do -s 1472 -c 5 8.8.8.8
1472 bayt payload + 28 bayt IP/ICMP başlığı = 1500 bayt. Yanıt alırsan, yol MTU'su 1500'tür. Almazsan, yanıt alana kadar sayıyı azalt. İşte burada hata yaparlar: "Tedbir için" MTU'yu 1400'e ayarlarlar. Sonuç, bant genişliğinin %6'sının boşa harcanması ve her pakette daha fazla gecikmedir. MTU'yu ölçerek belirle, gelişigüzel değil.
NAT ve Proxy'den Farkı: İkisi de IP'yi Değiştirir, Ama Benzer Değiller
NAT (Network Address Translation), paketin kaynak veya hedef adresini yönlendiricide değiştirir. En yaygın biçimi, binlerce dahili cihazı tek bir genel IP arkasında gizleyen NAT overload veya PAT'tir. Yönlendiricideki NAT tablosu, Dahili IP:port eşlemesini Genel IP:port olarak tutar.
Proxy ise daha üst katmanda çalışır. Proxy, senin yerine hedefe yeni bir bağlantı kurar; hedef, senin IP'ni değil, proxy'nin IP'sini görür. NAT yalnızca adresi yeniden yazar, ancak bağlantıyı yine istemci kurar.
Pratik fark şudur: NAT, özel modüller (PPTP için nf_conntrack_pptp gibi) olmadan TCP/UDP dışındaki protokoller için çalışmaz. Proxy, HTTP gibi uygulama katmanı protokollerini anlayabilir, önbelleğe alabilir ve filtreleyebilir. Bu nedenle ev yönlendiricisinde NAT yeterlidir, ancak kurumlarda proxy kullanılır.
NAT ile çalışıyorsan ve dışarıdan bir hizmetin dahili bir cihaza ulaşması gerekiyorsa, Port Yönlendirme (Port Forwarding) gereklidir. Linux'ta nftables ile:
nft add rule nat prerouting dnat to 192.168.1.100:8080
Bu kural, 80 numaralı porta gelen trafiği dahili cihazın 8080 numaralı portuna yönlendirir. Bu satır olmadan, gelen paket kimsenin beklemediği bir hedefe ulaşır ve atılır.
DNS: İlk Bozulan ve En Son Kontrol Edilen
DNS (Domain Name System), alan adını IP'ye dönüştürür. A kaydı IPv4 içindir, AAAA IPv6 içindir, MX e-posta sunucusu içindir ve CNAME takma ad içindir. "Site açılmıyor" dediğinde, her şeyden önce DNS'i kontrol et.
dig aracı en hassas çıktıyı verir:
dig example.com A +short
+short bayrağı yalnızca nihai yanıtı gösterir. Çıktı boşsa, kayıt yoktur veya TTL süresi dolmuştur ve DNS sunucusunun yanıtı yoktur. TTL (Time To Live), kayıt önbelleğinin geçerlilik süresidir ve saniye cinsindendir. Kısa TTL (300 saniye) hızlı değişiklikler için iyidir ancak DNS sunucusuna daha fazla yük bindirir.
İşte burada hata yaparlar: DNS kaydını değiştirdikten sonra dig ile yanıt alırlar ancak tarayıcı hâlâ eski sayfayı gösterir. Tarayıcının ve işletim sisteminin DNS önbelleğini unuturlar. dig doğrudan DNS sunucusuna gider ve yerel önbelleği atlar; tarayıcı kendi önbelleğini kullanır. İki farklı yol, iki farklı sonuç.
Sıkça Sorulan Sorular
Ping ve gecikme arasındaki fark nedir?
Ping hem bir araçtır hem de gecikme için kullanılan günlük bir terimdir. ping çıktısı, tam gidiş-dönüş olan RTT değerini gösterir. Tek yönlü gecikme genellikle RTT'nin yarısıdır, ancak asimetrik yollarda bu oran geçerli değildir.
İran interneti için uygun MTU nedir?
Bağlantın PPPoE ise (çoğu ADSL ve ev tipi fiber), 1492 bayt. Doğrudan Ethernet bağlantısıysa, 1500 bayt. Linux'ta ping -M do -s 1472 komutuyla yolun tam değerini bulabilirsin. Gerekenden düşük MTU, bant genişliğini boşa harcar.
traceroute neden yıldız gösteriyor?
Yıldız, o yönlendiricinin ICMP paketine yanıt vermediği anlamına gelir. Bazı yönlendiriciler güvenlik nedenleriyle yanıt vermez veya ICMP trafiğini sınırlandırır. Sonraki atlamalar yanıt veriyorsa, sorun yanıt vermeyen yönlendiricide değildir.
NAT interneti yavaşlatır mı?
NAT'ın kendisi gözle görülür bir gecikme eklemez; adres yeniden yazma mikrosaniye düzeyindedir. Ancak zayıf bir yönlendiricide binlerce eşzamanlı bağlantıyla NAT tablosunu tutmak CPU'yu doyurabilir ve gecikmeye neden olabilir. Sorun donanımdadır, NAT'ta değil.
Destek ekibine bilet göndermeden önce ping ve traceroute çıktılarını hazırla. Bu iki çıktı, sorun gidermenin yarısını tamamlamıştır. Bu komutları çalıştırmak ve gerçek senaryoları test etmek için bir ortam arıyorsan, ServerNet Linux hosting pratik ve ölçüm için uygun bir zemindir. Diğer kılavuzları dokümantasyon ve bilgi tabanında bulabilirsin.