Dante Certification Level 2 – Chapter 09: Dante Flows

 

Dante flows are the building blocks of how audio and video travel across a Dante network, and this chapter explains how flow management directly impacts bandwidth, scalability, and device performance. You will learn that a unicast Dante audio flow groups channels in sets of four to reduce packet overhead, while multicast flows can carry up to eight, sixteen, or even sixty-four channels in a single stream depending on the device’s chipset. The chapter walks through a real demonstration in Dante Controller showing how flow counts increase as subscriptions are added, when to convert unicast flows into multicast for one-to-many distribution, and how to use the multicast configuration tool to bundle channels efficiently. You will also see what happens when a device hits its flow limit, such as an Ultimo based microphone with only two audio flows, and how multicast resolves that limitation by serving multiple receivers with a single flow. By the end, you will know how to monitor Dante flows in Dante Controller, optimize bandwidth utilization on your network switches, and avoid common subscription errors caused by exceeding flow capacity.


Key Learning Objectives

 

By the end of this chapter, learners will be able to:

  1. Explain how Dante groups audio samples into flows to improve network efficiency.
  2. Differentiate between unicast and multicast flow behavior in Dante.
  3. Use Dante Controller to monitor flow counts, bandwidth usage, and multicast group sizes.
  4. Convert unicast subscriptions into multicast flows when distributing the same signal to multiple receivers.
  5. Diagnose and resolve “no more flows available” errors using multicast.

Want access to all of the Dante Training Courses?

Enroll Now

View full transcript

Level 2 – Chapter 09 – Dante Flows

Okay. We’ve got a basic understanding of unicast and multicast, so the next logical thing to discuss is the concept of Dante flows. In the level one course, we mentioned that sending data across a network isn’t just about the size of the data itself. There’s also network overhead to consider.

If we compare this to a shipping company, they don’t just care about the size and weight of the item you’re sending. They need to know the size and weight of the entire package, including packing materials. For video, these differences don’t have as much of an impact because video signals are inherently large. A network packet’s maximum size is about 1.5 kilobits, but a single video frame is much larger than that, so we have to break it into pieces and send it across the network.

When we create a Dante video flow, a single video stream occupies the entire flow by itself. However, audio data is much smaller. The overhead of a network packet is about 40 bytes, and we also need to include additional data like timestamps. If we only send one 24-bit digital word per packet, that’s just three bytes of data compared to the 40-byte header plus timestamps.

That means less than 10% of the bandwidth is being used to actually move audio, which is highly inefficient. So how could we improve the efficiency in this example? Well, instead of sending just one 24-bit sample per packet, we could group multiple samples together before transmitting them. By grouping multiple samples into a single packet, we reduce the relative impact of the packet overhead, making the transmission more efficient.

We call this a flow. We’ve probably all had the experience of ordering something small, like an SD card, only to have it arrive in a giant box. If you’ve had that experience, I’m sure you’ve thought there’s got to be a better way. When sending audio across a network, we group multiple channels together in a single flow.

It’s like buying AA batteries. You rarely buy just one, right? They usually come in packs of four. That’s how it works with Dante audio, too.

When you send an audio flow via unicast, it automatically sets up that flow with four channels. Let’s say I have a DSP sending a signal to two different amplifiers, one with four channels and the other with eight. The moment I subscribe one channel, a four-channel flow is created. The requested channel is loaded in, and the others are sent empty.

As I subscribe to more channels from the DSP to the amplifier, they fill in the unused slots in the flow. Once I reach the fifth channel, the first flow is full, and a second four-channel flow is created. If I keep adding channels, the new flows fill up, too. When I transmit to the second amplifier, I have to create another flow.

Creating my first subscription establishes a four-channel flow with the first channel populated and the rest blank. As I add more subscriptions, they fill the unused slots in that flow. Unicast is the default behavior for Dante flows. But if both amplifiers were receiving the same signals, we could create a multicast flow instead.

With multicast, we can bundle audio into eight, 16, and even 64-channel flows. Once transmitted, multicast packets can be received by as many destinations as needed. Even if an amplifier only needs four channels, it can accept the channels it needs and ignore the rest. Now that we’ve covered the theory, let’s see it in action with a demonstration of unicast and multicast flows on the network.

