wrw at mac.com
wrw at mac.com
Thu Jan 31 05:26:01 CET 2013
On Jan 30, 2013, at 7:14 PM, Chris Angelico <rosuav at gmail.com> wrote:
> On Thu, Jan 31, 2013 at 11:04 AM, Jorge Alberto Diaz Orozco
> <jaorozco at estudiantes.uci.cu> wrote:
>> I have restrictions in my system that does not allow me to use TCP, so I want to make a pipe over UDP imitating TCP behavior.
>> I have control over both endpoints, and I´m writing both of them.
>> I just don´t want to re-invent the wheel and I´m looking for a reliable UDP sockets implementation for Python so I can start from there.
> Then... I think the place to start is here:
I think you really ought to think about this long and hard. Although TCP started as a fairly simple-minded protocol designed to guarantee reliable delivery of packets in the order in which they were transmitted, it has evolved considerably over the years. It now incorporates concepts of "fairness" and a very sophisticated rate control system that is constantly probing available network bandwidth to be sure it isn't over driving or hogging the network connection. It would be easy to say: "I really don't need all that - all I'm doing is X." - but in reality you do, and getting reliable delivery over UDP really does require it all.
Now, the good news is that because UDP-based protocols all run in user memory space (as opposed to TCP that runs privileged in kernel space) it is relatively straightforward for non-privledged users to write and test UDP transport schemes and this has become a fairly standard CS exercise at the graduate level. If I were in your shoes, I'd start Googling for the papers published on protocols like HURRICANE, ATAU, or even just the general subject of UDP transport protocols. Two places you might start are:
Most, if not all of these UDP schemes are in the public domain, have been written in high-level languages, and could be translated into python.
More information about the Python-list