
Sichere (mit AEAD) Version von USTP, genannt USTP-Secure (ustps://)
USTP steht für UDP Speedy Transmission Protocol.
USTP behält dasselbe authentifizierte Transportmodell bei, aber der Projektname lautet jetzt wieder einfach USTP.
Standardmäßig verwendet USTP AEAD für DATA.
Es unterstützt außerdem einen optional ausgehandelten cleartext + HMAC-Modus für DATA, bei dem die Nutzlastbytes auf der Leitung sichtbar sind, aber Manipulationen erkannt und abgelehnt werden.
USTP unterstützt jetzt einen optionalen Congestion-Controller namens USTP Congestion. Es ist weiterhin UDP-first, kann aber optional langsamer werden und wieder beschleunigen, wenn der Pfad beginnt, Congestion-Signale zu zeigen.
Status: Beta
USTP ist nicht länger nur ein Proof of Concept. Es befindet sich derzeit in der Beta-Phase.
USTP kann für viele Arten von Anwendungen und Transporten verwendet werden.
Dieses Repository konzentriert sich jedoch speziell auf Streaming über USTP.
02/08/2026: USTP-Secure heißt jetzt wieder USTP.
USTP-Secure war ein alter Projektname und passt nicht mehr gut zum Projekt.USTP wird jetzt wieder bevorzugt.UDP Speedy Transmission Protocol, ohne Secure im Titel.2026-07-18: USTP/2 Beta wurde aus dem aktuellen Tree entfernt.
Codex unter Verwendung von GPT-5.4 (Low).--loss 33.Brazil -> Canada mit etwa 140ms RTT.chacha20 = CHACHA20_POLY1305aes-256-gcm = AES_256_GCMaes-128-gcm = AES_128_GCMchacha20DATA-Schutzmodus ist AEAD.DATA-Schutzmodus ist Klartext + HMAC pro Paket.HELLO, ACK, RETRANSMIT_REQUEST, CLOSE) bleiben absichtlich im Klartext.ACK und NACK/RETRANSMIT_REQUEST bleiben im Klartext, werden aber mit einem sitzungsspezifischen HMAC-Tag authentifiziert.DATA-Pakete verwenden ein binäres Frame-Format namens UPACK (UPAK auf der Leitung).IP:port.--cipher auf dem Server gesetzt ist, verwendet der Server genau dieses Verschlüsselungsverfahren.--cipher weggelassen oder auf auto gesetzt ist, verwendet der Server das vom Client angeforderte Verschlüsselungsverfahren.DATA-Schutzmodus wird getrennt von der Wahl des Verschlüsselungsverfahrens ausgehandelt:
--cleartext auto|on|off--cleartext on|offautooffauto folgt der Server der Client-Anfrage.on erzwingt der Server Klartext + HMAC.off erzwingt der Server AEAD.~/.ustps_host_key, damit TOFU über Wiederverbindungen und Neustarts hinweg stabil bleibt.--regen-key auf dem Server nur, wenn Sie diesen Hostschlüssel absichtlich rotieren möchten.ACK:, NACK:, HELLO: und CLOSE: sind die Klartext-Präfixe der Steuerungsdatensätze.USS1 bedeutet UDP Speedy Secure, Version 1.USC1 bedeutet UDP Speedy Clear, Version 1.UPAK ist der binäre UPACK-DATA-Frame-Marker.ACK: 10, NACK: 42, HELLO: ... und CLOSE:.UPAK binäre DATA-Pakete nach der Entschlüsselung.USS1 das äußere sichere AEAD-Umschlagformat.USC1 das äußere Klartext+HMAC-DATA-Umschlagformat.USS1... für AEAD-geschützte DATAUSC1... für Klartext+HMAC-DATAUSTP Congestion laufen, das während des Handshakes ausgehandelt wird.seq als auch eine anwendungsseitige stream_pos.seq wird für ACK, Verlusterkennung, Neuübertragung und RTT-Messung verwendet.stream_pos teilt der Anwendung mit, wohin die Nutzlast im logischen Bytestrom gehört.seq ein 32-Bit-Zähler, der für jede neue Sitzung bei 1 beginnt.stream_pos ein 64-Bit-Byte-Zähler, der für jeden neuen logischen Stream bei 0 beginnt.HELLO, das seinen X25519-Public-Key, die angeforderte Chiffre, den angeforderten Congestion-Control-Modus (on oder off) und den angeforderten DATA-Schutzmodus (cleartext on|off) überträgt.session_idDATA-SchutzmodusDATA.IP:port gebunden, die die Challenge abgeschlossen hat.session_id wird weiterhin als Sitzungslabel verwendet, wird aber nicht von einer anderen IP:port akzeptiert.HELLOUSTPS-CHALLENGE1 und überträgt token, session_id, ausgewählte Chiffre, ausgehandelten Congestion-Control-Modus, ausgehandelten DATA-Schutzmodus und Server-Public-KeyUSTPS-CHALLENGE-REPLY1 zurückUSTPS-SESSION1IP:port tatsächlich dort Pakete empfangen kann