[tor-bugs] #5334 [Analysis]: Make simulator authors aware of "sparse exit traffic" and "varying directory load" wishlist items

Tor Bug Tracker & Wiki torproject-admin at torproject.org
Thu Mar 8 08:05:37 UTC 2012


#5334: Make simulator authors aware of "sparse exit traffic" and "varying
directory load" wishlist items
----------------------+-----------------------------------------------------
 Reporter:  arma      |          Owner:       
     Type:  task      |         Status:  new  
 Priority:  normal    |      Milestone:       
Component:  Analysis  |        Version:       
 Keywords:            |         Parent:  #4682
   Points:            |   Actualpoints:       
----------------------+-----------------------------------------------------
 Proposal 182 points out that we let the read bucket go negative (by
 reading the rest of the TLS record, which was already actually read by
 openssl so we might as well use what it says), but then we don't let the
 corresponding write occur, so we trap the cells inside Tor until the write
 bucket can catch up. The suggested fix is to allow writes based on how
 much we read, to avoid trapping cells.

 But what situations occur where we end up with fewer write tokens in our
 token bucket than read tokens? Two big ones come to mind:

 - Sparse streams at exits, such that we read a few bytes and package them
 into a whole cell. Fetching hundreds of tiny web bug images is a good
 example here, if they're all on different streams. Another example would
 be an irc connection, though most users probably don't know what irc is.
 (An instant message conversation may or may not be a good example, since
 if the conversation is balanced, the exit would be reading cells from the
 Tor network and writing only a few bytes, thus offsetting the scarcity of
 write tokens.) The "sparse exit traffic" issue could be solved by having
 some fraction of the clients fetching that sort of traffic, to see what
 sort of an impact it would have if the behavior became popular.

 - Directory fetches produce wild imbalances between reads and writes. The
 population of users in the simulations seem to fetch a little bit of
 network information once at the beginning, and then never need it after
 that. Great, but it means our simulated environment misses out on this
 aspect of the real network. There are some hackish heuristics in
 global_write_bucket_low() in src/or/connection.c to decide whether a given
 relay should decline to answer a directory request, based on rate limits,
 size of request, current bucket levels, whether we ran out last second,
 etc. Whatever we do for solving proposal 182 should tune these heuristics
 to a) avoid answering if it would hurt our write bucket too much, yet b)
 make sure enough places still answer that everything still works smoothly.
 These contradictory goals seem like they need a realistic simulation
 framework, and I think neither of the current simulation frameworks handle
 the topic well?

-- 
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/5334>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online


More information about the tor-bugs mailing list