les protocoles de base TCP/IP

chapitre 5
--------------------------------------------------------------------------------------------------------------------------

les protocoles de base TCP/IP   

Objectif: Comprendre l’utilité des protocoles de base TCP/IP.
Éléments de contenu:
  • Le protocole IP : IPv4 et IPv6
  • Les protocoles connexes : DHCP, ICMP et ARP
  • La traduction d’adresses : NAT et PAT
  • Les protocoles des liens séries : CSLIP, PPP
  • Les protocoles de transport : TCP et UDP

I- Introduction :

1/ Pilote de réseau TCP/IP :

  • Les protocoles de base TCP/IP des niveaux 2,3 et 4 (IP, TCP,..) sont généralement inclus dans le système d’exploitation comme UNIX ou sous forme d’extension logicielle comme Windows.
  • Les services des niveaux 5, 6 et 7 (Telnet, Ftp, Web, ...) sont des logiciels que l’utilisateur démarre au besoin.

2/ Les protocoles selon le modèle OSI:

- Classification des 7 niveaux OSI avec TCP/IP, Netware et Apple Talk:
NiveauDescriptionTCP/IPIPXAppleTalk
7Applicationtransparence du réseau
traitement distribué
Http (www)
telnet
ftp
smtp (mail)
...
NFS
bootp
snmp
rip
...
Services Novell
(Netware)
Services +
AppleTalk
(AppleShare, PAP, etc.)
6Présentationcompression, conversion et encodage
5Sessiongestion des connexions
4Transportsegmentation des donnéesTCPUDPSPXATP
3Réseauaiguillage et contrôle du traficIPIPXDDP
2Liaisonformation des paquets et vérification des transmissionsEthernet, Token-Ring, FDDI, ATM, ...
1Physiquevoltage, modulation et connecteurs

II- Le Protocole IP : (Internet Protocol)

F Le protocole IP peut utiliser n’importe quel type de liaison de données (Ethernet, Token Ring, Liaison série, FDDI, ATM…)

 

1/ Structure d’une adresse IP :

  • Chaque ordinateur sur Internet possède une adresse IP unique.
  • Chaque paquet envoyé sur le réseau Internet possède l’adresse IP de l’ordinateur expéditeur et l’adresse IP de l’ordinateur destinataire.
  • Une adresse IP est composée de 32 bits, exprimée en décimale avec 4 nombres de 0 à 255.            
         Exemple:  192.168.28.34


Max ==>  232 = 4 294 967 296 adresses possibles.

 

2/ Masque de sous-réseau :
On appelle masque de sous-réseau (subnet mask), la séparation entre le n° de l’ordinateur (Host-id) et le n° du réseau (Net-id) dans une adresse IP. Le masque est précisé en binaire par des 1 pour la partie réseau et des 0 pour la partie ordinateur.
Exemple : soit l’adresse suivante = 11000000.10101000.00000001.00000101 = 192.168.1.5
Séparation réseau/ordinat.N° du réseau (Net-id)
(Partie gauche de l’adresse)
N° de l’ordinateur (Host-id)
(Partie droite de l’adresse)
24/811000000 10101000 00000001
c’est un réseau de 256 ordinateurs
00000101 (1er ordinateur)
00000110 (2ème ordinateur), etc.
27/511000000 10101000 00000001 000
c’est un réseau de 32 ordinateurs
00101 (1er ordinateur)
00110 (2ème ordinateur), etc.
Sép. réseauMasque de sous-réseau (en binaire)Masque(en décimal)
24/811111111.11111111.11111111.00000000255.255.255.0
27/511111111.11111111.11111111.11100000255.255.255.224
* Choix du masque: pour choisir le masque pour un réseau d’entreprise, il s’agit d’identifier le potentiel max d’ordinateurs sur un même sous-réseau.
Exemple: si on prévoit que le maximum d’ordinateurs sera environ 50 sur un même sous-réseau, alors le masque devrait-être d’au moins 6 bits (64 ordinateurs). Il est conseillé d’utiliser le masque 255.255.255.0 pour une administration réseau facile.

 

 

3/ Classes A, B, C, D et E :

