Le modèle OSI
OSI signifie Open Systems Interconnection, ce qui se traduit par Interconnexion de systèmes ouverts. Ce modèle est une norme internationale établie par l’ISO (International Standard Organization) afin de mettre en place un standard de communication entre les ordinateurs d’un réseau. En effet aux origines des réseaux, chaque constructeur avait un système propre (on parle de système propriétaire) et de nombreux réseaux incompatibles existaient. Le rôle du modèle OSI est de réglementer la communication entre ordinateurs au sein d’un réseau afin de permettre l’interconnexion d’un système ouvert, c’est à dire de n’importe quels équipements (logiciel ou matériel) hétérogènes issu de constructeurs différents (pour peu qu’ils respectent scrupuleusement le modèle).

Le modèle OSI est basé sur un découpage en 7 couches, chacune de ces couches correspondant à une fonctionnalité particulière. Les couches 1 et 2 sont dites « basses » , la 3 et la 4 sont dites « moyennes » et la 5, 6 et 7 sont dites « hautes ». Les couches basses et moyennes sont utilisées pour le transport de l’information tandis que les couches hautes sont utilisées pour le traitement de l’information. Chaque couche est composée d’éléments matériels et logiciels et offre un service à la couche située immédiatement au-dessus d’elle en lui épargnant les détails d’implantation nécessaires. Chaque couche d’une machine gère la communication avec la couche portant le même nom d’une autre machine. On parle alors de connexion virtuelle entre les machines. En fait, aucune donnée n’est transférée directement d’une couche n vers une autre couche n, mais elle l’est par étapes successives.

Un service et un protocole sont deux choses différentes à ne pas confondre.
Un service est un ensemble d’opérations (primitives) qu’une couche fournit à la couche supérieure. Un service réfère à une interface entre deux couche, la couche supérieure (N+1) qui est l’utilisateur du service et la couche juste en dessous (N). Il définit les opérations que la couche est prête à effectuer pour le compte de ses utilisateurs, mais ne dit rien sur la façon dont ces opérations sont réalisées.
Un protocole est un ensemble de règles qui définissent
    le format et la signification des trames, paquets ou messages échangés entre entités paires
    la transmission de données relatives à une couche