Hi Gareth, You can find more details about the flow control algorithm in Tor and how Sendmes work in this paper: "DefenestraTor: Throwing out Windows in Tor".
Mashael On Jul 9, 2014, at 11:39 AM, Florian Tschorsch <[email protected]> wrote: > > Dear Gareth, > > actually the sentence is correct. > > Every OR maintains a package window and a deliver window for each > traversing circuit. You can check the source code: In or.h the circuit_t > struct definition declares a package_window and a deliver_window variable. > > The reason is that Tor's circuits are originally following the leaky > pipe principal. Thus it is possible to leave the circuit at every > intermediate OR (as long as the exit policy allows it) and not only at > the last OR (i.e. the exit). > > Eventually the OP maintains a window for each OR in the circuit. > > As far as I know, this is not used in practice. Therefore to think there > is only one pair of windows at the OP and at the exit approximates the > current behavior sufficiently. > > Cheers, > Florian. > > > On 03.07.2014 12:36, Gareth Owen wrote: >> Just to answer my own question for any others. >> >> I've played around with it a for a few days and it seems the >> intermediate ORs don't maintain windows, it's only the edge nodes, >> maintaining a circuit, and individual stream windows. >> >> Hope someone can update the spec to be clearer on this to save others >> the effort. The offending sentence is: >> >> /"The OP behaves identically, except that it must track a >> packaging window and a delivery window for every OR in the circuit."/ >> >> Best >> Gareth >> >> >> On 1 July 2014 09:51, Gareth Owen <[email protected] >> <mailto:[email protected]>> wrote: >> >> (sorry re-post - forgot subject) >> >> Dear all >> >> I'm working on a tor research project and am having difficulty >> understanding the SENDME cells. The tor spec acknowledges that it >> isn't particularly clear so I would welcome some clarification please. >> >> The spec says that *all* nodes in a circuit maintain a send and >> receive window, and that this window is decremented on each >> RELAY_DATA and incremented on each SENDME. Cells that are neither >> of these do not affect the window size. The problem I have >> understanding is, that only edge nodes will know whether a cell is a >> RELAY_DATA, the intermediate nodes only know that its a RELAY but >> not what type. So, if only RELAY_DATA decrements the window size, >> and intermediate nodes cannot spot these, what point is there in >> intermediate nodes having a window? >> >> Any help greatly appreciated. >> >> Gareth >> > > > _______________________________________________ > tor-dev mailing list > [email protected] > https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-dev _______________________________________________ tor-dev mailing list [email protected] https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-dev
