Realizzato da Roberto Savino: 1 Reti di Calcolatori Seconda lezione.

Slides:



Advertisements
Presentazioni simili
Informazioni di base sul funzionamento
Advertisements

Prof. Carla Fanchin – L.S. Tron
Marco Panella La posta elettronica Marco Panella
Tecnologie. Reti locati e reti globali Reti locali (LAN, Local Area Networks) –Nodi su aree limitate (ufficio, piano, dipartimento) Reti globali (reti.
Elaborazione del Book Informatico
INTERNET : ARPA sviluppa ARPANET (rete di computer per scopi militari)
ING. CARLO MANFUCCI COMUNE DI GROSSETO
Posta Elettronica in Internet
DNS: Il Servizio Directory di Internet
I modelli di riferimento OSI e TCP/IP
La rete in dettaglio: rete esterna (edge): applicazioni e host
3-1 User Datagram Protocol: UDP Crediti Parte delle slide seguenti sono adattate dalla versione originale di J.F Kurose and K.W. Ross (© All.
2-1 Trasferimento di file: ftp Crediti Parte delle slide seguenti sono adattate dalla versione originale di J.F Kurose and K.W. Ross (© All Rights.
Come programmare servizi di rete?
Programmazione su Reti
Modello del sistema di posta Elettronica
Livello applicativo Obiettivi generali: Obiettivi specifici:
Architettura del World Wide Web
I protocolli TCP/UDP prof.: Alfio Lombardo.
Posta elettronica ( ) chiocciola" comunemente letta at Identificativo dellutente Identificativo del computer centrale sul quale risiede.
Corso di Informatica Corso di Laurea in Conservazione e Restauro dei Beni Culturali Gianluca Torta Dipartimento di Informatica Tel: Mail:
1 Protocollo di comunicazione. 2 Reti eterogenee.
Marco Panella La posta elettronica Marco Panella
Il protocollo ftp.
23 novembre 2000IAT-CNR Progetto Biblio MIME 1 Consiglio Nazionale delle Ricerche Area di Ricerca di Bologna Istituto per le Applicazioni Telematiche di.
C Consiglio Nazionale delle Ricerche DNS e Posta Elettronica: evoluzione dei servizi Marina Buzzi Marina Buzzi Istituto per le Applicazioni Telematiche.
RETI E INTERNET.
AICA Corso IT Administrator: modulo 5 AICA © EUCIP IT Administrator Modulo 5 - Sicurezza Informatica Esercitazione Alberto Bosio.
Concetti introduttivi
IL LIVELLO APPLICAZIONI:
Posta elettronica : per iniziare : per iniziare Primi passi con la posta elettronica Primi passi con la posta elettronica
4 Cosa è una rete? ã Punto di vista logico: sistema di dati ed utenti distribuito ã Punto di vista fisico: insieme di hardware, collegamenti, e protocolli.
Corso di Informatica per Giurisprudenza Lezione 7
POSTA ELETTRONICA PER GLI STUDENTI DI ECONOMIA POSTA SU HOST b Host e terminali La base dati dei messaggi risiede sul mainframeLa base dati dei messaggi.
Cosa è una applicazione distribuita?
AICA Corso IT Administrator: modulo 4 AICA © EUCIP IT Administrator Modulo 4 - Uso Esperto della Rete Risoluzione dei Problemi e Analisi del Traffico.
1 Ripassino Reti di Computer Carasco 19/02/ Che cosa è una rete informatica? Una rete informatica è un insieme di computer connessi tra di loro.
Modulo 3 – U.D. 3 – Lez. 1 Ernesto Damiani - Sistemi di elaborazione dell'informazione.
Sistemi di elaborazione dellinformazione Modulo 3 -Protocolli applicativi Unità didattica 3 -Protocolli di posta elettronica Ernesto Damiani Lezione 2.
SERVER DI POSTA ELETTRONICA INTRANET
Le reti di calcolatori ©Apogeo 2004.
Corso di Laurea in Conservazione e Restauro dei Beni Culturali
Reti di Calcolatori ed Internet Fabio Massimo Zanzotto.
Internet.
L’architettura a strati
Come comunicano i processi ?
prof.ssa Giulia Quaglino
Distributed System ( )7 TCP/IP four-layer model.
FTP File Transfer Protocol
Creato da Riccardo Nuzzone
Procedure operative di sicurezza di un sistema informatizzato in un dipartimento servizi Corso aggiornamento ASUR10.
Greco Rodolfo 2002 Application Trasport Network Phisic HTTP IP UDPTCP DNS SNAP MAC ARP L’utente fa una richiesta di pagina.
Livello di trasporto Protocolli TCP e UDP.
1 Storia di Internet Internet non è un’invenzione degli anni ’90….. Nata dagli studi di un’agenzia detta ARPA (Advanced Research Projects Agency) Internet.
Informatica Lezione 10 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
Comunicazione nelle reti – protocolli
Modulo n – U.D. n – Lez. n Nome Cognome – titolo corso.
1 I protocolli di . 2 Posta elettronica Tre componenti: Tre componenti: user agentsuser agents mail serversmail servers Simple mail transfer protocol.
INTRODUZIONE A INTERNET
Sistemi di elaborazione dell’informazione Modulo 4 -Tecniche di programmazione distribuita Unità didattica 1 -Socket library Ernesto Damiani Lezione 1.
Servizi Internet Claudia Raibulet
Sistemi di elaborazione dell’informazione Modulo 3 -Protocolli applicativi Unità didattica 2 -Telnet, FTP e altri Ernesto Damiani Lezione 4 – Napster e.
Sistemi di elaborazione dell’informazione Modulo 3 -Protocolli applicativi Unità didattica 3 -Protocolli di posta elettronica Ernesto Damiani Lezione 3.
Strato di accesso alla rete (network access layer); comprende le funzioni che nel modello OSI sono comprese negli strati fisico, di collegamento e parte.
Sistemi e Tecnologie della Comunicazione
I NTERNET Rete interconnessa che permette il collegamento tra due host eterogenei, appartenenti a reti differenti separati anche da grande distanze. Internet.
Applicazione Presentazione Sessione Trasporto Rete Data link Fisico OSI Processo / Applicazione Trasporto Rete- Internet Interfaccia di.
INTERNET E INTRANET Classe VA SIA. La Storia di INTERNET ’ – ARPANET 1969 – anno di nascita università Michigan - Wayne 1970 – – INTERNET.
1 Il livello transport. Concetti fondamentali - Canale logico e canale fisico 2 Quando un segnale deve essere trasmesso, viene inviato su un Canale, cioè.
Socket programming in Java La realizzazione di un server in Java consente di scrivere una sola versione eseguibile su diverse piattaforme. Il linguaggio.
Transcript della presentazione:

Realizzato da Roberto Savino: 1 Reti di Calcolatori Seconda lezione

Realizzato da Roberto Savino: 2 Introduzione Obiettivi r Acquisire alcuni concetti di base sul livello applicazione Sommario: r Servizi forniti dal livello trasporto r Programmare i Socket in Java r Studio di un caso: SMTP

Realizzato da Roberto Savino: 3 Come creare un applicazione di rete Scrivere programmi che Girano su piattaforme differenti Comunicano attraverso la rete es., Web: Un software server comunica con i browser (clients) I router intermedi fanno solo da tramite e ignorano il reale contenuto dei pacchetti application transport network data link physical application transport network data link physical application transport network data link physical

Realizzato da Roberto Savino: 4 Le regole di internet r Ogni host possiede più interfacce di rete r Ogni interfaccia è associata a un un indirizzo IP nella forma (quattro byte separati da punti) r Ogni interfaccia possiede porte di ingresso r Spesso ad un indirizzo IP è associato un nome (es ) ma non necessariamente

Realizzato da Roberto Savino: 5 Scenario r iexplore.exe r winword.exe r apache.exe

Realizzato da Roberto Savino: 6 Alcune applicazioni di rete r r Web r Instant messaging r Remote login r P2P file sharing r Multi-user network games r Streaming stored video clips r Internet telephone r Real-time video conference r Massive parallel computing

Realizzato da Roberto Savino: 7 Architetture r Client-server r Peer-to-peer (P2P) r Ibrida ( P2P + Client/Server )

Realizzato da Roberto Savino: 8 Architettura Client/Server server: Sempre acceso Indirizzo IP fissato server farms for scaling clients: comunicano con il server si possono connettere a intermittenza Possono avere indirizzi IP dinamici Non comunicano tra loro direttamente

Realizzato da Roberto Savino: 9 Pure P2P architecture r non serve necessariamente un server r i sistemi comunicano direttamente tra loro r i peer possono addirittura cambiare indirizzo IP r Esempio: la rete Gnutella Molto scalabile Tantissimi problemi tecnici da risolvere (non tutti ancora risolti)

Realizzato da Roberto Savino: 10 Architetture ibride Napster Il trasferimento è P2P La ricerca dei file era centralizzata, invece: I peer registravano i nomi dei file su un server centrale I peer interrogavano il server centrale Messaggeria istantanea La chat avviene in modalità P2P Il rilevamento della presenza on-line è centralizzato: Quando si va on-line viene registrato lIP/porta attuale su un server centrale Gli utenti contattano il server centrale per sapere chi è on- line e su che indirizzo/porta è reperibile.

Realizzato da Roberto Savino: 11 La comunicazione avviene tra processi!! r Allinterno dello stesso host i processi possono comunicare con tecniche varie (IPC) r Se i processi sono su diversi host, devono usare un sistema a messaggi Processo Client: E il processo che inizia la comunicazione (dice ou! ) Processo Server: processo che aspetta per essere contattato r N.B.: Le applicazioni P2P hanno sia thread client che thread server.

Realizzato da Roberto Savino: 12 I Socket r Un processo invia e riceve messaggi attraverso i suoi socket r Il socket è simile a un ingresso/uscita verso il mondo esterno Linvio si affida allinfrastruttura offerta dallo strato di trasporto processo TCP/UDP socket host o server processo TCP/UDP socket host o server Internet controllato dal sistema operativo controllato dal programmatore r Funzioni di libreria Java: (1) Scelta del protocollo tra TCP o UDP; (2) Possibilità di scegliere solo pochi parametri

Realizzato da Roberto Savino: 13 Indirizzamento r Ogni processo deve potere identificare i propri socket r Non basta lIP dellinterfaccia (anche se magari è unica) r Il socket è identificato da una coppia IP:PORTA r Esempio: :80

Realizzato da Roberto Savino: 14 Cosa definiscono i protocolli Applicazione r Il tipo di messaggi scambiati r La sintassi: che informazioni scambiarsi e in che formato r La semantica dei messaggi: cosa significa ciascun campo? r Le regole su come e quando certi messaggi devono essere scambiati Protocolli di pubblico dominio: r definiti nelle RFC r es., HTTP, SMTP Protocolli proprietari: r es., KaZaA

Realizzato da Roberto Savino: 15 Esigenze di un protocollo applicazione Affidabilità r Fatte salvo le applicazioni multimediali le altre applicazioni non tollerano che si perdano dei dati Tempo di risposta r A seconda dellapplicazione, il ritardo può essere un problema Banda r Ci sono applicazioni che si arrangiano con la banda che trovano, altre molto esigenti

Realizzato da Roberto Savino: 16 Esigenze delle applicazioni più comuni Applicazione file transfer Web documents real-time audio/video stored audio/video interactive games instant messaging Affidabilità no loss loss-tolerant no loss Banda elastic audio: 5kbps-1Mbps video:10kbps-5Mbps same as above few kbps up elastic Latenza no yes, 100s msec yes, few secs yes, 100s msec yes and no Cè un altro parametro che è molto importante: il JITTER

Realizzato da Roberto Savino: 17 Servizi a disposizione Servizio TCP: r Con connessione: e necessaria una fase di set up per aprire una connessione r Affidabile: il programmatore può assumere (+ o -) che il canale sia affidabile r Controllo di flusso e congestione: i pacchetti arrivano in ordine e non bisogna pensare al fatto che si producono troppi dati, basta inviare r Cosa non cè: nessuna garanzia su latenza e banda Servizio UDP: r Trasferimento non affidabile tra mittende e destinatario r Non fornisce: connessione, affidabilità, controllo di flusso e congestione, garanzie di latenza o banda, sequenza di arrivo Q: Perchè UDP allora?

Realizzato da Roberto Savino: 18 Alcuni protocolli standard Application remote terminal access Web file transfer streaming multimedia Internet telephony Application layer protocol SMTP [RFC 2821] Telnet [RFC 854], SSH HTTP [RFC 2616] FTP [RFC 959] RTP [RFC 1889] proprietary (es., Vonage,Dialpad Skype) Underlying transport protocol TCP TCP or UDP typically UDP

Realizzato da Roberto Savino: 19 La posta elettronica Tre componenti: r Client di posta (Outlook, Eudora, ecc.) r Server di posta r Il Simple Mail Transfer Protocol: SMTP r Protocolli per la lettura: IMAP, POP3 r Meccanismo: i messaggi in arrivi risiedono sul server, dove è presente una mailbox Mailbox utente Coda dei messaggi in uscita mail server user agent user agent user agent mail server user agent user agent mail server user agent SMTP SMTP POP3/IMAP

Realizzato da Roberto Savino: 20 Cosa fanno i mail server Mail Servers r Le mailbox accumulano i messaggi destinati agli utenti r Cè una coda dei messaggi per i messaggi in partenza r SMTP regola la comunicazione tra i server client: mail server che invia server: mail server che riceve mail server user agent user agent user agent mail server user agent user agent mail server user agent SMTP

Realizzato da Roberto Savino: 21 SMTP [RFC 2821] r usa TCP per trasferire dai client ai server, attivi sulla porta 25 r Trasferimento diretto da mittente a destinatario r Tre fasi nel trasferimento handshaking (saluti) trasferimento dei messaggi saluti r Formato: comandi: testo ASCII leggibile! risposta: un codice di errore e una frase r I messaggi accettano solo ASCII a 7-bit!

Realizzato da Roberto Savino: 22 Scenario: Alice manda messaggio a Bob 1) Alice usa Outlook per comporre il messaggio a 2) Outlook manda il messaggio al suo mail server; il messaggio è messo in coda 3) Il mail server (nel ruolo di client) apre una connessione con il mail server di Bob 4) Il messaggio è inviato tramite una connessione TCP 5) Il mail server di Bob salva il messaggio nella sua mailbox 6) A un certo punto Bob deciderà di connettersi al mail server usando un protocollo per la LETTURA dei messaggi user agent mail server mail server user agent

