|
|
| Author |
Message |
Ashen Idler

Joined: 05 Jan 2004 Posts: 285
|
Posted: Jul 12, 2004 10:02pm Post subject: A new Protocol for IRC by A.Church |
|
|
You may have seen this already, but A.Church (of IRCServices) has created a new template for a more advanced IRC protocol.
It can be viewed at:
http://achurch.org/irc3/
Yes, it's rather meaty to read, but it does solve lots of existing problems in IRC, such as requirement that servers may not be connected in loops, (allowing this lessens the impact of netsplits) and better scalability.
Comments on this?
It's not been updated in awhile, and may very well not take off as the new protocol would be at least partially incompatible with existing clients / servers - but it does look promising, and I for one would be most interested if someone started writing software based on it.
-Ashen |
|
| Back to top |
|
 |
katsklaw Guru

Joined: 28 Jun 2004 Posts: 1029
|
Posted: Sep 08, 2004 7:12pm Post subject: |
|
|
| he started that way back in 1999 and last updated it: 16 November 2003 .. I don't think it's all that new .. Others have tried to re-invent IRC even had a few software releases and have given up as well. |
|
| Back to top |
|
 |
codemastr Idler

Joined: 05 Feb 2004 Posts: 353
|
Posted: Sep 08, 2004 9:15pm Post subject: |
|
|
No, it's not new. IRC3 has been an idea for quite a long time. The problem isn't so much that it is impossible to design, it's nearly impossible to adopt.
It's like with email, they realize SMTP is crap. And they want to get rid of it. But can you imagine the results if they just said, "Next week we're getting rid of SMTP"? People barely know how to download the MS security updates, you think they are going to figure out how to update their email clients?
The same thing with IRC. Many of the changes proposed are going to require changes from the clients as well. So the problem is, how do you get all the servers and clients to agree on a new standard, then how do you make sure *everyone* actually upgrades to the new standard? Unlike the upgrades to HTTP and FTP, etc., the changes in IRC3 really wouldn't be backwards compatible in many instances. |
|
| Back to top |
|
 |
katsklaw Guru

Joined: 28 Jun 2004 Posts: 1029
|
Posted: Sep 08, 2004 9:28pm Post subject: |
|
|
| Thankfully IRC isn't as widely used as SMTP. I think that IRC3 would need some form of backwards compatability until the clients have played catch-up .. yet on the other hand, wouldn't be just as easy (if not easier) to simply continue to add features to IRC2? |
|
| Back to top |
|
 |
codemastr Idler

