Architecture TCP/IPirt.enseeiht.fr/beylot/enseignement/TCPIP.pdf2 Introduction : Architecture TCP/IP...
Transcript of Architecture TCP/IPirt.enseeiht.fr/beylot/enseignement/TCPIP.pdf2 Introduction : Architecture TCP/IP...
1
Introduction : Architecture TCP/IP
1
Architecture TCP/IP
André-Luc BEYLOTDept Télécoms/Réseaux
ENSEEIHT
Introduction : Architecture TCP/IP
2
Planr Introduction : Qu’est-ce que l’Internet ?
r Les protocoles de transport : TCP - UDP
r Le protocole de Réseau : IP
2
Introduction : Architecture TCP/IP
3
Qu’est-ce que l’Internet ?r Des millions de machines
connectées: hôtesr Des liens de communicationr Des routeursr Des protocoles:§ e.g., TCP, IP, HTTP, FTP, PPP
r Internet: “un réseau deréseaux”§ faiblement hiérarchique
r Standards Internet§ RFC: Request for comments§ IETF: Internet Engineering
Task Force
ISP Local
Réseau d’entreprise
ISP régional
routeur stationserveur
mobile
Introduction : Architecture TCP/IP
4
Evolution des trafics voix/données
r Trafic
100
1000
10000
100000
1996 1997 1998 1999 2000 2001 2002
Tra
fic
Mo
nd
ial (
Gb
/s)
donnéesvoix
3
Introduction : Architecture TCP/IP
5
Structure du réseau
r Extrémités :applications et hôtes
r Cœur du Réseau :§ routeurs§ réseau de réseaux
r Réseau d’accès:liens de communication
Introduction : Architecture TCP/IP
6
Extrémités de Réseauxr Systèmes Terminaux§ exécute des applications§ e.g., WWW, email
r modèle client/serveur§ un client (hôte) émet des
requêtes, reçoit un service dela part d’un serveur
§ e.g., client WWW (browser)/server; email client/serveur
r modèle “poste à poste”:§ Interaction entre hôtes
symétriques§ e.g.: téléconférence
4
Introduction : Architecture TCP/IP
7
Extrémités du réseau : un service orientéconnexion
But: transfert de donnéesentre extrémités
r négociation: mise enplace prépare lestransferts de donnéesultérieurs
r TCP - TransmissionControl Protocol§ Service orienté connexion
pour l’Internet
Service TCP [RFC 793]r fiable, transfert d’un
flux d’octets dans l’ordre§ pertes : acquittements et
retransmissionsr contrôle de flux :§ l’émetteur ne doit pas
submerger le destinatairer contrôle de congestion§ l’émetteur réduit son taux
d’émission en cas decongestion dans le réseau
Introduction : Architecture TCP/IP
8
Extrémités du réseau : un service sansconnexion
But: transfert de donnéesentre extrémités§ le même que précédemment !
r UDP - User Datagram Protocol[RFC 768]:Service sans connexion pourl’Internet§ Transfert de données non
fiable§ pas de contrôle de flux§ pas de contrôle de
congestion
Applis utilisant TCP:r HTTP (WWW), FTP (file
transfer), Telnet(remote login), SMTP(email)
Applis utilisant UDP:r diffusion vidéo
“streaming”,Téléconférence,Téléphonie sur Internet,
r DNS, SNMP
5
Introduction : Architecture TCP/IP
9
Le cœur de réseau
r Topologie de routeursinterconnectés
r Question : comment lesdonnées doivent-elles êtreacheminées dans le réseau ?§ Commutation de circuit:
circuit dédié par appel :réseau téléphonique§ Commutation de paquet:
données envoyées dans leréseaux en plusieursmorceaux
Introduction : Architecture TCP/IP
10
Choix naturel: la commutation depaquets
r Store and Forwardr supériorité du mode paquet pour le transfert de
données
A
B
C10 Mb/sEthernet
1.5 Mb/s
45 Mb/s
D E
Multiplexage statistique
File des paquets en attente du lien de sortie
6
Introduction : Architecture TCP/IP
11
Routage dans les réseaux àcommutation de paquets
r But: acheminer les paquets entre la source et ladestination
r mode “datagramme” :§ l’adresse de destination détermine le nœud suivant§ les routes peuvent changer pour une même “session”§ C’est le choix de l’Internet
r mode circuit virtuel :§ chaque paquet véhicule une étiquette (n° CV), l’étiquette
détermine le nœud suivant§ Chemin fixe établi à l’établissement de l’appel, fixe pour
toute la durée de l’échange !
Introduction : Architecture TCP/IP
12
Réseau d’accès
Q: Comment connecter unemachine à un routeur d’accès ?
r Réseaux d’accès résidentiels(Téléphone, ADSL, Numéris,Câble)
r Réseau d’accès“institutionnels” (universités,entreprises)
r Réseaux d’accès Mobiles(boucle locale hertzienne,Téléphonie Mobile)
7
Introduction : Architecture TCP/IP
13
Pile de Protocoles Internetr application: supporte les applications
réseaux§ ftp, smtp, http
r transport: Transfert de donnéesd’hôte à hôte§ TCP, UDP
r réseau: acheminement desdatagrammes de la source à ladestination§ IP, protocoles de routages
r liaison: Transfert de données entredes équipements de réseaux voisins§ PPP, ethernet
r physique: transmission d’infos binaires
application
transport
réseau
liaison
physique
Introduction : Architecture TCP/IP
14
Modèle en couches : Rappel !
applicationtransport
réseauliaison
physique
applicationtransport
réseauliaison
physique applicationtransport
réseauliaison
physique
applicationtransport
réseauliaison
physique
réseauliaison
physique
données
donnéesExemple :
Transportr reçoit données de
l’applicationr ajoute @ + infos
pour transfertfiable =>“datagrammes”
r envoie ledatagramme àl’entité paire
r attend un ack del’entité paire
transport
transport
ack
données
8
Introduction : Architecture TCP/IP
15
La Couche Transport dans l’Internetr Permet des communications
logiques entre processusapplicatifs s’exécutant surdes machines différentes
r La couche Transport n’estprésente que dans lesextrémités
r service transport vs serviceréseau:
r couche réseau: transfert dedonnées entre des machinesd’extrémités
r couche transport: transfertde données entre processus§ peut améliorer et/ou
fiabiliser le service réseau
Services Transport dansl’Internet:
r fiable, respecte leséquencement, unicast (TCP)§ congestion§ contrôle de flux§ Mise en place de connexion
r pas fiable (“best-effort”),pas de respect duséquencement, unicast oumulticast (UDP)
Introduction : Architecture TCP/IP
16
applicationtransport
réseau
M P2applicationtransport
réseau
Multiplexage/demultiplexagesegment - unité de données
échangées entre 2 entités detransport§ TPDU: transport protocol
data unit (OSI)récepteur
HtHn
Demultiplexage: délivrer lessegments reçus aux bonsprocessus applicatifs
segmentsegment M
applicationtransport
réseau
P1M
M MP3 P4
En-têtesegment
Données application
9
Introduction : Architecture TCP/IP
17
Multiplexage/demultiplexage
multiplexage/demultiplexage:r repose sur la notion de port et
d’adresse IP§ port source et destination
dans chaque segment§ ports réservés pour des
applications spécifiques
Traiter des données de ≠proc. Appli., Ajout d’1 en-tête utilisé ensuite pourdémultiplexer
port source Port dest
32 bits
Données applicatives (message)
Autres champs en-tête
Format général des segmentsTCP/UDP
Multiplexage:
Introduction : Architecture TCP/IP
18
UDP: User Datagram Protocol [RFC 768]
r Ne fait presque rien !r Service “best effort”, les
segments UDP peuventêtre:§ perdus§ délivrés dans le
désordre aux applisr sans connexion:§ pas de négociation
entre l’émetteur et lerécepteur
§ Segments UDP traitésindépendamment les unsdes autres
Pourquoi UDP?r Pas d’établissement de
connexion (ajoute 1 délai)r simple: pas besoin de
conserver des traces de cequi a été envoyé
r en-tête de segment courtr pas de contrôle de
congestion, ni de flux : onenvoie les données !
10
Introduction : Architecture TCP/IP
19
UDP: suiter souvent utilisé pour les
applis multimédia“streaming”§ tolérantes à la perte§ sensibles au débit
r autres usages§ DNS§ SNMP
r Transfert fiable sur UDP:renvoi la fiabilité à lacouche applicative(récupération d’erreur)
port source Port destination
32 bits
DonnéesApplicatives
(message)
Format segment UDP
longueur checksum
Longueur (octets) du segment UDP
y compris l’en-tête
Introduction : Architecture TCP/IP
20
TCP: Présentation Générale RFCs: 793,1122, 1323, 2018, 2581
r Envoi de données en full-duplex:§ flot bi-directionnel dans la
même connexion§ MSS: maximum segment
sizer orienté connexion:§ négociation (échange de
messages de contrôle)r Contrôle de flux:§ émetteur ne doit pas
submerger le destinataire
r point-à-point:§ 1 émetteur - 1 récepteur
r fiable, séquencé:§ C’est un flot d’octets
r Contrôles :§ Fenêtres de contrôle de
flux et de congestionr buffers d’émission et
de réception
TCPBuffer émission
TCP buffer réception
segment
applicationÉcrit données
application lit données
11
Introduction : Architecture TCP/IP
21
Structure du Segment TCP
Port source Port Destination
32 bits
Données (longueur variable)
Numéro de séquenceNuméro d’acquittement
Taille fen. récepptr données urgchecksum
FSRPAULongen-tête
Pasutilisé
Options (longueur variable)
URG: données urgentes
ACK: n°ACK valide
PSH: push data
RST, SYN, FIN:établissement cnx
Nombre octetsrécepteur peutrecevoir
En octets(pas en segments)
Q: Comment le récepteur traite les segments dans le désordre ?R: Pas dans la spec TCP - laissé au choix de l’implantation
Introduction : Architecture TCP/IP
22
Génération des ACK TCP [RFC 1122, RFC 2581]
Evénement
arrivée du segment attendu,pas de segment manquant,tout le reste à déjà été acquitté
arrivée du segment attendu,pas de segment manquant,un segment non encore acquitté
arrivée d’un segment avec un seq #plus grand que prévuinfo manquante détectée
arrivée d’un segment qui combletoute ou partie d’une info manquante
Action récepteur TCP
ACK retardé. Attente jusqu’à 500msdu segment suivant. Le cas échéant,envoi ACK
envoi immédiat d’un seul acquittement“cumulatif”
envoi du même ACK (dupliqué), même valeur du seq. # du prochain octet attendu
ACK immédiat si le segment commenceau début de la partie manquante
12
Introduction : Architecture TCP/IP
23
TCP: scénarios de retransmission
Hôte A
Seq=92, 8 octets de données
ACK=100
losstem
pori
sati
on
tempsExemple : Perte d’1 ACK
Hôte B
X
Seq=92, 8 octets de données
ACK=100
Hôte A
Seq=100, 20 octets de données
ACK=100
Tem
po. S
eq=9
2time Tempo. Expire
prématurémentACK groupés
Hôte B
Seq=92, 8 octets de données
ACK=120
Seq=92, 8 octets de données
Tem
po. S
eq=1
00
ACK=120
Introduction : Architecture TCP/IP
24
Contrôle de Flux TCPrécepteur: informe explicitement
l’émetteur de la taille disponibledans le buffer (changementdynamique)§ RcvWindow champ du
segment TCPémetteur:§ garde les données non-acquittées§ ne peut envoyer que
RcvWindow - Non acquittées
L’émetteur ne doit passubmerger le destinen envoyant trop dedonnées, trop vite
Contrôle de Flux
Buffer de réception
RcvBuffer = Taille du Buffer TCP en réception
RcvWindow = Taille disponible dans le buffer
13
Introduction : Architecture TCP/IP
25
Temps d’A/R (RTT) et TemporisationQ: Comment choisir la valeur du TimeOut?r Plus longue que le RTT : Rem: le RTT varie !r Trop court: timeout prématuré retransmissions inutilesr trop longue : réaction trop lente en cas de perteQ: Comment estimer le RTT?r SampleRTT: temps entre émission du segment/réception ACK§ ignore retransmissions, ACK groupés
r SampleRTT varie, on veut une estimation du RTT
RTTest = (1-x)*RTTest + x*SampleRTTPar ex: x=0.1
Dimensionnement du timeout
Timeout = EstimatedRTT + 4*DéviationDéviation = (1-x)*Déviation +x*|SampleRTT-RTTest|
Introduction : Architecture TCP/IP
26
Gestion des Connexions TCP :Mise en place
Initialiser les variables TCP:§ numéros de séquence§ buffers, infos de contrôle de flux (e.g., RcvWindow)
r client: initie la connexionr server: contacté par le client
3 phasesEtape 1: le client envoie un segment TCP SYN au serveur§ spécifie n° seq initial
Etape 2: serveur répond par un segment SYNACK§ ACK de réception SYN§ alloue les buffers§ n° de seq. initial
Etape 3: ACK de l’ACK
14
Introduction : Architecture TCP/IP
27
Fin des connexions TCP
Etape 1: client envoie unsegment TCP FIN auserveur
Step 2: serveur répond parACK. Pour fermer laconnexion, il envoie FIN.
Step 3: client reçoit FIN,répond par ACK.
Entre dans une phased’attente pour acquitter laréception d’éventuelssegments FIN
Step 4: serveur, reçoit ACK.Connexion fermée.
client
FIN
serveur
ACK
ACK
FIN
fermeture
fermeture
fin
atte
nte
fin
Introduction : Architecture TCP/IP
28
Principes du Contrôle de Congestion
Congestion:r “trop de sources envoient trop de données dans
une région donnée du réseau plus vite que le réseaune peut les traiter”
r différent du contrôle de flux!r manifestations:§ pertes de paquets (dépassement de la capacités
des buffers dans les routeurs)§ longs délais (attente dans les files)
r Ordinairement pris en charge par le réseau !r TCP de bout en bout essaye de réagir.
15
Introduction : Architecture TCP/IP
29
Contrôle de congestion TCPr Utilisation d’1 fenêtre de contrôle de congestion, CongWin
r “Test de la bande passante disponible “§ idéalement: transmettre autant que possible (Congwin) sans perte§ augmenter Congwin jusqu’à ce qu’une perte survienne (congestion)§ perte: diminuer Congwin, recommencer à tester (en réaugmentant)
r 2 “phases”§ slow start§ congestion avoidance
Introduction : Architecture TCP/IP
30
TCP “Slowstart”
r Croissance exponentielle de lataille de fenêtre (pas si lent, maispart de bas !)
r loss event: Temporisation tombe(TCP Tahoe) et/ou 3 fois le mêmeACK (TCP Reno)
initialisation: Congwin = 1Pour (chaque segment acquitté) Congwin++Jusqu’à (loss event OU CongWin > seuil)
Algorithme du SlowstartHôte A
1 segment
RTT
Hôte B
time
2 segments
4 segments
16
Introduction : Architecture TCP/IP
31
TCP Congestion Avoidance
/* slowstart fini *//* Congwin > threshold */Jusqu’à (loss event) { Pour Congwin segments ACKed: Congwin++}threshold = Congwin/2Congwin = 1Retour au slowstart
Congestion avoidance
TCP Reno retourne au slowstart (fast recovery) après 3 ACKs dupliqués
Introduction : Architecture TCP/IP
32
r Acheminement des paquetsde bout en bout
r Les protocoles de réseauxsont présents dans toutes lesmachines des extrémités etdans tous les routeurs.
3 fonctions importantes:r détermination du chemin :
route prise par les paquetsentre la source et la dest.Algorithmes de routage
r commutation: déplacement dupaquet de l’entrée du routeurvers la sortie
r mise en place et gestion desconnexions: pour certainesarchitecture de réseau (X.25)
réseauliaison
physique
réseauliaison
physique
réseauliaison
physique
réseauliaison
physique
réseauliaison
physique
réseauliaison
physique
réseauliaison
physique
réseauliaison
physique
applicationtransport
réseauliaison
physique
applicationtransport
réseauliaison
physique
La couche Réseau - IP
17
Introduction : Architecture TCP/IP
33
Routage
Réseau représenté par ungraphe valué
r nœuds = routeursr arêtes = liens physiques§ poids des liens: délai, prix,
niveau d’engorgement ...
But: déterminer un “bon”chemin (suite de routeurs) à
travers le réseau de lasource vers la dest.
Protocole de routage
A
ED
CB
F2
21
3
1
1
2
53
5
r “bon” chemin:§ plus court chemin§ attention au choix de la
métrique§ et à la pertinence des
valeurs des poids !
Introduction : Architecture TCP/IP
34
Principales Familles d’algorithmesde routage utilisés dans l’Internet
r Algorithme à vecteur de distance (ex: RIP)§ chaque nœud stocke pour chaque réseau la distance minimale
pour l’atteindre + nœud suivant§ les routeurs s’échangent leur table de routage
r Algorithmes à états de liaisons (ex: OSPF)§ chaque nœud récolte des infos sur toute les liaisons du
réseau§ effectue ses propres calculs
r Les premiers sont plus simples, les seconds plusrobustes.
18
Introduction : Architecture TCP/IP
35
Routage HiérarchiqueLimites des Algorithmes précédentsr Taille (50 millions de destinations)
r Autonomie d’administration (chaque admin de réseau veutcontrôler le routage à l’intérieur de son réseau)
r Découpage en “SystèmesAutonomes” (AS)
r Les routeur d’1 AS utilise lemême protocole§ protocole de routage intra-AS§ les routeurs de AS peuvent
utiliser différent protocolesde routage intra-AS
r Routeurs spécifiquesdans les AS
r Déroulent le mêmeprotocole à l’intérieur del’AS
r responsable du routagevers l’extérieur utiliseautre protocole deroutage inter-AS
Routeurs de bordure
Introduction : Architecture TCP/IP
36
Routage Intra-AS et Inter-AS
Hôte h2
a
b
b
aaC
A
Bd c
A.aA.c
C.bB.a
cb
Hôteh1
Routage Intra-ASà l’intérieur de l’AS A
Routage Inter-ASentre A et B
Routage Intra-AS àl’intérieur de l’AS B
19
Introduction : Architecture TCP/IP
37
Adressage IPv4r Adresse IPv4: 32 bits identifie 1
interface (machine ou routeur)
r interface: cnx entre 1 hôte ou 1routeur et le lien physique§ les routeurs ont plusieurs
interfaces
r adresse IP:§ n° réseau (bits de poids fort)§ n° hôte (bits de poids faible)
r Qu’est-ce qu’1 réseau ? (du point devue adressage IP)§ les interfaces qui ont la partie
“réseau” dans leur adresse IP§ peuvent s’atteindre
physiquement sans passer parun routeur
223.1.1.1 = 11011111 00000001 00000001 00000001
223 1 11
223.1.1.1
223.1.1.2
223.1.1.3
223.1.1.4 223.1.2.9
223.1.2.2
223.1.2.1
223.1.3.2223.1.3.1
223.1.3.27
LAN
Introduction : Architecture TCP/IP
38
Adresses IP
0 réseau hôte
10 réseau hôte
110 réseau hôte
1110 Adresse multicast
A
B
C
D
classe1.0.0.0 à127.255.255.255128.0.0.0 à191.255.255.255
192.0.0.0 à223.255.255.255
224.0.0.0 à239.255.255.255
32 bits
r Plusieurs Classes d’adresses
20
Introduction : Architecture TCP/IP
39
Adressage IP: CIDRr Utilisation de ces classes:§ Utilisation inefficace de l’espace d’adresse, nombreuses
pertes§ ex: classe B => 65000 adresses, même s’il n’a que 2000 hôtes
r CIDR: Classless InterDomain Routing§ portion de l’espace d’adresse de longueur quelconque§ format d’adresse: a.b.c.d/x, où x est le nombre de bits codant
le numéro de réseau dans l’adresse
11001000 00010111 00010000 00000000
Num réseau machine
200.23.16.0/23
Introduction : Architecture TCP/IP
40
Adresses IP
1 Réseau (ou une partie) se voit attribuer uneportion de l’espace d’adresse de son ISP
Bloc d’1 ISP 11001000 00010111 00010000 00000000 200.23.16.0/20
Organisation 0 11001000 00010111 00010000 00000000 200.23.16.0/23
Organisation 1 11001000 00010111 00010010 00000000 200.23.18.0/23
Organisation 2 11001000 00010111 00010100 00000000 200.23.20.0/23 ... ….. …. ….
Organisation 7 11001000 00010111 00011110 00000000 200.23.30.0/23
21
Introduction : Architecture TCP/IP
41
Adressage hiérarchique :agrégation de routes
“Envoyez moi tous les paquets dont les adresses commencent par 200.23.16.0/20”
200.23.16.0/23
200.23.18.0/23
200.23.30.0/23
ISP 1
Organisation 0
Organisation 7Internet
Organisation 1
ISP 2 “Envoyez-moi tous les paquetsdont les adresses commencent par199.31.0.0/16”
200.23.20.0/23Organisation 2
...
...
Introduction : Architecture TCP/IP
42
Adressage Hiérarchique :routes plus spécifiques
ISP-2 a une route plus spécifique pour atteindre l’organisation 1
“Envoyez moi tous les paquets dont les adresses commencent par200.23.16.0/20”
200.23.16.0/23
200.23.18.0/23
200.23.30.0/23
ISP1
Organisation 0
Organisation 7Internet
Organisation 1
ISP2 “Envoyez moi tous les paquets dontles adresses commencent par199.31.0.0/16 ou 200.23.18.0/23”
200.23.20.0/23Organisation 2
...
...
22
Introduction : Architecture TCP/IP
43
Format de datagramme IP
Ver. Long. totaledu datagramme
Numéro du paquet
Durée de vie
Protocole
@ Source
@ Destination
Options
Long.En-tête
Typeservice
Flags Offsetde Fragment
Checksum de l’en-tête
Données
32 bits
Longueur totale = en-tête + données
Offset de Fragment = exprimé en nb*8 octets
Flags = Don’t Fragment, More Fragment
Options = rapports d’erreur, marquage temporel ...
Introduction : Architecture TCP/IP
44
Acheminement d’un datagramme de lasource vers la destination
223.1.1.1
223.1.1.2
223.1.1.3
223.1.1.4 223.1.2.9
223.1.2.2
223.1.2.1
223.1.3.2223.1.3.1
223.1.3.27
A
BE
Envoi d’1 paquet de A vers B:r (Recherche @ IP de B)r B est sur le même réseau que Ar La couche liaison envoi le datagramme
dans une trame à destination de B
Dest. Net. next router Nhops
223.1.1 1223.1.2 223.1.1.4 2223.1.3 223.1.1.4 2
divers 223.1.1.1 223.1.1.3 data
divers 223.1.1.1 223.1.2.2 data
Envoi d’1 paquet de A vers E:r (Recherche @ IP de E)r E n’est pas sur le même réseau que Ar La couche liaison envoi le datagramme
dans une trame à destination du routeur