1 / 108

Environnements virtuels distribués

Environnements virtuels distribués. A. Branzan-Albu et D. Laurendeau Dép. de génie électrique et de génie informatique Université Laval. Introduction. Définition, caractéristiques et défis posés aux environnements virtuels répartis. Qu’est-ce qu’un EV distribué?.

wyman
Download Presentation

Environnements virtuels distribués

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Environnements virtuels distribués A. Branzan-Albu et D. Laurendeau Dép. de génie électrique et de génie informatique Université Laval

  2. Introduction Définition, caractéristiques et défis posés aux environnements virtuels répartis

  3. Qu’est-ce qu’un EV distribué? • C’est un environnement virtuel: • Où plusieurs utilisateurs peuvent interagir en temps réel même si ces utilisateurs sont situés à des lieux physiques différents • Qui permet aux utilisateurs de percevoir les informations visuelles en trois dimensions • Qui permet aux utilisateurs de percevoir les informations sonores en stéréo

  4. Caractéristiques recherchées • Un EV distribué devrait offrir aux utilisateurs: • Un sens de partage de l’espace virtuel (« shared sense of space ») i.e. un participant a l’impression d’être dans le même lieux physique que les autres • Un sens de présence: un utilisateur occupe l’environnement virtuel grâce à un avatar et a conscience de la présence des autres utilisateurs grâce à leurs avatars • Un sens de partage du temps: un utilisateur devrait percevoir les événements survenant dans l’EV en même temps que les autres • Un ou des moyens de communication par exemple via des interfaces haptiques, visuelles ou graphiques • Un ou des moyens de partager et d’interagir de manière réaliste avec les objets du monde virtuel et avec l’environnement lui-même

  5. Défis posés aux EV distribués • Les EV distribués • Sont soumis aux contraintes du réseau: délais, collisions, jitter, pertes de communication, partage des ressources de bande passante; • Doivent assurer des performances d’affichage graphique acceptables afin que l’évolution du monde virtuel soit réaliste et perceptuellement correcte • Doivent assurer un niveau acceptable d’interactivité en temps réel (input en temps réel des utilisateurs pour modifier le monde, etc.)

  6. Défis posés aux EV distribués (2) • Les EV distribués • Doivent intégrer des bases de données sur les propriétés du monde et de ses composantes • Doivent éventuellement permettre d’identifier les participants (« user authentification ») • Doivent permettre de stocker l’évolution du monde à un moment donné afin de le réactiver plus tard.

  7. Défis posés aux EV distribués (3) • Les EV distribués • Doivent tenir compte des limites de bande passante sur le réseau et du type de connexion des utilisateurs (haute vitesse, modem, etc.) • Doivent assurer un fonctionnement en temps réel • Single-threaded • Multi-threaded • Rafraîchissement graphique • Interaction avec les utilisateurs • Accès aux données partagées

  8. Défis posés aux EV distribués (4) • Les EV distribués • Doivent prévoir les cas de panne et d’interruption de fonctionnement • Arrêt du système: peut causer la perte des résultats d’une simulation • Fermeture du système: peut interrompre l’accès à de nouveaux utilisateurs sans perturber les utilisateurs existants • Dégradation du système: quelques composantes d’un système peuvent fonctionner de manière sous-optimale sans interrompre la simulation

  9. Défis posés aux EV distribués (5) • Les EV distribués • Doivent pouvoir être « scalés » pour permettre une croissance dans les simulations • Nombre d’entités • Nombre d’utilisateurs • La « scalabilité » a une complexité qui croît de manière exponentielle avec le nombre d’entités qui peuvent interagir entre elles

  10. Défis posés aux EV distribués (6) • Les EV distribués • Doivent pouvoir être déployés et configurés facilement, spécialement pour ceux faisant appel à l’Internet

  11. Communications réseau Notions et concepts de base

  12. Notion de réseau • Définition de réseau en EV distribués: medium pour l’échange de données et d’information entre plusieurs hôtes participant à une expérience virtuelle partagée

  13. Notions fondamentales de transfert de données (1) • Latence de réseau: temps requis pour transférer un bit de data d’un point à un autre • La latence a un impact direct sur: • Le réalisme d’une expérience virtuelle • Les concepteurs d’EV ne peuvent rien contre la latence

  14. Latence du réseau (2) • Origines de la latence: • Limites physiques de la vitesse de la lumière • dans les fibres optiques, il faut 21 ms pour transmettre un message de l’atlantique au pacifique. Cette durée est supérieure pour les liens satellites • Délais de traitement par les ordinateurs hôtes causés par le hardware et le software

  15. Latence du réseau (3) • Origines de la latence (2): • Délais dans le réseau lui-même causés par l’instrumentation réseau: routeurs, commutateurs, etc.

  16. Latence du réseau (4) • Ordre de grandeur des délais de latence: • Variable: • Ethernet (LAN): 10 ms • Modem: 100 ms • Ethernet (WAN) • Transcontinental: 60-150 ms • Intercontinental: 250-500 ms

  17. Notions fondamentales de transfert de données (2) • Bande passante: taux avec lequel le réseau peut transférer les données entre l’ordinateur source et l’ordinateur destination • Elle est limitée par le type de substrat sur lequel les données sont transmises (câble, fibre)

  18. A. Branzan-Albu & D. Laurendeau GIF-66800 Bande passante (2) • La bande passante est aussi limitée par le hardware de transmission • Modem: 14 Kbps à 56 Kbps/s (limite physique de la ligne téléphonique elle-même est de 64 Kbps) • Ethernet: 10 Mbps, 100 Mbps, 1 Gbps • Fibres optiques modernes: 10 Gbps

  19. Notions fondamentales de transfert de données (3) • Distinction entre latence et bande passante: • Bande passante: nombre de bits par seconde qui peuvent passer dans un medium (si on les regardait passer) • Latence: délai du transfert, soit le temps nécessaire au transfert d’un bit d’un point à un autre

  20. Distinction entre latence et bande passante • Latence et bande passante décrivent un réseau, mais ne sont pas reliées: • Un réseau à grande largeur de bande peut avoir une latence faible • Un réseau à faible bande passante peut avoir une grande latence

  21. Notions fondamentales de transfert de données (4) • Fiabilité du réseau: • Mesure qui donne les performances du réseau quant à la quantité des données qui sont perdues entre la source et la destination

  22. Fiabilité du réseau (2) • 2 catégories de défaillances du réseau: • « dropping »: les données émises par la source n’atteignent jamais la destination parce qu’elles ont été détruites par le réseau • « corruption »: les données se rendent de la source à la destination, mais sont inutilisables car elles ont été modifiées durant leur trajet

  23. Fiabilité du réseau (3) • Causesprincipales du manque de fiabilité: • Mauvaises connexions (rare): 1 bit/1010 sur les réseaux câblés. Cette performance est plus réduite sur les réseaux sans fil. • Routeurs de réseaux: les erreurs sont particulièrement causées par des quantités trop importantes de données à traiter par rapport aux ressources de calcul disponibles. En période de pointe, les pertes peuvent être de 50%...pour être négligeables à d’autres moments.

  24. Fiabilité du réseau (4) • Méthodes utilisées pour augmenter la fiabilité du réseau: • Utilisation de « checksums » transmis avec les données et vérifiés par le destinataire. Certains systèmes possèdent aussi des codes correcteurs d’erreur. • Utilisation d’un protocole basé sur un « accusé de réception » (acknowledge): si une source ne reçoit pas un accusé de réception d’une destination après un certain laps de temps, elle retransmet les données en faisant l’hypothèse qu’elles ont été perdues.

  25. Notions fondamentales de transfert de données (5) • Protocoles réseau • Un protocole est un ensemble de règles que deux applications respectent pour communiquer entre elles

  26. Protocoles réseau • Un protocole repose sur: • Un format de paquets de données qui décrit à quoi les données ressemblent • Une sémantique de paquets qui décrit comment les paquets sont structurés • Une politique de traitement des erreurs

  27. Protocoles réseau (2) • Il existe des milliers de protocoles réseau • Les machines utilisent souvent plusieurs protocoles pour accomplir diverses tâches

  28. Communications réseau L’architecture des socketsBSD

  29. Les sockets BSD • L’architecture des sockets BSD permet aux machines qui envoient et recoivent des paquets de données de décider à quelle application ces paquets sont destinés • L’architecture des sockets BSD repose sur deux éléments principaux: • Les sockets • Les ports

  30. Les sockets BSD (2) • Les applications communicant par le réseau le font via un « socket » • Un « socket » est une représentation abstraite d’un point terminal d’un canal de communication • Les sockets peuvent représenter plusieurs types de canaux de communication

  31. Les sockets BSD (3) • Schéma type d’une communication par sockets: • L’hôte source transmet un paquet d’information sur le socket en incluant • Le type de protocole • L’adresse de l’ordinateur hôte (réception) • Le numéro de port de l’application (réception) • L’adresse de l’ordinateur source (transmission) • Le port de l’application d’envoi

  32. Les sockets BSD (3) • Les sockets peuvent représenter plusieurs types de canaux de communication: • Communications fiables avec destination unique • Communications peu fiables avec destination unique • Communications fiables avec destinations multiples • Communications mémoire avec une autre application sur la même machine • Peu importe le type de canal de communication, l’application voit une abstraction unique

  33. Les sockets BSD (4) • Un socket identifie au moins les 5 types d’information suivants sur un canal de communication: • Le protocole: comment le système d’exploitation gère l’échange d’information (avec acknowledge ou non, etc.) • L’hôte de destination de l’information: adresse de réception de l’information transmise sur ce socket

  34. Les sockets BSD (5) • Numéro d’identification de l’application (ID), ou port: ce numéro identifie le port approprié sur l’hôte de destination. Pour chaque protocole, chaque port est numéroté grâce à un nombre entier codé sur 16 bits. En spécifiant le protocole et le numéro de port dans chaque paquet d’information, la source s’assure que la destination peut fournir l’information à la bonne application

  35. A. Branzan-Albu & D. Laurendeau GIF-66800 Les sockets BSD (5) • Numéro de l’ordinateur hôte: cette adresse identifie l’ordinateur qui transmet les informations. Ce numéro est rarement utilisé sauf lorsque l’ordinateur est muni de plusieurs cartes de communication réseau • Numéro local de l’application (ou numéro de port): nombre de 16 bits identifiant l’application qui transmet l’information sur le socket. Avec le numéro de l’ordinateur hôte, ce numéro permet à l’hôte de destination de transmettre des paquets en réponse à l’application source.

  36. A. Branzan-Albu & D. Laurendeau GIF-66800 Les ports (1) • L’utilisation des ports est l’un des fondements de la communication par sockets • Chaque application choisit un numéro de port et, en diffusant ce numéro avec l’adresse hôte, s’assure que d’autres applications peuvent s’y connecter et y transmettre des informations • Il existe 65536 ports. Les systèmes d’exploitation peuvent donc supporter plusieurs applications simultanément

  37. A. Branzan-Albu & D. Laurendeau GIF-66800 Les ports (2) • Deux applications qui communiquent entre elles ne sont pas tenues d’utiliser le même numéro de port • Chaque hôte attribue les numéros de port aux applications de manière indépendante et chaque paquet contient donc à la fois le numéro de port source et ne numéro de port destination

  38. A. Branzan-Albu & D. Laurendeau GIF-66800 Les ports (3) • Si les numéros de port sont arbitraires, comment une application fait-elle pour en trouver une autre afin d’établir une communication? • Par exemple, comment un fureteur peut-il savoir le numéro de port à utiliser pour parler aux serveurs WWW?

  39. A. Branzan-Albu & D. Laurendeau GIF-66800 Les ports (4) • Réponse: • Les numéros de port entre 1 et 1023 sont réservés pour des applications courantes connues des systèmes d’exploitation • Les numéros de port 1024 à 49151 sont enregistrés pour être utilisés par des protocoles bien connus

  40. A. Branzan-Albu & D. Laurendeau GIF-66800 Les ports (5) • Réponse (suite): • Par exemple, le protocole HTTP utilise le serveur 80 • Le port 25 est utilisé par le protocole SMTP pour le service de courriel • Le port 1080 est utilisé pour définir un périmètre de sécurité de pare-feu • L’assignation des numéros de port est sous le contrôle de IANA (Internet Assigned Numbers Authority)

  41. A. Branzan-Albu & D. Laurendeau GIF-66800 Les ports (6) • Conséquences sur le design d’applications de VR distribuée: • L’application de VR doit utiliser un numéro de port non enregistré • L’usage recommande d’utiliser un numéro de port entre 49152 et 65532 • Si une application devient populaire, il est préférable de demander un numéro enregistré à l’IANA

  42. Le protocole IP (Internet Protocol) Notions de base

  43. Introduction • La grande majorité des ordinateurs utilisent le protocole IP pour communiquer • IP est un protocole de bas niveau utilisé par les ordinateurs et les routeurs dans le but de transmettre des informations d’un point à un autre

  44. Introduction (3) • Le protocole IP cache aux ordinateurs le fait que le canal de transmission puisse être hétérogène (i.e. contenir des liens téléphoniques, des liens à fibres optiques et des liens sans fil) • IP inclut des fonctionnalités pour la segmentation et le réassamblage (SAR) des paquets • L’en-tête de IP contient aussi un champ TTL (Time-To-Live) qui spécifie le nombre maximum de fois qu’un paquet peut être relayé, ce qui empêche que le même paquet soit relayé infiniment

  45. Les protocoles Internet pour les EV distribués TCP, UDP, Multicasting et Broadcasting

  46. Le protocole TCP • Transmisssion Control Protocol (TCP) est le protocole le plus fréquemment utilisé sur Internet • TCP est implanté au-dessus de IP et en exploite les services de bas niveau, d’où l’appellation fréquemment rencontrée de TCP/IP

  47. Le protocole TCP (2) • TCP/IP donne l’impression à une application qu’elle entretient une communication point-à-point avec une autre application

  48. Le protocole TCP (3) • Principales caractéristiques de TCP/IP: • Connexion point-à-point bi-directionnelle • Utilisation de messages d’accusé de réception (acknowledge) • Retransmission des paquets perdus • Sémantique de protocole de type « stream » (i.e. les données sont ordonnées et les messages transmis sont ré-assemblés dans le bon ordre par l’hôte de réception • La connexion s’assure que le flot de transmission ne dépasse pas la capacité du réseau ni la puissance de calcul de l’unité de réception

  49. Le protocole UDP • User Datagram Protocol (UDP) est un protocole léger pour la communication entre applications

  50. Le protocole UDP (2) • Principales caractéristiques de UDP: • Contrairement à TCP, UDP n’assure pas une connexion entre les participants d’une communication (aucune information sur l’état de la communication n’est conservé) • Transmission « best-effort » des paquets (i.e. aucun accusé de réception ni retransmission des paquets perdus. Un paquet perdu ne pourra jamais être retrouvé!) • Sémantique de protocole basée sur les paquets (les données sont transmises un paquet à la fois indépendamment des autres paquets) • UDP requiert des paquets de petite taille car s’ils sont fragmentés, il faut s’assurer que leur contenu ne sera pas perdu)

More Related