# Network News Transport Protocol

Network News Transport Protocol (NNTP) és un protocol inicialment creat per a la lectura i publicació d'articles de notícies a Usenet. La seva traducció literal en català és "protocol per a la transferència de notícies en xarxa".

## Història

NNTP va tenir els seus començaments al març de 1986 quan Brian Kantor de la Universitat de San Diego, i Phil Lapsley de la Universitat de Berkeley van crear el RFC 977, especificació en què es va basar el NNTP en aquest moment. Aquest protocol va tenir altres col·laboradors com van ser Stan Barber de el Col·legi de Medicina Baylor, i Erik Fair d'Apple Computer.
A l'octubre de 2006, el IETF va publicar el RFC 3977 que actualitza el protocol NNTP i que inclou moltes de les millores creades al llarg dels anys des del RFC 977.
Avui dia també alguns BBS Utilització d'aquest protocol per deixar disponibles els seus fòrums o àrees de correu de la xarxa FidoNet o altres xarxes.

## Principi de funcionament

El funcionament del NNTP és molt senzill, consta d'un servidor en el qual estan emmagatzemades les notícies ia ell es connecten els clients a través de la xarxa.
La connexió entre client i servidor es fa de forma interactiva aconseguint així un nombre d'articles duplicats molt baix. Això suposa un gran avantatge respecte de serveis de notícies anteriors, en què la tecnologia per lots era la seva principal aliada.
Aquesta connexió es realitza sobre el protocol TCP. El port 119 està reservat per al NNTP. No obstant això quan els clients es connecten al servidor de notícies mitjançant SSL s'utilitza el port 563.
Cada article de notícies emmagatzemat al servidor està referenciat pel nom de la màquina del client que ha publicat l'article. Aquesta referència queda present en un camp de la capçalera anomenat NNTP-Posting-Host'.

## Possibilitats que ofereix aquest protocol

Igual que altres servidors de notícies, els clients podran llistar els grups de notícies disponibles i descarregar, enviar i publicar articles mitjançant ordres específiques del NNTP.
Quan es publica s'està creant un article nou i, per tant, la capçalera del missatge només tindrà part de la informació. En enviar s'està treballant amb un article que realment existeix i que posseeix una informació completa en la capçalera i que també conté l'identificador del missatge quan es va publicar.
Tant els lectors de notícies com els clients de transferència de notícies poden descarregar els articles. Això permet l'accés simultani de molts clients a les notícies, sense comptar amb els grans inconvenients del NFS

## Mètodes de transferència de notícies

Per transferir notícies utilitzarem dos mètodes :
* Mètode pushing (actiu): Quan el client envia un article al servidor per aquest mètode, aquest li retorna un codi de resposta pel qual se sap si ja té aquest article, o però no ho té i és transferit des del client. L'ordre per realitzar aquest procés és IHAVE msgid.
Aquest mètode també es diu col·loquialment empènyer.
Cal destacar un gran desavantatge, i és que cada article és buscat individualment, pel que això suposa un gran nombre d'accessos a la base de dades i una gran càrrega per al servidor.
* Mètode pulling (passiu): Amb aquesta tècnica s'obté una llista d'articles d'un grup la data és posterior a l'especificada pel client. Per a això s'utilitza l'ordre NEWSNEWS. Després el client selecciona els articles que no posseeix de la llista anterior, i li són transferits. L'ordre ARTICLE serveix per realitzar aquest propòsit treballant amb cadascun dels IDs dels missatges seleccionats.
Aquesta tècnica també es pot anomenar llençar.
Tot el procés de transferència de notícies està regulat per un estricte control per part del servidor, ja que pot donar-se el cas que existeixi informació confidencial i aquesta només pot ser vista per alguns clients.
El protocol IMAP també es pot utilitzar per llegir els grups de notícies.

## Spoofing

Un problema present en el protocol NNTP és el spoofing (falsificació de notícies) que consisteix en una suplantació de la identitat dels clients que participen en un grup de notícies.
Una extensió del 'NNTP' soluciona aquest problema i per això demana una autenticació a l'usuari per a algunes ordres. Això protegeix al servidor de notícies d'un ús malintencionat.
Altres protocols de transferències de notícies, com el SMTP, també presenten aquest problema.

## Paquets NNTP (sistema operatiu Linux)

Entre els diferents paquets NNTP podem destacar el dimoni NNTP (nntpd), que és un dels més coneguts ia més és usat com a referència. Els seus creadors són Stan Barber i Phil Lapsley. Aquest paquet es troba en qualsevol distribució de Linux.
Un altre paquet NNTP és el InterNetNews o INN. Va ser creat per Rich Salz i combina dos protocols, un basat en NNTP i un altre a UUCP. Aquesta característica fa a aquest paquet millor que l'anterior (nntpd) i és utilitzat per a manejar grups de notícies de grans dimensions.

## Enllaços externs

* RFC 977:definició del protocol
* RFC 1036:definició del format del missatge
* Llista de servidors NNTP públics