PS1, SRT et RIST

Protocoles pair à pair de transmission fiable : les paquets perdus sont retransmis à la demande du récepteur, aussi les trois disposent-ils d’un tampon de réception et d’une réserve de bande passante pour la retransmission. Le choix du protocole ainsi que le calcul de la bande passante et de la latence sont décrits dans Protocoles Peer de transmission fiable et Planification de la bande passante, de la latence et des ports, le chiffrement dans Chiffrement des flux.

Chaque protocole détermine à sa manière le côté qui établit la connexion : avec PS1 c’est toujours le récepteur qui se connecte, avec SRT le côté se choisit par un réglage, avec RIST il découle des adresses. Cela décide de l’endroit où un port ouvert est nécessaire et de celui où une connexion sortante suffit.

PS1

Un protocole de conception propre (PS1 (Perfect Stream)). La connexion est toujours établie par le récepteur, aussi l’entrée se connecte-t-elle à l’émetteur tandis que la sortie écoute un port. Il n’y a pas de mode de choix du côté.

Entrée

Champ

Rôle

Valeurs

Address (source host)

L’hôte émetteur auquel le récepteur se connecte. Champ obligatoire.

une adresse ou un nom d’hôte

Port

Le port de l’émetteur. Champ obligatoire.

1–65535

« Identifiant », « Mot de passe »

Les identifiants que le récepteur présente à l’émetteur ; celui-ci les confronte à sa propre liste d’identifiants (Utilisateurs / Identifiants). Un identifiant vide signifie une autorisation par l’adresse IP du récepteur. La valeur doit faire moins de 32 octets : au-delà, le récepteur la rejette lui-même sans envoyer de requête, et l’entrée reste en erreur. Au lieu d’une saisie manuelle, la connexion automatique Meshwork est disponible — voir ci-dessous.

vide par défaut

Passphrase

La phrase secrète de chiffrement ; elle doit coïncider avec celle de l’émetteur. Le protocole ne reconnaît pas une divergence : la connexion s’établira, mais le flux ne sera pas analysé comme du MPEG-TS — dans le texte de l’erreur, le nœud rappelle si une phrase secrète est définie de ce côté.

10–64 octets ou vide

Start timeout (s)

Combien de temps attendre la réponse de l’émetteur à la demande d’autorisation. À défaut de réponse, le récepteur se reconnecte.

5–3600, par défaut 10

Play timeout (s)

Combien de temps une connexion en fonctionnement peut rester silencieuse avant que le récepteur ne la considère comme rompue. C’est le temps de réaction à une panne de la source.

5–3600, par défaut 10

Latency (ms)

La latence de réception demandée : la fenêtre d’élimination de la gigue et de retransmission. La valeur est une demande : l’émetteur la limite par son propre tampon et affiche la valeur négociée dans les statistiques de l’entrée. L’ordre de grandeur est de quatre temps d’aller-retour ; les flux à faible débit en demandent davantage, pour que suffisamment de paquets tiennent dans la fenêtre.

250–10000, par défaut 3000

RTT (initial estimate) (ms)

L’estimation initiale du temps d’aller-retour, uniquement pour les premières secondes après la connexion : ensuite le récepteur le mesure lui-même et ajuste les retransmissions. Zéro ne signifie pas ici « automatique » — il est simplement en deçà de la limite autorisée.

40–10000, par défaut 300

Connexion automatique Meshwork. Sur une entrée PS1, l’identifiant et le mot de passe peuvent être omis : le bouton « Utiliser la connexion automatique meshwork » fait passer l’entrée à l’autorisation de domaine, où les identifiants sont formés automatiquement et renouvelés à chaque reconnexion, et où il n’est pas nécessaire de créer un compte sur l’émetteur (Pairs et secrets). Un domaine du nœud est requis. Le retour en arrière — « Passer à la connexion manuelle… » — efface la connexion automatique et demande confirmation.

Sortie

Champ

Rôle

Valeurs

Listening port

Le port sur lequel l’émetteur écoute. Champ obligatoire ; il peut rester à zéro — le nœud choisira un port libre à l’enregistrement, tandis que le bouton voisin en choisit un immédiatement.

1–65534

Bind interface

L’interface sur laquelle le port est écouté ; choisie dans la liste des interfaces du nœud. Une valeur vide signifie n’importe quelle interface. Une interface absente du nœud n’est pas considérée comme une erreur : la sortie écoute alors toutes les interfaces, comme avec un champ vide.

n’importe laquelle par défaut

Passphrase

La phrase secrète de chiffrement ; elle doit coïncider avec celle des récepteurs.

10–64 octets ou vide

Latency (ms)

