[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[minion-cvs] Added simple description of Cottrell mixing algorithm
Update of /home/minion/cvsroot/doc
In directory moria.seul.org:/tmp/cvs-serv28514
Modified Files:
minion-spec.tex
Log Message:
Added simple description of Cottrell mixing algorithm
Index: minion-spec.tex
===================================================================
RCS file: /home/minion/cvsroot/doc/minion-spec.tex,v
retrieving revision 1.50
retrieving revision 1.51
diff -u -d -r1.50 -r1.51
--- minion-spec.tex 28 Jul 2002 22:43:27 -0000 1.50
+++ minion-spec.tex 28 Jul 2002 22:53:33 -0000 1.51
@@ -41,14 +41,7 @@
Fear not. Modularity is what I live for. ;) -NM
-8. We never actually specify a batching algorithm.
-
- [XXXX Andrei has suggested that we don't require a mixing
- algorithm, in order to allow improvements. I think this is
- reasonable, but we should probably specify that (1) whatever we do
- should be at least as good as Cottrell (2) MIXes should include
- their mixing algorithm in their descriptor blocks. -NM]
-
+8. Description of mixing algorithm should go in descriptor blocks. -NM
\section{Message Format}
@@ -764,7 +757,36 @@
[XXXX Issues include: How do directory servers synchronize?
What happens when they disagree? How many servers must a client
contact before he/she has enough information? How do we catch
- dishonest directory servers? -NM]
+ dishonest directory servers? -NM
+
+\section{Appendix: Pooling rule}
+
+In order to allow room for future experimentation, we do not require a
+single batching rule. Nonetheless, we describe a recommended rule (as
+used in Mixmaster) which is somewhat resistant to flooding attacks.
+Implementors are strongly encouraged to use this algorithm, or another
+equally robust against active and passive attacks. (Be sure to read
+\cite{batching-taxonomy}.)
+
+PROCEDURE: Choose sets of messages to transmit
+
+Inputs: Q (a queue of messages)
+ N (the number of messages in the queue).
+ MIX_INTERVAL (algorithm parameter; time to wait between
+ batches of messages. Should be around XXXXX.)
+ POOL_SIZE (algorithm parameter; minimum size of pool. Should
+ be at least XXXXXXXX)
+ MAX_REPLACEMENT_RATE (algorithm parameter; largest allowable
+ rate for messages to be removed from the
+ pool. Should be between XXXX and XXXX.)
+Outputs: (A set of messages sent to the network).
+
+1. Wait for MIX_INTERVAL seconds.
+
+2. If N > POOL_SIZE, then choose Min(N-POOL_SIZE, N*MAX_REPLACEMENT_RATE)
+ messages from Q. Transmit the selected messages.
+
+3. Repeat indefinitely.
\section{Appendix: MBOX delivery}