Yinelenen ACK kayıtlarının nedeni nedir?


19

Birden fazla yinelenen ACK kaydı gösteren birkaç istemci makineden gelen Wireshark yakalamalarını inceliyoruz, bu da daha sonra yeniden iletimi ve sıra dışı paketleri tetikliyor.

Bunlar aşağıdaki ekran görüntüsünde gösterilmiştir. .26 istemci ve .252 sunucudur.

resim açıklamasını buraya girin

Yinelenen ACK kayıtlarının nedeni nedir?

Yardımcı olursa daha fazla arka plan:

Belirli bir müşteri sitesinde ağ verimi endişelerini araştırıyoruz. Kullanıcı arabirimi perspektifinden algılanan sorun, yetersiz 1 gbps WAN bağlantısına rağmen verilerin yavaş aktarılmasıdır.

İstemci makinelerinin neredeyse tamamı aynı soruna sahiptir ve 20'den fazla makinede test edilmiştir. Sorunu olmayan iki makine bulduk. Konfigürasyonlarında neyin farklı olduğunu belirleme sürecindeyiz. Problemi olmayan iki makinede sadece en fazla bir kez yinelenen ACK kaydı gördük. Sorunu olan makinelerde genellikle üç adet yinelenen ACK kaydı bulunur. Önemli bir fark, iyi çalışan makinelerin hepsinin ağ operasyonları ekibinin üyelerine ve diğer makinelerin hepsinin "düzenli" çalışanlara ait olmasıdır. Makinelerin standart olması gerekiyordu, ancak ağ yöneticileri yerel sistemlerinde değişiklik yapmış olabilirler, bu da araştırdığımız başka bir özelliktir.

Sunucuda TcpMaxDupAcks ayarını değiştirmeyi denedik, ancak gerçekten ihtiyacımız olan değer 5 ve geçerli aralık sadece 1-3.

Sunucu Windows Server 2003'tür. İstemcilerin tümü kurumsal olarak yönetilen Windows XP'dir. İki çalışan da dahil olmak üzere tüm istemcilerde Symantec virüsten koruma yazılımı yüklüdür.

Bu, bu sorunu sergileyen yüzlerce kişinin tek istemci sitesidir.

pathping sorunlu makinelerde bile 56ms RTT ve tutarlı 0/100 paket kaybı gösterir.

Teşekkürler,

Sam


İki uç nokta arasında ne tür bir yönlendirme anahtarlama donanımı vardır?
SpacemanSpiff

@SpacemanSpiff, bir Cisco ASR 1006 yönlendirici var.
Sam

BT personeli ve müşterileri aynı anahtarlama ekipmanında mı? Makinelerinden birini BT alanına götürebilir ve sorunun ortadan kalktığını görebilir misiniz?
SpacemanSpiff

Yanıtlar:


25

Not: Bu yakalamanın istemci makinede alındığını varsayıyorum.

TCP sıralama hakkında kısa bir özet: TCP, iki uygulama arasında güvenilir bir şekilde bayt akışı sağlar. Bu durumda "güvenilir bir şekilde", diğer şeylerin yanı sıra, TCP'nin bir dinleme uygulamasına asla sıra dışı veri vermemeyi garanti ettiği anlamına gelir.

Sıralı olarak, güvenilir teslimat, sıra numaralarının kullanılmasıyla gerçekleştirilir. Her akıştaki her pakete 32 bit sıra numarası atanır (TCP'nin etkin bir şekilde iki bağımsız veri akışı olduğunu unutmayın; A-> B ve B-> A). A, B'ye bir ACK gönderirse, ACK alanındaki değer, A sıralamasının B'den görmeyi beklediği bir sonraki sıra numarasıdır.

Yukarıdakilerden, sunucudan istemciye gönderilen en az bir TCP segmentinin kaybolduğu görülmektedir. Sırasıyla üç yinelenen ACK, istemci tarafından hızlı bir yeniden iletimi tetikleme girişimidir . Bir TCP göndericisi aynı veri parçası için 3 yinelenen bildirim aldığında (yani en son gönderilen veri parçası olmayan aynı segment için 4 ACK), ACKed segmentinin hemen ardından segmentin kaybolduğunu varsayabilir. ve anında yeniden iletimle sonuçlanır.

Bu durumda, yeniden iletim gerçekleşir ve Wireshark tarafından sıra dışı olarak tanımlanır.

JoeQwerty tarafından belirtildiği gibi , paket kaybına çoğunlukla tıkanıklık neden olur. Ayrıca, kötü bir arabirim kartı, gevşek kablo vb.Nedeniyle bir bağlantıdaki CRC veya diğer hataların bir sonucu da olabilir. çok sayıda hata yaşıyoruz.

Açık bir aday göremiyorsanız, kaybın meydana geldiği yeri izole etmeye çalışmak için yol boyunca birden fazla noktada eşzamanlı paket yakalamaları gerçekleştirin.

Burada ne tür bir WAN bağlantısı kullanılıyor? Özel bir hat mı? MPLS VPN bağlantısı? Halka açık internet üzerinden IPsec VPN? Başka bir şey?


Yorumlarınız için teşekkürler. Haklısın, paket yakalama istemciden. Ne dediğini anlarsam, yinelenen ACK'ler istemci yanlış bir şey yapmaz, ancak istemciden farklı bir kayıt almadığını (ACK'lardan sonra gelen) tetikler. Bu doğru mu? İstemci bilgisayarda buna neden olabilecek şeylere bakabilir miyim? İstemci bilgisayar sorunu değilse, neden bazı istemcilerde ve diğerlerinde sürekli olarak görünsün?
Sam

