* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Hyperbolic Routing in NDN World
Survey
Document related concepts
Computer network wikipedia , lookup
Zero-configuration networking wikipedia , lookup
Deep packet inspection wikipedia , lookup
Serial digital interface wikipedia , lookup
Wake-on-LAN wikipedia , lookup
Cracking of wireless networks wikipedia , lookup
Recursive InterNetwork Architecture (RINA) wikipedia , lookup
Multiprotocol Label Switching wikipedia , lookup
Airborne Networking wikipedia , lookup
Transcript
Named Data Networking – A Future Internet Architecture Zilong Ye, Ph.D. [email protected] Background: ICN basic (1) Information Centric Networking (ICN) basic concept A new Internet architecture (current Internet is based on IP) Value is on “what,” not “where” the contents are actually stored Named Data Networking (NDN) or Content-Centric Networking (CCN), are prominent representatives for ICN. Therefore, NDN/CCN will be used in the following pages. Communication is driven by “consumers of data” PULL-based Packets: Interest and Data On-path/symmetric routing Data packets follow the same path as Interest packets (in reverse order) Data packets may be cached everywhere along the delivery path 2 Background: ICN basic (2) Forwarding engine with 3 data structures [1]: Forwarding Information Base (FIB) : for forwarding Interest messages Pending Interest Table (PIT): stores all the Interests that a router has forwarded but not satisfied yet. Each PIT entry records the data name carried in the Internet, together with its incoming and outgoing interface(s). Content store (CS) for short term storage / Repo for long term storage (not shown In the left figure) 3 Background: ICN basic (3) • Forwarding Process: On Interest Packet [1] – When an Interest packet arrives, an NDN router first checks the Content Store for matching data; if it exists the router returns the Data packet on the interface from which the Interest came. Otherwise the router looks up the name in its PIT, and if a matching entry exists, it simply records the incoming interface of this Interest in the PIT entry. In the absence of a matching PIT entry, the router will forward the Interest toward the data producer(s) based on information in the FIB. When a router receives Interests for the same name from multiple downstream nodes, it forwards only the first one upstream toward the data producer(s). The FIB itself is populated by a name-prefix based routing protocol, and can have multiple output interfaces for each prefix. 4 Background: ICN basic (4) • Forwarding Process: On Data Packet [1] – When a Data packet arrives, an NDN router finds the matching PIT entry and forwards the data to all downstream interfaces listed in that PIT entry. It then removes that PIT entry, and caches the Data in the Content Store. Data packets always take the reverse path of Interests, and, in the absence of packet losses, one Interest packet results in one Data packet on each link, providing flow balance. 5 NDN Routing • Initial deployment: – Extend OSPF; – Extend BGP; • Long-term deployment: – ISP-based aggregation: Practical • FIB size proportional to the number of ISPs; • Similar to provider-assigned IP, but unbounded in size; • How to map user-selected names to provider-assigned names; (indirect routing) • Name-based routing (direct routing) – Hyperbolic routing in Name Space: Ideal • Assuming routers can be assigned coordinates in a name-based metric space, they can compute the name-space distances between their directly connected neighbors and the destination name in the Interest packet; Ref: Zhang et. al, “NDN Project”, 2010; Scalability Issues • The biggest routing table – 4*10^5 entries • ICN routing – 10^12 objects • Challenges – How to compress or aggregate? – How to synchronize? Scalable Routing • Indirect routing using a name resolution system – Use fast name resolution to obtain the locator – Use the locator to forward packets • Direct named-based routing – Use the name of the object to forward packets Indirect Routing Domain Name System (DNS) • Public database system for mapping (and reverse mapping) of domain names to IP addresses (); • Four components: – (1) Domain name space: define the name hierarchy and associate data to the leaf of hierarchy; – (2) DNS protocol: fetch the requested information; – (3) Name server: Store domain name space and respond to incoming queries; • Authoritative name server; • Caching name server; – (4) Resolver: resolve questions with answers; • Caching resolvers: iterative querying; • Stub resolvers: recursive querying; Domain Name System (DNS) • Iterative query: – – – – Caching resolver; discover the existing mapping with minimal knowledge; Select one name server based on the referral; Terminate until resource record (RR) received or not exist; • Recursive query; – Stub resolver; – Access to one or more caching resolver; – Iterative on behalf of the stub resolver; – Return RR exist or not; Domain Name System (DNS) • Scalable: – Hierarchical structure: • Root name server; • Top Level Domain (TLD) name server; • Second Level Domain (SLD) name server; – Distributed properties: • Replicate authoritative name servers all over the world; • Achieve load balancing and failure resilience; – Caching resolver: • The caching resolver will return an answer if it has a cached version, prevent duplicate queries from reaching higher-layer name server; NDN based DNS (NDNS) • Namespace: – Lower case • DNS protocol: – Packet format; – Do NOT need to send query to a specific name server; • Name server: similar • Resolver: – Caching resolver towards less significant; NDNS Iterative Query • Challenges: – Request for data in root zone should be different from the request for SLD zone data; – Requests from different end-users towards the root server asking for “.com” referrals should have the same name; • NDNS: – Instead of asking a name, ask for data in a specific zone; – Each question to different zones is different, even for the same name domain; – Each step of the iterative query progressively specializes the question; Direct Routing Map-and-Encap Routing Map-and-Encap Routing Aggregation • Name-based aggregation • Topology-based aggregation – Divide the network into different clusters, based on (1) physical connection; (2) resource they can provide; (3) different domain; (4) different policy – Perform the name aggregation in each cluster – Form a hierarchical structure • Notice: (1) Topology information is naturally used in routing; (2) Topology is naturally hierarchical and aggregatable Hyperbolic Routing (Ideal) Network Coordinate System • ISP as anchor nodes; • A new name/object can join the system by contacting or referring to a subset (at least two) of the existing nodes in the system, and calculate its coordinates; • Scalable; Ref: F. Dabek. al, “Vivaldi: A Decentralized Network Coordinate System”, ACM SIGCOMM 2004; Hyperbolic Routing in IP • A mapping from routers to nodes in a hyperbolic space – Each router is assigned a coordinate in a hyperbolic space; – Each router only contains its own and its neighbors’ coordinate information, which is scalable; C C: (1, 4) A: (1, 1) D: (3, 2) • Greedy Forwarding (GF) algorithm: – Interest packet contains the destination’s coordinate – Calculate the distance from each neighbor to the destination using hyperbolic distance; – Select the neighbor that is the closest to the destination for forwarding Interest packet; – Terminate when (1) the current router is the closest or (2) the next neighbor is the same as one of the previous nodes; • The hyperbolic routes are close to the shortest paths using Dijkstra algorithm in real topology; D: (3, 2) B: (3, 1) C: (1, 4) D A: (1, 1) B: (3, 1) C: (1, 4) A BD < CD Interest: go to “D” (3, 2) DD < AD B B: (3, 1) A: (1, 1) D: (3, 2) Benefits • Highly scalable because each router only needs to store its own coordinate and its neighbors’ coordinates; • Highly efficient because each router only needs to exchange their coordinates instead of link state; • Very fast and simple computing in each router; • Lead to an intelligent forwarding plane, which is consistent with UCLA’s ICN’14 paper “On the role of routing in NDN”; Hyperbolic Routing in NDN World Name Router How to get coordinate? Router Coordinate How to embed: NMRH How to route: HGCN How to improve embed? How to improve route? Challenges • How to map routers to the hyperbolic space? – [NMRH13] - F. Papadopoulos, C. Psomas, and D. Krioukov. Network Mapping by Replaying Hyperbolic Growth, IEEE/ACM Transactions on Networking, 2014. • How accurate is hyperbolic routing? How to assess the accuracy (e.g., using which matrics)? – [HGCN10] - D. Krioukov, F. Papadopoulos, M. Kitsak, A. Vahdat, and M. Boguna;. Hyperbolic Geometry of Complex Networks, Physical Review E, v. 82, p. 036106, Oct 2010. • How to improve embed? • How to improve routing? • How to get the coordinate? How to improve embed? • NMRH (or HyperMap): – Centralized; • A decentralized algorithm similar to Vivaldi algorithm – Only contact a subset of existing nodes in the system; – Dynamic, scalable, robust; HyperMap Embedding Algorithm y O x Ref: F. Dabek. al, “Vivaldi: A Decentralized Network Coordinate System”, ACM SIGCOMM 2004; How to improve embed? • Hierarchical or multi-level coordinates: – Each router is assigned with multiple coordinates, corresponding to different network level; – AS-level coordinates for BGP routing; – 2nd-level coordinates for IGP routing; – 3rd-level or even more for more detailed routing; – Hierarchical routing; How to improve routing? • Greedy Forwarding (GF): – Forward the packet to the neighbor that is the closest to the destination; – Limitation: all neighbors are farther to the destination than the current router. • Slope-based Forwarding (SF): – Forward the packet to the neighbor that has the smallest θ – θ= (𝑦𝑛 −𝑦𝑐 )/(𝑥𝑛 −𝑥𝑐 ) (𝑦𝑑 −𝑦𝑐 )/(𝑥𝑑 −𝑦𝑐 ) GF A C SF θ1 B θ2 D Interest: A D GF: red interface because CD < BD SF: green interface because θ2< θ1 Path distance: SF < GF because AB+BD < AC+CD How to get coordinate? • Use the NDNS; – Extend the current NDNS to include coordinate information; • object | routable prefix | coordinate – The caching resolver send the iterative query to the NDNS and get the coordinate of the destination; • Pros: accurate; – Only when all the tokens can be resolved; • Cons: long latency due to iterative query; Hyperbolic Routing in NDN World Name Router How to get coordinate? Router Coordinate How to embed: NMRH How to route: HGCN How to improve embed? How to improve route? Name Coordinate Further thought: any possibility for hyperbolic route based on name, e.g., in a name space? How to map name to coordinate directly? • Use clustering algorithm to predict the coordinate – The client side will track and maintain a history of data set of (object name, coordinate); – Online clustering algorithm: • Use k-means to find the cluster based on the name distance (Def: the minimum hops to convert name1 to name2); • For an incoming name, find the first n clusters that it is likely belonging to; • Use these clusters’ coordinate (or the most common coordinate among members of the cluster) to guide routing; • Pros: low latency; • Cons: not very accurate; Mobility in ICN • Mobility in consumer side: – Retransmit Interest; – Usually efficient because of caching in NDN; • Mobility in producer side: – Update the routing table takes long; – Interest pollution because the consumer do not know whether it is a failure or mobility issue; • CCNx: replace IP; • NDN: incremental; Mobility Support in Content Centric Networks • Direct exchange for location update: – Both ends send their new name to the previous locations; – A serious problem when both ends moves; • Indirect exchange for location update: – Query to the Rendezvous for location update; – Rendezvous: A server that keeps track of the location information of all clients; – Long delay; Direct Exchange for Update Location • Interest forwarding scheme: – Do not require a new hierarchical name; – Smaller handoff delay; Indirect Exchange for Update Location • NDN Mobility: – Use NDNS to keep the mapping from stable identifier (content name) to locator (forwarding hint); – First query the DNS and get the forwarding hint, then send the interest;