Le tampon de l’émetteur : la limite de latence qu’il est prêt à accorder aux récepteurs, et la taille de son propre tampon de retransmission. Chaque récepteur reçoit au plus cette valeur moins une seconde, aussi la réserve pour toute la liaison se définit-elle ici.

à partir de 3000, par défaut 6000

Trace

Journalisation des connexions et des refus dans le journal du flux.

désactivé par défaut

SRT

Un protocole ouvert fondé sur UDP (SRT). Le côté qui établit la connexion est choisi par le réglage « Listen mode » — et ce même réglage change le sens de plusieurs champs, aussi le définit-on en premier.

« Listen mode » est désactivé par défaut sur une entrée : l’entrée se connecte elle-même à l’émetteur (caller). Sur une sortie, il est au contraire activé : la sortie écoute un port et distribue le flux à ceux qui se connectent (listener). La plupart des champs, la fenêtre les affiche dans les deux modes, même lorsqu’ils sont sans effet dans le mode courant ; seuls deux sont masqués — « Enable billing » sur une sortie et la proposition de connexion automatique Meshwork sur une entrée.

Entrée

Champ

Rôle

Valeurs

Listen mode

Désactivé — l’entrée se connecte à l’adresse et au port indiqués. Activé — l’entrée écoute un port et attend une connexion.

désactivé par défaut

Address

Avec « Listen mode » désactivé — l’hôte source auquel l’entrée se connecte ; un nom d’hôte y est également admis. Avec le mode activé — l’unique adresse depuis laquelle une connexion est acceptée, et elle se saisit sous forme numérique : un nom d’hôte ou une faute de frappe ne seront pas reconnus et équivalent à l’absence de restriction, tout comme un champ vide.

une adresse ou un nom d’hôte

Port

Le port : le port distant lors de la connexion à une source, le port local en mode d’écoute. Champ obligatoire. En mode d’écoute, le port peut rester à zéro — le nœud en choisira un libre.

1–65535

Bind interface

L’interface : en mode d’écoute, le port y est écouté ; lors de la connexion à une source, la connexion sortante en part. Choisie dans la liste des interfaces du nœud.

n’importe laquelle par défaut

« Identifiant », « Mot de passe »

Lors de la connexion à une source, un identifiant de flux (stream ID) présenté à l’émetteur est formé à partir d’eux. En mode d’écoute, seul l’identifiant est utilisé — c’est l’identifiant que le demandeur est tenu de présenter : la comparaison est exacte, sur la chaîne entière (SRT : autorisation par identifiant et mot de passe dans un logiciel tiers).

vide par défaut

Passphrase

La phrase secrète du chiffrement de la connexion. Les deux côtés doivent définir la même phrase ou tous deux laisser le champ vide. Lors de la connexion à une source, une divergence se découvre au refus du pair : l’entrée passe en attente de l’administrateur et déclenche une alerte. En mode d’écoute, la connexion ne s’établit tout simplement pas, et l’entrée continue d’attendre.

10–79 octets ou vide

AES key length

La longueur de la clé de chiffrement. Elle ne s’applique que si une phrase secrète est définie.

AES-128 (par défaut), AES-192, AES-256

Latency (ms)

La fenêtre pendant laquelle le récepteur retient les paquets, laissant au protocole le temps de retransmettre. Plus la fenêtre est grande, plus le rétablissement est profond et plus la latence de bout en bout est élevée ; l’ordre de grandeur pratique est de trois à quatre temps d’aller-retour.

à partir de 120, par défaut 1000

Loss max TTL

La borne supérieure de tolérance au désordre des paquets : dans ces limites, le récepteur choisit lui-même combien de temps attendre un paquet en retard avant de considérer un trou comme une perte et de demander une retransmission. On augmente la valeur sur les chemins où les paquets sont réellement désordonnés — cela évite des retransmissions inutiles. Zéro désactive le mécanisme : tout trou est aussitôt compté comme une perte.

à partir de 0, par défaut 0

Overhead (%)

La réserve de bande passante au-dessus du débit du flux que le protocole a le droit de consacrer aux retransmissions. Elle s’applique tant que « Max bandwidth » vaut zéro.

5–100, par défaut 25

Max bandwidth (B/s)

Une limite stricte du débit d’émission en octets par seconde. La réserve en pourcentage ne s’applique qu’à zéro : la limite est alors déduite du débit mesuré et de cette réserve. La valeur −1 lève la restriction, une valeur positive fixe la limite directement — et dans les deux cas la réserve en pourcentage cesse de s’appliquer.

à partir de −1, par défaut 0

Connect timeout (ms)

Le silence admissible du pair, au-delà duquel la connexion est considérée comme rompue. Pour le côté qui établit la connexion, c’est aussi le délai de la connexion elle-même.

à partir de 0, par défaut 3000

Disable TSBPD

