IRC

Wikipedia
Loikkaa: valikkoon, hakuun
Tämä artikkeli käsittelee pikaviestiprotokollaa ja -verkkoja. IRC-Galleria on www-yhteisöpalvelu.
Internet-protokolla
Network-receive.svg

sovelluskerros
DHCPDHCPv6DNSESMTPFTPHTTPIMAPIRCLDAPMGCPNNTPNTPPOP3RPCRTPRTSPSIPSMTPSNMPSOCKSSSHTelnetTLS/SSLXMPP
Go-up.svg

kuljetuskerros
TCPUDPDCCPSCTPRSVPRIPBGPECN
Internet-web-browser.svg

verkkokerros
IP (IPv4 ja IPv6)ICMPICMPv6IGMPOSPFIPsec
Wikibooks
Wikikirjastossa on aihe: IRC.

IRC (lyhenne sanoista Internet Relay Chat[1], puhekielessä irkki) on eräs Internetin pikaviestintäpalvelu (instant messenger), joka mahdollistaa reaaliaikaisen keskustelun Internet-käyttäjien välillä. IRC:n keskustelut käydään kirjoittamalla tekstiä ja lukemalla näytöltä muiden kirjoittamia viestejä. IRC:iin pääsee tarkoitusta varten tehdyllä asiakasohjelmalla tai joidenkin WWW-sivujen kautta.

Historiaa[muokkaa | muokkaa wikitekstiä]

Tolsun, Oulun yliopiston tietojenkäsittelyopin laitoksen (TOL) Sun-3-tietokone esillä yliopiston tiloissa

IRC:n kehitti Jarkko "Wiz" Oikarinen vuoden 1988 kesällä korvaamaan OuluBox BBS:n MUT ("MultiUser Talk") -ohjelman. IRC:n edeltäjä ja inspiraatio oli Bitnet Relay Chat -niminen ohjelma, joka mahdollisti reaaliaikaisen keskustelun kansainvälisten akateemisten verkkojen muodostamassa BITNET-verkossa. Ensimmäinen IRC-palvelin aloitti toimintansa Oulussa elokuussa 1988, osoitteenaan tolsun.oulu.fi. [2]

Vuoden 1989 puolivälissä IRC-palvelimia oli maailmanlaajuisesti noin 40 kappaletta. Samana vuonna Michael Sandrof julkaisi tunnetun ircII-asiakasohjelman. Heinäkuussa 1990 IRC:tä käytti keskimäärin 12 käyttäjää 38 palvelimella [3].

IRC tuli kuuluisaksi, kun Neuvostoliiton vallankaappauksen yhteydessä käyttäjät kertoivat rautaesiripun takaisista tapahtumista. Kuwaitilaiset käyttivät sitä aikaisemmin samalla tavalla Saddam Husseinin hyökättyä maahan. Vuonna 1991 saavutettiin ensimmäisen kerran 300 yhtäaikaisen käyttäjän raja [3].

Sittemmin IRC:stä tuli merkittävä kansainvälisen keskustelun media. IRC-verkot kasvoivat sekä määrällisesti että käyttäjämäärältään Internetin yleistyessä voimakkaasti 1990-luvun lopussa ja 2000-luvun alussa. Huippuvuosi IRC:n käytössä oli vuosi 2004, jonka jälkeen käyttäjämäärät ovat pääsääntöisesti laskeneet vuosi vuodelta irc.netsplit.de-sivuston tilastojen mukaan. Huippuvuonna 2004 esimerkiksi suurimmassa verkossa Quakenetissä oli parhaimmillaan noin 240 000 yhtäaikaista käyttäjää ja nyt vuonna 2013 Quakenetissä on keskimäärin 70 000 samanaikaista käyttäjää. Hidas käyttäjämäärien lasku on todettavissa myös muissa suurissa ja perinteisissä IRC-verkoissa.[4].

IRC:n ympärille on Suomessa kehittynyt muutama WWW-palvelu, kuten IRC-Galleria. Lisäksi Internetiin on ilmaantunut IRC:n kaltaisia palveluita, chattejä. Nämä ja sosiaaliset verkkopalvelut ovat vallanneet alaa aloittelijalle vaikeakäyttöiseltä IRC-palvelulta.

