# QUIC

QUIC (Quick UDP Internet Connection) — это протокол, предложенный Google для многоканальной передачи данных по UDP. Его основные преимущества:

1. Сокращение времени установки соединения (1-RTT или 0-RTT).
2. Многоканальность и отсутствие проблем с блокировкой, как у TCP.
3. Миграция соединений (в основном на стороне клиента): при переходе с Wi-Fi на 4G соединение не разрывается.

QUIC в настоящее время находится в экспериментальной стадии и использует реализацию IETF, которая находится в процессе стандартизации, поэтому совместимость с финальной версией не гарантируется.

- По умолчанию:
  - 12-байтовый Connection ID.
  - Автоматическое отключение соединения через 30 секунд бездействия (может повлиять на работу некоторых долгоживущих соединений).

## QuicObject

`QuicObject` соответствует элементу `quicSettings` в конфигурации транспорта.

::: danger
Конфигурация на обоих концах соединения должна быть полностью идентичной, иначе соединение установить не удастся.
QUIC требует включения TLS. Если TLS не включён в настройках транспорта, Xray сгенерирует самоподписанный сертификат для использования TLS.
:::

```json
{
  "security": "none",
  "key": "",
  "header": {
    "type": "none"
  }
}
```

> `security`: "none" | "aes-128-gcm" | "chacha20-poly1305"

Метод шифрования.

Это шифрование применяется к пакетам данных QUIC. Зашифрованные пакеты не могут быть распознаны.

Значение по умолчанию: без шифрования.

> `key`: string

Ключ шифрования.

Может быть любой строкой. Используется только если `security` не равен `"none"`.

> `header`: [HeaderObject](#headerobject)

Настройки маскировки заголовков пакетов.

### HeaderObject

```json
{
  "type": "none"
}
```

> `type`: string

Тип маскировки. Допустимые значения:

- `"none"`: значение по умолчанию, маскировка не используется, отправляемые данные не имеют характерных признаков.
- `"srtp"`: маскировка под SRTP-трафик (например, FaceTime).
- `"utp"`: маскировка под uTP-трафик (например, BitTorrent).
- `"wechat-video"`: маскировка под видеозвонки WeChat.
- `"dtls"`: маскировка под DTLS 1.2.
- `"wireguard"`: маскировка под WireGuard (не является настоящим WireGuard).

::: tip
Если ни шифрование, ни маскировка не включены, то пакеты QUIC отправляются в исходном виде и могут быть распознаны другими инструментами QUIC.

Для предотвращения обнаружения рекомендуется включить хотя бы шифрование или маскировку.
:::