The VRNet Project

The Virtual Reality Network


Liu Kiat and Cyril Bouteille

ESSI3 SAR 1997


Internet Project coordinated by :
Michel Buffa
Peter Sander
and Jean-Michel Leon

I. Preface

  1. Goal
  2. Duration
  3. Related project
  4. The network environment under test
  5. Implementation Tools

II. Using VRNet

  1. System requirements

  2. Installing the application

  3. Running the program

  4. Viewing the generated VRML file

The ESSI network in VRML 2.0
Sorry for the poor quality of this grab, it has been taken using an SGI with a 8-bit only graphic card.


III. Implementation overview

    The ESSI network comprises various different entities, namely hosts (SunSparc, PCs, Silicon Graphics terminals), bridges (Xyplex and Cisco routers, powerhubs) and printers. All these entities are organised in subnetworks.

    The implementation of this application involves 3 distinct phases :

  1. Gathering network information
  2. Understanding the topology and building a graph of the network

  3. Modeling the whole network in VRML

IV. Problems encountered

  1. The "moving ESSI"
    During our work, we unfortunately had to face some network modification in the topology. It's quite difficult to make your program see the network as you think it is whereas it has just changed the eve.
    The biggest problem went from the fact that the system administration had just bought a new machine called a PowerHub which integrates the ATM technology. It's why several routers have disappeared unexpectally...
    It is a very powerful router that supports hundreds of LANs and hosts but it is quite "discret", we mean it is very hard to detect ! It has not facilitate our task !

  2. The access permissions
    Several LANs and routers of the network are not accessible from the poor students that we are ;-). It's especially the case for the teacher's network for example.
    So as it wasn't possible for us to get their routing table, we had to imagine and hardcode them in our program in order to simulate their access.

  3. The JDK bugs
    We began the project using the 1.0.2 release of the JDK but faced a bug of its implementation of the Thread.
    In order to code "cleanly", our threads yield the CPU when they are waiting for a shell script to finish, unfortunately it wasn't possible for our timeout threads to wake up them if the script was to long to execute (the code of the interrupt() method of threads was empty!!!).
    So we updated our program to the 1.1 release where this bug is fixed. We said this bug, because we off course encountered others... (like waitFor() that never returns even if the script is finished and join() that also doesn't return all the time. cf V.1)

  4. Identifying routers
    As we said in the III.2 chapter, we have spent a long time to discover how to identify real routers without cheating by hardcoding them.
    We had to deeply study the problem and have tested several solutions :

V. Conclusion

  1. Known Bugs
  2. Possible extensions
    The VRNet software has been designed to fully support the following extensions.
    The VRML 2.0 standard has been especially chosen to allow a dynamic behavior of the 3D network. Unfortunately we have a lot od ideas but haven't got the time to carry them out.
  3. Experience acquired
    This project was very interesting, and although a lot of problems have arisen, it was a very exciting experience for the following reasons :

Please contact us by e-mail for any question or comments.
Liu Kiat and Cyril Bouteille, Students at the Ecole Superieure en Sciences Informatiques
" Potius mori quam foedari "