AppelContribution

Sommaire

Nos appels à contributions

La grenouille a besoin de vous !

Dans l'optique de rendre notre système de mesure toujours plus complet et fiable, plusieurs évolutions doivent être finalisés :

Appel pour intégration des mesures relatives au projet C'MON

Nous allons rajouter des nouvelles mesures expérimentales dont nous allons donner les spécifications plus bas.

Nous cherchons des bonnes âmes pour nous aider à :

  • Intégrer l'acquisition et la coordination des nouvelles mesures niveau serveur;
  • Augmenter la granularité temporelle de l'acquisition et de la coordination des mesures;
  • Intégrer les nouvelles mesures dans le nouveau client modulaire coregrenouille.

Pour la partie serveur, nous cherchons des développeurs parlant le PHP, le SQL et le (X)HTML.

Pour le client, vous avez l'embarras du choix niveau langage du Ocaml en passant par le Visual Basic en finissant par le C car çà sera un module qui s'interfacerera avec coregrenouille. Idéalement, le module de mesure devra être portable.

Pour participer à ce projet, la première étape est de s'inscrire à notre liste de discussion devel@grenouille.com (Voir la page Participation pour les modalités d'inscription).

Nous utilisons le logiciel git ou subversion pour gérer les sources de nos logiciels, clients comme serveur et TRAC comme outil de suivi du projet.

Notre bac à sable pour tester les nouvelles mesures est ici : http://prototype.grenouille.com.

Avant incorporation de votre code dans le subversion ou git, il sera testé avec notre prototype.

Si vous pouviez nous fournir des patchs au format unifié ou une sortie d'un

   svn diff > patch_name.patch

ou

   <modifications>
   git commit -a -s 
   <modifications>
   git commit -a -s
   ...
   git format-patch --cover-letter origin/master 
   git send-email --annotate --to "devel@lists.grenouille.com" *.patch

ça nous faciliterait grandement la tache ;-)

Architecture globale cible

Introduction

We try here to define a first approach about the following problem: how can several users, from the same ISP and in the same city, estimate the properties of their paths to the Internet ? How to use the spatial diversity that several users offer ? How to best conduct this collaborative monitoring ? We also address these issues within the Grenouille context. We argue that the Grenouille clients ought to be synchronized in an appropriate way for measurements to be exploitable. Hence the concept of coherence of the Grenouille clients by analogy with the coherence of waves. This concept of Coherent Grenouille has significant implications on the design of the server, measurements and client that we try to explicit here.

General ideas

Local network as a tree:

We assume that the access network in the considered city is a tree. It is well-known that the Internet backbone is not a tree, and that multiple paths are available in order to ensure accessibility. However, for access networks are trees; the root of the tree is then the PE (entry point) of the network.

Local correlation:

Assuming that we have enough ISP clients in the same geographic area, they are likely to share common links and routers in their paths to the entry point of the access network. As a result, in case of bad network conditions, several users will experience these bad conditions and it might be possible to diagnose and localize the failure or the location of congestion by correlating the location of users and the badness they experience. The (best) possible way to implement these collaborative techniques is not yet determined but we can already give a few ideas on what is required for this to work.

Home network identification :

One difficulty of the current Grenouille is that there is no way, in case of bad network condition, to determine whether the problem is located in the home network or in the access network. This has some importance because it changes who is responsible of the problem. With collaborative measurements, it might be possible to deduce when the problem is located in the home network. One case might be when no other client experiences bad conditions. The problem is then most likely located either in the home network or in the link between the box and the first telephone switch : since this last line should be in stable condition, a problem that is not stable should be located in the home network.

Requirements

For the server side

  • Acquire knowledge on the access network users belong to.
  • Coordinate clients in such a way that they conduct measurements in the same time window at least for clients in the same access network. This is the core of the Coherent Grenouille, which is to be contrasted with a collection of incoherent grenouilles.
  • Compute the estimation of the access network conditions based on measurement from all clients and using the geographic information alluded to above. This estimation can be done either in a centralized way or alternatively via a P2P communication and overlay structure.
  • Since the server(s) will trigger the Coherent Grenouille, it will be their responsibility to make it sure that the measurements do not overload the network. This especially means that the total number/rate of probes sent by participating users at a given time and through any network element that they use should be controlled.

For the client side:

  • Preserve anonymity: this principle can be viewed in 2 different ways. Strongly interpreted, it means that participating users should not be identifiable. A weaker interpretation means that participating users could be identified, but that their use of their Internet access should not be identifiable.
  • Adapt to the local network: the client software should be able to work through firewall / ISP boxes.
The 2 Phases

Testbed period:

