浏览代码

Add guard node failure plans to proposal.

svn:r15706
Mike Perry 17 年之前
父节点
当前提交
272165e659
共有 1 个文件被更改,包括 47 次插入14 次删除
  1. 47 14
      doc/spec/proposals/151-path-selection-improvements.txt

+ 47 - 14
doc/spec/proposals/151-path-selection-improvements.txt

@@ -9,9 +9,9 @@ Status: Draft
 Overview
 Overview
 
 
   The performance of paths selected can be improved by adjusting the
   The performance of paths selected can be improved by adjusting the
-  CircuitBuildTimeout and the number of guards. This proposal describes
+  CircuitBuildTimeout and avoiding failing guard nodes. This proposal
-  a method of tracking buildtime statistics, and using those statistics
+  describes a method of tracking buildtime statistics, and using those
-  to adjust the CircuitBuildTimeout and the number of guards.
+  statistics to adjust the CircuitBuildTimeout and the number of guards.
 
 
 Motivation
 Motivation
 
 
@@ -26,14 +26,17 @@ Implementation
 
 
     Based on studies of build times, we found that the distribution of
     Based on studies of build times, we found that the distribution of
     circuit buildtimes appears to be a Pareto distribution. The number
     circuit buildtimes appears to be a Pareto distribution. The number
-    of circuits to observe (ncircuits_to_observe) before changing the
+    of circuits to observe (ncircuits_to_cutoff) before changing the
-    CircuitBuildTimeout will be tunable. From our preliminary
+    CircuitBuildTimeout will be tunable. From out measurements, 
-    measurements, it is likely that ncircuits_to_observe will be
+    ncircuits_to_cuttoff appears to be on the order of 100.
-    somewhere on the order of 1000. The values can be represented
+ 
-    compactly in Tor in milliseconds as a circular array of 16 bit
+	In addition, the total number of circuits gathered
-    integers. More compact long-term storage representations can be
+    (ncircuits_to_observe) will also be tunable. It is likely that
-    implemented by simply storing a histogram with 50 millisecond
+    ncircuits_to_observe will be somewhere on the order of 1000. The values
-    buckets when writing out the statistics to disk.
+    can be represented compactly in Tor in milliseconds as a circular array
+    of 16 bit integers. More compact long-term storage representations can
+    be implemented by simply storing a histogram with 50 millisecond buckets
+    when writing out the statistics to disk.
 
 
   Calculating the preferred CircuitBuildTimeout
   Calculating the preferred CircuitBuildTimeout
 
 
@@ -47,13 +50,43 @@ Implementation
     of expected CDF of timeouts.  Also, in the event of network failure,
     of expected CDF of timeouts.  Also, in the event of network failure,
     the observation mechanism should stop collecting timeout data.
     the observation mechanism should stop collecting timeout data.
 
 
-  Other notes
+  Dropping Failed Guards
+
+    In addition, we have noticed that some entry guards are much more
+    failure prone than others. In particular, the circuit failure rates for
+    the fastest entry guards was approximately 20-25%, where as slower
+    guards exhibit failure rates as high as 45-50%. In [1], it was
+    demonstrated that failing guard nodes can deliberately bias path
+    selection to improve their success at capturing traffic. For both these
+    reasons, failing guards should be avoided. 
+    
+    We propose increasing the number of entry guards to five, and gathering
+    circuit failure statistics on each entry guard. Any guards that exceed
+    the average failure rate of all guards by 10% after we have
+    gathered ncircuits_to_observe circuits will be replaced.
+    
+
+Issues
+
+  Impact on anonymity
 
 
     Since this follows a Pareto distribution, large reductions on the
     Since this follows a Pareto distribution, large reductions on the
     timeout can be achieved without cutting off a great number of the
     timeout can be achieved without cutting off a great number of the
     total paths.  However, hard statistics on which cutoff percentage
     total paths.  However, hard statistics on which cutoff percentage
     gives optimal performance have not yet been gathered.
     gives optimal performance have not yet been gathered.
 
 
-Issues
+  Guard Turnover
+
+    We contend that the risk from failing guards biasing path selection
+    outweighs the risk of exposure to larger portions of the network
+    for the first hop. Furthermore, from our observations, it appears
+    that circuit failure is strongly correlated to node load. Allowing
+    clients to migrate away from failing guards should naturally
+    rebalance the network, and eventually clients should converge on
+    a stable set of reliable guards. It is also likely that once clients
+    begin to migrate away from failing guards, their load should go
+    down, causing their failure rates to drop as well.
+
+
+[1] http://www.crhc.uiuc.edu/~nikita/papers/relmix-ccs07.pdf
 
 
-  Impact on anonymity