SlideShare une entreprise Scribd logo
1  sur  41
Télécharger pour lire hors ligne
Le Protocole ICMP (1)
• Le protocole ICMP (Internet Control Message Protocol) permet d’envoyer
des messages de contrôle ou d’erreur vers d’autres machines ou passerelles.
• Beaucoup d’erreurs sont causées par l’émetteur, mais d’autres sont dûes à
des problèmes d’interconnexions rencontrées sur l’Internet :
– Machine destination déconnectée,
– Durée de vie du datagramme expirée,
– Congestion de passerelles intermédiaires.
Le Protocole ICMP(2)
• Si une passerelle détecte un problème sur un datagramme IP, elle le détruit
et émet un message ICMP pour informer l’émetteur initial.
• Les messages ICMP sont véhiculés à l’intérieur de datagrammes IP et sont
routés comme n’importe quel datagramme IP sur l’internet.
• Une erreur engendrée par un message ICMP ne peut donner naissance à un
autre message ICMP (évite l’effet cummulatif).
ICMP : format des messages
TYPE 8 bits; type de message
CODE 8 bits; informations complémentaires
CHECKSUM 16 bits; champ de contrôle
HEAD-DATA en-tête datagramme + 64 premiers bits des
données.
TYPE Message ICMP TYPE Message ICMP
0 Echo Reply
3 Destination Unreachable
4 Source Quench
5 Redirect (change a route)
8 Echo Request
11 Time Exceeded (TTL)
12 Parameter Problem with a
Datagram
13 Timestamp Request
14 Timestamp Reply
15 Information Request
(obsolete)
16 Information Reply
(obsolète)
17 Address Mask Request
18 Address Mask Reply
ICMP : format des commandes
IDENTIFIER et SEQUENCE NUMBER sont utilisés par l’émetteur pour
contrôler les réponses aux requêtes, (CODE = 0).
TYPE CODE
Identifieur
Données spécifiques . . .
CHECKSUM
0 8 16 31
Seq. number
Demande d’écho et réponse d’écho (Echo Request, Echo Reply)
– Permettent à une machine ou passerelle de déterminer la validité d’un
chemin sur le réseau.
– Le champ de données spécifiques est composé de données optionnelles
de longueur variable émises par la requête d'écho et devant être
renvoyées par le destinataire si présentes.
– Utilisé par les outils applicatifs tels que: ping.
ICMP : les commandes
Synchronisation des Horloges et temps de transit
• Les horloges de deux machines qui diffèrent de manière importante peuvent
poser des problèmes pour des logiciels distribués.
• Une machine peut émettre une demande d’horodatage (timestamp request) à
une autre machine susceptible de lui répondre (timestamp reply) en donnant
l’heure d’arrivée de la demande et l’heure de départ de la réponse.
• L’émetteur peut alors estimer le temps de transit ainsi que la différence
entre les horloges locale et distante.
• Le champ de données spécifiques comprend l’heure originale (originate
timestamp) émis par le demandeur, l’heure de réception (receive timestamp)
du destinataire, et l’heure de départ (transmit timestamp) de la réponse.
ICMP : les commandes
Demande et réponse d’information (Information Request + Reply)
• Ces messages étaient initialement utilisés pour permettre aux
machines de connaître leur adresse IP au démarrage du système.
• Ces commandes sont aujourd’hui remplacées par les protocoles
RARP et BOOTP.
Obtention de masque de sous-réseau
• Une machine peut émettre une demande de masque de sous-réseau
(Subnet Mask Request) vers une passerelle gérant le sous-réseau en
question.
• La passerelle transmet par une “Subnet Mask Reply”, l’adresse de
masque de sous-réseau dans le champ de donnée spécifique.
ICMP : les messages d’erreur
• CODE indique le codage de l’erreur rapportée et est spécifique à chaque
TYPE CODE
SPECIFIQUE
CHECKSUM
0 8 16 31
IP Header + First 64 bits
Format des messages
d’erreur ICMP
• CODE indique le codage de l’erreur rapportée et est spécifique à chaque
type d’erreur,
• SPECIFIQUE est un champ de données spécifique au type d’erreur,
• IP HEADER + FIRST 64 bits contient l’en-tête IP + les premiers 64 bits
de données du datagramme pour lequel le message est émis.
ICMP : les messages d’erreur
• Lorsqu’une passerelle émet un message ICMP de type destination inaccessible, le
champ code décrit la nature de l’erreur :
– 0 Network Unreachable
– 1 Host Unreachable
– 2 Protocol Unreachable
– 3 Port Unreachable
– 4 Fragmentation Needed
– 5 Source Route Failed– 5 Source Route Failed
– 6 Destination Network Unknown
– 7 Destination Host Unknown
– 8 Source Host Isolated
– 9 Communication with desination network administratively prohibited
– 10 Communication with desination host administratively prohibited
– 11 Network Unreachable for type of Service
– 12 Host Unreachable for type of Service
ICMP : contrôle de congestion
• Une situation de congestion se produit :
– lorsqu’une passerelle est connectée à deux réseaux aux débits différents
(elle ne peut écouler au rythme imposé par le réseau le plus rapide),
– lorsque de nombreuses machines émettent simultanément des
datagrammes vers une passerelle.
• Pour palier ce problème, la machine peut émettre un message ICMP de• Pour palier ce problème, la machine peut émettre un message ICMP de
limitation de débit de la source (Source Quench) vers l’émetteur.
• Il n’existe pas de message d’annulation de limitation de débit. La source
diminue le débit, puis l’augmente progressivement tant qu’elle ne reçoit pas
de nouvelle demande de limitation.
ICMP : modification de route
Un message ICMP de redirection de route peut être transmis par une
passerelle vers une machine reliée au même réseau pour lui signaler que la
route n’est pas optimale.
R1 R2Internet
B
Une fois la redirection effectuée, les datagrammes seront acheminés vers la
passerelle appropriée.
A
R1 R2Internet
Route par défaut Redirection ICMP
2ème routage
ICMP : modification de route
• Dans le bloc de commande, le champ SPECIFIQUE indique l’adresse de la
passerelle que la machine doit utiliser pour router le datagramme;
CODE spécifie la redirection :
CODE SIGNIFICATION
0 Redirect datagrams for the Network
1 Redirect datagrams for the Host
2 Redirect datagrams for the Type of Service and Network
3 Redirect datagrams for the Type of Service and Host
ICMP : autres compte-rendus
• Lorsqu’une passerelle ou une machine détecte un problème avec un
datagramme (en-tête incorrecte) non couvert par les messages ICMP
prédéfinis, elle émet un message “Parameter Problem on a Datagram” vers
l’émetteur du datagramme.
• Le problème rencontré consiste soit en une option manquante (dans le
datagramme), soit en une donnée erronée.
• Dans le bloc de commande, le champ CODE indique la nature du pb:
CODE SIGNIFICATION
0 erreonous data
1 missing option
• Le champ spécifique comprend un pointeur (codé sur les 8 premiers bits, les
24 restants étant à 0) servant à identifier l’octet erroné dans le datagramme;
il est non significatif lorsque CODE = 1.
Couche Transport
• TCP : Transmission Control Protocol• TCP : Transmission Control Protocol
• UDP : User Datagram Protocol
UDP : User Datagram Protocol
• UDP : protocole de transport sans connexion de service applicatif :
– émission de messages applicatifs : sans établissement de connexion au
préalable
– l'arrivée des messages ainsi que l’ordonnancement ne sont pas garantis.
• Identification du service : les ports
– les adresses IP désignent les machines entre lesquelles les communications
sont établies.
– Lorsqu'un processus désire entrer en communication avec un autre
processus, il doit s’adresser au processus exécuté sur la machine réceptrice.
UDP : les Ports
• Ces destinations abstraites permettant d'adresser un service
applicatif s'appellent des ports de protocole.
• L'émission d'un message se fait sur la base d'un port source et un
port destinataire.
• Les processus disposent d'une interface système leur permettant
de spécifier un port ou d'y accéder (socket, ...).
• Les accès aux ports sont généralement synchrones,
• Les opérations sur les ports sont tamponnés (files d'attente).
UDP : Format des messages
Les messages UDP sont également appelés des datagrammes UDP.
Ils contiennent deux parties : un en-tête UDP et les données UDP.
Port UDP source
Longueur message UDP
Port UDP dest.
0 16 31
Données ...
Format des messages UDPChecksum UDP
• Les ports source et destination contiennent les numéros de port utilisés par
UDP pour démultiplexer les datagrammes destinés aux processus en
attente de les recevoir.
•Le port source est facultatif (égal à zéro si non utilisé).
•La longueur du message est exprimée en octets (8 au minimum) ,
•Le champ de contrôle est optionnel (0 si non utilisé).
Données ...
UDP : pseudo en-tête
• Lorsqu'il est utilisé, le champ de contrôle couvre plus d'informations que
celles contenue dans le datagramme UDP;
• En effet, le checksum est calculé avec un pseudo-en-tête non transmis dans
le datagramme:
0 8 16 31
Format du pseudo en-tête
Adresse IP Source
Adresse IP Destination
•Le champ PROTO indique l'identificateur de protocole pour IP (17= UDP)
•Le champ LONGUEUR UDP spécifie la longueur du datagramme UDP sans
le pseudo-en-tête.
zéro
Format du pseudo en-tête
proto Longueur UDP
Adresse IP Destination
UDP : Multiplexage
• UDP multiplexe et démultiplexe les datagrammes en sélectionnant les
numéros de ports :
– une application obtient un numéro de port de la machine locale; dès
que l'application émet un message via ce port, le champ PORT
SOURCE du datagramme UDP contient ce numéro de port,
– une application connaît un numéro de port distant afin de
communiquer avec le service désiré.communiquer avec le service désiré.
• Lorsque UDP reçoit un datagramme, il vérifie que celui-ci est un des
ports actuellement actifs (associé à une application) et le délivre à
l'application responsable
• Si ce n'est pas le cas, il émet un message ICMP port unreachable, et
détruit le datagramme.
UDP : les ports standards
• Certains ports sont réservés (well-kown port assignements) :
No port Mot-clé Description
7 ECHO Echo
11 USERS Active Users
13 DAYTIME Daytime
37 TIME Time
42 NAMESERVER Host Name Server
53 DOMAIN Domain Name Server
67 BOOTPS Boot protocol server
68 BOOTPC Boot protocol client
69 TFTP Trivial File transfert protocol
123 NTP Network Time Protocol
161 SNMP Simple Network Management prot.
• D'autres numéros de port (non réservés) peuvent être assignés dynamiquement
aux applications.
TCP : Transmission Control Protocol
• Transport fiable de la technologie TCP/IP.
– Transferts tamponés : découpage en segments
– Connexions bidirectionnelles et simultanées
• Service en mode connecté
• Garantie de non perte de messages
TCP : La connexion
• une connexion de type circuit virtuel est établie avant que les données
ne soient échangées : appel + négociation + transferts
• Une connexion = une paire d'extrémités de connexion
• Une extrémité de connexion = couple (adresse IP, port)
• Exemple de connexion : ((124.32.12.1, 1034), (19.24.67.2, 21))
• Une extrémité de connexion peut être partagée par plusieurs autres
extrémités de connexionsextrémités de connexions
• La mise en oeuvre de la connexion se fait en deux étapes :
– une application (extrémité) effectue une ouverture passive en
indiquant qu'elle accepte une connexion entrante,
– une autre application (extrémité) effectue une ouverture active
pour demander l'établissement de la connexion.
TCP : Segmentation
• Segmentation, contrôle de flux
– Les données transmises à TCP constituent un flot d'octets de longueur
variable.
– TCP divise ce flot de données en segments en utilisant un mécanisme de
fenêtrage.
– Un segment est émis dans un datagramme IP.
• Acquittement de messages
– Contrairement à UDP, TCP garantit l'arrivée des messages, c'est à dire
qu'en cas de perte, les deux extrémités sont prévenues.
– Ce concept repose sur les techniques d’acquittement de message :
lorsqu'une source S émet un message Mi vers une destination D, S attend
un acquittement Ai de D avant d'émettre le message suivant Mi+1.
– Si l’acquittement Ai ne parvient pas à S, S considère au bout d'un certain
temps que le message est perdu et reémet Mi :
TCP : Acquittements
Source Réseau Destination
Emission de Mi
Temporisation
armée
Mi n‘est pas reçu
Ai non envoyé
Ai n’est pas reçuAi n’est pas reçu
Tempo. echue
Réemission de Mi
Réception de Mi
Emission de Ai
Réception de Ai
TCP : le fenêtrage
• La technique acquittement simple pénalise les performances puisqu'il faut
attendre un acquittement avant d'émettre un nouveau message.
• Le fenêtrage améliore le rendement des réseaux.• Le fenêtrage améliore le rendement des réseaux.
• La technique du fenêtrage : une fenêtre de taille T, permet l'émission d'au
plus T messages "non acquittés" avant de ne plus pouvoir émettre
TCP : le fenêtrage
Source Réseau Destination
Emission de Mi
Emission de Mi+1
Réception de Mi
Emission de Ai
Reception de Ai
Emission de Mi+2
Reception de Ai
Fenêtrage de taille 3
TCP : format du segment
• Segment : unité de transfert du protocole TCP.
– Echangés pour établir les connexions,
– Transférer les données,
– Emettre des acquittements,
– Fermer les connexions;
Port source Port destination
0 4 10 16 24 31
Port source Port destination
Numéro de séquence
Numéro d’acquittement
HLEN réservé Codes fenêtre
Checksum pointeur urgence
Options éventuelles padding
Données . . .
TCP : format du segment
• Numéro de séquence : le numéro de séquence du premier octet (NSP) de ce
segment. Généralement à la suite d’octets O1, O2, ..., On (données du
message) est associée la suite de numéro de séquence NSP, NSP+1, ...,
NSP+n.
• Numéro d’acquittement : le prochain numéro de séquence NS attendu par
l’émetteur de cet acquittement. Acquitte implicitement les octets NS-1, NS-l’émetteur de cet acquittement. Acquitte implicitement les octets NS-1, NS-
2, etc.
• Fenêtre: la quantité de données que l’émetteur de ce segment est capable de
recevoir; ceci est mentionné dans chaque segment (données ou
acquittement).
TCP : format du segment
• CODE BITS : indique la nature du segment :
– URG : le pointeur de données urgentes est valide, les données sont émises
sans délai, les données reçues sont remises sans délai.
– SYN : utilisé à l’initialisation de la connexion pour indiquer où la
numérotation séquentielle commence. Syn occupe lui-même un numéro denumérotation séquentielle commence. Syn occupe lui-même un numéro de
séquence bien que ne figurant pas dans le champ de données.
– FIN : utilisé lors de la libération de la connexion;
TCP : format du segment
– PSH : fonction push. Normalement, en émission, TCP reçoit les
données depuis l’applicatif , les transforme en segments à sa guise
puis transfère les segments sur le réseau; Un récepteur TCP décodant
le bit PSH, transmet à l’application réceptrice les données
correspondantes sans attendre plus de données de l’émetteur.
– RST : utilisé par une extrémité pour indiquer à l’autre extrémité
qu’elle doit réinitialiser la connexion. Ceci est utilisé lorsque les
extrémités sont désynchronisées.
TCP : format du segment
• CHECKSUM : calcul du champ de contrôle : utilise un pseudo-en-tête et
s'applique à la totalité du segment obtenu (PROTO =6) :
Adresse IP source
Adresse IP destination
zéro protocole (6) longueur TCP
TCP : format du segment
OPTIONS
• Permet de négocier la taille maximale des segments échangés. Cette
option n'est présente que dans les segments d'initialisation de connexion
(avec bit SYN).
• TCP calcule une taille maximale de segment de manière à ce que le
datagramme IP résultant corresponde au MTU du réseau. Ladatagramme IP résultant corresponde au MTU du réseau. La
recommandation est de 536 octets.
• La taille optimale du segment correspond au cas où le datagramme IP
n’est pas fragmenté mais :
– il n’existe pas de mécanisme pour connaître le MTU,
– le routage peut entraîner des variations de MTU,
– la taille optimale dépend de la taille des en-têtes (options).
TCP : acquittements
Acquittements et retransmissions
• Le mécanisme d’acquittement de TCP est cumulatif :
– il indique le numéro de séquence du prochain octet attendu : tous les
octets précédents cumulés sont implicitement acquittés
– Si un segment a un numéro de séquence supérieur au numéro de
séquence attendu (bien que dans la fenêtre), le segment est conservé
mais l’acquittement référence toujours le numéro de séquence attendu.mais l’acquittement référence toujours le numéro de séquence attendu.
• Pour tout segment émis, TCP s’attend à recevoir un acquittement:
– Si le segment n’est pas acquitté, le segment est considéré comme perdu
et TCP le retransmet.
– Or un réseau d’interconnexion offre des temps de transit variables
nécessitant le réglage des temporisations;
– TCP gère des temporisations variables pour chaque connexion en
utilisant un algorithme de retransmission adaptative
TCP : acquittements
TCP source TCP destination
Seq=3
Envoi de 300 octets
Seq=303
Envoi de 300 octets
Ack=303
Seq=603
Attente car
Attente de 303
Fenêtre=900 Segment=300
Envoi de 300 octetsAttente car
f = 900
Attente de 303
Ack=303
Seq=303
Envoi de 300 octets
Seq=603
Envoi de 300 octets
Ack=903
Peut être
conservé ==>
peut ne pas
être réémis
car acquitté
entre temps
TCP : retransmissions
algorithme de retransmission adaptative
• enregistre la date d’émission d’un segment,
• enregistre la date de réception de l’acquittement correspondant,
• calcule l’échantillon de temps de boucle A/R écoulé,
• détermine le temps de boucle moyen RTT (Round Trip Time) :
RTT = (a * anc_RTT) + ((1-a) * NOU_RTT))
avec 0<= a < 1
a proche de 1 : RTT insensible aux variations brèves,
a proche de 0 : RTT très sensible aux variations rapides,
• calcule la valeur du temporisateur en fonction de RTT.
• Les premières implémentations de TCP ont choisi un coefficient constant B
pour déterminer cette valeur : Temporisation = B * RTT avec B >1
(généralement B=2).
• Aujourd’hui de nouvelles techniques sont appliquées pour affiner la mesure
du RTT : l’algorithme de Karn.
TCP : retransmissions
L’algorithme de Karn repose sur les constatations suivantes :
• en cas de retransmission d’un segment, l’émetteur ne peut savoir si
l’acquittement s’adresse au segment initial ou retransmis (ambiguïté des
acquittements), =>l’échantillon RTT ne peut donc être calculé correctement,
• TCP ne doit pas mettre à jour le RTT pour les segments retransmis.
• L’algorithme de Karn combine les retransmissions avec l’augmentation des
temporisations associées (timer backoff):
– une valeur initiale de temporisation est calculée
– si une retransmission est effectuée, la temporisation est augmentée
(généralement le double de la précédente, jusqu’à une valeur plafond).
• Cet algorithme fonctionne bien même avec des réseaux qui perdent des
paquets.
TCP : la congestion
Gestion de la congestion
• TCP gère le contrôle de flux de bout en bout mais également les problèmes
de congestion liés à l’interconnexion.
• La congestion correspond à la saturation de noeud(s) dans le réseau
provoquant des délais d’acheminement de datagrammes jusqu‘a leur pertes
éventuelles.éventuelles.
Dans la technologie TCP/IP, les passerelles (niveau IP) utilisent la réduction du
débit de la source mais TCP participe également à la gestion de la
congestion en diminuant le débit lorsque les délais s’allongent.
TCP : connexion
Une connexion TCP est établie en trois temps de manière à assurer la
synchronisation nécessaire entre les extrémités :
TCP source TCP destination
Syn seq=x
Syn seq=y,ack=x+1
Ce schéma fonctionne lorsque les deux extrémités effectuent une demande
d'établissement simultanément.
TCP ignore toute demande de connexion, si cette connexion est déjà établie.
Syn seq=y,ack=x+1
Ack y+1
TCP retransmissions
• Si la congestion disparaît, TCP définit une fenêtre de congestion égale à 1 segment et
l’incrémente de 1 chaque fois qu’un acquittement est reçu; ce mécanisme permet un
démarrage lent et progressif :
Fenêtre_congestion = 1,
émission du 1er segment,
attente acquittement,
réception acquittement,
Fenêtre_congestion = 2,Fenêtre_congestion = 2,
émission des 2 segments,
attente des acquittements,
réception des 2 acquittements,
Fenêtre_congestion = 4,
émission des 4 segments, ...
Log2 N itérations pour envoyer N segments. Lorsque la fenêtre atteint une fois et demie
sa taille initiale, l’incrément est limité à 1 pour tous les segments acquittés de la fenêtre.
TCP : déconnexion
• Une connexion TCP est libérée en un processus dit "trois temps
modifié":
TCP source TCP destination
Fin seq=x
ack=x+1
+ fin-> applicatif
Ack y+1
Applicatif -> close
Fin seq=y ack=x+1
TCP : ports standards
No port Mot-cléDescription
20 FTP-DATA File Transfer [Default Data]
21 FTP File Transfer [Control]
23 TELNET Telnet
25 SMTP Simple Mail Transfer
37 TIME Time
42 NAMESERVER Host Name Server
43 NICNAME Who Is
53 DOMAIN Domain Name Server
79 FINGER Finger
80 HTTP WWW
110 POP3 Post Office Protocol - Version 3
111 SUNRPC SUN Remote Procedure Call
TCP : L’automate
Fermé
Ecoute
(Listen)
SYN
reçu
SYN
émis
Réinitialisation
SYN/SYN+ACK
RST
ouverture
passive
fermeture
Send SYN
SYN/SYN+ACK
Etablie
ACK SYN+ACK/ACK
Départ
Fermer
RST
Tempo. exp.
ouverture active/ SYN
Etablie
ACK SYN+ACK/ACK
Attente
Fermer
Dernier
ACK
FIN
Attente
-1
FIN/ACK
Fermeture
en cours
Fermer/FIN
FIN
Attente
-2
Tempo.
expirée
ACK of FIN
FIN / ACK
tempo. expire aprés
2 durée de vie de segment
ACK
rcv
ACK of FIN
Close/FIN
rcv
rcv
FIN (send)
FIN/ACK

