I am working on both udp/tcp based P2P for file and real time video streaming application.the application will be developed for both Linux and windows platform using c++.
We are using ICE(TCP/UDP hole punching) to implement the P2P. while TCP ensure the packet loss but for UDP I need a decent approach to make sure packet must be delivered to the other peer.
- I wanted to know the algorithm or technique to do this.
- Is there any free thord party tool/libraries to do.
Any link and suggestion will be appreciated?
You might find the answers to this question helpful: What do you use when you need reliable UDP?
A simple approach would be to have a monitoring thread for each packet --
If performance is important, a single thread could be used to monitor a queue of messages.
You need to cover for 4 main issues:
There is a protocol called slicing window which you could implement. I don't think you'll find a 3rd party library for this (though someone may prove me wrong here), because all the above is typically implemented by TCP itself.