Realizzato da Roberto Savino: 23 Una interazione di esempio S: 220 hamburger.edu C: HELO crepes.fr S: 250 Hello crepes.fr, pleased to meet you C: MAIL FROM: S: 250 Sender ok C: RCPT TO: S: 250 Recipient ok C: DATA S: 354 Enter mail, end with "." on a line by itself C: Do you like ketchup? C: How about pickles? C:. S: 250 Message accepted for delivery C: QUIT S: 221 hamburger.edu closing connection

Realizzato da Roberto Savino: 24 Possiamo farlo da soli! telnet servername 25 r see 220 reply from server r enter HELO, MAIL FROM, RCPT TO, DATA, QUIT commands above lets you send without using client (reader)

Realizzato da Roberto Savino: 25 SMTP: Alcune considerazioni r SMTP usa connessioni TCP r SMTP usa il formato ASCII a 7 bit SMTP usa CRLF.CRLF per determinare la fine di un messaggio r SICUREZZA, AUTENTICAZIONE, CREDIBILITA? Rispetto a HTTP: r HTTP: pull r SMTP: push r Entrambi funzionano con comandi ASCII facilmente interpretabili r HTTP: Ogni oggetto viaggia di solito con una connessione separata r SMTP: tutti gli allegati viaggiano in sequenza sulla stessa connessione

