La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

EUCIP IT Administrator Modulo 4 - Uso Esperto della Rete Livello Applicazione AICA © 2005.

Presentazioni simili


Presentazione sul tema: "EUCIP IT Administrator Modulo 4 - Uso Esperto della Rete Livello Applicazione AICA © 2005."— Transcript della presentazione:

1 EUCIP IT Administrator Modulo 4 - Uso Esperto della Rete Livello Applicazione
AICA © 2005

2 Sommario Corso IT Administrator: modulo 4 Prinicipali protocolli:
TELNET e FTP Web e risorse remote Posta Elettronica Gruppi di discussione e maling list Condivisione dei dati Applicazioni innovative Controllo di rete: Protocollo SNMP AICA © 2005

3 I protocolli a livello La comunicazione tra computer avviene attraverso protocolli (regole) di comunicazione. Questi sono tipicamente divisi in livelli, al fine di: Dividere le problematiche i tronconi affrontabili Incapsulare i requisiti in blocchi indipendenti Rendere soluzioni diverse per un livello interscambiabili I livelli forniscono via via un’astrazione maggiore procedendo dal basso verso l’alto, dalla scelta del canale fisico al meccanismo di indirizzamento, alla creazione del meccanismo di trasporto più adeguato, alle applicazioni che richiedono la comunicazione AICA © 2005

4 I modelli ISO-OSI e TCP/IP
Sono i due stack di protocolli più famosi, anche se OSI è rimasto sostanzialmente un modello su carta. Open System Interconnection TCP/IP VII Applicazione Applicazione (Telnet, FTP, SMTP, HTTP,…) VI Presentazione V Sessione IV Trasporto Trasporto (TCP, UDP) III Rete Internet (IP) II Collegamento Host to network (Ethernet, ATM, …) I Fisico La nostra attenzione è sui protocolli di VII livello. AICA © 2005

5 I protocolli di VII livello
Al VII livello esistono i protocolli di applicazione, che svolgono un lavoro direttamente utile alle applicazioni utente Anche al VII livello dobbiamo distinguere tra Protocolli di applicazione vera e propria: forniscono il servizio agli utenti finali (SMTP, NNTP, HTTP, telnet, FTP, ecc.) Protocolli di servizio: forniscono servizi non direttamente agli utenti, ma alle applicazioni utente (SNMP, DNS, ecc.) Ovviamente i protocolli di servizio non costituiscono un livello a sé, poiché non sono frapposti tra il protocollo di applicazione e il protocollo di trasporto. Noi ci occupiamo di SMTP e di alcuni protocolli connessi, per la loro importanza rispetto ad HTTP AICA © 2005

6 Principi architetturali del WWW
Identificazione: Il WWW è uno spazio informativo (per umani e applicazioni) in cui ogni elemento di interesse è chiamato risorsa ed è identificato da un identificatore globale chiamato URI. Interazione: Un protocollo di comunicazione chiamato HTTP permette di scambiare messaggi su una rete informatica (nel nostro caso TCP/IP) Formato: la disponibilità di apposite applicazioni sul computer ricevente e la corretta identificazione del formato dati con cui la risorsa è stata comunicata permette di accedere al suo contenuto in maniera chiara e non ambigua.I formati sono molti, tra cui XHTML, PNG, RDF, ecc.) AICA © 2005

7 URL: indirizzi nel WEB Per accedere a una risorsa (documento) su Web bisogna conoscerne l’indirizzo. L’indirizzo è detto URL (Uniform Resource Locator) ed è composto da quattro parti: Il protocollo. L’indirizzo del calcolatore su cui è in esecuzione il Web server. Il numero di porta. Il percorso per accedere al file. AICA © 2005

8 URL: specifiche standard
Una URL indica: Come accedere alla risorsa (metodo) Dove trovare la risorsa (indirizzo server Web ed eventuale porta) Nome della risorsa (nome) Formato: Metodo://host:xx/nome Esempi: AICA © 2005

9 DNS: Domain Name System
Persone: molte mezzi di identificazione: CF, nome, # Passaporto Host, router Internet: Indirizzi IP (32 bit) – usati per indirizzare i datagrammi IP “Nome”, es., gaia.cs.umass.edu – usati dagli utenti Q: corrispondenza tra indirizzo IP e nome? AICA © 2005

10 DNS: Domain Name System
Database distribuito implementato come una gerarchia di molti name server Protocollo applicativo usato da host, router, name server per comunicare allo scopo di risolvere (tradurre) i nomi in indirizzi IP Nota: funzione di base di Internet implementata come protocollo applicativo La complessità trasferita al “bordo” della rete AICA © 2005

11 DNS: Gerarchia dei nomi
Domini di primo livello Gerarchia organizzativa (.com, .edu, .gov, .mil, .net, .org) Gerarchia nazionale (.it, .uk, .fr) Domini di secondo livello Ad esempio quelli universitari (stanford, polito) o quelli di organizzazioni di grandi dimensioni (nsf) Ad ogni nome è associato un tipo, che definisce se l'indirizzo è associato ad un host, ad un utente, ad una casella di posta elettronica AICA © 2005

12 Domini Domini=suddivisione logica di Internet per facilitare la gestione dei nomi delle risorse Internet è suddivisa in una moltitudine di domini radice Domini nazionali: uk it de Domini generici: com edu Un dominio radice include una collezione di host e può essere suddiviso a sua volta in sottodomini e così via Sottodominio del DII: ce.unipr.it AICA © 2005

13 Spazio dei nomi dei domini
gov org com it ..... jp yahoo unipr unipi ac co microsoft ...... ...... dii ceda di research AICA © 2005

14 DNS: Caratteristiche Sono supportati gli alias tra nomi logici ed indirizzi IP e viceversa Per accedere ai servizi si consulta un domain name server Le informazioni sono distribuite nella rete su diversi DNS, Domain Name Server Organizzati ad albero con root DNS e DNS dei vari domini Ogni sottorete (logica) Internet ha un proprio DNS primario, che contiene informazioni locali e può essere interrogato da host che appartengono alla stessa o ad altre sottoreti logiche, nonché da altri DNS AICA © 2005

15 DNS: Caratteristiche Importanza di buone politiche di caching per evitare di contattare troppe volte altri DNS al di fuori della sottorete logica. Ogni DNS risponde ad una well known port (53 per UDP e TCP). Si possono utilizzare direttamente gli indirizzi Internet evitando di contattare il name server. AICA © 2005

16 Funzione del DNS Utilizzato da diverse aplicazioni: HTTP, SMTP, FTP
Connessione TCP richiede la conoscenza dell’indirizzo IP corrispondente all’hostname Applicazione interroga un sever DNS per ottenere l’indirizzo IP Opportuno utilizzare la cache per ridurre il ritardo Utilizza UDP UNIX: gethostbyname() AICA © 2005

17 Funzione del DNS Fornisce l’hostname corrispondente ad un alias
Alias di posta: fornisce l’indirizzo IP o l’hostname del Mail Server di un dominio Distribuzione del carico tra Server replicati. IL DNS fornisce un gruppo di indirizzi alternando l’ordine Permette di dirigere un client al server più vicino AICA © 2005

18 Name server DNS Perché non un server DNS centralizzato?
Minore tolleranza ai guasti Traffico eccessivo Database centrale troppo distante in molti casi Scarsa scalabilità! Autorizzazione ed accesso per registrare nuovo host AICA © 2005

19 Name server DNS Nessun name server contiene tutte le associazioni nome simbolico/indirizzo IP Name server locali : Ogni ISP o compagnia ha un name server locale (default) La richiesta di traduzione (mapping) di un host è prima rivolta al name server locale Name server di riferimento : Per un host: per definizione è quello che è sempre in grado di eseguire la traduzione (mapping) nome simbolico/indirizzo IP dell’ host AICA © 2005

20 DNS: Root name servers Contattato dal name server locale che non riesce a risolvere un nome root name server: Contatta il name server di riferimento (authoritative) se la traduzione non è nota Ottiene la traduzione Restituisce la traduzione al name server locale ~ una dozzina di root name server nel mondo AICA © 2005

21 Esempio: schema ricorsivo
root name server 2 4 L’ host surf.eurecom.fr vuole l’indirizzo IP di gaia.cs.umass.edu 1. Contatta il server DNS locale, dns.eurecom.fr 2. dns.eurecom.fr contatta il root name server, se necessario 3. Il root name server contatta il name server di riferimento o assoluto, dns.umass.edu, se necessario 4. Ogni host è registrato in almeno due name server assoluti 4. Il name server assoluto può coincidere con il neame server locale. 3 5 local name server dns.eurecom.fr authorititive name server dns.umass.edu 1 6 Host che inoltra la richiesta surf.eurecom.fr gaia.cs.umass.edu AICA © 2005

22 Esempio (2) root name server 6 2 3 7 Root name server:
Può non essere a conoscenza di un name server di riferimento Può tuttavia conoscere un name server intermedio che contatta per avere raggiungere quello di riferimento local name server dns.eurecom.fr Name server intermedio dns.umass.edu 4 5 1 8 Name server di riferimento dns.cs.umass.edu Host che inoltra la richiesta surf.eurecom.fr gaia.cs.umass.edu AICA © 2005

