Sunteți pe pagina 1din 157

ENSEIRB-MATMECA

Introduction aux rseaux et


Internet.
Programmation rseau
email
web

: kadionik@enseirb-matmeca.fr
: http://kadionik.vvv.enseirb-matmeca.fr

Patrice KADIONIK
ENSEIRB-MATMECA

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

-1-

PARTIE 1
OBJECTIFS DU COURS

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

-2-

Objectifs

Introduction aux rseaux de tlcommunication, Internet et


ses protocoles de communication associs.

Introduction la programmation rseau.

Complment en informatique technique : matrise de la


programmation (en langage C) des sockets. Perfectionnement du
langage C.

RE223 : Introduction aux rseaux et Internet


-3-

pk/enseirb-matmeca/2016 v1.5

Objectifs

La matrise de lutilisation des sockets lies Internet impose


naturellement daborder les thmes suivants :
Introduction aux rseaux. Le modle OSI.
Introduction Internet et Internet embarqu.
Introduction lInternet des objets.
Introduction la norme Ethernet.
Prsentation des protocoles Internet : IP, TCP, UDP
Architecture client/serveur.
Programmation rseau avec lAPI sockets.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

-4-

PARTIE 2
INTRODUCTION AUX RESEAUX

RE223 : Introduction aux rseaux et Internet


-5-

pk/enseirb-matmeca/2016 v1.5

A quoi servent les rseaux ?

Partage de ressources :
Programmes.
Equipements.

Echange de donnes :
Fiabilit.
Systmes distribus.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

-6-

Topologie

Nud : ordinateur, commutateur, routeur

PAN : Personal Area Network :


Infrieur 10-100 mtres : Bluetooth, rseaux de capteurs
LAN : Local Area Network :
De 100 mtres quelques kilomtres : Ethernet
MAN : Metropolitan Area Network :
De 10 100 km : rseau fibre optique
WAN : Wide Area Network :
De 100 km la terre entire : Internet, Rseau Tlphonique
Commut (RTC), ADSL

RE223 : Introduction aux rseaux et Internet


-7-

pk/enseirb-matmeca/2016 v1.5

Topologie

2 grandes familles de topologie adaptes au transfert de


linformation :
Transmission en mode point point :
Tlphone filaire
Diffusion :
Radio, tlvision...

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

-8-

Topologie

Rseaux point point :


Maillage rgulier

Etoile

Arbre

RE223 : Introduction aux rseaux et Internet


-9-

pk/enseirb-matmeca/2016 v1.5

Topologie

Rseaux multipoint :
Bus
Satellite

Anneau

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

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

Dans les tlcoms, on utilise prfrentiellement les puissances


de 10.
RE223 : Introduction aux rseaux et Internet
- 11 -

pk/enseirb-matmeca/2016 v1.5

Quelques chiffres

Connexion srie sur un PC : de 75 b/s 115200 b/s.

Connexion Internet par modem bas dbit sur RTC : de 300 56


kb/s.

Rseau local : 10 Mb/s 1000 Mb/s.

Epines dorsales des rseaux (backbone) : de quelques centaines


de Mb/s quelques centaines de Gb/s !

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 12 -

Le besoin de normalisation

Pourquoi des protocoles et des architectures de rseaux ?

Machine A

Machine B

Envoi d'un
fichier

Rception du
fichier

Rseau de
communication

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 13 -

Le besoin de normalisation

Besoin de dfinir des protocoles normaliss ou standardiss


afin dassurer linteroprabilit. Seule, limplmentation peut
changer

Standards de fait ou dfinis par des organismes privs.

Organismes les plus connus :


ISO : International Organisation for Standardisation.
ITU : International Telecommunication Union.
IEEE : Institute of Electrical and Electronic Engineers.
AFNOR.
RE223 : Introduction aux rseaux et Internet

pk/enseirb-matmeca/2016 v1.5

- 14 -

PARTIE 3
LE MODELE OSI

RE223 : Introduction aux rseaux et Internet


- 15 -

pk/enseirb-matmeca/2016 v1.5

Quest-ce que lISO ?

L'organisation internationale de normalisation ISO est une


fdration mondiale d'organismes nationaux de normalisation
de quelque 140 pays raison d'un organisme par pays.

L'ISO est une organisation non gouvernementale cre en 1947.


Elle a pour mission de favoriser le dveloppement de la
normalisation et des activits connexes dans le monde en vue
de faciliter entre les nations les changes de biens et de services
et de dvelopper la coopration dans les domaines intellectuel,
scientifique, technique et conomique.

http://www.iso.org
RE223 : Introduction aux rseaux et Internet
pk/enseirb-matmeca/2016 v1.5

- 16 -

Le modle OSI

Dans les annes 70 apparat la ncessit de systmes (matriel


et logiciel) ouverts par opposition aux systmes propritaires
(IBM, BULL, DEC).

Caractristiques d'un systme ouvert :


Portabilit.
Interoprabilit.

Le but d'un modle est de proposer aux constructeurs un


schma sur lequel ils pourront btir leurs solutions matrielles
et logicielles. En s'appuyant sur un modle normalis, ils
s'assurent dun produit ouvert aux autres systmes qui
s'appuient sur la mme norme.
RE223 : Introduction aux rseaux et Internet
- 17 -

pk/enseirb-matmeca/2016 v1.5

Le modle OSI

1977 : lISO dmarre une rflexion sur une architecture de


rseau en couches.

1984 : dfinition du modle OSI :


Open : systmes ouverts la communication avec dautres
systmes.
System : ensemble des moyens informatiques (matriel et
logiciel) contribuant au traitement et au transfert de
linformation.
Interconnection.

Modle darchitecture de rseau : le modle OSI !

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 18 -

Terminologie

Le modle OSI repose sur trois concepts importants :


Les couches.
Les protocoles.
Les interfaces.

On distingue deux grands groupes de couches :


Les couches 1 3 sont les couches basses orientes
transmission des donnes.
Les couches 4 7 sont les couches hautes orientes
traitement des donnes.

RE223 : Introduction aux rseaux et Internet


- 19 -

pk/enseirb-matmeca/2016 v1.5

Terminologie

Chaque couche va rendre des services la couche


immdiatement suprieure et utiliser les services de la couche
immdiatement infrieure. Les couches ne communiquent
quavec les couches qui leur sont adjacentes.

Les protocoles de communication sont les rgles qui dfinissent


le dialogue entre couches de mme niveau de deux systmes
diffrents. Les rgles et conventions utilises lors du dialogue
entre deux couches n sont appeles protocole de
communication de couche n.

Une interface est donc un ensemble de services proposs par les


couches aux autres couches.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 20 -

Architecture en couches

Le concept de couches simpose en informatique ds quil


sagit de subdiviser les tches dun systme.

Il est utilis aussi dans les systmes dexploitation.

On le retrouve dans la conception des rseaux.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 21 -

Architecture en couches

Chaque couche offre des services celle qui lui est directement
suprieure.

Elle lui masque les dtails de son implmentation.

Elle utilise les services de la couche directement infrieure.


Couche infrieure = plus proche du matriel.
Couche suprieure= plus proche des applications.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 22 -

Avantages des systmes en couches

Dcomposition en modules relativement simples.

Possibilit de modifier un module sans devoir adapter les


autres.

Abstraction de la complexit dun module aux concepteurs des


autres modules.

Il est inutile de comprendre tous les dtails pour pouvoir


comprendre lensemble.

Dveloppement, corrections, modifications et volutions


facilits
RE223 : Introduction aux rseaux et Internet

pk/enseirb-matmeca/2016 v1.5

- 23 -

Vue des couches entre deux machines

La communication entre
lments pairs est virtuelle
ou logique.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 24 -

Vue des couches entre deux machines


La communication relle
(ou physique) se fait entre
couches successives.
La couche n sait quels
services elle peut attendre
de la couche n-1.
Elle ne connat rien
dautre que ces services.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 25 -

Vue des couches entre deux machines

A chaque niveau, les


lments pairs
utilisent chacun un
protocole qui leur est
propre.
Communications via
une pile de
protocoles.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 26 -

Protocole

Ce sont les conventions entre entits pour changer des


donnes.

Le protocole gre des informations de contrle qui


accompagnent les blocs de donnes.

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.

RE223 : Introduction aux rseaux et Internet


- 27 -

pk/enseirb-matmeca/2016 v1.5

Les 7 couches du modle OSI

7
6
5
4
3
2
1

Application
Prsentation
Session
Transport
Rseau
Liaison
Physique

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 28 -

Les 7 couches du modle OSI


Systme A

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

RE223 : Introduction aux rseaux et Internet


- 29 -

pk/enseirb-matmeca/2016 v1.5

Le modle OSI. Routeur


Systme A

Routeur

Systme C

Application

Application

Prsentation

Prsentation

Session

Session

Transport

Transport

Rseau

Rseau

Rseau

Liaison

Liaison

Liaison

Physique

Physique

Physique

Support de transmission

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 30 -

Le modle OSI. Bus de terrain


Les bus de terrain sont des rseaux utiliss pour les
automatismes o le respect des contraintes temporelles est
important (ex : bus CAN).

7
6
5
4
3
2
1

Application
Prsentation
Session
Transport
Rseau
Liaison
Physique

Spcifi par lutilisateur


(vide)
(vide)
(vide)
(vide)
Protocole CAN
Libre choix

RE223 : Introduction aux rseaux et Internet


- 31 -

pk/enseirb-matmeca/2016 v1.5

Le modle OSI. Bus de terrain

Systme A

Systme B

Systme C

Application

Application

Application

Liaison

Liaison

Liaison

Physique

Physique

Physique

Support de transmission

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 32 -

Couche 1. Couche physique

Elle dcrit les caractristiques lectriques,


logiques et physiques de la connexion de la
station au rseau, cest dire tout ce qui
concerne les cbles, les connecteurs et les
cartes rseau.
Elle dfinit les aspects physiques du
raccordement : interfaces mcanique et
lectrique et protocole d'change des lments
binaires : caractristiques physiques et
lectriques du support de transmission (paire
torsade...), mthode de transmission (bande
de base), dbits et types de transmission
(synchrone / asynchrone).
Lunit de donnes est le bit.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 33 -

Couche 1. Couche physique

En rsum : tout ce qui constitue le support physique qui assure


le transport des donnes.

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.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 34 -

Couche 2. Couche liaison

Son rle est de dfinir des rgles pour


lmission et la rception de donnes travers
la connexion physique de deux systmes :
Transmettre les donnes sans erreurs.
Dterminer la mthode daccs au support
de transmission.

La couche liaison utilise des protocoles


daccs au support qui peuvent tre
dterministes ou probabilistes.

Lunit de donnes est la trame.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 35 -

Couche 2. Couche liaison

En rsum : contrle la transmission des donnes afin de les


transmettre sans erreur.

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.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 36 -

Couche 3. Couche rseau

Elle gre lacheminement des donnes travers le


rseau en assurant le routage des paquets de donnes
entre les nuds du rseau. Si un nud est surcharg
ou hors service, les donnes seront alors routes vers
un autre nud.
Elle assure lopration d'adressage et de routage. Elle
assure galement le contrle des flux au niveau des
nuds (engorgement, perte de paquets...).
Lunit de donnes est le paquet.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 37 -

Couche 3. Couche rseau

En rsum : responsable de lacheminement des donnes de


manire ce quelles arrivent la bonne adresse.

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

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 38 -

Couche 4. Couche transport

Elle est responsable du contrle du transport de bout


en bout travers le rseau. Elle assure les fonctions
d'adressage, de dcoupage et de rassemblage des
donnes.

La qualit de service (QoS) est souvent utilise pour


dcrire l'utilit de la couche transport.

La couche transport de lmetteur fragmente les