Realizzato da Roberto Savino: 26 Formato dei messaggi RFC 822: standard for text message format: r Intestazioni, e.g., To: From: Subject: differenti dai comandi SMTP ! r body il messaggio, solo caratteri ASCII validi header body Linea Vuota

Realizzato da Roberto Savino: 27 Formato: estensioni r MIME: multimedia mail extension, RFC 2045, 2056 r delle linee addizionali nel testo dichiarano il tipo di contenuto MIME From: To: Subject: Picture of yummy crepe. MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Type: image/jpeg base64 encoded data base64 encoded data tipo e sottotipo dei dati trasferiti, possibili parametri Metodo usato per la codifica versions MIME dati codificati

Realizzato da Roberto Savino: 28 Protocolli di lettura della posta r SMTP: serve solo per la trasmissione non per la consultazione r Mail access protocol: lettura dal server POP: Post Office Protocol [RFC 1939] autorizzazione (agent server) e download IMAP: Internet Mail Access Protocol [RFC 1730] più sofisticato si possono manipolare i messaggi sul server HTTP: Hotmail, Yahoo! Mail, etc. user agent Mail server del mittente user agent SMTP access protocol Mail server del destinatario

Realizzato da Roberto Savino: 29 Protocollo POP3 Fase di autorizzazione r comandi: user: nome utente pass: password r risposte +OK -ERR Fase di lettura, client: list: elenca i numeri di messaggi retr: recupera il messaggio in base al numero dele: cancella r quit C: list S: S: S:. C: retr 1 S: S:. C: dele 1 C: retr 2 S: S:. C: dele 2 C: quit S: +OK POP3 server signing off S: +OK POP3 server ready C: user bob S: +OK C: pass hungry S: +OK user successfully logged on

