Présentation du protocole Skype

Afin de pouvoir comprendre le fonctionnement des divers processus de Skype nous allons d'abord vous présenter l'architecture globale du protocole.

Skype est un client VoIP fonctionnant grâce au système du peer-to-peer, il va ainsi s'appuyer sur les autres utilisateurs afin de transmettre les flux de voix ou de données.

Au sein du réseau skype il existe deux types de noeud : Les clients ordinaires et ce que l'on appellera les "super node". Les clients ordinaires sont, comme leur nom l'indique des applications Skype transmettant des flux de voix. Les "Super nodes" permettent eux de transmettre les flux entre les différents utilisateurs. Tous les clients Skype qui possèdent les capacités requises (CPU, mémoire et bande passante suffisante) peuvent devenir des Super nodes. Ceux-ci agissent bien entendu également comme des clients ordinaires en permettant de transmettre leurs propres flux.

Une autre entité importante du réseau skype est le serveur de login. Tous les clients doivent s'authentifier auprès de celui-ci pour s'assurer que les identifiants soient uniques sur le réseau. Ce serveur est la seule entité centralisée du protocole Skype.

Toujours afin de comprendre l'achitecture globale du protocole voici une liste des composants clefs d'un client :

  • Ports d'écoutes pour les communications
  • Table d'adresse des Super nodes (Host Cache)
  • Les codecs
  • Encryption
  • Détection du Firewall et du NAT