OSCAR (Protokoll)

OSCAR im TCP/IP-Protokollstapel:
AnwendungOSCAR
TransportTCP
InternetIP (IPv4, IPv6)
NetzzugangEthernetToken
Bus
Token
Ring
FDDI

OSCAR (Open System for Communication in Realtime; deutsch Offenes System für Kommunikation in Echtzeit) ist ein Instant-Messaging-Protokoll, welches von AOL für den AOL Instant Messenger (AIM) entwickelt wurde und nach der Übernahme von ICQ für beide Messenger verwendet wird. Es gibt jedoch diverse freie ICQ-Clients, welche bereits vor der Veröffentlichung des Protokolls einwandfrei funktioniert haben.

Das Protokoll war lange Zeit unveröffentlicht, auch wenn das „open“ im Namen Gegenteiliges vermuten ließ. Daher waren sämtliche Dokumentationen keineswegs Spezifikationen, sondern lediglich durch Reverse Engineering entstandene Werke. Mit der Vorstellung der AIM-Entwicklerplattform Open AIM 2.0 durch AOL im März 2008 wurde auch das OSCAR-Protokoll offengelegt. Diese Maßnahme sollte zu weniger Kompatibilitätsproblemen mit Multi-Protokoll-Messengern führen, welche oftmals bei Protokolländerungen auftraten.

Versionsbezeichnungen

Fälschlicherweise wird OSCAR auch als ICQv7, v8, v9 und v10 bezeichnet. Dies ist nicht korrekt, da das originale ICQ-Protokoll stets von Direktverbindungen zwischen den Clients Gebrauch macht, OSCAR hingegen ist von Grund auf anders aufgebaut und setzt auf Verbindungen über den Server. Außerdem unterscheiden sich Version 7–10 nicht im Protokoll, sondern lediglich in den vom Server angebotenen Services, was von OSCAR sehr liberal gehalten wird.

Aufbau

OSCAR arbeitet auf einer bestehenden TCP-Verbindung und besteht selbst aus zwei Protokollschichten.

Die niedrigere, genannt Frame Layer Application Protocol (FLAP), setzt direkt auf TCP auf. Der FLAP-Header beginnt mit dem hexadezimalen Wert 2A zur Erkennung des FLAP-Pakets. Es folgt ein Kanal (siehe unten), eine Sequenznummer zur Fehlererkennung und die Größe der angehängten Daten.

Der Kanal ist ähnlich den Ports bei TCP und UDP, steht allerdings stets für einen bestimmten Vorgang. Mögliche Kanäle sind:

1Neuer Verbindungsaufbau
2SNAC-Paket (siehe unten)
3FLAP-Fehler
4Verbindungsaufbau beenden
5Keepalive

Wird ein anderer Kanal als 2 verwendet, werden meist Daten im Type-Length-Value-Format (TLV) angehängt.

Auf Kanal 2 folgt ein Paket des Typs Simple Network Atomic Communication (SNAC), dem zweiten großen Teil des OSCAR-Protokolls. SNAC-Paket-Typen sind organisiert in sogenannten Foodgroups. Jede Foodgroup hat eine ID-Nummer und jeder darin organisierte Nachrichten-Typ eine weitere Kennung. So steht z. B. Foodgroup 4, Typ 20 für eine Nachricht, in welcher ein Client den anderen informiert, dass sein Nutzer gerade einen Text tippt oder aber damit aufgehört hat. Prinzipiell kann dieser Nachrichten-Typ auch über andere Vorgänge informieren, definiert sind aber nur die beiden. Typ 1 jeder Foodgroup stellt eine spezifische Fehlermeldung dar.

Nach dem Login teilt der Server mit, welche Foodgroups er unterstützt; nur diese kann/soll der Client nutzen. Nach Spezifikation folgt auf das Senden anderer ein Verbindungsabbruch durch den Server. Die Foodgroups sind von Programmierern prinzipiell beliebig erweiterbar.

Definiert sind:

1OSERVICEGrundlegende Dienste: Begrüßung und Bekanntgabe der unterstützten Foodgroups, Behandlung der Durchsatz-Limitierung (Antispam-Maßnahme) und Migration zu einem anderen Server (um den aktuellen warten zu können)
2LOCATESetzen und Abrufen von Benutzer-Informationen wie Profildaten oder Abwesenheitsnotizen
3BUDDYBenachrichtigungen über den Status anderer Nutzer
4ICBMInter Client Basic Message – Behandeln von Textnachrichten
6INVITEEinladen von Nutzern (per E-Mail); nur AIM
9PDPermit/Deny – Sichtbarkeit für einzelne Nutzer verwalten
16BARTBuddy Art – Hoch- und Runterladen von „Buddy Icons“, Klängen und Hintergrundbildern
19FEEDBAGVerwalten der serverseitigen Kontaktliste und Einstellungen

