SlideShare une entreprise Scribd logo
1  sur  63
Chapitre 1a
Les services d’application et le
passage au réseau
Dr Paul Ghobril
Introduction
• Avant de passer aux fonctionnalités du réseau
on présente les services de base (applications).
• La pile des protocoles (l’ensemble des couches)
est au service des applications (couche 7).
• Les applications échangent entre elles des
messages et des commandes
• L’objectif de ce chapitre est de montrer la
simplicité des protocoles hormis le côté réseau
et d’évoquer ensuite le besoin des différentes
couches inférieures.
Les services de courrier
SMTP (simple mail transfer
protocol)
• Commandes côté client:
– HELO exp (requête de
connexion)
– MAIL FROM: adr_exp
– RCPT TO:ad_dest
– DATA (fin marquée par
<CRLF>.<CRLF>)
– QUIT
– RSET (annulation du mail en
cours)
– NOOP
• Commandes côté serveur de
mail:
– 250 (ok)
– 251 (utilisateur non local
retransmission)
– 450 ou 550 (boîte à lettre non
accessible)
– 451 (erreur de traitement)
– 551 (utilisateur non local
redirection)
– 553 (nom de la boîte illégal)
– 552 (épuisement de la
mémoire allouée)
– 354 (commencez à
transmettre)
– 554 (échec)
Server1.com
Server2.com
Boîte à lettre: user1
Boîte à lettre: user2
…
SMTP (simple mail transfer
protocol)
Émetteur SMTP
Récepteur SMTP
Réseau
HELO server1
HELO server2
Boîte à lettre: user1
Boîte à lettre: user2
…
Server1.com
Server2.com
SMTP (simple mail transfer
protocol)
Émetteur SMTP
Récepteur SMTP
Réseau
MAIL FROM: abc@server1.com
250 OK
Boîte à lettre: user1
Boîte à lettre: user2
…
Server1.com
Server2.com
SMTP (simple mail transfer
protocol)
Émetteur SMTP
Récepteur SMTP
Réseau
RCPT TO: user1@server2.com
250 OK
Boîte à lettre: user1
Boîte à lettre: user2
…
Server1.com
Server2.com
SMTP (simple mail transfer
protocol)
Émetteur SMTP
Récepteur SMTP
Réseau
DATA
354 start input
Boîte à lettre: user1
Boîte à lettre: user2
…
From: <abc@server1.com>
Subject: Confirmation
To: <user1@server2.com>
Bonjour,
On a reçu les colis
.
Server1.com
Server2.com
SMTP (simple mail transfer
protocol)
Émetteur SMTP
Récepteur SMTP
Réseau
250 OK
Boîte à lettre: user1
Boîte à lettre: user2
…
Server1.com
Server2.com
Les protocoles du service courrier
Émetteur SMTP
Récepteur SMTP
Réseau
SMTP
SMTP
POP3, IMAP4
POP3, IMAP4
POP3 (post office protocol)
STAT: précise le nombre et
la taille des messages
+OK msgCount size
+OK 8 2012
LIST [msgId]: idem pour un
msg particulier (ou détails)
+OK msgId size
+OK 2 67
RETR msg: récupérer un
msg
+OK bonjour, on a recu les
colis
.
DLE msg:suppression
NOOP: diagnostic +OK
RSET: annule les demandes
en attente
+OK mail drop has 3
messages (400 bytes)
QUIT +OK ou -ERR
POP3 (post office protocol)
USER nom: précise le nom
de la boîte à lettre
+OK message d’accueil
PASS motDePasse +OK user1 maildrop has 5
messages (2670 octets)
TOP msg n: en-tête du msg
et n premières lignes
+OK suivi de l’en-tête suivi
d’une ligne vide suivi des n
lignes
POP3
• à l’établissement de la connexion le
serveur POP3 envoie un message
d’accueil et passe à l’état
d’authentification.
• Après l’authentification on passe à l’état
d’échange de messages.
• Après QUIT on passe à l’état de mise à
jour et la connexion est relâchée.
POP3 (post office protocol)
<Connexion>
S  C: +OK dewey POP3
server ready
USER kss
+OK kss is a real hoopy
frood
PASS mypasswd
+OK kss’s maildrop has 7
messages (1729
octets)
STAT
+OK 7 1729
LIST
+OK 7 messages (1729
octets)
1 340
2 512
…
<CR>.<LF>
RETR 1
+OK <les 340 octets>
<CR>.<LF>
QUIT
+OK dewey POP3 server
signing off
IMAP4 (Internet Message Access
Protocol)
• Les boîtes à lettre sont gérées, consultées
et modifiées tout en les gardant dans le
serveur.
• Synchronisation de la boîte à lettre locale
avec celle du serveur.
IMAP4 (Internet Message Access Protocol)
Connexion initiale et accueil
Non authentifié
Authentifié
Sélectionné
Fermeture de la connexion
OK
PREAUTH BYE
LOGIN
SELECT (choisir
une boîte à lettre)
CLOSE
LOGOUT
LOGOUT
LOGOUT
IMAP4
• Les commandes se terminent par <CRLF>
• Les commandes du client commencent par un
identificateur nommé TAG. La réponse du serveur
indique le TAG qui doit être différent pour chaque
commande.
• Les réponses du serveurs commencent par:
– TAG suivi de l’indicateur (OK, BAD ou NO)
– + pour la suite d’une réponse
– * pour répondre à une réponse sans identificateur ou pour une
réponse sans avoir une commande du client.
0F 3C 07 commande <CRLF>
TAG
0F 3C 07 réponse <CRLF>
TAG
OK
IMAP4:Identifier un courrier
• Identificateur unique (UID): le message a un
identificateur de 32 bit associé à un
identificateur unique de validité de 32 bits qui
identifie la boîte à lettre.
• le numéro de séquence précise la position
relative du message dans la boîte à lettre
• L’indicateur (FLAG) du message précise son
état: seen, answered, flagged, deleted, …
IMAP4: Les commandes par état
Tout état Non
Authentifié
Authentifié Sélectionné
CAPABILITY
Liste des
fonctions
supportées par
le serveur
AUTHENTICATE
Authentification
cryptée
SELECT
Pour choisir
une boîte à
lettre
SUBSCRIBE
Ajouter la boite
à lettre à une
liste
CHECK
Restituer
l’état des
msg
STORE
Mettre à jour
un msg déjà lu
par FETCH
NOOP
pour « réveiller
» le serveur
LOGIN
Authetification
en clair
EXAMINE
Choisir une
boîte à lettre
pour lecture
seulement
UNSUBSCRIBE
Enlever la
boîte à lettre
d’une liste
CLOSE
Retourner à
l’état auth.
COPY
Pour copier
le msg à une
boite à lettre
LOGOUT
Pour sortir
CREATE
Créer une
boîte à lettre
LIST, LSUB
énumérer les
boites à lettre
d’une liste
donnée
EXPUNGE
Supprimer les
msg marqués
deleted
UID utilisée
avec les autres
commandes
remplace le No
de seq par l’UID
DELETE
Suppression
d’une boîte à
lettre
APPEND
Ajouter un
courrier à une
boîte à lettre
SEARCH
Chercher un
msg (par un
critère)
Commandes
des autres
états
RENAME
Renommer
une boîte à
lettre
STATUS
Les flags
FETCH
Restituer un
msg
Configuration
Configuration
Services d’accès à distance
TELNET
• Effectuer l’accès aux ressources d’une machine à distance.
• Simulation d’un terminal (Terminal virtuel ou NVT).
• Négociation des options du terminal.
• Codes échangés: ASCII 32 à 126 et des codes de contrôle comme <CR> et
<LF>.
• Commandes: 2 ou 3 octets:
– Premier octet: 255 (IAC interpret as command)
– Second octet: Commande
– Éventuellement troisième octet: option négociée
• Négociation: DO, DON’T, WILL, WON’T
Réseau
Telnet Client
Telnet Serveur
TELNET
• Commandes:
– 241 (NOP)
– 243 (caractère Break)
– 250 (SB) début d’une sous-
négociation
– 240 (SE) fin d’une sous-
négociation
– 251 (WILL) confirme
l’option
– 252 (WON’T) refuse
l’option
– 253 (DO) demande l’option
– 254 (DON’T) interdit
l’option
– 248 (EL) supprimer une
ligne
– 247 (EC) supprimer un
caractère
– 246 (AYT) tu es là?
• Exemple:
• Client: DO window size
• Serveur: WILL window size
• C: SB Window Size 0 80 0 24
• C: SE
Transfert de fichiers
FTP(File Transfer Protocol)
• Pour le transfert de fichier FTP nécessite
deux canaux de connexion, un pour le
contrôle et un pour les données.
FTP
Connexion à un
serveur distant
OPEN, USER, PASS
Choisir
un dossier
(directory)
CD, LCD (local cd)
List des fichiers DIR, LS
Préciser le mode
et le type
de transfert
Mode:
• Block (le fichier conserve son format)
• Stream (flot d’octet)
Type: ASCII, EBCDIC, Image (suite d’octets)
Transfert
du fichier
GET, MGET, PUT, MPUT (M=multiple)
Terminer
la session
QUIT, CLOSE
FTP
• Les codes de réponse à 3
digits:
– 1xx Positive preliminary
reply.
– 2xx Positive completion
reply.
– 3xx Positive intermediate
reply.
– 4xx Transient negative
completion reply.
– 5xx Permanent negative
completion reply.
• Exemple:
– FTP foreignhost
– 220 service ready
– USERNAME cms01
– 331 user name okay
– PASSWORD xyxyx
– 230 user logged in
– TYPE Image
– 200 command okay
TFTP (Trivial File Transfer Protocol)
• Utilise un protocole de transport non fiable
(UDP) donc doit assurer lui-même la
retransmission.
• Vu sa compacité (nécessite peut d’espace
mémoire) TFTP est utilisé pour télécharger un
système d’exploitation.
• On n’authentifie pas dans TFTP. Le serveur
s’occupe normalement de la sécurité (par une
liste d’accès par exemple)
TFTP: les messages
• 1: requête de lecture (RRQ)
• 2: requête d’écriture (WRQ)
• 3: données (DATA)
• 4: acquittement (ACK)
• 5: erreur (ERROR)
WRQ
Nom du
fichier
0 Mode 0
Type de
fichier
ACK 0
DATA Num bloc
Données
<=512 octets
ACK Num bloc
ERR
Code
erreur
Message
D’erreur
0
ou
Passage aux couches inférieures
Les ports et les sockets
• On doit déterminer quels processus entre quelles machines sont connectés
ensemble. Il faut identifier la connexion.
• Un processus passe à la couche inférieure à travers un ou plusieurs point d’accès
qu’on appelle port (16-bit). Ce point d’accès un numéro qui identifie le processus.
• Un socket détermine: le protocole de la couche inférieure, les adresses IP ainsi que
les numéros des ports des deux bouts de la connexion. C’est un identificateur unique
de la connexion.
Processus A Application Processus B Application
193.44.230.3 193.44.200.8
TCP TCP
1500 21
Association de Socket:
{tcp,193.44.230.3,1500,193.44.200.8,21}
{tcp,193.44.230.3,1500}
{tcp,193.44.200.8,21}
Les ports
• On en distingue deux types:
– Les prédéfinis (Well-known) qui appartiennent
à des services standard (comme telnet, ftp,
…). Le numéro de port est alors compris entre
1 et 1023. Normalement impair sauf quand on
utilise deux ports par service (comme ftp qui
utilise 20 et 21).
– Ceux empruntés par les clients (ephemeral)
avec un numéro compris entre 1024 et 65535.
Le protocole UDP
• Comme couche de transport il n’a que le rôle de
multiplexage/démultiplexage des datagrammes
en intégrant la notion de ports.
Le protocole UDP
• L’adresse IP n’est pas suffisante
puisqu’elle identifie la destination (ou la
source) mais non pas le processus.
• UDP en se servant du numéro de port
achemine le datagramme vers le
processus (ou du processus).
• UDP est simple. Ne contrôle pas les
erreurs et le flux. L’application sera elle-
même responsable de la retransmission.
Le datagramme UDP
• UDP ne fait pas de la segmentation. Un
datagramme UDP doit être casé dans un
même paquet IP.
4 octets 4 octets
L’interface application de UDP
• UDP effectue l’une des opérations
suivantes:
– Création des ports (en tant que points
d’accès) nouvellement reçus.
– La réception (de IP) des datgrammes et
l’acheminement vers le port concerné (vers
l’application).
– L’envoie des datgrammes arrivant de
l’application sur un port donné vers IP.
Quelques applications qui utilisent
UDP
• TFTP (trivial file transfert protocol)
• DNS (domain name system)
• NFS (network file system)
• SNMP (service network managment
protocol)
• LDAP (lightweight directory access
protocol)
Le protocole TCP
• En outre le multiplexage/démultiplexage via les
ports, TCP fiabilise la connexion.
• L’application suppose alors que le canal est
sans erreurs.
Le concept TCP
• Flot de données (data stream): l’application envoie et
reçoit les données octet par octet sans se soucier de
l’assemblage et de la segmentation.
• Fiabilité: l’application suppose que la connexion est sans
erreurs.
• Contrôle de flux: les tcp des deux bouts déterminent le
nombre maximum de bytes à échanger sans que
l’application s’en occupe.
• Multiplexage: notion de ports.
• Connexion virtuelle: la fiabilité exige un mode orienté
connexion.
• Full duplex: flots de données dans les deux directions.
Concrétiser ce concept
• Ce concept nécessite de définir:
– Le principe de fenêtre glissante.
– Identification d’une connexion.
– Acquittement et retransmission.
– L’établissement d’une connexion.
La fenêtre glissante (sliding
windows)
• Une fenêtre limite le nombre d’octets à
échanger sans congestion. La taille
est variable pour s’adapter
automatiquement à l’état du réseau.
• Un seul acquittement sur
l’acquittement.
• À chaque acquittement on glisse la
fenêtre en gardant la taille.
• Soit w la taille de la fenêtre. En envoie
w octets avant de recevoir
l’acquittement.
Chapitre 1b
Principe et mécanismes du
protocole TCP
Dr Paul Ghobril
Le flot d’octets
• L’application transmet les données octet
par octet.
• TCP assemble ces octets dans des
segments. Mais le numéro de séquence
correspond au numéro de l’octet.
• Un segment TCP porte alors le numéro de
séquence de son premier octet.
• La taille de la fenêtre est en nombre
d’octets.
L’acquittement
• L’acquittement ACK x indique que tous les octets
jusqu’à l’octet numéro x-1 sont bien reçus. (le
récepteur attend l’octet x et les autres)
• De cette façon une perte d’un acquittement peut
être remédiée par la réception de l’acquittement
suivant. (ACK x+n indique aussi que l’octet x-1
est reçu même si ACK x est perdu)
• Un temporisateur timeout à l’émetteur permet de
signaler une perte d’octet ce qui est traduit
comme perte par congestion. Une
retransmission est effectuée et la taille de la
fenêtre est par conséquence réadaptée.
Contrôle du flux
• Le récepteur peut retarder l’acquittement
selon sa disponibilité et restreindre la taille
de la fenêtre.
• L’acquittement porte aussi la taille de la
fenêtre que le récepteur peut gérer.
Exercice 1
• On donne:
– La taille de la fenêtre est de 20 octets.
– Le dernier acquittement reçu porte le numéro
de séquence 50.
– le dernier octet transmis porte le numéro de
séquence 57.
• Que peut-on dire des octets ayant les
numéros de séquence suivants:
– 15, 20, 48, 53, 56, 62, 67, 79, 90, 112.
Exercice 1
• On donne:
– La taille de la fenêtre est de 20 octets.
– Le dernier acquittement reçu porte le numéro de séquence 50.
– le dernier octet transmis porte le numéro de séquence 57.
• Que peut-on dire des octets ayant les numéros de séquence suivants:
– 15, 20, 48, 53, 56, 62, 67, 79, 90, 112.
15 20 48 5356
57
58
59
60 62 67 69 70 79
50
À la réception de ACK 57
15 20 48 5356
57
58
59
60 62 67 69 70 79
50 76
Le format du segment TCP
Reserved
Doit être
à zéro
Premier octet
Les champs de l’en-tête
• Source port et destination port: les ports d’accès à
l’application.
• Sequence number: numéro du premier octet de données
dans le segment.
• Acknowledgment number (Si ACK est à 1): le numéro du
premier octet attendu.
• Data offset: nombre de 32 bits de l’en-tête.
• Window (si ACK est à 1): taille en octet de la fenêtre
glissante précisée par le récepteur.
• SYN: pour ouvrir une connexion et synchroniser le
numéro de séquence.
• FIN: terminer une connexion (doit être envoyé dans les
deux sens sinon la connexion peut rester établie dans un
seul sens)
Checksum
• Checksum (16-bit) = complément à 1 de la
somme du complément à 1 de tous les 16
bits de l’en-tête Pseudo-IP, les données de
TCP et l’en-tête de TCP (où checksum est
mis à zéro).
En-tête Pseudo-IP
Qui ne concerne
Que le calcul
Du checksum
Établissement d’une connexion
TCP
Exemple de
retransmission
• Dans cet exemple on considère une fenêtre de taille égale
à 1500 octets et à un segment de taille 500 octets.
temps
L’interface de programmation entre
l’application et TCP
• Comment passer de l’application à TCP?
• L’API (Application Programming Interface) est l’ensemble des commandes
permettant à l’utilisateur d’écrire une application qui effectue l’accès à la pile
TCP/IP.
• Les commandes:
– OPEN: permet d’établir une connexion TCP. Elle retourne une référence à la
connexion. Les paramètres requis sont les suivants:
• Le port local
• Le socket distant
• La valeur du timeout (optionnelle)
– SEND: pour envoyer les données.
– RECEIVE: pour transférer en mémoire les données reçues dans la file d’attente
de TCP.
– CLOSE: pour relâcher une connexion.
– STATUS: lire certains paramètres ou certaines informations sur la connexion.
– ABORT: vider les files d’attentes (d’envoi et de réception) et envoyer un Reset au
TCP distant.
Les algorithmes de contrôle de
congestion
• TCP adapte le flux transmis aux conditions du
réseau et évite la congestion.
• Plusieurs méthodes sont disponibles, surtout:
– Slow start (algorithme prudent)
– Congestion avoidance (évitement de congestion)
– Fast recovery
– Fast retransmit
– Les temporisateurs adaptatifs
Slow start -1-
• Pour éviter la congestion et pour s’adapter au réseau on
ne transmet pas de tout de suite selon la taille de la
fenêtre glissante avant de recevoir un acquittement.
• En outre la fenêtre glissante on définit alors la fenêtre de
congestion de taille cwnd initialisée à la taille d’un
segment et qui augmente graduellement de la taille avec
les acquittements.
• Ainsi le taux d’acquittement détermine le taux de
transmission.
• La taille de la fenêtre congestion définit un contrôle de
flux par l’émetteur basé sur sa perception de l’état du
réseau.
• La taille de la fenêtre glissante définit un contrôle de flux
par le récepteur selon sa capacité et la disponibilité de
sa mémoire.
Slow start -2-
• cwnd est initialisée à 1
• Au premier acquittement on l’augmente de
1
• Au second on l’augmente de 2, puis de 4
et ainsi de suite d’une façon exponentielle
(si le récepteur ne retarde pas les
acquittements en acquittant 2 ou plus
ensemble)
Congestion avoidance -1-
• On rappelle qu’une perte de données est
toujours traduite par TCP comme une
congestion (normalement la probabilité de perte
par qualité du signal est très faible).
• Une perte est signalée par:
– Un timeout
– Un acquittement répété
• Une perte signalée doit ralentir la transmission.
• En outre cwnd on définit ssthresh comme seuil
de cwnd qui quand atteint termine le slow start
pour se placer dans la phase de congestion
avoidance.
Congestion avoidance -2-
• Ssthresh est initialement mis au maximum
(65535 octets comme la taille est codée sur 16
bits)
• Taille réelle de la fenêtre = min (cwnd , taille de
la fenêtre glissante signalée par le récepteur)
• À la congestion (timeout ou double ACK)
ssthresh est mis à cwnd/2. si la congestion est
signalée par un timeout cwnd est alors remis à 1
segment (512 octets par exemple).
• Dans la congestion avoidance cwnd est
augmentée à chaque acquittement de
segsize*segsize/cwnd.
Algorithme de Jacobson: Slow start
et congestion avoidance
Slow start Congestion avoidance
Fast retransmit
• À la réception d’une ou de plusieurs
duplication d’acquittement une réception
en désordre est signalée.
• Ce qui peut indiquer une perte.
• Fast retransmit consiste à retransmettre
dans ce cas sans attendre que le
temporisateur de timeout expire.
Fast recovery
• Après fast retransmit on se place dans la phase de
congestion avoidance comme on a reçu une duplication
d’acquittement mais on réduit pas la taille de cwnd
puisqu’un double acquittement signifie que les données
arrivent encore au récepteur.
• Fast recovery:
– À la 3ième duplication d’ACK on met ssthresh à max (cwnd/2,
2*segsize), on retransmet le segment manquant et on met cwnd
à ssthresh+3*segsize.
– Puis à chaque duplication d’ACK on incrémente cwnd de
segsize et on transmet si la fenêtre le permet.
– Quand ACK arrive on met cwnd à ssthresh.
Les temporisateurs adaptatifs
• On mesure le temps d’aller-retour (RTT ou round-trip
time)
• On calcule la valeur corrigée: SRTT=(a*SRTT)+((1-
a)*RTT)
• a est un facteur de pondération: 0a<1 pour a=0,5 SRTT
sera la moyenne arithmétique du temps d’aller-retour
• On calcule le temporisateur de retransmission
(retransmission timeout):
RTO=min[UBOUND,max[LBOUND,(b*SRTT)]]
• UBOUND= limite supérieure soit 1 min par exemple
• LBOUND=limite inférieure soit 1s par exemple
• b règle le délai. RFC793 suggère 1,3<b<2.

