Mobil ağların neden yüksek gecikmeleri var? Nasıl azaltılabilir?


39

Mobil ağ teknolojilerinin başka yerlerde bulunmayan alanlarda internet erişimi sağlamak için kullanıldığını giderek daha fazla görüyorum.

Mobil ağ bağlantısı genellikle birincil internet bağlantısı olarak henüz uygun olmasa da, mobil teknoloji acil durum düşüşü için iyi bir seçenek gibi görünüyor.

Bant genişliği sorun değil: HDSPA ile, iyi bir uplink sağlayan birkaç MBit hız mümkün. Bununla birlikte, kişisel deneyimimden mobil ağların internet bağlantılarının (GPRS, UMTS vb.) Normal DSL'den çok daha fazla gecikme olduğunu biliyorum (UMTS için 200-400 ms, hatta GPRS için daha fazla). Bu, elbette onları VoIP ve telekonferans gibi birçok uygulama için uygun kılmaz.

  • Bu gecikme nereden geliyor?
  • UMTS'yi düşük gecikmeli uygulamalar için uygulanabilir kılmak için bu sorunu hafifletebilecek teknolojiler var mı?

Sanırım içsel bir teknik sebep olmalı, peki nedir? Verilerin hava yoluyla nasıl iletildiği ile ilgili olmalı mı? Kablosuz iletimden kaynaklanıyorsa, WLAN neden daha düşük gecikme süresine sahip?


6
Runningamajortelecom.stackexchange.com sitesine ait. ;-)
ceejayoz 9:12

mobil cihaz tipi, hücre kulesi yeri, sinyal engelleri, vb
DanBig

3
Bu soru süper kullanıcı için uygun değildir. Bu buraya ait.
resmon6

2
Üstesinden gelecekler. Bir ağ mühendisi olarak, bu soruya düşünceli bir cevap vermeyi dört gözle bekliyorum.
resmon6

Yanıtlar:


46

Ilya Grigorik'ten "Yüksek Performanslı Tarayıcı Ağı" kitabı tam olarak buna cevap veriyor. Mobil ağlara adanmış bir bölüm (7.) var. Kitap, yüksek performanslı problemin neredeyse her zaman gecikmeye bağlı olduğunu, genellikle çok fazla bant genişliğine sahip olduğumuzu ancak protokollerin yoluna girdiğini belirtiyor. TCP yavaş başlangıç , Radyo Kaynak Denetleyicisi (RRC) veya düşük kaliteli yapılandırmalar olabilir. Yalnızca mobil ağlarda düşük gecikme yaşıyorsanız, bu şekilde tasarlanır.

Kitapta tipik gecikmeler hakkında bir tablo var:

Tablo 7-2. Aktif bir mobil bağlantı için veri hızları ve gecikme süresi

Nesil | Veri hızı | Gecikme
2G | 100–400 Kbit / s | 300-1000 ms
3G | 0,5–5 Mbit / s | 100–500 ms
4G | 1–50 Mbit / s | <100 ms

Gecikmeyle çok alakalı olmasına rağmen, üç karakterli TCP özelliği el sıkışması veya yavaş başlatma, kablolu bağlantıları eşit olarak etkiledikleri için soruyu gerçekten yanıtlamıyor. Mobil ağlardaki gecikmeyi gerçekten etkileyen şey IP altındaki katmandır. IP altındaki katmanın yarım saniyelik gecikme süresi varsa, bir sunucuyla yapılan TCP bağlantısının ~ 1,5 sn (0,5 sn * 3) alacağını, sayıları oldukça hızlı topladığını görürsünüz. Daha önce söylediğim gibi bu cep boşta olmadığını farz ediyorum. Ahize boştaysa, önce ağa "bağlanması" gerekir; bu, kule ile kaynakların (basitleştirilmiş) rezervinin pazarlık edilmesini gerektirir ve bu, LTE'de 50-100 ms arasında, 3G'de birkaç saniyeye kadar sürebilir ve daha fazlası önceki ağlarda.

Şekil 7-12. LTE istek akışı gecikmeleri

  1. Kontrol düzlemi gecikmesi: RRC anlaşması ve durum geçişleri için bir kerelik gecikme maliyeti oluştu: boşta etkin olmak için <100 ms ve etkin durumda olmak için <50 ms.
  2. Kullanıcı düzlemi gecikmesi: Cihazla radyo kulesi arasında aktarılan her uygulama paketi için sabit maliyet: <5 ms.
  3. Çekirdek ağ gecikmesi: Paketi radyo kulesinden paket ağ geçidine taşımak için taşıyıcıya bağlı maliyet: pratikte, 30-100 ms.
  4. İnternet yönlendirme gecikmesi: Taşıyıcının paket ağ geçidi ve genel İnternet üzerindeki hedef adres arasındaki değişken gecikme maliyeti.

