OSCAR (protocole)

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Ce modèle est-il pertinent ? Cliquez pour en voir d'autres.
Cet article ne cite pas suffisamment ses sources (décembre 2013).

Si vous disposez d'ouvrages ou d'articles de référence ou si vous connaissez des sites web de qualité traitant du thème abordé ici, merci de compléter l'article en donnant les références utiles à sa vérifiabilité et en les liant à la section « Notes et références » (modifier l'article, comment ajouter mes sources ?).

Page d'aide sur l'homonymie Pour les articles homonymes, voir Oscar.
OSCAR (protocole)
Fonction Messagerie instantanée
Sigle OSCAR
Port ?

OSCAR (acronyme de Open System for CommunicAtion in Realtime) est le protocole le plus important d'AOL pour la messagerie instantanée et l'information de présence. Actuellement, OSCAR est utilisé par les deux principaux systèmes de messagerie instantanée d'AOL : ICQ et AIM.

Malgré son nom, les spécifications du protocole sont propriétaires. AOL a fait de grands efforts pour empêcher ses concurrents (à savoir Microsoft, XMPP et Cerulean Studios (en)) d'implanter des clients compatibles avec leurs systèmes de messagerie instantanée propriétaires. En 2002, AOL a signé un contrat avec Apple lui permettant d'utiliser OSCAR (ainsi que ses bibliothèques logicielles) dans son application iChat. Cela a permis aux utilisateurs d'iChat d'interagir directement avec les utilisateurs d'ICQ et d'AIM. L'accord a également permis aux utilisateurs du service .Mac d'Apple de se connecter au réseau AIM en utilisant leurs adresses électroniques .Mac (cette possibilité a, par la suite, été implantée sur le service MobileMe d'Apple).

En 2009, une grande partie du protocole avait été exposée par rétro-ingénierie et mise en œuvre par un nombre toujours croissant de clients tiers.

Le protocole OSCAR peut être utilisé indépendamment du réseau d'AOL. En fait, AOL étend le concept général de OSCAR, en ajoutant des systèmes de listes et des icônes secondaires de service, ainsi que des fonctionnalités pour les transferts de fichiers (à l'aide d'Apple_Bonjour).

Le 6 mars 2006, AOL a publié le SDK AIM et a lancé un site du développeur, ce qui permet aux développeurs de créer des plug-ins pour AIM et de construire leurs propres clients personnalisés qui se connectent via le protocole OSCAR. Cependant, AOL n'avait pas, à cette date, publié d'information sur le protocole lui-même.

Le 5 mars 2008, AOL a publié des portions de la documentation du protocole OSCAR.

Google offre également la possibilité de se connecter au réseau AIM à travers le client Google Talk intégré dans Gmail.

Structure de paquet[modifier | modifier le code]

Tous les paquets envoyés sur OSCAR sont encapsulés de la même manière. Tous les nombres entiers de 16 bits envoyés sur le réseau ne sont pas signés et sont de type big endian (voir endianness). Il en est de même pour les nombres entiers de 32 bits et de 8 bits.

Entête FLAP[modifier | modifier le code]

Un conteneur FLAP (Frame Layer Protocol[1]) renferme chaque paquet. Il contient des informations sur la taille du paquet, son canal et son numéro de séquence.

Offset (hex) Champ Type/Taille (en octets) Remarques
00 FLAP ID byte/1 Contient toujours 2A. C'est la marque de début de paquet.
01 Canal byte/1 1 = connexion, 2 = couche SNAC, 3 = erreur, 4 = déconnecter
02 Numéro de séquence int16/2 Incrémenté de 1 chaque fois qu'un paquet est envoyé. Recommence à 0 après FFFF.
04 Taille de donnée int16/2 La taille n'inclut pas l'entête de la FLAP.

Donnée SNAC[modifier | modifier le code]

Dans presque tous les paquets envoyés sur le canal 2, les paquets contiennent un SNAC (Simple Network Atomic Communication). Il y a toujours un ou zéro de ces contenus dans un paquet. Par conséquent, les paquets ne contiennent pas (et n'ont pas besoin) d'un champ de longueur.

Offset (hex) Champ Type/Taille (en octets) Remarques
00 Foodgroup int16/2 Le type général du paquet
02 Type int16/2 Le type spécifique de la foodgroup
04 Flags int16/2
06 ID de requête int32/4 Il peut être aléatoire, mais le bit le plus significatif ne peut être 1.

Implémentations[modifier | modifier le code]

Langage de
Programmation
Implémentations
C libpurple
GnomeICU
C# NOscar
C++ QOscar (Qt)
C# 2.0 OscarLib
Java joscar
Instant Messenger Lib
« daim » (ArchiveWikiwixArchive.isGoogleQue faire ?), consulté le 2013-12-17
Objective-C LibOrange
OCaml mlOscar
Python TwistedWords
Perl Net::OSCAR
PHP WebIcqPro

Référence[modifier | modifier le code]

  1. « FLAP - Frame Layer Protocol », AOL Developer Network, AOL,‎ (consulté le 1er novembre 2009)

Voir aussi[modifier | modifier le code]

Liens externes[modifier | modifier le code]