giovedì 21 settembre - 03:26
Google
 
Menù
  Home
  Come nasce IRC-Zone
  Glossario Informatico
  News
  I nostri progetti
  I nostri servizi
  Partners
  Diventa un Partner

IRC
  Cos'è IRC
  Storia di IRC
  Netiquette su IRC
  Emoticons
  Gergo della chat
  Lista Servers
  RFC 1459
  Shell Hosting

mIRC
  Cos'è il mIRC
  FAQ mIRC
  Configurazione mIRC
  Download mIRC
  Novità
  Script Stranieri
  Script Italiani
  MTS
  MTS Engine

mIRC Addon
  mIRC addon Audio
  mIRC addon SMS
  mIRC addon Grafica
  mIRC addon Utility
  mIRC addon Uso Bot

Client IRC
  Client IRC Linux
  Client IRC Mac
  Client IRC Win

XChat
  Cos'è XChat
  XChat per Win
  XChat per Unix

KVirc
  Cos'è KVirc
  FAQ KVirc
  Installazione su Linux
  KVirc Scripting
  KVirc per Mac
  KVirc per Win
  KVirc per Unix
  KVirc addon

Irssi
  Cos'è Irssi
  Download Irssi
  Download Moduli

Eggdrop/Windrop
  Cos'è un Eggdrop
  Download Eggdrop
  Configurazione Eggdrop
  Download Windrop
  Installazione Windrop

Tcl
  Download TCL
  Tutorial TCL scripting
  Documenti/Guide

BNC
  Cos'è un psyBNC
  Download psyBNC
  Configurazione psyBNC
  Download sBNC
  Configurazione sBNC

Linkaci!
footer

Credits
Somerights

footer

Statistiche
Ip: 54.156.58.187
Download: 995306 file
Totale: 1513051 MB

footer

Links amici

RFC 2810
Network Working Group C. Kalt
Richiesta di Commento: 2810 Aprile 2000
Aggiorna: 1459
Category: Informativa

Internet Relay Chat: Architettura

Stato del Memorandum

Questo memo fornisce le informazioni per la comunità di Internet. Non specifica
nessun tipo di standard Internet. La distribuzione di questo memo è senza alcun
limite.

Notifica Copyright

Copyright (C) The Internet Society (2000). Tutti i diritti Riservati.

Astrazione

Il protocollo IRC (Internet Relay Chat) è usato nelle conferenze
basate sul sistema testuale. Questo è stato sviluppato dal 1989 quando
fu originalmente implementato come mezzo per far chattare tra di loro
gli utenti di un BBS.

Formalmente documentato nel Maggio del 1993 dall'RFC 1459 [IRC], il protocollo
ha continuato ad evolversi. Questo documento è un aggiornamento che descrive
l'architettura del protocollo IRC corrente e il ruolo dei suoi componenti.
Altri documenti descrivono in dettaglio il protocollo usato tra i vari
componenti qui definiti.

Tabella dei Contenuti

1. Introduzione ............................................... 2
2. Componenti ................................................. 2
2.1 Servers ................................................ 2
2.2 Clients ................................................ 3
2.2.1 Clients Utenti .................................... 3
2.2.2 Clients di Servizio ............................... 3
3. Architettura ............................................... 3
4. Servizi del protocollo IRC ................................. 4
4.1 Localizzatore Client ................................... 4
4.2 Trasmissione Messaggi .................................. 4
4.3 Hosting e Gestione Canali .............................. 4
5. Concetti di IRC ............................................ 4
5.1 Comunicazione Uno-A-Uno ................................ 5
5.2 Uno-A-Molti ............................................ 5
5.2.1 Ad un Canale ...................................... 5
5.2.2 Ad una Mask Host/Server ........................... 6


Kalt Informativa [Pagina 1]

RFC 2810 Internet Relay Chat: Architettura Aprile 2000


5.2.3 Ad Una Lista ...................................... 6
5.3 Uno-A-Tutti ............................................ 6
5.3.1 Client-A-Client ................................... 6
5.3.2 Client-A-Server ................................... 7
5.3.3 Server-A-Server ................................... 7
6. Problemi Correnti .......................................... 7
6.1 Scalabilità ............................................ 7
6.2 Affidabilità ........................................... 7
6.3 Congestione di Rete .................................... 7
6.4 Privacy ................................................ 8
7. Considerazioni sulla Sicurezza ............................. 8
8. Supporto Corrente E Disponibilità .......................... 8
9. Riconoscimenti ............................................. 8
10. Riferimenti ............................................... 8
11. Indirizzo Autore .......................................... 9
12. Copyright ................................................. 10