messages de donnes en paquets et la couche
transport du rcepteur reconstitue les messages en
dfragmentant les paquets dans le bon ordre.

Elle permet galement de multiplexer plusieurs flux


dinformations sur le mme support.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 39 -

Couche 4. Couche transport

En rsum : couche charnire entre le transport physique des


donnes et le systme dexploitation. Contrle du transport
dans tout le rseau.

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 -

Couche 5. Couche session

Premire couche oriente traitement. Elle permet


louverture et la fermeture dune session de travail
entre deux systmes distants.

Elle a pour rle la mise en place et le contrle du


dialogue entre les tches distantes : connexion,
gestion, dconnexion Elle assure la
synchronisation du dialogue entre les tches
distantes.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 41 -

Couche 5. Couche session

En rsum : contrle du dialogue entre les applications


distantes.

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.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 42 -

Couche 6. Couche prsentation

La couche prsentation assure trois fonctions


principales :
Le formatage des donnes (prsentation).
Le chiffrement des donnes.
La compression des donnes.

Permet de formater les donnes dans un format


comprhensible par les 2 systmes distants.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 43 -

Couche 6. Couche prsentation

En rsum : prsentation des donnes gres par la couche 7


sous un format comprhensible par lutilisateur.

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.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 44 -

Couche 7. Couche application

La couche application cre une interface directe avec


le reste du modle OSI par le biais d'applications
rseau normalises ou non : navigateur Web,
messagerie lectronique, ftp, telnet) ou une
interface indirecte par le biais d'applications
autonomes (traitement de texte, tableurs).

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 45 -

Couche 7. Couche application

En rsum : gre lexcution de lapplication lance.

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.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 46 -

Service, entit, protocole

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

RE223 : Introduction aux rseaux et Internet


- 47 -

pk/enseirb-matmeca/2016 v1.5

Service, entit, protocole

Exemples de services :
Connexion.
Echange de donnes.
Dconnexion.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 48 -

Service, entit, protocole

Une demande de service se fait par le biais d'une primitive.

4 primitives de service sont dfinies pour permettre un


utilisateur du service de sadresser une entit ou une entit
de rpondre un utilisateur de service :
Primitive de demande : REQUEST.
Primitive dindication : CONFIRM.
Primitive de rponse : INDICATION.
Primitives de confirmation : RESPONSE.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 49 -

Service, entit, protocole

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 50 -

Service, entit, protocole

Une entit de la couche n qui dsire utiliser un service de la


couche (n-1) par le biais d'une primitive doit prciser ce
service.

Elle le fait grce un identificateur unique appel point daccs


au service n-SAP (Service Access Point).

RE223 : Introduction aux rseaux et Internet


- 51 -

pk/enseirb-matmeca/2016 v1.5

Service, entit, protocole

Jargon du modle OSI :

n-SDU (Service Data Unit) : donnes de service de la couche n.


n-PCI (Protocol Control Information) : information de la couche n.
n-PDU (Protocol Data Unit) : unit de donnes de la couche n.

(n+1)-PDU = n-SDU
n-PDU = n-PCI + n-SDU
n-PDU = (n-1)-SDU

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 52 -

Service, entit, protocole

Une des consquence de cette structuration est :


Lencapsulation des donnes lmission.
La dsencapsulation des donnes la rception.

Les donnes de contrle dun protocole ne doivent pas tre trop


volumineuses par rapport au donnes utiles : cest le rendement
du protocole !

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 53 -

Encapsulation des donnes

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 54 -

Dsencapsulation des donnes

RE223 : Introduction aux rseaux et Internet


- 55 -

pk/enseirb-matmeca/2016 v1.5

Exemple de transmission de donnes


Transmission
message m

Rception
couche 7

Interface 6/7

H : Header (entte)
T : Trailer (fin)

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 56 -

Exemple de transmission de donnes


Transmission
message m

Rception
couche 7

Interface 6/7

message M

RE223 : Introduction aux rseaux et Internet


- 57 -

pk/enseirb-matmeca/2016 v1.5

Exemple de transmission de donnes


Transmission
message m

Rception
couche 7

Interface 6/7

message M
Interface 5/6

message M

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 58 -

Exemple de transmission de donnes


Transmission
message m

Rception
couche 7

Interface 6/7

message M
Interface 5/6

message M
H4

M1

Fragmentation

H4

M2

RE223 : Introduction aux rseaux et Internet


- 59 -

pk/enseirb-matmeca/2016 v1.5

Exemple de transmission de donnes


Transmission
message m

Rception
couche 7

Interface 6/7

message M
Interface 5/6

H3

message M
H4

M1

H4

M1

H3

H4

M2

H4

M2

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 60 -

Exemple de transmission de donnes


Transmission
message m

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

RE223 : Introduction aux rseaux et Internet


- 61 -

pk/enseirb-matmeca/2016 v1.5

Exemple de transmission de donnes


Transmission
message m

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

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 62 -

Exemple de transmission de donnes


Transmission

Protocole de couche 2

Rception

H2

H3

H4

M1

T2

H2

H3

H4

M2

T2

Protocole de couche 1

Support physique

RE223 : Introduction aux rseaux et Internet


- 63 -

pk/enseirb-matmeca/2016 v1.5

Exemple de transmission de donnes


Transmission

Rception

Protocole de couche 3

Protocole de couche 2

H2

H3

H4

M1

H3

H4

M1

T2

H2

Protocole de couche 1

Support physique

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 64 -

H3

H4

M2

H3

H4

M2

T2

Exemple de transmission de donnes


Transmission

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

RE223 : Introduction aux rseaux et Internet


- 65 -

pk/enseirb-matmeca/2016 v1.5

Exemple de transmission de donnes


Transmission

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

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

H4

M2

H3

H4

M2

H3

H4

M2

Dfragmentation

- 66 -

T2

Exemple de transmission de donnes


Transmission

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

RE223 : Introduction aux rseaux et Internet


- 67 -

pk/enseirb-matmeca/2016 v1.5

Exemple de transmission de donnes


Transmission

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

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 68 -

H4

M2

H3

H4

M2

H3

H4

M2

T2

PARTIE 4
INTRODUCTION A INTERNET

RE223 : Introduction aux rseaux et Internet


- 69 -

pk/enseirb-matmeca/2016 v1.5

Historique

En 1969, le DoD (dpartement amricain de la dfense) voulait


relier ses centres critiques par un rseau non centralis et
adaptatif : ARPANET. Premire connexion le 21 novembre
1969.

5 dcembre 1969 : ARPANET = 4 machines.

1972 : prsentation dARPANET au public.

1973 : mise au point des protocoles TCP/IP.

1980 : adoption de TCP/IP.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 70 -

Historique

