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
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 |
Tencent | 2011 | Proprietary | Username | Yes | Yes | No | Yes | Yes | Yes | No | Yes | Yes | Yes | No | No | No | ? | ||
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 |
- ^ 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.
- ^ 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.
- ^ There have been reports from users that the antispam filter is used to censor links to other IM programs and some websites.
- ^ 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.
- ^ Scalability issue: The protocol gets increasingly inefficient with the number of contacts.[7][8]
- ^ 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
- Comparison of cross-platform instant messaging clients
- Comparison of Internet Relay Chat clients
- Comparison of LAN messengers
- Comparison of software and protocols for distributed social networking
- LAN messenger
- Secure instant messaging
- Comparison of user features of messaging platforms
References
- ^ "Where can I find my User/Server/Message ID?". discord.com.
- ^ "Increase the Discord FRIENDS List Limits from 1000 to 2000 or more!".
- ^ "chathistory Extension". ircv3.net. Retrieved 25 February 2023.
- ^ Gioia, Antonio. "IRC with SSL and OTR encryption". Retrieved 28 December 2023.
- ^ "Secure encryption layer for the IRC protocol based on OpenPGP".
- ^ "encrypted DCC - SDCC - SCHAT".
- ^ RFC 1324, D. Reed, 1992. 2.5.1, Size
- ^ Functionality provided by systems for synchronous conferencing, C.v. Loesch, 1992. 1.2.1 Growth
- ^ "dcc.voice". kvirc.net. Retrieved 25 February 2023.
- ^ "VoIRC". GitHub.
- ^ 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.
- ^ "Cross-signing and End-to-end Encryption by Default is HERE!!!". Matrix.org. Retrieved 2020-05-08.
- ^ "Introducing P2P Matrix". matrix.org. The Matrix.org Foundation. Retrieved 19 June 2021.
- ^ "Voice Calls: Secure, Crystal-Clear, AI-Powered". 30 March 2017.
- ^ "AOL INSTANT MESSENGER (AIM) — One Last Away Message".
- ^ Marlinspike, Moxie (24 February 2014). "The New TextSecure: Privacy Beyond SMS". Open Whisper Systems. Retrieved 12 December 2015.
- ^ 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.
- ^ "Groups : Chat, call, and share video and files with the whole gang in Tox's group chats". tox.chat. Retrieved 2021-06-18.
- ^ Presence information is indicated to other users by a small coloured dot."Tox clients". tox.chat. Retrieved 2021-06-18.
- ^ "File sharing : Trade files, with no artificial limits or caps". tox.chat. Retrieved 2021-06-18.
- ^ "XEP-0313: Message Archive Management".
- ^ "XEP-0184: Message Delivery Receipts".
- ^ "XEP-0368: SRV records for XMPP over TLS". 20 August 2019.
- ^ "XEP-0420: Stanza Content Encryption".
- ^ "XEP-0027: Current Jabber OpenPGP Usage". xmpp.org. 2014-03-14. Retrieved 2020-03-09.
- ^ "XEP-0373: OpenPGP for XMPP". xmpp.org. 2018-07-30. Retrieved 2020-03-09.
- ^ "XEP-0384: OMEMO Encryption". xmpp.org. 2018-07-31. Retrieved 2020-03-09.
- ^ .eg route.all-resource in OpenFire
- ^ a b "XEP-0045: Multi-User Chat". xmpp.org. 2019-05-15. Retrieved 2020-03-09.
- ^ "XEP-0060: Publish-Subscribe". xmpp.org. 2019-10-06. Retrieved 2020-03-09.
- ^ "Extensible Messaging and Presence Protocol (XMPP): Instant Messaging and Presence". xmpp.org. March 2011. Retrieved 2020-03-09.
- ^ "XEP-0159: Spim-Blocking Control". xmpp.org. 2006-07-11. Retrieved 2020-03-09.
- ^ "XEP-0161: Abuse Reporting". xmpp.org. 2007-05-06. Retrieved 2020-03-09.
- ^ "XEP-0363: HTTP File Upload".
- ^ "XEP-0280: Message Carbons". xmpp.org. 2017-02-16. Retrieved 13 December 2018.
- ^ "XEP-0174: Serverless Messaging". xmpp.org. 26 November 2008. Retrieved 1 November 2017.
- ^ "XEP-0231: Bits of Binary".