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
| Name | What it is | Run by | Since | Layer | Clock | Audio travels as | Finding and connecting |
|---|---|---|---|---|---|---|---|
| Dante | Licensed product | Audinate | 2006 | 3 (IP) | PTPv1; PTPv2 in AES67 and ST 2110 modes | Audinate's own, over UDP | mDNS / DNS-SD, Dante Controller |
| RAVENNA | Open technology | ALC NetworX, part of Lawo since 2024 | 2010 | 3 (IP) | PTPv2 (IEEE 1588-2008) | RTP over UDP | DNS-SD, RTSP / SDP |
| AES67 | Interoperability standard | Audio Engineering Society | 2013 | 3 (IP) | PTPv2, AES67 media profile | RTP over UDP, IPv4 | Not specified. SDP describes, SIP connects unicast |
| AVB | IEEE standards suite | IEEE 802.1, now the TSN task group | 2009–11 | 2 (Ethernet) | gPTP (IEEE 802.1AS) | AVTP (IEEE 1722) | AVDECC (IEEE 1722.1) |
| Milan | Certified AVB profile | Avnu Alliance | 2018 | 2 (Ethernet) | gPTP, plus a CRF media clock stream | AVTP, AAF format | AVDECC, 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.
| Profile | Used by | Runs over | Delay measured | Default domain | Switches |
|---|---|---|---|---|---|
| PTPv1 (IEEE 1588-2002) | Dante, natively | UDP / IPv4 | End to end | — | Any; QoS helps a lot |
| PTPv2, AES67 media profile | AES67, RAVENNA, Dante in AES67 mode | UDP / IPv4 | End to end (peer to peer optional) | 0 | Any; boundary or transparent clocks help |
| PTPv2, SMPTE ST 2059-2 | ST 2110 plants | UDP / IPv4 | End to end (peer to peer optional) | 127 | Usually boundary clocks throughout |
| gPTP (IEEE 802.1AS) | AVB, Milan | Ethernet, layer 2 only | Peer to peer, one hop at a time | 0 | Every 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
Two QoS schemes, one shared code point
| AES67 class | Carries | DSCP |
|---|---|---|
| Clock | PTP announce, sync, delay request and response | EF (46) |
| Media | RTP and RTCP | AF41 (34) |
| Best effort | PTP signalling, connection management, everything else | DF (0) |
| Dante class | Carries | DSCP |
|---|---|---|
| Time-critical PTP | PTP event messages | CS7 (56) |
| Audio, PTP | Audio flows and other PTP | EF (46) |
| Reserved | Low priority | CS1 (8) |
| Other | Everything else | DF (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.
| Format | Published | From 1440 | From 1460 |
|---|---|---|---|
| L24, 48 kHz, 125 µs | 80 | 80 | 81 |
| L16, 48 kHz, 250 µs | 60 | 60 | 60 |
| L24, 48 kHz, 250 µs | 40 | 40 | 40 |
| L24, 48 kHz, 333⅓ µs | 30 | 30 | 30 |
| L24, 96 kHz, 250 µs | 20 | 20 | 20 |
| L24, 48 kHz, 1 ms | 10 | 10 | 10 |
| L24, 48 kHz, 4 ms | 2 | 2 | 2 |
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 time | Samples, 48 kHz | Samples, 96 kHz | Max ch, L16, 48 kHz | Max ch, L24, 48 kHz | Max ch, L24, 96 kHz | Why it's there |
|---|---|---|---|---|---|---|
| 125 µs | 6 | 12 | 120 | 80 | 40 | The AVB Class A interval |
| 250 µs | 12 | 24 | 60 | 40 | 20 | The AVB Class B interval |
| 333⅓ µs | 16 | 32 | 45 | 30 | 15 | Low latency at 3,000 packets a second |
| 1 ms | 48 | 96 | 15 | 10 | 5 | The one every device must support |
| 4 ms | 192 | 384 | 3 | 2 | 1 | WAN 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.
| Level | 48 kHz streams | 96 kHz streams | Biggest packet |
|---|---|---|---|
| A | 1–8 ch at 1 ms | — | 1152 bytes |
| AX | 1–8 ch at 1 ms | 1–4 ch at 1 ms | 1152 bytes |
| B | 1–8 ch at 1 ms, or 1–8 ch at 125 µs | — | 1152 bytes |
| BX | 1–8 ch at 1 ms, or 1–8 ch at 125 µs | 1–4 ch at 1 ms, or 1–8 ch at 125 µs | 1152 bytes |
| C | 1–8 ch at 1 ms, or 1–64 ch at 125 µs | — | 1152 bytes |
| CX | 1–8 ch at 1 ms, or 1–64 ch at 125 µs | 1–4 ch at 1 ms, or 1–32 ch at 125 µs | 1152 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.
| Class | A | B |
|---|---|---|
| Interval | 125 µs | 250 µs |
| Frames a second | 8,000 | 4,000 |
| Samples, 48 kHz | 6 | 12 |
| Latency bound | 2 ms | 50 ms |
| Over | 7 hops | 7 hops |
| Per hop | 286 µs | 7.1 ms |
| VLAN priority | 3 | 2 |
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
| Link | Worst case per hop | Hops in 2 ms | Switches in between | Budget used |
|---|---|---|---|---|
| 100 Mbit/s | 280 µs | 7 | 6 | 1.96 ms |
| 1 Gbit/s | 140 µs | 14 | 13 | 1.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.
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 kHz | Frame | Packets/s | Mbit/s |
|---|---|---|---|
| AES67, L16, 1 ms | 826 B | 1,000 | 6.77 |
| AES67, L24, 1 ms | 1210 B | 1,000 | 9.84 |
| AES67, L24, 125 µs | 202 B | 8,000 | 14.21 |
| Milan AAF, 32-bit | 238 B | 8,000 | 16.51 |
| AVB AM824 | 246 B | 8,000 | 17.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 stream | 1 ch | 2 ch | 4 ch | 8 ch | 16 ch | 32 ch |
|---|---|---|---|---|---|---|
| 48 kHz, XMOS publish | 7.81 | 7.81 | 10.88 | 17.02 | 29.31 | 53.89 |
| 96 kHz, XMOS publish | 10.88 | 10.88 | 17.02 | 29.31 | 53.89 | — |
| 48 kHz, computed here | 7.808 | 7.808 | 10.880 | 17.024 | 29.312 | 53.888 |
| 96 kHz, computed here | 10.880 | 10.880 | 17.024 | 29.312 | 53.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.
| System | Finds devices | Describes a stream | Makes the connection |
|---|---|---|---|
| Dante | mDNS / DNS-SD | Audinate's own | Dante Controller, or Dante Domain Manager |
| RAVENNA | DNS-SD, mDNS by default | SDP | RTSP |
| AES67 | Not specified (the annex suggests SAP or Bonjour) | SDP, required | SIP for unicast; for multicast, an IGMP join and nothing else |
| ST 2110-30 | In practice, AMWA NMOS IS-04 | SDP | In practice, NMOS IS-05. SIP is not required |
| AVB / Milan | AVDECC (ADP) | AVDECC descriptors (AECP) | AVDECC (ACMP) |
Dante's AES67 mode, in practice
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.
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.