Expand description
TURN-style relay protocol for NAT traversal fallback TURN-style Relay Protocol Implementation
This module implements a TURN-style relay protocol for NAT traversal fallback when direct peer-to-peer connections cannot be established. The relay system provides a fallback mechanism to ensure connectivity between peers through trusted relay servers.
§Protocol Overview
The relay protocol uses QUIC extension frames for communication:
RELAY_REQUEST
(0x44): Request relay connection establishmentRELAY_RESPONSE
(0x45): Response to relay request with statusRELAY_DATA
(0x46): Bidirectional data forwarding through relay
§Security
All relay operations use Ed25519 cryptographic authentication with anti-replay protection. Rate limiting prevents abuse and ensures fair resource allocation among clients.
Re-exports§
pub use authenticator::AuthToken;
pub use authenticator::RelayAuthenticator;
pub use connection::RelayAction;
pub use connection::RelayConnection;
pub use connection::RelayConnectionConfig;
pub use connection::RelayEvent;
pub use error::RelayError;
pub use error::RelayResult;
pub use rate_limiter::RateLimiter;
pub use rate_limiter::TokenBucket;
pub use session_manager::RelaySessionInfo;
pub use session_manager::SessionConfig;
pub use session_manager::SessionId;
pub use session_manager::SessionManager;
pub use session_manager::SessionManagerStats;
pub use session_manager::SessionState;
pub use statistics::RelayStatisticsCollector;
Modules§
- authenticator
- Ed25519-based authentication for relay operations with anti-replay protection.
- connection
- Relay connection implementation for bidirectional data forwarding.
- error
- Error types for the relay protocol implementation.
- rate_
limiter - Token bucket rate limiting implementation for relay operations.
- session_
manager - Session management for relay connections with complete state machine.
- statistics
- Comprehensive relay statistics collection and aggregation.
Structs§
- Authentication
Statistics - Authentication and security statistics
- Connection
Statistics - Connection-level statistics
- Error
Statistics - Error and failure statistics
- Rate
Limiting Statistics - Rate limiting statistics
- Relay
Statistics - Comprehensive relay statistics combining all relay operations
- Session
Statistics - Session management statistics
Constants§
- ANTI_
REPLAY_ WINDOW_ SIZE - Anti-replay window size for authentication tokens
- DEFAULT_
BANDWIDTH_ LIMIT - Default bandwidth limit per session (1 MB/s)
- DEFAULT_
SESSION_ TIMEOUT - Default relay session timeout (5 minutes)
- MAX_
CONCURRENT_ SESSIONS - Maximum number of concurrent relay sessions per client
- MAX_
RELAY_ DATA_ SIZE - Maximum size of relay data frame payload (64 KB)
- RATE_
LIMIT_ BURST_ SIZE - Rate limiting: maximum burst size (500 tokens)
- RATE_
LIMIT_ TOKENS_ PER_ SECOND - Rate limiting: tokens per second (100 requests/second)
- SESSION_
CLEANUP_ INTERVAL - Session cleanup interval (check every 30 seconds)