Chapitre 4 Etude de la fiabilité des protocoles de transport. Dr. M. Jarraya, Cours Réseaux, 2ème année cycle Ingénieur 1

Documents pareils
Systèmes et Réseaux (ASR 2) - Notes de cours Cours 14

Principes du transfert fiable de données. Les réseaux - deuxième partie. Transfert fiable de données fonctionnement

Les réseaux - deuxième partie

Couche Transport TCP et UDP

Algorithmique des Systèmes Répartis Protocoles de Communications

Cours Réseaux. Plan. I. Réseau: Définitions et éléments II. Le modèle à couches

Le protocole TCP. Services de TCP

UDP/TCP - Protocoles transport

Réseaux grande distance

Introduction. Adresses

Routage AODV. Languignon - Mathe - Palancher - Pierdet - Robache. 20 décembre Une implémentation de la RFC3561

Internet Group Management Protocol (IGMP) Multicast Listener Discovery ( MLD ) RFC 2710 (MLD version 1) RFC 3810 (MLD version 2)

Transmissions série et parallèle

Cours Réseaux et télécoms L3/Info + Miage

NOTICE D INSTALLATION

Architecture TCP/IP. Protocole d application. client x. serveur y. Protocole TCP TCP. TCP routeur. Protocole IP IP. Protocole IP IP.

Installation et configuration d un serveur DHCP (Windows server 2008 R2)

Réseaux IUP2 / 2005 IPv6

Algorithmique répartie

Messagerie asynchrone et Services Web

L exclusion mutuelle distribuée

Introduction aux Technologies de l Internet

Dynamic Host Configuration Protocol

Rappel: Le routage dans Internet. Contraintes. Environnement et contraintes. La décision dans IP du routage: - Table de routage:

mode d emploi des services de votre ligne fixe

Systèmes et algorithmes répartis

Le protocole ARP (Address Resolution Protocol) Résolution d adresses et autoconfiguration. Les protocoles ARP, RARP, TFTP, BOOTP, DHCP

LTE + SAE = EPS Gestion de la Mobilité et Gestion de Session

Les Réseaux sans fils : IEEE F. Nolot

DIGITAL NETWORK. Le Idle Host Scan

Linux Firewalling - IPTABLES

Short Message Service Principes et Architecture

Réseaux Résumé personnel

Fonctionnement du protocole DHCP. Protocole DHCP (S4/C7)

Chapitre 1: Introduction générale

Introduction à la Programmation Parallèle: MPI

Internet Protocol. «La couche IP du réseau Internet»

Intérêt du NAT (Network Address Translation) Administration Réseau Niveau routage. Exemple d Intranet. Principe NAT

Administration du WG302 en SSH par Magicsam

La couche réseau Le protocole X.25

LOGICIEL KIPICAM : Manuel d installation et d utilisation

LA COUCHE LIAISON DE DONNEES A POUR OBJECTIF PRINCIPAL de proposer à la couche

Structure fonctionnelle d un SGBD

SIP. Plan. Introduction Architecture SIP Messages SIP Exemples d établissement de session Enregistrement

SYSTEME DE GESTION DES ENERGIES EWTS EMBEDDED WIRELESS TELEMETRY SYSTEM

M1 Informatique, Réseaux Cours 9 : Réseaux pour le multimédia

Sauvegarde EMC pour solutions SAP HANA prêtes pour le datacenter. EMC Data Domain avec DD Boost

module Introduction aux réseaux DHCP et codage Polytech / 5

BM Le bus USB 09/05/2013. Le Port USB

Cours de Systèmes d Exploitation

Chapitre I. La couche réseau. 1. Couche réseau 1. Historique de l Internet

Multimedia. Systèmes, Communications et Applications. Ahmed MEHAOUA

Le Multicast. A Guyancourt le

1 DHCP sur Windows 2008 Server Introduction Installation du composant DHCP Autorisation d'un serveur DHCP...

Master e-secure. VoIP. RTP et RTCP

Document de spécification du logiciel VALPO Définition du format des fichiers des

Chapitre 4 : Exclusion mutuelle

Haka : un langage orienté réseaux et sécurité