Contenu connexe

Similaire à Ch1Res3R2reseaux1214354654654654654654654.ppt

laboratoire formation ccna cisco materiel .ppt
laboratoire formation ccna cisco materiel .pptlaboratoire formation ccna cisco materiel .ppt
laboratoire formation ccna cisco materiel .ppt
profsn
 
chapitre2-modbus-210624210251.pdf
chapitre2-modbus-210624210251.pdfchapitre2-modbus-210624210251.pdf
chapitre2-modbus-210624210251.pdf
hadda belhadj
 

Similaire à Ch1Res3R2reseaux1214354654654654654654654.ppt (20)

technologie web
technologie webtechnologie web
technologie web
 
Le Réseau et Java
Le Réseau et JavaLe Réseau et Java
Le Réseau et Java
 
gRPC, échange à haute fréquence!
gRPC, échange à haute fréquence!gRPC, échange à haute fréquence!
gRPC, échange à haute fréquence!
 
gRPC, ECHANGES A HAUTE FREQUENCE !
gRPC, ECHANGES A HAUTE FREQUENCE !gRPC, ECHANGES A HAUTE FREQUENCE !
gRPC, ECHANGES A HAUTE FREQUENCE !
 
416769859360_chap2fondementdesreseaux2023.pdf
416769859360_chap2fondementdesreseaux2023.pdf416769859360_chap2fondementdesreseaux2023.pdf
416769859360_chap2fondementdesreseaux2023.pdf
 
