Serwer IRC to rodzaj programu realizującego na zdalnym komputerze usługę IRC. Serwer generalnie realizuje kilka podstawowych funkcji:

  • przyjmuje i odbiera strumień informacji od wszystkich przyłączonych do niego aktualnie klientów
  • jeśli pracuje w sieci wieloserwerowej, realizuje przekazywanie i przyjmowanie strumienia informacji z i do innych serwerów
  • przechowuje i na bieżąco uaktualnia listę użytkowników i kanałów.

Oprogramowanie serwera IRC jest publicznie dostępne, teoretycznie każdy więc może postawić serwer i następnie, łącząc się z innymi serwerami, budować własną sieć IRC. Serwerami zarządzają tzw. ircopi, którzy z tego tytułu mają szczególne przywileje wewnątrz samej sieci. Jakkolwiek dostępne są wersje oprogramowania serwerów na wiele systemów operacyjnych, olbrzymia większość z nich działa pod systemami typu Unix (Linux, Irix itp). Aby działanie serwera miało sens musi on funkcjonować na odpowiednio szybkim komputerze ze stabilnym systemem operacyjnymi i być utrzymywany przez 24 godziny na dobę, 7 dni w tygodniu. Oprócz tego poprawne zainstalowanie, skonfigurowanie i utrzymanie serwera wymaga dużej wiedzy i dysponowania wolnym czasem.

W dużych sieciach IRC istnieją trzy rodzaje struktury połączeń serwerów:

  • każdy serwer jest połączony z każdym innym - tworzą więc one gęstą sieć połączeń
  • w sieci istnieje serwer "matka" zwany "hubem" - wszystkie inne serwery łączą się za pośrednictwem huba i nie kontaktują się bezpośrednio z sobą; użytkownicy nigdy nie łączą się bezpośrednio z hubem
  • układ mieszany - sieć jest podzielona na podsieci; każda z podsieci posiada swojego huba, huby łączą się jednak na zasadzie każdy z każdym tworząc podstawowy szkielet systemu; niektóre huby funkcjonują też jako serwery dostępne bezpośrednio dla użytkowników.

Łączenie się z serwerem

edytuj

Łączenie z serwerem realizuje się za pomocą komendy:

/server adres_serwera numer_portu

Adres_serwera jest typowym adresem domeny internetowej np. irc.freenode.org albo konkretnym numerem IP (np: 83.212.34.78). Numer_portu - określa port, na którym serwer oczekuje na nadchodzące połączenia klientów. Standardowo jest to 6666 lub 6667, niektóre serwery sieci "dla wtajemniczonych" używają jednak nietypowych numerów portów, aby w ten prosty sposób wyeliminować większość niepożądanych gości.

Większość klientów IRC posiada w miarę aktualny spis serwerów większości najbardziej popularnych sieci, dzięki czemu nie trzeba ich szukać w internecie. Większość klientów IRC wykonuje automatycznie komendę /server do naszego ulubionego serwera. Wiele programów do IRC umożliwia też utworzenie listy serwerów naszej ulubionej sieci IRC i automatycznie próbuje się łączyć z kolejnymi, gdy z jakichś powodów nasz ulubiony serwer nie chce zaakceptować połączenia.

Zasady akceptacji połączenia są różne w różnych sieciach i na różnych serwerach. Zasady te ustalają operatorzy serwerów. Istnieją sieci dopuszczające tylko osoby łączące się z określonej puli adresów internetowych, sieci sprawdzające jakim klientem próbujemy się łączyć i odrzucające klienty uznane za niedobre czy wreszcie sieci nie pozwalające łączyć się z dynamicznych adresów IP.

Uzyskiwanie połączenia z serwerem trwa zwykle jakiś czas, niekiedy może to być nawet kilka minut. Po uzyskaniu połączenia wyświetla się zwykle komunikat główny serwera {tzw. motd message of the day), w którym znajdują się podstawowe informacje o nim, o liczbie istniejących aktualnie kanałów i użytkowników, o tym kto jest jego operatorem oraz często o podstawowych zasadach panujących na nim. Motd można w każdej chwili wyświetlić komendą:

/motd

Po uzyskaniu połączenia możemy wydawać dalsze komendy - takie jak wejście na kanał, wyświetlenie listy kanałów itp.