Uygulamada, birçok konuşlandırılmış 4G ağının uçtan uca gecikmesi, cihaz bağlı bir durumda olduğunda 30-100 ms aralığında olma eğilimindedir.

Dolayısıyla, bir isteğiniz var (Şekil 8-2. "Basit" bir HTTP isteğinin bileşenleri):

  1. RRC anlaşması 50-2500 ms
  2. DNS araması 1 RTT
  3. TCP el sıkışma 1 RTT (önceden var olan bağlantı) veya 3 RTT (yeni bağlantı)
  4. TLS anlaşması 1-2 RTT
  5. HTTP isteği 1-n RTT'ler

Ve gerçek verilerle:

Tablo 8-1. Tek bir HTTP isteğinin gecikme yükü

                       | 3G | 4G
Kontrol uçağı | 200-2.500 ms | 50–100 ms
DNS araması | 200 ms | 100 ms
TCP anlaşması | 200 ms | 100 ms
TLS el sıkışma | 200–400 ms | 100–200 ms
HTTP isteği | 200 ms | 100 ms
Toplam gecikme ek yükü | 200–3500 ms | 100–600 ms

Buna ek olarak, bir mobil ağda orta derecede Tamam yapmak istediğiniz etkileşimli bir uygulamanız varsa, Nagle algoritmasını devre dışı bırakmayı deneyebilirsiniz (çekirdek birden çok küçük paket göndermek yerine verilerin daha büyük paketlerle birleşmesini bekler) test etmenin yollarını arar. içinde https://stackoverflow.com/a/17843292/869019 .


Velocity Konferansı'nın sponsorluğunda https://hpbn.co/ adresinde tüm kitabı ücretsiz olarak okuyabilirsiniz . Bu, son derece önerilen bir kitaptır, yalnızca web sitesi geliştiren insanlar için değil, bazı ağlar üzerinden bir müşteriye bayt servisi yapan herkes için de yararlıdır.


Bilgi için teşekkürler, çok ilginç. Herkes kitabı okuyamayacağından (ve cevaplar kendi başlarına durması gerektiğinden): TCP yavaş başlamasının, radyo denetleyicilerinin ve yapılandırmanın gecikmeye nasıl katkıda bulunduğunu biraz daha açıklayabilir misiniz?
sleske

1
Ben sadece cevabı kitabın bölümleri ve tablolarıyla düzenledim, bu yüzden kendi başına işe yarar.
Jorge Nerín

2
Kendime not: Gecikme hakkında başka ilginç bir makale: HSPA Veri Ağlarında Gecikme , Qualcomm.
sleske

Çok teşekkür ederim. Patronuma, neden uzaktan konuşlandırılmış kiosklar için 3G modemleri üzerinde gecikme ile sorun yaşadığımızı açıklamaya çalışıyorum ve bu durum parkın dışına taşmıştı.
jklemmack

4

“Hücresel genişbant” teknolojilerini kullanırken yaşayabileceğiniz gecikme oranının büyük bir kısmının birçok şeyin bileşik bir sorunu olduğunu düşünüyorum.

Uzaklık var, fakat syneticon-dj'nin dediği gibi, gerçekçi bir şekilde gidiş-dönüş zamanının çok küçük bir kısmı bu.

Dikkate alınması gereken bir şey var ... Bir müşteri olarak (özellikle bir ev veya küçük işletme müşterisi olarak) yaşadığınız gecikmeler muhtemelen yapay olarak, en azından bir dereceye kadar yaratılır. M2M kullanımı, SCADA vb. İçin bazen daha büyük bir güvenilirlik ve düşük gecikme iletimi sağlayabilen bir 3G ve GSM iletişimi sınıfı vardır. Sonuç olarak, genellikle çok pahalılar.

