Cobranet est la plus ancienne réalisation d'un protocole audio sur Ethernet (1990).
Ce protocole transmet des signaux audio numériques non compressés avec une assez faible latence sur un réseau Ethernet "standard".
Une différence majeure avec le protocole Ethersound déja étudié, est que l'on peut faire passer le signal par un switch, comme le montre le schéma ci-dessous :
Le protocole Cobranet autorise 64 canaux (32 dans chaque sens)
Le switch qui permet d'échanger les donnée n'est pas réservé exclusivement à l'installation Cobranet : Il peut faire transiter en même temps des données TCP/IP traditionnelles entre ordinateurs (grace à l'implémentation VLAN [réseau virtuel] dans la norme utilisée... Ce qui hélas peut augmenter la latence.)
La communication se fait uniquement avec les adresses MAC des machines. Cela simplifie la configuration et diminue la latence mais en même temps supprime certains services de plus haut niveau.
Le transfert des données audio se fait par groupes de canaux appelés "Bundles".
Typiquement, un Bundle accueille 8 canaux audio 48000Hz@20.
On trouvera 4 bundles dans chaque sens (4*2*8=64 canaux)
le nombre de bits de quantification peu varier (16bits, 24bits..) ce qui influence directement le nombre de canaux transportables.
Il existe trois types de bundles (leurs noms ne correspondent hélas pas aux définitions habituelles):
Les bundles Multicast :
Les données sont envoyées par une machine à toutes les autres.
Les bundles Unicast
Les données sont envoyées par une machine à plusieurs autres.
Les bundles Privés
Les données sont envoyées par une machine à une autre.
Le réseau Cobranet est synchronisé par un appareil maître ici appelé "Conductor". Le choix du "Conductor" est fait lors de la configuration.
La trame se présente sous cette forme :
Soit :
-1 octet de préambule
-12 octets pour les adresses MAC de destination / source
-4 octets de sélection du VLAN
-2 octet type/longueur
-46 à 1500 octets de données audio
-2 octets de contrôle.
Pour finir en fonction de la configuration, on trouvera trois valeurs de latence : 5,33mS, 2,66mS ou 1,33mS.
Exemples :
Channels per bundle | ||||||
---|---|---|---|---|---|---|
16 bit, 48 kHz | 20 bit, 48 kHz | 24 bit, 48 kHz | 16 bit, 96 kHz | 20 bit, 96 kHz | 24 bit, 96 kHz | |
5 1⁄3 ms | 8 | 8 | 7 | 5 | 4 | 3 |
2 2⁄3 ms | 8 | 8 | 8 | 8 | 8 | 7 |
1 1⁄3 ms | 8 | 8 | 8 | 8 | 8 | 8 |
On voit que contrairement à l'Ethersound, la latence n'est pas dépendante du nombre de machines connectées au réseau. C'est dû à la différence de topologie (pour nous, câblage) : Bus (Marguerite) ou Anneau pour l'Ethersound, Etoile pour Cobranet.