Чи може коливатися затримка пакетів?


9

Чи може час, який потрібен для передачі пакету від клієнта до сервера, коливатися?

Відповіді:


9

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

Це є частиною саморемонтуючого характеру Інтернету, що дозволяє йому робити те, що робить щодня: якщо один маршрут стає менш підходящим згідно евристики, запрограмованої на різних пристроях маршрутизації, натомість буде обраний інший маршрут. Це може бути як миттєвим, так і довгостроковим. Пам'ятайте, що раніше це був Інтернет, це ARPANET - оборонна мережа, призначена для боротьби з, наприклад. миттєве видалення величезних ділянок мережі (думаю, ядерна війна), без того, щоб мережа в цілому знижувалася. За допомогою маршрутизації навколо пошкоджених або неідеальних ділянок більші мережі продовжують функціонувати (хоча, мабуть, неоптимально).


1
Варто додати, що дейтаграми взагалі не гарантуються. Їх можна просто мовчки скинути в будь-яку точку своєї подорожі. Лише транспорт TCP, побудований на основі IP, додає ілюзію надійності мережевим комунікаціям.
Тревор Пауелл

Також дивіться відповідь Денні Пфлугхофта, він справедливо додає, що TCP зазнає додаткових затримок через те, як він працює - якщо пакети будуть втрачені, вони будуть повторно запитані та повторно запрошені, додавши додатковий повний час поїздки в зворотній бік на затримку повідомлення. І це може траплятися довільно багато разів. UDP долає це, надсилаючи постійний потік оновлень, і де моделювання може рухатися вперед, незважаючи на втрату пакету (набагато більше, про що потрібно думати і планувати в цій системі, однак).
Інженер

5

Це, мабуть, не питання розвитку гри, але так. У звичайному IP-з'єднанні кожен пакет може проходити через різних посередницьких «хмелів», а кожен різний «хміль» може мати різну затримку.

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


Зокрема, якщо пакети UDP та TCP маршрутизуються однаково, а пакети UDP звичайно надходять із порядку, це перекладається на "затримки" через одне і те ж з'єднання, використовуючи натомість TCP.
Мартін Сойка


1

Крім того, що вже було сказано, не забувайте, що маршрутизаторам дозволено довільно скидати пакети , тобто в TCP теоретично пакет може зайняти довільно довгий час, щоб досягти свого пункту призначення (а в UDP він ніколи не може досягти свого призначення!).

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