
Безопасная (с AEAD) версия USTP, называемая USTP-Secure (ustps://)
USTP означает UDP Speedy Transmission Protocol.
USTP сохраняет ту же модель аутентифицированного транспорта, но название проекта теперь снова просто USTP.
По умолчанию USTP использует AEAD для DATA.
Он также поддерживает опциональный согласованный режим cleartext + HMAC для DATA, при котором байты полезной нагрузки видны в сети, но подмена обнаруживается и отклоняется.
USTP теперь поддерживает опциональный контроллер перегрузки под названием USTP Congestion. Он по-прежнему ориентирован в первую очередь на UDP, но может опционально замедляться и снова наращивать скорость, когда путь начинает показывать сигналы перегрузки.
Статус: Beta
USTP больше не является просто доказательством концепции. В настоящее время он находится в фазе Beta.
USTP может использоваться для многих видов приложений и транспортов.
Однако этот репозиторий сосредоточен конкретно на потоковой передаче поверх USTP.
02/08/2026: USTP-Secure теперь снова называется USTP.
USTP-Secure было старым названием проекта и больше не подходит для него.USTP теперь снова предпочтительно.UDP Speedy Transmission Protocol, без Secure в заголовке.2026-07-18: USTP/2 Beta был удалён из текущего дерева.
Codex с использованием GPT-5.4 (Low).--loss 33.Brazil -> Canada с RTT около 140ms.chacha20 = CHACHA20_POLY1305aes-256-gcm = AES_256_GCMaes-128-gcm = AES_128_GCMchacha20DATA по умолчанию — AEAD.DATA — cleartext + HMAC на каждый пакет.HELLO, ACK, RETRANSMIT_REQUEST, CLOSE) намеренно остаются в plaintext.ACK и NACK/RETRANSMIT_REQUEST остаются в plaintext, но аутентифицируются с помощью HMAC-тега на сессию.DATA используют двоичный формат кадра под названием UPACK (UPAK в сети).IP:port.--cipher, сервер использует именно этот шифр.--cipher опущен или установлен в auto, сервер использует шифр, запрошенный клиентом.DATA согласовывается отдельно от выбора шифра:
--cleartext auto|on|off--cleartext on|offautooffauto на сервере сервер следует запросу клиента.on на сервере сервер принудительно использует cleartext + HMAC.off на сервере сервер принудительно использует AEAD.~/.ustps_host_key, чтобы TOFU оставался стабильным между переподключениями и перезапусками.--regen-key на сервере только тогда, когда вы намеренно хотите сменить этот ключ хоста.ACK:, NACK:, HELLO: и CLOSE: — это префиксы управляющих записей в открытом виде.USS1 означает UDP Speedy Secure, версия 1.USC1 означает UDP Speedy Clear, версия 1.UPAK — это бинарный маркер кадра DATA UPACK.ACK: 10, NACK: 42, HELLO: ... и CLOSE:.UPAK идентифицирует бинарные пакеты DATA после расшифровки.USS1 — это формат внешнего защищённого AEAD-конверта.USC1 — это формат внешнего конверта DATA с открытым текстом и HMAC.USS1... для DATA, защищённых AEADUSC1... для DATA с открытым текстом и HMACUSTP Congestion, согласуемым во время рукопожатия.seq, так и stream_pos, обращённый к приложению.seq используется для ACK, обнаружения потерь, повторной передачи и выборки RTT.stream_pos сообщает приложению, где в логическом байтовом потоке находится полезная нагрузка.seq — это 32-битный счётчик, который начинается с 1 для каждой новой сессии.stream_pos — это 64-битный счётчик байтов, который начинается с 0 для каждого нового логического потока.HELLO в открытом виде, несущего его публичный ключ X25519, запрошенный шифр, запрошенный режим управления перегрузкой (on или off) и запрошенный режим защиты DATA (cleartext on|off).session_idDATADATA.IP:port, который завершил проверку.session_id по-прежнему используется как метка сессии, но он не принимается с другого IP:port.HELLOUSTPS-CHALLENGE1, несущим token, session_id, выбранный шифр, согласованный режим управления перегрузкой, согласованный режим защиты DATA и публичный ключ сервераUSTPS-CHALLENGE-REPLY1USTPS-SESSION1IP:port действительно может принимать пакеты по этому адресу