But : Meilleure efficacité dans l’aiguillage des paquets.
Définition : Une classe est un regroupement de n° consécutifs de réseaux dont le masque de sous-réseau est défini par défaut.
ClasseAdresse en binaireAdresse en décimalMasque (p.d.)
A0NNNNNNN.HHHHHHHH.HHHHHHHH.HHHHHHHH0.0.0.0 – 127.255.255.255255.0.0.0
B10NNNNNN.NNNNNNNN.HHHHHHHH.HHHHHHHH128.0.0.0 – 191.255.255.255255.255.0.0
C110NNNNN.NNNNNNNN.NNNNNNNN.HHHHHHHH192.0.0.0 – 223.255.255.255255.255.255.0
D1110NNNN…224.0.0.0 – 239.255.255.255Usage spécial
E11110NNNN…240.0.0.0 – 254.255.255.255Usage Futur
Une adresse IP appartient obligatoirement à une classe, par conséquent elle a toujours un masque par défaut.
*  Inconvénient: sous utilisation des adresses IP.
Exemple : un organisme reçoit une classe B, il obtient un potentiel de 216 = 65536 adresses IP. Si celui-ci n’utilise que 3500, les autres ne sont pas disponibles pour d’autres organismes.

* Choix d’adresses pour un réseau privé :

- Si le réseau n’est pas branché sur Internet, on peut choisir n’importe quelles adresses parmi les classes A, B et C.
- Il est conseillé d’utiliser les adresses suivantes:
ClasseIntervalles d’adresses disponibles
A10.0.0.0 – 10.255.255.255
B172.16.0.0 – 172.31.255.255
C192.168.0.0 – 192.168.255.255
Pourquoi? : si un jour, on désire brancher le réseau sur Internet, ces adresses sont garanties de n’être jamais utilisées sur Internet.
Comment? : On installe une passerelle de sécurité (firewall) entre le réseau privé et Internet qui cache le réseau interne au réseau Internet.
Si un paquet IP traverse la passerelle pour aller sur Internet, celle-ci remplacera l’adresse IP source par sa propre adresse cachant les adresses IP des ordinateurs du réseau interne.

4/ Choix d’adresses pour le branchement sur Internet :

Pour brancher un seul ordinateur sur Internet par un fournisseur de services Internet, celui-ci fournit une adresse IP dynamique qui n’est pas la même chaque fois qu’on entre en ligne.

5/ Autres types d’adresses :

·   Adresse de message général : un message général est un paquet envoyé à l’ensemble des ordinateurs du même réseau (exemple: échange d’information entre les aiguilleurs). Les adresses IP normales sont assignés à une interface réseau (carte). Il existe des adresses spéciales telles que :
- les adresses de message général (broadcast)
- les adresses multipoints (multicast)*@IP de destination  = n° du réseau suivi de 1
  • Adresse de réseau : utilisée pour désigner le réseau mais n’est pas utilisée dans les communications * n° de réseau suivi de 0.
  • Adresse de test : la classe A 127.x.x.x est réservée pour les adresses de tests. L’adresse 127.0.0.1 identifie l’ordinateur utilisé pour tester l’activation du module TCP/IP et le disponibilité des services (sans connaître la véritable @IP ni générer du trafic sur le réseau) è ping 127.0.0.1

6/ Format d’un paquet IP :

trame ethernet
  • Version : Indique la version IP (IPv4, IPv6) du datagramme
  • Internet Header Lenght (IHL) : Longueur de l’entête en nombre de mots de 32 bits
  • Type of Service (TOS) : Type de service souhaité
  • - Priorité: Varie de 0 à 7
    • 0: priorité normale (valeur par défaut)
    • 7: priorité maximale (pour la supervision du réseau)
  • D=1 : minimiser le délai d’acheminement
  • T=1 : maximiser le débit de transmission
  • R=1 : assurer une plus grande fiabilité
  • C=1 : minimiser les coûts de transmission
  • Total length :
    • Longueur (en octets) du datagramme IP incluant l’entête
    • L’espace réservé pour ce champ =2 octets et longueur ≤ 65535
  • Flags : 
    • DF (Dont Fragment)=1 : ne pas fragmenter ce datagramme
    • MF (More Fragment)=1 : le datagramme contient d’autres fragments
  • Fragment Offset : Distance en unités de 64 bits depuis le premier bit du datagramme
  • Checksum : Code détecteur d’erreur (ne s’applique qu’à l’entête)
  • Time to live : contient la durée de vie restante (nombre de routeurs à traverser)
  • Protocol : Identification du protocole client  (17 : UDP, 6 : TCP) * Permet de diriger les données vers le protocole adéquat.
  • Options : sécurité, l’enregistrement de la route, routage strict, etc.
  • Padding : Permet à l’entête de toujours occuper un nombre entier de mots de 32 bits

