logo       
Google Custom Search
    AddThis Social Bookmark Button

Poco-Server-IRC : Proposals for server to server protocol: msg#00055

Subject: Poco-Server-IRC : Proposals for server to server protocol
Hey,

Just a bit of a ramble regarding the issues surrounding the implementation of 
the server to server protocol in POE::Component::Server::IRC and a request for 
comments.

Background
~~~~~~~~~~

In writing poco-server-irc I have working to the IRC protocol as lay down in 
the RFCs 2810-2813. The only true implementation of these protocols as lay out 
in the RFCs is irc-2.10 <http://www.funet.fi/~irc/server/>, and this is the 
reference implementation I have been working towards with the component.

RFC 2813 - Internet Relay Chat: Server Protocol concerns the linking of IRC 
servers together to form a network. Two major problems that face an IRC network 
are: "net riding" where a user gains channel ops on a channel by riding a 
healing network; and race conditions with commands that affect users, such as 
KILL, MODE, etc. and those users changing NICK.

RFC 2813 and hence irc-2.10 deal with these issues in two ways: Channel/Nick 
delay; and Nick tracking.

Nicknames can get locked if:

    * nickname is killed either by operator or collision.
    * net has split and the nickname was lost in the split. 

Channels can get locked if:

    * net has split, channel has lost channel operators in the split, and the 
channel becomes empty. The lock is triggered in the split, but it is activated 
only if the channel becomes empty. Rejoin of the net or expiring the delay 
timeout will release the lock again. 

Nick tracking is explained in RFC 2813 Section 5.6

TimeStamp protcol or TSora is used by Hybrid <http://www.ircd-hybrid.com/> and 
its clones and provides an effective mechanism against net riding and for 
fairer kills on nick collisions. It is assumed that Hybrid adopts a similar 
approach to nickname tracking.

ircu is a P10 protocol implementation. The P10 protocol uses timestamping like 
Hybrid, but also implements unique tokens for servers and clients. All 
communication between servers is conducted using these tokens, referred to as 
numerics. 

The Problem
~~~~~~~~~~~

I have nagging doubts about how to implement the server to server protocol for 
poco-server-irc. I'm troubled by the protocol as lay out in RFC 2813, mainly 
because I am not convinced that the mechanisms described are scalable.

I am not convinced that anyone would want to ever link this component to an IRC 
running irc-2.10.

So what I am proposing is to "enhance" the server to server protocol in RFC 
2813 by including timestamps and numerics.

This would have the following impact:

- base poco-server-irc would only be able to link to other base poco-server-irc
- wouldn't be able to link to irc-2.10 ircds.

Thoughts? Comments? Rants? Flames?

Let me know.

Thank you for listening.

=========================================
Chris Williams
"BinGOs"
=========================================
http://www.gumbynet.org.uk/
http://www.kidney-bingos.demon.co.uk/irc/
=========================================

Attachment: pgpAIXAbL43oq.pgp
Description: PGP signature


Try Searching:
servers, voip, java, networking, microsoft ...
<Prev in Thread] Current Thread [Next in Thread>