Here’s our system. Most of the devices are gigabit, but we’ve got a few that are 100 megabit. Dante establishes one clock leader, and if we check the network status, we see nothing is transmitting or receiving right now. The less than one megabit per second reading represents the overhead of discovery, clocking, and control reporting.

Let’s go to the Routing tab and focus on the DSP and the mixer. I’ll also open the device view for the DSP to check its flow count. If we go to the View menu and select the View Flow Information option, you’ll see that right now it’s not using any of its 32 flows. As soon as I make my first subscription, we’ll see the DSP start sending about nine megabits per second of data to Mixer 1.

Looking at the flow count, we now have one unicast flow. No surprises there. Next, let’s add three more subscriptions between these same two devices. Now, four channels are going from the DSP to Mixer 1.

The bandwidth remains the same, and no additional flows have been used. Again, a unicast flow automatically sets up as four channels, whether you’re using just one or all four.Now, let’s subscribe to a fifth channel. As expected, the bandwidth increases by another 10 megabits per second, climbing to 19 megabits per second. The flow counter now shows a second unicast flow.

Let’s take a bigger step and subscribe to all 16 channels from the DSP. Since each flow carries four channels, we need four flows. So far, we’re only sending to one destination. Let’s see what happens when we add more.

Let’s send these 16 channels to Mixer 2. Since we’re using unicast, we need to send the signal twice. The bandwidth climbs to 80 megabits per second, about 40 megabits per receiver. The flow count also increases to eight, four for each receiver.

Finally, let’s send the same signal to a computer running Dante Virtual Soundcard for recording. Again, the transmitter’s bandwidth increases as more flows are used. The good news, unicast traffic only travels between the transmitter and its intended destination. It doesn’t affect other network devices.

Unicast is great when we need to send different signals to different locations. But in this case, we’re sending the exact same signal to three destinations. We could keep using unicast, but let’s try multicast and compare the result. At the bottom of Dante Controller, you’ll find a measurement that estimates the amount of multicast traffic.

Keep in mind that this is just an approximation based on the subscriptions we’ve made. If we go to the Transmitter tab, we’ll see a section that displays the number of active multicast flows. Currently, there are none. In the Tool ribbon, you’ll find the multicast icon.

It looks like a dot with a forked arrow, indicating that we are splitting a signal on the network. Clicking it allows us to select the number of channels we want to include in the multicast flow. The number of channels a device can send per multicast flow depends on the Dante chipset the manufacturer has used. If you’re unsure, Dante Controller provides this information at the top of this screen.

I’ll select the first eight channels from the DSP and click Create. Now we can see the channels grouped together in a multicast flow. At this point, any device requesting channels one through eight will receive them as part of the multicast group. However, channels nine through 16 are still being sent via unicast until we convert those to multicast as well.

Let’s go ahead and create a multicast flow for channels nine through 16 as well. Now we can see them listed as a second multicast flow. If we check our bandwidth utilization, we’ll notice something interesting. We’re now using only 21 megabits per second to send 16 channels to three destinations.

Previously, when this was sent via unicast, the bandwidth usage was around 100 megabits per second. Using multicast significantly reduced the load on the transmitter. The best part, all three devices still receive the channels without any issues. Let’s take a closer look here.

If we scan up and down the list, we can see that every device on the network is receiving this traffic. So what does that tell us? Well, it likely means that IGMP snooping is not enabled yet, because without it, multicast traffic is sent to every device on the network, essentially acting like broadcast traffic. If this was the only multicast traffic we had, we might not see a big impact, and it might not matter whether IGMP snooping is enabled.

However, before we make any assumptions, let’s push this to the breaking point and see the difference it makes. Here, I have a Dante AV Ultra Encoder. This is currently receiving a video signal from a camera that’s capturing my set. At this moment, it isn’t transmitting because no devices have subscribed to the flow yet.

If we check the flow counter on the video device, we’ll see that Dante keeps track of flows separately for video, audio, and control signals. Let’s say I want to send this video signal to multiple destinations. Switching to multicast should provide a significant bandwidth advantage. To do this, I click on the multicast icon, select the video channel, and click Create.

Now, watch what happens to the bandwidth usage. Immediately, the device starts transmitting around 600 megabits per second. Keep in mind, no video receivers have actually subscribed to this signal yet, and yet we’re still transmitting it. That’s because a multicast transmitter doesn’t determine who should receive a signal.

