25
Cours SR (Syst` emes et R´ eseaux) I5TC1 Licence L3 Informatique Communications inter-syst` emes Communications inter-syst` emes 1. Fonctionnement de l’Internet 2. Protocoles applicatifs 3. Programmation r´ eseau 1 de 25

Cours SR (Systèmes et Réseaux) I5TC1 Licence L3 Informatiquedcanl.free.fr/Etudes/COURS_L3/SYSTEME_RESEAU/CM/...Cours SR (Syst`emes et R´eseaux) I5TC1 Licence L3 Informatique Communications

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Cours SR (Systèmes et Réseaux) I5TC1 Licence L3 Informatiquedcanl.free.fr/Etudes/COURS_L3/SYSTEME_RESEAU/CM/...Cours SR (Syst`emes et R´eseaux) I5TC1 Licence L3 Informatique Communications

Cours SR (Systemes et Reseaux) I5TC1 Licence L3 Informatique

Communications inter-systemes

Communications inter-systemes

1. Fonctionnement de l’Internet

2. Protocoles applicatifs

3. Programmation reseau

1 de 25

Page 2: Cours SR (Systèmes et Réseaux) I5TC1 Licence L3 Informatiquedcanl.free.fr/Etudes/COURS_L3/SYSTEME_RESEAU/CM/...Cours SR (Syst`emes et R´eseaux) I5TC1 Licence L3 Informatique Communications

Cours SR (Systemes et Reseaux) I5TC1 Licence L3 Informatique

Communications inter-systemes

Fonctionnement de l’Internet

Fonctionnement de l’Internet

Base sur une architecture TCP/IP du nom des deux principauxprotocoles utlises

Provient du reseau Arpanet de la Defense Americaine des annees70

Internet = des millions de reseaux utilisant des architecturesdifferentes, interconnectes par des noeuds d’interconnexion(routeurs).

2 de 25

Page 3: Cours SR (Systèmes et Réseaux) I5TC1 Licence L3 Informatiquedcanl.free.fr/Etudes/COURS_L3/SYSTEME_RESEAU/CM/...Cours SR (Syst`emes et R´eseaux) I5TC1 Licence L3 Informatique Communications

Cours SR (Systemes et Reseaux) I5TC1 Licence L3 Informatique

Communications inter-systemes

Fonctionnement de l’Internet

Architecture

Modèle OSI

1 Physique

2 Liaison

3 Réseau

4 Transport

5 Session

6 Présentation

7 Application Application:

Transport:

Inter−réseau:

Accès au réseau:Ethernet, TokenRing,FDDI, PPP,...

IP

TCP, UDP

SSH, HTTP,

Telnet, DNS, ...

Architecture TCP/IP

3 de 25

Page 4: Cours SR (Systèmes et Réseaux) I5TC1 Licence L3 Informatiquedcanl.free.fr/Etudes/COURS_L3/SYSTEME_RESEAU/CM/...Cours SR (Syst`emes et R´eseaux) I5TC1 Licence L3 Informatique Communications

Cours SR (Systemes et Reseaux) I5TC1 Licence L3 Informatique

Communications inter-systemes

Fonctionnement de l’Internet

Adresses

Chaque interface (d’acces au reseau) possede une adresse physiqueinscrite sur la carte (adr MAC 48bits pour carte Ethernet, uniqueau monde).

Au niveau IP(v4) : adresses de 32 bits = 4× 1 octet represente endecimal pointe.Ex : 192.52.237.36

future version IPv6 : adresses sur 128bits

cmd ifconfig pour voir les adresses des interfaces

4 de 25

Page 5: Cours SR (Systèmes et Réseaux) I5TC1 Licence L3 Informatiquedcanl.free.fr/Etudes/COURS_L3/SYSTEME_RESEAU/CM/...Cours SR (Syst`emes et R´eseaux) I5TC1 Licence L3 Informatique Communications

Cours SR (Systemes et Reseaux) I5TC1 Licence L3 Informatique

Communications inter-systemes

Fonctionnement de l’Internet

Exemple sous Linux

eth0 Link encap:Ethernet HWaddr 00:0D:56:01:13:C9

inet addr:193.52.237.96 Bcast:193.52.237.255 Mask:255.255.255.0

inet6 addr: 2001:1111::20d:56ff:fe01:13c9/64 Scope:Global

inet6 addr: fe80::20d:56ff:fe01:13c9/64 Scope:Link

lo Link encap:Local Loopback

inet addr:127.0.0.1 Mask:255.0.0.0

inet6 addr: ::1/128 Scope:Host

sit0 Link encap:IPv6-in-IPv4

NOARP MTU:1480 Metric:1

5 de 25

Page 6: Cours SR (Systèmes et Réseaux) I5TC1 Licence L3 Informatiquedcanl.free.fr/Etudes/COURS_L3/SYSTEME_RESEAU/CM/...Cours SR (Syst`emes et R´eseaux) I5TC1 Licence L3 Informatique Communications