1. Introduzione

Il protocollo IRC (Internet Relay Chat) è stato designato, da parecchio tempo,
per il sistema di conferenza basata su testo. Questo documento descrive
la sua corrente architettura.

Il protocollo IRC è basato nel modello client-server, ed è stato
pensato per essere posto in funzione su più macchine, in maniera distribuita.
Un setup tipico, include un processo singolo (il server) che forma un
punto centrale per i clients (o gli altri servers) ove connettersi,
performando la diffusione/multiplexing del messaggio richiesto e altre
funzioni.

Questo modello distribuito, che richiede che ogni server
abbia una copia delle informazioni di stato globali, è tutt'oggi il più grosso problema
del protocollo (da intendersi come handicap serio), il quale limita la grandezza massimale
alla quale una rete IRC può giungere. Se le reti IRC esistenti sono in grado
di crescere a livelli così incredibili, dobbiamo ringraziare i produttori di hardware
per averci donato (continuando a farlo) i sistemi più potenti.

2. Componenti

Il paragrafo seguente definisce i componenti di base del protocollo IRC.

2.1 Servers

Il server forma la spina dorsale di IRC, in quanto è il solo componente
del protocollo in grado di linkare tutti gli altri componenti
insieme: esso fornisce un punto il quale i clients possono connettersi per parlare
tra di loro [IRC-CLIENT],

Kalt Informativa [Pagina 2]

RFC 2810 Internet Relay Chat: Architettura Aprile 2000

ed un punto per gli altri servers ove connettersi [IRC-SERVER].
Il server è anche responsabile in quanto fornisce i servizi di base definiti dal protocollo IRC.

2.2 Clients

Un client è qualsiasi cosa si connetta ad un server, che non sia un altro server.
Ci sono due tipi di clients, i quali hanno propositi differenti.

2.2.1 Clients Utenti

I clients utenti sono generalmente programmi che forniscono una interfaccia di testo, utilizzata per comunicare in modo
interattivo con IRC. Questo particolare tipo di client è spesso riferito come "utente".

2.2.2 Clients di Servizio (Services)

Diversamente dagli utenti, i clients di servizio non sono stati intesi
per essere usati manualmente o per parlare. Questi hanno degli accessi più limitati
alle funzioni di chat del protocollo, mentre possono accedere a dati più privati dei servers.

I Servizi sono tipicamente delle automazioni usate per fornire un qualche tipo di servizio (non necessariamente
legato ad IRC in sè) per gli utenti. Un esempio è il servizio di raccolta statistiche riguardo l'origine
degli utenti presenti su una rete IRC.

3. Architettura

Una rete IRC è definita da un gruppo di servers connessi
l'un con l'altro. Un singolo server forma la più semplice rete IRC.

La sola configurazione di una rete IRC permessa ai servers IRC è quella ad albero
dove ogni server agisce come nodo centrale per il resto delle reti che vede.

1--\
A D---4
2--/ \ /
B----C
/ \
3 E

Servers: A, B, C, D, E Clients: 1, 2, 3, 4

[ Fig. 1. Esempio di piccola rete IRC ]

Kalt Informativa [Pagina 3]

RFC 2810 Internet Relay Chat: Architettura Aprile 2000


Il protocollo IRC non fornisce alcun mezzo per la comunicazione
diretta tra due clients. Tutte le comunicazioni tra utenti vengono
gestite dai servers.

4. Servizi del protocollo IRC

Questa sezione descrive i servizi offerti dal protocollo IRC.
La combinazione di questi permette la conferenza in tempo reale.

4.1 Localizzatore Client

Perchè lo scambio di messaggi sia possibile, i due clients devono essere in grado di localizzarsi
tra di loro.
Dalla connessione con il server, un client si registra usando un formato che verrà poi usato dagli altri
servers e clients per sapere dove il client è localizzato. I servers sono responsabili riguardo
il mantenimento di una traccia di tutti i formati utilizzati.

4.2 Trasmissione Messaggi

Il protocollo IRC non fornisce alcun mezzo per la comunicazione diretta tra due clients.
Tutte le comunicazioni sono gestite dai servers.

4.3 Hosting E Gestione Canali

Un canale è un gruppo (con nome) di uno o più utenti, i quali riceveranno tutti i messaggi
indirizzati al canale. Un canale è caratterizzato dal nome e dai membri correnti, inoltre ha un set
set di proprietà che possono essere manipolate da alcuni membri presenti in esso.