It simply sends it with a multicast group IP address, trusting the network switch to deliver it to the correct destinations. Even without any devices requesting the stream, the multicast transmitter starts broadcasting a 600 megabit-per-second signal across the network.Since IGMP snooping is not yet enabled, we can see that all devices are receiving this traffic. For the gigabit devices on the network, this isn’t an issue. They can handle the extra bandwidth without a problem.

But take a look at the devices at the top of the list. These are 100-megabit devices, and they’re now completely overwhelmed. Next, let’s enable IGMP snooping and see if it helps. For efficiency, I’ve already configured the IGMP snooping settings on other pages.

So all I need to do now is enable IGMP snooping and an IGMP querier. Watch what happens to the bandwidth statistics in Dante Controller. Here, we can already see that the multicast traffic from the DSP is only being sent to the devices that have subscribed to it. The 600 megabits per second video stream hasn’t been requested by any devices, so the switch is preventing this traffic from reaching any hosts.

And the best part? The other devices on the network that aren’t involved in multicast traffic are completely unaffected. All right. Now it’s time for a little bonus from the intermediate Dante Controller chapter.

Let me show you some shortcuts that will help you manage large subscription lists and convert multiple channels to multicast quickly and efficiently. Let’s say we want to send channels from the DSP Mixer 1 and 2 to Dante Virtual Soundcard. Previously, we learned that if we want to send multiple channels at the same time, we can create a one-to-one route in the main routing screen. We just hover over the corner of the grid to see the shading fill in, indicating a mass connection across channels one to one, two to two, and so on.

Then hold Control and click to complete the subscription. What happens if I don’t want to send all 32 channels from my DSP and mixers? Maybe I just want to send the first 16 channels per device. I could click on each intersection manually, but there’s an easier and faster way.

Let’s go to the receiving device’s Device View for DVS. On the left, we have all the receiving channels, and on the right, we have all the available transmitters on the network. We can select the range of channels we want to assign and simply drag them over. If you look at the routing grid, you’ll see these subscriptions being applied in real-time.

Now I’ll do the same for Mixer 1, and once more for Mixer 2. By default, all of these streams are being sent as unicast, except for the DSP channels, which we previously converted to multicast. If we wanted to convert the mixer channels to multicast, we could open the multicast assignment window for Mixer 1 and select all the channels with a single click. When we press Create, Dante Controller will automatically create a stream with all 16 channels.

We’ll do the same for Mixer 2, and that’s it. Remember that some devices are limited to eight channels per multicast flow. If you did this on one of those devices, it would split them into two multicast groups of eight channels each. Sure enough, if we check the bandwidth, we can see that multicast flows are now taking effect.

That was a practical demonstration of how Dante handles unicast, multicast, and flow management. But what happens if we exceed a device’s flow capacity? Let’s reset and look at an example using a device with an Ultimo chipset, which only supports two audio flows. Here, I have a lectern microphone input.

Due to the fact that it is only a microphone, the manufacturer used an Ultimo chipset. There was no need to use a Brooklyn 3 chipset, but because of that, this device has a limitation of only two audio flows. If I subscribe this microphone to the DSP, we see that one unicast flow is in use. If I add it to the first mixer, the second flow is utilized.

But now, what happens when I try to subscribe to a third device? Oh, no. No green check mark. Just like we saw in level one, hovering over the error symbol will tell us what’s wrong.

Of course, it says, “No more flows available.” We can see that the two original subscriptions are still working, but we can’t add a third. How do we fix this? The solution in this case is to use multicast. With a single multicast flow, we can send the audio to as many receivers as needed.

Let’s open the Device View for the lectern mic. Click on the multicast icon and create a multicast flow for that channel. Now the system is able to reach all three destinations without a problem. By the way, if you ever need to delete a multicast flow, just highlight it and click Delete.

You’ll get a warning that your signal will revert to unicast. But once you confirm, the change will be applied. And there you have it, a complete walkthrough of Dante flows using unicast and multicast, including how IGMP snooping improves network efficiency and how to avoid over-subscribing devices. Hopefully, this clears up any confusion and helps you manage your Dante network more effectively.

See you in the next chapter.