• Roger Dingledine's avatar
    Implemented congestion control · 267434bd
    Roger Dingledine authored
    Servers are allowed to send 100 cells initially, and can't send more until
    they receive a 'sendme' cell from that direction, indicating that they
    can send 10 more cells. As it currently stands, the exit node quickly
    runs out of window, and sends bursts of 10 whenever a sendme cell gets
    to him. This is much much much faster (and more flexible) than the old
    "give each circuit 1 kB/s and hope nothing overflows" approach.
    Also divided out the connection_watch_events into stop_reading,
    start_writing, etc. That way we can control them separately.