Protocole IP

Transcription

Protocole IP
Cours 2 : Protocole IP
Protocole IP
●
●
●
●
●
●
●
●
●
Fonctions de la couche Réseau
Protocole IP
Les services offerts par IP
Description du paquet IP
Fragmentation et Réassemblage
Adressage
ARP
RARP
BOOTP
Fonctions de la couche Réseau
●
Principale
– échange de paquets à travers un réseau
●
Fonctions
– Service avec connexion ou sans
connexion(datagramme)
– Routage (trouver le chemin du destinataire)
– Contrôle de flux
– Contrôle d'erreur
– Segmentation et réassemblage des paquets
– Congestion
Protocole Internet (IP)
●
●
●
●
●
Pierre angulaire du réseau Internet
Réalise le transfert en datagramme
N'assure pas la détection de paquets en
erreurs
N'indique pas qu'une donnée est perdue
(erronée)
Fait abstraction des caractéristique des sous
réseaux
Avantage
●
Service en datagramme
– gestion des paquets facilitée
– résolution des engorgements
– pas besoin d'établissement de connexion
●
●
●
●
Adressage (réseau, hôte)
Souplesse
Extension de la source et de la destination
Routage indépendant du type de routage
sélectionné
Inconvénients
●
●
●
Adressage est actuellement limitée
Qualité de service peu étendue
Peu de sécurité
Architecture TCP/IP
Description du paquet IP
31
15
0
Version
Longueur
Type de service
d'entête
Identification du pa quet
Compteur du
temps de vie
Longueur total du paquet IP
Fanion
Protocole
Position relative
Zone de conrôle d'erreur
(Checksum)
Adresse du source
Adresse du destinata ire
Options
Données
Bour rage
Les champs du paquet IP
●
●
●
●
Version
Longueur de l'entête du paquet Internet
(IHL).
Type de service (TOS, Type of service)(voir
plus loin).
Longueur totale du paquet.
Les champs du paquet IP(suite)
●
●
Identification du paquet.
Fanion.
– le premier le bit D (Don’t Fragment);
– le deuxième le bit M (More Fragment);
– le troisième bit est le bit O (Qualificator of paquet).
●
Position relative.
Les champs du paquets IP(suite)
●
●
●
●
●
●
Compteur du temps de vie.
Protocole.
Zone de contrôle d’erreurs (Header
Checksum).
Adresse source et Adresse destination.
Options.
Bourrage
Les protocoles dans le paquet IP
0
1
2
3
6
8
9
16
17
18
22
29
Reservé
ICMP(Internet Control Message Protocol)
IGMP(Internet Group Management Protocol)
GGP ( Gataway to Gateway Protocol)
TCP(Transmission Control Protocol)
EGP (Exterior gateway Protocol)
IGP(Interior Gateway Protocol)
CHAOS
UDP ( User DAtagram Protocol)
MUX ( Multiplexing)
XNS-IDP ( Xerox IDP)
ISO-TP4 ISO transport Class 4)
Réassemblage des paquets
●
●
●
On ne fait de réassemblage qu'à la station
hôte.
Perte de performance
On n'utilise pas les paquets au maximum
des tailles permises.
Les types de service
Type of service
Précédence
0
délai Débit Fiabilité
1
2
réservé
3
4
5
6
7
Précédence
111 = Network Control
110 = Internetwork Control
100 = Flash Override
011 = Flash
010 = Immediate
001 = Priority
000 = Routine
Delai
0 = Normal
1 = Low
Debit
0 = Normal
1 = High
Fiabilité
0 = Normal
1 = High
Services IP versus les applications
Application
Telnet
FTP
contrôle
données
SMTP
phase de com.
phase de donn.
DNS
requêtes TCP
requêtes UDP
zone de transf.
ICMP
SNMP
BOOTP
NNTP
Délai
1
Débit
0
1
0
0
1
1
0
fiabilité
0
Cout
0
valeur Hex
0x10
0
0
0
0
0x10
0x08
0
1
0
0
0
0
0x10
0x08
1
0
0
0
0
1
0
0
0
1
0
0
0x10
0x00
0x08
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
1
0x00
0x04
0x00
0x02
Les options de IP
●
●
●
Enregistremet du chemin utilisé
Sécurité
Marquage du temps de transit (Timestamp)
Les options de IP
1 octet
Code
0
flag
bit
Longueur octets
1 octet
Longueur
1
Données d'option
2
7
Classe
bits
Numéro d'option
Classe
Numéro
Longueur
description
0
0
0
fin de l'option
0
2
11
sécurité
0
7
var
enregistrement de
route
2
4
var
Internet
Timestamp
LAB 1: Etherreal
●
●
Les étudiants installent l’analyseur de
protocole Etherreal : installation des modules
Windows et examen de paquets sur le LAN
Dans un premier temps, les étudiants
analysent le trafic sur le réseau en faisant un
‘capture’ avec Etherreal.
Types de services (partie 1)
●
●
●
●
ARP
RARP
DNS
RIP
Requête ARP
Station B
Station A
Station E
Qui est sur le segment ?
Station C
Station D
Réponse ARP
Station B
Station A
Station E
Je suis là et mon adresse
physique est :
Station C
Station D
Paquet ARP dans Ethernet
Paquet ARP
Adresse Adresse Type ouData
destinationdestinationlongueurEthernet
CRC
Reverse Address Resolution Protocol
●
●
●
●
Dans le cas des processeurs (i.e. des hôtes
sans mémoire secondaire = Diskless Host) on
utilise le protocole .
Le serveur garde une copie des adresses de
tous les processeurs qui sont connectés à lui.
Quand un processeur entre en service pour
la première fois, il envoie un message RARP
Request au serveur qui contient sa propre
adresse NPA.
Le serveur va lui répondre par RARP Reply
contenant l’adresse IP du quéreur et son
propre IP
Paquet ARP/RARP
HLEN
PLEN
Opération
Adresse Hardware Source
Adresse IP Source
Adresses Hardware
Destination
Adresse IP
HLEN : Longueur de l'adresse Hardware
PLEN : Longueur de l'adresse IP
DNS root
DNS query
RIP
Command
Version Reserved
Family Net 1Net 1 address, 1-2
Net 1 address, 3-6
Net 1 address, 7-10
Net 1 address, 11-14
Distance network 1
Family Net 2Net 2 address, 1-2
Net 2 address, 3-6
Net 2 address, 7-10
Net 2 address, 11-14
Distance network 2
Routing
Simple Network Management
Protocol
SNMP
MIB
Application
MIB
TCP/UDP
MIB
MIB
ICMP
MIB
MIB
ARP
Datalink
MIB
Physical
IP
Types de services (partie 2)
●
●
TCP
UDP
Protocole TCP et UDP
●
●
●
●
●
●
●
●
Fonctions de la couche transport
Services offerts par TCP
Le paquet TCP
La phase de connexion TCP
La phase de transfert de données
La déconnexion
Les primitives de transport
Le protocole UDP
Fonctions de la couche transport
●
●
●
Une transmission de bout-en-bout des
messages entre deux stations (End-To-End
Transport Service).
Le protocole de transport est aussi appellé
protocole entre hôtes (Host-To-Host
Protocol).
Toutes les fonctions que le réseau ne peut
offrir et qui est demandé par l’application.
Services TCP
●
●
●
●
●
●
Le TCP s'engage à produire un service de
transport
Service de bout en bout
Efficient(efficace)
Sans erreur
Ordonnencement des paquets.
TCP est un client (utilise) du protocole IP
– IP a été mis en place pour produire un service en
datagramme où les paquets sont transmis et reçus à
travers les réseaux.
●
●
Le service offert par le TCP ressemble auTP4
d'ISO
La connexion ici est réalisée en Full-Duplex.
Fonctions de TCP
●
Gestion de la connexion
– Avec phase de connexion et une phase de libération
●
Transfert de données
–
–
–
–
–
Transfert de données fiable
Messages ordonnés
Bidirectionnelle (full duplex)
Contrôle de flux (Crédit, accusé de reception positive )
Envoie les données sous forme de paquets de dimension
variable.
Fonctions TCP
●
Urgence
– De plus le TCP permet de transmettre un paquet
immédiatement et directement sans subir le contrôle de
flux du TCP. Il suffit pour cela de passer les bons
paramètres dans les primitives.
●
Contrôle d'erreur
–
–
–
–
●
Détection d'erreur sur les données
Détection des duplications
Détection des paquets hors d'ordre
Retransmission
Adressage
– Ports ou sockets
●
Multiplexage
– Plusieurs apllications peuvent utiliser le même service
TCP
Autres services
●
PUSH
– C'est TCP qui décide quand il doit transmettre un
nouveau paquet. Le TCP de destination met les
informations reçues dans un tampon et ne délivre ces
informations que du moment où ce tampon est plein.
●
Dimension de paquets
– La taille du paquet qui peut contenir un large paquet ou
un ensemble de petits paquets dépend du TCP
responsable d'une livraison efficace.
●
Qualité de service
– Le TCP détermine la taille des paquets en fonction des
exigences de qualité de service, de vitesse, de débit
exprimées par l'utilisateur
Description du paquet TCP
31
15
0
Adresse du port source
Adresse du port destination
Numéro de séquence
Zone de conrôle d'erreur
Numéro d'accusé de réception
(Checksum)
Long.
de l'
entête
U A S
R C Y
G K N
Réservée
Champ de contrôle erreur
Options
Données
P
S
H
R
S
T
F
I
N
Fenêtre coulissante
Zone d'urgence
Bourrage
Port
●
Les adresses des ports source et destination
correspondent aux points d'accès
Numéro
5
7
11
13
20
21
23
25
42
43
53
53
67
68
69
79
101
102
103
Nom
RJE
ECHO
USERS
DAYTIME
FTP-DATA
FTP-CONTROL
TELNET
SMTP
TIME
NAMESERV
NICKNAME
DOMAIN
BOOTPS
BOOTPC
TFTP
FINGER
HOSTNAME
ISO-TSAP
X400
Description
Remote Job Entry
Echo
Active Users
Daytime
File Transfert Data
File Transfert Control
Telent
Simple Mail
Time
Host Name sever
Who Is
Domain Name Sever
Bootstrap Server
Bootstrap Client
Trivial FTP
Finger
Nic Host Name Server
ISO transport
X400
Les numéros de séquence
●
Le numéro de séquence de 32 bits
– Le paquet doit être livré directement au destinataire; la
fenêtre coulissante est alors mis à N.
– Supposons que le numéro de séquence est X. L'entité
destinataire retourne un paquet avec le fanion ACK à 1
et le numéro d'accusé de réception à (X+N+1), le
numéro de séquence attendu du prochain octet. La
fenêtre coulissante est remise à sa valeur initiale.
●
Le numéro d'accusé de réception de 32 bits
– le numéro de séquence reçu sans erreur dans le bon
ordre .
●
La longueur de l'entête de 4 bits
– le nombre de 32 bits contenus dans ce paquet.
●
Un espace de réserve
– il est alloué pour un usage futur.
Les fanions
●
Viennent ensuite 6 fanions (Flag) d'un bit
chacun, ce sont:
– URG (URGent-Flag) indique qu'il faut passer à travers le
contrôle de flux;
– ACK (ACKnowledgment) est réservé à l'accusé de
réception;
– SYN (SYNchronization) est là pour synchronisation;
– PSH (Push-Flag) dit qu'il faut que les informations soient
transmises tout de suite à l'application et non mise dans
un buffer;
– RST (ReSeT-Flag) exige une réinitialisation de la
connexion; et enfin
– FIN indique qu'il n'y a plus d'informations à envoyer. Ces
fanions sont à 1 lorsque la fonction correspondante est
demandée.
Fenêtre et Urgence
●
La fenêtre coulissante de 16 bits
– sert pour le contrôle de flux
– C’est le nombre de crédit donné à l’autre pour lui
permetre d’envoyer des octets
– Ce nombre est estimé par la dimension des tampons
libres dans la station
●
Zone d’urgence
– utilisé pour envoyer des informations exprès avec URG.
Gestion de la connexion et transfert
de paquets
●
●
●
●
Trois phases:
l'établissement de la connexion,
le transfert des informations et le contrôle de
flux.
la libération de la connexion
Etablissement de la connexion
Application
Client
Passive
Open
TCP
TCP
Closed
Closed
Application
Serveur
Passive
Open
Listen
Listen
Syn, ISN
Syn Received
Syn,ACK, ISN',
ISN+1
Open
Succes
Etablished
ACK, ISN'+1,
ISN+1
Etablished
Open
Succes
Établissement de la connexion
●
●
●
Pour permettre non plus seulement une
relation de quéreur des clients et de
répondant du serveur,
On utilise la procédure à trois mains (ThreeWay Handshake).
ISN (Initiale Sequence Number)
– le numéro de séquence du premier octet d'information
transporté par le paquet.
– Si ce numéro est présent ce numéro correspond au
numéro de séquence initial (ISN = Initial Sequence
Number) et le premier octet d'information est alors de
(ISN+1).
Transfert des des données
●
Séquencement
– L'établissement de la connexion étant fait, les
informations sont transmises dans les paquets sous forme
d'une série d'octets. Les octets sont numérotés modulo
232.
– Le champs numéro de séquence du paquet décrit le
premier octet du paquet.
●
Crédit( contrôle de flux)
– Crédit
– stratégie de fenêtre coulissante (Appliquées sur les
octets et non pas sur le paquet, plus flexible et plus
efficient)
●
Le contrôle d'erreur -> la méthode Go back
N ARQ sans accusé de reception négative
Le contrôle d’erreur.
1
SEQ = 3
(300 bytes sent)
ACK = 303
3
4
Receive ACK =303
5
SEQ = 303
(300 bytes sent)
X Not delivered
ACK = 303
SEQ = 603
(300 bytes sent)
ACK = 303
7 Time out and resend
two segments
2
Still expecting 303 6
SEQ = 303
(300 bytes sent)
SEQ = 303
(300 bytes sent)
ACK = 903
ACK the two segments 8
TCB (Transport Connection
Block)
●
●
●
A chaque fois qu'un paquet est envoyé, le
numéro de séquence et le temps de
transmission sont enregistré dans Transport
connection Block.
Lorsque l'accusé de réception est reçu, la
station calcule le temps d'un aller/retour.
Ce temps là, va servir a estimer le Smooth
round-Trip delay.
Libération de la connexion
●
●
Nous allons voir deux cas:
La libération normale;
– Dans le premier cas de libération normale nous
pouvons être en présence de deux situations où celui
qui prend l'initiative de libération est soit le client soit le
serveur.
– On suppose que le client a fini de transmettre ses
informations et veut libérer la connexion.
●
La libération brutale ou d'interruption.
– Une libération brutale est générée si l'utilisateur envoie
la primitive ABORT avec le fanion RST à 1.
– Dès lors toute transmission ou réception est interrompue
et les tampons sont vidés de toutes leurs informations.
– Le serveur génère alors la primitive TERMINATE avec un
code indiquant la raison de cette libération brutale.
Libération de la connexion
Application
Client
Close
request
TCP
TCP
Etablished
Etablished
Fin Wait1
Application
Serveur
Listen
Fin
Close Wait
Fin Wait2
Fin ACK
Data
Data
Fin
Close
Indication
Timewait
Fin ACK
Closed
Closed
Closed
Closed
Diagramme de l’automate à
l’état fini du TCP.
Active Open
createTCB
and SYN
CLOSED
Passive OPEN
create TCB
CLOSE
delete TCB
CLOSE
delete TCB
LISTEN
rcv SYN
and SYN,ACK
SEND
and SYN
rcv SYN
and ACK
SYN RCVD
rcv ACK of SYN
x
SYN SENT
rcv SYN,ACK
and ACK
CLOSE
and FIN
ESTAB
rcv FIN
and ACK
rcv ACK of SYN
x
FIN WAIT -1
CLOSE WAIT
rcv ACK of FIN
x
rcv FIN
and ACK
FIN WAIT-2
CLOSE
and FIN
LAST_ACK
CLOSING
rcv ACK of FIN
x
rcv ACK of FIN
x
CLOSED
TIME WAIT
rcv FIN
and ACK
Timeout=2MSL
delete TCB
Interface avec les applications
●
Primitives TCP
– En effet le TCP utilise des primitives pour assurer les
services TCP.
●
OPEN
– Passive open,Active open
– Open parameters,Adressing,Timout,Security,Quality of
service
●
Transfert de données
– Send, Send parameter,Urgent,Push,Timout
●
Terminate
– Close
Protocole UDP
●
●
●
L'UDP comme TCP est utilisé avec IP.
Le protocole UDP offre un service de
transport en datagramme
L'UDP utilise la technique d'une main (OneWay-Handshake) i.e. l'UDP produit un UDP
paquet et le transfère au protocole IP pour
transmission.
Services UDP
●
Service datagramme sans connexion
– Peu overhead
– pas de detection d’erreur et de duplication
●
Applications utilisant UDP
– DNS
– TFTP
– NFS
Format des paquets du protocole UDP
31
15
0
Adresse du port source
Longueur
Données
Adresse du port destination
Checksum
Fonctions UDP
●
●
●
●
Pour toutes ces raisons le paquet du protocole UDP est
très simplifié
Le paquet généré par le protocole UDP correspond à
la zone d'information du datagramme IP.
Si le checksum calculé par le destinataire ne
correspond pas à celui contenu dans le paquet, le
paquet est tout simplement ignoré.
De plus il n'y a aucune garantie de livraison. Il n'existe
aucune protection contre les erreurs telles la
duplication, un numéro de séquence incorrect, la
perte d'octet, l'absence d'accusé de réception. La
seule protection contre ces erreurs est le champ
checksum.
Sources d’information
●
●
RFC : http://www.rfc-editor.org/
Google

Documents pareils