Principes généraux de TCP/IP et d'Internet

Nous présentons l'ensemble des protocoles de l'environnement TCP/IP employée sur le réseau public internet. Internet fédère à l'heure actuelle environ 200000 réseaux locaux. Au départ, le succès de TCP/IP fût lié à sa diffusion dans l'environnement système Unix. Cet environnement très employé dans les milieux de recherche et de développement a été le premier à passer du contexte de l'informatique centralisée à l'informatique répartie, notamment pour l'utilisation de stations de travail reliées entre elles par Ethernet avec partage de fichiers NFS. En dehors du partage de fichier, ce protocole est utilisé intensivement pour des besoins de messagerie que ce soit l'intérieur d'un même site ou entre sites. Initialement, l'Internet fut développé pour constituer une interconnexion à grande échelle tolérante à la suppression de liens et de routeurs. La pile de protocoles développée sur des systèmes Unix au départ, se retrouve intégrée sur la plupart des systèmes d'exploitation. L'originalité de TCP/IP est d'être non propriétaire, indépendant du support physique, des machines, des systèmes d'exploitation et des équipements de communication. Ce protocole devenu un standard de fait est mis en œuvre par la plupart des systèmes. TCP/IP correspond à un outil de communications multi-plateformes qui intègre :
  • différents supports de communications,
  • différents équipements de communications provenant de différents constructeurs,
  • différentes machines,
  • systèmes d'exploitation différents,
  • des protocoles applicatifs standards,
  • une interface utilisateur universelle (web) qui relie des systèmes d'informations.
Son succès vient des différents niveaux d'indépendance et de la capacité d'intégration qu'il garantit.

La présentation qui suit donne les caractéristiques essentielles de l'ensemble des protocoles qui constituent l'univers TCP/IP. Ces protocoles sont utilisés dans un réseau à couverture mondiale Internet. Les concepts de base proviennent d’un article sur la théorie de la commutation de paquet écrit par Léonard Kleinrock en 1962. Le réseau Arpanet a été créé dans les années 60 sur une initiative du ministère de la défense américain. Ce réseau basé sur des liaisons louées a été amélioré vers 1968 par l'introduction des commutateurs de paquets dits IMP (Intermediate Message Processor) fabriqués par BBN. Ce réseau était basé sur environ 200 IMP répartis sur l'ensemble du territoire américain et reliés par des liaisons à 56Kbps. La première version de TCP-IP date de 1974. Au départ, il s’agissait du protocole NCP qui intégrait IP et TCP et qui fut scindé en 2 parties ultérieurement. L’usage de TcpIp généralisé dans Arpanet trouva un terreau favorable dans le monde Unix qui manquait d'un support de communications entre systèmes. En 1980, Arpanet fut scindé en 2 réseaux, un réseau spécifiquement militaire Milnet et l'autre destiné à la recherche NSFNet. Pour faire face à la croissance de l'Internet, le DNS et le routage à deux niveaux furent introduits en 1983. A partir de 1985 des accords entre NSFNet et d’autres organismes nationaux permirent l’extension internationale du réseau. Les financements publics de NSFNet cessèrent en 1990 et la partie américaine de l'Internet fut prise en charge par une société sans but lucratif ANS qui regroupait plusieurs opérateurs. La structure centrale du réseau ANS était basée sur des liens de 45Mbps. Un réseau de recherche expérimental muni de liens de l'ordre du gigabit est déployé en parallèle. Face au développement de la concurrence entre opérateurs, différentes offres réseaux sont en concurrence mis en œuvre par des opérateurs tels que: Equant, MCI, WorldCom, Sprint, etc.. Ces opérateurs offre des points d'accès proches des clients dans les principales villes du monde. Des points d’échanges ou de co-localisation échangent du trafic entre les opérateurs qui y sont reliés, certains sont nationaux: les MAE (Metropolitan Area Exchange) ou CIX (Commercial Internet Exchange), d'autres internationaux: les GIX (Global Internet Exchange).

1.1 Usages

Les données échangées sont des messages, des fichiers. La mise en place de serveurs de fichiers se développe. Certains de ces serveurs offrent des informations de type multimédia. Les machines connectées jouent le rôle de client, de serveur ou bien elles jouent un rôle mixte. L'internet offre des accès à des serveurs d'information à l’aide desquels les entreprises connectées exercent une veille technologique. La partie publique de l'internet est davantage une source d'information et un réseau d’accès au monde extérieur plutôt qu'un réseau de transmission de données privées. En effet, l'internet n'offre pas de garantie en terme de performance et de sécurité. Ce réseau est également intéressant pour les entreprises de services pour y présenter et y vendre leurs services. Un réseau privé de transmission de données se base sur une infrastructure de type internet privée ou publique.
L'internet concerne différents secteurs d'activités:
  • les opérateurs d'accès pour particuliers et entreprise,
  • les opérateurs de transit,
  • les prestataires de services : hébergement de services, commerce électronique,
  • les développeurs et créateurs de services,
  • les constructeurs d'équipements,
  • la standardisation.

