Les protocoles sont des ensembles prédéterminés de règles entre les participants à la communication afin que celle-ci soit réussie et efficace. Ces règles sont souvent organisées en couches.
Par exemple, examinons un réseau local câblé que j'utilise en ce moment pour poster cette réponse.
Il y a 4 paires de câbles à l'intérieur d'un câble LAN. Un protocole définit à quoi sert chaque fil, quelles tensions utilisent les signaux, quelles alternances de tensions dans les fils signifient quoi, etc. Les deux parties doivent s'y conformer. C'est la couche physique qui définit comment l'électricité passe dans les câbles.
Au-dessus de cela, il y a des règles qui définissent comment une transmission commence, quelles données sont contenues à l'intérieur et ce qu'elles signifient et comment la transmission se termine. C'est la couche de liaison de données.
Il y a une autre couche avec un autre protocole par-dessus. Comment les différents appareils s'identifient-ils et se distinguent-ils les uns des autres ? Ils doivent avoir des noms uniques afin de pouvoir établir une communication point à point. C'est la couche réseau.
Ce ne sont que 3 couches sur une liste de 6 à 7 couches qui établissent les règles de communication entre les applications. C'est ainsi qu'un logiciel communique avec un autre logiciel sans qu'il tienne compte de ce qui se passe dans les couches inférieures.
Maintenant, j'écris ce morceau de texte à l'intérieur de mon application de navigateur et lorsque je clique sur "Envoyer", ce texte doit être stocké dans une application de serveur de base de données à distance. Ces applications existent toutes deux dans les couches supérieures et pourtant elles parviennent à communiquer avec succès en se basant sur un ensemble de règles strictes qui permettent aux couches inférieures de communiquer entre elles de chaque côté. Les protocoles sont les règles que nous, les gens, définissons dans chaque couche pour que ces systèmes puissent réaliser cette communication.