WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Codage et transmission des données dans un réseau

( Télécharger le fichier original )
par Stanislas KIMPEYE MUNDIBI
Université de Lubumbashi RDC - En vue de l'obtention du grade de gradué en sciences option mathématiques- informatique 2008
  

Disponible en mode multipage

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

    ~ 1 ~

    UNIVERSITÉ DE LUBUMBASHI

    FACULTÉ DES SCIENCES

    DÉPARTEMENT

    DES MATHÉMATIQUES

    CODAGE ET

    TRANSMISSION

    DES DONNÉES DANS UN RÉSEAU

    Par KIMPEYE MUNDIBI

    Travail de fin de cycle présenté en vue de l'obtention du Grade de

    Gradué en Sciences

    Option : Mathématiques-informatique

    Directeur : Mr. KUMAKINGA MOBIMBA

    Année académique 2008-2009

     

    ~ 2 ~

    UNIVERSITÉ DE LUBUMBASHI

    FACULTÉ DES SCIENCES

    DÉPARTEMENT

    DES MATHÉMATIQUES

    CODAGE ET

    TRANSMISSION

    DES DONNÉES DANS UN RÉSEAU

    Par KIMPEYE MUNDIBI

    Travail de fin de cycle présenté en vue de l'obtention du Grade de

    Gradué en Sciences

    Option : Mathématiques-informatique

    Année académique 2008-2009

     

    ~ 3 ~

    ÉPIGRAPHE

    Pour détecter et corriger les inévitables erreurs qui affectent les échanges
    d'information numérisée, les spécialistes du codage en appellent à des
    méthodes abstraites qui relèvent de l'algèbre ou de la géométrie.

    Gilles Lachaud

    ~ 4 ~

    DÉDICACE

    A mon grand père MUNDIBI Stanislas, je dédie ce travail de fin de cycle.

    ~ 5 ~

    REMERCIEMENTS

    Je tiens à remercier

    - Dieu tout puissant pour la sagesse et l'intelligence ;

    - mes compagnons jésuites de Kwetu-Kwenu et de Loyola,

    - mes professeurs et leurs assistants,

    - mes encadreurs de stage à la Vision Mondiale,

    - mes collègues de promotion,

    - mes ami(e)s de la faculté des sciences,

    - les familles amies,

    - mes frères, soeurs et cousin(e)s,

    - mes parents ;

    de m'avoir prodigué des sages conseils et encouragé dans mes recherches.

    Je tiens à exprimer ma gratitude à Monsieur Patrice KUMAKINGA MOBIMBA, directeur de ce travail de fin de cycle. Son savoir faire et ses multiples remarques ont donné à ce travail sa forme définitive.

    Je remercie mon supérieur de communauté et le père ministre de ne s'être jamais lassés de répondre à mes besoins et de consacrer du temps pour me guider dans la recherche du bien le plus universel.

    ~ 6 ~

    AVANT PROPOS

    Nous sommes en pleine ère numérique. Qu'est-ce à dire ? Tout simplement qu'une partie énorme des informations échangées à travers la planète est matériellement représentée sous la forme de nombres.

    Dans les messages électroniques, la téléphonie mobile, les transactions bancaires, le téléguidage de satellites, la télétransmission d'images, les disques CD ou DVD, l'information est traduite - on dit codée (à ne pas confondre avec cryptée) - en suites de nombres entiers, et correspondant physiquement à des signaux électriques ou autres. Plus précisément, l'information est généralement codée sous forme de suites de chiffres binaires - des 0 ou des 1, appelés aussi bits.

    Un problème majeur de la transmission de l'information est celui des erreurs. Il suffit d'une petite rayure sur un disque, d'une perturbation de l'appareillage, ou d'un quelconque phénomène parasite pour que le message transmis comporte des erreurs, c'est-à-dire des « 0 » qui ont malencontreusement été changés en « 1 » ou inversement. Or, l'un des nombreux atouts du numérique est la possibilité de détecter, et même de corriger, de telles erreurs.

    Ainsi donc, tout le problème de la théorie des codes correcteurs d'erreurs réside dans la mise en oeuvre des codes qui détectent et corrigent le plus possible d'erreurs, tout en allongeant le moins possible les messages, et qui soient faciles à décoder.

    ~ 7 ~

    LISTE DES ABRÉVIATIONS

    ADSL : Asymmetrical Digital Subscriber Line

    BNC CEI

    ASCII : American Standard Code for Information Interchange

    : Bayonet Neill - concelman Connector

    : Comité Electrotechnique International

    CODEC

    : Codeur-DÉcodeur

    CRC : Contrôle de Redondance Cyclique

    DCB :

    Décimal Codé en Binaire

    HTML : Hyper Text Markup Language

    IP : Internet Protocol

    IPv4 : Internet Protocol version 4

    IRT : Integrated Rural Technology

    ISO : International Standard Organization

    MNP : Microcom Network Protocol

    NRZ

    RJ45

    RTL

    SMS

    STP

    UTP

    MODEM : MOdulateur DEModulateur

    : Non Return to Zero

    : Registered Jack 45

    : Réseau Téléphonique Commuté

    : Short Message System

    : Shielded Twisted Pair

    : Unshielded Twisted Pair

    ~ 8 ~

    0. 0. INTRODUCTION GÉNÉRALE

    0.1. Choix et intérêt du sujet

    L'homme est un être communicatif. Il cherche toujours à mettre en place des moyens de communication. Il est conscient du souci qui l'habite de se faire comprendre quand il pose un geste, quand il représente un symbole ou bien quand il prononce une parole. C'est ce souci profond de communiquer qui est à la base du développement de plusieurs technologies modernes.

    Actuellement, grâce au réseau téléphonique, mieux, au réseau de télécommunication et grâce à l'Internet, l'homme est informé très rapidement de tout ce qui se passe dans n'importe quel coin du monde. L'information circule entre les hommes, et ceux-ci forment le réseau humain.

    De même, les ordinateurs ainsi que les appareils de communication sont en communication entre eux grâce au réseau qui les lie. La transmission de l'information au sein de ce réseau nous intéresse. Dès lors, nous nous proposons de réfléchir sur l'échange des données entre deux ou plusieurs points du réseau. Chaque point peut jouer le rôle de l'émetteur et/ou du récepteur de l'information. Toutefois, le message à transmettre doit tout d'abord être codé au niveau de l'émetteur, puis transmis au canal de communication avant d'être décodé au niveau du récepteur. C'est ce processus de codage et de transmission des données dans un réseau que nous voulons comprendre dans ce travail afin que les avancées technologiques dans le domaine de la télécommunication ne nous dépaysent pas. Et qu'à notre tour, nous puissions être à mesure d'expliquer en termes clairs et précis ce qui se passe lors de la transmission des données dans un réseau et pourquoi pas apporter notre contribution dans l'implémentation d'un système de transmission des données. Celles-ci peuvent être la voix, l'image, le son, le texte, etc.

    Dès lors, la transmission des données désigne le transport de quelque sorte d'information que ce soit d'un endroit à un autre. L'acception du mot donnée est la représentation d'une information sous une forme conventionnelle (codée) destinée à faciliter son traitement. D'où le but d'un réseau est de transmettre des informations d'un système à un autre, d'un ordinateur à un autre.

    ~ 9 ~

    0.2. Etat de la question

    Historiquement, la transmission des données se faisait par courrier papier, une chaîne de feux ou de sémaphores, puis le Morse sur des fils en cuivre. Dans le vocabulaire informatique, la transmission des données signifie l'envoi de flux de bits d'un endroit à un autre en utilisant des technologies, comme le fil de cuivre, la fibre optique, le laser, la radio, la lumière infrarouge, le Bluetooth.

    La théorie de l'information, comme branche des mathématiques, a été formalisée par Claude Shannon [1948]. A la suite de Shannon, Richard Hamming a développé les prémisses de la théorie des codes. Plusieurs autres chercheurs se sont intéressés aux différents aspects de cette théorie de l'information. Leurs recherches ont conduit aux résultats puissamment exploités dans le domaine des télécommunications. Ainsi, les questions, concernant les systèmes de traitement numérique pour la transmission des données sur des réseaux filaires et/ou sans fil, ne cessent d'être à l'ordre du jour dans les travaux académiques et scientifiques. Les résultats de ces recherches apportent pas mal de lumières dans la compréhension et la maîtrise de la cybernétique.

    La théorie de l'information, fondement des communications modernes, se développe encore actuellement. Aussi, le secteur informatique n'est-il pas resté en marge de ce développement. La multiplicité des codes a permis la compréhension de l'échange entre l'homme et la machine d'une part ; et d'autre part, elle a permis d'explorer le langage machine, seul langage que l'ordinateur comprend.

    Partant du code ASCII, nous voulons mettre en lumière les différentes possibilités des raccourcis que certaines touches du clavier d'un ordinateur ou d'un appareil téléphonique offrent dans la saisie des caractères, avant que ces caractères soient envoyés vers une destination quelconque, via un réseau.

    Plusieurs chercheurs tels que P. Arnoux, Gilles Lachaud ont eu à réfléchir sur le codage et les mathématiques. Ils ont centré leurs recherches sur les codes géométriques, découvertes à partir de la géométrie algébrique, en vue de construire des codes plus performants que ceux prédits par les travaux de Shannon.

    ~ 10 ~

    0.3. Problématique

    Le but d'un réseau est de transmettre des informations d'un système à un autre, d'un ordinateur à un autre. Ces informations à transmettre doivent être codées avant leur transmission de la source à la destination dans un réseau. Cette transmission doit être sans erreurs. Et pourtant, un problème majeur de la transmission de l'information est celui des erreurs. Il suffit d'une petite perturbation de l'appareillage pour que le message transmis comporte des erreurs.

    Dans ce travail, nous nous proposons de retracer le processus qui décrit la manière dont une information est envoyée d'une source à une destination. Mieux, nous voulons comprendre ce qui se passe dans un réseau lorsqu'un message est codé, transmis, puis, décodé. Nous allons mettre l'accent sur le fait que les erreurs lors de la transmission de l'information sont détectées et corrigées en rallongeant les mots du message de façon qu'après dégradation, on puisse quand même reconnaître les mots envoyés. Ces mécanismes de codage et de décodage sont pris en charge par des protocoles spécifiques de communication.

    La représentation des données peut se diviser en deux catégories :

    La première catégorie concerne une représentation numérique. Il s'agit ici du codage de l'information en un ensemble de valeurs binaires, soit une suite de 0 et de 1. La deuxième catégorie renferme une représentation analogique : c'est-à-dire la donnée est représentée par la variation d'une grandeur physique continue.

    De ces deux catégories, nous allons plus nous intéresser aux données numériques sachant que les données analogiques peuvent se convertir en données numériques avant leur transmission. Aussi le code de HAMMING sera exploité dans l'élaboration de l'algorithme de transmission des données sans erreur. Un exemple simulera un cas de transmission d'une phrase d'un émetteur à un récepteur. Cet exemple, dans le cas d'un réseau téléphonique, peut simuler l'envoi de la phrase « J'ai lu le livre. Magnifique !» via un sms.

    ~ 11 ~

    0.4. Hypothèse

    Le langage binaire, fondement de notre hypothèse, permet d'expliciter le processus de transmission des données dans un réseau, car le codage de l'information se fait dans l'alphabet binaire 0 et 1.

    Partant du code ASCII, nous reconnaissons que chaque caractère du clavier d'un ordinateur ou d'un téléphone est en bijection avec une suite de « 1 » et de « 0 ». Cette succession de « 1 » et de « 0 » correspond au caractère que la machine connaît. L'étude de cette bijection entre un caractère et la suite de « 1 » et de « 0 » servira comme toile de fond à notre problématique. Elle permettra aussi de démontrer l'efficacité du code dans l'utilisation du clavier pour représenter un caractère accentué ou non.

    Notons, cependant, que cette représentation est possible en faisant appel aux divers codes existants. Plus précisément, nous combinerons la touche Alt du clavier d'un ordinateur avec le code décimal d'un caractère pour afficher ce caractère à l'écran. Ainsi, par exemple, la combinaison de la touche Alt avec le code 65 affiche @ à l'écran tandis que Alt combiné ave 65 affiche A.

    0.5. Méthodes et techniques

    a. Méthodes

    La méthode d'analyse, selon PINTO, R. et GRAWITZ, M. [1971], est un ensemble d'opérations intellectuelles par lesquelles une discipline donnée cherche à atteindre des vérités qu'elle poursuit, les démontre et les vérifie.

    En rapport avec notre investigation, nous avons exploité plusieurs méthodes :

    La méthode explicative : elle consiste à expliquer le phénomène étudié dans son ensemble. Cette méthode permet de montrer pourquoi la réalité est telle qu'elle est observée. L'explication est donc un jugement scientifique qui vise à établir des liens entre les faits et à en spécifier la nature.

    La méthode descriptive: elle consiste à décrire le phénomène étudié dans son ensemble et dans des aspects particuliers. Cette méthode cherche à démontrer un phénomène par le biais des descriptions, de classifications ou des typologies. Elle fait davantage appel au jugement, à la finesse de l'observation ou à la compréhension des phénomènes.

    ~ 12 ~

    La méthode inductive : elle privilégie la description des faits pour atteindre l'explication par une démarche inductive. Cette dernière est une opération mentale qui conclut du particulier au général, c'est-à-dire de quelques cas à tous les cas ou encore des faits à la loi.

    b. Techniques

    GOODE, J. [1952] définit les techniques comme étant des outils utilisés dans la collecte des informations chiffrées ou non qui devront plus tard être soumises à l'interprétation et à l'explication grâce aux méthodes.

    En ce qui nous concerne, nous avons exploité les techniques documentaires. Celles-ci englobent les techniques suivantes : les documents écrits, les documents technologiques, les documents visuels, les documents phonétiques et audio-visuels. Grâce à ces techniques, nous avons rassemblé les données extraites des ouvrages, des livres, des articles en rapport avec le codage et la transmission des données.

    0.6. Délimitation du sujet

    Le caractère multiforme de l'information (sonore, graphique, vidéo) nous pousse à délimiter notre recherche à l'information présentée sous forme des données textuelles.

    0.7. Difficultés rencontrées

    Dans l'analyse et l'interprétation de données relatives à notre sujet, nous étions butés à quelques difficultés d'ordre pratique. Le sujet étudié faisant appel à beaucoup de notions d'électroniques, nous nous sommes vu limiter dans le développement du chapitre concernant la transmission des données. Sans nul doute, le mécanisme interne à la transmission proprement dite ne peut s'expliquer facilement que via de nombreuses notions électroniques dont la maîtrise nous échappe à ce niveau de notre formation universitaire. Peut-être, ce serait mieux de penser à collaborer avec des spécialistes en électroniques pour finalement développer une explication simple de ce phénomène qu'est la transmission des images, des sons via un réseau.

    ~ 13 ~

    0.8. Plan du travail

    Notre investigation sur le codage et la transmission des données dans un réseau est subdivisée en quatre chapitres.

    Une introduction générale présente le sujet traité.

    Le premier chapitre décrit les généralités sur les systèmes de codage.

    Le deuxième chapitre aborde le codage de l'information. Il présente le code ASCII comme base du codage des données. Il établit la correspondance entre le caractère et le code en décimal en vue de l'utilisation de ce code dans l'écriture du caractère via la combinaison de la touche Alt+code décimal dans le cas du clavier d'un ordinateur.

    Le troisième chapitre concerne la transmission des données. Il aborde essentiellement le réseau de transmission des données, le support de cette transmission et le type de transmission de données. Les protocoles établis dans la communication sont expliqués, car ils constituent la clé de la communication dans le réseau.

    Le quatrième chapitre présente dans un langage de programmation un exemple de transmission des données dans un réseau. Il simule le cas de l'envoi, dans un réseau, de la phrase suivante : « J'ai lu le livre. Magnifique ! ». Cette simulation montre à merveille l'application du codage de chaque caractère et le transfert de la phrase d'un émetteur à un récepteur via un support ou un canal de communication.

    Une conclusion, à la fin du travail, fait la synthèse de l'analyse et de l'interprétation des résultats avant de proposer les perspectives de recherche à venir en rapport avec le sujet abordé.

    ~ 14 ~

    CHAP. I. : GÉNÉRALITÉS SUR LES SYSTÈMES DE CODAGE

    I.0. Introduction

    Le codage est une opération établissant une bijection entre une information et une suite de « 0 » et de « 1 » qui sont représentables en machine. Autrement dit, l'information est nécessairement codée avant d'être transmise dans un réseau. Ce chapitre veut poser les bases du codage de l'information et expliquer la manière dont une donnée peut être codée. Il rappelle les notions de l'algèbre de Boole avant d'aborder le système binaire comme base du codage et présenter le codage des caractères suivant le code ASCII.

    I.1. RAPPEL DE NOTIONS DE L'ALGÈBRE DE BOOLE

    Dans l'algèbre de Boole, les états logiques sont représentés par 0 et 1.

    I.1.1. Les opérateurs logiques

    Les opérateurs logiques ET(AND), OU(OR) et NON(NOT) sont respectivement symbolisés par . (un point), + (un plus) et une barre au dessus.

    I.1.2. Axiomes

    Une algèbre de Boole vérifie les propriétés présentées dans le tableau ci-dessous avec a, b et c des propositions :

    Opération

    Loi

    Addition

    Multiplication

    Commutativité

    a + b = b + a

    a.b = b.a

    Associativité

    (a + b) + c = a + (b + c)

    (ab)c = a(bc)

    Distributivité

    a(b + c) = ab + ac

    a(b + c) = ab + ac

    Eléments neutres

    a + 0 = a

    a. 1= a

    complémentarité

    a + 1=1

    a.a = 0

    ~ 15 ~

    I.1.3. Théorèmes

    Une algèbre de Boole vérifie les théorèmes suivants :

    Propriété

    Loi

    Addition

    Multiplication

    Idempotence

    a + a = a

    a.a = a

    Absorption

    a+ab=a

    a(a+b)=a

    De Morgan

    a + b = a.b

    a.b = a + b

    Elément neutre

    a + 1=1

    a.0 = 0

    I.1.4. Tables de vérité

    Une table de vérité est un tableau permettant de décrire toutes les possibilités de sorties en fonction des entrées. On place donc les variables d'entrée dans les colonnes de gauche en les faisant varier de telle façon à couvrir l'ensemble des possibilités. La colonne (ou les colonnes si la fonction a plusieurs sorties) de droite décrit la sortie.

    ~ 16 ~

    Voici par exemple les tables des portes logiques : Soient A, B et S des propositions.

    Fonction logique

    Entrée

    Sortie

    A

    B

    S

    AND

    S = A.B

    0

    0

    0

    0

    1

    0

    1

    0

    0

    1

    1

    1

    OR

    S = A + B

    0

    0

    0

    0

    1

    1

    1

    0

    1

    1

    1

    1

    NAND
    S = A.B

    0

    0

    1

    0

    1

    1

    1

    0

    1

    1

    1

    0

    NOR

    0

    0

    1

    0

    1

    0

    S = A +B

    1

    0

    0

    1

    1

    0

    XOR

    S = A ?B

    0

    0

    0

    0

    1

    1

    1

    0

    1

    1

    1

    0

    XNOR

    0

    0

    1

    0

    1

    0

    S = A ?B

    1

    0

    0

    1

    1

    1

    INV

    S = IN

    0

    1

    1

    0

    ~ 17 ~

    I.2. LE BINAIRE

    De prime abord, il est important de signaler l'existence de plusieurs systèmes de codage et de numération et de préciser les raisons qui ont motivé le choix du système binaire dans notre travail.

    I.2.1. Les systèmes de codage

    Il existe plusieurs systèmes de codage.

    A. Les systèmes binaires

    En binaire, nous distinguons trois principaux système de codage : le

    binaire pur, le binaire réfléchi (code GRAY) et le binaire DCB ou BCD.

    A.1. Le code binaire naturel

    Dans le codage binaire naturel, nous utilisons le poids binaire de chaque

    chiffre en fonction de son rang. L'exemple donné ci-dessous va aider à bien

    cerner la signification du poids binaire et du rang de chaque chiffre utilisé.

    Le chiffre 9, par exemple, est codé en binaire naturel comme suit :

    (9)10 = (1001)2 sachant que 9 = 1.23 + 0.22 + 0.21 + 1.20

    Dans cet exemple, les poids binaires représentés en gras sont les coefficients que nous avons placés devant les puissances de 2 tandis que le rang est donné par l'ordre de la puissance de 2. Généralement, dans l'écriture bn, b représente la base de calcul et n renvoie au rang.

    Le codage binaire naturel est utilisé dans les adresses IP (Internet Protocol) version 4 [notées IPv4, représentées avec 32 bits regroupés en 4 octets] pour identifier le réseau auquel appartient un ordinateur. Comme illustration, cherchons à déterminer le réseau auquel appartient un ordinateur dont l'adresse IP est donnée par 192.168.12.25 sachant que son masque de sous-réseau par défaut est 255.255.255.0 ; Signalons en passant qu'un masque de sous-réseau permet d'obtenir l'adresse d'une machine au sein du sous-réseau auquel elle appartient. C'est un ensemble de bits combinés par un et logique à l'adresse IP étudiée.

    ~ 18 ~

    Algorithme :

    convertir l'adresse IP de l'hôte en binaire ; chaque partie de l'adresse étant

    un octet.

    stocker le résultat dans une variable a ;

    Convertir le masque de sous-réseau en binaire ; chaque partie du masque

    de sous-réseau étant un octet.

    stocker le résultat dans une variable b ;

    faire la combinaison logique a et b ;

    soit c la variable combinaison logique de a et b, c = a et b ;

    Finalement, le réseau auquel appartient l'hôte est donné par la variable c.

    la représentation décimale de la valeur de la variable c, regroupée en 4

    octets, donne l'identifiant du réseau auquel appartient l'hôte.

    En appliquant cet algorithme de conversion, nous avons :

    La conversion de l'adresse IP en binaire est donnée par

    192.168.12.25 = 11000000.10101000.00001100.00011001 ;

    Soit a = 11000000.10101000.00001100.00011001 ;

    La conversion en binaire du masque du sous-réseau par défaut est donnée par :

    255.255.255.0 = 11111111.11111111.11111111.00000000 ;

    Soit b = 11111111.11111111.11111111.00000000 ;

    Alors c = a et b ;

    Le tableau ci-dessous récapitule les opérations et le résultat :

    a

    1

    1

    0

    0

    0

    0

    0

    0

     

    1

    0

    1

    0

    1

    0

    0

    0

     

    0

    0

    0

    0

    1

    1

    0

    0

     

    0

    0

    0

    1

    1

    0

    0

    1

    b

    1

    1

    1

    1

    1

    1

    1

    1

     

    1

    1

    1

    1

    1

    1

    1

    1

     

    1

    1

    1

    1

    1

    1

    1

    1

     

    0

    0

    0

    0

    0

    0

    0

    0

    c

    1

    1

    0

    0

    0

    0

    0

    0

     

    1

    0

    1

    0

    1

    0

    0

    0

     

    0

    0

    0

    0

    1

    1

    0

    0

     

    0

    0

    0

    0

    0

    0

    0

    0

     

    192

     

    168

     

    12

     

    0

     

    L'identifiant du réseau est donné par 192.168.12.0

    ~ 19 ~

    A.2. Code binaire réfléchi

     

    c

    a

    b

    Premier terme

    0

    0

    0

    Deuxième terme

    0

    0

    1

    Troisième terme

    0

    1

    1

    Quatrième terme

    0

    1

    0

    Cinquième terme

    1

    1

    0

    Sixième terme

    1

    1

    1

    Septième terme

    1

    0

    1

    Huitième terme

    1

    0

    0

     

    Tableau du code binaire réfléchi

    Dans ce tableau du code binaire réfléchi, un seul bit change d'état lorsque l'on passe d'un terme au suivant. Le code peut se refermer sur lui-même sans perdre ses propriétés dans la mesure où le dernier terme se situe juste avant un axe de symétrie.

    Le codage binaire réfléchi permet d'éviter les états indéterminés lors du passage d'un terme à un autre terme adjacent.

    A.3. Code binaire DCB (Décimal Codé en Binaire)

    Dans le code binaire DCB, chaque chiffre décimal est converti en binaire, indépendamment des autres chiffres. Ce code est utilisé dans les systèmes traitant des nombres décimaux uniquement. Citons par exemple, le comptage dans les instruments de mesure. Si vous achetez un voltmètre numérique, la valeur mesurée est transmise à l'afficheur en numérique. Mais elle est auparavant transformée en décimal ; et chaque chiffre décimal est transmis à un afficheur en binaire naturel (sur 4 bits) des chiffres décimaux.

    Son inconvénient est qu'il nécessite plus de bits que le binaire naturel pour coder le même nombre décimal.

    Par exemple (583)10 se notera (0101 1000 0011)dcb en code binaire DCB.

    ~ 20 ~

    B. Le système hexadécimal

    Le codage hexadécimal est très utilisé dans les systèmes à microprocesseur, car il simplifie l'écriture des nombres binaires. Ce codage utilise 16 symboles [0...9 et A...F].

    Chaque chiffre hexadécimal est défini par quatre bits. Notons que le quartet (4bits) entraîne 16 combinaisons tandis que l'octet (8 bits) entraîne 256 combinaisons.

    Contrairement à ce que beaucoup de gens croient, aucune machine ne compte en hexadécimal. Elles travaillent toutes en binaire, et ne se servent de l'hexadécimal que pour dialoguer avec l'être humain. Celui-ci se trompe trop souvent dans de longues listes de 0 et 1.

    I.2.2. Les systèmes de numération

    Les systèmes de numération sont importants parce qu'ils permettent de préciser le domaine de définition dans lequel on travaille et de convertir une base donnée en une base dont le calcul est aisé à réaliser.

    A. Addition binaire

    Le tableau ci-dessous présente le bit somme et le bit de retenue dans l'addition binaire.

    +

    0

    0

    1

    1

    0

    1

    1

    0(1)

    Dans le tableau ci-haut, 0(1) représente la retenue 1 à reporter. En considérant une addition binaire comme la somme à effectuer sur deux mémoires à un bit, nous observons dans l'addition binaire les différentes configurations des bits concernés (notés a et b).

    ~ 21 ~

    Nous aurons comme résultat un bit de somme et un bit de retenue.

    Bit a

     

    Bit b

     

    Bit somme

    Bit de retenue

    1

    +

    1

    =

    0

    1

    1

    +

    0

    =

    1

    0

    0

    +

    1

    =

    1

    0

    0

    +

    0

    =

    0

    0

    Si l'on compare avec les tables d'opérateurs booléens rencontrées précédemment, on s'aperçoit que l'opérateur ? (Xor) fournit en sortie les mêmes configurations que le bit somme, et que l'opérateur . (ET) délivre en sortie les mêmes configurations que le bit de retenue.

    B. Conversion d'une base quelconque en base décimale

    Pour convertir un nombre en base b avec b>1 en sa représentation décimale et réciproquement, il convient de respecter les méthodes générales suivantes :

    Soit (xnxn-1...x0) b un nombre écrit en base b. Pour le convertir en décimal (base 10), il faut :

    Convertir chaque symbole xk en son équivalent ak en base 10. On obtient ainsi la suite de chiffres : an a .

    ,...,

    0

    Réécrire le nombre comme une somme :

    n n

    k k

    (xnxn-1...x0)b Î ? ? ?

    x b a b

    k k

    k = 0 k = 0

    Effectuer tous les calculs en base 10 (somme, produit, puissance).

    Comme illustration, nous nous proposons de convertir (2AB8)13 en base 10.

    Dans notre exemple, b = 13. Nous aurons donc l'expression suivante :

    (2AB8)13 = 2.133 + 10.132 + 11.131 + 8.130 [avec A=10 et B =11]

    = 4394 + 1690 + 143 + 8

    = (6235)10

    Le nombre (2AB8)13 donne (6235)10 en base 10.

    Soit « a » un nombre écrit en décimal. Représenter le nombre a en base b :

    La méthode utilisée est un algorithme fondé sur la division euclidienne.

    ~ 22 ~

    Si a < b, il n'a pas besoin d'être converti.

    Si a = b, on peut diviser a par b et l'on divise successivement les différents quotients qk obtenues par la base b.

    De manière générale, on aura :

    k k - 1

    a = b r b r

    . + . + .... + . + ( Où ri est le reste de la division de a par b).
    b r r

    k k - 1 1 0

    En remplaçant chaque ri par son symbole équivalent p i en base b, nous

    obtenons :

    a p p - p p

    = ( ... ) b. Cet algorithme permet d'obtenir une

    k k 1 1 0

    représentation de a dans la base b.

    On a par exemple que (89)10 = (1011001)2. En effet, pour transformer (89)10 en binaire, on peut utiliser la méthode des divisions successives par 2 : on divise successivement par 2 jusqu'à un résultat de 0, les restes successifs (de bas en haut) forment le nombre binaire.

    89 : 2 = 44 reste 1

    44 : 2 = 22 reste 0

    22 : 2 = 11 reste 0

    11 : 2 = 5 reste 1

    5 : 2 = 2 reste 1

    2 : 2 = 1 reste 0

    1 : 2 = 0 reste 1

    D'où (89)10 = (1011001)2

    A l'inverse, (1011001)2 représente (89)10. En effet, on aura :

    1x26 + 0x25 + 1x24 + 1x23 + 0x22 + 0x21 + 1x20

    = 1x64 + 0x32 + 1x16 + 1x8 + 0x4 + 0x2 + 1x1

    = 64 + 16 + 8 + 1

    = (89)10.

    Les informaticiens, pour des raisons de commodité (manipulations minimales de symboles), préfèrent utiliser l'hexadécimal plutôt que le binaire. L'humain, contrairement à la machine, a quelques difficultés à fonctionner sur des suites importantes de 1 et de 0. Ainsi l'hexadécimal (sa base b =24 étant une puissance de 2) permet de diviser, en moyenne le nombre de symboles par un peu moins de 4, par rapport au même nombre écrit en binaire. C'est l'unique raison pratique qui justifie son utilisation.

    ~ 23 ~

    C. Conversion binaire en hexadécimal

    Nous allons détailler l'action de conversion en 6 étapes pratiques :

    1ère étape : Soit a un nombre écrit en base 2 ;

    2ème étape : décomposer le nombre a par tranche de 4 bits à partir du bit de

    poids faible ;

    3ème étape : compléter la dernière tranche (celle des bits de poids forts) par

    des 0 s'il y a lieu ;

    4ème étape : convertir chaque tranche en son symbole de la base 16 ;

    5ème étape : réécrire à sa place le nouveau symbole par changements

    successifs de chaque groupe de 4 bits ;

    6ème étape : Enfin, le nombre écrit en hexadécimal est obtenu.

    Voici un exemple. Soit à transformer (001110100101)2 en hexadécimal.

    En effet, (001110100101)2 s'écrit 0011 1010 0101. Ce qui correspond à (3A5)16

    avec 3 = 0011 ; A = 1010 = 10 et 5 = 0101.

    D. Conversion hexadécimal en binaire

    Cette conversion est l'opération inverse de la précédente. Elle s'effectue

    en 4 étapes :

    1ère étape : Soit a un nombre écrit en base 16 ;

    2ème étape : convertir chaque symbole hexadécimal du nombre en son écriture

    binaire (nécessitant au plus 4 bits) ;

    3ème étape : Pour chaque tranche de 4 bits, compléter les bits de poids fort par

    des 0 s'il y a lieu ;

    4ème étape : le nombre « a » écrit en binaire est obtenu en regroupant toutes les

    tranches de 4 bits à partir du bit de poids faible, sous forme d'un seul nombre

    binaire.

    Voici un exemple. Soit à transformer (3A5)16 en binaire.

    En effet, 3 = 0011 ; A = 1010 = 10 et 5 = 0101.

    Donc (3A5)16 = (001110100101)2.

    ~ 24 ~

    CHAP. II. LE CODAGE DE L'INFORMATION

    II.0. Introduction

    Dans une machine, toutes les informations sont codées sous forme d'une suite de « 0 » et de « 1 » (langage binaire). Mais l'être humain ne parle généralement pas couramment le langage binaire. Il doit donc tout « traduire » pour que la machine puisse exécuter les instructions relatives aux informations qu'on peut lui donner.

    Le codage étant une opération purement humaine, il faut produire des algorithmes qui permettront à la machine de traduire les informations que nous voulons lui voir traiter. Le codage est une opération établissant une bijection entre une information et une suite de « 0 » et de « 1 » qui sont représentables en machine.

    II.1. LE CODAGE DES NOMBRES ENTIERS

    II.1.1. Le codage des entiers en général

    Les nombres entiers peuvent être codés comme des caractères ordinaires. Toutefois les codages adoptés pour les données autres que numériques sont trop lourds à manipuler dans un ordinateur. Du fait de sa constitution, un ordinateur est plus « habile » à manipuler des nombres écrits en numération binaire (qui est un codage particulier).

    Nous allons décrire trois modes de codage des entiers les plus connus, à savoir le système décimal, le système binaire et le système hexadécimal. Signalons, à ce sujet, qu'en informatique, les systèmes les plus utilisés sont le système hexadécimal et le système binaire. Il est possible de représenter tous les nombres dans un système à base b (b entier, b>1)

    Soit (x n x n - 1 x b un nombre x écrit en base b avec n+1 symboles. ... 0 )

    « xk » est le symbole associé à la puissance « k

    b , « xk » E { 0,1,..., b -1}

    Lorsque b = 2 (numération binaire), chaque symbole du nombre x E { 0, 1}, soit « xk » E { 0, 1} . Autrement dit les nombres binaires sont donc écrits avec des 0 et des 1, qui sont représentés physiquement par des bits dans la machine.

    Le bit de rang 0 est appelé le bit de poids faible.

    ~ 25 ~

    Le bit de rang n est appelé le bit de poids fort.

    Une mémoire à n+1 bits (n>0) permet de représenter sous forme binaire (en

    binaire pur) tous les entiers naturels de l'intervalle 2n + 1 1

    ? - ?

    ? ? .

    Soit pour n+1 = 8 bits, tous les entiers de l'intervalle [0, 255] Soit pour n+1 =16 bits, tous les entiers de l'intervalle [0, 65535]

    II.1.2. Codage des nombres entiers : binaire signé

    Ce codage permet la représentation des nombres entiers relatifs. Dans la représentation en binaire signé, le bit de poids fort (bit de rang n associé à 2n) sert à représenter le signe (0 pour un entier positif et 1 pour un entier négatif), les n autres bits représentent la valeur absolue du nombre en binaire pur.

    Une mémoire à n+1 bits (n>0) permet de représenter sous forme binaire (en binaire signé) tous les entiers naturels de l'intervalle [-(2n - 1), 2n - 1)]. Soit pour n+1 = 8 bits, tous les entiers de l'intervalle [-127, 127]

    Soit pour n+1 = 16 bits, tous les entiers de l'intervalle [-32767, 32767]

    Le nombre Zéro est représenté dans cette convention (dites du zéro positif) par : 0000...00000

    Il est à noter qu'il reste malgré tout une configuration mémoire inutilisée : 1000...00000. Cet état binaire ne représente a priori aucun nombre entier ni positif ni négatif de l'intervalle [-(2n-1), 2n-1)]. Afin de ne pas perdre inutilement la configuration « 1000...00000 », les informaticiens ont décidé que cette configuration représente malgré tout un nombre négatif parce que le bit de signe 1, et en même temps la puissance du bit contenant le « 1 », donc par convention -2n.

    L'intervalle de représentation se trouve alors augmenté d'un nombre, il devient :

    [-2n, 2n -1)].

    Soit pour n+1= 8 bits, tous les entiers de l'intervalle [-128, 127]

    Soit pour n+1 = 16 bits, tous les entiers de l'intervalle [-32768, 32767]

    Ce codage n'est pas utilisé tel quel, il est donné ici à titre pédagogique. En effet, le traitement spécifique du signe coûte cher en circuits électroniques

    ~ 26 ~

    et en temps de calcul. C'est une version améliorée qui est utilisée dans la plupart des calculateurs : elle se nomme le complément à deux.

    II.1.3. Un autre codage des nombres entiers : complément à deux

    Ce codage, purement conventionnel et très utilisé de nos jours, est dérivé du binaire signé. Il sert à représenter en mémoire les entiers relatifs.

    Dans le binaire signé, la mémoire est divisée en deux parties inégales. Le bit de poids fort représente le signe et le reste représente la valeur absolue avec le codage suivant :

    Supposons que la mémoire soit à n+1 bits et que x soit un entier relatif à représenter :

    Si x < 0, alors 3 étapes sont à suivre :

    1ère étape : coder la valeur absolue du nombre x, x en binaire signé.

    2ème étape : complémenter tous les bits de la mémoire (complément restreint). Cette opération est un non logique effectué sur chaque bit de la mémoire. 3ème étape : additionner +1 au nombre binaire de la mémoire (addition binaire).

    Un des intérêts majeurs de ce codage est d'intégrer la soustraction dans l'opération de codage et de ne faire effectuer que des opérations simples et rapides (non logique, addition de 1).

    II.2. LE CODAGE DES CARACTÈRES : LE CODE ASCII

    Dans la vie de tous les jours, pour l'écriture de documents alphanumériques, nous faisons appel à :

    Un alphabet de lettres minuscules ={ a,b,c,....,z}, soient 26 caractères ;

    Un alphabet de lettres majuscules = { A, B, C,...., Z}, soient 26 caractères ; Des chiffres{ 0,1,2,3,4,5,6,7,8,9}, soient 10 caractères ;

    Des symboles syntaxiques { ?, ;(« .... au minimum 10 caractères ;

    Soit un total minimal de 72 caractères.

    Si l'on avait choisi un code à 6 bits le nombre de caractères codables aurait été de 26 = 64 (tous les nombres binaires compris entre 000000 et 111111), nombre donc insuffisant pour nos besoins.

    ~ 27 ~

    Il faut au minimum 1 bit de plus, ce qui permet ainsi 27 = 128 nombres binaires différents, autorisant alors le codage de 128 caractères.

    II.2.1. Le code ASCII original (128 caractères)

    Initialement le code ASCII est un code à 7 bits (27=128 caractères). Les tableaux qui vont suivre dégagent l'analogie entre le décimal, l'octal, l'hexadécimal, le binaire et la signification de chaque code de caractères du code ASCII original.

    Décimal

    Octal

    Hexadécimal

    Binaire

    Signification (Alt +code décimal)

    000

    000

    000

    00000000

    NUL (Null Char.)

    001

    001

    001

    00000001

    SOH (Start of Header)

    002

    002

    002

    00000010

    STX (Start of Text)

    003

    003

    003

    00000011

    ETX

    004

    004

    004

    00000100

    EOT(End of Transmission)

    005

    005

    005

    00000101

    ENQ (Enquiry)

    006

    006

    006

    00000110

    ACK (Acknowledgement)

    007

    007

    007

    00000111

    BEL (Bell)

    008

    010

    008

    00001000

    BS (Backspace)

    009

    011

    009

    00001001

    HT (horizontal Tab)

    010

    012

    00A

    00001010

    LF (Line Feed)

    011

    013

    00B

    00001011

    VT (Vertical Tab)

    012

    014

    00C

    00001100

    FF (Form Feed)

    013

    015

    00D

    00001101

    CR (Carriage Return)

    014

    016

    00E

    00001110

    SO (Shift Out)

    015

    017

    00F

    00001111

    SI (Shift In)

    016

    020

    010

    00010000

    DLE (Data Link Escape)

    017

    021

    011

    00010001

    DC1 (Device Control 1)

    018

    022

    012

    00010010

    D (Device Control 2)

    019

    023

    013

    00010011

    DC3(Device Control 3)

    020

    024

    014

    00010100

    DC4 (Device Control 4)

    ~ 28 ~

    Décimal

    Octal

    Hexadécimal

    Binaire

    Signification (Alt +code décimal)

    021

    025

    015

    00010101

    NAK (Negative Acknow.)

    022

    026

    016

    00010110

    SYN (Synchronous Idle)

    023

    027

    017

    00010111

    ETB (End of Trans. Block)

    024

    030

    018

    00011000

    CAN (Cancel)

    025

    031

    019

    00011001

    EM (End of Medium)

    026

    032

    01A

    00011010

    SUB (Substitute)

    027

    033

    01B

    00011100

    ESC (Escape)

    028

    034

    01C

    00011101

    FS (File Separator)

    029

    035

    01D

    00011110

    GS (Group Separator)

    030

    036

    01E

    00011111

    RS (Request to Send)

    031

    037

    01F

    00011111

    US (Unit Separator)

    032

    040

    020

    00100000

    SP (Space)

    033

    041

    021

    00100001

    !

    034

    042

    022

    00100010

    «

    035

    043

    023

    00100011

    #

    036

    044

    024

    00100100

    $

    037

    045

    025

    00100101

    %

    038

    046

    026

    00100110

    &

    039

    047

    027

    00100111

    `

    040

    050

    028

    00101000

    (

    041

    051

    029

    00101001

    )

    042

    052

    02A

    00101010

    *

    043

    053

    02B

    00101011

    +

    044

    054

    02C

    00101100

    ,

    045

    055

    02D

    00101101

    -

    046

    056

    02E

    00101110

    .

    047

    057

    02F

    00101111

    /

    048

    060

    030

    00110000

    0

    049

    061

    031

    00110001

    1

    050

    062

    032

    00110010

    2

    051

    063

    033

    00110011

    3

    ~ 29 ~

    Décimal

    Octal

    Hexadécimal

    Binaire

    Signification (Alt +code décimal)

    052

    064

    034

    00110100

    4

    053

    065

    035

    00110101

    5

    054

    066

    036

    00110110

    6

    055

    067

    037

    00110111

    7

    056

    070

    038

    00111000

    8

    057

    071

    039

    00111001

    9

    058

    072

    03A

    00111010

    :

    059

    073

    03B

    00111011

    ;

    060

    074

    03C

    00111100

    <

    061

    075

    03D

    00111101

    =

    062

    076

    03E

    00111110

    >

    063

    077

    03F

    00111111

    ?

    064

    100

    040

    01000000

    @

    065

    101

    041

    01000001

    A

    066

    102

    042

    01000010

    B

    067

    103

    043

    01000011

    C

    068

    104

    044

    01000100

    D

    069

    0105

    045

    01000101

    E

    070

    106

    046

    01000110

    F

    071

    107

    047

    01000111

    G

    072

    110

    048

    01001000

    H

    073

    111

    049

    01001001

    I

    074

    112

    04A

    01001010

    J

    075

    113

    04B

    01001011

    K

    076

    114

    04C

    01001100

    L

    077

    115

    04D

    01001101

    M

    078

    116

    04E

    01001110

    N

    079

    117

    04F

    01001111

    O

    080

    120

    050

    01010000

    P

    081

    121

    051

    01010001

    Q

    082

    122

    052

    01010010

    R

    ~ 30 ~

    Décimal

    Octal

    Hexadécimal

    Binaire

    Signification (Alt +code décimal)

    083

    123

    053

    01010011

    S

    084

    124

    054

    01010100

    T

    085

    125

    055

    01010101

    U

    086

    126

    056

    01010110

    V

    087

    127

    057

    01010111

    W

    088

    130

    058

    01011000

    X

    089

    131

    059

    01011001

    Y

    090

    132

    05A

    01010101

    0

    Z

    091

    133

    05B

    01011011

    [

    092

    134

    05C

    01011100

    \

    093

    135

    05D

    01011101

    ]

    094

    136

    05E

    01011110

    ^

    095

    137

    05F

    01011111

    _

    096

    140

    060

    01100000

    `

    097

    141

    061

    01100001

    a

    098

    142

    062

    01100010

    b

    099

    143

    063

    01100011

    c

    100

    144

    064

    01100100

    d

    101

    145

    065

    01100101

    e

    102

    146

    066

    01100110

    f

    103

    147

    067

    01100111

    g

    104

    150

    068

    01101000

    h

    105

    151

    069

    01101001

    i

    106

    152

    06A

    01101010

    j

    107

    153

    06B

    01101011

    k

    108

    154

    06C

    01101100

    l

    109

    155

    06D

    01101101

    m

    110

    156

    06E

    01101110

    n

    111

    157

    06F

    01101111

    o

    112

    160

    070

    01110000

    p

    ~ 31 ~

    Décimal

    Octal

    Hexadécimal

    Binaire

    Signification (Alt +code décimal)

    113

    161

    071

    01110001

    q

    114

    162

    072

    01110010

    r

    115

    163

    073

    01110011

    s

    116

    164

    074

    01110100

    t

    117

    165

    075

    01110101

    u

    118

    166

    076

    01110110

    v

    119

    167

    077

    01110111

    w

    120

    170

    078

    01111000

    x

    121

    171

    079

    01111001

    y

    122

    172

    07A

    01111010

    z

    123

    173

    07B

    01111011

    {

    124

    174

    07C

    01111100

    |

    125

    175

    07D

    01111101

    }

    126

    176

    07E

    01111110

    ~

    127

    177

    07F

    01111111

    DEL

    Notons que, dans ce tableau, les caractères de code inférieur à 32 (code du caractère « espace ») ont des rôles particuliers (retour à la marge, passage à la ligne, ...). Aussi remarquons-nous que les caractères majuscules ont un code plus petit que le code des caractères minuscules. Certains logiciels se basent sur cette convention pour comparer des chaînes de caractères dans l'ordre

    alphabétique. Ainsi, par exemple, la comparaison « anatole » = « Anatole »
    pourrait avoir la valeur FAUX dans certains logiciels ; la réponse dépend du mode de comparaison entre les caractères : codage ASCII strict ou non. D'où l'on comprend bien qu'un ordinateur est donc capable de comparer des chaînes de caractères. Il n'a cependant jamais accès au sens des informations : il ne traite que la forme. Il se base généralement sur l'ordre alphabétique.

    En fonction du logiciel utilisé, il se peut que la convention d'ordre alphabétique diffère. Généralement, les caractères majuscules et minuscules ne sont pas considérés comme équivalents.

    ~ 32 ~

    II.2.2. Le code ASCII étendu (256 caractères)

    Le code ASCII original a été étendu à un code sur 8 bits (28 = 256 caractères) permettant le codage des caractères nationaux (en France les caractères accentués comme : ù, à, è, é, â,... etc.) et les caractères semi-graphiques.

    En réalité, les caractères ne sont pas représentés en tant que tels dans l'ordinateur. Celui-ci n'est capable que de mémoriser des nombres. Chaque caractère s'est donc vu, par convention, attribuer un code numérique.

    Les codes supérieurs à 127 ne sont pas attribués dans le code ASCII original. En fonction de la langue utilisée, les caractères spéciaux peuvent recevoir un code entre 128 et 255. On parle ainsi du code ASCII étendu. Ce code ASCII étendu est utilisé dans les pages HTML, diffusées sur le réseau Internet.

    Le tableau ci-dessous présente les caractères spéciaux du code ASCII étendu.

    Décimal

    Signification (Alt + Code décimal)

    127

     

    128

    Ç

    129

    ü

    130

    é

    131

    â

    132

    ä

    133

    à

    134

    å

    135

    ç

    136

    ê

    137

    ë

    138

    è

    139

    ï

    140

    î

    141

    ì

    142

    Ä

    143

    Å

    ~ 33 ~

    Décimal

    Signification (Alt + Code décimal)

    144

    É

    145

    æ

    146

    JE

    147

    ô

    148

    ö

    149

    ò

    150

    û

    151

    ù

    152

    ÿ

    153

    Ö

    154

    Ü

    155

    ø

    156

    £

    157

    Ø

    158

    X

    159

    f

    160

    á

    161

    í

    162

    ó

    163

    ú

    164

    ft

    165

    Ñ

    166

     

    167

    °

    168

     

    169

    ®

    170

    #172;

    171

    1/2

    172

    1/4

    173

     

    174

    «

    ~ 34 ~

    Décimal

    Signification (Alt + Code décimal)

    175

    »

    176

     

    177

     

    178

     

    179

    I

    180

     

    181

    Á

    182

    Â

    183

    À

    184

    (c)

    185

    II

    186

    II

    187

    TI

    188

    J

    189

    cents

    190

    Y

    191

    1

    192

    L

    193

    1

    194

    T

    195

    F

    196

    --

    197

    +

    198

    ã

    199

     

    200

    IL-

    201

    201

    IT

    202

    JL

    203

    ir

    204

    IIF

    205

    =

    ~ 35 ~

    Décimal

    Signification (Alt + Code décimal)

    206

    +

    207

     

    208

    ô

    209

    Ð

    210

    Ê

    211

    Ë

    212

    È

    213

    õ

    214

    Í

    215

    Î

    216

    Ï

    217

    +

    218

    r

    219

     

    220

    _

    221

     

    222

    Ì

    223

     

    224

    Ó

    225

    ß

    226

    Ô

    227

    Ò

    228

    õ

    229

    Õ

    230

    p

    231

    þ

    232

    Þ

    233

    Ú

    234

    Û

    235

    Ù

    236

    ý

    ~ 36 ~

    Décimal

    Signification (Alt + Code décimal)

    237

     

    238

     

    239

    '

    240

    -

    241

    #177;

    242

    =

    243

    3/4

    244

     

    245

    §

    246

    Â

    247

     

    248

    °

    249

    ·

    250

    ·

    251

    1

    252

    3

    253

    2

    254

     

    255

     

    ~ 37 ~

    II.2.3. Autres codages

    De nombreux autres codages existent adaptés à diverses solutions de stockage de l'information. Ainsi, un codage récent dit « universel » est en cours de diffusion : il s'agit du codage Unicode sur 16 bits (216 = 65536 caractères). La limite fut dans un premier temps fixée à 16 bits pour les premières versions d'Unicode, et à 32 bits (232 = 4.294.967.296 caractères) pour les premières versions de la norme ISO/CEI 10646.

    Il serait intéressant d'y réfléchir dans un autre travail afin de montrer sa complexité et ses applications par rapport au code ASCII original et au code ASCII étendu. Ce codage Unicode permet d'afficher à l'écran les caractères spéciaux tels que IR, ø, E, =, =, ä, á, etc. , en maintenant la touche ALT enfoncée et en tapant le nombre correspondant au caractère sur le pavé numérique. Le tableau qui suit illustre cette approche de saisie des caractères spéciaux.

    Unicode
    hexadécimal

    Unicode décimal

    ALT+ Code décimal
    Symbole

    03B1

    945

    á

    03B4

    948

    ä

    03C8

    968

    ø

    211D

    8477

    I1

    220A

    8714

    E

    2264

    8804

    =

    2265

    8805

    =

    ~ 38 ~

    CHAP. III. LA TRANSMISSION DES DONNÉES DANS UN RÉSEAU

    III.0. Introduction

    Après l'étape du codage, intervient celle de la transmission. Il est question d'étudier la manière dont les suites binaires des caractères sont envoyées vers l'utilisateur final de ces informations.

    Ce transport peut s'effectuer en série ou en parallèle. Dans le premier cas, les bits sont envoyés les uns derrière les autres. La succession de caractères peut se faire de deux façons distinctes : le mode asynchrone ou le mode synchrone. Dans le cas de transmission parallèle, les bits d'un même caractère sont envoyés sur des fils distincts, pour arriver ensemble à destination. Cette méthode pose des problèmes de synchronisation qui conduisent à ne l'utiliser que sur de très courtes distances (dans le cas du bus d'un ordinateur par exemple).

    III.1. MODES DE TRANSMISSION DES DONNÉES

    A. Mode asynchrone

    Le mode asynchrone indique qu'il n'y a pas de relations préétablies entre l'émetteur et le récepteur. Les bits d'un même caractère sont encadrés de deux signaux, l'un indiquant le début du caractère, l'autre la fin. Ce sont les bits start et stop. Le début d'une transmission peut se placer à un instant quelconque dans le temps.

    bit start bits du caractère bit stop

    Figure représentant un caractère dans le mode asynchrone

    ~ 39 ~

    B. Mode synchrone

    Dans le mode synchrone, l'émetteur et le récepteur se mettent d'accord sur un intervalle constant, qui se répète sans arrêt dans le temps. Les bits d'un caractère sont envoyés les uns derrière les autres et sont synchronisés avec le début des intervalles de temps.

    Dans ce type de transmissions, les caractères sont émis en séquence, sans aucune séparation. Seul ce mode est utilisé dans le cas de très forts débits. Dans tous les cas, le signal émis est synchronisé sur une horloge lors de la transmission d'un élément binaire. La vitesse de l'horloge donne le débit de la ligne en bauds (en général, 1 baud = 1bps), c'est-à-dire le nombre de tops d'horloge par seconde.

    Nous savons par exemple qu'une ligne de communication qui fonctionne à 50 bauds indique qu'il y a 50 intervalles de temps élémentaires dans une seconde. Sur un intervalle élémentaire, on émet en général un bit, c'est-à-dire un signal à « 1 » ou « 0 ». Mais rien n'empêche de transmettre quatre types de signaux distincts qui auraient comme signification « 0 », « 1 », « 2 » et « 3 ». On dit, dans ce dernier cas, que le signal a une valence de deux. Un signal a une valence de n si le nombre de niveaux transportés dans un intervalle de temps élémentaire est de 2n.

    La capacité de transmission de la ligne en nombre de bits transportés par seconde vaut n multiplié par la vitesse en bauds. On exprime cette capacité en bits par seconde. Par exemple, une ligne de vitesse de 50 bauds qui a une valence de 2 a une capacité de 100 bits par seconde (100 bit/s).

    Lors de la transmission d'un signal, des perturbations de la ligne physique par ce que l'on appelle le bruit extérieur peuvent se produire. Si l'on connaît le niveau de ce bruit, on peut calculer la capacité maximale de la ligne.

    En termes plus précis, le bruit correspond à l'ensemble des perturbations qui affectent la voie de transmission. Il provient de la qualité de la ligne, qui modifie les signaux qui s'y propagent, des éléments intermédiaires comme les modems et les multiplexeurs, qui n'envoient pas toujours exactement les signaux demandés, et d'événements extérieurs comme les ondes électromagnétiques.

    ~ 40 ~

    Le bruit est considéré comme un processus aléatoire décrit par une fonction b(t). Si s(t) est le signal transmis, le signal parvenant au récepteur s'écrit s(t)+b(t). Le rapport signal sur bruit est une caractéristique d'un canal : c'est le rapport de l'énergie du signal sur l'énergie du bruit. Ce rapport varie dans le temps, puisque le bruit n'est pas uniforme. Toutefois, on l'estime par une valeur moyenne sur un intervalle de temps. Il s'exprime en décibel (dB).

    Nous écrivons ce rapport S .

    B

    Théorème de Shannon

    Le théorème de Shannon nous donne la capacité maximale d'un canal soumis à

    un bruit : C = W où

    C représente la capacité maximale en bit/s ;

    W est la bande passante en hertz (HZ).

    Sur une ligne téléphonique dont la bande passante est de 3200 Hz, pour un rapport signal sur bruit de 10dB, on peut théoriquement atteindre une capacité de 10 Kbit/s.

    III.2. LES SENS DE TRANSMISSION DES DONNÉES ENTRE DEUX POINTS

    La transmission des données entre deux points d'un réseau se fait dans un canal de communication. Cette transmission peut être de type simplex, c'est-à-dire, que la transmission suit une liaison unidirectionnelle, toujours dans le même sens : de l'émetteur vers le récepteur. Le deuxième type de transmission est le Half Duplex, c'est-à-dire, que la transmission suit une liaison bidirectionnelle et permet de transformer l'émetteur en récepteur et vice versa. Une liaison bidirectionnelle, simultanée, ou duplex (ou encore full-duplex), permet une transmission simultanée dans les deux sens.

    Schématiquement, les sens de transmission sont représentés comme

    suit :

    Simplex : Emetteur simplex

    ???> Récepteur

    Half-duplex : Emetteur ??> Récepteur

    1' Alternant -

    Récepteur ??? Emetteur

    ~ 41 ~

    Duplex : Emetteur ?????? Récepteur

    Full - Duplex

    Récepteur Full - ????? Duplex Emetteur

    III.3. LES TECHNIQUES DE TRANSMISSION

    Dans ce paragraphe, nous allons examiner les techniques de transmission utilisées, c'est-à-dire comment un émetteur peut envoyer un signal que le récepteur reconnaîtra comme étant un « 1 » ou un « 0 ».

    III.3.1. La transmission en bande de base

    Les transmissions en bande de base sont des transmissions sans modulation. Elles consistent à émettre sur la ligne des courants qui reflètent les bits du caractère à transmettre sous forme de créneaux. La réalisation exacte de ces créneaux (correspondant à un courant nul pour indiquer un « o » et à un courant positif pour indiquer un « 1 ») est très compliquée : il est souvent difficile de faire passer du courant continu entre deux stations. Le même défaut se retrouve dans le code NRZ (Non Return to Zéro). Le code bipolaire est un code tout ou rien, mais où le bit « 1 » est indiqué par un courant positif ou négatif à tour de rôle, pour éviter les courants continus. Ce code laisse le bit « 0 » définit par un courant nul.

    Le code bipolaire à haute densité permet de ne pas laisser le courant nul pendant les suites de « 0 ». Des suites spéciales de remplissage (courant négatif, nul ou positif) sont alors insérées à la place de ces zéros. Un nouveau « 1 » est indiqué par un courant positif ou négatif, en violation avec la suite de remplissage.

    ~ 42 ~

    Code bipolaire à haute densité

    Code tout ou rien 0

    Code NRZ

    Code bipolaire

    1 1

    0

    0

    Figure représentant les codes en bande de base

    Cette méthode de transmission ne peut être utilisée que sur de très courtes distances : moins de 5 Km. Sur des distances plus longues, on utilise un signal de forme sinusoïdale. Ce type de signal, même affaibli, pourra très bien être décodé par le récepteur. Dès qu'un terminal situé à une distance un peu importante doit être atteint, un modem (Modulateur Démodulateur) est nécessaire pour que le taux d'erreurs soit acceptable.

    III.3.2. Les modems

    Les modems permettent de transformer les signaux binaires en bande de base en signaux analogiques très spécifiques indiquant également une valeur numérique. Le signal se présente sous une forme sinusoïdale. Les modems s'adaptent aux différents types de support.

    ~ 43 ~

    Il arrive que des fonctionnalités additionnelles soient ajoutées au modem. Une fonctionnalité importante concerne la compression des données : plutôt que d'augmenter la vitesse, on compresse les données.

    Le protocole MNP (Microcom Networking Protocol) constitue un bel exemple de proposition de compression et de correction d'erreurs. Ce protocole a été mis au point par le constructeur américain Microcom, et normalisé par l'avis V42bis de l'UIT-T.

    Les principales caractéristiques de ces normes sont les suivantes :

    MNP 1 : Protocole de correction d'erreurs au niveau de l'octet ;

    MNP 2 : Protocole de correction d'erreurs au niveau de l'octet en full-duplex à 2400bit/s ;

    MNP 3 : Protocole de correction d'erreurs au niveau bit ;

    MNP 4 : Protocole de correction d'erreurs au niveau paquet ;

    MNP 5 : Protocole de correction d'erreurs et de compression de données de moyenne 2 ;

    MNP 6 : Protocole de correction d'erreurs et de compression de données en half-duplex ;

    MNP 7 : Protocole de correction d'erreurs et de compression de données de moyenne 7 ;

    MNP 8 : n'existe pas ;

    MNP 9 : Protocole de correction d'erreurs et de compression de données pour modem jusqu'à 38,4 Kbit/s ;

    MNP 10 : Protocole de correction d'erreurs au niveau paquet, comme MNP 4, mais avec des paquets de tailles variables.

    III.3.3. Transmission des données sur le réseau commuté

    La numérisation des commutateurs, en plus du transport de la voix, a permis le transport des données à 64 Kbits/s, ce qui constitue une limitation palliée ensuite par l'arrivée de l'ADSL (Asymmetrical Digital Subscriber Line). La technologie ADSL permet de transmettre des volumes de données très importants sur des lignes téléphoniques classiques. Comme l'indique son nom, les débits de données sont asymétriques, donc plus importants en réception qu'en envoi.

    ~ 44 ~

    L'informatique tient aujourd'hui une place considérable dans l'utilisation du réseau téléphonique commuté. Le modem (contraction de modulateur-démodulateur) est l'interface qui permet de véhiculer des informations analogiques en convertissant les signaux numériques en signaux analogiques (Modulation) et vice versa (Démodulation).

    L'ordinateur envoie des commandes au modem : initialisation, numérotation, raccrochage, le modem est alors en mode « commande ». Quand la liaison avec un autre modem est établie sur le Réseau Téléphonique Commuté (RTC), le modem est placé en mode « données » et à l'émission transmet en modulant les données numériques émises par l'ordinateur en une fréquence porteuse sur la ligne téléphonique. En réception, le modem démodule l'information de la fréquence porteuse pour obtenir le signal numérique exploitable par l'ordinateur.

    Signalons toutefois que l'inconvénient de la technologie RTC réside dans le fait qu'un utilisateur naviguant sur le réseau Internet aura sa ligne de téléphone occupée, tant qu'il reste connecté au réseau.

    III.4. LES TRANSMISIONS DANS UN RÉSEAU

    Afin de transmettre l'information sur un support de transmission, nous avons vu que l'on doit préalablement la coder de façon adéquate. Deux approches sont possibles pour le transport des éléments binaires provenant des applications :

    Soit l'information est véhiculée directement en bande de base ;

    Soit chaque type d'information se voit allouer une bande passante en fonction de ses besoins (approche dite « large bande »). Dans cette approche, les signaux numériques sont modulés sur une porteuse.

    III.4.1. L'approche bande de base

    Le transport en bande de base est la plus simple des deux techniques, car aucune modulation n'est nécessaire. La suite binaire représentant l'information est directement transmise sur le support par des changements discrets dans les signaux représentant l'information (sous forme de transmissions de tension ou d'impulsions lumineuses si l'on utilise des fibres optiques). Les signaux bande de base sont sujets à une atténuation dont

    ~ 45 ~

    l'importance dépend du support employé et doivent donc être régénérés périodiquement sur une longue distance. Cette régénération s'effectue à l'aide de récepteurs, qui reçoivent les signaux et les mémorisent une fraction de seconde avant de les retransmettre sur la ligne sortante.

    III.4.2. L'approche large bande

    Cette méthode utilise le multiplexage en fréquence. Différents canaux sont créés, résultant de la division de la bande passante du support en plusieurs sous-bandes de fréquence. Ce type de technique a l'avantage de permettre des transmissions simultanées indépendantes. Chaque appareil sur le câble est équipé d'un modem particulier ; cela permet de choisir le mode de transmission (numérique ou analogique) le mieux adapté et le plus efficace pour le type d'informations à transmettre.

    Par exemple, les données informatiques sont émises sur une bande numérique, la voix et l'image sur une bande analogique. Cependant, cela augmente le coût de connexion par rapport à un réseau bande de base.

    Bref, les systèmes bande de base sont plus simples à installer et généralement moins coûteux que les systèmes large bande. Cependant, ces derniers offrent des possibilités de communications multimodes et permettent de couvrir des distances plus grandes.

    III.5. TYPES DE TRANSMISSION DE DONNÉES

    Il existe trois types de transmission des données sur un réseau.

    1. La monodiffusion : les données sont transmises à un seul poste.

    2. La multidiffusion : les données sont transmises une seule fois, aux différents ordinateurs qui en font la demande.

    3. La diffusion : les données sont envoyées à l'ensemble du réseau sans distinction.

    Signalons aussi qu'il existe deux types de transmissions sans fil. Il y a :

    1. La transmission infrarouge : aucun obstacle ne doit être présent entre l'émetteur et le récepteur. Les signaux sont limités en distance, car très sensibles aux interférences.

    ~ 46 ~

    2. La transmission radio à bande étroite : l'émetteur et le récepteur peuvent être séparés par des obstacles (excepté des objets métalliques).

    Ces transmissions supposent trois principales catégories de câbles réseaux qui sont :

    1. Les câbles à paires torsadées : se composent de huit brins de cuivre isolés, torsadés par paires. Il en existe deux types : les câbles UTP (Unshielded Twisted Pair) et STP (Shielded Twisted Pair), les câbles STP sont blindés. Ils peuvent transporter les signaux sur environ 100m. Cette catégorie de câble est la plus répandue. Les connecteurs utilisés pour ces câbles sont nommés RJ45 (registered Jack 45).

    2. Le câble coaxial : il utilise uniquement un fil pour transporter les données. Il est protégé par un blindage de métal tressé. Il existe deux types de câbles coaxiaux : le câble ThinNet (10Base2, 185 m max) et le câble ThickNet (10Base5, 500 m max). ce type de câble est particulièrement adapté pour des transmissions longues distances. Ils utilisent des connecteurs de type BNC.

    3. La fibre optique : adaptée aux transmissions rapides et fiables, ce type de câble est très peu sensible aux interférences. Il est toutefois bien plus fragile que les autres types de câbles.

    III.6. Examen du processus de transfert de données

    Afin d'améliorer l'efficacité des transferts sur un réseau, il est important de transmettre de petits paquets. En effet, si l'on envoie des paquets de taille trop importante, le réseau peut se bloquer et tout incident lors du transfert du paquet obligera à le renvoyer dans son intégralité.

    Lors de l'envoi d'un paquet sur le réseau, les données passent par différents états. Chacun de ces états possède une terminologie particulière : segment, message, datagramme et trame.

    ~ 47 ~

    Une trame comprend trois composants :

    1. L'en-tête : qui contient un signal d'alerte (permettant d'indiquer que le paquet est en cours de transmission), l'adresse source et l'adresse de destination.

    2. Les données : Ce sont les données réelles envoyées par l'application. La taille varie selon les limites du réseau entre 0.5 Ko et 4 Ko avec une taille moyenne de 1.5 Ko.

    3. Le délimiteur de fin de trame : sur la plupart des protocoles, le délimiteur de fin de trame contient un CRC (Contrôle de Redondance Cyclique).

    III.7. Schématisation d'une transmission de la source à la destination

    ~ 48 ~

    CHAP.IV. PROGRAMMATION DE LA TRANSMISSION DES DONNÉES

    IV.0. Introduction

    Ce chapitre présente un programme qui décrit la transmission des données dans un réseau. Il s'agit de la programmation du code de Hamming qui est connu pour son efficacité dans la transmission des données sans erreur.

    Après une brève présentation du code de Hamming, nous allons exhiber une simulation d'une transmission de l'information afin de mettre en lumière la façon dont une information est codée et transmise dans un réseau. Ce réseau peut être téléphonique, informatique ou autre.

    IV.1. PRÉSENTATION DU CODE DE HAMMING

    Le code de Hamming est utilisé dans les transmissions des données, car il permet de détecter et de corriger une erreur survenue dans un bloc

    transmis. Son principe est simple. On fixe un entier k et on code chaque bloc de m = 2k-k - 1 bits de données par un bloc de n = 2k - 1 bits en ajoutant donc k bits, dits de correction, à certaines positions au bloc de m bits. Le tableau suivant indique les nombres de bits de correction, de données pour certaines valeurs de k.

    k = 3

    m = 4

    n = 7

    k = 4

    m = 11

    n = 15

    K = 5

    m = 26

    n = 31

    A. Position de k bits de correction

    Les k bits de correction sont placés dans le bloc envoyé aux positions d'indice une puissance de 2 en comptant à partir de la gauche. Ainsi, en notant k1 k2 k3 les bits de correction et m1 m2 m3 m4 les bits de données, le bloc envoyé est :

    A = k1 k2 m1 k3 m2 m3 m4.

    B. Calcul de k bits de correction

    Les k bits de correction sont calculés en utilisant une matrice de parité H, représentée ci-dessous pour k = 3.

    - 49 -

    H

    Remarque : La colonne i de la matrice représente en binaire la valeur de i. Les k bits de correction sont tels qu'en considérant le vecteur

    ? ?

    k1

    ? ?

    ? ?

    k2

    ? ?

    m1

    ? ?

    A= ?k3

    ? ?

    m2

    ? ?

    ? ?

    m3

    ? ?

    ? ?

    m4

    ? ?

    0

    , on ait H.A = ? ?

    ? ?

    0

    ? ?

    ? ?

    0

     

    On obtient ainsi 3 équations scalaires que doivent vérifier les k bits de

    correction :

    0mod2

    ?+ + + = k m m m ?1 1 2 4
    ? + + + = k m m m ? + + + =

    ?k m m m

    0 2 1 2 4 mod2

    0 3 1 2 4 mod2

    Remarque : les opérations d'addition sont faites à modulo 2. Le bloc A parfaitement déterminé est alors envoyé.

    C. Réception des données et vérification

    Le bloc A est alors envoyé. Le bloc C= c1 c2 c3 c4 c5 c6 c7, reçu, peut être différent du bloc A s'il y a eu des perturbations la ligne.

    Si on considère qu'il n'y a eu qu'une seule erreur de transmission, alors on peut écrire C = A + E où E, vecteur d'erreur, est un bloc contenant 6 bits à 0 et un bit à 1. Les positions des 0 et du 1 sont inconnues dans le bloc.

    On calcule le vecteur S tel que

    ~ 50 ~

    ? ? s1 S s

    ? ?

    = ? ?

    2 = H.C = H . (A + E) = H.A + H.E = H.E

    ? ?

    ? ?

    s3

    Finalement, S est une des colonnes de la matrice de parité dont l'indice nous donne la position de l'erreur dans le bloc C. L'erreur est corrigée en changeant le bit considéré d'état.

    s3 s2 s1 est le code binaire de positon de l'erreur dans le bloc C que nous obtenons à partir des équations suivantes :

    s1 =

    ??

    ?

    ? s =

    ? 3

    =

    s2

    mod2

    mod2

    mod2

    (((c c c c 1 3 5 7 + + + ) c c c c 2 3 6 7 + + + ) c c c c 4 5 6 7 + + + )

    Si s3 = s2 = s1 = 0, alors il n'y a pas eu d'erreur lors de la transmission du

    message.

    D. Correction d'erreurs par le code de Hamming

    Un code correcteur d'erreur est utilisé pour transmettre un message dans un canal bruité. Il permet de reconstituer le message émis même si des erreurs (en nombre limité), dues au bruit, ont altéré le message.

    L'alphabet source, comme l'alphabet du code, est {0,1}. On s'intéresse au codage par blocs : chaque mot de longueur m est codé par un mot de longueur n avec n supérieur ou égal à m. Le codage est donc une application de {0,1}m vers {0,1}n. Parmi les n bits du mot-code que nous allons décrire, m reproduisent le mot source, les n-m autres sont les bits de correction. Le taux de transmission est de n/m.

    On montre que si deux mots distincts du code diffèrent au moins en d

    d - 1

    erreurs.

    2

    bits, alors le code permet de corriger exactement

    Les codes de Hamming, pour lesquels n = 2k -1 et m = n - k, permettent de corriger une erreur. Pour k fixé et n grand, le taux de transmission est voisin de 1.

    ~ 51 ~

    E. Famille de code de Hamming

    Il existe une famille de code de Hamming, le plus célèbre et le plus simple après le code de répétition binaire de dimension trois et de longueur un est sans doute le code binaire de paramètres [7, 4, 3]. Pour chaque alphabet ayant pour nombre de lettres une puissance d'un nombre premier et pour chaque longueur l de code, il existe un code de Hamming utilisant cet alphabet et de longueur au moins égal à l.

    Il est possible d'utiliser les outils de l'algèbre linéaire et particulièrement la théorie des matrices pour construire un code de Hamming. Par exemple, un mot de p bits est représenté par un vecteur binaire de longueur p, c'est-à-dire un élément de l'espace vectoriel (Z/2Z)p, par exemple

    ? ?

    1

    ? ?

    pour 110, on a ? ?

    1

    ? ?

    ? ?

    0

    .

     

    La matrice de parité d'un code de Hamming est une matrice binaire à k lignes et n colonnes : les colonnes contiennent les représentations binaires des entiers entre 1 et n.

    F. Eléments de base de la formalisation

    Il existe un ensemble E constitué de suites à valeurs dans un alphabet et de longueur k, c'est-à-dire qu'à partir du rang k, toutes les valeurs de la suite sont nulles. Ces éléments sont l'espace des messages que l'on souhaite communiquer. Pour munir le message de la redondance souhaitée, il existe une application ça injective de E à valeurs dans F, l'espace des suites de longueur n et à valeurs dans un alphabet. La fonction ça est appelée encodage, ça(E) aussi noté C est appelé le code, un élément de ça(E) est un mot du code, k est la longueur du code et n la dimension du code.

    Par exemple, un mot du code utilisé par le Minitel comporte 17 octets. Les 16 premiers octets forment un code de Hamming à 7 bits de correction : k=7, m=120 (soit 15 octets), n=127, le 128ème bit, dit bit de parité est tel que le nombre de 1 dans ces 16 octets soit pair. Le 17ème octet est formé de 8 zéros ; il permet de détecter des incidents importants (par exemple, la foudre). On s'intéresse ici seulement aux 127 premiers bits.

    ~ 52 ~

    IV. 2. SIMULATION D'UN EXEMPLE DE TRANSMISSION DES DONNÉES

    IV.2.1. Exemple de transmission d'une phrase

    Dans ce paragraphe, nous allons simuler le transfert de la phrase suivante : « j'ai lu le livre. Magnifique! ». Le tableau ci-dessous va aider à mieux expliciter cette simulation.

    Dans le codage, chaque caractère de la phrase est codé suivant le code ASCII. Ainsi sous forme de tableau, représentons le code de chaque caractère à la source de transfert. Nous avons la situation suivante :

    ~ 53 ~

    Caractère

    Code en

    binaire

    Equivalent en

    décimal

    Raccourci clavier

    Alt+code décimal

    J

    01001010

    74

    Alt + 74

    J

    '

    00100111

    39

    Alt + 39

    '

    a

    01100001

    97

    Alt + 97

    a

    i

    01101001

    105

    Alt + 105

    i

     

    00100000

    32

    Alt + 32

     

    l

    01101100

    108

    Alt +108

    l

    u

    01110101

    117

    Alt + 117

    u

     

    00100000

    32

    Alt + 32

     

    l

    01101100

    108

    Alt +108

    l

    e

    01100101

    101

    Alt + 101

    e

     

    00100000

    32

    Alt + 32

     

    l

    01101100

    108

    Alt +108

    l

    i

    01101001

    105

    Alt + 105

    i

    v

    01110110

    118

    Alt + 118

    v

    r

    01110010

    114

    Alt + 114

    r

    e

    01100101

    101

    Alt + 101

    e

    .

    00101110

    46

    Alt + 46

    .

     

    00100000

    32

    Alt + 32

     

    M

    01001101

    77

    Alt + 77

    M

    a

    01100001

    97

    Alt + 97

    a

    g

    01100111

    103

    Alt + 103

    g

    n

    01101110

    110

    Alt + 110

    n

    i

    01101001

    105

    Alt + 105

    i

    f

    01100110

    102

    Alt + 102

    f

    i

    01101001

    105

    Alt + 105

    i

    q

    01110001

    113

    Alt + 113

    q

    u

    01110101

    117

    Alt + 117

    u

    e

    01100101

    101

    Alt + 101

    e

     

    00100000

    32

    Alt + 32

     

    !

    00100001

    33

    Alt + 33

    !

    ~ 54 ~

    Chaque caractère codé à la source de transfert est envoyé dans le réseau. Notons que dans le cas d'un réseau téléphonique, l'application immédiate de ce que nous expliquons ci-haut est le transfert d'un sms ou l'envoi d'un sms d'un correspond à un autre dans le réseau ou en dehors du réseau.

    IV.2.2. Simulation de la transmission en Matlab

    La simulation de ce programme exige la donnée de la valeur de certains paramètres : m et le message à transmettre en binaire. P étant une constante dont la valeur est 2, n est fonction de m et k est fonction de n et de m.

    Le programme écrit en Matlab est le suivant :

    function encodedmsg=hamc(m,msg)

    % m est un entier positif, msg= message en binaire de longueur ((2^m-1)-m)

    % code de hamming, encodage

    p=2; n=2^(m)-1; k=n-m;

    % polynôme générateur

    if ( (p == 2) & (m <= 24) )

    switch m

    case 1 pol = [1 1];

    1 1];

     
     
     

    1 0

    1];

     
     
     

    1 0

    0 1];

     
     

    0 1

    0 0

    1];

     
     

    1 0

    0 0

    0 1];

     

    0 0

    1 0

    0 0

    1];

     

    0 1

    1 1

    0 0

    0 1];

    0 0

    0 1

    0 0

    0 0

    1];

    0 0

    1 0

    0 0

    0 0

    0 1];

    0 1

    0 0

    0 0

    0 0

    0 0 1];

    1 0

    0 1

    0 1

    0 0

    0 0 0 1];

    1 0

    1 1

    0 0

    0 0

    0 0 0 0 1];

    1 0

    0 0

    0 1

    0 0

    0 1 0 0 0 1];

    1 0

    0 0

    0 0

    0 0

    0 0 0 0 0 0 1];

    1 0

    1 0

    0 0

    0 0

    0 0 0 1 0 0 0 1];

    case 2 pol = [1

    case 3 pol = [1

    case 4 pol = [1

    case 5 pol = [1

    case 6 pol = [1

    case 7 pol = [1

    case 8 pol = [1

    case 9 pol = [1

    case 10 pol = [1

    case 11 pol = [1

    case 12 pol = [1

    case 13 pol = [1

    case 14 pol = [1

    case 15 pol = [1

    case 16 pol = [1

    end

    end

    ~ 55 ~

    % implémentation du circuit de codage;

    b=zeros (1, m);

    g= pol ;

    c=b;

    for i=length(msg):-1:1

    u1=xor(msg(i),c(m-1)); c(1)=xor(b(1),g(2)*u1); b(1)=u1;

    for j=2:m-1

    c(j)=xor(b(j),g(j+1)*u1); b(j)=c(j-1);

    end

    c(m)=b(m); b(m)=c(m-1); end

    encodedmsg=[b msg];

    Simulation

    Choisir m=3. Soit à transférer la lettre a dans un réseau. Nous connaissons le code binaire de la lettre a, c'est 01100001.

    Etape à suivre :

    1. ouvrir MATLAB.

    2. ouvrir le fichier hamc(m, msg) où m est 3 et msg est le code de la lettre a.

    3. Exécuter le fichier hamc (m,msg)

    4. La lettre a est transmise sans erreur. >> hamc (2,01100001)

    ans = 1 1 1100001
    >> hamc (3,01100001)

    ans = 1 1 0 1100001
    >> hamc (4,01100001)

    ans = 1 1 0 0 1100001
    >> hamc (5,01100001)

    ans = 1 0 1 0 0 1100001
    >> hamc (6,01100001)

    ans = 1 1 0 0 0 0 1100001
    >> hamc (7,01100001)

    ans = 1 0 0 1 0 0 0 1100001

    ~ 56 ~

    V. CONCLUSION GENERALE

    V.1. SYNTHÈSE ET RÉSULTATS

    Au terme de notre investigation, il est convenable de présenter synthétiquement la substance de notre travail ainsi que les résultats auxquels nous sommes aboutis. Ce travail, reconnaissons-le, nous a fait entrer dans l'ère numérique dans laquelle les échanges des informations à travers la planète sont matériellement représentés sous forme de nombres.

    Certes, cette entrée dans l'ère numérique s'est voulue progressive. Ainsi, hormis l'introduction et la conclusion, les quatre chapitres développés dans ce travail ont concouru à l'événement « entrée dans l'ère numérique ».

    De prime abord, le premier chapitre a posé les bases des systèmes de codage. Il a pris en compte l'algèbre de Boole, le système binaire ainsi que le système de numération. L'addition binaire et la conversion du binaire en décimal ou hexadécimal et vice versa ont été expliquées dans le corps de ce chapitre premier.

    En second lieu, le deuxième chapitre s'est largement attelé au codage de l'information. Il a présenté le codage des nombres entiers ainsi que le code ASCII sous sa forme originale (avec 128 caractères) et sous sa forme étendue (avec 256 caractères). Un court paragraphe sur le code Unicode a permis d'ouvrir la possibilité de saisie des caractères non pris en charge par le code ASCII. Il s'agit par exemple du caractère I1. Ce caractère est affiché à l'écran en maintenant la touche ALT enfoncée et en tapant 8477 qui est le code décimal dudit caractère.

    Le troisième chapitre s'est penché sur la transmission des données dans un réseau. Toute information codée peut être transmise d'un émetteur vers un récepteur. Cette transmission connaît souvent un problème majeur : celui des erreurs qui se glissent dans le canal de communication. Concrètement, s'il y a erreur dans la transmission, le message transmis change malencontreusement des « 0 » en « 1 », ou inversement. Ces erreurs sont détectées et corrigées en rallongeant les mots du message de façon qu'après dégradation, on puisse reconnaître le même message. Aussi, soulignons-le, pour détecter et corriger les inévitables erreurs qui affectent les échanges d'information numérisée, les spécialistes du codage en appellent à des méthodes abstraites qui relèvent de

    ~ 57 ~

    l'algèbre ou de la géométrie. Ainsi par exemple, le code employé pour la gravure des disques audionumériques permet de corriger jusqu'à 4000 bits erronés consécutifs.

    Ainsi, le quatrième chapitre a simulé le code de transmissions de données sans erreurs : le code de Hamming. Un exemple concret explicite le mécanisme d'envoi du message `j'ai lu le livre. Magnifique !' dans un réseau dans le but de retracer le processus du codage et de la transmission de l'information d'une source A vers une destination B.

    En outre, retenons que le codage fait appel à des codec (codeur/Décodeur) s'appuyant sur des algorithmes afin de compresser une source pleine en une forme plus légère, mais toujours exploitable lors du décodage, par ces mêmes codecs. Dès lors, le processus de transmission des données d'une source à une destination se décrit par le codage de ces données en langage binaire, puis par leur transmission dans le réseau et enfin par le décodage des mêmes données afin de retrouver l'information telle qu'elle était avant le codage.

    V.2. PERSPECTIVES DE RECHERCHE

    La transmission des données est un domaine en expansion accélérée. Sa problématique ouvre des perspectives de recherche intéressantes pour la science moderne, notamment dans la compréhension des principaux concepts de la théorie de l'information, dans la distinction des différents types de codages utilisés dans la transmission de données , dans la mise en oeuvre technique des fonctions d'encodage et de décodage, dans la compréhension du principe de fonctionnement des différents sous-systèmes , utilisés en transmission de données et dans la distinction des différents modes de transmission de données.

    Le champ d'investigation reste donc ouvert. D'autres chercheurs s'intéresseront à la transmission de la voix ou de l'image. D'autres encore proposeront de mettre en oeuvre des codes correcteurs d'erreurs partant de la géométrie algébrique. Aussi le cryptage des données reste un domaine qui mérite une attention particulière.

    ~ 58 ~

    BIBLIOGRAPHIE

    I. OUVRAGES

    1. Clavier,J., Niquil, M., Behr, F., (1977), Théorie et technique de la transmission des données, Masson, Paris.

    2. Cohen, G., Dornstetter, J.-L., Godlewski, P., (1992), Codes correcteurs d'erreurs: une introduction au codage algébrique, Masson, Paris.

    3. Csillag, Pierre (1990), Introduction aux codes correcteurs, Ellipses, Paris.

    4. Dromarr, D.,Ouzzani, F., Seret, D., Réseaux informatiques. Cours et exercices. De la transmission de données à l'accès au réseau. Tome 1. , Eyrolles.

    5. Guy Pujolle, (1995), Les réseaux, Eyrolles.

    6. Held, Gilbert (1986), La compression des données : méthodes et applications, Masson, Paris.

    7. Jamali,(1997), Transmission numérique et communication entre ordinateurs, Editions de Daro, Montréal.

    8. MARTIN PELAT (1997), Télévision numérique - compression et transmission du signal, Ellipses, Paris.

    9. Maxime MAIMAn, Claude SERVIN, (1995), Autoformation en télécoms et réseaux, Masson, Paris.

    10. Milet, Pierre (1988), Intégration voix et données, Principes et concepts, Masson, Paris.

    11. Poli, A., Huguet, L., (1989), Codes correcteurs : théorie et applications, Masson, Paris.

    12. ROLIN,P.,MARTINEAU,G.,TOUTAIN,L.,LEROY,A.,(1996), Les réseaux,
    principes fondamentaux,
    Hermes.

    13. Rosie, A.M. (1971), Théorie de l'information et de la communication, Ellipses, Paris.

    14. Roubine, E. (1970), Théorie de l'information, Masson, Paris.

    15. Spataru, Alexandru (1973), Théorie de la transmission de l'information II : codes et décisions statistiques, Masson, Paris.

    16. Spataru, Alexandru (1987), Fondements de la théorie de la transmission de l'information, Presses Polytechniques, Lausanne.

    17. Stein, M., (1996), Les modems pour transmission de données, Masson, Paris.

    ~ 59 ~

    18. VELU, J., (1955), Méthodes mathématiques pour l'informatique, Dunod.

    II. TFC ET MÉMOIRES

    - Moïse Zoungrana, « transmissions des données et de la parole sur systèmes IRT (Integrated Rural Telephony)", Ecole nationale des télécommunications de l'ONATEL. Source : Mémoire Online.

    III. Articles

    1. ARNOUX, P., "Minitel, codage et corps finis», Pour la science, mars 1988.

    2. ARNOUX, P., «codage et mathématiques», La science au présent, édition Encyclopedia Universalis, 1992.

    3. Claude Shannon, «A mathematical theory of communication», Bell System Technical Journal, vol. 27, pp 379-423 et 623-656, juillet et octobre 1948.

    4. LACHAUX, G., VLADUT, S., «Les codes correcteurs d'erreurs», La Recherche, juillet-août 1955.

    IV. Liens Internet

    1. http://drogo.cselt.stet.it/mpeg/

    2. http://www.cybersociety.com/Network/

    3. http://www.mines.u-nancy.fr/~tisseran/I33 Reseaux/Exposes.html

    4. http://www.strategiestm.com/DT -23- Les codages-de-source.html

    5. http://smf.emath.fr//Publications/ExplosionDesMathematiques/

    ~ 60 ~

    TABLE DES MATIÈRES

    0. INTRODUCTION GÉNÉRALE 1

    0.1. Choix et intérêt du sujet 8

    0.2. Etat de la question 9

    0.3. Problématique 10

    0.4. Hypothèse 11

    0.5. Méthodes et techniques 11

    a. Méthodes 11

    b. Techniques 12

    0.6. Délimitation du sujet 12

    0.7. Difficultés rencontrées 12

    0.8. Plan du travail 13

    CHAP. I. : GÉNÉRALITÉS SUR LES SYSTÈMES DE CODAGE 14

    I.0. Introduction 14

    I.1. RAPPEL DE NOTIONS DE L'ALGÈBRE DE BOOLE 14

    I.1.1. Les opérateurs logiques 14

    I.1.2. Axiomes 14

    I.1.3. Théorèmes 15

    I.1.4. Tables de vérité 15

    I.2. LE BINAIRE 17

    I.2.1. Les systèmes de codage 17

    A. Les systèmes binaires 17

    B. Le système hexadécimal 20

    I.2.2. Les systèmes de numération 20

    A. Addition binaire 20

    B. Conversion d'une base quelconque en base décimale 21

    C. Conversion binaire en hexadécimal 23

    D. Conversion hexadécimal en binaire 23

    CHAP. II. LE CODAGE DE L'INFORMATION 24

    II.0. Introduction 24

    II.1. LE CODAGE DES NOMBRES ENTIERS 24

    II.1.1. Le codage des entiers en général 24

    II.1.2. Codage des nombres entiers : binaire signé 25

    TABLE DES MATIÈRES 60

    ~ 61 ~

    II.1.3. Un autre codage des nombres entiers : complément à deux 26

    II.2. LE CODAGE DES CARACTÈRES : LE CODE ASCII 26

    II.2.1. Le code ASCII original (128 caractères) 27

    II.2.2. Le code ASCII étendu (256 caractères) 32

    II.2.3. Autres codages 37

    CHAP. III. LA TRANSMISSION DES DONNÉES DANS UN RÉSEAU 38

    III.0. Introduction 38

    III.1. MODES DE TRANSMISSION DES DONNÉES 38

    III.2. LES SENS DE TRANSMISSION DES DONNÉES ENTRE DEUX POINTS 40

    III.3. LES TECHNIQUES DE TRANSMISSION 41

    III.3.1. La transmission en bande de base 41

    III.3.2. Les modems 42

    III.3.3. Transmission des données sur le réseau commuté 43

    III.4. LES TRANSMISIONS DANS UN RÉSEAU 44

    III.4.1. L'approche bande de base 44

    III.4.2. L'approche large bande 45

    III.5. TYPES DE TRANSMISSION DE DONNÉES 45

    III.6. Examen du processus de transfert de données 46

    III.7. Schéma d'une transmission de la source à la destination 40

    CHAP.IV. PROGRAMMATION DE LA TRANSMISSION DES DONNÉES 48

    IV.0. Introduction 48

    IV.1. PRÉSENTATION DU CODE DE HAMMING 48

    IV.2. SIMULATION D'UN EXEMPLE DE TRANSMISSION DES DONNÉES 52

    IV.2.1. Exemple de transmission d'une phrase 52

    IV.2.2. Simulation de la transmission en Matlab 54

    V. CONCLUSION GÉNÉRALE 56

    V.1. SYNTHÈSE ET RÉSULTATS 56

    V.2. PERSPECTIVES DE RECHERCHE 57

    BIBLIOGRAPHIE 58

    ~ 62 ~






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"Il ne faut pas de tout pour faire un monde. Il faut du bonheur et rien d'autre"   Paul Eluard