Введення
У 2017 році більшість популярних веб-ігор типу agar.io використовує для передачі даних WebSockets через TCP. Якби в браузерах був вбудований UDP-аналог WebSockets, то це б значно поліпшило роботу з мережами в цих іграх.

Вступна інформація
Робота веб-браузерів заснована на протоколі HTTP (протоколі запитів і відповідей без збереження стану). Спочатку він був призначений для обслуговування статичних веб-сторінок. HTTP працює поверх TCP, низькорівневого протоколу, гарантує надійну доставку і правильний порядок переданих по мережі даних.

Все це відмінно працювало багато років, але нещодавно веб-сайти стали інтерактивними і перестали відповідати парадигмі «запит-відповідь» протоколу HTTP. Для вирішення цієї проблеми винайдені сучасні веб-протоколи, такі як WebSockets, WebRTC, HTTP 2.0 і QUIC, що мають потенціал значного поліпшення інтерактивності мережі.

На жаль, новий комплект стандартів веб-розробки не відповідає потребам багатокористувацьких ігор або занадто складний у реалізації.

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

Читати далі →

Протокол QUIC: перехід від Web TCP до UDP

Протокол QUIC (назва розшифровується як Quick UDP Internet Connections) — абсолютно новий спосіб передачі інформації в інтернеті, побудований поверх протоколу UDP, замість загальноприйнятого раніше використання TCP. Деякі люди називають його (в жарт) TCP/2. Перехід до UDP — найбільш цікава і потужна особливість протоколу, з якої випливають деякі інші особливості.

Сьогоднішній Web побудований на протоколі TCP, який був обраний за його надійність і гарантованість доставки пакетів. Для відкриття TCP-з'єднання використовується так зване «трикратне рукостискання». Це означає додаткові цикли відправлення-приймання повідомлень для кожного нового з'єднання, що збільшує затримки.

image

Якщо ви захочете встановити захищене SSL-з'єднання, доведеться переслати ще більше пакетів.

image

Деякі інновації, на зразок Fast TCP Open, поліпшать деякі аспекти ситуації, але ця технологія поки не дуже широко поширена.

Протокол UDP, з іншого боку, побудований на ідеї «відправити пакет і забути про нього». Повідомлення, відправлене за UDP, буде доставлено одержувачу (не гарантовано, з деякою ймовірністю успіху). Яскраве перевага тут в меншому часу встановлення з'єднання, такий же яскравий недолік — негарантированность доставки або порядку приходу пакетів одержувачу. Це означає, що для забезпечення надійності доведеться побудувати певний механізм поверх UDP, який гарантує доставку пакетів.

І тут на сцену виходить QUIC від Google.

Читати далі →