• Aucun résultat trouvé

1.Fonctionnementdel’Internet2.Protocolesapplicatifs3.Programmationr´eseau Communicationsinter-syst`emes

N/A
N/A
Protected

Academic year: 2022

Partager "1.Fonctionnementdel’Internet2.Protocolesapplicatifs3.Programmationr´eseau Communicationsinter-syst`emes"

Copied!
25
0
0

Texte intégral

(1)

Communications inter-syst` emes

1. Fonctionnement de l’Internet 2. Protocoles applicatifs

3. Programmation r´eseau

(2)

Fonctionnement de l’Internet

Bas´e sur une architecture TCP/IP du nom des deux principaux protocoles utlis´es

Provient du r´eseau Arpanet de la D´efense Am´ericaine des ann´ees 70

Internet = des millions de r´eseaux utilisant des architectures diff´erentes, interconnect´es par des noeuds d’interconnexion (routeurs).

(3)

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

(4)

Adresses

Chaque interface (d’acc`es au r´eseau) poss`ede une adresse physique inscrite sur la carte (adr MAC 48bits pour carte Ethernet, unique au monde).

Au niveau IP(v4) : adresses de 32 bits = 4×1 octet repr´esent´e en d´ecimal point´e.

Ex :192.52.237.36

future version IPv6 : adresses sur 128bits

cmdifconfigpour voir les adresses des interfaces

(5)

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

(6)

Classes d’adresses

Chaque adresse = prefixe r´eseau + id machine

Classe A

id_machine 10 préf

16 16

110 préfixe_réseau id_mach

24 8

1110 adresse de groupe préf

0 id_machine

8 24

Classe E Classe C Classe B

(7)

Classes d’adresses

Ex :192.52.237.36est une adr de classe C, pref res=192.52.237, id machine=36 192.52.237.0= adr du r´eseau

192.52.237.1 ... 254= adr possibles pour les machines 192.52.237.255adr de diffusion (broadcast) sur le r´eseau La partie id machine peut encore ˆetre d´ecoup´ee par

l’administrateur du site en id sous-r´eseau+ id machine

C’est le masque de (sous)r´eseau qui indique jusqu’o`u va la partie pr´efixe r´eseau/sous-r´eseau

(8)

IP et le routage

