IMUnified hat vor etwa zwei Jahren angekündigt, ein Protokoll zu schaffen, das
es ermöglichen soll, verschiedene Instant Messaging Systeme mit einem Client zu
benutzen. Gründungsmitglieder waren unter anderem MSN, Odigo und Yahoo!.
Inzwischen ist es wieder ruhig geworden, ob IMU jemals ernsthaft eingesetzt
wird, wird wage ich fast zu bezweifeln. Aber immerhin kann beispielsweise der
Yahoo!-Messenger das Protokoll, man muss es nur mit ein paar Registry-Änderungen
unter Windows einschalten. Danach hat man die Möglichkeit, sich zusätzlich zu
Yahoo! auch in andere IM Dienste anzumelden.
Dies habe ich zum Anlass genommen, mir IM Unified doch einmal anzuschauen und
habe ein paar Sessions mit einem Network-Sniffer protokolliert. Das Protokoll
ist an sich sehr einfach aufgebaut und erinnert etwas an Protokolle wie SMTP
oder HTTP.
Alle Daten werden über eine TCP/IP-Verbindung ausgetauscht. Der Client
konnektiert hierzu auf den Port 11319 des Servers. Über diese Verbindung macht
er zunächst ein Login-Handshake und tauscht danach Daten aus. Der Austausch
erfolgt in Blöcken.
weiterlesen | read more | lee mas | lê mais | 閱讀更多 »
In 2000, IM Unified announced to create a protocol that enables an instant
messaging client to join different IM services. Founding members were MSN,
Odigo, Yahoo! and others.
Since then I have not heard much of IMU. I don't even think that their IMIP
protocol will ever be used really. But it does exist and e.g. the Yahoo!
messenger client supports it. You only have to change some values in the Windows
registry. Afterwards, you're client is able to join other IM services like
Odigo with the Y! messenger.
For no other reason than to see how IMIP works I've dumped some IMIP sessions
with a network sniffer. The IMIP protocol is very simple structured and looks a
bit like SMTP or http.
All data is exchanged over a TCP/IP connection. The clients connects to port
11319 at the server. Firstly, it performs the login handshake and afterswards,
it is exchanging messages, presences and other data. All data is exchanged in
blocks.
All blocks have a structure of lines. Every line is finished by \r\n (carriage
return, line feed). The first line contains the type of a block, the second line
contains the size of the block (first two lines not counted). It is a decimal
ASCII number containing the size in bytes. Starting at the third line, there are
head lines, optionally followed by an empty line, optionally followed by a block
body. If the body is empty, the empty line can be absent. (The Y! messenger is
allways sending the empty line, the Odigo server isn't.)
weiterlesen | read more | lee mas | lê mais | 閱讀更多 »