[tor-commits] [torspec/master] Add section "Options To Enable The Failure Counter"
nickm at torproject.org
nickm at torproject.org
Fri Mar 8 14:32:19 UTC 2019
commit 60405bca0b96d69def783a3214cc5e511287b5bb
Author: Neel Chauhan <neel at neelc.org>
Date: Wed Mar 6 17:38:45 2019 -0500
Add section "Options To Enable The Failure Counter"
---
proposals/299-ip-failure-count.txt | 33 +++++++++++++++++++++++++--------
1 file changed, 25 insertions(+), 8 deletions(-)
diff --git a/proposals/299-ip-failure-count.txt b/proposals/299-ip-failure-count.txt
index efd4aa7..496217e 100644
--- a/proposals/299-ip-failure-count.txt
+++ b/proposals/299-ip-failure-count.txt
@@ -29,7 +29,24 @@ Ticket: https://trac.torproject.org/projects/tor/ticket/27491
in the random decision used for choosing an IP family and the data fields
used by the algorithm.
-2. Failure Counter Design
+2. Options To Enable The Failure Counter
+
+ To enable the failure counter, we will add a flags to ClientAutoIPv6ORPort.
+ The new format for ClientAutoIPv6ORPort is:
+
+ ClientAutoIPv6ORPort 0|1 [flags]
+
+ The first argument is to enable the automatic selection between IPv4 and
+ IPv6 if it is 1. The second argument is a list of optional flags.
+
+ The only flag so far is "TrackFailures", which enables the tracking of
+ failures to make a better decision when selecting between IPv4 and IPv6.
+ The tracking of failures will be described in the rest of this proposal.
+
+ However, we should be open to more flags from future proposals as they
+ are written and implemented.
+
+3. Failure Counter Design
I propose that the failure counter uses the following fields:
@@ -47,7 +64,7 @@ Ticket: https://trac.torproject.org/projects/tor/ticket/27491
statefile, and when a session is closed, the failure counts from the current
session will be stored in the statefile.
-3. Failure Probability Calculation
+4. Failure Probability Calculation
The failure count of one IP version will increase the probability of the
other IP version. For instance, a failure of IPv4 will increase the IPv6
@@ -93,7 +110,7 @@ Ticket: https://trac.torproject.org/projects/tor/ticket/27491
WiFi to cellular) which may be more or less reliable in terms of a
particular IP family when compared to the previous network of the client.
-4. Initial Failure Point Calculation
+5. Initial Failure Point Calculation
When a client starts without failure points or if the FP value drops to 0,
we need a SFPV value to start with. The Initial SFPV value will be counted
@@ -129,7 +146,7 @@ Ticket: https://trac.torproject.org/projects/tor/ticket/27491
If we are starting a new session, we should use the existing failure points
to generate a SFPV unless the counts for IPv4 or IPv6 are zero.
-5. Forgetting Old Sessions
+6. Forgetting Old Sessions
We should be able to forget old failures as clients could change networks.
For instance, a mobile phone could switch between WiFi and cellular. Keeping
@@ -161,7 +178,7 @@ Ticket: https://trac.torproject.org/projects/tor/ticket/27491
If the FP value for one IP version goes down to zero, we will re-calculate
the SFPV for that version using the methods described in Section 4.
-6. Separate Concurrent Connection Limits
+7. Separate Concurrent Connection Limits
Right now, there is a limit for three concurrent connections from a client.
at any given time. This limit includes both IPv4 and IPv6 connections.
@@ -174,7 +191,7 @@ Ticket: https://trac.torproject.org/projects/tor/ticket/27491
packets for a particular IP family while still preventing potential denial
of service attacks.
-7. Pathbias and Failure Probability
+8. Pathbias and Failure Probability
If ClientAutoIPv6ORPort is in use, and pathbias is triggered, we should
ignore "no route" warnings. The reason for this is because we would be
@@ -183,7 +200,7 @@ Ticket: https://trac.torproject.org/projects/tor/ticket/27491
competing IP family over the failed one versus than adding a single failure
point on a normal failure.
-8. Counting Successful Connections
+9. Counting Successful Connections
If a connection to a particular IP version is successful, we should use
it. This ensures that clients have a reliable connection to Tor. Accounting
@@ -200,7 +217,7 @@ Ticket: https://trac.torproject.org/projects/tor/ticket/27491
Even on adding successes, we will still halve the failure counters as
described in Section 5.
-9. Acknowledgements
+10. Acknowledgements
Thank you teor for aiding me with the implementation of Happy Eyeballs in
Tor. This would not have been possible if it weren't for you.
More information about the tor-commits
mailing list