Cours SR (Systemes et Reseaux) I5TC1 Licence L3 Informatique

Communications inter-systemes

Fonctionnement de l’Internet

Classes d’adresses

Chaque adresse = prefixe reseau + id machine

Classe A

id_machine10 préf

16 16

110 id_machpréfixe_réseau

24 8

1110 adresse de groupe

préf0 id_machine

8 24

Classe E

Classe C

Classe B

6 de 25

Page 7: Cours SR (Systèmes et Réseaux) I5TC1 Licence L3 Informatiquedcanl.free.fr/Etudes/COURS_L3/SYSTEME_RESEAU/CM/...Cours SR (Syst`emes et R´eseaux) I5TC1 Licence L3 Informatique Communications

Cours SR (Systemes et Reseaux) I5TC1 Licence L3 Informatique

Communications inter-systemes

Fonctionnement de l’Internet

Classes d’adresses

Ex : 192.52.237.36 est une adr de classe C,pref res=192.52.237, id machine=36

192.52.237.0 = adr du reseau192.52.237.1 ... 254 = adr possibles pour les machines192.52.237.255 adr de diffusion (broadcast) sur le reseau

La partie id machine peut encore etre decoupee parl’administrateur du site en id sous-reseau+ id machineC’est le masque de (sous)reseau qui indique jusqu’ou va la partieprefixe reseau/sous-reseau

7 de 25

Page 8: Cours SR (Systèmes et Réseaux) I5TC1 Licence L3 Informatiquedcanl.free.fr/Etudes/COURS_L3/SYSTEME_RESEAU/CM/...Cours SR (Syst`emes et R´eseaux) I5TC1 Licence L3 Informatique Communications

Cours SR (Systemes et Reseaux) I5TC1 Licence L3 Informatique

Communications inter-systemes

Fonctionnement de l’Internet

IP et le routage

Le protocole IP (Internet Protocol) s’occupe du routage despaquets (chemin qui va etre emprunte de la source a ladestination).

Pas de controle d’erreur ni perte de paquet => service minimum.

Format des paquets IPv4 :

8 de 25

Page 9: Cours SR (Systèmes et Réseaux) I5TC1 Licence L3 Informatiquedcanl.free.fr/Etudes/COURS_L3/SYSTEME_RESEAU/CM/...Cours SR (Syst`emes et R´eseaux) I5TC1 Licence L3 Informatique Communications

Cours SR (Systemes et Reseaux) I5TC1 Licence L3 Informatique

Communications inter-systemes

Fonctionnement de l’Internet

IP et le routage

Chaque paquet est route independament des autres (commutationde paquets).Chaque routeur possede une table de routage et en fonction del’adr dst, il choisit l’entree qui correspond le mieux et reemet lepaquet sur l’interface en sortie correspondante.La table est mise a jour par des protocoles distribues.

Commandes :route ou ip pour voir la table de routageping adrIP ou nom pour tester l’accesibilite d’une stationtraceroute adrIP ou nom pour voir le chemin jusqu’a ladestination

9 de 25

Page 10: Cours SR (Systèmes et Réseaux) I5TC1 Licence L3 Informatiquedcanl.free.fr/Etudes/COURS_L3/SYSTEME_RESEAU/CM/...Cours SR (Syst`emes et R´eseaux) I5TC1 Licence L3 Informatique Communications

Cours SR (Systemes et Reseaux) I5TC1 Licence L3 Informatique

Communications inter-systemes

Fonctionnement de l’Internet

Protocoles de transport : TCP et UDP

Au niveau transport, l’en-tete des paquets contient des champsnumero de port source et destination qui servent a indiquer aquelle application est destinee le paquet.Les numeros < 1024 sont affectes a des applicationss standard.Ex : HTTP=80, SSH=22, ... (voir le ficher /etc/services)