Un canale fornisce il mezzo, per un messaggio, in modo da essere spedito a più clients.
I servers hostano i canali, fornendo il multiplexing necessario per i messaggi.
Inoltre, questi sono i responsabili della gestione del canale, mantenendo una traccia
riguardo i membri al proprio interno. La regola esatta per i server è definita nell'
"Internet Relay Chat: Gestione Canale" [IRC-CHAN].

5. Concetti di IRC

Questa sezione ha lo scopo di descrivere i concetti attuali
che stanno nell'organizzazione del protocollo IRC e come vengono trattate
classi differenti di messaggi.

Kalt Informativa [Pagina 4]

RFC 2810 Internet Relay Chat: Architettura Aprile 2000


5.1 Comunicazione Uno-A-Uno

La comunicazione nella base uno-a-uno è spesso eseguita dai clients,
questo in quanto, molto del traffico tra server e server non è che il risultato
del dialogo tra i servers collegati. Per fornire un mezzo di comunicazione per i clients
tra di loro, è RICHIESTO che tutti i servers siano in grado di spedire un messaggio
esattamente verso una direzione, passando attraverso il sistema di linking ad albero
per raggiungere l'altro client. La via per la consegna di un messaggio è la
via più corta tra due punti dell'albero.

Gli esempi seguenti si riferiscono alla figura 1.

Esempio 1: Il messaggio tra i client 1 e 2 è visto solo dal server A
che lo spedisce direttamente al client 2.

Esempio 2: Il messaggio tra i client 1 e 3 è visto dai servers A & B,
e il client 3. Nessun altro client o server ha il permesso di vedere il messaggio.

Esempio 3: Il messaggio tra i client 2 e 4 è visto dai servers A, B, C & D e solo
dal client 4.

5.2 Uno-A-Molti

L'obbiettivo principale di IRC è di fornire un forum che permetta l'allestimento
di una conferenza (conversazione uno a molti) facile ed efficiente. IRC offre molti
sistemi per ottenere questo risultato, ogniuno dedicato ad un proposito.

5.2.1 Ad Un Canale

In IRC il canale ha un ruolo equivalente a quello di un gruppo
di multicasting; la loro esistenza è dinamica e la conversazione attuale
divulgata in un canale DEVE essere spedita solo ai server dove gli utenti
sono collegati (quelli presenti in esso). Il messaggio DOVRA' essere spedito
a tutti i links locali e ai servers contenenti gli utenti collegati in modo che il messaggio
possa raggiungere tutti i destinatari.

Gli esempi qui di seguito sono riferiti alla figura 2.

Esempio 4: Il canale con 1 client in esso. I messaggi a quel canale devono andare
verso il server e da nessun'altra parte.

Esempio 5: 2 clients nel canale. Tutti i messaggi vengono trattati come
se fossero privati tra due utenti, fuori dal canale.

Kalt Informativa [Pagina 5]

RFC 2810 Internet Relay Chat: Architettura Aprile 2000


Esempio 6: Clients 1, 2 e 3 nel canale. Tutti i messaggi verso il canale
sono spediti ai clients e a quei servers che devono essere
attraversati per la consegna, come se il messaggio fosse privato
e diretto ad un singolo client. Se il client 1 spedisce un messaggio,
dev'essere inviato al client 2 e poi via il server B al client 3.

5.2.2 Ad una Mask Host/Server

Se si deve spedire un messaggio ad un gran gruppo di utenti, possono essere usati
i messaggi mask host e server. Questi vengono inviati agli utenti che
coincidono con la mask host o server presente nell'informazione inviata.
I messaggi sono spediti in locazioni dove sono presenti gli utenti,
in una modalità simile a quella dei canali.

5.2.3 Ad Una Lista

L'ultimo stile efficiente della conversazione uno-a-molti è attraverso i
clients parlanti ad una "lista" di indirizzi (client, canali, mask).
Come questo sia possibile è abbastanza autoesplicativo: il client dà una lista
di destinazione verso la quale il messaggio dev'essere consegnato e il server
crea delle copie separate con la destinazione data.

Questo non è efficiente come il metodo del canale, in quanto
la lista di destinazione potrebbe essere non corretta e
non c'è sicurezza sui duplicati effettuati prima della trasmissione.

5.3 Uno-A-Tutti

Il tipo di messaggio uno-a-tutti è meglio descritto come
un messaggio broadcast, spedito a tutti i clients o ai servers o ad entrambi.
Nelle grandi reti di utenti e di servers, un messaggio singolo può essere il risultato
in un gran traffico spedito nella rete, in modo che possa raggiungere tutte le destinazioni
desiderate.

Per alcune classi di messaggi, non ci sono opzioni per effettuare il broadcast a tutti i servers,
per questo, l'informazione di stato tenuta da ogni server è consistente tra servers.