Rozłączenie się danym serwerem bez wyłączania naszego klienta można uzyskać wykonując komendę:

/server

bez żadnych parametrów. Rozłączenie następuje też automatycznie przy próbie połączenia się z innym serwerem, choć niektóre klienty IRC posiadają możliwość jednoczesnego łączenia z kilkoma serwerami. Wymaga to jednak zwykle wcześniejszego uruchomienia dodatkowego okna "serwerowego".

Lag to zjawisko spowolnienia pracy serwera na skutek jego przeciążenia nadmierną liczbą użytkowników lub problemów z łączami. Lag powoduje, że serwer przekazuje komunikaty użytkowników z dużym opóźnieniem. W dużych, wieloserwerowych sieciach lag jest często różny, dla różnych par użytkowników zależnie od tego, do których serwerów są oni przyłączeni. Lagi powodują, że komunikaty pojawiające się kolejno na kanale mogły być wysyłane w innej kolejności niż je widzimy, co często prowadzi do mniej czy bardziej zabawnych nieporozumień. Co więcej - kolejność komunikatów jest w tej sytuacji różna na różnych serwerach, stąd obraz kanału użytkowników połączonych do różnych serwerów może być inny.

Lagi mogą być czasami zaskakująco duże. Znane są przypadki z największych światowych sieci takich jak IRCnet, że dochodzą one nawet do 30-40 minut. Lag rzędu kilku sekund jest w zasadzie nieodczuwalny, jednak lag rzędu 1 minuty daje się już mocno we znaki i powoduje wrażenie jakby się rozmawiało z kimś przebywającym na innej planecie. Długie lagi, rzędu kilkunastu minut praktycznie uniemożliwiają już sensowną komunikację.

Aby sprawdzić jak się ma lag do określonego użytkownika można wydać komendę:

/ctcp ping nick

w wyniku czego otrzymuje się odpowiedź:

[nick PING reply]: x sec

W wielu klientach IRC komenda ta jest uproszczona (za pomocą aliasu) do:

/ping nick

Oprócz serwera, częściowo odpowiedzialne za lag może być też nasze własne łącze. Aby się przekonać, jaka część lagu wynika bezpośrednio z naszego łącza z serwerem, możemy wysłać "pinga" do siebie samego.

Jak radzić sobie z lagiem
Najpierw warto zawsze sprawdzić lag do samego siebie - jeśli jest duży warto poszukać innego serwera lub połączyć się ponownie z tym samym. Jeśli nasz własny lag jest mały, ale na kanale, na którym chcemy rozmawiać mamy duży lag do większości użytkowników możemy sprawdzić, z jakich serwerów oni korzystają przy pomocy komendy /whois (opisanej w rozdziale użytkownicy) i o ile to możliwe przenieść się na serwer, z którego korzysta większość użytkowników danego kanału.

Splity

edytuj

Split to sytuacja, w której dochodzi do rozłączenia się serwerów, najczęściej na skutek przepełnienia łącz między nimi lub uszkodzenia jednego z hubów. Split może dotyczyć jednego serwera, który samodzielnie odłącza od reszty sieci lub może powodować czasowe podzielenie się sieci na dwa lub więcej mniejszych fragmentów.

Split powoduje, że z kanału "znika" nagle duża grupa użytkowników, co jest szerzej opisane w następnym rozdziale. Split jest najczęściej poprzedzony okresem narastającego laga, stąd można powiedzieć, że lagi są często zwiastunami splitu. W trakcie splitu oprogramowanie serwerów stara się ponownie odzyskać łączność. Różne wersje serwerów mają różne procedury radzenia sobie ze splitami. Splity mogą trwać od kilku sekund do nawet wielu godzin i dni. Szczególnie uciążliwe są częste splity krótkotrwałe, gdyż powodują ciągłe rwanie się dyskusji i zaśmiecanie kanałów licznymi komunikatami o wejściach i wyjściach grup użytkowników z różnych "odsplitowanych" serwerów.