Realizzato da Roberto Savino: 30 Ancora su POP3 e IMAP Ancora su POP3 r Il precedente esempio usa una modalità leggi e cancella ma non è necessario IMAP r Tutti i messaggi restano sul server r Si possono creare cartelle

Realizzato da Roberto Savino: 31 DNS: Root name servers r contacted by local name server that can not resolve name r root name server: contacts authoritative name server if name mapping not known gets mapping returns mapping to local name server 13 root name servers worldwide b USC-ISI Marina del Rey, CA l ICANN Los Angeles, CA e NASA Mt View, CA f Internet Software C. Palo Alto, CA (and 17 other locations) i Autonomica, Stockholm (plus 3 other locations) k RIPE London (also Amsterdam, Frankfurt) m WIDE Tokyo a Verisign, Dulles, VA c Cogent, Herndon, VA (also Los Angeles) d U Maryland College Park, MD g US DoD Vienna, VA h ARL Aberdeen, MD j Verisign, ( 11 locations)

Realizzato da Roberto Savino: 32 Come si programmano i socket TCP Il client deve contattare il server r Il programma server deve essere già attivo e avere collegato il socket a una porta, il cui numero deve essere noto al client Come fa il client a connettersi al server: r Crea un socket TCP e indica a che IP:porta vuole connetterlo r Allatto della creazione il livello trasporto si occupa di stabilire una connessione r Quando viene contattato, il server crea una connessione per rispondere. un server può parlare con più client sulla stessa porta I client sono distinti tramite il loro numero di ip/porta

Realizzato da Roberto Savino: 33 Terminologia r Uno stream è una sequenza di caratteri che entrano o escono da un processo. r Uno stream di input è collegato a una qualche sorgente di input, es. tastiera, socket r Uno stream di output è collegato a una sorgente di output es. schermo, socket.

Realizzato da Roberto Savino: 34 Esempio di programmazione Esempio di applicazione client-server: 1) il client legge una linea da stdin (lo stream inFromUser ), e la manda al server (tramite lo stream outToServer ) 2) Il server legge una linea dal socket 3) Il server converte la linea in maiuscole e poi la manda al client così modificata 4) Il client legge la linea elaborata e la manda in output (tramite lo stream inFromServer ) Processo Client client TCP socket

Realizzato da Roberto Savino: 35 Cosa succede wait for incoming connection request connectionSocket = welcomeSocket.accept() Crea un socket, port= x, per eventuali richieste: welcomeSocket = ServerSocket() crea socket, Si connette a hostid, port= x clientSocket = Socket() Chiude connectionSocket Legge risposta da clientSocket Chiude clientSocket Server (running on hostid ) Client Invia richiesta usando clientSocket Legge richiesta da connectionSocket Scrive richiesta a connectionSocket TCP connection setup