Show networks
An entertainment network carries traffic with a property office IT rarely has to think about: some of it is worthless if it arrives late. Three things follow from that.
Question one
Why does QoS matter more here than in an office?
In an office, a late packet is a slower file. On a show network, a late packet can be a clock. Dante, AES67 and ST 2110 all lock their devices to a shared PTP reference, and PTP works by measuring how long messages take to arrive. Delay a clock message behind a big file copy and the receiver does not just get the time late — it calculates the wrong time.
That is why audio-over-IP fails the way it does: not gracefully, not gradually, but as clicks and dropouts on a network whose bandwidth graph looks fine. The link was never full. One queue was, for a few milliseconds, at the wrong moment.
Quality of Service is the switch being told which packets to send first when it cannot send everything at once. Clock highest, media next, everything else last.
- An unmanaged switch cannot do this at all. It has one queue. This is the entire reason a media network specifies managed switches.
- DSCP is layer 3, PCP is layer 2. An untagged access port has no PCP field, so half the QoS a vendor guide describes silently does not exist on that port.
- Two systems can both be right and still collide. Dante marks audio EF 46; standard AES67 marks its clock EF 46. In one queue, one system’s audio starves the other’s clock. The QoS planner flags that pairing.
- Energy-efficient Ethernet parks ports to save power. On a media port it adds exactly the jitter you configured QoS to remove. Turn it off.
Question two
How do I calculate a subnet mask?
An IPv4 address is 32 bits. The mask does one job: it says how many of those bits from the left identify the network, leaving the rest to identify the host. That is the whole idea — /24 means "the first 24 bits are the network".
Everything else is arithmetic that falls out of it. Set the host bits to all zeros and you have the network address. Set them to all ones and you have the broadcast address. The number of hosts is two to the power of the host bits, minus two — one for the network address, one for the broadcast.
Drag the boundary below and watch it happen. The bits that turn teal are the network; the amber ones are what is left for devices.
- A /24 is not "the last number". 172.16.5.9/20 lives in the block that starts at 172.16.0.0 and ends at 172.16.15.255 — the boundary does not land on a dot.
- Two devices on the same wire with different masks cannot talk reliably. Each computes a different idea of what is local, so traffic goes one way and not the other.
- Use the RFC 1918 private ranges — 10.x, 172.16–31.x, 192.168.x. A show network on public address space will collide with something eventually.
- Art-Net historically defaults to 2.x.x.x/8, which is public address space and enormous. Fine on an isolated rig, a problem the moment that rig meets a house network.
Question three
Why does multicast need the switch’s help?
Multicast is how one sender reaches many receivers without sending a copy to each — the mechanism sACN, Dante and ST 2110 all rely on to scale past a handful of devices.
But a switch does not know who wants a given multicast group unless it is listening to the messages where devices subscribe. Without IGMP snooping, and an IGMP querier somewhere on the VLAN to prompt those messages, the switch does the only safe thing it can: it sends every multicast packet to every port.
On a small rig that is invisible. On a full lighting network it is every universe arriving at every device, including the laptop that just wanted to be on the wifi.
One model, four kinds of traffic
The Four Flows, and what kills each one
Everything on a show network is one of four things. That is the whole model, and it is worth more than any single protocol fact on this site, because it turns "what is this packet" into "what should I expect this switch to do to it".
The four are control, media, clock and management. Each has a character, and — this is the half that makes the model predictive rather than decorative — each has one specific thing that kills it.
Every protocol entry on this site names its flow, and says so before it gives you a single port number, because the flow is the frame the numbers sit in.
Control
Small, urgent, must arrive. Either it repeats constantly or it fires once, and which of those it is changes everything.
Killed by latency, and by loss on the messages that fire once. A DMX level held at 50% repeats 44 times a second, so a dropped packet costs nothing. A GO does not repeat, and a dropped GO is a cue that did not happen.
Media
Large, continuous, and it has to arrive on time and in order. This is the flow that has to be sized, because it is the only one big enough to fill a link.
Killed by anything that starves the link — almost always a management transfer nobody scheduled — and by jitter that outruns the receive buffer.
Clock and sync
Tiny and ruthlessly regular. It carries no content at all — only agreement about when. Its entire value is in its regularity, so it is the one flow where being early is as bad as being late.
Killed by jitter, by an unaware switch adding delay to the very timestamps meant to correct for delay, and by two devices both convinced they are the master.
PTP, LTC, word clock, genlock
Management
Discovery, monitoring, configuration, backups, updates. All useful. None of it has a deadline of its own.
Nothing kills it — and that is the problem. With no deadline it has no manners, and it will cheerfully starve every flow that does have one. This is the villain of the model.
Why the model earns its keep
Because it predicts, rather than describes
A category tells you what a protocol is for. A flow tells you what it behaves like, and the two come apart more often than you would guess — which is exactly when the model is worth having.
RDM travels on the DMX pair and is filed with lighting control everywhere you look. Its flow is management: discovery and configuration, with no show deadline, competing with traffic that has one. That is precisely why RDM is scheduled into the gaps between lighting frames rather than alongside them — and the flow model predicts that, where the category does not.
RTP looks like plumbing and is filed under network transport. Its flow is media, because it is the thing AES67, RAVENNA and ST 2110 all actually ride on.
And some entries have no flow at all. PoE is power. RS-485 is a pair of wires and a voltage convention. Giving either a flow would be a guess in a fact’s clothing, so those entries say so and leave it blank.
First principles
Two addresses, because two different jobs
Everything above assumed you already knew what an address is, which is the kind of assumption that leaves people quietly stuck. So, plainly: every device on a network has two addresses, and the reason is that they answer two different questions.
A MAC address is burned into the network interface at the factory. Forty-eight bits, written as six hex pairs like 00:1D:C1:AA:BB:CC, and the first three pairs identify the manufacturer. It never changes and it means nothing about where the device is — it is a name, not a location. It only works within one local network segment, because the way anything finds a MAC address is by shouting on the local wire and waiting for an answer, and shouting does not cross a router.
An IP address is assigned, not born, and it encodes where. That is the whole reason it exists: because it has structure, a router can look at an address it has never seen and know which direction to send it. A MAC address gives you no such clue — there is no way to look at one and work out which continent it is on.
So the two work as a pair, at different scales. IP gets a packet across the world to the right network. MAC gets it across the last stretch of copper to the right socket. On every hop the MAC addresses are rewritten and the IP addresses are not, which is the single most useful thing to know when reading a packet capture.
Four numbers, or eight groups
IPv4, IPv6, and why anybody bothered
IPv4 is the familiar one: four numbers 0–255, which is 32 bits, which is about 4.3 billion addresses. That sounded limitless in 1981 and ran out around 2011, which is the entire reason IPv6 exists.
IPv6 is 128 bits, written as eight groups of four hex digits — 2001:0db8:0000:0000:0000:ff00:0042:8329 — with runs of zeros collapsed to :: once per address, so that becomes 2001:db8::ff00:42:8329. The address space is not four times bigger, it is 296 times bigger, which is a number with no useful comparison.
What changes in practice is smaller than the address length suggests. There is no broadcast in IPv6 — its jobs are done by multicast, which is tidier. Devices can configure their own addresses from the router’s advertisements without a DHCP server. Fragmentation is the sender’s problem rather than the router’s. And a device commonly holds several IPv6 addresses at once, including a link-local one starting fe80:: that always exists and never leaves the segment.
For show networks the honest position is that IPv4 is what nearly all entertainment protocols assume. sACN, Art-Net, Dante and most of the rest are specified and deployed on IPv4, several of them with multicast group addresses written into the standard. Turning IPv6 on alongside is usually harmless and occasionally useful; expecting it to replace IPv4 on a show network is not yet a plan.
Seven layers
Where each thing on this site actually sits
Every protocol indexed here lives somewhere in a stack, and knowing where saves a lot of pointless debugging. Physical wire at the bottom, meaning at the top.
Seven layers, physical wire at the bottom, meaning at the top. Most protocols indexed on this site live at layer 7, riding on layer 3/4 (IP/UDP) or, for DMX512, straight on layer 1/2 (RS-485).
Per ISO/IEC 7498-1. Layers 5 and 6 are dimmed above because almost nothing on a show network implements them as a separate step — most show protocols go straight from application data to a transport/network layer that already handles session and encoding concerns, or skips them entirely.
One frame, read on the fly
Why EtherCAT is fast, and why it is not Ethernet as you know it
Ordinary Ethernet addresses one device at a time: a frame goes out, a device answers, the next frame goes out. EtherCAT sends a single frame past every device in the chain and each one reads its own slice and writes its reply as the frame passes through it, without stopping it. One frame serves the whole chain in one pass, which is why cycle times land in the tens of microseconds rather than the milliseconds.
The cost is that this is not a network in the ordinary sense. The devices are a chain, the order matters, and a standard switch in the middle breaks the mechanism entirely — which is the same bargain DMX makes, arrived at from the opposite direction.
EtherCAT does not use faster wiring — it still runs over ordinary 100BASE-TX Ethernet cable. The speed comes from how each device handles the frame. Standard Ethernet/IP devices are store-and-forward: receive a whole frame, process it, generate a fresh reply frame. EtherCAT devices instead read and write their own slice of data as the frame passes through them, in dedicated hardware, without ever fully buffering it — "processing on the fly."
One frame does a complete loop through every device on the segment and returns with every device's data updated in a single pass, instead of the controller polling each device one at a time. That is what gets automation systems into sub-millisecond, deterministic cycle times. In entertainment it shows up in automated rigging, winch and moving-scenery control, where motion needs to be tightly synchronised across many axes.
One cable, several networks
What a VLAN actually does
A VLAN splits one physical switch into several logical ones. Ports in VLAN 10 can talk to each other and cannot reach ports in VLAN 20, even though they are in the same box on the same rack.
Mechanically it is four extra bytes. A tagged frame carries a 12-bit VLAN ID inserted into the Ethernet header — 802.1Q — so 4094 usable VLANs, and the switch reads the tag to decide where the frame is allowed to go. A port is either an access port, which belongs to one VLAN and sends untagged frames to a device that knows nothing about any of this, or a trunk, which carries several VLANs tagged and is how you get more than one network down a single cable between switches.
Why it matters on a show is that broadcast and multicast traffic stays inside its VLAN. Put lighting, audio and production on one flat network and every sACN packet reaches the audio gear, every Dante flow reaches the lighting nodes, and a single misconfigured device can flood all of it. Separate them and each one only has to survive its own traffic. It is also the cheapest form of security available: a laptop plugged into the wrong socket lands somewhere that cannot reach the show control network at all.
The catch is that VLANs cannot talk to each other without a router, and about half of all show-network confusion is somebody discovering this at exactly the wrong moment. If the console is in VLAN 10 and the media server is in VLAN 20, they are on different networks, and no amount of correct IP configuration will change that until something routes between them.
- The native VLAN. A trunk carries one VLAN untagged by default. Devices that disagree about which one that is produce a fault that looks intermittent and is not.
- Multicast across VLANs. sACN and Dante multicast does not cross a VLAN boundary on its own. That needs routing plus a multicast router, and it is a much bigger job than adding a VLAN.
- VLAN 1. Most switches ship with everything in VLAN 1 and use it for their own management traffic. Leaving show traffic there works and mixes your control plane with your data plane.
- One cable, two consoles, no trunk. If the link between switches is an access port, only one VLAN crosses it and the rest silently do not.
Two cables, one link
Aggregation, and what it does not do
Link aggregation — LAG, port channel, bonding, LACP, all roughly the same thing — makes several physical cables behave as one logical link. Two gigabit ports become a two-gigabit trunk with automatic failover if one cable is pulled.
The failover half is genuinely valuable and works as advertised. The bandwidth half needs a caveat that catches people out: aggregation does not give a single conversation more bandwidth. The switch chooses which physical link to use by hashing something about each flow — source and destination MAC, or IP, or port numbers — and every packet of one flow follows the same link, so packet order is preserved. A single 1.4 Gbit/s video stream across two 1 Gbit/s links does not work. It picks one link and drops the excess.
So aggregation buys you resilience always, and throughput only when the traffic is many independent flows. On a show network that is often exactly what you have — dozens of Dante flows, many sACN universes — and it is occasionally the opposite, which is when somebody discovers the hash. Most switches let you choose what to hash on, and moving from MAC-based to IP-and-port-based hashing is the usual fix for traffic that has all piled onto one link.
Watching and reaching
TAPs, mirrors and VPNs
Three more pieces of vocabulary that get used as though everyone already knows them.
A network TAP is a passive device spliced into a link that copies everything passing through it to a monitoring port. Passive is the point: it has no configuration, cannot drop traffic, and keeps working if it loses power, so it does not become the thing that broke the show. A port mirror or SPAN does the same job in software on the switch, which costs nothing and is fine for diagnosis — but a busy switch drops mirrored frames before it drops real ones, so a mirror can lie about exactly the congestion you are trying to investigate. If you are proving a timing problem, use a TAP.
A VPN builds an encrypted tunnel across a network you do not trust, so two things far apart behave as though they are on the same local network. On a show that usually means remote support: somebody at home reaching a console or a media server on site. It is the right tool for that and the wrong tool for anything time-critical, because a tunnel across the public internet inherits the internet’s latency and jitter, and no amount of QoS at your end governs what happens in the middle. Remote programming over VPN: yes. Live show traffic over VPN: no.
Private and public
Why a show network lives in numbers nobody can route to
Some address ranges are reserved and will never appear on the public internet. Routers along the way drop them, deliberately. Those are the private ranges, set aside by RFC 1918, and there are three: 10.0.0.0/8 with sixteen million addresses, 172.16.0.0/12 with a million, and 192.168.0.0/16 with sixty-five thousand.
A show network lives in one of them, and the reason is not tidiness. A private address cannot be reached from outside without something deliberately forwarding to it. That is a security property you get for free by choosing the right numbers, and it is why the first question about any device that turns out to be reachable from the internet is what address range it was on.
Which range to pick is mostly about collisions. 192.168.x.x is the default on nearly every consumer router, so it is the range most likely to clash when somebody brings a laptop, a travel router or a home habit onto site — two networks that both think they are 192.168.1.0/24 cannot be bridged without renumbering one of them. 10.x.x.x has room for VLANs and a sensible numbering scheme, which is why most permanent installations use it. 172.16 to 172.31 is the least used, and that is occasionally a reason to choose it.
Everything outside those ranges is public, which means somebody owns it. Assigning yourself a public address on a private network works perfectly until the day something on your network needs to reach the real owner of that address, at which point the traffic goes to your own kit instead and the fault makes no sense at all.
The browser cannot get there
Why no web page will ever talk to your rig directly
This one comes up constantly, usually as “there is a web tool that does this, why do we need a box?” The answer is a deliberate boundary rather than a missing feature, and it is worth knowing because it decides what a browser-based control surface can and cannot be.
There are two separate walls, and people usually only know about the first. A browser has no UDP socket and no raw TCP: fetch and WebSocket speak HTTP and WebSocket and nothing else, so no page can emit sACN, Art-Net, PJLink or anything else that is not those. That alone rules out most of this industry’s protocols.
The second wall is the interesting one. Even for the protocols a browser can speak, a page served from a public address is not allowed to reach a private one. A page on some public site cannot quietly open http://192.168.1.1 and reconfigure your router, or work through 192.168.1.0/24 looking for what answers. Browsers block that crossing on purpose — the mechanism is called Private Network Access, and it was previously CORS-RFC1918 — and a public page that tries gets refused before a packet is sent. Your private numbers being unroutable from outside is the point of them, as the section above says, and the browser is enforcing the same idea one layer up.
So the shapes that actually work are the ones you see in the field. Software that runs on the network, serving its own web interface from inside it — which is why a console’s remote is served by the console. A page loaded from the device itself, which is same-origin and private-to-private, so neither wall applies. A native application, which has real sockets. Or a page that does the thinking and hands the sending to something that can, which is what the packet builders do: the arithmetic happens in the browser, and the command it gives you runs on your machine, on your network, where there is no public-to-private hop to be blocked.
The useful test when somebody proposes a browser-based anything: where is the page served from, and where does the packet have to go? Same private network, and it is fine. Public site reaching into a private range, and it will not work, no matter how well written it is.
- A device’s own web UI is not an exception to this. It is served from the device, so the page and the target are the same private origin. Nothing is crossing.
- An HTTPS page cannot call a plain HTTP device either. Mixed content is blocked separately, which is why a device with no certificate is awkward to reach from a page loaded over HTTPS.
- “It works on my laptop” is often localhost. A tool running locally is same-origin to itself; the same page on a public URL is a different situation entirely.
- This is a security feature and it protects you. The alternative is any site you visit being able to inventory and reconfigure the network you are sitting on.
The addresses that are a diagnosis
What 169.254 and 127.0.0.1 are telling you
Several reserved ranges are not configuration at all — they are the network reporting a state, and reading them saves a great deal of time.
169.254.x.x is the one worth recognising instantly. It means DHCP failed and the device gave up and named itself — link-local, RFC 3927. A device on one of these can reach other devices that did the same thing on the same wire, and nothing else. It is not a working configuration that happens to look odd; it is a device saying it never got an address. The fix is upstream: no DHCP server, a cable in the wrong VLAN, or a server that ran out of leases.
127.x.x.x is loopback: the machine talking to itself, never leaving the network card. A service bound to 127.0.0.1 is unreachable from anywhere else however good the cable is, and a great deal of "it works on my machine" is exactly this.
224.0.0.0/4 is multicast — a group rather than a host. Nothing is assigned one; devices subscribe. sACN sits at 239.255.x.x, where the last two octets are the universe number, so 239.255.0.1 is universe 1 and you can read a capture without a lookup table.
And 100.64.0.0/10 is carrier-grade NAT: your internet provider sharing one public address across many customers. It behaves like a private range, it is not yours to use, and it is why some remote-access setups that work at home fail on a venue connection.
At the terminal
The commands, and what in the output actually answers the question
Nearly every network question on a show has a one-line answer from a terminal. The reason people do not use them is that the command has a different name on every platform and the output arrives unlabelled, so the useful part is not the command but knowing what to read.
Two are worth learning before the others. The route table — route print, netstat -rn, ip route — because a laptop connected to both the show network and wifi has two default routes, and traffic disappearing into the wrong interface is the single most common self-inflicted fault on a production network. And the multicast joins — netstat -g, ip maddr show — because a receiver that has not joined the group will never see the traffic however correctly it is being sent.
The distinction worth carrying from ping is between its two failures. “Destination host unreachable” is your machine giving up before anything left; a timeout means the packet left and nothing came back. Those are different faults in different places, and treating them as the same thing is how people end up replacing a working cable.
And from tracert: a hop showing stars has declined to answer, which is normal and not a fault. What matters is a hop where the time jumps, because that is the link doing the damage. The command reference on the tools page has all of them side by side, with what to look for in each.
- Two default routes. Wifi and a wired show network at once, and no way to know which one anything is using. Turn one off, or route deliberately.
- 192.168.1.0/24 everywhere. The venue, the tour, the guest laptop and the travel router all defaulted to it. Two of them cannot be joined without renumbering.
- Reading 169.254 as a working address. It is a failure report. Something upstream did not hand out a lease.
- Making up a public address. It works until something needs to reach the real owner of it, and then the fault points nowhere useful.
Hiding who is talking
What a VPN does not do, and what onion routing does instead
A VPN encrypts your traffic and sends it to a server that forwards it on. That hides the content from the local network and hides your address from the far end — but the VPN operator can see both ends of every connection you make. It does not remove the need to trust somebody. It moves that trust from your café’s wifi to a company you have probably never met, which is sometimes a good trade and sometimes a worse one.
Onion routing — Tor is the well-known implementation — removes the single trusted party rather than relocating it. Your traffic is wrapped in three layers of encryption and passed through three relays chosen from thousands. The first relay peels one layer and knows who you are but not where you are going. The third peels the last and knows where you are going but not who you are. The middle one knows neither. No single relay ever holds both halves, which is the whole idea, and it is why it is called onion routing: layers, removed one at a time.
The cost is latency, and a great deal of it. Three hops chosen for diversity rather than proximity might route you through three continents, so round trips run into hundreds of milliseconds and vary constantly. That makes it completely unsuitable for anything on this site with a clock in it — no timecode, no PTP, no live media, no remote console control. It is a tool for reading and publishing, not for running a show.
Two refinements worth knowing. An onion service — a .onion address — has no exit relay at all, because both ends stay inside the network and meet at a rendezvous point; nothing ever emerges onto the ordinary internet, so there is no exit operator who can watch it. And what none of this hides is what you do: log into an account and you have identified yourself, whatever the transport did. Onion routing protects the metadata — who is talking to whom — and metadata is usually the part that matters, which is exactly why it is worth protecting.
- A mirror port as evidence. The frames a congested switch drops from a mirror are precisely the ones you needed to see.
- A VPN carrying anything with a clock in it. PTP, timecode and live media over a tunnel you do not control is a problem waiting for an audience.
- Leaving remote access on after the fit-up. A tunnel into the show network that outlives its reason is somebody else’s way in.
The subnet calculator and QoS priority planner take real inputs, and the link fill estimator checks whether the traffic actually fits before you commit to a single gigabit uplink.
2 questions on the mechanism rather than the trivia. Nothing is scored and you can answer again — the explanation under a wrong answer is the point of it.
-
1A show network has plenty of spare bandwidth and the audio still glitches. Why can QoS still be the answer?
-
It does not add bandwidth. It changes the order things leave in.
-
Right. Even a lightly loaded link has microseconds where two packets contend, and on a media network the one that must not wait is the clock.
-
QoS does not touch payloads. It is a scheduling decision at the switch.
-
That is circuit switching. QoS prioritises within a shared path rather than reserving one.
-
-
2sACN was working, then multicast traffic starts appearing and disappearing on a timer. What is the most likely cause?
-
Switches do not have a universe limit. This is a multicast group management problem.
-
That produces conflicting levels, not traffic that starts and stops on a timer.
-
Flooding sends multicast everywhere — wasteful, but constant. The on-off pattern points at membership ageing out.
-
Right. Without a querier, nothing prompts devices to re-report their group membership, so the switch ages out the entries and traffic stops until the next join. It reads as random dropouts.
-
Answers are kept in this browser on this device. Nothing is sent anywhere.
- Why does QoS matter here?
- How do I calculate a subnet?
- What is IGMP snooping for?
Where to go next
These pages are a chain rather than a library — the next one along usually answers the question this one raised.
Everything on this page, in the index
Each of these has its own entry with sources, ports, gotchas and an open gap where a field is missing.