Lecture 4 - Van Jacobson’s NNC: a prominent evolutionary FIA D.Sc. Arto Karila Helsinki Institute for Information Technology (HIIT) arto.karila@hiit.fi 18.09.2012 M.Sc. Mark Ain Helsinki Institute for Information Technology (HIIT) mark.ain@hiit.fi T-110.6120 – Special Course in Future Internet Technologies 1 *** NEWS *** We now have 5 participants in the course. All FIA readings are optional Those that are presented in the lectures will be covered in the final exam (DONA, HAGGLE, PSIRP, ROFL, SEATTLE) No lectures cancelled 18.09.2012 2 Networking Named Content Based on and pictures borrowed from: Jacobson, V.; Smetters, D. K.; Thornton, J. D.; Plass, M. F.; Briggs, N.; Braynard, R. Networking named content. Proceedings of the 5th ACM International Conference on Emerging Networking Experiments and Technologies (CoNEXT 2009); 2009 December 1-4; Rome, Italy. NY: ACM; 2009; 1-12. Warm thanks to Van Jacobson for the permission to use his pictures 18.09.2012 3 Host-Centric Networking In 1960’s and 1970’s – resource sharing Computers, disk drives, tape drives, printers etc. needed to be shared This lead into a communication model with two machines – one using and one providing resources over the network IP packets with source and destination Most of the traffic is TCP connections 18.09.2012 4 Content-Centric Networking (CCN) In 2009 alone 500 exabytes (5 x 1020 B) of content created (source: RFC 5401) Users are interested in what content – not where it is CCN – a communication architecture built on named data “Address” names content – not location Preserve the design decisions that make TCP/IP simple, robust and scalable 18.09.2012 5 TCP/IP and CCN Protocol Stacks From IP to chunks of named content Only layer 3 requires universal agreement 18.09.2012 6 Interest and Data packets There are two types of CCN packets: Interest packets Data packets 18.09.2012 7 CCN Node Model There are two types of CCN packets: Interest packets Data packets Consumer broadcasts its Interest over all available connectivity Data is transmitted only in response to an Interest and consumes that Interest Data satisfies an Interest if ContentName in the Interest is a prefix of that in the Data 18.09.2012 8 CCN Node Model Hierarchical name space (cmp w/ URI) When a packet arrives on a face a longest-match lookup is made Forwarding engine with 3 data structures: Forwarding Information Base (FIB) Content Store (buffer memory) Pending Interest Table (PIT) 18.09.2012 9 CCN Node Model FIB allows a list of outgoing interfaces – multiple sources of data Content Store w/ LRU or LFU replacement PIT keeps track of Interest forwarded up-stream => Data can be sent downstream Interest packets are routed upstream – Data packets follow the same path down Each PIT entry is a “bread crumb” marking the path and is erased after it’s been used 18.09.2012 10 CCN Forwarding Engine 18.09.2012 11 CCN Node Model When an Interest packet arrives, longest-match lookup is done on its ContentName ContentStore match is preferred over a PIT match, preferred over a FIB match Matching Data packet in ContentStore => send it out on the Interest arrival face Else, if there is an exact-match PIT entry => add the arrival face to the PIT entry’s list Else, if there is a matching FIB entry => send the Interes up-stream towards the data Else => discard the Interest packet 18.09.2012 12 CCN Transport CCN transport is designed to operate on unreliable packet delivery services Senders are stateless Receivers keep track of unsatisfied Interests and ask again after a time-out The receiver’s strategy layer is responsible for retransmission, selecting faces, limiting the number of unsatisfied Interests, priority One Interest retrieves at most one Data packet => flow balance 18.09.2012 13 Reliability and Flow Control Flow balance allows for efficient communication between machines with highly different speeds It is possible to overlap data and requests In CCN, all communication is local and flow balance is maintained over each hop This leads into end-to-end flow control without any end-to-end mechanisms 18.09.2012 14 Naming CCN is based on hierarchical, aggregatable names at least partly meaningful to humans The name notation used is like URI 18.09.2012 15 Naming and Sequencing An Interest can specify the content exactly Content names can contain automatically generated endings used like sequence #s The last part of the name is incremented for the next chunk (e.g. a video frame) The names form a tree which is traversed in preorder In this way, the receiver can ask for the next Data packet in his Interest packet 18.09.2012 16 Intra-Domain Routing Like IPv4 and IPv6 addresses, CCN ContentNames are aggregateable and routed based on longest match However, ContentNames are of varying length and longer than IP addresses The TLV (Type Label Value) of OSPF or IS-IS can distribute CCN content prefixes Therefore, CCN Interest/Data forwarding can be built on existing infrastructure without any modification to the routers 18.09.2012 17 Intra-Domain Routing An example of intra-domain routing 18.09.2012 18 Inter-Domain Routing The current BGP version has the equivalent of the IGP TLV mechanism Through this mechanism, it is possible to learn which domains serve Interests in some prefix and what is the closest CCN-capable domain on the paths towards those domains Therefore, it is possible to deploy CCN in the existing BGP infrastructure 18.09.2012 19 Content-Based Security In CCN, the content itself (rather than its path) is protected One can retrieve the content from the closest source and validate it All content is digitally signed Signed info includes hash of the public key used for signing We still need some kind of a Public Key Infrastructure (PKI) 18.09.2012 20 Trust Establishment Associating name spaces with public keys 18.09.2012 21 Evaluation The CCN architecture described has been implemented and evaluated Voice over CCN and Content Distribution were tested with small networks The results are interesting but don’t really tell us anything about the scalability of the design 18.09.2012 22 Voice over CCN Secure Voice over CCN was implemented using Linphone 3.0 and its performance evaluated Caller encodes SIP INVITE as CCN name and sends it as an interest On receipt of the INVITE, the callee generates a signed Data packet with the INVITE name as its name and the SIP response as its payload From the SIP messages, the parties derive paired name prefixes under which they write RTP packets There is a separate paper on Voice over CCN 18.09.2012 23 Voice over CCN – Automatic Failover 18.09.2012 24 Content Distribution 18.09.2012 25 Throughput 18.09.2012 26 Comparing CCN and HTTP 18.09.2012 27 Comparing CCN and HTTPS 18.09.2012 28 Merits of CCN Very understandable scheme Shown to work also with streamed media Clever reuse of existing mechanisms Easy to implement based on current routing software Easy to deploy on existing routing protocols and IP networks Easy, human-readable naming scheme 18.09.2012 29 Concerns about CCN The simple hierarchical (URI-like) naming scheme is also a limitation Will CCN scale to billions of nodes? Flooding (send out through all available faces) Flow balance – an Interest for every Data How large can the FIB grow (soft state)? Data takes the same (possibly non-optimal) path as Interest Are the performance measurements made with only a couple of hosts convincing? Security architecture looks very conventional 18.09.2012 30 Thank you for your attention! Questions? Comments? Good luck with your presentations! If you have any questions or concerns… mark.ain@hiit.fi 18.09.2012 31