In order to develop and confirm our techniques, we will need a first "testbed" period, there we can use plenty of information, and ideally measure (or confirm) the real ground truth (the real value of the estimated quantity). It seems that the Free network has more accessible information; it is hence a good candidate, especially in a large city (where large means that we have sufficient many users to test our techniques). It is possible that during this phase, we need some information that are contrary to the anonymity principle.

Large scale period:

When the techniques are developed and confirmed to be accurate and useful, we should be able to adapt them in order to reduce the information needed, and to increase the client anonymity.

End to end probing design and architecture

The new measurement agent

Coregrenouille

Module de mesure One

Spécifications à venir et définir.

Module de mesure Two

Spécifications à venir et définir.

Fiches de postes pour recrutement rémunéré

Aspects communs aux deux fiches de poste :

Durée du stage : 6 mois.
Lieu du stage : Laboratoire d'Informatique de Paris-VI (LIP6), département NPA.
Outils à maitriser : subversion (SCM) (optionnel), mediawiki, TRAC, mailing listes, IRC.
Une expérience associative ou dans un projet FOSS serait appréciable.
Organisé et autonome.
Maitrise de l'anglais.

Cadre du projet : C’MON, ou collaborative monitoring, est un projet ambitieux de métrologie d'Internet depuis sa périphérie financé par l'ANR, l'agence nationale de la recherche. Dans le projet C’MON, nous essayons d'inférer les performances des FAIs à partir de mesures faites par les utilisateurs d'Internet. C'MON démarre sur la base des logiciels de supervision de grenouille.com en vue de les améliorer avec de nouvelles mesures et de nouvelles méthodes d'inférence.

Le consortium derrière le projet C'MON comprend le laboratoire d'informatique de Paris VI (LIP6), L'école normale supérieure (ENS), l'institut national de recherche en informatique et automatique section Planet (INRIA Planet), le laboratoire de recherche de Thomson et grenouille.com.

Ingénieur Stagiaire Développement Windows

Rôle :

Dans le cadre d'un projet de recherche national, vous interviendrez en tant que développeur Windows dans une unité de recherche réputée. Votre rôle est principalement de concevoir et de développer une interface graphique conviviale et ergonomique s'intégrant avec les outils en cours de développement et également de faire évoluer le protocole de communication entre l'agent de mesure et le serveur de contrôle.

Profil :

  • Bac + 5 en informatique, vous avez une première expérience réussie dans la conception d'interface graphique.
  • Vous connaissez les outils de développement et les langages utiles à la conception sous Windows.
  • Vous maîtrisez les concepts avancés des API Windows tant sur le plan de l'interface graphique que de la couche réseau.
  • Vous avez une première expérience de programmation sur d'autres systèmes d'exploitation que Windows et connaissez les problématiques de portabilité.
  • Vous connaissez TCP/IP ainsi que les concepts de base et/ou avancés de la métrologie des réseaux.
  • Vous savez définir les spécifications d'un protocole de communication client/serveur basé sur une architecture REST.
  • Optionnellement, vous devrez implémenter un module complexe de mesure active de façon portable et l'interfacer dans l'agent de mesure.
  • Idéalement vous avez conçu des applications complètes incluant des fonctions de type installeur ou encore des services Windows.
  • Optionnellement vous connaissez des métalangages tel que OCaml.

Ingénieur Stagiaire Développement Unix

Rôle :

Dans le cadre d'un projet de recherche national, vous interviendrez en tant que développeur Unix dans une unité de recherche réputée. Votre rôle sera de concevoir et de développer des composants logiciels de la partie serveur sur les serveurs Linux de notre projet.

Profil :

  • Bac + 5 en informatique, vous avez une première expérience réussie dans la conception de site web dynamique.
  • Vous connaissez l'environnement d'un serveur Web sous Linux.
  • Vous maîtrisez les composants fondamentaux du développement Web sous Linux tel que Apache, MySQL ou encore PHP et vous savez comment insérer ces composants dans une architecture REST et les choisir de façon optimale.
  • Vous êtes capable de définir des structures de données en SQL évolutives qui répondent à des besoins actuels et futures et le protocole de communication sur du HTTP qui identifie chaque structure pour chaque client dans une architecture de type REST.
  • Vous avez une première expérience réussie dans le développement de sites web ou en administration Unix.
  • Les architectures des "botnet" ne vous sont idéalement pas étrangères et vous avez des idées sur comment les adapter et les implémenter à une architecture REST.
  • Vous êtes idéalement capable de spécifier puis implémenter dans le détail une architecture REST en fonction d'une expression des besoins.
  • Idéalement vous avez participé à un développement collaboratif.
  • Vous avez déjà expérimenté les concepts avancés de la programmation Web tel que Ajax, Java, ou encore les web services dans une architecture REST.
De Wiki Grenouille.
Powered by MediaWiki
GNU Free Documentation License, sous les copyrights des membres de l