Comparison of instant messaging protocols

The following is a comparison of instant messaging protocols. It contains basic general information about the protocols.

Table of instant messaging protocols

edit
Protocol Creator First public release date License Identity (not inc. alias) Asynchronous message relaying Transport Layer Security End-to-end encryption Unlimited number of contacts Bulletins to all contacts One-to-many routing[a] Spam protection Group, channel or conference support Audio/VoIP support Webcam/Video Batch file sharing Media synchronization Serverless[b] Binary format Protocol
3GPP standards Friedhelm Hillebrand 1985 Proprietary Phone number (e.g. +15550123) Yes No No About 250 contacts in SIM, unlimited from phone. No serial messages Medium No Yes 3G-324M/ViLTE RCS No ? ? 3GPP standards
Bitmessage Jonathan Warren 2012 Nov Open standard Alphanumeric address Yes Yes Yes Yes No Yes Yes (through proof-of-work) Yes No No Yes No Yes ? Bitmessage
Bonjour Apple Inc. 2002 August Proprietary Freeware; portions under the Apache license Username No No No Yes No multicast Medium No No No Yes No Yes ? Bonjour
Briar Briarproject.org 2018 May 9 Open standard Public & Private key (via QR Codes) Yes Yes Yes Yes Yes Yes Yes Yes No No No No Yes ? Briar
Discord Discord Inc. 2015 May 13 Proprietary Discord ID[1] Yes No No No[2] No ? Medium ? Yes Yes Yes ? No ? Discord
dm3 corpus.io / dm3.network 2022 Open Source (BSD) ENS (Ethereum Name Service) Yes Yes Yes Yes Yes Yes Yes Yes No No No Yes Yes ? dm3
Echo spot-on.sf.net / goldbug.sf.net 2013 Open standard Key Yes Optional Yes Yes Yes Yes Yes Yes No No Yes Yes Yes ? Echo
Gadu-Gadu GG Network 2000 Jul 17 Proprietary UIN
e.g. 12345678
Yes Yes No Yes No Centralistic Yes[c] (simple) Yes Yes Yes Yes No No ? Gadu-Gadu
IRC Jarkko Oikarinen 1988 Aug Open standard Nickname!Username@hostname
(or "hostmask")
e.g. user!~usr@a.b.com[d]
Yes, via IRCv3[3] or MemoServ that differs from the main system Optional many implementations which are mostly non-interoperable with other IRC clients[4][5][6] No[e] No Simplistic multicast Medium Yes (everyone, multiple simultaneous, any size) many implementations which are incompatible with other IRC clients[9][10] No Yes via BNC yes, via DCC CHAT ? IRC
Jami (based on DHT and SIP) Savoir-faire Linux Inc. 2002 August Open Standard 40-digit address Yes Yes Yes Yes No Yes Medium Yes Yes Yes Yes No Yes ? Jami (based on DHT and SIP)
Matrix Matrix.org 2014 Sep[11][failed verification] Open standard @Username:Hostname (MXID) Yes Yes, mandatory Yes, default for private conversations[12] Yes Yes Yes Yes (using pluggable server-side filtering modules and contact ignoring) Yes Yes Yes Yes Yes Under development[13] ? Matrix
Mattermost Mattermost Inc 2015 October 2 Open standard ?
MSNP (Windows Live Messenger, etc.) Microsoft 1999 Jul Proprietary Email address (Microsoft account) Yes No No Only for certified robots No Centralistic Yes Yes Yes Yes Yes Yes No ? MSNP (Windows Live Messenger, etc.)
MTProto (Telegram) Telegram Messenger LLP 2013 Aug Open standard Phone number (e.g. +15550123), nickname (e.g. @example) Yes Yes No end-to-end encryption for group chats Yes No Yes Yes, contact blocking Yes Yes[14] Yes Yes Yes No ? MTProto (Telegram)
Mumble Thorvald Natvig 1999 Jul Open standard Username Yes Yes No Only for certified robots No Centralistic Yes Yes Yes No Yes No No ? Mumble
LINE LY Corporation 2011 June 23 Proprietary ?
OSCAR (AIM, ICQ) AOL 1997 Proprietary (Discontinued 15-Dec-2017)[15] Username, Email Address or UIN
e.g. 12345678
Yes Yes (Aim Pro, Aim Lite) No No No Centralistic client-based Yes (Multiple, simultaneous) Yes Yes Yes No No ? OSCAR (AIM, ICQ)
RVP (Windows Messenger, etc.) Microsoft 1997 Mar Proprietary (Discontinued) Windows Active Directory Login No No ? No Centralistic None No ? ? No No No ? RVP (Windows Messenger, etc.)
Ricochet Invisible.im 2014 Mar Open standard Tor onion address Yes Yes Yes Yes No Yes Yes Yes No No Yes No Yes ? Ricochet
Serval Project Serval Project 2016 Open Standard Digit address Yes No Yes Yes Yes Yes No No Yes Yes Yes Yes Yes ? Serval Project
Signal Protocol Signal Foundation 2014 Feb[16] Open standard Phone number (e.g. +15550123) Yes Yes Yes Yes ? Yes Yes, contact blocking Yes Yes Yes Yes Yes No ? Signal Protocol
SimpleX Messaging Protocol Evgeny Poberezkin 2020 AGPLv3 No user identifiers Yes Yes Yes Yes Yes Yes, through WebRTC[17] Yes, through WebRTC[17] Yes No ? SimpleX Messaging Protocol
SIP/SIMPLE IETF 1996 Open standard user@hostname Yes Yes Optional Yes Yes No Medium ? Yes Yes Yes No Depends on implementation ? SIP/SIMPLE
Skype Skype 2003 Aug Proprietary Username Yes Proprietary No No No Centralistic client-based Yes Yes Yes Yes No No ? Skype
Steam Friends Valve 2003 Sep 12 Proprietary SteamID/Username or Unique Number Yes Proprietary ? No, although rising Yes ? No Yes Yes No No No No ? Steam Friends
TeamSpeak TeamSpeak Systems GmbH 2001 Aug Proprietary Unique ID in base64 No No No ? ? ? ? Yes Yes No ?
TOC2 AOL 2005 Sep Proprietary (Discontinued) Username or UIN
e.g. 12345678
Yes No No No No Centralistic No paying members only ? ? Partial ? No ? TOC2
Threema Threema GmbH 2012 December Open standard ?
TOX (based on DHT) irungentoo (GitHub user) 2013 June GNU General Public License (GPL) version 3 or later Public & Private key Yes Yes Yes Yes Yes Yes[18][19] Yes Yes Yes Yes Yes Yes[20] Yes ? TOX (based on DHT)
Tuenti Tuenti 2006 Proprietary Username Yes Yes No Yes ? Yes Yes Yes Yes Yes Yes ? No ? Tuenti
WeChat Tencent 2011 Proprietary Username Yes Yes No Yes Yes Yes No Yes Yes Yes No No No ? WeChat
Windows Messenger service Microsoft 1990 Proprietary (Discontinued) NetBIOS Yes No No Yes Yes Yes No No No No No No No ? Windows Messenger service
XMPP Jeremie Miller, standardized via IETF 1999 Jan Open standard Jabber ID (JID)
e.g. usr@a.b.c/home[f]
Yes[21][22] Yes[23] Optional[24][25][26][27] Yes Yes[28] Yes[29][30] Yes[31][32][33] Yes[29] Yes, via Jingle Yes, via Jingle Yes[34] Yes[35] Optional[36] Yes[37] XMPP
YMSG (Yahoo! Messenger) Yahoo! 1998, March 9 Proprietary Username Yes No[needs update?] No No Yes Centralistic Yes Yes Yes Yes Yes No No ? YMSG (Yahoo! Messenger)
Zephyr Notification Service MIT 1987 Open standard Kerberos principal
e.g. user@ATHENA.MIT.EDU
Yes No No Yes Yes Yes No Yes No No No No No ? Zephyr Notification Service
Protocol Creator First public release date License Identity (not inc. alias) Asynchronous message relaying Transport Layer Security End-to-end encryption Unlimited number of contacts Bulletins to all contacts One-to-many routing[a] Spam protection Group, channel or conference support Audio/VoIP support Webcam/Video Batch file sharing Media synchronization Serverless[b] (decentralized) Binary format Protocol
  1. ^ a b One-to-many/many-to-many communications primarily comprise presence information, publish/subscribe and groupchat distribution. Some technologies have the ability to distribute data by multicast, avoiding bottlenecks on the sending side caused by the number of recipients. Efficient distribution of presence is currently however a technological scalability issue for both XMPP and SIP/SIMPLE.
  2. ^ a b Serverless protocols don't have any central entities (usually companies) controlling the network. Serverless network consists only of clients. Such systems are usually extremely resistant to surveillance and censorship.
  3. ^ There have been reports from users that the antispam filter is used to censor links to other IM programs and some websites.
  4. ^ In ~usr@a.b.com, the a.b.com part is known as the "hostmask" and can either be the server being connected from or a "cloak" granted by the server administrator; a more realistic example is ~myname@myisp.example.com. The tilde generally indicates that the username provided by the IRC client on signon was not verified with the ident service.
  5. ^ Scalability issue: The protocol gets increasingly inefficient with the number of contacts.[7][8]
  6. ^ In usr@a.b.c/home, the home part is a "resource", which distinguishes the same user when logged in from multiple locations, possibly simultaneously; a more realistic example is user@xmppserver.example.com/home.

