Introduzione alle applicazioni di rete

Documenti analoghi
MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

Programmazione dei socket con TCP #2

Reti di Telecomunicazione Lezione 6

Cenni di programmazione distribuita in C++ Mauro Piccolo

I Socket. Laboratorio Software M. Grotto R. Farina

TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI

Introduzione. Livello applicativo Principi delle applicazioni di rete. Stack protocollare Gerarchia di protocolli Servizi e primitive di servizio 2-1

UDP. Livello di Trasporto. Demultiplexing dei Messaggi. Esempio di Demultiplexing

Una prima applicazione in C per l utilizzo delle socket

Nelle reti di calcolatori, le porte (traduzione impropria del termine. port inglese, che in realtà significa porto) sono lo strumento

HTTP adaptation layer per generico protocollo di scambio dati

Laboratorio di Programmazione in rete

2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine.

Introduzione. Sommario: Obiettivo:

Transmission Control Protocol

PARTE 1 richiami. SUITE PROTOCOLLI TCP/IP ( I protocolli di Internet )

Reti di Telecomunicazione Lezione 8

Socket & RMI Ingegneria del Software - San Pietro

Introduzione alla rete Internet

Dal protocollo IP ai livelli superiori

Introduzione alla rete Internet

Introduzione alla rete Internet

La sicurezza nel Web

Interprocess Communications - II. Franco Maria Nardini

Programmazione in Rete

Altri tipi di connessione

Lo scenario: la definizione di Internet

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00

Reti di Calcolatori:

Standard di comunicazione

Gestione degli indirizzi

Elementi di Informatica e Programmazione

Informatica per la comunicazione" - lezione 8 -

Architettura del. Sintesi dei livelli di rete. Livelli di trasporto e inferiori (Livelli 1-4)

Sistemi Operativi (modulo di Informatica II)

Approfondimento di Marco Mulas

Comunicazione tra Processi

Comunicazione tra Processi

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base

L API socket ed i daemon

Esercizio 2. Client e server comunicano attraverso socket TCP

Le Reti Informatiche

Livello di Trasporto

Informatica per la comunicazione" - lezione 9 -

DOMOTICA ED EDIFICI INTELLIGENTI UNIVERSITA DI URBINO

INFORMATICA DISTRIBUITA. lez 4 Livello applicazione

Software di gestione della stampante

Corso Web programming

Il client deve stampare tutti gli eventuali errori che si possono verificare durante l esecuzione.

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

Programmazione in Rete

Elementi di Informatica e Programmazione

Protocolli applicativi: FTP

Elementi sull uso dei firewall

Reti: cenni storici. Who s who

Telematica II 12. Esercitazione/Laboratorio 4

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione

OSOR. Applicazioni di Rete

SUITE PROTOCOLLI TCP/IP ( I protocolli di Internet )

Telematica II 17. Esercitazione/Laboratorio 6

DATAGRAM SOCKET. Angelastro Sergio Diomede Antonio Viterbo Tommaso

Università degli Studi di Pisa Dipartimento di Informatica. NAT & Firewalls

Controllo Winsock di Visual Basic

J+... J+3 J+2 J+1 K+1 K+2 K+3 K+...

SISTEMI OPERATIVI DISTRIBUITI

I canali di comunicazione

Le reti. Introduzione al concetto di rete. Classificazioni in base a

Lezione 1 Introduzione

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00

Siti web centrati sui dati (Data-centric web applications)

Inizializzazione degli Host. BOOTP e DHCP

Gestione degli indirizzi

Oreste Signore, Responsabile Ufficio Italiano W3C Area della Ricerca CNR - via Moruzzi, Pisa

RETI INFORMATICHE Client-Server e reti paritetiche

T42 Tunnel For Two Secure SSL InterApplication Relay Clizio Merli - 4u Srl S.r.l.

Reti di Telecomunicazione Lezione 7

Sistemi Operativi. Conclusioni e nuove frontiere

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni client

Paradigma client-server

COMUNICAZIONE TRA PROCESSI REMOTI IN UNIX

FTP. Appunti a cura del prof. ing. Mario Catalano

I sistemi distribuiti

Applicazioni web centrati sui dati (Data-centric web applications)

