licence math-informatique 1...

34
Licence Math-Informatique 1 ère année Olivier Glück Université LYON 1 / Département Informatique [email protected] http://perso.univ-lyon1.fr/olivier.gluck Partie 6

Upload: phungthuan

Post on 13-Sep-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

LicenceMath-Informatique1ère année

OlivierGlückUniversitéLYON1/DépartementInformatique

[email protected]://perso.univ-lyon1.fr/olivier.gluck

Partie6

Copyright§ Copyright©2018OlivierGlück;allrights reserved§ Cesupportdecoursestsoumisauxdroitsd’auteuretn’estdoncpasdansledomainepublic.Sareproductionestcependantautoriséeàconditionderespecterlesconditionssuivantes:§ Sicedocumentestreproduitpourlesbesoinspersonnelsdureproducteur,touteformedereproduction(totaleoupartielle)estautoriséeàlaconditiondeciterl’auteur.

§ Sicedocumentestreproduitdanslebutd’êtredistribuéàdestiercespersonnes,ildevraêtrereproduitdanssonintégralitésansaucunemodification.Cettenoticedecopyrightdevradoncêtreprésente.Deplus,ilnedevrapasêtrevendu.

§ Cependant,dansleseulcasd’unenseignementgratuit,uneparticipationauxfraisdereproductionpourraêtredemandée,maisellenepourraêtresupérieureauprixdupapieretdel’encrecomposantledocument.

§ Toutereproductionsortantducadrepréciséci-dessusestinterditesansaccordpréalableécritdel’auteur.

OlivierGlück L1Math-infoUCBL- LIFASR2:Introductionauxréseauxetauweb 2

Planducours

OlivierGlück L1Math-infoUCBL- LIFASR2:Introductionauxréseauxetauweb 3

§ CM1:Internet,lesréseauxetleweb§ CM2:PagesHTMLetfeuillesdestylesCSS§ CM3:Webinteractif,formulaires,pagesdynamiquesetPHP§ CM4:ProtocoleHTTP,méthodesGETetPOST§ CM5:Lesapplicationsd’Internet§ CM6:Lacouchetransport:lesprotocolesTCPetUDP§ CM7:LeprotocoleIP§ CM8:LesprotocolesEthernet,ARPetICMP.SynthèsedeséchangesentreunclientetserveurWeb

CM6- Lacouchetransport:protocolesTCP/UDP

LemodèleClient/ServeurLeprotocoleUDPetlarapiditéLeprotocoleTCPetlafiabilité

OlivierGlück L1Math-infoUCBL- LIFASR2:Introductionauxréseauxetauweb 4

PlanduCM6§ LemodèleClient/Serveur

Qu’est-cequelemodèleclient/serveur?Lessocketsetlesnumérosdeport,L’architectureTCP/IP

§ LeprotocoleUDPetlarapiditéL’en-têteUDP,Lemodenonconnecté,QuellesapplicationsutilisentUDP?

§ LeprotocoleTCPetlafiabilitéQu’est-cequelafiabilité?Lesmécanismesdelafiabilité,Lemodeconnecté,L’en-têteTCP,QuellesapplicationsutilisentTCP

OlivierGlück L1Math-infoUCBL- LIFASR2:Introductionauxréseauxetauweb 5

LemodèleClient/Serveur

Qu’est-cequelemodèleclient/serveur?Lessocketsetlesnumérosdeport

L’architectureTCP/IP

OlivierGlück L1Math-infoUCBL- LIFASR2:Introductionauxréseauxetauweb 6

Lesapplicationsvuesdanscecours

§ Leweb(HTTP)§ Laconnexionàdistance(telnet,ssh etX)§ Lecourrierélectronique(SMTP,POP,IMAP,Webmail)§ Larésolutiondesnoms(DNS)§ Letransfertdefichiers(FTP)§ L’accèsauxfichiersdistants(NFS,SMB)§ L’annuairefédérateur(LDAP)ToutescesapplicationsfonctionnentselonlemodèleClient/Serveur!