Contenu connexe

Tendances

Protocole RIP1, RIP2, RIPng
Protocole RIP1, RIP2, RIPngProtocole RIP1, RIP2, RIPng
Protocole RIP1, RIP2, RIPngMax Benana
 
Concepts et configuration de base de la commutation
Concepts et configuration de base de la commutationConcepts et configuration de base de la commutation
Concepts et configuration de base de la commutationEL AMRI El Hassan
 
Chapitre 2 - Protocole Modbus (2020/2021)
Chapitre 2 - Protocole Modbus (2020/2021)Chapitre 2 - Protocole Modbus (2020/2021)
Chapitre 2 - Protocole Modbus (2020/2021)Tarik Zakaria Benmerar
 
3 switchport securité
3 switchport securité3 switchport securité
3 switchport securitémedalaa
 
Cours Bus de communication et réseaux industriels. Chapitre 2 : Modbus.
Cours Bus de communication et réseaux industriels. Chapitre 2 : Modbus.Cours Bus de communication et réseaux industriels. Chapitre 2 : Modbus.
Cours Bus de communication et réseaux industriels. Chapitre 2 : Modbus.Tarik Zakaria Benmerar
 
13 rip.fm
13 rip.fm13 rip.fm
13 rip.fmazizing
 
Chapitre 6 - Protocoles TCP/IP, UDP/IP
Chapitre 6  - Protocoles TCP/IP, UDP/IPChapitre 6  - Protocoles TCP/IP, UDP/IP
Chapitre 6 - Protocoles TCP/IP, UDP/IPTarik Zakaria Benmerar
 