1983 : sparation dARPANET en deux : (MILNET (rseau


militaire) et ARPANET (rseau de recherche).

1985-86 : cration du rseau NSFNET par les grandes


administrations amricaines

1990 : fusion de NSFNET + ARPANET = naissance dInternet.

1992 : le CERN (Centre Europen de Recherche Nuclaire)


propose le projet World Wide Web qui fournit un aspect
conviviale Internet. Il nest pas ncessaire d'avoir des
comptences en informatique pour utiliser Internet.

RE223 : Introduction aux rseaux et Internet


- 71 -

pk/enseirb-matmeca/2016 v1.5

Historique

1992 : naissance du rseau de la recherche franaise


RENATER.

1995 : le grand public franais dcouvre Internet.

En 2006, Internet a 37 ans. Il compte alors des millions de


machines (dont plus de 6,5 millions de serveurs qui hbergent
plus de 1 milliard de pages Web) et 939 millions dinternautes
(14,6 % de taux de pntration dans le monde).

Aujourd'hui : Internet a envahi notre quotidien !

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 72 -

Historique
NFSNET
1990
MILNET

ARPANET

Sites
militaires
1983

Ddi
la
recherche

ARPANET

TCP/IP
1985
WWW

1989

1969

CERN 1er serveur Web


1993 Xmosac 1er navigateur Web

RE223 : Introduction aux rseaux et Internet


- 73 -

pk/enseirb-matmeca/2016 v1.5

Les poques

ARPANET : 1958-1986.

Internet, le rseau de la recherche : 1981-1992.

Internet grand public : 1992-2000.

Internet aujourdhui. Internet des objets IoT !

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 74 -

ARPANET

ARPANET a comme objectifs de concevoir un rseau


extensible :
Avec les quipements disponibles.
Ne requrant pas de centre de contrle central.
Dcentralis et redondant.
O linformation circule sous forme de paquets (packet
switching).
O ces paquets sont achemins par stockage et
retransmission (store & forward).

RE223 : Introduction aux rseaux et Internet


- 75 -

pk/enseirb-matmeca/2016 v1.5

ARPANET

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 76 -

Les premiers protocoles

Dbut des RFC (Crocker, avril 1969) :


Request For Comments : prsentation ouverte et accessible
dun problme technique, dune solution ou dune norme
technique.
Le nom est rest et les RFC rassemblent toujours les
dcisions techniques prises au cours du dveloppement
dInternet (http://www.faqs.org/rfcs).

Les premiers protocoles (1969) :


File Transfer Protocol (ftp).
Telnet.

Le courrier lectronique (Tomlinson, 1972).

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 77 -

DARPANET Internet

ARPANET est rserv aux universits et aux centres de


recherche impliqus dans des projets militaires.

Au milieu des annes 1980, la National Science Foundation


prend la suite dARPANET pour la gestion du rseau non
militaire. Pour cela, elle cre le rseau NFSNET (1986).

Vers la fin des annes 1980, ARPANET est ferm. Dornavant,


cest Internet (et ses protocoles) !

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 78 -

NFSnet

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 79 -

Internet devient grand public (1992-2002)

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 80 -

Dbut de la diffusion dinformation

Apparition du protocole Gopher (1991).

Apparition du Web (1992) :


Xmosac (1993).
Netscape (1994).
IE (1995).

Les premiers sites Web

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 81 -

Dbut du commerce lectronique

Amazon, eBay (1995).


Google (1997).
PayPal (1998).

Autres dveloppements dimportance :


Peer to Peer (P2P).
Napster (1999).

Netscape propose le protocole SSL (Secure Socket Layer)


(1994) pour des changes scuriss par chiffrement pour le
paiement lectronique.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 82 -

Internet aujourdhui

Consultation de pages Web et recherche d'information.


Transfert de fichiers (ftp).
Messagerie lectronique (email).
Forums de discussion en diffr (news) et en direct (chat).
visioconfrence, visioenseignement, tlphonie et voix sur IP
(VoIP)
Accs distance ( des donnes sur des serveurs distants),
Gopher (accs et navigation dans des BD mondiales l'aide de
catalogues)...
Accs des informations multimdia et jeux en rseau
(tlvision, radio, films la demande, change de fichiers
numriques).
Contrle distance, tlmdecine
Internet des objets !
RE223 : Introduction aux rseaux et Internet

pk/enseirb-matmeca/2016 v1.5

- 83 -

PARTIE 5
CONNECTIVITE INTERNET.
INTERNET EMBARQUE

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 84 -

Connectivit Internet

La connectivit Internet permet de raccorder tout systme


lectronique (systme embarqu) au rseau Internet. On parle
aussi de connectivit IP.

Ajouter une connectivit IP un systme lectronique permet de


le contrler distance de nimporte o dans le monde :
Par une application rseau.
Plus simplement par le Web en utilisant un navigateur
Internet.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 85 -

Connectivit Internet

La connectivit IP demande dembarquer une suite de protocoles


Internet sur le systme lectronique pour pouvoir tre mise en
uvre.

On parle alors de protocoles Internet embarqus (sur le systme)


ou plus simplement d'Internet embarqu.

La suite des protocoles IP embarquer est plus ou moins


importante en fonction du service implanter :
Contrle par une application rseau spcifique (API sockets).
Contrle par le web.
Envoi demails.
RE223 : Introduction aux rseaux et 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

Email

10,000
1,000
100

1980

1985

1990

1995

2000

2005

2010

2020

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 87 -

Connectivit Internet

LInternet embarqu a explos depuis quelques annes.

Il est aussi important que la connectivit IP se fasse par une liaison sans fil
avec lobjet contrler

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 88 -

PARTIE 5
DINTERNET EMBARQUE A LINTERNET DES
OBJETS

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 89 -

Objets connects. Internet des objets

Connecter un systme lectronique embarqu Internet que lon


appellera objet suppose quil embarque Internet.

Chaque objet connect embarque donc une pile TCP/UDP/IP et


possde aussi une adresse IP (publique ou prive).

Internet embarqu permet ainsi de connecter Internet tout type


dobjets :
Chaudire, rfrigrateur, camra.

Ces objets connects Internet forment lInternet des objets !


RE223 : Introduction aux rseaux et Internet

pk/enseirb-matmeca/2016 v1.5

- 90 -

Objets connects. Internet des objets

LInternet des objets (connects) peut se dfinir comme :


des objets ayant des identits et des personnalits virtuelles,
oprant dans des espaces intelligents et utilisant des interfaces
intelligentes pour se connecter et communiquer au sein de
contextes dusages varis.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 91 -

Objets connects. Internet des objets

LInternet des objets connat une croissance exponentielle et


cest un domaine dactivit pourvoyeur demplois :

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 92 -

Objets connects. Internet des objets

LInternet des objets, cest :


80 milliards dobjets connects en 2020 :
85 % dobjets grand public.
11 % de terminaux mobiles (smartphones).
4 % de M2M (Machine to Machine).
11,5 milliards deuros de CA sur 10 ans.
Domaines o ils se dvelopperont :
Sant.
Scurit.
Maison connecte.
Mobilit.
RE223 : Introduction aux rseaux et Internet

pk/enseirb-matmeca/2016 v1.5

- 93 -

Objets connects. Internet des objets

Il y a deux champs dapplication importants dans lInternet des


objets :
Domotique : contrle ( distance) des quipements
lectroniques dans une maison.
M2M : contrle et dialogue entre machines sans intervention
humaine.

Il y a deux lments importants dans lInternet des objets :


La box ADSL : connexion permanente Internet.
Le smartphone : application user centric de contrle
distance.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 94 -

Objets connects. Internet des objets

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 95 -

Objets connects. Internet des objets

Il existe des offres commerciales de la part des FAI :


Home by SFR : offre domotique de vidosurveillance.
Infrieur 20 par mois.
Homelive Orange : offre domotique de vidosurveillance.
Infrieur 10 par mois.

Les offres commerciales devraient tre bties autour du principe


dun abonnement mensuel.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 96 -

Objets connects. Internet des objets

En conclusion, vouloir dvelopper un objet connect demande


dy intgrer une connectivit Internet et de dvelopper des
applications Internet client/serveur.

Ce module sinscrit donc pleinement dans ce contexte pour :


Comprendre les protocoles essentiels dInternet.
Dvelopper des applications Internet client/serveur avec
lAPI sockets.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 97 -

PARTIE 6
LES NORMES ETHERNET IEEE802.3

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 98 -

LES BASES : NORME 10BASE5

RE223 : Introduction aux rseaux et Internet


- 99 -

pk/enseirb-matmeca/2016 v1.5

Historique

Origine : systme ALOHA exploit Hawa en 1970 bas sur


la mthode daccs CSMA (Carrier Sense Multiple Access).

Ethernet V1 (1976) : conu et mis en uvre par Xerox :


Dbit : 3 Mb/s (Experimental Ethernet).
Mdium : coaxial de 1000 m.
Nombre maximum de stations : 100.

Ethernet V2 (1980) DIX (Digital - Intel - Xerox) :


Dbit : 10 Mb/s.
Base de travail la norme IEEE 802.3.
RE223 : Introduction aux rseaux et Internet

pk/enseirb-matmeca/2016 v1.5

- 100 -

Historique de la norme IEEE 802.3

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)

RE223 : Introduction aux rseaux et Internet


- 101 -

pk/enseirb-matmeca/2016 v1.5

Introduction

Cette partie est base sur la norme de 1985 qui conditionne les
volutions dEthernet.

Norme de 1985 (10Base5) : cble coaxial pais.

Ethernet = rseau local.

Ethernet est bas sur la mthode d 'accs CSMA/CD :


CSMA : Carrier Sense Multiple Access (accs multiple
avec coute de la porteuse).
CD
: Collision Detection (dtection de collision).

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 102 -

Introduction

Ce qui est pris en charge :


Simple, faible cot.
Peu de fonctions optionnelles.
Pas de priorit.
On ne peut pas faire taire son voisin.
Dbit : 10 Mb/s.

RE223 : Introduction aux rseaux et Internet


- 103 -

pk/enseirb-matmeca/2016 v1.5

Introduction

Ce qui nest pas pris en charge :


Full duplex.
Contrle d'erreur.
Scurit et confidentialit.
Vitesse variable (auto-ngociation).
Priorit.
Protection contre un utilisateur malveillant.
Dterminisme (capacit de borner en temps les
transmissions de donnes).

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

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

quipement raccord sur ce cble par un transceiver :


transmitter + receiver = transceiver

Un quipement Ethernet a une adresse unique au monde


(adresse Ethernet ou adresse MAC (Media Access Control).
RE223 : Introduction aux rseaux et Internet
- 105 -

pk/enseirb-matmeca/2016 v1.5

Principes

Sur le cble circulent des trames :


Suites d'lments binaires.
un instant donn, une seule trame circule sur le cble.
Pas de multiplexage en frquence.
Pas de full duplex.

La trame mise par un quipement est reue par tous les


transceivers du segment Ethernet.

La trame contient l'adresse de l'metteur et du destinataire.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 106 -

Principes

Un coupleur est l'coute de la totalit des trames qui circulent


sur le cble :
Si une trame lui est destine :
Adresse destinataire = sa propre adresse physique.
Il la prend, la traite et la dlivre la couche suprieure.
Sinon, le coupleur ne fait rien.

RE223 : Introduction aux rseaux et Internet


- 107 -

pk/enseirb-matmeca/2016 v1.5

Principes

Une station qui veut mettre :


Regarde si le cble est libre.
Si oui, elle envoie sa trame.
Si non, elle attend que le cble soit libre.
Si 2 stations mettent ensemble, il y a collision :
Les 2 trames sont inexploitables.
Les 2 stations dtectent la collision, elles r-mettront leur
trame ultrieurement.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 108 -

Principes

Ethernet est donc un rseau :


Probabiliste.
Sans chef.
Egalitaire.

RE223 : Introduction aux rseaux et Internet


- 109 -

pk/enseirb-matmeca/2016 v1.5

Format dune trame IEEE 802.3

Prambule SFD

Taille du champs en octet


6
6
2
@ DEST

@ SRC

Lg DATA

de 46 1500 4
DATA

Dbit d'mission/rception : 10 Mb/s :


10 bits par s.
Longueur des trames (avec prambule et SFD) :
26 octets rservs au protocole.
Longueur minimale : 72 octets (64+8).
Longueur maximale : 1526 octets (1518+8).
RE223 : Introduction aux rseaux et Internet

pk/enseirb-matmeca/2016 v1.5

- 110 -

FCS

Format dune trame IEEE 802.3

Espace intertrame minimal de 9.6 s :


Espace intertrame = 96 bits time soit 12 octets.
Utilisation du rseau dans un dlai relativement faible.
Une machine ne peut pas mettre toutes ses trames en mme
temps : seulement les unes la suite des autres.

Cet espace intertrame permet :


Aux circuits lectroniques de rcuprer ltat de repos du
mdium.
Aux autres machines de reprendre la main ce moment l.

RE223 : Introduction aux rseaux et Internet


- 111 -

pk/enseirb-matmeca/2016 v1.5

Trame IEEE 802.3 : prambule

Prambule SFD

Taille du champs en octet


6
6
2
@ DEST

@ SRC

de 46 1500

Lg DATA

DATA

4
FCS

Taille : 7 octets identiques (10101010). Simple suite continue


de bit 0 et de bit 1.
Assez long pour servir la synchronisation des PLL.
Pas de fin de trame (pas d'chappement).

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 112 -

Trame IEEE 802.3 : SFD

Prambule SFD

Taille du champs en octet


6
6
2
@ DEST

@ SRC

Lg DATA

e 46 1500 4
DATA

FCS

SFD : Start Frame Delimitor.


Marque le dbut de la trame.
Taille : 1 octet.
SFD = 10101011

RE223 : Introduction aux rseaux et Internet


- 113 -

pk/enseirb-matmeca/2016 v1.5

Trame IEEE 802.3 : adresses

Prambule SFD

Taille du champs en octet


6
6
2
@ DEST

@ SRC

de 46 1500

Lg DATA

DATA

4
FCS

Dtails dans la RFC 1700.


Adresse IEEE 802.3 ou Ethernet : 48 bits (6 octets).
Syntaxe : 08:00:20:05:B3:A7 ou 8:0:20:5:B3:A7
Cisco 00:00:0C:XX:XX:XX
HP 08:00:09:XX:XX:XX

Sun 08:00:20:XX:XX:XX

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 114 -

Trame IEEE 802.3 : adresses

Prambule SFD

Taille du champs en octet


6
6
2
@ DEST

@ SRC

de 46 1500

DATA

FCS

Lg DATA

L'adresse destinataire peut donc reprsenter :


L'adresse physique d'une machine locale.
Toutes les machines du rseau local (broadcast).
L'adresse source reprsente seulement :
L'adresse physique de la station mettrice.

RE223 : Introduction aux rseaux et Internet


- 115 -

pk/enseirb-matmeca/2016 v1.5

Trame IEEE 802.3 : longueur

Prambule SFD

Taille du champs en octet


6
6
2
@ DEST

@ SRC

de 46 1500

Lg DATA

DATA

4
FCS

Taille : 2 octets (valeur 1500).


Donne le nombre d'octets utilis par les donnes dans l trame.
Padding : Ajout d'octets sans signification pour envoyer moins
de 46 octets de donnes.
Longueur minimale de la trame : 72 octets (64+8).

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 116 -

Trame Ethernet : type donnes

Prambule SFD

Taille du champs en octet


6
6
2
@ DEST

@ SRC

TYPE Data

de 46 1500
DATA

4
FCS

Type de donnes transportes : 2 octets.

RE223 : Introduction aux rseaux et Internet


- 117 -

pk/enseirb-matmeca/2016 v1.5

Trame IEEE 802.3 : FCS

Prambule SFD

Taille du champs en octet


6
6
2
@ DEST

@ SRC

Lg DATA

de 46 1500
DATA

4
FCS

FCS : Frame Check Sequence.


Contrle la rception de la trame par calcul :
Code de Redondance Cyclique (CRC) calcul sur les
champs destination, source, longueur et donnes.
Taille de 4 octets.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 118 -

Sous couche MAC : transmission

La sous couche MAC :


Ajoute prambule, SFD, padding si ncessaire.
Assemble les champs : @source, @destinataire, taille,
donnes et padding.
Calcule le FCS et l'ajoute la trame.
Transmet la trame la couche physique :
Si "coute porteuse" faux depuis 9.6 s au moins, la
transmission s'effectue.
LLC

MAC
Physique

MAC : Media Access Control


LLC : Logical Link Control

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 119 -

Sous couche MAC : rception

La sous couche MAC :


Reoit les bits qui circulent sur le cble.
Les limites des trames sont indiques par le signal "coute
porteuse" .
Ote le prambule et le SFD.
Analyse l'adresse du destinataire dans la trame.

Si l'adresse de destination de la trame est diffrente de l'adresse


de la station alors poubelle.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 120 -

Sous couche MAC : rception

Si l'adresse destination est la station :


Elle dcoupe la suite de bits reus en octet, puis en champs.
Transmet la sous couche LLC les champs :
@destination, @source, taille et donnes .
Calcule le FCS et indique une erreur la couche LLC si :
FCS incorrect.
Trame trop grande : > 1526 octets.
Trame trop petite : < 72 octets.
Longueur de la trame n'est pas un nombre entier
d'octets (erreur d'alignement).

RE223 : Introduction aux rseaux et Internet


- 121 -

pk/enseirb-matmeca/2016 v1.5

Couche physique

Fonctions de la couche physique :


Permet de recevoir et d'mettre des suites d'lments
binaires.
Dtecte la transmission par une autre station :
Pendant que la station n'met pas : signal "coute
porteuse".
Pendant que la station met : signal "dtection de
collision".

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 122 -

Collisions : problmatique

Une station regarde si le cble est libre avant d'mettre (signal


"coute porteuse").

Mais le dlai de propagation d'une trame sur le rseau n'est pas


nul : une station peut mettre alors qu'une autre a dj
commenc mettre.

Quand ces 2 trames mises presque simultanment se


croisent , il y a collision.

RE223 : Introduction aux rseaux et Internet


- 123 -

pk/enseirb-matmeca/2016 v1.5

Collision : exemple
A

coute porteuse faux


A commence mettre

coute porteuse faux


B commence mettre

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 124 -

Collision : exemple
A

(1) Propagation du signal mis par A

(2) mission de B
(3) Collision

(4) Propagation du signal en collision

(5) Rception du signal en collision par A


(6) Arrt d'mission de A
Temps maximum coul = Aller + Retour 50 s temps d'mission de 63
octets
RE223 : Introduction aux rseaux et Internet
pk/enseirb-matmeca/2016 v1.5

- 125 -

Collision : solutions

Temps aller/retour = RTD (Round Trip Delay) fix 50 s


63 octets.

On fixe un Slot Time = 51.2 s (64 octets) : une collision ne


peut se produire que durant ce temps ST.
La station mettrice ne peut pas se dconnecter avant la fin
du Slot Time pour avoir la certitude que la transmission se
soit passe sans collision.

Pour respecter la valeur RTD, on impose des limitations :


Longueur entre stations les plus distantes.
Nombre de segments.
RE223 : Introduction aux rseaux et Internet

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.

Donc toute trame reue de longueur < 72 octets est rejete.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 127 -

Collision : r-mission

La station attend = R x 51,2 s = R x Slot Time .

R entier, 0 R < 2K avec K = min (n,10)


n = nombre de r-missions dj faites (modulo 10).

Elle met nouveau, 15 r-missions maximum.

Si la 15me r-mission choue, la station est dconnecte.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 128 -

Diffrences entre 802.3 et Ethernet

Ethernet :
Pas de sous couche LLC.

LLC
MAC
Physique

Champ Type des trames Ethernet :


2 octets.
Champs Type dfinis (protocole de niveau 3 utilis) :
0x0800 : IP.
0x0806 : ARP.

RE223 : Introduction aux rseaux et Internet


- 129 -

pk/enseirb-matmeca/2016 v1.5

Conclusion

Ethernet/IEEE 802.3 est une technologie prouve.

C'est le protocole de rseau local de loin le plus rpandu.

Les problmes qui restent sont connus :


Scurit.
Confidentialit.
Priorit.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 130 -

ETHERNET 10 Mb/s

RE223 : Introduction aux rseaux et Internet


- 131 -

pk/enseirb-matmeca/2016 v1.5

10Base5 : cble coaxial pais

10 comme 10 Mb/s, Base = Baseband, 5 = 500 m.

Coaxial 50 . 10 mm. Gros Ethernet (thick).

Longueur maximale : 500 mtres.

Topologie bus avec transceivers.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 132 -

10Base5 : cble coaxial pais

Plus long chemin :


3 segments avec machines.
2 segments de liaison sans machine.
4 rpteurs.
2.5 km si rseau tout en coaxial.

Rpteur

Rpteur

Rpteur

Rpteur.

Segment Coaxial Segment Liaison Segment Coaxial Segment Liaison Segment Coaxial

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 133 -

10Base5 : cble coaxial pais

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 .

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 134 -

10Base5 : cble coaxial pais

Cble transceiver :
Appel AUI (Attachment Unit Interface).
Relie le transceiver et le coupleur Ethernet de la station

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 135 -

10Base5 : cble coaxial pais

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.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 136 -

10Base5 : cble coaxial pais

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.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 137 -

10Base5 : cble coaxial pais

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 138 -

10Base5 : cble coaxial pais

RE223 : Introduction aux rseaux et Internet


- 139 -

pk/enseirb-matmeca/2016 v1.5

10Base2 : cble coaxial fin

Coaxial 50 . 4.6 mm. Ethernet fin (thin).

Longueur maximale : 185m (10Base2 200 m).

Topologie en bus avec 30 transceivers au maximum espacs de


0.5 m minimum.

Connecteur BNC.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 140 -

10Base2 : cble coaxial fin

Avantages :
Moins cher.
Plus maniable que 10Base5.

Inconvnients :
Si on enlve un transceiver (volontairement ou
involontairement), on arrte tout le rseau.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 141 -

10Base2 : cble coaxial fin

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 142 -

10Base2 : cble coaxial fin

RE223 : Introduction aux rseaux et Internet


- 143 -

pk/enseirb-matmeca/2016 v1.5

10BaseT : paires torsades

10BaseT (Twisted).

Cbles 2 paires torsades de 100 non blinds (UTP).

Topologie physique en toile (liaison point point).

Longueur maximale station/rpteur : 100 m.

Connecteur RJ45 2 paires (mission/rception).

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 144 -

10BaseT : paires torsades

Avantages :
Cble universel utilis pour de plus hauts dbits Ethernet
(100BaseT, 1000BaseT).
Insensible aux erreurs de manipulation des utilisateurs.

Inconvnients :
Limitation en distance.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 145 -

10BaseT : paires torsades

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 146 -

10BaseT : paires torsades

RE223 : Introduction aux rseaux et Internet


- 147 -

pk/enseirb-matmeca/2016 v1.5

10Base? : bilan

Le coaxial gros et fin sont obsoltes mais sont la base de la


thorie de la technologie Ethernet.

Le prsent est la paire torsade.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 148 -

PARTIE 7
LES PROTOCOLES DINTERNET

RE223 : Introduction aux rseaux et Internet


- 149 -

pk/enseirb-matmeca/2016 v1.5

Protocoles Internet et modle OSI


Machine A

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

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

www

- 150 -

Protocoles Internet et modle OSI

Chaque machine aux extrmits implmente la pile complte de


protocoles TCP/UDP/IP.

Les protocoles ICMP, ARP et RARP sont des protocoles de


gestion du bon fonctionnement du rseau Internet.

Un routeur nimplmente quIP et est transparent aux donnes


changes par lutilisateur.

Les donnes sont donc traites aux extrmits lmission et


la rception.

RE223 : Introduction aux rseaux et Internet


- 151 -

pk/enseirb-matmeca/2016 v1.5

Interconnexion

L'interconnexion permet de faire transiter des informations


depuis un rseau vers un autre rseau par des nuds spcialiss
appels passerelles (gateway) ou routeurs (router).

Les passerelles/routeurs possdent une connexion sur chacun


des rseaux.

Rseau A

Rseau B

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 152 -

Interconnexion

Le rle de la passerelle/routeur est de transfrer sur le rseau B


les donnes circulant sur le rseau A et destines au rseau B et
inversement.

Rseau A

Rseau B

RE223 : Introduction aux rseaux et Internet


- 153 -

pk/enseirb-matmeca/2016 v1.5

Interconnexion

P1 transfre sur le rseau B les donnes circulant sur le rseau


A et destines aux rseaux B et C.

P1 doit avoir connaissance de la topologie du rseau savoir


que C est accessible depuis le rseau B.

Le routage n'est pas effectu sur la base de la machine


destinataire mais sur la base du rseau destinataire.

Rseau A

P1

Rseau B

P2

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 154 -

Rseau C

Interconnexion

A l'intrieur de chaque rseau, les nuds utilisent la


technologie spcifique de leur rseau (Ethernet, fibre
optique).

Le logiciel d'interconnexion Internet (couche rseau) encapsule


ces spcificits et offre un service commun toutes les couches
suprieures faisant apparatre l'ensemble de ces rseaux
disparates comme un seul et unique rseau unifi.

RE223 : Introduction aux rseaux et Internet


- 155 -

pk/enseirb-matmeca/2016 v1.5

Interconnexion

Vue de lutilisateur du rseau Internet

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 156 -

Interconnexion

Vue relle du rseau Internet

RE223 : Introduction aux rseaux et Internet


- 157 -

pk/enseirb-matmeca/2016 v1.5

Services dInternet

Interoprabilit au niveau des applications.

Les utilisateurs invoquent les applications Internet sans avoir


besoin de connatre les technologies dInternet ni son
architecture.

Quelques services populaires :


Courrier lectronique : smtp.
Transfert de fichiers : tfp, tftp.
Web : www.
Accs des machines distantes : telnet, ssh.

RE223 : Introduction aux rseaux et Internet

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

IP pour Internet Protocol (RFC 791).

IP correspond au niveau 3 du modle OSI.

IP est au dessus de tout. Cest un protocole de convergence. Il


fonctionne sur tout :

Ethernet : RFC 894.


ATM (Asynchronous Transfer Protocol) : RFC 1483, RFC 1577.
Liaison srie RS232 : SLIP (RFC 1055), PPP (RFC 1353).

IP est un protocole sans connexion et non fiable vis--vis des


donnes transportes.
RE223 : Introduction aux rseaux et Internet

pk/enseirb-matmeca/2016 v1.5

- 160 -

Adressage IP

Ladressage IP fournit un service de communication universel


permettant toute machine de communiquer avec toute autre
machine.

Une machine doit tre accessible par d'autres machines.

Une machine doit pouvoir tre identifie par :


Un nom symbolique (www.enseirb-matmeca.fr).
Une adresse qui doit tre un identificateur universel de la
machine.
Une route prcisant comment la machine peut tre atteinte.

RE223 : Introduction aux rseaux et Internet


- 161 -

pk/enseirb-matmeca/2016 v1.5

Adressage IP

La solution est un adressage binaire compact assurant un


routage efficace (32 bits).

Adressage plat par opposition un adressage hirarchis


comme avec le Rseau Tlphonique Commut (RTC).

Utilisation de noms symboliques pour identifier de faon


humaine les machines (Domain Name Service).

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

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

Elle doit tre unique au monde (comme un numro de


tlphone RTC) :
Configure par logiciel.
Associe linterface rseau.
RE223 : Introduction aux rseaux et Internet
- 163 -

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

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

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 !

Attribution des adresses IP en France :


Classe A et B par le NIC (Network Information Center).
Classe C par le NIC et Renater.

RE223 : Introduction aux rseaux et Internet


- 165 -

pk/enseirb-matmeca/2016 v1.5

Adressage IP : classe A

7 bits pour le numro de rseau netid N :


1.0.0.0 126.0.0.0

24 bits pour le hostid H de la machine :


Environ 2543 machines possibles sur un rseau de classe A.

En France, il ny a pas de rseaux de classe A :


16.0.0.0 : MIT.
1

0 @rseau

24

@locale

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 166 -

Adressage IP : classe B

16 bits pour le numro de rseau netid N :


128.1.0.0 191.255.0.0

16 bits pour le hostid H de la machine :


Environ 2542 machines possibles sur un rseau de classe B.

Quasiment puis en France !

1 1

1 0

14

16

@rseau

@locale

RE223 : Introduction aux rseaux et Internet


- 167 -

pk/enseirb-matmeca/2016 v1.5

Adressage IP : classe C

24 bits pour le numro de rseau netid N :


192.0.1.0 223.255.255.0

8 bits pour le hostid H de la machine :


254 machines possibles sur un rseau de classe C.

1 1 1

1 1 0

21

@rseau

@locale

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 168 -

Adressage IP : classe D

Adresse de multicast pour une liaison point multipoint : un


metteur et plusieurs rcepteurs :
224 231.

Il ny a pas de structuration car utilis de faon ponctuelle sans


organisation grant la structuration.

1 1 1 1

1 1 1 0

28

@multicast

RE223 : Introduction aux rseaux et Internet


- 169 -

pk/enseirb-matmeca/2016 v1.5

Adressage IP : classe E

Rserv pour un usage futur :


239 254.

Il ny a pas de structuration car utilis de faon ponctuelle sans


organisation grant la structuration.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 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

RE223 : Introduction aux rseaux et Internet


- 171 -

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

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 172 -

Sous-rseau IP

Dcoupage dun rseau en entits plus petites :


Sous-rseau ou subnet.
Permet une meilleure structuration dun site.
Cest dcid par ladministrateur rseau.
Ladresse de sous-rseau est prleve sur la partie hostid.
La longueur est donne en bits par ladministrateur.
Tous les quipements doivent intgrer la notion de sousrseau.
Linterconnexion de sous-rseaux se fait par un routeur.
Hostid initial
Netid

Subnetid

Hostid effectif

RE223 : Introduction aux rseaux et Internet


- 173 -

pk/enseirb-matmeca/2016 v1.5

Sous-rseau IP

Exemple de dcoupage en 3 sous-rseaux avec numrotation


par le 3me octet :

190.30.2.0 sous-rseau 2

R1
190.30.1.0 sous-rseau 1

R2
190.30.3.0 sous-rseau 3

190.30.0.0 est ladresse rseau du site seule connue de


lextrieur.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 174 -

Sous-rseau IP

Le dcoupage en sous-rseaux est inconnu de lextrieur.

Lidentification dun sous-rseau passe par un subnet mask :


Bits netid 1.
Bits subnetid 1.
Bits hostid effectif 0.
Exemple : rseau de classe B 130.190.0.0 :
Subnet mask par dfaut : 255.255.0.0
Si un octet (octet 3) pour subnetid, le subnet mask est
255.255.255.0

RE223 : Introduction aux rseaux et Internet


- 175 -

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

LENSEIRB-MATMECA a une plage dadresse contige


partir de 147.210.18.0 pour 512-2 machines publiques au plus :
147.210.18.0 147.210.19.255 (147.210.18.0 est le sousrseau ENSEIRB- MATMECA dUB1, 147.210.19.255 est
le broadcast ENSEIRB-MATMECA).
RE223 : Introduction aux rseaux et Internet

pk/enseirb-matmeca/2016 v1.5

- 176 -

Sous-rseau IP

Pour 512-2 machines publiques au plus, le hostid effectif est


sur 9 bits. Donc pour le subnet mask, on a :
16 bits netid 1.
7 bits subnetid 1.
9 bits hostid effectif 0.
11111111.11111111.11111110.00000000 soit un subnet
mask de 255.255.254.0 pour lENSEIRB-MATMECA.

RE223 : Introduction aux rseaux et Internet


- 177 -

pk/enseirb-matmeca/2016 v1.5

Fonctions dIP

IP permet le transport de bout en bout de datagrammes IP.

Chaque datagramme IP contient :


Ladresse IP de lexpditeur.
Ladresse IP du destinataire.
Chaque contrleur rseau possde son adresse IP :
Commande : % ifconfig

Il faut donc connatre ladresse IP dune machine pour


communiquer avec elle.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 178 -

Fonctions dIP

IP est un mode non connect. Chaque datagramme IP est trait


indpendamment des autres.

IP est un mode non fiable sans garantie de bonne rception des


datagrammes IP. Cest un mode au mieux (best effort).

IP assure la routage des datagrammes IP : savoir o envoyer


chaque datagramme IP reu. Les algorithmes de routage sont
donc importants dans un rseau IP (non abord en dtail ici)

RE223 : Introduction aux rseaux et Internet


- 179 -

pk/enseirb-matmeca/2016 v1.5

Fonctions dIP

Le routage est le processus permettant un datagramme IP


dtre achemin vers le destinataire lorsque celui-ci nest pas
sur le mme rseau physique que lmetteur.

Le chemin parcouru est le rsultat du processus de routage qui


effectue les choix ncessaires afin dacheminer le datagramme.

Les routeurs forment une structure cooprative de telle manire


quun datagramme IP transite de routeur en routeur jusqu ce
que lun dentre eux le dlivre son destinataire.

Un routeur possde deux ou plusieurs connexions rseau tandis


quune machine possde gnralement quune seule connexion.
RE223 : Introduction aux rseaux et Internet

pk/enseirb-matmeca/2016 v1.5

- 180 -

Fonctions dIP

Les tables de routage IP donnent seulement les adresses rseau


et non pas les adresses de machines.

Une table de routage contient des couples (R, P) o R est


ladresse IP dun Rseau destination et o P est ladresse IP de
la Passerelle correspondant au prochain saut dans le
cheminement vers le rseau destinataire.

La passerelle ne connat pas le chemin complet pour atteindre


la destination.

RE223 : Introduction aux rseaux et Internet


- 181 -

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

Pour atteindre les


machines du rseau

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.

Un rseau avec un medium particulier qui vhicule des


datagrammes IP possde un MTU (Maximum Transfer Unit).
Le MTU pour Ethernet est de 1500+18 octets par exemple.

Cest la machine destinataire qui rassemble les fragments


gnrs dans le rseau.

RE223 : Introduction aux rseaux et Internet


- 183 -

pk/enseirb-matmeca/2016 v1.5

Fonctions dIP
Rseau 1
MTU=1500

R1

Donnes 1400 octets

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

EF1 600 octets

EF1 600 octets

EF2 600 octets

EF2 600 octets

EF3 200 oct.

EF3 200 oct.

Entte Fragment : M=0; dpl=1200


Entte Fragment : M=1; dpl=600
Entte Fragment : M=1; dpl=0

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

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

RE223 : Introduction aux rseaux et Internet


- 185 -

pk/enseirb-matmeca/2016 v1.5

Datagramme IP

Un datagramme possde :
Une entte de 20 octets.
Des donnes.

Entte IP

Donnes
Datagramme IP

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 186 -

Datagramme IP
Entte IP

Donnes
Datagramme IP

RE223 : Introduction aux rseaux et Internet


- 187 -

pk/enseirb-matmeca/2016 v1.5

Datagramme IP

Vers : version du protocole. Actuellement 4 pour IPv4.

IHL : Internet Header Length :


Taille de lentte IP en multiple de 4 octets. Ici 5.
Une entte dun datagramme IP commence donc par la
valeur 0x45 !

TOS : Type Of Service :


Dfinition dun qualit de service QoS (Quality of Service).
Utilis pour la Voix sur IP (VoIP).
QoS comme : low delay, high troughput
RE223 : Introduction aux rseaux et Internet

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.

TTL : Time To Live :


Dure de vie dun datagramme IP en nombre de sauts.
Dcrment de 1 chaque routeur travers.
Si TTL=0 alors le datagramme IP est dtruit.
Evite les datagrammes IP fantmes dans des boucles de
routage..

RE223 : Introduction aux rseaux et Internet


- 189 -

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.

Dmultiplexage en rception du datagramme IP et traitement


par lentit suprieure (TCP, UDP, ICMP).

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 190 -

Datagramme IP

Champs lis la fragmentation IP :


ID : identification du datagramme IP :

Flags :

Numrotation faite par lmetteur pour identifier les fragments dun


mme datagramme.
001 : il y a encore des fragments.
000 : dernier fragment du datagramme IP.

FO : Fragment Offset :

Position du fragment dans le datagramme IP fragment en unit de 8


octets.
Premier fragment = 0.
Le destinataire doit rcuprer tous les fragments pour reconstruire le
datagramme. Si un fragment manque, tout le datagramme IP est jet.

RE223 : Introduction aux rseaux et Internet


- 191 -

pk/enseirb-matmeca/2016 v1.5

Datagramme IP

@ source : adresse IP de lexpditeur.

@ destination : adresse IP du destinataire.

Ce sont les adresses IP des 2 machines distantes qui changent


des donnes.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 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

ARP pour Address Resolution Protocol (RFC 826).


Entte Ethernet

Opration ARP

Opration ARP dans une trame Ethernet


0

16

Type de matriel
HLEN

24

Type de protocole

Opration
PLEN
@ matrielle metteur (octets 0-3)

@ matrielle metteur (octets 4,5)

@ IP metteur (octets 0,1)

@ IP metteur (octets 4,5)

@ matrielle cible (octets 0,1)

@ matrielle cible (octets 2,5)


@ IP cible (octets 0-3)
RE223 : Introduction aux rseaux et Internet
- 195 -

pk/enseirb-matmeca/2016 v1.5

ARP

Type de matriel = 1 pour Ethernet


Type de protocole = 0x0800 pour IP
HLEN = 6 octets pour Ethernet
PLEN = 4 octets pour IP
Opration = :
1 (requte ARP).
2 (rponse ARP).
3 (requte RARP).
4 (rponse RARP).

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 196 -

31

ARP

ARP permet de trouver ladresse matrielle (adresse physique


ou adresse MAC (Media Access Control) dune machine dun
rseau local en fonction de son adresse IP.

Ladresse IP est indpendante de ladresse matrielle.

Le couple (adresse physique, adresse IP) est stock dans une


table (cache) que lon peut consulter via la commande :
% arp a

RE223 : Introduction aux rseaux et Internet


- 197 -

pk/enseirb-matmeca/2016 v1.5

ARP

Une machine A veut envoyer un datagramme IP une machine


B sur un rseau Ethernet.

Elle connat son adresse IP mais pas son adresse physique ou


adresse Ethernet ici.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 198 -

ARP

A envoie une trame Ethernet de broadcast embarquant une


requte ARP qui demande ladresse Ethernet de B.
Adresse destinataire FF:FF:FF:FF:FF:FF en indiquant
ladresse IP de B.
Toutes les machines reoivent la requte.
Seule B rpond par une rponse ARP avec son adresse
Ethernet.

RE223 : Introduction aux rseaux et Internet


- 199 -

pk/enseirb-matmeca/2016 v1.5

ARP

Pour communiquer avec une machine, on a donc besoin jusqu


prsent :
@ IP source, @ IP destination.
@ physique source, @ physique destination.
Soit 2 couples de valeurs
Est-ce suffisant ?

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 200 -

RARP

RARP pour Reverse Address Resolution Protocol (RFC 903).

Il sagit de rcuprer ladresse IP en fonction de ladresse


physique.

RARP est utilis au dmarrage de certains quipements :


Station sans disque dur.
Systme embarqu.

Le format dune requte RARP est le mme que celui dARP.

RE223 : Introduction aux rseaux et Internet


- 201 -

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

ICMP pour Internet Control Message Protocol (RFC 792).

ICMP est un protocole de gestion du rseau IP.

Il est implant dans tous les quipements, routeurs inclus.

Un message ICMP est envoy soit par un quipement


destinataire ou soit par un routeur quand :
Il saperoit dun problme dans un datagramme IP.
Il y a un problme de rseau (changement dune table de
routage).
RE223 : Introduction aux rseaux et Internet
- 203 -

pk/enseirb-matmeca/2016 v1.5

ICMP

Un message ICMP ne peut pas engendrer un autre message


ICMP. Il ne demande aucune rponse.

Un message ICMP est contenu dans un datagramme IP (champ


Protocol gal 1 dans lentte IP).

Un message ICMP possde 3 champs communs : TYPE,


CODE, CHECKSUM
Entte IP

Message ICMP
Message ICMP dans un datagramme IP

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 204 -

ICMP

TYPE : 1 octet. Type de message.


CODE : 1 octet. Informations complmentaires.
CHECKSUM : 2 octets. Contrle.

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

RE223 : Introduction aux rseaux et Internet


- 205 -

pk/enseirb-matmeca/2016 v1.5

ICMP

Lorsquune passerelle met un message ICMP de type


destination inaccessible, le champ CODE dcrit la nature de
lerreur :

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

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 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

Il existe 2 protocoles de transport pour lchange de donnes


entre 2 machines :
TCP : Transport Control Protocol
Protocole en mode connect et fiable.
UDP : User Datagram Protocol
Protocole en mode non connect et non fiable.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 208 -

Couche transport

Dans les 2 cas, une application informatique est identifie par


un identificateur unique appel port (entier sur 16 bits).

Un numro de port identifie lapplication locale et un numro


de port identifie lapplication distante.

On appelle socket le couple de valeurs (@ IP, numro de port) :


(147.210.18.10, 23) = application serveur telnet sur la
machine distante 147.210.18.10.

La combinaison de 2 sockets identifie compltement lchange


de donnes UDP ou TCP entre 2 applications distantes.
RE223 : Introduction aux rseaux et Internet
- 209 -

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.

Il existe des numros de port rservs (well-known port) :

7
13
21
69
80

ECHO
DAYTIME
FTP
TFTP
WWW

Echo
Daytime
File transfert protocol control
Trivial File transfert protocol
World Wide Web

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 210 -

Couche transport

Le mode dchange de donnes est du type client/serveur :


Le client se voit attribuer un numro de port non affect
lev (32000).
Le serveur a un numro de port well-known.

Les numros de port rservs sont dfinis dans le fichier


/etc/services.

Sous Windows, la configuration rseau IP est emprunte


celle dUNIX :
C:\Windows\System32\drivers\etc\services

RE223 : Introduction aux rseaux et Internet


- 211 -

pk/enseirb-matmeca/2016 v1.5

Couche transport

Pour communiquer avec une machine, on a donc besoin :


@ IP source, @ IP destination.
@ physique source, @ physique destination.
Port source, port destination.
Soit 3 couples de valeurs

Sur ces 6 valeurs, seules les 3 valeurs destination seront


renseigner, les 3 valeurs source tant renseignes par lAPI de
programmation rseau

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 212 -

UDP

UDP pour User Datagram Protocol (RFC 768).

UDP est un mode de transport sans connexion, non fiable et


sans garantie qui utilise IP pour le transport.
Entte UDP

Donnes utilisateur
Datagramme UDP

RE223 : Introduction aux rseaux et Internet


- 213 -

pk/enseirb-matmeca/2016 v1.5

UDP

Source Port (16 bits) :


Port source.

Destination Port (16 bits) :


Port destination.

Length (16 bits) :


Longueur totale du datagramme UDP en octets.
Au plus 64 Ko.

Checksum (16 bits) :


Optionnel. 0. Sinon calcul sur le datagramme UDP (plus
12 octets comprenant les @IP source et destination).
RE223 : Introduction aux rseaux et Internet

pk/enseirb-matmeca/2016 v1.5

- 214 -

UDP

Lentte UDP fait 8 octets.

En rception, le port destination permet de savoir quelle


application rveiller pour traiter les donnes reues.

Un datagramme UDP est inclus dans le champ donnes dun


datagramme IP (encapsulation).

RE223 : Introduction aux rseaux et Internet


- 215 -

pk/enseirb-matmeca/2016 v1.5

UDP

UDP est un protocole de transport non fiable.

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.

TCP corrige ces dfauts au dtriment dun protocole plus lourd


et moins ractif.

Pour transmettre des donnes rapidement sur un rseau local,


UDP est prfrable TCP.
RE223 : Introduction aux rseaux et Internet

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

TCP pour Transmission Control Protocol (RFC 793).

TCP est un mode de transport avec connexion, fiable et avec


garantie qui utilise IP pour le transport.

Comme UDP, TCP nest pas utilis dans un routeur IP mais


dans les machines distantes.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 218 -

TCP

TCP permet un transport des donnes :


De bout en bout entre applications distantes.
En mode connect : phase de connexion, de transfert de
donnes, de libration.
Sans erreurs de transmission : contrle et retransmission si
ncessaire.
Sans perte de donnes : numrotation des octets mis.
Ordonn.
Systme dacquittement des octets bien reus.
Contrle de flux (par fentre glissante).
Full duplex.
RE223 : Introduction aux rseaux et Internet
- 219 -

pk/enseirb-matmeca/2016 v1.5

TCP

TCP traite les donnes utilisateur du niveau suprieur comme


un flux doctets non structur.

TCP dcoupe ce flux doctets en segments TCP :


Taille maximale dun segment TCP : 64 Ko.
La taille relle dpend du mdium utilis (MTU).

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 220 -

TCP

Un segment TCP est contenu dans le champs donnes dun


datagramme IP (encapsulation).

Des segments TCP sont dfinis pour :


Etablir la connexion.
Transfrer des donnes.
Fermer la connexion.
Grer la connexion (contrle de flux).

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 221 -

Efficacit dun transfert

Mcanisme de transfert Send and Wait. On transmet un


segment puis on attend son acquittement avant de transmettre le
suivant.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 222 -

Efficacit dun transfert


Rseau

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

RE223 : Introduction aux rseaux et Internet


- 223 -

pk/enseirb-matmeca/2016 v1.5

Efficacit dun transfert


Source

Rseau

Destination

Emet SEG 1
Tempo. arme

SEG 1 pas reu


ACK 1 non envoy

ACK 1 pas reu


Tempo. chue
Rmission de SEG 1
Reoit SEG 1
Emet ACK 1
Reoit ACK 1
Emet SEG 2

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 224 -

Efficacit dun transfert

Si lon na pas dacquittement larrive chance du timer,


on retransmet et on attend de nouveau.

Le rseau est trs mal exploit car il nest utilis que pendant la
transmission.

On introduit la notion de fentre danticipation ou fentre


glissante pour plus defficacit (sliding window).

RE223 : Introduction aux rseaux et Internet


- 225 -

pk/enseirb-matmeca/2016 v1.5

Efficacit dun transfert

Mcanisme de la fentre glissante :

1 2 3 4 5 6 7 8 9 10 11 . . .

Lmetteur peut envoyer au plus 3 segments avant de recevoir


un acquittement (fentre de 3 segments). Avec larrive de
lacquittement du segment 1, la fentre glisse de 1 (segment)
vers la droite :

1 2 3 4 5 6 7 8 9 10 11 . . .
Glissement de 1

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 226 -

Efficacit dun transfert

Si la taille de la fentre est suffisante, il ny a pas de blocage


Rseau

Source

Destination

Emet SEG i
Emet SEG i+1

Reoit SEG i
Emet ACK i

Emet SEG i+2


Reoit ACK i

Fentre de 3 segments
RE223 : Introduction aux rseaux et Internet
- 227 -

pk/enseirb-matmeca/2016 v1.5

TCP

TCP utilise le systme de fentre glissante non pas sur les


segments mais sur les octets :
Numrotation des octets.
Numrotation squentielle.
Lmetteur gre 3 pointeurs sur les octets.
Ce mcanisme sapplique aux 2 extrmits de la connexion.

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

La taille de la fentre glissante nest pas fixe mais varie en


cours de la connexion.

Dans le segment TCP dacquittement, le destinataire prcise le


nombre doctets quil est prt accepter. La fentre de
lmetteur est modifie alors.

On commence avec une petite valeur pour la taille de la fentre


puis on augmente (slow start) si tout va bien.

Pour rduire le dbit coul, il suffit de rduire la taille de la


fentre ce qui contribue au contrle du flux chang !
RE223 : Introduction aux rseaux et Internet
- 229 -

pk/enseirb-matmeca/2016 v1.5

TCP
Entte TCP

Donnes utilisateur
Segment TCP

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 230 -

TCP

La taille de lentte TCP fait 20 octets. Combine IP, cela fait


20+20=40 octets, ce qui est beaucoup !

Il existe des segments TCP pour :


Etablir la connexion.
Transfrer les donnes utilisateur.
Envoyer des acquittements de donnes correctement reues.
Ajuster la taille des fentres.
Fermer la connexion.

RE223 : Introduction aux rseaux et Internet


- 231 -

pk/enseirb-matmeca/2016 v1.5

TCP

Source Port (16 bits) :


Port source.

Destination Port (16 bits) :


Port destination.

Sequence Number (32 bits) :


Valeur en octets.
Numrote le numro du dernier octet mis.
Assure le bon squencement.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 232 -

TCP

Acknowledge Number (32 bits) :


Valeur en octets.
Numrote le numro du dernier octet reu + 1. Donne donc
le numro du prochain octet attendu.
Acquittement tous les octets reus prcdemment.
Assure le bon squencement.

Data offset (4 bits) :


Taille de lentte TCP en multiple de 32 bits. 5 ici.

RE223 : Introduction aux rseaux et Internet


- 233 -

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.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 234 -

TCP

Window (16 bits) :


Taille de la fentre en octets.
Nombre doctets maximum pouvant tre mis sans en
attendre lacquittement.
Assure le contrle de flux.

Checksum (16 bits) :


Somme de contrle sur lentte et les donnes du segment
TCP.

RE223 : Introduction aux rseaux et Internet


- 235 -

pk/enseirb-matmeca/2016 v1.5

TCP

Urgent Pointer (16 bits) :


Indique le numro du dernier octet urgent quand URG=1.

Options (32 bits) :


Champ optionnel. Pas utilis.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 236 -

TCP

Les accuss de (bonne) rception (des donnes prcdemment


reues) :
Peuvent tre envoys en mme temps que des donnes :
technique du piggy backing.
Ne sont pas obligatoires chaque segment TCP reu.

TCP sadapte sans paramtrage tous les dbits, tous les


temps de rponse donc tous les rseaux (taille de fentre
dynamique, timers dynamiques).

RE223 : Introduction aux rseaux et Internet


- 237 -

pk/enseirb-matmeca/2016 v1.5

TCP

Etablissement dune connexion TCP :


TCP source

TCP destination

SYN, SN=x

SYN, SN=y
ACK, AN=x+1
ACK, AN=y+1

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 238 -

TCP

Libration dune connexion TCP :


TCP destination

TCP source
FIN, SN=x

ACK, AN=x+1
Fin application
FIN, SN=y

ACK, AN=y+1

RE223 : Introduction aux rseaux et Internet


- 239 -

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 -

Configuration rseau sous UNIX

Il sagit de voir les principaux fichiers de configuration dun


rseau IP sous UNIX.

Il sagit aussi de voir les principales commandes de


configuration rseau IP sous UNIX.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 241 -

Configuration rseau sous UNIX

Ces fichiers et ces commandes existe sous Windows. Il suffit


douvrir une invite de commandes !!! :

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 242 -

Configuration rseau sous UNIX

Fichier /etc/hosts :

Donne lassociation adresse IP nom symbolique dune


machine.
Exemple : 127.0.0.1
localhost

Fichier /etc/networks :

Donne lassociation adresse du rseau nom symbolique du


rseau.
Exemple : 147.210.18.0 enseirb.fr

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 243 -

Configuration rseau sous UNIX

Fichier /etc/services :
Donne lassociation numro de port nom symbolique du
service.
Exemple : ftp 21/tcp

Fichier /etc/inetd.conf ou /etc/xinetd.conf :

Configuration du serveur inetd de services. Serveur de


serveurs.
Permet de valider ou pas un service Internet sur la machine
(ftp, telnet).

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 244 -

Configuration rseau sous UNIX

Commande ifconfig :

Configuration de linterface rseau.


Exemple : % ifconfig -a

Commande netstat :

Affichage de statistiques rseau : table de routage, changes


UDP, TCP.
Exemple : % netstat a
Exemple : % netstat -nr

RE223 : Introduction aux rseaux et Internet


- 245 -

pk/enseirb-matmeca/2016 v1.5

Configuration rseau sous UNIX

Commande route :
Affichage de la table de routage.
Exemple : % route

Commande arp :
Affichage du cache ARP.
Exemple : % arp a

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 246 -

Configuration rseau sous UNIX

Commande ping :

Permet de voir si une machine cible est vivante .


Exemple : % ping www.enseirb.fr

Commande traceroute :

Trace le chemin emprunt par les donnes dans le rseau IP


destination dune machine cible.
Exemple : % traceroute www.enseirb.fr

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 247 -

Les protocoles dInternet : bilan

Les protocoles TCP/IP et moindre mesure UDP/IP sont les


protocoles les plus utiliss actuellement.

Cest dautant plus vrai avec lInternet des objets et les objets
connects o chaque objet intgre une pile TCP/IP pour
communiquer.

Si lon intgre dans lobjet un systme dexploitation comme


Linux au hasard , la pile TCP/IP est l de facto. Mais cest
une autre histoire

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 248 -

Les protocoles dInternet : bilan

Avantages de la suite de protocoles TCP/UDP/IP :


Gratuit.
Indpendance vis--vis des constructeurs de matriels.
Disponible sur tout type de matriel : systmes embarqus,
objets connects
Facile mettre en uvre.
Intgr dans les systmes dexploitation modernes.
Eprouv depuis longtemps.
Bien document.
Simple mais efficace.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 249 -

Les protocoles dInternet : bilan

Inconvnients de la suite de protocoles TCP/UDP/IP :


Pas une norme internationale. Diffrentes souches
implantes ce qui posait des problmes dinteroprabilit et
de scurit.
Classe B puise. IPv6, la solution !
Scurit pas prise en compte au niveau IP mais au niveau de
lapplication. Aujourdhui, on intgre la scurit au niveau
rseau. IPsec, la solution !

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 250 -

PARTIE 8
LARCHITECTURE CLIENT/SERVEUR

RE223 : Introduction aux rseaux et Internet


- 251 -

pk/enseirb-matmeca/2016 v1.5

Introduction

Larchitecture client/serveur est laboutissement dun ensemble


dvolutions technologiques survenues dans les annes 1980 :
Augmentation des capacits mmoire.
Performances des processeurs et des rseaux.
Evolutions des logiciels : interfaces graphiques, multimdia,
des interfaces de communications.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 252 -

Introduction

Fonctionnalits nouvelles de linformatique distribue :


Applications peer to peer.
Aspect conomique : applications client/serveur avec les
ordinateurs personnels.
Puissance locale disponible.

Adapt lorganisation des socits modernes :


Structures en entits de moindre taille (filiales...).
Nouveaux besoins de communication (applications
distribues).

RE223 : Introduction aux rseaux et Internet


- 253 -

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

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 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

Le service rendu = traitement effectu par le serveur


RE223 : Introduction aux rseaux et Internet
- 255 -

pk/enseirb-matmeca/2016 v1.5

Le middleware

Cest un complment de services du rseau permettant la


ralisation du dialogue client/serveur :
Prend en compte les requtes de lapplication cliente.
Les transmet de manire transparente travers le rseau
jusquau serveur.
Prend en compte les donnes rsultat du serveur vers
lapplication.

Application

Serveur
Middleware
Rseau

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 256 -

Le middleware

Lobjectif essentiel du middleware ou intergiciel est doffrir


aux applications une interface unifie permettant laccs
lensemble des services disponibles sur le rseau : l API
(Application Programming Interface).

API du middleware = ciment entre les protocoles rseau et les


applications.

RE223 : Introduction aux rseaux et Internet


- 257 -

pk/enseirb-matmeca/2016 v1.5

Conception en mode non connect


Client
programme

Rseau
message dappel

Serveur
prise en compte de
la requte
Rveil du serveur

rception du rsultat

message rponse

Excution requte

poursuite du traitement

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 258 -

Conception en mode connect


Client

Rseau

Serveur
prise en compte de
la connexion

message de connexion

demande de
connexion

Cration dun contexte

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

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 259 -

Conception du client

Une application cliente est moins complexe que son homologue


serveur :
La plupart des applications clientes ne grent pas
dinteractions avec plusieurs serveurs.
La plupart des applications clientes sont traites comme un
processus conventionnel. Un serveur peut ncessiter des
accs privilgis au middleware.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 260 -

Conception du serveur

Entre indfiniment dans un processus dattente de requtes


client. Lorsquune requte arrive, le serveur dclenche les
processus associs cette requte puis met la ou les rponses
vers le client.

Problme : grer plusieurs clients simultanment !

Les types de serveurs :


serveurs itratifs : ne grent quun seul client la fois.
serveurs parallles : fonctionnent en mode concurrent.

RE223 : Introduction aux rseaux et Internet


- 261 -

pk/enseirb-matmeca/2016 v1.5

Les sockets

Les sockets : interface client/serveur (API) utilise lorigine


dans le monde UNIX et TCP/IP.

Etendues aujourdhui du micro (winsock) au mainframe.

LAPI sockets est le standard de fait pour la programmation


rseau.

Dans lenvironnement UNIX, les sockets sont traites de la


mme manire que les fichiers : on a donc les appels systmes
douverture (qui permet davoir un descripteur de rfrence), de
lecture, dcriture, de contrle et de fermeture.
RE223 : Introduction aux rseaux et Internet

pk/enseirb-matmeca/2016 v1.5

- 262 -

Les sockets

Il existe dautres API de programmation rseau :


Streams.
TLI (Transport Level Interface).
RPC (Remote Procedure Call).
XDR (eXternal Data Representation).
Propritaires.

Les applications client/serveur ne voient les couches de


communication qu travers lAPI sockets (abstraction).

RE223 : Introduction aux rseaux et Internet


- 263 -

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

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 264 -

Les sockets

Elles permettent dtablir un lien de communication en mode


connect ou non connect sur un rseau.

Elle structurent une application :


Soit en mode client.
Soit en mode serveur.

Elles permettent dchanger des donnes entre ces applications.

RE223 : Introduction aux rseaux et Internet


- 265 -

pk/enseirb-matmeca/2016 v1.5

Les sockets : mode non connect


SERVEUR

MODE NON CONNECTE

socket
bind

CLIENT
socket

requte

sendto

recvfrom
sendto

rponse
close
RE223 : Introduction aux rseaux et Internet
pk/enseirb-matmeca/2016 v1.5

- 266 -

Les sockets : mode non connect

Le client ntablit pas de connexion avec le serveur mais met


un datagramme UDP (sendto) vers le serveur.

Le serveur naccepte pas de connexion mais attend un


datagramme UDP dun client (recvfrom) qui transmet le
datagramme lapplication.

RE223 : Introduction aux rseaux et Internet


- 267 -

pk/enseirb-matmeca/2016 v1.5

Les sockets : mode connect


SERVEUR
socket

MODE CONNECTE

CLIENT

En mode connect il y a tablissement


(listen, connect, accept) puis libration (close)
dune connexion entre le client et le serveur.

bind
listen
accept
read
write
close

socket
connexion
requte
rponse

connect
write
read
close

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 268 -

PARTIE 9
LAPI SOCKETS

RE223 : Introduction aux rseaux et Internet


- 269 -

pk/enseirb-matmeca/2016 v1.5

Protocoles Internet : rappel


Application Application
Flux doctets
non
structurs

Flux doctets
non
structurs

socket

socket

Mode
connect

Mode
non connect

Espace utilisateur

Appel systme

Espace systme (OS)


4 : transport
3 : rseau
2 : liaison

TCP

UDP
IP
LLC
MAC

1 : physique

Support de communication

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 270 -

Communications sous UNIX

Pour les communications inter processus sous UNIX, nous avons


disposition (voir cours MI203) :
Le tube (pipe) du systme UNIX.
Le tube nomm.

Les sockets sont ainsi une gnralisation des tubes nomms :


Point de communication bidirectionnelle par lequel un processus pourra
mettre ou recevoir des informations.
Processus sur des machines (ventuellement) diffrentes.
Systmes dexploitation (ventuellement) diffrents.

Sous UNIX, tout est fichier donc la manipulation des sockets revient aux
oprations standards open, read, write, close et ioctl

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 271 -

Attributs des sockets

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.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 272 -

Types de sockets et protocoles

Application 1

Application2

Application 3

Stream socket

Datagram socket

Raw socket

TCP

UDP
IP

RE223 : Introduction aux rseaux et Internet


- 273 -

pk/enseirb-matmeca/2016 v1.5

Mode de dialogue et appels systme

Liste des principaux appels systme de lAPI socket :


Client UDP
socket()

Serveur UDP
socket()

Client TCP
socket()

bind()

Serveur TCP
socket()
bind()
listen()

connect()

accept()

recvfrom() recvfrom() read()


sendto()
sendto()
write()

read()
write()

close()

close()

close()

close()

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 274 -

Mode de dialogue et appels systme

Un processus (le serveur) est en attente ( lcoute) sur un


numro de port :
=> Tous les processus (les clients) connaissant ladresse IP du
serveur et le numro de port peuvent lui envoyer des messages
(requtes).

Le serveur traite les messages entrants puis renvoie une rponse


au client en utilisant le numro de port source contenu dans
len-tte du message.

En mode connect, il y a tablissement pralable dune


connexion (service fiable).
RE223 : Introduction aux rseaux et Internet
- 275 -

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

// Famille de protocole pour cette adresse


// 14 octets dadresse

//
//
//
//
//

_in pour Internet


Famille de protocole pour cette adresse
Numro de port
Adresse IP
Non utilis

// Soit 4 octets

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 276 -

Cration et fermeture dune socket

int socket(int af, int type, int protocole)

Cration de la structure de donnes permettant la communication.


af = famille de protocole (Internet, IPC,).
AF_INET (ou PF_INET) : domaine Internet.
AF_UNIX : domaine UNIX. Communications locales IPC.
type = SOCK_STREAM, SOCK_DGRAM, SOCK_RAW.
protocole : 0 pour protocole par dfaut.
socket() retourne :
Un descripteur de socket.
-1 si erreur (voir errno).

close(int socket)
Ferme la connexion (SOCK_STREAM) et supprime la structure de
donnes associe au descripteur de socket.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 277 -

Liaison socket et adresse IP du serveur

int bind(int socket, struct


locale, int longueur-adresse)

sockaddr

adresse-

Pour un serveur, associe un numro de port et ladresse locale la


socket, retourne 1 si erreur.
socket = descripteur de socket.
adresse-locale = structure qui contient adresse IP + n de port.
adresse-locale : struct sockaddr * :
sockaddr_in si AF_INET (adresse IP).
longueur-adresse : sizeof(struct sock_addr).
Si sin_addr.s_addr= INADDR_ANY : utilisation de ladresse IP
de la machine qui hberge le serveur.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 278 -

Fonctions utilitaires

struct hostent * gethostbyname(char *name)


Traduit un nom de domaine en adresse IP sur 32 bits.
struct hostent *h;
h=gethostbyname("www.enseirb-matmeca.fr");
printf("adresse IP: %s\n",
inet_ntoa(*((struct in_addr *)h->h_addr)));

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

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 279 -

Fonctions utilitaires

Conversion Network Byte Order vs Host Byte Order pour rgler le


problme de reprsentation des types simples big endian ou little endian :
htons(): Host to Network Short.
htonl(): Host to Network Long.
ntohs(): Network to Host to Short.
ntohl(): Network to Host to Long.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 280 -

Lecture/criture en mode UDP

int sendto()

Permet l'envoi dun datagramme UDP.


Contient adresse du destinataire.
Renvoie le nombre doctets rellement mis.

int recvfrom()

Rception bloquante dun datagramme UDP.


Contient adresse de lexpditeur.
Renvoie le nombre doctets rellement reus.

RE223 : Introduction aux rseaux et Internet


- 281 -

pk/enseirb-matmeca/2016 v1.5

Lecture/criture en mode UDP


int sendto(
int socket,
//
void *buffer,
//
int longueur,
//
int option,
//
struct sockaddr *p_adresse, //
int longueur_adresse
//
};

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

Ladresse du destinataire ou de lexpditeur est en fait une structure de type


sockaddr.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 282 -

Squencement des appels systme en mode UDP


S e rv e u r

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

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 283 -

Connexion en mode TCP

connect (socket, adr-destination, longueur-adr)

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.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 284 -

Cration dune file dattente

listen(int socket, int lgr-file)

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

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 285 -

Acceptation dune connexion TCP

newsock = accept (socket, adresse, lgr-adresse)

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.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 286 -

Lecture/criture en mode TCP

write(newsock, buffer, longueur )


Envoie des donnes sur la connexion TCP tablie.
Plus besoin des adresses metteur/destinataire.
Renvoie le nombre doctets rellement mis.

read(newsock, buffer, longueur )


Reoit des donnes sur la connexion TCP tablie.
Plus besoin des adresses metteur/destinataire.
Renvoie le nombre doctets rellement reus.

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

RE223 : Introduction aux rseaux et Internet


- 287 -

pk/enseirb-matmeca/2016 v1.5

Squencement des appels systme en mode TCP


Serveur
socket()

Client
socket()

bind()
listen()
connect()
accept()
read()

write()

write()

read()

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 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

/* Numero du port du serveur ftp */

main(argc,argv)
int argc ;
char *argv[] ;
{
int sd;
struct sockaddr_in sa;
struct hostent *hptr ;

/* Structure Internet sockaddr_in */


/* Infos sur le serveur */

RE223 : Introduction aux rseaux et Internet


- 289 -

pk/enseirb-matmeca/2016 v1.5

Exemple 1 : myftp0.c
char *serveur ;
char c;

/* Nom du serveur distant */

char msg[] = "USER TOTO\n";


char buf[256];
int n, i;

/* Buffer */
/* Buffer */

/* verification du nombre d'arguments de la ligne de commande */


if (argc != 2) {
printf("myftp. Erreur d'arguments\n");
printf("Syntaxe : %% myftp nom_serveur_ftp\n");
exit(1);
}
/* Recuperation nom du serveur */
serveur = argv[1];

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 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;

/* Initialisation du numero du port */


sa.sin_port = htons(FTPPORT);

RE223 : Introduction aux rseaux et Internet


- 291 -

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

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 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);
}

RE223 : Introduction aux rseaux et Internet


- 293 -

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;

/* Structure Internet sockaddr_in */


/* Infos sur le serveur */
/* Numero de port du serveur */

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 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;

/* verification du nombre d'arguments de la ligne de commande */


if (argc != 2) {
printf("pingserveurTCP. Erreur d'arguments\n");
printf("Syntaxe : %% pingserveurTCP numero_port\n");
exit(1);
}
/* Recuperation numero port passe en argument */
port = atoi(argv[1]);

RE223 : Introduction aux rseaux et Internet


- 295 -

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);
}

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 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++;