OlivierGlück L1Math-infoUCBL- LIFASR2:Introductionauxréseauxetauweb 7

ParexempleleWeb…

§Uneapplicationd’Internetquipermetlepartagededocumentsliésentreeuxetappelés“pagesweb”

§Unepagewebpeutcontenirdutexte,desimages,desprogrammes,desliensversd’autrespagesweb…

§ FonctionneenmodeClient/Serveur audessusdel’architectureTCP/IP

OlivierGlück L1Math-infoUCBL- LIFASR2:Introductionauxréseauxetauweb 8

Navigateur ServeurApache

Windows

ModemADSL

Linux

Ethernet

LeWeb

HTTP

Internet

L'applicationestrépartiesurleclientetleserveurqui

dialoguentselonunprotocoleapplicatifspécifique

LemodèleClient/Serveur

§ Idée:l'applicationestrépartiesurdifférentssitespouroptimiserletraitement,lestockage...

§ Leclient§ effectueunedemandedeserviceauprèsduserveur(requête)§ initielecontact(parleenpremier),ouvrelasession

§ Leserveur§ estlapartiedel'applicationquioffreunservice§ estàl'écoutedesrequêtesclientes§ répondauservicedemandéparleclient(réponse)

§ Leclientetleserveurnesontpasidentiques,ilsformentunsystèmecoopératif

§Unserveurpeutrépondreàplusieursclientssimultanément

OlivierGlück L1Math-infoUCBL- LIFASR2:Introductionauxréseauxetauweb 9

LemodèleClient/Serveur

§UneapplicationClient/Serveur,c'est§ unepartiecliente quiexécutedesrequêtesversunserveur§ unepartieserveur quitraitelesrequêtesclientesetyrépond§ unprotocoleapplicatif quidéfinitleséchangesentreunclientetunserveur

§ unaccèsviauneAPI (interfacedeprogrammation,généralementlessockets)àlacouchedetransportdesmessages

§ Biensouventlespartiesclienteetserveurnesontpasécritesparlesmêmesprogrammeurs-->rôleimportantdesRFCs quispécifientleprotocole!

OlivierGlück L1Math-infoUCBL- LIFASR2:Introductionauxréseauxetauweb 10

Lessockets,interfaced’accèsauréseau

OlivierGlück L1Math-infoUCBL- LIFASR2:Introductionauxréseauxetauweb 11

Processus client

Processus serveur

TCP/IP

Matériel

TCP/IP

Matériel

Application C/S

Protocole applicatif

Internet

socket socket

Du ressort du développeur

de l'application

Du ressort du système

d'exploitation

Interface d'accès au

réseau

Une socket : interface locale à l'hôte, créée par l'application, contrôlée par l'OSPorte de communication entre le processus client et le processus serveur

Lessocketsetlesnumérosdeport§ UnéchangeClient/Serveur = (@IP_src,port_src,@IP_dest,port_dest)

OlivierGlück L1Math-infoUCBL- LIFASR2:Introductionauxréseauxetauweb 12

L'appli écrit

L'appli lit

L'appli écrit

L'appli lit

Port 5004 utilisé par le navigateur web

TCP/UDP sendbuffer

TCP/UDP recvbuffer

IP

Une socket est un fichier virtuel local dans lequel l’application litou écrit. Elle est associée à un numéro de port local et des zones d’émission/réception de TCP ou UDP attribués par le système d’exploitation.

Client

TCP/UDP sendbuffer

TCP/UDP recvbuffer

IP

Serveur

Le paquet IP circule dansle réseauInternet

@IP client

@IP serveur

Port 80 utilisé par le serveur web

LesnumérosdeportsetlesadressesIP

OlivierGlück L1Math-infoUCBL- LIFASR2:Introductionauxréseauxetauweb 13

Lesportsinférieursà1024sontréservéspourlesserveurscarleportduserveurdoitêtrefixéetconnuàl’avancepourqueleclientpuissefairesademande.

OlivierGlück L1Math-infoUCBL- LIFASR2:Introductionauxréseauxetauweb 14