See also

edit

References

edit
  1. ^ "Where can I find my User/Server/Message ID?". discord.com.
  2. ^ "Increase the Discord FRIENDS List Limits from 1000 to 2000 or more!".
  3. ^ "chathistory Extension". ircv3.net. Retrieved 25 February 2023.
  4. ^ Gioia, Antonio. "IRC with SSL and OTR encryption". Retrieved 28 December 2023.
  5. ^ "Secure encryption layer for the IRC protocol based on OpenPGP".
  6. ^ "encrypted DCC - SDCC - SCHAT".
  7. ^ RFC 1324, D. Reed, 1992. 2.5.1, Size
  8. ^ Functionality provided by systems for synchronous conferencing, C.v. Loesch, 1992. 1.2.1 Growth
  9. ^ "dcc.voice". kvirc.net. Retrieved 25 February 2023.
  10. ^ "VoIRC". GitHub.
  11. ^ Ermoshina, Ksenia; Musiani, Francesca; Halpin, Harry (September 2016). "End-to-End Encrypted Messaging Protocols: An Overview". In Bagnoli, Franco; et al. (eds.). Internet Science. INSCI 2016. Florence, Italy: Springer. pp. 244–254. doi:10.1007/978-3-319-45982-0_22. ISBN 978-3-319-45982-0.
  12. ^ "Cross-signing and End-to-end Encryption by Default is HERE!!!". Matrix.org. Retrieved 2020-05-08.
  13. ^ "Introducing P2P Matrix". matrix.org. The Matrix.org Foundation. Retrieved 19 June 2021.
  14. ^ "Voice Calls: Secure, Crystal-Clear, AI-Powered". 30 March 2017.
  15. ^ "AOL INSTANT MESSENGER (AIM) — One Last Away Message".
  16. ^ Marlinspike, Moxie (24 February 2014). "The New TextSecure: Privacy Beyond SMS". Open Whisper Systems. Retrieved 12 December 2015.
  17. ^ a b "SimpleX Chat v4.6 – with hidden profiles, community moderation, improved audio/video calls and reduced battery usage". simplex.chat. Mar 28, 2023. Retrieved 2023-05-09.
  18. ^ "Groups : Chat, call, and share video and files with the whole gang in Tox's group chats". tox.chat. Retrieved 2021-06-18.
  19. ^ Presence information is indicated to other users by a small coloured dot."Tox clients". tox.chat. Retrieved 2021-06-18.
  20. ^ "File sharing : Trade files, with no artificial limits or caps". tox.chat. Retrieved 2021-06-18.
  21. ^ "XEP-0313: Message Archive Management".
  22. ^ "XEP-0184: Message Delivery Receipts".
  23. ^ "XEP-0368: SRV records for XMPP over TLS". 20 August 2019.
  24. ^ "XEP-0420: Stanza Content Encryption".
  25. ^ "XEP-0027: Current Jabber OpenPGP Usage". xmpp.org. 2014-03-14. Retrieved 2020-03-09.
  26. ^ "XEP-0373: OpenPGP for XMPP". xmpp.org. 2018-07-30. Retrieved 2020-03-09.
  27. ^ "XEP-0384: OMEMO Encryption". xmpp.org. 2018-07-31. Retrieved 2020-03-09.
  28. ^ .eg route.all-resource in OpenFire
  29. ^ a b "XEP-0045: Multi-User Chat". xmpp.org. 2019-05-15. Retrieved 2020-03-09.
  30. ^ "XEP-0060: Publish-Subscribe". xmpp.org. 2019-10-06. Retrieved 2020-03-09.
  31. ^ "Extensible Messaging and Presence Protocol (XMPP): Instant Messaging and Presence". xmpp.org. March 2011. Retrieved 2020-03-09.
  32. ^ "XEP-0159: Spim-Blocking Control". xmpp.org. 2006-07-11. Retrieved 2020-03-09.
  33. ^ "XEP-0161: Abuse Reporting". xmpp.org. 2007-05-06. Retrieved 2020-03-09.
  34. ^ "XEP-0363: HTTP File Upload".
  35. ^ "XEP-0280: Message Carbons". xmpp.org. 2017-02-16. Retrieved 13 December 2018.
  36. ^ "XEP-0174: Serverless Messaging". xmpp.org. 26 November 2008. Retrieved 1 November 2017.
  37. ^ "XEP-0231: Bits of Binary".