5.3.1 Client-A-Client

Non vi sono classi messaggio per cui un singolo venga inviato a tutti gli altri client.

Kalt Informativa [Pagina 6]

RFC 2810 Internet Relay Chat: Architettura Aprile 2000


5.3.2 Client-A-Server

Molti dei comandi che hanno come risultato il cambiamento dello stato
d'informazione (come quello dei membri di un Canale, o le modalità sia relative
allo status d'utente o di canale, ecc..) DEVONO essere spediti a tutti i server
e il client non DEVE POTER cambiare questa distribuzione (che deve avvenire
in modo predefinito).

5.3.3 Server-A-Server

Mentre molti messaggi tra servers sono diffusi in broadcast (in modo che giungano a tutti
quelli della rete), ciò è richiesto solo qualora si vada a interagire on utenti,
canali o servers. Anche questo è una delle particolarità di base che si possono trovare
su IRC. Il funzionamento è simile a quello dove un messaggio creato da un server e divulgato a tutti quelli connessi.

6. Problemi Correnti

C'è un certo numero di problemi presenti in questo protocollo.
Questa sezione indirizza solamente ai problemi relativi alla sua architettura.

6.1 Scalabilità

E' chiaro che il seguente protocollo non è scalabile a sufficienza,
se usato in una rete molto grande. Il problema proviene, principalmente,
dai requisiti che tutti i servers devono conoscere riguardo gli altri servers,
clients e canali e in quanto, le informazioni riguardo questi, dovrebbero
essere aggiornate ogni volta che avviene un cambiamento.

6.2 Affidabilità

Siccome l'unica configurazione di rete permessa ai server IRC è quella a forma di albero,
ogni link tra due server è un punto di fallimento ovvio e abbastanza serio.
Tutto ciò è documentato in dettaglio nel "Internet Relay Chat: Server Protocol" [IRC-SERVER].

6.3 Congestione di Rete

Un altro problema legato alla scalabilità e all'affidabilità,
come all'architettura ad albero, è che il protocollo e l'architettura
di IRC sono particolarmente vulnerabili alle congestioni di rete.
Questo problema è endemico, e deve essere risolto in futuro:
se la congestione e il volume di traffico sono causa delle cadute dei link
tra due servers, non solo questo problema è generato dal volume formatosi,
ma anche dalla riconnessione tra servers, la quale può appesantire ulteriormente il collegamento.

Kalt Informativa [Pagina 7]

RFC 2810 Internet Relay Chat: Architettura Aprile 2000


Nel tentativo di ridurre il più possibile l'impatto con questi problemi,
è fortemente RACCOMANDATO che il server non tenti di riconnettersi, automaticamente,
troppo velocemente, in modo da evitare l'aggravarsi della situazione.

6.4 Privacy

Il motivo della mancata scalabilità, è anche causata dal fatto
che il server necessita di sapere tutte le informazioni sulle altre entità
e per questo, è ovvio pensare riguardo anche ai riscontri con la privacy.
Questo è particolarmente vero per i canali, in quanto
le informazioni relative ad essi sono più rilevabili rispetto
se l'utente è connesso oppure no.

7. Considerazioni sulla sicurezza

Oltre ai problemi per la privacy, menzionata nella sezione section 6.4 (Privacy),
la sicurezza è ritenuta essere irrilevante in questo documento.

8. Supporto corrente e Disponibilità

Mailing lists per le discussioni legate ad IRC:
Discussioni Generali: ircd-users@irc.org
Sviluppo Protocolli: ircd-dev@irc.org

Implementazioni Software:
ftp://ftp.irc.org/irc/server
ftp://ftp.funet.fi/pub/unix/irc
ftp://coombs.anu.edu.au/pub/irc

Newsgroup: alt.irc

9. Riconoscimenti

Parte di questo documento è stato copiato dall'RFC 1459 [IRC], prima documentazione
del protocollo IRC. Inoltre, è stato ricontrollato e commentato.
In particolare, le seguenti persone hanno contribuito, in modo significativo,
nella scrittura di questo documento:

Matthew Green, Michael Neumayer, Volker Paulsen, Kurt Roeckx, Vesa
Ruokonen, Magnus Tjernstrom, Stefan Zehl.

Kalt Informativa [Pagina 8]

RFC 2810 Internet Relay Chat: Architettura Aprile 2000


10. Riferimenti

[KEYWORDS] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.

[IRC] Oikarinen, J. and D. Reed, "Internet Relay Chat
Protocol", RFC 1459, May 1993.

[IRC-CLIENT] Kalt, C., "Internet Relay Chat: Client Protocol", RFC
2812, Aprile 2000.

