[tor-dev] SENDME cells

Gareth Owen gareth.owen at port.ac.uk
Wed Jul 9 21:20:59 UTC 2014


Mashael, Florian,

Thanks for the information/reply.

Best
Gareth


On 9 July 2014 17:37, Mashael Alsabah <malsabah at gmail.com> wrote:

> 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 at informatik.hu-berlin.de> 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 at port.ac.uk
> >> <mailto:gareth.owen at port.ac.uk>> 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 at lists.torproject.org
> > https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-dev
>
>


-- 
Dr Gareth Owen
Senior Lecturer
School of Computing, University of Portsmouth

Tel: 02392 846423
Web: ghowen.me
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.torproject.org/pipermail/tor-dev/attachments/20140709/99529614/attachment.html>


More information about the tor-dev mailing list