Partie 7 : Gestion de la mémoire

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa Novembre 2008

4. Outils pour la synchronisation F. Boyer, Laboratoire Lig

Chapitre : Les Protocoles

Introduction à la Sécurité Informatique

opti-vm Serveur Vocal et Standard Automatique Siemens HiPath 11xx et Hipath 12xx Installation et Guide Utilisateur Version 1.0

I>~I.J 4j1.bJ1UlJ ~..;W:i 1U

RTP et RTCP. EFORT

2 Raccordement d une imprimante, d un terminal ou d un ordinateur au DULCOMARIN

Accédez au test ici

LA VOIX SUR GPRS. 1. Introduction. P. de Frino (1), S. Robert (2), G. Cecchin (3) Résumé

TD n o 8 - Domain Name System (DNS)

MODE D EMPLOI DU LOGICIEL LIGNES DE TEMPS A partir du film La Mort aux trousses d Alfred Hitchcock

Année Universitaire session 1 d automne Parcours : CSB5 Licence 3 STS Informatique

SSL ET IPSEC. Licence Pro ATC Amel Guetat

"Indy\Source\Fulld7.bat" 6. Lancer à présent Delphi. Allez dans le menu "Composant" puis sur "Installer des paquets...".

TESTING NETWORK HARDWARE

RESEAUX TCP/IP: NOTIONS AVANCEES. Preparé par Alberto EscuderoPascual

SSH, le shell sécurisé

Alcatel Advanced Reflexes

Computer Networking: A Top Down Approach Featuring the Internet, 2 nd edition. Jim Kurose, Keith Ross Addison-Wesley, July ENPC.

- Visioconférence - Utiliser NetMeeting au quotidien. Richard BONMARIN DSO/DSI/EMC-EBZ

Manuel du logiciel PrestaTest.

Plan. Programmation Internet Cours 3. Organismes de standardisation

RENCONTRES DU 25 au 27 JUIN 2014 DIJON. L intérêt du Analysis Data Model (ADaM) pour le Data Management CENTRE DE TRAITEMENT DES DONNÉES

DHCP et NAT. Cyril Rabat Master 2 ASR - Info Architecture des réseaux d entreprise

Profitez de tous les avantages de votre réseau, comme vos clients Remédiez à la coupure du service

Tolérance aux fautes-2 Serveurs à haute disponibilité

IPFIX (Internet Protocol Information export)

ALOHA LOAD BALANCER METHODE DE CONTROLE DE VITALITE

Travaux pratiques : collecte et analyse de données NetFlow

DG-ADAJ: Une plateforme Desktop Grid

Master 1 ère année. UE Réseaux Avancés I. Corrections décembre Durée : 2h Documents autorisés

Support application ProgrÉ. Académie de Paris

UltraBackup NetStation 4. Guide de démarrage rapide

Outils d'analyse de la sécurité des réseaux. HADJALI Anis VESA Vlad

Serveur DHCP et Relais DHCP (sous Linux)

FileMaker Server 14. Aide FileMaker Server

SYSTÈME ANTI-INTRUSION SANS. fil. L œil sur la sécurité

Multicast & IGMP Snooping

Transcription:

Chapitre 4 Etude de la fiabilité des protocoles de transport Dr. M. Jarraya, Cours Réseaux, 2ème année cycle Ingénieur 1

Principes de transfert de données fiable Les caractèristiques d un canal non fiable détermine la complexité du potocole de transfert de données fiable reliable data transfer protocol (rdt) Dr. M. Jarraya, Cours Réseaux, 2ème année cycle Ingénieur 2

transfert de données fiable rdt_send(): suite à un appel par dessus, (e.g., application.), remet les données à expédier à la couche supérieur du pôle destinataire deliver_data(): appelé par rdt pour délivrer les données à la couche supé Côté émetteur Côté récepteur udt_send(): appelé par rdt, pour transférer le paquet à travers un canal non fiable rdt_rcv(): appelé quand un paquet arrive du côté destinataire Dr. M. Jarraya, Cours Réseaux, 2ème année cycle Ingénieur 3