Désactive la remise des paquets d’après leurs horodatages : les paquets sont livrés dès leur arrivée. La latence est minimale, mais il n’y a plus ni lissage ni mise en ordre du côté SRT — et le réglage Latency cesse de gouverner la remise. On l’emploie sur des nœuds de réception denses, où la synchronisation est prise en charge par le tampon de gigue du nœud (Synchronisation).

désactivé par défaut

Une entrée en mode d’écoute accepte une seule connexion : tant que le récepteur est occupé par une source, une deuxième ne se connectera pas. Pour recevoir plusieurs sources, on ajoute plusieurs entrées (Redondance des sources et diffusion).

La connexion automatique Meshwork est disponible ici aussi, lors de la connexion à une source : elle substitue l’identifiant de flux du domaine à l’identifiant et au mot de passe (Pairs et secrets). En mode d’attente de connexions, cette possibilité n’existe pas, mais une connexion depuis un nœud du même domaine y est acceptée également — par l’identifiant de domaine, en plus de la vérification ordinaire.

Sortie

Les champs de chiffrement et les réglages de la liaison sont les mêmes que pour l’entrée. Les différences :

Champ

Rôle

Valeurs

Listen mode

Activé — la sortie écoute un port et plusieurs récepteurs s’y connectent, chacun avec sa propre autorisation. Désactivé — la sortie se connecte elle-même à l’adresse indiquée et délivre le flux à un seul récepteur.

activé par défaut

Address

L’adresse du récepteur. Obligatoire lorsque « Listen mode » est désactivé ; en mode d’attente de connexions, elle n’est pas utilisée.

une adresse ou un nom d’hôte

Port

Le port local en mode d’écoute (il peut rester à zéro — le nœud en choisira un libre) ou le port du récepteur lors de la connexion. Champ obligatoire.

1–65534

Bind interface

L’interface : en mode d’écoute, le port y est écouté ; lors de la connexion à un récepteur, la connexion sortante en part.

n’importe laquelle par défaut

Meshwork peer auth

Autorisation de domaine au lieu d’un identifiant de flux — lors de la connexion à un récepteur du même domaine (Pairs et secrets). À la différence de l’entrée, c’est ici un interrupteur ordinaire, et en mode d’écoute il est également affiché, bien qu’il soit sans effet.

désactivé par défaut

SRT stream id

L’identifiant de flux que la sortie présente à un récepteur lorsqu’elle s’y connecte. En mode d’écoute, il n’est pas utilisé — c’est alors le demandeur qui présente l’identifiant.

vide par défaut

Enable billing

Uniquement lors de la connexion à un récepteur : avant la connexion, la sortie demande l’autorisation au serveur de facturation. Un refus ou l’indisponibilité du serveur arrêtent la sortie jusqu’à l’intervention d’un administrateur — le flux ne part pas sans autorisation. En mode d’écoute, le champ n’est pas affiché : chaque connexion y est autorisée séparément.

désactivé par défaut

Packets per datagram

Combien de paquets TS sont placés dans un message SRT. Sept paquets remplissent les 1316 octets standard ; une valeur plus faible réduit légèrement la latence au prix d’une surcharge nettement plus élevée. Une modification rouvre la sortie.

1–7, par défaut 7

Trace

Journalisation des connexions, des refus et des déconnexions des récepteurs dans le journal du flux.

désactivé par défaut

RIST

Un protocole ouvert fondé sur RTP/RTCP avec retransmission par NACK (RIST). RIST n’a pas qu’un seul pair : l’entrée comme la sortie travaillent avec une liste de pairs, ce qui offre une redondance sur plusieurs chemins et une diffusion vers plusieurs destinataires à la fois.

Le profil Main place les données et la voie de service dans un seul port, et le chiffrement ne fonctionne que dans celui-ci. Le profil Simple occupe deux ports consécutifs, aussi le port de base doit-il être pair, et la phrase secrète est sans effet dans ce profil.

La liste des pairs

Les pairs se définissent dans le tableau « Pairs RIST » : une ligne est un pair, les colonnes étant Address, Port, Interface et Weight. Le libellé de la colonne porte une indication sur son emploi habituel, et il diffère entre l’entrée et la sortie : à l’entrée — Address (multicast) et Interface (unicast), à la sortie — Address et Interface (multicast). Le bouton « Ajouter un pair » ajoute une ligne, « Supprimer le pair » l’enlève ; un tableau vide est accompagné de la mention « Aucun pair pour l’instant. » Un zéro dans les colonnes Port et Weight est affiché sous forme de cellule vide.

Colonne

Rôle

Valeurs

Address

L’adresse du pair. À l’entrée, c’est l’adresse depuis laquelle le flux est reçu : un groupe multicast fait de l’entrée un membre du groupe, une cellule vide signifie une réception unicast — et la socket est alors liée à l’adresse de la colonne Interface. À la sortie, c’est l’adresse du destinataire, et elle est obligatoire. Il est interdit de mélanger groupes multicast et adresses unicast dans une même liste.

