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 <tschorsch@xxxxxxxxxxxxxxxxxxxxxxx> 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 <gareth.owen@xxxxxxxxxx
>> <mailto:gareth.owen@xxxxxxxxxx>> 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
> tor-dev@xxxxxxxxxxxxxxxxxxxx
> https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-dev
_______________________________________________ tor-dev mailing list tor-dev@xxxxxxxxxxxxxxxxxxxx https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-dev