Le protocole IP (Internet Protocol) s’occupe du routage des paquets (chemin qui va ˆetre emprunt´e de la source `a la d´estination).

Pas de contrˆole d’erreur ni perte de paquet =>service minimum.

Format des paquets IPv4 :

(9)

IP et le routage

Chaque paquet est rout´e ind´ependament des autres (commutation de paquets).

Chaque routeur poss`ede une table de routage et en fonction de l’adr dst, il choisit l’entr´ee qui correspond le mieux et r´e´emet le paquet sur l’interface en sortie correspondante.

La table est mise `a jour par des protocoles distribu´es.

Commandes :

routeouip pour voir la table de routage

ping adrIP ou nompour tester l’accesibilit´e d’une station traceroute adrIP ou nompour voir le chemin jusqu’a la destination

(10)

Protocoles de transport : TCP et UDP

Au niveau transport, l’en-tˆete des paquets contient des champs num´ero de port source et destination qui servent `a indiquer `a quelle application est destin´ee le paquet.

Les num´eros <1024 sont affect´es `a des applicationss standard.

Ex : HTTP=80, SSH=22, ... (voir le ficher /etc/services)

UDP(User Datagramm Protocol) : service de transport non fiable en mode non connect´e = service mini IP + num´ero de port

(11)

TCP

TCP(Transmission Control Protocol) : service de transport fiable en mode connect´e (sur IP non fiable, sans connexion) =>

I ´etablissement, maintien et fermeture d’une connexion virtuelle

I acquitements, s´equencement et r´eassemblage des donn´ees

I contrˆole de flux par fenˆetre glissante

(12)

Protocoles applicatifs

La plupart fonctionne sur le mode client/serveur :

client et serveurs sont deux processus situ´es le plus souvent sur des machines diff´erentes.

Le serveur tourne en parmanence (en arri`ere plan : on parle de d´emon en Unix).

Le client envoie une ou plusieurs requˆetes au serveur qui r´epond par une ou plusieurs reponses.

requete

Serveur Client1

Client2

réponse

(13)

Protocoles de gestion

NIS(Net Info Service, Yellow Pages) : admin centralis´ee des principales BD d’admin du syst`eme : /etc/passwd, group, hosts, network ...

NFS(Net File system) : permet le montage de disques ´eloign´es.

Le client utilise la cmdmount -t nfs

DNS(Domain Name Service) : permet de faire la correspondance entre nom de domaine et adrIP. BD distribu´ee au niveau mondial contient outes les correspondances.

SMTP: service d’envoi des mails

POP, IMAP: consultation de boites aux lettres distantes SNMP: administration du r´eseau `a distance

(14)

Protocoles d’acc` es ` a distance

Les commandes `a distance :ajout d’un r devant la commande usuelle

rshex´ecution d’une commande sur machine distante rloginconnexion `a machine distante

rcpcopie sur ..

TELNET(Terminal Emulation Network) : lancement d’un terminal (fenˆetre shell) sur machine distante (remplace rlogin) cmdtelnet nomMachine ou adrIP

(15)

Protocoles d’acc` es ` a distance

SSH(Secure SHell) : version s´ecuris´ee de telnet utilisant le m´ecanisme RSA

ssh user@host command: ouverture de la session sur host et exec de la cmd apres identification

FTP(File Transfert Protocol) : transfert de fichiers vers et depuis une machine distante

ftp host get file put file2

sftp= version s´ecuris´ee utilisant ssh scp= version s´ecuris´ee de rcp

HTTP(HyperText Transfert Protocol) : protocole de tranfert de documents hypertextes

(16)

Les sockets

Socket = API permettant l’acc`es aux fonction de la couche transport. Apparues en 82 sur BSD4.1c, l’´equivalent system V se nomme les TLI (Transport Layer Interface). Ecrites en C toutes les deux.

Nous allons voir les sockets de BSD4.3 utilis´ees par les appli majeures (named, dhcpd, sendmail, httpd, ...).

(17)

Les sockets

Socket = prise = extr´emit´e d’un canal de communication. Ce point est repr´esent´e par une variable enti`ere (descripteur) similaire

`a un descripteur de fichier.

G´en´eralisation du m´ecanisme d’E/S d’Unix : mˆeme type de m´ecanisme, mais sp´ecificit´es dues aux caract´eristiques un peu sp´eciales des E/S r´eseau :

- non symetrie de relation cli/serv

- connexion de type connect´e ou non, d´efinie par quintuplet : (proto, adr locale, process local, adr ´eloign´ee, process ´eloign´e) - l’interface doit permettre d’acc´eder `a diff´erents protos (TCP, UDP, XNS, ...pas sp´ecifique `a TCP/IP)

(18)

Cr´ eation et fermeture d’une socket

Cr´eation 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 0 car couple domaine/type fixe le proto :

AF INET + SOCKSTREAM = TCP AF INET + SOCKDGRAM = UDP AF INET + SOCKRAW = IP Fermeture :close(sd)

(19)

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’acc`es 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]; // inutilis´e

}

struct in-addr {

unsigned long s_addr; // 32 bits

(20)

Connexion et envoi des donn´ ees

int connect(int sd, struct sockaddr

*serveurAddr,socklen t tailleAddr) fait par client pour mode connect´e

Envoi de donn´ees :primitives write, send, sendto, sendmsg sendto et sendmsg r´eclament l’adr dst `a chaque envoi R´eception : read, readv, recv, recvfrom, recvmsg

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

(21)

Accepter un connexion

Quand le serveur invoqueaccept, il se met en attente bloquante d’une connexion.

int accept (int sd, struct sockaddr

*serveurAddr,socklen t tailleAddr)

retourne le descr d’une nouvelle sock utilis´ee pour dialoguer avec client et remplit la struct avec addr du client.

(22)

Mode connect´ e

sd=socket() bind(sd) listen(sd) sd2=accept(sd)

read(sd2) write(sd2) close(sd2)

sd=socket()

connect(sd) write(sd) read(sd) close(sd)

(23)

Mode non connect´ e

CLIENT bind(sd) sd=socket()

recvfrom(sd) sendto(sd) bind(sd)

sd=socket()

recvfrom(sd) sendto(sd)

close(sd) close(sd)

SERVEUR

(24)

Serveur r´ ecursif

Pour pouvoir traiter plusieurs clients en mˆeme temps : duplication de processus (fork()) ou processus l´egers (threads)

Primitives de lectures/´ecriture sont bloquantes par d´efaut (on peut les rendre non bloquantes `a l’aide de la primitive fcntl()).

Donc si le prg attend des donn´ees sur un descripteur, il ne peut rien faire d’autre pendant ce temps.

Primitives de scrutation de descripteurs de fichier :select(BSD) etpoll(SystemV)

(25)

Scrutation de descripteurs

Select permet de surveiller un ensemble de descripteurs

Si aucun actif, process endormi, pas de ressources CPU utilis´ees, d`es qu’un descr devient actif, le noyau reveille le process et select se termine avec infos sur le descr qui a provoqu´e 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 fonctionnalit´es, mais avec une approche l´eg`erement diff´erente : on rempli un tab de struct pollfd, puis appel a poll sur le tab, puis on regarde si donn´ees dispo sur chaque descr

Références

Documents relatifs

With the creation of the Interior Gateway Routing Protocol (IGRP) in the early 1980s, Cisco Systems was the first company to solve the problems associated with using RIP to

Chaque bloc de jonction à ressort de la gamme AB1 RRN a la possibilité d’accueillir une fiche test qui est directement en contact avec les conducteurs. Les fiches de

La gestion de la commande et la détermination des moyens de transports ont été étudié de manière minutieuse et avec une comparaison objective pour une meilleure prise de décision

Une fois le code de confirmation validé, le responsable doit saisir l’ensemble des dates de naissance de ses enfants.. Ecran de création de mot

3.4 Proc´ edures compl´ ementaires dans l’´ etude des s´ eries formelles 12 3.5 Exemples num´ eriques d’´ etudes compl´ ementaires des s´ eries formelles 13 4 Vecteurs

Aller dans votre messagerie académique et cliquer sur le lien présent dans le mail pour confirmer votre inscription. Si le lien n’est pas cliquable, le copier-coller dans la

Savoir d´ efinir les notions d’apprentissage automatique Savoir d´ efinir apprentissage supervis´ e et non-supervis´ e Connaitre la notion de sur-apprentissage.. Connaitre les

Arbre de d´ ecision Inf´ erence bay´ esienne R´ eseau bay´ esien. Classification non param´ etrique Intelligence