
Versión segura (con AEAD) de USTP, llamada USTP-Secure (ustps://)
USTP significa UDP Speedy Transmission Protocol.
USTP mantiene el mismo modelo de transporte autenticado, pero el nombre del proyecto ahora vuelve a ser simplemente USTP.
Por defecto, USTP usa AEAD para DATA.
También admite un modo opcional negociado de cleartext + HMAC para DATA, en el que los bytes de carga útil son visibles en el cable pero la manipulación se detecta y se rechaza.
USTP ahora admite un controlador de congestión opcional llamado USTP Congestion. Sigue siendo UDP-first, pero opcionalmente puede ralentizarse y volver a acelerar cuando la ruta empieza a mostrar señales de congestión.
Estado: Beta
USTP ya no es solo una prueba de concepto. Actualmente se encuentra en fase Beta.
USTP puede usarse para muchos tipos de aplicaciones y transportes.
Sin embargo, este repositorio se centra específicamente en streaming sobre USTP.
02/08/2026: USTP-Secure vuelve a ser USTP.
USTP-Secure era un nombre de proyecto antiguo y ya no encaja bien con el proyecto.USTP vuelve a ser el preferido.UDP Speedy Transmission Protocol, sin Secure en el título.2026-07-18: USTP/2 Beta se eliminó del árbol actual.
Codex usando GPT-5.4 (Low).--loss 33.Brazil -> Canada con aproximadamente 140ms de RTT.chacha20 = CHACHA20_POLY1305aes-256-gcm = AES_256_GCMaes-128-gcm = AES_128_GCMchacha20DATA por defecto es AEAD.DATA opcional es cleartext + HMAC por paquete.HELLO, ACK, RETRANSMIT_REQUEST, CLOSE) permanecen en texto plano a propósito.ACK y NACK/RETRANSMIT_REQUEST siguen en texto plano, pero se autentican con una etiqueta HMAC por sesión.DATA usan un formato de trama binario llamado UPACK (UPAK en el cable).IP:port de origen.--cipher en el servidor, el servidor usa exactamente ese cifrado.--cipher o se establece en auto, el servidor usa el cifrado solicitado por el cliente.DATA se negocia por separado de la elección de cifrado:
--cleartext auto|on|off--cleartext on|offautooffauto, el servidor sigue la solicitud del cliente.on, el servidor fuerza cleartext + HMAC.off, el servidor fuerza AEAD.~/.ustps_host_key por defecto para que TOFU siga siendo estable entre reconexiones y reinicios.--regen-key en el servidor solo cuando quiera rotar intencionadamente esa clave de host.ACK:, NACK:, HELLO: y CLOSE: son los prefijos de los registros de control en texto plano.USS1 significa UDP Speedy Secure, versión 1.USC1 significa UDP Speedy Clear, versión 1.UPAK es el marcador binario de la trama DATA de UPACK.ACK: 10, NACK: 42, HELLO: ... y CLOSE:.UPAK identifica los paquetes DATA binarios tras el descifrado.USS1 es el formato de envoltura AEAD seguro externo.USC1 es el formato de envoltura DATA de texto claro+HMAC externo.USS1... para DATA protegido con AEADUSC1... para DATA en texto claro+HMACUSTP Congestion opcional, negociado durante el handshake.seq de transporte como un stream_pos orientado a la aplicación.seq se utiliza para ACK, detección de pérdidas, retransmisión y muestreo de RTT.stream_pos indica a la aplicación dónde pertenece la carga útil dentro del flujo lógico de bytes.seq es un contador de 32 bits que comienza en 1 para cada sesión nueva.stream_pos es un contador de bytes de 64 bits que comienza en 0 para cada flujo lógico nuevo.HELLO de transporte en texto plano que transporta su clave pública X25519, el cifrado solicitado, el modo de control de congestión solicitado (on u off) y el modo de protección de DATA solicitado (cleartext on|off).session_id generado en Base64DATA negociadoDATA.IP:port de origen que completó el desafío.session_id se sigue usando como etiqueta de sesión, pero no se acepta desde un IP:port diferente.HELLOUSTPS-CHALLENGE1 que transporta token, session_id, el cifrado seleccionado, el modo de control de congestión negociado, el modo de protección de DATA negociado y la clave pública del servidorUSTPS-CHALLENGE-REPLY1USTPS-SESSION1IP:port de origen puede realmente recibir paquetes allí