Joined: 05 Feb 2004 Posts: 353
|
Posted: Sep 09, 2004 1:55pm Post subject: |
|
|
IRC3 isn't about features, it's about the design of the protocol. The biggest change is the removal of the tree based nature of IRC. It instead introduces a cyclic structure. E.g
| Code: |
IRC2 IRC3
hub1 leaf6 -- hub1 ---leaf1
|- leaf1 | / | \ / | \
| | leaf5 --|---- hub2-|-- leaf4
| `- leaf2 \ | / \ | /
|- leaf3 leaf3 ------ leaf2
|- hub2
| |- leaf4
| `- leaf5
`- leaf6
|
That's not something you can easily just add to IRC2. It requires the protocol to be rewritten. And, what you suggest that IRC3 maintain backwards compatibility, well it's just not possible.
As an example, what does /links show in IRC3? And what does the hop count in /who show? They could not be done in a way that would remain compatibile with IRC2, because IRC3 has really lost the concept of a "hop."
There are many other issues like this that arrise with IRC3 that really makes it impossible to maintain backwards compatibility. The protocols are so dissimilar, there is no way to do it. |
|
| Back to top |
|
 |
aquanight Lurker

Joined: 14 Jun 2004 Posts: 118 Location: Boise, ID
|
Posted: Sep 09, 2004 11:28pm Post subject: |
|
|
| codemastr wrote: | | As an example, what does /links show in IRC3? And what does the hop count in /who show? They could not be done in a way that would remain compatibile with IRC2, because IRC3 has really lost the concept of a "hop." |
I believe IRC3 mentions "shortest path". So this means that hopcounts in links and who would pretty much reflect this shortest path. If this means all servers show all other servers as a hopcount of 1 (i.e. all servers are directly connected to each other), so be it . Basically, I'm saying hopcount would reflect the minimum server-server links a private message must cross to reach it's target. |
|
| Back to top |
|
 |
codemastr Idler

Joined: 05 Feb 2004 Posts: 353
|
Posted: Sep 10, 2004 9:36pm Post subject: |
|
|
Yeah, the shortest path algorithm, presumably Dijkstra's Algorithm, does indeed find out that information. But it is an incredibly costly operation, and the result would constantly change. What I mean is, each time you did a /who, the hopcount would have to be recalculated because which path is the shortest might have changed. And by the way, "shortest" path is really a bad name. You take more into account than just distance, such as speed. If I want to go from a -> c, I can go a -> b -> c, or a -> d -> e -> c. The logical assumption is abc is fastest, however, if b is currently being DoSed, adec will actually be the path chosen. This is what IRC3 means when it talks about "weight" of paths. The operation itself is not cheap, it's not very slow, but it's not fast either. Don't get me wrong, it's a brilliant algorithm, and Dijkstra's solution is to my knowledge the best solution available. But, it's also a complex operation.
Anyway, the hop count is just one of many compatibility issues. For example, IRC3 says it is legal to have a space in a nickname. Clearly that will break every client in existence. It recommends that servers don't do this, for compatibility reasons, however it is perfectly allowed. And even worse, you can use the @ and + character in nicknames! In the new protocol it's OK because @ and + are no longer used to identify ops/voice. However, again, compatibility. Clients running the old protocol will misinterpret the /names results. There are many such compatibility issues in the protocol. Also, there are issues with the fact that the protocol doesn't even begin to address the current implemention of IRC. It makes no mention of halfops, ban exceptions, invite exceptions, or any other extensions that have made their way into IRC over the years. Basically, this won't "unify" IRC, it will just create further division. |
|
| Back to top |
|
 |
sliq Newbie

Joined: 02 Jan 2004 Posts: 92 Location: IRC
|
Posted: Sep 12, 2004 6:21pm Post subject: cool |
|
|
| sounds pretty cool, can't wait till I can /connect to multiple servers while they are already connected... end of netsplits except if a connection completely fails =) cool. |
|
| Back to top |
|
 |
aquanight Lurker

Joined: 14 Jun 2004 Posts: 118 Location: Boise, ID
|
Posted: Sep 14, 2004 1:36pm Post subject: |
|
|
| codemastr wrote: | | Yeah, the shortest path algorithm, presumably Dijkstra's Algorithm, does indeed find out that information. But it is an incredibly costly operation, and the result would constantly change. What I mean is, each time you did a /who, the hopcount would have to be recalculated because which path is the shortest might have changed. |
The same algorithm would be required to send a private message to someone. So everytime I /nickserv IDENTIFY, that algorithm must be used, so naturally the implementation must already be designed to handle the necessary costs.
I think there may be IRCds already using this "mesh diagram" or whatever you call it, as opposed to the spanning tree used by IRC2. I don't know of any personally though...
On a side note, if modern-day IRC servers are IRC2... what was IRC1?  |
|
| Back to top |
|
 |
katsklaw Guru

Joined: 28 Jun 2004 Posts: 1029
|
Posted: Sep 14, 2004 4:37pm Post subject: |
|
|
| Quote: |
On a side note, if modern-day IRC servers are IRC2... what was IRC1?
|
my thoughts would be that IRC 1 is pre-RFC1459 .. |
|
| Back to top |
|
 |
mhavok none

Joined: 06 May 2004 Posts: 1
|
Posted: Mar 23, 2005 9:20pm Post subject: |
|
|
| codemastr wrote: |
It's like with email, they realize SMTP is crap. And they want to get rid of it. But can you imagine the results if they just said, "Next week we're getting rid of SMTP"? People barely know how to download the MS security updates, you think they are going to figure out how to update their email clients? |
This is so true. I actually do technical support for a ISP, and I get at least 10 calls a day with people who do not know how to setup or change their mail client settings...  |
|
| Back to top |
|
 |
braindigitalis Idler

Joined: 22 Sep 2003 Posts: 443 Location: IRC
|
Posted: Mar 24, 2005 7:41am Post subject: Re: cool |
|
|
| sliq wrote: | | sounds pretty cool, can't wait till I can /connect to multiple servers while they are already connected... end of netsplits except if a connection completely fails =) cool. |
/me points to www.inspircd.org ...this ircd is a mesh-based design similar to irc3 (however it is NOT irc3 itself, it works more like a p2p network in terms of message relay... i'd never seen irc3 until a few months ago)
Constructive criticism (no flames and "it'll never work" thanks, ive shot these down before) are welcome. |
|
| Back to top |
|
 |
PingBad Guru

Joined: 05 Feb 2005 Posts: 1955 Location: New Zealand
|
Posted: Mar 27, 2005 2:23am Post subject: |
|
|
It is a promosing protocol, but [as codemastr pointed out] there is no way IRC2 and IRC3 could ever co-exist on a network/server/client
IMO, IRC2 should be kept as the standard for today's networks until it outlives its usefulness (and hopefully IRC3 would have been ironed out to an acceptable standard)
However, how are the new clients going to deal with the new changes like spaces and non-alphanumeric symbols in nicknames since spaces are used as token identifiers between commands and text.
| Code: | | :nick name!ident@irc.host PRIVMSG #channel :text |
this would confuse today's clients letalone the server, since to either the command would appear to be name!ident@irc.host and that isn't exactly a valid command
Just my cent's worth
~PingBad |
|
| Back to top |
|
 |
workman161 none

Joined: 28 Jul 2004 Posts: 5
|
Posted: Feb 14, 2006 6:45pm Post subject: Jabber |
|
|
Sounds rediculous, but why not toy around with some kind of XML format like jabber, but built for groups? IMHO, jabber's group chatting pales in comparison to IRC.
The new protocol looks awesome. I really love the sound of loops and border servers.
| Quote: | | However, how are the new clients going to deal with the new changes like spaces and non-alphanumeric symbols in nicknames since spaces are used as token identifiers between commands and text. |
It looks like a binary protocol. |
|
| Back to top |
|
 |
|
|
| |