Stoatworks Labs

Reference

Five names, two families, and what crosses between them

Dante, AES67, RAVENNA, AVB and Milan get lined up on spec sheets as if they were rival brands of one thing. They're five different kinds of thing: a licensed product, an open technology, a standard for getting those two to swap audio, a suite of IEEE standards, and a certified profile of that suite. The first three run over IP and the last two over bare Ethernet, with different clocks, packets and switches. Below I put them side by side, work out what fits in a packet and what a stream costs on the wire, and check the numbers against the documents they came from.

What each one is

NameWhat it isRun bySinceLayerClockAudio travels asFinding and connecting
DanteLicensed productAudinate20063 (IP)PTPv1; PTPv2 in AES67 and ST 2110 modesAudinate's own, over UDPmDNS / DNS-SD, Dante Controller
RAVENNAOpen technologyALC NetworX, part of Lawo since 202420103 (IP)PTPv2 (IEEE 1588-2008)RTP over UDPDNS-SD, RTSP / SDP
AES67Interoperability standardAudio Engineering Society20133 (IP)PTPv2, AES67 media profileRTP over UDP, IPv4Not specified. SDP describes, SIP connects unicast
AVBIEEE standards suiteIEEE 802.1, now the TSN task group2009–112 (Ethernet)gPTP (IEEE 802.1AS)AVTP (IEEE 1722)AVDECC (IEEE 1722.1)
MilanCertified AVB profileAvnu Alliance20182 (Ethernet)gPTP, plus a CRF media clock streamAVTP, AAF formatAVDECC, with Milan’s additions
  • Dante is Audinate's, out of Sydney, first shipped in 2006 and licensed to the manufacturers who build it in. It runs on ordinary managed switches, keeps time with the 2002 edition of PTP, and brings its own discovery, routing software and, on hardware with two ports, a redundant second network. On most UK gigs it's what the desk and the stageboxes already speak, and that settles more choices than any table on this page.
  • RAVENNA came from ALC NetworX of Munich, launched with Lawo and a handful of partners at IBC in September 2010. ALC merged into Lawo on 1 January 2024, and Lawo carries on leading it. The operating principles are published and anyone can implement it without a RAVENNA licence (the white paper notes PTP itself may need one). It's assembled from IETF and IEEE parts (PTPv2, RTP, RTSP, SDP, DNS-SD) and happily carries formats AES67 never mentions, up to DXD at 384 kHz in Merging's kit.
  • AES67 is an Audio Engineering Society standard, published in September 2013 and revised in 2015, 2018 and 2023. It pins down the ground the IP systems already shared (PTPv2, RTP, two PCM formats, SDP) tightly enough that they can swap streams. ALC NetworX's 2014 white paper calls it the "O-negative of audio networking", which is about right: anything can take it, and it's usually there to join systems rather than be one.
  • AVB is a set of IEEE standards finished between 2009 and 2011: 802.1AS for time, 802.1Qat for reserving bandwidth, 802.1Qav for shaping it, and 802.1BA tying them together. IEEE 1722 (2011) defines the packets and 1722.1 (2013) the control protocol. It works at layer 2, so there are no IP addresses and every switch on the path takes part. The task group renamed itself Time-Sensitive Networking in November 2012 and went off to do cars and factories, which leaves AVB as TSN's pro AV profile.
  • Milan is the Avnu Alliance's profile of AVB, published in 2018. It picks one answer wherever the IEEE standards left a choice (one audio format, a fixed set of channel counts, a media clock stream, a way of doing redundancy) and adds a certification test a device must pass to carry the logo. Plain AVB left enough open that kit from different manufacturers couldn't be relied on to talk, and the rules and the test are the fix.

Clocks, which don't understand each other

Everything here is synchronised by some flavour of the Precision Time Protocol, and the flavours don't interoperate on their own. PTPv2 isn't backwards compatible with v1. gPTP runs at layer 2, where the IP versions can't see it, and it insists that every switch is time-aware. Two PTPv2 profiles on different domain numbers ignore each other, which is what domains are for and also why an AES67 island and an ST 2110 plant, both left on their defaults, never share a grandmaster.

ProfileUsed byRuns overDelay measuredDefault domainSwitches
PTPv1 (IEEE 1588-2002)Dante, nativelyUDP / IPv4End to end—Any; QoS helps a lot
PTPv2, AES67 media profileAES67, RAVENNA, Dante in AES67 modeUDP / IPv4End to end (peer to peer optional)0Any; boundary or transparent clocks help
PTPv2, SMPTE ST 2059-2ST 2110 plantsUDP / IPv4End to end (peer to peer optional)127Usually boundary clocks throughout
gPTP (IEEE 802.1AS)AVB, MilanEthernet, layer 2 onlyPeer to peer, one hop at a time0Every one must be time-aware