RE223 : Introduction aux rseaux et Internet


- 297 -

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);
}

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 298 -

Exemple complet. Client TCP


Serveur

Client

Service : vrification si lutilisateur quidam est bien identifi sur le serveur


(il lest sil possde une entre dans le fichier /etc/passwd avec son nom
de login).
Le service KEY est dfini dans le fichier /etc/services par lentre :
key
5002/tcp
% ./client nom_serveur quidam

Source de lexemple : Internetworking with TCP/IP (Douglas Comer)

RE223 : Introduction aux rseaux et Internet


- 299 -

pk/enseirb-matmeca/2016 v1.5

Exemple complet. Client TCP


#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#define BUFSIZE 256
main (argc,argv)
int argc;
char **argv;
{
int s;
int len;
struct sockaddr_in sa;
struct hostent *hp;
struct servent *sp;
char *myname;
char buf[BUFSIZE];
char *host,*user;

/* Descripteur de socket */

/*
/*
/*
/*

Structure adresse Internet */


Structure service de nom */
Structure service Internet */
Pointeur sur le nom du programme */

/* Pointeurs sur le serveur et l'utilisateur */

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 300 -

Exemple complet. Client TCP


myname = argv[0];
if (argc != 3) {
printf("Usage : %s serveur user\n", myname);
exit(1);
}
user = argv[2];
host = argv[1];
/* Voir si le serveur existe, structure hp remplie */
if ((hp = gethostbyname(host)) == NULL) {
printf("%s : %s serveur inconnu\n", myname, host);
exit(1);
}
/* Copie de l'adresse du serveur et du type d'adresse dans sa */
bcopy ((char *)hp->h_addr, (char *)&sa.sin_addr, hp->h_length);
sa.sin_family = AF_INET;

RE223 : Introduction aux rseaux et Internet


- 301 -

pk/enseirb-matmeca/2016 v1.5

Exemple complet. Client TCP


/* voir si le service est autoris sur le client, rempli la structure sp */
if ((sp = getservbyname("key", "tcp")) == NULL) {
printf("%s : Pas de service QUI sur ce systme \n", myname);
exit(1);
}
sa.sin_port = htons(sp->s_port);
/* Cration de la socket client */
if ((s = socket (AF_INET, SOCK_STREAM, 0)) < 0 ) {
perror("socket");
exit(1);
}

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 302 -

Exemple complet. Client TCP


/* Connexion au serveur, infos dans la structure adresse Internet sa */
if (connect(s, &sa, sizeof(sa)) < 0 ) {
perror("connect");
exit(1);
}
/* Envoi de la requte */
write(s, user, strlen(user)+1);
/* Lecture de la rponse */
read(s, buf, BUFSIZE);
/* Affichage de la rponse */
printf("Rponse : %s\n", buf);
close (s);
/* Fermeture de la connexion */
exit(0);
}

