Résumé

  • Un Feedback Start plus récent acquitte implicitement, au sens du cycle de vie du protocole, les états plus anciens et autorise leur retrait. Il ne démontre pas que chacune de ces images a été entièrement décodée ou affichée.
  • La fenêtre du récepteur est finie, la réponse est construite au moment de son émission et la référence de reprise doit encore exister chez l’émetteur : l’autorité opérationnelle reste distribuée.

Le tableau de supervision montrait une belle ligne ascendante. À chaque nouvelle demande, le Feedback Start progressait. Le logiciel en avait déduit que tout identifiant inférieur appartenait au passé réussi : reçu, décodé, rendu. Les anciennes lignes étaient donc reclassées en vert et supprimées du dossier d’incident.

Le protocole n’avait pourtant fourni qu’une consigne de gestion d’état.

Le projet RTCP Feedback Message and Request Mechanism for Frame-level Acknowledgement prévoit qu’une demande portant sur une nouvelle position acquitte implicitement les valeurs antérieures. Cela permet au récepteur de ne pas conserver indéfiniment l’histoire. Le mot « acquitte » ne change pas rétroactivement la signification de chaque bit disparu. Il indique surtout que l’émetteur ne doit plus attendre de réponse détaillée sur cette partie de la séquence.

La nuance est décisive parce que le bit positif lui-même n’est pas une attestation finale. Une valeur 1 signifie : unité reçue et déjà décodée, ou unité que le récepteur s’engage à tenter de décoder. Le retour peut partir avant la fin effective du décodage afin de réduire la latence. Si cette tentative échoue ensuite, le récepteur doit demander une image clé, même pour une couche supprimable. Faire du déplacement de la fenêtre une preuve plus forte que le bit d’origine inverse donc la hiérarchie réelle des faits.

Le texte observé est la révision 01, datée du 6 juillet 2026 et expirant le 7 janvier 2027. Il s’agit d’un Internet-Draft actif du groupe AVTCORE, destiné au statut Informational. Datatracker affiche I-D Exists, sans shepherd, Area Director responsable, évaluation IESG, numéro RFC ni attribution IANA achevée. Le message RTCP utilise le type de charge 205 et un FMT encore indéterminé, avec 12 comme suggestion. C’est une proposition technique en cours, pas la preuve d’un déploiement.

L’identifiant décrit l’état du codec

Le Frame ID occupe 16 bits, augmente de un pour chaque unité identifiée dans l’ordre d’envoi et revient à zéro après son maximum. Le point de départ peut être quelconque. L’extension RTP devrait figurer sur le dernier paquet de l’unité et ne doit pas apparaître plus d’une fois pour celle-ci.

Ici, une « image » n’est pas forcément une photographie affichée. C’est une unité de bitstream décodable qui modifie l’état de référence dont des unités ultérieures peuvent dépendre. Il peut s’agir d’une image complète, mais aussi d’une image non montrée, d’une tuile ou d’une tranche autonome. L’équation Frame ID = image vue est donc déjà trop large avant même d’examiner le retour.

Les deux bits FFR séparent identification et requête. 00 fournit seulement le Frame ID. 01 demande implicitement le statut de cette seule unité. 10 transporte un début et une longueur indépendants de l’unité courante. 11 est réservé. Le message RTCP répond avec un indicateur de resynchronisation, un début, une longueur sur huit bits et un vecteur d’un bit par unité.

Le zéro rassemble plusieurs réalités : unité non reçue, non décodée, ou que le récepteur ne prévoit pas de décoder. Le un en rassemble deux : décodage fini ou tentative promise. La compacité sert la boucle de contrôle ; elle exige que l’analyse ne prétende pas retrouver une précision absente du format.

Retirer une valeur n’est pas certifier son contenu

Le récepteur maintient une fenêtre contiguë. Sa taille par défaut est de 255 identifiants ; une négociation peut la fixer entre 1 et 32 767. Au-delà de 255, plusieurs messages sont nécessaires puisque la longueur d’un message tient sur huit bits. Quand de nouvelles unités font déborder la fenêtre, les plus anciennes sont retirées selon une file FIFO.

Si une demande commence avant la fenêtre encore disponible mais la recoupe, la réponse déplace son début jusqu’au plus ancien état conservé. Si l’intervalle demandé n’a plus aucune intersection, la réponse garde le début demandé mais porte une longueur nulle. L’émetteur doit comprendre qu’il ne peut plus fonder une nouvelle prédiction sur ces références anciennes.

Une longueur nulle ne dit pas « toutes perdues ». Elle ne dit pas davantage « toutes décodées ». Elle dit que le récepteur ne détient plus les états individuels demandés. De même, un début avancé ne constitue pas un certificat collectif sur ce qui précède. C’est une frontière de rétention.

