{"id":637,"date":"2017-05-07T18:17:46","date_gmt":"2017-05-07T16:17:46","guid":{"rendered":"http:\/\/www.gatoux.com\/?page_id=637"},"modified":"2017-05-07T19:08:33","modified_gmt":"2017-05-07T17:08:33","slug":"la-trame-lap-b","status":"publish","type":"page","link":"https:\/\/racine.gatoux.com\/lmdr\/index.php\/la-trame-lap-b\/","title":{"rendered":"La trame LAP B"},"content":{"rendered":"<h2>R\u00f4les et position<\/h2>\n<p>Rappelez-vous l&rsquo;environnement OSI &#8230; Un niveau 3 est support\u00e9 par un protocole de niveau 2. Le protocole de niveau 2 g\u00e9re la communication entre deux \u00e9quipements adjacents (s\u00e9par\u00e9s par un support physique). Son r\u00f4le est <strong>d&rsquo;assurer le transfert de blocs de donn\u00e9es entre \u00e9quipements directement connect\u00e9s avec un taux d&rsquo;erreurs r\u00e9siduelles n\u00e9gligeable<\/strong>.<\/p>\n<p>Le LAP B entre en action d\u00e8s que la connexion de niveau physique est \u00e9tablie. Les deux modems (ou ERBdB, souvenez-vous &#8230;) sont en communication, les porteuses sont d\u00e9tect\u00e9es de chaque cot\u00e9, les DTE sont inform\u00e9s par les modems de l&rsquo;\u00e9tablissement de la connexion. La proc\u00e9dure de niveau 2 s&rsquo;active.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-250 aligncenter\" src=\"http:\/\/racine.gatoux.com\/lmdr\/wp-content\/uploads\/2017\/04\/POSITION.gif\" alt=\"\" width=\"600\" height=\"167\" \/><\/p>\n<p style=\"text-align: left;\" align=\"center\"><strong>Une remarque importante \u00e0 ce stade<\/strong> : Le LAP B est une proc\u00e9dure de transmission synchrone orient\u00e9e \u00ab\u00a0bits\u00a0\u00bb. Autrement dit elle ne peut pas fonctionner sur des liaisons de transmission asynchrone qui par nature sont des liaisons adapt\u00e9es \u00e0 des transmissions en mode caract\u00e8re. Je vous renvoie encore une fois \u00e0 ce fameux cours OSI (couche 2) pour vous rafra\u00eechir la m\u00e9moire si n\u00e9cessaire. Donc pas de LAP B sur des liaisons asynchrone &#8230; Compris ?<\/p>\n<h2>Train binaire et trames &#8230;<\/h2>\n<p>Donc, maintenant, un train binaire continu et synchrone est \u00e9chang\u00e9 entre les deux DTE d&rsquo;extr\u00e9mit\u00e9. Dans notre exemple, le premier DTE est la station X25, le second est le commutateur X25 d&rsquo;entr\u00e9e dans le r\u00e9seau. Il s&rsquo;agit donc maintenant d&rsquo;\u00e9mettre les PDU de niveau 2 (<em>pour rappel PDU = Protocol Data Unit = Trame pour le niveau 2, encore une fois voir le cours OSI si c&rsquo;est du chinois !<\/em>).<\/p>\n<p>Mais <strong>comment rep\u00e9rer les trames dans le train binaire<\/strong> ? Quand commencent-elles ? Quand se terminent-elles ? En fait, on va utiliser un fanion de d\u00e9part et un fanion de fin, pour \u00eatre plus pr\u00e9cis : le train binaire est constitu\u00e9 d&rsquo;une suite de fanion continue. Un fanion est un octet ayant la valeur (7E)h (7E en h\u00e9xad\u00e9cimal), soit donc ayant la valeur binaire (0111110)b. <strong>Si un octet dans le train a une valeur diff\u00e9rente de (7E)h, c&rsquo;est un octet de trame<\/strong> !<\/p>\n<p>Ce m\u00e9canisme a \u00e9t\u00e9 pr\u00e9sent\u00e9 dans le cours OSI couche 2 en exemple, mais je le reprends enti\u00e8rement ci-dessous.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-236 alignleft\" src=\"http:\/\/racine.gatoux.com\/lmdr\/wp-content\/uploads\/2017\/04\/MOULINETTE1.gif\" alt=\"\" width=\"379\" height=\"76\" \/>Dans le sch\u00e9ma ci-contre, une trame est encadr\u00e9e par des fanions (7E)h. Ceux-ci sont \u00e9mis en continu sur la ligne et la trame vient s&rsquo;ins\u00e9rer dans le train binaire. LAP B d\u00e9tecte donc un d\u00e9but de trame sur le premier octet (jaune) puisqu&rsquo;il est diff\u00e9rent de (7E)h et la fin de trame est d\u00e9tect\u00e9e quand un nouvel octet (7E)h est d\u00e9tect\u00e9 (apr\u00e8s l&rsquo;octet bleu).<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-237 alignleft\" src=\"http:\/\/racine.gatoux.com\/lmdr\/wp-content\/uploads\/2017\/04\/MOULINETTE2.gif\" alt=\"\" width=\"379\" height=\"115\" \/>Par contre on voit tout de suite la limitation du syst\u00e8me ! Si on doit transmettre dans la trame un octet de donn\u00e9es qui a justement une valeur (7E)h, LAP B va consid\u00e9rer que c&rsquo;est la fin de la trame alors que c&rsquo;est faux ! <em>L&rsquo;idiot &#8230;.<\/em><\/p>\n<p>C&rsquo;est le probl\u00e8me de tout protocole : <strong>La transparence aux donn\u00e9es<\/strong>. Tout protocole qui se respecte doit \u00eatre capable de v\u00e9hiculer n&rsquo;importe quelle valeur de donn\u00e9es sans se planter !<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-238 alignleft\" src=\"http:\/\/racine.gatoux.com\/lmdr\/wp-content\/uploads\/2017\/04\/MOULINETTE3.gif\" alt=\"\" width=\"454\" height=\"104\" \/>LAP B, doit donc mettre en \u0153uvre un m\u00e9canisme permettant d&rsquo;acheminer cette s\u00e9quence sans pour autant qu&rsquo;elle soit prise pour un <strong>fanion<\/strong>.<\/p>\n<p>La m\u00e9thode consiste \u00e0 <strong>ins\u00e9rer un z\u00e9ro \u00e0 la suite de toutes s\u00e9quences de deux 1 cons\u00e9cutifs<\/strong>, que ces suites soit suivies d&rsquo;un 0 ou d&rsquo;un 1. <strong>Le r\u00e9cepteur retirera tous les 0 se situant apr\u00e8s deux 1 cons\u00e9cutifs<\/strong>. Si les deux 1 sont suivis d&rsquo;un 1 c&rsquo;est alors un fanion qui indique la fin de trame (et peut-\u00eatre le d\u00e9but de la suivante).<\/p>\n<p><em>Cool non ? Je sais, vous n&rsquo;y croyez pas ! A chaque fois que je pr\u00e9sentais ce m\u00e9canisme \u00e0 des stagiaires ils passaient syst\u00e9matiquement une heure \u00e0 essayer de trouver la configuration o\u00f9 \u00e7a ne marche pas ! IL N&rsquo;Y EN A PAS SAPERLIPOPETTE ! Si vous appliquez \u00e0 la lettre le m\u00e9canisme d\u00e9crit ci-dessus, c&rsquo;est imparable ! Ne vous cassez pas la t\u00eate ! Croyez-moi !<\/em><\/p>\n<p>Donc, maintenant on a un niveau 1 actif, un train binaire 7Eh de synchronisation et de rep\u00e9rage des trames en place et on sait assurer la transmission de trames en garantissant la transparence aux donn\u00e9es v\u00e9hicul\u00e9es. Alors, voyons un peu le format des trames que l&rsquo;on peut envoyer !<\/p>\n<h2>Format des trames LAP B &#8230;<\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-663 aligncenter\" src=\"http:\/\/racine.gatoux.com\/lmdr\/wp-content\/uploads\/2017\/05\/S5P3I2.gif\" alt=\"\" width=\"500\" height=\"51\" \/><\/p>\n<p>Une trame LAP B est form\u00e9e :<\/p>\n<p style=\"padding-left: 30px;\">&#8211; d&rsquo;un champ <strong>Adresse<\/strong> (1 octet)<br \/>\n&#8211; d&rsquo;un champ <strong>Commande<\/strong> (1 octet)<br \/>\n&#8211; d&rsquo;un champ de <strong>donn\u00e9es<\/strong> (longueur variable)<br \/>\n&#8211; d&rsquo;un champ de contr\u00f4le d&rsquo;erreur &#8211; <strong>FCS<\/strong> : Frame Check Sequence (CRC16 sur deux octets donc)<\/p>\n<p dir=\"ltr\"><strong><u>Champ A : Champ Adresse<\/u><\/strong> (1 octet)<\/p>\n<p dir=\"ltr\" style=\"padding-left: 30px;\">Rappelons que LAP B est issu d&rsquo;HDLC (<em>High Data Link level Control. Je sais ! Ils n&rsquo;ont pas mis le \u00ab\u00a0L\u00a0\u00bb de \u00ab\u00a0level\u00a0\u00bb &#8230; Et alors ?<\/em>). Or HDLC a \u00e9t\u00e9 con\u00e7u pour fonctionner dans une multitude d&rsquo;environnement et de situation, et, notamment, en environnement multipoint ! En cons\u00e9quence, la trame dispose d&rsquo;un champ Adresse, ce qui peut para\u00eetre ridicule dans notre cas o\u00f9 nous l&rsquo;utilisons dans un environnement point \u00e0 point !<\/p>\n<p dir=\"ltr\" style=\"padding-left: 30px;\">Ce champ, de 8 bits, comporte deux bits sp\u00e9ciaux nomm\u00e9s <strong>C\/R<\/strong> pour <strong>C<\/strong>ommande \/ <strong>R<\/strong>\u00e9ponse et <strong>E\/A<\/strong> pour <strong>E<\/strong>xtension Adresse : x x x x x x <strong>c\/r e\/a<\/strong>.<\/p>\n<p dir=\"ltr\" style=\"padding-left: 30px;\"><strong>Bit C\/R<\/strong> : En effet, LAP B est une proc\u00e9dure \u00e9quilibr\u00e9e (<em>bien dans sa t\u00eate !<\/em>), c&rsquo;est \u00e0 dire que chaque \u00e9quipement peut prendre la parole quand il le souhaite. Or quand un protocole prend la parole c&rsquo;est rarement pour rigoler ! Il \u00e9met g\u00e9n\u00e9ralement une <strong>C<\/strong>ommande, dans ce cas il est r\u00e9put\u00e9 \u00eatre un <strong>primaire<\/strong> ! Par contre quand un \u00e9quipement a re\u00e7u une <strong>C<\/strong>ommande, il DOIT (<em>sinon gare \u00e0 lui !<\/em>) faire une <strong>R<\/strong>\u00e9ponse, dans ce cas il est r\u00e9put\u00e9 \u00eatre un <strong>secondaire<\/strong>. Mais comme la proc\u00e9dure est \u00e9quilibr\u00e9e (<em>d\u00e9mocratique<\/em>) chaque \u00e9quipement peut \u00eatre tour \u00e0 tour et m\u00eame \u00e0 la fois <strong>Primaire<\/strong> ou <strong>Secondaire<\/strong>. Donc :<\/p>\n<p dir=\"ltr\" style=\"padding-left: 60px;\">&#8211; <strong>un primaire \u00e9met des commandes et re\u00e7oit des r\u00e9ponses<\/strong><\/p>\n<p dir=\"ltr\" style=\"padding-left: 60px;\">&#8211; <strong>un secondaire re\u00e7oit des commandes et \u00e9met des r\u00e9ponses<\/strong><\/p>\n<p dir=\"ltr\" style=\"padding-left: 30px;\">On diff\u00e9rencie ensuite les \u00e9quipements concern\u00e9s. Il existe la notion d&rsquo;<strong>Utilisateur<\/strong> (Station X25) et de <strong>R\u00e9seau<\/strong> (Commutateur X25). Selon que l&rsquo;\u00e9quipement est un \u00e9quipement utilisateur ou r\u00e9seau, il positionnera le bit <strong>c\/r<\/strong> \u00e0 1 ou \u00e0 0. En LAP B, on obtient la r\u00e8gle suivante pour le bit c\/r :<\/p>\n<table style=\"height: 217px;\" border=\"1\" width=\"401\" cellspacing=\"2\" cellpadding=\"2\" align=\"center\">\n<tbody>\n<tr>\n<td class=\"moyentexte\" width=\"48%\">\n<p align=\"center\"><em>C\/R<\/em><\/p>\n<\/td>\n<td class=\"moyentexte\" width=\"28%\">\n<p align=\"center\"><em>Utilisateur<\/em><\/p>\n<\/td>\n<td class=\"moyentexte\" width=\"24%\">\n<p align=\"center\"><em>R\u00e9seau<\/em><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"moyentexte\" width=\"48%\"><span style=\"color: #ff0000;\">Trame de commande<\/span><\/td>\n<td class=\"insiste\" width=\"28%\">\n<h6 align=\"center\"><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small; color: #ff0000;\">0<\/span><\/h6>\n<\/td>\n<td class=\"insiste\" width=\"24%\">\n<h6 align=\"center\"><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small; color: #ff0000;\">1<\/span><\/h6>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"moyentexte\" width=\"48%\"><span style=\"color: #3366ff;\">Trame de r\u00e9ponse<\/span><\/td>\n<td class=\"insiste\" width=\"28%\">\n<h6 align=\"center\"><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small; color: #3366ff;\">1<\/span><\/h6>\n<\/td>\n<td class=\"insiste\" width=\"24%\">\n<h6 align=\"center\"><span style=\"font-family: Arial,Helvetica,sans-serif; font-size: small; color: #3366ff;\">0<\/span><\/h6>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div id=\"no_border_im\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-208 aligncenter\" src=\"http:\/\/racine.gatoux.com\/lmdr\/wp-content\/uploads\/2017\/04\/BIT_C_R.gif\" alt=\"\" width=\"400\" height=\"88\" \/><\/div>\n<p dir=\"ltr\" style=\"padding-left: 30px;\">Cette technique permet aux \u00e9quipements de bien diff\u00e9rencier la source et le type de trame.<\/p>\n<p dir=\"ltr\" style=\"padding-left: 30px;\"><strong>Bit E\/A<\/strong> : Le LAP B est un sous-ensemble d&rsquo;HDLC. Or nous venons de le dire HDLC permet de fonctionner en environnement Multipoint. Dans ce type d&rsquo;architecture il peut y avoir de nombreuses stations qui partagent un m\u00eame support. En cons\u00e9quence un champ <strong>A<\/strong>dresse d&rsquo;un seul octet, qui plus est, amput\u00e9 d&rsquo;un bit pour le <strong>c\/r<\/strong>, risque d&rsquo;\u00eatre trop \u00e9troit pour adresser l&rsquo;ensemble des machines. En cons\u00e9quence, il est possible d&rsquo;\u00e9tendre le champ d&rsquo;adresse en utilisant le bit e\/a :<\/p>\n<p dir=\"ltr\" style=\"padding-left: 60px;\">&#8211; Si e\/a = 0, le champ adresse est \u00e9tendu \u00e0 l&rsquo;octet suivant<\/p>\n<p dir=\"ltr\" style=\"padding-left: 60px;\">&#8211; Si e\/a = 1, l&rsquo;octet qui le supporte est le dernier octet d&rsquo;adresse<\/p>\n<p dir=\"ltr\" style=\"padding-left: 30px;\">En LAP B le champ adresse est limit\u00e9 \u00e0 un octet puisque l&rsquo;on est uniquement en environnement point \u00e0 point. En cons\u00e9quence le bit <strong>e\/a<\/strong> est toujours \u00e0 1.<\/p>\n<p dir=\"ltr\" style=\"padding-left: 30px;\">Donc les <strong>trames LAP B auront une valeur 01h pour les trames ayant le bit c\/r \u00e0 0<\/strong> (trames de commande Utilisateur et de r\u00e9ponse R\u00e9seau) <strong>ou une valeur 03h pour les trames ayant le bit c\/r \u00e0 1<\/strong> (trames de commande R\u00e9seau et de r\u00e9ponse Utilisateur).<\/p>\n<p><strong><u>Champ C : Champ Commande<\/u><\/strong> (1 octet)<\/p>\n<p style=\"padding-left: 30px;\">Le champ d&rsquo;adresse permet d&rsquo;identifier qui \u00e9met une trame et dans quelles conditions. Le champ <strong>Commande<\/strong> permet de compl\u00e9ter cette identification et de d\u00e9terminer ainsi le type de trame. Il est compos\u00e9 de quatre parties : <strong><span style=\"color: #ff0000;\">r r r<\/span><\/strong> <strong>p\/f<\/strong> <strong><span style=\"color: #ff0000;\">s s s<\/span><\/strong> <strong>lsb<\/strong><\/p>\n<p style=\"padding-left: 30px;\"><strong><span style=\"color: #ff0000;\">Bit lsb<\/span><\/strong> : <strong>Famille de trames<\/strong><\/p>\n<p style=\"padding-left: 60px;\">&#8211; Si <strong>lsb = 0<\/strong>, <strong>la trame est une trame de donn\u00e9es<\/strong> elle poss\u00e8de donc un champ Data.<\/p>\n<p style=\"padding-left: 60px;\">&#8211; Si <strong>lsb = 1<\/strong>, <strong>la trame est une trame de gestion<\/strong> (acquittement, rejet, connexion, etc). Nous verrons les diff\u00e9rents types de trames juste ci-dessous. Ces trames, \u00e0 part une trame particuli\u00e8rement, n&rsquo;ont pas de champ Data.<\/p>\n<p style=\"padding-left: 30px;\"><strong><span style=\"color: #ff0000;\">Bits r r r<\/span><\/strong> : Le <strong>compteur Nr<\/strong> :<strong> Num\u00e9ro de trame re\u00e7u<\/strong><\/p>\n<p style=\"padding-left: 60px;\">Le compteur <strong>Nr<\/strong> (<strong>N<\/strong>umero <strong>R<\/strong>eceive) permet d&rsquo;indiquer quel est le num\u00e9ro de la prochaine trame attendue par l&rsquo;\u00e9quipement. Ce compteur est donc un compteur d&rsquo;acquittement ! Il permet au r\u00e9cepteur lorsqu&rsquo;il envoie une trame \u00e0 son correspondant de lui indiquer quelle est la derni\u00e8re trame valide qu&rsquo;il est re\u00e7u de lui. Le correspondant va donc comparer ce compteur avec son compteur <strong>Ns<\/strong> (voir ci-dessous) afin de d\u00e9terminer s&rsquo;il a re\u00e7ue toutes les trames. L&rsquo;\u00e9quipement positionne ce compteur uniquement dans 4 trames diff\u00e9rentes que nous pr\u00e9senterons dans un tableau ci-dessous. Dans les autres trames, les bits du compteur <strong>Nr<\/strong> sont positionn\u00e9s \u00e0 des valeurs pr\u00e9cises qui permettent d&rsquo;identifier les trames.<\/p>\n<p style=\"padding-left: 30px;\"><strong><span style=\"color: #ff0000;\">Bits s s s<\/span><\/strong> : Le <strong>compteur Ns<\/strong> : <strong>Num\u00e9ro de trame \u00e9mise<\/strong><\/p>\n<p style=\"padding-left: 60px;\">Le compteur <strong>Ns<\/strong> (<strong>N<\/strong>umero <strong>S<\/strong>end) permet d&rsquo;indiquer quel est le num\u00e9ro de la trame \u00e9mise par l&rsquo;\u00e9quipement. Vous remarquerez que <strong>ce compteur est modulo 8<\/strong> (comme le compteur Nr). L&rsquo;\u00e9quipement peut donc envoyer 8 trames cons\u00e9cutives num\u00e9rot\u00e9es de 0 \u00e0 7. La trame suivant le num\u00e9ro 7 aura donc le num\u00e9ro 0. Comme nous avons dit que ce compteur servait de base au compteur Nr pour \u00e9mettre des acquittements, vous comprendrez donc que l&rsquo;\u00e9metteur ne peut \u00e9mettre plus de 8 trames cons\u00e9cutives sans avoir re\u00e7u un acquittement du destinataire. Car s&rsquo;il \u00e9mettait 9 trames sans avoir re\u00e7u d&rsquo;acquittement il aurait deux trames 0 en instance d&rsquo;acquittement. Comment saurait-il laquelle est acquitt\u00e9 si il re\u00e7oit un compteur Nr = 1 ?<\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #ff0000;\"><strong>Bits p\/f<\/strong> <\/span>: <strong>Demande d&rsquo;acquittement imm\u00e9diat<\/strong><\/p>\n<p style=\"padding-left: 60px;\">Ce bit permet \u00e0 un \u00e9metteur de demander au destinataire d&rsquo;acquitter imm\u00e9diatement la trame re\u00e7u (et donc toutes les trames en instance d&rsquo;acquittement !). G\u00e9n\u00e9ralement l&rsquo;\u00e9metteur arr\u00eate toute transmission jusqu&rsquo;\u00e0 r\u00e9ception de l&rsquo;acquittement requis. On parle de bit <strong>p\/f<\/strong> car :<\/p>\n<p style=\"padding-left: 90px;\">&#8211; <strong>une trame de commande v\u00e9hicule un bit p<\/strong><\/p>\n<p style=\"padding-left: 90px;\">&#8211; <strong>une trame de r\u00e9ponse v\u00e9hicule un bit f<\/strong><\/p>\n<p style=\"padding-left: 60px;\">par abus de langage on parle de bit p\/f<\/p>\n<p style=\"padding-left: 60px;\"><strong>IMPORTANT<\/strong> : Une trame de r\u00e9ponse aura toujours le bit f positionn\u00e9 \u00e0 la m\u00eame valeur que le bit p de la trame de commande re\u00e7ue.<\/p>\n<p style=\"padding-left: 60px;\">Ce bit existe dans toute les trames.<\/p>\n<p dir=\"ltr\"><strong><u>Champs Data et FCS : Conteneur de donn\u00e9es et contr\u00f4le d&rsquo;erreur<\/u><\/strong><\/p>\n<p dir=\"ltr\" style=\"padding-left: 30px;\"><strong>Le champ Data a une longeur variable<\/strong>. Il existe uniquement pour les trames de donn\u00e9es, pour les autres trames sa longueur est nulle. La taille est g\u00e9n\u00e9ralement de 128 ou 256 octets.<\/p>\n<p dir=\"ltr\" style=\"padding-left: 30px;\"><strong>Le contr\u00f4le d&rsquo;erreur est un champ de deux octets<\/strong>. On utilise ici un CRC16 (Cyclique Redondancy Check) qui consiste \u00e0 diviser la valeur polynomiale de la trame par un polynome g\u00e9n\u00e9rique appel\u00e9 \u00ab\u00a0Polyn\u00f4me g\u00e9n\u00e9rateur\u00a0\u00bb. Le champ FCS correspond au reste de la division polynomiale. Le destinataire effectue la m\u00eame division avec le m\u00eame polyn\u00f4me g\u00e9n\u00e9rateur et compare les restes (celui qu&rsquo;il a obtenu et celui \u00e9mis dans le FCS). S&rsquo;ils sont identiques il accepte la trame, sinon il la rejette.<\/p>\n<h2 dir=\"ltr\">Tableau des trames<\/h2>\n<p dir=\"ltr\">Le tableau suivant recense l&rsquo;ensemble des trames utilis\u00e9es en LAP B :<\/p>\n<table border=\"1\" width=\"100%\" cellspacing=\"0\" cellpadding=\"2\">\n<tbody>\n<tr>\n<td class=\"insiste\" rowspan=\"3\" width=\"131\">\n<p align=\"center\">Type<\/p>\n<\/td>\n<td class=\"insiste\" rowspan=\"3\" width=\"38\">\n<p align=\"center\">Nom<\/p>\n<\/td>\n<td class=\"insiste\" rowspan=\"3\" width=\"213\">\n<p align=\"center\">Libell\u00e9<\/p>\n<\/td>\n<td class=\"moyentexte\" colspan=\"5\">\n<p class=\"insiste\" align=\"center\">Champ Commande<\/p>\n<\/td>\n<td class=\"insiste\" rowspan=\"3\" width=\"100\">\n<p align=\"center\">Bit c\/r<br \/>\n(champ Adresse)<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"moyentexte\" colspan=\"4\">\n<p align=\"center\"><b>Valeur Binaire<\/b><\/p>\n<\/td>\n<td class=\"moyentexte\" rowspan=\"2\" width=\"58\">\n<p align=\"center\"><b>Valeur Hexa<\/b><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"moyentexte\" width=\"65\">\n<p align=\"center\"><i><b>Compteur Nr<\/b><\/i><\/p>\n<\/td>\n<td class=\"moyentexte\" width=\"35\">\n<p align=\"center\"><i><b>bit p\/f<\/b><\/i><\/p>\n<\/td>\n<td class=\"moyentexte\" width=\"65\">\n<p align=\"center\"><i><b>Compteur Ns<\/b><\/i><\/p>\n<\/td>\n<td class=\"moyentexte\" width=\"26\">\n<p align=\"center\"><b><i>lsb<\/i><\/b><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"moyentexte\" width=\"131\"><b>Donn\u00e9es<\/b> <i>(lsb = 0)<\/i><\/td>\n<td class=\"insiste\" width=\"38\">INFO<\/td>\n<td class=\"moyentexte\" width=\"213\"><b>INFOR<\/b>mation<\/td>\n<td class=\"moyentexte\" width=\"65\">\n<p align=\"center\">Nr<\/p>\n<\/td>\n<td class=\"moyentexte\" width=\"35\">\n<p align=\"center\">p<\/p>\n<\/td>\n<td class=\"moyentexte\" width=\"65\">\n<p align=\"center\">Ns<\/p>\n<\/td>\n<td class=\"moyentexte\" width=\"26\">\n<p align=\"center\">0<\/p>\n<\/td>\n<td class=\"moyentexte\" width=\"58\">\n<p align=\"center\">??<\/p>\n<\/td>\n<td class=\"moyentexte\" width=\"100\">\n<p align=\"center\">c<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"moyentexte\" rowspan=\"3\" width=\"131\"><b>Supervision<\/b><br \/>\n<i>(lsb = 1 et lsb+1 = 0)<\/i><\/td>\n<td class=\"insiste\" width=\"38\">RR<\/td>\n<td class=\"moyentexte\" width=\"213\"><b>R<\/b>eceive <b>R<\/b>eady<\/td>\n<td class=\"moyentexte\" width=\"65\">\n<p align=\"center\">Nr<\/p>\n<\/td>\n<td class=\"moyentexte\" width=\"35\">\n<p align=\"center\">p\/f<\/p>\n<\/td>\n<td class=\"moyentexte\" width=\"65\">\n<p align=\"center\">000<\/p>\n<\/td>\n<td class=\"moyentexte\" width=\"26\">\n<p align=\"center\">1<\/p>\n<\/td>\n<td class=\"moyentexte\" width=\"58\">\n<p align=\"center\">x1<\/p>\n<\/td>\n<td class=\"moyentexte\" width=\"100\">\n<p align=\"center\">c\/r<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"insiste\" width=\"38\">RNR<\/td>\n<td class=\"moyentexte\" width=\"213\"><b>R<\/b>eceive <b>N<\/b>ot <b>R<\/b>eady<\/td>\n<td class=\"moyentexte\" width=\"65\">\n<p align=\"center\">Nr<\/p>\n<\/td>\n<td class=\"moyentexte\" width=\"35\">\n<p align=\"center\">p\/f<\/p>\n<\/td>\n<td class=\"moyentexte\" width=\"65\">\n<p align=\"center\">010<\/p>\n<\/td>\n<td class=\"moyentexte\" width=\"26\">\n<p align=\"center\">1<\/p>\n<\/td>\n<td class=\"moyentexte\" width=\"58\">\n<p align=\"center\">x5<\/p>\n<\/td>\n<td class=\"moyentexte\" width=\"100\">\n<p align=\"center\">c\/r<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"insiste\" width=\"38\">REJ<\/td>\n<td class=\"moyentexte\" width=\"213\"><b>REJ<\/b>ect<\/td>\n<td class=\"moyentexte\" width=\"65\">\n<p align=\"center\">Nr<\/p>\n<\/td>\n<td class=\"moyentexte\" width=\"35\">\n<p align=\"center\">p\/f<\/p>\n<\/td>\n<td class=\"moyentexte\" width=\"65\">\n<p align=\"center\">110<\/p>\n<\/td>\n<td class=\"moyentexte\" width=\"26\">\n<p align=\"center\">1<\/p>\n<\/td>\n<td class=\"moyentexte\" width=\"58\">\n<p align=\"center\">xD<\/p>\n<\/td>\n<td class=\"moyentexte\" width=\"100\">\n<p align=\"center\">c\/r<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"moyentexte\" rowspan=\"5\" width=\"131\"><b>Gestion non num\u00e9rot\u00e9es<\/b><br \/>\n<i>(lsb = 1 et lsb+1 = 1)<\/i><\/td>\n<td class=\"insiste\" width=\"38\">SABM<\/td>\n<td class=\"moyentexte\" width=\"213\"><b>S<\/b>et <b>A<\/b>synchronous <b>B<\/b>alanced <b>M<\/b>ode<\/td>\n<td class=\"moyentexte\" width=\"65\">\n<p align=\"center\">001<\/p>\n<\/td>\n<td class=\"moyentexte\" width=\"35\">\n<p align=\"center\">p<\/p>\n<\/td>\n<td class=\"moyentexte\" width=\"65\">\n<p align=\"center\">111<\/p>\n<\/td>\n<td class=\"moyentexte\" width=\"26\">\n<p align=\"center\">1<\/p>\n<\/td>\n<td class=\"moyentexte\" width=\"58\">\n<p align=\"center\">2F\/3F<\/p>\n<\/td>\n<td class=\"moyentexte\" width=\"100\">\n<p align=\"center\">c<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"insiste\" width=\"38\">DM<\/td>\n<td class=\"moyentexte\" width=\"213\"><b>D<\/b>isconnect <b>M<\/b>ode<\/td>\n<td class=\"moyentexte\" width=\"65\">\n<p align=\"center\">000<\/p>\n<\/td>\n<td class=\"moyentexte\" width=\"35\">\n<p align=\"center\">f<\/p>\n<\/td>\n<td class=\"moyentexte\" width=\"65\">\n<p align=\"center\">111<\/p>\n<\/td>\n<td class=\"moyentexte\" width=\"26\">\n<p align=\"center\">1<\/p>\n<\/td>\n<td class=\"moyentexte\" width=\"58\">\n<p align=\"center\">0F\/1F<\/p>\n<\/td>\n<td class=\"moyentexte\" width=\"100\">\n<p align=\"center\">r<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"insiste\" width=\"38\">UA<\/td>\n<td class=\"moyentexte\" width=\"213\"><b>U<\/b>numbered <b>A<\/b>cknowledge<\/td>\n<td class=\"moyentexte\" width=\"65\">\n<p align=\"center\">011<\/p>\n<\/td>\n<td class=\"moyentexte\" width=\"35\">\n<p align=\"center\">f<\/p>\n<\/td>\n<td class=\"moyentexte\" width=\"65\">\n<p align=\"center\">001<\/p>\n<\/td>\n<td class=\"moyentexte\" width=\"26\">\n<p align=\"center\">1<\/p>\n<\/td>\n<td class=\"moyentexte\" width=\"58\">\n<p align=\"center\">63\/73<\/p>\n<\/td>\n<td class=\"moyentexte\" width=\"100\">\n<p align=\"center\">r<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"insiste\" width=\"38\">DISC<\/td>\n<td class=\"moyentexte\" width=\"213\"><b>DISC<\/b>onnect<\/td>\n<td class=\"moyentexte\" width=\"65\">\n<p align=\"center\">010<\/p>\n<\/td>\n<td class=\"moyentexte\" width=\"35\">\n<p align=\"center\">p<\/p>\n<\/td>\n<td class=\"moyentexte\" width=\"65\">\n<p align=\"center\">001<\/p>\n<\/td>\n<td class=\"moyentexte\" width=\"26\">\n<p align=\"center\">1<\/p>\n<\/td>\n<td class=\"moyentexte\" width=\"58\">\n<p align=\"center\">43\/53<\/p>\n<\/td>\n<td class=\"moyentexte\" width=\"100\">\n<p align=\"center\">c<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td class=\"insiste\" width=\"38\">FRMR<\/td>\n<td class=\"moyentexte\" width=\"213\">Trame de Rejet + Diagnostic<\/td>\n<td class=\"moyentexte\" width=\"65\">\n<p align=\"center\">100<\/p>\n<\/td>\n<td class=\"moyentexte\" width=\"35\">\n<p align=\"center\">f<\/p>\n<\/td>\n<td class=\"moyentexte\" width=\"65\">\n<p align=\"center\">011<\/p>\n<\/td>\n<td class=\"moyentexte\" width=\"26\">\n<p align=\"center\">1<\/p>\n<\/td>\n<td class=\"moyentexte\" width=\"58\">\n<p align=\"center\">87\/97<\/p>\n<\/td>\n<td class=\"moyentexte\" width=\"100\">\n<p align=\"center\">r<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Ce tableau vous apporte certaines informations :<\/p>\n<p style=\"padding-left: 30px;\">&#8211; Seules les trames de donn\u00e9es et de supervision sont \u00e9quip\u00e9es d&rsquo;un compteur Nr. Elles seules peuvent donc effectuer des acquittements.<\/p>\n<p style=\"padding-left: 30px;\">&#8211; Seule la trame de donn\u00e9es est \u00e9quip\u00e9e d&rsquo;un compteur Ns, ce qui est logique. Il n&rsquo;y a pas d&rsquo;int\u00e9r\u00eat \u00e0 compter des trames qui ne v\u00e9hiculent pas de donn\u00e9es.<\/p>\n<p style=\"padding-left: 30px;\">&#8211; Les trames de supervision peuvent \u00eatre tour \u00e0 tour des trames de commande ou r\u00e9ponse (bit c\/r = bit c ou bit r).<\/p>\n<p>Vous comprendrez mieux les r\u00f4les et m\u00e9canismes de ces bits dans les chapitres suivants o\u00f9 nous allons \u00e9tudier de nombreux cas de dialogues.<\/p>\n<h5 align=\"center\"><a href=\"http:\/\/www.gatoux.com\/index.php\/sommaire-hdlc\/\">Sommaire <\/a>| <a href=\"http:\/\/www.gatoux.com\/index.php\/connexions-et-echanges\/\">Page suivante<\/a><\/h5>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>R\u00f4les et position Rappelez-vous l&rsquo;environnement OSI &#8230; Un niveau 3 est support\u00e9 par un protocole de niveau 2. Le protocole de niveau 2 g\u00e9re la communication entre deux \u00e9quipements adjacents (s\u00e9par\u00e9s par un support physique). Son r\u00f4le est d&rsquo;assurer le transfert de blocs de donn\u00e9es entre \u00e9quipements directement connect\u00e9s avec un taux d&rsquo;erreurs r\u00e9siduelles n\u00e9gligeable.\u2026 <span class=\"read-more\"><a href=\"https:\/\/racine.gatoux.com\/lmdr\/index.php\/la-trame-lap-b\/\">Lire la suite &raquo;<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":55,"comment_status":"closed","ping_status":"closed","template":"page-templates\/full-width.php","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":""},"class_list":["post-637","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/racine.gatoux.com\/lmdr\/index.php\/wp-json\/wp\/v2\/pages\/637","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/racine.gatoux.com\/lmdr\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/racine.gatoux.com\/lmdr\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/racine.gatoux.com\/lmdr\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/racine.gatoux.com\/lmdr\/index.php\/wp-json\/wp\/v2\/comments?post=637"}],"version-history":[{"count":11,"href":"https:\/\/racine.gatoux.com\/lmdr\/index.php\/wp-json\/wp\/v2\/pages\/637\/revisions"}],"predecessor-version":[{"id":680,"href":"https:\/\/racine.gatoux.com\/lmdr\/index.php\/wp-json\/wp\/v2\/pages\/637\/revisions\/680"}],"wp:attachment":[{"href":"https:\/\/racine.gatoux.com\/lmdr\/index.php\/wp-json\/wp\/v2\/media?parent=637"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}