Généralités sur les périphériques du STM32
Généralités sur les périphériques du STM32Généralités sur les périphériques du STM32
Généralités sur les périphériques du STM32Hajer Dahech
 

Tendances (20)

Protocole RIP1, RIP2, RIPng
Protocole RIP1, RIP2, RIPngProtocole RIP1, RIP2, RIPng
Protocole RIP1, RIP2, RIPng
 
Concepts et configuration de base de la commutation
Concepts et configuration de base de la commutationConcepts et configuration de base de la commutation
Concepts et configuration de base de la commutation
 
1485606887426.pdf
1485606887426.pdf1485606887426.pdf
1485606887426.pdf
 
1485606887355.pdf
1485606887355.pdf1485606887355.pdf
1485606887355.pdf
 
Chapitre 4 - Réseaux Ethernet
Chapitre 4 - Réseaux EthernetChapitre 4 - Réseaux Ethernet
Chapitre 4 - Réseaux Ethernet
 
Arp Poisoning
Arp PoisoningArp Poisoning
Arp Poisoning
 
Chapitre 2 - Protocole Modbus (2020/2021)
Chapitre 2 - Protocole Modbus (2020/2021)Chapitre 2 - Protocole Modbus (2020/2021)
Chapitre 2 - Protocole Modbus (2020/2021)
 