Jarkko Oikarinen sai vuonna 1997 Dvorak-palkinnon (John C. Dvorak Telecommunications Excellence Award) IRC:n kehittämisestä. Lisäksi IRC on palkittu Millennium-sovelluspalkinnolla vuonna 2005.

Käyttötapoja[muokkaa | muokkaa wikitekstiä]

IRC:n yleisin käyttö on todennäköisesti lähinnä yksityisten henkilöiden välistä keskustelua. IRC:ssä on lähes rajaton määrä kanavia eri aiheista monilla eri kielillä. IRC:ssä on keskustelua vuorokaudenaikaan katsomatta lähes aina. Suosittuja kanavia ovat esimerkiksi harrastus-, paikkakunta- ja opiskelukanavat. Osa IRC:n viehätyksestä perustunee kasvottomuuteen: halutessaan voi olla nimetön ja vaikkapa käyttää aina erilaista nimimerkkiä. Keskustelijan nimeä, ulkonäköä ja asuinpaikkaa ei tiedä kukaan – ellei sitä itse halua kertoa. Monille kanaville muodostuu sisäpiiri, joka tapaa toisiaan säännöllisesti myös kasvotusten. IRC:stä löytää melko varmasti samanhenkistä seuraa, kunhan muistaa normaalit käytöstavat, terveen järjen ja netiketin.

Toiminta[muokkaa | muokkaa wikitekstiä]

Kaavio IRC-verkon toiminnasta. Vihreät neliöt kuvaavat normaaleja asiakasohjelmia, siniset IRC-botteja ja oranssit bouncer-ohjelmia

IRC on avoin TCP/IP:n päällä toimiva protokolla. Käyttäjä käyttää IRC:tä ottamalla yhteyden IRC-palvelimeen asiakasohjelmalla. IRC:stä on useita palvelin- ja asiakasohjelmatoteutuksia. IRC-palvelimet muodostavat keskenään IRC-verkkoja. Suosituimmat IRC-verkot ovat QuakeNet, EFnet (Eris Free Network), IRCnet sekä Undernet, joista IRCnet ja EFnet vastaavat parhaiten alkuperäistä vuonna 1988 aloitettua IRC-verkkoa. Joillakin kielillä on omia verkkojaan, esimerkiksi ranskankielinen EpiKnet ja espanjankielinen IRC-Hispano. Useimmat IRC-verkot ovat julkisia, eli verkkoon voi liittyä keskustelemaan kuka tahansa. IRC:n käyttäjä saa viestejä ainoastaan olleessaan kytkeytyneenä palvelimeen; jos käyttäjä ei ole verkossa, hänelle lähetetyt viestit jäävät saapumatta. Pysyvä IRC:ssä paikallaolo vaatii koko ajan päällä olevan asiakasohjelman pysyvästi verkossa olevalla koneella. Tämä voi tapahtua Unix-koneessa ajettavalla tekstipohjaisella IRC-ohjelmalla, jolloin puhutaan shell-tunnuksesta tai samankaltaisella ns. bouncer-ohjelmalla, joka toimii välityspalvelimena ja kerää viestejä käyttäjän poissaolon aikana.

IRC:n peruskäsitteisiin kuuluvat nimimerkki (nickname) ja kanava.

Nimimerkit ja käyttäjätunnukset[muokkaa | muokkaa wikitekstiä]

Jokaisella käyttäjällä on oma IRC-nimimerkki (nick) ja käyttäjätunnus (username). Kunkin käyttäjän täytyy valita itselleen nimimerkki, jolla muut käyttäjät tunnistavat hänet. Nimimerkki määritellään asiakasohjelman asetuksissa ennen ensimmäistä käyttökertaa. Nimimerkki näkyy muille IRC:n käyttäjille kunkin käyttäjän kirjoittamien tekstirivien alussa.

Esimerkki:

<Matti> Hei Maija, mitä kuuluu?
<Maija> Kiitos hyvää, Matti!

Alun perin käyttäjätunnuksen (username) tarkoituksena oli näyttää se käyttäjätunnus, joka käyttäjällä on hänen käyttämässään laiteympäristössä. Useimmissa nykyisissä asiakasohjelmissa käyttäjätunnukseksi voi asettaa kuitenkin minkä tahansa haluamansa tekstin.

