Part I: Core networking concepts Naming & Addressing
Names and addresses Names are identifiers –Used by end users / applications to interact with your system system components to interact with each other –Name operators compare, resolve, bind/un-bind Addresses: names that locate objects Good names should be decoupled from addresses
Names or addresses? NYU ID /home/jinyang/doc/lec2.ppt :18:8B:06:DC:CB BitTorrent: f22bd0823..c86a5
Addresses
Design considerations Addresses are used by routers to forward packets to an endpoint Should be uniquely allocated Don’t have to be user-friendly Should enable scalable routing
IP address evolution Original scheme: –8-bit net (area) / 24-bit host (intra-area) Why distinguishing net and host? Why’s wrong with 8-bit net? –256 is not enough nets –Most networks don’t have 16 million hosts
Class-based IP address MIT 18.*.*.* Apple 17.*.*.* NYU *.* Microsoft *.*
Forwarding based on class- based address 1.Examine first 1/2/3 bits, 2.Perform a lookup according to net #
Class-based --> CIDR Why not class-based addresses? –Class A is wasteful! –Too many organizations are > C, but < B –Too many entries at routers CIDR: classless inter-domain routing –Represent net size explicitly / /16 –Allocate appropriate size –Allocate hierarchically
Hierarchical allocation Sprint At&t ISP Another ISP / / /20
Forwarding w/ CIDR addresses Longest prefix match – matches /20 instead of /8 Non-trivial – millions pkts/sec –Memory latency 5-10 ns
Still not enough IP address? NAT (Network address Translator) Maps external address/port pairs to internal address/port pairs –Rewrites src/dst addresses! NAT breaks –global reachability –Protocols that identify host w/ IP addresses
IPv6 128-bit addresses –Different classes of addresses –Hierarchically allocated addresses like CIDR –Lower 64-bits are interface ID Simplified header format –40 bytes as opposed to 20 in IPv4
IPv6 deployment options Embed v4 addresses in low bits of IPv6 Tunnel IPv6 packets over IPv4 networks Applications must be dual-stacked or use a v4-to-v6 translator
IPv6 deployment status
Names
Design Considerations Ensuring uniqueness 1.Central naming authority 2.Hierarchical delegation 3.Pseudo-randomly 4.Content hashes Intended audience: humans or machines?
DNS Why domain names? –IP addresses are not user friendly –Need topology-independent names Early 80s: hosts.txt file, maps host name IP DNS: distributed service, maps domain name IP –Record types: A, NS, MX, CNAME, PTR …
Deep hierarchy Hierarchical names enable delegation.com.edu.gov.cn.uk.nyu.cs.news. flat www
Resolving hierarchical names Stub resolver application cs.nyu.edu DNS server root name server.com name server.google.com name server Root servers might become bottlenecks? Long latency? Query: Response:.com NS a.gtld-servers.nett Q: R: google.com NS ns1.google.com Q: R: A
Replicating servers for capacity/availability Each sub-tree (zone) is kept at 2 name servers 13 root servers –[A-M].root-servers.net –Geographically diverse: VA, CA, MD, Japan etc. Another 13 name servers for.com,.net
Caching Stub resolver cs.nyu.edu DNS server root name server com name server google name server Query: Response:.com NS a.gtld-servers.nett Q: R:.google.com NS ns1.google.com Q: R: A com NS.google.com NS A All record types are cached according to TTL Caching NS records is effective at reducing latency Stub resolver Stub resolver
Caching, continued Cache negative response –10-42% lookups result in a neg answer –Most neg answers are for reverse IP lookups Setting low TTL for A records harmful? –Not really [Jung et. al. 2002] –Most DNS cache hits happen in short succession Sharing DNS caches at multiple sites useful? –Not really –Names follow zipf distribution, misses are for rare names
“Innovative uses” of DNS load balancing/server selection DNS server returns different A records to different clients at different times Short TTL: e.g. 60 sec for Akamai
“Innovative” uses of DNS spam blacklisting Is a spam source? Resolve name bl.spamcop.net
Problems with current naming/addressing
A layered naming architecture “Almost every problem in computer science can be solved by another level of indirection” -- David Wheeler 70s
LNA Proposal overview User level descriptor (ULD) e.g. , search string SID EID IP Youtube -> (SID_a5f4) SID_a5f4 -> (EID_365a, TCP, port 80) EID_365a -> IP_
Claimed Advantage #1: Host mobility Authors’ claim –TCP breaks if hosts change IPs –Difficult to initiate connection to mobile host How LNA solves it? Devil’s advocate
Claimed Advantage #2: Service/data migration/replication Authors’ claim –URL-based links break if domain name changes –No name for replicated data How LNA solves it? Devil’s advocate
Claimed Advantage #3: Accommodating middle boxes Authors’ claim –No explicit support for network-level middle boxes –No explicit support for application-level middle boxes Devil’s advocate