Expand description
§multiprobe
Enterprise-grade multi-protocol network probing library with advanced path analytics.
§Features
§Protocol Probes
- ICMP ping - Standard ICMP echo requests with timing
- TCP probe - TCP connect probes to any port
- UDP probe - UDP packet probes with response detection
- TLS probe - TLS handshake timing and cipher analysis
§Path Discovery
- Traceroute - Standard path discovery with hop-by-hop analysis
- Paris Traceroute - ECMP-aware traceroute that maintains flow consistency
- Multi-path discovery - Find all paths through load balancers
§Path Analytics
- Jitter analysis - Statistical latency metrics (min/max/mean/p95/p99)
- MTU Discovery - Path MTU detection with binary search
- Bufferbloat detection - Measure latency under load
- Packet reordering - Detect out-of-order delivery
§Classification
- Path classification - Fingerprint network paths
- Protocol Differential Score - Quantify cross-protocol behavior differences
- Load balancing detection - Identify ECMP routing
§Quick Start
use multiprobe::{Probe, Protocol};
#[tokio::main]
async fn main() -> Result<(), multiprobe::Error> {
// TCP probe with timing
let result = Probe::tcp("example.com", 443).send().await?;
println!("Latency: {:.2}ms", result.timing.total_ms());
// Multi-protocol analysis
let multi = Probe::multi("example.com")
.tcp(80).tcp(443).udp(53)
.send().await?;
println!("Classification: {}", multi.classify());
// Paris Traceroute (ECMP-aware)
let trace = Probe::paris("example.com")
.max_hops(30)
.send().await?;
println!("Load balancing: {}", trace.load_balancing);
Ok(())
}Re-exports§
pub use paris::ParisTraceResult;pub use paris::ParisHop;pub use paris::ParisOptions;pub use paris::ParisMode;pub use paris::FlowId;pub use paris::LoadBalancingType;pub use paris::paris_traceroute;pub use paris::discover_paths;pub use analytics::LatencyStats;pub use analytics::PmtudResult;pub use analytics::PmtudOptions;pub use analytics::BufferbloatResult;pub use analytics::BufferbloatGrade;pub use analytics::BufferbloatOptions;pub use analytics::ReorderingResult;pub use analytics::measure_latency;pub use analytics::discover_path_mtu;pub use analytics::detect_bufferbloat;pub use analytics::analyze_reordering;pub use tls::TlsProbeResult;pub use tls::TlsProbeOptions;pub use tls::TlsTimingBreakdown;pub use tls::TlsVersion;pub use tls::probe_tls;pub use tls::compare_tls;pub use bidirectional::BidirectionalResult;pub use bidirectional::BidirectionalOptions;pub use bidirectional::BidirectionalServer;pub use bidirectional::DirectionStats;pub use bidirectional::probe_bidirectional;pub use bidirectional::DEFAULT_PORT as BIDIRECTIONAL_PORT;pub use divergence::DivergenceResult;pub use divergence::DivergenceOptions;pub use divergence::DivergenceHop;pub use divergence::DivergenceProtocol;pub use divergence::HopStatus;pub use divergence::ProtocolHopResult;pub use divergence::analyze_divergence;
Modules§
- analytics
- Advanced Path Analytics
- bidirectional
- Bidirectional path probing for detecting reverse-path asymmetry
- divergence
- Protocol Divergence Localization
- paris
- Paris Traceroute Implementation
- tls
- TLS Handshake Timing and Analysis
Structs§
- Classifier
- Classifier for network path behavior based on probe results
- Multi
Probe Result - Result of multi-protocol probe
- Probe
- Entry point for creating probes
- Probe
Options - Options for probe operations
- Probe
Result - Result of a single probe operation
- Protocol
Differential Score - Protocol Differential Score - quantifies behavioral differences across protocols
- Timing
Breakdown - Timing breakdown for a probe operation
- Traceroute
Builder - Traceroute builder
- Traceroute
Hop - A single hop in a traceroute
- Traceroute
Options - Traceroute configuration
- Traceroute
Result - Complete traceroute result
Enums§
- Error
- Main error type for multiprobe operations
- Network
Behavior - Detected network behavior based on protocol analysis
- Path
Classification - Path classification based on multi-protocol probe results
- Protocol
- Protocol used for probing
Functions§
- traceroute
- Perform a traceroute to the target
Type Aliases§
- Result
- Result type alias for multiprobe operations