DESS RMI - Interconnexion de réseaux (2/5) Protocoles TCP/IP Olivier Fourmaux olivier.fourmaux@lip6.fr Version 1
Plan Rappels sur la couche transport UDP : un protocole en mode non connecté TCP : un protocole en mode orienté connexion Rappels sur la couche réseau IPv4 : le protocole d interconnexion olivier.fourmaux@lip6.fr 1
Couche Transport La Couche Transport permet de faire communiquer directement deux ou plusieurs entités sans avoir à se préoccuper des différents éléments de réseaux traversés : associations virtuelles de bout-en-bout (end-to-end) abstraction de la topologie et des technologies sous-jacentes services génériques potentiellement attendus par les applications : contrôle d erreur fiabilité ordonnancement contrôle de flux contrôle de congestion olivier.fourmaux@lip6.fr 2
Couche Transport : OSI 7 Application Interface 6 Presentation Application protocol APDU Presentation protocol Application Presentation Interface 5 Session Session protocol Session 4 Transport Transport protocol Transport 3 Network Network Network Network 2 Data link Data link Data link Data link 1 Physical Physical Physical Physical Host A Router Router Host B olivier.fourmaux@lip6.fr 3
Couche Transport : TCP/IP TELNET FTP SMTP DNS TCP UDP IP ARPANET SATNET Packet# radio LAN olivier.fourmaux@lip6.fr 4
Couche Transport : 2 approches Mode non connecté Sending host Network Receiving host Sending process Datagram Receiving process Mode orienté connexion Sending host Network Receiving host Sending process Virtual connection Receiving process olivier.fourmaux@lip6.fr 5
Couche Transport : Primitives Interface de programmation (applications ou developpeurs) exemple de primitives de base en mode connecté : LISTEN CONNECT SEND RECEIVE DISCONNECT olivier.fourmaux@lip6.fr 6
Couche Transport : Automate de connexion Connection request TPDU received IDLE Connect primitive executed PASSIVE ESTABLISHMENT PENDING ACTIVE ESTABLISHMENT PENDING Connect primitive executed Disconnection request TPDU received PASSIVE DISCONNECT PENDING ESTABLISHED Connection accepted TPDU received Disconnect primitive executed ACTIVE DISCONNECT PENDING Disconnect primitive executed IDLE Disconnection request TPDU received pictures from Tanenbaum A. S. Computer Networks 3rd edition olivier.fourmaux@lip6.fr 7
REJECT (ACK = y) DATA (seq = x, ACK = z) ACK (seq = y, ACK = x) CR (seq = x) DATA (seq = x, ACK = y) Time ACK (seq = y, ACK = x) CR (seq = x) Couche Transport : Etablissement (call setup) Host 1 Host 2 Host 1 Host 2 REJECT (ACK = y) ACK (seq = y, ACK = x) CR (seq = x) Host 1 Host 2 Old duplicate (a) (b) Old duplicate Old duplicate (c) olivier.fourmaux@lip6.fr 8
Couche Transport : Multiplexage (1) Application process Host 1 Host 2 TSAP 1208 Application layer Server 1 Server 2 Transport connection Transport layer TSAP 1522 TSAP1836 NSAP Network layer NSAP Data link layer Physical layer olivier.fourmaux@lip6.fr 9
Couche Transport : Multiplexage (2) Unix> cat \etc\services time 37/tcp time 37/udp tcpmux 1/tcp whois 43/tcp echo 7/tcp domain 53/tcp echo 7/udp domain 53/udp discard 9/tcp bootps 67/tcp discard 9/udp bootps 67/udp systat 11/tcp bootpc 68/tcp daytime 13/tcp bootpc 68/udp daytime 13/udp tftp 69/udp netstat 15/tcp gopher 70/tcp qotd 17/tcp gopher 70/udp chargen 19/tcp finger 79/tcp chargen 19/udp www 80/tcp ftp-data 20/tcp www 80/udp ftp 21/tcp kerberos 88/tcp ssh 22/tcp kerberos 88/udp ssh 22/udp hostnames 101/tcp telnet 23/tcp iso-tsap 102/tcp smtp 25/tcp... olivier.fourmaux@lip6.fr 10
Plan Rappels sur la couche transport UDP : un protocole en mode non connecté format du datagramme UDP utilisation d UDP TCP : un protocole en mode orienté connexion Rappels sur la couche réseau IPv4 : le protocole d interconnexion olivier.fourmaux@lip6.fr 11
UDP......... DATA............... olivier.fourmaux@lip6.fr 12
UDP : arguments pour un transport sans connexion Le choix d un service transport non connecté peut être motivé par : pas d établissement de connexion absence d état dans les hôtes entête réduit pas de retransmission pas de contrôle du débit d émission olivier.fourmaux@lip6.fr 13
Plan Rappels sur la couche transport UDP : un protocole en mode non connecté format du datagramme UDP utilisation d UDP TCP : un protocole en mode orienté connexion Rappels sur la couche réseau IPv4 : le protocole d interconnexion olivier.fourmaux@lip6.fr 14
Datagramme UDP 32 bits (4 octets) Source port Datagram length Destination port Checksum 2 lignes (8 octets) Message (application data) 1st bit last bit olivier.fourmaux@lip6.fr 15
UDP : Port source 32 bits (4 octets) Source port Datagram length Destination port Checksum 2 lignes (8 octets) multiplexage à la source (plusieurs clients vers un serveur) 16 bits (65535 ports) 7 echo 13 daytime 53 domain 69 tftp 161 snmp 162 snmp-trap 1027 (allocation fixe ou dynamique d un client)... olivier.fourmaux@lip6.fr 16
UDP : Port destination 32 bits (4 octets) Source port Datagram length Destination port Checksum 2 lignes (8 octets) multiplexage à la destination (plusieurs serveurs sur un hôte) le serveur doit être en écoute sur ce port pour accepter le datagramme 16 bits (65535 ports) 7 echo 13 daytime 53 domain 69 tftp 161 snmp 162 snmp-trap 2345 (port fixé à l avance et connu du client)... olivier.fourmaux@lip6.fr 17
UDP : Longueur du datagramme 32 bits (4 octets) Source port Datagram length Destination port Checksum 2 lignes (8 octets) Data longueur totale avec les données exprimée en octets 16 bits (64 Koctets maximum) olivier.fourmaux@lip6.fr 18
UDP : Somme de contrôle du datagramme 32 bits (4 octets) Source port Destination port Datagram length Checksum Data 2 lignes (8 octets) contrôle d erreur facultatif nécessaire si les couches sousjacentes n effectuent pas de contrôle pseudo-header 16 bits calcul rudimentaire : 1 mot 16bits 00000000 Protocol Datagram Length IP source address IP destination address olivier.fourmaux@lip6.fr 19
Plan Rappels sur la couche transport UDP : un protocole en mode non connecté format du datagramme UDP utilisation d UDP TCP : un protocole en mode orienté connexion Rappels sur la couche réseau IPv4 : le protocole d interconnexion olivier.fourmaux@lip6.fr 20
UDP : exemples d applications Les applications suivantes reposent typiquement sur UDP : résolution de noms (DNS) serveur de fichiers distants (NFS) protocole de routage (RIP) administration du réseau (SNMP) diffusion multimédia, streaming (propriétaire) téléphonie sur Internet (propriétaire) visioconférence, (propriétaire)... et toutes les applications multicast olivier.fourmaux@lip6.fr 21
UDP : Interface socket #include <sys/types.h> #include <sys/socket.h> # Create a descriptor int socket(int domain, int type, int protocol); # domain : PF_INET for IPv4 Internet Protocols # type : SOCK_DGRAM Supports datagrams (connectionless, unreliable msg of a fixed max length) # protocol : UDP (/etc/protocols) # Bind local IP and port int bind(int s, struct sockaddr *my_addr, socklen_t addrlen); # Send an outgoing datagram to a destination address int sendto(int s, const void *msg, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); # Receive the next incoming datagram and record is source address int recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlen); # End : dealocate int close(int s); olivier.fourmaux@lip6.fr 22
Plan Rappels sur la couche transport UDP : un protocole en mode non-connecté TCP : un protocole en mode orienté connexion format du segment TCP gestion de la connexion gestion de la fiabilité contrôle de flux contrôle de congestion implémentation : voyage au Nevada utilisation de TCP Rappels sur la couche réseau IPv4 : le protocole d interconnexion olivier.fourmaux@lip6.fr 23
Mode orienté connexion Caractéristiques associées au mode orienté connexion : état (mémoire) protocole de gestion de la connexion : création maintien suppression bidirectionnel services avancés : fiabilité ordonnancement contrôles d émissions... olivier.fourmaux@lip6.fr 24
Vers un service fiable La couche transport doit assurer la fiabilité afin d être indépendante des couches inférieures. Mécanismes associés à la fiabilisation de la connexion : ARQ (Automatic Repeat request) acquittement positif (ACK) ou négatif (NACK) détection d erreur retour d information (receiver feedback) retransmission fenêtre d anticipation protocole stop-and-wait protocole pipeline numéros de séquence acquittements cumulatifs ou sélectifs retransmissions Go-Back-N ou sélectives olivier.fourmaux@lip6.fr 25
TCP (1)......... ""!! $# DATA...... % % & & (' SYN SYN+ACK ACK......... olivier.fourmaux@lip6.fr 26
TCP (2) Caractéristiques de base : service fiable connexion bidirectionnelle (full duplex) point-à-point ouverture en trois échanges (three-way handshake) fermetures courtoise ou brutale orienté octet taille maximum de segments (bloc d octets) MSS (Maximun Segment Size) = taille des data! MSS typiques : 1460, 1448 et 512 structure... olivier.fourmaux@lip6.fr 27
Plan Rappels sur la couche transport UDP : un protocole en mode non connecté TCP : un protocole en mode orienté connexion format du segment TCP gestion de la connexion gestion de la fiabilité contrôle de flux contrôle de congestion implémentation : voyage au Nevada utilisation de TCP Rappels sur la couche réseau IPv4 : le protocole d interconnexion olivier.fourmaux@lip6.fr 28
))))) ***** max 10 l. ) ))))) * ***** ) ))))) * ***** ) ))))) * ***** ) ))))) * ***** ) ))))) * ***** ) ))))) * ***** ) ))))) * ***** )* min 5 lignes (min 20 octets) max 65 Koctets Segment TCP 32 bits (4 octets) Source port Destination port Hlen Sequence number Acknowledgment number Rcv window size Checksum Urgent data ptr Options Message (application data) olivier.fourmaux@lip6.fr 29 U R G A C K P S H R S T S Y N F I N
+++++,,,,, TCP : Port source 32 bits (4 octets) Source port Destination port Hlen + +++++,,,,,, + +++++,,,,,, + +++++,,,,,, + +++++,,,,,, + +++++,,,,,, + +++++,,,,,, + +++++,,,,,, + +++++,,,,,, +, Sequence number Acknowledgment number U R G A C K P S H R S T S Y N F I N Rcv window size min 5 lignes (min 20 octets) Checksum Urgent data ptr Options identification unique de l application source multiplexage à la source (plusieurs clients vers un serveur) 16 bits (65535 ports) 20 ftp 80 www 1027 (port utilisateur fixe ou dynamique) olivier.fourmaux@lip6.fr 30
-----... TCP : Port destination 32 bits (4 octets) Source port Destination port Hlen - -----.... - -----.... - -----.... - -----.... - -----.... - -----.... - -----.... - -----.... -. Sequence number Acknowledgment number U R G A C K P S H R S T S Y N F I N Rcv window size min 5 lignes (min 20 octets) Checksum Urgent data ptr Options identification unique de l application destination multiplexage à la destination (plusieurs serveurs sur un hôte) 16 bits (65535 ports) 20 ftp 80 www 2345 (port utilisateur fixe) olivier.fourmaux@lip6.fr 31
///// / 00000 0 TCP : Numéro de séquence (1) Hlen Source port / ////// 0 000000 / ////// 0 000000 / ////// 0 000000 / ////// 0 000000 / ////// 0 000000 / ////// 0 000000 / ////// 0 000000 / 0 32 bits (4 octets) Sequence number Destination port Acknowledgment number Checksum U R G A C K P S H R S T S Y N F I N Options Rcv window size Urgent data ptr min 5 lignes (min 20 octets) associé à chaque octet (et non pas à un segment) numérote le premier octet des data numérotation implicite des octets suivants détection des pertes ordonnancement 32 bits (boucle au bout de 4 Goctets) olivier.fourmaux@lip6.fr 32
TCP : Numéro de séquence (2) Hôte A Hôte B Seq=4000 200 Seq=4200 Seq=4400 200 200 1er octet = 4400 Dernier octet = 4599 olivier.fourmaux@lip6.fr 33
11111 1 22222 2 TCP : Numéro d acquitement (1) Hlen Source port 1 111111 2 222222 1 111111 2 222222 1 111111 2 222222 1 111111 2 222222 1 111111 2 222222 1 111111 2 222222 1 111111 2 222222 12 32 bits (4 octets) Sequence number Destination port Acknowledgment number Checksum U R G A C K P S H R S T S Y N F I N Options Rcv window size Urgent data ptr min 5 lignes (min 20 octets) indique le numéro du prochain octet attendu cumulatif, indique le premier octet non reçu (d autres peuvent avoir été reçus avec des numéros de séquence supérieurs) associé à une retransmission Go- Back-N piggybacking 32 bits olivier.fourmaux@lip6.fr 34
TCP : Numéro d acquitement (2) Hôte A Seq=4000 200 Hôte B Seq=4200 ACK Ack=4200 Seq=4400 200 200 ACK Ack=4400 olivier.fourmaux@lip6.fr 35
Piggybacking TCP : Numéro d acquitement (3) Hôte A S=4000 A=11200 S=4200 A=11200 S=4400 A=11500 S=4400 A=11500 ACK200 ACK 200 ACK ACK 300 ACK 100 Hôte B S=11200 A=4400 S=11500 A=4400 ACK200 ACK S=11600 A=4600 olivier.fourmaux@lip6.fr 36
33333 3 44444 4 TCP : Longueur de l entête Hlen Source port 3 333333 4 444444 3 333333 4 444444 3 333333 4 444444 3 333333 4 444444 3 333333 4 444444 3 333333 4 444444 3 333333 4 444444 34 32 bits (4 octets) Sequence number Destination port Acknowledgment number Checksum U R G A C K P S H R S T S Y N F I N Options Rcv window size Urgent data ptr nombre de lignes de 32 bits dans l entête TCP nécessaire car le champ option est de longueur variable (20 à 60 octets) valeur de 5 (pas d options) à 15 (10 lignes d options, soit 40 octets) 4 bits (valeur 0 à 15 maximum) olivier.fourmaux@lip6.fr 37
55555 5 66666 6 TCP : Indicateurs (flags) Hlen Source port 5 555555 6 666666 5 555555 6 666666 5 555555 6 666666 5 555555 6 666666 5 555555 6 666666 5 555555 6 666666 5 555555 6 666666 56 32 bits (4 octets) Sequence number Destination port Acknowledgment number Checksum U R G A C K P S H R S T S Y N F I N Options Rcv window size Urgent data ptr min 5 lignes (min 20 octets) Chacun sur 1 bit indique : URG : présence de données urgentes ACK : champ acquittement valide PSH : envoi immédiat avec vidage des tampons RST : terminaison brutale de la connexion SYN : synchronisation lors de l ouverture FIN : fermeture courtoise olivier.fourmaux@lip6.fr 38
77777 7 88888 8 TCP : Taille de la fenêtre de réception Hlen Source port 7 777777 8 888888 7 777777 8 888888 7 777777 8 888888 7 777777 8 888888 7 777777 8 888888 7 777777 8 888888 7 777777 8 888888 78 32 bits (4 octets) Sequence number Destination port Acknowledgment number Checksum U R G A C K P S H R S T S Y N F I N Options Rcv window size Urgent data ptr min 5 lignes (min 20 octets) indique le nombre d octets disponibles du coté du récepteur dimentionne la taille de la fenêtre d anticipation (coulissante) de l émetteur contrôle de flux piggybacking 16 bits (le récepteur annonce 64 Koctets maximum) olivier.fourmaux@lip6.fr 39
99999 9 ::::: : TCP : Somme de contrôle du segment Hlen Source port 9 999999 : :::::: 9 999999 : :::::: 9 999999 : :::::: 9 999999 : :::::: 9 999999 : :::::: 9 999999 : :::::: 9 999999 : :::::: 9: Checksum U R G A C K P S H R S T 32 bits (4 octets) Sequence number S Y N F I N Destination port Acknowledgment number Rcv window size Urgent data ptr min 5 lignes (min 20 octets) contrôle d erreur nécéssaire si les couches sousjacentes n effectuent pas de contrôle pseudoheader 16 bits calcul rudimentaire : 1 mot 16bits Options Data 00000000 Protocol Segment Lenght IP source address IP destination address olivier.fourmaux@lip6.fr 40
;;;;; ; <<<<< < TCP : Pointeur sur les données urgentes Hlen Source port ; ;;;;;; < <<<<<< ; ;;;;;; < <<<<<< ; ;;;;;; < <<<<<< ; ;;;;;; < <<<<<< ; ;;;;;; < <<<<<< ; ;;;;;; < <<<<<< ; ;;;;;; < <<<<<< ; < 32 bits (4 octets) Sequence number Destination port Acknowledgment number Checksum U R G A C K P S H R S T S Y N F I N Options Rcv window size Urgent data ptr min 5 lignes (min 20 octets) permet l envoi de données spéciales (et non hors bande) délimite des données traitées en priorité indique la fin des données urgentes interprétation de la quantité de données et de leur rôle par l application 16 bits olivier.fourmaux@lip6.fr 41
===== = >>>>> > Hlen Source port = ====== > >>>>>> = ====== > >>>>>> = ====== > >>>>>> = ====== > >>>>>> = ====== > >>>>>> = ====== > >>>>>> = ====== > >>>>>> = > 32 bits (4 octets) Sequence number Destination port Acknowledgment number Checksum U R G A C K P S H R S T S Y N F I N Options Rcv window size Urgent data ptr TCP : Options min 5 lignes (min 20 octets) Les options sont de la forme TLV ou Type, Length ( octets), Value : END : fin de liste d options (T=0) NOOP : pas d opération, bourrage (T=1) MSS : négociation du MSS (T=2, L=4, V=MSS) WSIZE : mise à l échelle de la fenêtre par une puissance de deux (T=3, L=3, V=puissance) SACK : demande d acquittement sélectif à l ouverture (T=4, L=2) SACK : acquittement sélectif de n blocs (T=5, L=2 + 8n, 2n numéros de séquences)... olivier.fourmaux@lip6.fr 42
Plan Rappels sur la couche transport UDP : un protocole en mode non connecté TCP : un protocole en mode orienté connexion format du segment TCP gestion de la connexion gestion de la fiabilité contrôle de flux contrôle de congestion implémentation : voyage au Nevada utilisation de TCP Rappels sur la couche réseau IPv4 : le protocole d interconnexion olivier.fourmaux@lip6.fr 43
TCP : Gestion de la connexion Création de la connexion (call setup) : three-way handshake Host 1 Host 2 Host 1 Host 2 SYN (SEQ = x) SYN (SEQ = x) SYN (SEQ = y) Time SYN (SEQ = y, ACK = x + 1) SYN (SEQ = y, ACK = x + 1) SYN (SEQ = x, ACK = y + 1) (SEQ = x + 1, ACK = y + 1) (a) (b) pictures from Tanenbaum A. S. Computer Networks 3rd edition Déconnexion (release) : fermeture unilatérale (shutdown) fermeture courtoise (gracefull release) olivier.fourmaux@lip6.fr 44
TCP : Three-Way Handshake Hôte A Hôte B S=3000 A=0 S=3001 A=7001 SYN SYN + ACK ACK200 ACK 300 ACK 100 S=7000 A=3001 S=7001 A=3201 S=7301 A=3201 olivier.fourmaux@lip6.fr 45
TCP : Gracefull Release Hôte A S=4000 A=11200 S=4200 A=11200 S=4400 A=11200 S=4600 A=11200 ACK200 ACK 200 ACK200 ACK + FIN ACK ACK +FIN 100 Hôte B S=11200 A=4400 S=12600 A=4700 olivier.fourmaux@lip6.fr 46
TCP : Shutdow Hôte A S=4000 A=x S=4200 A=x ACK200 ACK 200 ACK + RST Hôte B S=x A=4400 olivier.fourmaux@lip6.fr 47
TCP : Automate d états finis (Start) CONNECT/SYN CLOSED CLOSE/ LISTEN/ CLOSE/ SYN/SYN + ACK LISTEN SYN RCVD RST/ SEND/SYN SYN/SYN + ACK (simultaneous open) SYN SENT (Data transfer state) CLOSE/FIN ACK/ ESTABLISHED SYN + ACK/ACK (Step 3 of the three-way handshake) CLOSE/FIN FIN/ACK (Active close) (Passive Close) FIN WAIT 1 FIN/ACK CLOSING CLOSE WAIT ACK/ ACK/ CLOSE/FIN FIN WAIT 2 FIN + ACK/ACK FIN/ACK TIME WAIT LAST ACK CLOSED (Timeout/) ACK/ (Go back to start) olivier.fourmaux@lip6.fr 48
Plan Rappels sur la couche transport UDP : un protocole en mode non connecté TCP : un protocole en mode orienté connexion format du segment TCP gestion de la connexion gestion de la fiabilité contrôle de flux contrôle de congestion implémentation : voyage au Nevada utilisation de TCP Rappels sur la couche réseau IPv4 : le protocole d interconnexion olivier.fourmaux@lip6.fr 49
Politique d acquittement Hôte A Seq=4000 Seq=4200 Seq=4400 200 200 200 ACK ACK Hôte B Ack=4200 Ack=4400 Mécanismes de fiabilisation de TCP : ARQ (Automatic Repeat re- Quest) acquittement positif (ACK) retransmissions temporisées... fenêtre d anticipation protocole pipeline numéros de séquence acquitements cumulatifs retransmissions Go-Back- N nécessite une évaluation des : RT T (Round Trip Time) RT O (Retransmission TimeOut) olivier.fourmaux@lip6.fr 50
TCP : Temporisations Gestion de multiples temporisations (timers) : retransmission timer (détecte les pertes) RT O = RT T + δd avec δ = 4 et une valeur initiale du RT T élevée (3 secondes) RT T = αrt T mesure + (1 α)rt T ancien calcul d une moyenne avec α usuel = 1/8 D = β( RT T mesure RT T ancien ) + (1 β)d ancien calcul de l écart moyen avec β usuel = 1/4 algorithme de Karn ne pas tenir compte des paquets retransmis et doubler le RT O à chaque échec (exponential backoff ) persistence timer (évite les blocages) envoi d un acquittement avec une fenêtre à 0 keep alive timer (vérifie s il y a toujours un destinataire) closing timer (terminaison) olivier.fourmaux@lip6.fr 51
Politique de retransmission Acquittements cumulatifs, temporisation (RT O) et retransmission : Hôte A S=4000 A=x S=4200 A=x S=4400 A=x ACK200 ACK 200 ACK200 ACK Hôte B S=x A=4200 S=x A=4400 RTO S=4400 A=x ACK200 olivier.fourmaux@lip6.fr 52
Politique de retransmission Acquittements cumulatifs et politique Go-back-N : Hôte A Hôte B S=4000 A=x S=4200 A=x S=4400 A=x S=4000 A=x S=4200 A=x S=4600 A=x ACK200 ACK 200 ACK 200 ACK 200 ACK 200 ACK 200 ACK ACK ACK ACK ACK ACK S=x A=4000 S=x A=4000 S=x A=4000 S=x A=4600 S=x A=4600 S=x A=4800 olivier.fourmaux@lip6.fr 53
Plan Rappels sur la couche transport UDP : un protocole en mode non connecté TCP : un protocole en mode orienté connexion format du segment TCP gestion de la connexion gestion de la fiabilité contrôle de flux contrôle de congestion implémentation : voyage au Nevada utilisation de TCP Rappels sur la couche réseau IPv4 : le protocole d interconnexion olivier.fourmaux@lip6.fr 54
TCP : 1ère fenêtre coulissante Sliding window : Application writes data Window size Data sent and acknowledged Data sent but not acknowledged Data not sent but usable Data not usable Ack base Send base Ack from the receiver Data sent to the receiver olivier.fourmaux@lip6.fr 55
Application does a 2K write Sender TCP : Contrôle de flux Receiver Receiver's buffer 0 4K Empty 2K SEQ = 0 Application does a 3K write ACK = 2048 WIN = 2048 2K SEQ = 2048 2K Full Sender is blocked Sender may send up to 2K ACK = 4096 WIN = 0 ACK = 4096 WIN = 2048 Application reads 2K 2K 1K SEQ = 4096 1K 2 K pictures from Tanenbaum A. S. Computer Networks 3rd edition olivier.fourmaux@lip6.fr 56
Plan Rappels sur la couche transport UDP : un protocole en mode non connecté TCP : un protocole en mode orienté connexion format du segment TCP gestion de la connexion gestion de la fiabilité contrôle de flux contrôle de congestion implémentation : voyage au Nevada utilisation de TCP Rappels sur la couche réseau IPv4 : le protocole d interconnexion olivier.fourmaux@lip6.fr 57
TCP : Pertes L absence d un paquet au temps voulu : principalement lié à la congestion rarement à une erreur de transmission Comment évaluer une perte? Quelle politique de retransmission? olivier.fourmaux@lip6.fr 58
Transmission rate adjustment TCP : Contrôle de congestion (1) slow start (exponential increase) congestion avoidance (additive increase) multiplicative decrease Transmission network Internal congestion Small-capacity receiver Large-capacity receiver (a) (b) pictures from Tanenbaum A. S. Computer Networks 3rd edition Algorithmes de contrôle : superposition d une seconde fenêtre coulissante (cwin) algorithmes de contrôle du débit : olivier.fourmaux@lip6.fr 59
TCP : Contrôle de congestion (2) 44 40 Timeout 36 Threshold Congestion window (kilobytes) 32 28 24 20 16 12 8 Threshold 4 0 0 2 4 6 8 10 12 Transmission number 14 16 18 20 22 24 pictures from Tanenbaum A. S. Computer Networks 3rd edition olivier.fourmaux@lip6.fr 60
Plan Rappels sur la couche transport UDP : un protocole en mode non connecté TCP : un protocole en mode orienté connexion format du segment TCP gestion de la connexion gestion de la fiabilité contrôle de flux contrôle de congestion implémentation : voyage au Nevada utilisation de TCP Rappels sur la couche réseau IPv4 : le protocole d interconnexion olivier.fourmaux@lip6.fr 61
Implémentation A trip to Nevada : TCP Tahoe 1988 slow start + congestion avoidance + multiplicative decrease + fast retransmit (déclenche la retransmission d un segment après trois acquittements dupliqués, avant le timeout) TCP Reno 1990 (RFC 2581) idem TCP Tahoe + fast recovery (pas de slow start après un fast retransmit) TCP newreno 1996 (RFC 2582) idem TCP Reno + pas de slow start à la première congestion et ajustement de cwin + SACK (RFC 2018) TCP Vegas... évite la congestion en anticipant les pertes réduction du débit en fonction des variations du RT T olivier.fourmaux@lip6.fr 62
Plan Rappels sur la couche transport UDP : un protocole en mode non connecté TCP : un protocole en mode orienté connexion format du segment TCP gestion de la connexion gestion de la fiabilité contrôle de flux contrôle de congestion implémentation : voyage au Nevada utilisation de TCP Rappels sur la couche réseau IPv4 : le protocole d interconnexion olivier.fourmaux@lip6.fr 63
TCP : exemples d applications Les applications suivantes reposent typiquement sur TCP : connexion à distance (TELNET, rlogin et ssh) transfert de fichiers (FTP, rcp, scp et sftp) protocole de routage externe (BGP) messageries instantanées (IRC, ICQ, AIM...)... olivier.fourmaux@lip6.fr 64
TCP : utilisation spécifiques TCP doit s adapter à des flots de qqs bps à plusieurs Gbps : LFN (Long Fat Network) capacité du réseau = bande passante * délai de propagation limitation de taille de la fenêtre (option WSIZE, jusqu à un facteur 2 14 ) rebouclage des numéros de séquence (PAWS, Protect Against Wrapped Sequence, utilise l option TIMESTAMP) acquittements sélectifs pour éviter des retransmissions importantes inutiles (option SACK) satellites fibres transatlantiques réseaux asymétriques (ADSL, Cable) sous-utilisation du lien rapide olivier.fourmaux@lip6.fr 65
TCP : Interface socket #include <sys/types.h> #include <sys/socket.h> # create a descriptor and bind local IP and port int socket(int domain, int type, int protocol); # domain : PF_INET for IPv4 Internet Protocols # type : SOCK_STREAM Provides sequenced, reliable, 2-way, connection-based byte streams. # An out-of-band data transmission mechanism may be supported. # protocol : TCP (/etc/protocols) int bind(int s, struct sockaddr *my_addr, socklen_t addrlen); # Server : passive queuing mode and connection acceptance int listen(int s, int backlog); int accept(int s, struct sockaddr *addr, socklen_t *addrlen); # Client : active connection int connect(int sockfd, const struct sockaddr *serv_addr, socklen_t addrlen); # Send and receive data int send(int s, const void *msg, size_t len, int flags); int recv(int s, void *buf, size_t len, int flags); # End : dealocate int close(int s); olivier.fourmaux@lip6.fr 66
Plan Rappels sur la couche transport UDP : un protocole en mode non connecté TCP : un protocole en mode orienté connexion Rappels sur la couche réseau IPv4 : le protocole d interconnexion olivier.fourmaux@lip6.fr 67
Couche Réseau La Couche Réseau achemine les paquets de la source vers les destinataires en effectuant des sauts entre les différents nœuds intermédaires de bout-en-bout (end-to-end) connaissance de la topologie calcul du chemin (routage) adressage virtuel abstraction des technologies sous-jacentes encapsulation sur chaque technologie fragmentation conversion d adresses olivier.fourmaux@lip6.fr 68
Couche Réseaux : OSI 7 Application Interface 6 Presentation Application protocol APDU Presentation protocol Application Presentation Interface 5 Session Session protocol Session 4 Transport Transport protocol Transport 3 Network Network Network Network 2 Data link Data link Data link Data link 1 Physical Physical Physical Physical Host A Router Router Host B olivier.fourmaux@lip6.fr 69
Couche Réseau : approche circuit virtuel ou datagramme SNA Multiprotocol router 1 X. 25 M M ATM Router OSI M M End-to-end concatenated virtual circuits 2 Host 1 M M Packets travel individually and can take different routes Router M M Multiprotocol router 2 Host pictures from Tanenbaum A. S. Computer Networks 3rd edition olivier.fourmaux@lip6.fr 70
CCCC BBBBBBBBBAAAAAAAAAA CCCC Couche Réseau : Encapsulation La couche réseau fait abstraction des technologies sous-jacentes les données doivent pouvoir circuler de réseaux en réseaux les couches supérieures ne doivent faire aucune hypothèse sur les couches basses??? @ @@?@?? @ @?? @ @ ATM? Ethernet DDD DDD E EFF G GHH sera approfondie dans les cours sur les Architectures supports olivier.fourmaux@lip6.fr 71
Couche Réseau : Fragmentation Packet Network 1 Network 2 G 1 G 2 G 3 G 4 G 1 fragments a large packet G 2 reassembles the fragments G 3 fragments again G 4 reassembles again (a) Packet G 1 G 2 G 3 G 4 G 1 fragments a large packet The fragments are not reassembled until the final destination (a host) is reached (b) pictures from Tanenbaum A. S. Computer Networks 3rd edition olivier.fourmaux@lip6.fr 72
Couche Réseau : Adressage MMMM LLLLLLLLLKKKKKKKKKK MMMM La couche réseau définit un adressage virtuel valide sur tous les réseaux identification unique d un équipement masquage des mécanismes d adressages spécifiques à une technologie nécessite la mise en correspondance des adresses 47.00918100000000000CA79E01.00000CA79E01.00 163218239200400 I II J JJ IJ I I J J I I J J ATM? Ethernet NNN NNN O OOP PPQQ O OO R R 08:00:69:02:01:FC sera aussi approfondi dans les cours sur les Architectures supports olivier.fourmaux@lip6.fr 73
Couche Réseau : Routage Calcul du chemin initial (circuits virtuels) à chaque paquet (sans mémoire) Décisions de routage basée : table de routage statique dynamique algorithmes de routage protocoles de routage... sera approfondi dans le cours sur le Routage olivier.fourmaux@lip6.fr 74
Plan Rappels sur la couche transport UDP : un protocole en mode non connecté TCP : un protocole en mode orienté connexion Rappels sur la couche réseau IPv4 : le protocole d interconnexion structure du paquet IPv4 adressage classique IPv4 adressage CIDR translation d adresses messages de contrôle autoconfiguration tunnel et pare-feu olivier.fourmaux@lip6.fr 75
Couche Réseaux : TCP/IP TELNET FTP SMTP DNS TCP UDP IP ARPANET SATNET Packet# radio LAN IP est l interface universelle olivier.fourmaux@lip6.fr 76
IPv4............... c c d d U U U V V V XW ZY \[ ^] fe `` ba Routers S S S T T T Paquets......... olivier.fourmaux@lip6.fr 77
Plan Rappels sur la couche transport UDP : un protocole en mode non connecté TCP : un protocole en mode orienté connexion Rappels sur la couche réseau IPv4 : le protocole d interconnexion structure du paquet IPv4 adressage classique IPv4 adressage CIDR translation d adresses messages de contrôle autoconfiguration tunnel et pare-feu olivier.fourmaux@lip6.fr 78
IPv4 : Structure 32 bits (4 octets) Ver Hlen TOS Packet Length Identifier ghghghghghghghg ihihihihihihihi D F M F Frag. offset TTL Protocol Header checksum IP source address IP destination address min 5 lignes (min 20 octets) max 65 Koctets Options max 10 l. Segment / datagram /... (transport data) olivier.fourmaux@lip6.fr 79
IPv4 : Version Ver Hlen Identifier TOS 32 bits (4 octets) kjjk j j k k j j k k j j k k j j k k j j k k j j k k j j k k D F M F Frag. offset TTL Protocol Header checksum IP source address Packet Length min 5 lignes (min 20 octets) IP actuel : version 4 IP next génération : version 6 voir l U.E. ING 4 bits IP destination address Options olivier.fourmaux@lip6.fr 80
IPv4 : Longueur de l entête Ver Hlen Identifier TOS 32 bits (4 octets) mllm l l m m l l m m l l m m l l m m l l m m l l m m l l m m l l m m D F M F Options Frag. offset TTL Protocol Header checksum IP source address Packet Length IP destination address min 5 lignes (min 20 octets) nombre de lignes de 32 bits dans l entête IP nécessaire car le champ option est de longueur variable (20 à 60 octets) valeur de 5 (pas d options) à 15 (10 lignes d options, soit 40 octets) 4 bits (valeur 0 à 15 maximum) olivier.fourmaux@lip6.fr 81
Ver Hlen Identifier TOS 32 bits (4 octets) onno n n o o n n o o n n o o n n o o n n o o n n o o n n o o D F M F Options Frag. offset TTL Protocol Header checksum IP source address Packet Length IP destination address IPv4 : TOS min 5 lignes (min 20 octets) Type Of Service 8 bits : 3 bits de priorité (precedence) 000 : Routine 001 : Priority 010 : Immediate 011 : Flash 100 : Flash override 110 : Internetwork control 111 : Network control 3 bits de service Delay Throughput Reliability (cost) non utilisé...... pour le moment voir l U.E. ING (DiffServ Byte) olivier.fourmaux@lip6.fr 82
IPv4 : Taille du paquet Ver Hlen Identifier TOS 32 bits (4 octets) pqpqpqpqpqpqpqp rqrqrqrqrqrqrqr D F M F Frag. offset TTL Protocol Header checksum IP source address Packet Length IP destination address min 5 lignes (min 20 octets) taille totale du paquet avec entête exprimé en octets taille maximum de 576 octets minimum (512 octets de données + 64 octets de surcoût lié aux protocoles) 16 bits (64 Koctets maximum) Options max 10 l. Segment / datagram /... (transport data) olivier.fourmaux@lip6.fr 83
IPv4 : Identificateur Ver Hlen Identifier TOS 32 bits (4 octets) tsst s s t t s s t t s s t t s s t t s s t t s s t t s s t t D F M F Options Frag. offset TTL Protocol Header checksum IP source address Packet Length IP destination address min 5 lignes (min 20 octets) défini de manière unique pour chaque paquet pour réassembler les fragments d un même paquet habituellement, incrément d un compteur pour chaque paquet successif 16 bits (boucle tous les 64 Kpaquets) olivier.fourmaux@lip6.fr 84
IPv4 : Fragmentation Ver Hlen Identifier TOS 32 bits (4 octets) vuuv u u v v u u v v u u v v u u v v u u v v u u v v u u v v D F M F Options Frag. offset TTL Protocol Header checksum IP source address Packet Length IP destination address min 5 lignes (min 20 octets) 1 bit réservé 1 bit DF :Don t fragment (=1 interdit la fragmentation) 1 bit MF :More fragment (=0 pour le dernier fragment) 13 bits fragment offset en octets/8 (shift 3) exemples : 0x0000 paquet entier (offset=0) 0x2000 premier fragment (offset=0) 0x20A0 fragment central (offset=1280) 0x00B0 dernier fragment (offset=1408)... olivier.fourmaux@lip6.fr 85
IPv4 : Fragmentation Number of the first elementary fragment in this packet Packet number End of packet bit 1 byte 27 0 1 A B C D E F G H I J Header (a) 27 0 0 A B C D E F G H 27 8 1 I J Header (b) Header 27 0 0 A B C D E 27 5 0 F G H 27 8 1 I J Header Header Header (c) pictures from Tanenbaum A. S. Computer Networks 3rd edition olivier.fourmaux@lip6.fr 86
IPv4 : Temps de vie Ver Hlen Identifier TOS 32 bits (4 octets) xwwx w w x x w w x x w w x x w w x x w w x x w w x x w w x x D F M F Options Frag. offset TTL Protocol Header checksum IP source address Packet Length IP destination address min 5 lignes (min 20 octets) Time To Live unité initiale : seconde valeur maximum fixé par l émetteur (255, 128, 64...) décrément dans chaque routeur minimum 1 par routeur nombre de sauts évite les boucles 8 bits (max 255 secondes ou sauts) olivier.fourmaux@lip6.fr 87
IPv4 : Protocole transporté Ver Hlen Identifier TOS 32 bits (4 octets) zyyz y y z z y y z z y y z z y y z z y y z z y y z z y y z z D F M F Options Frag. offset TTL Protocol Header checksum IP source address Packet Length IP destination address min 5 lignes (min 20 octets) démultiplexage vers les protocoles de la couche supérieure : Unix> cat /etc/protocols icmp 1 # internet control message protocol ggp 3 # gateway-gateway protocol ipencap 4 # IP encapsulated in IP st 5 # ST datagram mode tcp 6 # transmission control protocol egp 8 # exterior gateway protocol udp 17 # user datagram protocol rdp 27 # "reliable datagram" protocol iso-tp4 29 # ISO Transport Protocol class 4 xtp 36 # Xpress Tranfer Protocol idrp 45 # Inter-Domain Routing Protocol rsvp 46 # Reservation Protocol gre 47 # General Routing Encapsulation ospf 89 # Open Shortest Path First IGP... 8 bits olivier.fourmaux@lip6.fr 88
IPv4 : Contrôle d erreur sur l entête Ver Hlen Identifier TOS 32 bits (4 octets) { { { { { { { { } } } } } } } } D F M F Packet Length Frag. offset TTL Protocol Header checksum IP source address IP destination address min 5 lignes (min 20 octets) contrôle d erreur sur l entête vérifie si le paquet a été bien traité 1 mot 16bits recalculé à la sortie de chaque routeur si faux, paquet détruit! 16 bits Options olivier.fourmaux@lip6.fr 89
IPv4 : Adresse source Ver Hlen Identifier TOS 32 bits (4 octets) ~~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ D F M F Frag. offset TTL Protocol Header checksum IP source address Packet Length min 5 lignes (min 20 octets) adresse IP 32 bits identifie l émetteur du paquet permet de retourner un message à l émetteur (ICMP, UDP...) IP destination address Options olivier.fourmaux@lip6.fr 90
IPv4 : Adresse destination Ver Hlen Identifier TOS 32 bits (4 octets) D F M F TTL Protocol Header checksum IP source address Packet Length Frag. offset min 5 lignes (min 20 octets) adresse IP 32 bits indique le réseau du destinataire identifie l interface du destinataire dans le réseau IP destination address Options olivier.fourmaux@lip6.fr 91
IPv4 : Options Ver Hlen Identifier TOS 32 bits (4 octets) ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ ƒ D F M F Options Frag. offset TTL Protocol Header checksum IP source address Packet Length IP destination address min 5 lignes (min 20 octets) système TLV identique à TCP analysées dans chaque routeur exemple : enregistrement de la route routage à la source strict routage à la source relâché estampilles temporelles sécurité... 0 à 40 octets (alignés sur 32 bits) A éviter! olivier.fourmaux@lip6.fr 92
Plan Rappels sur la couche transport UDP : un protocole en mode non connecté TCP : un protocole en mode orienté connexion Rappels sur la couche réseau IPv4 : le protocole d interconnexion structure du paquet IPv4 adressage classique IPv4 adressage CIDR translation d adresses messages de contrôle autoconfiguration tunnel et pare-feu olivier.fourmaux@lip6.fr 93
Adressage : Classes 32 Bits Class A B C D E 0 Network Host 10 Network Host 110 Network Host 1110 Multicast address 11110 Reserved for future use Range of host addresses 1.0.0.0 to 127.255.255.255 128.0.0.0 to 191.255.255.255 192.0.0.0 to 223.255.255.255 224.0.0.0 to 239.255.255.255 240.0.0.0 to 247.255.255.255 pictures from Tanenbaum A. S. Computer Networks 3rd edition olivier.fourmaux@lip6.fr 94
Adressage : Adresses particulières Adresses particulières : 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 This host 0 0... 0 0 Host A host on this network 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Network 127 (Anything) 1 1 1 1... 1 1 1 1 Broadcast on the local network Broadcast on a distant network Loopback pictures from Tanenbaum A. S. Computer Networks 3rd edition olivier.fourmaux@lip6.fr 95
Adressage : Subneting (1) Taille de l identifiant de réseau (netid) par défaut : classe A : /8 (255.0.0.0) classe B : /16 (255.255.0.0) classe C : /24 (255.255.255.0) Subdivision possible : 81.1.2.0 netmask 255.255.255.0 (notation par masque de réseau) 132.77.12.0/22 (notation par préfixe) 32 Bits Subnet mask 10 Network Subnet Host 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 pictures from Tanenbaum A. S. Computer Networks 3rd edition olivier.fourmaux@lip6.fr 96
Adressage : Subneting (2) 132.77.1.0/24 3 5 132.77.2.0/24 ˆ ˆ Š Œ Š Internet 132.77.0.0 1 254 254 254 3 5 7 11 132.77.3.0/24 olivier.fourmaux@lip6.fr 97
Adressage : Subneting (3) Adresse IPv4 : netid subnetid hostid 132.77 2 7 olivier.fourmaux@lip6.fr 98
Adressage : affectation Ž Ž Ž ž Ÿ Ÿ š œœ 192.33.1.0......... 10.0.0.0 56.0.0.0 56.1.3.0 56.17.8.0 56.1.4.0 56.1.5.0 56.1.6.0 56.1.7.0 56.2.8.0 56.2.2.0 192.33.1.0 56.17.45.0 140.18.21.0 140.18.2.0 140.18.1.0 140.18.11.0 140.18.22.0 140.18.39.0...... 140.18.0.0 olivier.fourmaux@lip6.fr 99...
IPv4 : Logique de routage Selon l adresse destination, envoi au... Accès direct non Route vers l hôte non Route vers le réseau non oui Route par défaut... prochain routeur non oui erreur... prochain routeur Table de routage : longuest préfix match oui... prochain routeur oui... destinataire Unix> route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.33.182.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 10.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 atm0 154.18.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 132.77.0.0 154.18.2.254 255.255.0.0 UG 0 0 0 eth1 default 192.33.182.254 0.0.0.0 UG 0 0 0 eth0 olivier.fourmaux@lip6.fr 100
Plan Rappels sur la couche transport UDP : un protocole en mode non connecté TCP : un protocole en mode orienté connexion Rappels sur la couche réseau IPv4 : le protocole d interconnexion structure du paquet IPv4 adressage classique IPv4 adressage CIDR translation d adresses messages de contrôle autoconfiguration tunnel et pare-feu olivier.fourmaux@lip6.fr 101
Adressage sans classe L attribution des adresses IP avec classe est inefficace adresses allouées par blocs de 256, 65K ou 16M les sous-réseaux permettent une meilleure gestion un adressage sans classe augmente la souplesse dans l attribution des adresses : les adresses : 192.77.16.0/24 192.77.17.0/24 192.77.18.0/24 192.77.19.0/24 peuvent être regroupées en : notation par préfixe : 192.77.16.0/22 notation par masque : 192.77.16.0 netmask 255.255.252.0 olivier.fourmaux@lip6.fr 102
Adressage : Superneting (1) CIDR (Classless InterDomain Routing) utilisé pour agréger des blocs d adresses contigües permet aux routeurs de maintenir une seule entrée de table de routage utilisé initialement par les ISP pour grouper des adresses de classe C initialement décrit en réduisant la taille du préfixe réseau le préfixe réseau par défaut pour la classe C est /24 les valeurs de préfixes réseau /23, /22, /21, etc. décrivent des agrégations d adresses de classe C exemples : 197.88.0.0/16 agrège 256 adresses de classe C 81.152.12.0/22 agrège?? olivier.fourmaux@lip6.fr 103
Adressage : Superneting (2) 192.77.20.0/24 3 5 192.77.21.0/24 Internet 192.77.20.0/22 254 254 254 3 5 7 11 1 192.77.22.0/24 olivier.fourmaux@lip6.fr 104
Adressage : Calcul CIDR Un bloc CIDR est donc l agrégation d un ensemble d adresses bits réseau (netid) d un bloc CIDR correspondent aux N bits les plus à gauche (/N définit le masque réseau du bloc CIDR) bits hôte (hostid) du bloc CIDR correspondent aux 32 N bits restants ensemble des adresses attribuables dans un bloc CIDR : premier hôte : hostid = 000...0001 dernier hôte : hostid = 111...1110 adresse de diffusion : hostid = 111...1111 exemple : Réseau agrégé -> 192.77.20.0/22 @ premier h^ote : 192.77.20.1... @ dernier h^ote : 192.77.23.254 @ de diffusion : 192.77.23.255 olivier.fourmaux@lip6.fr 105
Adressage : Affectation 81.33.1.0\22 56.2.0.0\24 56.2.0.16\28 ª«ª«ª ««......... 10.0.0.0\8 56.2.0.32\28 56.2.0.0\28 81.33.1.0\23 56.2.20.0\28 ««««²± ³ µ ¼» ¾½ º¹ 240.18.21.0\26 240.18.2.0\30 240.18.1.0\30 240.18.11.0\28 240.18.22.0\26...... 240.18.0.0\18 240.18.39.0\26... olivier.fourmaux@lip6.fr 106
Adressage : Synthèse Observation sur le découpage des plages d adresses en sous-réseaux (subnetting) ou en agrégats (supernetting) : Attention aux analyses simplistes... N = nombre de bits réseau H = nombre de bits hôte D = préfixe réseau par défaut (8 pour la classe A, 16 pour la classe B, 24 pour la classe C) si N = D, pas de subnetting ni de supernetting si N > D, subnetting (sous-réseau) si N < D, supernetting (CIDR)... FAUX, car on peut combiner subnetting et supernetting! olivier.fourmaux@lip6.fr 107
Plan Rappels sur la couche transport UDP : un protocole en mode non connecté TCP : un protocole en mode orienté connexion Rappels sur la couche réseau IPv4 : le protocole d interconnexion structure du paquet IPv4 adressage classique IPv4 adressage CIDR translation d adresses messages de contrôle autoconfiguration tunnel et pare-feu olivier.fourmaux@lip6.fr 108
IPv4 : Adresses privées Deux types d adressage : Public : tout hôte connecté à l Internet doit avoir une adresse unique valide Privé : pour un usage de TCP/IP non connecté à l Internet gestion autonome d un plan d adressage (avec adresses uniques) utilisation de plages d adresses spécifiques recommandée : adresses non routées (adresses privées) : 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16 utilisable dans chaque internet privé même en cas de connexion à l Internet, ce trafic n est pas relayé possibilité de sortir du réseau privé à l aide de : serveurs proxys conversion d adresses NAT olivier.fourmaux@lip6.fr 109
IPv4 : Translation des adresses Network Address Translation (NAT) Company LAN Company router 1 2 3 4 5 6 7 PC Packet before translation 10.0.0.1 198.60.42.12 NAT box/firewall Leased line Packet after translation ISP s router Server Boundary of company premises pictures from Tanenbaum A. S. Computer Networks 4rd edition olivier.fourmaux@lip6.fr 110
IPv4 : NAT, DNAT et NAPT Plusieurs approches de la conversion d adresses : NAT statique : correspondance fixe d adresses NAT dynamique : correspondance dynamique d adresses table d adresses dynamique : Adresse entrante adresse sortante 10.0.0.3 192.33.182.117 10.0.0.4 192.33.182.118...... NAPT (NAT overload) : correspondance dynamique vers une adresse (ou plusieurs adresses) avec surcharge utilisation des ports table dynamique (pour chaques protocoles) : Proto Adresse entrante Port entrant adresse sortante Port sortant TCP 10.0.0.3 1027 192.33.182.117 1027 TCP 10.0.0.4 1027 192.33.182.117 1028 UDP 10.0.0.4 31765 192.33.182.117 31765............... olivier.fourmaux@lip6.fr 111
IPv4 : Mécanismes NAPT Où sont modifiée les adresses? au niveau de la carte d interface : NAT en entrée processus de routage NAT en sortie Modifications annexes : le checksum des entêtes doit être recalculé NAT IP, TCP et UDP (adresse + pseudo-header) NAPT IP, TCP et UDP (adresse + pseudo-header + port) les adresses et ports paramètres de protocoles applicatifs doivent être aussi modifiées (commande PORT de FTP) les messages ICMP doivent être adaptés (recopie des paquets) olivier.fourmaux@lip6.fr 112
IPv4 : NAT et IETF Un standard publié : RFC 1631 NAPT fortement utilisé actuellement entreprises (flexibilité) fournisseurs de services (manque d adresses) particuliers (n ont qu une adresse) pose qqs problèmes architecturaux : les ports doivent identifier des processus et non des machines les routeurs modifient les paramètres de la couche transport principe de bout-en-bout : deux hôtes doivent communiquer directement sécuritaires : incompatible avec les mécanismes d authentification techniques : comment entrer dans le réseau translaté solutions court terme conversions statiques, serveurs intermédaires (UDP) long terme IPv6 olivier.fourmaux@lip6.fr 113
Plan Rappels sur la couche transport UDP : un protocole en mode non connecté TCP : un protocole en mode orienté connexion Rappels sur la couche réseau IPv4 : le protocole d interconnexion structure du paquet IPv4 adressage classique IPv4 adressage CIDR translation d adresses messages de contrôle autoconfiguration tunnel et pare-feu olivier.fourmaux@lip6.fr 114
IPv4 : ICMP Internet Control Message Protocol (RFC792) encapsulé dans un paquet IP (mais appartient à la couche 3) test et diagnostique du réseau : ICMP Type Code Description 0 0 echo reply 3 0 destination network unreachable 3 1 destination host unreachable 3 2 destination protocol unreachable 3 3 destination port unreachable 3 6 destination network unknown 3 7 destination host unknown 4 0 source quench 8 0 echo request 9 0 router advertisement 10 0 router discovery 11 0 TTL expired 11 1 reassembly time exeeded 12 0 IP header bad olivier.fourmaux@lip6.fr 115
ICMP : ECHO ICMP : Echo Request ping ÂÀÂ ÃÀÃ À ÁÀÁ ICMP : Echo Response Type Code Checksum Identifier Seq. Num. Data 8 (Echo Request) 0 0 (Echo Response) 0 1 octet 1 2 2 2... Teste l accessibilité d un équipement utilisé par la commande ping : indique la connectivité et la disponibilité d IP chez le destinataire plusieurs messages permettent d estimer le RTT et le taux de perte olivier.fourmaux@lip6.fr 116
ÅÄ ÇÆ ICMP : Destination inaccessible Host CiscoSystems Cisco 7000 SERIES App Routeur Net Unreach. TCP UDP Host Unreach. IP Proto. Unreach. Port Unreach. Type Code Checksum Unused Data 3 0 (Net Unreachable) IP Header 1 (Host Unreachable) + 64 bits 2 (Protocol Unreachable) 3 (Port Unreachable) 1 octet 1 4 2 (IHL * 4) + 8 Messages émis lorsque la destination n est pas accessible. l entête IP et une partie de la couche transport sont retournés @ source = créateur du message ICMP @ destination = @ source de l émetteur du paquet en cause P ARIS LA SCIENCE A olivier.fourmaux@lip6.fr 117
ËÊ ICMP : Timeout CiscoSystems Cisco 7000 SERIES CiscoSystems Cisco 7000 SERIES Routeur CiscoSystems Cisco 7000 SERIES ÉÈÈÉ È È É É TTL Exceeded Frag. Reass. Time Exceed Type Code Checksum Unused Data 11 0 (Time To Live Exceeded) IP Header 1 (Frag. Reass. Time Exceeded) + 64 bits 1 octet 1 4 2 (IHL * 4) + 8 Messages émis lorsque le temps de vie ou de réassemblage est dépassé. l entête IP et une partie de la couche transport sont retournés @ source = créateur du message ICMP @ destination = @ source de l émetteur du paquet en cause utilisé par la commande traceroute olivier.fourmaux@lip6.fr 118
ICMP : Autres messages Source Quench (Type 4) indique une congestion à la source pas de signalisation de fin de congestion Redirection (Type 5) indique si une meilleure route est disponible configuration minimale des hôtes autres messages principalement pour l autoconfiguration olivier.fourmaux@lip6.fr 119
Plan Rappels sur la couche transport UDP : un protocole en mode non connecté TCP : un protocole en mode orienté connexion Rappels sur la couche réseau IPv4 : le protocole d interconnexion structure du paquet IPv4 adressage classique IPv4 adressage CIDR translation d adresses messages de contrôle autoconfiguration tunnel et pare-feu olivier.fourmaux@lip6.fr 120
IPv4 : RARP Reverse Adresse Résolution Protocol (RFC 903) inverse du protocole ARP (réseaux à diffusion) obtention d une @ IP à partir de @ MAC au démarrage hôtes sans disques (terminaux X, imprimantes...) hôtes mobiles (portable changé de réseau...) utilisation d un serveur (rarpd) mise en correspondance de /etc/ethers et de /etc/hosts format des trames identique à ARP type Ethernet : 0x8035 code 3 pour une requête RARP code 4 pour une réponse RARP exemple d autoconfiguration : la nouvelle station déclanche un échange RARP la station demande le netmask par un echange ICMP la station demande au serveur RARP son programme de démarrage par TFTP olivier.fourmaux@lip6.fr 121
IPv4 : BOOTP BOOT Protocol (RFC 951 et RTF 1542) Protocole portable, sur UDP requête sur le port 68, réponse sur le port 67 quelles addresses IP utiliser lorqu on n en connait aucunes? @ IP de diffusion (255.255.255.255) @ IP par défaut (0.0.0.0) permet d atteindre un serveur sur un autre réseau à travers des agents BOOTP relais nombreuses extensions (RFC 1533) netmask liste des routeurs du sous-réseau liste de serveurs NTP liste des serveurs de noms (DNS) liste des serveurs d impression (LPD et autres) hostname et domainname TTL par défaut... olivier.fourmaux@lip6.fr 122
IPv4 : DHCP(1) Dynamic Host Configuration Protocol (RFC 2131) Extension compatible de BOOTP avec gestion dynamique des @ IP attribution dynamique par bail (lease) limité dans le temps bail renouvelé périodiquement si nécessaire nouvelles options DHCP (extensions BOOTP) DHCPDISCOVER C S localisation du serveur DHCPOFFER S C proposition au client DHCPREQUEST C S confirmation d une propositon DHCPACK S C validation d une configuration DHCPNACK S C invalidation d une configuration DHCPDECLINE C S refus d une configuration invalide DHCPRELEASE C S libération d une configuration DHCPINFORM C S demande d information autre que @ IP DHCPFORCERENEW S C demande de reconfiguration olivier.fourmaux@lip6.fr 123
ÏÎ IPv4 : DHCP(2) Serveur DHCP 1 DHCPDISCOVER DHCPDISCOVER Serveur DHCP 2 DHCPOFFER DHCPOFFER DHCPREQUEST Client DHCP DHCPREQUEST ÌÀÌ ÍÀÍ DHCPACK DHCPRELEASE olivier.fourmaux@lip6.fr 124
Plan Rappels sur la couche transport UDP : un protocole en mode non connecté TCP : un protocole en mode orienté connexion Rappels sur la couche réseau IPv4 : le protocole d interconnexion structure du paquet IPv4 adressage classique IPv4 adressage CIDR translation d adresses messages de contrôle autoconfiguration tunnel et pare-feu olivier.fourmaux@lip6.fr 125
Couche IPv4 : Tunnel Office 1 Office 2 Office 1 Leased line Firewall Internet Office 2 Tunnel Office 3 (a) Office 3 (b) pictures from Tanenbaum A. S. Computer Networks 4rd edition olivier.fourmaux@lip6.fr 126
IPv4 : Filtrage d adresses Firewall... Packet filtering router Application gateway Packet filtering router Backbone Connections to outside networks Corporate network Security perimeter Inside LAN Outside LAN Firewall pictures from Tanenbaum A. S. Computer Networks 3rd edition olivier.fourmaux@lip6.fr 127
Document réalisé avec L A TEX. Généré le 19 janvier 2005. Classe de document foils. Dessins réalisés avec xfig. Fin Olivier Fourmaux, olivier.fourmaux@lip6.fr http://www-rp.lip6.fr/~fourmaux Ce document est disponible en postscript compressé avec gzip à http://www-rp.lip6.fr/~fourmaux/res/lr4pro1-.pdf olivier.fourmaux@lip6.fr 128