Skip to main content.

    Master Informatique - Spécialité Science et Ingéniérie Informatique


Parcours Logiciel et Réseaux - Ingéniérie


                                                             

        Navigation: Accueil | Tronc Commun | Parcours Logiciel et Réseaux - IngéniérieParcours Logiciel et Réseaux - Science

Objectifs

La spécialité Logiciel et Réseaux propose un parcours "ingénierie" à orientation professionnelle préparant aux fonctions d'ingénieur logiciel ou ingénieur réseau et un parcours "science" à vocation   recherche préparant à une poursuite en doctorat. Les thèmes principaux du parcours "ingénierie" sont: la maitrise du développement des logiciels et plus particulièrement des logiciels répartis, la maitrise des architectures et des protocoles des réseaux  de nouvelle génération. Le parcours "recherche" est plus centré sur les aspects fondamentaux de l'informatique et des réseaux. L'algorithmique y a une place importante, on y étudie par exemple les problèmes posés par la conception d'applications temps réel pour des environnements mono ou multiprocesseurs et pour des architectures distribuées. Les protocoles de communication, les transmissions multimédia, les systèmes de sécurité pour les réseaux mobiles ad'hoc et pour les réseaux de capteurs.

Organisation

La spécialité débute au second semestre de master1 et se poursuit pendant les deux semestres de master2

Enseignements de master 1: Tronc Commun des parcours ingéniérie et science

Master 1 / Second Semestre


Programmation d'application réseau

Le cours présente les concepts et mécanismes réseaux que peut utiliser un programmeur d'application haut niveau, en l'illustrant avec les API de Java: interfaces, adresses, sockets et communications  en UDP et TCP. Au delà de ces bases. L'accent est mis sur les spécificités de la programmation d'applications communiquantes, comme l'utilisation du multi-threads ou des entrées-sorties non bloquantes. Le protocole HTTP sert de base pour illustrer les communications de type requête-réponse, sans état, et les mécanismes qui permettent de réaliser du suivi de session. Le cours amorce des réflexions sur l'équilibrage de charge, le pair-à-pair, et la manière dont un protocole peut être conçu et mis en oeuvre pour répondre à un besoin précis. Les TD consistent à programmer des exemples assez simples pour mettre en oeuvre les concepts vus en cours, utiliser les API existantes et prendre conscience des contraintes de programmation et d'architecture liées aux applications réseaux (entrées-sorties, encodages, multi-threads...). Un projet de conception et/ou mise en oeuvre d'un protocole permet aux étudiants de réaliser une application plus complète.


Temps Réel: Principes et application


Le langage Java a été initialement conçu par Sun pour faciliter le développement d'applications embarquées avec un objectif d'indépendance vis à vis des systèmes d'exploitation et des équipements physiques. Cet objectif a été atteint au détriment de l'expression de modèles de comportement comme la politique d'ordonnancement et de synchronisation ou la politique de gestion de la mémoire.
La première spécification Java pour le temps réel (RTSJ) publiée en Mars 2001 propose une extension à la plateforme Java standard pour le développement d'applications temps réel. Le développement d'une machine de référence et les retours d'expérience issus des nombreux travaux de recherche menés autour de cette nouvelle technologie ont permis de nombreuses corrections dans les versions 1.0.1 (Aout 2004) et 1.0.2 (Juillet 2006). Le premier objectif de ce cours et de présenter les principes de l'ordonnancement temps réel. Le second objectif de ce cours est de pésenter les principes de développement d'applications temps réel avec la spécification pour Java Temps Réel (RTSJ). Nous décrirons les différents types d'entités ordonnançables supportées RTSJ ainsi que leurs caractéristiques (modèles d'ordonnancement, modèles d'activation, modèles de mémoire). L'analyse de faisabilité permet de garantir le respect des contraintes temporelles d'un système de tâches. La compréhension de la méthode d'analyse est indispensable. Nous décrirons les politiques de contrôle d'accès à des ressources partagées supportées (protocoles PIP et PCE) ainsi que l'influence sur l'analyse de faisabilité du système. Nous décrirons les mécanismes prévu pour la détection des fautes temporelles comme le dépassement d'une échéance, le dépassement de durée d'exéciution spécifiée ou enfin le non respect de la fréquence maximale d'arrivée d'un tâche sporadique.


Réseaux locaux et réseaux d'accès


