TCP-TCP üzerinden hangi koşullar altında, yalnızca TCP'den önemli ölçüde daha kötü performans gösteriyor (2014)?


25

Birçok yönetici, ServerFault ve başka yerlerde, TCP üzerinden TCP hakkında bir fikrin ne kadar kötü olduğunu, örneğin VPN'lerde sürdürmeye devam ediyor. En küçük paket kaybının bile, birinin TCP erimesi olmasa bile en azından şiddetli verim bozulmasından muzdarip olacağı ve bu nedenle TCP-TCP'nin kesinlikle önlenmesi gerektiğidir. Ve bu muhtemelen bir zamanlar doğruydu, örneğin 2001'de hala bu makalenin yazıldığı zaman .

Fakat o zamandan beri teknoloji ve protokollerde büyük ilerlemeler gördük. Günümüzde hemen hemen her yere “Seçici ACK” uyguladık ve Moore yasası bize çok daha fazla bellek verdi ve onunla birlikte Gbit uplinks için optimize edilmiş büyük TCP tamponları geldi. Ayrıca paket kaybı, bugünlerde radyo dışı bağlantılarda çok daha az sorun yaratıyor. Bütün bunlar TCP üzerindeki TCP problemini önemli ölçüde hafifletmeli, değil mi?

Örneğin, TCP tabanlı VPN'lerin UDP / ESP tabanlı olanlardan daha kolay uygulanıp işletilebileceği gerçek dünya senaryoları olduğunu unutmayın (aşağıya bakınız). Bu yüzden benim sorum:

Hangi koşullar altında (bağlantı paketi kaybı ve gecikmesi) TCP-to-TCP, SACK desteği ve her iki uçta da uygun boyutta TCP arabellekleri varsayarak, yalnızca TCP'den daha kötü performans gösteriyor mu?

Bu harika olurdu, bu nedenle (dış bağlantı) paket kaybı / gecikmesi ve (iç bağlantı) iş çıkışı / titremesi arasındaki ilişkiyi gösteren - TCP üzerinden TCP için ve yalnızca TCP için yapılan ölçümlere bakın. Bu ilginç makaleyi buldum , ancak yalnızca gecikmeyle ilgileniyor ve (dış) paket kaybını ele almıyor gibi görünüyor.

Ayrıca: TCP ve TCP üzerinden TCP arasındaki performans farkını azaltmak için önerilen ayarlar (örn. TCP seçenekleri, tampon ayarları, MTU / MSS'yi azaltma vb.) Var mı?


Güncelleme: Mantığımız.

Bu soru bazı gerçek dünya senaryolarında hala çok önemlidir. Örneğin, sensör verilerini toplayan ve VPN aracılığıyla platformumuza besleyen büyük binalara gömülü cihazlar yerleştiriyoruz. Karşı karşıya olduğumuz sorun, güvenlik duvarları ve yanlış yapılandırılmış bir şekilde üst üste binme, isteksiz BT departmanları ile birlikte kontrolümüz altında olmadığımızı gösteriyor. Burada tartışılan ayrıntılı bir örneğe bakın .

Bu gibi pek çok durumda, TCP olmayandan TCP tabanlı bir VPN'e geçmek (bizim gibi OpenVPN kullanıyorsanız çok kolaydır), yokuş yukarı parmakla işaret eden savaşlardan kaçmamızı sağlayan hızlı bir düzeltmedir. Örneğin, genellikle 443 numaralı TCP bağlantı noktasına genellikle izin verilir (en azından vekil aracılığıyla) veya yalnızca TCP'nin MSS seçeneğini azaltarak Path-MTU sorunlarını çözebiliriz.

TCP-tabanlı bir VPN'in hangi şartlar altında uygulanabilir bir alternatif olarak değerlendirilebileceğini bilmek iyi olurdu, bu yüzden her iki seçeneğin de artılarını ve eksilerini ağırlayan bilinçli bir karar verebiliriz. Örneğin, radyo-olmayan bağlantılarda TCP-VPN'in bizim için uygun olduğunu biliyoruz, ancak önemli miktarda paket kaybı ve yüksek gecikme süresi olan 3G bağlantılarında uzak istemcilerde adil bir paya sahibiz - orada bir TCP-VPN nasıl performans gösterirdi?

Buna göre başlığı ve ana soruyu geliştirmeye çalıştım; umarım anlamlı olur.


Etkileşimli oturumlar için, örneğin ssh kullanırken, TCP üzerinden TCP ve UDP (vb) üzerinden TCP VPN'ler arasındaki farkı hızla göreceksiniz. Oturum düşmezse gecikmeyi fark edeceksiniz. YMMV, TIAS
Daniel S. Sterling

Sadece 'dış' bağlantı ilk etapta belirli bir gecikme veya paket kaybına maruz kalırsa. TCP tabanlı VPN'ler üzerinde çok sayıda SSH oturumum var ve birçoğu gözle görülür bir gecikme olmadan gayet iyi çalışıyor.
Nils Toedtmann,

Gerçekten - iyi bir ağınız olduğunda çalışır. Her zaman iyi bir ağınız yoksa, her zaman işe yaramaz
Daniel S. Sterling

İyi bir ağ nedir? Her şey tek bir AWS bölgesinde çalışıyorsa, ağ yeterli mi?
zengin haber

Yanıtlar:


7

Sanırım göründüğünden daha fazla tartışılıyor. Kuşkusuz eski, ilgili bir Linux SSS var: http://www.tldp.org/HOWTO/VPN-HOWTO/

12 yıldan fazla bir süredir bir PPP-over-ssh-over-ADSL kullandım ve hiçbir zaman başarısız olmadı. TCP üzerinden TCP, RTC bağlantıları, uydu bağlantıları ve çok düşük verimli ya da çok uzun gecikmelerle diğer bağlantılarda muhtemelen kötü bir fikirdir, ancak çoğu kullanım için sadece çalışır .

Şimdi gerçek soru şudur: neden TCP üzerinden TCP kullanmak hiç ? PPP-over-ssh'imi kurduğumda, büyük ölçüde öyleydi, çünkü o zamanlar hızlı bir VPN inşa etmenin en kolay yoluydu; O zamandan beri sırf tembellikten beri kullandım.

Günümüzde, OpenVPN, IPSec VPN'ler gibi pratik, kolay kurulumlu araçlar vardır, böylece TCP-TCP probleminde sizi rahatsız etmenize gerek kalmaz.


1
TCP üzerinden TCP'nin birçok ağ sorunu için basit bir düzeltme olduğu durumlar vardır. Gerekçemizi geliştiren bir bölüm ekledim.
Nils Toedtmann

TCP üzerinden TCP'nin bir sorun haline geldiği koşullar hakkında daha belirgin olan bir cevap için ümit ediyorum. Kullanım durumlarımızdan biri , değişik derecelerde gecikme ve paket kaybı olan radyo bağlantılarıdır.
Nils Toedtmann

TCP üzerinden TCP TCP (TCP SSH ileri yoluyla erişilen bir TCP OpenVPN'de TCP trafiği) yaklaşık 5Mb / s'ye mal oldu. Beni asla başarısızlığa uğratmadı, ancak bunu tavsiye etmem, çünkü bu çok büyük bir atık.
Sirenler
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.