une adresse

Port

Le port du pair. Obligatoire pour chaque ligne. Dans le profil Simple, le port doit être pair — le port voisin est pris par la voie de service.

1–65535

Interface

L’interface. À l’entrée, elle est nécessaire en réception unicast — c’est précisément à son adresse que le récepteur est lié ; en réception multicast, elle n’est que vérifiée. À la sortie, elle définit l’interface d’émission pour un groupe multicast, tandis qu’en unicast elle est sans effet : l’interface est choisie par la table de routage.

un nom d’interface ou son adresse

Weight

La politique des chemins à l’émission. Zéro signifie la duplication : chaque paquet est envoyé au pair — c’est la redondance de la liaison. Une valeur positive active la répartition de charge entre les pairs à poids positifs, proportionnellement à ceux-ci. À la réception, la valeur est sans effet.

à partir de 0, par défaut 0

Une entrée RIST ne figure au catalogue du domaine que par les pairs ayant une adresse multicast ; la réception unicast n’y est pas annoncée (Catalogue commun des ressources).

L’enregistrement est bloqué tant que le tableau n’est pas rempli : « Ajoutez au moins un pair. », « Chaque pair doit avoir un port de 1 à 65535. », « Chaque pair doit avoir une adresse. » — à la sortie, « Chaque pair doit avoir une adresse (multicast) ou une interface (unicast). » — à l’entrée. Trois autres messages reprennent les vérifications du nœud, afin de ne pas les rencontrer sous la forme d’un enregistrement refusé : « Dans le profil Simple, le port de chaque pair doit être pair. », « Un pair unicast sur une entrée nécessite une interface de liaison. » et « Tous les pairs doivent être soit multicast, soit unicast — il est interdit de les mélanger. »

Les deux derniers messages n’apparaissent que lorsque toutes les lignes contiennent des adresses et non des noms d’hôte : un navigateur ne peut pas résoudre un nom, et le type de l’adresse est inconnu avant cela. Dans un tableau rempli de noms, les deux restrictions ne seront vérifiées que par le nœud — sous la forme d’un enregistrement refusé.

Les listes de ce tableau ne peuvent pas être désaccordées : chaque modification reconstruit les quatre listes en entier. Une configuration parvenue au nœud en dehors de l’interface et déjà désaccordée est affichée intégralement — les cellules manquantes sont vides — et l’enregistrement reste bloqué tant que la ligne n’est pas complétée ; après quoi les listes sont réalignées.

Entrée

Champ

Rôle

Valeurs

RIST profile

Le format de transmission. Main — un seul port, chiffrement disponible. Simple — deux ports consécutifs, sans chiffrement.

Simple, Main (par défaut)

Allowed peer IP

L’unique adresse depuis laquelle une connexion est acceptée ; les autres sont rejetées avec une inscription au journal. Un champ vide autorise une connexion depuis n’importe quelle adresse. Il s’agit d’une seule adresse, et non d’une liste, d’un masque ou d’une plage.

vide par défaut

Passphrase

La phrase secrète de chiffrement ; elle doit coïncider des deux côtés. La longueur n’est pas limitée, mais seuls les 127 premiers octets sont pris en compte. Elle ne s’applique que dans le profil Main.

vide par défaut

Session timeout (ms)

Combien de temps un pair peut rester silencieux avant que la session ne soit rompue. Une valeur plus faible accélère la détection d’un chemin défaillant, une valeur trop faible provoque des ruptures sur une liaison instable.

à partir de 100, par défaut 2000

Recovery RTT min (ms), Recovery RTT max (ms)

Les bornes dans lesquelles s’inscrit le temps d’aller-retour mesuré lors du calcul de l’intervalle des demandes de retransmission. Elles ne définissent pas la taille du tampon de rétablissement — celle-ci est fixe.

à partir de 10 ; par défaut 50 et 500

Trace

Journalisation des événements des pairs dans le journal du flux. Modifier ce réglage redémarre l’entrée.

désactivé par défaut

Sortie

Le même tableau de pairs, le même profil, la même phrase secrète et les mêmes réglages de rétablissement. Les différences :

Champ

Rôle

Valeurs

Auth type

None — une connexion est acceptée de n’importe quel pair. Embedded — un pair est autorisé par adresse IP d’après la liste des identifiants du nœud (Utilisateurs / Identifiants) ; une adresse inconnue est rejetée.

None (par défaut), Embedded

Packets per datagram

Combien de paquets TS sont placés dans un datagramme. Sept paquets remplissent les 1316 octets standard. Une modification rouvre la sortie.

1–7, par défaut 7