En radio, on est toujours sujet à des perturbations. Pour donner un ordre de grandeur, 10 moins 6 correspond à un taux d'erreur bit considéré comme correct en radio. Si on y regarde d'un peu plus près, ça fait quand même une erreur par seconde si on transmet à 1 mégabit par seconde et 70 erreurs par seconde si on transmet à 70 mégabits par seconde. On a déjà vu que la couche physique met en œuvre un premier niveau de fiabilisation basé sur l'utilisation des codes correcteurs d'erreurs, mais ça ne permet pas de corriger toutes les erreurs. Dans cette leçon, on va voir un mécanisme géré par la couche située juste au-dessus de la touche physique qui s'appelle la couche MAC qui signifie Media Access Control. La couche MAC utilise, quant à elle, des codes détecteurs d'erreurs qui permettent de détecter si les données reçues sont correctes. Il s'agit de codes de type CRC qui sont calculés sur les données à l'émission. Le récepteur réalise le même calcul, et s'il ne trouve pas la même valeur, il en déduit qu'il y a eu une erreur. Comment l'émetteur peut-il être informé qu'il y a eu une erreur ? Eh bien, le récepteur va lui envoyer un message de confirmation, c'est ce qu'on appelle un acquittement. Au passage, on peut signaler que cet acquittement va être transmis sur les canaux de contrôle dont on a parlé dans la vidéo précédente. Comment cela fonctionne-t-il en détail ? Eh bien, il y a 3 cas possibles. Le cas le plus simple, c'est le cas où il n'y a pas d'erreur. L'émetteur envoie sa donnée, la donnée est reçue correctement, le récepteur la confirme par un message d'acquittement. Dans le second cas, la donnée est envoyée et est altérée pendant la transmission, ce qui fait qu'elle est reçue de façon erronée par le récepteur. Le récepteur informe l'émetteur par un message de non-acquittement ou NAC. À réception de ce message, l'émetteur peut réémettre le message et on va faire ça jusqu'à temps de recevoir un acquittement positif. Le dernier cas, c'est le cas où l'émetteur a émis un message, mais il ne reçoit pas d'acquittement. Ça peut vouloir dire soit que le message s'est perdu, soit que c'est l'acquittement qui s'est perdu, mais en tous les cas le processus ne s'est pas déroulé correctement. Au bout d'un certain temps, l'émetteur, de lui-même, automatiquement, va réémettre la donnée et quand elle sera bien reçue elle sera acquittée par le récepteur. La source compte le nombre de réémissions et au bout d'un certain nombre d'échecs, elle abandonne la transmission, elle considère que le paquet est perdu et qu'elle n'arrive pas à le transmettre. De nouvelles tentatives pourront être effectuées par des protocoles de niveau supérieur, mais vu de la couche MAC, il s'agira de nouvelles données. Le mécanisme que je viens de décrire s'appelle le Send and Wait ARQ. Send and wait parce que l'émetteur envoie les données, puis attend la réponse. Et ARQ pour Automatic Repeat Request, c'est le mécanisme qui retransmet automatiquement la donnée si l'acquittement n'est pas reçu. Comment cela fonctionne-t-il en LTE ? On va s'intéresser au timing des acquittements. Pour laisser le temps au destinataire du message de vérifier et de générer l'acquittement, la norme prévoit que le destinataire envoie son acquittement quatre sous trames après le message original. De même, à réception de l'acquittement, l'émetteur a quatre sous trames pour réagir, donc soit répéter son message, soit envoyer un nouveau message, puisque le premier s'est bien déroulé. Le cycle total dure donc huit sous trames, c'est-à -dire huit millisecondes. Pendant ce temps, l'émetteur ne transmet plus rien, c'est le principe du Send and Wait. Pour optimiser ça, LTE va instancier huit processus de Send and Wait en parallèle. Pendant que le premier processus est bloqué en attente de son acquittement, un autre processus va pouvoir transmettre une donnée, se bloquer, et ainsi de suite jusqu'à avoir huit processus qui vont exploiter l'ensemble des ressources disponibles. C'est ce qu'on appelle du Send and Wait parallélisé. Le défaut du Send and Wait parallélisé, c'est que ça peut engendrer des déséquencements, on va le voir dans cet exemple. Ici, le bloc 1 a été reçu correctement, mais le blog 2 s'est perdu, et puis le bloc 3 et le bloc 4 sont également reçus correctement. Comme le bloc 2 s'est perdu, huit sous trame après sa première émission il va être réémis et va être délivré ici. Finalement, la séquence reçue ce sera: bloc 1, bloc 3, bloc 4 et bloc 2. Et c'est ça que va délivrer la couche MAC au niveau supérieur. La couche MAC ne peut pas gérer ces déséquencements. Elle laisse le soin aux couches de niveau supérieur de gérer ce problème-là . On verra que c'est la couche RLC, qui est immédiatement au-dessus de la couche MAC, qui traite ce problème-là , on le verra dans une prochaine leçon. En fait, LTE utilise une version un peu plus évoluée de l'ARQ qui s'appelle HARQ. Ce n'est pas très important de comprendre le fonctionnement, en revanche c'était bien de connaître le sigle HARQ, car ce terme est très utilisé dans la littérature. On va quand même dire un petit mot de ce principe-là . Pour augmenter les capacités de correction d'erreurs, le récepteur conserve en mémoire tous les messages erronés qu'il a reçus précédemment. Cette accumulation d'informations augmente d'une certaine façon la redondance, et donc les chances de reconstituer correctement la donnée transmise. D'autant que pour améliorer encore cette diversité, l'émetteur s'arrange pour changer la séquence de codage à chaque réémission. HARQ signifie Hybrid ARQ, hybride, car la couche MAC collabore avec la couche physique pour l'informer si les données à transmettre sont nouvelles, ou si ce sont des répétitions. Comme ça, la couche physique sait quel paramétrage de correction d'erreurs elle doit utiliser. Avant de commencer sur cette diapo, je vais faire un petit point de vocabulaire. D'une manière générale, dans le modèle en couches des réseaux, les données qui sont reçues par une couche s'appellent des SDU, ce qui signifie Service Data Units. Les données qui sortent de cette couche s'appellent des PDU, ce qui signifie Protocole Data Units. Dans notre cas, la couche MAC reçoit des MAC-SDU et elle produit des MAC-PDU qu'elle délivre à la couche physique. Maintenant que ce point de vocabulaire a été expliqué, je vais vous expliquer la fonction de multiplexage de la couche MAC. Les données à traiter par la couche MAC sont fournies par la couche de niveau supérieur qui s'appelle RLC. Elles sont fournies au travers de ce qu'on appelle des canaux logiques qui peuvent être vus comme des files d'attente. On y reviendra dans une prochaine leçon, mais ce qu'il faut comprendre à ce stade c'est qu'il y en a plusieurs et qu'ils correspondent à différents niveaux de service. On voit par exemple sur la figure qu'un canal a été dédié pour les messages de signalisation, un autre pour les messages de voix et encore un autre pour les données générales. Le rôle de la couche MAC est de former des blocs de transport. Le MAC-PDU est donc en fait un bloc de transport qui sera transmis sur la couche physique. Pour former ce bloc de transport, la couche MAC va piocher dans les différentes files d'attente, dans les différents canaux logiques et assembler des SDU pour former un bloc de transport de la taille qui a été allouée pour cette transmission. On dit qu'elle réalise un multiplexage, car elle a plusieurs voix en entrée et une seule en sortie. Pour permettre au récepteur de décomposer ce bloc, on dit de le démultiplexer, la couche MAC ajoute des en-têtes qui indiquent où commence chaque message et à quel canal logique il appartient. Enfin, des données de bourrage peuvent être insérées pour que la taille du MAC-PDU corresponde exactement à celle du bloc de transport que l'on veut transmettre. En résumé, en plus des fonctions d'allocation de ressources vues dans la vidéo précédente, la couche MAC assure aussi la fiabilisation des transmissions par un mécanisme d'HARQ parallélisé qui assure la retransmission en cas d'erreur. Elle peut aussi fusionner les données en provenance de différents canaux logiques au sein d'un même bloc de transport.