iot updates with ipv6 multicast
play

IoT Updates with IPv6 Multicast Brett Sheffield, Librecast Project - PowerPoint PPT Presentation

IoT Updates with IPv6 Multicast Brett Sheffield, Librecast Project @brett sheffield #FOSDEM2020 Before we begin... Multicast IP Multicast will play a prominent role on the Internet in the coming years. It is a requirement, not an option,


  1. IoT Updates with IPv6 Multicast Brett Sheffield, Librecast Project @brett sheffield #FOSDEM2020

  2. Before we begin...

  3. Multicast ”IP Multicast will play a prominent role on the Internet in the coming years. It is a requirement, not an option, if the Internet is going to scale. Multicast allows application developers to add more functionality without significantly impacting the network.” – RFC 3170, Sep 2001

  4. Multicast Efficient

  5. Multicast Scalable

  6. Multicast Real-World

  7. Multicast Privacy

  8. Multicast Decentralisation

  9. What is Multicast?

  10. Definition

  11. Definition Unicast

  12. Definition Unicast Broadcast

  13. Definition Unicast Broadcast Multicast

  14. Definition Unicast Broadcast Multicast

  15. What is Multicast? Unicast, Broadcast Multicast

  16. What is Multicast? Unicast, Broadcast PUSH Multicast

  17. What is Multicast? Unicast, Broadcast PUSH Multicast PULL

  18. Multicast Misconceptions

  19. Multicast Misconceptions ◮ only for streaming

  20. Multicast Misconceptions ◮ only for streaming ◮ no use for video on demand

  21. Multicast Misconceptions ◮ only for streaming ◮ no use for video on demand ◮ unreliable

  22. Multicast Misconceptions ◮ only for streaming ◮ no use for video on demand ◮ unreliable ◮ insecure

  23. Multicast Misconceptions ◮ only for streaming ◮ no use for video on demand ◮ unreliable ◮ insecure ◮ can’t work on Internet

  24. Multicast Misconceptions ◮ only for streaming ◮ no use for video on demand ◮ unreliable ◮ insecure ◮ can’t work on Internet

  25. Multicast is ...

  26. Multicast is ... Group Communication

  27. All Communication is Group Communication

  28. IoT Updates

  29. https://github.com/librestack/iotupd

  30. Datagram:

  31. Datagram: ◮ checksum

  32. Datagram: ◮ checksum ◮ size of file

  33. Datagram: ◮ checksum ◮ size of file ◮ size of chunk

  34. Datagram: ◮ checksum ◮ size of file ◮ size of chunk ◮ offset

  35. Datagram: ◮ checksum ◮ size of file ◮ size of chunk ◮ offset ◮ data

  36. What Just Happened?

  37. TCP/IP

  38. Are there other ways we can achieve TCP/IP-like reliability?

  39. PGM (RFC 3208 - Experimental)

  40. NACKs, Replay

  41. Loop and Repeat

  42. FEC

  43. Flow Control

  44. Flow Control

  45. Flow Control

  46. Flow Control

  47. Flow Control

  48. Flow Control

  49. Flow Control

  50. Flow Control

  51. Reliability

  52. Reliability

  53. DNS

  54. Anatomy of an IPv6 Multicast Address

  55. Anatomy of an IPv6 Multicast Address ff

  56. Anatomy of an IPv6 Multicast Address ff1

  57. Anatomy of an IPv6 Multicast Address ff1e

  58. Anatomy of an IPv6 Multicast Address ff1e: + group address (112 bits)

  59. Multicast ”DNS” ff1e: + HASH(”example.com”)

  60. Multicast ”DNS” example.com = ⇒ ff1e:873e:378f:f6a5:a1f6:fa49:95f1:0faf

  61. Librecast

  62. Librecast

  63. Librecast ◮ Developers Developers Developers

  64. Librecast ◮ Developers Developers Developers ◮ Messaging Library

  65. Librecast ◮ Developers Developers Developers ◮ Messaging Library ◮ Transitional Technology

  66. Librecast ◮ Developers Developers Developers ◮ Messaging Library ◮ Transitional Technology ◮ Improved Routing Protocol

  67. Librecast ◮ Developers Developers Developers ◮ Messaging Library ◮ Transitional Technology ◮ Improved Routing Protocol ◮ Build multicast-enabled applications

  68. Librecast ◮ Developers Developers Developers ◮ Messaging Library ◮ Transitional Technology ◮ Improved Routing Protocol ◮ Build multicast-enabled applications ◮ Work with FOSS projects to enable multicast everywhere

  69. Librecast ◮ Developers Developers Developers ◮ Messaging Library ◮ Transitional Technology ◮ Improved Routing Protocol ◮ Build multicast-enabled applications ◮ Work with FOSS projects to enable multicast everywhere ◮ Ensure new standards (eg. WebRTC, QUIC) support multicast

  70. l c c t x t ∗ ctx ; l c s o c k e t t ∗ sock ; l c c h a n n e l t ∗ chan ; l c m e s s a g e t msg ; ctx = l c c t x n e w ( ) ; sock = l c s o c k e t n e w ( ctx ) ; chan = lc channel new ( ctx , channelName ) ; l c c h a n n e l b i n d ( sock , chan ) ; l c m s g i n i t s i z e (&msg , s t r l e n ( msgtext ) − 1 ) ; lc msg send ( chan , &msg ) ; / ∗ clean up ∗ / l c s o c k e t c l o s e ( sock ) ; l c c h a n n e l f r e e ( chan ) ; l c c t x f r e e ( ctx ) ;

  71. Brett Sheffield — Librecast Project http://brettsheffield.com — Email: brett@librecast.net Freenode: bacs — Twitter: @brett sheffield github.com/brettsheffield — github.com/librestack

Recommend


More recommend