Bandwith Shaping
Heiko Wundram
modelnine at ceosg.de
Wed May 4 17:23:12 EDT 2005
Am Mittwoch, 4. Mai 2005 20:11 schrieb phil:
> But those packets ( I assume TCP ) are going to stack up somewhere,
> the sender is gonna keep trying and retrying. In other words
> you are increasing overall load to someone's router and the
> network.
This is not true, as TCP tries to adjust its sending speed at the sender end
to the receiving speed at the receiver end (it raises speed until packets
start getting dropped, and when they are, it starts decreasing send speed
again).
Of course, this requires a proper TCP implementation, but any operating system
should have one.
What you said, with a sleep(.01) is actually not quite the way to go. What you
could do is something like the following:
MAX_RATE = 1*1024 # (1k)
MAX_SEND = 1024
data = "blabber"
sent = 0
starttime = time.time() - 0.01
while data:
curtime = time.time()
if sent / ( curtime - starttime ) > MAX_RATE:
time.sleep(0.5)
continue
newsent = sock.send(data[:MAX_SEND])
data = data[newsent:]
sent += newsent
> Someone correct me if I'm drunk on this.
See above. ;)
--
--- Heiko.
listening to: Pearl Jam - Man Of The Hour
see you at: http://www.stud.mh-hannover.de/~hwundram/wordpress/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: not available
URL: <http://mail.python.org/pipermail/python-list/attachments/20050504/12161f5e/attachment.sig>
More information about the Python-list
mailing list