protocollo news NNTP

Transcript

protocollo news NNTP
NNTP e l'Usenet Globale
Basato su trasparenze di Jeffrey M. Vinocur
Con ringraziamenti a
Dan Ritter, Eli the Bearded, e Jeanna Matthews
Cos’è Usenet?
• Concettualmente: una collezione semiorganizzata di
forum (“newsgroups”) per la discussione pubblica
– I gruppi sono organizzati in uno
spazio di nomi gerarchico
• Tecnicamente: un sistema per distribuire messaggi
analoghi all’e-mail
– Database replicato e distribuito, di dimensioni rilevanti
• DBMS ad-hoc, basato sul filesystem
• Aggiornamento multi-master
• Expiration: i messaggi vengono cancellati dai
server quando sono “vecchi” (o quando finisce lo
spazio su disco!)
Perché studiare Usenet?
• Protocollo interessante? – no!
• Paradigma diverso (dal web, dall’email, dal
filesharing peer-to-peer)
– Ciascun sito mantiene una copia di tutti i
messaggi
– Un messaggio può essere inviato ad un
newsgroup da qualsiasi sito
• Una importante applicazione di rete con problemi
reali
Messaggi di Usenet
• Formato: simile all’email, ma più restrittivo e con
alcuni header specifici (come Newsgroups)
– Header e corpo del messaggio
– Messaggi multipart (MIME)
• Message-ID: simile quello usato per l’email
– È essenziale che ogni messaggio abbia un
identificatore globalmente unico (ma non è difficile
assegnarli)
• Path: traccia il percorso attraverso cui il messaggio è
stato distribuito
Path: news.litech.org!lnsnews.lns.cornell.edu!
paradoxa.ogoense.net!not-for-meow
From: [email protected] (A Meowbot)
Newsgroups: alt.dev.null
Subject: Why?
Date: Sun, 27 Jan 2002 23:25:52 +0000 (UTC)
Organization: a tyranny of meowing fascist censor cabalists
Lines: 4
Approved: nope.
Message-ID: <[email protected]>
X-Trace: paradoxa.ogoense.net 1012173952 6565 141.154.205.147
(27 Jan 2002 23:25:52 GMT)
X-Complaints-To: [email protected]
X-Meow: Wouf
Mail-Copies-To: nobody
X-No-Repost: yes
Xref: news.litech.org alt.dev.null:492
Because we like you.
-Meow
Topologia della rete
• Gli utenti si connettono ad un
server locale
• I siti sono connessi (peering) con altri siti
– I peering vengono richiesti e configurati
manualmente
– Grandi siti possono avere centinaia di peer
• Trasporto su TCP (oggi)
– Una volta si usava UUCP (su connessioni dial-up
tra server), come anche per l’e-mail
mando un messaggio… e poi?
• Obiettivo: far arrivare ciascun articolo a ogni
server nel mondo – modello dell’inondazione
• La diffusione può richiedere da pochi secondi ad
alcuni giorni (normalmente alcune ore)
Utilizzo importante di banda
Credit:
CAIDA (1999)
Arriva un articolo…
•
•
•
•
Può essere un nuovo invio da un utente o un
articolo che ci viene passato da un peer
Il nome del server viene aggiunto all’header Path
Il server memorizza l’articolo perché gli utenti
possano leggerlo
Per ciascun peer, determina se ha già l’articolo
• Verifica se il nome del del peer è già nel path
• Contatta il peer e chiedi se ha già quel
Message-ID
Invia l’articolo ai peer che non lo hanno
header Path e Message-ID
• Seguiamo il percorso di un articolo. Il componente
inziale (l’ultimo!) del path segnala il mittente, poi il
server di origine aggiunge il suo nome:
Path: paradoxa.ogoense.net!not-for-meow
• Poi questo articolo è passato a cornell:
Path: lnsnews.lns.cornell.edu!
paradoxa.ogoense.net!not-for-meow
• E infine arriva a litech:
Path: news.litech.org!
lnsnews.lns.cornell.edu!
paradoxa.ogoense.net!not-for-meow
Usenet, 1980
reed
phs
\ / \
uok---duke-unc
/ \
research vax135
|
ucbvax
Credit:
Mark Horton
Credit:
ucbvax!mark
Usenet, 1981
pdp
(Misc)
! (NC)
(Misc)
decvax sii reed phs--unc--grumpy duke34 utzoo cincy teklabs
! ! !
!
!
!
!
!
!
!
! +--+----+-----+-+--+-------------+-------+------+
!
!
!
!
!
duke
!
!
!
!
!
+------+---+-----------------------+--------+ !
!
!
!
!
! !
ucbopt
! hocsr--mhtsa----research
mh135a
harpo-----chico
:
!
! !
!
ucbcory !
! eagle
ihnss
vax135 (Bell Labs)
(UCB) :
!
! !
!
!
ucbvax--++----------+--+--+-----+--+------+--------+
:
@
!
!
! (Silicon Valley)
ucbarpa @
(UCSD) sdcsvax
!
menlo70--hao
:
@
sdcattb-----+
!
!
!
ucbonyx @
+-----ucsfcgl
sytek sri-unix
@
phonlab-----+
cca-unix
sdcarl
!Uucp links
:
@
Berknet links
Arpanet links
Usenet, 1993
Credit:
Brian Reid
Usenet oggi
• 1.4 milioni di articoli al giorno - ~ 360 GB al giorno
Credit:
Karl L. Swartz