Vous êtes sur la page 1sur 27

Introduction aux réseaux

Présentation de TCP/IP
et de la programmation .




Julien OLIVAIN
<julien.olivain@lsv.ens-cachan.fr>

LSV - ENS de Cachan





Plan

Introduction générale.

Protocoles de communication.

Organisation en couches.

Cas pratique d’ et .













Équipements et composants d’un réseau.

Programmation système réseau:


- Interface de programmation .

 



- Modèles client-serveur.
- Réalisation d’une messagerie temps-réel.





Protocoles de communication réseau

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)
...





Couches ISO/OSI

International Standard Organization’s Open System Interconnect

−7− Application Application protocols: ftp, telnet, ssh, htt, smtp, etc...

−6− Presentation Data translation: Bit order, Byte order, Character set, etc...

Provide control of session between hosts : establishment, transfer, release


−5− Session (session identifier, socket)

Provide transmission control service, error recovery and segmentation: TCP, SX, NetBEUI, etc...
−4− Transport (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...)




Cas pratique d’ et

%
!

!
"#

$
"
est un protocole couche lien (2),





IP ( ), de couche réseau (3),

&













TCP ( ), de couche (4).

 

&

&







'

(









)



Encapsulation des protocoles TCP/IP

user
data

application user
header data

TCP header application data

TCP segment

IP header TCP header application data

IP datagram

Ethernet Ethernet
IP header TCP header application data
header trailer
Ethernet frame

*



Hiérarchie des protocoles

HTTP SMTP FTP SSH DNS SNMP TFTP NFS


Application layer
... ...

TCP UDP Transport layer

ICMP IP IGMP Network layer

ARP Data RARP Link layer


Link

Media Physical layer

+



En-tête

!
"#

$
"
0 15 16 31

48 bits destination MAC address

48 bits source MAC address

16 bits
type
data

,



En-tête IP

0 15 16 31
4 bits 4 bits 8 bits type of service 16 bits total length (bytes)
version hdr len (TOS)

standard IP header = 20 bytes


3 bits
16 bits identification flags 13−bits fragment offset

8 bits time to live 8 bits protocol 16 bits checksum

32 bits source ip address

32 bits destination ip address

options (if any)

data

-



En-tête UDP
0 15 16 31
16 bits source port 16 bits destination port

16 bits length 16 bits checksum

data

.



En-tête TCP

0 15 16 31
16 bits source port 16 bits destination port

standard TCP header = 20 bytes


32 bits sequence number

32 bits acknowledgement number

4 bits
URG
ACK

SYN
6 bits reserved 16 bits window size

PSH
RST

FIN
hdr len
16 bits checksum 16 bits urgent pointer

options (if any)

data





Protocole TCP (couche 4)

TCP connection establishment

Client Server
socket()
bind()
listen()
socket() accept()
connect() (accept blocks)
(connect blocks) SYN j

1
SYN k, ACK j+

(connect returns) ACK k+1


(accept returns)

ACK j+1

ACK k+1





Cas pratique d’ et

%
!

!
"#

$
"
Exemple d’une connexion HTTP.

Exemple d’un envoi de mail.






Équipements composant un réseau

Internet

Router

Hub
Switch

D E F
Host

A B C
Principaux équipements





Configuration réseau minimale

De quels paramètres a-t-on besoin pour faire fonctionner le


réseau ?
Adresse IP (192.168.0.123)

Masque de sous-réseau (255.255.255.0)


Passerelle par défaut (192.168.0.1)


Nom de machine (myhost)


Serveur de noms (DNS 192.168.0.2)


)



Exemple complet d’une connexion

www.google.com

12
8

Internet

13 9
11
7
5

host2
6 1
14 10
2
3
4
host1 DNS

*



mozilla http://www.google.com
Outils de diagnostic réseau

Outil de configuration des interfaces réseau.


21/0

0
65/
43
Outil de configuration du cache d’adresses IP/ARP.
897 Affiche le nom de la machine locale.
:
3;

=7
>
<4

Test de connectivité (message ICMP ECHO/REPLY).


5
9
/4

