Linux documentation Project (CS) / Příručka správce sítě
Previous Content Next Up

 

16. Síťové news (Netnews)

16.1 Historie Usenetu

    Myšlenka síťových news se zrodila v roce 1979, kdy dva absolventi univerzity, Tom Truscott a Jim Ellis, začali uvažovat o využití protokolu UUCP ke spojení počítačů za účelem výměny informací mezi uživateli Unixu. Ve státě North Carolina vytvořili malou síť tvořenou třemi počítači.

    Původně byl provoz sítě obsluhován několika skripty příkazového interpretu (které byly později přepsány do jazyka C), ale ty se nikdy nedostaly na veřejnost. Rychle je nahradily tzv. "Air news, které byly prvním veřejným vydáním softwaru news.

    Systém "Ait news nebyl navržen pro denní práci s více články ve skupině. Když začal jejich objem narůstat, rozhodli se ho Mark Horton a Matt Glickman přepsat, a výsledek svého snažení nazvali vydání "Biá (tzv. Bnews). První veřejné vydání Bnews mělo číslo verze 2.1 a stalo se tak v roce 1982. Postupně byl systém rozšiřován o některé nové rysy. Současná verze Bnews má číslo 2.11. Pomalu však zastarává, nehledě k tomu, že oficiální správce přešel na INN.

    O další přepis se postarali Geoff Colyer a Hanry Spencer v roce 1987; ýlo o verzi "Ciz, neboli C News. Následovala spousta oprav, z nichž nejvýznamnijší bylo vydání C News Performance Release. V systémech, které spravují velké množství diskusních skupin, se režie způsobená častým spouštěním programu relaynews, který je zodpovědný za odesílání příchozích článků jiným hostitelům, stává významnou. Verze Performance Release přidává novou volbu relaynews, která umožňuje spouštět stejnojmenný program, v režimu démona, kdy tento program umístí sám sebe na pozadí.

Verze Performance Release je verzí C News, která je v současné době součástí většiny linuxových balíků.

    Všechna vydání až po verzi "Ciz jsou určena především pro sítě UUCP, i když je lze stejně dobře používat i v jiných prostředích. Efektivní přenos v sítích typu TCP/IP, DECNet nebo jim podobných vyžaduje nové schéma. Z toho důvodu byl v roce 1986 zaveden protokol NNTP (Network News Transfer Protocol - Protokol pro přenos síťových news). Je založen na síťových spojeních a specifikuje množství příkazů pro interaktivní předávání a získávání článků.

    Na síti existuje spousta aplikací založených na protokolu NNTP. Jednou z nich je i balík nntpd, jehož autory jsou Brian Barber a Phil Lapsley. Kromě jiného může sloužit také jako služba zajiššující čtení news hostitelům v rámci lokální počítačové sítě. Balík nntpd byl navržen jako doplněk balíků Bnews nebo C News, které měl rozšířit o vlastnosti protokolu NNTP.

    Jiným balíkem vycházejícím z protokolu NNTP je INN, neboli Internet News. Nejedná se o systém front end, ale spíše o plnohodnotný systém news. Obsahuje důmyslného démona pro přenos news, který je schopen efektivně spravovat několik souběžných spojení NNTP a z toho důvodu je vhodným serverem pro mnoho systémů připojených k Internetu.