Teknisesti käyttäjä tunnistetaan maskista, joka on muotoa nimimerkki!käyttäjätunnus@osoite, jossa osoite (hostname) on käyttäjän IP-osoite tai sitä vastaava DNS-nimi. identd-palvelu antaa käyttäjätunnuksen palvelimelle pyydettäessä. Palvelin lisää käyttäjätunnuksen eteen ~-merkin ja jotkut palvelimet "+" tai "-" -merkin merkiksi rajoitetusta yhteydestä, jos ne eivät saa vastausta identd-palvelimelta, tai mahdollisesti eväävät pääsyn kokonaan.

Tästä huolimatta IRC:ssä on kuitenkin mahdollista esiintyä myös jonain toisena käyttäjänä muiden välttämättä hoksaamatta käyttäjän todellista identiteettiä.

Kanavat[muokkaa | muokkaa wikitekstiä]

Pääasiallisesti IRC:ssä keskustellaan monien kuulijoiden kanssa, joten peruskommunikointi IRC:ssä tapahtuu kanavalla (puhekielessä puhutaan myös kannusta). Kanavat ovat ns. keskusteluhuoneita, jotka käsittelevät jotain kanavan jäsenten valitsemaa aihetta, esimerkiksi harrastusta tai paikkakuntaa. Kun käyttäjä liittyy kanavalle, hänen kirjoittamansa tekstit välitetään muille samalle kanavalle liittyneille käyttäjille.

Kullakin kanavalla on nimi. Kanavien nimet alkavat erikoismerkillä, joka on normaaleilla kanavilla "#". Joissain verkoissa on myös muita, harvemmin käytettyjä etuliitteitä, kuten "&", "+" ja "!". Kanavan nimi voi olla esimerkiksi #wikipedia.

Kanava syntyy automaattisesti, kun ensimmäinen keskustelija liittyy kanavalle. Vastavuoroisesti kanava lakkaa olemasta, kun viimeinen käyttäjä poistuu kanavalta. Käyttäjät voivat liittyä yhtä aikaa myös useille kanaville, joilla käydyt keskustelut eivät näy muille kanaville.

Kanavaoperaattorit[muokkaa | muokkaa wikitekstiä]

Ensimmäinen IRC-kanavalle liittynyt keskustelija saa kanavaoperaattorin oikeudet sekä @-merkin nimimerkkinsä eteen. Kanavaoperaattorin oikeudet antavat kanavan perustajalle määräysvallan kanavalla käytävän keskustelun ja käytöksen suhteen. Näin keskustelut saadaan haluttaessa pysymään tietyn aiheen ympärillä. Kanavaoperaattori voi antaa edelleen muille kanavalla oleville kanavaoperaattorin oikeuden, tai poistaa oikeuden toiselta operaattorilta.

Kanavaoperaattorin oikeuksiin kuuluvat muun muassa:

  • Kanavan jäsenen poistaminen kanavalta (pois potkaiseminen eli kick)
  • Tietyn käyttäjän tai käyttäjäjoukon kanavalle pääsyn evääminen (bannaus eli ban)
    kickban on vakiintunut, mutta epävirallinen termi, jolla tarkoitetaan jonkin käyttäjän poistamista (potkaisemista) kanavalta, estäen samalla hänen pääsynsä takaisin kanavalle (ban)
  • Kanavan moodin muuttaminen (katso Kanavamoodit)
  • Kanavan otsikon vaihtaminen, jos se on rajoitettu t-moodilla
  • Kanavalle liittymiseen vaadittavan salasanan asettaminen
  • Puheoikeuksien jakaminen, jos kanavalla keskustelu on rajoitettu m-moodilla

Kanavaoperaattorien määrä vaihtelee kanavakohtaisesti: joillain kanavilla ei ole yhtään operaattoria, kun taas joillain kanavilla kaikki kanavan kaikille käyttäjille on annettu operaattorin oikeudet. Koska kanavaoperaattorit ovat vallan määrältään tasa-arvoisia, yksi kanavaoperaattori voi teoriassa päättää koko kanavan asioista. Usein kanavayhteisöt ovat kuitenkin jonkinasteisia demokratioita – ainakin operaattorien kesken.

