Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
T
Tor Specifications
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 28
    • Issues 28
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 1
    • Merge Requests 1
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Analytics
    • Analytics
    • CI / CD
    • Repository
    • Value Stream
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar

GitLab is used only for code review, issue tracking and project management. Canonical locations for source code are still https://gitweb.torproject.org/ https://git.torproject.org/ and git-rw.torproject.org.

  • The Tor Project
  • Core
  • Tor Specifications
  • Issues
  • #32

Closed
Open
Opened Oct 01, 2020 by Nick Mathewson@nickm🐭Owner18 of 18 tasks completed18/18 tasks

Clarify/revise proposal 324-rtt-congestion-controls.txt

We had a meeting about proposal 324, and came up with some changes we want to make ... or at least to think about.

Next steps (minor editorial):

  • clarify that complete algorithm is summary.
  • clarify that there are only two ways to notice congestion.
  • define RTT_min,
  • define all symbols, and label which are per-circuit, per-consensus, constant, variable, etc
  • CCtrl=1 becomes FlowCtrl=2
  • Instead of suggested "put data in sendme cells" optimization, use refer to cell-packing optimization.
  • Backward_ecn: make it separate proposal or appendix?

Next steps (changes):

  • omit SENDME from counting towards windows.
  • count INTRODUCE1 for consistency, but clarify that it isn't end-to-end.
  • Have initial congestion windows change ... so that there's an allowed range and a suggested value. Reject any circuits that pick a circuit window outside the range.
  • clarify use of hs-ntor handshake for negotiating initial windows and increments. (the hs-ntor variant allows including extra data.)

Next steps (design and thinking):

  • let's think about what to do with DROP cells and decide what to do if we need to have them count towards window, or sometimes count to window. (Or make sure that we have some other mechanism to absolutely prevent drop-based congestion.)
  • Specify how to find initial RTT estimate. (begin/connect, extend/extended, extended/next-cell on relay side.)
  • Do we need a maximum window?
  • Maybe we don't want a constant sendme reply schedule. Let's see if we want to do "after 10, after 50, after 100". [This may be premature complexity.]
  • Clarify what we do if receive window becomes negative.
  • Backward_ecn: consider variable-length cell that works a bit like DESTROY? (Crypto shennanegans make nick twitchy)
  • Clarify what kind of division you want in these algorithms. (Either truncate or round-to-nearest-int or fixed-radix and count nths of a cell)

@mikeperry is going to look over this list and decide what he wants to take; I'm happy to take on the others.

Edited Oct 03, 2020 by Mike Perry
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Sponsor 61 - Making the Tor network faster & more reliable for users in Internet-repressive places
Milestone
Sponsor 61 - Making the Tor network faster & more reliable for users in Internet-repressive places
Assign milestone
Time tracking
None
Due date
None
Reference: tpo/core/torspec#32