It is a .NET implementation of a Reliable UDP protocol. You have the RUDPSocket class that is similar to System.Net.Sockets.Socket. It support pluggable Congestion protocol and strategy. It support NAT traversal too and with a good congestion strategy should became faster than TCP.
1 - Unreliable packets
2 - Reliable messaging (You are insured that the message arrives)
3 - Ordering messages delivery (Allow sending/receiving the messages in the same order)
4 - KeepAlive feature (to insure that there is no broken connection)
5 - Has a Tear down message (to close the connection gracefully)
6 - RendezVous mode and NAT traversal
7 - Packet fragmentation
8 - Sliding window (using slot technic)
9 - Piggy backing (ACK stored in packets)
10 - Multiples ACKs in a packet (Like SACK for TCP).
11 - MTU discovery (MTU optimization)
12 - Delayed ACK (To improve usage of SACK and diminue bandwidth usage).
13 - Support for multiples CPU (Sockets balancing)
Implemented Congestion protocols :
- TCP Reno (Default one, to use for production)
- TCP Tahoe
Congestion protocols to review
- BIC TCP
- CUBIC TCP
Congestion protocols to implement :
- Compound TCP
- TCP Vegas
To implement your own congestion protocol, replace 2 classes :