Kanavaoperaattorin oikeuden menettää poistuessaan kanavalta joko tarkoituksella tai verkko-ongelmien johdosta, tai sen voi menettää toisen operaattorin poistamana. Tämän vuoksi IRC-kanavilla nähdään silloin tällöin tilanne, jossa kenelläkään kanavalla olevalla ei ole operaattorin oikeuksia. Tällainen tilanne on ei-toivottava, koska kukaan ei voi muuttaa kanavalle mahdollisesti asetettuja kanavamoodeja. Tilannetta voidaan pyrkiä estämään käyttämällä IRC-botteja tai nykyaikaisempien palvelinohjelmiston tarjoamia toimintoja.

Tilat[muokkaa | muokkaa wikitekstiä]

Sekä kanavilla että käyttäjillä voi olla eri tiloja (mode). Useissa IRC-palvelimissa on paljon dokumentoimattomia ja uusia moodeja. Tämä aiheuttaa päänvaivaa asiakasohjelmien tekijöille ja ennen kaikkea niihin skriptejä kirjoittaville.

Standardimoodit, joiden pitäisi toimia kaikkialla:

Käyttäjämoodit
Moodi Nimi Toiminto
o IRC-operator Käyttäjä on IRC-operaattori. IRC-operaattorilla on oikeuksia koko IRC-verkon toimintoihin; mm. kill, joka poistaa käyttäjän koko verkosta.
w wallops Käyttäjä vastaanottaa WALLOPS-viestejä. Nämä viestit ovat IRC-operaattoreille suunnattuja viestejä toisilta IRC-operaattoreilta.
s server notices Käyttäjä vastaanottaa IRC-palvelimen viestejä. Näitä viestejä ovat KILL-viestit ja viestit palvelimien linkityksistä.
i invisible Käyttäjä ei näy listauksissa, ellei listaajalla ole kontaktia käyttäjään (esimerkiksi yhteinen kanava). Nykyaikana tämä on lähes ilmiselvä ja pakollinen valinta esimerkiksi mainostusbottien takia.
Kanavamoodit
Moodi Nimi Toiminto
s secret Kanava ei näy listauksissa.
m moderated Kanavalla ei voi puhua ilman erikoisoikeuksia (esimerkiksi +v tai +o).
n no external messages Kanavalle ei voi lähettää viestejä, jos ei ole liittynyt kanavalle.
t only ops can change topic Vain kanavaoperaattorit voivat asettaa kanavan otsikon.
b nick!ident@hostname pääsykielto (ban) käyttäjä, jonka nick!ident@hostname-maski sopii asetettuun maskiin, ei pääse kanavalle. Kanavaoperaattorit voivat asettaa ja poistaa pääsykieltoja.
o käyttäjä operator Käyttäjällä on kanavaoperaattorioikeudet.
v käyttäjä voice Käyttäjällä on puheoikeudet, jos m-moodi on asetettu.
k salasana key Kanavalle pääsemiseksi tarvitsee liittymisen yhteydessä antaa määritelty salasana.
i invite only Kanavalle pääsee vain kutsuttaessa.
l numero limit Kanavalla voi olla enintään annettu määrä ihmisiä.

Verkkokohtaisia moodeja:

Kanavamoodit
Moodi Nimi Verkko Toiminto
R reop IRCnet Määrittää kanavalle käyttäjämaskin, jolla tai joilla on oikeus saada kanavaoperaattorin status automaattisesti, mikäli kanavalla ei ole jo kanavaoperaattoria.

Yksityisviestit[muokkaa | muokkaa wikitekstiä]

Kaikki IRCissä tapahtuva kommunikaatio ei tapahdu kanavilla. Käyttäjät voivat lähettää toisilleen myös yksityisviestejä, jotka ainoastaan yksityisviestin vastaanottaja ja lähettäjä voi nähdä. Yksityisviestit lähetetään useimmissa asiakasohjelmissa seuraavanlaisella komennolla:

/msg vastaanottajan_nick Sinun viestisi.

IRC-operaattorit[muokkaa | muokkaa wikitekstiä]

