NNTP – pratigt protokoll sprider nyheter på nätet

NNTP ser till att informationen i usenet överförs mellan servrar och klienter. Usenet är Internets anslagstavla, och har kommit att bli en allt viktigare informationskälla. Det är ett världsomspännande distribuerat nätverk av nyheter och artiklar.

Elektronisk post är ett utmärkt medium för kommunikation mellan ett fåtal individer. Skall man däremot kommunicera med en större grupp människor eller med en bred allmänhet är ofta Usenet att föredra.

All information som omfattas av Usenet kategoriseras i nyhetsgrupper, identifierade med ett namn som ger en indikation om dess syfte eller innehåll. Grupperna har som så mycket annat på Internet inordnats i en trädstruktur.

Det finns grupper för alla upptänkliga intresseområden: vetenskap, teknik, datorer, ekonomi, resor, sport, musik med mera. Många av grupperna innehåller information som är svår att finna på andra ställen. Dessa grupper kallas ofta för diskussionsgrupper, eftersom mottagare kan göra egna inlägg. Ett viktigt användnings-område för Usenet är därför att rikta frågor till en bred allmänhet. Det kan röra sig om allt från att annonsera ut sin katt till att söka svar på vetenskapliga problem. När en artikel besvaras kan inlägget valfritt göras allmänt tillgängligt eller enbart sändas till artikelns författare. Varje nyhetsgrupp underhålls av en administratör vid en primär nyhetsserver. Om gruppen är privat kan den ligga uteslutande på en server, från vilken användare hämtar informationen.

Publik information kan å andra sidan överföras till hundratals sekundära nyhetsservrar över hela världen. Sekundärservrarna samlar endast på sig sådana grupper som den intresserar sig för, så det är inte så att alla servrar innehåller all information.
För kommunikationen mellan servrar och mellan servrar och klienter (nyhetsläsare) används NNTP (Network News Transfer Protocol). Kommunikationen sker med klartextkommandon på samma sätt som smtp (Simple Mail Transfer Protocol, se Nätvärlden nr 5 1997). Artiklarna har samma format som e-postmeddelanden, och följer därmed specifikationen rfc 822.

En viktig uppgift för protokollet är att sprida artiklar mellan alla intresserade NNTP-servrar. Tiden för att sprida en artikel över hela usenet kan röra sig om allt från någon timme till dagar. Användare kommunicerar med usenet genom en klientprogramvara som kontaktar en lämplig NNTP-server som förhoppningsvis innehåller de grupper som man intresserar sig för. När en artikel besvaras återsänds den till servern som man är ansluten till, vilken i sin tur sprider informationen vidare till andra intresserade servrar.

När en ny artikel mottagits av en NNTP-server vidarebefordras den till andra servrar som är intresserade av åtminstone en av de nyhetsgrupper som anges i artikelns huvud.

Vilka andra servrar som anses vara intresserade av vilka nyhetsgrupper avgör respektive administratör när han konfigurerar sin server. När en ny server mottar artikeln avgör den själv om den är intresserad innan den sparas lokalt. Därefter vidarebefordras artikeln till andra servrar. Det gäller att undvika att loopar uppstår i denna process. En artikel skulle kunna loopa runt för evigt mellan två eller flera servrar om det inte fanns någon mekanism som förhindrade detta. Lösningen ligger i att hålla reda på artiklarnas historik.

Varje server håller med hjälp av unika meddelande-ID reda på alla tidigare artiklar den sett, och när artiklar tas emot som redan setts, kastas de bort.

Denna mekanism räcker för att förhindra loopar, men det finns även andra metoder för att undvika att artiklar i onödan sänds till servrar som förkastar dem. En sådan optimering är att lagra artikelns färdväg i huvudet under fältet "Path:". På så sätt kan man undvika vidarebefordran till servrar som redan sett artikeln.

Michael Seemann