Dlaczego sieci komórkowe mają duże opóźnienia? Jak można je zmniejszyć?

39

Coraz częściej widzę, że technologie sieci mobilnych są wykorzystywane do uzyskania dostępu do Internetu w obszarach, w których inaczej nie byłby dostępny.

Podczas gdy sieci komórkowe zwykle nie są jeszcze opłacalne jako podstawowe połączenie internetowe, technologia mobilna wygląda na dobrą opcję na wypadek awarii.

Pasmo nie stanowi problemu: dzięki HDSPA możliwe są prędkości kilku MBit, co zapewnia przyzwoite łącze wysyłające. Wiem jednak z własnego doświadczenia, że ​​łącza internetowe w sieciach komórkowych (przez GPRS, UMTS itp.) Mają znacznie większe opóźnienia niż zwykłe DSL (200-400 ms dla UMTS, a nawet więcej dla GPRS). To oczywiście czyni je nieodpowiednimi do wielu zastosowań, takich jak VoIP i telekonferencje.

  • Skąd się bierze to opóźnienie?
  • Czy są dostępne technologie, które mogą złagodzić ten problem, aby UMTS był opłacalny dla aplikacji o niskim opóźnieniu?

Zakładam, że musi istnieć jakiś nieodłączny powód techniczny, ale co to jest? Czy ma to związek z tym, jak dane są przesyłane bezprzewodowo? A jeśli dzieje się tak z powodu transmisji bezprzewodowej, dlaczego WLAN ma znacznie mniejsze opóźnienia?

Śleske
źródło
6
Należy do runningamajortelecom.stackexchange.com. ;-)
ceejayoz
typ urządzenia mobilnego, lokalizacja wieży komórkowej, bariery dla sygnału itp.
DanBig
3
To pytanie nie jest odpowiednie dla administratora. To należy tutaj.
resmon6
2
Poradzą sobie z tym. Jako inżynier sieci czekam na przemyślaną odpowiedź na to pytanie.
resmon6

Odpowiedzi:

46

Książka „High Performance Browser Networking” autorstwa Ilyi Grigorik dokładnie na to odpowiada. Cały rozdział (7) poświęcony jest sieciom mobilnym. Książka stwierdza, że ​​problem z wysoką wydajnością prawie zawsze związany jest z opóźnieniami, zwykle mamy dużą przepustowość, ale protokoły przeszkadzają. Może to być powolny start TCP , kontroler zasobów radiowych (RRC) lub konfiguracje nieoptymalne. Jeśli występują niewielkie opóźnienia w sieciach komórkowych, jest to sposób, w jaki zostały zaprojektowane.

W książce znajduje się tabela na temat typowych opóźnień:

Tabela 7-2. Szybkości transmisji i opóźnienia dla aktywnego połączenia mobilnego

Generacja | Szybkość transmisji danych | Czas oczekiwania
2G | 100–400 Kbit / s | 300–1000 ms
3G | 0,5–5 Mbit / s | 100–500 ms
4G | 1–50 Mbit / s | <100 ms

Chociaż bardzo istotny dla opóźnień, charakterystyczny trójdrożny uścisk dłoni TCP lub powolny start tak naprawdę nie odpowiadają na pytanie, ponieważ w równym stopniu wpływają na połączenia przewodowe. To, co naprawdę wpływa na opóźnienie w sieciach mobilnych, to warstwa pod adresem IP. Jeśli warstwa pod adresem IP ma opóźnienie wynoszące pół sekundy, połączenie TCP z serwerem zajmie około 1,5 sekundy (0,5 s * 3), ponieważ liczby szybko się sumują. Jak powiedziano wcześniej, zakłada się, że telefon komórkowy nie jest bezczynny. Jeśli słuchawka jest bezczynna, najpierw musi „połączyć się” z siecią, co wymaga wynegocjowania rezerwy zasobów z wieżą (uproszczone), a to zajmuje od 50-100 ms w LTE, do kilku sekund w 3G i więcej we wcześniejszych sieciach.

Rycina 7-12. Opóźnienia przepływu żądania LTE

  1. Opóźnienie płaszczyzny sterowania : Naprawiono, jednorazowy koszt opóźnienia poniesiony na negocjacje RRC i przejścia stanu: <100 ms dla stanu bezczynności do aktywnego i <50 ms dla stanu uśpienia do aktywnego.
  2. Opóźnienie samolotu użytkownika : Stały koszt dla każdego pakietu aplikacji przesłanego między urządzeniem a wieżą radiową: <5 ms.
  3. Opóźnienie sieci bazowej: Koszt zależny od przewoźnika za transport pakietu z wieży radiowej do bramki pakietu: w praktyce 30–100 ms.
  4. Opóźnienie routingu internetowego: Zmienny koszt opóźnienia między bramą pakietu operatora a adresem docelowym w publicznym Internecie.