OlivierGlück L1Math-infoUCBL- LIFASR2:Introductionauxréseauxetauweb 15

L’architecturedeTCP/IP

OlivierGlück L1Math-infoUCBL- LIFASR2:Introductionauxréseauxetauweb 16

IP

pingTCP UDP

ICMPARP

Logiciel dans l’OS (système d'exploitation)

Cartes réseaux(Ethernet, Wifi, ...)

Matériel

HTTP SSH TELNET SMTP DNS FTP

sockets

NFS

Applications (navigateur, terminal, mail…)

LDAP

réseau

transport

OSI765

21

43

Communicationssansrouteur§ Deuxmachinessurunmêmesousréseau

OlivierGlück L1Math-infoUCBL- LIFASR2:Introductionauxréseauxetauweb 17

IP

TCP

Réseau logique IP

Pilote Ethernet

Client FTP

IP

TCP

Pilote Ethernet

Serveur FTP

Sous-réseau de type Ethernet

Ordinateur A Ordinateur BProtocole FTP

Protocole TCP

Protocole IP

Protocole Ethernet

Linux kernel

NIC

Communicationsavecrouteur(s)§ Priseencomptedel'hétérogénéité

OlivierGlück L1Math-infoUCBL- LIFASR2:Introductionauxréseauxetauweb 18

IP

TCP

Pilote Ethernet

Client FTP

IP

TCP

Pilote Token Ring

Serveur FTP

sous-réseau de type Token Ring

Ordinateur A Ordinateur BProtocole FTP

TCP - contrôle de bout en bout

Datagrammes IP

trames Ethernet

Linux kernel

NIC

IP

Ether Token

sous-réseau de type Ethernet

trames Token Ring

De proche en proche

Routeur

L’encapsulation:ajoutdesen-têtes

OlivierGlück L1Math-infoUCBL- LIFASR2:Introductionauxréseauxetauweb 19

IP

TCP

Pilote Ethernet

Serveur FTPdonnées

utilisateuren-tête applica

tif

données applicativesTCP

données applicativesTCPIP

données applicativesTCPIPEtherne

tEtherne

t

message

segment

datagramme

trame

20

20

20

20

2014 4

Ladésencapsulation :identifierlacouche>

OlivierGlück L1Math-infoUCBL- LIFASR2:Introductionauxréseauxetauweb 20

IP

TCP

Ethernet ou SNAP

Numéro de port(dans l'en-tête TCP

ou UDP)

Identifiant de protocole(dans l'en-tête IP)

EtherType (dans l'en-tête de la trame)

ICMP ARP

UDP

HTTP SSH TELNET SMTP DNS FTP LDAPNFS

port=53port=25

port=23port=22

port=80

proto=6 proto=17

proto=1

type=0x800 type=0x80

6

LeprotocoleUDPetlarapidité

L’en-têteUDPLemodenonconnecté

QuellesapplicationsutilisentUDP?

OlivierGlück L1Math-infoUCBL- LIFASR2:Introductionauxréseauxetauweb 21

LeprotocoleUDP

§UDP(RFC768)- UserDatagram Protocol§ protocoledetransportleplussimple§ servicedetypebest-effort(commeIP)

§ lesdatagrammesUDPpeuventêtreperdus§ lesdatagrammesUDPpeuventarriverdansledésordre

§ modenonconnecté:chaquedatagrammeUDPesttraitéindépendammentdesautres

§ Pourquoiunservicenonfiablesansconnexion?§ simpledoncrapide (pasdedélaideconnexion,pasd'étatentreémetteur/récepteur)

§ petiten-têtedoncéconomiedebandepassante§ UDPpeutémettreaussirapidementqu'illesouhaite:pasdelimiteàl’envoicontrairementàTCP(contrôledecongestion)

OlivierGlück L1Math-infoUCBL- LIFASR2:Introductionauxréseauxetauweb 22

Checksum UDP

L’en-têteUDP:8octets

OlivierGlück L1Math-infoUCBL- LIFASR2:Introductionauxréseauxetauweb 23

Longueur segment

Données applicatives (message)

32 bits

Port destinationPort source8 octets

Taille totale du datagramme (en-tête+données)

Somme de contrôle du datagramme (en-tête+données)

optionnel : peut être à 0

UDP = IP + numéros de port !!

Permetd’envoyerrapidementdesmessagesmaissansl’autorisationdudestinatairedoncaucunegarantiesurlaréceptiondumessage

UDPestenmodenonconnecté

OlivierGlück L1Math-infoUCBL- LIFASR2:Introductionauxréseauxetauweb 24

Client Réseau Serveur

envoi d'une requête message requête prise en compte dela requête

réveil du serveur

exécution requêtemessage réponseréception du résultat

poursuite du traitement

Exempledemodenonconnecté:courrierpostal,mailTouslesprotocolesd’InternetsontenmodenonconnectéSAUFTCP

QuellesapplicationsutilisentUDP?§ Pourlesapplicationsquiontbesoind’envoyerrapidement

§ UDPpermetdesenvoisrapidessanslimitationmaissansgarantiedoncsansfiabilité

§ Souventutilisépourlesapplicationsmultimédias§ Vidéos,son,musique,streaming,visioconférence,voixsurIP§ Cesapplicationssonttolérantesauxpertes/erreursetsensiblesaudébit(lesdonnéesdoiventarriveràlabonnevitesse)

§ Autresutilisationsd'UDP§ Applicationsquienvoientpeudedonnéesetquiontbesoinderapidité§ exemple:DNS

§ TransfertfiablesurUDP§ CommeUDPn’apporteaucunegarantie,l’applicationpeutajouterdesmécanismespourréparerlespertesouerreurs(acquittements…)

OlivierGlück L1Math-infoUCBL- LIFASR2:Introductionauxréseauxetauweb 25

LeprotocoleTCPetlafiabilité

Qu’est-cequelafiabilité?Lesmécanismesdelafiabilité

LemodeconnectéL’en-têteTCP

QuellesapplicationsutilisentTCP?

OlivierGlück L1Math-infoUCBL- LIFASR2:Introductionauxréseauxetauweb 26

LeprotocoleTCPetlafiabilité

§ TransportControlProtocol(RFC793,1122,1323,2018,2581)§ Transportfiable enmodeconnecté

§ entreunclientetunserveur:(@IPsrc,portsrc)-->(@IPdest,portdest)

§ transporteunflotd'octets(ouflux)L'applicationlit/écritdesoctetsdansuntampon,TCPassurelafiabilité

§ Fiabilité:faireensortequetoutcequiarriveestexactementcequiaétéenvoyé§ Lesdonnéesnedoiventpasêtreperdues:sansperte§ Lesdonnéesnedoiventpassubird’erreurs:sanserreur

Uneerreur=unbitquichangedevaleurpendantletransfert§ Lesdonnéesdoiventarriverdansl’ordre§ Lesdonnéesnedoiventpasarriverendouble:sansduplication

OlivierGlück L1Math-infoUCBL- LIFASR2:Introductionauxréseauxetauweb 27

Lesmécanismesdelafiabilité§ Fiabilité:sansperte,sanserreur,dansl’ordre,sansduplication

§ Encasdeperteouerreur,ilfautretransmettresionn’apasreçud’acquittement(ACK)auboutd’uncertaintemps

§ Pourdétecteruneperteouuneduplication,ilfautdesACKetnuméroterlesmessagesetlesACK

§ Pourdétecterleserreurs,onutiliseleschecksum§ Pourretransmettre,ilfautconserverlesmessagesenvoyésquin’ontpasencoreétéacquittés

§Mécanismes:retransmissions,timeout,ACK,stockagedesmessagesnonacquittés,checksum,numérotationdesmessagesetdesacquittements

OlivierGlück L1Math-infoUCBL- LIFASR2:Introductionauxréseauxetauweb 28

TCPestenmodeconnecté

OlivierGlück L1Math-infoUCBL- LIFASR2:Introductionauxréseauxetauweb 29

Permetd’envoyerdesmessagesavecfiabilitémaislimitationdudébitàl’envoi:contrôledefluxetcontrôledecongestion

Exempledemodeconnecté:appeltéléphoniqueTCPestleseulprotocoled’Internetenmodeconnecté

demande deconnexion

message de connexion prise en compte dela connexion

Création d’un contexte

Exécution desrequêtes

Emission de requêtesRéception de résultatsSynchronisation

demande dedéconnexion

message de déconnexion prise en compte dela déconnexion

Libération du contexte

Client Réseau Serveur

Etablissementd'uneconnexionTCP

§ Connexionentroisphases§ 1- demanded'ouvertureparleclient(SYN),choixISNc

§ 2- acceptationparleserveur(SYN+ACK),allocationdestampons,choixISNs

§ 3- leclientacquittel'acceptation(ACK)

§ ModeClient/Serveur§ LeTCPduclientfaitunedemanded’ouverturedeconnexionversleportduserveurquidoitêtreconnuàl’avance

§ LeTCPduserveurestenattentedesdemandesd’ouverturedeconnexionenprovenancedesclients

OlivierGlück L1Math-infoUCBL- LIFASR2:Introductionauxréseauxetauweb 30

Client ServeurOuverture active Ouverture passive

Fin de l'ouverture de connexion

Fermetured'uneconnexionTCP

§ Fermeturenégociée§ 1- demandedefindeconnexion(FIN)parunedesextrémités

§ 2- acquittementduFIN(ACK)maismiseenattentedelademande(Leserveuraencoredesdonnéesnontransmises)

§ 3- envoidesdonnéesenattente§ 4- acquittementdesdonnées(ACK)

§ 5- acceptationdelafindeconnexionparleserveur(FIN)

§ 6- acquittementdelafindeconnexion(ACK)

OlivierGlück L1Math-infoUCBL- LIFASR2:Introductionauxréseauxetauweb 31

Fin de connexion

Client Serveur

L’en-têteTCP:20octets

OlivierGlück L1Math-infoUCBL- LIFASR2:Introductionauxréseauxetauweb 32

Numéro du premier octet du segment

Total de contrôle Ptr données urgentes

Lg h. RST

F IN

SYN

PSH

ACK

URG

32 bits

20 octets

Données applicatives

Options (O ou plusieurs mots) + bourrage

NR Numéro de séquence acquitté

NS Numéro de séquence

Port destinationPort source

Taille fenêtre réception

Numéro du prochain octet attendu

Longueur en-tête en multiple de 4 octetsChecksum sur tout le segment (cf. UDP)

Nb d'octets que le récepteur peut recevoir

Les données comprises entre le premier octet DATA et la valeur du Ptr sont urgentes : TCP interrompt l'application pour forcer la lecture

CaractéristiquesduprotocoleTCP

§ TCP- protocoledetransportdeboutenbout§ uniquementprésentauxextrémités§ transportfiable desegments (modeconnecté)§ protocolecomplexe(retransmission,gestiondeserreurs,séquencement,…)

OlivierGlück L1Math-infoUCBL- LIFASR2:Introductionauxréseauxetauweb 33

IPIP

IP IP

IP

IP

IP

IP

IP

IP

IP IPIP

Serveur WebTCP

TCP TCP

TCP

Connexion TCP

Couche transport : communications entre applisClient sshServeur

ssh

Nav. Web

Port 22

Port 80

QuellesapplicationsutilisentTCP?

Toutescellesquinepeuventpassepasserdelafiabilitéc’estàdirepresquetoutes!§ Leweb(HTTP)§ Laconnexionàdistance(telnet,ssh etX)§ Lecourrierélectronique(SMTP,POP,IMAP,Webmail)§ Letransfertdefichiers(FTP)§ L’accèsauxfichiersdistants(NFS,SMB)§ L’annuairefédérateur(LDAP)LesapplicationsmultimédiasetleDNSn’utilisentpasTCP

OlivierGlück L1Math-infoUCBL- LIFASR2:Introductionauxréseauxetauweb 34