23 DNS: richieste ripetute (iterated queries)
root name server DNS: richieste ripetute (iterated queries) Richiesta ripetuta 2 Richieste ricorsive (recursive query): Trasferisce il carico della traduzione al name server contattato Carico eccessivo? Richieste ripetute (iterated query): Il name server contattato risponde con l’indirizzo del prossimo name server da contattare “Non conosco questo nome, ma prova a rivolgerti a quest’altro server” 3 4 7 Name server locale dns.eurecom.fr Name server intermedio dns.umass.edu 5 6 1 8 authoritative name server dns.cs.umass.edu Host che inizia la richiesta surf.eurecom.fr gaia.cs.umass.edu AICA © 2005

24 DNS: caching e aggiornamento
Quando un qualsiasi name server apprende una traduzione la memorizza localmente (caching) Le traduzioni memorizzate nella cache (cache entries) scadono (timeout) dopo un certo tempo (di solito un paio di giorni) Se possibile, richieste successive vengono servite usando la traduzione presente in cache I meccanismi di aggiornmento/modifica in studio da parte dell’ IETF RFC 2136 AICA © 2005

25 Formato RR: (nome, valore, tipo, ttl)
Record DNS DNS: database distribuito che memorizza Resource Record (RR) Formato RR: (nome, valore, tipo, ttl) Tipo=A nome è il nome dell’ host valore è l’ indirizzo IP Tipo=CNAME nome è un alias di qualche nome reale (“canonico”) valore è il nome canonico Tipo=NS nome è il dominio (es. foo.com) valore è l’indirizzo IP del name server di riferimento per questo dominio Tipo=MX valore è il nome di un mailserver associato a nome AICA © 2005

26 HTTP e HTTPS I protocolli più usati nel WWW. HTTPS prevede una crittografazione in entrambi i sensi del contenuto del messaggio. Per il resto sono identici. La sintassi di questo schema è: dove: host é l’indirizzo TCP-IP o DNS, dell’host su cui si trova la risorsa port é la porta a cui il server é in ascolto per le connessioni. Per default, la porta è 80 per HTTP e 443 per HTTPS. path é un pathname gerarchico (per esempio, un filename parziale) per l’identificazione della risorsa query é una frase che costituisce l’oggetto di una ricerca sulla risorsa specificata. fragment é un identificativo di una sottoparte dell’oggetto. La definizione e il ritrovamento di queste sottoparti é a carico del client, e quindi la parte di fragment viene ignorata dal server, che restituisce l’intero oggetto. AICA © 2005

27 Intestazioni HTTP Il protocollo HTTP scambia messaggi in formato testuale È possibile utilizzare telnet per “dialogare” con un web server È possibile inviare informazioni non testuali quali Audio Video Immagini ... È necessario inviare alcune informazioni relative al documento trasmesso Tipo Dimesnsioni Codifica AICA © 2005

28 Intestazioni HTTP Le informazioni sono scambiate tramite header
Content-type Content-lenght Content-encoding Molto simile al protocollo MIME Content-encoding è tale per cui si codifica in ASCII a 7 bit Posso avere più oggetti multipart Gli header sono tramessi in modo testo HTTP trasmette solo testo Es:. le immagini sono scaricate a parte AICA © 2005

29 Posta elettronica: protocolli standard
Gli standard e i protocolli fondamentali sono: il formato dei messaggi di posta (RFC 822), praticamente P-UA-UA il formato MIME per la definizione del formato dei dati, che estende il formato dell'RFC 822 il protocollo SMTP (RFC 821), P-MTA-MTA usato anche in alcuni casi come P-UA-MTA ma sono da UA ad MTA l protocollo POP (RFC 1939), quasi P-UA-MS solo per prelevare, da MS a UA il protocollo IMAP (RFC 2060), P-UA-MS+P-UA-MTA AICA © 2005

30 Introduzione Qui esaminiamo in breve i protocolli di VII livello, ed in particolare quelli basati sul testo e connessi con lo scambio di posta elettronica, per il loro impatto su HTTP. Cosa sono i protocolli a livello Il protocollo SMTP ed ESMTP Lo standard MIME Brevemente, i protocolli POP, IMAP e NNTP. AICA © 2005

31 La posta elettronica (1)
La posta elettronica è basata sull’applicazione di 3 protocolli di VII livello: SMTP/ESMTP (host-to-host, client-to-host) POP (host-to-client) IMAP (host-to-client) Mittente Server ESMTP del mittente Server ESMTP del ricevente Server POP Ricevente File system File system Server IMAP AICA © 2005

32 La posta elettronica (2)
SMTP è descritto in due documenti IETF RFC 821: il modello di comunicazione, i comandi SMTP, i codici d’errore RFC 822: Il formato dei messaggi, il formato degli indirizzi, il formato delle date MIME è descritto da cinque documenti IETF: RFC 2045, 2046, 2047, 2048, 2049 ESMTP è descritto da vari documenti IETF: RFC 1869: un meccanismo generale di estensione di SMTP RFC 1652, 1870, 1830, 2197, 1891, 1985, 2034, 2487: varie estensioni ad SMTP SMTP è stato aggiornato nell'aprile 2001: RFC 2821 e 2822 aggiornano risp. RFC 821 e RFC 822 Altri protocolli: RFC 1939: descrive Post Office Protocol version 3 (POP3) RFC 2060: descrive Internet Message Access Protocol (IMAP4) AICA © 2005

33 Simple Mail Transfer Protocol
SMTP Simple Mail Transfer Protocol SMTP è un protocollo text-based, per lo scambio di messaggi di posta e la verifica dei destinatari dei messaggi. Una connessione SMTP è composta da una apertura, uno o più sequenze di comandi, ed una chiusura. Ad ogni comando corrisponde una risposta composta da un codice numerico ed una stringa leggibile. MAIL 250 OK RCPT 550 No such user here AICA © 2005

34 SMTP - RFC 821 (1) L’apertura avviene con il comando HELO
220 alpha.com Simple Mail Transfer Service Ready HELO beta.com 250 alpha.com says: Nice to meet you beta.com La chiusura avviene con il comando QUIT QUIT 221 alpha.com Service closing transmission channel AICA © 2005

35 SMTP - RFC 821 (2) La spedizione di un messaggio avviene attraverso l’identificazione del mittente (MAIL FROM), del/dei destinatari (RCPT TO), e del messaggio da trasmettere (DATA) MAIL 250 OK RCPT 550 No such user here RCPT 250 OK DATA 354 Start mail input; end with <CRLF>.<CRLF> Blah blah blah… etc. etc. etc OK AICA © 2005

36 SMTP - RFC 821 (3) Il forwarding avviene quando il destinatario non è corretto ma il server ricevente conosce l’indirizzo corretto: RCPT 250 OK (forward silenzioso) RCPT 251 User not local; will forward to RCPT 551 User not local; please try La verifica e l’espansione permettono di cercare un destinatario o di espandere il contenuto di un destinatario multiplo. Entrambi sono disabilitabili per sicurezza. VRFY Smith 250 Fred Smith EXPN MailList 250 Fred Smith 250 John Green AICA © 2005

37 Limiti di SMTP Ricapitoliamo i limiti fondamentali di SMTP:
La lunghezza massima del messaggio è di 1 Mb I caratteri accettati sono solo ASCII a 7 bit Ogni messaggio deve contenere una sequenza CRLF ogni 1000 caratteri o meno (alcune antiche implementazioni lo aggiungevano automaticamente se non lo trovavano). Questi limiti impediscono la trasmissione di documenti binari: Un file binario usa tutti i 256 tipi di byte Un file binario può facilmente essere più lungo di 1 Mb In un file binario la sequenza CRLF è una sequenza come tutte le altre, e può esserci o mancare senza vincoli. Introdurla artificialmente può corrompere il file. MIME permette di bypassare questi limiti all'interno di SMTP AICA © 2005

38 Multipurpose Internet Mail Extensions
MIME (1) Multipurpose Internet Mail Extensions RFC 822 definisce con sufficiente dettaglio il formato degli header dei messaggi SMTP, ma specifica in modo molto generico che il corpo di un messaggio deve essere semplice testo US-ASCII. MIME ridefinisce il formato del corpo di RFC 822 per permettere: Messaggi di testo in altri set di caratteri al posto di US-ASCII Un insieme estensibile di formati per messaggi non testuali Messaggi multi-parte Header con set di caratteri diversi da US-ASCII. AICA © 2005

39 MIME (2) Gli RFC su MIME sono divisi come segue:
RFC 2045 specifica gli header SMTP per messaggi MIME RFC 2046 definisce il meccanismo di tipi di MIME RFC 2047 definisce estensioni a RFC 822 per header che non usano US-ASCII RFC 2048 definisce le procedure di registrazione a IANA per i tipi MIME e le altre caratteristiche estensibili di MIME RFC 2049 definisce i livelli di conformità e fornisce esempi di uso di formati MIME. Noi guardiamo soltanto gli RFC 2045 e 2046. AICA © 2005

