Instant Messaging

From
Jump to: navigation, search


Instant Messaging ist eine internet basierte Protokoll-Anwendung, die es Benutzern ermöglicht, in Echtzeit miteinander zu kommunizieren

Was bedeutet Kommunikation bzw. Konversation?

Eine Konversation ist eine schnelle Übertragung von Informationen zwischen zwei oder mehr Parteien, die durch drei einfache Merkmale charakterisiert wird:

  1.Sie passiert spontan
  2.Sie dauert eine kurze Zeit an
  3.Sie ereignet sich zwischen Peers

Was sind Peers?

Peers sind sowohl Personen (P) als auch Anwendungen (A), die ihre Informationen wie eine Konversation austauschen. Somit kann eine Konversation zwischen:

       1. P-P: Email, chat und message boards
       2. A-A: Webdienste und IP routing
       3. P-A: intelligente Agentensysteme oder bots (zukünftige Möglichkeiten)

stattfinden.

Client/Server-Struktur des „Instant Messaging“

Die bekanntesten Instant Massaging-Anbieter, wie z.B. AIM (AOL), MSN (Microsoft), Yahoo! und ICQ, basieren alle auf einer Zentralen-Server-Struktur.

Bei einem zentralisierten Netzwerk, muss sich jeder Benutzer des Netzwerks mit dem zentralen Server verbinden. Dieser Server vermittelt zwischen allen Kommunikationen. Dementsprechend werden Kommunikations- und Userdaten auf diesem Server gespeichert.

Die Anmeldung vom Client an den Server erfolgt meistens durch das HTTP-Protokoll. Die Kommunikation zwischen zwei Clients kann ebenso per HTTP-Protokoll oder über andere Protokolle und Ports erreicht werden.

Diese Kommunikation zwischen zwei oder mehreren Clients ist unproblematisch, sofern sich die Clients im selben Netzwerk befinden, z.B. beide Clients sind mit dem AIM-Netzwerk verbunden. Problematisch wird es jedoch, falls Clients unterschiedlicher Netzwerke miteinander kommunizieren möchten, da die Server, der jeweiligen Netzwerke, nicht miteinander kompatibel sind.

Diese Inkompatibilität liegt an den unterschiedlichen Protokollen und deren Implementierungen. Um diesen Vorgang zu verstehen, werden wir zuerst ein paar Protokolle betrachten:

1.Internet Relay Chat (IRC) Protocol (RFC 1459)

Das IRC-Protokoll ist ein etabliertes, rein textbasiertes Chat-System, das jedoch durch weitere Kommandos über eine „Direct Client-to-Client-Verbindung“ (DCC) den Austausch von Daten und sonstigen Informationen erlaubt. IRC ermöglicht sowohl Gespräche zwischen 2 Teilnehmern (Privatchat) als auch Gesprächsrunden mit einer beliebigen Anzahl von Teilnehmern (Channels, Gesprächskanäle). Zur Vermittlung der Gespräche wird ein Netzwerk aus miteinander verbundenen Servern eingesetzt. Somit wird die Belastung auf viele Rechner verteilt und man kann eine beliebig große „Chatlandschaft“ ermöglichen. Die Kommunikation (ursprünglich: TCP/IP) zwischen Client/Server und Server/Server wird über Nachrichten (messages) in Befehlsform abgewickelt. Die maximale Länge einer Nachricht beträgt 510 Zeichen. Zudem besteht eine Nachricht aus dem Absender (prefix), dem Befehl (command) und zusätzlichen Befehlsparametern, wie z.B. Fehlerkorrektur. Anschließend kann der Server eine Antwort-Nachricht (reply) senden. Wobei sich die Reply-Nachricht gegenüber der obigen Erklärung für eine Nachricht(message) nur darin unterscheidet, dass anstelle des Befehls (command) ein Reply-Code (3-stellige Zahl mit fester definierter Bedeutung) generiert wird. Zudem ist der zwingende Bestandteil einer Nachricht nur die Angabe eines Befehls. Außerdem schicken die Clients Nachrichten ohne Absender, da diese vom Server ergänzt werden und somit Spoofing (Falschangaben) verhindert wird. Server routen oft die Nachrichten bloß durch und benötigen deshalb nur Ziel und Quelle einer Nachricht.

Vorteile:

1. Verglichen mit anderen Chat-Systemen sehr leistungsfähig und robust
2. Trotz enormer Ausmaße bewegt sich die Verzögerung bei der Vermittlung im Bereich von
   Sekunden und liegt deutlich darunter

Nachteil:

Durch unabhängige Weiterentwicklungen, im Bereich der Kommunikation zwischen Servern innerhalb 
eines IRC-Netzwerkes werden teilweise auch verkürzte Abwandlungen des Protokolls eingesetzt. 
Daraus folgt, dass keine einheitlichen Standards über die Erweiterungen existieren. Dies 
wiederum impliziert Inkompatibilität.

2.OSCAR-Protokoll (ICQ und AOL)

OSCAR steht für Open System for Communication in Realtime. Das Protokoll ist unveröffentlich (propietär) und beruht bisher auf Reverse Engineering. Das original ICQ-Protokoll gebrauchte eine Direktverbindung zwischen den Clients. OSCAR hingegen setzt auf Verbindungen über den Server ICQ kann auch in das IRC-Netzwerk gelangen, indem ICQ sich mit dem hauseigenen IrcQnet.icq.com-Server verbindet. Das OSCAR-Protokoll baut auf TCP auf und besteht selbst aus zwei Protokollschichten, nämlich das Flap- und SNAC-Paket. Das Flap besteht aus dem Flap-Header, Channel, Sequenznummer und der Größe der angehängten Daten. Der Channel ist ähnlich wie die Ports für TCP und UDP, steht allerdings für einen bestimmten Vorgang: z.B. SNAC-Paket, Neue Verbindung, Flap-Fehler und Keep-Alive. SNAC-Pakette sind in sogenannten Service Families organisiert. Jede Familie hat eine ID-Nummer und jeder darin enthaltene SNAC-Typ eine weitere "Unter-ID" (Subtype). Nach dem Login teilt der Server mit, welche SNAC Families er unterstützt, nur diese kann/soll der Client nutzen.


