mirror of
https://github.com/syncthing/utp.git
synced 2026-07-17 01:55:05 +00:00
Implements uTP, the micro transport protocol as used with Bittorrent
- Go 100%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| cmd/ucat | ||
| addr.go | ||
| conn.go | ||
| deadlines.go | ||
| header.go | ||
| LICENSE | ||
| pingpong | ||
| README.md | ||
| send.go | ||
| socket.go | ||
| socket_test.go | ||
| status.go | ||
| syncthing_test.go | ||
| utp.go | ||
| utp_test.go | ||
utp
Package utp implements uTP, the micro transport protocol as used with Bittorrent. It opts for simplicity and reliability over strict adherence to the (poor) spec.
Supported
- Multiple uTP connections switched on a single PacketConn, including those initiated locally.
- Raw access to the PacketConn for non-uTP purposes, like sharing the PacketConn with a DHT implementation.
Implementation characteristics
- Receive window size is used to limit out of order packets received.
- There is no MTU path discovery. The minimum size is always used.
- A fixed 64 slot selective ack window is used in both sending and receiving.
- All received non-ACK packets are ACKed in response.
Patches welcomed.