Radzenie sobie ze splitami
Krótkotrwałe, pojedyncze splity najrozsądniej jest po prostu przeczekać. Gdy split trwa dłużej i tak się składa, że większość użytkowników kanału z którymi chcemy porozmawiać znalazła się "po drugiej stronie" warto rozważyć przeniesienie się na inny serwer. Paniczne zmiany serwerów spowodowane krótkotrwałymi splitami pogłębiają tylko chaos. Ludzie przenoszą się z jednego serwera na drugi, co dodatkowo je przeciąża i utrudnia im wyjście ze splitu. Na samym kanale, oprócz wyjść i wejść spowodowanych splitem pojawiają się wejścia i wyjścia spowodowane wędrówkami użytkowników po serwerach.

Odmiany serwerów z punktu widzenia użytkownika

edytuj

Istnieje kilkanaście odmian oprogramowania serwerów, które różnią się rozmaitymi szczegółami, a także rodzajem obsługiwanego protokołu. Odmiany te są pochodnymi czterech podstawowych wersji serwerów wywodzących się z oprogramowania EFnetu, IRCnetu, DALnetu i Undernetu (patrz rozdział o sieciach IRC). Z punktu widzenia zwykłego użytkownika różnice między serwerami EFnetu i IRCnetu są prawie niezauważalne, jednak serwery oparte na oprogramowaniu Undernetu i zwłaszcza DALnetu funkcjonują wyraźnie inaczej.

Najłatwiej jest te różnice dostrzec przez porównanie serwerów DALnetu i IRCnetu:

  • Z DALnetem łączymy się zawsze, stosując adres irc.dalnet.net - serwer "matka" automatycznie przydzieli nas do odpowiedniego geograficznie lub aktualnie najmniej obciążonego serwera
  • Z IRCnetem łączymy się bezpośrednio z wybranym samodzielnie z listy serwerem
  • W DALnecie istnieją dodatkowe usługi wbudowane w serwer umożliwiające rejestrację nicka i kanału
  • W IRCnecie musimy sobie radzić z pilnowaniem kanału i nicka sami
  • DALnet inaczej obsługuje splity - w zarejestrowanych kanałach "porządek" po splicie jest dokonywany automatycznie przez specjalną usługę - w niezarejestrowanych po splicie wszyscy tracą status operatora

Ogólnie można powiedzieć, że serwery sieci podobnych do DALnetu są nastawione na utrzymywanie daleko idącego porządku po to, aby zapobiec "wojnom na kanale" i kłótniom użytkowników o ich nicki, natomiast serwery sieci podobnych do IRCnetu pozostawiają większą swobodę użytkownikom, co tworzy na nich rodzaj ircowego folkloru, który szerzej opisany jest w osobnym rozdziale.

Techniczne szczegóły działania oprogramowania serwerów i opis ich rozwoju oraz odmian znajduje się w rozdziale "Protokół i jego odmiany". Jest tam również mowa o zdarzających się czasem problemach z połączeniem się sieciami z powodu niezgodności klienta i serwera.

Szanuj swojego IRCopa

edytuj

IRCop - czyli zwykle administrator serwera jest w sieci IRC rodzajem "boga". Toczenie z nim sporu na ogół mija się z celem, gdyż ma on zawsze narzędzia umożliwiające pozbycie się uciążliwego użytkownika. IRCopowie ustalają też ogólne zasady i politykę na serwerze, które nie podlegają zwykle żadnej dyskusji. IRCopowie wykonują ciężką, społeczną pracę, za którą zwykle nikt im nie płaci. Zgłaszanie próśb o pomoc do IRCopa należy zatem zawsze wcześniej dobrze przemyśleć.

Do IRCopa można się zwrócić o pomoc w sytuacji gdy:

  • kanał uległ trwałemu, wrogiemu przejęciu i nie ma wątpliwości do kogo on pierwotnie należał i co na nim powinno się dziać
  • nastąpiła trwała desynchronizacja kanału na skutek splitu lub lagu
  • IRCop założył k-linię, która objęła nas mimo, że nie powinna.

Do IRCopa nie należy zwracać się o:

  • pomoc w rozstrzygnięciu sporu między dwiema skłóconymi grupami operatorów kanału - IRCopowie z zasady nie mieszają się do "polityki kanałowej"
  • pomoc w odzyskaniu utraconego nicka
  • skargami na innych użytkowników

O tym jak znaleźć IRCopa można przeczytać w rozdziale "Użytkownicy"