UDP (User Datagramm Protocol) : service de transport non fiableen mode non connecte = service mini IP + numero de port

10 de 25

Page 11: Cours SR (Systèmes et Réseaux) I5TC1 Licence L3 Informatiquedcanl.free.fr/Etudes/COURS_L3/SYSTEME_RESEAU/CM/...Cours SR (Syst`emes et R´eseaux) I5TC1 Licence L3 Informatique Communications

Cours SR (Systemes et Reseaux) I5TC1 Licence L3 Informatique

Communications inter-systemes

Fonctionnement de l’Internet

TCP

TCP (Transmission Control Protocol) : service de transport fiableen mode connecte (sur IP non fiable, sans connexion) =>

I etablissement, maintien et fermeture d’une connexion virtuelle

I acquitements, sequencement et reassemblage des donnees

I controle de flux par fenetre glissante

11 de 25

Page 12: Cours SR (Systèmes et Réseaux) I5TC1 Licence L3 Informatiquedcanl.free.fr/Etudes/COURS_L3/SYSTEME_RESEAU/CM/...Cours SR (Syst`emes et R´eseaux) I5TC1 Licence L3 Informatique Communications

Cours SR (Systemes et Reseaux) I5TC1 Licence L3 Informatique

Communications inter-systemes

Protocoles applicatifs

Protocoles applicatifs

La plupart fonctionne sur le mode client/serveur :client et serveurs sont deux processus situes le plus souvent sur desmachines differentes.Le serveur tourne en parmanence (en arriere plan : on parle dedemon en Unix).Le client envoie une ou plusieurs requetes au serveur qui repondpar une ou plusieurs reponses.

requeteServeur

Client1

Client2

réponse

12 de 25

Page 13: Cours SR (Systèmes et Réseaux) I5TC1 Licence L3 Informatiquedcanl.free.fr/Etudes/COURS_L3/SYSTEME_RESEAU/CM/...Cours SR (Syst`emes et R´eseaux) I5TC1 Licence L3 Informatique Communications

Cours SR (Systemes et Reseaux) I5TC1 Licence L3 Informatique

Communications inter-systemes

Protocoles applicatifs

Protocoles de gestion

NIS (Net Info Service, Yellow Pages) : admin centralisee desprincipales BD d’admin du systeme : /etc/passwd, group, hosts,network ...

NFS (Net File system) : permet le montage de disques eloignes.Le client utilise la cmd mount -t nfs

DNS (Domain Name Service) : permet de faire la correspondanceentre nom de domaine et adrIP. BD distribuee au niveau mondialcontient outes les correspondances.

SMTP : service d’envoi des mails

POP, IMAP : consultation de boites aux lettres distantes

SNMP : administration du reseau a distance

13 de 25

Page 14: Cours SR (Systèmes et Réseaux) I5TC1 Licence L3 Informatiquedcanl.free.fr/Etudes/COURS_L3/SYSTEME_RESEAU/CM/...Cours SR (Syst`emes et R´eseaux) I5TC1 Licence L3 Informatique Communications

Cours SR (Systemes et Reseaux) I5TC1 Licence L3 Informatique

Communications inter-systemes

Protocoles applicatifs

Protocoles d’acces a distance

Les commandes a distance : ajout d’un r devant la commandeusuellersh execution d’une commande sur machine distanterlogin connexion a machine distantercp copie sur ..

TELNET (Terminal Emulation Network) : lancement d’unterminal (fenetre shell) sur machine distante (remplace rlogin)cmd telnet nomMachine ou adrIP

14 de 25

Page 15: Cours SR (Systèmes et Réseaux) I5TC1 Licence L3 Informatiquedcanl.free.fr/Etudes/COURS_L3/SYSTEME_RESEAU/CM/...Cours SR (Syst`emes et R´eseaux) I5TC1 Licence L3 Informatique Communications

Cours SR (Systemes et Reseaux) I5TC1 Licence L3 Informatique

Communications inter-systemes

Protocoles applicatifs

Protocoles d’acces a distance

SSH (Secure SHell) : version securisee de telnet utilisant lemecanisme RSAssh user@host command : ouverture de la session sur host etexec de la cmd apres identificationFTP (File Transfert Protocol) : transfert de fichiers vers et depuisune machine distanteftp hostget fileput file2sftp= version securisee utilisant sshscp= version securisee de rcpHTTP (HyperText Transfert Protocol) : protocole de tranfert dedocuments hypertextes

15 de 25

Page 16: Cours SR (Systèmes et Réseaux) I5TC1 Licence L3 Informatiquedcanl.free.fr/Etudes/COURS_L3/SYSTEME_RESEAU/CM/...Cours SR (Syst`emes et R´eseaux) I5TC1 Licence L3 Informatique Communications