A Dante device in AES67 mode runs PTPv1 and PTPv2 at once and passes time between them, and Audinate fix its v2 domain at 0. In ST 2110-30 mode the domain number is settable.

The AES67 media profile's defaults

Delay mechanismE2EEnd to end; P2P is optional
Domain0ST 2059-2 defaults to 127
Sync interval1/8 slogSyncInterval −3
Announce interval2 sTimeout after 3 announces
Delay request1 sAlso the peer delay interval
Priority 1 / 2128 / 128The BMCA defaults

Two QoS schemes, one shared code point

AES67 classCarriesDSCP
ClockPTP announce, sync, delay request and responseEF (46)
MediaRTP and RTCPAF41 (34)
Best effortPTP signalling, connection management, everything elseDF (0)
Dante classCarriesDSCP
Time-critical PTPPTP event messagesCS7 (56)
Audio, PTPAudio flows and other PTPEF (46)
ReservedLow priorityCS1 (8)
OtherEverything elseDF (0)

AES67 marks its clock EF (46) and its audio AF41 (34). Audinate's scheme for Dante puts PTP events at CS7 (56) and audio at EF (46). Run both through one switch with the usual DSCP-to-queue map and Dante's audio sits in the same queue as AES67's clock, which Clear-Com document as a cause of PTP errors on the AES67 side. Their workaround is to remap DSCP 56 to 46 on the switch, which is only safe if nothing else on it needs 56. The Dante networking page covers the switch end of this.

What fits in an AES67 packet

channels per stream = ⌊ payload limit ÷ (samples per packet × bytes per sample) ⌋

The obvious payload limit is the Ethernet MTU less the IPv4, UDP and RTP headers: 1500 − 20 − 8 − 12 = 1460 bytes, and that's the figure most summaries quote. The channel table that goes with AES67 doesn't come out of it. At 125 µs and L24, 1460 bytes gives 81 channels, and the published figure is 80.

It comes out of 1440 bytes, which ALC NetworX's white paper explains: the payload was capped to leave room for IPv6. Swap the 20-byte IPv4 header for IPv6's 40 and you get 1500 − 40 − 8 − 12 = 1440, and every row of the published table lands on it. The build below checks all seven.

None of this obliges a device to send big streams. Receivers should take 1 to 8 channels a stream, the 1 ms packet time is the only one everybody must support, and plenty of kit stops there.

FormatPublishedFrom 1440From 1460
L24, 48 kHz, 125 µs808081
L16, 48 kHz, 250 µs606060
L24, 48 kHz, 250 µs404040
L24, 48 kHz, 333⅓ µs303030
L24, 96 kHz, 250 µs202020
L24, 48 kHz, 1 ms101010
L24, 48 kHz, 4 ms222

Maximum channels per stream, from Table 2 of ALC NetworX's RAVENNA & AES67 white paper. The right-hand column is what the IPv4 arithmetic gives instead.

Packet timeSamples, 48 kHzSamples, 96 kHzMax ch, L16, 48 kHzMax ch, L24, 48 kHzMax ch, L24, 96 kHzWhy it's there
125 µs6121208040The AVB Class A interval
250 µs1224604020The AVB Class B interval
333⅓ µs1632453015Low latency at 3,000 packets a second
1 ms489615105The one every device must support
4 ms192384321WAN links and EBU Tech 3326

Samples per packet as published (Table 1 of the same paper) and checked here; channel counts are the same arithmetic as above, from 1440 bytes. A 4 ms stream at 96 kHz has room for one channel.

ST 2110-30's levels, and the packet they share

SMPTE ST 2110-30 is AES67 with constraints for broadcast plants. It excuses receivers from SIP, requires the SDP, and grades them into six conformance levels by what they'll accept. Work out the biggest packet each level obliges a receiver to take and every one comes to the same 1152 bytes of L24 payload: 8 channels of 48 samples, 4 of 96, 64 of 6 or 32 of 12. Whether or not that was the plan, the levels differ in how the packet is sliced, never in its size, and it sits 288 bytes under AES67's cap.

