Internet et l'architecture TCP/IP
Le modèle TCP/IP
Transmission Control Protocol / Internet Protocol
Développés par le Département de la Défense pour permettre la communication
entre des types d ’ordinateurs et de réseaux différents
ARPAnet, Advanced Research Projects Agency : le premier réseau informatique
utilisant la commutation par paquets et l'ancêtre direct d'Internet en 1970
TCP garantit une livraison en séquence des paquets entre clients
IP prend en charge l’acheminement des paquets entre hôtes
TCP/IP est intégré à Unix BSD 4 (Berkeley) en 1980
Aujourd'hui, TCP/IP est devenu le standard d'Internet
Architecture TCP/IP
Architecture TCP/IP
couche application :
Les protocoles de haut niveau,(tftp , smtp , http)
le point important pour cette couche est le choix du protocole de transport à utiliser.
couche transport :
la principale tâche de la couche de transport est de fournir la communication d’un
programme d’application à un autre, elle a deux implémentations :
Tcp (transmission control protocol) : un protocole fiable, orienté connexion,
Udp (user datagram protocol : il est non fiable et sans connexion.
couche internet :
décapsuler l’en-tête du datagramme pour transmettre les données à la couche de
transport et au bon protocole de cette couche (tcp, udp).
cette couche prend aussi en charge la communication de machine à machine.
couche accès au réseau :
les protocoles dans cette couche définit le moyen pour un système de délivrer
l’information à un autre système physiquement relié
Encapsulation de données TCP/IP
Le protocole IP (IPv4)
L'Internet Protocol IP
IP (RFC 791) : protocole d'interconnexion de l'Internet
Il a été conçu en 1974 pour remplacer NCP (Network Control Protocol /ARPANET)
Datagramme IP : Les octets issus de la couche de transport et encapsulés à l’aide d’un en-
tête IP avant d’être propagés vers la couche lien (2)(Ethernet par exemple)
Livraison au mieux (best-effort delivery) : aucune garantie quant au service
d'acheminement (délai, taux de perte, …),
Ces services non assurés sont laissées à la charge de la couche supérieure
Fonctions Assurées:
acheminement dans le réseau logique
désignation des nœuds (adressage IP)
Fragmentation : adaptation des datagrammes IP à la MTU (maximum
transmission unit ) du réseau physique traversé
Protocole IP : Mode datagramme
Le datagramme est un paquet remis par la couche transport et
que la couche réseau transmet d’une manière autonome.
Le paquet ne comporte pas d’information définissant à quel
message il appartient
Les paquets appartenant à une même communication peuvent
emprunter dans le réseau des chemins différents
C’est un mode orienté sans connexion
Acheminement : Routeur et fonction de routage
Routeur : noeud du réseau qui joue un rôle de trouver une route pour acheminer un
paquet vers sa destination finale
Une adresse par interface (connue des stations connectées sur le même sous-réseau)
les paquets sont relayés de proche en proche jusqu'au destinataire
l'émetteur du paquet doit connaître le premier routeur relais
ensuite, chaque routeur est chargé d'acheminer le paquet vers le routeur suivant
Fonctions principales d'un routeur
Relayer les paquets d’un réseau à un autre
Détermination du chemin
Commutation des paquets
Rôles secondaires :
sécurité, qualité de service
Filtre les trames de collisions, broadcast, multicast
possibilité de filtrer des trames en fonction des adresses source/destination (Access List)
9
Acheminement : Détermination du chemin
Évaluer les chemins disponibles pour atteindre une destination donnée
Déterminer celui à utiliser (en évitant par exemple les chemins engorgés)
Utilisation d’algorithmes de routage
Construction de tables de routage :
<@destination, route à prendre, coût>
"coût" permet de choisir la route appropriée si plusieurs routes sont possibles :
onombre de sauts, bande passante, coût de la communication, délais
Maintien des tables de routage :
communication entre routeurs
mises à jour via l’échange de portions ou de la totalité des tables
le routeur en déduit une connaissance de la topologie
Acheminement : Protocoles de routage
Routage statique
les routes sont établies manuellement par l’administrateur du réseau
simple mais ne recherche pas la route optimale et n'est pas adapté à la défaillance d'un lien
adapté aux petits réseaux et aux réseaux dans lesquels le choix de la route est limité
assure le séquencement des paquets (tous les paquets prennent la même route)
Routage dynamique
diffusion des mises à jour des tables de routage régulièrement en fonction de l'état du réseau
plus complexe que le routage statique et surcharge du réseau par l'échange d'informations de routage
permet de choisir la route optimale
analyse des mises à jour entrantes
si modification :
les routes sont recalculées
un message de mise à jour est envoyé, entraînant d ’autres mises à jour chez les voisins
11
Acheminement : Commutation de paquet
Le routeur
accepte un paquet sur une interface
le transfère sur une autre interface
algorithmes de commutation simples, et partagés par la plupart des protocoles de routage
un paquet entrant porte :
l’adresse MAC du routeur
l’adresse réseau de la destination
le routeur examine l’adresse réseau de destination
s’il ne sait pas atteindre cette destination, il ignore le paquet
s’il sait l ’atteindre, il modifie l’adresse MAC pour marquer celle du prochain nœud sur le chemin
le routeur transmet alors le paquet
Adressage IP
13
Adressage : définitions
Adressage = moyen d'identifier de manière unique deux entités communicantes dans le
réseau
• la source doit pouvoir fournir au réseau l'adresse du destinataire
• le destinataire doit pouvoir identifier l'adresse de son correspondant (adresse source)
• Adressage hiérarchique
• l'adresse est décomposée en différentes parties qui permettent d'identifier
• le réseau auquel l'utilisateur est rattaché
• l'utilisateur dans l'installation locale
• exemple : numérotation téléphonique
• Adressage à plat
• le format de l'adresse n'a aucune signification particulière quant à la localisation de l'entité
communicante
• exemple : adresse MAC
14
Adressage IP
Le rôle fondamental de la couche réseau (niveau 3 du modèle OSI) est de déterminer
la route que doivent emprunter les paquets.
Cette fonction de recherche de chemin nécessite une identification (adressage) de tous les
hôtes connectés au réseau.
Le modèle TCP/IP utilise un système particulier d'adressage (hiérarchique) qui porte
le nom de la couche internet de ce modèle : l'adressage IP.
Les adresses réseaux sont distribuées par un organisme international à but non lucratif
: ICANN (Internet Corporation for Assigned Names and Numbers) puis décentralisé
au niveau de chaque pays (le Network Information Center)
15
Adresses IP
L'adresse IP est composée de deux champs
NET_ID : identifiant du réseau IP (utilisé pour le routage)
HOST_ID : identifiant de la machine dans le réseau IP
La partie réseau est commune à l'ensemble des hôtes d'un même réseau,
La partie hôte est unique à l'intérieur d'un même réseau
Adresse IP = 32 bits = 4 octets (représentée par 4 valeurs décimales [0-255] séparées par un . (a.b.c.d)
16
Les classes d'adressage IPv4
18
Adresse IP : Masque sous réseau
• Le masque de sous-réseau ne contient pas réellement le réseau ou la
partie hôte d'une adresse IPv4 ; il indique simplement où rechercher ces
parties dans une adresse IPv4 donnée
19 • utilisé par les routeurs pour identifier les deux parties de l ’adresse
Adresses Spéciales
Adresse réseau :
Partie du Host-Id = 00000…000
Adresse de diffusion (broadcast) :
Partie du Host-Id = 11111…111
[Link] :
C'est une adresse de rebouclage (loopback /localhost).
Le message envoyé à cette adresse ne sera pas envoyé au réseau, il sera retourné à la machine elle-
même.
Les adresses des réseaux privés : Les hôtes qui n'ont pas besoin d'accéder à Internet
peuvent utiliser des adresses privées
La classe A : De [Link] à [Link]
La classe B : De [Link] à [Link]
La classe C : De [Link] à [Link]
Les adresses non-routables ne peuvent circuler sur l’Internet
Nécessité d’un mécanisme de traduction avant la sortie
20 Implémentation de NAT (Network Address Translation) sur le routeur
Adresse Réseau
Adresse de la machine
Adresse de diffusion
21 Sous-masque : [Link]
Première adresse du réseau
Dernière adresse du réseau
22
Calcul de l’Adresse Réseau
L’adresse IP d’une machine est : [Link]
Le masque de mon réseau: [Link]
Traduit en binaire :
11000000.10101000.00011001.10000100
11111111.11111111.11111111.00000000
@ réseau (ET Logique)
11000000.10101000.00011001.00000000
Exemple :
soit : [Link]
23
Exercice
Pour les adresses suivantes donner :
leurs classes
l'ID réseau et l'ID d'hôte
si ce sont des adresses privées ou publiques
leurs traductions en binaire
l’adresse réseau
et l’adresse machine.
a.[Link]
b.[Link]
c.[Link]
d.[Link]
e.[Link]
24
Adresse IPv6
Aujourd’hui, le nombre d ’ordinateurs connectés à Internet double chaque année
le nombre d’adresses IP disponibles expire !
IP doit évoluer vers IP version 6 :
supporter des milliards d ’ordinateurs en étendant le champ d ’adresses actuel
accorder une bonne attention au type de service (temps réel)
pouvoir évoluer tout en vivant en bonne entente avec IPv4
Nouveautés d’IPv6 :
adresses plus longues : 16 octets, soit 128 bits contre 32
Une Notation hexadécimale (groupes de 16 bits séparés par ‘:’)
Gérer la mobilité des hôtes (auto-configuration).
Exemple :
[Link]
[Link]
[Link]
Adaptation de la taille des unités de données
MTU - Maximum Transfer Unit
Taille maximale des paquets admis dans le réseau (en-tête compris)
Cette taille varie d'un réseau à l'autre et d'une couche à l'autre
Si un paquet a une taille supérieure à la MTU, il doit être fragmenté en plusieurs
blocs à l'entrée du réseau et réassemblé à la sortie
Pourquoi imposer une taille maximale ?
stockage des paquets dans les files d'attente des routeurs/commutateurs (mémoire
limitée)
au matériel ou à l'OS (ex. taille des trames Ethernet)
au protocole (nombre de bits réservés au champ longueur du paquet)
limiter le risque de congestion (temps d'occupation du canal par un paquet)
Quelques MTU en octets
26 Ethernet (1500), Frame Relay (1600), Token Ring (4464 en 4Mbps, 17914 en 16Mbps)
Fragmentation et réassemblage
La fragmentation est réalisée par le routeur d'entrée qui doit reconstruire un en-tête
d'acheminement pour chaque fragment
• les différents fragments peuvent arrivés dans le désordre
• les fragments doivent être numérotés et comptés
• le réassemblage ne peut se faire que sur le destinataire qui doit connaître le
nombre de fragments attendus
MTU = Maximum Transfert Unit
Format du datagramme IP
Le datagramme IPv4 (1)
Le datagramme IPv4 (2)
VER - Version - 4 bits ( numéro de version d'IP (généralement 4 pour IPv4))
IHL - Internet Head Length - 4 bits
longueur de l'en-tête du datagramme (en nombre de mots de 32 bits) = 5 (si pas d'option)
valeur maximale = 15 (40 octets d'options maximum)
TOS - Type Of Service - 8 bits
Cette valeur permet d’appliquer un mécanisme de qualité de service (QS) aux paquets de priorité élevée, tels que ceux
transportant des données vocales de téléphonie.
LEN - total LENgth field - 16 bits longueur totale du datagramme en octets ( au maximum 65535 octets)
L'indication de la longueur totale permet de distinguer le bourrage dans une trame Ethernet.
ID - Identification - 16 bits : identifiant de datagramme
permet à l’ordinateur destinataire de déterminer à quel datagramme appartient le fragment reçu.
tous les fragments d'un même paquet ont le même ID
DF (1bit) et MF (1 bit)
DF - Don't Fragment : ordre au routeur de ne pas fragmenter (autre route ou destruction)
MF - More Fragment : indique qu'un fragment suit
Fragment Offset - 13 bits
position du premier bit du fragment dans le datagramme d'origine, en multiple de 8 octets
Le datagramme IPv4 (2)
TTL - Time To Live - 8 bits
compteur qui sert à limiter la durée de vie du datagramme
255 au départ puis décrémenté à chaque nouveau saut
datagramme éliminé s'il atteint zéro
évite les paquets perdus (erreurs de routage)
Protocol - 8 bits
protocole de la couche supérieure qui traite le datagramme assemblé (UDP(17) ou TCP (6) ou ICMP(1))
Header Checksum - 16 bits
pour s’assurer de l’intégrité de l’en-tête. A la réception de chaque paquet, la couche calcule cette valeur,
si elle ne correspond pas à celle trouvée dans l’en-tête le datagramme est oublié (discard) sans message
d’erreur.
Le champ Options ((jusqu’à 40 octets)
est un champ rarement utilisé aujourd’hui, mais historiquement prévu pour ajouter des fonctionnalités
avancées au réseau
exemples d'options :
Source Routing (SR) : l’expéditeur indique tout ou partie du chemin à suivre (suite d'@ IP)
Record Route (RR) : Permet d’enregistrer l’adresse IP de chaque routeur traversé
ICMP : Internet Contrôle Message Protocole
C’est un protocole de contrôle et de diagnostic, utilisé par les routeurs et les hôtes pour :
signaler des erreurs,
envoyer des messages d’information,
tester l’état du réseau.
Implémenté sur tous les équipements IP (stations, routeurs)
Message ICMP contenu dans un datagramme IP
ICMP : Internet Contrôle Message Protocole
Deux grandes familles de messages ICMP
A. Messages ICMP d’erreur : Envoyés par un routeur ou un hôte lorsqu’un problème empêche la livraison
d’un paquet.
Exp :
Destination unreachable (Type 3). Codes possibles :
0 = Réseau inaccessible
1 = Hôte inaccessible
3 = Port inaccessible (UDP → ex : DNS fermé)
4 = Fragmentation nécessaire mais DF=1 (utilisé dans Path MTU Discovery)
Time Exceeded (Type 11) : Champ TTL du paquet est arrivé à 0.
utilisé par traceroute
B. Messages ICMP d’information : Utilisés pour tester le réseau.
Exp : Echo Request / Echo Reply (Type 8 / Type 0) . Utilisés par ping.
Echo Request envoyé
Echo Reply renvoyé par la cible
ARP Adress Resolution Protocol
Protocole permettant d'obtenir l'adresse Ethernet (adresse physique) d'un équipement
à partir de l’adresse IP.
Effectuer la mise en correspondance entre l’adresse IP et l’adresse MAC.
Cette résolution est dynamique.
Stockage des adresses MAC dans une table locale : cache ARP
Mécanisme :
broadcast d’une requête de type « qui a l’adresse IP [Link] ? »
réponse par la station concernée avec son adresse MAC
création de l’entrée dans le cache
ARP Adress Resolution Protocol
Exemple de commande
arp –a Toutes les entrées du cache
arp – s [Link] 00-80-C7-E0-7E-C5 Entrer une nouvelle adresse IP / MAC
arp –d [Link] Supprime une adresse IP du cache
Les protocoles de transport : UDP et TCP
Deux protocoles pour assurer la communication entre applications :
TCP : Transmission Control Protocol
communication avec connexion, fiable.
UDP : User Datagram Protocol
communication sans connexion, non fiable.
TCP/UDP : Notion de Port
Permet à plusieurs processus applicatifs de communiquer simultanément sur
le réseau, potentiellement avec un même protocole de transport (TCP ou
UDP).
Le port sert d’interface entre le processus applicatif et la couche transport.
Pour connaitre les sockets ouvertes et utilisées sur sa machine : commande netstat.
TCP/UDP : Notion de Port
Le couple de deux sockets définit complètement une connexion
entre deux application :
TCP/UDP : Notion de Port
Attribution des numéros de Port :
internationalement « assignés » par l’IANA (Internet Assigned Number Authority) <
1023
dynamiquement alloués par l’OS si non spécifiés
configurables directement pour certaines applications
Lors des communications, les infos telles que les n° de ports sont envoyées dans
l’entête afin de désigner quelle connexion est concernée.
Le protocole TCP
Transport Control Protocol est un protocole de bout en bout (uniquement aux extrémités )
entre applications orienté connexion.
Protocole de bout en bout. Les processus pairs des couches transport de 2 équipements
connectés dialoguent l'un avec l'autre sans rien connaître du réseau.
Protocole orienté connexion.
La fiabilité du transport TCP dépend de l'établissement d'une connexion entre les processus pairs qui veulent
dialoguer ((@IP src, port src) --> (@IP dest, port dest))
L'établissement d'une connexion est réalisé par l'échange d'informations telles que le numéro de port, le
numéro de séquence et la taille de fenêtre.
TCP permet :
Un contrôle des données transférées (endommagées, perdues, dupliquées)
Reséquensement si la couche IP ne les délivrent pas dans l’ordre
Un contrôle de flux et le contrôle de congestion en utilisant le mécanisme de fenêtre
d’émission pour éviter de submerger le récepteur
Un niveau de priorité les données sont traitées plus ou moins prioritairement
Le segment TCP (1)
Reserved
Le segment TCP (2)
Numéro de séquence NS (émission) : Le numéro du premier octet réel envoyé dans le segment, il
permet :
comptabilise les octets depuis le début de la connexion
l’ordonnancement, la retransmission, le contrôle de flux et la reconstruction du flux.
Numéro de séquence NR (réception)
Le prochain octet attendu
Les 6 indicateurs (Flags)
URG : valide le champ « Ptr données urgentes »
ACK : valide le champ NR
PSH : PUSH indique au récepteur de délivrer immédiatement les données en attente sur le récepteur
TCP peut attendre d'avoir suffisamment de données avant de constituer un fragment
exemple : retour chariot (CR) dans un terminal virtuel
RST : demande au destinataire de réinitialiser la connexion ou rejet d'une demande de connexion
SYN : demande d’ouverture de la connexion (échange des ISN)
FIN : demande de déconnexion (le destinataire n'est pas obligé de s'exécuter : fermeture négociée)
Le protocole UDP
User Datagram Protocol
protocole de transport le plus simple
service de type best-effort (comme IP)
les segments UDP peuvent être perdus
les segments UDP peuvent arriver dans le désordre
mode non connecté : chaque segment UDP est traité indépendamment des autres
Pourquoi un service non fiable sans connexion ?
simple donc rapide (pas de délai de connexion, pas d'état entre émetteur/récepteur)
petit en-tête donc économie de bande passante
sans contrôle de congestion donc UDP peut émettre aussi rapidement qu'il le souhaite
Les utilisations d'UDP
Souvent utilisé pour les applications multimédias
tolérantes aux pertes
sensibles au débit
Autres utilisations d'UDP
applications qui envoient peu de données et qui ne nécessitent pas un service fiable
exemples : DNS, SNMP, DHCP
Transfert fiable sur UDP
ajouter des mécanismes de compensation de pertes (reprise sur erreur) au niveau
applicatif
Le datagramme UDP
Quel protocole transport pour quel application?
La couche application
Paradigme du client-serveur
Serveur : tout programme qui offre un service
que l’on peut atteindre localement ou à travers Client : programme qui émet une demande
un réseau. vers un serveur et attend la réponse
Accepte les demandes, les traite et renvoie des
réponses au demandeur
Plusieurs serveurs peuvent être exécutés sur un
seul système
Plusieurs serveurs peuvent proposer le même
services et peuvent être exécutés sur un
ordinateur ou sur plusieurs Le client se termine après avoir sollicité un
Un serveur s’exécute avant le début des serveur un nombre fini de fois
interactions, accepte les demandes, les traite et
Le client utilise un port quelconque, inutilisé
renvoie des réponses sans jamais s’arrêter
Serveur attend l’arrivée d’une demande sur un et non réservé pour sa communication
port réservé affecté à ce service
Les protocoles de la couche application:
Protocoles et applications
HTTP - HyperText Transport Protocol
protocole du web: échange de requête/réponse entre un client et un serveur web
FTP - File Transfer Protocol
protocole de manipulation de fichiers distants transfert, suppression, création, …
TELNET - TELetypewriter Network Protocol ( système de terminal virtuel)
permet l'ouverture d'une session distante
SMTP - Simple Mail Transfer Protocol
service d'envoi de courrier électronique
réception (POP, IMAP, IMAPS, …)
DNS - Domain Name System
assure la correspondance entre un nom symbolique et une adresse Internet (adresse IP)
SNMP - Simple Network Management Protocol
protocole d'administration de réseau (interrogation, configuration des équipements, …)
DHCP - Dynamic Host Configuration Protocol
meilleure gestion du plan d'adressage IP avec attribution dynamique des adresses IP pour une certaine durée (bail
ou lease time)
Les protocoles DHCP
DHCP ((Dynamic Host Configuration Protocol) permet l’allocation dynamique d’adresses IP
(Pool d’adresses IP disponibles)
Adresse IP
Masque de réseau
Routeur par défaut
etc.
DHCP permet :
une meilleure utilisation d’un espace d’adresses (portables, machines peu utilisées) sur un réseau
local
Une meilleure gestion des évolutions du plan d’adressage
Il permet de s’affranchir des reconfigurations manuelles des postes
Déménagement
Changement d’architecture
etc.
Le protocole DHCP
Mécanisme DHCP :
1. Le client émet, par broadcast sur le réseau local, une trame « DHCP Discovery » :
• Découverte des serveurs DHCP du réseau
• Demande d’obtention d’une configuration IP
2. Le serveur DHCP reçoit ce broadcast
• S’il peut satisfaire la demande, réponse par trame « DHCP Offer »
• Proposition de paramètres IP
3. Le client peut accepter l’offre (trame « DHCP Request ») ou attendre éventuellement d’autres
propositions de serveurs DHCP
4. Si le serveur est en mesure de satisfaire les options, acquittement positif par trame « DHCP
Ack », sinon « DHCP Nack »
Attribution d’adresse IP
Pour une machine
IP statique
IP dynamique par DHCP
Envoie une requête
Une proposition
Accepte?
Confirmation
53
DNS : Introduction
Se rappeler d'une adresse IP est assez difficile, ex : [Link]
Mais alors de plusieurs ([Link], [Link], . . . )!
Retenir des noms comme [Link], [Link],
[Link], c'est bien plus facile
C'est pourquoi le DNS existe : il permet de nommer des ordinateurs et de
"résoudre" des noms en adresses IP :
[Link] en [Link]
[Link] en [Link]
….
DNS : espace de noms hiérarchisé et décentralisé
L'espace de noms est géré par ICANN (Internet Corporation for Assigned Names and Numbers)
Avec le DNS, l'espace de noms est organise en une hiérarchie : le nommage est organisé en domaines
au sommet figure la racine et immédiatement en dessous les TLD (Top-Level Domain) ou domaines de
niveau supérieurs :
ma
L'ICANN a ensuite délégué la gestion des sous-domaines des TLD à des entreprises ou organisations
gouvernementales :
•com et net a la societe VeriSign
•edu, org et autres a l'INTERNIC
•ma à l‘ANRT (Agence Nationale de Réglementation des Télécommunications)
DNS : base de données répartie, efficace et fiable
Les serveurs de noms d'un domaine doivent connaître les serveurs de noms racines,
du domaine parent et des domaines fils (délégation de zone)
Un serveur de noms peut gérer un domaine ainsi que plusieurs sous-domaines
Serveur pour
ma
Serveur pour Serveur pour
gov .ma [Link]
Serveur pour
Serveur pour
[Link] Serveur pour
[Link]
ma
Comment déterminer l’adresse IP? Chercher www.a.a
sur nav.b.a
Sous-domaine a.a