Module multipath_quic

Module multipath_quic 

Source
Expand description

QUIC Multipath Support

This module implements multipath QUIC connections, allowing a single connection to use multiple network paths simultaneously for improved reliability, throughput, and seamless network transitions.

§Features

  • Multiple Paths: Manage multiple network paths for a single connection
  • Path Quality Monitoring: Track latency, bandwidth, and packet loss per path
  • Traffic Distribution: Distribute traffic across paths based on quality and strategy
  • Path Migration: Seamlessly migrate between paths when quality changes
  • Load Balancing: Balance load across available paths for optimal throughput
  • Redundancy: Send critical data on multiple paths for reliability

§Path Selection Strategies

  • Round Robin: Distribute traffic evenly across all paths
  • Quality Based: Prefer paths with better quality metrics
  • Lowest Latency: Always use the path with lowest latency
  • Highest Bandwidth: Always use the path with highest bandwidth
  • Redundant: Send data on all paths for maximum reliability

§Example

use ipfrs_network::multipath_quic::{MultipathQuicManager, MultipathConfig, PathSelectionStrategy};

// Create multipath manager with quality-based strategy
let config = MultipathConfig {
    max_paths: 4,
    strategy: PathSelectionStrategy::QualityBased,
    enable_redundancy: false,
    ..Default::default()
};

let mut manager = MultipathQuicManager::new(config);

// Paths will be automatically detected and managed
// Traffic will be distributed based on the configured strategy

Structs§

MultipathConfig
Configuration for multipath QUIC manager
MultipathQuicManager
Multipath QUIC connection manager
MultipathStats
Statistics for multipath operations
NetworkPath
Network path representing a single route to a peer
PathQuality
Quality metrics for a network path

Enums§

MultipathError
Errors that can occur in multipath QUIC operations
PathSelectionStrategy
Strategy for selecting which path to use for traffic
PathState
State of a network path

Type Aliases§

PathId
Unique identifier for a network path
Result
Result type for multipath operations