L'objectif du cours est de connaitre et de comprendre les différentes technologies des réseaux locaux filaires ainsi que les protocoles et technologies des réseaux d'accès (boucle locale filaire, optique, Wimax, ADSL). La première partie du cours débute par un rappel sur les codages et méthodes d'accès des réseaux filaires (4B/5B, CSMA/CD). Les concepts et techniques avancées des réseaux Ethernet sont ensuite présentés (Ethernet partagé, Ethernet commuté, fonctionnement d'un switch, Gigabit Ethernet). Enfin, sont abordés les réseaux locaux virtuels (VLAN) et les protocoles de communication associés (niveau 1, 2, 3). La deuxième partie du cours concerne les réseaux d'accès. Seront donc abordés les technologies présentes sur la boucle locale filaire (supports en paire cuivrée et fibre optique, modulation ADSL, répartiteurs, dégroupage) ainsi que les solutions sans fil permettant d'offrir un accès dans des zones non câblées (WiMAX).

    Parcours Logiciel et Réseaux - Ingéniérie




Master 2 / Premier Semestre


En option:  Vérification des logiciels  (Arnaux Carayol - UPEMLV)

Master 2 / Second Semestre


En option: Codage et transmission multimédia (Alain Fromentel - EFREI) ou Qualité de service et applications (Hakim Badis - UPEMLV)


Interface Graphique

Java 2 Enterprise Edition

Très prisées par les entreprises, les technologies Java EE apportent une boite à outils puissante et standardisée pour les développeurs et ingénieurs. Les étudiants sont familiarisés avec les différentes composantes qui forment Java EE. Un accent particulier est mis sur les méthodes issues du monde professionnel qui entourent ces technologies. Le cours présente dans un premier temps les bases de J2EE: le JDBC, les Servlets et les JSP, les Java Beans, la sécurité et le déploiement d'applications sur le Web. La seconde partie du cours traitera de de J2EE en environnement distribué: les mécanismes de localisation avec JNDI, Java Messaging, les appels de méthodes a distance avec RMI et le protocoles IIOP. Les services de synchronisation JTA/JTS et les EJB.

Programmation Concurrente

L'objectif du cours est de comprendre les spécificités de la programmation concurrente et de savoir proposer et mettre en oeuvre des algorithmes et applications concurrentes en Java.
La programmation concurrente consiste à étudier les mécanismes proposés par les processeurs, les noyaux des OS et la machine virtuelle Java (plus particulièrement les paquetage java.util.concurrent.* de la JSR166) permettant d'effectuer plusieurs t‚ches en parallele à l'intérieur d'un mÍme programme, de fixer des points de rendez-vous entre ces t‚che, d'échanger des données. De plus, nous verrons en détails le modèle de mémoire (JSR 133) de Java comparé avec l'ancien modèle (pre-Java 1.5) ansi qu'à d'autre modèles de mémoire. Enfin, nous nous attarderons sur des structures de données concurrentes et les modèles de consistance associés.
  

Construction d'Applications Réparties

Le cours présente les méthodes et outils offerts par la spécification CORBA. Spécification basée sur l'utilisation d'un langage de description d'interfaces (IDL : Interface Description Language).
Nous débuterons le cours par la description de la structure d'une application client/serveur Corba puis nous présenterons différentes techniques d'implantation des objets applicatifs (héritage, délégation).
Nous montrons les mécanismes d'invocations statiques et dynamiques; les mécanismes de localisation des objets en mettant en oeuvre le service de nommage Corba. Nous présenterons comment gérer les références locales (réferences persistentes ou volatiles, les références multiples. Les intercepteurs sont des mécanismes permettant de surcharger le code d'une application. Nous présenterons les intercepteurs de requÍte et les intercepteurs d'IOR. Une dernière partie du cours porte sur l'étude et la mise en oeuvre des mécanismes évènementiels de CORBA tels que le service d'évènements et les service de notification.

Routage

