x. laure
TCP/IP sur les réseaux Ethernet
x. laure
Correspondance entre TCP/IP et le modèle OSI
• Le modèle OSI est très structuré mais certaines couches ont des fonctions qui peuvent être allégées ou regroupées.
• L’idée est de partir sur une optique réseau LAN. Par définition, ce type de réseau de « petite taille » est moins sujet aux erreurs de transmission.
• De plus, il a besoin de grandes performances et la simplification que permet TCP/IP (et d’Ethernet) autorise des débits plus grands.
x. laure
Correspondance entre TCP/IP et le modèle OSI
• Modèle OSI Modèle TCP/IP
Application
Présentation
Session
Transport
Réseau
Liaison
Physique
Couche application
Couche transport
Couche Internet
Couche interface réseau
Couche application
Couche transport
Couche Internet
Ethernet
Physique
Modèle TCP/IP sur Ethernet
1
2
3
4
5
x. laure
Schéma représentant un réseau et les différents éléments qui le compose ainsi que les couches OSI misent en jeux
1
7...
1
7...
PC MAC
1
3
imprimante 1
7...
répéteur
Routeur
1
2
répéteur
1
7...
Serveur WEB
1
7...
Serveur Mail
1
2
« Firewall »
Internet
1
4...
1
7...
x. laure
Détails du modèle TCP/IP
• En vert : la partie de la pile de protocoles de TCP/IP (Internet
protocol Suite), spécifique à l ’OS.
• En Jaune : la partie de la pile spécifique à la « carte réseau » pour
un OS donné :les drivers de la carte réseau.
Telnet FTP SMTP DNS RIP SNMP
TCP
(Transport Control Protocol)
UDP
(User Datagram Protocol)
IP
(Internet Protocol)
Ethernet Token Ring
Frame Relay
ATMARP
ICMP
x. laure
Encapsulation / démultiplexageEncapsulation
Démultiplexage
x. laure
Ethernet
Liaison
physique
OSI Ethernet
LLC (Logical Link Control)
(ne vérifie pas l’intégrité des trames)
Fonctions MAC *
(CSMA/CD – formation des trames)
Couche physique
(paires torsadées, FO, …)
* les cartes réseau Ethernet ont une adresse MAC unique
x. laure
Le rôle de LLCdistribution des informations au bon protocole
Couche application
physique
CSMA/CDLLC
TCP/IP AppleTalk
Couche application
physique
CSMA/CDLLC
AppleTalk
Couche application
physique
CSMA/CDLLC
TCP/IP
Un PC windows Un Mac OS X Une imprimante
x. laure
L’adresse MAC
Codes constructeurs
Code Constructeur Remarque
0020AF 3COM Corporation
0080C8 D-Link
00A0C9 Intel Cartes PRO100B
• Chaque appareil adressable d'un réseau doit avoir une adresse spécifique. • Dans le cas des réseaux Ethernet, cette adresse est composée de 6 octets.• Elle est codée sur chaque carte interface lors de sa fabrication. La mise à disposition des adresses est contrôlée de façon très stricte par l'IEEE. Chaque constructeur se voit attribuer un identifiant unique et une plage de numéros pour ses cartes interfaces. La combinaison fournit l'adresse Ethernet ou adresse MAC de la station. • Les trois premiers octets contiennent l'identifiant du constructeur. Les adresses IEEE, ou adresses MAC, sont notées en hexadécimal, en séparant les octets avec le symbole "-" ou ":".
• Exemple : 00-20-AF-56-78-1B et 00:20:AF:56:78:1B correspondent à la même adresse d'une carte du constructeur 3Com.
x. laure
IP (Internet Protocol)couche réseau
• IP gère :1. Adressage
• ARP
• Adresse IP– DNS
2. Le routage
1. Principe
2. Protocole de routage dynamique
3. ICMP
3. La fragmentation
1. MTU
Le protocole IP est dit « Best effort delivery » c’est à dire qu’il fait de son mieux pour envoyer les données. Ce n’est pas lui qui est chargé de s’assurer que le message final est bien arrivé à destination.
x. laure
Le protocole ARP (address resolution protocol)
• Le protocole ARP est lié au mode de fonctionnement des réseaux Ethernet.
• Le problème : – La machine A veut communiquer avec la machine B et elle connais son adresse IP.
• Mais le N°IP est une information de niveau 3 elle a également besoin de l’adresse Ethernet du correspondant pour composer sa « trame Ethernet »… elle va donc faire une requête ARP et attendre une réponse. Pour cela elle fait un broadcast (appel sur tout le réseau)
• La station qui se reconnaît envoie une réponse contenant son adresse IP et son adresse Ethernet.
• La réponse est mise dans une mémoire (cache ARP) et durant un certain laps de temps toutes les trames en direction de ce même numéro IP utiliseront la correspondance @IP>@Ethernet mise en mémoire.
IP =192.168.44.3Eth= 03:00:ff:40:23:70
IP =192.168.44.75Eth= 03:00:ff:25:30:65
IP =192.168.44.200Eth= 03:00:ff:00:01:20
Question à tous : je suis ip=192.168.44.3 Eth=03:00:ff:40:23:70 qui est IP=192.168.200 ?
A B C
Réponse à Eth=03:00:ff:40:23:70 IP=192.168.44.3: mon Eth= 03:00:ff:00:01:20 et mon IP= 192.168.44.200
x. laure
1) Adressage IP• L’adresse IP : Toutes les machines connectées au réseau doivent avoir une adresse IP
différente. A la différence de l’adresse MAC (Ethernet) L’adresse IP intègre en plus une notion adresse du réseau. Il est alors facile de retrouver une machine dans la multitude des réseaux connectés.
• Comme l’adresse IP doit être unique il existe une autorité centrale pour allouer ces adresses aux réseaux connectés. Cette autorité est le Centre d’Information du Réseau Internet appelé InterNIC
• Il existe 3 types d’adresse IP :– Unicast (destiné à une seule machine)– Broadcast (destiné à toutes les machine d’un réseau donné)– Multicast (destiné à toutes les machines d’un groupe multicast)
• Une adresse IP est un nombre de 32 bits. Pour des raisons évidentes de lisibilité on utilise la notation décimale pointée
– (ex : 192.168.44.3 pour l ’adresse binaire 11000000101010000010110000000011)
• Adresses particulières:– 127.0.0.1 « loopback » adresse virtuelle employée pour les tests est les simulations.– Une adresse C dont le dernier octet est un 0 est une adresse de réseau…– Une adresse C dont le dernier octet est 255 est un broadcast…
x. laure
• Formation d’une adresse sur 32 Bits :
• Les adresses privées : ces adresses ne sont pas routées sur Internet RFC 1918. Elles permettent de créer des réseau privés sans aucun risque « d’interférences »
• classe A : 10.0.0.0 à 10.255.255.255 • classe C : 172.16.0.0 à 172.31.255.255• classe C : 192.168.0.0 à 192.168.255.255
• Les masques de réseau: ils permettent de « subneter » le réseau. Par exemple vous disposez d’une classe B (donc possibilité d’allouer (216 - 2) machines ) mais vous voulez plutôt préférer gérer 28 réseau de (28 - 2) machines (soit 254).
– Le NetMask pour classe B de 1 réseau et 65354 ordinateurs est 255.255.0.0 (ou /16)– Le NetMask pour une classe B « subnetée » en 253 réseaux de 254 machines est 255.255.255.0
• Attribution statique ou automatique des numéros IP : L’utilisation conjointe d’un serveur DHCP permet une attribution « à la volée » des numéro IP.
0 7 Bits 24 Bits
1 0 14 Bits 16 Bits
1 1 0 21 Bits 8 Bits
CLASSE A : Adresses de 0.0.0.0 à 127.255.255.255
CLASSE B : Adresses de 128.0.0.0 à 191.255.255.255
CLASSE C : Adresses de 192.0.0.0 à 233.255.255.255
1) Adressage IP
x. laure
Application TCP/IP : le DNS
• Retenir des N°IP pour se connecter à un ordinateur n’est pas très facile voir impossible. Au début d’Internet des fichiers contenant la liste de toutes les adresses du réseau étaient créés sur toutes les machines. Cela est vite devenu impossible à gérer avec l’explosion d’Internet… d’où la création d’une base de données hiérarchisée pour retrouver tous ces noms : le DNS (Domain Name System).
• Attention le DNS n’est pas basé sur une organisation géographique. Les domaines à deux caractères (.fr, .uk, .us) indiquent plutôt un renseignement « linguistique » sur leurs sous-domaines mais pour le cas des domaines génériques à 3 caractères (.com, .net, .org, …) ils ne sont pas réservés aux domaines américains (sauf .gov et .mil).
x. laure
Organisation schématique du DNS
Arpa com edu gov int mil net org fr uk us …
cnrs-orleans
wwwweb
crmd
www speedy
www.crmd.cnrs-orleans.fr
www.cnrs-orleans.fr
Domaines génériques (organisationnels) Domaines géographiques
TOP niveau
Racine non nommée
In-addr
163
9
1
2
x. laure
IP : le routage
• Pour acheminer un datagramme IP deux cas sont possibles:
– La remise directe : le destinataire est dans le même réseau (voir diapo précédente pour ARP) le datagramme est adressé directement. La remise directe est toujours utilisée dans le cas du dernier routeur.
– La remise indirecte : le destinataire est dans un autre réseau, il faut franchir au moins un routeur.
x. laure
IP : le routage
• Dans le cas d’une remise indirecte :– La machine source s’aperçoit que l’adresse du
correspondant n’est pas dans le même réseau. A ce moment elle consulte sa table de routage.
– La table de routage est une liste IP Réseau Destination > IP Prochain
routeur. On dit que le routage est par sauts successifs (next hop
routing). – Si aucun réseau destination ne correspond elle envoie le
datagramme IP au routeur par défaut de son réseau.– Le TTL du datagramme est décrémenté ( pour éviter le
bouclage et les congestions)
x. laure
Exemple de routage
192.9.1.12
192.9.1.15
193.9.10.10
Internet
192.9.1.1
193.9.10.1
192.10.10.12
Routeur
Table de routageDestination Gateway
127.0.0.1 127.0.0.1
192.9.1.0 192.9.1.1
193.9.10.0 193.9.10.1
195.19.1.0 192.9.1.1
default 164.10.10.12
195.19.1.2
163.9.1.2
195.19.1.12
Routeur
x. laure
IP : routage• La table de routage est statique quand est elle mise à jour
« à la main » ou par ICMP (voir le protocole ICMP).• La table de routage est dynamique quand la mise à jour
est impossible manuellement car les routes sont trop complexes ou trop fluctuantes.– Protocole RIP (routing information protocole) : des informations
sont échangées entre routeurs voisins. A cause de sa mise en œuvre RIP est réservé aux petits réseaux (métrique 16 = infini )
– Protocole OSPF (Open Shortest Path first) : beaucoup plus complexe et performant que RIP. Il calcule les routes en fonction « des coûts » des liaisons.
x. laure
IP : la fragmentation
• Suivant le type de réseau traversé pour aller d’un point à un autre la longueur de la trame d’origine peut être un problème :– Trame Ethernet au Max 1526 Octets (dont 1500 Octets de données) – Trame Token Ring plus de 4400 Octets ).
• Donc si une trame part d’un réseau Token Ring vers un réseau Ethernet les trame seront trop longues … il va falloir les découper en plus petits morceaux, c’est la fragmentation. Le routeur qui s’aperçoit du problème découpe la trame d’origine en X paquets numérotés, puis il les envoie sur la bonne interface. A l’autre bout IP réassemble ces paquets pour délivrer le datagramme comme il a été envoyé. La plus grande taille d’un datagramme IP est donnée par son MTU (Maximun transmit Unit) qui est, par exemple, de 1500 pour Ethernet et de 4464 pour Token Ring).
x. laure
IP : le protocole ICMP
• Le protocole ICMP (Internet Control Message Protocol):– Le protocole ICMP utilise IP. Il se trouve logiquement dans le
haut de la couche.
– Il ne sert pas à fiabiliser IP mais rendre compte d’erreur de routage. Ces informations servent à créer de nouvelles routes dans les tables de routage ou encore à informer de la coupure d’une ligne , ou bien tout simplement à rendre compte de l’état actif ou inactif d’une interface (fonction écho utilisée par le programme ping) .
x. laure
TCP
• Transport Control Protocol : Tcp est un protocole de transport fiable. Il est dit connecté car il s’assure avant de transporter des données que le correspondant est disposé à les recevoir dans de bonnes conditions. Comme TCP s’appuie sur IP qui lui n’est pas fiable il doit s’assurer du contrôle des données arrivées. TCP gère le flux de données pour limiter les congestions du réseau.
• TCP repose sur plusieurs concepts parmi eux les principaux sont:– Le mode client / serveur
– Les « sockets »
– La « poignée de main » et Les accusés de réceptions
– Les fenêtres de données
x. laure
Le client serveur
• Dans le mode client serveur simple une des deux machines est « passive », le client, et l’autre est « active », le serveur.– Le client interroge le serveur– Le serveur suivant répond ou agit en fonction de la
requête du client.– Par exemple : le web.
• L’application cliente est le navigateur• L’application serveur est le serveur web (au sens logiciel)• Le navigateur envoie une requête avec le protocole approprié
(HTTP) et le serveur l’analyse et y répond en suivant lui aussi le même protocole.
x. laure
Les « sockets »
• Le problème : si sur une même machine deux programmes serveurs (ou clients) sont actifs et comme cette machine n’a qu’une adresse ip… comment les deux couples client/serveur vont-ils dialoguer?
Machine A
Serveur Web
Serveur Telnet
Client Web
Client Telnet
Machine B
Ip= 192.168.20.3 Ip= 192.168.20.100
?
x. laure
Les « sockets »
• La solution est donner un numéro de « port virtuel » à chaque application.
• Chaque connexion (socket) est identifiée par:– IP source / port source et IP destination / port destination
• Il existe deux types de numéros de ports ceux inférieurs à 1024. Ces ports sont ceux dit « biens connus » il sont référencés et ils servent à distinguer les types de serveurs (80 http, 21 ftp commandes, 23 telnet, 139 netbios, …) et ceux « éphémères » au dessus de 1024 et jusqu’à 65535 qui eux servent aux clients.
Serveur Web
Serveur Telnet
Client Web
Client Telnet
Ip= 192.168.20.3 Ip= 192.168.20.100
192.168.20.3:80
192.168.20.3:23
192.168.20.100:1025
192.168.20.100:1026
x. laure
L'établissement de la connexion• TCP est un protocole de transport dit connecté C’est à dire qu’il va établir une
connexion et des vérification avant d’envoyer des données. L’établissement de cette connexion utilise la technique de la « poignée de mains à trois voies » (three-way handshacke).
• Exemple d’un diagramme de temps :
Client Serveur
tem
ps
Flag:Syn – N°de séquence Client – taille transmise (0)
Flag:Syn – N°de séquence Serveur – taille transmise (0) ack - N° deséquence Client +1
Flag:Ack – N°de séquence Serveur +1 – taille transmise (0)
Dialogue :SYN
SYN/ACKACK
Etablissement de la connexion : technique dite « send en wait » …
Si au bout d ’un certain temps on a pas reçu d’acquittement: nouvelle demande
x. laure
Envoi massif de données• Technique de la « fenêtre glissante »:
Emetteur Recepteur1 2 3 4 5 6... ... 1 2 3
Bloc de données Mémoire disponible
ACK + Mémoire disponible
PUSH 1PUSH 2PUSH 3
1 2 3 4 5 6
ACK 1 + mémoire dispo2 2
1 2 3 4 5 6 PUSH 4
1 2 3
1 2 3 4 5 6
1
1 2 3 4 5 6
ACK 2 + mémoire dispo
1 2 3
Le récepteur renseigne l’émetteur sur le volume qu’il peut supporter (avant traitement). L’émetteur envoie donc les différents blocs de données sans attendre les accusés de réception (ACK). Si un accusé de réception n’est pas retourné pour un bloc TCP l’expédie de nouveau (fiabilité) . Si trop de bloc de données arrivent avec des erreurs TCP modifie ces « timers » et il prend plus de temps pour l’envoi (gestion de flux).
x. laure
Fin d’une connexion TCP
Problèmes possibles
x. laure
• Les Flags possibles sont :
• Lors de l’établissement des connexions TCP va en plus échanger des informations sur les capacités des deux parties.
– Une information de fenêtre (taille des mémoires buffers allouées). TCP ne doit pas envoyer plus de données que la taille de la fenêtre. Des accusés de réception (Ack) mettent régulièrement à jour cette information (voir le transparent « envoi massif de données »).
– Une information de MSS (maximun segment size) qui est en fait la MTU (Maximun Transmission Unit) moins les 20 octects de l’entête TCP. Cette information permet a TCP de contrôler la taille de ces segments pour éviter la fragmentation au niveau IP, et par là limiter le travail de la couche réseau.
• Le numéro de séquence est un indicateur de la position du paquet dans le flux de données. De façon simple,Le numéro de séquence correspond à un numéro de départ incrémenté de taille des données +1.
• Mise en place d’algorithmes spécifiques comme celui de Naggle (pour limiter les petits paquets sur le réseau) ou encore celui du démarrage lent (qui assure une montée en débit progressive du flux de
données une fois la liaison bien testée)
URG POINTEUR URGENT (données à traiter en priorité)
ACK Le numéro d’acquitement valide
PSH Passage de données « en masse » à l’application
SYN Synchronise les numéro de séquence pour initialiser une connexion
RST Reset de la connexion (envoi par TCP si le port n’est pas affecté à une application)
FIN L’émetteur à fini d’envoyer des données.
x. laure
• TCP met en œuvre également des timers qui servent à savoir si un segment est considéré comme perdu ou si il faut encore l’attendre. Ces timers s’ajustent automatiquement tout au long de la transmission le RTT (Round Trip Time) est le temps entre l’envoi d’un segment et la réception de son acquittement (Flag ACK). Si ce délai est dépassé TCP génère un Timeout. Donc grâce à ce mécanisme TCP s’adapte à tous les réseaux.
• Les principaux états possibles d’une connexion:– Listen : en attente d’une connexion
– Established : la connexion est active > communication entre les deux machines
– Time-Wait : connexion en attente (d’un ACK , d’une FIN, …)
x. laure
UDP
• User Datagram Protocol : UDP est protocol de transport qui fonctionne sur un mode non connecté. Il est très similaire à TCP mais comme il n’est pas connecté il ne peut garantir la fiabilité des données transportées. C’est à la couche application de s’assurer de l’intégrité des données. Le mode non connecté permet des communications « légères » et par définition il permet de broadcasting. Si une arreur est détectée dans un datagramme UDP, ce dernier est détruit « en silence ».
• Il utilise lui aussi des numéros de ports.
• Exemple d’applications utilisant UDP:– Le DNS, les serveurs de temps, tftp, snmp
x. laure
Les outils de test de TCP/IP
• Ping : permet de savoir si une machine est active. Ping est un programme qui utilise le protocole ICMP. Il utilise la fonction echo. Il envoie une quantité de données à une machine. Cette dernière si elle active répond en renvoyant les données. Ping mesure également le temps d’aller / retour.
• Traceroute : permet de connaître le chemin pris par IP avec les délais associés. Traceroute utilise une fonction du prtocole IP le TTL et lui aussi ICMP (message retour du routeur). Il place le champ TTL à 1 et le premier routeur le décrémente. Dès que ce champ passe à 0 une erreur ICMP est générée… Traceroute connaît le premier routeur. Puis il place ce champ à 2, ..etc
• Netstat : donne l’état des connexions TCP.
• TCPdump : est un sniffer en ligne de commande il permet des analyses très fines.
• …
x. laure
Résumé d’une communication TCP/IP sur Ethernet
Conditions de départ : La machine A veut se connecter au serveur www.test.fr … elle ne connaît que son nom.
Routeur
DNS WWWRouteur
Routeur
Machine A
192.9.15.0
192.9.15.10
192.54.32.10
192.54.32.0.1
.1
192.54.32.0 > test.fr
x. laure
• L’utilisateur lance son logiciel client de navigation WWW • Il saisit l’URL suivante : http://www.test.fr
– Comme le client doit passer une adresse IP à TCP il utilise le resolver DNS pour avoir l’IP exacte du serveur– Requête au DNS connu :
– Réponse du DNS www.test.fr IP=192.54.32.10• Le client de navigation WWW passe l’ordre d’envoi d’une requête sur 192.54.32.10 à TCP• Dans un premier temps TCP doit s'acquitter de sa poignée de main pour cela Il passe à IP les données nécessaires pour une synchronisation
(Flag:Syn) sur le serveur web 192.54.32.10 (segment TCP)• Au niveau IP… Est-ce que cette adresse est de mon réseau ? Et si non comment la joindre ?
– Oui > Est-ce que je connais l’adresse Ethernet pour cet IP (cache ARP)• Oui > la machine peut envoyer ces trames• Non > requête ARP
– Non > lecture de la table de routage > la seule route est celle par défaut c’est à dire via le routeur en .1 • Est-ce que j’ai l’adresse Ethernet du routeur
– Oui …– Non …
• Il passe ces informations au drivers de la carte Ethernet (paquet IP)
• Couche LLC Prépare de la trame (simplifiée) suivante le driver et la carte réseau envoient les bits :
• Le Premier routeur s’aperçoit que la trame est pour lui …– Il lit l’adresse de destination et recherche une route dans sa table de routage
• Suivant la route trouvée il change l’adresse Ethernet de destination et source (la sienne)• Regarde si la longueur de la trame va avec le MTU de la ligne
– Si non fragmentation en paquet compatibles• Décrément du TTL • Recalcule des CRC• Envoi au saut suivant
Eth Source
Eth destinat
IP source
IP destinat
Port source
Port destinat
Datas Remorque
Demande connexion (SYN)Rem : Syn ne fait pas partie du champ Données
80
1025
192.54.32.10
192.9.15.1000:0f:ad:1e:00:88
10:0C:75:23:01:58
Enc
apsu
lati
on
x. laure
• X routeurs plus loin … – Le routeur aiguille la trame sur un de ces réseaux
• Est-ce qu’il connaît l’adresse Ethernet de destination dans ces caches ? (si non ARP)• + le reste• Envoi de la trame sur le réseau.
• La trame (simplifiée) suivante circule sur le réseau …
• Le niveau 2 du serveur s’aperçoit que la trame lui est destinée– Remontée vers IP
• Si besoin est reconstitution des fragments
– Remontée vers TCP lecture du numéro de port• 1) réservation de la fenêtre• 2) réponse au SYN par un ACK• 3) appel de l’application serveur Web (port 80)
• Après la poignée de main, le client www peut envoyer une requête HTTP, le serveur qui est en attente lui répondra, etc …
Eth Source
Eth destinat
IP source
IP destinat
Port source
Port destinat
Datas Remorque
Demande connexion (SYN)
80
1025
192.54.32.10
192.9.15.10Ad. Eth destination
Ad. Eth Routeur
Dém
ulti
plex
age
de la
tram
e re
çue
x. laure