__eggdropinfo.gif (6691 bytes)

Hoe werkt IRC?

Om dat uit te leggen het volgende voorbeeld: Er is een IRC netwerk dat bestaat uit aan elkaar gekoppelde servers (computers). In dit voorbeeld zijn het er 3 (irc.xs4all.nl +irc.sci.kun.nl + chat.bt.net), maar het kunnen er ook 200 zijn. Zodra shorty inlogt op de server irc.xs4all.nl gebeurt er het volgende:

 

irc.xs4all.nl

< -- >

irc.sci.kun.nl

< -- >

chat.bt.net

shorty   kopie shorty   kopie shorty

 

Shorty is nu ingelogd op irc.xs4all.nl en die server stuurt een kopie van de gegevens van shorty naar alle andere servers in het netwerk. Op elke server kun je nu /whois shorty doen en dan zie je op welke server shorty is ingelogd. De nicknaam shorty kan nu niet meer door iemand anders worden gebruikt. Shorty heeft nog geen /join commando gegeven en "zit" dus niet op een kanaal. Zodra shorty het commando /join #DutchChat doet, gebeurt er het volgende:

 

irc.xs4all.nl

< -- >

irc.sci.kun.nl

< -- >

chat.bt.net

kanaal #DutchChat
@shorty
  kopie kanaal #DutchChat
kopie @shorty
  kopie kanaal #DutchChat
kopie @shorty

 

Het kanaal #DutchChat is nu opgericht en dat wordt aan alle servers in het IRC netwerk gemeld. De gegevens van shorty zelf worden gekoppeld aan dat kanaal omdat hij het /join commando heeft gegeven. Ook die informatie wordt aan alle servers doorgegeven. Omdat shorty de eerste is die het kanaal joint, krijgt ie vanzelf de op-status (het @ teken). Ook dat wordt aan alle servers doorgegeven.

Nu loggen er nog meer mensen in: King op de server irc.sci.kun.nl en Guppie op de server chat.bt.net. Daarna is de situatie als volgt:

 

irc.xs4all.nl

< -- >

irc.sci.kun.nl

< -- >

chat.bt.net

kopie King
kopie Guppie
  King
kopie Guppie
  kopie King
Guppie
kanaal #DutchChat
@shorty
  kopie kanaal #DutchChat
kopie @shorty
  kopie kanaal #DutchChat
kopie @shorty

 

King en Guppie zijn wel ingelogd maar hebben geen kanaal gejoind. Zodra King en Guppie het kanaal #DutchChat joinen (en nadat ze van shorty een opje hebben gekregen) is de situatie als volgt:

 

irc.xs4all.nl

< -- >

irc.sci.kun.nl

< -- >

chat.bt.net

kanaal #DutchChat
@shorty
kopie @King
kopie @Guppie
  kopie kanaal #DutchChat
kopie @shorty
@King
kopie @Guppie
  kopie kanaal #DutchChat
kopie @shorty
kopie @King
@Guppie

 

Nu kunnen King, Guppie en shorty, naast het chatten via /msg of /query en een eventuele DCC, ook gewoon "op het kanaal" met elkaar praten.

King opent nu een eigen kanaal, #Majesteit met het commando /join #Majesteit. King doet dat op de server waarop hij zelf is ingelogd (irc.sci.kun.nl dus). Die server geeft alle informatie door aan alle andere servers. Zodra dat is gebeurd, is de situatie als volgt:

 

irc.xs4all.nl

< -- >

irc.sci.kun.nl

< -- >

chat.bt.net

kanaal #DutchChat
@shorty
kopie @King
kopie @Guppie
  kopie kanaal #DutchChat
kopie @shorty
@King
kopie @Guppie
  kopie kanaal #DutchChat
kopie @shorty
kopie @King
@Guppie
kopie kanaal #Majesteit
kopie @King
  kanaal #Majesteit
@King
  kopie kanaal #Majesteit
kopie @King

 

Nu gaat er iets fout bij de servers. Door (bijvoorbeeld) een uitgevallen computer raakt de verbinding tussen irc.xs4all.nl en de andere servers verbroken. Dat heet een split. Nadat die split heeft plaatsgevonden is de situatie als volgt:

 

irc.xs4all.nl

 

irc.sci.kun.nl

< -- >

chat.bt.net

geblokkeerd:
kanaalnaam #Majesteit
nicknaam King
nicknaam Guppie

 

geblokkeerd:
nicknaam shorty

 

geblokkeerd:
nicknaam shorty

kanaal #DutchChat
@shorty
  kopie kanaal #DutchChat
@King
kopie @Guppie
  kopie kanaal #DutchChat
kopie @King
@Guppie
    kanaal #Majesteit
@King
  kopie kanaal #Majesteit
kopie @King

 

Het kanaal #Majesteit "verdwijnt" helemaal van irc.xs4all (omdat er via irc.xs4all niemand had gejoind) maar irc.xs4all "weet" nog dat dit kanaal er vlak voor de split was. Daarom "blokkeert" irc.xs4all.nl die kanaalnaam. Er kan via irc.xs4all.nl nu niemand dat kanaal joinen. King en Guppie zelf "verdwijnen" ook van irc.xs4all omdat zij daar niet hadden ingelogd. Maar omdat irc.xs4all nog "weet" dat vlak voor de split er een King en Guppie waren, blokkeert irc.xs4all.nl die twee nicknamen. Shorty verdwijnt van alle andere servers dan de server waar hij zelf had ingelogd. Maar omdat die andere servers nog "weten" dat de nicknaam shorty in gebruik was vlak voorde split, blokkeren zij die nicknaam. Niemand kan die nicknaam nu gebruiken.

Als King en shorty prive met elkaar aan het praten waren via /msg of /query, is die verbinding door de split ook verbroken. Waren zij via DCC aan het praten dan blijft die verbinding gewoon bestaan tijdens de split.

Zodra de split weer wordt opgeheven (de servers worden weer onderling gekoppeld) zullen alle gegevens over users en kanalen tussen de servers worden uitgewisseld, waardoor uiteindelijk de situatie weer als volgt is:

 

irc.xs4all.nl

< -- >

irc.sci.kun.nl

< -- >

chat.bt.net

kanaal #DutchChat
@shorty
kopie @King
kopie @Guppie
  kopie kanaal #DutchChat
kopie @shorty
@King
kopie @Guppie
  kopie kanaal #DutchChat
kopie @shorty
kopie @King
@Guppie
kopie kanaal #Majesteit
kopie @King
  kanaal #Majesteit
@King
  kopie kanaal #Majesteit
kopie @King

 

Uiteraard is dit voorbeeld eenvoudig gehouden, maar als het goed is, begrijp je nu hoe IRC technisch gezien werkt.
rule2.gif (799 bytes)
Als je commentaar hebt op deze pagina, stuur een mail aan shorty, die deze pagina onderhoudt.

findme.gif (5365 bytes)

rule2.gif (799 bytes)

Deze pagina is voor het laatst aangepast op dinsdag 17 juli 2001.