7/ Protocoles IPv6 :

Pourquoi ? : Pour résoudre les problèmes de IPv4
  • Supporter des billions de machines
  • Réduire les tailles des tables de routage
  • Simplifier le protocole pour accélérer le routage
  • Offrir une meilleure sécurité: authentification, intégrité, confidentialité, etc.
·        Zone de Texte:
Mieux supporter les types de services, notamment les services temps réel
  • Cohabiter l’ancienne et la nouvelle version (IPv4, IPv6)
  • Permettre au protocole une évolution future.
En-tête de base :
  • Version (4 bits): Identifie le numéro de la version du protocole IP
  • Priority (4 bits): Les valeurs de 0 à 7 sont affectées aux sources capables de ralentir leur débit en cas de congestion (1 pour les news, 4 pour ftp, 6 pour telnet, etc.) et les valeurs de 8 à 15 sont assignées aux trafics temps réel (audio, vidéo, etc.)
  • Flow label (24 bits): Utiliser par une source pour marquer des paquets afin qu’ils bénéficieront d’un service particulier.
  • Payload Length (16 bits): La longueur des données (en octets).
  • Next Header (8 bits): Indique le type d'en-tête suivant immédiatement l'en-tête    
  • IPv6 (TCP=6, UDP=17, ICMP=1, etc.)
  • Source Address (128 bits): @ de l’émeteur initial du paquet.
  • Destination Address (128 bits): @ d’une destination (peut être différente de l’@ de destination finale si l’option « Routing Header» est présente)

III- Nommage des ressources réseau (DNS):

 

1/ Identification d’un ordinateur :

        Pour qu’il soit plus simple d’identifier les ordinateurs, on les nomme au lieu d’utiliser leur adresse IP. Sur Internet, l’association entre le nom d’un ordinateur et son adresse IP est gérée par le service de nom DNS (Domain Name System).

 

2/ Relation Nom d’ordinateur-Adresse IP :

        Au début de l’Internet, le centre d’information du réseau (IC) distribuait par courrier électronique et par FTP la liste des ordinateurs sur le réseau sous forme d’une table statique (hosts.txt) identifiant le nom de la machine et son adresse IP.
Exemple sous UNIX :  # etc/hosts
127.0.0.1       localhost
         192.168.1.1   ServeurISET
         …
       Avec l’augmentation du nombre d’ordinateurs sur Internet, un mécanisme de base de données distribuées a été mis en place (1983) permettant à l’ensemble des ordinateurs d’Internet d’être enregistrés de façon décentralisée appelé DNS (Domain Name System).
* Conséquence : Regroupement des ordinateurs par domaines.
Exemples :   - www.yahoo.fr identifie la machine “www” sur le réseau “yahoo.fr”
- mail.rnu.tn identifie la machine “mail” sur le réseau “rnu.tn”
       Dans le DNS, le nom et l’adresse IP des ordinateurs d’un domaine sont inscrits dans un fichier. Celui-ci est lu par un logiciel serveur qui rend cette table de correspondance disponible sur Internet.

3/ Principe de DNS :

        Il faut d’abord configurer l’ordinateur avec les adresses DNS.
        Lorsque l’utilisateur saisira le nom d’un ordinateur dans un logiciel TCP/IP
(Exemples : « www.altavista.fr » ou « telnet mail.rnu.tn ») :
         - le pilote de réseau TCP/IP fera une requête au serveur DNS
         - il obtiendra l’adresse IP de mail.rnu.tn
         - le pilote ensuite pourra établir une connexion en utilisant l’adresse IP
