1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
//! NOMAD Protocol - Transport Layer
//!
//! This module implements the transport layer of the NOMAD protocol as specified
//! in 2-TRANSPORT.md. It provides:
//!
//! - **Frame encoding/decoding**: [`DataFrame`], [`CloseFrame`], and wire format handling
//! - **Connection state machine**: [`ConnectionState`] with lifecycle management
//! - **RTT estimation**: [`RttEstimator`] implementing RFC 6298
//! - **Frame pacing**: [`FramePacer`] to prevent buffer bloat
//! - **Connection migration**: [`MigrationState`] for seamless IP roaming
//! - **Async sockets**: [`NomadSocket`] wrapper for tokio UDP
//!
//! # Architecture
//!
//! The transport layer sits between the security layer and the sync layer.
//! It handles frame framing, timing, and connection management while remaining
//! agnostic to the encrypted payload contents.
//!
//! ```text
//! ┌─────────────────────────────────────────┐
//! │ Sync Layer │
//! ├─────────────────────────────────────────┤
//! │ Transport Layer │ ← This module
//! │ frames, RTT, pacing, migration │
//! ├─────────────────────────────────────────┤
//! │ Security Layer │
//! ├─────────────────────────────────────────┤
//! │ UDP │
//! └─────────────────────────────────────────┘
//! ```
pub use *;
pub use *;
pub use *;
pub use MigrationState;
pub use ;
pub use *;
pub use ;