Documente Academic
Documente Profesional
Documente Cultură
: kadionik@enseirb-matmeca.fr
: http://kadionik.vvv.enseirb-matmeca.fr
Patrice KADIONIK
ENSEIRB-MATMECA
-1-
PARTIE 1
OBJECTIFS DU COURS
-2-
Objectifs
pk/enseirb-matmeca/2016 v1.5
Objectifs
-4-
PARTIE 2
INTRODUCTION AUX RESEAUX
pk/enseirb-matmeca/2016 v1.5
Partage de ressources :
Programmes.
Equipements.
Echange de donnes :
Fiabilit.
Systmes distribus.
-6-
Topologie
pk/enseirb-matmeca/2016 v1.5
Topologie
-8-
Topologie
Etoile
Arbre
pk/enseirb-matmeca/2016 v1.5
Topologie
Rseaux multipoint :
Bus
Satellite
Anneau
- 10 -
Quelques chiffres
Units :
baud (Bd) : rapidit de modulation.
bit par seconde (b/s) : dbit de source : kb/s, Mb/s, Gb/s,
Tb/s.
Attention !!! :
1 octet = 8 bits.
1 K = 1024 (210).
1 k = 1000.
pk/enseirb-matmeca/2016 v1.5
Quelques chiffres
- 12 -
Le besoin de normalisation
Machine A
Machine B
Envoi d'un
fichier
Rception du
fichier
Rseau de
communication
- 13 -
Le besoin de normalisation
pk/enseirb-matmeca/2016 v1.5
- 14 -
PARTIE 3
LE MODELE OSI
pk/enseirb-matmeca/2016 v1.5
http://www.iso.org
RE223 : Introduction aux rseaux et Internet
pk/enseirb-matmeca/2016 v1.5
- 16 -
Le modle OSI
pk/enseirb-matmeca/2016 v1.5
Le modle OSI
- 18 -
Terminologie
pk/enseirb-matmeca/2016 v1.5
Terminologie
- 20 -
Architecture en couches
- 21 -
Architecture en couches
Chaque couche offre des services celle qui lui est directement
suprieure.
- 22 -
pk/enseirb-matmeca/2016 v1.5
- 23 -
La communication entre
lments pairs est virtuelle
ou logique.
- 24 -
- 25 -
- 26 -
Protocole
But :
Identification du dbut et de la fin de chaque lment dun
bloc.
Fonctions de commandes telles que linitialisation,
linterrogation, lidentification des quipements.
Dtection des erreurs de transmission.
pk/enseirb-matmeca/2016 v1.5
7
6
5
4
3
2
1
Application
Prsentation
Session
Transport
Rseau
Liaison
Physique
- 28 -
Systme B
Systme C
Application
Application
Application
Prsentation
Prsentation
Prsentation
Session
Session
Session
Transport
Transport
Transport
Rseau
Rseau
Rseau
Liaison
Liaison
Liaison
Physique
Physique
Physique
Support de transmission
pk/enseirb-matmeca/2016 v1.5
Routeur
Systme C
Application
Application
Prsentation
Prsentation
Session
Session
Transport
Transport
Rseau
Rseau
Rseau
Liaison
Liaison
Liaison
Physique
Physique
Physique
Support de transmission
- 30 -
7
6
5
4
3
2
1
Application
Prsentation
Session
Transport
Rseau
Liaison
Physique
pk/enseirb-matmeca/2016 v1.5
Systme A
Systme B
Systme C
Application
Application
Application
Liaison
Liaison
Liaison
Physique
Physique
Physique
Support de transmission
- 32 -
- 33 -
Dfinition de lISO :
La couche physique a pour mission de fournir les moyens
mcaniques, fonctionnels et procduraux ncessaires
lactivation, au maintien et la dsactivation des connexions
physiques destines la transmission de bits entre entits de
liaisons de donnes.
- 34 -
- 35 -
Dfinition de lISO :
La couche de liaison de donnes a pour mission de fournir les
moyens fonctionnels et les procdures ncessaires
ltablissement, au maintien et la libration des connexions
des liaisons de donnes entre entits de rseau ainsi quau
transfert des units de donnes de liaisons de donnes. Une
connexion de liaison de donnes est ralise laide dune ou
plusieurs connexions physiques entre un mme couple sans
nud intermdiaire.
- 36 -
- 37 -
Dfinition de lISO :
La couche rseau a pour mission de fournir les moyens
fonctionnels et procduraux dchanges dunits de donnes de
la couche rseau (paquet) sur des connexions rseau entre
entits de la couche suprieure (transport).
- 38 -
- 39 -
Dfinition de lISO :
La couche transport a pour mission dassurer un transfert de
donnes transparent entre entits de sessions en les
dchargeant compltement des dtails dexcution dun
transfert de donnes fiable et dun bon rapport qualit/prix
(transfert optimal). La couche transport optimise lutilisation
des services rseaux disponibles afin dassurer au moindre
cot les performances requises pour chacune des entits de
session.
RE223 : Introduction aux rseaux et Internet
pk/enseirb-matmeca/2016 v1.5
- 40 -
- 41 -
Dfinition de lISO :
La couche session a pour mission de fournir aux entits de
prsentation les moyens ncessaires pour organiser et
synchroniser leurs dialogues et pour grer leurs changes de
donnes. A cet effet, la couche session fournit les services
ncessaires ltablissement dune connexion de session entre
deux entits de prsentation et la prise en charge des
interactions ordonnes des changes de donnes.
- 42 -
- 43 -
Dfinition de lISO :
La couche prsentation a pour mission de se charger de la
reprsentation des informations que des entits dapplication
se communiquent ou auxquelles elles se rfrent au cours de
leur dialogue.
- 44 -
- 45 -
Dfinition de lISO :
La couche application est la seule du modle fournissant
directement des services aux processus dapplication, la
couche application fournit ncessairement tous ses services
OSI directement utilisables par des processus dapplication.
- 46 -
Couche n+1
Service
Service N
n
Service n
Protocole n
Entit n
Entit n
Couche n
Service n-1
Service n-1
Couche n-1
Machine 2
Machine 1
pk/enseirb-matmeca/2016 v1.5
Exemples de services :
Connexion.
Echange de donnes.
Dconnexion.
- 48 -
- 49 -
- 50 -
pk/enseirb-matmeca/2016 v1.5
(n+1)-PDU = n-SDU
n-PDU = n-PCI + n-SDU
n-PDU = (n-1)-SDU
- 52 -
- 53 -
- 54 -
pk/enseirb-matmeca/2016 v1.5
Rception
couche 7
Interface 6/7
H : Header (entte)
T : Trailer (fin)
- 56 -
Rception
couche 7
Interface 6/7
message M
pk/enseirb-matmeca/2016 v1.5
Rception
couche 7
Interface 6/7
message M
Interface 5/6
message M
- 58 -
Rception
couche 7
Interface 6/7
message M
Interface 5/6
message M
H4
M1
Fragmentation
H4
M2
pk/enseirb-matmeca/2016 v1.5
Rception
couche 7
Interface 6/7
message M
Interface 5/6
H3
message M
H4
M1
H4
M1
H3
H4
M2
H4
M2
- 60 -
Rception
couche 7
Interface 6/7
message M
Interface 5/6
H2
message M
H4
M1
H3
H4
M1
H3
H4
M1
T2
H2
H4
M2
H3
H4
M2
H3
H4
M2
T2
pk/enseirb-matmeca/2016 v1.5
Rception
couche 7
Interface 6/7
message M
Interface 5/6
H2
message M
H4
M1
H3
H4
M1
H3
H4
M1
T2
H2
H4
M2
H3
H4
M2
H3
H4
M2
T2
Protocole de couche 1
Support physique
- 62 -
Protocole de couche 2
Rception
H2
H3
H4
M1
T2
H2
H3
H4
M2
T2
Protocole de couche 1
Support physique
pk/enseirb-matmeca/2016 v1.5
Rception
Protocole de couche 3
Protocole de couche 2
H2
H3
H4
M1
H3
H4
M1
T2
H2
Protocole de couche 1
Support physique
- 64 -
H3
H4
M2
H3
H4
M2
T2
Rception
Protocole de couche 4
Protocole de couche 3
Protocole de couche 2
H2
H4
M1
H3
H4
M1
H3
H4
M1
T2
H2
H4
M2
H3
H4
M2
H3
H4
M2
T2
Protocole de couche 1
Support physique
pk/enseirb-matmeca/2016 v1.5
Rception
Protocole de couche 5
message M
Protocole de couche 4
Protocole de couche 3
Protocole de couche 2
H2
H4
M1
H3
H4
M1
H3
H4
M1
Interface 5/6
T2
H2
Protocole de couche 1
Support physique
H4
M2
H3
H4
M2
H3
H4
M2
Dfragmentation
- 66 -
T2
Rception
Interface 6/7
Protocole de couche 6
message M
Protocole de couche 5
message M
Protocole de couche 4
Protocole de couche 3
Protocole de couche 2
H2
H4
M1
H3
H4
M1
H3
H4
M1
Interface 5/6
T2
H2
H4
M2
H3
H4
M2
H3
H4
M2
T2
Protocole de couche 1
Support physique
pk/enseirb-matmeca/2016 v1.5
Protocole de couche 7
message m
Rception
couche 7
Interface 6/7
Protocole de couche 6
message M
Protocole de couche 5
message M
Protocole de couche 4
Protocole de couche 3
Protocole de couche 2
H2
H4
M1
H3
H4
M1
H3
H4
M1
Interface 5/6
T2
H2
Protocole de couche 1
Support physique
- 68 -
H4
M2
H3
H4
M2
H3
H4
M2
T2
PARTIE 4
INTRODUCTION A INTERNET
pk/enseirb-matmeca/2016 v1.5
Historique
- 70 -
Historique
pk/enseirb-matmeca/2016 v1.5
Historique
- 72 -
Historique
NFSNET
1990
MILNET
ARPANET
Sites
militaires
1983
Ddi
la
recherche
ARPANET
TCP/IP
1985
WWW
1989
1969
pk/enseirb-matmeca/2016 v1.5
Les poques
ARPANET : 1958-1986.
- 74 -
ARPANET
pk/enseirb-matmeca/2016 v1.5
ARPANET
- 76 -
- 77 -
DARPANET Internet
- 78 -
NFSnet
- 79 -
- 80 -
- 81 -
- 82 -
Internet aujourdhui
pk/enseirb-matmeca/2016 v1.5
- 83 -
PARTIE 5
CONNECTIVITE INTERNET.
INTERNET EMBARQUE
- 84 -
Connectivit Internet
- 85 -
Connectivit Internet
pk/enseirb-matmeca/2016 v1.5
- 86 -
Connectivit Internet
Explosion du march de lInternet embarqu
1,000,000,000
utilisateurs
100,000,000
Internet of Things
10,000,000
Embedded Internet
Wireless / Mobile
Internet
1,000,000
Worldwide
Web
100,000
Government
& Research
10,000
1,000
100
1980
1985
1990
1995
2000
2005
2010
2020
- 87 -
Connectivit Internet
Il est aussi important que la connectivit IP se fasse par une liaison sans fil
avec lobjet contrler
- 88 -
PARTIE 5
DINTERNET EMBARQUE A LINTERNET DES
OBJETS
- 89 -
pk/enseirb-matmeca/2016 v1.5
- 90 -
- 91 -
- 92 -
pk/enseirb-matmeca/2016 v1.5
- 93 -
- 94 -
- 95 -
- 96 -
- 97 -
PARTIE 6
LES NORMES ETHERNET IEEE802.3
- 98 -
pk/enseirb-matmeca/2016 v1.5
Historique
pk/enseirb-matmeca/2016 v1.5
- 100 -
1985 :
1988 :
1990 :
1993 :
1995 :
1998 :
1999 :
10 Base 5 (802.3)
10 Base 2 (802.3b)
10 Base T (802.3i)
10 Base F (802.3j)
100 Base X (802.3u)
100 Base VG (802.12)
1000 Base LX, SX et CX (802.3z)
1000 Base T (802.3ab)
pk/enseirb-matmeca/2016 v1.5
Introduction
Cette partie est base sur la norme de 1985 qui conditionne les
volutions dEthernet.
- 102 -
Introduction
pk/enseirb-matmeca/2016 v1.5
Introduction
- 104 -
Principes
Support de transmission :
Segment = bus = cble coaxial.
Bus passif.
Pas de boucle, pas de sens de circulation.
Diffusion de l'information, coute slective.
Transmission en bande de base.
pk/enseirb-matmeca/2016 v1.5
Principes
- 106 -
Principes
pk/enseirb-matmeca/2016 v1.5
Principes
- 108 -
Principes
pk/enseirb-matmeca/2016 v1.5
Prambule SFD
@ SRC
Lg DATA
de 46 1500 4
DATA
pk/enseirb-matmeca/2016 v1.5
- 110 -
FCS
pk/enseirb-matmeca/2016 v1.5
Prambule SFD
@ SRC
de 46 1500
Lg DATA
DATA
4
FCS
- 112 -
Prambule SFD
@ SRC
Lg DATA
e 46 1500 4
DATA
FCS
pk/enseirb-matmeca/2016 v1.5
Prambule SFD
@ SRC
de 46 1500
Lg DATA
DATA
4
FCS
Sun 08:00:20:XX:XX:XX
- 114 -
Prambule SFD
@ SRC
de 46 1500
DATA
FCS
Lg DATA
pk/enseirb-matmeca/2016 v1.5
Prambule SFD
@ SRC
de 46 1500
Lg DATA
DATA
4
FCS
- 116 -
Prambule SFD
@ SRC
TYPE Data
de 46 1500
DATA
4
FCS
pk/enseirb-matmeca/2016 v1.5
Prambule SFD
@ SRC
Lg DATA
de 46 1500
DATA
4
FCS
- 118 -
MAC
Physique
- 119 -
- 120 -
pk/enseirb-matmeca/2016 v1.5
Couche physique
- 122 -
Collisions : problmatique
pk/enseirb-matmeca/2016 v1.5
Collision : exemple
A
- 124 -
Collision : exemple
A
(2) mission de B
(3) Collision
- 125 -
Collision : solutions
pk/enseirb-matmeca/2016 v1.5
- 126 -
Collision : dtection
metteur :
met au minimum aprs 9.6 s dintertrame.
coute le signal "dtection de collision" pendant le Slot
Time de 51.2 s (64 octets) partir du dbut d'mission.
S'arrte d'mettre quand il dtecte une collision.
Longueur maximale trame errone : 64 octets (longueur
minimale trame correcte : 72 octets).
Rcepteur :
Si rception d'une trame < 72 octets alors collision.
- 127 -
Collision : r-mission
- 128 -
Ethernet :
Pas de sous couche LLC.
LLC
MAC
Physique
pk/enseirb-matmeca/2016 v1.5
Conclusion
- 130 -
ETHERNET 10 Mb/s
pk/enseirb-matmeca/2016 v1.5
- 132 -
Rpteur
Rpteur
Rpteur
Rpteur.
Segment Coaxial Segment Liaison Segment Coaxial Segment Liaison Segment Coaxial
- 133 -
Segment coaxial :
Attnuation maximale de 17 dB/km 10 MHz.
Signal :
Asynchrone en bande de base.
Code Manchester.
2 niveaux : +2 V et -2 V.
Taux d'erreur bits TEB < 10-8.
Longueur 500 m.
100 transceivers maximum par segment.
Terminaison de 50 .
- 134 -
Cble transceiver :
Appel AUI (Attachment Unit Interface).
Relie le transceiver et le coupleur Ethernet de la station
- 135 -
Transceiver :
Appel MAU (Medium Attachment Unit).
Prise vampire :
Botier avec 2 pointes qui percent le cble.
1 qui va jusqu' l'me (vhicule les donnes).
1 qui va jusqu' la protection (rfrence).
Avantages : pose sans couper le cble et sans
interrompre le trafic.
Inconvnients : prcautions pour ne pas couper l'me.
- 136 -
Avantages :
Trs bien normalis, depuis longtemps.
Pas de perturbations quand on ajoute une station.
Inconvnients :
Cot, difficilement maniable, longueur des ajouts
Transceiver vampire non rcuprable quand on enlve une
station.
- 137 -
- 138 -
pk/enseirb-matmeca/2016 v1.5
Connecteur BNC.
- 140 -
Avantages :
Moins cher.
Plus maniable que 10Base5.
Inconvnients :
Si on enlve un transceiver (volontairement ou
involontairement), on arrte tout le rseau.
- 141 -
- 142 -
pk/enseirb-matmeca/2016 v1.5
10BaseT (Twisted).
- 144 -
Avantages :
Cble universel utilis pour de plus hauts dbits Ethernet
(100BaseT, 1000BaseT).
Insensible aux erreurs de manipulation des utilisateurs.
Inconvnients :
Limitation en distance.
- 145 -
- 146 -
pk/enseirb-matmeca/2016 v1.5
10Base? : bilan
- 148 -
PARTIE 7
LES PROTOCOLES DINTERNET
pk/enseirb-matmeca/2016 v1.5
Routeur
Machine B
Application
ftp
www
TCP
UDP
Application
7
ftp
TCP
ICMP
IP
ICMP
3
ARP RARP
Ethernet
Physique
2
1
UDP
ICMP
IP
IP
ARP RARP
ARP RARP
Ethernet
Physique
Ethernet
Physique
www
- 150 -
pk/enseirb-matmeca/2016 v1.5
Interconnexion
Rseau A
Rseau B
- 152 -
Interconnexion
Rseau A
Rseau B
pk/enseirb-matmeca/2016 v1.5
Interconnexion
Rseau A
P1
Rseau B
P2
- 154 -
Rseau C
Interconnexion
pk/enseirb-matmeca/2016 v1.5
Interconnexion
- 156 -
Interconnexion
pk/enseirb-matmeca/2016 v1.5
Services dInternet
pk/enseirb-matmeca/2016 v1.5
- 158 -
Application
ftp
www
UDP
TCP
ICMP
IP
ARP RARP
Ethernet
Physique
RE223 : Introduction aux rseaux et Internet
- 159 -
pk/enseirb-matmeca/2016 v1.5
Protocole IP
pk/enseirb-matmeca/2016 v1.5
- 160 -
Adressage IP
pk/enseirb-matmeca/2016 v1.5
Adressage IP
- 162 -
Adressage IP
Une adresse IP :
4 octets (32 bits) ou IP address.
Constitue d'une paire (netid N, hostid H) o netid identifie
un rseau et hostid identifie une machine de ce rseau.
Cette paire est structure de manire dfinir cinq classes
d'adresses.
Notation en dcimal point A.B.C.D.
pk/enseirb-matmeca/2016 v1.5
Adressage IP
0
16
Netid
Classe A
Classe B
10
Classe C
110
Classe D
1110
Classe E
11110
24
Hostid
Netid
Hostid
Netid
Hostid
Multicast
Rserv
31
- 164 -
Adressage IP
Classification :
Classe A : N.H.H.H
Classe B : N.N.H.H
Classe C : N.N.N.H
Classe D : multicast. Visioconfrence.
Classe E : rserv. Cest une plage dadresses perdue !
pk/enseirb-matmeca/2016 v1.5
Adressage IP : classe A
0 @rseau
24
@locale
- 166 -
Adressage IP : classe B
1 1
1 0
14
16
@rseau
@locale
pk/enseirb-matmeca/2016 v1.5
Adressage IP : classe C
1 1 1
1 1 0
21
@rseau
@locale
- 168 -
Adressage IP : classe D
1 1 1 1
1 1 1 0
28
@multicast
pk/enseirb-matmeca/2016 v1.5
Adressage IP : classe E
- 170 -
Adressage IP
Adresses particulires :
Soi-mme : 127.0.0.1 : loopback ou localhost.
Tous les bits 0 pour le hostid : le rseau lui-mme :
130.190.0.0 dsigne le rseau 130.190
Tous les bits 1 pour le hostid : toutes les machines du
rseau : diffusion ou broadcast :
130.190.255.255
Une machine ne connat pas son adresse IP (pas de disque
dur). On utilisera RARP :
0.0.0.0
pk/enseirb-matmeca/2016 v1.5
Adressage IP
0
16
Tout zro
24
31
machine hostid
sur le rseau courant
Hostid
diffusion sur
le rseau courant
Tout un
Netid
Tout un
diffusion sur
le rseau netid
Netid
Tout zro
rseau netid
en entier
127
loopback
- 172 -
Sous-rseau IP
Subnetid
Hostid effectif
pk/enseirb-matmeca/2016 v1.5
Sous-rseau IP
190.30.2.0 sous-rseau 2
R1
190.30.1.0 sous-rseau 1
R2
190.30.3.0 sous-rseau 3
- 174 -
Sous-rseau IP
pk/enseirb-matmeca/2016 v1.5
Sous-rseau IP
Exemple de lENSEIRB-MATMECA :
Adresse rseau de luniversit de Bordeaux, sciences :
147.210.0.0 : rseau de classe B. 65536-2 machines
publiques au plus.
147.210.0.0 147.210.255.255 (147.210.0.0 est le rseau
UB1, 147.210.255.255 est le broadcast).
pk/enseirb-matmeca/2016 v1.5
- 176 -
Sous-rseau IP
pk/enseirb-matmeca/2016 v1.5
Fonctions dIP
- 178 -
Fonctions dIP
pk/enseirb-matmeca/2016 v1.5
Fonctions dIP
pk/enseirb-matmeca/2016 v1.5
- 180 -
Fonctions dIP
pk/enseirb-matmeca/2016 v1.5
Fonctions dIP
20.0.0.1
Rseau
10.0.0.0
10.0.0.1
30.0.0.5
Rseau
20.0.0.0
Rseau
30.0.0.0
20.0.0.2
10.0.0.0
Router vers
20.0.0.1 F
40.0.0.1
30.0.0.1
20.0.0.0
30.0.0.0
40.0.0.0
direct
direct
30.0.0.1 H
Table de routage de G
RE223 : Introduction aux rseaux et Internet
pk/enseirb-matmeca/2016 v1.5
Rseau
40.0.0.0
- 182 -
Fonctions dIP
IP gre la fragmentation.
pk/enseirb-matmeca/2016 v1.5
Fonctions dIP
Rseau 1
MTU=1500
R1
Entte datagramme
IP (20 octets)
EF1 et EF2 ont le bit More (M)
positionn.
Le dplacement (dpl) est
relatif au datagramme initial.
Rseau 2
MTU=620
R2
Rseau 3
MTU=1500
- 184 -
Fonctions dIP
IP ne gre pas :
Le multiplexage de transferts de donnes.
La vrification du squencement des datagrammes IP reus.
La dtection de pertes de datagrammes IP.
La retransmission en cas derreurs.
Le contrle de flux (asservissement de lextrmit la plus
rapide lextrmit adjacente la plus lente).
pk/enseirb-matmeca/2016 v1.5
Datagramme IP
Un datagramme possde :
Une entte de 20 octets.
Des donnes.
Entte IP
Donnes
Datagramme IP
- 186 -
Datagramme IP
Entte IP
Donnes
Datagramme IP
pk/enseirb-matmeca/2016 v1.5
Datagramme IP
pk/enseirb-matmeca/2016 v1.5
- 188 -
Datagramme IP
TL : Total Length :
Longueur totale du datagramme IP en octets.
Au plus 64 Ko.
Limit par le MTU.
pk/enseirb-matmeca/2016 v1.5
Datagramme IP
Protocol :
Identifie le type des donnes transportes cest--dire les
donnes du niveau suprieur.
6 : TCP.
17 : UDP.
1 : ICMP.
- 190 -
Datagramme IP
Flags :
FO : Fragment Offset :
pk/enseirb-matmeca/2016 v1.5
Datagramme IP
- 192 -
Datagramme IP
Options :
Variable en taille.
Pour des extensions futures.
En pratique, pas mis en uvre.
Padding :
Complte le champ Options pour avoir un multiple de 32
bits.
Header Checksum :
Protection contre les erreurs de transmission. Calcul sur
lentte uniquement. Pourquoi change-t-il de valeur
chaque routeur travers ?
RE223 : Introduction aux rseaux et Internet
- 193 -
pk/enseirb-matmeca/2016 v1.5
Application
ftp
www
UDP
TCP
ICMP
IP
ARP RARP
Ethernet
Physique
RE223 : Introduction aux rseaux et Internet
pk/enseirb-matmeca/2016 v1.5
- 194 -
ARP
Opration ARP
16
Type de matriel
HLEN
24
Type de protocole
Opration
PLEN
@ matrielle metteur (octets 0-3)
pk/enseirb-matmeca/2016 v1.5
ARP
- 196 -
31
ARP
pk/enseirb-matmeca/2016 v1.5
ARP
- 198 -
ARP
pk/enseirb-matmeca/2016 v1.5
ARP
- 200 -
RARP
pk/enseirb-matmeca/2016 v1.5
Application
ftp
www
UDP
TCP
ICMP
IP
ARP RARP
Ethernet
Physique
RE223 : Introduction aux rseaux et Internet
pk/enseirb-matmeca/2016 v1.5
- 202 -
ICMP
pk/enseirb-matmeca/2016 v1.5
ICMP
Message ICMP
Message ICMP dans un datagramme IP
- 204 -
ICMP
TYPE
0
3
4
5
8
11
12
Message ICMP
Echo Reply
Destination Unreachable
Source Quench
Redirect (change a route)
Echo Request
Time Exceeded (TTL)
Parameter Problem with a
Datagram
TYPE
13
14
15
16
17
18
Message ICMP
Timestamp Request
Timestamp Reply
Information Request
(obsolete)
Information Reply
(obsolte)
Address Mask Request
Address Mask Reply
pk/enseirb-matmeca/2016 v1.5
ICMP
0
1
2
3
4
5
6
7
8
9
10
11
12
Network Unreachable
Host Unreachable
Protocol Unreachable
Port Unreachable
Fragmentation Needed and DF set
Source Route Failed
Destination Network Unknown
Destination Host Unknown
Source Host Isolated
Communication with desination network administratively prohibited
Communication with desination host administratively prohibited
Network Unreachable for type of Service
Host Unreachable for type of Service
- 206 -
Application
ftp
www
UDP
TCP
ICMP
IP
ARP RARP
Ethernet
Physique
RE223 : Introduction aux rseaux et Internet
- 207 -
pk/enseirb-matmeca/2016 v1.5
Couche transport
- 208 -
Couche transport
pk/enseirb-matmeca/2016 v1.5
Couche transport
Combinaison de 2 sockets :
(147.210.18.10, 32420) vers (147.210.19.62, 80).
Echange de donnes vers le serveur Web de lENSEIRBMATMECA.
7
13
21
69
80
ECHO
DAYTIME
FTP
TFTP
WWW
Echo
Daytime
File transfert protocol control
Trivial File transfert protocol
World Wide Web
- 210 -
Couche transport
pk/enseirb-matmeca/2016 v1.5
Couche transport
- 212 -
UDP
Donnes utilisateur
Datagramme UDP
pk/enseirb-matmeca/2016 v1.5
UDP
pk/enseirb-matmeca/2016 v1.5
- 214 -
UDP
pk/enseirb-matmeca/2016 v1.5
UDP
Il nassure pas :
Un mode connect.
La retransmission des donnes sil y a des erreurs ou des
pertes.
Le squencement des donnes.
Le contrle de flux.
pk/enseirb-matmeca/2016 v1.5
- 216 -
Application
ftp
www
UDP
TCP
ICMP
IP
ARP RARP
Ethernet
Physique
RE223 : Introduction aux rseaux et Internet
- 217 -
pk/enseirb-matmeca/2016 v1.5
TCP
- 218 -
TCP
pk/enseirb-matmeca/2016 v1.5
TCP
- 220 -
TCP
- 221 -
- 222 -
Source
Destination
Emet SEG 1
Reoit SEG 1
Emet ACK 1
Reoit ACK 1
Emet SEG 1
Reoit SEG 2
Emet ACK 2
Reoit ACK 2
Emet SEG 3
pk/enseirb-matmeca/2016 v1.5
Rseau
Destination
Emet SEG 1
Tempo. arme
- 224 -
Le rseau est trs mal exploit car il nest utilis que pendant la
transmission.
pk/enseirb-matmeca/2016 v1.5
1 2 3 4 5 6 7 8 9 10 11 . . .
1 2 3 4 5 6 7 8 9 10 11 . . .
Glissement de 1
- 226 -
Source
Destination
Emet SEG i
Emet SEG i+1
Reoit SEG i
Emet ACK i
Fentre de 3 segments
RE223 : Introduction aux rseaux et Internet
- 227 -
pk/enseirb-matmeca/2016 v1.5
TCP
1 2 3 4 5 6 7 8 9 10 11 . . .
Octets mis et
acquitts
p1 : octets mis
et non acquitts
p2 : octets
pouvant tre
mis
p3 : octets ne pouvant
tre mis tout de suite
Fentre de 7 octets
RE223 : Introduction aux rseaux et Internet
pk/enseirb-matmeca/2016 v1.5
- 228 -
TCP
pk/enseirb-matmeca/2016 v1.5
TCP
Entte TCP
Donnes utilisateur
Segment TCP
- 230 -
TCP
pk/enseirb-matmeca/2016 v1.5
TCP
- 232 -
TCP
pk/enseirb-matmeca/2016 v1.5
TCP
URG (1 bit) :
Urgent. Tag dun segment TCP urgent (CTRL C dans ssh).
ACK (1 bit) :
Tenir compte de lAcknowledge Number.
PSH (1 bit) :
Dlivrer immdiatement les donnes. Lmetteur ne prvoit pas
denvoyer dautres donnes dans limmdiat.
RST (1 bit) :
Reset. Reprendre une connexion au dbut.
SYN (1 bit) :
Etablissement dune connexion TCP.
FIN (1 bit) :
Fin dune connexion TCP.
- 234 -
TCP
pk/enseirb-matmeca/2016 v1.5
TCP
- 236 -
TCP
pk/enseirb-matmeca/2016 v1.5
TCP
TCP destination
SYN, SN=x
SYN, SN=y
ACK, AN=x+1
ACK, AN=y+1
- 238 -
TCP
TCP source
FIN, SN=x
ACK, AN=x+1
Fin application
FIN, SN=y
ACK, AN=y+1
pk/enseirb-matmeca/2016 v1.5
Application
ftp
www
UDP
TCP
ICMP
IP
ARP RARP
Ethernet
Physique
RE223 : Introduction aux rseaux et Internet
pk/enseirb-matmeca/2016 v1.5
- 240 -
- 241 -
- 242 -
Fichier /etc/hosts :
Fichier /etc/networks :
- 243 -
Fichier /etc/services :
Donne lassociation numro de port nom symbolique du
service.
Exemple : ftp 21/tcp
- 244 -
Commande ifconfig :
Commande netstat :
pk/enseirb-matmeca/2016 v1.5
Commande route :
Affichage de la table de routage.
Exemple : % route
Commande arp :
Affichage du cache ARP.
Exemple : % arp a
- 246 -
Commande ping :
Commande traceroute :
- 247 -
Cest dautant plus vrai avec lInternet des objets et les objets
connects o chaque objet intgre une pile TCP/IP pour
communiquer.
- 248 -
- 249 -
- 250 -
PARTIE 8
LARCHITECTURE CLIENT/SERVEUR
pk/enseirb-matmeca/2016 v1.5
Introduction
- 252 -
Introduction
pk/enseirb-matmeca/2016 v1.5
Introduction
Les freins :
Difficult de concevoir des applications distribues.
Rticences des responsables pour des raisons de scurit, de
dispersion des donnes juges sensibles...
- 254 -
Le modle
Repose sur une communication dgal gal entre les applications distantes.
Communication ralise par dialogue entre processus deux deux.
Un processus est le client, lautre le serveur.
Les processus ne sont pas identiques mais forment plutt un systme
coopratif.
Le rsultat de cette coopration se traduit par un change de donnes, le
client rceptionne les rsultats finaux dlivrs par le serveur :
Le client initie lchange.
Le serveur est lcoute dune requte cliente ventuelle.
Client
Serveur
Application
Dialogue
Service
pk/enseirb-matmeca/2016 v1.5
Le middleware
Application
Serveur
Middleware
Rseau
- 256 -
Le middleware
pk/enseirb-matmeca/2016 v1.5
Rseau
message dappel
Serveur
prise en compte de
la requte
Rveil du serveur
rception du rsultat
message rponse
Excution requte
poursuite du traitement
- 258 -
Rseau
Serveur
prise en compte de
la connexion
message de connexion
demande de
connexion
Excution des
requtes et
gestion de la
synchronisation
Emission de requtes
Rception de rsultats
Synchronisation
demande de
dconnexion
message de dconnexion
prise en compte de
la dconnexion
Libration du contexte
- 259 -
Conception du client
- 260 -
Conception du serveur
pk/enseirb-matmeca/2016 v1.5
Les sockets
pk/enseirb-matmeca/2016 v1.5
- 262 -
Les sockets
pk/enseirb-matmeca/2016 v1.5
Les sockets
Application cliente
Protocole Applicatif
Application serveur
API Socket
UDP
API Socket
TCP
UDP
TCP
IP
IP
Physique
Physique
- 264 -
Les sockets
pk/enseirb-matmeca/2016 v1.5
socket
bind
CLIENT
socket
requte
sendto
recvfrom
sendto
rponse
close
RE223 : Introduction aux rseaux et Internet
pk/enseirb-matmeca/2016 v1.5
- 266 -
pk/enseirb-matmeca/2016 v1.5
MODE CONNECTE
CLIENT
bind
listen
accept
read
write
close
socket
connexion
requte
rponse
connect
write
read
close
- 268 -
PARTIE 9
LAPI SOCKETS
pk/enseirb-matmeca/2016 v1.5
Flux doctets
non
structurs
socket
socket
Mode
connect
Mode
non connect
Espace utilisateur
Appel systme
TCP
UDP
IP
LLC
MAC
1 : physique
Support de communication
- 270 -
Sous UNIX, tout est fichier donc la manipulation des sockets revient aux
oprations standards open, read, write, close et ioctl
- 271 -
Un nom :
Descripteur de fichier.
Un type :
SOCK_STREAM : mode connect fiable avec TCP/IP.
SOCK_DGRAM : mode non connect non fiable avec
UDP/IP.
SOCK_RAW : mode brut caractre pour accs direct aux
couches infrieures. Seul, le superutilisateur peut lutiliser.
Associ un processus.
Une adresse : adresse IP + n port.
- 272 -
Application 1
Application2
Application 3
Stream socket
Datagram socket
Raw socket
TCP
UDP
IP
pk/enseirb-matmeca/2016 v1.5
Serveur UDP
socket()
Client TCP
socket()
bind()
Serveur TCP
socket()
bind()
listen()
connect()
accept()
read()
write()
close()
close()
close()
close()
- 274 -
pk/enseirb-matmeca/2016 v1.5
Structures de donnes
#include <sys/types.h>
#include <sys/socket.h>
struct sockaddr {
unsigned short sa_family;
char sa_data[14];
}
struct sockaddr_in {
short sin_family;
u_short sin_port;
struct in_addr sin_addr;
char sin_zero[8];
}
struct in_addr {
u_long s_addr;
};
// Bibliothques requises
//
//
//
//
//
// Soit 4 octets
- 276 -
close(int socket)
Ferme la connexion (SOCK_STREAM) et supprime la structure de
donnes associe au descripteur de socket.
- 277 -
sockaddr
adresse-
- 278 -
Fonctions utilitaires
getservbyname()
Traduit en numro de port le nom d'un service.
char * inet_ntoa(in_addr)
Convertit une adresse IP 32 bits sous format ASCII.
char *ad1_ascii;
ad1_ascii=inet_ntoa(socket_ad.sin_addr),
printf("adresse: %s\n",ad1_ascii);
- 279 -
Fonctions utilitaires
- 280 -
int sendto()
int recvfrom()
pk/enseirb-matmeca/2016 v1.5
Descripteur de socket
Buffer envoyer
Longueur du buffer
0
Adresse destinataire
Longueur adresse
int recvfrom(
int desc,
//
void *buffer,
//
int longueur,
//
int option,
//
struct sockaddr *p_adresse,//
int *longueur_adresse
//
};
Descripteur de socket
Buffer pour recevoir le message
Longueur de la zone rserve
0
Adresse expditeur
Longueur adresse
- 282 -
C lie n t
s o c k e t()
b ind ()
s o c k e t()
re c v fro m ()
s e nd to ()
s e nd to ()
re c v fro m ()
- 283 -
Ct client TCP.
Pour tablir une connexion TCP avec le processus serveur.
Ladresse IP et le numro de port du serveur sont spcifis.
Appel bloquant jusqu ce que la connexion TCP soit tablie avec le
serveur.
- 284 -
Ct serveur TCP.
Cration dune file d'attente pour les demandes de connexion.
lgr-file indique le nombre maximum de demandes de connexion
autorises dans la file (5, 10 ou 20).
File d'attente exploite par lappel accept().
- 285 -
Ct serveur TCP.
Prise en compte d'une demande de connexion entrante sur une socket.
Appel bloquant.
newsock : nouveau descripteur de socket de la connexion tablie sur
laquelle s'effectuera lchange de donnes.
adresse : adresse du client TCP.
Le processus peut traiter lui-mme la nouvelle connexion, puis revenir
accept() ou bien se rpliquer (fork()) pour la traiter, le processus
pre se remettant alors l'coute dune nouvelle connexion entrante.
- 286 -
Lusage de ces 2 appels systme est le mme que lorsquils sont utiliss sur
fichier. Lappel read() est bloquant (comme le write() si saturation de
la pile rseau).
pk/enseirb-matmeca/2016 v1.5
Client
socket()
bind()
listen()
connect()
accept()
read()
write()
write()
read()
- 288 -
Exemple 1 : myftp0.c
#include
#include
#include
#include
#include
#include
#include
#include
<stdio.h>
<stdlib.h>
<strings.h>
<string.h>
<sys/types.h>
<sys/socket.h>
<netinet/in.h>
<netdb.h>
#define FTPPORT 21
main(argc,argv)
int argc ;
char *argv[] ;
{
int sd;
struct sockaddr_in sa;
struct hostent *hptr ;
pk/enseirb-matmeca/2016 v1.5
Exemple 1 : myftp0.c
char *serveur ;
char c;
/* Buffer */
/* Buffer */
- 290 -
Exemple 1 : myftp0.c
/* Recuperation des infos sur le serveur dans /etc/hosts pour par DNS */
if((hptr = gethostbyname(serveur)) == NULL) {
printf("Probleme de recuperation d'infos sur le serveur\n");
exit(1);
}
/* Initialisation la structure sockaddr sa avec les infos formattees : */
/* bcopy(void *source, void *destination, size_t taille);
*/
bcopy((char *)hptr->h_addr, (char*)&sa.sin_addr, hptr->h_length);
/* Famille d'adresse : AF_INET = PF_INET */
sa.sin_family = AF_INET;
pk/enseirb-matmeca/2016 v1.5
Exemple 1 : myftp0.c
/* Creation de la socket TCP */
if((sd = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
printf("Probleme lors de la creation de socket\n");
exit(1);
}
/* Etablissement de la connexion avec le serveur ftp */
if((connect(sd, (struct sockaddr *) &sa, sizeof(sa))) < 0 ) {
printf("Probleme de connexion avec le serveur\n");
exit(1);
}
/* Lecture de la banniere d'accueil du serveur ftp */
n = read(sd, buf, sizeof(buf));
/* Ecriture sur stdout */
write(1, buf, n);
/* Envoi de la commande ftp vers serveur ftp */
write(sd, msg, sizeof(msg));
- 292 -
Exemple 1 : myftp0.c
/* Lecture de la reponse du serveur ftp */
n = read(sd, buf, sizeof(buf));
write(1, buf, n);
/* Fermeture de la socket */
close(sd);
printf("Fin de connexion. Bye...\n");
exit(0);
}
pk/enseirb-matmeca/2016 v1.5
Exemple 2 : pingserveurTCP0.c
#include
#include
#include
#include
#include
#include
<stdio.h>
<stdlib.h>
<sys/types.h>
<sys/socket.h>
<netinet/in.h>
<netdb.h>
main(argc,argv)
int argc ;
char *argv[] ;
{
int sd;
struct sockaddr_in sa;
struct hostent *hptr ;
int port;
- 294 -
Exemple 2 : pingserveurTCP0.c
int newsd;
/* Id de la socket entrante */
struct sockaddr_in newsa; /* sockaddr_in de la connection entrante */
int newsalength;
struct hostent *newhptr; /* Infos sur le client suivant /etc/hosts */
int i;
pk/enseirb-matmeca/2016 v1.5
Exemple 2 : pingserveurTCP0.c
/* Initialisation la structure sockaddr sa avec les infos
/* Famille d'adresse : AF_INET = PF_INET */
sa.sin_family = AF_INET;
/* Initialisation du numero du port */
sa.sin_port = htons(port);
sa.sin_addr.s_addr = INADDR_ANY;
/* Creation de la socket TCP */
if((sd = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
printf("Probleme lors de la creation de socket\n");
exit(1);
}
/* Bind sur la socket */
if(bind(sd, (struct sockaddr *) &sa, sizeof(sa)) == -1) {
printf("Probleme avec le bind\n");
exit(1);
}
- 296 -
formattees : */
Exemple 2 : pingserveurTCP0.c
/* Initialisation de la queue d'ecoute des requetes (5 max) */
listen(sd, 5);
printf("Serveur pingTCP en ecoute...\n");
i = 0;
while(1) {
/* Ne pas oublier : newsalength contient la taille de la structure sa
attendue */
newsalength = sizeof(newsa) ;
if((newsd = accept(sd, ( struct sockaddr * ) &newsa, &newsalength)) < 0 )
{
printf("Erreur sur accept\n");
exit(1);
}
/* Compteur nombre connexions */
i++;
pk/enseirb-matmeca/2016 v1.5
Exemple 2 : pingserveurTCP0.c
/* nom du client */
printf("Connection No %d sur le port %d...\n", i, ntohs(newsa.sin_port));
/* Tempo pour pouvoir faire un netstat... */
sleep(10);
close(newsd);
/* Fermeture du serveur au bout de 3 connexions entrantes */
if(i == 3) {
close(sd);
printf("Fin du serveur. Bye...\n");
exit(0);
}
}
/* Fermeture du serveur. Never reached */
close(sd);
printf("Fin du serveur. Bye...\n");
exit(0);
}
- 298 -
Client
pk/enseirb-matmeca/2016 v1.5
/* Descripteur de socket */
/*
/*
/*
/*
- 300 -
pk/enseirb-matmeca/2016 v1.5
- 302 -
pk/enseirb-matmeca/2016 v1.5
/* Descripteur de socket */
- 304 -
pk/enseirb-matmeca/2016 v1.5
- 306 -
pk/enseirb-matmeca/2016 v1.5
- 308 -
PARTIE 10
CONCLUSION
pk/enseirb-matmeca/2016 v1.5
Conclusion
- 310 -
BIBLIOGRAPHIE
pk/enseirb-matmeca/2016 v1.5
Bibliographie
- 312 -
Bibliographie
- 313 -