WAN, doğu kıyısında ve Amerika Birleşik Devletleri'nin orta kesimindeki üç bölge arasında "iki noktadan noktaya devre" dir.
Sam

Bu doğru; DUPACK'ler paket kaybının bir belirtisidir. Sorunun neden bazı istemcilerde değil, bazı istemcilerde ortaya çıkacağıyla ilgili olarak, etkilenen istemciler için ortak olan şeyleri bulmanız gerekir. Hepsi aynı ofiste mi? Ortak ağ altyapısından mı geçiyorsunuz? (Bir anahtar mı yoksa bir bağlantı mı?). Yapmaya değer bir şey , etkilenen makinelerin her birinde mtr(veya pathpingWindows'ta) kullanmak ve sunucu yolu boyunca paket kaybı yaşıyor gibi görünen ortak atlamaların olup olmadığını görmek. Anahtar bağlantı noktası verilerine bakmak için kullanabileceğiniz bir ağ izleme sisteminiz var mı?
Murali Suriar

4

Sorunun nerede olduğunu izole ederken, bir paket dökümü semptomlardan sadece biri olarak düşünün ... Bir benzetme olarak, biri doktorun ofisine göğüs ağrısı ile girerse, doktor üç saatini doğasının araştırılması için harcamaz. acı. Bunun için yaklaşık iki dakika harcıyor ve sonra nedenlerin% 95'inin mide ekşimesi veya anjina olduğunu biliyor ... Aynı şekilde, yinelenen ACK'leri görürseniz, izin yabani otlarında sıçan deliği açmayın .

Bağlantı kurulduktan sonra, transit ağ sorunları nedeniyle yavaş TCP performansı her zaman değil; bazen sunucu CPU veya disk sınırlamalarının bir sonucu olarak gelir ... ve bazen bir istemci bilgisayardaki bazı sorunlar nedeniyle. Kuyruğumu sadece mtr ile problemi nispeten hızlı bir şekilde bırakmak ve bulmak için veya CPU ve disk G / Ç gibi diğer ana bilgisayar metriklerine bakarak wireshark izlerinin yabani otlarına kazıp haftalarca kovaladım .

İlk göreviniz bunun bir ağ sorunu mu yoksa ana bilgisayar düzeyinde bir sorun mu olduğunu kanıtlamaktır. Ağınız üzerinden gerçek trafik göndermeye odaklanın ve kuyruğa alma / kaybetme / yeniden sipariş vermeyi kanıtlayın Not 1 ; bu her zaman böyle potansiyel bir ağ sorununun alt çizgisidir .

pingVerim sorunu olurken istemci ve sunucu arasında uzun bir süre (genellikle benim için bir saat) için bir örnekleme yapmak ; Bunun için mtr veya ping çizici ücretsiz kullanabilirsiniz . Bir atlamada sürekli olarak paketleri kaybediyorsanız ve daha sonra tüm atlamaları çok fazla veya daha fazla kaybederseniz , potansiyel bir ağ şüpheliniz vardır. Cihaz ICMP hız sınırlamasının, paketleri atladıkları için bazı atlamaların görünmesine neden olabileceğini unutmayın.


Not 1 Trafiği yeniden sipariş ediyorsanız, bu , wireshark'ın sağladığı uzman bilgi alanında oldukça hızlı bir şekilde görünecektir


Ağı varsayılan olarak suçlamanın iyi bir yaklaşım olmadığını kabul edin. Yığın boyunca enstrümantasyon her zaman iyi bir uygulamadır. Ancak bu durumda DUPACK'ler, arızalı ve yeniden iletilen segmentler, iki uç nokta arasında bir tür ağ kaybının göstergesi gibi görünmektedir.
Murali Suriar