Le rôle d'un routeur est d'acheminer des paquets entre différents réseaux. Pour cela, il se base sur une table de routage comportant les éléments nécessaires (adresse du réseau, masque du réseau, adresse IP du routeur cible, interface de sortie) au transfert du paquet. De plus le routeur doit connaitre tous les numéros de réseaux pour lesquels il doit Ítre capable de faire du routage (ou utilisation d'une route par défaut). Pour éviter un paramétrage manuel fastidieux de ces tables de routage, surtout si le nombre de réseaux et de sous réseaux est important, on utilise le routage dynamique qui s'effectue par des protocoles appelés protocoles de routage. Il existe deux principales familles : les protocoles internes (IGP : Interior Gateway Protocol) qui établissent les tables de routage des routeurs appartenant à une entité unique appelée AS (Autonomous System : système autonome) et les protocoles externes (EGP : Exterior Gateway Protocol) permettant l'échange des informations entre ces systèmes autonomes. Au sein des protocoles internes, il existe deux types : les protocoles à vecteur de distance (Distant Vector Protocol) qui utilisent le saut de routeur comme métrique, et les protocoles à états de liens (Link State Protocol). L'objectif de ce cours est de comprendre et mettre en oeuvre des protocoles de routage unicast (RIP, OSPF, BGP, etc.) et multicast (IGMP, DVMRP, PIM, MOSPF) dans les réseaux IP.

Réseaux sans fil

L'objectif du cours est de connaitre et de comprendre les différentes technologies des réseaux sans fils et de savoir a quels types d'usage se rapportent les principales technologies (Wifi, WiMax, Bluetooth). Le cours débute par des généralités  sur les liaisons radio et la propagation des ondes. Sont ensuite abordées les différentes méthodes d'accès au support (centralisés, déterministes, avec collisions). Après une classification des catégories de réseaux sans fils (WPAN, WLAN, WMAN, WWAN), les caractéristiques et technologies de ces différents réseaux sont présentées : les réseaux locaux WLAN (WiFi, IEEE 802.11, UWB, IEEE 802.15.3); les réseaux personnels WPAN (Bluetooth, IEEE 802.15.1, ZigBee, IEEE 802.15.4); les réseaux d'accès WMAN (WiMAX, IEEE 802.16).

Réseaux cellulaires

Les systèmes de communication cellulaires se sont développés en plusieurs générations. La première génération était analogique. La deuxième génération (2G) est numérique mais orienté mode circuit avec le standard le plus répondu dans le monde GSM (Global System for Mobile communication) qui offre un service de voix de 9,6kbits/s et qui permet un transfert de données à faible vitesse. Il existe une génération dite deux et demi (2G+) avec le GPRS (General Packet Radio Service) qui est une évolution du système GSM qui permet en agrégeant plusieurs canaux de voix d'offrir une commutation en mode paquet allant jusqu'à 115kbits/s. La troisième génération (3G) permet d'utiliser la commutation en mode paquet dans contexte multimédia. Le nom générique pour les différentes normes 3G est IMT-200 qui regroupe : (i) l'UMTS (Unuiversal Mobile Telecommunications System) en Europe qui promet un transfert des données avec un débit théorique allant jusqu'à 2 Mbps dans les configurations à courte portée (picocellules) mais généralement 100kbit/s avec des cellules plus grande (micro-cellules), (ii) CDMA2000 aux Etats-Unis qui est une évolution de CDMAOne (Code Division Multiple Access) et W-CDMA (WideBand CDMA) au japon, et (iii) EDGE (Enhanced Data rates for Global Evolution) parfois appelé E-GPRS (Enhanced GPRS) qui est une évolution du GPRS et du TDMA. La technologie HSDPA (High-Speed Downlink Packet Access) est un protocole de téléphonie mobile de troisième génération baptisé " 3.5G " permettant d'atteindre des débits de l'ordre de 8 à 10 Mbits/s. La technologie HSDPA utilise la bande de fréquence 5 GHz et utilise le codage W-CDMA.
Les objectifs de ce cours ne sont pas simplement de présenter un état des lieux des technologies existantes mais aussi : i) d'évaluer ces différentes technologies de façon critique et de les comparer en termes de performances, ii) de faire le lien entre les aspects théoriques constituant les fondements des systèmes de communications cellulaires numériques et les aspects pratiques et réels auxquels sont confrontées les équipes intervenant à différents niveaux (dimensionnement des réseaux cellulaires, planification du sous-système radio, planification du sous-système réseau, déploiement du réseau, qualité de service, optimisation et densification du réseau).

Programmation générique Avancée

Ce cours présente des concepts plus avancés de programmation générique. Tout d'abord une introduction à la
méta-programmation: hiérarchies automatiques, calcul de constantes à la compilation... Ensuite, on présentera les techniques de "polymorphisme statique", qui seront illustrées par la présentation de versions statiques de quelques modèles de conception simples: visiteur, décorateur, fabrique.

Technologie des coeurs de réseaux