laboratoire formation ccna cisco materiel .ppt
laboratoire formation ccna cisco materiel .pptlaboratoire formation ccna cisco materiel .ppt
laboratoire formation ccna cisco materiel .ppt
 
Composants routeur cisco et différent mode de Configuration
Composants routeur cisco et différent mode de ConfigurationComposants routeur cisco et différent mode de Configuration
Composants routeur cisco et différent mode de Configuration
 
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
 
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.
 
Soap
SoapSoap
Soap
 
Les sockets.pptx
Les sockets.pptxLes sockets.pptx
Les sockets.pptx
 
Chapitre 4 - couche liaison
Chapitre 4 - couche liaisonChapitre 4 - couche liaison
Chapitre 4 - couche liaison
 
spring.pdf
spring.pdfspring.pdf
spring.pdf
 
Présentation VOIP
Présentation  VOIPPrésentation  VOIP
Présentation VOIP
 
Switching
SwitchingSwitching
Switching
 
Presentation
PresentationPresentation
Presentation
 
gRPC, échange à haute fréquence !
gRPC, échange à haute fréquence !gRPC, échange à haute fréquence !
gRPC, échange à haute fréquence !
 
chapitre2-modbus-210624210251.pdf
chapitre2-modbus-210624210251.pdfchapitre2-modbus-210624210251.pdf
chapitre2-modbus-210624210251.pdf
 