16.2 Čím je Usenet v každém případě?

    Jedním z ohromujících faktů ohledně Usenetu je skutečnost, že není součástí žádné organizace ani jej neřídí žádná centralizovaná autorita pro správu sítě. Ve skutečnosti je součástí usenetové lidové tradice, kterou bez ohledu na technický popis nelze nijak definovat. Můžete jen říci, čím není. Kdybyste měli po ruce knihu Brendana Kehoe "Zen and the Art of the Internetie (je dostupná on-line nebo přes Prentice Hall, viz [Kehoe92]), naýli byste zde zábavný seznam usenetových "nevlastností".

    Budeme-li riskovat, že to bude znít hloupě, mohli bychom Usenet definovat jako sdružení vzájemně oddělených míst, které si mezi sebou vyměňují news. Aby se váš systém stal součástí Usenetu, potřebujete nalézt jiný takový systém a sjednat si dohodu s jeho vlastníky nebo správci o výměně news. Poskytování news jinému systému se někdy také říká "krmeníiá, z čehož vychází další obecný axiom usenetové filosofie: "Dej mu nažrat a jsi v něm".

    Nejmenší jednotkou usenetových news je článek. Jedná se o zprávu, kterou uživatel "odešle do sítěit. Aby s ním mohl systém news pracovat, je opatřen administrativní informací, takzvanou hlavičkou článku. Ta je podobná formátu poštovní hlavičky specifikované standardem Internet mail standard RFC 822 v tom, že je tvořena několika řádky textu, z nichž každý začíná názvem pole ukončeným dvojtečkou, za nímž následuje hodnota tohoto pole.

    Články jsou postupovány jedné nebo více diskusním skupinám (newsgroup). Diskusní skupina se zabývá články týkajícími se jednoho tématu. Všechny diskusní skupiny jsou hierarchicky organizovány, přičemž název každé skupiny zároveň udává její pozici v této hierarchiš. Například z názvu diskusní skupiny comp.os.linux.announce může každý poznat, že slouží pro oznámení týkající se počítačového operačního systému jménem Linux.

    Tyto články si pak mezi sebou vymění všechna usenetová místa, která mají zájem o news z příslušné diskusní skupiny. Pokud dvě místa souhlasí s výměnou news, mohou si mezi sebou předávat libovolné diskusní skupiny a mohou do nich přidávat své místní hierarchicky uspořádané skupiny. Například server groucho.edu může mít odkaz na server bernard.edu, který je hlavním zdrojem news, a několik odkazů na menší servery, které naopak zásobuje svými news. Takto může Bernyard College obdržet všechny usenetové skupiny, zatímco GMU má zájem jen o některé hlavní skupiny typu sci, comp, rec atd. Některé z následujících serverů, řekněme například UUCP-server nazvaný brewhq, bude mít zájem o ještě menší počet skupin, z důvodu nedostatku síťových nebo hardwarových zdrojů. Na druhou stranu může mít server brewhq zájem o diskusní skupiny z větve fj, které GMU nepřijímá. Pro takové případy udržuje jiný odkaz na gargleblaster.com, kde je umístěna celá hierarchie fj a ten předá serveru brewhq. Tok news ukazuje obrázek 16.1.

    Popisky šipek vedoucích ze serveru brewhq vyžadují bližší vysvětlení. Implicitně chce totiž všechny místní news posílat na adresu groucho.edu. Avšak na tomto serveru nejsou uchovávány skupiny fj a neexistuje žádný ukazatel pro posílání jakýchkoliv zpráv z těchto skupin.

    Proto je předávání zpráv z brewhq do GMU označeno jako all,!fj, což znamená, že jsou univerzitě posílány všechny diskusní skupiny s výjimkou fj.