iServed dokumentiert im Gegensatz zur Spezifikation auch die Foodgroups 5, 7, 8, 10–15, 21 und 23.

Implementierungen

Im Folgenden werden Clients aufgelistet, die das OSCAR-Protokoll oder das alte ICQ-Protokoll unterstützen. Einige von ihnen unterstützen neben ICQ noch andere Protokolle wie z. B. AIM, IRC, XMPP, MSN, Yahoo Messenger.

Die Nutzung alternativer Clients wird in den Nutzungsbedingungen der Dienstanbieter z. B. in den Nutzungsbedingungen von ICQ oder den Nutzungsbedingungen von AIM oft explizit untersagt.

Betriebssysteme

Betriebssysteme, unter denen die Clients laufen (ohne Emulationen oder Laufzeitumgebungen wie Wine).

WindowsmacOSUnix, Linux, BSDAmigaOSJ2MEiOS
&RQjaneinneinneinneinnein
Adiumneinjaneinneinneinnein
AIMjajajaneinneinja
ICQjajajaneinjaja
eMP.CQ!janeinneinneinneinnein
Jimmneinneinneinneinjanein
climmja1jajajaneinnein
Kopeteneinjajaneinneinnein
Miranda IMjaneinneinneinneinnein
Pidgin (libpurple)jajajaneinneinnein
qipjaneinneinneinneinja
QutIMjaneinjaneinneinnein
SIM-IMjajajaneinneinnein
Trillianjajaneinneinneinja
YsmICQjajajaneinneinnein
WindowsmacOSUnix, Linux, BSDAmigaOSJ2MEiOS
1 Benötigt ein ANSI-kompatibles Terminal.

Funktionen

Information darüber, welche Funktionen die einzelnen Programme unterstützen.

VerschlüsselungDateitransferGrafische SmileysSpieleveränderbares AussehenPlug-in-System3Externe Zusatzprogramme4
&RQteils6jajaneinjajaja
Adiumjajajaneinteilsjanein
AIMneinjajateilsjajaja
ICQneinjajajajajaja
eMP.CQ!neinjajaneinneinneinnein
Jimmneinja2janeinNur Farbenjanein
climmja5janeinneinjaneinnein
Kopetejajajaneinjajaja
Miranda IMja (mit Plug-in)jajateils (mit Plug-in)ja (mit Plug-in)jaja
Pidgin (libpurple)jajajaneinja (mit GTK)janein
qipja6jajaneinjaInoffiziellja
SIM-IMja5jajaneinjajaja
Trillianteils (SecureIM)jajaneinjajaja
YsmICQja6janeinneinneinneinnein
VerschlüsselungDateitransferGrafische SmileysSpieleveränderbares AussehenPlug-in-SystemExterne Zusatzprogramme
2 Nur Senden.
3 Plugin-System, um die standardmäßigen Features zu erweitern oder neue hinzuzufügen (Client oder Protokoll).
4 Add-ons werden in der Regel nicht vom Autor vorgesehen und sind eigenständige Programmteile.
5 SSL-verschlüsselte Direktverbindung; kompatibel sind licq, climm und Sim-IM.
6 Proprietär; nur zu sich selbst kompatibel.

Weitere Konferenzmöglichkeiten

Informationen darüber, welche sonstigen Möglichkeiten der Kommunikation die Clienten unterstützen.

Audio ChatMulti-Person Audio ChatVideo ChatMulti-Person Video ChatSMS (mobile) Messaging
Trillianjak. A.jak. A.nein
&RQneinneinneinneinja
AIMjajajaja (Nur nach Update)ja
ICQjaja (ab Version pro2003b)jajaja
eMP.CQ!neinneinneinneinnein
Jimmneinneinneinneinnein
climmneinneinneinneinja
qipneinneinneinneinnein
YsmICQneinneinneinneinnein
SIM-IMneinneinneinneinja
Audio ChatMulti-Person Audio ChatVideo ChatMulti-Person Video ChatSMS (mobile) Messaging

Siehe auch

Weblinks