Aspetti SW delle reti di calcolatori. L architettura del sistema. La struttura di Internet 22/04/2011

Internet e protocollo TCP/IP

La sicurezza delle reti

1. RETI INFORMATICHE CORSO DI LAUREA IN INGEGNERIA INFORMATICA SPECIFICHE DI PROGETTO A.A. 2013/ Lato client

Modelli e Sistemi di Elaborazione Peer-to-Peer

Elementi di Informatica e Programmazione

Protocolli di rete. Vittorio Maniezzo Università di Bologna. Vittorio Maniezzo Università di Bologna 02 Protocolli - 2/30

Indirizzi Internet e. I livelli di trasporto delle informazioni. Comunicazione e naming in Internet

Socket TCP. seconda parte

Esercitazioni - 2. Corso Reti ed Applicazioni Mauro Campanella Como 2003

NAS 224 Accesso remoto Configurazione manuale

T E O R I A D I P R O G E T T A Z I O N E D E L S O F T W A R E

Reti e Internet: introduzione

Livello di Applicazione in Internet

Esercitazione [6] Client/Server con Socket

Topologia delle reti. Rete Multipoint: ogni nodo è connesso agli altri tramite nodi intermedi (rete gerarchica).

Transcript:

Introduzione alle applicazioni di rete Definizioni base Modelli client-server e peer-to-peer Socket API Scelta del tipo di servizio Indirizzamento dei processi Identificazione di un servizio Concorrenza nei server Interazione client/server orientata alla connessione e senza connessione Collaudo di applicazioni di rete Definizioni base Applicazione di rete (distribuita) Fornisce/realizza un servizio per un utente finale Composta da più programmi in esecuzione (processi) su host diversi Client: processo che inizia la comunicazione Server: processo che aspetta di essere contattato Applicazione Internet La comunicazione tra processi è basata sui servizi di rete e trasporto di Internet Può essere basata su protocolli di livello applicazione protocolli pubblici o privati servizi via socket API Può essere invece basata su scambio di messaggi RPC: chiamata di procedura remota Varianti RPC: Java RMI,.Net Remoting, Web services SOAP Applicazione conforme a standard Internet Protocolli pubblici descritti da Request for Comments (RFC) e gestiti dall Internet Engineering Task Force (IETF) Esempi: FTP (file transfer), SMTP (email), HTTP (web), IRC (chat) 1

Modello client-server Molte applicazioni di rete usano come modello di interazione il modello client-server Il server offre un servizio (accesso alle risorse condivise) su richiesta (attesa passiva) Il client richiede un servizio iniziando la comunicazione Interazione asimmetrica Interazione sincrona: richiesta-risposta client 1. richiesta 2. risposta server Caratteristiche di un client e di un server Client Esegue sul computer locale E invocato dall utente Inizia il contatto con il server Spedisce una richiesta, opzionalmente con dati Puo accedere a piu servizi (uno per volta) Server Esegue su un computer remoto Parte all inizializzazione del sistema Aspetta le richieste di servizio dai client: loop fino a che non arriva una richiesta Spedisce una risposta, opzionalmente con dati Accetta richieste da client arbitrari: un servizio per ogni client 2

Modello peer-to-peer I componenti dell applicazione agiscono in modo paritetico interazione simmetrica Possono comportarsi sia da client che da server Le informazioni sono suddivise tra i nodi della rete piuttosto che essere concentrate in un singolo nodo architettura decentralizzata Ogni pari può stabilire connessioni dirette con altri pari attivi nella rete interazione sincrona Applicazioni P2P Il modello P2P in realtà è utilizzato da lungo tempo nei livelli di rete e collegamento dati Ethernet Internet routing L applicazione del modello P2P nella progettazione di applicazioni di rete è più recente File sharing Elaborazione distribuita Comunicazione 3