2. Demande de résolution « mail.tn »
3. Le serveur DNS local vérifie s’il connaît déjà cette information
4. Si non, le DNS local demande à un des serveurs centraux d’Internet
5. Le DNS central répond non mais lui indique le DNS responsable de .tn
6. Le DNS local demande au responsable de .tn s’il connaît mail.tn
7. et 8. Réponse 193.95.32.100

 

4/ Serveurs de noms de domaines :

·   Un serveur DNS est un logiciel contenant des tables de correspondance d’un ou plusieurs domaines.
·   Un domaine est un nom identifiant un regroupement d‘ordinateurs généralement associé à une organisation.
·   Pour chaque domaine est associé :
o  un serveur primaire qui possède les tables de correspondance pour ce domaine mises à jour par le gestionnaire du réseau
o  des serveurs secondaires qui reçoivent une copie de la table de correspondance venant du serveur primaire et prendront la relève lorsque le primaire sera surchargé ou en panne.
·   Un serveur DNS peut être primaire pour un ou plusieurs domaines et secondaire pour un ou plusieurs autres.
·   Usage général indépendant des types d’applications, et du type de machines

 

* Structure des domaines :

·         Les domaines sont structurés de façon hiérarchique
·         Le domaine le plus haut d’Internet est le point (.)
·         Chaque serveur DNS garde une copie de toutes les réponses qu’il a trouvées depuis son dernier démarrage * réponses rapides à des requêtes identiques.

 

IV- Le protocole de traduction d’adresses nat :

NAT est l'acronyme de « Network Address Translation », soit « Traduction d'Adresse Réseau » en français.
C'est un mécanisme qui, implémenté sur un routeur, permet de faire correspondre les adresses IP internes non-unique et souvent non routables d'un domaine vers un ensemble d'adresses externes uniques et routables.
Zone de Texte:
Pour faire correspondre les adresses internes avec un groupe d'adresses externes, on se sert d'une table. Celle ci contient des paires (adresse interne, adresse externe (traduite)). Quand l'adresse interne émet une trame qui traverse le routeur qui NAT, cette adresse est remplacé dans l'entête du paquet TCP/IP par son adresse IP externe. Le remplacement inverse sera fait quand une trame vers cette adresse externe doit être traduite en IP interne.
Aussi, on peut réutiliser une entrée dans la table de correspondance du NAT si aucun trafic avec ces adresses n'a traversé le routeur pendant un certain temps(paramétrable).
IP interneIP externeDurée (s)Réutilisable ?
10.101.10.20193.48.100.1741200non
10.100.54.271193.48.101.83600oui
10.100.0.89193.48.100.460non
* Voici par exemple une table de NAT simplifiée. On supposera qu'une entrée pourra être réclamée si la traduction n'a pas été utilisée depuis plus de 3 600 secondes.
La première ligne indique que la machine interne, possédant l'adresse IP 10.101.10.20 est traduite en 193.48.100.174 quand elle converse avec le monde extérieur. Elle n'a pas émis de paquet depuis 1200 secondes, mais la limite étant 3600, cette entrée dans la table lui est toujours assignée.
La seconde machine est restée inactive pendant plus de 3600 secondes, peut-être qu'elle est éteinte, une autre machine peut reprendre cette entrée (en modifiant la première colonne puisqu'elle n'aura pas la même IP interne).
Enfin, la dernière machine est actuellement en conversation avec l'extérieur, le champ Durée étant 0.
Actuellement, la plupart des firewalls et routeurs possèdent cette caractéristique. Elle est par exemple utilisée par les abonnées ADSL qui connectent plusieurs ordinateurs sur une ligne unique.

 

V- IP sur lien série avec les protocoles SLIP, CSLIP et PPP :

* L’arrivée des modems à plus haut débit a favorisé l’utilisation à grande échelle des liens IP sur les lignes téléphoniques.
·   La configuration comporte :
- un modem relié sur un port série RS-232 de l’ordinateur
- des interfaces logicielles SLIP (Serial Line IP), CSLIP (Compressed SLIP) ou PPP (Point to Point Protocol).
·     L’utilisateur sert des mêmes logiciels TCP/IP (Telnet, FTP, Web, …)

 



