Serving hundreds of millions of registered users and thousands of new users every day, ICQ is currently the world's largest internet-based personal messaging system.
In essence, ICQ is a client-server application. ICQ servers are owned and maintained by icq.com Ltd. which distributes clients to end-users. The end user then uses the client program to contact an ICQ server or other ICQ clients using a certain protocol. This way the user can use the features presented by the ICQ network.
The ICQ protocol is not available to the public. It appears that icq.com does not want to reveal it's commercial approach or confine itself to a certain protocol. In spite of that, many projects were aimed at analyzing the ICQ protocol in various methods.4 The results were used to implement various unofficial ICQ clients with significant success. Currently there are quite a few open source projects that implement ICQ clients and the ``analyzed'' version of the protocol is available to the public.
The protocol published is a relatively simple message-sending protocol between the client and the server using both UDP and TCP to maintain connection and transfer information. In addition, a TCP connection between two clients is used to accomplish ``private chats''.
There is a reason to believe that a client implemented according to the open-source versions of the ICQ protocol will be functional so long as the ICQ network exists. This is because older ICQ clients still follow this protocol and for compatibility reasons it is not likely that it will be changed.
Later in this document we will review the current situation at the ICQ client ``market''. More information on unofficial ICQ clients can be found there.