@Murali Suriar, (doğru olma konusunda iyi bir şansı olan) iddianıza gidelim ... sonra ne olacak? Neden paket kaybı olduğunu izole etmelisiniz . Biz IT insanları wireshark, mikroskoba çok uzun süre bakmayı sevdiğimiz noktaya gizemli bir şekilde aşık olduk. Yaptığım nokta, hızlı bir bakış atmak pcap, bundan sonra paket kayıplarını, CPU döngülerini ve disk I / O'yu enstrümantasyon döngülerine harcamaktan daha iyi olursunuz. Bunu yapmak için bir zaman var, ama normalde analizin bu aşamasında değildir.
Mike Pennington

@Mike kabul etti, bu yüzden ilk adım olarak yol boyunca cihazlar için hatalar / kullanım bilgileri aramayı önerdim. Ulaşılabilirlik dışında ICMP tabanlı teşhislerin büyük bir hayranı değilim. Söylediğiniz gibi, hız sınırlama ve yanlış yapılandırılmış ACL'ler / güvenlik duvarları onu güvenilmez hale getirebilir; bir kurumsal ağda (buna benziyor), MTR genellikle sizi doğru yönde gösterebilir. MTR ile ilgili diğer bir sorun, genellikle sadece bir soruna işaret etmesidir; yol boyunca, ilkini düzeltene kadar bulamayacağınız birden fazla hata olması tamamen mümkündür .
Murali Suriar

Kabul etmiyoruz, TTL adımlı ICMP her derde deva değildir ve birden fazla hata olabilir. Bununla birlikte, güvenlik duvarları ve yük dengeleyicilerle ilgili tüm kusurları için, söz konusu uygulama bağlantı noktalarında ana bilgisayar düzeyinde enstrümanlı TCP / UDP oturumlarını çalıştıramadıkça ICMP sahip olduğumuz en iyi uzaktan tanıdır ... o zaman bile , bu soket çok yeniden iletiliyor ... ama neden? Zamanın% 70'ini çekiyorum, mtrya da ilk ve son 15 yıldır aynı şekilde problemleri çözüyorum. Belirli bir cihaza odaklandığımda, damla sayaçlarına bakabiliriz
Mike Pennington

1
@Sam: Ağ sorunlarının giderilmesine ilişkin bir nokta: her ağın "sorunları" vardır. Anahtar, bu sorunların performans ve / veya bağlantı sorunlarına neden olup olmadığını belirlemektir. Her ağda yinelenen ACK'ler, TCP Yeniden İletimleri, yayınlar, hatalı protokoller vb. Bulacaksınız. Yinelenen ACK'ların ve yinelenen ACK'ların gönderilmesinde en çok yer alan ana bilgisayarların, bunun gerçekten daha büyük bir sorunun belirtisi mi yoksa yalnızca ağın doğal çalışması mı olduğunu belirlemek için odaklanmalısınız. 1000 paketten 5 yinelenen ACK görürsem, ikinci bir düşünce vermeyeceğim.
joeqwerty

3

ACK'ler olmadan çok sayıda [yeniden birleştirilmiş PDU'nun TCP segmenti] ' ni görerek - Seçici Kabul (aka SACK) davranışı nedeniyle bu ACK'ların muhtemelen [TCP Dup ACK ...] olarak gösterildiğini söyleyebilirim .

Misal:

  • müşteri veri parçaları gönderir (..., 0,1,2,3,4,5,6, ...)

  • sunucu (0) onayladı, sonra aldı (2,4,3), sonra (5), sonra (6) ve hiç (1)

Yukarıdaki senaryoda - sunucu meşru olarak önce menzili (2-4), sonra (2-5) menzili, sonra (2-6) menzili seçebilir. "(AB) range ack" paketini oluştururken sunucunun TCP üstbilgisinde son onaylanan kısmı (0) belirtmesi gerekir. Wireshark, aralık-aralıklarını (SACK) [TCP Dup ACK ...] olarak işaretler, çünkü tüm bu aralık-aralıklarının TCP başlığında aynı son onaylanmış parça değeri vardır (Sizin durumunuzda Ack = 872619).


1

ACK'lerin yavaş ağ performansı ile birlikte yinelenmesi bana bir ağ tıkanıklığı sorunu gibi geliyor. Ağdaki yayın trafiğinin hacmine ve hızına bakın. Çok noktaya yayınların yanı sıra fiziksel katman ve ağ katmanı yayınlarına da baktığınızdan emin olun.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.