Rseaux - PowerPoint PPT Presentation

1 / 74
About This Presentation
Title:

Rseaux

Description:

FIN attente 2 : l'autre extr mit accept la lib ration ... mss : La taille maximale du segment de donn es applicatives que l' metteur accepte de recevoir. ... – PowerPoint PPT presentation

Number of Views:77
Avg rating:3.0/5.0
Slides: 75
Provided by: liris3
Category:
Tags: accepte | rseaux

less

Transcript and Presenter's Notes

Title: Rseaux


1
Réseaux
  • INET

INSA - 07.12.2005 Vasile-Marian SCUTURICI
2
Rappel Modèle de référence OSI
émetteur
récepteur
Données
Données
AH
Données
PH
Données
SH
Données
TH
Données
NH
Données
DH
DT
bits
3
Modèle de référence TCP/IP (INET)
OSI
INET
telnet, http, ftp, dns, smtp
application
absentes
transport
TCP, UDP
Internet
IP
hôte au réseau
4
Plan - INET
  • Couche transport
  • TCP, UDP
  • Programmation réseau
  • Couche application
  • http, smtp, ftp, telnet, snmp, dns
  • (?) Compléments IP routage, NAT, PAT,

5
Le protocole TCP
  • Transmission Control Protocol
  • Transport fiable des données - contrôle des
    messages ordre, erreurs détectées et corrigées
  • Orienté connexion connexion entre émetteur et
    récepteur
  • Utilise IP
  • 95 du trafique Internet

6
Principe de fonctionnement
  • Connexion bidirectionnelle et point à point
  • Utilisation de deux points de connexion
    (sockets)
  • Chaque socket adresse IP nombre sur 16 bits
    (port)
  • IP communication machine machine
  • TCP et UDP communication application -
    application

Émetteur (adresse IP)
Récepteur (adresse IP)
port
port


port
port


port
port
64K ports
7
Principe de fonctionnement
  • Connexion TCP transmission dun flot doctets,
    et non de messages
  • La délimitation précise de messages nest pas
    conservé de bout en bout

8
En-tête TCP
4 octets
Port destination
Port source
Numéro de séquence (SEQ)
Numéro daccusé de réception (ACK)
Taille de fenêtre
Long. en- -tête TCP
Réservé
U R G
A C K
P S H
R S T
S Y N
F I N
Somme de contrôle
Pointeur durgence
Options (0, 1 ou plusieurs mots de 32 bits)
Données (optionnelles)
9
En-tête TCP
  • Port source, port destination identifient les
    extrémités de la connexion
  • Ports disponibles 65536
  • Les ports 0-1023 réservés
  • http 80
  • ftp 20, 21
  • http//www.iana.org/assignments/port-numbers

10
Exemples des connexions TCP
192.168.0.11
192.168.0.12
2243
1245
2244
1246
1247
192.168.0.18
5243
5244
5245
11
En-tête TCP
  • Longueur de len-tête TCP combien de mots de 32
    bits contient len-tête
  • Longueur variable (à cause du champ Options)
  • Mesuré en mots de 4 octets
  • Somme de contrôle assure la fiabilité
  • Émetteur
  • Met à 0 le champ somme de contrôle
  • Additionne tous les mots de 16 bits en complément
    à 1
  • Somme de contrôle le complément à 1 de la somme
    obtenue
  • Récepteur
  • Effectue le calcul précèdent sur le segment en
    entier
  • Le résultat doit être nul

12
Numéro de séquence
  • C'est un nombre qui identifie la position des
    données à transmettre par rapport au segment
    original.
  • Au démarrage de chaque connexion, ce champ
    contient une valeur non nulle et non facilement
    prévisible
  • TCP numérote chaque octet transmis en
    incrémentant ce nombre (32 bits non signé). Il
    repasse à 0 après avoir atteint 232 - 1.
  • Pour chaque octet des données transmis ce nombre
    est incrémenté (1).

13
Numéro daccusé de réception
  • Indique le prochain octet attendu
  • Accompagne le drapeau ACK
  • ACK 1 -gt le champ Numéro daccusé de réception
    doit être exploité

D
S
14
Mécanisme dacquittement
D
S
segment i
horloge
RTT
ACK
segment i
durée limite pour recevoir lacquittement (MSL)
le délai dépassé -gt segment renvoyé
durée dun aller/retour round trip time RTT ltlt
MSL
15
Etablissement dune connexion
D
S
16
Etablissement dune connexion initialisation en
trois étapes
D
S
Note le segment SYN est considéré comme un
segment contenant un octet!
17
Libération dune connexion
  • FIN 1 -gt lémetteur na plus des données à
    transmettre
  • Réinitialisation dune connexion RST
  • pour rejeter une connexion
  • signaler une erreur