transfert de données fiable Nous allons étudier avec une démarche incrémetale la modélisation des protocoles de transfert de données fiables (rdt) considérer uniquement un transfert unidirectionnel mais les infos de contrôle vont suivre les deux directions utiliser des machines à états finis (MEF) pour modéliser rdt côté émetteur Evenement et côté provoquant récepteur la transition Les actions prises sur la transition d état Etat:Quand sur cet Etat, l Etat suivant est determiné uniquement par l événement suivant Etat 1 évenement actions Etat 2 Dr. M. Jarraya, Cours Réseaux, 2ème année cycle Ingénieur 4

Rdt1.0: protocole de transfert fiable à travers un canal totalement fiable à travers un canal totalement fiable pas d erreurs sur les bits pas de perte de paquets MEF séparées pour l émetteur et pour le récepteur: appel de dessus rdt_send(data) packet = make_pkt(data) udt_send(packet) appel de dessous rdt_rcv(packet) extract (packet,data) deliver_data(data) Emetteur Récepteur Dr. M. Jarraya, Cours Réseaux, 2ème année cycle Ingénieur 5

Rdt2.0: canal avec erreur sur les bits La canal peut altérer des bits sur le paquet checksum pour détecter des erreurs sur le bits Question: Comment recouvrir ce type d erreur: acknowledgements (ACKs): Le récepeur dit explicitemet à l émetteur que le paquet arrive sans erreur negative acknowledgements (NAKs): Le récepeur dit explicitemet à l émetteur que le paquet arrive avec erreur L emetteur retransmet le paquet quand il reçoit un NAK nouveaux mécanismes dans rdt2.0 (par rapport à rdt1.0): détection d erreur retour du récepteur: msgs de contrôle (ACK,NAK) Dr. M. Jarraya, Cours Réseaux, 2ème année cycle Ingénieur 6 rcvr->sender

rdt2.0: specification de la MEF rdt_send(data) sndpkt = make_pkt(data, checksum) appel de dessus isack(rcvpkt) Λ Emeteur ACK ou NAK isnak(rcvpkt) récepteur corrupt(rcvpkt) udt_send(nak) appel de dessous notcorrupt(rcvpkt) extract(rcvpkt,data) deliver_data(data) udt_send(ack) Dr. M. Jarraya, Cours Réseaux, 2ème année cycle Ingénieur 7

rdt2.0: opérations sans erreurs rdt_send(data) snkpkt = make_pkt(data, checksum) appel de dessus isack(rcvpkt) Λ ACK ou NAK isnak(rcvpkt) corrupt(rcvpkt) udt_send(nak) appel de dessous notcorrupt(rcvpkt) extract(rcvpkt,data) deliver_data(data) udt_send(ack) Dr. M. Jarraya, Cours Réseaux, 2ème année cycle Ingénieur 8

rdt2.0: scénario avec erreur rdt_send(data) snkpkt = make_pkt(data, checksum) appel de dessus isack(rcvpkt) Λ ACK ou NAK isnak(rcvpkt) corrupt(rcvpkt) udt_send(nak) appel de dessous notcorrupt(rcvpkt) extract(rcvpkt,data) deliver_data(data) udt_send(ack) Dr. M. Jarraya, Cours Réseaux, 2ème année cycle Ingénieur 9

rdt2.0 a une faille fatale! Qu arrive t-il si les ACK/NAK sont corrompus? L émetteur ne peut pas savoir si le récepteur a bien reçu le paquet ou non! Il ne peut pas juste retransmettre le paquet : possiblité de duplication Traitement de la dupplication: L émetteur ajoute un numéro de séquence pour chaque paquet L émetteur retransmet le paquet courant si les ACK/NAK sont confus Le récepteur élimine (ne délivre pas à la couche de dessus) le paquet dupliqué stop and wait L émetteur envoie un paquet, puis attend une réponse du récepteur Dr. M. Jarraya, Cours Réseaux, 2ème année cycle Ingénieur 10