[IRC-SERVER] Kalt, C., "Internet Relay Chat: Server Protocol", RFC
2813, Aprile 2000.

[IRC-CHAN] Kalt, C., "Internet Relay Chat: Gestione Canale", RFC
2811, Aprile 2000.

11. Indirizzo Autore

Christophe Kalt
99 Teaneck Rd, Apt #117
Ridgefield Park, NJ 07660
USA

EMail: kalt@stealth.net

Kalt Informativa [Pagina 9]

RFC 2810 Internet Relay Chat: Architettura Aprile 2000


12. Copyright

Copyright (C) The Internet Society (2000). Tutti i diritti riservati.

Questo documento e relativa traduzione, possono essere utilizzati come
spiegazione nei documenti d'implementazione. Pertanto possono essere copiati, pubblicati
e distribuiti completamente, o in parte, senza alcun genere di restrizione,
però, con i copyright citati, in tutti i paragrafi dove sono inclusi e in tutte le copie ove sono presenti.
Tuttavia, questo documento, in sè, non può essere modificato in nessun modo,
rimuovendo i copyrights o i riferimenti dell Internet Society o altre
organizzazione di Internet, eccetto qualora vi sia il bisogno,
per motivi di sviluppo degli standard di Internet. In tal caso, le procedure di
copyright definite nel processo degli Standards Internet, devono essere seguite,
anche in caso di traduzione per linguaggi diversi dall'inglese.

I permessi limitati garantiti sono perpetui e non verranno revocati dalla Internet Society,
dai suoi successori o dagli assegnati.

Questo documento e le informazioni che contiene sono fornite "AS IS".
LA INTERNET SOCIETY E INTERNET ENGINEERING TASK FORCE SMENTISCONO TUTTE LE GARANZIE, ESPRESSE O IMPLICITE,
INCLUSE E NON LIMITATE A QUELLE RIGUARDO L'USO DELLE INFORMAZIONI QUI CONTENUTE.
NON GARANTISCONO IN NESSUN MODO CHE QUANTO E' PRESENTE IN QUESTO DOCUMENTO NON POSSA ANDARE AD INFRANGERE
LEGGI O LE GARANZIE DI COMMERCIO E INTEGRITA', SE IN PROPOSITI PARTICOLARI.

Ringraziamenti

I fondi per la pubblicazione degli RFC sono supportati tutt'ora dalla Internet Society.

Kalt Informativa [Pagina 10]

BIS. Traduzione interamente a cura di

Massimiliano Forner (PUOJACKZ)

2003/2004




Branzilla Contest Redeem

Links utili

Newsletter
Iscriviti
Cancellati

Ci sono 41 iscritti

In rilievo..
  JackSMS v3
  Venom Script Lite

Documenti/Guide
  I Social Network
  Sicurezza in rete
  Cos'è SSL
  FAQ Bot
  Documenti su IRC
  FAQ Ident
  RFC 2810
  RFC 2811
  IRCx RFC

Informatica libera
  Gli Hoaxes
  Hoaxes report
  Documenti vari
  CensorWare
  Windows
  Linux

mIRC Scripting
  Codice ASCII
  Snippet mIRC scripting
  Tutorial mIRC scripting
  Dll per mIRC
  Utilities

IRCd
  Cos'è un IRCd
  Download Unreal
  Download Hybrid 6
  Download Hybrid 7
  Download Ultimate
  Download Bahamut
  Configurazione IRCd

IRC Services
  Cosa sono i Services
  Download Anope
  Download Epona
  Ircservices 5.0
  Ircservices 5.1
  Configurazione Epona
  Configurazione Anope
  Comandi ChanServ
  Comandi NickServ
  Comandi MemoServ

NeoStats
  Cosa sono i NeoStats
  Download NeoStats
  Configurazione NeoStats
  Download Moduli

IPv6
  Cos'è IPv6
  IPv6 su Win2000
  IPv6 su WinXP
  IPv6 su Linux
  IPv6 su mIRC e Xchat

Programmazione
  Tutorial C++
  Tutorial C
  Compilatori C/C++

Altro
  Contatti
  Banners Gallery

RSS Feed




Progetti
Starlight
IRCHippo

Validato CSS
Sito interamente sviluppato in PHP
MySQL
©2004+ IRC-Zone | Webmaster | Sitemap
Created by Cesare 'Kaesar83' Lasorella
Designed by Manuel 'erkokki' Cabras
IRC-Zone non è responsabile del contenuto dei siti linkati
Pagina creata in: 0.035 sec con 25 queries
Spampoison
Sviluppato con Notepad++
website monitoring service