Suite des protocoles Internet
La suite des protocoles Internet est l'ensemble des protocoles utilisés pour le transfert des données sur Internet. Elle est aussi appelée suite TCP/IP, DoD Standard (DoD pour Department of Defense) ou bien DoD Model ou encore DoD TCP/IP ou US DoD Model. Elle est souvent appelée TCP/IP, d'après le nom de ses deux premiers protocoles : TCP (de l'anglais ) et IP (de l'anglais ). Ils ont été inventés par Vinton G. Cerf et Bob Kahn, travaillant alors pour la , avec des influences des travaux de Louis Pouzin. Le document de référence est .

Histoire 
TCP/IP fut créé lorsque Bob Kahn, travaillant alors pour la DARPA, dut créer un protocole pour un réseau de commutation de paquets par radio. Bien qu'ayant été un ingénieur majeur de l'ARPANET, qui utilisait alors le protocole NCP, il ne put se résoudre à l'utiliser car celui-ci devait fonctionner avec l'équipement réseau IMP et en plus n'effectuait pas de contrôle des erreurs. Il créa donc avec Vinton Cerf un protocole permettant de relier les réseaux entre eux. 

La première publication de TCP/IP remonte à septembre 1973 lors d'une conférence de l'INWG.

Le réseau Arpanet adopte le  la suite de protocoles TCP/IP qui sera la base d'Internet. Les années qui suivent sont marquées par l'élaboration du modèle OSI, dans laquelle le français Hubert Zimmermann joue un rôle important.
Ces discussions sont freinées par le sentiment des opérateurs télécoms de différents pays qui estiment que cette évolution peut nuire, à terme, à leurs monopoles respectifs. Le constructeur américain d'ordinateurs IBM est aussi accusé de se soucier d'abord de défendre sa position hégémonique sur le marché mondial dans l'informatique de gestion, qui sera affaiblie par la Justice américaine au début des années 1980 lorsqu'il doit céder du terrain sur la microinformatique.

Le modèle OSI, qui décompose les différents protocoles en sept couches, peut être utilisé pour décrire la suite de protocoles Internet, bien que les couches du modèle OSI ne correspondent pas toujours avec les habitudes d'Internet (Internet étant basé sur TCP/IP qui ne comporte que quatre couches).

Chaque couche résout un certain nombre de problèmes relatifs à la transmission de données, et fournit des services bien définis aux couches supérieures. Les couches hautes sont plus proches de l'utilisateur et gèrent des données plus abstraites, en utilisant les services des couches basses qui mettent en forme ces données afin qu'elles puissent être émises sur un médium physique.

Le modèle Internet a été créé afin de répondre à un problème pratique, alors que le modèle OSI correspond à une approche plus théorique, et a été développé plus tôt dans l'histoire des réseaux, sous l'influence et la surveillance des opérateurs télécoms, alors en position de force.

Couches TCP/IP 

Comme les suites de protocoles TCP/IP et OSI ne correspondent pas exactement, toute définition des couches TCP/IP peut être sujette à discussion.

Le terme de « pile » est souvent employé, traduit littéralement de stack TCP/IP, mais ce n'est pas dans le sens de la « pile » informatique qui désigne l'outil de base des langages de programmation évolués. Le mot français correspondant à stack est précisément « couche » dans ce contexte.