W praktyce opóźnienie od końca do końca wielu wdrożonych sieci 4G zwykle znajduje się w zakresie 30–100 ms, gdy urządzenie jest w stanie połączenia.

Masz więc jedno żądanie (rysunek 8-2. Składniki „prostego” żądania HTTP):

  1. Negocjacja RRC 50-2500 ms
  2. Wyszukiwanie DNS 1 RTT
  3. Uzgadnianie TCP 1 RTT (istniejące połączenie) lub 3 RTT (nowe połączenie)
  4. Uzgadnianie TLS 1-2 RTT
  5. Żądanie HTTP 1-n RTT

I z prawdziwymi danymi:

Tabela 8-1. Opóźnienie związane z pojedynczym żądaniem HTTP

                       | 3G | 4G
Płaszczyzna kontrolna | 200–2,500 ms | 50–100 ms
Wyszukiwanie DNS | 200 ms | 100 ms
Uzgadnianie TCP | 200 ms | 100 ms
Uzgadnianie TLS | 200–400 ms | 100–200 ms
Żądanie HTTP | 200 ms | 100 ms
Całkowity narzut opóźnień | 200–3500 ms | 100–600 ms

Ponadto, jeśli masz interaktywną aplikację, którą chcesz wykonywać w umiarkowanym stopniu w sieci mobilnej, możesz eksperymentować z wyłączeniem algorytmu Nagle (jądro czeka na połączenie danych w większe pakiety zamiast wysyłania wielu mniejszych pakietów), poszukaj sposobów na przetestowanie go w https://stackoverflow.com/a/17843292/869019 .


Wszyscy mogą bezpłatnie przeczytać całą książkę na https://hpbn.co/ sponsorowanej przez Velocity Conference. Jest to książka bardzo wysoce polecana, nie tylko osobom rozwijającym strony internetowe, ale jest przydatna dla każdego, kto obsługuje bajty w sieci przez klienta.

Jorge Nerín
źródło
Dzięki za informacje, bardzo interesujące. Ponieważ nie każdy może przeczytać książkę (a ponieważ odpowiedzi powinny stać na własną rękę): Czy możesz wyjaśnić nieco więcej, w jaki sposób powolny start TCP, kontrolery radiowe i konfiguracja przyczyniają się do opóźnień?
sleske
1
Właśnie zredagowałem odpowiedź z fragmentami i tabelami książki, więc jest ona przydatna sama w sobie.
Jorge Nerín
2
Uwaga do siebie: Kolejny interesujący artykuł na temat opóźnień: Opóźnienie w sieciach danych HSPA , Qualcomm.
sleske,
Dziękuję bardzo. Próbuję wyjaśnić mojemu szefowi, dlaczego mamy problem z opóźnieniami w modemach 3G w przypadku zdalnie rozmieszczonych kiosków, co spowodowało, że wyrzuciłem go z parku.
jklemmack
4

Podejrzewam, że duża część opóźnień, które mogą wystąpić podczas korzystania z technologii „szerokopasmowego internetu komórkowego”, jest złożonym problemem wielu rzeczy.

Jest odległość, ale jak wspomniano w syneticon-dj, to w rzeczywistości tylko niewielka część czasu podróży w obie strony.

Oto coś do rozważenia ... Opóźnienia, które odczuwasz jako klient (zwłaszcza jako klient domowy lub mały biznes), są prawdopodobnie sztucznie wywołane, przynajmniej do pewnego stopnia. Istnieje klasa komunikacji 3G i GSM do wykorzystania M2M, dla SCADA i tak dalej, która czasem może zapewnić większą niezawodność i transmisję z mniejszym opóźnieniem. W rezultacie są one zwykle zbyt drogie.

Zasadniczo masz problem z kształtowaniem ruchu. Albo dostawca usług internetowych / Telco robi to, aby priorytetowo traktować lepiej płatnych klientów, lub komórka, z którą jesteś połączony, jest nieco zajęta, lub cała ich sieć jest nieco spowolniona (spróbuj 00:00 GMT w dniu 1 stycznia 2012 r., Aby przykład).

