Aracılığıyla paylaş


Paket kaybını tanılama

Bir ağ paketi hedeflenen hedefe ulaşmadığı her durumda paket kaybı oluşur. Bazı paket kayıpları normaldir ve her zaman daha üst düzey ağ sorunlarına neden olmaz. Diğer durumlarda paket kaybı performansı düşürebilir ve uygulama programlama arabirimlerinin (API' ler) veya uygulamaların başarısız olmasına neden olabilir.

Paket kaybını yakalama ve tanılama

Paket kaybı araştırması yürütürken ilk adım, genellikle pktmon komut satırı iş akışını kullanarak Paket İzleyicisi (Pktmon) izlemelerini yakalamaktır. Pktmon paket izlemelerini yakalayabilir, yerel paket kaybını belirli nedenlerle ve kod konumlarıyla ilişkilendirebilir ve paket kaybı istatistiklerini toplayabilir. Protokol düzeyinde davranışın Wireshark analiziyle birleştirildiğinde, pktmon izlemeleri birçok paket kaybı örneğinin kök nedenlerini belirlemek için yeterlidir.

Pktmon tanılamaları belirsizse, daha kapsamlı bileşen düzeyinde izlemeler sırasıyla istemci ve sunucu senaryoları için netsh.exe trace start scenario=InternetClient veya netsh.exe trace start scenario=InternetServer komutu kullanılarak yakalanabilir. Olaylar yakalandıktan sonra netsh.exe trace stop komutunu kullanarak izlemi durdurun. Bu bileşen seviyesindeki izler gürültülüdür ve net değildir, ancak sıklıkla yerel paket düşürülmeden önce veya sonra ek bağlam içerebilir. Uzak kayıp durumunda, yerel sistemin paket kaybı meydana geldiğini çıkardığını gösterebilirler. İzlemeler netsh.exe trace convert nettrace.etl kullanılarak metne dönüştürülebilir, Windows Performans Analiz Aracı'nda açılabilir veya başka bir Windows için Olay İzleme (ETW) aracıyla kullanılabilir.

Ağ arabirimi kartının (NIC) paket kaybının bir nedeni olduğundan şüpheleniliyorsa, atma sayaçlarını herhangi bir performans sayacı arabirimi veya Get-NetAdapterStatistics cmdlet'i aracılığıyla izleyebilirsiniz.

Yerel paket kaybının yaygın nedenleri

Yerel paket kaybı tamamen gözlemlenebilir ve çeşitli iç ve dış faktörlerden kaynaklanabilir.

  • Yerel ilke

    Denetleme yazılımı, örneğin Windows Güvenlik Duvarı gelen bağlantı girişimlerini reddettiği zaman uzak makinelerden gelen paketlerin varsayılan olarak bırakılmasına neden olabilir. Sistemdeki siber güvenlik veya kötü amaçlı yazılımdan koruma yazılımları da bu sorunlara neden olabilir.

  • Düşük kaynaklar

    Sistem veya yuvada paketi işlemek için gereken kaynaklar tükenirse paket bırakılır. Kaynak sınırlarına örnek olarak sistemin fiziksel belleği ve yuva gönderme veya alma arabellekleri verilebilir. Kaynak sınırına bağlı olarak, sistemin CPU'su tam alma arabelleğine yeterince hızlı tepki gösteremiyorsa, bu olaylar yalnızca mikrosaniye sürebilir.

  • ARP veya ND hatası

    Giden paketin sonraki atlama adresi Çözümleme Protokolü (ARP) veya komşu bulma (ND) isteklerine yanıt vermiyorsa, sonraki atlamaya gönderilen paketler yerel sisteme bırakılır. ARP veya ND paket kuyruğu sınırı aşılırsa paketler ARP veya ND işlemleri sırasında da bırakılabilir. ARP veya ND paketleri genellikle yerel olarak düşürülmez ve uzak paket kaybı kategorisine girer.

  • Yol yok

    Ağ katmanı hedefe doğru geçerli bir yol bulamazsa paketler bırakılabilir.

  • Geçersiz paket

    Paket üst bilgileri geçersizse paket bırakılabilir. Örneğin, paket başlıkları geçersiz bir alan değeri veya sağlama toplamı içeriyor.

Uzak paket kaybının yaygın nedenleri

Paket bırakıldığında uzaktaki paket kaybı yerel makinede doğrudan gözlemlenemez. İnternet Protokolü (IP) ve altındaki çoğu katman "en iyi çaba" ve güvenilir değildir. Uçtan uca ilke, paket kaybına dayanıklılık gerekiyorsa uç noktaların protokolleri içinde güvenilirlik uygulamasını gerektirir. Bazı senaryolarda ağ veya uzak uç nokta, kaybın nedenini belirten protokole özgü bir hata iletisi gönderir. Ancak çoğu durumda paket kaybının tek göstergesi yanıt eksikliğidir.

  • Tıkanıklık

    Kayıp odaklı tıkanıklık denetim algoritmaları, bir paket kaybedilene kadar daha hızlı ve daha hızlı veri gönderir. Algoritma kaybın tıkanıklık nedeniyle olduğunu çıkarsarsa yanıt gönderme hızını geçici olarak azaltır. Bu algoritmalar, geri bildirim sinyali sağlamak için az miktarda kayıp gerektirir.

  • Uzaktan çalışma politikası

    Ağ veya uzak makine paketleri kendi ilkesine göre bırakabilir.

  • Hedefe ulaşılamıyor

    Uzak makinenin uzak bağlantı noktasına bağlı bir yuvası yoksa, uzak makine çevrimdışıysa veya ağ uzak makinenin yolunu bulamazsa bu durum oluşabilir.

  • Oturum kaybı

    Ağ (durum bilgisi olan Ağ Adresi Çevirisi (NAT), güvenlik duvarları ve yük dengeleyiciler dahil) veya uzak makine sıfırlanırsa veya yakın zamanda bir paket almazsa, oturum bağlamı sona erebilir ve sonraki paketler bırakılır.

  • Maksimum İletim Birimi (MTU) düşüşleri

    Ürünün boyutu, uzak makinaya giden yol boyunca bir ağ bağlantısının en büyük iletim boyutunu aşarsa, MTU düşümleri bir hataya neden olabilir: İnternet Denetim İletisi Protokolü (ICMP) üzerinde fragmantasyon gerektiği veya ürün çok büyük.

Paket İzleyicisi izlemeleri örneği

Aşağıdaki komutları çalıştırın:

pktmon.exe start -c
pktmon.exe stop
pktmon.exe etl2txt PktMon.etl

Sonuçta elde edilen PktMon.txt dosyası aşağıdakine benzer satırlar içerir:

[30]0000.0000::<DateTime> [Microsoft-Windows-PktMon] Drop: PktGroupId 8444249301423149, PktNumber 1, Appearance 0, Direction Rx , Type IP , Component 49, Filter 1, DropReason INET: transport endpoint was not found , DropLocation 0xE000460A, OriginalSize 402, LoggedSize 148
       Drop: ip: 192.168.5.88.50005 > 192.168.5.68.50005: UDP, length 374

Bu bilgi, 50005 numaralı bağlantı noktasına hedeflenen gelen UDP paketinin bu porta bağlı yerel bir soket olmadığı için atıldığını gösterir.

Ağ Kabuk izleri örneği

Aşağıdaki komutları çalıştırın:

netsh.exe trace start scenario=InternetClient
netsh.exe trace stop
netsh.exe trace convert NetTrace.etl

Sonuçta elde edilen NetTrace.txt dosyası aşağıdakine benzer satırlar içerir:

[30]0000.0000::<DateTime> [Microsoft-Windows-TCPIP]TCPIP: Network layer (Protocol 1(ICMP), AddressFamily = 2(IPV4)) dropped 1 packet(s) on interface 13. SourceAddress = 192.168.5.68. DestAddress = 192.168.5.88. Reason = 9(Inspection drop). Direction = 0(Send). NBL = 0xFFFFE189BEAF3AC0.

Bu bilgiler, Windows Filtreleme Platformu (WFP) incelemesi nedeniyle giden ICMP paketinin bırakıldığını gösterir. WFP için bir sonraki adım, WFP canlı yayın sorun giderme adımlarını izlemektir.

Başka bir senaryoda, daha önce gönderilen bir TCP kesimi uzak uç nokta tarafından onaylanmıyor ve sonunda yerel bir yeniden aktarım zamanlayıcısı tetiklenerek TCP'nin kayıp olabilecek verilerin bir kısmını yeniden göndermesine neden oluyor:

[31]0000.0000::<DateTime> [Microsoft-Windows-TCPIP]TCP: Connection 0xFFFFE189BD811AA0 0(RetransmitTimer) timer has expired.
[31]0000.0000::<DateTime> [Microsoft-Windows-TCPIP]TCP: Tail Loss Probe Event Connection = 0xFFFFE189BD811AA0, Event = 2(TimerFired).
[31]0000.0000::<DateTime> [Microsoft-Windows-TCPIP]TCP: Tail Loss Probe Send Connection = 0xFFFFE189BD811AA0 SndUna = 2526318360, SndMax = 2526321759, SendAvailable = 3399, TailProbeSeq = 2526320299, TailProbeLast = 2526321759, ControlsToSend = 0, ThFlags = 16.
[31]0000.0000::<DateTime> [Microsoft-Windows-TCPIP]TCP: connection 0xFFFFE189BD811AA0 (local=192.168.5.68:55330 remote=6.6.0.27:443): TCP send event, SeqNo = 2526320299, BytesSent = 1460, CWnd = 18538, SndWnd = 197632, SRtt = 17631, RttVar = 4947, RTO = 300, RcvWnd = 65535, PacingRate = 0, State = 4(EstablishedState), CongestionState = 0, SndUna = 2526318360, SndMax = 2526321759, RecoveryMax = 0, RcvBufSet = 0(FALSE), MaxRcvBuf = 65535.
[31]0000.0000::<DateTime> [Microsoft-Windows-TCPIP]TCP: connection = 0xFFFFE189BD811AA0 send tracker marked a transmit as rexmit. Start = 2526320299, End = 2526321759, Timestamp = 467744252, InFlightCount = 2, SackedBytes = 0, BytesInFlight = 4859.
[31]0000.0000::<DateTime> [Microsoft-Windows-TCPIP]TCP: Connection 0xFFFFE189BD811AA0 0(RetransmitTimer) timer started. Scheduled to expire in 300 ms. Processor 31: LastInterruptTime 305324952689 100-ns ticks; LastMicrosecondCount 30532515324 msec

Daha fazla bilgi