Cours eigrp i pv4 et ipv6
Cours eigrp i pv4 et ipv6Cours eigrp i pv4 et ipv6
Cours eigrp i pv4 et ipv6
 
Protocole rip
Protocole ripProtocole rip
Protocole rip
 
Les trames reseaux
Les trames reseauxLes trames reseaux
Les trames reseaux
 
3 switchport securité
3 switchport securité3 switchport securité
3 switchport securité
 
Cours Bus de communication et réseaux industriels. Chapitre 2 : Modbus.
Cours Bus de communication et réseaux industriels. Chapitre 2 : Modbus.Cours Bus de communication et réseaux industriels. Chapitre 2 : Modbus.
Cours Bus de communication et réseaux industriels. Chapitre 2 : Modbus.
 
13 rip.fm
13 rip.fm13 rip.fm
13 rip.fm
 
Cours frame relay
Cours frame relayCours frame relay
Cours frame relay
 
Chapitre 2 - Transmission
Chapitre 2  - TransmissionChapitre 2  - Transmission
Chapitre 2 - Transmission
 
Hdlc
HdlcHdlc
Hdlc
 
Protocole OSPF
Protocole OSPFProtocole OSPF
Protocole OSPF
 
Le protocole stp
Le protocole stpLe protocole stp
Le protocole stp
 
Chapitre 6 - Protocoles TCP/IP, UDP/IP
Chapitre 6  - Protocoles TCP/IP, UDP/IPChapitre 6  - Protocoles TCP/IP, UDP/IP
Chapitre 6 - Protocoles TCP/IP, UDP/IP
 
Généralités sur les périphériques du STM32
Généralités sur les périphériques du STM32Généralités sur les périphériques du STM32
Généralités sur les périphériques du STM32
 

Similaire à Cours couche transport

Similaire à Cours couche transport (20)

Socket tcp ip client server on langace c
Socket tcp ip client server on langace c Socket tcp ip client server on langace c
Socket tcp ip client server on langace c
 