En outre, le modèle OSI n'offre pas une richesse suffisante au niveau des couches basses pour représenter la réalité ; il est nécessaire d'ajouter une couche supplémentaire d'interconnexion de réseaux () entre les couches Transport et Réseau. Les protocoles spécifiques à un type de réseau particulier, mais qui fonctionnent au-dessus de la couche de liaison de données, devraient appartenir à la couche réseau. ARP, et STP (qui fournit des chemins redondants dans un réseau tout en évitant les boucles) sont des exemples de tels protocoles. Toutefois, ce sont des protocoles locaux qui opèrent au-dessous de la fonction d'interconnexion de réseaux ; placer ces deux groupes de protocoles (sans parler de ceux qui fonctionnent au-dessus du protocole d'interconnexion de réseaux, comme ICMP) dans la même couche peut prêter à confusion.

Le schéma qui suit essaie de montrer où se situent divers protocoles dans le modèle OSI de l'ISO :

Habituellement, les trois couches supérieures du modèle OSI (Application, Présentation et Session) sont  considérées comme une seule couche Application dans TCP/IP. Comme TCP/IP n'a pas de couche session unifiée sur laquelle les couches plus élevées peuvent s'appuyer, ces fonctions sont généralement remplies par chaque application (ou ignorées). Une version simplifiée des couches TCP/IP est présentée ci-après :

Une autre approche du modèle TCP/IP consiste à mettre en avant un modèle en 2 couches. En effet, IP fait abstraction du réseau physique. Et ce n'est pas une couche application qui s'appuie sur une couche transport (représentée par TCP ou UDP) mais des applications. On aurait donc :

Cette représentation est plus fidèle aux concepts d'IP. Rappelons que ce « modèle » est antérieur au modèle OSI et tenter de les faire correspondre peut induire en erreur. En effet, TCP introduit une notion de session, or TCP est au niveau TRANSPORT sur un modèle calqué sur l'OSI. Cette antériorité au modèle OSI explique aussi certaines incohérences comme l'implémentation d'un protocole de routage au-dessus d'UDP (RIP est implémenté sur UDP, alors qu'OSPF, arrivé après le modèle OSI et cette volonté de vouloir découper les thématiques par couches, s'appuie directement sur IP). DHCP est également implémenté sur UDP, niveau « applications » alors que c'est le rôle de la couche réseau de fournir une configuration de niveau 3.

Couche physique 
La couche physique décrit les caractéristiques physiques de la communication, comme les conventions à propos de la nature du média utilisé pour les communications (les câbles, les liens par fibre optique ou par radio), et tous les détails associés comme les connecteurs, les types de codage ou de modulation, le niveau des signaux, les longueurs d'onde, la synchronisation et les distances maximales.

Couche de liaison de données 
La couche de liaison de données spécifie comment les paquets sont transportés sur la couche physique, et en particulier le tramage (i.e. les séquences de bits particulières qui marquent le début et la fin des paquets). Les en-têtes des trames Ethernet, par exemple, contiennent des champs qui indiquent à quelle(s) machine(s) du réseau un paquet est destiné. Exemples de protocoles de la couche de liaison de données : Ethernet, , SLIP,  et ATM.

PPP (Point to Point Protocol) est un peu plus complexe, car il a été initialement spécifié pour fonctionner au-dessus d'un autre protocole de liaison de données

Cette couche est subdivisée en LLC et MAC par l'IEEE.

Couche réseau 
Dans sa définition d'origine, la couche de réseau résout le problème de l'acheminement de paquets à travers un seul réseau. Exemples de protocoles de ce type : X.25, et le  d'ARPANET.

Lorsque deux terminaux communiquent entre eux via ce protocole, aucun chemin pour le transfert des données n'est établi à l'avance : il est dit que le protocole est « non orienté connexion ». Par opposition, pour un système comme le réseau téléphonique commuté, le chemin par lequel va passer la voix (ou les données) est établi au commencement de la connexion : le protocole est « orienté connexion ».

Avec l'avènement de la notion d'interconnexion de réseaux, des fonctions additionnelles ont été ajoutées à cette couche, et plus spécialement l'acheminement de données depuis un réseau source vers un réseau destinataire.
Ceci implique généralement le routage des paquets à travers un réseau de réseaux, connu sous le nom d'Internet.

Dans la suite de protocoles Internet, IP assure l'acheminement des paquets depuis une source vers une destination, et supporte aussi d'autres protocoles, comme ICMP (utilisé pour transférer des messages de diagnostic liés aux transmissions IP) et IGMP (utilisé pour gérer les données ).

ICMP et IGMP sont situés au-dessus d'IP, mais assurent des fonctions de la couche réseau, ce qui illustre l'incompatibilité entre les modèles Internet et OSI.

La couche réseau IP peut transférer des données pour de nombreux protocoles de plus haut niveau. Ces protocoles sont identifiés par un numéro de protocole IP () unique. ICMP et IGMP sont respectivement les protocoles 1 et 2.

Couche transport 
Les protocoles de la couche de transport peuvent résoudre des problèmes comme la fiabilité des échanges (« est-ce que les données sont arrivées à destination ? ») et assurer que les données arrivent dans l'ordre correct. Dans la suite de protocoles TCP/IP, les protocoles de transport déterminent aussi à quelle application chaque paquet de données doit être délivré.

TCP (protocole IP numéro 6) est un protocole de transport « fiable », orienté connexion, qui fournit un flux d'octets fiable assurant l'arrivée des données sans altérations et dans l'ordre, avec retransmission en cas de perte, et élimination des données dupliquées. Il gère aussi les données « urgentes » qui doivent être traitées dans le désordre (même si techniquement, elles ne sont pas émises hors bande).

TCP essaie de délivrer toutes les données correctement et en séquence , même si ça peut être un désavantage pour des applications de transfert ou de routage de flux en temps-réel, avec des taux de perte élevées au niveau de la couche réseau.

UDP (protocole IP ) est un protocole simple, sans connexion, « non fiable » 
Si une application a besoin de ces garanties, elle doit les assurer elle-même, ou bien utiliser TCP. 
UDP est généralement utilisé par des applications de diffusion multimédia (audio et vidéo, etc.) pour lesquelles le temps requis par TCP pour gérer les retransmissions et l'ordonnancement des paquets n'est pas disponible, ou pour des applications basées sur des mécanismes simples de question/réponse comme les requêtes DNS, pour lesquelles le surcoût lié à l'établissement d'une connexion fiable serait disproportionné par rapport au besoin. 

Aussi bien TCP qu'UDP sont utilisés par de nombreuses applications. Les applications situées à une quelconque adresse réseau se distinguent par leur numéro de port TCP ou UDP. Par convention, des ports bien connus sont associés avec certaines applications spécifiques.

RTP () est un protocole fonctionnant avec UDP ou TCP, spécialisé dans le transport de données possédant des contraintes temps réel. Typiquement, il sert à transporter des vidéos pour que l'on puisse synchroniser la lecture des images et du son directement, sans les stocker préalablement.

SCTP () a été défini en 2000 dans la , et un texte d'introduction existe dans la . Il fournit des services similaires à TCP, assurant la fiabilité, la remise en ordre des séquences, et le contrôle de congestion. Alors que TCP est  (orienté octets), SCTP gère des « frames » (courtes séquences). Une avancée majeure de SCTP est la possibilité de communications multi-cibles, où une des extrémités de la connexion est constituée de plusieurs adresses IP.

Couche application 

C'est dans la couche application que se situent la plupart des programmes réseau.

Ces programmes et les protocoles qu'ils utilisent incluent HTTP (), FTP (transfert de fichiers), SMTP (messagerie), SSH (connexion à distance sécurisée), DNS (recherche de correspondance entre noms et adresses IP) et beaucoup d'autres.

Les applications fonctionnent généralement au-dessus de TCP ou d'UDP, et sont souvent associées à un port bien connu. Exemples :
 HTTP port TCP 80 ;
 SSH port TCP 22 ;
 DNS port UDP 53 (TCP 53 pour les transferts de zones et les requêtes supérieures à ) ;
 RIP port UDP 520 ;
 FTP port TCP 21 ;
Ces ports ont été assignés par l' (IANA).

Sous UNIX, on trouve un fichier texte servant à faire les correspondances port↔protocole : /etc/services.
Sous Windows, il se situe dans %SystemRoot%\System32\drivers\etc. Il se nomme services, on peut le lire avec le Bloc-notes.

Dans le modèle TCP/IP, les protocoles de routage dynamiques sont inclus dans cette couche, y compris OSPF, même si OSPF est encapsulé directement sur IP (protocole IP numéro 89), sans utiliser de protocole de transport. Dans le modèle OSI, le protocole de routage IS-IS fait partie de la couche réseau. Certains auteurs, bien qu'utilisant un modèle de référence calqué sur celui de TCP/IP, suivent l'exemple du modèle OSI et décrivent les protocoles de routage dans le chapitre consacré à la couche réseau.

Auth, BOOTP, BOOTPS, DHCP, Echo, Finger, FTP, Gopher, HTTPS, IRC, IMAP, IMAPS, Kerberos, QOTD, Netbios, NNTP, NFS, POP, POPS, RTSP, NTP, SFTP, SMTP, SNMP, SSH, Telnet, TFTP, WAIS, Webster, Whois, XDMCP, Gemini.

Notes et références

Notes

Références

Voir aussi

Articles connexes 
 File Transfer Protocol

Liens externes 
  RFC 1122
 TCP/IP pour les experts
 Comparaison entre le modèle OSI et le modèle TCP/IP

TCP/IP