Livello Applicazione Nella architettura TCP/IP è il livello 5 diverse tipologie di oggetti: protocolli di supporto a tutte le applicazioni, es: DNS (Domain Name System) protocolli di supporto ad applicazioni di tipo standard, es: SNMP (Simple Network Management Protocol) gestione della rete FTP (File Transfer Protocol) per trasferimento di file SMTP e POP3 (Simple Mail Transfer Protocol e Post Office Protocol) per posta elettronica HTTP (HyperText Transfer Protocol) base del World Wide Web applicazioni scritte in conformità ai protocolli sopra applicazioni proprietarie, basate su regole di dialogo private (es: un'applicazione di tipo client/server per la gestione remota di un magazzino) RT6.1 DNS Identificazione di oggetti tramite nomi logici DNS (Domani Name System) : traduzione indirizzo IP - nome logico Si basa su - schema gerarchico di nominazione, basato sul concetto di dominio (domain) - database distribuito che implementa lo schema di nominazione - protocollo per il mantenimento e la distribuzione delle informazioni sulle corrispondenze Lo spazio dei nomi DNS è uno spazio gerarchico, organizzato in dominii, eventualmente con sottodominii Insiemi di dominii di massimo livello (top-level domain) Es. nome logico di host; sottostringhe separate da punti host.subdomain3.subdomain2.subdomain1.topleveldomain Cammino inverso dalla foglia -radice Domini top-level generico o nazionali (uno per nazione); in US: com aziende mil istituzioni militari edu università net fornitori d'accesso gov istituzioni governative org organizzazioni non-profit RT6.2 1
DNS - domini Funzionamento: l'applicazione chiede di collegarsi ad una risorsa inviando il nome logico in una richiesta al DNS server locale (procedura resolver) il DNS server locale, se conosce la risposta, la invia direttamente al richiedente, altrimenti interroga a sua volta un DNS server di livello superiore, etc. Quando arriva la risposta, il DNS server locale la passa al richiedente quando l'applicazione riceve la risposta (costituita dal numero IP della risorsa chiesta) crea una connessione TCP con la (o spedisce segmenti UDP alla) destinazione, usando l'indirizzo IP appena ricevuto Ogni dominio - è responsabile dei sottodomini - fornisce il servizio DNS per gli host nel dominio Es: unive.it Università di Venezia dsi.unive.it Dipartimento di Informatica, Univ. Di Venezia cnr.it, infn.it CNR, INFN nasa.gov NASA, US RT6.3 DNS - name server Name server: processo che gestisce le informazioni: di corrispondenza fra nomi simbolici e indirizzi IP: host del dominio esiste un resource record - detto authoritative record - gestito dal DNS server responsabile del dominio (informazioni corrette e aggiornate) l'identità dei name server responsabili dei sottodominii inclusi nel dominio, così da poter inviare loro le richieste che gli pervengono dall'alto della gerarchia l'identità del name server responsabile del dominio di livello immediatamente superiore, così da potergli inviare le richieste che gli pervengono dal basso della gerarchia Una richiesta che arriva a un name server può viaggiare verso l'alto o il basso nella gerarchia La risposta viene tenuta dal server in una sua cache per un certo periodo - cached record - informazione che potrebbe divenire obsoleta e scorretta Spazio dei nomi partizionato in zone Name server principali e secondari RT6.4 2
SNMP (Simple Network Management Protocol) Gestione e controllo della rete Standard di fatto, poi RFC 1157 (1990) Componenti del modello SNMP Nodi gestiti (host, router, bridge, stampanti, ) Stazioni di gestione Informazioni di gestione Un protocollo di gestione Un nodo gestito direttamente da SNMP esegue un processo detto agente SNMP Gestione della rete: stazioni di gestione, normali nodi che eseguono sw speciale di gestione; uno/più processi che comunicano con agenti sulla rete, inviando comandi e ricevendo risposte Interfaccia grafica per permettere al gestore il controllo dello stato della rete ed eventualmente intervenire Servizio per sistemisti RT6.5 Servizi Internet Servizio Internet: architettura software basata su un protocollo applicazione su TCP/IP Sincrono attività simultanea tra i siti, basato su sessione Asincrono non richiede interattività simultanea Es: Servizi Asincroni Sincroni Tracciamento finger ping Comunicazione e-mail, news Irc, chat Cooperazione ftp, www napster Coordinazione e-commerce MUD Servizi di tracciamento: verifica dell esistenza e connessione di un account o host su Internet Servizi di comunicazione: per scambio messaggi, flussi di dati o programmi fra due o più corrispondenti Servizi di cooperazione: condivisione e modifica di risorse condivise (dati, programmi, documenti) fra più corrispondenti Servizi di coordinazione: attività concordata di persone, servizi o programmi RT6.6 3
Servizio posta elettronica Sistema di posta elettronica: permette la comunicazione asincrona uno-auno o uno-a-molti (mailing list) Servizio molto consolidato ed usato operazioni: Composizione di un messaggio spedizione del messaggio (a uno o più destinatari) ricezione di messaggi da altri utenti Lettura di messaggi ricevuti stampa, memorizzazione, eliminazione di messaggi spediti o ricevuti Protocollo di trasmissione (RFC 821) Formato del messaggio predefinito Formato Internet (RFC 822) : header e body separati da una linea vuota header : serie di linee, ciascuna relativa a una specifica informazione (identificata da una parola chiave - la prima : Date, To, From, Cc, Bcc, Subject, Sender, Reply-To, Subject, Message-Id, Return-Path, Errors-To...) Body: caratteri ASCII RT6.7 Posta elettronica: formato e componenti Formati di indirizzo nome@hostname Nome: stringa, hostname: indirizzo-dominio-di -internet (nome DNS o indirizzo IP) Es: balsamo@dsi.unive.it Indirizzo fornito da ISP (Internet Service Provider) o da altri che supportano: - banda di comunicazione verso Internet e verso gli utenti - tempo di calcolo dei processi serventi le mailbox - spazio disco per memorizzare i messaggi implementzione tramite la cooperazione di due tipi di sottosistemi Mail User Agent (MUA) Mail Transport Agent (MTA) MUA permette all'utente finale di comporre messaggi consegnarli a un MTA per la trasmissione ricevere e leggere messaggi salvarli o eliminarli MTA Trasporto e consegna a MTA risposta ai MUA utente controllo accesso RT6.8 4
Posta elettronica: protocolli Ogni MUA va configurato prima dell uso La spedizione si basa su MTA Es.: MUA Eudora MUA Outlook MTA (sendmail) SMTP (TCP/IP) MTA (sendmail) SMTP (Simple Mail Transfer Protocol, RFC 821) trasporto dei messaggi dal MUA di origine ad un MTA fra vari MTA, da origine a quello di destinazione POP3 (Post Office Protocol versione 3, RFC 1225) consegna di un messaggio da parte di un MTA al MUA di destinazione Più recentemente altri protocolli più sofisticati IMAP (Interactive Mail Acces Protocol, RFC 1064) DMSP (Distributed Mail System Protocol, RFC 1056) RT6.9 Modello Spool Mbox MS UA User Database Mailer Resolver LNS Name Server System MTA 1 MTA 2... MTA n Interfaccia Supporto 1 Supporto 2... Supporto n MS Message Store LNS local Name Server UA User Agent MTA Message Transfer Agent RT6.10 5
Esempio Alice@host1.it domini Barbara@host2.it Alice Host1 Barbara Host2 MUA 1 MUA 2 SMTP Server POP3 Server MTA 1 MTA 2 mailer.host1 mailer.host2 - Alice compone il messaggio con MUA1 - send -> MUA1 -> DNS per IP addr del mailer.host1.it -> apre connessione TCP e conversazione SMTP con SMTP server -> consegna messaggio e chiude - SMTP Server -> DNS per IP addr di host2.it->mailer.host2.it -> apre connessione TCP e conversazione SMTP con server e consegna il messaggio - Barbara lancia check mail -> MUA2 -> DNS per IP addr del mailer.host2.it -> apre connessione TCP e conversazione POP3 con POP server su mailer.host2, preleva e mostra il mess. a Barbara RT6.11 Estensioni MIME host1.it, host2.it sono dominii e non singoli host indirizzi di posta elettronica indipendenti da variazioni di numero, nomi logici e indirizzi IP degli host nel dominio MX (Mail Exchange) record nel DNS per indicare quale host fa effettivamente da server SMTP per un dominio Possibili collegamenti fra server tramite server SMTP intermedi Estensioni di funzionalità della posta elettronica: MIME (Multipurpose Internet Mail Extension, RFC 1341 e 1521) definisce la struttura del contenuto per inviare messaggi di posta contenenti informazioni di qualunque tipo (programmi eseguibili, immagini, video, audio, ecc.) - sezioni e tipi e sottotipi messaggi con caratteri accentati in alfabeti non latini (es ebraico, russo) linguaggi non alfabetici (es giapponese) non solo testo S/MIME (Secure/MIME, RFC 1847) possibilità di inviare messaggi corredati di firma digitale o crittografati, autenticazione RT6.12 6
Trasferimento messaggi - SMTP - La posta viene trasferita quando la macchina mittente ha stabilito una connessione TCP alla porta 25 della macchina destinataria - Su tale porta è in ascolto un demone con protocollo SMTP: accetta connessioni in arrivo e copia i messaggi nelle caselle postali destinatarie - Se non si può spedire un m. viene restituita una notifica al mittente SMTP protocollo basato su ASCII - stabilita la connessione opera come client e attende il destinatario server - il server con una linea di testo indica se è pronto o no a ricevere - se no, il cliente rilascia la connessione e riprova dopo - se sì, il cliente annuncia mittente e destinatario del messaggio - se il destinatario è noto, il server permette al cliente di proseguire - il cliente invia il messaggio e il server conferma Problemi possibili: - lunghezza messaggio (entro 64KB per alcuni mailer) - timeout diversi di cliente e servente - possibile terminazione inattesa - possibile traffico infinito ---- estensione ESMTP RT6.13 POP - IMAP Post Offoce Protocol (RFC 1225) - Protocollo di lettura della posta Comandi di connessione, disconnessione, recupero messaggi, cancellazione Recupero dei messaggi dalla casella remota e memorizzazione nella macchina locale per lettura off-line Interactive Mail Access Protocol (IMAP RFC 1225) più sofisticato, per gestione da diversi computer Il mail server conserva un deposito centrale accessibile da ogni macchina cliente. Non copia come IMAP la posta nella macchina cliente. Gestione on-line Es.: Cliente POP3 Cliente IMAP4 POP3 Server POP3 SMTP IMAP4 Server IMAP4 RT6.14 7
Gestione automatica - altri servizi - Uso di filtri: insieme di regole verificate dal cliente all arrivo di un messaggio Es: salvataggio automatico, visualizzazione particolare, eliminazione Esempio di funzionalità dal lato cliente - forwarding reinstradamento della posta in arrivo ad un diverso indirizzo - demone di vacanza in assenza del destinatario risponde a tutti con un messaggio predefinito Funzionalità dal lato server: on-line Mailing list servizio di comunicazione uno-a-molti - gestione manuale con un moderatore - gestione automatica da un servizio che accetta iscrizioni via mail Comunicazione in rete sistema di chat: servizio di comunicazione sincrona punto-a-punto (talk) broadcast (IRC-Internet Relay Chat) IRC usabile per conferenza multivoci o per conversazione privata su canale riservato RT6.15 Altri servizi di comunicazione USENET News applicazione: sistema di notiziari organizzati gerarchicamente non usa mailing list, ma memorizzazione in directory speciali, aggiornate periodicamente Es: Comp computer science, ricerca e indistria informatica Sci Scienze fisiche ed ingegneristiche Humanities Letteratira e studi umanistici News Discussioni su USENET Rec Attività ricreative, sport, musica Soc Socializzazione ed argomenti sociali Es. di Sottolivelli Comp.ai Intelligenza Artificiale News.lists Elenchi di gruppi USNET It.libri recensioni di libri NNTP Network News Tranfer Protocol protocollo simile a SMTP, il cliente invia comandi in ASCII; permette lettura in remoto - a richiesta (il cliente chiama) - a invio (il cliente è chiamato) RT6.16 8
Servizi multimediali - formati Documenti multimediali interattivi integrano diverse modalità di comunicazione e consentono l interazione con l utente Servizio WWW - uso di formati HTML (scarse capacità grafiche, audio, video e interattive) - uso di Java e JavaScript Pochi standard de jure. Vari standard di fatto Es: Quicktime, Flash e Shockwave, RealPlayer, CosmoPlayer-VRML Formati audio più diffusi:.mid (MIDI, istruzioni eseguibili per strumenti musicali elettronici, 1min=ca 10KB).wav (onde sonore, varie qualità, 1 min qualità CD= ca 1MB).mp3 (formato compresso di qualità quasi CD, 1 min qualità CD= ca 1MB).aif (Audio Interchange File, con varianti compresse).ra (real audio per trasmissione Internet a banda stretta) MPEG Moving Picture Espert Group - codifica di video e audio compressi vari standard ISO : Mpeg-1 per audio stereo e video, 3 livelli di compressione Mpeg-2 audio multicanale per Home Cinema campionato a 24KHz MP3 è Mpeg-2 livello 3 Mpeg-4 specifica di standard per multimedia su WWW RT6.17 Servizi e formati Formati grafici - GIF su 256 colori, compresso senza perdita di informazione - JPEG su milioni di colori, compresso con perdita di informazione - animazione GIF visualizzazione sequenziale di GIF Streaming Trasmissione audio e video su Internet per fruizione in diretta viene definita streaming RealPlayer dal 1995 (RealNetworks), versione 8 nel 2000 MediaPlayer (Microsoft) versione 7 nel 2000 QuickTime (Apple) versione 4 nel 1999 - mutipiattaforma, supporta vari tipi di contenuto )testo, immagini ferme, 3-D e Virtual Reality) Servizi video di rete Streaming video WebCam... RT6.18 9
HTTP Protocollo cliente-servente progettato per la distribuzione rapida di documenti ipertestuali Protocollo senza connessione (non c è memoria di sessione) Es: un server HTTP che invia un documento con 10 immagini necessita di 11 connessioni Risorse specificate da URL Protocollo simile a FSP (variante FTP senza stato) - può restituire ai clienti sia file sia dati generati da processi che girano lato servente - può leggere dati provenienti dal cliente e passarli ad altri processi lato servente per elaborazioni successive I programmi lato-servente (server-side) detti gateway programs, si comportano come canali tra HTTP server e altre risorse locali (es. database) Interazione servente-gateway program definita in linguaggio script CGI Es: username e pwd richieste in una FORM HTML, informazioni passate dal server al programma CGI, che risponde con un altra FORM che permette altre richieste e che codifica lo stato della sessione (informazioni fra cliente e servente) RT6.19 HTTP Non solo per Web - Prima parola sulla linea di richiesta: metodo (comando da eseguire su un oggetto generico - es. pagina web) Metodo GET richiede la lettura di una pagina POST appende un oggetto PUT chiede la memorizzazione HEAD chiede la lettura di un intestazione DELETE cancella una pagina LINK/UNLINK crea/interrompe una connessione fra due oggetti richiesta -> risposta, codici OK (200) o di errore es non modificabile (304), richiesta non corretta (400), proibito (403) Browser HTTP HTTP Client Java VM HTTP Server CGI File HTML CGI Scripts RT6.20 10
CGI - Web e servizi CGI è un inguaggio di programmazione (script language) standard per comunicazione HTTP server e programmi gateway server-side Questi in un linguaggio di programmazione qualsiaisi (C, Pascal, Java) o in linguaggio script (perl, tcl/tk, JavaScript) CGI usa meccanismi Unix per trasmettere dati dal server ai programmi Servizi su WWW - posta elettronica - ftp, news, chat - radio, tv - telefono, fax - e-commence - aste - trading on line - motori di ricerca, varie opzioni di ricerca - basati su spider (algoritmici) - metodo di lavoro - basati su directories - risultato di lavoro motori algortmici vs ontologici motori sintattici vs semantici RT6.21 Sicurezza su Web Browser e server WWW - problemi di sicurezza - autenticazione - privacy - protezione da intrusioni maliziose WWW per e-commerce: si richiede - esecuzione di programmi lato server (dati inseriti in FORM HTML lato cliente e inviati al server che li usa e risponde) - esecuzione di programmi lato client (es. gestione firma digitale o moneta elettronica) Approcci alla sicurezza per e-commerce - protezione di risorse - servizi sicuri - certificazione delle transazioni RT6.22 11