Add new quickfox.py for rapid file transfer over networks with high packet loss
Add new quickfox.py for rapid file transfer over networks with high packet loss

At times, the ADSL in Australia can be just plain awful (thanks for
ruining the NBN Malcolm) with ridiculously high packet loss (up to
23%!) that is unrelated to congestion.

But the packet loss doesn't mean the line is slow, just that a certain
percentage of packets will be lost regardless of what we do. Since TCP
treats packet loss as a signal that the line is congested it slows down,
and when the next packet is also lost it slows down again, and again,
and again...

Clearly, TCP is not the answer (and possibly never was, it just happens
to work well enough in the majority of cases). But, maybe we can do
better.

This script implements a client and server that talk to each other over
UDP. Once they make contact one will begin transmitting a file at a
constant rate (the minimum of the rates specified to either end) and
will continue to do so regardless of packet loss.

Received packets are acknowledged, and the sender will cross them off
it's list of outstanding packets. It will resend any unacknowledged
packets without slowing down until all have been acknowledged when the
transfer is complete.

There's still quite a bit of polish left to do, but given that it
literally just shaved multiple days off a 100MB download it's already
useful.

DarkStarSword/junk,DarkStarSword/junk,DarkStarSword/junk,DarkStarSword/junk,DarkStarSword/junk