1.2 Organisation de l'internet

L'internet est constitué par un ensemble de réseaux et d'hôtes interconnectés par l'intermédiaire de routeurs. Pour que deux hôtes situés sur des réseaux différents communiquent, la source envoie les datagrammes vers son routeur, ils seront ensuite routés sur des réseaux successifs avant d'arriver sur le réseau du destinataire. Le mode de circulation par défaut d'un datagramme est dit "Best Effort Delivery", c'est à dire que le routeur assure le transit selon son état de charge. Le travail effectué par un routeur est minimal, les traitements importants se font aux extrémités, surtout avec la couche de transport TCP.

Un réseau est connecté à l'internet par l'intermédiaire d'un fournisseur d'accès. En 2000, 100000 réseaux sont reliés à l'internet, ces réseaux représentent des millions de machines et quelques centaine de millions d'utilisateurs potentiels. Selon la machine et les réseaux traversés les débits varient de quelques kilo octets à des débits beaucoup plus importants.

Renater est un fournisseur d'accès Internet spécifique aux établissements français d'enseignement et de recherche. Son organisation nationale est centralisée avec un site central par région auquel sont reliés les établissements et campus régionaux. Ce site régional est à son tour relié au site national situé à Paris. Ce site national assure l'interconnexion des régions et offre également différentes liaisons internationales. Cette organisation est basée sur l'utilisation de liaisons louées ou de circuits virtuels ATM. Une organisation en boucle favorise des communications entre régions et internationales sans passer systématiquement par un point central, elle introduit également de routes alternatives.

1.2.1 Circulation d'un datagramme

Deux hôtes internet qui communiquent sont reliés au le même réseau IP ou bien reliés à des réseaux IP différents. Sur le même réseau IP, ils communiquent directement, dans ce cas on parle de remise directe. Entre réseaux IP différents, ils communiquent par l'intermédiaire de routeurs, il s'agit de la remise dite indirecte. Un datagramme qui circule dans l'internet est transmis de routeur en routeur avant d'arriver à l'hôte destinataire. Il change de support physique à chaque transit sur un routeur, son en-tête liaison de données change à cette occasion.
Un datagramme en circulation passe par les étapes suivantes :
  • envoi du processus émetteur vers la couche de communication de l'hôte;
  • émission par l'hôte émetteur sur son réseau local vers le routeur de sortie approprié;
  • réception par le routeur de sortie; envoi au routeur approprié par une des sorties (Ethernet, LS, X25, RNIS, ATM, etc.);
  • envoi de routeur intermédiaire en routeur intermédiaire jusqu'au routeur final;
  • envoi depuis le routeur final sur le réseau de l'hôte destinataire;
  • envoi de la couche communication vers le processus destinataire par l'intermédiaire du numéro de port.
Lors d'un échange entre deux hôtes de l'internet, la communication est asservie au maillon le plus faible de la chaîne traversée en terme de: débit, délai, taille de MTU, fiabilité.

L'interconnexion de réseaux est basée sur des routeurs IP reliés par des liens de communications. L'accès se fait par des concentrateurs installés dans des points de présence, les supports d'accès sont le réseau téléphonique, RNIS, ADSL. Les communications ne se font pas en mode circuit mais en mode paquet.

Un fournisseur national d'accès internet offre des points d'accès régionaux modem, RNIS ou ADSL, les données circulent sur un réseau de collecte et le cas échéant transitent sur des liens reliés à d'autres opérateurs internet.

1.2.2 Communications par réseaux