Ale jest na to wszystko rozwiązanie, choć jest trochę podstępne. Zasadniczo potrzebujesz proxy połączenia TCP, zanim Twój ruch wyruszy przez mobilną sieć WWAN. Ten serwer proxy zasadniczo wysyła sfałszowane potwierdzenie ACK do Twojej aplikacji, ponieważ rzeczywiste potwierdzenie może być opóźnione przez kształtowanie ruchu przez dostawcę usług internetowych.
Jest to wyraźnie wątpliwe, ale wielu dostawców usług satelitarnych używa tego mechanizmu, aby opóźnienie wydawało się niższe niż w rzeczywistości.

Tom O'Connor
źródło
Serwer proxy tcp jest ciekawym pomysłem i pomoże TCP lepiej wykorzystać dostępną przepustowość. Jednak tak naprawdę nie pomaga w typie aplikacji, o którą prosi OP. Opóźnienie połączenia jest widoczne dla użytkownika. Myślę, że prawdopodobnie możesz użyć Phoebus: e2epi.internet2.edu/phoebus.html jako takiego proxy TCP.
Dan Pritts
2

Trochę późno do gry, ale możesz zajrzeć do mojego kalendarza wydajności na ten temat: http://calendar.perfplanet.com/2012/latency-in-mobile-networks-the-missing-link/

tl; dr - duża część opóźnień mobilnych wynika z niezoptymalizowanego routingu na odległość.

r0u1i
źródło
Ciekawy punkt Wyjaśnia to jednak tylko część problemu. Opóźnienie GPRS zazwyczaj wynosi 500-1 000 ms. Opóźnienie na kontynencie zwykle nie przekracza 200–300 ms, więc nawet bardzo marnotrawstwo routingu nie powinno dać 1000 ms.
sleske,
@sleske Podejrzewam, że z GPRS (i innymi starymi technologiami) uderzasz w wąskie gardło przepustowości. Możesz wcisnąć tyle pakietów w 56 kb / s (maks.), Zanim zaczną się kolejkować (może się mylę - ale czy 56 kb / s nie oznacza około czterech 1500 bajtów ramek na sekundę?).
r0u1i 18.12.12
Backhaul nie jest odpowiedzią. Przynajmniej z punktu widzenia metra. Umowy SLA wymagają ruchu wstecznego w sieci Ethernet Carrier wszędzie, gdzie byłem w zakresie 8-12 ms, od wieży do MSC / MTSO. Sposób, w jaki przewoźnik komórkowy kieruje ruch stamtąd do sieci szkieletowej, jest ich działalnością, ale nie powinien się różnić od normalnego ruchu ISP / ruchu niekomórkowego.
1

Technologie modemów telefonii komórkowej cierpią z powodu dużych opóźnień ze względu na naturę komunikacji na wolnym powietrzu: odległości transmisji WLAN są zwykle znacznie krótsze niż w przypadku innych technologii, o których wspomniałeś, dlatego jest to jeden z powodów, dla których opóźnienie jest niższe.

Isaac Butt
źródło
6
Odległość jest tutaj naprawdę niewielka. Prędkość propagacji fal radiowych w powietrzu jest bardzo bliska prędkości światła w próżni (około 300 000 km / s), więc nawet odległość 3 km stanowiłaby zaledwie 0,02 ms opóźnienia w obie strony.
the-wabbit
2
@ syneticon-dj Częściowo masz rację, że podróż do wieży jest tylko (bardzo małym ułamkiem) opóźnienia w sieciach komórkowych. Istnieje również nadmiarowość transmisji (łącze radiowe nigdy nie jest idealne w świecie rzeczywistym, a korekcja błędów z natury wywołuje opóźnienie), połączenie z powrotem do budynku telco CO / przełączania (zwykle obecnie przez sieć pakietową może być jeden lub więcej przeskoków) , łącząc Cię z głosem lub łączem danych w CO, a następnie zakładamy, że mówimy o połączeniach danych, z których korzystasz w The Big Bad Internet z wszystkimi nieodłącznymi opóźnieniami.
voretaq7
1
Dodałbym również algorytmy wykrywania kolizji / unikania kolizji i bieżące parametry działania (takie jak zmniejszona prędkość transmisji, co skutkuje zwiększonym czasem bitów, który powinien wynosić 1-4 ms). Ale nie wiem wystarczająco dużo o UMTS, aby ułożyć kompleksową odpowiedź.
the-wabbit
@ syneticon-dj Dobre punkty; Napisałem artykuł na temat technologii CDMA, ale to było dawno temu!
Izaak Butt