Cours SR (Systemes et Reseaux) I5TC1 Licence L3 Informatique

Communications inter-systemes

Programmation reseau

Les sockets

Socket = API permettant l’acces aux fonction de la couchetransport. Apparues en 82 sur BSD4.1c, l’equivalent system V senomme les TLI (Transport Layer Interface). Ecrites en C toutes lesdeux.

Nous allons voir les sockets de BSD4.3 utilisees par les applimajeures (named, dhcpd, sendmail, httpd, ...).

16 de 25

Page 17: Cours SR (Systèmes et Réseaux) I5TC1 Licence L3 Informatiquedcanl.free.fr/Etudes/COURS_L3/SYSTEME_RESEAU/CM/...Cours SR (Syst`emes et R´eseaux) I5TC1 Licence L3 Informatique Communications

Cours SR (Systemes et Reseaux) I5TC1 Licence L3 Informatique

Communications inter-systemes

Programmation reseau

Les sockets

Socket = prise = extremite d’un canal de communication. Cepoint est represente par une variable entiere (descripteur) similairea un descripteur de fichier.

Generalisation du mecanisme d’E/S d’Unix : meme type demecanisme, mais specificites dues aux caracteristiques un peuspeciales des E/S reseau :- non symetrie de relation cli/serv- connexion de type connecte ou non, definie par quintuplet :(proto, adr locale, process local, adr eloignee, process eloigne)- l’interface doit permettre d’acceder a differents protos (TCP,UDP, XNS, ...pas specifique a TCP/IP)

17 de 25

Page 18: Cours SR (Systèmes et Réseaux) I5TC1 Licence L3 Informatiquedcanl.free.fr/Etudes/COURS_L3/SYSTEME_RESEAU/CM/...Cours SR (Syst`emes et R´eseaux) I5TC1 Licence L3 Informatique Communications

Cours SR (Systemes et Reseaux) I5TC1 Licence L3 Informatique

Communications inter-systemes

Programmation reseau

Creation et fermeture d’une socket

Creation d’une socket :int sd=socket(int domain, int type, int proto)

