Home | Networks | Community | Need Help? 

 
 Quick search

 
 
 RegisterRegister   Log inLog in 

A new Protocol for IRC by A.Church

 
Post new topic   Reply to topic    SearchIRC Forum Index -> The Future of IRC
Author Message
Ashen
Idler
Idler


Joined: 05 Jan 2004
Posts: 285

PostPosted: Jul 12, 2004 10:02pm    Post subject: A new Protocol for IRC by A.Church Reply with quote

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
Guru


Joined: 28 Jun 2004
Posts: 1046

PostPosted: Sep 08, 2004 7:12pm    Post subject: Reply with quote

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
Idler


Joined: 05 Feb 2004
Posts: 353

PostPosted: Sep 08, 2004 9:15pm    Post subject: Reply with quote

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
Guru


Joined: 28 Jun 2004
Posts: 1046

PostPosted: Sep 08, 2004 9:28pm    Post subject: Reply with quote

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
Idler


Joined: 05 Feb 2004
Posts: 353

PostPosted: Sep 09, 2004 1:55pm    Post subject: Reply with quote

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
Lurker


Joined: 14 Jun 2004
Posts: 118
Location: Boise, ID

PostPosted: Sep 09, 2004 11:28pm    Post subject: Reply with quote

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 Smile . 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
Idler


Joined: 05 Feb 2004
Posts: 353

PostPosted: Sep 10, 2004 9:36pm    Post subject: Reply with quote

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
Newbie


Joined: 02 Jan 2004
Posts: 92
Location: IRC

PostPosted: Sep 12, 2004 6:21pm    Post subject: cool Reply with quote

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
Lurker


Joined: 14 Jun 2004
Posts: 118
Location: Boise, ID

PostPosted: Sep 14, 2004 1:36pm    Post subject: Reply with quote

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? Razz
Back to top
katsklaw
Guru
Guru


Joined: 28 Jun 2004
Posts: 1046

PostPosted: Sep 14, 2004 4:37pm    Post subject: Reply with quote

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
none


Joined: 06 May 2004
Posts: 1

PostPosted: Mar 23, 2005 9:20pm    Post subject: Reply with quote

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... Confused
Back to top
braindigitalis
Idler
Idler


Joined: 22 Sep 2003
Posts: 443
Location: IRC

PostPosted: Mar 24, 2005 7:41am    Post subject: Re: cool Reply with quote

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
Guru


Joined: 05 Feb 2005
Posts: 1992
Location: New Zealand

PostPosted: Mar 27, 2005 2:23am    Post subject: Reply with quote

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
none


Joined: 28 Jul 2004
Posts: 5

PostPosted: Feb 14, 2006 6:45pm    Post subject: Jabber Reply with quote

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
Display posts from previous:   
Post new topic   Reply to topic    SearchIRC Forum Index -> The Future of IRC All times are GMT - 6 Hours
Page 1 of 1

 
 
Forum powered by phpBB
 
 © 2000 - 2008 EverythingIRC, Inc. All rights reserved. Please read our disclaimer