18
Transfert des données
  • Une machine a un espace limité pour la réception
    des données
  • Utilisation dune fenêtre des données

S
D
4k
19
Transfert des données
S
D
App -gt 2k
4k - vide
App -gt 2k
App -gt 1k
20
Gestion de la fenêtre
  • Problème le mécanisme dacquittement
    sous-emploie la bande passante du réseau

1Gbps, RTT 100 ms, MSS 1460
Pour envoyer un segment avec 1500 octets
temps_transfert(segment)RTT 0.001ms
100ms 0.1 s gt Débit utile 120 kbps sur un
réseau à 1Gbps!
21
Gestion de la fenêtre technique de la fenêtre
glissante
Fenêtre possible pour le destinataire
0
1
2
3
4
5
6
7
8
9

déjà envoyés, ACK reçus
peuvent être envoyés
Ne peuvent pas être envoyés, il faut attendre
que la fenêtre se déplace
envoyés, ACK non-reçus
22
Transmission de données Algorithme de Nagle
  • Problème une application envoie les données
    octet par octet ? pour envoyer N octets des
    données on utilise
  • N(1en-tête TCPen-tête IP)
  • N(12020) N(41)

S
D
1 octet
App -gt 1 octet
ACK
-gt 1
-gt 1
-gt 1
3 octets
-gt 1
23
Transmission de données Syndrome de la fenêtre
stupide
  • Problème le récepteur lit octet par octet
  • Solution de Clark obliger le récepteur
    dattendre une taille de fenêtre décente avant de
    lannoncer

S
D
-gt 1
-gt 1
ACK window 3
-gt 1
3 octets
24
Données urgentes
  • Pointeur durgence décalage en octets à partir
    du nombre de séquence courant pour indiquer où on
    retrouvent les données urgentes.
  • Drapeau URG

S
D
URG1 Pt. URG x
x
25
État dune connexion TCP
connect/SYN
fermée
close/-
listen/-
close/-
SYN/SYNACK
écoute
send/SYN
RST/-
SYN reçu
SYN émis
SYN/SYNACK
SYNACK/ACK
ACK/-
établie
close/ FIN
close/FIN
FIN/ACK
attente fermeture
FIN attente 1
FIN/ACK
fermeture en cours
ACK/-
close/FIN
FINACK/ACK
attente temporisée
FIN attente 2
dernier ACK
FIN/ACK
Expiration temporisateur
ACK/-
fermée
26
État dune connexion TCP - en
connect/SYN
CLOSED
close/-
listen/-
close/-
SYN/SYNACK
LISTEN
send/SYN
RST/-
SYN RECEICVED
SYN SENT
SYN/SYNACK
SYNACK/ACK
ACK/-
ESTABLISHED
close/ FIN
close/FIN
FIN/ACK
CLOSE WAIT
FIN WAIT_1
FIN/ACK
CLOSING
ACK/-
close/FIN
FINACK/ACK
TIME WAIT
FIN WAIT_ 2
LAST ACK
FIN/ACK
Expiration temporisateur
ACK/-
CLOSED
27
Etat dune connexion TCP
  • FERMÉE aucune connexion nest active
  • Écoute le serveur attend un appel entrant
  • SYN reçu une demande de connexion est arrivée
    attente dun ACK
  • SYN émis lapplication a commencée à ouvrir une
    connexion
  • Établie état normal pour le transfert de
    données
  • FIN attente 1 lapplication a indiqué quelle a
    terminé
  • FIN attente 2 lautre extrémité à accepté la
    libération
  • Temporisation attente que tous les paquets
    aient disparu
  • Fermeture en cours les deux extrémités ont
    essayé de fermer simultanément
  • Attente fermeture lautre extrémité à initié la
    libération
  • Dernier ACK attente que tous les paquets aient
    disparu

28
netstat
  • Affiche des informations sur les connexions TCP
    (UDP, ) actives
  • Exemple
  • Proto Adresse locale Adresse distante
    Etat
  • TCP if-41514608
    pop.wanadoo.frpop3 TIME_WAIT
  • TCP if-41514612
    chirouble.univ-lyon2.frpop3 TIME_WAIT
  • TCP if-41514613
    pop.wanadoo.frpop3 TIME_WAIT
  • TCP if-41514614 66.102.9.147http
    ESTABLISHED
  • TCP if-41514618
    oas-eu.247realmedia.comhttp TIME_WAIT
  • TCP if-41514621
    servif-baie.insa-lyon.frmicrosoft-ds SYN_SENT