RE223 : Introduction aux rseaux et Internet


- 303 -

pk/enseirb-matmeca/2016 v1.5

Exemple complet. Serveur TCP


#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <pwd.h>
#define BUFSIZE 256
/* Taille de la file d'attente initialise par listen */
#define BACKLOG 1
#define MAXHOSTNAME 64
/* Nombre de requtes traites par le programme */
#define MAXREQ 3
main (argc,argv)
int argc;
char **argv;
void quiest();
int s, t;

/* Descripteur de socket */

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 304 -

Exemple complet. Serveur TCP


int i, count_req;
struct sockaddr_in sa;
/* Stucture adresse Internet */
struct sockaddr_in isa;
struct hostent *hp;
/* Structure service de nom */
struct servent *sp;
/* Structure service Internet */
char localhost[MAXHOSTNAME];
/* Voir si service KEY existe */
if ((sp = getservbyname("key", "tcp")) == NULL) {
printf("Pas de service QUI sur ce systme \n");
exit(1);
}
/* Rcupration du numro de port serveur dans la structure sa */
sa.sin_port = htons(sp->s_port);
/* Rcupration nom machine hte, ici localhost */
gethostname (localhost, MAXHOSTNAME);

RE223 : Introduction aux rseaux et Internet


- 305 -

pk/enseirb-matmeca/2016 v1.5