40 Messaggi MIME su canali SMTP
non SMTP Ancora oggi, quello che viaggia su un canale SMTP è un puro messaggio SMTP con gli stessi limiti di allora. MIME Server SMTP Mess. SMTP Mess. non SMTP Il messaggio non compatibile con SMTP viene trasformato in uno o più messaggi SMTP da un preprocessore al server SMTP All’arrivo, il o i messaggi SMTP vengono decodificati e riaccorpati a formare il messaggio originale. Server SMTP MIME AICA © 2005

41 I limiti SMTP su MIME Codifica caratteri Sequenze CRLF
il messaggio che contiene caratteri non ASCII viene codificato in maniera appropriata, cosicché ciò che viene effettivamente trasmesso sia veramente ASCII 7 bit. Il transfer encoding è diverso per messaggi di testo e messaggi binari (es. immagini). Sequenze CRLF Tutti i sistemi di transfer encoding adottano un meccanismo per permettere la presenza di sequenze CRLF in mezzo al flusso di dati, alcuni anzi prevedendoli in maniera forzata ogni tot caratteri (76, per lo più). Lunghezza messaggi Un processore MIME può generare vari messaggi SMTP da un singolo messaggio MIME, ciascuno inferiore per dimensione al limite SMTP. Il processore all’arrivo si occupa di verificare il corretto arrivo di tutti i singoli messaggi SMTP e ricostituisce il messaggio MIME originario AICA © 2005

42 Nuovi servizi MIME Dichiarazione di tipo Messaggi multi-tipo
Tutti i messaggi MIME vengono identificati da un Content Type, che definisce il tipo di dati del messaggio e aiuta l’applicazione ricevente a gestire il messaggio e a invocare l’applicazione più adatta. N.B.: l’attribuzione dell’applicazione non viene fatta sulla base dell’estensione del nome del file. Messaggi multi-tipo Un messaggio MIME può contenere parti di tipo diverso (es. un messaggio di tipo testo e un attachment binario).In questo caso si creano dei sottomessaggi MIME per ciascuna parte (con il suo bravo content-type) e il messaggio MIME complessivo diventa “multi-parte”, qualificando e codificando in maniera diversa ciascuna sottoparte. AICA © 2005

43 MIME - RFC 2045 (1) MIME introduce alcuni nuovi header SMTP:
Content-Type: il tipo MIME del contenuto. Serve per permettere al ricevente di scegliere il meccanismo più adatto per presentare i dati. Specifica la natura del dato tramite la specificazione di tipo, sottotipo e ulteriori parametri utili. Content-Type: text/plain; charset=ISO Content-Transfer-Encoding: il tipo di codifica utilizzata per trasmettere i dati. Serve per la trasmissione su canale SMTP di dati che non sono naturalmente corretti secondo le regole di SMTP: 7bit, sequenze CRLF ogni 1000 caratteri o meno. Sono valori accettabili “7bit” (default), “8bit”, “binary”, “quoted-printable”, “base64” o altre stringhe definite nel registro IANA Content-Transfer-Encoding: base64 AICA © 2005

44 MIME - RFC 2045 (2) MIME-Version: la versione di MIME attualmente utilizzata. L’unico valore accettabile attualmente è 1.0 MIME-Version: 1.0 Content-ID: un meccanismo per permettere a più messaggi SMTP di far riferimento gli uni agli altri. Questo soprattutto è usato per entità esterne ed alternative dello stesso messaggio. Content-ID: stringa identificativa unica Content-Description: utile per associare informazioni descrittive ad un blocco binario Content-Description: Immagine di Marte Sono possibili altri header MIME purché inizino con il prefisso “Content-”. AICA © 2005

45 MIME - Quoted printable
Uno dei due tipi di content transfer encoding definiti da MIME. Viene usata per la trasmissione di dati che contengono grosse quantità di byte nel set US-ASCII, e solo poche eccezioni Ad esempio, documenti testuali in lingue europee. Codifica dunque solo quei pochi byte non conformi. Per esempio: Un codice superiore al 127 o inferiore al 32 viene codificato con la sintassi “=“ + codice esadecimale. Ad esempio “ICSE’99” diventa “ICSE=B499” Righe più lunghe di 76 caratteri vengono interrotte con “soft breaks”, cioè con un uguale come ultimo carattere della linea. AICA © 2005

