Module relay

Module relay 

Source
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 establishment
  • RELAY_RESPONSE (0x45): Response to relay request with status
  • RELAY_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§

AuthenticationStatistics
Authentication and security statistics
ConnectionStatistics
Connection-level statistics
ErrorStatistics
Error and failure statistics
RateLimitingStatistics
Rate limiting statistics
RelayStatistics
Comprehensive relay statistics combining all relay operations
SessionStatistics
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)