Implements uTP, the micro transport protocol as used with Bittorrent
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2016-05-28 12:57:00 +01:00
cmd/ucat cmd/ucat: Put reading into its own goroutine 2015-10-13 07:40:09 +11:00
addr.go Fix handling of net.Addr.Network throughout, and create a utp addr type 2016-04-29 20:50:24 +10:00
conn.go Ditch the global condition 2016-05-27 03:04:43 +10:00
deadlines.go Improve deadline code, and fix breaking of zero deadline 2016-05-28 21:51:06 +10:00
header.go Add a magic word in front of the header 2016-05-26 15:18:31 +02:00
LICENSE License is MPL2.0 2015-03-25 17:36:14 +11:00
pingpong pingpong: Fix for ubuntu which 2015-10-14 11:08:48 +11:00
README.md Add the drone.io status badge 2015-10-02 14:47:26 +10:00
send.go Ditch the global condition 2016-05-27 03:04:43 +10:00
socket.go Make deadlines work on Socket 2016-05-28 21:24:07 +10:00
socket_test.go Make deadlines work on Socket 2016-05-28 21:24:07 +10:00
status.go Single global mutex and cond 2016-04-19 11:27:05 +10:00
syncthing_test.go Add BenchmarkSyncthingInprocUTP 2016-05-27 14:38:32 +10:00
utp.go Merge remote-tracking branch 'upstream/master' into HEAD 2016-05-28 12:57:00 +01:00
utp_test.go Improve deadline code, and fix breaking of zero deadline 2016-05-28 21:51:06 +10:00

utp

GoDoc Build Status

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.