Un journal fiable doit donc conserver trois choses distinctes : le statut effectivement envoyé auparavant, la décision de retirer ce statut, et l’absence éventuelle d’une observation finale. Si le système ne garde que le début courant, il perd la capacité de distinguer une image décodée, une promesse abandonnée par l’horizon de la fenêtre et une unité jamais observée.

La réponse appartient au présent de son émission

Les règles de temporisation RTCP peuvent retarder le retour. Pendant l’attente, le flux continue et la fenêtre avance. Le projet exige de construire la réponse d’après l’état disponible au moment de l’émission, pas d’après une photographie prise à la réception de la demande.

Ainsi, une demande pour les identifiants 1 à 4 peut recevoir une réponse limitée à 3 et 4 si la fenêtre s’est déplacée vers 3 à 6. La réponse est correcte. Elle ne reconstitue simplement pas le passé exact de la demande. Si une demande plus récente arrive avant l’envoi de l’ancienne réponse, le récepteur devrait abandonner l’ancienne et ne répondre qu’à la dernière.

Cette politique évite une file de retours périmés. Elle rend dangereux tout audit qui compte une demande reçue comme une obligation durable de produire sa réponse originale. Les temps de demande, de génération et d’émission du retour doivent rester visibles.

La resynchronisation dépend des deux mémoires

Lorsque le bit R demande une resynchronisation, le récepteur peut annoncer sa dernière référence correctement décodée et les statuts jusqu’à la dernière unité reçue, dans la limite de place. Cette information ne suffit pas à choisir une référence d’encodage.

L’émetteur doit vérifier que la référence existe encore dans son propre tampon. Il devrait encoder à partir de cette référence, ou d’une autre dont la présence chez le récepteur est connue. Si aucune n’est encore disponible côté émetteur, il devrait produire une image clé. Un bon état au récepteur et une rétention chez l’émetteur sont deux faits indépendants.

La suite reste également à prouver : décision d’encodage, émission, livraison, reconstruction, décodage et rendu. Le paramètre resync-timeout, compris entre 1 et 65 535 millisecondes, fixe un seuil de famine de décodage ; il ne promet pas la durée du rétablissement. La taille de fenêtre du récepteur ne garantit pas celle du tampon de références de l’encodeur.

Les agrégations ajoutent leur propre passé

Plusieurs chaînes de dépendance peuvent être entrelacées dans un seul SSRC. Une unité ultérieure décodée sur une chaîne ne renseigne pas forcément sur une unité antérieure d’une autre chaîne. Réduire le retour à « plus grand identifiant validé » supprime les trous que le vecteur cherche justement à représenter.

Un SFU peut réécrire les Frame ID pour assurer une séquence continue sur chaque sortie. Le projet indique qu’un intermédiaire ne devrait normalement acquitter en amont qu’après l’acquittement de tous les récepteurs actifs. Cette phrase exige de garder la liste des récepteurs comptés, les correspondances d’identifiants et le moment où la liste était active. Sans ce dénominateur, l’acquittement agrégé ne permet pas de savoir quel public il représente.

Le changement du SSRC de l’émetteur ou du récepteur réinitialise la séquence et supprime l’état antérieur. Hors de ce changement, les réinitialisations et les trous ne sont pas permis. Une base d’observation qui assemble deux époques au seul motif que les nombres se ressemblent fabrique un historique qui n’a jamais existé.

Un contrat minimal pour un signal éphémère

La discipline des couches de réalité de Heng Lu offre ici une règle simple. L’identifiant, la plage demandée et le vecteur sont des assertions de coordination. La fenêtre du décodeur et le tampon de l’encodeur sont des états exécutables. La réception des paquets, le décodage achevé, le rendu et l’expérience constituent des observations ultérieures.

Une spécification initiale minimale devrait conserver la paire de SSRC, l’époque, la demande, l’heure de réception, l’heure d’émission, les limites de la fenêtre, le sens exact des bits, l’éventuel retrait implicite, la référence annoncée et sa disponibilité chez l’émetteur. Elle peut rester indépendante du codec tout en interdisant la confusion des couches.

Les essais de code doivent forcer le déplacement de fenêtre avant réponse, le retour sur 16 bits, l’échec après un bit positif, la substitution d’un SSRC, l’entrelacement de chaînes, l’éviction d’une référence et le changement de population d’un SFU. Un résultat digne de confiance montre les états inconnus et partiels. Il ne peint pas le passé en vert pour simplifier le présent.

Le nouveau Feedback Start de l’incident initial avait fait son travail : il avait limité l’histoire que le protocole devait encore porter. La faute appartenait au système de preuve, qui avait confondu abandon de l’état et réussite de l’action. Une infrastructure adulte sait retirer un enregistrement sans réécrire ce qu’il n’a jamais démontré.

Sources