IRC-palvelimen ylläpitäjä toimii IRC-operaattorina ja voi kutsua tähän tehtävään myös tekniikkaan hyvin perehtyneitä ja yhteistyökykyisiälähde? IRC-käyttäjiä. IRC-operaattorit vastaavat verkon toiminnasta. Heidän tehtävänsä on hallinnoida ja valvoa ylläpitämänsä IRC-palvelimen toimintaa ja varmistaa IRC-verkon toimivuus. IRC-operaattorit voivat muun muassa yhdistää uusia palvelimia IRC-verkkoon tai katkaista yhteyksiä toisiin palvelimiin. He voivat myös katkaista käyttäjän yhteyden palvelimelle, mikäli hän käyttäytyy häiritsevästi tai haittaa palvelimen tai verkon toimintaa. Äärimmäisissä tapauksissa IRC-operaattori voi estää pysyvästi käyttäjän pääsyn palvelimelle tai jopa koko verkkoon.

IRC-operaattorit eivät yleensä puutu kanavanvaltauksiin; tämä tosin vaihtelee melko paljon verkoittain. Teknisistä syistä kanavien alkuperäisiä omistajuuksia on yleensä mahdotonta selvittää. Tämä aiheuttaa myös IRC-operaattoreille suuren työmäärän, sillä vallattuja tai ilman kanavaoperaattoreita olevia kanavia on usein todella paljon. Yleensä IRC-operaattorit puuttuvat kanavanvaltauksiin vain, jos se häiritsee verkon toimintaa, esimerkiksi kanavan valtaaminen palvelunestohyökkäystä apuna käyttäen.

Netsplit[muokkaa | muokkaa wikitekstiä]

Netsplit, puhekielessä splitti, tapahtuu, kun kahden IRC-palvelimen välinen yhteys syystä tai toisesta katkeaa. Tällöin molemmat puolet näkevät vastakkaisen puolen poistuvan IRC:stä, ja syntyy ikään kuin kaksi erillistä IRC-verkkoa. Kun yhteys kahden IRC-palvelimen väliin palaa ennalleen, yhdistetään molemmat puolet taas samaan IRC-verkkoon ja käyttö jatkuu normaalisti.

IRC-palvelut[muokkaa | muokkaa wikitekstiä]

Joihinkin verkkoihin on liitetty erityisiä palveluohjelmistoja (engl. services). Palveluiden yleisimmät käyttötarkoitukset ovat IRC-nimimerkin ja kanavien rekisteröinti. Näitä käyttäen sama henkilö voi saada yksinoikeuden nimimerkkiin ja säilyttää kanavaoperaattorin oikeutensa, vaikka yhteys palvelimeen katkeaa.

IRC-botit[muokkaa | muokkaa wikitekstiä]

IRC-botit ovat IRC-verkkoon yhteydessä olevia tietokoneohjelmia, botteja, jotka voivat muun muassa ylläpitää kanavaa. Ne ovat oikeastaan robotteja, jotka automatisoivat kanavan ylläpidollisia toimenpiteitä. IRC-palvelimilla toimivia botteja kutsutaan palveluiksi. Yleensä IRC-botit ovat kuitenkin käyttäjien itsensä ylläpitämiä. Niitä käytetään lähinnä varmistamaan, että kanava pysyy alkuperäisten omistajien hallussa. Bottien tarkoitus on pysyä aina kanavalla ja antaa valituille henkilöille kanavaoperaattorin oikeudet heti kanavalle saapumisen jälkeen tai heidän syötettyään salasanan botille yksityisviestillä. IRC-botti voi myös potkaista (kick) liian kauan hiljaa olleen irkkaajan kanavalta (idlekick). IRC-botti voi bannata huonosti käyttäytyvän keskustelijan kanavalta määräajaksi tai toistaiseksi.

Botissa voi olla käyttäjätietokanta, joten se voi muistaa rekisteröidyt käyttäjät ja esimerkiksi kertoa kyselijälle, milloin kysytty keskustelija on ollut viimeksi kanavalla. Käyttäjätietokannassa käyttäjillä voi olla erilaisia oikeustasoja.