Une pile de protocole est utilisée pour échanger des données. Les problèmes à gérer par les protocoles de communications sont les suivants :
  • pannes matérielles d'un routeur
  • coupure de ligne congestion du réseau (d'un routeur)
  • retard ou perte d'un paquet
  • altération d'en-tête ou de données
  • duplication de données
  • remise désordonnée de donnée
Les protocoles de communications résolvent ces problèmes de façon plus ou moins complète aux différents niveaux des couches de communications. Dans certains cas, la gestion d'un problème donné est redondante entre différentes couches mises en œuvre, dans d'autre cas la résolution du problème est à la charge de l'application.

La philosophie générale d'IP décharge au maximum les routeurs. La communication de proche en proche se fait donc sans contrôle sur les données, le contrôle d'erreur, le contrôle de flux ainsi que la reconstruction des datagrammes se font aux extrémités. Le principal type de service offert à l’heure actuelle est dit "best effort delivery". La mise en œuvre généralisé de la qualité de service est plus longue que prévu.

1.2.3 Organisation administrative

La distribution d'adresses, de numéros de protocoles et de ports, et la création de nouveaux domaines sont assurés par le IANA qui gère l'attribution globale, l'attribution régionale des adresses est déléguée aux organisations régionales: RIPE NCC pour l'Europe, APNIC pour l'Asie, ARIN pour les Etats-Unis. L'ICANN, quant à elle, gère l'attribution des noms de domaine.

Les standards associés à l'Internet sont validés par l'IAB (Internet Architecture Board), conseil d'administration de l'Internet Society composé de douze membres. Pour l'élaboration de standards particuliers, l'IAB crée des groupes de travail au sein l'IETF (Internet Engineering Task Force), chaque groupe a en charge l'élaboration de drafts et de RFC (Request for Comments) concernant un domaine particulier de l'internet. Un groupe de travail est affecté à l'un des huit domaines de l'IETF. Les huit domaines ou "area de l'IETF sont les suivants: Applications Area, General Area, Internet Area, Operations and Management Area, Routing Area, Security Area, Sub-IP Area, Transport Area, User Services Area.. Les états successifs de RFCs élaborés au sein de l’IETF sont: Draft standard, Proposed standard, Internet standard (validé), Dod standard, d'autres RFC sont informationnels ou expérimentaux. Outre la description d'un protocole particulier, un RFC décrit souvent son implication en terme de sécurité et de mobilité. Les différents aspects de TCP/IP et de l'Internet sont détaillés dans les RFC (Request for Comments) disponibles sur différents hôtes connectés à Internet. Une liste complète des RFC est disponible sur le site de l'IETF. Les premiers RFC datent de 1969, en 2002 il y a 3400 RFC. Les principaux standards se trouvent cependant entre le RFC700 et le RFC1000.

1.3 Vue d'ensemble des protocoles TCP/IP

L’organisation en couche de la pile IP est simplifiée par rapport à celle de l’OSI avec le découpage suivant : application, service, transport, interRéseaux, liaison de données, physique.

1.3.1 Vocabulaire

Les termes suivants sont fréquemment employés dans cette présentation:
  • Datagramme: unité d'information au niveau transport (UDP) ou réseau,
  • Fragment: unité de découpage de la couche IP,
  • Hôte: ordinateur relié à un réseau (station de travail ou micro).
  • Interconnexion: ensemble de réseaux interconnectés de proche en proche et reliés par les supports les plus adéquats.
  • Messages: il s'agit de l'unité d'informations émise par l'application.
  • MTU : «Maximum Transfer Unit », taille maximale du PDU (Protocol Data Unit) sur un réseau traversé.
  • Réseau : support de communication, le terme réseau est employé au sens large, il s'agit donc aussi bien de réseaux points à point (LS, X25, relais de trames, etc. ...) que de réseaux à diffusion (du type Ethernet, TokenRing ou FDDI, etc.)
  • Routeur: aiguille les datagrammes IP (niveau 3), également appelé passerelle, IMP (Intermediate Message Processor) ou nœud.
  • RTT : round trip time, temps d’aller-retour d’un datagramme
  • Segment: unité de découpage de la couche transport adaptée à la taille de tampon du destinataire.
  • Système Autonome : Groupe de routeurs et réseaux connexes, échangeant des informations de routage par un protocole de routage interne.
  • Tunnel: chemin logique entre deux routeurs établit en mettant un destinataire externe, utilisé pour le multicast ou les réseaux privés virtuels.

1.3.2 Supports LAN ou WAN

IP fonctionne sur tout type de support LAN ou WAN. IP utilise le protocole de niveau 2 associé au support emprunté. De façon générale, ce protocole encapsule les données entre un en-tête et une fin avec un contrôle d’erreur. La détection d'une erreur de niveau liaison de données implique la suppression du datagramme en erreur, par contre les erreurs dans les équipements seront détectées par la couche transport.
1.3.2.1 Réseau local (LAN)
Ces réseaux munis d'une couche liaison de données sont dits BMA (Broadcast Multiple Access). Il s'agit essentiellement des réseaux locaux à diffusion: Ethernet, TokenRing, FDDI, etc.. Ethernet est le support le plus utilisé dans le monde des réseaux locaux d'entreprise. Le standard ethernet est défini par l'IEEE. Il fonctionne à différentes vitesses: 10 mégabits par seconde, 100 mégabits par seconde, 1 mégabits par seconde sur les câblages d'entreprise. La sous-couche MAC (Medium Access Control) contrôle l'accès au support. La version sans fil d'ethernet autorise des débits de 1 mégabits par seconde, 11 mégabits par seconde, 50 mégabits par seconde. Les adresses MAC IEEE sont codées sur 6 octets. Dans le contexte IPv4, les adresses MAC n'ont qu'une portée locale. Le filtrage des trames est fait par des commutateurs ethernet. Avec ethernet, IP utilise une couche liaison de données sans connexion (LLC Type 1).

Le MTU d'Ethernet est de 1500 octets de données. La taille mimimimale de trame est de 64 octets. La structure de la trame ethernet2 est la suivante:
  • adresse destination (6 octets),
  • adresse source (6 octets),
  • 2 octets: longueur (802.3) ou protocole de niveau supérieur (>1501),
  • données (48 octets à 1500 octets maximum),
  • contrôle (2 octets).
Pour les trames ethernet 802.3, le troisième champ contient la longueur de la trame, ce type est identifié par une valeur inférieure à 1501. Pour ethernet2, ce champ indique le protocole de niveau supérieur (IP ou ARP), une valeur supérieure à 1500 l'identifie, les trames ethernet2 sont délimitées par les fanions de début et de fin de trame. 802.3 est utilisé par les protocoles spécifiques à ethernet (STP, GMRP, GVRP).
1.3.2.2 Accès distant et PPP
L'accès internet distant se fait par des liaisons point à point: RTC, RNIS, GSM en mode circuit, ADSL, liaisons louées, liaisons par satellites. PPP (Point to Point Protocol) est le protocole de niveau 2 (liaison de données) employé. Il sert aussi bien à relier une station distante à un concentrateur d'accès par modem qu'à relier deux routeurs. PPP offre une connexion point à point entre deux entités IP par l'intermédiaire de liaisons full-duplex point à point. PPP comporte la méthode d'encapsulation des datagrammes, un protocole de négociation de la liaison (LCP), un protocole de configuration réseau (NCP). LCP négocie la vitesse, la mise en œuvre de méthodes de compression, NCP négocie les paramètres réseau (@ip). Pour établir une communication PPP procède par étapes. Après l'établissement de la connexion physique, un ensemble de paquets de tests de la ligne est transmis. L'identification de l'appelant par un mot de passe est faite par les protocoles PAP ou CHAP. Le point d'accès interroge un serveur distant à l'aide de RADIUS ou TACACS. Les paramètres des différents protocoles mis en œuvre sont ensuite négociés.
Structure du datagramme PPP
  • Fanion de début(1 octet)
  • Adresse (1 octet)
  • Caractère de contrôle (1 octet)
  • Protocole (2 octets)
  • Données (0 à n octets)
  • FCS (2 octets)
  • Fanion de fin (1 octet)
Comme PPP est souvent employé sur des liaisons à bas débit, un RFC spécifique définit la compression des en-têtes PPP, IP, TCP pour réduire leur taille à quelques octets sur le lien point à point. Cette compression est possible grâce à la création de circuit virtuel sur la liaison point à point à bas débit. La mémorisation de données associées à ce circuit virtuel diminue la taille de l'en-tête. Cette compression pourrait également concerner l'en-tête RTP.

Une variante de PPP est également employée pour IP sur support SDH.

PPTP est une extension de PPP pour construire des réseaux privés virtuels sur l'infrastructure internet publique.
1.3.2.3 Support Wan (X25 - Frame Relay - ATM)
IP utilise également les réseaux par paquets du type X25, Frame Relay, ATM, GPRS qui sont dits NBMA (Non Broadcast MultiAccess). La connexion logique qu'ils offrent est vue par IP comme un lien physique où le niveau 3 du mode paquet assure la connexion entre l’entrée et la sortie du réseau paquet. Pour les réseaux en mode paquet, l'accès aux liaisons point à point est géré à l'aide de files d'attentes. Au niveau de la norme d'échanges, différents protocoles existent: HDLC, PPP (Point to Point Protocol), ETTD X25, relais de trame (couche liaison de données allégée). Les protocoles de niveau 1, 2, 3 du réseau paquet sont employés. Par exemple pour X25, à l’aide du bit M (more data) l'en-tête IP n’est transmis que dans le premier paquet de fragmentation du datagramme. Dans ce cas, il faut bien sur que le ré-assemblage soit assuré par le routeur de sortie du réseau X25. L'établissement d'un circuit virtuel (CV) garantit la remise des cellules dans l'ordre d'émission, la duplication de l'en-tête IP dans chaque paquet ou cellule est donc évitée avec reconstruction des datagrammes dans le routeur X25 ou ATM de sortie. ATM est surtout employé en tant que support de réseaux d’opérateurs. La couche d'adaptation AAL5 qui fait partie de la spécification ATM (AAL), est employée pour les communications TCP/IP sur support ATM.

1.3.3 Niveau (inter) réseau

Ce niveau assure la gestion de la communication de proche en proche (de réseau en réseau, réseau étant pris au sens large). Le niveau 3 est avec ou sans connexion, pour IP, il s'agit d'un service sans connexion. Les nœuds intermédiaires qui assurent la circulation des informations sont appelés routeurs.
Les différents rôles de cette couche sont :
  • l’adressage IP;
  • la fragmentation;
  • le routage;
  • le changement de support.
La couche d'émission découpe le datagrammes en fragments adaptés au MTU du support physique s'il y a lieu et émet. La couche de réception reconstruction du datagramme et aiguillage vers le gérant de niveau transport selon le type de protocole:
  • Transport: UDP, TCP;
  • Routage interne: RIP, OSPF;
  • Gestion et erreurs: ICMP.
Le fait que certaines fonctions soient propres à un protocole ou à un autre dépend plus de l'historique que d'une rationalité absolue. Le partage des fonctions entre ICMP, les options IP, SNMP et d'autres protocoles de contrôle n'est pas toujours évident. A priori, nous trouvons dans ICMP et les options IP ce qui relève de la gestion du flux de communications, alors que dans SNMP, il s'agit davantage de fonctionnalités d'administration proprement dites.

1.3.4 Niveau transport (bout en bout)

Ce niveau assure la gestion de la communication entre extrémités. Il fonctionne en mode connecté (TCP) ou non connecté (UDP). Il assure l'aiguillage des données reçues vers l’application désignée par le numéro de port.

Différentes librairies de communication pour développer des applications réseaux sont:
  • Sockets: interface de programmation pour écrire des applications qui communiquent directement par UDP ou TCP
  • NetBios: format de commandes utilisé entre clients et serveurs de fichiers Microsoft,
  • RPC (Remote Procedure Call): appel de procédures distantes, utilisé pour les algorithmes répartis, précise le mode d'appel et de transmission des paramètres en entrée et en sortie à distance,
  • Corba, RMI : échange d’objets par le réseau.
La mise en forme des données pour leur compatibilité entre machines de types différents est assurée par XDR (External Data Representation). XDR normalise les données pour communiquer entre machines à formats de mots différents (little endian, big endian).

1.3.5 Champs protocole des en-têtes Ethernet, IP et transport

Champ proto ethernet    Valeur hexadécimale    Protocole de niveau supérieur
2048                            0x0800                       IPv4
2054                            0x0806                       ARP
32923                          0x809B                       Apple Talk
34525                          0x86DD                      IPv6

Champ proto IPv4    Valeur hexadécimale    Protocole de niveau supérieur
1                            0x01                           ICMP
2                            0x02                           IGMP
4                            0x04                           IP
6                            0x06                           TCP
17                          0x11                           UDP
88                          0x058                          IGRP
89                          0x059                         OSPF

Champ port            Valeur hexadécimale    Protocole d'application
21                         0x0015                        FTP
23                         0x0017                        Telnet
25                         0x0019                        SMTP
53                         0x0035                        DNS
80                         0x0050                        HTTP
110                       0x006E                        POP3
2049                     0x0801                        NFS

1.3.6 Applications de base

Les applications ou protocoles utilisés en standard sont:
  • FTP : File transfert protocol, transfert de fichiers (Osi: FTAM);
  • Telnet, rlogin: connexion à distance, terminal virtuel (Osi: VTS);
  • SMTP: simple mail transfert protocol envoi de messages;
  • IMAP, POP (post office protocol) lecture de messages (Osi: X400);
  • DNS : Domain Name Service (OSI X500); SNMP : Simple Network Management Protocol;
  • Web Serveurs et clients: HTTP: HyperText Transfert Protocol,
  • HTML : HyperText Markup Langage, description de documents.