29
État dune connexion TCP - client
connect/SYN
fermée
close/-
listen/-
close/-
SYN/SYNACK
écoute
send/SYN
RST/-
SYN reçu
SYN émis
SYN/SYNACK
SYNACK/ACK
ACK/-
établie
close/ FIN
close/FIN
FIN/ACK
attente fermeture
FIN attente 1
FIN/ACK
fermeture en cours
ACK/-
close/FIN
FINACK/ACK
attente temporisée
FIN attente 2
dernier ACK
FIN/ACK
Expiration temporisateur
ACK/-
fermée
30
État dune connexion TCP - serveur
connect/SYN
fermée
close/-
listen/-
close/-
SYN/SYNACK
écoute
send/SYN
RST/-
SYN reçu
SYN émis
SYN/SYNACK
SYNACK/ACK
ACK/-
établie
close/ FIN
close/FIN
FIN/ACK
attente fermeture
FIN attente 1
FIN/ACK
fermeture en cours
ACK/-
close/FIN
FINACK/ACK
attente temporisée
FIN attente 2
dernier ACK
FIN/ACK
Expiration temporisateur
ACK/-
fermée
31
Options TCP
  • mss La taille maximale du segment de données
    applicatives que l'émetteur accepte de recevoir.
    Au moment de l'établissement d'une connexion,
    chaque partie annonce sa taille de MSS.
  • timestamp utilisé pour calculer la durée d'un
    aller/retour (RTT)
  • wscale pour spécifier des tailles de fenêtre
    supérieures à 64k (window_size 64k2wscale)
  • nop pour aligner les données sur 4 octets

32
Les primitives socket de TCP
  • Socket création dun nouveau point terminal
  • Bind attache une adresse locale au socket
  • Listen annonce la volonté daccepter des
    connexions
  • Accept bloque lappelant jusquà larrivée
    dune tentative de connexion
  • Connect tentative détablissement dune
    connexion
  • Send envoie de données sur la connexion
  • Receive réception des données sur la connexion
  • Close libération de la connexion

33
Utilisation des primitives TCP
  • Exemple envoyer des messages entre deux
    ordinateurs.
  • le serveur attend des connexions sur le port
    5000
  • le client se connecte sur le port 5000 il
    envoie des messages de type
  • GET filename
  • le serveur lui répond avec des messages
  • LENGTH n
  • fichier

34
Utilisation des primitives TCP - serveur
  • créer un socket (socket)
  • associer le socket à une interface réseau (bind)
  • passer le socket dans létat LISTEN (listen)
  • accepter une connexion (accept)
  • recevoir une commande (recv)
  • envoyer la réponse (send)
  • fermer la connexion (close)

35
Utilisation des primitives TCP - client
  • créer un socket (socket)
  • optionnel - associer le socket à une adresse
    locale interface réseau port (bind)
  • se connecter au serveur (connect)
  • envoyer une commande (send)
  • recevoir la réponse (recv)
  • fermer la connexion (close)

36
Correspondance client-serveur
Client
Serveur
création (socket)
création (socket)
bind
bind (optionnel)
listen
accept
connect
recv, send
send, recv
close
close
37
Serveur primitives en C
Création
38
Serveur primitives en C
Passer dans létat LISTEN
39
Serveur primitives en C
Traiter un message
  • Problèmes
  • réception dun message partiel
  • réception de plusieurs messages
  • envoie partiel du réponse

40
Serveur primitives en C

41
Client primitives en C
Création
42
Client primitives en C
Connexion au serveur
43
Client primitives en C
Échanger des messages
44
Différents options des sockets
  • setsockopt, getsockopt