Chapitre-4-Programmation-réseau-avec-les-sockets.pdf
Chapitre-4-Programmation-réseau-avec-les-sockets.pdfChapitre-4-Programmation-réseau-avec-les-sockets.pdf
Chapitre-4-Programmation-réseau-avec-les-sockets.pdf
 
FR - Les réseaux Ethernet - le format des trames.pdf
FR - Les réseaux Ethernet - le format des trames.pdfFR - Les réseaux Ethernet - le format des trames.pdf
FR - Les réseaux Ethernet - le format des trames.pdf
 
SdE 11 - Reseau
SdE 11 - ReseauSdE 11 - Reseau
SdE 11 - Reseau
 
Cours couche reseau
Cours couche reseauCours couche reseau
Cours couche reseau
 
SDE 10 - Reseau
SDE 10 - ReseauSDE 10 - Reseau
SDE 10 - Reseau
 
Les socket ing1_issat
Les socket ing1_issatLes socket ing1_issat
Les socket ing1_issat
 
Présentation ip over atm
Présentation ip over atmPrésentation ip over atm
Présentation ip over atm
 
Le protocole rip
Le protocole rip Le protocole rip
Le protocole rip
 
Les sockets.pptx
Les sockets.pptxLes sockets.pptx
Les sockets.pptx
 
vpn
vpnvpn
vpn
 
Formation Bus de Terrain _Partie 3_1 _Modbus tcp
Formation Bus de Terrain _Partie 3_1 _Modbus tcpFormation Bus de Terrain _Partie 3_1 _Modbus tcp
Formation Bus de Terrain _Partie 3_1 _Modbus tcp
 
Sockets
SocketsSockets
Sockets
 
M1.3.pdf
M1.3.pdfM1.3.pdf
M1.3.pdf
 
cours_sockets_chap3 patie_I_22_03_2020.pdf
cours_sockets_chap3 patie_I_22_03_2020.pdfcours_sockets_chap3 patie_I_22_03_2020.pdf
cours_sockets_chap3 patie_I_22_03_2020.pdf
 
Ccna1
Ccna1Ccna1
Ccna1
 
Routage
RoutageRoutage
Routage
 
Cours 2 les architectures reparties
Cours 2 les architectures repartiesCours 2 les architectures reparties
Cours 2 les architectures reparties
 
Général réseau typologie et architecture
Général réseau typologie et architecture Général réseau typologie et architecture
Général réseau typologie et architecture
 
Architecture SAP Web AS
Architecture SAP Web ASArchitecture SAP Web AS
Architecture SAP Web AS
 

Dernier

Grammaire pour les élèves de la 6ème.doc
Grammaire pour les élèves de la  6ème.docGrammaire pour les élèves de la  6ème.doc
Grammaire pour les élèves de la 6ème.docKarimKhrifech
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film françaisTxaruka
 
Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipM2i Formation
 
presentation l'interactionnisme symbolique finale.pptx
presentation l'interactionnisme symbolique  finale.pptxpresentation l'interactionnisme symbolique  finale.pptx
presentation l'interactionnisme symbolique finale.pptxMalikaIdseaid1
 
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxApproche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxssusercbaa22
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertChristianMbip
 
présentation sur l'échafaudage dans des travaux en hauteur
présentation sur l'échafaudage dans des travaux en hauteurprésentation sur l'échafaudage dans des travaux en hauteur
présentation sur l'échafaudage dans des travaux en hauteurdinaelchaine
 
gestion des conflits dans les entreprises
gestion des  conflits dans les entreprisesgestion des  conflits dans les entreprises
gestion des conflits dans les entreprisesMajdaKtiri2
 
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxSUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxssuserbd075f
 
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...M2i Formation
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptxSAID MASHATE
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.Txaruka
 
Mécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.pptMécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.pptssusercbaa22
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne FontaineTxaruka
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.Franck Apolis
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptxTxaruka
 
MaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptMaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptssusercbaa22
 
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdf
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdfMICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdf
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdfssuser40e112
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...Faga1939
 

Dernier (20)

Grammaire pour les élèves de la 6ème.doc
Grammaire pour les élèves de la  6ème.docGrammaire pour les élèves de la  6ème.doc
Grammaire pour les élèves de la 6ème.doc
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film français
 
Formation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadershipFormation M2i - Comprendre les neurosciences pour développer son leadership
Formation M2i - Comprendre les neurosciences pour développer son leadership
 
presentation l'interactionnisme symbolique finale.pptx
presentation l'interactionnisme symbolique  finale.pptxpresentation l'interactionnisme symbolique  finale.pptx
presentation l'interactionnisme symbolique finale.pptx
 
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxApproche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
 
Pâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie PelletierPâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie Pelletier
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expert
 
présentation sur l'échafaudage dans des travaux en hauteur
présentation sur l'échafaudage dans des travaux en hauteurprésentation sur l'échafaudage dans des travaux en hauteur
présentation sur l'échafaudage dans des travaux en hauteur
 
gestion des conflits dans les entreprises
gestion des  conflits dans les entreprisesgestion des  conflits dans les entreprises
gestion des conflits dans les entreprises
 
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxSUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
 
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.
 
Mécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.pptMécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.ppt
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne Fontaine
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptx
 
MaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptMaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.ppt
 
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdf
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdfMICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdf
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdf
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
 

