[IRCServices] New IRC protocol revised

Andrew Church achurch at dragonfire.net
Wed Oct 6 19:52:50 PDT 1999


>Andy, I don't want to be rude or anything but why would anyone want to have
>a network where servers are connected in a circular fashion?

     Two words:  No netsplits.  Well, few netsplits, certainly compared to
the current tree-style networks.  Until the Internet becomes as stable as
the telephone network--which to be honest I can't see happening in the near
future; I'm honestly scared shitless at the thought of ordinary phone calls
being routed over the Internet--links are going to drop out occasionally
for no fault of the servers, and to avoid problems arising from that we
need redundancy at a higher level, like the IRC network level.

>It would require additional bandwidth

     This is partly the fault of my algorithm--complete graphs will cause
quite a bunch of unnecessary messages to be sent; I'll see about fixing
that--but even then, the difference shouldn't be significant for most
cases.  For example, a 3-node "loop" network will send 4 copies of a
global message where only 2 are required; but a 6-node "loop" network will
send 6 where 5 are required, a much less significant excess.

     And if this does bother you so much, there's nothing saying you
_have_ to link your servers in a cyclic network.  Cyclic networks are a
significant part of my specification, but hardly the only part.  There's
also (1) internationalization--in case you hadn't noticed, English is not
the only language in the world (have you tried using a Japanese nickname
on a standard IRC server recently?); (2) binary protocol, allowing
anything to be sent as a message (think audio/video on a LAN), reducing
computation time (no more strcmp's on commands and such), and somewhat
reducing bandwidth use; and (3) it's about time _someone_ put out a
protocol specification to do something about the gazillions of different
variations out there.

>Not
>forgetting additional RAM required for the ircd to remember that it has
>various paths to send data to reach server x.

     What, 2 bytes per server (ID of the next server on the shortest path)?
If memory is that tight, stop using a 20-year-old computer.

>Currently the DALnet implementation of irc protocol is quite good, well
>actually the best comparing it to ircu, irce etc. etc.

     I won't argue that DALnet's implementation is not good.  I just don't
think it's not possible to come up with a better one (whether mine is
better is something I'll leave up to others).

     I also ought to practice not using so many negatives at once.

  --Andrew Church
    achurch at dragonfire.net
    http://achurch.dragonfire.net/
---------------------------------------------------------------
To unsubscribe, send email to majordomo at ender.shadowfire.org
with "unsubscribe ircservices" in the body, without the quotes.