L'objectif du cours est de connaitre et comprendre les différentes technologies des coeurs de réseau (Sonet SDH ATM MPLS IPV6) et de connaitre l'organisation hiérarchique de l'Internet.
La première partie du cours présente l'architecture et du réseau coeur de l'Internet. En particulier  l'organisation hiérarchique des routeurs et commutateurs de l'Internet et les protocoles associés sont abordés (systèmes autonomes, EGP, IGP, POP, Gigarouteur). L'organisation de l'adressage, l'utilisation conjointe d'IPV4 et d'IPV6 ainsi que le routage sans classe (CIDR) sont également détaillés.
La deuxième partie traite des technologies rencontrées aux différents niveaux du réseau coeur, en particulier les mécanismes de transport de niveau 2 et 3 (SDH, SONET, ATM) ainsi que les techniques et protocoles de commutation de paquet (MPLS, LSR). Le protocole ATM est né de l'idée que les réseaux destinés à la transmission de la voix (réseau téléphonique), de la video (réseau cablé), et des données (jusqu'alors dominé par le système BISDN pour Broadband Integrated Services over Digital Network) devaient fusionner et n'utiliser plus qu'un réseau de c‚bles commun, ainsi qu'un protocole commun. Les caractéristiques du protocole reflètent les objectifs alors visés par le forum ATM : le protocole ATM s'appuie sur la notion de circuit virtuel, ce qui constitue un compromis entre des protocoles basés sur des circuits physiques comme ISDN, et ceux basés sur des paquets envoyés sans qu'une connexion soit préalablement établie (Switched Virtual Connexion) comme ethernet. le protocole ATM est orienté connexion, ce qui signifie que deux machines qui veulent communiquer commencent par établir une connexion avant d'envoyer leurs données, avec un risque minimal de pertes de celles-ci, et une efficacité maximale pour leur traitement, ce qui permet notament d'avoir une garantie sur le temps maximal qu'un paquet passera dans un switch. D'autre part, l'ATM utilise des petits paquets (appellés cellules) de 48 octets de données et 5 d'en-tÍte, soit 53 octets.
IPv6 est la nouvelle version de l'Internet Protocol. Il devrait se substituer progressivement au protocole IPv4 responsable de l'interconnexion des milliers de réseaux de l'Internet mondial. Il a été principalement conçu afin d'étendre l'espace d'adressage actuel devenu trop petit. Les adresses IPv6 128-bit multiplient de ce fait la taille de l'Internet puisque l'espace d'adressage passe maintenant à 296 adresses utilisables.

Conduite de projet

Lors du lancement d'un projet, il importe de ne pas oublier d'activités, de mettre en place une organisation ou chacun sait ce qu'il aura à faire et quels engagements il doit prendre. L'ensemble doit permettre de calculer un planning et le plan de charge des ressources pour vérifier l'adéquation entre le processus de développement, les moyens disponibles et les échéances. Les "techniques projets" sont des techniques indépendantes du type de projet et qui contribuent à son lancement, son organisation, son suivi et son pilotage. Le cours présente :

Sécurité des Réseaux

Les objectifs du cours sont de permettre aux étudiants de connaitre la problématique de sécurisation de réseaux et des systèmes, de savoir définir une stratégie de sécurisation pour une entreprise et de connaitre et maitriser certains outils et techniques liés à la sécurité informatique.
Après une présentation chiffrée des enjeux de la sécurité, le cours décrit les principaux concepts de la sécurité informatique en s'appuyant sur des exemples. Les Méthodes et Normes, maintenant disponibles en sécurité informatiques, sont abordées et reliées aux concepts présentés.  Le cours définit ensuite dans le détail les éléments d'une politique de sécurité et aborde enfin les composants d'une architecture sécurisée. Une dernière partie traite de certains points techniques particuliers liés à la sécurité informatique : les techniques d'authentification et de sécurisation des données, les réseaux sans-fil, les Réseaux Privés Virtuels, les Plans de Continuité d'Activité.
Le TP sécurisation consiste à protéger une machine de type serveur Web/FTP (Linux - Apache - ProFTP) par sécurisation de son environnement (paramètres kernel, protections fichiers, politique de mots de passe, TCP Wrapping, configuration du Firewall interne [utilisation de netfilter]) et de ses applications (configuration apache, ajout du module SSL, configuration FTP, configuration SSH). Une fois les protections en place, le TP propose la mise en place d'IDS (système [TripWire] et Réseau [Snort]) et l'utilisation rapide d'outils d'audit (Nmap, Nessus). (Durée 8h, utilisation d'Internet pour la recherche d'informations).\\
Le TP intrusion aborde différentes vulnérabilités couramment rencontrés dans des applications de type Web (Cross Site Scripting, Access Control, Hidden Form Field Manipulation, Weak Session Cookies, SQL Injection, Web Services, etc...) au travers de l'outil WebGoat proposé par la communauté OWASP (Open Web Application Security Project). Son objectif est d'apprendre à connaÓtre ces vulnérabilités, leur cause et la façon de les éviter lors du développement d'une application Web.