Cours couche transport

  • 1. Le Protocole ICMP (1) • Le protocole ICMP (Internet Control Message Protocol) permet d’envoyer des messages de contrôle ou d’erreur vers d’autres machines ou passerelles. • Beaucoup d’erreurs sont causées par l’émetteur, mais d’autres sont dûes à des problèmes d’interconnexions rencontrées sur l’Internet : – Machine destination déconnectée, – Durée de vie du datagramme expirée, – Congestion de passerelles intermédiaires.
  • 2. Le Protocole ICMP(2) • Si une passerelle détecte un problème sur un datagramme IP, elle le détruit et émet un message ICMP pour informer l’émetteur initial. • Les messages ICMP sont véhiculés à l’intérieur de datagrammes IP et sont routés comme n’importe quel datagramme IP sur l’internet. • Une erreur engendrée par un message ICMP ne peut donner naissance à un autre message ICMP (évite l’effet cummulatif).
  • 3. ICMP : format des messages TYPE 8 bits; type de message CODE 8 bits; informations complémentaires CHECKSUM 16 bits; champ de contrôle HEAD-DATA en-tête datagramme + 64 premiers bits des données. TYPE Message ICMP TYPE Message ICMP 0 Echo Reply 3 Destination Unreachable 4 Source Quench 5 Redirect (change a route) 8 Echo Request 11 Time Exceeded (TTL) 12 Parameter Problem with a Datagram 13 Timestamp Request 14 Timestamp Reply 15 Information Request (obsolete) 16 Information Reply (obsolète) 17 Address Mask Request 18 Address Mask Reply
  • 4. ICMP : format des commandes IDENTIFIER et SEQUENCE NUMBER sont utilisés par l’émetteur pour contrôler les réponses aux requêtes, (CODE = 0). TYPE CODE Identifieur Données spécifiques . . . CHECKSUM 0 8 16 31 Seq. number Demande d’écho et réponse d’écho (Echo Request, Echo Reply) – Permettent à une machine ou passerelle de déterminer la validité d’un chemin sur le réseau. – Le champ de données spécifiques est composé de données optionnelles de longueur variable émises par la requête d'écho et devant être renvoyées par le destinataire si présentes. – Utilisé par les outils applicatifs tels que: ping.
  • 5. ICMP : les commandes Synchronisation des Horloges et temps de transit • Les horloges de deux machines qui diffèrent de manière importante peuvent poser des problèmes pour des logiciels distribués. • Une machine peut émettre une demande d’horodatage (timestamp request) à une autre machine susceptible de lui répondre (timestamp reply) en donnant l’heure d’arrivée de la demande et l’heure de départ de la réponse. • L’émetteur peut alors estimer le temps de transit ainsi que la différence entre les horloges locale et distante. • Le champ de données spécifiques comprend l’heure originale (originate timestamp) émis par le demandeur, l’heure de réception (receive timestamp) du destinataire, et l’heure de départ (transmit timestamp) de la réponse.
  • 6. ICMP : les commandes Demande et réponse d’information (Information Request + Reply) • Ces messages étaient initialement utilisés pour permettre aux machines de connaître leur adresse IP au démarrage du système. • Ces commandes sont aujourd’hui remplacées par les protocoles RARP et BOOTP. Obtention de masque de sous-réseau • Une machine peut émettre une demande de masque de sous-réseau (Subnet Mask Request) vers une passerelle gérant le sous-réseau en question. • La passerelle transmet par une “Subnet Mask Reply”, l’adresse de masque de sous-réseau dans le champ de donnée spécifique.
  • 7. ICMP : les messages d’erreur • CODE indique le codage de l’erreur rapportée et est spécifique à chaque TYPE CODE SPECIFIQUE CHECKSUM 0 8 16 31 IP Header + First 64 bits Format des messages d’erreur ICMP • CODE indique le codage de l’erreur rapportée et est spécifique à chaque type d’erreur, • SPECIFIQUE est un champ de données spécifique au type d’erreur, • IP HEADER + FIRST 64 bits contient l’en-tête IP + les premiers 64 bits de données du datagramme pour lequel le message est émis.
  • 8. ICMP : les messages d’erreur • Lorsqu’une passerelle émet un message ICMP de type destination inaccessible, le champ code décrit la nature de l’erreur : – 0 Network Unreachable – 1 Host Unreachable – 2 Protocol Unreachable – 3 Port Unreachable – 4 Fragmentation Needed – 5 Source Route Failed– 5 Source Route Failed – 6 Destination Network Unknown – 7 Destination Host Unknown – 8 Source Host Isolated – 9 Communication with desination network administratively prohibited – 10 Communication with desination host administratively prohibited – 11 Network Unreachable for type of Service – 12 Host Unreachable for type of Service
  • 9. ICMP : contrôle de congestion • Une situation de congestion se produit : – lorsqu’une passerelle est connectée à deux réseaux aux débits différents (elle ne peut écouler au rythme imposé par le réseau le plus rapide), – lorsque de nombreuses machines émettent simultanément des datagrammes vers une passerelle. • Pour palier ce problème, la machine peut émettre un message ICMP de• Pour palier ce problème, la machine peut émettre un message ICMP de limitation de débit de la source (Source Quench) vers l’émetteur. • Il n’existe pas de message d’annulation de limitation de débit. La source diminue le débit, puis l’augmente progressivement tant qu’elle ne reçoit pas de nouvelle demande de limitation.
  • 10. ICMP : modification de route Un message ICMP de redirection de route peut être transmis par une passerelle vers une machine reliée au même réseau pour lui signaler que la route n’est pas optimale. R1 R2Internet B Une fois la redirection effectuée, les datagrammes seront acheminés vers la passerelle appropriée. A R1 R2Internet Route par défaut Redirection ICMP 2ème routage
  • 11. ICMP : modification de route • Dans le bloc de commande, le champ SPECIFIQUE indique l’adresse de la passerelle que la machine doit utiliser pour router le datagramme; CODE spécifie la redirection : CODE SIGNIFICATION 0 Redirect datagrams for the Network 1 Redirect datagrams for the Host 2 Redirect datagrams for the Type of Service and Network 3 Redirect datagrams for the Type of Service and Host
  • 12. ICMP : autres compte-rendus • Lorsqu’une passerelle ou une machine détecte un problème avec un datagramme (en-tête incorrecte) non couvert par les messages ICMP prédéfinis, elle émet un message “Parameter Problem on a Datagram” vers l’émetteur du datagramme. • Le problème rencontré consiste soit en une option manquante (dans le datagramme), soit en une donnée erronée. • Dans le bloc de commande, le champ CODE indique la nature du pb: CODE SIGNIFICATION 0 erreonous data 1 missing option • Le champ spécifique comprend un pointeur (codé sur les 8 premiers bits, les 24 restants étant à 0) servant à identifier l’octet erroné dans le datagramme; il est non significatif lorsque CODE = 1.
  • 13. Couche Transport • TCP : Transmission Control Protocol• TCP : Transmission Control Protocol • UDP : User Datagram Protocol
  • 14. UDP : User Datagram Protocol • UDP : protocole de transport sans connexion de service applicatif : – émission de messages applicatifs : sans établissement de connexion au préalable – l'arrivée des messages ainsi que l’ordonnancement ne sont pas garantis. • Identification du service : les ports – les adresses IP désignent les machines entre lesquelles les communications sont établies. – Lorsqu'un processus désire entrer en communication avec un autre processus, il doit s’adresser au processus exécuté sur la machine réceptrice.
  • 15. UDP : les Ports • Ces destinations abstraites permettant d'adresser un service applicatif s'appellent des ports de protocole. • L'émission d'un message se fait sur la base d'un port source et un port destinataire. • Les processus disposent d'une interface système leur permettant de spécifier un port ou d'y accéder (socket, ...). • Les accès aux ports sont généralement synchrones, • Les opérations sur les ports sont tamponnés (files d'attente).
  • 16. UDP : Format des messages Les messages UDP sont également appelés des datagrammes UDP. Ils contiennent deux parties : un en-tête UDP et les données UDP. Port UDP source Longueur message UDP Port UDP dest. 0 16 31 Données ... Format des messages UDPChecksum UDP • Les ports source et destination contiennent les numéros de port utilisés par UDP pour démultiplexer les datagrammes destinés aux processus en attente de les recevoir. •Le port source est facultatif (égal à zéro si non utilisé). •La longueur du message est exprimée en octets (8 au minimum) , •Le champ de contrôle est optionnel (0 si non utilisé). Données ...
  • 17. UDP : pseudo en-tête • Lorsqu'il est utilisé, le champ de contrôle couvre plus d'informations que celles contenue dans le datagramme UDP; • En effet, le checksum est calculé avec un pseudo-en-tête non transmis dans le datagramme: 0 8 16 31 Format du pseudo en-tête Adresse IP Source Adresse IP Destination •Le champ PROTO indique l'identificateur de protocole pour IP (17= UDP) •Le champ LONGUEUR UDP spécifie la longueur du datagramme UDP sans le pseudo-en-tête. zéro Format du pseudo en-tête proto Longueur UDP Adresse IP Destination
  • 18. UDP : Multiplexage • UDP multiplexe et démultiplexe les datagrammes en sélectionnant les numéros de ports : – une application obtient un numéro de port de la machine locale; dès que l'application émet un message via ce port, le champ PORT SOURCE du datagramme UDP contient ce numéro de port, – une application connaît un numéro de port distant afin de communiquer avec le service désiré.communiquer avec le service désiré. • Lorsque UDP reçoit un datagramme, il vérifie que celui-ci est un des ports actuellement actifs (associé à une application) et le délivre à l'application responsable • Si ce n'est pas le cas, il émet un message ICMP port unreachable, et détruit le datagramme.
  • 19. UDP : les ports standards • Certains ports sont réservés (well-kown port assignements) : No port Mot-clé Description 7 ECHO Echo 11 USERS Active Users 13 DAYTIME Daytime 37 TIME Time 42 NAMESERVER Host Name Server 53 DOMAIN Domain Name Server 67 BOOTPS Boot protocol server 68 BOOTPC Boot protocol client 69 TFTP Trivial File transfert protocol 123 NTP Network Time Protocol 161 SNMP Simple Network Management prot. • D'autres numéros de port (non réservés) peuvent être assignés dynamiquement aux applications.
  • 20. TCP : Transmission Control Protocol • Transport fiable de la technologie TCP/IP. – Transferts tamponés : découpage en segments – Connexions bidirectionnelles et simultanées • Service en mode connecté • Garantie de non perte de messages
  • 21. TCP : La connexion • une connexion de type circuit virtuel est établie avant que les données ne soient échangées : appel + négociation + transferts • Une connexion = une paire d'extrémités de connexion • Une extrémité de connexion = couple (adresse IP, port) • Exemple de connexion : ((124.32.12.1, 1034), (19.24.67.2, 21)) • Une extrémité de connexion peut être partagée par plusieurs autres extrémités de connexionsextrémités de connexions • La mise en oeuvre de la connexion se fait en deux étapes : – une application (extrémité) effectue une ouverture passive en indiquant qu'elle accepte une connexion entrante, – une autre application (extrémité) effectue une ouverture active pour demander l'établissement de la connexion.
  • 22. TCP : Segmentation • Segmentation, contrôle de flux – Les données transmises à TCP constituent un flot d'octets de longueur variable. – TCP divise ce flot de données en segments en utilisant un mécanisme de fenêtrage. – Un segment est émis dans un datagramme IP. • Acquittement de messages – Contrairement à UDP, TCP garantit l'arrivée des messages, c'est à dire qu'en cas de perte, les deux extrémités sont prévenues. – Ce concept repose sur les techniques d’acquittement de message : lorsqu'une source S émet un message Mi vers une destination D, S attend un acquittement Ai de D avant d'émettre le message suivant Mi+1. – Si l’acquittement Ai ne parvient pas à S, S considère au bout d'un certain temps que le message est perdu et reémet Mi :
  • 23. TCP : Acquittements Source Réseau Destination Emission de Mi Temporisation armée Mi n‘est pas reçu Ai non envoyé Ai n’est pas reçuAi n’est pas reçu Tempo. echue Réemission de Mi Réception de Mi Emission de Ai Réception de Ai
  • 24. TCP : le fenêtrage • La technique acquittement simple pénalise les performances puisqu'il faut attendre un acquittement avant d'émettre un nouveau message. • Le fenêtrage améliore le rendement des réseaux.• Le fenêtrage améliore le rendement des réseaux. • La technique du fenêtrage : une fenêtre de taille T, permet l'émission d'au plus T messages "non acquittés" avant de ne plus pouvoir émettre
  • 25. TCP : le fenêtrage Source Réseau Destination Emission de Mi Emission de Mi+1 Réception de Mi Emission de Ai Reception de Ai Emission de Mi+2 Reception de Ai Fenêtrage de taille 3
  • 26. TCP : format du segment • Segment : unité de transfert du protocole TCP. – Echangés pour établir les connexions, – Transférer les données, – Emettre des acquittements, – Fermer les connexions; Port source Port destination 0 4 10 16 24 31 Port source Port destination Numéro de séquence Numéro d’acquittement HLEN réservé Codes fenêtre Checksum pointeur urgence Options éventuelles padding Données . . .
  • 27. TCP : format du segment • Numéro de séquence : le numéro de séquence du premier octet (NSP) de ce segment. Généralement à la suite d’octets O1, O2, ..., On (données du message) est associée la suite de numéro de séquence NSP, NSP+1, ..., NSP+n. • Numéro d’acquittement : le prochain numéro de séquence NS attendu par l’émetteur de cet acquittement. Acquitte implicitement les octets NS-1, NS-l’émetteur de cet acquittement. Acquitte implicitement les octets NS-1, NS- 2, etc. • Fenêtre: la quantité de données que l’émetteur de ce segment est capable de recevoir; ceci est mentionné dans chaque segment (données ou acquittement).
  • 28. TCP : format du segment • CODE BITS : indique la nature du segment : – URG : le pointeur de données urgentes est valide, les données sont émises sans délai, les données reçues sont remises sans délai. – SYN : utilisé à l’initialisation de la connexion pour indiquer où la numérotation séquentielle commence. Syn occupe lui-même un numéro denumérotation séquentielle commence. Syn occupe lui-même un numéro de séquence bien que ne figurant pas dans le champ de données. – FIN : utilisé lors de la libération de la connexion;
  • 29. TCP : format du segment – PSH : fonction push. Normalement, en émission, TCP reçoit les données depuis l’applicatif , les transforme en segments à sa guise puis transfère les segments sur le réseau; Un récepteur TCP décodant le bit PSH, transmet à l’application réceptrice les données correspondantes sans attendre plus de données de l’émetteur. – RST : utilisé par une extrémité pour indiquer à l’autre extrémité qu’elle doit réinitialiser la connexion. Ceci est utilisé lorsque les extrémités sont désynchronisées.
  • 30. TCP : format du segment • CHECKSUM : calcul du champ de contrôle : utilise un pseudo-en-tête et s'applique à la totalité du segment obtenu (PROTO =6) : Adresse IP source Adresse IP destination zéro protocole (6) longueur TCP
  • 31. TCP : format du segment OPTIONS • Permet de négocier la taille maximale des segments échangés. Cette option n'est présente que dans les segments d'initialisation de connexion (avec bit SYN). • TCP calcule une taille maximale de segment de manière à ce que le datagramme IP résultant corresponde au MTU du réseau. Ladatagramme IP résultant corresponde au MTU du réseau. La recommandation est de 536 octets. • La taille optimale du segment correspond au cas où le datagramme IP n’est pas fragmenté mais : – il n’existe pas de mécanisme pour connaître le MTU, – le routage peut entraîner des variations de MTU, – la taille optimale dépend de la taille des en-têtes (options).
  • 32. TCP : acquittements Acquittements et retransmissions • Le mécanisme d’acquittement de TCP est cumulatif : – il indique le numéro de séquence du prochain octet attendu : tous les octets précédents cumulés sont implicitement acquittés – Si un segment a un numéro de séquence supérieur au numéro de séquence attendu (bien que dans la fenêtre), le segment est conservé mais l’acquittement référence toujours le numéro de séquence attendu.mais l’acquittement référence toujours le numéro de séquence attendu. • Pour tout segment émis, TCP s’attend à recevoir un acquittement: – Si le segment n’est pas acquitté, le segment est considéré comme perdu et TCP le retransmet. – Or un réseau d’interconnexion offre des temps de transit variables nécessitant le réglage des temporisations; – TCP gère des temporisations variables pour chaque connexion en utilisant un algorithme de retransmission adaptative
  • 33. TCP : acquittements TCP source TCP destination Seq=3 Envoi de 300 octets Seq=303 Envoi de 300 octets Ack=303 Seq=603 Attente car Attente de 303 Fenêtre=900 Segment=300 Envoi de 300 octetsAttente car f = 900 Attente de 303 Ack=303 Seq=303 Envoi de 300 octets Seq=603 Envoi de 300 octets Ack=903 Peut être conservé ==> peut ne pas être réémis car acquitté entre temps
  • 34. TCP : retransmissions algorithme de retransmission adaptative • enregistre la date d’émission d’un segment, • enregistre la date de réception de l’acquittement correspondant, • calcule l’échantillon de temps de boucle A/R écoulé, • détermine le temps de boucle moyen RTT (Round Trip Time) : RTT = (a * anc_RTT) + ((1-a) * NOU_RTT)) avec 0<= a < 1 a proche de 1 : RTT insensible aux variations brèves, a proche de 0 : RTT très sensible aux variations rapides, • calcule la valeur du temporisateur en fonction de RTT. • Les premières implémentations de TCP ont choisi un coefficient constant B pour déterminer cette valeur : Temporisation = B * RTT avec B >1 (généralement B=2). • Aujourd’hui de nouvelles techniques sont appliquées pour affiner la mesure du RTT : l’algorithme de Karn.
  • 35. TCP : retransmissions L’algorithme de Karn repose sur les constatations suivantes : • en cas de retransmission d’un segment, l’émetteur ne peut savoir si l’acquittement s’adresse au segment initial ou retransmis (ambiguïté des acquittements), =>l’échantillon RTT ne peut donc être calculé correctement, • TCP ne doit pas mettre à jour le RTT pour les segments retransmis. • L’algorithme de Karn combine les retransmissions avec l’augmentation des temporisations associées (timer backoff): – une valeur initiale de temporisation est calculée – si une retransmission est effectuée, la temporisation est augmentée (généralement le double de la précédente, jusqu’à une valeur plafond). • Cet algorithme fonctionne bien même avec des réseaux qui perdent des paquets.
  • 36. TCP : la congestion Gestion de la congestion • TCP gère le contrôle de flux de bout en bout mais également les problèmes de congestion liés à l’interconnexion. • La congestion correspond à la saturation de noeud(s) dans le réseau provoquant des délais d’acheminement de datagrammes jusqu‘a leur pertes éventuelles.éventuelles. Dans la technologie TCP/IP, les passerelles (niveau IP) utilisent la réduction du débit de la source mais TCP participe également à la gestion de la congestion en diminuant le débit lorsque les délais s’allongent.
  • 37. TCP : connexion Une connexion TCP est établie en trois temps de manière à assurer la synchronisation nécessaire entre les extrémités : TCP source TCP destination Syn seq=x Syn seq=y,ack=x+1 Ce schéma fonctionne lorsque les deux extrémités effectuent une demande d'établissement simultanément. TCP ignore toute demande de connexion, si cette connexion est déjà établie. Syn seq=y,ack=x+1 Ack y+1
  • 38. TCP retransmissions • Si la congestion disparaît, TCP définit une fenêtre de congestion égale à 1 segment et l’incrémente de 1 chaque fois qu’un acquittement est reçu; ce mécanisme permet un démarrage lent et progressif : Fenêtre_congestion = 1, émission du 1er segment, attente acquittement, réception acquittement, Fenêtre_congestion = 2,Fenêtre_congestion = 2, émission des 2 segments, attente des acquittements, réception des 2 acquittements, Fenêtre_congestion = 4, émission des 4 segments, ... Log2 N itérations pour envoyer N segments. Lorsque la fenêtre atteint une fois et demie sa taille initiale, l’incrément est limité à 1 pour tous les segments acquittés de la fenêtre.
  • 39. TCP : déconnexion • Une connexion TCP est libérée en un processus dit "trois temps modifié": TCP source TCP destination Fin seq=x ack=x+1 + fin-> applicatif Ack y+1 Applicatif -> close Fin seq=y ack=x+1
  • 40. TCP : ports standards No port Mot-cléDescription 20 FTP-DATA File Transfer [Default Data] 21 FTP File Transfer [Control] 23 TELNET Telnet 25 SMTP Simple Mail Transfer 37 TIME Time 42 NAMESERVER Host Name Server 43 NICNAME Who Is 53 DOMAIN Domain Name Server 79 FINGER Finger 80 HTTP WWW 110 POP3 Post Office Protocol - Version 3 111 SUNRPC SUN Remote Procedure Call
  • 41. TCP : L’automate Fermé Ecoute (Listen) SYN reçu SYN émis Réinitialisation SYN/SYN+ACK RST ouverture passive fermeture Send SYN SYN/SYN+ACK Etablie ACK SYN+ACK/ACK Départ Fermer RST Tempo. exp. ouverture active/ SYN Etablie ACK SYN+ACK/ACK Attente Fermer Dernier ACK FIN Attente -1 FIN/ACK Fermeture en cours Fermer/FIN FIN Attente -2 Tempo. expirée ACK of FIN FIN / ACK tempo. expire aprés 2 durée de vie de segment ACK rcv ACK of FIN Close/FIN rcv rcv FIN (send) FIN/ACK