We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Librecast: Privacy and Decentralization with Multicast

00:00

Formal Metadata

Title
Librecast: Privacy and Decentralization with Multicast
Subtitle
IPv6 Multicast and the Next Generation Internet
Title of Series
Number of Parts
490
Author
License
CC Attribution 2.0 Belgium:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
Written in 2001, RFC 3170 states: "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." Nearly two decades later, multicast is still largely ignored and misunderstood. This talk explains why multicast is the missing piece in the decentralization puzzle, how multicast can help the Internet continue to scale, better protect our privacy, solve IOT problems and make polar bears happier at the same time. NB: This is a shortened lightning-talk version of the full talk given at Linux.conf.au in January. There are many common misconceptions about multicast, including that it is only useful for streaming video and audio. It does so much more than that. Multicast is really about group communication. It is, by definition, the most efficient way to distribute data to groups of nodes. Multicast brings with it a very different way of thinking about distributed systems, and what is possible on the Internet. From database replication to chatops, server federation, configuration management and monitoring. Even applications, such as chat, which are fundamentally multicast in nature are being built on top of unicast protocols. There is a Better Way. Unicast networking leads to centralised and inefficient systems that are more open to attack and censorship. This talk will show how multicast allows for more efficient, decentralized designs, leading to increased efficiency and much-reduced energy consumption. This is better for our democracy, human rights and our planet. Multicast lets us do things that would be impossible with unicast. Imagine sending software updates to a billion IoT nodes simultaeneously, using just one tiny virtual server. At a time when even the web is moving to UDP with HTTP/3 and WebRTC, it is time we took a serious look at what we're missing by not using multicast at the network layer to underpin our Internet protocols. We'll discuss how you can start using multicast in your project today, and how multicast design and thinking differs from unicast. We'll cover some of the different types of IP multicast, the basics of multicast routing, how to build in TCP-like reliability and take a look forward to how improvements in multicast can make a better Internet for the future.
InternetworkingSlide rule
Computer programmingMereologyProjective planeConnected spaceMultiplication signBuildingAxiom of choiceLine (geometry)Structural loadUnicastingverfahrenLimit (category theory)InternetworkingSlide ruleInformationWage labourMultiplicationUniqueness quantificationComputer animation
Software developerLibrary (computing)Communications protocolCartesian coordinate systemProjective planeGroup actionCommunications protocolFormal languageLibrary (computing)Cartesian coordinate systemMoment (mathematics)Standard deviationInternetworkingWage labourSlide ruleMultiplicationReading (process)Forcing (mathematics)EmbargoBuildingComputer animation
Scale (map)Function (mathematics)Address spaceSoftwareInternetworkingSlide ruleSoftware developerInformation privacyCartesian coordinate systemComputer configurationCasting (performing arts)Execution unitComputer animation
Bit
UnicastingverfahrenBroadcasting (networking)UnicastingverfahrenCASE <Informatik>Broadcasting (networking)Form (programming)Point (geometry)BitExecution unitExpert systemInternetworkingAsynchronous Transfer ModeUniform boundedness principleVideoconferencingComputer animation
Streaming mediaInternetworkingVideoconferencingTelecommunicationComputer animation
Server (computing)Centralizer and normalizerUnicastingverfahrenSlide ruleSoftwareDefault (computer science)CodeServer (computing)Multiplication signWeb 2.0VideoconferencingBitCartesian coordinate systemDiagramBridging (networking)Real numberComputer animationLecture/Conference
InternetworkingSlide ruleVideoconferencingComputer animationLecture/Conference
FacebookPoint cloudOpen sourceComputer animation
Transcript: English(auto-generated)
OK, we're going to have to go with slides that are over there. That's going to make this interesting. But as I'm two minutes in already, let's get started. My name's Brett Sheffield from the LibraCast Project, which
is now part of the NGI Zero program for decentralizing the internet, building a new, better internet. If you're interested in that and how you can perhaps get some funding for your project, then come and see me afterwards. And there's also an NGI Zero BoF this afternoon
where there'll be lots of people from NGI Zero projects and the NLNet Foundation guys who can, you can talk to them about getting funding. I think given this is the decentralized dev room, that'll be quite applicable. So just before we begin, can I borrow you for a sec? I just want to give you a choice.
We could do this talk in a unicast way, or we can do it in a multicast way. So just to give you an idea of what that might be like, in a unicast world, I'd need to start with a handshake. And we'll need to maintain that TCP handshake throughout the talk. And then if you could all just form a line behind him here,
I can deliver the talk to you one at a time. Now, of course, I'm being ridiculous. We're much cleverer than that in unicast, aren't we? I could do two of you at once. Or maybe you could attach to my legs. But that's probably about my limit. And obviously, the more connections I'm maintaining,
I'm having to repeat the same information, the load on me as the speaker is going up and up. Well, that's unicast, thank you. Or, and I realize this might be the first time for some of you, we could do this in a multicast way. Essentially, by coming to this room,
you have performed a join on my multicast group. Thank you. That's going to save a lot of time. So who's for unicast? Always one or two. And multicast? Okay, well, I didn't need 10 minutes. I've already convinced you all that multicast is better than unicast.
Fantastic. I haven't got off my first slide yet. So, that was a LibraCast logo. Let me tell you about the project. Basically, I'm aiming to get multicast working across the internet, decentralize the internet with multicast. And the way I'm doing that is by putting it in the hands of you guys, developers.
We already have a LibraCast multicast library, so you can build your applications with that. Just hash include LibraCast.h. Other language is coming soon, but at the moment it's C. We'll be building a messaging library on top of that, a la ZeroMQ, very similar.
We're also building transitional technology on top of that, which is essentially tunneling. This is not new stuff that I'm doing here. This is 30-year-old technology that I'm bringing you today. If you remember the M-Bone, or given we're in Brussels, Castgate, perhaps. This has been done before. It's just not been done with IPv6, and it's not been done well.
We're building an improved routing protocol to break the dependence of multicast on unicast, and I'm building some multicast-enabled applications and trying to work with FOSS projects to enable multicast everywhere, and also ensure that new standards such as WebRTC and QUIC,
which are based on UDP, do not exclude multicast. So you can't really see that, but basically if you've used ZeroMQ before, the API is very familiar. Download my slides. I'll read that to you. In 2001, RFC 3170 was written. It says, 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. Now, that was 2001. What year is it? So, yeah, we're not really using multicast. Most people have heard of it,
but there are a lot of misconceptions. It's largely ignored. Multicast is more efficient than unicast. It's more scalable than unicast. It has important privacy advantages over unicast. No destination address for a start. It's the missing piece in the decentralization puzzle, which is important for this dev room,
and it can also help make this fellow, which is a polar bear, quite a bit happier as well, because multicast is far more efficient. We can build less data centers, and that's important. So what is multicast? We'll start with a definition. You've probably heard that unicast is one-to-one, yeah?
And broadcast is one-to-all nodes. Multicast is one-to-many, yeah? You've all heard that? Well, that's wrong. No form of IP multicast in use today works like that. It's not one-to-many. It's one-to-a-group. In the case of unicast, you set the destination.
In the case of multicast, you send to a group. It's pub-sub. So unicast and broadcast are fundamentally different, and there's no point me doing the next bit because you can't see it, but basically, unicast and broadcast are push, and multicast is pull. You can't spam with multicast. I'll skip over that.
Many misconceptions are around multicast, that it's only good for streaming, it's no use for video on demand, it's unreliable, it's insecure, it can't work on the Internet, and that's all wrong. Multicast is essentially about group communication. The funny thing is, all communication is group communication.
Even one-to-one is just a very small group. So the problem with unicast is it leads to massive centralization. Thank you, slides. Multicast leaves open the possibility of decentralized designs by default. Multicast is decentralized by default. And that's an OSI layer diagram, which you're all familiar with.
There are many of you here working on decentralized solutions, but you're all working at layer 7, the application layer. We can decentralize at the network layer, layer 3. That's far more efficient and saves you a lot of coding. Here's a real-world example, which is going to be difficult to show you. But if you can imagine that I have a forking web server
and that is plugged into a local bridge, then, yeah, I'm running out of time and I don't have a slide to back me up. So, essentially, that's impossible to show you without that.
So if you want to know more about it, hopefully with slides, come to the IoT Dev Room a bit later on. I'm talking at 12.10, and I have a longer slot to talk to you about it. There's also a video from my LCA talk where I had a full hour to tell you what I'm trying to tell you with no slides in 10 minutes.
So come and find me in the NGI Zero BoF room this afternoon. Fabulous.