Level48 kHz streams96 kHz streamsBiggest packet
A1–8 ch at 1 ms—1152 bytes
AX1–8 ch at 1 ms1–4 ch at 1 ms1152 bytes
B1–8 ch at 1 ms, or 1–8 ch at 125 µs—1152 bytes
BX1–8 ch at 1 ms, or 1–8 ch at 125 µs1–4 ch at 1 ms, or 1–8 ch at 125 µs1152 bytes
C1–8 ch at 1 ms, or 1–64 ch at 125 µs—1152 bytes
CX1–8 ch at 1 ms, or 1–64 ch at 125 µs1–4 ch at 1 ms, or 1–32 ch at 125 µs1152 bytes

From ST 2110-30:2017 Table 2. Level A is the minimum a receiver must implement. The packet column assumes L24, three bytes a sample.

AVB: reserving bandwidth instead of prioritising it

The IP systems mark their packets and hope the switches honour the marking. AVB asks first. A talker advertises a stream with its bandwidth (SRP, 802.1Qat), every switch along the path reserves it or refuses, and only once a listener answers does audio flow. A credit-based shaper (802.1Qav) then spaces the stream's frames out evenly, so nothing leaves a switch in a burst that trips up the next one.

Reservations are capped at 75 % of a link, so at least a quarter always stays free for everything else: 750 Mbit/s of a gigabit port. The price is that every switch has to take part. One ordinary switch in the middle splits the gPTP domain in two, each half elects its own grandmaster, and no audio crosses between them.

ClassAB
Interval125 µs250 µs
Frames a second8,0004,000
Samples, 48 kHz612
Latency bound2 ms50 ms
Over7 hops7 hops
Per hop286 µs7.1 ms
VLAN priority32

IEEE 802.1BA's two stream classes. AES67's 125 and 250 µs packet times carry the same 6 and 12 samples, which is the hook a gateway between the two families hangs on.

How many hops fit in Milan's default 2 ms

LinkWorst case per hopHops in 2 msSwitches in betweenBudget used
100 Mbit/s280 µs761.96 ms
1 Gbit/s140 µs14131.96 ms

Per-hop figures and the hop counts are d&b's (TI 370), and the counts are recomputed here. Meyer Sound's AVB guide is more cautious and says about 12 hops at 1 GbE and 7 at 100 Mbit/s. d&b also note that a system with big switches at FOH and in each amp city rarely passes 5.

Milan: AVB with the choices made

AVB left a lot open: several audio formats, any channel count, clocking taken from whichever stream was handy. Milan narrows it to one format every listener must take and a handful of rules around it. Legacy AVB kit sends AM824 (IEC 61883-6), and Milan's required format is AAF, so "it's all AVB" doesn't promise a connection on its own. Check what both ends speak.

Audio formatAAFAVTP Audio Format, IEEE 1722
Channels per stream1, 2, 4, 6, 8Listeners must take all five
Sample rate48 / 96 / 192 kHzAt least one; set it before patching
Sample size32-bitCarrying 24-bit audio, padded
Per frame6 samplesAt 48 kHz; 12 at 96 kHz
Presentation time2 ms defaultCan be set lower; see the note
Media clockCRF streamOr taken from an audio stream
RedundancyOptionalTwo separate networks, each its own gPTP domain

The sources disagree on how low presentation time goes: d&b's TI 370 says it can be set in steps from 125 µs, AVB Academy's reading of the spec says 0.25 ms. Both agree on 2 ms as the top and the default. Switches should be Avnu-certified, and some need putting into an AVB mode first.

What a stream costs on the wire

Mbit/s = (frame + 20) × 8 × packets per second ÷ 10⁶

A frame is the headers plus the audio plus a 4-byte checksum, never less than Ethernet's 64 bytes, and every frame also costs 20 bytes of preamble and gap on the wire. The headers are where the families differ. An RTP stream carries IPv4, UDP and RTP (40 bytes) behind an Ethernet header that may or may not have a VLAN tag. An AVB stream is always tagged, skips IP entirely, and carries a 24-byte AVTP header, plus another 8 for AM824's CIP header.

Packet rate matters more than headers. The same eight channels cost 9.84 Mbit/s at 1 ms and 14.21 Mbit/s at 125 µs, because the overhead is paid eight times as often. AVB always runs at 125 µs (Class A) or 250 µs (Class B), and pads to 32 bits on top.

8 ch at 48 kHzFramePackets/sMbit/s
AES67, L16, 1 ms826 B1,0006.77
AES67, L24, 1 ms1210 B1,0009.84
AES67, L24, 125 µs202 B8,00014.21
Milan AAF, 32-bit238 B8,00016.51
AVB AM824246 B8,00017.02

