repositorypackage
0.0.0-20250206122141-ea50adec5dab
Repository: https://github.com/chenx-dust/paracat.git
Documentation: pkg.go.dev
# Packages
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
# README
ParaCat: A multipath UDP forwarder for high reliability/throughput
In crowded Internet, all connections are not reliable. To minimize jitter and packet loss, we can send it through different routes simultaneously then get redundancy.
Structure
flowchart LR
C[UDP Client]
PC[Paracat Client]
D{Data}
PS[Paracat Server]
S(UDP Server)
C -->|"handleForward()"| PC
C <-->|MultiPort<->SinglePort| PC
PC -->|"handleReverse()"| C
PC -->|"
SendUDPLoop()
SendTCPLoop()
Scatterer
"| D
PC -->|MultiPort<->| D
D -->|"
handleUDPRelayRecv()
ReceiveTCPLoop()
Gather
"| PC
D -->|"
handleUDPListener()
ReceiveTCPLoop()
Gather
"| PS
D -->|<->SinglePort| PS
PS -->|"
SendUDPLoop()
SendTCPLoop()
Scatterer
"| D
PS -->|"handleForward()"| S
PS <-->|MultiPort<->SinglePort| S
S -->|"handleReverse()"| PS
TODO
- Round-robin mode
- Remove unused UDP connections
- GRO & GSO
- Optimize delay
- Re-connect after EOF
- Congestion control algorithm
- Fake TCP with eBPF
- UDP MTU discovery with DF
- API interface