rdt2.1: Emtteur traite les ACK/NAKs confus rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && isack(rcvpkt) Λ ( corrupt(rcvpkt) isnak(rcvpkt) ) rdt_send(data) sndpkt = make_pkt(0, data, checksum) appel 0 de dessus ACK ou NAK 1 rdt_send(data) ACK ou NAK 0 appel 1 de dessus ( corrupt(rcvpkt) isnak(rcvpkt) ) rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && isack(rcvpkt) sndpkt = make_pkt(1, data, checksum) Λ Dr. M. Jarraya, Cours Réseaux, 2ème année cycle Ingénieur 11

rdt2.1: Récepteur traite les ACK/NAKs confus (corrupt(rcvpkt) sndpkt = make_pkt(nak, chksum) not corrupt(rcvpkt) && has_seq1(rcvpkt) sndpkt = make_pkt(ack, chksum) notcorrupt(rcvpkt) && has_seq0(rcvpkt) extract(rcvpkt,data) deliver_data(data) sndpkt = make_pkt(ack, chksum) appel 0 de dessous appel 1 de dessous notcorrupt(rcvpkt) && has_seq1(rcvpkt) extract(rcvpkt,data) deliver_data(data) sndpkt = make_pkt(ack, chksum) Dr. M. Jarraya, Cours Réseaux, 2ème année cycle Ingénieur 12 (corrupt(rcvpkt) sndpkt = make_pkt(nak, chksum) not corrupt(rcvpkt) && has_seq0(rcvpkt) sndpkt = make_pkt(ack, chksum)

rdt2.1: discussion Emetteur: num de seq ajouté au paquet deux nums (0,1) sont suffisant. pourquoi? Doit vérifier si ACK/NAK est corrompu deux états de transition Récepteur: doit vérifié si la paquet reçu est dupliqué L état indique est ce que le num de séq du paquet 0 ou le 1 est expecté note: Le récepteur ne peut L état doit mémoriser si le paquet courant a le num de seq 0 ou 1 pas savoir si l ACK/NAK précédent est bien reçu ou non par l émetteur Dr. M. Jarraya, Cours Réseaux, 2ème année cycle Ingénieur 13

rdt2.2: protcole sans NAK Même fonctionnalité que rdt2.1, utilisant uniquement des ACKs Au lieu d un NAK, le récepteur envoie un ACK pour le dernier paquet reçu correctement Le récepteur doit inclure explicitement le num de séq du paquet à aquitter un ACK dupliqué pour l émetteur est équivalent à un NAK: retrasmission du paquet courant Dr. M. Jarraya, Cours Réseaux, 2ème année cycle Ingénieur 14

(corrupt(rcvpkt) has_seq1(rcvpkt)) rdt2.2: Fragments de la MEF Emetteur/Récepteur rdt_send(data) sndpkt = make_pkt(0, data, checksum) appel 0 de dessus appel 0 de dessous ACK 0 Fragement MEF Emetteur Fragement MEF Récepteur notcorrupt(rcvpkt) && has_seq1(rcvpkt) extract(rcvpkt,data) deliver_data(data) sndpkt = make_pkt(ack1, chksum) Dr. M. Jarraya, Cours Réseaux, 2ème année cycle Ingénieur 15 ( corrupt(rcvpkt) isack(rcvpkt,1) ) rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && isack(rcvpkt,0) Λ

rdt3.0: canal avec erreurs et pertes Nouvelle hypothèse: le canal peut perdre des paquets (données ou ACKs) le checksum, num de seq, ACKs, et la retransmission sont nécessaires mais non suffisants Approche: L émetteur attend l ACK sur un intervalle de temps résonable Il retransmet le paquet si l ACK n arrive pas sur cet intervalle du temps Si le paquet (ou l ACK) met un retard (mais non perdu): La retransmission dupplique le paquet, mais l utilisation du num de seq peut remédier à la dupplication Le récepteur doit spécifier le num du séq du paquet qui vient d être aquitté Dr. M. Jarraya, Cours Réseaux, 2ème année cycle Ingénieur 16 Nécessite l utilisation d un

rdt3.0 : Emetteur rdt_rcv(rcvpkt) Λ appel 0 de dessus rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && isack(rcvpkt,1) stop_timer timeout start_timer ( corrupt(rcvpkt) isack(rcvpkt,0) ) Λ rdt_send(data) sndpkt = make_pkt(0, data, checksum) start_timer ACK 1 rdt_send(data) ACK 0 appel 1 de dessus sndpkt = make_pkt(1, data, checksum) start_timer ( corrupt(rcvpkt) isack(rcvpkt,1) ) Λ timeout start_timer rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && isack(rcvpkt,0) stop_timer rdt_rcv(rcvpkt) Λ Dr. M. Jarraya, Cours Réseaux, 2ème année cycle Ingénieur 17

rdt3.0 : Exemple Emetteu r Récepteur Emetteur Récepteur (a) Opération sans perte (b) perte d un paquet Dr. M. Jarraya, Cours Réseaux, 2ème année cycle Ingénieur 18

rdt3.0 Exemple (suite) Emetteu r Récepteur Emetteur Récepteur (c) perte d un ACK (d) timer expire avant l arrivée de l ACK Dr. M. Jarraya, Cours Réseaux, 2ème année cycle Ingénieur 19

Performance de rdt3.0 rdt3.0 fonctionne, mais les performances sont mauvaises example: un lien à 1 Gbps, délai de bout-en-bout est 15 ms, taille du packet 1Koctets : T transmi = L (long du paquet en bits) R (taux de transmission, bps) = 8kb/pkt 109 b/sec = 8 microsec U Emett eur = L / R RTT +L / R =.008 30.008 = 0.00027 microsec U Emett: utilisation la proportion du temps d occupation pour l émission Paquet de 1Koctets chaque 30 msec -> 267Kbits/sec à travers un lien de 1 Gbps Le protocole réseau limite l utilisation des ressources physiques! Dr. M. Jarraya, Cours Réseaux, 2ème année cycle Ingénieur 20

rdt3.0: stop-and-wait Premier bit du paquet trans, t = 0 Dernier bit du paquet trans, t = L / R Emetteur Récepteur RTT Arrivée du premier bit Arrivée du dernier bit, envoi de l ACK Arrivée de l ACK, envoi du prochain packet, t = RTT + L / R U Emett eur = L / R RTT +L / R =.008 30.008 = 0.00027 microsec Dr. M. Jarraya, Cours Réseaux, 2ème année cycle Ingénieur 21

Protocole Pipeliné Pipelinage: L émetteur se permet d envoyer plusieurs paquets avant de recevoir l ACK du premier L intervalle des num de séquence doit augmenter Utilisation de mémoire Tampon au niveau de l émetteur et/ou récepteur Protoole stop-and-wait Protoole pipeliné Deux formes génériques de protocole pipelinés: go-back-n, répétition sélective Dr. M. Jarraya, Cours Réseaux, 2ème année cycle Ingénieur 22

Pipelinage: augmenter l utilisation 1er bit du paquet trans, t = 0 Dernier bit du pqt trans, t = L / R sender receiver RTT Arrivée du ACK, envoi du paquet suivant, t = RTT + L / R 1er bit du 1er paquet dernier bit du 1er paquet, envoi ACK dernier bit du 2ème paquet, envoi ACK dernier bit du 3ème paquet, envoi ACK Augmente le taux d utilisattion d un facteur de 3! U sender = 3 * L / R RTT +L / R =.024 30.008 = 0.0008 microsecon ds Dr. M. Jarraya, Cours Réseaux, 2ème année cycle Ingénieur 23

Go-Back-N protocole de fenêtre glissante Emetteur: taille du champ num de séqu est de k-bits à l en-tête Fenêtre de taille N : est le nombre consécutifs de paquets sans accusés de réception et qui sont permis à l émission Taille fenêtre N Déjà confirmé Envoyé pas encore confirmé Prêt à partir pas encore envoyé Pas encore Prêt ACK(n): numérotation des ACKs sera interprété comme un ACK cumulatif Actionner un timer si le nextseqnum=send_base timeout(n): retransmettre le paquet n et tous les paquets de num de séq sup à n en respectant la limite de la fenêtre glissante Dr. M. Jarraya, Cours Réseaux, 2ème année cycle Ingénieur 24

Λ GBN: MEF étendue de l émetteur base=1 nextseqnum=1 rdt_rcv(rcvpkt) && corrupt(rcvpkt) rdt_send(data) if (nextseqnum < base+n) { sndpkt[nextseqnum] = make_pkt(nextseqnum,data,chksum) udt_send(sndpkt[nextseqnum]) if (base == nextseqnum) start_timer nextseqnum++ } else refuse_data(data) timeout start_timer udt_send(sndpkt[base]) udt_send(sndpkt[base+1]) udt_send(sndpkt[nextseqnum-1] ) notcorrupt(rcvpkt) base = getacknum(rcvpkt)+1 If (base == nextseqnum) stop_timer else start_timer Dr. M. Jarraya, Cours Réseaux, 2ème année cycle Ingénieur 25

GBN: MEF étendue du récepteur default Λ expectedseqnum=1 sndpkt = make_pkt(expectedseqnum,ack,chksum) rdt_rcv(rcvpkt) && notcurrupt(rcvpkt) && hasseqnum(rcvpkt,expectedseqnum) extract(rcvpkt,data) deliver_data(data) sndpkt = make_pkt(expectedseqnum,ack,chksum) expectedseqnum++ ACK-uniquement: Envoi ACK pour les paquets reçus correctement avec le plus grand num de séquence peut générer des ACKs duppliqués nécessite uniquement la mémorisation du expectedseqnum paquets non dans l ordre: écarter (ne pas mettre en buffer)! Ré-envoi des paquets-ack avec le num de seq le plus élevé dans l ordre Dr. M. Jarraya, Cours Réseaux, 2ème année cycle Ingénieur 26

GBN : Exemple Emetteur Récepteur Dr. M. Jarraya, Cours Réseaux, 2ème année cycle Ingénieur 27

Répétition sélective (Selective Repeat) Le récepteur aquitte d une façon individuelle tous les paquets reçus correctement. Un buffer de paquets est nécessaire pour mettre éventuellement les paquets à délivrer à la couche application dans l ordre L émetteur retranmet uniquement les paquets pour lesquels l ACK n est pas reçu L émetteur active le timer pour chaque paquet non acquitté Fenêtre d émission N num de séquence consecutif limte encore le nombre de paquets émis sans avoir reçus Dr. M. Jarraya, Cours Réseaux, 2ème année cycle Ingénieur 28 d ACK

Répétition sélective : Fenêtre d émission et de réception Déjà confirmé Envoyé pas encore confirmé Prêt à partir pas encore envoyé Pas encore Prêt (a) Vue de l émetteur des numéros de séquence Hors séquence (placé en mémoire) mais déjà confirmé Attendu pas encore reçu Acceptable (à l intérieur de la fenêtre) Pas encore prêt (b) Vue du récepteur des numéros de séquence Dr. M. Jarraya, Cours Réseaux, 2ème année cycle Ingénieur 29

Répétition sélective Emetteur Donnée de la couche supérieure : Si le num de seq suivant est dans sa fenêtre, envoi du paquet Expiration du temps imparti (n): retransmission du paquet n réception d un ACK(n) dans [sendbase,sendbase+n]: marquer paquet n comme reçu Si num de seq de ce paquet est égal à send_base, la fenêtre se déplace jusqu au paquet non confirmé de plus faible numéro Les paquets en attente en buffer seront transmis si la fenêtre couvre leur num de séq Récepteur paquet n dant [rcvbase, rcvbase+n-1] Envoi de ACK(n) S il n est pas dans l ordre: mise en buffer Dans l ordre (=rcv_base): délivrer à la couche supérieur (+ tous les autres paquets en buffer qui suivent dans l odre), avancer la fenêtre jusqu au paquet non reçu encore paquet n dans [rcvbase-n,rcvbase-1] Envoi de ACK(n) dans les autres cas: ignorer le paquet Dr. M. Jarraya, Cours Réseaux, 2ème année cycle Ingénieur 30

Répétition sélective : Exemple Dr. M. Jarraya, Cours Réseaux, 2ème année cycle Ingénieur 31