Exemple complet. Serveur TCP


/* Remplit la structure adresse sa */
hp = gethostbyname(localhost);
bcopy(hp->h_addr, (char*)&sa.sin_addr, hp->h_length);
sa.sin_family = AF_INET;
/* Allocation d'un descripteur de socket */
if ((s = socket(AF_INET, SOCK_STREAM, 0)) < 0 ) {
perror("Serveur : problme cration socket");
exit(1);
}
/* Lien socket avec adresse IP et port */
if (bind(s, &sa, sizeof(sa)) < 0 ) {
printf("Serveur : problme bind\n");
exit(1);
}
listen(s, BACKLOG);

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 306 -

Exemple complet. Serveur TCP


for (count_req = 0; count_req <=MAXREQ ; count_req++) {
/* Attend une requte sur la primitive accept */
i = sizeof(isa);
t = accept (s, &isa, &i );
printf ("Requte %d\n", count_req);
/* Traitement de la requte */
quiest(t);
close(t);
}
/* Fermeture de la socket rserve au traitement de cette requte */
close(s);
printf("fin du service pour %s\n",localhost);
exit(0);
}

RE223 : Introduction aux rseaux et Internet


- 307 -

pk/enseirb-matmeca/2016 v1.5

Exemple complet. Serveur TCP


