clean up some TODO items; rename ACI to circID

svn:r782
This commit is contained in:
Nick Mathewson 2003-11-11 02:36:50 +00:00
parent 1c37f631ff
commit 894b1bc5d0
2 changed files with 19 additions and 18 deletions

View File

@ -1,10 +1,10 @@
rename ACI to CircID
rotate tls-level connections -- make new ones, expire old ones.
dirserver shouldn't put you in running-routers list if you haven't
uploaded a descriptor recently
look at having smallcells and largecells
separate trying to rebuild a circuit because you have none from trying to rebuild a
circuit because the current one is stale
Issues identified while writing paper:
- Rotate tls-level connections -- make new ones, expire old ones.
- Dirserver shouldn't put you in running-routers list if you haven't
uploaded a descriptor recently
- Look at having smallcells and largecells
- separate trying to rebuild a circuit because you have none from trying
to rebuild a circuit because the current one is stale
<nickm> If I compromise a node, and streamIDs are sequential, I learn
how many streams have been open and closed on this circuit at this point.
@ -27,6 +27,7 @@ ARMA - arma claims
X Abandoned
Short-term:
- Rename ACI to circID
. integrate rep_ok functions, see what breaks
- update tor faq
o obey SocksBindAddress, ORBindAddress

View File

@ -8,18 +8,18 @@ design as it stands; future versions of Tor will implement improved
protocols.
TODO: (very soon)
- Specify truncate/truncated
- Specify truncate/truncated payloads?
- Specify RELAY_END payloads. [It's 1 byte of reason, then X bytes of
data, right?]
- Sendme w/stream0 is circuit sendme
- Integrate -NM and -RD comments
- EXTEND cells should have hostnames or nicknames, so that OPs never
resolve OR hostnames. Else DNS servers can give different answers to
different OPs, and compromise their anonymity.
- Rename ACI to circID
EVEN LATER:
- Do TCP-style sequencing and ACKing of DATA cells so that we can afford
to lose some data cells.
-
0. Notation:
@ -85,7 +85,7 @@ which reveals the downstream node.
proxies is a fixed-width "cell". Each cell contains the following
fields:
ACI (anonymous circuit identifier) [2 bytes]
CircID [2 bytes]
Command [1 byte]
Length [1 byte]
Sequence number (unused, set to 0) [4 bytes]
@ -184,10 +184,10 @@ which reveals the downstream node.
2. If not already connected to the first router in the chain,
open a new connection to that router.
3. Choose an ACI not already in use on the connection with the
3. Choose a circID not already in use on the connection with the
first router in the chain. If we are an onion router and our
nickname is lexicographically greater than the nickname of the
other side, then let the high bit of the ACI be 1, else 0.
other side, then let the high bit of the circID be 1, else 0.
4. Send a CREATE cell along the connection, to be received by
the first onion router.
@ -212,16 +212,16 @@ which reveals the downstream node.
When an onion router receives an EXTEND relay cell, it sends a
CREATE cell to the next onion router, with the enclosed onion skin
as its payload. The initiating onion router chooses some ACI not
as its payload. The initiating onion router chooses some circID not
yet used on the connection between the two onion routers. (But see
section 4.3. above, concerning choosing ACIs.)
section 4.3. above, concerning choosing circIDs.)
As an extension (called router twins), if the desired next onion
router R in the circuit is down, and some other onion router R'
has the same key as R, then it's ok to extend to R' rather than R.
When an onion router receives a CREATE cell, if it already has a
circuit on the given connection with the given ACI, it drops the
circuit on the given connection with the given circID, it drops the
cell. Otherwise, sometime after receiving the CREATE cell, it completes
the DH handshake, and replies with a CREATED cell, containing g^y
as its [128 byte] payload. Upon receiving a CREATED cell, an onion
@ -242,7 +242,7 @@ which reveals the downstream node.
To tear down a circuit completely, an OR or OP sends a DESTROY
cell to the adjacent nodes on that circuit, using the appropriate
direction's ACI.
direction's circID.
Upon receiving an outgoing DESTROY cell, an OR frees resources
associated with the corresponding circuit. If it's not the end of
@ -269,7 +269,7 @@ which reveals the downstream node.
4.5. Routing data cells
When an OR receives a RELAY cell, it checks the cell's ACI and
When an OR receives a RELAY cell, it checks the cell's circID and
determines whether it has a corresponding circuit along that
connection. If not, the OR drops the RELAY cell.