3. SIP-Protokoll (Beführworter: Microsoft)

SIP steht für Session Initiation Protocol und wird im RFC 3261 beschrieben. Dabei wurden auf folgende Dinge geachtet: leichte Implementierbarkeit, Skalierbarkeit, Erweiterbarkeit und Flexibilität. Das SIP-Protokoll kann beliebige Sessions mit einem oder mehreren Teilnehmern verwalten. Sessions können beliebige Multimediaströme, Konferenzen, Computerspiele usw. sein.

Zuletzt möchte ich noch die Entwicklung auf Client-Seite kurz erwähnen. Die Auswahl der Clients ist ziemlich groß und zudem auch kostenlos. Es gibt sowohl Singel- als auch Multi-Clients, wobei der Unterschied darin besteht, dass Singel-Clients sich nur mit einem Netzwerk verbinden können. Wohingegen Multi-Clients sich mit mehreren unterschiedlichen Netzwerken verbinden können, sofern der Client die Netzwerke unterstützt:

Generelle Informationen:

IM / GI EntwicklerErstes ReleaseTyp ToolkitAktuelle stabile Version Kosten
AOL IM AOL Mai 1997Single ProtocolW325.1 (Win), 4.3(Mac) kostenlos
Yahoo!MessengerYahoo! Jun.1999Single ProtocolW327.0 (Win, 2.5.3 (Mac)Cocoas,1.0.4-1 (Unix),4 FreeBSD, GTKkostenlos
ICQMirabilisNov.1996Single ProtocolW325.06kostenlos
MSN MessengerMicrosoftJul.1999Single Protocol W327.5kostenlos
Google TalkGoogle,Inc. 24.08.2005Single ProtocolW32 1.0.0.72kostenlos
TrillianCerulean StudiosJul.2000Multi ProtocolW323.1kostenlos
GaimMark SpencerNov.1998Multi ProtocolGTK1.5.0 Lizenz kostenfrei
iChatApple ComputerAug.2002 Multi ProtocolCocoa3 kostenlos
Miranda IMMiranda IM Project2000 Multi ProtocolW320.4.0.1 kostenlos

Netzwerk-Unterstützung:

IM/NetzwerkeAIMICQMSN Messneger Yahoo!MessengerIRCJabberBonjour NovellGroupWise
AOL IMJaJaNein NeinNeinNeinNein Nein
Yahoo!MessengerNeinNein NeinJaNeinNeinNeinNein
ICQJaJaNein NeinNeinNeinNeinNein
MSN MessengerNeinNeinJaNeinNeinNeinNeinNein
Google TalkNeinNein NeinNeinNeinJaNeinNein
TrillianJaJaJa JaNeinNeinNeinNein
GaimJaJaNein NeinNeinJaJaJa
iChatJaJaNein NeinNeinJaJaJa
Miranda IMJaJa Ja JaJaJaJaJa

Ein weiteres Problem ist, dass die meisten Instant Messenger nicht plattformunabhängig sind und somit nicht für alle Systeme vorhanden sind. Dies ist in der folgenden Tabelle aufgeführt:

Betriebssysteme:

IM/Betruebssysteme Windows Mac OS X Unix, Linux, BSD
AOL IM Ja Ja Ja
Yahoo!Messenger Ja Ja Ja
ICQ Ja Ja Ja
MSN Messenger Ja Ja Nein
Google Talk Ja(nux 2000/XP/2003) Nein(geplant) Nein
Trillian Ja Nein Nein
Gaim Ja Ja Ja
iChat Nein Ja Nein
Miranda IM Ja Nein Nein

Zusammenfassung

Es gibt keinen Instant Messenger, der:

1. zu allen Netzwerken eine Verbindung aufbaut
2. plattformunabhängig ist
3. alle wichtigen Funktionen implementiert hat

Mit allen wichtigen Funktionen sind, z.B. Verschlüsselung, Dateitransfer, Audio Chat, Multi- Person Audio Chat, Video Chat, Multi-Person Video Chat, SMS, usw. gemeint.

Dies liegt aber an den Protokollen und deren unterschiedlichen Implementierung. Daraus folgt Inkompatibilität zwischen den Server und Clients.

Quellen:

• Andy Oram (2001). Peer-to-Peer: Harnessing the Power of Disruptive Technologies. O’Reily
• Paper: Chapter 1 Introduction to Instant Messaging
• Running-gag.de. OSCAR (Protokoll). Quelle: http://www.running-gag.de/wiki/OSCAR_%28Protokoll%29
• Ihse.net. The ICQ Protocol Site. Quelle: http://www.ihse.net/icq/
• Running-gag.de. Session Initiation Protocol.Quelle: http://www.running-gag.de/wiki/Session_Initiation_Protocol
• Wikipedia. Internet Relay Chat. Quelle: http://de.wikipedia.org/wiki/Internet_Relay_Chat
• Wikipedia. Instant Messaging. Quelle: http://de.wikipedia.org/wiki/Instant_Messaging
• Syndicon.de. Instant Messaging Glossar.

Quelle: http://www.syndicon.de/im_hilfe/im_glossar/index.html.de.html