mirror of https://github.com/ospab/ostp.git
Critical fixes (6): - protocol.rs: in_flight_count() now counts only retransmittable Data frames, not Ack/Nack control frames — eliminates false backpressure under load - protocol.rs: NACK is now rate-limited to once per 30ms — prevents retransmission storm during normal UDP jitter - protocol.rs: zombie frames exceeding max_retries+4 are evicted each tick — prevents unbounded memory growth and stale retransmits - protocol.rs: Closing state now processes final in-flight packets instead of silently dropping them — prevents data loss at session teardown - server/lib.rs: stream_tx changed from bounded(10000) to unbounded_channel — prevents TCP-reader collapse during Speedtest with 50+ streams - bridge.rs: liveness timeout raised from 30s to 60s — prevents false reconnect during heavy Speedtest load Medium fixes (8): - protocol.rs: ACK range truncation preserves cumulative range (index 0) - bridge.rs: Ping now uses send_datagram() for correct TURN wrapping - dispatcher.rs: replay_cache hard-capped at 100k entries (DoS protection) - dispatcher.rs: old addr cleaned from addr_to_session on roaming - server/lib.rs: TCP connect_target() now has 10s timeout - config.rs: TURN section parsed during hot-reload - proxy.rs: HTTP header parsing uses 512-byte chunks instead of 1-byte reads - proxy.rs: stream_id wrap-around skips active IDs to prevent collision - runner.rs: is_essential_log matches actual log strings from bridge.rs Other: - kex.rs: clearly marked as dead PQ stub (not used by protocol) - README.md + README.ru.md: complete rewrite with architecture diagram - docs/en/specification.md: updated ARQ section with all new semantics |
||
|---|---|---|
| .. | ||
| crypto | ||
| framing | ||
| lib.rs | ||
| protocol.rs | ||
| relay.rs | ||