Project Description
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.


Features :
-------------
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

rudpserver.png

Notes
--------
To implement your own congestion protocol, replace 2 classes :
- CongestionWindow.cs
- SlidingWindow

Last edited Jun 4, 2007 at 10:29 AM by cdemez, version 14