46 MIME - Base 64 Base 64 è il tipo di transfer encoding MIME suggerito per dati binari. Viene identificato un sottoinsieme di 64 caratteri di US-ASCII sicuri (hanno la stessa codifica in tutte le versioni di ISO 646). Questi sono le lettere maiuscole (26), minuscole (26), i numeri (10) più i caratteri + e /. Ogni flusso di dati viene suddiviso in blocchi di 24 bit (3 byte). A loro volta questi 24 bit sono suddivisi in 4 blocchi di 6 bit ciascuno e codificati secondo una tabella prefissata in uno dei 64 caratteri già descritti. La stringa risultante viene divisa in righe di 76 caratteri (tranne l'ultima, che è lunga quanto deve essere). I codici CR e LF sono da ignorare nella decodifica. AICA © 2005

47 MIME - RFC 2046 (1) MIME introduce il concetto di Content-Type per
permettere all’applicazione ricevente di identificare il modo migliore di presentare le informazioni ricevute Permettere all’applicazione di dividere, riunire o ottenere parti di messaggio unite, divise o non trasmesse. MIME specifica il tipo con una coppia tipo/sottotipo più parametri opzionali. I tipi principali sono • text • image • audio • video • application • message • multipart Tipi ulteriori possono essere introdotti registrandoli presso lo IANA o prefissandoli con “x-” (per experimental) AICA © 2005

48 MIME - Content-type: message
message: un corpo di tipo “message” è esso stesso un messaggio completo incapsulato (con intestazioni ecc.) che può a sua volta contenere altri messaggi, ecc. Il sottotipo “rfc822” permette di specificare che il messaggio è esso stesso un messaggio del tipo definito in RFC 822. Il sottotipo “partial” permette di frammentare messaggi troppo lunghi per passare indenni in un canale SMTP. Sono definiti parametri per identificare i frammenti e riordinarli correttamente. Il sottotipo “external-body” permette di specificare un corpo di grandi dimensioni attraverso un puntatore ad una fonte di dati esterna. Sono definiti parametri per specificare metodo di accesso e identificatore della risorsa. AICA © 2005

49 MIME - Content-type: multipart
multipart: un corpo di tipo “multipart” contiene nel corpo blocchi di dati di tipo diverso. Ogni blocco viene preceduto da una riga di delimitazione (boundary line), da righe di intestazione simili a quelle di RFC 822, per definire le caratteristiche specifiche del blocco, e viene seguito da un’altra boundary line. Il sottotipo “mixed” serve per segnalare che le parti sono indipendenti e di tipi diversi. Il sottotipo “alternative” serve per segnalare che le parti sono di tipi diversi ma identiche per contenuto, e che quindi l’applicazione finale può scegliere la versione che preferisce. Il sottotipo “parallel” serve per segnalare che le parti vanno mostrate contemporaneamente dall’applicazione finale (ad es. suono e video) Il sottotipo “digest” permette di precisare collezioni di testi sotto forma di digest (RFC 934). AICA © 2005

50 Post Office Protocol (version 3)
POP3 - RFC 1939 (1) Post Office Protocol (version 3) SMTP si disinteressa di come il ricevente acceda alla sua mailbox. Si supponeva all’epoca che tutti avessero accesso via file system alla directory con le mailbox. POP3 permette ad un’applicazione utente di accedere alla mailbox posta su un altro sistema. POP3 non permette manipolazioni complesse sulla mailbox, ma soltanto la possibilità di scaricare e cancellare mail. Per operazioni più complesse si utilizza IMAP4. AICA © 2005

51 POP3 - RFC 1939 (2) Una connessione POP3 è composta dalle seguenti parti: Greeting: riconoscimento reciproco di client e server Authorization: identificazione del client presso il server Transaction: uno o più comandi richiesti dal client LIST: informazioni su uno o più messaggi RETR: richiesta di un messaggio DELE: cancellazione di un messaggio TOP (opzionale): richiesta delle intestazioni del messaggio UIDL (opzionale): richiesta di un numero univoco e perenne che identifichi un messaggio Update: il server aggiorna e rilascia le risorse acquisite durante la transazione e chiude la comunicazione RFC 2449 elenca alcune estensioni di POP che non sono ancora standardizzate. Introdotte da CAPA, che permette al server di elencare le estensioni implementate AICA © 2005

52 Internet Message Access Protocol (v. 4rev1)
IMAP - RFC 2060 Internet Message Access Protocol (v. 4rev1) IMAP4 permette un controllo più sofisticato della propria mailbox anche se posta su un server remoto. IMAP4 permette operazioni di creazione, cancellazione e cambio di nome a mailbox; verifica di nuovi messaggi; cancellazione di messaggi; ricerca per contenuto ed attributi; scaricamento selettivo di attributi, parti e messaggi. IMAP inoltre è in grado di fare parsing di header RFC 822 e MIME, separare messaggi multipart e settare alcune flag inter-sessione. AICA © 2005

53 NNTP - RFC 977 (1) Network News Transfer Protocol
Le news nascono come generalizzazione delle mailing list pubblica. Con la mailing list una copia di ogni messaggio viene creata dal server originante e consegnata ad ad ogni appartenente alla lista. Abbonati multipli appartenenti sullo stesso server ricevono una copia a testa del messaggio. Questo è un carico eccessivo e ridondante di lavoro per il server d’origine e per tutti i server condivisi. Con le news, invece, il server di origine spedisce una sola copia del messaggio, e questo viene diffuso in unica copia a tutti i server interessati tramite il flooding. Il flooding è un meccanismo di diffusione dei messaggi di news secondo un processo progressivo e non deterministico. AICA © 2005

54 NNTP - RFC 977 (2) Ogni server di news possiede una lista di news host “amici”. Ad intervalli regolari si collega con uno di loro e confronta i messaggi ricevuti dall’ultimo confronto (comando IHAVE). Ogni messaggio mancante viene scambiato ed alla fine i server hanno la stessa lista di messaggi. Se un server ha solo un news host amico, allora riceverà da esso i nuovi messaggi dal mondo, e trasmetterà ad esso i messaggi generati localmente. Ma se un server ha più news host amici, allora la lista di messaggi disponibili sarà di volta in volta determinata anche dall’ordine delle connessioni trascorse. Quindi la disponibilità di messaggi dipende in massima parte dall’ordine delle connessioni effettuate, fino al caso particolare di ricevere una risposta prima della domanda che l’ha generata. AICA © 2005

55 Conclusioni Qui abbiamo parlato di protocolli basati su testo, specialmente per lo scambio di posta elettronica. Va notato che: le connessioni avvengono con ruoli rigorosi (client e server) I comandi e risposte avvengono in modo testo (telnettabili) Si cerca di eliminare la complicazione, o di localizzarla fortemente I codici di risposta sono sia numerici (machine-readable) che in testo (human-readable). AICA © 2005

56 Telnet Applicazione che consente il dialogo a distanza con un server
Possibilità di sfruttare le risorse di calcolo di una macchina remota Viene aperta una shell (testuale) sulla macchina remota Porta standard 23 Richiesta autenticazione (tramite username, password) Sono trasmessi in chiaro Possibilità di effettuare telnet su una porta differente dalla quella standard Es:. Telnet su porta 80 consente di verificare se un dato web server risponde correttamente al protocollo http AICA © 2005

57 Telnet Telnet La sintassi della parte specifica è: telnet host port
AICA © 2005

58 Comandi Telnet AICA © 2005

59 Esempio connessione porta 80
AICA © 2005

60 File Transfer Protocol
FTP: Inviare o scaricare (download, upload) di file da e verso una macchina remota Indipendente dal sistema opertivo Consente definzioni di classi di utenti con relativi diritti AICA © 2005

61 FTP dove: La sintassi della parte specifica è:
dove: User e password sono utente e password per l’accesso ad un server FTP. La mancanza di user fa partire automaticamente una connessione anonima Si tende a scoraggiare l'uso della password nell'URL, in quanto evidente situazione di scarsa sicurezza. Tuttavia lo schema lo prevede come parte facoltativa. Host, port e path sono l’indirizzo del server, la porta di connessione ed il nome del file dell’oggetto ricercato, come per HTTP. La porta di default è 21. ftp –a : connessione come utente anonimo (la password richiesta è l’indirizzo ) AICA © 2005

62 FTP comandi AICA © 2005

63 DHCP Protocollo di servizio TCP/IP che consente la configurazione dinamica degli indirizzi IP host e la distribuzione di altri parametri di configurazione ai client appropriati sulla rete. Il protocollo DHCP utilizza un modello client/server nel quale il server DHCP gestisce in modo centralizzato gli indirizzi IP utilizzati nella rete. I client che supportano il protocollo DHCP possono quindi richiedere e ottenere il lease per un indirizzo IP dal server DHCP durante il processo di avvio in rete. AICA © 2005

64 I linguaggi di markup Cos'è un linguaggio di markup? XML
A che serve XML? I linguaggi di markup basati su XML XML nel mondo editoriale AICA © 2005

65 Struttura e formato La struttura è una proprietà intrinseca del documento, legata al suo tipo Esempio: la struttura di un libro è a capitoli Il formato è un attributo secondario del documento, dipendente da come viene creato o salvato Esempio: il formato di un documento è PDF il formato di stampa è A4 AICA © 2005

66 Struttura e layout La struttura è una proprietà univoca del tipo del documento Il layout è un comportamento del documento, dipendente dallo stile di presentazione Esempio: un libro viene stampato in un layout su carta A4 due pagine alla volta Lo stesso documento può essere visualizzato secondo diverse modalità di layout I comportamenti di layout sono molto vari e possono dipendere dall’applicazione visualizzatrice; per un esempio di layout “liquido” di HTML vedere AICA © 2005

67 Markup Manoscritto (a macchina) HTML Questa è una nozione importante.
Questa è una nozione <em>importante</em>. Tag AICA © 2005

68 Markup stilistico (o presentazionale)
HTML (HyperText Markup Language) Dynamic HTML CSS (Cascading Style Sheets) XSL (per XML) Soluzioni proprietarie per E-Publishing AICA © 2005

69 Esempi di linguaggi di markup
RUNOFF, troff, nroff SGML Standard Generalized Markup Language HTML HyperText Markup Language GML Geography Markup Language TeX, LaTeX LMNL Layered Markup Annotation Language RTF Rich Text Format WML Wireless Markup Language VRML Virtual Reality Markup Language XML eXtensible Markup Language AICA © 2005

70 HTML Quando nel 1989, al CERN, venne inventato il WWW, si usava un browser non-grafico che gestiva una versione detta HTML 0 HTML 1 (1993) era quello supportato dal browser Mosaic; la principale innovazione furono le immagini e la gestione grafica della navigazione ipertestuale HTML 2 (1994) venne definito da IETF usando SGML; introdusse la gestione delle tabelle e degli script AICA © 2005

71 HTML HTML 3.0/3.2 (1996) aumentò le funzionalità ipertestuali; nel marzo del 1995 il W3C iniziò a lavorare su una versione 3.0 mentre Microsoft e Netscape rilasciavano i browser contenenti nuovi tags tra loro diversi: il W3C abbandonò la versione 3.0 per passare direttamente alla 3.2, in cui le maggiori novità furono le tabelle, i font colorati, gli applet Java, i tag superscript e subscript HTML 4 (1998) è la versione più recente dello standard; introdusse i fogli di stile AICA © 2005

72 Cascading StyleSheets (CSS)
Uno stylesheet è un insieme di regole che istruiscono un browser su come presentare (a video, a stampa) un documento Ci sono vari modi di collegare regole di stile a documenti HTML Un modo semplice consiste nell’uso dell’elemento STYLE di HTML, che viene messo nell’intestazione (HEAD) del documento e contiene le regole di stile della pagina AICA © 2005

73 Cascading StyleSheets (CSS)
Ogni regola si compone di due parti: selector { property: value } un selettore (selector): di solito un elemento HTML come BODY, P, o EM; lo stile da applicare al selettore, definito da coppie property/value Ogni elemento può avere parecchie proprietà (properties) Ogni proprietà ha un valore che descrive come va presentato il selettore AICA © 2005

74 Esempio: stylesheet CSS
Definiamo le proprietà color e font-size per gli elementi H1 e H2: <HEAD> <TITLE>CSS Example</TITLE> <STYLE TYPE="text/css"> H1 { font-size: x-large; color: red } H2 { font-size: large; color: blue } </STYLE> </HEAD> Questo stylesheet dice al browser di mostrare i titoli di livello 1 con fonte rossa extra-large, mentre per i titoli di livello 2 deve usare una fonte blu large AICA © 2005

75 SGML SGML venne inventato da IBM e nel 1986 fu standardizzato da ISO
SGML inizialmente doveva servire a definire documenti strutturati nel campo legale E' un metalinguaggio complesso Sia HTML che XML derivano da SGML AICA © 2005

76 XML XML venne introdotto nel 1996 e standardizzato nel 1998 dal W3C come metalinguaggio di markup ("SGML per il Web") E' derivato da SGML, che semplifica Si basa sulle stesse tecnologie di base di HTML Elimina la debolezza di HTML (i cui tag mescolano struttura e layout), separando la manipolazione della struttura dei documenti dalle problematiche di presentazione del layout AICA © 2005

77 Esempio di frammento XML
Markup <messaggio id="1"> <da>Bob</da> <a>Alice</a> <argomento>Lunch?</argomento > </messaggio> messaggio Elementi da a argomento Struttura logica del documento AICA © 2005

78 SGML vs HTML vs XML HTML è un linguaggio con uno specifico vocabolario (insieme di tag predefiniti) per definire struttura e presentazione di pagine ipertestuali su Web SGML venne inventato per costruire database di documenti strutturati XML è un metalinguaggio libero, cioè senza tag predefiniti, applicabile in molte e diverse situazioni: viene usato soprattutto per definire linguaggi di markup specializzati per qualche applicazione specifica AICA © 2005

79 XML: terminologia Un documento XML è fatto di elementi, che sono delimitati da tag Tag iniziale: es. <titolo> Tag finale: es. </titolo > Elemento: sequenza di tag ben annidati Attributo: proprietà di un elemento Documento: frammento XML che combina elementi e contenuto Esempio: <titolo> Professore </titolo> AICA © 2005

80 Terminologia Annidamento: elemento entro un altro elemento
Struttura: annidamento ordinato di elementi Esempio <Nome> <primo>Paolo</primo> <secondo></secondo> <cognome>Ciancarini</cognome> </Nome> Modello: ordine, frequenza e regole di annidamento degli elementi di un documento definito dal DTD (Document Type Definition) Esempio: L'elemento Nome deve contenere primo, seguito da secondo (che può essere vuoto) e da cognome AICA © 2005

81 Terminologia DTD: Document Type Definition; documento che descrive la grammatica ed il vocabolario di un tipo di documento Parser: programma che legge un documento e lo convalida se è conforme al suo DTD Documento valido: documento elaborato da un parser che assicura che struttura e contenuto di un documento siano corretti rispetto al DTD AICA © 2005

82 Terminologia Ben formato: annidamento degli elementi corretto
<P>Questo markup è <EM>ben formato</EM>!</P> Mal formato: annidamento scorretto <P>questo markup è <EM>mal formato</P>!</EM> Un documento valido è sempre ben formato Un documento ben formato non sempre è valido AICA © 2005

83 Perché XML è estendibile?
XML è un meta-linguaggio, ovvero è un linguaggio che definisce linguaggi Non usa un insieme predefinito di tags, perché permette di definire liberamente i propri tag (HTML ha un insieme prefissato di tag) I tag in XML connotano il significato del loro contenuto, quindi il markup XML si può considerare autodescrivente La struttura "valida" di un documento XML può essere fissata da un DTD (Document Type Definition), che può essere annesso al documento AICA © 2005

84 Esempio: documento XML con DTD
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <!DOCTYPE BOOK [ <!ELEMENT BOOK (TITLE,AUTHOR,ISBN,PRICE,DESCRIPTION)> <ELEMENT TITLE (#PCDATA)> <!ELEMENT AUTHOR (#PCDATA)> <!ELEMENT ISBN (#PCDATA)> <!ELEMENT PRICE (#PCDATA)> <!ELEMENT DESCRIPTION (#PCDATA)> ]> <BOOK> <TITLE></TITLE> <AUTHOR></AUTHOR> <ISBN></ISBN> <PRICE></PRICE> <DESCRIPTION></DESCRIPTION> </BOOK> DTD AICA © 2005

85 Esempio: DTD <?xml version="1.0" standalone="yes"?>
<!DOCTYPE library [ <!ELEMENT library (book*)> <!ELEMENT book (title, author+, description?, (hardcover | softcover))> <!ELEMENT author (#PCDATA)> <!ELEMENT title (#PCDATA)> <!ELEMENT description (#PCDATA)> <!ELEMENT hardcover EMPTY> <!ELEMENT softcover EMPTY> <!ATTLIST book isbn CDAT #REQUIRED> ]> AICA © 2005

86 Alcune convenzioni nei DTD
title esattamente uno author+ almeno uno description? Uno o nessuno (hardcover | softcover) una delle due #PCDATA caratteri analizzati, possono contenere tag CDATA caratteri in chiaro, non analizzati per cercare tag EMPTY solo tag, niente dati #REQUIRED attributo necessario #IMPLIED attributo opzionale #FIXED attributo costante AICA © 2005

87 La struttura di un documento XML
Il prologo Versione di XML <?xml version=“1.0”> Codifica Unicode <encoding=UTF-8> Document Type Declaration (DTD) Esterno o interno L'elemento documento, che contiene sottoelementi annidati e riferimenti ad entità esterne (es. abbreviazioni) AICA © 2005

88 Elementi primitivi di XML
Un (albero) documento è fatto di nodi I tipi di nodo principali sono elemento, attributo e testo (o contenuto) <messaggio id="1">Ciao mondo!</messaggio> messaggio Elemento Testo attributo id Ciao mondo! "1" AICA © 2005

89 I documenti XML hanno una struttura gerarchica
La struttura logica di un documento XML è un albero Channel Item Title Link Description RSS Element Text AICA © 2005

90 XML è un metalinguaggio
Un metalinguaggio è un linguaggio per descrivere linguaggi XML è un formalismo semplice per descrivere la sintassi di qualsiasi linguaggio mediante markup Una serie di strumenti di corredo permettono poi di elaborare i linguaggi descritti con XML AICA © 2005

91 La famiglia XML XLink XPointer XSLT XPath XSL-FO XML Info Set
Trasformazione e stili XLink ipertestualità XPointer XSLT XPath XSL-FO XML Info Set XML e Namespaces DOM SAX XML Schema Modello Degli oggetti Parsing e navigazione Modellazione dati AICA © 2005

92 Gli stili di presentazione
Siccome in XML si definisce solo la struttura di un documento, occorre qualcos'altro per programmare lo stile di presentazione XSL (eXtesible Stylesheet Language) è un linguaggio XML per descrivere stili di presentazione - detti stylesheet AICA © 2005

93 Trasformazione e stile
XSL (eXtensible Stylesheet Language) include due tecnologie distinte XSLT (XSL Transformation) definisce i meccanismi di trasformazione da XML in qualsiasi altra struttura linguistica XSL-FO (XSL Formatting Objects) è un vocabolario per specificare markup di presentazione (sovrainsieme di CSS) XSLT è largamente usato per manipolare documenti mediante stylesheets AICA © 2005

94 Applicazione di XSLT ad un documento
Sorgente XML Parse Render Risultato XSLT Template AICA © 2005

95 Hyper Text Markup Language
L’HTML è un linguaggio che usa annotazioni markup per descrivere la formattazione di documenti E’ derivato dall’ SGML (Standard Generalized Markup Language) ISO 8879 E’ specializzato nel trattamento degli ipertesti e adattato al Web. I comandi per la formattazione (tag) sono inseriti in modo esplicito nel testo. Un documento descritto in HTML e’ sempre un file ASCII AICA © 2005

96 Hyper Text Markup Language
L’evoluzione dell’HTML è sotto il controllo del consorzio W3C: versione 1.0 versione (RFC 1866 e RFC 2854) (...introdotto il concetto di Form) versione 3.0 versione 3.2 versione (REC-html ) versione 4.0.1 AICA © 2005

97 HTML: il ruolo Il ruolo di HTML è quindi quello di definire il modo in cui deve essere visualizzata una pagina Web (detta anche pagina HTML), che tipicamente è un documento di tipo testuale contenente opportuni tag di HTML. Il client, quando riceve una pagina compie le seguenti operazioni: interpreta i tag presenti nella pagina; AICA © 2005

98 HTML: il ruolo formatta la pagina di conseguenza, provvedendo automaticamente ad adattarla alle condizioni locali (risoluzione dello schermo, dimensione della finestra, profondità di colore, ecc.); mostra la pagina formattata sullo schermo. Nella formattazione si ignorano: sequenze multiple di spazi; caratteri di fine riga, tabulazioni, ecc. I tag HTML possono essere divisi in due categorie: tag per la formattazione di testo; tag per altre finalità (inclusione di oggetti,interazione utente,elaborazione locale). AICA © 2005

99 HTML: le evoluzioni Al crescente successo del Web si è accompagnato un continuo lavoro per ampliarne le possibilità di utilizzo e le funzionalità offerte agli utenti. In particolare, si è presto sentita l'esigenza di fornire un supporto a una qualche forma di interattività superiore a quella offerta dalla navigazione attraverso gli hyperlink (pagine statiche), ad esempio per consentire agli utenti di consultare una base di dati remota via Web. La pagine Web generate on-fly da questo tipo di interazione si definiscono: pagine dinamiche. AICA © 2005

100 HTML: le evoluzioni Le estensioni più rivoluzionarie del Web in tal senso sono state: introduzione delle form per l'invio di dati al server Web ed interazione con le CGI per l’ elaborazione dei dati sul server stesso; introduzione del linguaggio LiveScript (poi chiamato JavaScript) per la definizione di computazioni, eseguite dal client, direttamente associate a una pagina HTML; introduzione del linguaggio Java per la creazione di file eseguibili, che vengono trasmessi dal server al client e poi vengono eseguiti in totale autonomia dal client; indipendentemente dalla piattaforma HW e SW del sistema AICA © 2005

101 Hyper Text Transfer Protocol
Il protocollo HTTP sovraintende al dialogo fra un client e un server web: il linguaggio nativo del Web. HTTP non è ancora uno standard ufficiale. Infatti, HTTP 1.0 (rfc 1945) è informational, mentre HTTP 1.1 (rfc 2068) è ancora in fase di proposta. HTTP è un protocollo ASCII, cioè i messaggi scambiati fra client e server sono costituiti da sequenze di caratteri ASCII In questo contesto per messaggio si intende la richiesta del cliente oppure la risposta del server, intesa come informazione di controllo; viceversa, i dati della URL richiesta che vengono restituiti dal server non sono necessariamente ASCII (esempi di dati binari: immagini, filmati, suoni, codice eseguibile). Utilizzo dello standard MIME (sviluppato per la posta elettronica) AICA © 2005

102 Hyper Text Transfer Protocol
L’HTTP prevede che ogni singola interazione fra client-server si svolga secondo il seguente schema: apertura di una connessione di livello di transporto (TCP) tra client e server invio di una singola richiesta da parte del client, che specifica la URL desiderata; invio di una risposta da parte del server e dei dati di cui alla URL richiesta; chiusura della connessione di livello transport. E’ un protocollo di tipo stateless: non è previsto il concetto di sessione all'interno della quale ci si ricorda dello stato dell'interazione fra client e server. Ogni singola interazione è storia a se ed è del tutto indipendente dalle altre. AICA © 2005

103 HTTP 1.0: i problemi aperti
Il protocollo HTTP è nato con una finalità (lo scambio di informazioni fra gruppi di ricercatori) che si è radicalmente modificata col passare del tempo. Infatti, attualmente (V1.0) il suo utilizzo si è ampliato enormemente e si cerca di sfruttarlo anche per transazioni di tipo commerciale. Questo ha messo alla frusta il protocollo soprattutto da tre punti di vista: Efficienza nell'uso della rete Il problema di fondo è che il protocollo HTTP prevede che si apra e chiuda una connessione TCP per ogni singola coppia richiesta-risposta. Si deve tenere presente che l'apertura e la chiusura delle connessioni TCP non è banale (three way handshake per l'apertura, idem più timeout per la chiusura); durante l'apertura e la chiusura non c'è controllo di flusso;la dimensione tipica dei dati trasmessi è piccola (pochi KByte);il TCP usa la tecnica dello slow start per il controllo di flusso.Di conseguenza, si ha che il protocollo HTTP impone un grave overhead sulla rete (sono frequentissime le fasi di apertura/chiusura di connessioni TCP); gli utenti hanno la sensazione che le prestazioni siano scarse (per via dello slow start). AICA © 2005

104 HTTP 1.0: i problemi aperti
Assenza del concetto di sessione In moltissime situazioni (ad esempio nelle transazioni di tipo commerciale) è necessario ricordare lo stato dell'interazione fra client e server, che si svolge per fasi successive. Questo in HTTP è impossibile, per cui si devono trovare soluzioni ad hoc (ad esempio, restituire pagine HTML dinamiche contenenti un campo HIDDEN che identifica la transazione).In proposito c'è una proposta (State Management, rfc 2109) basata sull'uso dei cookies, cioè particolari file che vengono depositati presso il client e che servono a gestire una sorta di sessione. Carenza di meccanismi per lo scambio di dati riservati L'unico meccanismo esistente per il controllo degli accessi (Basic Authentication) fa viaggiare la password dell'utente in chiaro sulla rete. AICA © 2005

105 User Agents I client (o user agents) sono lo strumento a disposizione dell'utente che gli permette l'accesso e la navigazione nell'ipertesto del Web. Vengono comunemente chiamati browser (sfogliatori): NCSA Mosaic (il primo); Netscape Navigator; Microsoft Internet Explorer. Essi hanno varie competenze: trasmettere all'opportuno server le richieste di reperimento dati che derivano dalle azioni dell'utente; ricevere dal server le informazioni richieste; visualizzare il contenuto della pagina Web richiesta dall'utente, gestendo in modo appropriato tutte le tipologie di informazioni in esse contenute; consentire operazioni locali sulle informazioni ricevute (ad esempio salvarle su disco, stamparle). AICA © 2005

106 User Agents Di norma i browser gestiscono direttamente solo alcune tipologie di informazioni: testo formattato; immagini fisse; codice eseguibile. Gli altri tipi di informazioni vengono gestiti in uno (o entrambi) dei seguenti modi: consegnandoli a un programma esterno:helper per mezzo di plug-in, ossia librerie di codice eseguibile e specializzato caricato in memoria secondo le necessità. In questa situazione, se il necessario plug-in è installato, il browser provvede a caricarlo e gli affida la gestione delle informazioni da trattare. AICA © 2005

107 Server Agents Il server è tipicamente un processo in esecuzione su un elaboratore. Esso, di norma, è sempre in esecuzione (tranne che in situazioni eccezionali) ed ha delle incombenze molto semplici: rimanere in ascolto di richieste da parte dei client; fare del suo meglio per soddisfare ogni richiesta che arriva: se possibile, consegnare il documento richiesto; altrimenti, spedire un messaggio di notifica di errore. deve fare il suo lavoro nel modo più efficiente possibile, dunque deve essere implementato con un occhio di riguardo alle prestazioni; AICA © 2005

108 Server Agents deve essere in grado di gestire molte richieste contemporaneamente, e mentre fa questo deve continuare a rimanere in ascolto di nuove richieste. Possibili soluzioni: clonazione del server:per ogni nuova richiesta che arriva, il server (che è sempre in ascolto) crea una nuova copia di se stesso alla quale affida la gestione della richiesta;si mette quindi nuovamente in attesa di nuove richieste; la copia clonata si occupa di soddisfare la richiesta e poi termina. server multithreaded:esiste una sola copia del server, che però è progettato per essere in grado di generare thread multipli AICA © 2005

109 Modalità di comunicazioni Client-Server
Le modalita’ di comunicazione tra un browser ed un server web avvengono in chiaro attraverso il protocollo di trasferimento per ipertesti HTTP (Hyper Text Transfer Protocol ). Questo protocollo lavora per creare, trasferire e gestire dei dati formattati secondo il linguaggio HTML (Hypertext Markup Language) da un sistema ad un altro in maniera indipendente dal sistema stesso. La connessione spesso è stabilita dal client prima di ogni richiesta, e chiusa dal server dopo ogni risposta. AICA © 2005

110 Modalità di comunicazioni Client-Server
L'HTTP disciplina i riferimenti attraverso gli URI (Universal Resource Identifier) che possono essere divisi per locazione URL e per nome URN, indica in tal modo la risorsa a cui applicare il metodo della request. Le quattro operazioni svolte in sequenza dal protocollo HTTP sono: connessione con il server che contiene il documento, richiesta del documento, recupero della pagina interessata attraverso la risposta del server chiusura della connessione. Questo ciclo viene ripetuto per ciascuna pagina richiesta. L`HTTP usa la well known port numero 80 del livello di trasporto TCP. AICA © 2005

111 Le comunicazioni Sicure
Le tecnologie piu` comunemente utilizzate per realizzare una comunicazione sicura tra il Browser ed il Web Server: L`SSL (Secure Socket Layer) (documentato in un IETF draft nella sua terza revisione) e` stato sviluppato dalla Netscape per fornire connessioni sicure nel trasferimento di dati sensibili. Un trasferimento SSL utilizza una porta TCP dedicata:443. E` necessario quindi specificare nell`URL un metodo differenziato di accesso: STTP. La sicurezza nel trasferimento delle informazioni e` assicurata da una codifica basata sull`algoritomo RC4 sviluppato dalla RSA, Inc. AICA © 2005

112 Le comunicazioni Sicure
L` SHTTP (Secure HTTP) e` stato sviluppato dalla Enterprise Integration Technologies (EIT), ora Verifone, e condivide gli stessi obiettivi di massima dell`SSL. La codifica a chiave-pubblica chiave-privata dei dati si basa sull`algoritmo di Rivest-Shamir-Adleman. Non utilizza porte proprietarie sul TCP. La differenza fondamentale tra i due sta nel fatto che SSL crea una connessione sicura tra client e server sulla quale si puo` poi trasportare qualsiasi dato mentre l`S-HTTP trasporta i singoli file in modo sicuro, attraverso un meccanismo di certificati di autenticita` puntuali. AICA © 2005

113 Web Application Server Side Application
In una applicazione Client-Server si dice di programmi che verranno eseguiti sul Server. Nel mondo del WEB: Scripts CGI Applet Java JSP ASP Script PHP Client Side Application In una applicazione Client Server si dice di programmi che verranno eseguiti sul Client. Nel mondo del WEB: JavaScript Applet Java AICA © 2005

114 Server Side Applications
CGI (Common Gateway Interface): e’ la tecnologia piu’ standard e piu’ vecchia per interfacciare un server Web con un programma, scritto in un linguaggio qualunque, che viene eseguito sul server. Attraverso questa interfaccia e’ possibile passare dati dal server Web al programma applicativo e viceversa. Il programma quindi puo’ eseguire qualunque tipo di elaborazione (estrazione di dati da database, manipolazione degli stessi, calcoli, ecc.). Questa tecnologia e’ abbastanza inefficiente e abbastanza poco sicura, quindi viene utilizzata sempre piu’ di rado. AICA © 2005

115 Server Side Applications
ASP (Active Server Pages): e’ una tecnologia sviluppata da Microsoft e successivamente adottata anche da altri produttori di server Web (ad es. Netscape). E’ basata sul meccanismo di introdurre all’interno di una pagina HTML codice ActiveX (Visual Basic, Visual C++, Java, VBScript) . AICA © 2005

116 Server Side Applications
JSP (Java Server Pages): e’ una tecnologia sviluppata da Sun come alternativa alle ASP. Funzionano nello stesso modo, salvo che nelle pagine HTML invece di essere inserito del codice SQL viene inserito del codice Java. Attraverso Java e’ possibile effettuare qualunque elaborazione (estrazione dei dati, successiva manipolazione degli stessi, calcoli, ecc.). Il server Web poi costruisce la pagina come integrazione del codice HTML statico e dei risultati prodotti dal codice Java. Ovviamente e’ una tecnologia piu’ potente delle ASP. AICA © 2005

117 I cookies HTTP è stateless: non esiste nessuna struttura ulteriore alla connessione, e il server non è tenuto a mantenere informazioni su connessioni precedenti. Un cookie (non in HTTP, è un’estensione di Netscape, proposta nell’RFC 2109 e poi ancora RFC 2965) è una breve informazione scambiata tra il server ed il client. Il client mantiene lo stato di precedenti connessioni, e lo manda al server di pertinenza ogni volta che richiede un documento. Il termine cookie (anche magic cookie) in informatica indica un blocco di dati opaco (i.e.: non interpretabile) lasciato in consegna ad un richiedente per poter ristabilire in seguito il suo diritto alla risorsa richiesta (come il tagliando di una lavanderia) AICA © 2005

118 Architettura dei cookie (1)
Alla prima richiesta di uno user-agent, il server fornice la risposta ed un header aggiuntivo, il cookie, con dati arbitrari, e con la specifica di usarlo per ogni successiva richiesta. Il server associa a questi dati ad informazioni sulla transazione. Ogni volta che lo user-agent accederà a questo sito, rifornirà i dati opachi del cookie che permettono al server di riidentificare il richiedente, e creare così un profilo ottimale. Di particolare importanza sono la valutazione dei cookie da siti complessi (che comprendono molti domini) e l'uso di cookie di terze parti (ad esempio associati a banner o cose così). AICA © 2005

119 Architettura dei cookies (2)
server HTTP applicazione CGI client request request genera il cookie Output + cookie Risposta + Set-Cookie request + Cookie request + Cookie analizza il cookie Output Risposta AICA © 2005

120 Architettura dei cookies (3)
I cookies dunque usano due header, uno per la risposta, ed uno per le richieste successive: Set-Cookie: header della risposta, il client può memorizzarlo e rispedirlo alla prossima richiesta. Cookie: header della richiesta. Il client decide se spedirlo sulla base del nome del documento, dell’indirizzo IP del server, e dell’età del cookie. AICA © 2005

121 Architettura dei cookies (4)
I cookies contengono le seguenti informazioni: Comment: stringa leggibile di descrizione del cookie. Domain: il dominio per cui il cookie è valido Max-Age: La durata in secondi del cookie. Path: l’URI per il quale il cookie è valido Secure: la richiesta che il client contatti ilo server usando soltanto un meccanismo sicuro (es. SHTTP) per spedirlo Version: La versione della specifica a cui il cookie aderisce. AICA © 2005

122 Alternative ai cookie I cookie permettono al server di ri-associare una richiesta a richieste precedenti (creare uno stato tra connessioni) attraverso l'uso di un pacchetto di dati opaco. Ci sono altri metodi, ma hanno tutti difetti: Posso associare lo stato all'indirizzo IP del richiedente. Ma: alcuni computer sono multi-utente, e utenti diversi condividono lo stesso IP; altri computer hanno indirizzi dinamici, e lo stesso IP può essere assegnato a computer diversi Posso nascondere informazioni all'interno della pagina HTML (attraverso un form nascosto). Ma: questo significa dover generare dinamicamente TUTTE le pagine, ed essere soggetti a manipolazioni semplici da parte degli utenti. Inoltre sono informazioni che rimangono associate ad una pagina specifica (un back e ho perso il contenuto del mio carrello) Posso complicare l'URL della pagina, inserendo dentro le informazioni di stato. Ma: si complica la gestione dei proxy, della cache, e si rende più facilmente manipolabile la stringa opaca. AICA © 2005

123 I third party cookie Un uso subdolo (ma alcuni lo giustificano) dei cookie è l'inserimento di cookie nei banner e nelle pubblicità. Questo permette ad un'agenzia di banner di seguire la navigazione di un utente attrvaerso tutti i siti a cui fornisce banner, e quindi fornire una profilazione più precisa del navigatore, con effetti discutibili sulla sua privacy. RFC 2965 esplicitamente proibisce questo tipo di comportamento, che è però largamente ignorato dai produttori di browser e dai fornitori di banner. Si aggiunga che molte versioni di browser hanno bug che permettono a codice Javascript malizioso, nascosto dentro alle pagine dei browser, di sniffare i contenuti dei cookie destinati ad altri domini. AICA © 2005

124 Applicazioni di gruppo
Strumenti per comunicare su internet, raggiungendo molte persone contemporaneamente: Mailing list Newsgroup Forum Chat AICA © 2005

125 Mailing list E’ una lista di indirizzi ( a cui è necessario iscriversi) composta di persone con interessi comuni che comunicano tramite posta elettronica. Ogni messaggio spedito da una persona viene recapitato ai componenti della mailing list Il traffico è gestito automaticamente da programmi chiamati mailing list managers (MLMs), tra i più usati vi sono: Listserv e Majordomo. Esistono anche gestori umani. AICA © 2005

126 Mailing list B2 A B1 B3 AICA © 2005

127 Mailing list Il funzionamento della lista si basa sull’uso di due diversi indirizzi di posta elettronica: l’indirizzo del listserver (che riceve l’iscrizione alla lista, le dimissioni…) e l’indirizzo della lista a cui devono essere spediti i messaggi indirizzati tutti gli iscritti. Per iscriversi a una mailing list occorre scrivere al listserver un messaggio che porta il campo Oggetto vuoto e il cui testo è: subscribe nomelista. Per annullare la propria iscrizione bisogna scrivere un nuovo messaggio che porti come testo: unsubscribe nomelista. Esiste la possibilità che la ML sia moderata Ogni mail che arriva genera una richiesta di autorizzazione al moderatore che decide se inviare il messagio o no AICA © 2005

128 Mailing list Per trovare liste sul Web si può utilizzare il database che consente ricerche per parole chiave e che contiene elenchi di liste e informazioni al riguardo. AICA © 2005

129 Newsgroup Come la mailing list è un luogo dove esprimere le proprie opinioni e discutere con altri utenti. Non necessita di iscrizione; gli articoli dei newsgroup sono conservati su appositi news server. Gli Url delle news sono del tipo news:nomegruppo. Esempio: news://news.iol.it/it.arti.cartoni Si leggerà il newsgroup it.arti.cartoni sul server news.iol.it. Gestiti tramite protocollo NNTP (Network New Transfer Protocol) Esistono gruppi moderati AICA © 2005

130 Newsgroup B2 A B1 B3 AICA © 2005

131 Newsgroup L’insieme dei newsgroup è designato con il nome Usenet.
Il motore di ricerca DejaNews, ne consente la ricerca attraverso l’uso di parole chiave AICA © 2005

132 forum Concetto analogo ai gruppi di discussione
I forum sono generalmente ospitati su siti internet Le informazioni non vengono distribuite ma rimangono sul sito che ospita il forum Per intervenire occorre iscriversi al sito L’amministratore del forum può decidere di chiudere il forum senza preavviso Non vero per i newsgroup che non hanno un proprietario AICA © 2005

133 Chat Comunicazione scritta in tempo reale
È necessario che i partecipanti alla chat siano collegati nello stesso tempo chat basata su architettura client-server Protocollo IRC : un client si collega ad un server (punto di raccolta dei messaggi) che si occupa di smistare i messagi ai correttio destinatari Diverse architetture più client connessi allo stesso server più client connessi a più server I client non si possono collegare direttamente tra loro ma devono sempre passare tramite un server AICA © 2005

134 Chat Comunicazione uno a uno Comunicazione uno a molti AICA © 2005

135 Netiquette E’ reato: E’ sconveniente:
Vendere/scambiare programmi duplicati Vendere/scambiare mp3 e film Vendere/scambiare crackare programmi Creare/distribuire virus Offendere via mail E’ sconveniente: Scrivere mail troppo prolisse Tempestare di mail Non esternare motivazioni,interessi e spirito con cui si è spedita una mail Spedire mail o scrivere pagine web in formati astrusi AICA © 2005

136 Netiquette Tutte le regole della netiquette (in italiano) sono disponibili in questo sito: AICA © 2005

137 Condivisione e accesso alle risorse
Un vantaggio delle reti locali è quello di poter utilizzare le risorse condivise: Dischi, cartelle (File Systems) Stampanti Scanner AICA © 2005

138 Politiche di accesso ai dati
Il file sharing: Condivisione pubblica o privata di dati Più utenti possono utilizzare contemporaneamte la stessa risorsa Gli utenti possono avere differenti privilegi Accesso ai dati DAC (Discretionary Access Control) : controllo di accesso discrezionale. Concessione e revoca dei diritti di accesso a discrezione degli utenti Utenti Gruppi di utenti AICA © 2005

139 Politeche di accesso ai dati
MAC (Mandatory Access Control) : controllo di accesso obbligatorio. Sistemi ad alta sicurezza Amministratore che definisce l’accesso a seconda del tipo risorsa e del livello di sicurezza desiderato. RBAC (Role-based Access Control) : controllo di accesso basato sui ruoli. Simile al MAC, ma l’accesso dipende dal ruolo dell’utente in quanto facente parte di un organizzazione. È l’organizzazione non l’individuo a possedere la risorsa. L’accesso avviene tramite procedura di logon User ID password AICA © 2005

140 Protocolli di accesso alle risorse
NFS : Network File system, sistemi Unix/Linux Supportato ancher da Dos, Windows e MacSO IPX : ambiente Novell Supportato ancher da Windows e linux NetBIOS, NETBEUI, SMB in ambiente Windows Supportati anche da Linux AppleShare : in ambiente MacOS Supportato ancher da WindowsNT/2000 e linux AICA © 2005

141 NFS NFS è un insieme di applicazioni client-server per la condivisione in rete di file system Server NFS: su di esso risiede fisicamente il disco in cui è presente il file system condiviso Client NFS: vede i file system condivisi dal server come se fossero file system locali Esempio: 1. il server “esporta” il file system /home 2. i client “montano” il file system remoto nella loro directory /home 3. ciascun utente può accedere da qualunque client alla stessa home directory AICA © 2005

142 Utilizzo tipico di NFS Per grandi organizzazioni conviene centralizzare e condividere file system contenenti informazioni o applicazioni utilizzate da numerosi utenti AICA © 2005

143 NetBIOS Network Basic Input Outpu System
Introdotto nel 1985 da IBM per comunicazione di PC in LAN Livello sessione Diverse implementazioni (Novell, MS), dipendenti dai livelli inferiori AICA © 2005

144 NetBIOS Serivizi di tipo connesso Servizi di Nome
Intercetta le chiamate di sistema verso risorse remote (redirector) Consente ad altri client di collegarsi alle risorse condivise (sever) Servizi di Nome Registrazione dei nomi e la ricerca dei computer in rete (browsing) AICA © 2005

145 NetBIOS su TCP/IP Windows supporta NetBIOS in almeno tre modalità
NetBIOS su NETBEUI (NBFrames) NetBIOS su IPX NetBIOS su TCP/IP Supportato anche da linux Vantaggio : condivisione di risorse tra piattaforme diverse AICA © 2005

146 SMB – Server Message Block
Protocollo di livello applicativo Fornisce comandi per lo scambio di informazioni tra PC Connessione Apertura, lettura, scrittura e chiusura Ricerca e creazione di directory Master Browser: Ogni PC trasmette periodicamente un pacchetto con il proprio nome e versione del software per farsi conoscere dalla rete Viene eletto master Browser chi ha la versione più alta Compiti del MB: Tiene traccia dei computer noti alla rete Lista a disposizione dei PC che vogliono collegarsi AICA © 2005

147 SMB – accesso a lle risorse
Condivisione delle risorse con protezione di accesso Livello condivisione : una singola password per tutti gli utenti del gruppo di lavoro Livello utente: l’utente puo accedere alla risorse solo se è registrati in un elenco AICA © 2005

148 Considerazioni Tutti i protocolli di condivisione utilizzano servizi inaffidabili NFS si appoggia su UDP AppleShare sua DDP Novell si appoggia direttamente a livello datalink (802.2, 802.3) Creti per lavorare in ambienete veloci ed affidabili (LAN) Non cooperano La tendenza è di incapsulare tutto in paccheti IP in modo da poter ottenere cooperazione tra i diversi protocolli Interoperabilità: Capacità di un sistema o prodotto di lavorare insieme ad altri sistemi o prodotti senza un particolare sforzo dal lato utente AICA © 2005

149 Considerazioni Esempi:
Servizi SMB lato Windos e SAMBA lato Linux/UNIX/MAcOSX AICA © 2005

150 Controllo di rete Reti sempre più complesse (numero di apparati connessi) Esigenza di controllare apparecchiature di rete senza dovervi accedere fisicamente Protocollo SNMP : Simple Network Management Protocolo Livello applicazione Gestione di reti TCP/IP Definisce una relazione client/server Client : network manager Server : agente SNMP Instaura connessione con il server che fornisce informazioni riguardo allo stato del dispositivo Utili per controllare switch e router Delicata gestione per evitare falle dal punti di vista della sicurezza AICA © 2005

151 SNMP I tre componenti fondamentali del framework SNMP sono:
master agent subagent Manager Ogni sistema gestito (per esempio un semplice nodo, un router, una stampante o qualsiasi altro dispositivo che fornisca una interfaccia di gestione SNMP) ospita un master agent e solitamente un certo numero di subagent. Il master agent ha almeno il ruolo di intermediario fra il manager (che è l'applicazione remota che prende le decisioni di gestione, per esempio sotto il controllo diretto dell'operatore umano) e i subagent (che sono gli esecutori di tali decisioni). AICA © 2005

152 SNMP Ciascun subagent è incaricato di attuare le decisioni di gestione nel contesto di un particolare sottosistema o relativamente a un particolare aspetto del sistema gestito. In sistemi che forniscono meccanismi di gestione particolarmente semplici, master agent e subagent possono confluire in un unico componente software capace sia di dialogare con il manager che di attuarne le decisioni; in questo caso si parlerà semplicemente di agent. AICA © 2005

153 SNMP SNMP utilizza una chiara separazione fra il protocollo di gestione e la struttura dell'oggetto gestito. Nell'architettura SNMP, per ogni sottosistema è definita una base dati detta MIB (Management Information Base), gestita dal corrispondente subagent, la quale rappresenta lo stato del sottosistema gestito, o meglio, una proiezione di tale stato limitata agli aspetti di cui si vuole consentire la gestione. Si tratta di una base dati che si potrebbe definire, mutuando un termine dalla riflessione, "causalmente connessa": in altre parole, ogni modifica alla MIB causa un corrispondente mutamento nello stato del sottosistema rappresentato, e viceversa. Garantire questa proprietà della MIB è la funzione principale del subagent che la gestisce. AICA © 2005

154 SNMP L'accesso alla MIB (in lettura e scrittura) rappresenta l'interfaccia fornita al manager per gestire il sistema. Ogni MIB, pur variando nei contenuti specifici, ha la medesima struttura generale e i medesimi meccanismi generali di accesso da parte del manager (lettura e scrittura dei dati). Grazie alla connessione causale della MIB, è quindi possibile al manager agire sullo stato del sottosistema in un modo che è largamente indipendente dalle procedure concrete che devono essere messe in atto (dal subagent) per estrarre le informazioni di stato rappresentate nella MIB, o attuare le modifiche di stato a seguito di cambiamenti dei contenuti della MIB. per esempio, si potrebbe avere un dato di MIB che rappresenta l'indirizzo IP del sistema gestito; per modificare tale indirizzo, al manager è sufficiente accedere alla MIB sovrascrivendo il dato corrispondente, prescindendo dei dettagli di come una tale modifica venga poi concretamente "attuata" sul sistema gestito. AICA © 2005

155 SNMP Più in dettaglio, il manager dialoga con i sistemi gestiti essenzialmente in due modi: invia richieste SNMP e riceve notifiche SNMP. Alcuni esempi di richieste sono: GET, usata per leggere uno o più dati di MIB GETNEXT, usata per leggere iterativamente una sequenza di dati di MIB GETBULK, usata per leggere con una sola richiesta grandi porzioni di MIB SET, usata per scrivere (modificare) uno o più dati di MIB Le notifiche sono messaggi asincroni inviati dall'agent per segnalare eventi occorsi nel sistema gestito (p.es. allarmi in caso di guasti). Le notifiche SNMP senza acknowledgement vengono comunemente chiamate trap, anche se la terminologia esatta varia a seconda della versione di SNMP in questione. Le notifiche SNMP con acknowledgment vengono chiamate inform. Tipicamente, SNMP utilizza le porte UDP 161 per l'agent e 162 per il manager. AICA © 2005

156 Thin Client Computer a basso costo (privi di CD-ROM, floppy)
Contengono un processore per immagini, dispositico di rete, video e audio Non necessita di un hard-disk Ridotte dimensioni (libro) Gestiti i maniera centralizzata Il client si collega ad un server che fornisce il software e il sistema opertivo AICA © 2005


Scaricare ppt "EUCIP IT Administrator Modulo 4 - Uso Esperto della Rete Livello Applicazione AICA © 2005."

Presentazioni simili


Annunci Google