Filière : Master Mathématiques-Informatique
Unité d'Enseignement : M1
Matière : Réseaux et Applications Réparties
Semestre(s) d'ouverture : S8
Volume Horaire en présence d'enseignants : 30

Équipe pédagogique : Sacha Krakowiak, Pascal Sicard, Fabienne Boyer, Philippe Bidinger, Alan Schmitt, Christophe Lachenal, Phong Nguyen


Répartition : 12 C, 18 TD machine
Volume Horaire estimé de travail personnel : 30
Pré-requis :

Connaissances de la Licence d'Informatique, notamment ALM, Intro. Systèmes et Réseaux
Systèmes et Réseaux vus du point de vue de l'utilisateur
Cours "Conception des Systèmes d'Exploitation" de M1

Objectifs :

Supposant connus les principes de base et l'utilisation des réseaux et systèmes, ce cours vise à approfondir la conception et la réalisation des protocoles de réseau et des applications réparties, en montrant la continuité entre les deux domaines. Pour les réseaux, le travail porte sur les niveaux transport, réseau et physique. Pour les applications réparties, sur l'organisation client-serveur. Dans les deux cas, on visera à mettre en évidence les principes d'organisation architecturale, notamment au moyen de patrons et canevas logiciels. 

Programme
voir programme détaillé 
1. Réseaux et protocoles. (6 heures de cours)

Introduction aux réseaux, protocoles, interfaces.
Couche physique : exemple d'Ethernet
Couche réseau : protocole IP, principe du routage
Couche transport : protocole UDP ; protocole TCP, récupération d'erreur, contrôle de flux.
On mettra en évidence le lien entre couches basses des protocoles et noyaux de systèmes.

2. Construction d'applications réparties. (6 heures de cours)

Principes de la programmation répartie : schéma client-serveur, événements
Patrons de base (proxy, fabrique).
Illustration pratique par sockets, RPC, Java RMI
On mettra en évidence le lien entre applications réparties et protocoles de réseaux (réalisation d'intergiciel client-serveur au moyen de la couche transport)

Travaux dirigés/pratiques

6 séances de 3 heures (sur machines)

1. Mise en place et configuration d'un réseau Ethernet, observation de paquets (ping,arp ), mesures de performances et observation de collisions

2. Observation et analyse de protocoles : ARP, TCP, UDP

3. Observation et analyse de IP. Compréhension du routage. Routage statique, utilisation de RIP

4. Mise en oeuvre de la couche transport par les sockets. Utilisation des sockets pour programmer une application répartie élémentaire.

5. Protocole Java RMI. Utilisation de Java RMI pour programmer une application répartie élémentaire (1)

6. Protocole Java RMI. Utilisation de Java RMI pour programmer une application répartie élémentaire (2)

Bibliographie sommaire

Kurose & Ross, Computer Networking, Addison-Wesley, 2000  (partie)
Peterson & Davie, Computer Networks, a Systems Approach, 2nd edition, Morgan Kaufmann, 2001 (partie)
Toutain, Réseaux locaux et Internet, 2ème édition, Hermès, 1999
Coulouris & Dollimore, Distributed Systems, 3rd ed, Addison-Wesley, 2001 (partie)