16.3 Jak Usenet obsluhuje news?

    Dnes se Usenet rozrostl do obrovských rozměrů. Systémy, které uchovávají celé síťové news obvykle přenášejí něco kolem šedesáti megabajtů dat denně. Samozřejmě, že to vyžaduje mnohem více než jen postrkování souborů. Podívejme se tedy na způsob, jakým většina unixových systémů obsluhuje usenetové news.

    News jsou po síti šířeny různými druhy přenosů. Historickým médiem je UUCP, ale hlavní dopravu dnes obstarává Internet. Použitému směrovacímu algoritmu se říká flooding (zaplavování): každý systém udržuje několik spojení (přítoků news - news feeds) s jinými systémy. Každý článek vytvořený nebo obdržený lokálním systémem news jim takto předá, výjimku tvoří jen případ, kdy již příslušný článek existuje, a v takovém případě je tento článek zrušen. Systém může na základě hlavičkového pole Path: zjistit, kterými systémy již daný článek prošel. Tato hlavička obsahuje seznam všech systémů, které článek předaly dále, v podobě tzv. notace bang path.

    Aby bylo možné články rozlišovat a odhalovat duplicity, nese si s sebou každý usenetový článek id zprávy (uvedené v hlavičkovém poli Message-Id), které kombinuje název odesílatele a sériové číslo do tvaru "<sériové číslo@odesílatel>i.. Systém news uloží id každého článku, který zpracoval, do souboru history, s nímž jsou pak porovnávány všechny nově příchozí články.

    Tok článků mezi dvěma místy může být omezen dvěma kritériš: zaprvé může být článku přiřazena tzv. distribuce (v hlavičkovém poli Distribution:), která může omezit jeho doručení jen do určitých skupin míst. Na druhé straně mohou být předávané skupiny news omezeny odesílatelem i příjemcem. Sada diskusních skupin a distribucí je obvykle uchovávána v souboru sys.

    Velký počet článků zpravidla vyžaduje zdokonalení Výše uvedeného schématu. V sítích UUCP je přirozené sesbírat články za určité období, zkombinovat je do jednoho souboru, ten potom zkomprimovat a poslat vzdálenému systému. Této proceduře říkáme dávkování (batching).

    Jinou alternativou je protokol ihave/sendme, který v prvé řadě zabraňuje přenosu duplicitních článků, čímž šetří i šířku pásma. Místo aby umístil do dávkových souborů všechny články a poslal je dál, zkombinuje pouze id zpráv článků do jedné velké zprávy "ihaveiu a pošle ji vzdálenému systému. Ten si ji přečte, porovná její obsah s obsahem souboru history a v souboru "sendmeio vrátí seznam článků, které požaduje. Pak mu jsou poslány pouze tyto články.

    Samozřejmě, že protokol ihave/sendme má smysl jen u dvou velkých systémů, z nichž každý získává news z několika nezávislých zdrojů, které sčítají nové zprávy dostatečně často pro efektivní tok news.

    Systémy, které jsou připojeny k Internetu, obecně spoléhají na software založený na protokolu TCP/IP, který využívá protokol NNTP (Network News Transfer Protocol).

Zprostředkuje přenos news mezi zásobníky a zajiššuje jednotlivým uživatelům přístup ke vzdáleným hostitelům.

    Protokol NNTP definuje tři různé způsoby přenosu news. Jedním z nich je verze ihave/sendme v reálném čase, které se také říká tlačení (pushing). Druhým způsobem je metoda tažení (pulling) news, při které klient požaduje seznam článků v dané diskusní skupině nebo hierarchiš, které dorazily na příslušný server po specifikovaném datu, a vybere si ty, jež nenajde ve svém souboru history. Třetí metoda slouží k interaktivnímu čtení news a dovoluje vám nebo vašemu prohlížeči news získávat články ze specifikovaných diskusních skupin, stejně jako posílat články s neúplnými hlavičkovými informacemi.

    Na každém serveru jsou news uchovávány v adresářové hierarchiš /var/spool/news, každý článek je uložen v samostatném souboru a každá diskusní skupina má svůj vlastní adresář. Název adresáře je odvozen z názvu diskusní skupiny, přičemž jednotlivé komponenty tohoto názvu tvoří cestu. Takto budou články ze skupiny comp.os.linux.misc uloženy v adresáři /var/spool/news/comp/os/linux/misc. Článkům jsou v jednotlivých skupinách přidělována čísla podle pořadí, v jakém přišly. Toto číslo slouží jako název souboru. Rozsah čísel článků, které jsou aktuálně k dispozici, je uchováván v souboru active, který současně slouží jako seznam známých diskusních skupin ve vašem systému.

    Jelikož je diskový prostor omezeným zdrojem, musí někdo po určité době články mazat. Tomuto mechanismu říkáme vypršení platnosti (expiring). Doba platnosti článků z určitých skupin a hierarchší zpravidla vyprší po pevném počtu dnů od jejich doručení. Toto pravidlo může odesílatel potlačit za pomoci pole Expires: v hlavičce článku, ve kterém uvede datum vypršení platnosti.

Previous Content Next Up