[From the last episode: We looked at unicastSending a message to one single destination., sending a message from a source to a single destination.]
From the one-to-one messaging we saw last week, we move to its logical opposite: one to all, or even all to all. This is called broadcast since “all” receivers will get it, not just one.
But what does “all” mean, and how do you address something to “all”?
Not that “all”!
First, let’s be clear: “all” doesn’t mean ALL! Or else a message would go everywhere on the internet that it could get to. We have enough trafficRefers to any kind of electronic message -- email, web request, streaming video, or anything else -- that travels over a network. out there already without that! (OK, actually, in the future there will likely be way more traffic than we have today, but still – no need to clog it more!)
So “all” refers to everything within some region or domain – not physically, but from the network standpoint. In other words, two parts of a network might be in two different physical locations, but they’re still on the same network.
We could dig into this more by exploring the way network addresses work, but that gets pretty fussy, and it depends on which protocol you’re using. In fact, when we talk about broadcasting, we’re usually talking either about IPThis can mean two things (at least):
• The Internet Protocol. Governs the addresses of sources and destinations on a network (without worrying about what’s in between). Used on Layer 3 of the stack.
• "Intellectual property." This can have lots of meanings, but, in the computer-chip world, it refers to parts of a chip design that have been built and optimized by one company, which then sells them to other companies that don’t want to design those blocks themselves. They’re not selling actual chips; they’re selling the design of a block that will be used within a chip.
(third layer of our stackRelated to communications: A way of organizing parts of a complicated process (like communications) so that any task relies on tasks below it and feeds the tasks above it. Related to computing: A place in memory where you store “where was I?” information when you go from, say, one function into another. Before starting a new function, you store where you were in the old one so that, when the new function ends and you’re back in the old one, you can figure out where you were and continue on.) or EthernetA very common Layer 1 and 2 standard for wired network connections. (second layer of our stack). And it’s not even that straightforward: IPv4 (which we talked about last time) can do broadcasting; IPv6 cannot. (It does multicasting; more on that next week.)
We’ve seen IP addresses before. Ethernet also uses an address – one referred to as the Media Access Controller, or MAC address. You may have had to find the MAC address on a printer or some other device when talking to a support person. Yeah, it’s that same MAC address. But it works differently from an IPv4 address, so let’s don’t get lost in the detail. Instead, let’s use an analogy.
One Address to Rule them All… Sort of…
By using a specific broadcast address, you can send a message to every receiver in some part of the network. It could be the most local part (as it would be with Ethernet) or it could be more extended. So let’s use mailing addresses (of the old-fashioned kind) as the analogy. In fact, the US Post Office probably implements some of this for the junk mail it delivers that doesn’t have your actual address on it. You might elect to send a letter to…
- … everyone on your block.
- … everyone within your general neighborhood.
- … everyone in your town.
- … everyone in your county.
And so forth.
Now, as we suggested last week, you could handle this by sending a bunch of messages, each going to one of the recipients. But there are (at least) two problems with this:
- You’re sending a ton of messages instead of just one.
- You have to know the specific addresses of everyone in range, which you may not.
This is where the single broadcast message is more efficient.
But here’s something else that’s probably not obvious: depending on how your network is set up, every receiver may possibly get every message already. In these kinds of networksA collection of items like computers, printers, phones, and other electronic items that are connected together by switches and routers. A network allows the connected devices to talk to each other electronically. The internet is an example of an extremely large network. Your home network, if you have one, is an example of a small local network., every receiver has to look at every packetA group of bits being sent from one place to another. How big the group is may vary depending on what kind of packet it is. Long messages -- like an email -- will typically be broken up into many packets, each of which travels independently until it gets to the destination, where they're reassembled into the email. to see if the packet address is its own. When computer A sees a message addressed to computer A, then computer A brings the message in and finishes all the processing to make use of the message. If it receives a message addressed to computer B, it stops processing and ignores it.*
Don’t Ignore Me!
So your computer might see everything anyway. If that’s the case, why would we need a broadcast address? So that the computer knows not to ignore the message that wouldn’t be specifically addressed to it. It sees the special “to whom it may concern” address and says, “Hmmm… not addressed to me specifically, but I better take a look.”
Next week we look at something in between unicast and broadcast, which will bring us to a higher-level way of managing lots of messages to lots of potentially unknown receivers – but not to everyone.
* As an aside, it does this by looking at those headers we talked about before. For this reason, many protocolsAn agreed way of doing something. Like a convention, except that protocols tend to be related to processes. try to make the headers easy and fast to read. While your computer is on, but idle, you might think it doesn’t have much of anything to do. After all, your email client might go look for emails every 10 minutes or so, but other than that, there’s nothing, right?
Nope… if you’re on one of those networks, your computer still has to look at everything coming by. It’s just that it ignores the vast majority of it.
Leave a Reply