ndn rtc and experimental library func onality
play

NDN-RTC and Experimental Library Func:onality Peter Gusev NDNComm, - PowerPoint PPT Presentation

NDN-RTC and Experimental Library Func:onality Peter Gusev NDNComm, March 2017 Flume Slack channels + Skype with DVR Conversa:onal group channels Publish audio/video within the text chat context Seamless DVR-like playback and


  1. NDN-RTC and Experimental Library Func:onality Peter Gusev NDNComm, March 2017

  2. Flume Slack channels + Skype with DVR • Conversa:onal group channels • Publish audio/video within the text chat context • Seamless DVR-like playback and access to historical data

  3. Another app? • Con:nua:on of NDN- RTC/ ndncon work • Useful tool • Focusing on: – peer-to-peer scenarios – mundane resilience – data mules – mobile producers

  4. Applica:on iden:ty setup

  5. Incorpora:ng schema:zed trust • Namespace update • Hierarchical verifica:on • Using short-lived (1h) keys for actual data

  6. NDN applica:ons ecosystem App1 App2 App3 • NFD Control Center Instance Key Instance Key Instance Key – required plaZorm for NDN applica:ons – stores and serves applica:on NFD Control Center cer:ficates App1 Signing Key App2 Signing Key – provides API for applica:ons: App3 Signing Key • to request signing iden:ty App1 Key App1 Key App1 Key • to store applica:on iden:ty • connec:vity check NDN

  7. Local connec:vity • Goal: enable NDN apps to operate locally, without requiring testbed connec8on • Establishing local peer-to-peer connec:vity in common adhoc scenarios: Local WiFi, LAN • Two modules: – Discover: discovering nearby peers (WiFi direct, Bonjour, Bluetooth, … ) – Routes management: establish NDN routes between discovered peers

  8. Experimental Library Func:onality • Shim between NDN-CPP and applica:on (Flume) • Experimental concepts and ideas, poten:ally can be generalized for common use in NDN- CPP or NDN-CNL

  9. Channel discovery • Global “discovery” sync object ../hosted/0 User B • User publishes list of sync /ndn/broadcast/flume channel IDs sync sync discovery User A User C • Channel ID list ../hosted/< seqNo > ../hosted/< seqNo > numbered sequen:ally channel 1 channel 1 channel 2 channel 2 channel 3 (ChronoChat message)

  10. Generalized object fetching • _meta describes the object: – MIME content type – :mestamp – content size _meta _manifest %00%00 %00%01 ... %00%NN – other NDN Data Packets Payload Content-Type • payload is segmented Timestamp Manifest 1 2 ... N Content-Size Other • _manifest for verifica:on

  11. Abstrac:ng Interest/Data exchange • Asynchronous callback-based API LocalNamespace n(appPrefix, face, keyChain); Namespace profile = n.scope(“profile”); NamespaceObject o(“data”); Sync object into a namespace: • o.setPayload(“{ username: Peter; bio: ‘UCLA REMAP’; }”); – publish , if namespace is local profile.sync(o, []( NamespaceObject& o){ – fetch, if namespace is remote // published "<appPrefix>/profile/data" }, Namespace scoping • []( NamespaceObject& o, std::string errMsg){ // handle error }); Namespace subtrees • ... RemoteNamespace n(appPrefix, face, keyChain); Namespace profile = n.scope(“profile”); NamespaceObject o(“data”); profile.sync(o, []( NamespaceObject& o){ // fetched "<appPrefix>/profile/data" }, []( NamespaceObject& o, std::string errMsg){ // handle error });

  12. Routable prefix exchange • Using ChronoSync for prefix exchange /ndn/broadcast/ RPE • Happens in background Caida /ndn/org/caida 2. announce 3. attach • Discovered prefixes Interest: /ndn/edu/ucla/remap/peter/data 1. routable prefix 4. express interest LINK: /ndn/org/caida a`ached as LINK objects /ndn/org/caida Peter to Interests Jeff /ndn/edu/ucla/remap/peter

  13. Storage • Persistence across mul:ple app launches • Storage rota:on scheme • Handles high frequency interests (real-:me requirement) • Store other peer’s data

  14. Storage. Serving data App Persistent Storage ✘ ✓ Local NFD data ? Business Logic store ✘ Memory Content Cache NDN ? ? interest data ✘ Content Cache ✓ ✓ data data

  15. Storage. Reques:ng data App Persistent Storage ✓ ✘ data Local NFD ? Business Logic ✘ ✓ data Memory Content Cache NDN ? interest ✘ Content Cache ✓ ✓ data data

  16. Data mules Zoe /flume/user/zoe /flume/user/zoe/channel-A channel-A /flume/user/zoe/channel-A about text audio video announcement - channel name - description - … Peter /flume/user/peter /flume/user/zoe channel-A channel-A Zhehao text audio video about text audio video /flume/user/zhehao /flume/user/zoe announcement channel-A channel-A text audio video about text audio video announcement

  17. Roadmap NFDcc scope NFD 1.1 NFDcc status check NFD 5. Testbed connectivity: routes re-advertisement NFD 6.2. Local connectivity: routes management NFD 6.1. Local connectivity: discovery NFD 2.1.1 Request existing identity NFD 3.2 Testbed Connectivity NFD 3.1 Routable prefixes 2.1.2 Request new identity NFD APP 2. Namespace design APP 4.4. Channel API: historical retrieval APP 4.1. Channel API: create channel App scope APP 5.1. New UI: live APP 5.2. New UI: historical APP 9. User profile APP 9. Release APP 4.2. Channel API: messaging APP 1. Live streaming APP 7. Historical streaming APP 8. Data muling APP 3. Channel discovery 4.3. Channel API: updates 6. Storage 6.1. Storage rotation scheme APP APP APP APP 10. Online members list Library scope LIB 3.1. MC ChronoChat: discovery LIB 1. RPE LIB 3.3. ChronoChat: optional app info LIB 2. Data encapsulation LIB 4. Generalized NDN-object fetching Milestone 1 Milestone 2 Milestone 3 Historical playback: Release: New UI with current functionality (extended): - channels: text, tags, signaling, streams - local storage (own data) - data muling (other peer’s data) - storage rotation scheme - local connectivity - channel discovery - live streaming - file attachments - testbed connectivity: readv. - testbed connectivity - NFDcc identity management API

  18. TBD NFD scope • Iden:ty management API – To Be Implemented – Testbed connec:vity status – To Be Implemented – Cer:ficate bundle/NFD RIB direct cert fetch – To Be Implemented – Routes re-adver:sement – Feedback (#3818) – Local connec:vity – To Be Implemented – Library scope • Routable prefix exchange – To Be Implemented – Persistent storage – To Be Implemented – App scope ( To Be Implemented ) • Storage – Channel API: historical playback – Data mules (mul:-producer) – UI –

  19. THANK YOU

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend