L17: Names, bindings, and network architecture Quick review of DHTs: - Distributed overlay network of symmetric nodes (peers) - Lookup primitive -> put/get interface - Just like a regular hash table, hence the name - scalable resolution of arbitrary identifiers - DOA uses basic put/get, while i3 uses basic lookup to route - Nodes maintain routing tables with entries to other nodes - Nodes in routing table chosen based on some geometry/metric - Nodes forward messages on behalf of other nodes (These security problems mostly taken from Castro et al, OSDI 2002) Routing security: - Securely assigning node identifiers - Violates uniform random distribution assumption - Can partition network - Control who is in a particular node's routing table (assuming away proximity routing) - can target specific data for corruption, deletion or denial of service - Routing table maintenance - Attackers can supply bad info, giving a higher fraction of bad nodes in table - routing updates in protocols that don't constrain IDs of neighbors are particularly vulnerable - Message forwarding - Intermediate nodes can drop messages (Some of this intro taken from Hari's "Layered Names" SIGCOMM 04 talk) DHTs facilitate many applications that couldn't be done scalably beforehand Flat names: - IP and DNS names both tied closely to an underlying structure (motivated by "host-centric" apps such as web, ssh, etc) - However, referent can have mutable properties that might change the name --> e.g., web link breakage - This constrains movement - Undergrad at Berkeley to grad at MIT, had to change webpage - Instead we want flat names for data and hosts - Sequence of "random" bits - 160 bits (a few orders of magnitude from the number of atoms in the universe, between 4^78 and 6^79) - No semantic meaning - no hierarchy - does not impose restriction on the thing that it names - These can be resolved in a scalable fashion using DHTs - DHTs make flat names plausible, where in early Internet days maybe they weren't - Can be used to name anything given a large enough namespace - Flexible migration - Downsides: - Not user-friendly (maybe AOL keyword search interface?) - No locality - No control over names DOA: - Uses flat names and a DHT resolution service to form a new kind of Internet architecture where delegation (to NATs, firewalls, etc) is a primitive. i3: - A forwarding infrastructure for routing packets to services using flat identifiers