Chapitre 2 - Protocole Modbus (2020/2021)
Chapitre 2 - Protocole Modbus (2020/2021)Chapitre 2 - Protocole Modbus (2020/2021)
Chapitre 2 - Protocole Modbus (2020/2021)
 
Chapitre 6 - couche transport
Chapitre 6  - couche transportChapitre 6  - couche transport
Chapitre 6 - couche transport
 

Dernier

Cours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdfCours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdf
ssuserc72852
 
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
ikospam0
 
Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdf
AmgdoulHatim
 

Dernier (20)

Cours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfCours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdf
 
Cours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdfCours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdf
 
La mondialisation avantages et inconvénients
La mondialisation avantages et inconvénientsLa mondialisation avantages et inconvénients
La mondialisation avantages et inconvénients
 
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptxIntégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
 
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
 
L'expression du but : fiche et exercices niveau C1 FLE
L'expression du but : fiche et exercices  niveau C1 FLEL'expression du but : fiche et exercices  niveau C1 FLE
L'expression du but : fiche et exercices niveau C1 FLE
 
Formation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptxFormation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptx
 
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
 
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.
 
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetFormation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
 
Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaire
 
les_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhkles_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhk
 
Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdf
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film français
 
L application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxL application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptx
 
Computer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptxComputer Parts in French - Les parties de l'ordinateur.pptx
Computer Parts in French - Les parties de l'ordinateur.pptx
 