void quiest(sock) /* Traitement de la requte */
int sock;
{
struct passwd *p;
char buf[BUFSIZE];
int i;
/* Rception de la demande */
if (( i = read(sock, buf, BUFSIZE)) <= 0)
return;
/* Recherche dans le fichier /etc/passwd */
if (( p = getpwnam (buf)) == NULL)
strcpy (buf, "Utilisateur inconnu sur le serveur\n");
/* Envoi de la rponse */
else
sprintf (buf, "%s : %s \n", p->pw_name, p->pw_gecos);
write(sock, buf, strlen (buf));
}

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 308 -

PARTIE 10
CONCLUSION

RE223 : Introduction aux rseaux et Internet


- 309 -

pk/enseirb-matmeca/2016 v1.5

Conclusion

Introduction aux rseaux.

Prsentation du modle OSI.

Prsentation de la technologie Ethernet.

Prsentation dInternet et de ses principaux protocoles,


dInternet embarqu et de lInternet des objets.

Prsentation de lAPI sockets et dexemples complets de clients


et de serveurs.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 310 -

BIBLIOGRAPHIE

RE223 : Introduction aux rseaux et Internet


- 311 -

pk/enseirb-matmeca/2016 v1.5

Bibliographie

Ce cours est bti autour des documents de formation rseaux du


CNRS (www.urec.fr) de Jean Paul Gautier et Bernard Tuy.
Les rseaux. G. Pujolle. Editions Eyrolles.
Les rseaux. Introduction. E. Cechet.
La communication sous UNIX. J.M. Rifflet. Editions Mc Graw
Hill.
Linformatique rpartie sous UNIX. M. Gabassi et B. Dupouy.
Editions Eyrolles.
Rapport dtudiants en anne spciale lENSIMAG.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 312 -

Bibliographie

Le modle OSI. Pascal Sore.


Les couches ISO. Le modle OSI. Patrick Monassier.
Universit de Lyon 1.
Le modle de rfrence OSI. Luc de Mey.
Brve histoire dInternet. Daniel Poulin. Universit de
Montral.
Les sockets UNIX. Sylvie Dupuy. Universit de Jussieu.
Interface des sockets. Patrick Flix. Universit de Bordeaux 1.

RE223 : Introduction aux rseaux et Internet


pk/enseirb-matmeca/2016 v1.5

- 313 -

S-ar putea să vă placă și