1/ Configuration du port série et des modems :

·   Les modems récents possèdent un mode de compression selon la norme V42 bis qui permet un taux max de 4 à 1 (Exemple : un modem de 28800 bit/s pourra avoir un taux de transfert max de 28800 x 4 = 115200 bit/s).
·   Pour les transferts plus exigeants, il est possible d’utiliser :
    - un lien RNIS (Réseau Numérique à Intégration de Services) qui possède 2 canaux de 64 kb/s chacun et un canal de contrôle de 16 kb/s)
- un lien ADSL : Asymetric Digital Subscriber Line
- des modems câblés à des bandes passantes > 1Mb/s

2/ Les protocole SLIP et CSLIP et PPP:

·   SLIP ne comporte :
- aucun mécanisme pour transmettre l’adresse IP à l’autre ordinateur
- aucune compression
- aucune vérification de la transmission du paquet
·   La taille maximale de l’unité est de 1 ko.
·    
Octet débutPaquet IPOctet fin
·   Compression des en-têtes TCP : CSLIP est le protocole SLIP utilisé avec la compression (c’est un mécanisme qui permet de réduire l’en-tête TCP de 40 octets à 3 ou 5 octets donc d’augmenter le débit des paquets).
- Problème : certaines versions de logiciels SLIP et CSLIP ne sont pas compatible entre-elles (pas de norme).
- Solution : le protocole PPP.

Le protocole PPP :

·   Il supporte le protocole IP et aussi OSI, Apple Talk, Decnet et d’autres
·   Il permet la négociation des paramètres de communication entre les 2 ordinateurs (compression, leurs adresses IP, identification d’un utilisateur,…)
*Format d’un paquet PPP:
trame PPP

4/ Configuration d’un service de connexions IP par lien téléphonique :

Identification de l’utilisateur : Lors de l’entrée en ligne, il faut s’identifier à l’aide d’un nom d’utilisation et d’un mot de passe. Il existe 2 méthodes d’identification :
- l’entrée manuelle des champs « login » et « password »
- le serveur de communication demande le nom d’utilisateur et son mot de passe directement à l’ordinateur (protocoles PAP et CHAP)

 

5/ Adresse IP dynamique :

Pour minimiser le nombre total d’adresse IP, on utilise des adresses IP dynamiques attribuées par le serveur de communication lorsque l’ordinateur entre en ligne en mode SLIP ou PPP.

VI- Les protocoles de transport des paquets TCP et UDP :

1/ TCP (Transmission Control Protocol) :

* C’est un protocole de transport fiable créant une connexion bidirectionnelle entre les 2 ordinateurs. L’expéditeur s’attend à une confirmation du destinataire sur réception.
Exemple d’utilisation : FTP utilise le protocole TCP, il découpe le fichier en plusieurs paquets.
Principe : Au moment de l’envoi d’un segment, l’ordinateur expéditeur démarre un chronomètre :
- si après un délai fixé, aucun accusé de réception n’est reçu, l’expéditeur renvoie le segment une autre fois
- si le destinataire reçoit un segment correctement, il envoie un accusé de réception
- si le destinataire détecte un segment erroné, il jette le segment.
Remarque : les segments peuvent être reçus dans n’importe quel ordre d’où un numéro de séquence est inclus dans chaque segment permettant ainsi d’identifier la position des données dans le fichier.
trame TCP

2/ Le protocole UDP (User Datagram Protocol) :

·   C’est un protocole non fiable, ne garantissant pas la livraison du paquet, ne délivrant aucune confirmation de réception et ne maintient aucune connexion entre les 2 ordinateurs.            
   Format du paquet UDP
N° du port sourceN° du port destinationLargeur du paquet UDPCRCDonnées UDP

3/ Les ports :

Peu importe le mode de transport TCP ou UDP, lorsqu’un paquet arrive à destination, il est transféré à un service (Telnet, FTP, Web, …) distingué par son numéro (port).
Exemple: Communication entre client et serveur