Socket API API: Application Programming Interface Una socket e un dispositivo di interfaccia tra un processo e il sistema operativo Un processo può sia spedire messaggi a un altro processo che ricevere messaggi mediante la propria socket La comunicazione via socket usa il modello di I/O di Unix open-read-write-close file descriptor = (pathname, flag) host processo socket TCP/UDP Controllato dal programmatore dell applicazione Internet controllato dal sistema operativo host processo socket TCP/UDP Scelta del tipo di servizio TCP - orientato alla connessione Il client stabilisce la connessione al server Il client e il server si scambiano messaggi multipli di dimensione arbitraria Il client termina la connessione Garantisce l affidabilità del servizio UDP - privo di connessione Il client costruisce il messaggio Il client spedisce il messaggio al server Il messaggio deve entrare in un datagramma UDP Il server risponde Il servizio non è affidabile 4

Servizi multipli offerti da un host Un sistema operativo multi-tasking può ospitare più di un server Ogni server offre un servizio specifico ai client che lo richiedono I server sono processi indipendenti e possono gestire le richieste dei client simultaneamente Indirizzamento dei processi Ogni processo comunicante è associato a un numero di porta a 16-bit, locale e unico rispetto all host Necessita di individuare un processo con un indirizzo di rete globalmente unico (IP address e port number) Tutti messaggi contengono due coppie di indirizzi: Mittente: (IP address, port number) Destinatario: (IP address, port number) Il sistema operativo dell host destinatario consegna al processo un messaggio in arrivo sulla base del port number Numeri di porta 1-255: riservati a servizi standard 21: ftp 23: telnet 25: SMTP 80:http daemon 1-1023: disponibili solo a utenti privilegiati 1024-4999: per processi automaticamente assegnati 5000 - : solo per processi utente 5

Identificazione di un servizio A ogni servizio offerto da un server è assegnato un identificatore unico per l host: numero di porta Il server si registra con il software del protocollo di trasporto usando il numero di porta (bind) Il client contatta il server usando identificatore dell host (indirizzo IP) + l identificatore del servizio (numero di porta) Gli identificatori del server devono essere noti a priori Anche il client è identificabile tramite indirizzo IP + numero di porta Il client comunica al server il proprio indirizzo completo al momento della richiesta Un numero di porta non può essere associato a più processi (server o client) contemporaneamente Un processo (server o client) può usare più numeri di porta contemporaneamente Ogni thread di un server concorrente usa numeri di porta distinti Socket e numeri di porta Applicazioni Socket TCP Applicazioni Socket UDP Porte TCP 1 2 65535 1 2 65535 TCP UDP Porte UDP IP Host Sockets bound to ports Descriptor reference 6

Concorrenza nei server Problema: La risposta a una richiesta di un client può richiedere molto tempo Altri client devono aspettare il completamento delle richieste precedenti Soluzione Server concorrente che permette di gestire contemporaneamente le richieste di client multipli indirizzate a una socket di benvenuto Il server crea dinamicamente un nuovo thread (copia del processo) per ogni richiesta accettata e gli assegna una socket di connessione Il thread concorrente (con il suo flusso di controllo autonomo operante su memoria condivisa) soddisfa la richiesta del client attraverso la socket di connessione Il server si rende subito disponibile e attende le successive richieste dirette sempre alla socket di benvenuto Connessioni e server concorrenti Problema I server concorrenti creano un thread per ogni richiesta accettata Richieste simultanee sono servite da thread concorrenti Ogni client è identificato da: (ind. IP, n.ro di porta) Ogni servizio (server) è identificato da: (ind. IP, n.ro di porta) Client e server interagiscono scambiandosi più messaggi Come fa un client a far arrivare i messaggi (incoming messages) al thread assegnato? Soluzione Utilizzare l identificazione della sessione di trasporto (ind. IP server, n.ro di porta server, ind. IP client, n.ro di porta client) Il software che implementa il protocollo di trasporto associa ogni thread creato a una quadrupla distinta 7

Interazione client/server senza connessione server socket() socket() client bind() recvfrom() data(request) sendto() process request sendto() data(reply) recvfrom() close() close() Interazione client/server orientata alla connessione server socket() bind() socket() client listen() accept() connection establishment connect() recv() data(request) send() process request send() data(reply) recv() close() close() 8

Collaudo di applicazioni di rete Test del server uso di telnet per contattare il server telnet server_address port_number casi di test da standard input comportamento osservato su standard output Test del client con server preesistente installazione del server in locale uso di localhost come indirizzo di rete 9