C - Instytut Informatyki PW

Transkrypt

C - Instytut Informatyki PW
TIN – zima-lato 2006, Grzegorz Blinowski
TIN
Techniki Internetowe
zima-lato 2006
Grzegorz Blinowski
Instytut Informatyki
Politechniki Warszawskiej
TIN – zima-lato 2006, Grzegorz Blinowski
Plan wykładów
2
3
4
5
6
7, 8
9, 10, 11
12
13
14
Intersieć, ISO/OSI, protokoły sieciowe, IP
Protokół IP i prot. transportowe: UDP, TCP
Model klient-serwer, techniki progr. serwisów
Protokoły aplikacyjne: telnet, ftp, smtp, nntp, inne
HTTP
HTML, XML
Aplikacje WWW, CGI, sesje, serwery aplikacji
serwlety, integracja z backended SQL
Aspekty zaawansowane: wydajność,
przenośność, skalowalność; klastering
Inne: P2P, SOAP, RDF, WSDL, ontologie
Wstęp do zagadnień bezpieczeństwa
(IPSec, VPN, systemy firewall)
oraz aspekty kryptograficzne (DES, AES, RSA,
PGP, S/MIME), tokeny i akceleracja sprzętowa
TIN – zima-lato 2006, Grzegorz Blinowski
Zdalna praca znakowa:
telnet, rlogin (i rsh), ...
TIN – zima-lato 2006, Grzegorz Blinowski
Przykład - sesje zdalne
skinner:~> telnet mulder
Trying 192.168.1.5...
mulder% ctrl-]
Connected
to mulder.xyz.com.pl.
telnet>
?
Escape
character
is '^]'.
Commands may be abbreviated.
SunOS 5.7
Commands are:
close
close current connection
…
login: gjb
set
set operating parameters
Password:
unset
unset operating parameters
Last
login: Fri Oct
10 status
15:17:14
from nanny
status
print
information
Sun… Microsystems Inc.
SunOS 5.7
mulder%
TIN – zima-lato 2006, Grzegorz Blinowski
Telnet
RFC0158(!) - 1971,
RFC: 0854
• Podstawowy protokół pracy zdalnej w trybie
tekstowym
• Telnet realizuje sesję zdalną - pozwala na
zalogowanie się do odległej maszyny
• Obecny w każdym systemie "Unix-o podobnym" często domyślnie włączony!
• Wykorzystuje TCP/IP, port TCP serwera: 23
• Znaczny wysiłek włożono w przenośność: liczne
opcje negocjowane między klientem i serwerem
• Protokół o minimalnym (żadnym?) poziomie
bezpieczeństwa
TIN – zima-lato 2006, Grzegorz Blinowski
Telnet
Serwer Telnet
Klient telnet
Terminal
driver
TCP/IP
Użytkownik
przy
terminalu
Schemat sesji
klient-serwer
dla prot. telnet
TCP/IP
Login shell
Pseudo-terminal
driver
Sesja TCP
Pseudo terminal:
Pozwala na realizację funkcji terminalowych dla danych niepochodzących
z "fizycznych" terminali - obsługa sygnałów, grupy terminalowe procesów praca w tle (SIGINT SIGQUIT, SIGTSTP, SIGTTIN, SIGTTOU)
TIN – zima-lato 2006, Grzegorz Blinowski
Telnet
• Trzy podstawowe serwisy:
– Symetryczna traktowanie obydwu stron połączenia (w
sensie transmisji danych)
– NVT - Network Virtual Terminal - standardowy interfejs
do zdalnych systemów
– Mechanizm negocjacji opcji połączenia (poprzez NVT)
• Każdy znak podróżuje zazwyczaj w osobnym
pakiecie ("tinygram") - echo jest zazwyczaj
zdalne, co podwaja liczbę przesyłanych pakietów
(zob. alg. Nagle'a limitujący liczbę
niepotwierdzonych pakietów)
TIN – zima-lato 2006, Grzegorz Blinowski
Alg. Nagle'a i alg. opóźnionego
potwierdzenia
• Założenie: w miarę możności unikać przesyłania
pakietów małych (rozm. < MSS)
• Alg. Nagle'a - nie wysyłaj pakietu małego jeśli poprzednie
nie zostały potwierdzone
– przy trybie konwersacyjnym w wolnej sieci nastąpi sklejenie kilku
mniejszych pakietów w jeden
• Alg. "delayed ACK" - nie wysyłaj potwierdzenia od razu
po otrzymaniu danych
– … może pojawią sie jakieś dane do wysłania zwrotnego (po co
wysyłać samo potwierdzenie)
– dobrze sie sprawdza ze zdalnym echem
• Uwaga - rozwiązania dobrze sprawują się przy pracy
konwersacyjnej, często źle w przypadku innych prot.
TIN – zima-lato 2006, Grzegorz Blinowski
Telnet NVT
• NVT - definiuje uniwersalną reprezentację danych
• Translacja różnych reprezentacji znaków CR-LF
– niektóre systemy określają koniec linii jako CR, inne LF, inne
CR/LF
– NVT: zawsze CR/LF
• Praca w trybie 7/8 bitów
• Przesyłanie znaków specjalnych - sekwencje IAC
(Interpret as Command, kod: 255)
255 Cmd
Opt
255
Cmd
Opt,opt, ...
TIN – zima-lato 2006, Grzegorz Blinowski
Przykładowe polecenia IAC w NVT
•
BRK -
"Break", odp. Ctrl-C
•
IP -
"Suspend, interrupt abort" - zdalnego procesu
•
AO -
"Abort output" - rezygnuję z otrzymywania wyników
•
AYT -
"Are you there?" - prośba o potwierdzenie
•
EC -
"Erase" - kasuj ostatni znak
•
EL -
"Erase line" - kasuj ostatnią linię
•
SB/SE -
"Subnegotiation" - negocjacja dodatkowych opcji
TIN – zima-lato 2006, Grzegorz Blinowski
Opcje telnet
• Negocjowane przez obydwie strony {IAC, typ, opcja} –
–
–
–
WILL
DO
WONT
DONT
251
252
253
254
Nadawca chce włączyć
Nadawca chce aby odbiorcą włączył
Nadawca chce wyłączyć
Nadawca chce aby odbiorca wyłączył
• Druga strona musi potwierdzić/odmówić ustawienia opcji
• Typowe opcje:
uzgodnienie typu terminala
praca w trybie liniowym
zdalne echo
half/full duplex
transmisja binarna
– Przykład: supress go-ahead: 255(IAC),251(WILL),3
–
–
–
–
–
TIN – zima-lato 2006, Grzegorz Blinowski
Opcje Telnet
Nadawca
Odbiorca
•
WILL
DO
N: chce skorzystać, O: ok
•
WILL
DONT
N: chce, O: nie
•
DO
WILL
N: jest gotowy, O: ustawia
•
DO
WONT
N: jest gotowy, O: nie
•
WONT
DONT
N: wyłączam, O: ok
•
DONT
WONT
N: wyłącz, O: ok
$ telnet
telnet> toggle options
Will show option processing.
telnet> open ccub
Trying 134.220.1.20 ...
Connected to ccub.wlv.ac.uk.
Escape character is '^]'.
SENT do SUPPRESS GO AHEAD
SENT will TERMINAL TYPE (reply)
RCVD do TERMINAL TYPE (don't reply)
RCVD will SUPPRESS GO AHEAD
(don't reply)
RCVD will ECHO (reply)
SENT do ECHO (reply)
RCVD do ECHO (reply)
SENT wont ECHO (reply)
TIN – zima-lato 2006, Grzegorz Blinowski
Opcje telnet c.d.
TIN – zima-lato 2006, Grzegorz Blinowski
Opcje telnet c.d.
Client 255(IAC),251(WILL),24 (term type)
Server 255(IAC),253(DO),24
Value required
Server 255(IAC),250(SB),24,1,255(IAC),240(SE)
Client 255(IAC),250(SB),24,0,'V','T','2','2','0',255
(IAC),240(SE)
Value supplied
•
Klient i serwer ustalają tryb terminala
•
SB/SE -
"Subnegotiation" - negocjacja dodatkowych opcji
Protocol
Name
Number
TIN – zima-lato 2006, Grzegorz Blinowski
========
=====================================
TOPT-BIN
Binary Transmission
0
TOPT-ECHO Echo
1
TOPT-RECN Reconnection
2
TOPT-SUPP Suppress Go Ahead
3
TOPT-APRX Approx Message Size Negotiation
4
TOPT-STAT Status
5
TOPT-TIM
Timing Mark
6
TOPT-REM
Remote Controlled Trans and Echo
7
TOPT-OLW
Output Line Width
8
TOPT-OPS
Output Page Size
9
TOPT-OCRD Output Carriage-Return Disposition 10
TOPT-OHT
Output Horizontal Tabstops
11
TOPT-OHTD Output Horizontal Tab Disposition 12
TOPT-OFD
Output Formfeed Disposition
13
TOPT-OVT
Output Vertical Tabstops
14
TOPT-OVTD Output Vertical Tab Disposition
15
TOPT-OLD
Output Linefeed Disposition
16
TOPT-EXT
Extended ASCII
17
TOPT-LOGO Logout
18
TOPT-BYTE Byte Macro
19
TOPT-DATA Data Entry Terminal
20
TOPT-SUP
SUPDUP
21
TOPT-SUPO SUPDUP Output
22
TOPT-SNDL Send Location
23
TOPT-TERM Terminal Type
24
TOPT-EOR
End of Record
25
TOPT-TACACS TACACS User Identification
26
TOPT-OM
Output Marking
27
TOPT-TLN
Terminal Location Number
28
TOPT-3270 Telnet 3270 Regime
29
TOPT-X.3
X.3 PAD
30
TOPT-NAWS Negotiate About Window Size
31
TOPT-TS
Terminal Speed
32
TOPT-RFC
Remote Flow Control
33
TOPT-LINE Linemode
34
State
=====
Std
Std
Prop
Std
Prop
Std
Std
Prop
Prop
Prop
Prop
Prop
Prop
Prop
Prop
Prop
Prop
Prop
Prop
Prop
Prop
Prop
Prop
Prop
Prop
Prop
Prop
Prop
Prop
Prop
Prop
Prop
Prop
Prop
Draft
Status
======
Rec
Rec
Ele
Rec
Ele
Rec
Rec
Ele
Ele
Ele
Ele
Ele
Ele
Ele
Ele
Ele
Ele
Ele
Ele
Ele
Ele
Ele
Ele
Ele
Ele
Ele
Ele
Ele
Ele
Ele
Ele
Ele
Ele
Ele
Ele
RFC STD
==== ===
856 27
857 28
...
858 29
...
859 30
860 31
726
...
...
652
653
654
655
656
657
658
698
727
735
1043
736
749
779
1091
885
927
933
946
1041
1053
1073
1079
1372
1184
Liczba opcji
prot. telnet jest
dość długa...
TIN – zima-lato 2006, Grzegorz Blinowski
rlogin, rsh,
rcp, ...
TIN – zima-lato 2006, Grzegorz Blinowski
rlogin
• Mechanizm zdalnej pracy pochodzący z
systemów BSD:
– rlogin - praca zdalna - odpowiednik telnet
– rsh - zdalne wywoływanie poleceń
– rcp, rdist - kopiowane plików na zdalne maszyny
• W stosunku do telnet:
– dołączono mechanizmy (pół)automatycznej
autoryzacji
– możliwe jest standardowe przekierowanie we/wy
(szczególnie przydatne przy rsh)
– poziom bezpieczeństwa - podobny (praktycznie
zerowy)
TIN – zima-lato 2006, Grzegorz Blinowski
Rlogin, rsh
• Przykłady
• rlogin nazwa_maszyny
• rlogin user-zdalny nazwa_maszyny
• rsh user-zdalny nazwa_maszyny
• rsh nazwa_maszyny polecenie
• rsh nazwa_maszyny 'polecenie arg'
• rsh nazwa_maszyny 'polecenie > /tmp/x'
• rsh nazwa_maszyny 'polecenie arg' > /tmp/x
TIN – zima-lato 2006, Grzegorz Blinowski
Rlogin - autoryzacja
• Autoryzacja opiera się na mechanizmie rcmd (funkcja):
– lokalnej nazwie użytkownika, zdalnym koncie użytkownika
– pliku .rhosts lokalnym dla zdalnego użytkownika
– ogólnosystemowym pliku /etc/hosts.equiv
• Typowo podjęta jest próba zalogowania użytkownika na
identyczne konto na zdalnej maszynie, możliwe jest też
logowanie na arbitralne konto zdalne - zawsze będzie
sprawdzane .rhosts
• rsh - nie pyta o hasło, użytkownicy zaufani (trusted)
• Bezpieczeństwo opiera się na zaufaniu do zdalnego
użytkownika root-a (prawo do otwarcia portu < 1024)
• rhosts: pozwala/zakazuje dostępu na podstawie nazw
użytkowników, maszyn ("netgroups")
TIN – zima-lato 2006, Grzegorz Blinowski
Plik .rhosts i hosts.equiv
Plik .rhosts w kat. $HOME użytkownika określa jacy użytkownicy z
jakich maszyn mogą działać zdalnie na tym koncie (/etc/hosts.equiv plik ogólnosystemowy)
hostname [username]
[+-]hostname [[+-]username]
Wymienieni lub wszyscy
użytkownicy z danego hosta
Wymienieni lub wszyscy
użytkownicy z danego hosta,
dozwoleni lub zakazani
[+-][hostname|@netgroup] [[+-][username|@netgroup]]
J.w. ale lista
użytkowników
zawarta w
netgroup-ie
TIN – zima-lato 2006, Grzegorz Blinowski
Rlogin, rsh inne
• Rsh jest wygodnym mechanizmem zdalnego
wykonywania poleceń, np.:
– W skrypcie na wielu maszynach
– wykonywania zdalnych kopii, przykład
dump <lokalne parametry> | rsh …
– zdalnej instalacji: rdist (remote distribution)
• rsh/rlogin obsługuje także stderr poprzez
dodatkowe gniazdo (co pozwala na rozdzielenie
stdout i stderr i zwrotne przekazywnie sygnałów)
• rlogin sprawdza czy nie są ustawione opcje IP zobaczyć kod w [Stevens]
TIN – zima-lato 2006, Grzegorz Blinowski
Przekazywanie danych pilnych w
prot. interaktywnych - Wstęp opcje gniazd
int getsockopt(int sockfd, int level, int
optname, char *optval, int *optlen)
int setsockopt(int sockfd, int level, int
optname, char *optval, int optlen)
• level: IPPROTO_IP, IPPROTO_TCP, SOL_SOCKET
• optname - opcja
• optval - wartość ustawianego parametru (często: 0, 1)
• optlen - długość bufora opcji dla opcji niebinarnych
(IP_OPTIONS)
TIN – zima-lato 2006, Grzegorz Blinowski
Przekazywanie danych pilnych w
prot. interaktywnych
• Nadejście danych pilnych (urgent, OOB),
powoduje wysłanie sygnału SIGURG
• Dane pilne (1 bajt) mogą:
– być umieszczone w strumieniu (tj. buforze odbiorczym)
danych "zwykłych" (in-line)
– być umieszczone poza strumieniem danych zwykłych
– W obydwu przypadkach w strumieniu danych
"zwykłych" znajduje się znacznik pozwalający określić
położenie danych pilnych
int off=0;
setsockopt(sockfd, SOL_SOCKET,
SO_OOBINLINE, (char*)&off, sizeof(off));
TIN – zima-lato 2006, Grzegorz Blinowski
Przekazywanie danych pilnych w
prot. interaktywnych, c.d.
Wczytaj bajt danych OOB inline odrzucając wszystkie
poprzedzające go dane:
for (;;){
if (ioctl(s, SIOCATMARK, &mark)<0){
perror("ioctl");
break; }
if (mark)
// czy doszliśmy do OOB?
break;
read(s, trash, sizeof trash); // nie, odrzuć dane
}
if (recv(s, &oob, 1, MSG_OOB) < 0) { // weź bajt OOB
perror("recv"); …
}
TIN – zima-lato 2006, Grzegorz Blinowski
FTP File Transfer Protocol
TIN – zima-lato 2006, Grzegorz Blinowski
FTP
• Podstawowy protokół wymiany plików - TCP/IP,
RFC 959, porty 21 i 20
• klient-serwer - wymaga procesu serwera obsługującego
FTP na porcie 21 - transfer plików do/z serwera
• Interaktywny
• Prot. stanowy - serwer przechowuje takie informacje jak:
aktualny katalog, tryb transmisji, i wiele innych
• Zakłada autoryzację, zwyczajowo pozwala też na dostęp
anonimowy
• Cechą charakterystyczną jest komunikacja przez 2 porty
(21 - control, 20 - data)
TIN – zima-lato 2006, Grzegorz Blinowski
Sesja FTP
3-cyfrowy
kod
5xx - wymaga
akcjj
1xx=OK, I will
2xx=OK, done.
3xx=OK so far
4xx=NO, temp
klient% ftp ftp.ii.pw.edu..pl
Connected to ftp ftp.ii.pw.edu..pl
220 Welcome to II PW FTP Server
530 Please login with USER and PASS.
Name (ftp.ii.pw.edu..pl): anonymous
331 Please specify the password.
Password: XXXXXXX
230 Login successful. Remember - the computer is your friend
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd pub
250 Directory successfully changed.
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
drwxrwxrwx 2 0
0
2048 Aug 23 12:56 mirrors
226 Directory send OK.
ftp> quit
221 Goodbye.
klient%
TIN – zima-lato 2006, Grzegorz Blinowski
Polecenia klienckie FTP
•
•
•
•
•
•
•
•
•
open, user
dir, ls
cd, lcd, pwd
binary, ascii, cr
put, get
mput, mget, mdelete, mls
prompt
nmap
ntrans
•
•
•
•
•
open [port]
dir [rdir] [nazwa-pliku]
cd/lcd - zdalny/ lokalany
cr - transl. CR/LF
put plik-lok [plik-odlegl]
• można stosować wzorce
• translacja nazw:
nmap $1.$2 $1_$2
• translacja znaków
TIN – zima-lato 2006, Grzegorz Blinowski
Elementy protokołu FTP
Przykładowe polecenia:
Typowe odpowiedzi:
• wysyłane w trybie ASCII
do portu 21
• USER username
• PASS password
(otwartym tekstem!)
• LIST - zwraca listę plików
• Kod statusu i opis
• 331 Username OK,
password required
• 125 data connection
already open;
transfer starting
• 425 Can’t open data
connection
• 452 Error writing
file
• RETR filename pobiera
zawartość pliku
• STOR filename wgrywa
zawartość pliku na serwer
TIN – zima-lato 2006, Grzegorz Blinowski
FTP
• Protokół bazuje na NVT ASCII (z telnet)
• Typy danych: ASCII (NVT-ASCII), image
(binarne, 8-o bitowe liczby), local, EBCDIC
• Przy transferze danych klient otwiera port 20, zaś
serwer inicjuje do niego połączenie z danymi
(czy zachowana jest unikalność asocjacji?)
sockets API: bind(…)
• Tryb PASV (passive) jeśli serwer nie może
zainicjować połączenia do klienta
TIN – zima-lato 2006, Grzegorz Blinowski
Polecenia FTP
• Dostęp: USER, PASS, ACCT (account), REIN (reinitialize
- jak logout, bez zamykania poł.), QUIT
• katalogi: CWD (zmiana), CDUP (cd ..)
• Transfer danych: PORT h1,h2,h3,h4,p1,p2; PASV, TYPE
(A - ascii, I- image, …)
• Serwis: RETR, STOR, STOU (store unique), APPE
(append), ALLO (allocate storage), RNFR/RNTO
(rename from/to), ABOR, DELE, RMD/MKD
(remove/make directory), PWD, LIST, STAT (status)
• Inne: NOOP, HELP
• Mało używane: struktura pliku (file, record, page); tryby
transmisji: strumieniowy, blokowy oraz z kompresją
TIN – zima-lato 2006, Grzegorz Blinowski
Kody statusu FTP
• jednolinijkowy:
123 opis kodu
• wielolinijkowy:
123-opis kodu
nastepna linijka
234 liczby dozwolone
123 ostatnia linia
• Statusy:
– 1yz - Positive Preliminary reply (będzie dalszy ciąg, nie wysyłać
poleceń)
– 2yz - Positivie completion (można przesłać nast. polecenie)
– 3yz - Positive Intermediate (OK, wysłać dalszy ciąg polecenia)
– 4yz - Transient Negative
– 5yz - Permanent Negative
TIN – zima-lato 2006, Grzegorz Blinowski
Kody statusu FTP
• x0z Syntax - błędy skladni, inne błędy poleceń,
niezaimplementowane polecenia
• x1z Information - odpowiedzi o charakterze
informacyjnym (status, pomoc)
• x2z Connections - Odpowiedzi na polecenia sterujące i
połączeniowe
• x3z Authentication and accounting - login
• x4z Unspecified as yet.
• x5z File system - związane z systemem plików serwera
• Przykłady:
– 211 System status, or system help reply
– 250 Requested file action okay, completed
TIN – zima-lato 2006, Grzegorz Blinowski
Kody statusu FTP
•
•
•
•
•
•
•
•
•
•
•
•
•
200 Command okay.
211 System status, or system help reply.
212 Directory status.
213 File status.
221 Service closing control connection.
225 Data connection open; no transfer in progress.
226 Closing data connection. Requested file action successful (for
example, file transfer or file abort).
227 Entering Passive Mode (h1,h2,h3,h4,p1,p2).
230 User logged in, proceed.
250 Requested file action okay, completed.
257 "PATHNAME" created.
331 User name okay, need password.
350 Requested file action pending further information.
TIN – zima-lato 2006, Grzegorz Blinowski
Kody statusu FTP
•
•
•
•
•
•
•
•
•
•
•
•
421 Service not available, closing control connection. This may be a
reply to any command if the service knows it must shut down.
425 Can't open data connection.
426 Connection closed; transfer aborted.
450 Requested file action not taken. File unavailable (e.g., file busy).
451 Requested action aborted: local error in processing.
452 Requested action not taken. Insufficient storage space in
system.
500 Syntax error, command unrecognized..
501 Syntax error in parameters or arguments.
502 Command not implemented.
503 Bad sequence of commands.
504 Command not implemented for that parameter.
530 User name okay, need password
TIN – zima-lato 2006, Grzegorz Blinowski
Sesja FTP - tryb zwykły
SERWER
KLIENT
1025
Cntrl
Katalog: LIST, 1199
21
Cntrl
PORT command OK
Data
1199
Data
20
Katalog plików
1200
RETR plik.zip, 1200
21
Cntrl
Cntrl
PORT command OK
Data
Data
Dane, dane, (dużo danych)
1200
20
TIN – zima-lato 2006, Grzegorz Blinowski
Sesja FTP - tryb PASV
KLIENT
SERWER
PASV
1025
21
Cntrl
Cntrl
LIST
Data
Data
firewall
1025
Passive Mode, 4107
21
Cntrl
Cntrl
1673
4107
Data
Data
Katalog plików
TIN – zima-lato 2006, Grzegorz Blinowski
Zmiana nr portu w API gniazd
int on=1;
setsockopt(sockfd, SOL_SOCKET,
SO_REUSEADDR, (char*)&on, sizeof(on));
bind(sockfd, (struct sockaddr*)&newsin,
sizeof(newsin));
• Włączenie opcji SO_REUSEADDR pozwoli na
ponowne dowiązanie do gniazda adresu, w
szczególności pozwala to na zmianę numeru
portu.
TIN – zima-lato 2006, Grzegorz Blinowski
Poczta elektroniczna:
SMTP
TIN – zima-lato 2006, Grzegorz Blinowski
E-mail
Kolejka
serwera
Skrzynka użytk.
•
•
•
•
•
MTA - Mail Transfer Agent
(serwer) - sendmail, postfix,
Exchange, …
PO - Post Office - przechowuje
skrzynki, może ale nie musi
być to ten sam serwer co MUA
MUA - Mail User Agent (klient)
- Mozilla, Outlook, Eudora, ...
Protokół SMTP (Simple Mail
Transfer Protocol) - RFC 821,
1982, szereg późniejszych
rozszerzeń
"maildrop" - POP3, IMAP4;
inne - OWA
MUA
SMTP
MUA
SMTP
MTA
SMTP
MTA
PO
MUA
IMAP, POP
TIN – zima-lato 2006, Grzegorz Blinowski
SMTP
• Komunikacja klient do serwera; serwer do serwera
• SMTP obejmuje:
–
–
–
–
–
specyfikację protokołu wymiany danych
uwierzytelnianie
adresowanie
ruting poczty
nie obejmuje: dostarczenia poczty do MUA, sposobu zapisu
treści przesyłki
• Port TCP: 25
• Komunikacja (ASCII):
– nawiązanie połączenia (greeting)
– wymiana danych
– zakończenie sesji
TIN – zima-lato 2006, Grzegorz Blinowski
Sesja SMTP
S:
C:
S:
C:
S:
C:
S:
C:
S:
C:
C:
C:
C:
S:
C:
S:
220 This is XYZ smtp server at uczelnia.edu
HELO nikt.pl
250 Hello nikt.pl, pleased to meet you
MAIL FROM: <[email protected]>
250 [email protected]... Sender ok
RCPT TO: <[email protected]>
250 [email protected] ... Recipient ok
DATA
354 Enter mail, end with "." on a line by itself
Szanowny Panie
Nasza firma oferuje rewelacyjny program do
obslugi dziekanatow oraz calych uczelni ...
.
250 Message accepted for delivery
QUIT
221 uczelnia.edu closing connection
TIN – zima-lato 2006, Grzegorz Blinowski
Polecenia SMTP
• HELO
• EHLO (ESMTP)
– najpopularniejsze rozszerzenia: pipelining, ...
• MAIL FROM
• RCPT TO
• VRFY, EXPN - zazwyczaj nieaktywne ze
względów bezpieczeństwa
• DATA
• QUIT
• NOOP
TIN – zima-lato 2006, Grzegorz Blinowski
Więcej o sesji i danych w SMTP
S: 220 This is XYZ smtp server at ...
...
C: MAIL FROM: <[email protected]>
S: 250 [email protected]... Sender ok
C: RCPT TO: <[email protected]>
S: 250 [email protected] ... Recipient ok
C: DATA
S: 354 Enter mail, end with "." ...
C: To: <[email protected]>
C: Subject: ciekawa oferta
C:
C: Szanowny Panie
C: Nasza firma oferuje rewelacyjny ...
C: ...
C: .
S: 250 Message accepted for delivery
C: QUIT
envelope
header
body
TIN – zima-lato 2006, Grzegorz Blinowski
Więcej o sesji i danych w SMTP
• Pola nagłówka wiadomości (header - RFC822)
sa podobne i mogą (ale nie muszą) mieć
identyczną zawartość jak pola z envelope - nie
jest to jednak to samo!
• Pola nagłówka takie jak np.: Subject, To, CC są
przez SMTP traktowane na równi z danymi
• Pola nagłówka są przeznaczone dla MUA
• Serwer e-mail może przepisać informacje
zawarte w envelope do header
• Serwer e-mail może dodatkowo analizować pola
nagłówka, np. realizując funkcje anty-spam
TIN – zima-lato 2006, Grzegorz Blinowski
Pola nagłówka E-mail
Return-Path: <[email protected]>
Delivered-To: grzegorz.blinowski@[81.153.28.98]
Received: from localhost (localhost [127.0.0.1])
by …….
Received: from freza.core.ignum.cz (217.31.49.12)
by ….
From: "Ludek Hrdina" <[email protected]>
To: "Up-to-date_CHKP" <[email protected]>
Subject: Check Point's ….
Date: Tue, 11 Nov 2003 14:08:51 +0100
Message-ID: <[email protected]>
MIME-Version: 1.0
Content-Type: text/plain; charset="iso-8859-2"
Content-Transfer-Encoding: 8bit
X-Mailer: Microsoft Outlook IMO, Build 9.0.2416 (9.0.2910.0)
X-AntiVirus: OK! AntiVir MailGate Version 2.0.0.9; ...
X-Mozilla-Status: 8001
TIN – zima-lato 2006, Grzegorz Blinowski
Ruting SMTP
• W transmisji wiadomości serwer SMTP może być
serwerem docelowym lub pośrednim
• Ruting SMTP - zestaw reguł pozwalających określić co
serwer ma dalej robić z otrzymaną wiadomością
• W najprostszym przypadku:
– jeśli serwer obsługuje dane konto e-mail (obsługuje domenę i zna
użytkownika) to wiadomość zostaje wysłana do” message store”
– w przeciwnym wypadku na podstawie rekordu MX pobranego z
DNS serwer określa adres serwera do przekazania wiadomości
• Rekordy MX zawierają adres serwera SMTP i priorytet
– Przykład:
smallcom.com MX www.smallcom.com 10
smallcom.com MX www.hoster.com 20
– im priorytet niższy tym "ważniejszy" MX
TIN – zima-lato 2006, Grzegorz Blinowski
Ruting SMTP
•
Ruting jest w rzeczywistości o wiele bardziej skomplikowany,
gdyż:
– wewnątrz domeny obsługiwanej przez jeden MX może
funkcjonować wiele serwerów SMTP, np. wydziałowych, do
których wiadomości rozdzielane są na podstawie wewnętrznych
reguł rutingu:
n.p.: firma.com.pl - SMTP srv.: kadry.firma,
finanse.firma, misc.firma
– serwer STMP może otrzymywać wiadomości z innych systemów
E-mail (nie SMTP) - RFC2820 definjuje "SMTP gateway"
– Serwery obsługują szereg historycznych konwencji takich jak:
user%domena@domena lub serwer1!serwer2!serwer3...
– Inne: konieczne jest wykrywanie i usuwanie pętli w rutingu
TIN – zima-lato 2006, Grzegorz Blinowski
Maildrop - POP3 (port: 110)
Autoryzacja
•
•
Polecenia klienta:
– user
– pass
odpowiedzi serwera
– +OK, -ERR
Maildrop
client:
• list - nr wiad, wielkość
• stat - liczba wiad, suma wielk.
• retr - pobierz wiad.
• dele - usuń wiad (dopiero po quit)
• rset - usuń znaczniki dele
• top - początek wiad
• uidl - zwraca unikalne id-y
• quit
S:
C:
S:
C:
S:
RFC1939
+OK POP3 server ready
user jasio
+OK
pass iza123
+OK user successfully logged
on
C: list
S: 1 711
S: 2 654
S: .
C: retr 1
S: <message 1 contents>
S: .
C: dele 1
C: retr 2
S: <message 1 contents>
S: .
C: dele 2
C: quit
S: +OK POP3 server signing off
TIN – zima-lato 2006, Grzegorz Blinowski
POP3 - APOP
S: +OK POP3 server ready
<[email protected]>
C: APOP mrose c4c9334bac560ecc979e58001b3e22fb
S: +OK maildrop has 1 message (369 octets)
•
•
•
•
•
Prosta weryfikacja tożsamości klienta na podstawie algorytmy Ch/Rp
Polecenie: APOP <digest>
Odpowiedź: +OK lub –ERR
Banner powitalny musi zawierać "challenge"
Challenge ma postać jak niżej:
– challenge opiera się na timestamp, np. standard proponuje: <processID.clock@hostname>
klient oblicza kryptograficzną sumę kontrolną
md5(challenge+secret)
•
Dostępne jest też polecenie AUTH (RFC1734) - autentykacja Kerberos
TIN – zima-lato 2006, Grzegorz Blinowski
Maildrop - IMAP4
RFC2060
• Zaprojektowany pod kątem przechowywania
znacznej liczby wiadomości na serwerze
• Wiadomości grupowane w foldery
• Wiadomości posiadają "flagi" (seen, deleted,
answered, itp.)
• Manipulowanie wiadomościami bez konieczności
ładowania całej wiadomości do klienta (tylko
nagłówki)
• Zalety: oszczędność pasma, dostęp do poczty z
wielu lokalizacji, SSL - bezpieczeństwo
• Wady: skomplikowany protokół, implementacje
nie zawsze zgodne ze sobą
TIN – zima-lato 2006, Grzegorz Blinowski
Sesja IMAP
Initial connection and server greeting
1
Non-authenticated
2
4
3
Authenticated
7
6
5
7
Selected
7
Logout and close connection
TIN – zima-lato 2006, Grzegorz Blinowski
Maildrop - IMAP4
• Protokół - asynchroniczny - odpowiedź na
polecenie nie musi nadejść "od razu", czekając
na odpowiedź można zlecić inne polecenia
• Aby zidentyfikować odpowiedzi serwera
wprowadzono "tagi"
• Podstawowe stany serwera:
–
–
–
–
Non-authenticated
Authenticated (po zalogowaniu)
Selected – wybrano folder
Logout
TIN – zima-lato 2006, Grzegorz Blinowski
Sesja IMAP
C: a001 LOGIN SMITH SESAME
S: a001 OK LOGIN completed
C: A142 SELECT INBOX
S: * 172 EXISTS
S: * 1 RECENT
S: A142 OK [READ-WRITE] SELECT completed
...
C: A023 LOGOUT
S: * BYE IMAP4rev1 Server logging out
S: A023 OK LOGOUT completed
TIN – zima-lato 2006, Grzegorz Blinowski
IMAP c.d.
• Flagi wiadomości:
–
–
–
–
–
–
\seen: wiadomość "przeczytana"
\answered: na wiadomość odpowiedziano
\flagged: wiadomość zaznaczono
\deleted: wiadomość ma być skasowana
\draft: wiadomość w trakcie tworzenia
\recent: wiadomość nowa
TIN – zima-lato 2006, Grzegorz Blinowski
Polecenia IMAP
•
•
•
•
•
•
•
•
•
•
•
•
CAPABILITY
NOOP
LOGOUT
AUTHENTICATE
LOGIN
SELECT
EXAMINE
CREATE
DELETE
RENAME
SUBSCRIBE
UNSUBSCRIBE
•
pyt. o opcje funkcjonalne serwera
•
•
•
•
•
•
•
•
•
•
serwer zamyka transakcje, odp: “BYE”
opcjonalna autentykacja (np. Kerberos)
wymagana autoryzacja
wybiera mailbox (folder), tylko 1 na raz
j.w. w trybie read-only
tworzy folder
usuwa folder
zmienia nazwę folderu
subskrybuje folder (zob. LSUB)
de-subskrybuje folder
TIN – zima-lato 2006, Grzegorz Blinowski
Polecenia IMAP c.d.
•
•
•
•
•
•
•
•
•
•
•
•
LIST
LSUB
STATUS
APPEND
CHECK
CLOSE
EXPUNGE
SEARCH
FETCH
STORE
COPY
UID
•
•
•
•
•
•
•
•
•
•
•
•
zwraca listę folderów
zwraca listę subskrybowanych folderów
zwraca inf. o folderze (liczba wiad, etc)
Dodaje wiadomość do folderu
wymusza "checkpoint"
zamyka akt. folder, usuwa ozn. wiadomości
usuwa ozn. wiadomości (\Deleted)
szuka wiad. wg.zadanych kryteriów w akt. folderze
pobiera (część) wiadomości
uaktualnia wiadomość
kopiuje wiadomości do zadanego folderu
wykonuje inne polecenia (SEARCH, COPY,
FETCH) w trybie zwracajacym uniklane uid-y
TIN – zima-lato 2006, Grzegorz Blinowski
MIME
(Multipurpose Internet Mail Extensions)
TIN – zima-lato 2006, Grzegorz Blinowski
MIME - podstawy
RFC2045
• MIME - aktualny standard RFC 2045, 2046 (pierwsze wersje RFC2046
RFC1341 - 1992)
• Dodatkowe pola nagłówka definiują format danych binarnych
• Uwaga - MIME pomyślany dla e-mail, jednak aktualne
zastosowanie wykracza poza SMTP!
Wersja MIME
Metoda kodowania
Typ, podtyp, opcjonalnie
parametry
danych
Dane
From: [email protected]
To: [email protected]
Subject: Zdjecie 1/1
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Type: image/jpeg
dane kodowane base64 ....
.........................
.... dane kodowane base64
TIN – zima-lato 2006, Grzegorz Blinowski
Podstawowe typy MIME
Content-type: type/subtype; parameters
Text
Video
• video/mpeg, video/
text/plain; charset=us-ascii
quicktime
• text/plain, text/html
Image
• image/jpeg, image/gif
Audio
• audio/basic
jeden kanał, 8bit PCM 8000 Hz
Application
• application/msword,
application/octetstream
TIN – zima-lato 2006, Grzegorz Blinowski
Złożone typy MIME
Content-Type: multipart/mixed; boundary=bndr-string
• Wiadomość podzielona na wiele części
oddzielonych przez unikalny (ale arbitralny) ciąg
znaków "boundary string"
• Generowanie boundary string – heurystyczne (?)
• Każda część może mieć własny content-type, np:
– pierwsza część może być typu text/plain
– druga typu image/gif kodowana base64
TIN – zima-lato 2006, Grzegorz Blinowski
MIME Multipart/mixed - przykład
From: <[email protected]>
To: <[email protected]>
Subject: blah
MIME-Version: 1.0
Content-Type: multipart/mixed;
00=_9W2T/VtQiQcNR1P"
boundary= "Boundary-
--Boundary-00=_9W2T/VtQiQcNR1P
Content-Type: text/plain; charset=US-ASCII
tekst tekst tekst tekst tekst tekst tekst tekst
--Boundary-00=_9W2T/VtQiQcNR1P
Content-Type: application/octet-stream
...
TIN – zima-lato 2006, Grzegorz Blinowski
MIME Multipart/mixed - przykład
From: <[email protected]>
To: <[email protected]>
Subject: blah
MIME-Version: 1.0
Content-Type: multipart/mixed;
00=_9W2T/VtQiQcNR1P"
...
--Boundary-00=_9W2T/VtQiQcNR1P
boundary= "Boundary-
Boundry poprzedzone jest --
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename= "nazwa_pliku.bin"
base64base64base64base64base64...
base64base64base64base64base64...
--Boundary-00=_9W2T/VtQiQcNR1P--
Ostatnie boundry
zakończone jest --
TIN – zima-lato 2006, Grzegorz Blinowski
Inne złożone typy MIME
• multipart/alternative - ta sama treść przesłana w kilku
wariantach, np. w formacie text i HTML, klient wybiera
właściwą postać do prezentacji danych
• multipart/digest - format identyczny jak w mixed, służy
do wysyłania wielu wiadomości formatu message/rfc822
• multipart/parallel - format identyczny jak w mixed, służy
do równeległej prezentacji danych w kilku formatach
• message/partial - pozwala na przesłanie dużej
wiadomości w "kawałkach":
Content-Type: Message/Partial; number=2;
total=3;
TIN – zima-lato 2006, Grzegorz Blinowski
Kodowanie Base64
• Proste kodowanie pozwalające na przesłanie dowolnych
danych binarnych w postaci "drukowalnych" znaków ASCII
(7bit)
• Wielkość danych zwiększa się o 4/3, np. plik o rozmiarze 3KB
ma po zakodowaniu 4KB
• Bloki 3 bajtowe zamieniane są na 4 liczby 6-o bitowe
• Każda liczba 6-o bitowa zamieniana jest na znak drukowalny z
przedziału: A-Za-z0-9+/
• Jeśli wielkość danych kodowanych w bajtach nie jest
podzielna przez 3 - uzupełnienie zerami/znakami = na końcu
• Wynikowy tekst jest dzielony na linie o długości 76 znaków
• Tak otrzymany tekst jest do zaakceptowania przez każdy
MUA/MTA zgodny z podstawowym SMTP
TIN – zima-lato 2006, Grzegorz Blinowski
Więcej o MIME
• RFC:
– RFC 2045 - nagłówki definiowane w standardzie
MIME
– RFC 2046 - struktura danych MIME i podstawowe typy
danych w MIME
– RFC 2047 - rozszerzenia MIME w treści nagłówków
wiadomości
– RFC 2048, - procedury rejestracji nowych typów MIME
w IANA
– RFC 2049 - reguły zgodności aplikacji z MIME oraz
przykłady
TIN – zima-lato 2006, Grzegorz Blinowski
MIME - kodowanie
•
Zdefiniowane są następujące typy "Content-Transfer-Encoding":
– "7bit"
– "8bit"
nie dokonano przekodowania
– "binary"
– "quoted-printable"
Wiadomość jest kodowana w
specjalny sposób
– "base64"
– ietf-token oraz x-token
• Typ "quoted-printable" - do kodowania wiadomości
składających się głównie, ale nie wyłącznie, ze
standardowych znaków ASCII
• Uwaga: RFC 2045 określa dozwolone typy kodowania dla
złożonych typów danych (multipart i message) jako
wyłącznie: 7/8 bit oraz binary
TIN – zima-lato 2006, Grzegorz Blinowski
MIME - "quoted-printable"
• Kodowanie mające na celu zachowanie danych (zwykle
tekstu) bez modyfikacji nawet przez serwery niezgodne
ze standardami
• każdy oktet może być reprezentowany jako: =hh, gdzie h
- cyfra szesnastkowa: 0123456789ABCDEF
• oktety o kodach: 33-60 (większość znaków
przestankowych) oraz: 62-126 (litery, cyfry, [, ] , |, ~)
mogą być reprezentowane bezpośrednio
• białe znaki reprezentowane są bezpośrednio, chyba, że
są na końcu linii
• znak = na końcu linii oznacza "soft line break" (można
łamać długie linie)
• Przykład: Dzia=B3aj=B1c w imieniu i na rzecz=
sp=F3=B3ki "Zielone buraczki" Sp. =
TIN – zima-lato 2006, Grzegorz Blinowski
RFC 2047 - "Message Header Extensions"
Do tej pory omówione rozwiązania nie pozwalają na zawarcie
znaków nie ASCII w nagłówku wiadomości - co może być przydatne
np. w nagłówku "Subject" (znaki narodowe)
• RFC 2047 rozwiązuje ten problem wprowadzając tzw. "encoded
word"
•
encoded-word = "=?" charset "?" encoding "?" encoded-text "?="
•
•
•
Charset - określa kodowanie (np. ISO-8859-2)
encoding - Q - quoted printable, B - base64
encoded-text - kodowany tekst
Przykład:
From: =?ISO-8859-1?Q?Olle_J=E4rnefors?= <[email protected]>
Subject: =?ISO-8859-1?B?SWYgeW91IGNhbiByZWFkIHRoaXMgeW8=?=
=?ISO-8859-2?B?dSB1bmRlcnN0YW5kIHRoZSBleGFtcGxlLg==?=
TIN – zima-lato 2006, Grzegorz Blinowski
Inne nagłówki MIME
• Content-ID:
–
–
–
–
jak message-id,
muszą być unikalne,
pozwalają identyfikować daną zawartość,
zwykle opcjonalne (poza typem message/externalbody)
• Content-Description:
– opis zawartości,
– zawsze opcjonalne
TIN – zima-lato 2006, Grzegorz Blinowski
RFC 2049 - Zgodność z MIME
• RFC 2049: "[…] There exist many widely-deployed nonconformant MTAs in the Internet. These MTAs, speaking
the SMTP protocol, alter messages on the fly to take
advantage of the internal data structure of the hosts they
are implemented on, or are just plain broken. […]"
• RFC 2049 - określa minimalny poziom zgodności, w
szczególnosci sytuacje gdy program natrafi na nieznany
typ danych (zalecenie - traktować jak multipart/mixed),
lub nieobsługiwany zestaw znaków (zalecenie - traktować
jak application/octed-stream)
• RFC 2049 precyzuje standard, określa kroki jakie musi
wykonać aplikacja generując wiadomość MIME
TIN – zima-lato 2006, Grzegorz Blinowski
Usenet News:
NNTP
TIN – zima-lato 2006, Grzegorz Blinowski
Usenet
• Model "tablicy ogłoszeniowej"
• Format wiadomości - dość podobny do E-mail,
zupełnie inna metoda dystrybucji
• Dystrybucja - każdy artykuł (posting) powinien
teoretycznie dotrzeć do każdego klienta
subskrybujacego daną grupę
• Tematy grup są hierarchiczne:
– tematycznie: alt., comp., rec., sci, np. comp.lang.java
– hierarchie regionalnie/językowe: np. pl.* pl.rec.modelarstwo
TIN – zima-lato 2006, Grzegorz Blinowski
NNTP
RFC0977 - 1986,
RFC: 2980,
...
• Wiadomość "rozgłaszane" są między serwerami
• "feed" - logiczne połączenie pomiędzy serwerami
• Serwer musi być uprawniony do pobierania /
wysyłania wiadomości do / z innego serwera,
uprawnienia ustalane są "recznie" (uzgadniane
przez administratorów
• Wiadomość, podobna do e-mail (MIME, itp), plus:
– Newsgroups
– unikalny w skali świata Message-Id
– Path (scieżka serwerów propagujacych wiadomość)
TIN – zima-lato 2006, Grzegorz Blinowski
Przykład - Posting NNTP
Path: news.litech.org!lnsnews.lns.cornell.edu!paradoxa.ogoense.net!notfor-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]: news.litech.org
alt.dev.null:492
Because we like you.
-Meow
TIN – zima-lato 2006, Grzegorz Blinowski
Usenet/NNTP - problemy
• C.a. 70 GB wiadomości w ciągu doby, wyzwania
technologiczne:
– indeksowanie wiadomości
– określenie czy daną wiadomość już "widzieliśmy"
• Model "tablicy ogłoszeniowej" - generowany ruch
jest b. duży
• Utrzymanie spójnej hierarchii grup - tworzenie i
usuwanie grup
• Grupy moderowane - wiadomość musi zostać
zaakceptowana przez osobę(osoby)
odpowiedzialną przed upublicznieniem
TIN – zima-lato 2006, Grzegorz Blinowski
Serwer NNTP
• Serwer końcowy, serwer tranzytowy
• Moduły
– Spool - wiadomości
– Overview - indeksy
– History - indeks przyjętych wiadomości
• Tryby pracy serwer-serwer:
– "pull" -NEWNEWS- (klasyczny, obecnie nie używany przy dużym
ruchu) - żądanie przesłania listy wiadomości, następnie
pobierane wiadomości
– "push" (streaming) -CHECK, TAKETHIS - feed przesyła
wszystkie wiadomości "hurtem" do odbiorcy:
• CHECK - serwer źródłowy "sprawdza" czy serwer docelowy chce
przyjmować artykuły
• TAKETHIS - strumieniowe przesłanie artykułów bez potwierdzeń
TIN – zima-lato 2006, Grzegorz Blinowski
NTTP - wybrane polecenia
• ARTICLE <message-id> - pobierz posting, polecenia
spokrewnione: HEAD, BODY, STAT
• POST - wysłanie postingu (przez klienta EU)
• GROUP <group-name> - podaje informacje o groupie, także id
postingów (pierwszy, ostatni)
• IHAVE - informacja dla serwera o posiadanych postingach (serwerserwer)
• LIST, NEWGROUPS - lista obsługiwanych grup
• NEWGROUPS - nowe grupy,
• NEWNEWS <grups> <date> <time> - lista nowych postingów problem - wygenerowanie listy może b. obciążyć serwer źródłowy
• streaming / push - MODE STREAM, TAKETHIS (push
wiadomości), CHECK <msg-id> (czy przesłać sekwencję wiad.
przy pomocy takethis)
TIN – zima-lato 2006, Grzegorz Blinowski
NNTP - przykłady
klient prosi o listę grup:
C:
S:
S:
S:
LIST
215 list of newsgroups follows
net.wombats 00543 00501 y
net.unix-wizards 10125 10011 y
(more information here)
klient wybiera grupe (w grupie 104 postingi, o podanych #):
C:
GROUP net.unix-wizards
S:
211 104 10011 10125 net.unix-wizards group selected
klient pobiera artykuł:
C:
STAT 10110
S:
223 10110 <[email protected]> article retrieved statistics only (article 10110 selected, its
message-id is <[email protected]>)
C:
HEAD
S:
221 10110 <[email protected]> article retrieved head follows (text of the header appears here)
TIN – zima-lato 2006, Grzegorz Blinowski
NNTP - przykłady
klient pobiera artykuł:
C:
S:
HEAD
221 10110 <[email protected]> article retrieved head follows (text of the header appears here)
S:
.
C:
BODY
S:
222 10110 <[email protected]> article retrieved body follows (body text here)
S:
.
klient pobiera nastepny artykuł:
C:
NEXT
S:
223 10113 <[email protected]> article retrieved statistics only (article 10113 was next in group)
TIN – zima-lato 2006, Grzegorz Blinowski
NNTP - przykłady
klient pobiera wybrany artykuł:
C:
S:
GROUP msgs
211 103 402 504 msgs Your new group is msgs
(there are 103 articles, from 402 to 504)
C:
S:
ARTICLE 401
423 No such article in this newsgroup
C:
S:
ARTICLE 402
220 402 <[email protected]> Article retrieved,
text follows
(article header and body follow)
S:
TIN – zima-lato 2006, Grzegorz Blinowski
NNTP - c.d.
• Moderowanie:
– (1) serwer odbierający posting stwierdza, że grupa jest
moderowana
– (2) nie publikuje wiadomości, wysyła e-mail do
moderatora
– (3) moderator akceptuje wiadomość, i dokonuje
publikacji
TIN – zima-lato 2006, Grzegorz Blinowski
Usenet
Credit:
CAIDA (1999)
TIN – zima-lato 2006, Grzegorz Blinowski
Organizacja Usenet - 1980
reed
phs
\ / \
uok---duke-unc
/ \
research vax135
|
ucbvax
TIN – zima-lato 2006, Grzegorz Blinowski
Organizacja 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
TIN – zima-lato 2006, Grzegorz Blinowski
Organizacja Usenet - 1993

Podobne dokumenty