.
Présentation de TCP/IP et de la programmation
Introduction aux réseaux
Julien OLIVAIN <
[email protected]>
LSV - ENS de Cachan
Équipements et composants d’un réseau.
et
Cas pratique d’
Organisation en couches.
Protocoles de communication. .
Programmation système réseau: - Interface de programmation . - Modèles client-serveur. - Réalisation d’une messagerie temps-réel.
Introduction générale.
Plan
Un protocole est un ensemble de règles et de codes conçus pour l’échange de données entre deux équipements reliés par une ligne de communication. ( langage). Les protocoles fournissent généralement des services particuliers, en plus de l’échange de données:
Recherche d’un chemin vers un réseau (routage) Recherche d’une adresse Gestion de flot de données Vérification d’intégrité Correction d’erreurs Sécurité (chiffrement) ...
Protocoles de communication réseau
Couches ISO/OSI International Standard Organization’s Open System Interconnect Application protocols: ftp, telnet, ssh, htt, smtp, etc...
−6− Presentation
Data translation: Bit order, Byte order, Character set, etc...
−5− Session
Provide control of session between hosts : establishment, transfer, release (session identifier, socket)
−4− Transport
Provide transmission control service, error recovery and segmentation: TCP, SX, NetBEUI, etc... (Data unit: segment)
−3− Network
Send data through multiple systems between two hosts: IP, IPX, DDP, etc... (Data unit: Packet)
−2− Data Link
Low−level communication protocol: Ethernet, TokenRing, FDDI, Kermit, Z−Modem, etc... (Data unit: Frame)
−1− Physical
Twisted Pair Cables, Fiber Optic, Radio Frequency Links, etc... (Data unit: Signals, modulations, etc...)
−7− Application
TCP (
! "
$
"#
!
%
et
est un protocole couche lien (2), ), de couche réseau (3), ), de couche (4).
)
&
&
(
'
&
IP (
Cas pratique d’
Encapsulation des protocoles TCP/IP user data
application header
TCP header
user data
application data
TCP segment IP header TCP header
application data
IP datagram application data
Ethernet frame
Ethernet trailer *
IP header TCP header
Ethernet header
Hiérarchie des protocoles DNS SNMP TFTP NFS ...
... UDP
ICMP
IP
ARP
Data Link Media
Transport layer
IGMP
RARP
Network layer
Link layer
Physical layer
+
TCP
Application layer
HTTP SMTP FTP SSH
! "
$
"#
!
En-tête 0
15 16
31
48 bits destination MAC address 48 bits source MAC address
,
data
16 bits type
En-tête IP 0
15 16 8 bits type of service (TOS)
16 bits total length (bytes)
8 bits time to live
8 bits protocol
standard IP header = 20 bytes
3 bits flags
16 bits identification
13−bits fragment offset 16 bits checksum
32 bits source ip address 32 bits destination ip address options (if any)
data
-
4 bits hdr len
4 bits version
31
En-tête UDP 15 16
31
16 bits source port
16 bits destination port
16 bits length
16 bits checksum
.
data
0
En-tête TCP 0
15 16 16 bits source port
31 16 bits destination port standard TCP header = 20 bytes
32 bits sequence number 32 bits acknowledgement number FIN
SYN
16 bits checksum
16 bits window size 16 bits urgent pointer
options (if any)
data
RST
PSH
ACK
6 bits reserved
URG
4 bits hdr len
Protocole TCP (couche 4) TCP connection establishment Client
socket() connect() (connect blocks)
Server socket() bind() listen() accept() (accept blocks)
SYN j 1
SYN k, ACK j+ ACK k+1
(accept returns)
ACK j+1
ACK k+1
(connect returns)
%
Exemple d’un envoi de mail.
et
! "
$
"#
!
Exemple d’une connexion HTTP.
Cas pratique d’
Équipements composant un réseau
Internet Router Hub
Switch
D
Host C
Principaux équipements
B
F
A
E
Configuration réseau minimale
Passerelle par défaut (192.168.0.1)
Nom de machine (myhost) Serveur de noms (DNS 192.168.0.2)
)
Masque de sous-réseau (255.255.255.0)
Adresse IP (192.168.0.123)
De quels paramètres a-t-on besoin pour faire fonctionner le réseau ?
Exemple complet d’une connexion www.google.com 8
12
Internet 13
9 11 7
14
10
5
host2
6
1 2
mozilla http://www.google.com
DNS
host1
4
*
3
Affiche le nom de la machine locale.
/5 7< <;
< > >
<
4
Transfert de fichiers.
; 9<
GFED HH
sécurisé.
: ;
Connexion d’un terminal via un réseau.
0
< > 24? > <
Affiche la route utilisée entre la machine locale et une destination.
+
/4 < 3; 8< 1 7 8> A3
Outil de diagnostic des connexions réseau courantes.
> 5
<4 9
Outils de requête d’un serveur de noms (DNS).
?
3 3 A92@
Outil de requête d’un serveur de noms (DNS). (obsolète).
CB
Test de connectivité (message ICMP ECHO/REPLY).
65/
0 897 =7
43 3; ; 4 :
Outil de configuration des interfaces réseau. Outil de configuration du cache d’adresses IP/ARP.
:
21/0
Outils de diagnostic réseau
I
"
!
L K
IJ
Programmation système et
Une (en: prise, embout) représente un point d’attache vers un canal de communication réseaux.
,
permet de faire abstraction des L’interface des protocoles de communication bas-niveau qui seront gérés automatiquement par le système d’exploitation.
-
/4
/4 <
<
?
@
T
YX
35
7
[
QS
Mi
<
1e
`U;
/4 g
A
< C@
C@0
C
3
1
;
C
YX
?
7C
<
?
@
7C
=W \
8
4>
8
<
7C
3
1
;
;
3
1
;
T
G[hg d
<
81 <
/4
4>
U8
U
/4
/4
f
<
\
eA
3C /
C0
QS
c
<
]<
;
1 43
/a
/a
T
Y<X
A3 4
<1
>
;
U 0
U
>
;
;
g
]
\
/
C0 3C
<
T
d
Y<X
4
A3
; ba/ > <1
eA U 0
U
/4
; ba/ >
;
/4 <
C@
3
1
;
\C 7C
<
?
@
7C
\C
S T
? 4> ZYX
8
< 7C
3
1
;
4>
U8
8
A
Q_
O
O
<^
81 <
;
`U;
/4
C ?
4> ZYX
8
<
?
@
7C
4>
3
1
;
U
/4
A
O
Q
[
N[
O
<
<
<
U8
C 7C
;\ 8]>
8
C@
C@0
7C
3
1
;
<
81 <
;
;
1
3
1
;
43
/4
S T /4
/4 U /4
>
7
<
3 YZ? X
3
1<
3
T
QRP S
NO
<M
9< 8
9 <W
UV /4
=3
/4
I
"
K
IJ
!
L
Appels système pour les
<1
< /4
C0
5
ZYX
875
43
?
T
Si /4
m
<
; 5
/4 <
<
?
:
C
0
T
YX
;
75
=\ ; U5
8
=
A
81 <
;
`U;
lM
nO
4>
3
1
;
C@
?
\0
<
?
@
\0
YX
4>
=3
8
< 7C
3
1
;
U =3
8
8
A
81 <
; /4 <
eA
/
/a
/4 75 `U;
VU4>
>
;
<
<
?
?
U 0
\
3C
U`; ]
Nl
c
nO
Q
0
T
o nO
Q
<
/4
eA
/
/a
/4 <
<
?
?
0
T
YX
;
75
VU4>
>
;
U 0
\
3C
U`; ]
/4
/4
m
<
<
; 5
/4 <
?
:
C
0 YX
;
75
=\ ; U5
8
=
<
T
RlMd
[
Q
<M
8< A1
;
;
43
1
`U;
/4
A
<
\
<
<
?
@
? 4> ZYX
3
4>
U < 3 ; 1 3
8
C@ 7C
3
1
;
<
81 <
;
;
43
1 /4
N
[
Q
<M
<
/
75 `U;
/4 <
?
0
; ba/ > < ? U 4>
=\ ; U5
3C
]<
;
43
1
`U;
/4
T
Sd /4
[
Q
<M
<
/
75
< ?
0
T
d
; ZYX
/4
; ba/ > < ? U 4>
=\ ; U5
3C
]<
;
43
1
`U;
/4
9
< C0
<
=/ > A3 Y<X
< =/ ] > 7 ? \ <
A
\
<
81 <
;
U;
>
k1>
>
;
C0
>
;
O
/4
<
< C0
8
<
< / U;
> C0
j\
>
;
C0
S T
Qi
Q
<M
8\ >C 70 C U`;
VU4
/4
I
"
K
IJ
!
L
les
.
/4
=C
[
Oo
<
Q
/4
pour
U
U
/4
/4
Appels système avancées
Modèles de serveurs Communication simple:
Les deux programmes communiquent et terminent.
Serveur itératif:
Le serveur attend, traite la requête d’un client lorsqu’il se connecte, puis recommence.
Serveur concurrentiel: Le serveur attend, crée un nouveau processus pour traiter les requêtes des clients
Serveur multiplexé:
Le serveur attend, et traite les clients les uns après les autres.
séparément et en parallèle.
...utilisation de la connexion...
.
.
Connexion de la
Création d’une
Recherche et configuration de l’adresse du serveur à connecter.
Exemple de programme réseau client
=
<
/ x
x
;
YX
v
=T ; 5 X
4>
8<
; ?
; CT x
>
U5
U
8
j
\
\ 4
8]
u
>
3
1
; <
@
;C
7C
C X
;T
YX
8
8]
; ba/ > 30
7C
C
YZ X
|} T ;T s 8< ~ A1 U < ; 1 3 C@ s
7C 8 \X w U ;
< ; CT
>
1
43
U8
B U
B
1
/
?W u >y
=7
s /4
x;
8]
;
X
q
{p
T
Y>
9 <W
8
C
:
: 7C
T s z
YX
]5
87
3
< 7<
;
43
83
9
s /4
x;
8]
;
/
0 ;
s /4
>y
>y
5 <
?
:
:
wT
Y :X
4>
s z
U8
C
:
: 7C
s z
U8
C
7C
x;
8]
W
9
=1>
=
4
5 < :
:
q
vp
T
YX
]
875
>
=7
< We
3;
>
u>
3;
\
:
A
/4 Y
8]
< C@
;
7C
3
1
;
;
81 <
< ts8
<
<
Y> :
4>
A
81 <
; Y
/4
< ;C
U
7 /4 /4
]
5
875
87
1
871
=
/4
\
<
<
:
Xr
pq
T
Exemple de programme réseau client
Activation de l’écoute.
Attente de l’acceptation d’une connexion. ...utilisation de la connexion...
à une adresse d’écoute.
.
Association de la
Création d’une
Exemple de programme réseau serveur
)
71
>C x
/a
eA
0
0
X
T
YX
8>
0
0
30
>
;
U 8>
eA
T x `U; x
8
\
\
B
B
9 >
17
1
;
< T
w1
w1 ?
?
7C
/
C/
?
\X
4> ZYX
U8
8
C@
7C
3
1
;
<
;T 81 < A
U ?;
u
1
u
?
?
/a
/
C/
?
T
8 ZYX
7C
1
30
>
;
4>
1 /; T
Y X
`U6;?
4>
<
? T
u 3
1
;
6;?
/a
/4
X
;T
30
>
;
;
\X w
YX
VU /4
8
C@
7C
3
1
;
<
s
YZ X
U
U
~
@ ;T > < |} T 81 < A s
`U6;?
C/4
e s /4
/4
:
Y<X
83
9T
;
43
83
9
x;
;
s
s /4
/4
?W u
~
|}
Y
=7
x;
;
/
0 U /a
/4
wT
X
;T
30
>
;
<
YX
U /4
;
>
;
=>
=
<1 4Y>
s 4>
3
1
;
/
A
/4
8Y
? ts8
?
?
@
C@
C/
? 7C
1
7C
3
1
;
<
81 <
;
/4 Y /4
ts8
A
C@
;
7C
3
1
;
<
81 <
;
>
3
1
;
43
>
1
43 4
<1
\
1\
Y;
/4
<
<
@
/
B
B
>
3
1
;
/; 4>
Y ?;
/4
\
\
<
<
<
@
?
B
B U
7 /4 /4
]
5
875
87
1
871
=
/4
\
<
<
:
Xr
pq
T
Exemple de programme réseau serveur
W.R. Stevens,
W.R. Stevens,
A. Tanenbaum, G. Pujolle,
'
*
'
'
&
'
&
RFC793 (TCP) Transport Control Protocol
RFC792 (ICMP) Internet Control Message Protocol &&
RFC791 (IP) Internet Protocol
RFC790 (UDP) User Datagram Protocol
Bibliographie
.
Présentation de TCP/IP et de la programmation
Introduction aux réseaux
Julien OLIVAIN <
[email protected]>
+
LSV - ENS de Cachan