Chapitre 2 du cours de JavaScript. Bon Cours
Chapitre 2 du cours de JavaScript. Bon CoursChapitre 2 du cours de JavaScript. Bon Cours
Chapitre 2 du cours de JavaScript. Bon Cours
 
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
 
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANKRAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
 

Ch1Res3R2reseaux1214354654654654654654654.ppt

  • 1. Chapitre 1a Les services d’application et le passage au réseau Dr Paul Ghobril
  • 2. Introduction • Avant de passer aux fonctionnalités du réseau on présente les services de base (applications). • La pile des protocoles (l’ensemble des couches) est au service des applications (couche 7). • Les applications échangent entre elles des messages et des commandes • L’objectif de ce chapitre est de montrer la simplicité des protocoles hormis le côté réseau et d’évoquer ensuite le besoin des différentes couches inférieures.
  • 3. Les services de courrier
  • 4. SMTP (simple mail transfer protocol) • Commandes côté client: – HELO exp (requête de connexion) – MAIL FROM: adr_exp – RCPT TO:ad_dest – DATA (fin marquée par <CRLF>.<CRLF>) – QUIT – RSET (annulation du mail en cours) – NOOP • Commandes côté serveur de mail: – 250 (ok) – 251 (utilisateur non local retransmission) – 450 ou 550 (boîte à lettre non accessible) – 451 (erreur de traitement) – 551 (utilisateur non local redirection) – 553 (nom de la boîte illégal) – 552 (épuisement de la mémoire allouée) – 354 (commencez à transmettre) – 554 (échec)
  • 5. Server1.com Server2.com Boîte à lettre: user1 Boîte à lettre: user2 … SMTP (simple mail transfer protocol) Émetteur SMTP Récepteur SMTP Réseau HELO server1 HELO server2
  • 6. Boîte à lettre: user1 Boîte à lettre: user2 … Server1.com Server2.com SMTP (simple mail transfer protocol) Émetteur SMTP Récepteur SMTP Réseau MAIL FROM: abc@server1.com 250 OK
  • 7. Boîte à lettre: user1 Boîte à lettre: user2 … Server1.com Server2.com SMTP (simple mail transfer protocol) Émetteur SMTP Récepteur SMTP Réseau RCPT TO: user1@server2.com 250 OK
  • 8. Boîte à lettre: user1 Boîte à lettre: user2 … Server1.com Server2.com SMTP (simple mail transfer protocol) Émetteur SMTP Récepteur SMTP Réseau DATA 354 start input
  • 9. Boîte à lettre: user1 Boîte à lettre: user2 … From: <abc@server1.com> Subject: Confirmation To: <user1@server2.com> Bonjour, On a reçu les colis . Server1.com Server2.com SMTP (simple mail transfer protocol) Émetteur SMTP Récepteur SMTP Réseau 250 OK
  • 10. Boîte à lettre: user1 Boîte à lettre: user2 … Server1.com Server2.com Les protocoles du service courrier Émetteur SMTP Récepteur SMTP Réseau SMTP SMTP POP3, IMAP4 POP3, IMAP4
  • 11. POP3 (post office protocol) STAT: précise le nombre et la taille des messages +OK msgCount size +OK 8 2012 LIST [msgId]: idem pour un msg particulier (ou détails) +OK msgId size +OK 2 67 RETR msg: récupérer un msg +OK bonjour, on a recu les colis . DLE msg:suppression NOOP: diagnostic +OK RSET: annule les demandes en attente +OK mail drop has 3 messages (400 bytes) QUIT +OK ou -ERR
  • 12. POP3 (post office protocol) USER nom: précise le nom de la boîte à lettre +OK message d’accueil PASS motDePasse +OK user1 maildrop has 5 messages (2670 octets) TOP msg n: en-tête du msg et n premières lignes +OK suivi de l’en-tête suivi d’une ligne vide suivi des n lignes
  • 13. POP3 • à l’établissement de la connexion le serveur POP3 envoie un message d’accueil et passe à l’état d’authentification. • Après l’authentification on passe à l’état d’échange de messages. • Après QUIT on passe à l’état de mise à jour et la connexion est relâchée.
  • 14. POP3 (post office protocol) <Connexion> S  C: +OK dewey POP3 server ready USER kss +OK kss is a real hoopy frood PASS mypasswd +OK kss’s maildrop has 7 messages (1729 octets) STAT +OK 7 1729 LIST +OK 7 messages (1729 octets) 1 340 2 512 … <CR>.<LF> RETR 1 +OK <les 340 octets> <CR>.<LF> QUIT +OK dewey POP3 server signing off
  • 15. IMAP4 (Internet Message Access Protocol) • Les boîtes à lettre sont gérées, consultées et modifiées tout en les gardant dans le serveur. • Synchronisation de la boîte à lettre locale avec celle du serveur.
  • 16. IMAP4 (Internet Message Access Protocol) Connexion initiale et accueil Non authentifié Authentifié Sélectionné Fermeture de la connexion OK PREAUTH BYE LOGIN SELECT (choisir une boîte à lettre) CLOSE LOGOUT LOGOUT LOGOUT
  • 17. IMAP4 • Les commandes se terminent par <CRLF> • Les commandes du client commencent par un identificateur nommé TAG. La réponse du serveur indique le TAG qui doit être différent pour chaque commande. • Les réponses du serveurs commencent par: – TAG suivi de l’indicateur (OK, BAD ou NO) – + pour la suite d’une réponse – * pour répondre à une réponse sans identificateur ou pour une réponse sans avoir une commande du client. 0F 3C 07 commande <CRLF> TAG 0F 3C 07 réponse <CRLF> TAG OK
  • 18. IMAP4:Identifier un courrier • Identificateur unique (UID): le message a un identificateur de 32 bit associé à un identificateur unique de validité de 32 bits qui identifie la boîte à lettre. • le numéro de séquence précise la position relative du message dans la boîte à lettre • L’indicateur (FLAG) du message précise son état: seen, answered, flagged, deleted, …
  • 19. IMAP4: Les commandes par état Tout état Non Authentifié Authentifié Sélectionné CAPABILITY Liste des fonctions supportées par le serveur AUTHENTICATE Authentification cryptée SELECT Pour choisir une boîte à lettre SUBSCRIBE Ajouter la boite à lettre à une liste CHECK Restituer l’état des msg STORE Mettre à jour un msg déjà lu par FETCH NOOP pour « réveiller » le serveur LOGIN Authetification en clair EXAMINE Choisir une boîte à lettre pour lecture seulement UNSUBSCRIBE Enlever la boîte à lettre d’une liste CLOSE Retourner à l’état auth. COPY Pour copier le msg à une boite à lettre LOGOUT Pour sortir CREATE Créer une boîte à lettre LIST, LSUB énumérer les boites à lettre d’une liste donnée EXPUNGE Supprimer les msg marqués deleted UID utilisée avec les autres commandes remplace le No de seq par l’UID DELETE Suppression d’une boîte à lettre APPEND Ajouter un courrier à une boîte à lettre SEARCH Chercher un msg (par un critère) Commandes des autres états RENAME Renommer une boîte à lettre STATUS Les flags FETCH Restituer un msg
  • 23. TELNET • Effectuer l’accès aux ressources d’une machine à distance. • Simulation d’un terminal (Terminal virtuel ou NVT). • Négociation des options du terminal. • Codes échangés: ASCII 32 à 126 et des codes de contrôle comme <CR> et <LF>. • Commandes: 2 ou 3 octets: – Premier octet: 255 (IAC interpret as command) – Second octet: Commande – Éventuellement troisième octet: option négociée • Négociation: DO, DON’T, WILL, WON’T Réseau Telnet Client Telnet Serveur
  • 24. TELNET • Commandes: – 241 (NOP) – 243 (caractère Break) – 250 (SB) début d’une sous- négociation – 240 (SE) fin d’une sous- négociation – 251 (WILL) confirme l’option – 252 (WON’T) refuse l’option – 253 (DO) demande l’option – 254 (DON’T) interdit l’option – 248 (EL) supprimer une ligne – 247 (EC) supprimer un caractère – 246 (AYT) tu es là? • Exemple: • Client: DO window size • Serveur: WILL window size • C: SB Window Size 0 80 0 24 • C: SE
  • 26. FTP(File Transfer Protocol) • Pour le transfert de fichier FTP nécessite deux canaux de connexion, un pour le contrôle et un pour les données.
  • 27. FTP Connexion à un serveur distant OPEN, USER, PASS Choisir un dossier (directory) CD, LCD (local cd) List des fichiers DIR, LS Préciser le mode et le type de transfert Mode: • Block (le fichier conserve son format) • Stream (flot d’octet) Type: ASCII, EBCDIC, Image (suite d’octets) Transfert du fichier GET, MGET, PUT, MPUT (M=multiple) Terminer la session QUIT, CLOSE
  • 28. FTP • Les codes de réponse à 3 digits: – 1xx Positive preliminary reply. – 2xx Positive completion reply. – 3xx Positive intermediate reply. – 4xx Transient negative completion reply. – 5xx Permanent negative completion reply. • Exemple: – FTP foreignhost – 220 service ready – USERNAME cms01 – 331 user name okay – PASSWORD xyxyx – 230 user logged in – TYPE Image – 200 command okay
  • 29. TFTP (Trivial File Transfer Protocol) • Utilise un protocole de transport non fiable (UDP) donc doit assurer lui-même la retransmission. • Vu sa compacité (nécessite peut d’espace mémoire) TFTP est utilisé pour télécharger un système d’exploitation. • On n’authentifie pas dans TFTP. Le serveur s’occupe normalement de la sécurité (par une liste d’accès par exemple)
  • 30. TFTP: les messages • 1: requête de lecture (RRQ) • 2: requête d’écriture (WRQ) • 3: données (DATA) • 4: acquittement (ACK) • 5: erreur (ERROR) WRQ Nom du fichier 0 Mode 0 Type de fichier ACK 0 DATA Num bloc Données <=512 octets ACK Num bloc ERR Code erreur Message D’erreur 0 ou
  • 31. Passage aux couches inférieures
  • 32. Les ports et les sockets • On doit déterminer quels processus entre quelles machines sont connectés ensemble. Il faut identifier la connexion. • Un processus passe à la couche inférieure à travers un ou plusieurs point d’accès qu’on appelle port (16-bit). Ce point d’accès un numéro qui identifie le processus. • Un socket détermine: le protocole de la couche inférieure, les adresses IP ainsi que les numéros des ports des deux bouts de la connexion. C’est un identificateur unique de la connexion. Processus A Application Processus B Application 193.44.230.3 193.44.200.8 TCP TCP 1500 21 Association de Socket: {tcp,193.44.230.3,1500,193.44.200.8,21} {tcp,193.44.230.3,1500} {tcp,193.44.200.8,21}
  • 33. Les ports • On en distingue deux types: – Les prédéfinis (Well-known) qui appartiennent à des services standard (comme telnet, ftp, …). Le numéro de port est alors compris entre 1 et 1023. Normalement impair sauf quand on utilise deux ports par service (comme ftp qui utilise 20 et 21). – Ceux empruntés par les clients (ephemeral) avec un numéro compris entre 1024 et 65535.
  • 34. Le protocole UDP • Comme couche de transport il n’a que le rôle de multiplexage/démultiplexage des datagrammes en intégrant la notion de ports.
  • 35. Le protocole UDP • L’adresse IP n’est pas suffisante puisqu’elle identifie la destination (ou la source) mais non pas le processus. • UDP en se servant du numéro de port achemine le datagramme vers le processus (ou du processus). • UDP est simple. Ne contrôle pas les erreurs et le flux. L’application sera elle- même responsable de la retransmission.
  • 36. Le datagramme UDP • UDP ne fait pas de la segmentation. Un datagramme UDP doit être casé dans un même paquet IP. 4 octets 4 octets
  • 37. L’interface application de UDP • UDP effectue l’une des opérations suivantes: – Création des ports (en tant que points d’accès) nouvellement reçus. – La réception (de IP) des datgrammes et l’acheminement vers le port concerné (vers l’application). – L’envoie des datgrammes arrivant de l’application sur un port donné vers IP.
  • 38. Quelques applications qui utilisent UDP • TFTP (trivial file transfert protocol) • DNS (domain name system) • NFS (network file system) • SNMP (service network managment protocol) • LDAP (lightweight directory access protocol)
  • 39. Le protocole TCP • En outre le multiplexage/démultiplexage via les ports, TCP fiabilise la connexion. • L’application suppose alors que le canal est sans erreurs.
  • 40. Le concept TCP • Flot de données (data stream): l’application envoie et reçoit les données octet par octet sans se soucier de l’assemblage et de la segmentation. • Fiabilité: l’application suppose que la connexion est sans erreurs. • Contrôle de flux: les tcp des deux bouts déterminent le nombre maximum de bytes à échanger sans que l’application s’en occupe. • Multiplexage: notion de ports. • Connexion virtuelle: la fiabilité exige un mode orienté connexion. • Full duplex: flots de données dans les deux directions.
  • 41. Concrétiser ce concept • Ce concept nécessite de définir: – Le principe de fenêtre glissante. – Identification d’une connexion. – Acquittement et retransmission. – L’établissement d’une connexion.
  • 42. La fenêtre glissante (sliding windows) • Une fenêtre limite le nombre d’octets à échanger sans congestion. La taille est variable pour s’adapter automatiquement à l’état du réseau. • Un seul acquittement sur l’acquittement. • À chaque acquittement on glisse la fenêtre en gardant la taille. • Soit w la taille de la fenêtre. En envoie w octets avant de recevoir l’acquittement.
  • 43. Chapitre 1b Principe et mécanismes du protocole TCP Dr Paul Ghobril
  • 44. Le flot d’octets • L’application transmet les données octet par octet. • TCP assemble ces octets dans des segments. Mais le numéro de séquence correspond au numéro de l’octet. • Un segment TCP porte alors le numéro de séquence de son premier octet. • La taille de la fenêtre est en nombre d’octets.
  • 45. L’acquittement • L’acquittement ACK x indique que tous les octets jusqu’à l’octet numéro x-1 sont bien reçus. (le récepteur attend l’octet x et les autres) • De cette façon une perte d’un acquittement peut être remédiée par la réception de l’acquittement suivant. (ACK x+n indique aussi que l’octet x-1 est reçu même si ACK x est perdu) • Un temporisateur timeout à l’émetteur permet de signaler une perte d’octet ce qui est traduit comme perte par congestion. Une retransmission est effectuée et la taille de la fenêtre est par conséquence réadaptée.
  • 46. Contrôle du flux • Le récepteur peut retarder l’acquittement selon sa disponibilité et restreindre la taille de la fenêtre. • L’acquittement porte aussi la taille de la fenêtre que le récepteur peut gérer.
  • 47. Exercice 1 • On donne: – La taille de la fenêtre est de 20 octets. – Le dernier acquittement reçu porte le numéro de séquence 50. – le dernier octet transmis porte le numéro de séquence 57. • Que peut-on dire des octets ayant les numéros de séquence suivants: – 15, 20, 48, 53, 56, 62, 67, 79, 90, 112.
  • 48. Exercice 1 • On donne: – La taille de la fenêtre est de 20 octets. – Le dernier acquittement reçu porte le numéro de séquence 50. – le dernier octet transmis porte le numéro de séquence 57. • Que peut-on dire des octets ayant les numéros de séquence suivants: – 15, 20, 48, 53, 56, 62, 67, 79, 90, 112. 15 20 48 5356 57 58 59 60 62 67 69 70 79 50 À la réception de ACK 57 15 20 48 5356 57 58 59 60 62 67 69 70 79 50 76
  • 49. Le format du segment TCP Reserved Doit être à zéro Premier octet
  • 50. Les champs de l’en-tête • Source port et destination port: les ports d’accès à l’application. • Sequence number: numéro du premier octet de données dans le segment. • Acknowledgment number (Si ACK est à 1): le numéro du premier octet attendu. • Data offset: nombre de 32 bits de l’en-tête. • Window (si ACK est à 1): taille en octet de la fenêtre glissante précisée par le récepteur. • SYN: pour ouvrir une connexion et synchroniser le numéro de séquence. • FIN: terminer une connexion (doit être envoyé dans les deux sens sinon la connexion peut rester établie dans un seul sens)
  • 51. Checksum • Checksum (16-bit) = complément à 1 de la somme du complément à 1 de tous les 16 bits de l’en-tête Pseudo-IP, les données de TCP et l’en-tête de TCP (où checksum est mis à zéro). En-tête Pseudo-IP Qui ne concerne Que le calcul Du checksum
  • 53. Exemple de retransmission • Dans cet exemple on considère une fenêtre de taille égale à 1500 octets et à un segment de taille 500 octets. temps
  • 54. L’interface de programmation entre l’application et TCP • Comment passer de l’application à TCP? • L’API (Application Programming Interface) est l’ensemble des commandes permettant à l’utilisateur d’écrire une application qui effectue l’accès à la pile TCP/IP. • Les commandes: – OPEN: permet d’établir une connexion TCP. Elle retourne une référence à la connexion. Les paramètres requis sont les suivants: • Le port local • Le socket distant • La valeur du timeout (optionnelle) – SEND: pour envoyer les données. – RECEIVE: pour transférer en mémoire les données reçues dans la file d’attente de TCP. – CLOSE: pour relâcher une connexion. – STATUS: lire certains paramètres ou certaines informations sur la connexion. – ABORT: vider les files d’attentes (d’envoi et de réception) et envoyer un Reset au TCP distant.
  • 55. Les algorithmes de contrôle de congestion • TCP adapte le flux transmis aux conditions du réseau et évite la congestion. • Plusieurs méthodes sont disponibles, surtout: – Slow start (algorithme prudent) – Congestion avoidance (évitement de congestion) – Fast recovery – Fast retransmit – Les temporisateurs adaptatifs
  • 56. Slow start -1- • Pour éviter la congestion et pour s’adapter au réseau on ne transmet pas de tout de suite selon la taille de la fenêtre glissante avant de recevoir un acquittement. • En outre la fenêtre glissante on définit alors la fenêtre de congestion de taille cwnd initialisée à la taille d’un segment et qui augmente graduellement de la taille avec les acquittements. • Ainsi le taux d’acquittement détermine le taux de transmission. • La taille de la fenêtre congestion définit un contrôle de flux par l’émetteur basé sur sa perception de l’état du réseau. • La taille de la fenêtre glissante définit un contrôle de flux par le récepteur selon sa capacité et la disponibilité de sa mémoire.
  • 57. Slow start -2- • cwnd est initialisée à 1 • Au premier acquittement on l’augmente de 1 • Au second on l’augmente de 2, puis de 4 et ainsi de suite d’une façon exponentielle (si le récepteur ne retarde pas les acquittements en acquittant 2 ou plus ensemble)
  • 58. Congestion avoidance -1- • On rappelle qu’une perte de données est toujours traduite par TCP comme une congestion (normalement la probabilité de perte par qualité du signal est très faible). • Une perte est signalée par: – Un timeout – Un acquittement répété • Une perte signalée doit ralentir la transmission. • En outre cwnd on définit ssthresh comme seuil de cwnd qui quand atteint termine le slow start pour se placer dans la phase de congestion avoidance.
  • 59. Congestion avoidance -2- • Ssthresh est initialement mis au maximum (65535 octets comme la taille est codée sur 16 bits) • Taille réelle de la fenêtre = min (cwnd , taille de la fenêtre glissante signalée par le récepteur) • À la congestion (timeout ou double ACK) ssthresh est mis à cwnd/2. si la congestion est signalée par un timeout cwnd est alors remis à 1 segment (512 octets par exemple). • Dans la congestion avoidance cwnd est augmentée à chaque acquittement de segsize*segsize/cwnd.
  • 60. Algorithme de Jacobson: Slow start et congestion avoidance Slow start Congestion avoidance
  • 61. Fast retransmit • À la réception d’une ou de plusieurs duplication d’acquittement une réception en désordre est signalée. • Ce qui peut indiquer une perte. • Fast retransmit consiste à retransmettre dans ce cas sans attendre que le temporisateur de timeout expire.
  • 62. Fast recovery • Après fast retransmit on se place dans la phase de congestion avoidance comme on a reçu une duplication d’acquittement mais on réduit pas la taille de cwnd puisqu’un double acquittement signifie que les données arrivent encore au récepteur. • Fast recovery: – À la 3ième duplication d’ACK on met ssthresh à max (cwnd/2, 2*segsize), on retransmet le segment manquant et on met cwnd à ssthresh+3*segsize. – Puis à chaque duplication d’ACK on incrémente cwnd de segsize et on transmet si la fenêtre le permet. – Quand ACK arrive on met cwnd à ssthresh.
  • 63. Les temporisateurs adaptatifs • On mesure le temps d’aller-retour (RTT ou round-trip time) • On calcule la valeur corrigée: SRTT=(a*SRTT)+((1- a)*RTT) • a est un facteur de pondération: 0a<1 pour a=0,5 SRTT sera la moyenne arithmétique du temps d’aller-retour • On calcule le temporisateur de retransmission (retransmission timeout): RTO=min[UBOUND,max[LBOUND,(b*SRTT)]] • UBOUND= limite supérieure soit 1 min par exemple • LBOUND=limite inférieure soit 1s par exemple • b règle le délai. RFC793 suggère 1,3<b<2.