IRC-botteihin saa myös lisätoimintoja, muun muassa televisio-ohjelmien näytön, erilaisia suojaus- ja hallintajärjestelmiä kanaville ja jopa tekoälykeskustelujärjestelmiä. Suosittuja bottiohjelmia ovat esimerkiksi Eggdrop, oer ja Energymech.

Suosittuja ohjelmia[muokkaa | muokkaa wikitekstiä]

Kuvakaappaus irssistä
Kuvakaappaus XChatista

Verkot[muokkaa | muokkaa wikitekstiä]

Nykyään maailmassa on useita satoja IRC-verkkoja. Ne pyörivät useilla eri IRC-palvelinohjelmilla ja niitä hallinnoivat lukuisat IRC-operaattorit. Palvelimen ja IRC-käyttäjän välinen protokolla on perusteissaan pysynyt samana, joten kaikkia IRC-verkkoja voi käyttää samalla ohjelmistolla.

Neljä suurinta verkkoa:

Muita merkittäviä verkkoja:

IRC teknisesti[muokkaa | muokkaa wikitekstiä]

IRC on tekstiprotokolla, mikä tarkoittaa sitä, että kaikki siirtyy selkokielisenä tekstinä verkon yli. Nykyisin moni IRC-verkko tukee myös SSL-protokollalla salattua yhteyttä.

Kaikki käytössä olevat asiakkaan ja palvelimen väliset protokollat periytyvät protokollasta, joka oli toteutettu IRC2-palvelimen versiossa irc2.8 ja dokumentoitu RFC 1459:ssä. RFC 1459:n jälkeen ei enää ole julkaistu yhteistä standardia. IRCnetin irc2.10-toteutuksen uudet ominaisuudet on julkaistu dokumenteissa RFC 2810, RFC 2811, RFC 2812 ja RFC 2813. Uudet RFC:t eivät ole Internet-standardeja eikä niillä ole vaikutusta muiden verkkojen palvelinohjelmistojen kehitykseen.

Toisaalta palvelin–palvelin-protokollia on paljon erilaisia, ja tästä syystä yleensä vain samaa ohjelmistoa käyttävät palvelimet voivat yhdistää toisiinsa. Suurin tällaisista eroista on jako TS (TimeStamp) ja CD/ND (Channel Delay, Nick Delay) -palvelimiin. Yksi syy alkuperäisen IRC-verkon jakautumiseen EFnetiksi ja IRCnetiksi oli kiista siitä, kumpi näistä järjestelmistä otetaan käyttöön. IRCnet käyttää kanava- ja nimimerkkiviiveitä, kun taas EFnet käyttää aikakoodeja ongelmatilanteiden välttämiseksi ja ratkaisemiseksi.

Merkistö[muokkaa | muokkaa wikitekstiä]

IRC-protokollassa ei ole määritelty merkistökoodausta. Käytännössä tämä tarkoittaa sitä, että kukin asiakas päättää itse, mitä merkistöä käyttää. Perinteisesti suomalaisilla IRC-kanavilla käytetään Latin-1-merkistöä, mutta muitakin käytäntöjä esiintyy, kuten WIN-1252-merkistö tai eurolaajennettu Latin-9-merkistö. Osa suosii UTF-8-merkistöä, johon siirtymisestä perustettiin loppuvuodesta 2005 kampanja,[5] joka kehottaa kaikkia siirtymään UTF-8:n käyttöön vuoden 2006 alettua. Siirtymän tarpeellisuus on toisaalta myös kyseenalaistettu.[6] Monet asiakasohjelmat ovat kuitenkin jo jonkin aikaa tarjonneet mahdollisuutta automaattiseen kääntämiseen UTF-8:n ja vanhojen merkistöjen välillä ja myös mIRC, eräs käytetyimmistä asiakasohjelmista, sai tuen tälle alkuvuodesta 2006. Tämä helpottaa UTF-8-merkistön käyttöä.

Vastaavasti esimerkiksi puolalaisilla IRC-kanavilla käytetään yleensä ISO 8859-2-merkistöä ja japanilaisilla IRC-kanavilla ISO 2022-JP- tai Shift-JIS-merkistöä.

Lähteet[muokkaa | muokkaa wikitekstiä]

Katso myös[muokkaa | muokkaa wikitekstiä]

Aiheesta muualla[muokkaa | muokkaa wikitekstiä]