RTP rows untagged; add 4 bytes a frame for a VLAN tag. Dante's own flows are left out: its packet format is Audinate's, and the Dante page deals with its bandwidth.

AM824 stream1 ch2 ch4 ch8 ch16 ch32 ch
48 kHz, XMOS publish7.817.8110.8817.0229.3153.89
96 kHz, XMOS publish10.8810.8817.0229.3153.89—
48 kHz, computed here7.8087.80810.88017.02429.31253.888
96 kHz, computed here10.88010.88017.02429.31253.888—

Mbit/s per Class A stream, from XMOS's IEEE 1722 bandwidth table. All eleven published figures are reproduced, and the build fails if one drifts. One channel costs the same as two because IEC 61883-6 sends mono as stereo with the right channel empty.

A worked example worth having: d&b's TI 370 says 128 channels of 96 kHz, 24-bit audio need less than 400 Mbit/s. The audio alone is 295 Mbit/s. Sent as sixteen 8-channel AAF streams with the samples packed into 24 bits it comes to 362 Mbit/s, which agrees. In Milan's required format, which pads each sample to 32 bits, it's 461 Mbit/s. Either fits inside the 750 Mbit/s a gigabit link will reserve, so the point stands, but plan on the bigger number.

Finding streams, and connecting to them

AES67 standardised everything about a stream except how you'd find out it exists. Discovery was left out on purpose, with an annex suggesting options, so each system brought its own and getting a stream from one to another often comes down to pasting an SDP by hand. ST 2110 plants mostly settled on AMWA's NMOS. The AVB side never had the problem, since IEEE 1722.1 (AVDECC) covers discovery, description and connection in one protocol.

SystemFinds devicesDescribes a streamMakes the connection
DantemDNS / DNS-SDAudinate's ownDante Controller, or Dante Domain Manager
RAVENNADNS-SD, mDNS by defaultSDPRTSP
AES67Not specified (the annex suggests SAP or Bonjour)SDP, requiredSIP for unicast; for multicast, an IGMP join and nothing else
ST 2110-30In practice, AMWA NMOS IS-04SDPIn practice, NMOS IS-05. SIP is not required
AVB / MilanAVDECC (ADP)AVDECC descriptors (AECP)AVDECC (ACMP)

Dante's AES67 mode, in practice

FlowsMulticast onlyAudinate: AES67 multicast flows
Channels per flow8Biamp, Clear-Com
Sample rate48 kHzBiamp, DiGiCo
PTPv2 domain0, fixedAudinate, Clock Config tab
Default Tx prefix239.69Some receivers take only 239.x/16
Announced bySAP239.255.255.255, port 9875
Tx packet time1 msDirectOut, 2019
RedundancyNot in AES67 modeDirectOut, 2019

One trap from Audinate's own guide deserves a line of its own: the receiver's multicast prefix has to match the transmitter's. If it doesn't, the subscription appears to succeed and no audio arrives. Brooklyn II, HC and Broadway-based receivers also only subscribe to AES67 flows in 239.x/16. The last two tiles above come from 2019 slides and may have moved on in newer firmware.

Getting them to talk

  • Dante to an AES67 device. Turn on AES67 mode on the Dante device and live inside its limits: multicast, 48 kHz, eight channels a flow, a matching prefix, PTPv2 on domain 0, and SAP for the other end to hear about the flow. The AES67 device has to announce with SAP too, or Dante Controller won't see it without a hand-made proxy.
  • RAVENNA to AES67. RAVENNA already runs the same clock, transport and stream description, and its AES67 profile picks settings inside AES67's range. Mostly this is choosing compatible stream settings and getting the SDP across, since RAVENNA discovers through DNS-SD and RTSP and plenty of AES67 kit only listens for SAP.
  • Dante to RAVENNA. Through AES67 on both sides. There's no other road.
  • AES67 to ST 2110-30. A 2110-30 stream is an AES67 stream with constraints, so the audio matches. The clock is the usual problem: ST 2059-2 defaults to domain 127 and AES67 to 0, and a device that can't change its domain can't join the plant's clock.
  • Anything on IP to AVB or Milan. No direct path. Different layer, different clock, and gPTP stops at the first switch that isn't AVB-capable. It takes a gateway with both stacks. AES67 lists its 125 and 250 µs packet times as compatible with AVB Classes A and B, which makes that gateway's job simpler.
  • AVB to Milan. Same network, same clock, but check the formats: a Milan listener must take AAF, and plenty of pre-Milan AVB talkers only send AM824.

Which one, when

