Dlaczego niektóre połączenia sieciowe dominują nad innymi?

15

Podejrzewam, dlaczego tak jest, ale chcę, aby ktoś z silniejszym doświadczeniem w sieci mógł mi to wyjaśnić.

Dlaczego podczas pobierania z wielu różnych lokalizacji niektóre połączenia nasycają przepustowość, pozostawiając inne połączenia prawie bezczynne do momentu zakończenia połączenia dominującego?

Keltari
źródło

Odpowiedzi:

26

Zasadniczo najszybsze połączenie wygrywa. Jednak zanim system Windows 7 działał w sieci, bałagan i wydajność była okropna. Spróbuj uzyskać więcej niż 20 Mb / s od XP Powodzenia z tym.

http://research.microsoft.com/pubs/70189/tr-2005-86.pdf

Standardowy algorytm unikania zatorów TCP wykorzystuje schemat zwiększania addytywnego i multiplikatywnego zmniejszania (AIMD). Gdy nie wykryto utraty pakietu (za pomocą trzech duplikatów ACK lub limitu czasu retransmisji), okno przeciążenia (cwnd) jest zwiększane o jeden maksymalny rozmiar segmentu (MSS) w każdym RTT. W przeciwnym razie, jeśli zostanie wykryta utrata pakietu, nadawca TCP zmniejsza cwnd o połowę. W sieci o dużej szybkości i dużym opóźnieniu wymaga bardzo dużego okna, np. Tysięcy pakietów, aby w pełni wykorzystać pojemność łącza. Dlatego potrzeba standardowego TCP wielu RTT, aby odzyskać szybkość wysyłania po zdarzeniu pojedynczej straty. Co więcej, obecnie dobrze wiadomo, że średnie okno przeciążenia TCP jest odwrotnie proporcjonalne do pierwiastka kwadratowego ze współczynnika utraty pakietów.

Szybsze połączenie ma więcej udanych pakietów, a zatem jego cwnd / mss jest zwiększony i uzyskuje jeszcze więcej całego połączenia.

cybernard
źródło
Było to zgodne z tym, co myślałem, choć bardziej technicznie.
Keltari,
23
20 milibitów na sekundę jest dość niskie, nawet dla Windows XP. : P
CodesInChaos
@codesinchaos, gdzie jest pedantyczna odznaka, kiedy jej potrzebujesz ...
Ashley,
1
@CodesInChaos Myślę, że tak naprawdę nie ma dwuznaczności, ponieważ nie można trochę podzielić, ale Mb / s prawdopodobnie czytałby ładniej ;-) Większy problem występuje, gdy ludzie mylą „Megabit” z „
Megabyte
-1

Aktywny otwarty protokół TCP przetestuje warunki sieciowe, mierząc odpowiedzi z serwera. Jeśli bufory routerów są nasycone innym połączeniem i powodują duże opóźnienie, klient odpowiednio dostosuje swoje okno wysyłania. Jeśli stosowana jest klasyczna metoda kontroli przeciążenia, klient będzie stale zwiększał szybkość wysyłania, aż do wystąpienia spadku. Jest więc możliwe, że nowy przybysz może poćwiczyć, jeśli urządzenie, które nasyca router, zaczyna doświadczać poważnych spadków, podczas gdy nowy przybysz nie.

Istnieją obecnie eksperymentalne i bardziej inteligentne metody kontroli przeciążenia, które wykorzystują opóźnienie jako miarę, a nie po prostu używają kropli do mierzenia warunków sieciowych. Jednak te nowe metody mają zły nawyk bycia prześladowanym przez bardziej wytrwałe klasyczne metody, które wymagają jak największej przepustowości.

Również w przypadku połączeń UDP, jeśli są masowe, zdominują każdą sieć ze względu na nieostrożne rozpylanie bitów. W zależności od aplikacji będzie lekkomyślnie nasycać bufory routerów bez względu na warunki sieciowe.

Jeff Pliska
źródło