OPTION: Qualité de service et applications

Le modèle IntServ est difficilement applicable dans le cas de grands réseaux. En effet, il est difficile de maintenir un état de ressources réseau pour chaque flux si le chemin emprunté change fréquemment. Cela est due au fait que le routage est indépendant de la gestion de QoS. Ce problème de stabilité ne se pose pas dans les réseaux ATM gr‚ce à l'utilisation d'un routage hiérarchique incluant la QoS: PNNI hiérarchique. Le modèle DiffServ consiste à classer le trafic gr‚ce à un code présent dans le paquet IP. On applique ensuite des traitements différenciés aux différentes classes de trafic. Nous avons donc affaire à une granularité moins fine mais qui devient en revanche plus scalable. En effet, la granularité du flot implique la réaction en chaîne suivante : plus il y a d'utilisateurs dans le réseau, plus il y a de flots, plus il y a de variables de classifications et d'ordonnancements dans les routeurs à maintenir, ce qui a pour conséquence une charge importante au niveau des routeurs qui deviennent alors de moins en moins performants. Ce cours a pour objectif  dans un premier temps d'étudier et comparer les modèles de QoS existants (IntServ, DiffServ et MPLS) et ensuite de comprendre et mettre en oeuvre es applications comme la VoIP et la vidéo en streaming. Le modèle IntServ est difficilement applicable dans le cas de grands réseaux. En effet, il est difficile de maintenir un état de ressources réseau pour chaque flux si le chemin emprunté change fréquemment. Cela est d˚ au fait que le routage est indépendant de la gestion de QoS. Ce problème de stabilité ne se pose pas dans les réseaux ATM gr‚ce à l'utilisation d'un routage hiérarchique incluant la QoS: PNNI hiérarchique. Le modèle DiffServ consiste à classer le trafic gr‚ce à un code présent dans le paquet IP. On applique ensuite des traitements différenciés aux différentes classes de trafic. Nous avons donc affaire à une granularité moins fine mais qui devient en revanche plus scalable. En effet, la granularité du flot implique la réaction en chaine suivante : plus il y a d'utilisateurs dans le réseau, plus il y a de flots, plus il y a de variables de classifications et d'ordonnancements dans les routeurs à maintenir, ce qui a pour conséquence une charge importante au niveau des routeurs qui deviennent alors de moins en moins performants.

OPTION: Codage et transmission multimédia

Après avoir défini et caractérisé l'information multimédia, on étudiera d'abord les moyens de représentation de cette information, puis on examinera les volumes et débits requis face aux capacités et bandes passantes respectives des supports de stockage et des canaux de transmission.
On étudiera alors des systèmes de compression, sans ou avec perte d'information, adaptés aux problématiques mises en évidence, puis les systèmes de codage et de modulation propres à pouvoir réaliser physiquement le stockage et la transmission. On conclura en faisant une étude sur des systèmes complets tels que le DVD (digital versatile disc) et le DVB (digital video broadcasting)
Les techniques multimédia traitent des informations liées au son et à l'image, données destinées à l'homme et empruntant des canaux de transmission ou des supports de stockage numériques. Cette bivalence nécessite de tenir compte aussi bien des propriétés et limitations physiologiques liées à la perception humaine des sons et des images qu'aux débits ou capacités que peuvent supporter les médias de communication. Ainsi, il apparaÓt nécessaire de comprimer l'information, compte tenu des ordres de grandeurs atteints. Enfin, le concept de diffusion des données multimédia entraÓne la nécessité d'une normalisation pour tous les niveaux de la transmission.
Ce cours comprend trois parties: l'information multimédia : on y aborde les éléments de physiologie audiovisuelle; la compression des données : on y présente les systèmes de compression adaptés à l'information audiovisuelle; la transmission des données : on y présente les différents moyens techniques mis en oeuvre pour assurer le stockage sur support mécanique ainsi que la diffusion hertzienne (ou c‚blée) de l'information numérique multimédia.



OPTION: