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

iot updates with ipv6 multicast
SMART_READER_LITE
LIVE PREVIEW

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,


slide-1
SLIDE 1

IoT Updates with IPv6 Multicast

Brett Sheffield, Librecast Project @brett sheffield #FOSDEM2020

slide-2
SLIDE 2

Before we begin...

slide-3
SLIDE 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

slide-4
SLIDE 4

Multicast

Efficient

slide-5
SLIDE 5

Multicast

Scalable

slide-6
SLIDE 6

Multicast

Real-World

slide-7
SLIDE 7

Multicast

Privacy

slide-8
SLIDE 8

Multicast

Decentralisation

slide-9
SLIDE 9
slide-10
SLIDE 10

What is Multicast?

slide-11
SLIDE 11

Definition

slide-12
SLIDE 12

Definition

Unicast

slide-13
SLIDE 13

Definition

Unicast Broadcast

slide-14
SLIDE 14

Definition

Unicast Broadcast Multicast

slide-15
SLIDE 15

Definition

Unicast Broadcast Multicast

slide-16
SLIDE 16

What is Multicast?

Unicast, Broadcast Multicast

slide-17
SLIDE 17

What is Multicast?

Unicast, Broadcast PUSH Multicast

slide-18
SLIDE 18

What is Multicast?

Unicast, Broadcast PUSH Multicast PULL

slide-19
SLIDE 19
slide-20
SLIDE 20

Multicast Misconceptions

slide-21
SLIDE 21

Multicast Misconceptions

◮ only for streaming

slide-22
SLIDE 22

Multicast Misconceptions

◮ only for streaming ◮ no use for video on demand

slide-23
SLIDE 23

Multicast Misconceptions

◮ only for streaming ◮ no use for video on demand ◮ unreliable

slide-24
SLIDE 24

Multicast Misconceptions

◮ only for streaming ◮ no use for video on demand ◮ unreliable ◮ insecure

slide-25
SLIDE 25

Multicast Misconceptions

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

slide-26
SLIDE 26

Multicast Misconceptions

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

slide-27
SLIDE 27

Multicast is ...

slide-28
SLIDE 28

Multicast is ... Group Communication

slide-29
SLIDE 29

All Communication is Group Communication

slide-30
SLIDE 30
slide-31
SLIDE 31

IoT Updates

slide-32
SLIDE 32

https://github.com/librestack/iotupd

slide-33
SLIDE 33

Datagram:

slide-34
SLIDE 34

Datagram:

◮ checksum

slide-35
SLIDE 35

Datagram:

◮ checksum ◮ size of file

slide-36
SLIDE 36

Datagram:

◮ checksum ◮ size of file ◮ size of chunk

slide-37
SLIDE 37

Datagram:

◮ checksum ◮ size of file ◮ size of chunk ◮ offset

slide-38
SLIDE 38

Datagram:

◮ checksum ◮ size of file ◮ size of chunk ◮ offset ◮ data

slide-39
SLIDE 39
slide-40
SLIDE 40
slide-41
SLIDE 41
slide-42
SLIDE 42
slide-43
SLIDE 43
slide-44
SLIDE 44
slide-45
SLIDE 45
slide-46
SLIDE 46
slide-47
SLIDE 47
slide-48
SLIDE 48
slide-49
SLIDE 49
slide-50
SLIDE 50
slide-51
SLIDE 51
slide-52
SLIDE 52
slide-53
SLIDE 53
slide-54
SLIDE 54
slide-55
SLIDE 55
slide-56
SLIDE 56
slide-57
SLIDE 57
slide-58
SLIDE 58

What Just Happened?

slide-59
SLIDE 59

TCP/IP

slide-60
SLIDE 60

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

slide-61
SLIDE 61
slide-62
SLIDE 62

PGM (RFC 3208 - Experimental)

slide-63
SLIDE 63

NACKs, Replay

slide-64
SLIDE 64

Loop and Repeat

slide-65
SLIDE 65

FEC

slide-66
SLIDE 66

Flow Control

slide-67
SLIDE 67

Flow Control

slide-68
SLIDE 68

Flow Control

slide-69
SLIDE 69

Flow Control

slide-70
SLIDE 70

Flow Control

slide-71
SLIDE 71

Flow Control

slide-72
SLIDE 72

Flow Control

slide-73
SLIDE 73

Flow Control

slide-74
SLIDE 74

Reliability

slide-75
SLIDE 75

Reliability

slide-76
SLIDE 76

DNS

slide-77
SLIDE 77

Anatomy of an IPv6 Multicast Address

slide-78
SLIDE 78

Anatomy of an IPv6 Multicast Address

ff

slide-79
SLIDE 79

Anatomy of an IPv6 Multicast Address

ff1

slide-80
SLIDE 80

Anatomy of an IPv6 Multicast Address

ff1e

slide-81
SLIDE 81

Anatomy of an IPv6 Multicast Address

ff1e: + group address (112 bits)

slide-82
SLIDE 82

Multicast ”DNS”

ff1e: + HASH(”example.com”)

slide-83
SLIDE 83

Multicast ”DNS”

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

slide-84
SLIDE 84

Librecast

slide-85
SLIDE 85

Librecast

slide-86
SLIDE 86

Librecast

◮ Developers Developers Developers

slide-87
SLIDE 87

Librecast

◮ Developers Developers Developers ◮ Messaging Library

slide-88
SLIDE 88

Librecast

◮ Developers Developers Developers ◮ Messaging Library ◮ Transitional Technology

slide-89
SLIDE 89

Librecast

◮ Developers Developers Developers ◮ Messaging Library ◮ Transitional Technology ◮ Improved Routing Protocol

slide-90
SLIDE 90

Librecast

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

slide-91
SLIDE 91

Librecast

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

slide-92
SLIDE 92

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

slide-93
SLIDE 93

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 ) ;

slide-94
SLIDE 94
slide-95
SLIDE 95

Brett Sheffield — Librecast Project

http://brettsheffield.com — Email: brett@librecast.net Freenode: bacs — Twitter: @brett sheffield github.com/brettsheffield — github.com/librestack