Yani temelde, trafik şekillendirmeye karşısınız. Ya ISS / Telco daha iyi ödeme yapan müşterilere öncelik vermek için yapıyor ya da bağlandığınız hücre biraz meşgul ya da tüm ağları biraz durgun (1/1/2012 tarihinde 00:00 GMT'yi deneyin. örnek).

Ama bunların hepsinde bir yol var, yine de biraz sinsi. Trafiğiniz mobil WWAN'a yönelmeden önce bir TCP bağlantı proxy'sine ihtiyacınız olacak. Bu proxy esasen uygulamanıza sahte bir ACK gönderir, çünkü gerçek ACK ISS'nin trafik şekillendirmesi tarafından gecikebilir.
Açıkça şüpheli, ancak bazı uydu sağlayıcılar gecikmeyi gerçekte olduğundan daha düşük görünmesi için bu mekanizmayı kullanıyor.


Tcp proxy ilginç bir fikir ve TCP'nin mevcut bant genişliğini daha iyi kullanmasına yardımcı olacak. Bununla birlikte, OP'nin sorduğu uygulama türüne gerçekten yardımcı olmuyor. Bağlantıdaki gecikme, kullanıcı tarafından görülebilir. Muhtemelen Phoebus: e2epi.internet2.edu/phoebus.html gibi bir TCP proxy kullanabileceğinizi düşünüyorum .
Dan Pritts

2

Oyuna geç kaldınız, ancak Performans Takvimimin konuyla ilgili makalesine göz atmak isteyebilirsiniz: http://calendar.perfplanet.com/2012/latency-in-mobile-networks-the-missing-link/

tl; dr - Mobil gecikmenin büyük bir kısmı, geri çekilme üzerindeki en iyi duruma getirilmemiş yönlendirmeden kaynaklanmaktadır.


İlginç nokta. Ancak, bu sorunun sadece bir kısmını açıklar. GPRS tipik olarak 500-1.000 ms'lik gecikmelere sahiptir. Bir kıtadaki gecikme, tipik olarak 200-300ms'den daha fazla değildir, bu yüzden çok israflı yönlendirme bile size 1000 ms vermemelidir.
Aralık'ta

@sleske GPRS (ve diğer eski teknolojiler) ile bir bant genişliği darboğazına çarptığınızdan şüpheleniyorum. Çok sayıda paketi sıraya koymadan önce 56kb / s (maks.) 'E kadar sıkıştırabilirsiniz (belki hatalıyım - ama 56kb / s saniyede yaklaşık 1500 baytlık kare anlamına gelmiyor mu?).
r0u1i

Backhaul cevap değildir. En azından bir Metro açısından. SLA'lar, Taşıyıcı ethernet üzerinde, 8-12ms aralığında bulunduğum her yerde, MSC / MTSO kulesine kadar geri dönüş trafiği gerektiriyor. Hücre taşıyıcısının oradan Omurgaya nasıl trafik yönlendirdiği onların işidir, ancak normal ISS / hücresel olmayan trafikten farklı olmamalıdır.

1

Cep telefonu modem teknolojileri açık hava iletişiminin doğası nedeniyle yüksek gecikmeyle karşı karşıyadır: WLAN iletim mesafeleri, bahsettiğiniz diğer teknolojilerden genellikle daha kısadır, bu nedenle gecikmenin düşük olmasının bir nedeni budur.


6
Mesafe burada gerçekten küçük bir endişe kaynağı. Havadaki radyo dalgası yayılma hızı, vakcuumdaki (yaklaşık 300.000 km / s) ışık hızına oldukça yakındır; bu nedenle, 3 km'lik bir mesafe bile, yalnızca 0,02 ms'lik gidiş-dönüş gecikmesi oluşturur.
Wabbit

2
@ syneticon-dj Kuleye yapılacak para gezisinde, hücresel ağlardaki gecikmenin sadece (çok küçük bir kısmı) olduğu için kısmen haklısınız. İletim fazlalığı da var (radyo bağlantısı gerçek dünyada hiçbir zaman mükemmel değildir ve hata düzeltmesi doğal olarak geciktiricidir), telco CO / anahtarlama binasına geri dönüş (genellikle bugünlerde bir paket ağı üzerinden, bir veya daha fazla atlama olabilir) , sizi CO'daki bir ses veya veri bağlantısına bağlar ve sonra The The Bad Bad Internet üzerinden yaptığınız tüm veri bağlantılarında yaptığınız veri bağlantılarından bahsettiğimizi varsayalım.
voretaq7

1
Çarpışma algılama / çarpışma önleme algoritmaları ve mevcut işlem parametreleri de ekledim (1-4 ms için gereken bit süresine neden olan azaltılmış iletim hızı gibi). Ancak UMTS hakkında kapsamlı bir cevap oluşturmak için yeterince bilgim yok.
the wabbit

@ syneticon-dj İyi puanlar; CDMA teknolojisi üzerine bir yazı yazdım ama bu çok uzun zaman önceydi!
Isaac Butt
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.