Désactiver lalgorithme de Nagle
45
Communication TCP exemple
C
S
connexion
envoie GET /
envoie MSG_0
envoie MSG_1
envoie MSG_2
46
Communication TCP exemple
Client
Server
création (socket)
création (socket)
bind
bind
listen(80)
47
Communication TCP exemple
Client
Server
création (socket)
Port source 4983 Port dest 80 SEQ
1763038791 AckNo 0 Data offset 28 SYN
1 Window 16384 Options MSS 1460
NOP NOP
création (socket)
bind
bind
listen(80)
connect
48
Communication TCP exemple
Client
Server
création (socket)
Port source 80 Port dest 4983 SEQ
4127728857 AckNo 1 Data offset 28 SYN 1
ACK 1 Window 5840 Options MSS 1460
NOP NOP
création (socket)
bind
bind
listen(80)
connect
accept
valeurs relatives
49
Communication TCP exemple
Client
Server
création (socket)
création (socket)
bind
bind
SEQ 1 AckNo 1 Data offset 20 ACK
1 Window 17520 Options
listen(80)
connect
accept
50
Communication TCP exemple
Client
Server
création (socket)
création (socket)
bind
bind
listen(80)
connect
SEQ 1 AckNo 1 Data offset 20 ACK 1
accept
send
7 octets
51
Communication TCP exemple
Client
Server
création (socket)
création (socket)
bind
bind
listen(80)
connect
SEQ 1 AckNo 8 Data offset 20 ACK 1
accept
send
recv
52
Communication TCP exemple
Client
Server
création (socket)
création (socket)
bind
bind
listen(80)
connect
SEQ 1 AckNo 8 Data offset 20 ACK 1
accept
send
recv
send
recv
1460 octets
53
Communication TCP exemple
Client
Server
création (socket)
création (socket)
bind
bind
listen(80)
connect
SEQ 1461 AckNo 8 Data offset 20 ACK 1
accept
send
recv
send
recv
1460 octets
54
Communication TCP exemple
Client
Server
création (socket)
création (socket)
bind
bind
listen(80)
connect
SEQ 8 AckNo 2921 Data offset 20 ACK 1
accept
send
recv
send
recv
55
Communication TCP exemple
Client
Server
création (socket)
création (socket)
bind
bind
listen(80)
connect
SEQ 8 AckNo 2921 Data offset 20 ACK
1 FIN 1
accept
send
recv
recv
send
close
56
Communication TCP exemple
Client
Server
création (socket)
création (socket)
bind
bind
listen(80)
connect
SEQ 2921 AckNo 8 Data offset 20 ACK 1
accept
send
recv
recv
send
close
close
57
Outils pour la visualisation des connexions TCP
  • netstat
  • tcpdump
  • Sniffers
  • Ethereal (www.ethereal.com)
  • Microsoft Network Monitor

58
UDP
  • User Datagram Protocol
  • Protocole de transport sans connexion
  • En-tête UDP

4 octets
Port UDP destination
Port UDP source
Longueur
Somme de contrôle
Données
59
Utilisation des primitives UDP - serveur
  • créer un socket (socket)
  • associer le socket à une interface réseau (bind)
  • recevoir un message (recvfrom)

60
Utilisation des primitives UDP - client
  • créer un socket (socket)
  • optionnel - associer le socket à une adresse
    locale interface réseau port (bind)
  • envoyer un message à une adresse - IPport
    (sendto)

61
UDP Correspondance client-serveur
Client
Serveur
création (socket)
création (socket)
bind
bind (optionnel)
recvfrom, sendto
sendto, recvfrom
close
close
62
Serveur UDP primitives en C
Création
63
UDP envoyer des données primitives en C
64
UDP recevoir des données primitives en C
65
Messages multi-destination IP Multicast
66
Messages multi-destination IP Multicast
67
Adresses IP de classe D
  • 224.0.0.0 - 239.255.255.255
  • adresse de group
  • Réservées
  • 224.0.0.0
  • 224.0.0.1 tous les systèmes situés dans le même
    réseau physique
  • 224.0.0.2 tous les routers situés dans le même
    réseau physique
  • 224.0.1.1 utilisée pour synchroniser le temps
    dans un group des ordinateurs
  • 224.0.0.9, 224.0.1.24

68
Messages multi-destination IP Multicast
  • Création, bind UDP
  • Limiter la distance parcourue par les paquets

69
Messages multi-destination
  • Envoyer des données (vers des adresses IP de
    classe D)

70
Messages multi-destination
Recevoir des données avant de recevoir
joindre un group
recvfrom voir UDP
71
Messages multi-destination
Quitter un group
72
Bibliographie
  • Bibliothèque
  • Andrew Tanenbaum, Réseaux
  • Guy Pujolle, Réseaux
  • Douglas Comer, TCP/IP Architecture, protocoles
    et applications
  • Internet

73
Questions
  • Comment trouver la taille des données dans un
    segment TCP ?

74
Performance
  • TransmitFile
  • Slow start
Write a Comment
User Comments (0)
About PowerShow.com