domaine= AF UNIX (domaine local), AF INET (IPv4, AF INET6(IPv6), ...type= SOCKSTREAM, SOCKDGRAM, SOCKRAW, ...proto= IPPROTO UDP, IPPROTO TCP, ... mais souvent mis a 0car couple domaine/type fixe le proto :AF INET + SOCKSTREAM = TCPAF INET + SOCKDGRAM = UDPAF INET + SOCKRAW = IP

Fermeture : close(sd)

18 de 25

Page 19: Cours SR (Systèmes et Réseaux) I5TC1 Licence L3 Informatiquedcanl.free.fr/Etudes/COURS_L3/SYSTEME_RESEAU/CM/...Cours SR (Syst`emes et R´eseaux) I5TC1 Licence L3 Informatique Communications

Cours SR (Systemes et Reseaux) I5TC1 Licence L3 Informatique

Communications inter-systemes

Programmation reseau

Association d’un port et d’une adresse IP a la socket

int bind(int sd, struct sockaddr *monAddr,socklen\_t tailleAddr)

struct sockaddr_un {

short sun_family; // AF_UNIX

char sun_path[128]; // chemin d’acces du fichier

}

struct sockaddr_in {

short sin_family; // AF_INET

unsigned short sin_port; // num port

struct in_addr sin-addr; // IP 32 bits

char sin_zero[8]; // inutilise

}

struct in-addr {

unsigned long s_addr; // 32 bits

}

19 de 25

Page 20: Cours SR (Systèmes et Réseaux) I5TC1 Licence L3 Informatiquedcanl.free.fr/Etudes/COURS_L3/SYSTEME_RESEAU/CM/...Cours SR (Syst`emes et R´eseaux) I5TC1 Licence L3 Informatique Communications

Cours SR (Systemes et Reseaux) I5TC1 Licence L3 Informatique

Communications inter-systemes

Programmation reseau

Connexion et envoi des donnees

int connect(int sd, struct sockaddr*serveurAddr,socklen t tailleAddr)fait par client pour mode connecte

Envoi de donnees : primitives write, send, sendto, sendmsgsendto et sendmsg reclament l’adr dst a chaque envoi

Reception : read, readv, recv, recvfrom, recvmsg

File d’attente : int listen(int sf, int tailleFile)Met en file d’attente les demandes de connexion provenant desclients

20 de 25

Page 21: Cours SR (Systèmes et Réseaux) I5TC1 Licence L3 Informatiquedcanl.free.fr/Etudes/COURS_L3/SYSTEME_RESEAU/CM/...Cours SR (Syst`emes et R´eseaux) I5TC1 Licence L3 Informatique Communications

Cours SR (Systemes et Reseaux) I5TC1 Licence L3 Informatique

Communications inter-systemes

Programmation reseau

Accepter un connexion

Quand le serveur invoque accept, il se met en attente bloquanted’une connexion.int accept (int sd, struct sockaddr*serveurAddr,socklen t tailleAddr)retourne le descr d’une nouvelle sock utilisee pour dialoguer avecclient et remplit la struct avec addr du client.

21 de 25

Page 22: Cours SR (Systèmes et Réseaux) I5TC1 Licence L3 Informatiquedcanl.free.fr/Etudes/COURS_L3/SYSTEME_RESEAU/CM/...Cours SR (Syst`emes et R´eseaux) I5TC1 Licence L3 Informatique Communications

Cours SR (Systemes et Reseaux) I5TC1 Licence L3 Informatique

Communications inter-systemes

Programmation reseau

Mode connecte

sd=socket()

bind(sd)

listen(sd)

sd2=accept(sd)

read(sd2)

write(sd2)

close(sd2)

SERVEUR

sd=socket()

connect(sd)

write(sd)

read(sd)

close(sd)

CLIENT

22 de 25

Page 23: Cours SR (Systèmes et Réseaux) I5TC1 Licence L3 Informatiquedcanl.free.fr/Etudes/COURS_L3/SYSTEME_RESEAU/CM/...Cours SR (Syst`emes et R´eseaux) I5TC1 Licence L3 Informatique Communications

Cours SR (Systemes et Reseaux) I5TC1 Licence L3 Informatique

Communications inter-systemes

Programmation reseau

Mode non connecte

CLIENT

bind(sd)

sd=socket()

recvfrom(sd)

sendto(sd)

bind(sd)

sd=socket()

recvfrom(sd)

sendto(sd)

close(sd)close(sd)

SERVEUR

23 de 25

Page 24: Cours SR (Systèmes et Réseaux) I5TC1 Licence L3 Informatiquedcanl.free.fr/Etudes/COURS_L3/SYSTEME_RESEAU/CM/...Cours SR (Syst`emes et R´eseaux) I5TC1 Licence L3 Informatique Communications

Cours SR (Systemes et Reseaux) I5TC1 Licence L3 Informatique

Communications inter-systemes

Programmation reseau

Serveur recursif

Pour pouvoir traiter plusieurs clients en meme temps : duplicationde processus (fork()) ou processus legers (threads)

Primitives de lectures/ecriture sont bloquantes par defaut (on peutles rendre non bloquantes a l’aide de la primitive fcntl()).Donc si le prg attend des donnees sur un descripteur, il ne peutrien faire d’autre pendant ce temps.

Primitives de scrutation de descripteurs de fichier : select (BSD)et poll(SystemV)

24 de 25

Page 25: Cours SR (Systèmes et Réseaux) I5TC1 Licence L3 Informatiquedcanl.free.fr/Etudes/COURS_L3/SYSTEME_RESEAU/CM/...Cours SR (Syst`emes et R´eseaux) I5TC1 Licence L3 Informatique Communications

Cours SR (Systemes et Reseaux) I5TC1 Licence L3 Informatique

Communications inter-systemes

Programmation reseau

Scrutation de descripteurs

Select permet de surveiller un ensemble de descripteurs

Si aucun actif, process endormi, pas de ressources CPU utilisees,des qu’un descr devient actif, le noyau reveille le process et selectse termine avec infos sur le descr qui a provoque le reveil.

On doit : 1) remplir une struct fd set avec les descr a surveiller, 2)appel au select 3) tester chacun des descripteurs

poll() propose les memes fonctionnalites, mais avec une approchelegerement differente : on rempli un tab de struct pollfd, puis appela poll sur le tab, puis on regarde si donnees dispo sur chaque descr

25 de 25