Чому одні мережеві з'єднання переважають над іншими?


15

У мене є підозри щодо того, чому, але я хочу, щоб хтось із сильнішим досвідом роботи в мережі пояснив це.

Чому так, що під час завантаження з декількох різних місць певні з'єднання насичують пропускну здатність, залишаючи інші з'єднання майже непрацездатними, поки домінуюче з'єднання не закінчиться?

Відповіді:


26

Як правило, виграє найшвидший зв’язок. Однак до того, як мережа в Windows 7 була безладна, і продуктивність була жахливою для всіх. Спробуйте отримати більше 20 Мб / с від удачі XP з цим.

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

Стандартний алгоритм уникнення перевантажень TCP використовує схему збільшення і мультипликативного зменшення (AIMD) аддитивного збільшення. Коли не виявлено втрат пакету (за допомогою трьох дублікатів ACK або затримки повторної передачі), вікно перевантаженості (cwnd) збільшується на один максимальний розмір сегмента (MSS) на кожну RTT. В іншому випадку, якщо виявлена ​​втрата пакету, відправник TCP зменшує cwnd вдвічі. Для високошвидкісної та довготривалої мережі потрібне дуже велике вікно, наприклад, тисячі пакетів, щоб повною мірою використовувати потужність зв'язку. Таким чином, для відновлення швидкості відправки при одній події втрати знадобиться стандартна TCP безліч RTT. Більше того, зараз добре відомо, що середнє вікно перевантаженості TCP обернено пропорційне квадратному кореню швидкості втрати пакету.

Більш швидке з'єднання має більш успішні пакети, і тому його cwnd / mss збільшується, і він отримує ще більше загального з'єднання.


Це відповідало тому, що я думав, хоч і більш технічно.
Келтари

23
20 мілібіт в секунду є досить низьким, навіть для Windows XP. : P
CodesInChaos

@codesinchaos, де значок педанта, коли вам потрібен ...
Ешлі,

1
@CodesInChaos Я думаю, що насправді немає неоднозначності, оскільки ви не можете трохи розділити, але Мбіт / с, ймовірно, читатимуться приємніше ;-) Більш велика проблема, коли люди плутають "Мегабіт" з "Мегабайт" ..
comfreak

-1

Активний відкритий TCP перевірить мережеві умови шляхом вимірювання відповідей від сервера. Якщо буфери маршрутизаторів насичені іншим з'єднанням і викликають велику затримку, клієнт відповідно налаштує вікно відправлення. Якщо класичний метод контролю заторів перебуває в грі, клієнт постійно збільшуватиме швидкість надсилання, поки не відбудеться падіння. Таким чином, можливо, новий пришвидшив свої сили, якщо пристрій, який насичує маршрутизатор, почне відчувати сильні краплі, а новий не зможе.

Зараз існують експериментальні та більш інтелектуальні методи контролю заторів, які використовують затримку як метрику на відміну від простого використання крапель для вимірювання мережевих умов. Однак у цих нових методів є погана звичка піддаватися знущанням більш наполегливим класичним методам, які займають стільки пропускної здатності, скільки можуть.

Також із з'єднаннями UDP, якщо вони будуть масово, домінуватимуть над будь-якою мережею через недбале розпилення бітів. Залежно від програми, він безрозсудно наситить буфери маршрутизаторів, не зважаючи на умови мережі.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.