You mostly don't choose. The desk, the stageboxes and the hire company's shelves choose for you, and the useful question is what you'll need to bridge to. With that said:

  • Dante when the kit speaks it, which in live sound and AV it usually does. It runs on ordinary managed switches with QoS set up properly, has redundancy and discovery built in, and everybody on the crew has used Dante Controller.
  • AES67 as a doorway between camps: a handful of flows set up by hand between a Dante system and a RAVENNA one, or into a broadcaster's truck. It defines no discovery and no redundancy, so I wouldn't build a show around it alone.
  • RAVENNA and ST 2110 in broadcast plants and facilities where the network belongs to IT and they want standards end to end, and wherever the consoles are the sort that speak it natively.
  • Milan when the PA manufacturer has standardised on it, or when audio has to share a busy converged network and you'd rather the switches guaranteed the bandwidth than trust everyone's QoS settings. The cost is that every switch on the path must be AVB-capable, and one that isn't breaks the clock.

Your stream

Pick the transport, the sample rate and size, the channels and the packet time. It gives you what's in each packet, what one stream costs on the wire, and what a batch of them takes out of a link.

Try:

This calculator needs JavaScript. The tables above cover the common streams.

Wire bandwidth includes preamble, inter-frame gap and checksum, which is what a link has to carry and slightly more than an AVB reservation counts. AVB transports use the Class A or B interval whatever the packet time says, AM824 is always 32-bit, and RTP payloads over 1440 bytes are flagged because AES67 doesn't allow them. Dante's native flows aren't modelled.

Sources

  • ALC NetworX, RAVENNA & AES67 white paper V1.0 (2014-01-14), for the 1440-byte payload cap and its IPv6 reason, AES67's packet time table, the channels-per-stream table checked above, the DSCP classes, SIP and the discovery gap, RAVENNA's protocols and the "O-negative" line.
  • AIMS Alliance, AES67 101 (2018), for the AES67 PTP media profile defaults and the 1460-byte figure most summaries quote. The AES67 standard itself (AES67-2018, -2023) is paywalled and wasn't read; Wikipedia's summary was used for its revision history.
  • SMPTE ST 2110-30:2017 (pub.smpte.org), Table 2 for the conformance levels and §6.2.1 for receivers being excused SIP.
  • Audinate, Dante Controller user guide (dev.audinate.com): the AES67 Config, Clock Config and RTP transmit flow pages, for AES67 multicast flows, the prefix trap, the 239.x/16 receivers and the fixed PTPv2 domain; and the Audinate FAQ on DSCP values for Dante's QoS classes.
  • Biamp, Using AES67 in Tesira, and Clear-Com's EHX manual, for eight channels per Dante AES67 flow, 48 kHz, the 239.69 prefix and SAP on port 9875; Clear-Com's SG350 note for the EF clash. Q-SYS help for Dante's 4 and 8 channel unicast and multicast flows. DirectOut, AES67 real life, NAB 2019 IP Showcase, for the 1 ms transmit packet time and no redundancy in AES67 mode.
  • d&b audiotechnik, TI 370 Milan 1.3 (10/2024), for Milan's base stream format, the 75 % reservation, per-hop latency and hop counts, the gPTP domain split and the 128-channel example. Meyer Sound, Managing AVB Networks, for the 2 ms default, 32-bit containers and its hop estimate. AVB Academy, for the 0.25–2 ms presentation time range.
  • XMOS, IEEE 1722 Bandwidth Usage, for the AM824 bandwidth table and its overhead figures. IEEE 802.1 AVB assumptions (Pannell, 2008) for the 75 % cap and 2 ms over 7 hops; Wikipedia's AVB article for the standards' dates and the TSN rename.
  • RAVENNA partner page for the Lawo merger; TV Technology and SVG reports from IBC 2010 for the launch. Juniper's PTP media profile documentation and the Wikipedia SMPTE 2059 article for domain 0 against 127; AES-R16 covers the two profiles properly.

Assembled 3 November 2026 with AI assistance. AES67's packet and channel tables, ST 2110-30's levels, the AVB hop budgets and XMOS's eleven bandwidth figures are checked at build time against the published numbers, which catches a transcription error but not a wrong source. The AES67 and IEEE standards weren't read directly. Dante's AES67 limits come from vendor manuals, two of them from 2019, and newer firmware may differ. Nothing on this page was measured on a real network.

Companion pages: Dante networking best practice for switches, QoS, multicast and redundancy on a Dante network, Ethernet cabling for what the links run on, and video sync reference for where PTP meets genlock.