Outil de requête d’un serveur de noms (DNS). (obsolète).


?
A92@
;
3
3
4

Outils de requête d’un serveur de noms (DNS).


CB
:
<

/5
3;

Outil de diagnostic des connexions réseau courantes.


<
7<
>
<;
4

Affiche la route utilisée entre la machine locale et une destination.


8<

<
1
7
8>
A3
>

Connexion d’un terminal via un réseau.


24?
<

<
>
>

sécurisé.
GFED
HH
:
;
;

Transfert de fichiers.
0
9<

+




Programmation système et

L
!
IJ

"
I
Une (en: prise, embout) représente un point d’attache
 



vers un canal de communication réseaux.

L’interface des permet de faire abstraction des

 





protocoles de communication bas-niveau qui seront gérés
automatiquement par le système d’exploitation.

,



; ;
; ;
/a /4
ba/ /4 < /4
/4 > O
/4 > <^ <M
< <
Mi < <c O N[
g c O [ NO
f Q^ Q_ Q
QS G[hg g O QRP
[ QS
d d S S S
;
T T T T T 1 T T
/4 /4 /4 /4 /4 3 /4 /4
< < < < < @ < <C
`U; ; C0 C0 `U; ? ;
1 U U 4> 1
3 3 =3
1 ] ; <
/4 C@0 C C@0 7
U 7C U UV /4
< 43 3C
81 <
A
; / 8 1
1e ;
7 ]< < ? /4
\ ; 4> 43
@
81 <
A eA 1 ; <
? 3C U 0 3 ZYX
35 / < 9 <W
YX < C@ ;
; ; 7C U
1 \ 81 < >
3 eA ba/ 8 A
U 0
C@ > /4
7C <1 \C <
; 7C ; 9<
8 1
/a A3 U8 3 8
> 4 C@ 3
Appels système pour les

=W \
<1 ; 7C 1<
C Y<X 1 3
7C 3 8
A3 3 IJ
U8 4 @ YZ? X
? ;\
4> K
; Y<X 8]>
1 < L
3 C "
\C 7C
@ 7C !
? U8 I
4> 8
< ?
C 4>
7C ZYX
8
?
4>
 YX


-
/4 /4 /4
<c <c <M /4
Q /4
/4 Q nO /4 Q <M /4
nO [ <M
< c <c Q <M
Oo o [ Q
[
lM Q RlMd Q Qi
Nl nO [ O
Sd
avancées

Si m m N d S
1
; C0
T T T T T T T T
/4 /4 81 < /4 /4 /4 43 /4 /4 ; /4
A ;
< < < < < < < > <
C0 `U; U`; U`; `U; < `U; `U; < VU4
U < ;
; ] ] 1 1 1 \
; 1 81 < k1> C0
3 A
/4 81 < 3C 3C 43 43 43 9 ;
A C@ / / ; ; ; >
<1 7C < >
< ; ]< ]<
Appels système

=C < 8 \ \ ; 1 < C0 <


U = eA eA 3 U; 8\
; U 0 U 0 8< 3C 3C
5 \0 A1 C@ / / >C
C 8 7C ;
? : ; ; 70
C
43 8 U =3 < 8 =\ =\
5 /a /a = ; ; 81 <
A U`;
; U5 U5
=\ ; > > 5 \
875 ; 1 < < C U < < C0
U5 3 : 3 ; ;
ZYX ? ? 8 <
@ ; ba/ ba/ ;
pour

? VU4> VU4> 1 =/
/4 4> =\ 3 > > ] >
; > <
< U5 @ < <
0 < /4 /4 ? 7 j\
4> ? ? ? 8
? \0 < < U 4> U 4>
75 8 0 0 /4 \ /
; < < <
=3 ? ? < =/ > C0
YX 75 75 0 < /4 /4
les

? `U; ; 3 > U;
4> YX ? ? < < A3
YX 75 4> 0 0
; ZYX ? ? Y<X
YX 75 75
`U; ;
ZYX IJ

K
 L


. "
!
I
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
séparément et en parallèle.

Serveur multiplexé:

Le serveur attend, et traite les clients les uns après les autres.





Exemple de programme réseau client

Recherche et configuration de l’adresse du serveur à


connecter.
Création d’une .

 




Connexion de la .

 




...utilisation de la connexion...





Π1 /4
j ;C ; ; = ; ;
8 B 8] 8] : /4 <
\ 43 u =1> u> =
/ x 4 9
81 <
A
81 <
A <
< x 1 x; x; ;C 7
> > ; W 5 Y /4
; CT x 1 s /4 s /4 < <
U < 3 9 wT > ; T
\ ; CT 0 ; < : 1 /4
B U @ 8] : 3; 3
= > 83 =7 3; <
; < < C@
U5 |} T <u / x; < 4> 7C
;T s ?W We 871
5
u s /4 4 < ts8 U
; 8<
A1 €~ : C =7 \ 1
8< < 7C /4
U 43 : > Y> :
? <  ; >y U8 T ; :
4> ; 875 8] 87
1 T s z ] Y
=T 3 ‚ƒ„ :
; 7< C : \
5 C@ s 7C >y vp 875
‹ŠX 7C … 3 q ]
/ 8 s z YX
8 ‚ T :
†€ 87 9 <W C pq
v ]5 7C Xr
YX \X Y>
w U ˆ‡ U8
; {p
8] q
C X :
7C YZ‰ X >y
YX
U8 s z
:
; ?
4>
ba/ 5
> <
30 Y :X
;T
8]
C
7C
8
X
YX
Exemple de programme réseau client





Exemple de programme réseau serveur

Création d’une .

 




Association de la à une adresse d’écoute.

 




Activation de l’écoute.

Attente de l’acceptation d’une connexion.


...utilisation de la connexion...





Π1 1 /4
8 ; ; = ; ; ;
B ; ? e 6;? 1 /4 /4 <
>C \ u ? /; C/4 u /4 /4 => 3 =
x / ;
81 <
A
81 <
A <1 <
71
? < x; x; @ 7
T x 1 4> 4> T ; > ? Y; Y ?; /4
`U; x 17 u `U6;? 1 s /4 s /4 < s 4> < <
T 3 9 wT ; ; T
\ 9 `U6;? 0 ; 1 1 /4
B > ; @ <1 3 3 B B
eA ;T > 83 =7 U /4 1\ \ <
0 < /a < C@ C@
0 T Y X 81 < |} T <u / ? 7C 7C ?
U ?; > A s ?W U / 43 /;
871
5
U 8> 30 u ‰ ? ts8 ts8 4 U
4Y> 1 <
1 < ~€ : ; > 4> 1
; ;T T ; < |} /4 /4
1 U 43 s /a 1 < ;
/a 81 < ? 3  ; ; / 1 :
A C/ 9T > 43 3 87
> 7C C@ ~€ 30 ? Y /4
30 7C ‚ƒ„ C/ ; @
< 8 83 ;T 7C 1 > \
; ZYX 8 s Y 3 <
T 1 … Y<X /4 8Y
875
]
eA 3 X @ \
0 \X ‚ YX > B
0 C@ †€ < pq
7C w Xr
8> ; \
X 8 U ˆ‡ B
YX VU /4
\X
; YZ‰ X
w1
/a
? >
C/ 30
7C
;T
U8
/4
w1 X
YX
?
/
?
4>
ZYX




Exemple de programme réseau serveur

)
Bibliographie

RFC790 (UDP) User Datagram Protocol


RFC791 (IP) Internet Protocol


RFC792 (ICMP) Internet Control Message Protocol


RFC793 (TCP) Transport Control Protocol


W.R. Stevens,


Ž&&

 
‘

“‘&







”




'
W.R. Stevens,

“ &

”
—˜–

–
š›




œ

'



A. Tanenbaum,  



'
Ž
—
G. Pujolle,
 



'
Ž
—

*



Introduction aux réseaux
Présentation de TCP/IP
et de la programmation .




Julien OLIVAIN
<julien.olivain@lsv.ens-cachan.fr>

LSV - ENS de Cachan

+