Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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