IPC Inter Process Communication

Save this PDF as:
 WORD  PNG  TXT  JPG

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "IPC Inter Process Communication"

Transcript

1 Il protocollo TCP controlla che la trasmissione tra due end points avvenga correttamente. Non stabilisce alcun criterio su chi deve iniziare la comunicazione. Questo compito è svolto dalle applicazioni che utilizzano TCP per la trasmissione dei dati usando un proprio protocollo, detto protocollo di applicazione. I protocolli di applicazione si basano sul modello client-server: quindi e precisato chi inizia la comunicazione (client) e a chi è diretta (server). Ai più diffusi protocolli dello strato applicazione sono stati assegnati numeri di porta specifici. Ad es., un processo server web (che usa il protocollo HTTP) è identificato dal numero di porta 80. Un server di posta (che usa il protocollo SMTP) è identificato dal numero di porta 25. Unix: strumenti di sincronizzazione, memorizzazione, comunicazione Uso di segnali (sincronizzazione) Uso di file (memorizzazione) IPC Inter Process Communication processo invia limitata quantità info (solo un tipo di segnale) e manca il mittente del segnale solo tra processi che condividono un file system pipe (solo tra processi con un avo in comune) pipe con nome (per processi su una stessa macchina) shared memory (stessa macchina) Un elenco di ben conosciuti numeri di porta per tutti i protocolli standard di Internet è contenuto nella RFC Quando un programmatore crea una nuova applicazione, ad esso deve essere assegnato un nuovo numero di porta 1 2 caso remoto Socket (e RPC) SOCKET Strumenti disponibili nei S.O. della famiglia Unix/Linux per la realizzazione dell interazione tra processi all interno di una rete. UNIX BSD 4.2. Interfaccia di programmazione (API) specifica per lo sviluppo di applicazioni di rete. Libreria di funzioni C basata sul concetto di socket. Una socket rappresenta il mezzo di comunicazione mediante il quale un processo può scambiare messaggi con altri processi. Aspetti caratteristici della comunicazione dei processi attraverso socket: Eterogeneità: la comunicazione può avvenire tra oggetti che risiedono in architetture diverse; Trasparenza: la comunicazione tra processi avviene con le stesse modalità, indipendentemente dalla localizzazione fisica dei processi comunicanti; Indipendenza dalla rete :l interfaccia di comunicazione è indipendente dall architettura della rete; Compatibilità con i file: le socket sono rappresentate all interno dei programmi in modo omogeneo ai file 3 4 1

2 Proprietà delle socket Dominio di comunicazione. Ambiente nel quale avviene la comunicazione (rete internet: dominio PF-INET; Stesso S.O. Unix: PF_UNIX) Caratteristiche semantiche della comunicazione. Affidabilità, comunicazione uno a uno, uno a molti. Denotazione dei processi comunicanti Regole di formato da adottare per esprimere l indirizzo dei nodi 5 Tipo di socket Tipo: denota lo stile di comunicazione. Socket stream connection-oriented (utilizzo di un canale virtuale) connection-less (senza canale) - Connection oriented (affidabilità) - Comunicazione simmetrica uno-a- uno - Creazione del canale prima dell inizio della comunicazione (es., funzione connect); chiusura del canale al termine della comunicazione(es.: funzione shutdown). Socket datagram - Connectionless (non affidabile) - Possibilità di comunicazione con più di un processo (comunicazione asimmetrica) 6 Dominio di comunicazione Canale virtuale Dominio di comunicazione Proc B proc A Messaggio 1 Messaggio 2 proc B Proc A Proc C Socket stream Socket datagram 7 8 2

3 Struttura dati associata alla socket Nel dominio Internet (PF-INET) ogni socket è individuata da: Indirizzo IP del nodo in cui risiede il processo proprietario della socket. Numero della porta cui è associata la socket Ogni processo che intende comunicare con altri processi deve: Creare una socket. Ogni socket viene rappresentata localmente mediante un file descriptor. Renderla individuabile univocamente dai processi del dominio attraverso la specifica del suo indirizzo Nel caso del dominio PF-INET l indirizzo di una socket viene espresso attraverso questa struttura: struct sockaddr-in { sa-family-t sin-family; /*dominio*/ in-port-t sin-port; /*porta*/ struct-in-addr sin-addr; /*ind.nodo*/ char sin.zero [8] /*non usato*/ dove il tipo del campo sin_addr, che rappresenta l indirizzo del nodo, e` dichiarato nel modo seguente: struct in_addr { uint32_t s_addr; 9 10 I tipi di dato non primitivi utilizzati nelle precedenti definizioni sono descritti nella tabella A. 2, in cui vengono anche indicati i file header in cui sono contenute le rispettive dichiarazioni. Tipo Descrizione Header file sa_family_t Tipo associatoal dominio <sys/types.h> in_port_t Tipo associato alla porta <netinet/in.h> (di solito unsigned int a 16 bit) uint32_t unsigned int a 32 bit <sys/types.h> sockaddr Tipo generico associato all indirizzo <sys/socket.h> di una socket sockaddr_in Tipo specifico per l indirizzo di una socket nel dominio internet (IP v.4) <sys/socket.h> 11 nodo: indirizzo IP socket porta Processo A Socket socket Internet (TCP/IP) nodo: indirizzo IP Processo B porta Il canale di comunicazione tra il processo A e il processo B è definito da: <protocollo; indirizzo IP locale; porta locale; indirizzo IP remoto; porta remota> 12 3

4 Strutture dati Socket Una socket è creata all interno di un dominio di comunicazione Dominio di comunicazione: semantica di comunicazione + standard di denominazione struttura dati socket family: PF_INET service: SOCK_STREAM local IP: remote IP:... local port: remote port:... pgid:... Esempi di domini: UNIX, Internet, etc. DOMINIO - Protocol Family: Internet (oppure AF_INET, Address Family Internet) TIPO della socket: STREAM o DATAGRAM INDIRIZZO macchina locale (NB. il formato dell indirizzo dipende dal dominio di comunicazione della socket) gruppo di processi associati alla socket FORMATO INDIRIZZI DOMINIO AF _ UNIX : L indirizzo ha lo stesso formato del nome di un file (pathname). DOMINIO AF_INET _ : indirizzo Internet composto da indirizzo IP dell host (32 bit) e da numero di porta (16 bit) Creazione di una socket sd = socket (dominio, tipo, protocollo); int sd, dominio, tipo, protocollo; Crea una SOCKET e ne restituisce il descrittore sd (socket descriptor). dominio denota il particolare dominio di comunicazione (es. AF_INET) tipo indica il tipo di comunicazione (es. SOCK_STREAM o SOCK_DGRAM) protocollo specifica uno dei protocolli supportati dal dominio (se si indica zero viene scelto il protocollo di default) Definisce il protocollo usato dalla socket. In una connessione definisce: <protocollo;indirizzo IP locale;porta locale;indirizzo IP remoto;porta remota> 15 Associazione socket - indirizzo locale error = bind (sd, ind, lun); int error, sd; struct sockaddr * ind; int lun; Associa alla socket di descrittore sd l indirizzo codificato nella struttura puntata da ind e di lunghezza lun (la lunghezza è necessaria, poiché la funzione bind può essere impiegata con indirizzi di lunghezza diversa) Collega la socket a un indirizzo locale. In una connessione definisce : <protocollo;indirizzo IP locale;porta locale;indirizzo IP remoto;porta remota> 16 4

5 Comunicazione connection-oriented (socket STREAM o TCP) Collegamento (asimmetrico) tra processo Client e processo Server: 1) il server e il client devono creare ciascuno una propria socket e definirne l indirizzo (primitive socket e bind) 2) deve essere creata la connessione tra le due socket 3) fase di comunicazione 4) chiusura delle socket Comunicazione connection oriented (lato Server) error = listen (sd, dim); int error, sd, dim; Trasforma la socket sd in passiva (listening), pronta per ricevere una richiesta di connessione. Crea una coda, associata alla socket sd in cui vengono inserite le richieste di connessione dei client. La coda può contenere al più dim elementi. Le richieste di connessione vengono estratte dalla coda quando il server esegue la accept() Comunicazione connection oriented (lato Client) error = connect (sd, ind, lun) ; int error, sd; struct sockaddr * ind; int lun; Richiede la connessione fra la socket locale il cui descrittore è sd e la socket remota il cui indirizzo è codificato nella struttura puntata da ind e la cui lunghezza è lun. La connect() può determinare la sospensione del processo?? Definisce l indirizzo remoto a cui si collega la socket: <protocollo;indirizzo IP locale;porta locale;indirizzo IP remoto;porta remota> 19 Comunicazione connection oriented (lato Server) nuovo_sd = accept (sd, ind, lun); int nuovo_sd, sd; struct sockaddr * ind; int * lun; Indirizzo è parametro in/out Estrae una richiesta di connessione dalla coda predisposta dalla listen(). Se non ci sono richieste di connessione in coda, sospende il server finché non arriva una richiesta alla socket sd. Quando la richiesta arriva, crea una nuova socket di lavoro nuovo_sd e restituisce l indirizzo della socket del client tramite ind e la sua lunghezza tramite lun. La comunicazione (read/write) si svolge sulla nuova socket nuovo_sd 20 5

6 Comunicazione connection oriented Protocollo di creazione del canale virtuale processo client nodo: indirizzo IP socket client porta client Processo Client socket server (sd) listen() + accept() rete (TCP/IP) nodo: indirizzo IP Processo Server socket server (nuovo_sd) read() e write() porta server csd=socket ( ) connect(csd. <comunicazione attraverso il canale> crea richiesta di csd connessi one canale virtuale asc ssd crea crea asc=socket(..) bind(asc.) Listen(asc ssd=accept(asc. <comunicazione attraverso il canale> Una volta creato il canale virtuale i due processi agli estremi di esso (client e server) possono scambiarsi messaggi in entrambe le direzioni (write, read) La spedizione di un messaggio viene richiesta tramite la system call write alla quale si fornisce il socket descriptor associato alla socket locale Il server può spedire un messaggio al client nel modo seguente: int asc,ssd; char msg[6] = 34Ciao!34; <creazione socket ed apertura del canale> write (ssd,msg,6) Processo client int csd; char msg[6]; <creazione socket ed apertura del canale>; read (ssd,msg,6); Le socket sono bloccanti: se un destinatario esegue la read quando non vi è alcuna informazione all interno del canale, il processo viene sospeso. TCP non prevede separatori tra un messaggio e il successivo: il contenuto del canale è visto come una sequenza non strutturata di byte Accordo tra i due processi sulle caratteristiche dei messaggi (es. lunghezza costante prefissata)

7 Al termine di una sessione di comunicazione, la connessione può essere chiusa mediante la primitiva shutdown (int sd,int modo) dove sd rappresenta il socket descripror associato al terminale del canale modo esprime la modalità di chiusura. E possibile chiudere il canale soltanto in una direzione (valore 0 per la ricezione,valore 1 per la trasmissione) oppure in entrambe (valore di modo uguale a 2). Processo client # include <sys/types.h> #include <netinet/in.h> #include <sys/socket.h> struct sockaddr_in *D, *server; char msg[2000]; int sd, l; int main() { sd=socket(af_inet,sock_stream,0); <inizializzazione indirizzo server> /* richiesta di connessione*/ connect(sd,&server,l); Se la chiusura avviene in entrambe le direzioni la socket sd viene eliminata. <preparazione messaggio msg>; 25 write(sd, msg,2000); /*invio messaggio*/ read(sd,ris, 2000); /*ricezione risposta */ shutdown (sd,2); /*chiusura connessione*/ 26 Processo server #include <sys/types.h> #include <netinet/in.h> #include <sys/socket.h> struct sockaddr_in *M, *mio; char msg[buffersize], ris[2000]; int asc, l,sd, addrlen ; int main() { asc=socket(af_inet,sock_stream,0); <inizializz. mio indirizzo> l=sizeof(struct sockaddr_in); bind (asc,&mio,l); /* pubblicazione indirizzo*/ listen(asc, 100); /*creazione della coda richieste*/ sd=accept(asc, M, &addrlen); /* apertura canale*/ read (sd, msg, 2000); /*ricezione messaggio*. <calcolo risposta ris> write (sd, ris, 2000); /*invio risposta*/ Socket datagram Poiché la comunicazione è senza connessione, in questo caso ogni processo, dopo aver creato la socket ed effettuato l operazione di binding, può già utilizzarla per la comunicazione con altri processi. system call specifiche di spedizione e ricezione dei messaggi sono sendto e recvfrom. int sendto(int s, char *msg, int lun, int flag, struct sockaddr *D, int lund); sd rappresenta il socket descriptor associato alla socket locale; msg è il puntatore al messaggio da inviare; lun è la lunghezza del messaggio; flag è un intero mediante il quale è possibile specificare opzioni particolari sul trasporto del messaggio; D è il puntatore alla struttura che contiene l indirizzo della socket; lund e` la lunghezza della struttura puntata da D;

8 La primitiva di ricezione prevede una sintassi analoga: int recvfrom(int sd, char *msg, int lun, int flag, struct sockaddr *M, int *lunm); sd rappresenta il socket descriptor associato alla socket locale; msg è il puntatore alla variabile a cui assegnare il messaggio ricevuto; lun è la lunghezza del messaggio; flag è un intero mediante il quale è possibile specificare opzioni particolari sul trasporto del messaggio; M e` il puntatore alla struttura nella quale viene memorizzato l indirizzo della socket del mittente; lun e` la lunghezza della struttura puntata da M; La recvfrom può bloccare il processo destinatario, se il messaggio non è ancora disponibile; a differenza della comunicazione mediante stream, in questo caso i confini dei messaggi vengono mantenuti, e il processo quindi viene sospeso fino a che l intero messaggio non gli è stato recapitato. A differenza del caso di comunicazione con connessione, le primitive di comunicazione prevedono parametri specifici per gli indirizzi dei partner nella comunicazione: nell invio è necessario specificare l indirizzo del destinatario; nella ricezione è previsto che, assieme al messaggio la recvfrom fornisca anche l indirizzo del mittente. Per chiudere una socket datagram è possibile usare ancora la system call shutdown, oppure la system call close Comunicazione senza connessione (socket DATAGRAM) Client Process socket() sendto() recvfrom() <attesa risp> close() 1 2 Server Process socket() bind() recvfrom() <attesa richiesta> <elaborazione> sendto() close() 31 Process Client include <sys/types.h> #include <netinet/in.h> #include <sys/socket.h> struct sockaddr_in *D, *mio; char msg[2000], ris[buffersize]; int sd, l, addrlen; main() { sd=socket(af_inet,sock_dgram,0); <inizializz. mio indirizzo> l=sizeof(struct sockaddr_in); bind (sd,&mio,l); /* invio messaggio al server: */ sendto (sd, msg, 2000, 0, D,l); /* ricezione risposta: recvfrom (sd, ris, BUFFERSIZE,0, D, &addrlen);... close(sd); 32 8

9 Processo server #include <sys/types.h> #include <netinet/in.h> Considerazioni conclusive sulle socket UDP #include <sys/socket.h> struct sockaddr_in *M, *mio; : char msg[buffersize], ris[2000]; int sd, l, addrlen; main() { sd=socket(af_inet,sock_dgram,0); UDP non è reliable, in caso di perdita del messaggio del Client o della risposta del Server, il Client si blocca in attesa indefinita della risposta (utilizzo di timeout?) <inizializz. mio indirizzo> Blocco del Client anche nel caso di invio di una richiesta a un Server non l=sizeof(struct sockaddr_in); attivo (errori nel collegamento al server notificati solo sulle socket bind (sd,&mio,l); connesse) addrlen =l; /* ricezione messaggio:*/ recvfrom (sd, msg, BUFFERSIZE,0, M, &addrlen); <calcolo risposta ris> UDP non ha flow control, se il Server riceve troppi datagrammi per le sue capacità di elaborazione, questi vengono scartati, senza nessuna notifica ai Client /*invio risposta:/ sendto (sd, ris, 2000, 0, M, addrlen);... close(sd); Quale tipo di Socket utilizzare? Fare molta attenzione alle differenze semantiche tra le socket STREAM e quelle DATAGRAM, che in genere guidano nella scelta: servizi che richiedono una connessione connectionless servizi Problema dell affidabilità (STREAM si basano su TCP e sono quindi affidabili, DATAGRAM si basano su UDP e quindi non sono affidabili) Prestazioni: STREAM hanno costo più elevato delle DATAGRAM Quale tipo di Socket? Quale livello di trasporto, UDP o TCP? Utilizzare TCP (con connessione) quando: affidabilità fondamentale l ordine dei messaggi è importante si vuole semantica at-most-once (servizio del server non idempotente, server con stato) Utilizzare UDP (senza connessione) quando: si vuole fare del broadcast/multicast troppe connessioni sarebbero richieste le prestazioni sono fondamentali (le socket DATAGRAM hanno un costo inferiore, non si deve stabilire una connessione, etc.) non ci sono problemi di ordinamento messaggi (es. ogni msg contenuto in un pacchetto UDP) va bene una semantica may-be

10 Un esempio: esecuzione remota di comandi Esecuzione remota di semplici comandi di un client su un server e visualizzazione locale dell output prodotto dai comandi eseguiti. Il client deve richiedere la creazione della connessione e successivamente inviare un messaggio contenente il nome di un comando. Il client si pone in attesa della risposta, rappresentata dall output del comando eseguito dal server; ogni byte ricevuto attraverso il canale viene copiato dal client sul dispositivo di standard output. Processo client: #include <stdio.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> main(int argc, char **argv) { int sock, retval, i; char mess[10], ris[1000]; struct sockaddr_in rem_ind; /*indirizzo socket remota*/ /* Preparazione indirizzo del server */ rem_ind.sin_family = PF_INET; /*dominio*/ /* ad esempio: se l indirizzo internet del nodo server e` :*/ rem_ind.sin_addr.s_addr=inet_addr(" "); rem_ind.sin_port = 22375; /* numero di porta del server*/ /* Preparazione del messaggio*/ strcpy(mess, argv[1]); /* Creazione della socket */ sock=socket(pf_inet, SOCK_STREAM, 0); connect(sock, &rem_ind, sizeof(struct sockaddr_in)); write(sock,mess, 10); /*invio messaggio*/ while (i=read(sock,ris, 1)>0) /*ric. risposta*/ write(1,ris,i); /* stampa su std. output */ shutdown(sock,2); /* chiusura collegamento*/ Processo server Ogni processo server ha tipicamente una struttura ciclica: ad ogni iterazione viene servita una particolare richiesta di connessione. Il processo server può, in generale, servire le richieste in modo sequenziale (viene servita una richiesta per volta) o concorrente (vengono servite più richieste in parallelo). Nell esempio il server è servito in modo sequenziale. Prima di entrare nel ciclo di servizio, il server crea la socket di ascolto, ne pubblica l indirizzo mediante l operazione di binding; successivamente, con la primitiva listen associa alla socket di ascolto una coda nella quale verranno inserite le eventuali richieste di connessione. 39 Per ogni richiesta, dopo aver instaurato una nuova connessione dedicata ad essa (mediante accept), verrà creato un nuovo processo che: ricevera` dal canale il nome del comando da eseguire e, successivamente, dopo aver opportunamente ridirezionato la socket di comunicazione sullo standard output, passerà ad eseguire il comando mediante una system call della famiglia exec Al termine dell esecuzione del comando, il processo server chiudera` la socket e passera` al servizio di nuove richieste

11 Processo server:*/ #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <stdio.h> main() { char comando[20]; int newsock, sock, figlio, status, i; struct sockaddr_in mio_ind; /* Creazione socket di ascolto */ sock=socket(pf_inet, SOCK_STREAM, 0); /* Preparazione indirizzo socket : */ mio_ind.sin_family=pf_inet; mio_ind.sin_addr.s_addr = INADDR_ANY; mio_ind.sin_port=22375; /* Binding:*/ if(bind(sock, &mio_ind, sizeof(struct sockaddr_in))<0) { perror("bind"); exit(1); /* sock ricevera` le richieste di connessione: */ listen(sock, 5); /*creaz. coda richieste connessione*/ for (;;)/* ciclo di servizio */ { /* estrazione nuova richiesta dalla coda: */ newsock=accept(sock,(struct sockaddr_in *) 0, 0); if ((figlio=fork())==0) { /* figlio */ close(sock); read(newsock, comando, 10); /* ricez. comando*/ /*ridirezione dell output sulla socket: */ close(1); dup(newsock); /* esecuzione comando: */ if((i=execlp(comando, comando, (char )0))<0) { write(1,"errore", 7); exit(-1); /* figlio*/ else /*padre*/ { wait(&status); /* attesa figlio */ shutdown(newsock, 1); /* chiusura socket: */ close(newsock); close(sock); Controllato dal gestore dell applicazione Controllato dal sistema operativo Processo Socket TCP con buffer, variabili Host o server Internet Processo Socket TCP con buffer, variabili Host o server Controllato dal gestore dell applicazione Controllato dal sistema operativo

12 Processo client Processo server Stretta di mano a tre vie Socket di benvenuto Socket del client byte byte Socket di connessione tempo 45 12

COMUNICAZIONE TRA PROCESSI REMOTI IN UNIX

COMUNICAZIONE TRA PROCESSI REMOTI IN UNIX A cura del prof. Gino Tombolini 1 COMUNICAZIONE TRA PROCESSI REMOTI IN UNIX Il sistema UNIX TCP/IP fornisce un meccanismo di comunicazione tra processi residenti su nodi distinti di una rete, compatibili

Dettagli

Esempio 1: stampa locale di file remoto

Esempio 1: stampa locale di file remoto Alcuni esempi di uso di Socket Esempio 1: stampa locale di file remoto Visualizzazione locale del contenuto di un file remoto. Il client deve richiedere la creazione della connessione e successivamente

Dettagli

I Socket. Laboratorio Software 2008-2009 M. Grotto R. Farina

I Socket. Laboratorio Software 2008-2009 M. Grotto R. Farina M. Grotto R. Farina Sommario 1. Applicazioni Distribuite 2. I Socket Introduzione Interfacce e protocolli Descrizione Stile di comunicazione Namespace e protocollo Include e system call Creazione e chiusura

Dettagli

Socket. Nei sistemi operativi moderni i servizi disponibili in rete si basano principalmente sul modello client/server.

Socket. Nei sistemi operativi moderni i servizi disponibili in rete si basano principalmente sul modello client/server. Socket Nei sistemi operativi moderni i servizi disponibili in rete si basano principalmente sul modello client/server. Tale architettura consente ai sistemi di condividere risorse e cooperare per il raggiungimento

Dettagli

(VHUFLWD]LRQLGLEDVHVXOOH6RFNHWLQ&

(VHUFLWD]LRQLGLEDVHVXOOH6RFNHWLQ& (VHUFLWD]LRQLGLEDVHVXOOH6RFNHWLQ& 3ULPRHVHUFL]LR6RFNHWVWUHDPFRQULGLUH]LRQH Si progetti un applicazione distribuita Client/Server per una rete di workstation UNIX (BSD oppure System V). In particolare,

Dettagli

Cenni di programmazione distribuita in C++ Mauro Piccolo piccolo@di.unito.it

Cenni di programmazione distribuita in C++ Mauro Piccolo piccolo@di.unito.it Cenni di programmazione distribuita in C++ Mauro Piccolo piccolo@di.unito.it Socket Nei sistemi operativi moderni i servizi disponibili in rete si basano principalmente sul modello client/server. Tale

Dettagli

Socket. Nei sistemi operativi moderni i servizi disponibili in rete si basano principalmente sul modello client/server.

Socket. Nei sistemi operativi moderni i servizi disponibili in rete si basano principalmente sul modello client/server. Socket Nei sistemi operativi moderni i servizi disponibili in rete si basano principalmente sul modello client/server. Tale architettura consente ai sistemi di condividere risorse e cooperare per il raggiungimento

Dettagli

DATAGRAM SOCKET. Angelastro Sergio Diomede Antonio Viterbo Tommaso

DATAGRAM SOCKET. Angelastro Sergio Diomede Antonio Viterbo Tommaso DATAGRAM SOCKET Angelastro Sergio Diomede Antonio Viterbo Tommaso Definizione supporta i datagram privo di connessione messaggi inaffidabili di una lunghezza massima prefissata il protocollo UDP supporta

Dettagli

Laboratorio di Programmazione in rete

Laboratorio di Programmazione in rete Laboratorio di rogrammazione in rete Introduzione alla programmazione C di socket A.A. 2005/06 Comunicazione tra computer Come far comunicare più computer su una rete? Una collezione di protocolli: TC/I

Dettagli

Introduzione alle applicazioni di rete

Introduzione alle applicazioni di rete 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

Dettagli

Paradigma client-server

Paradigma client-server Interazione Client Server (socket) Vittorio Maniezzo Università di Bologna Vittorio Maniezzo Università di Bologna 15 CliSer - 1/31 Paradigma client-server Le applicazioni utente devono interagire con

Dettagli

Program m azione di Sistem a 6

Program m azione di Sistem a 6 Program m azione di Sistem a 6 Lucidi per il corso di Laboratorio di Sistemi Operativi tenuto da Paolo Baldan presso l'università Ca' Foscari di Venezia, anno accademico 2004/ 2005. Parte di questo materiale

Dettagli

Esercitazione [6] Client/Server con Socket

Esercitazione [6] Client/Server con Socket Esercitazione [6] Client/Server con Socket Leonardo Aniello - aniello@dis.uniroma1.it Daniele Cono D'Elia - delia@dis.uniroma1.it Sistemi di Calcolo - Secondo modulo (SC2) Programmazione dei Sistemi di

Dettagli

Una semplice applicazione client/server 1

Una semplice applicazione client/server 1 Una semplice applicazione client/server 1 Il nostro obiettivo In questa parte del corso implementeremo un applicazione client/server che usa i socket Internet disponibili nei sistemi Unix/Linux. Nello

Dettagli

rsystem Maximiliano Marchesi maximiliano.marchesi@studenti.unipr.it

rsystem Maximiliano Marchesi maximiliano.marchesi@studenti.unipr.it Maximiliano Marchesi 28 Settembre 2005 Diario delle Revisioni Revisione 1.2 28 Settembre 2005 maximiliano.marchesi@studenti.unipr.it Sommario Introduzione..................................................................................

Dettagli

TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI

TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI Confronto tra ISO-OSI e TCP/IP, con approfondimento di quest ultimo e del livello di trasporto in cui agiscono i SOCKET. TCP/IP

Dettagli

Laboratorio di Sistemi Operativi 29-01-2009. Cognome Nome Mat.

Laboratorio di Sistemi Operativi 29-01-2009. Cognome Nome Mat. Il compito è costituito da domande chiuse, domande aperte ed esercizi. Non è consentito l uso di libri, manuali, appunti., etc. Tempo massimo 2 ore. Domande chiuse: ogni domanda corrisponde ad un punteggio

Dettagli

Interazione (TCP) Client-Server con le socket

Interazione (TCP) Client-Server con le socket Interazione (TCP) Client-Server con le socket D. Gendarmi Interazione TCP Client/Server Server 2. Assegnare un local address alla socket 3. Settare la socket all ascolto 4. Iterativamente: a. Accettare

Dettagli

Reti (già Reti di Calcolatori )

Reti (già Reti di Calcolatori ) Reti (già Reti di Calcolatori ) Cenni di Socket Programming Renato Lo Cigno http://disi.unitn.it/locigno/index.php/teaching-duties/computer-networks Socket API Programmazione dei socket Obiettivo:imparare

Dettagli

Laboratorio di Programmazione in Rete

Laboratorio di Programmazione in Rete Laboratorio di rogrammazione in Rete a.a. 2005/2006 http://www.di.uniba.it/~lisi/courses/prog-rete/prog-rete0506.htm dott.ssa Francesca A. Lisi lisi@di.uniba.it Orario di ricevimento: mercoledì ore 10-12

Dettagli

Esercitazione Laboratorio di Sistemi Operativi 20-01-2014. Cognome Nome Mat.

Esercitazione Laboratorio di Sistemi Operativi 20-01-2014. Cognome Nome Mat. Il compito è costituito da domande chiuse e domande aperte. Non è consentito l uso di libri, manuali, appunti., etc. Tempo massimo 2 ore. Domande chiuse: ogni domanda corrisponde ad un punteggio di 1 punto

Dettagli

Socket TCP. prima parte

Socket TCP. prima parte Socket TCP prima parte Cosa cambia: socket int fd = socket(pf_inet, SOCK_STREAM, 0); if (fd

Dettagli

Sistemi Operativi (modulo di Informatica II)

Sistemi Operativi (modulo di Informatica II) Sistemi Operativi (modulo di Informatica II) La comunicazione tra processi Patrizia Scandurra Università degli Studi di Bergamo a.a. 2008-09 Sommario Processi cooperanti La comunicazione tra processi Necessità

Dettagli

Creare una applicazione Winsock di base

Creare una applicazione Winsock di base Creare una applicazione Winsock di base Usiamo le API Winsock incluse in Creare un progetto per una Socket Windows (in Dev C++) Selezionare la file New Projects Selezionare Empty Project Salvare

Dettagli

Transmission Control Protocol

Transmission Control Protocol Transmission Control Protocol Franco Callegati Franco Callegati IC3N 2000 N. 1 Transmission Control Protocol - RFC 793 Protocollo di tipo connection-oriented Ha lo scopo di realizzare una comunicazione

Dettagli

Elementi di Informatica e Programmazione

Elementi di Informatica e Programmazione Elementi di Informatica e Programmazione Le Reti di Calcolatori (parte 2) Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Docente: Daniela

Dettagli

HTTP adaptation layer per generico protocollo di scambio dati

HTTP adaptation layer per generico protocollo di scambio dati HTTP adaptation layer per generico protocollo di scambio dati Sandro Cavalieri Foschini 101786 Emanuele Richiardone 101790 Programmazione in Ambienti Distribuiti I - 01FQT prof. Antonio Lioy A.A. 2002-2003

Dettagli

Controllo Winsock di Visual Basic

Controllo Winsock di Visual Basic Controllo Winsock di Visual Basic Il controllo Winsock, non visibile all'utente, consente di accedere ai servizi di rete TCP e UDP. Per creare applicazioni client o server non è necessario conoscere in

Dettagli

L interfaccia socket

L interfaccia socket L interfaccia socket Application Programming Interface: API Socket API Procedure base Altre procedure Ordinamento dei byte Interazione client-server orientata alla connessione Interazione client-server

Dettagli

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

UDP. Livello di Trasporto. Demultiplexing dei Messaggi. Esempio di Demultiplexing a.a. 2002/03 Livello di Trasporto UDP Descrive la comunicazione tra due dispositivi Fornisce un meccanismo per il trasferimento di dati tra sistemi terminali (end user) Prof. Vincenzo Auletta auletta@dia.unisa.it

Dettagli

IPC: InterProcess Communication

IPC: InterProcess Communication IPC: InterProcess Communication Uso di segnali Uso di file processo invia limitata quantità info (solo un tipo di segnale) e manca il mittente del segnale solo tra processi che condividono un file system

Dettagli

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Lezione 22 Martedì 7-1-2014 1 System Call per l'uso dei segnali Un processo che

Dettagli

Una prima applicazione in C per l utilizzo delle socket

Una prima applicazione in C per l utilizzo delle socket Una prima applicazione in C per l utilizzo delle socket Richiamo sulle socket Socket in Windows (WinSock) Differenze tra sistemi operativi D. Gendarmi Socket API API: Application Programming Interface

Dettagli

*HVWLRQHDYDQ]DWDGHOOH6RFNHWLQ& ODSULPLWLYDVHOHFW

*HVWLRQHDYDQ]DWDGHOOH6RFNHWLQ& ODSULPLWLYDVHOHFW *HVWLRQHDYDQ]DWDGHOOH6RFNHWLQ& ODSULPLWLYDVHOHFW 7&3H8'3&OLHQW6HUYHUXVDQGRVHOHFW Si progetti un applicazione distribuita Client/Server per una rete di workstation UNIX (BSD oppure System V). In particolare,

Dettagli

Elementi di Informatica e Programmazione

Elementi di Informatica e Programmazione Elementi di Informatica e Programmazione Le Reti di Calcolatori (parte 2) Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Docente: Daniela

Dettagli

unsigned long inet_addr(cp) char *cp;

unsigned long inet_addr(cp) char *cp; /* bcopystru.c #include struct point int x; char *y; ; struct point a, b; struct pint *pta, *ptb; a.x = 5; a.y = pippo ; b = a; printf i valori del secondo point sono: %d %s\n,b.x,b.y); pta=

Dettagli

Esempio 1: stampa locale di file remoto

Esempio 1: stampa locale di file remoto Alcuni esempi di uso di Socket Esempio 1: stampa locale di file remoto Visualizzazione locale del contenuto di un file remoto. Il client deve richiedere la creazione della connessione e successivamente

Dettagli

Inter Process Communication. Laboratorio Software 2008-2009 C. Brandolese

Inter Process Communication. Laboratorio Software 2008-2009 C. Brandolese Inter Process Communication Laboratorio Software 2008-2009 C. Brandolese Introduzione Più processi o thread Concorrono alla relaizzazione di una funzione applicativa Devono poter realizzare Sincronizzazione

Dettagli

SUITE PROTOCOLLI TCP/IP ( I protocolli di Internet )

SUITE PROTOCOLLI TCP/IP ( I protocolli di Internet ) PARTE 2 SUITE PROTOCOLLI TCP/IP ( I protocolli di Internet ) Parte 2 Modulo 1: Stack TCP/IP TCP/IP Protocol Stack (standard de facto) Basato su 5 livelli invece che sui 7 dello stack ISO/OSI Application

Dettagli

Socket per TCP: Fondamenti

Socket per TCP: Fondamenti Socket per TCP: Fondamenti Network Applications Molte applicazioni di rete sono formate da due programmi distinti (che lavorano su due diversi host) uno detto server ed uno detto client. Il server si mette

Dettagli

Internetworking with TCP/IP (Douglas E. Comer) Vol. I and Vol III.

Internetworking with TCP/IP (Douglas E. Comer) Vol. I and Vol III. Internetworking with TCP/IP (Douglas E. Comer) Vol. I and Vol III http://gapil.truelite.it/ http://www.linuxdidattica.org/docs/a ltre_scuole/planck/socket/ Client Server Esistono vari modelli di architettura

Dettagli

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

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

Dettagli

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

J+... J+3 J+2 J+1 K+1 K+2 K+3 K+... Setup delle ConnessioniTCP Una connessione TCP viene instaurata con le seguenti fasi, che formano il Three-Way Handshake (perchè formato da almeno 3 pacchetti trasmessi): 1) il server si predispone ad

Dettagli

Scrittura dei programmi applicativi di rete

Scrittura dei programmi applicativi di rete Scrittura dei programmi applicativi di rete Contenuti del corso La progettazione delle reti Il routing nelle reti IP Il collegamento agli Internet Service Provider e problematiche di sicurezza Analisi

Dettagli

Socket TCP. seconda parte

Socket TCP. seconda parte Socket TCP seconda parte Schema della connessione Computer 1 127.43.18.1 indirizzo I1 indirizzo I2 Computer 2 143.225.5.3 porta 45000 socket porta 5200 socket processo client processo server socket(...)

Dettagli

Sommario. G. Piscitelli

Sommario. G. Piscitelli Sommario Interprocess Communication Processi (e thread) cooperanti Il paradigma produttore-consumatore Shared Memory e Inter Process Communication (IPC) facility Proprietà caratteristiche della comunicazione

Dettagli

Opzioni del Socket. Socket Options. Opzioni di Livello Socket. Livello delle Opzioni

Opzioni del Socket. Socket Options. Opzioni di Livello Socket. Livello delle Opzioni a.a. 2003/04 Opzioni del Socket Socket Options Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/professori/auletta/ Università degli studi di Salerno Laurea in Informatica 1 Ogni socket

Dettagli

Programmazione socket. Queste slide sono distribuite con licenza Creative Commons Attribuzione-Non commerciale-condividi allo stesso modo 2.

Programmazione socket. Queste slide sono distribuite con licenza Creative Commons Attribuzione-Non commerciale-condividi allo stesso modo 2. Programmazione socket Queste slide sono distribuite con licenza Creative Commons Attribuzione-Non commerciale-condividi allo stesso modo 2.5 Italia Applicazioni di rete Realizzare un'applicazione di rete

Dettagli

4 - Il livello di trasporto

4 - Il livello di trasporto Università di Bergamo Dipartimento di Ingegneria Gestionale e dell Informazione 4 - Il livello di trasporto Architetture e Protocolli per Internet Servizio di trasporto il livello di trasporto ha il compito

Dettagli

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

PARTE 1 richiami. SUITE PROTOCOLLI TCP/IP ( I protocolli di Internet ) PARTE 1 richiami SUITE PROTOCOLLI TCP/IP ( I protocolli di Internet ) Parte 1 Modulo 1: Stack TCP/IP TCP/IP Protocol Stack (standard de facto) Basato su 5 livelli invece che sui 7 dello stack ISO/OSI Application

Dettagli

Creare un'elementare backdoor in C in ambiente UNIX

Creare un'elementare backdoor in C in ambiente UNIX Creare un'elementare backdoor in C in ambiente UNIX DISCLAIMER: Questo tutorial è a solo scopo didattico. L'autore NON si prende alcuna responsabilità circa usi errati o non legali delle informazioni qui

Dettagli

Sviluppo di Applicazioni su Rete. Introduzione all API socket di Berkeley. Interazione tra Processi. Modello Client-Server

Sviluppo di Applicazioni su Rete. Introduzione all API socket di Berkeley. Interazione tra Processi. Modello Client-Server a.a. 2003/04 Introduzione all API socket di Berkeley Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/professori/auletta/ Università degli studi di Salerno Laurea e Diploma in Informatica

Dettagli

Reti di Telecomunicazione Lezione 8

Reti di Telecomunicazione Lezione 8 Reti di Telecomunicazione Lezione 8 Marco Benini Corso di Laurea in Informatica marco.benini@uninsubria.it Livello di trasporto Programma della lezione relazione tra lo strato di trasporto e lo strato

Dettagli

L uso di Socket UDP. TCP vs. UDP UDP

L uso di Socket UDP. TCP vs. UDP UDP L uso di Socket UDP TCP TCP vs. UDP UDP 1 Interazione UDP Client/Server Server 1. Creare un socket 2. Assegnare un local address al socket 3. Iterativamente: a. Inviare e ricevere dati 4. Chiudere il socket

Dettagli

Una socket è un punto estremo di un canale di comunicazione accessibile mediante un file descriptor. Alcuni tipi predefiniti di socket

Una socket è un punto estremo di un canale di comunicazione accessibile mediante un file descriptor. Alcuni tipi predefiniti di socket Una socket è un punto estremo di un canale di comunicazione accessibile mediante un file descriptor Le socket costituiscono un fondamentale strumento di comunicazione, basato sullo scambio di messaggi,

Dettagli

Internet e protocollo TCP/IP

Internet e protocollo TCP/IP Internet e protocollo TCP/IP Internet Nata dalla fusione di reti di agenzie governative americane (ARPANET) e reti di università E una rete di reti, di scala planetaria, pubblica, a commutazione di pacchetto

Dettagli

SC per Inter Process Comminication. Comunicazione fra macchine diverse: socket

SC per Inter Process Comminication. Comunicazione fra macchine diverse: socket SC per Inter Process Comminication Comunicazione fra macchine diverse: socket 1 Sockets File speciali utilizzati per connettere due o più processi con un canale di comunicazione i processi possono risiedere

Dettagli

CAPITOLO 27 SCAMBIO DI MESSAGGI

CAPITOLO 27 SCAMBIO DI MESSAGGI CAPITOLO 27 SCAMBIO DI MESSAGGI SCAMBIO DI MESSAGGI Sia che si guardi al microkernel, sia a SMP, sia ai sistemi distribuiti, Quando i processi interagiscono fra loro, devono soddisfare due requisiti fondamentali:

Dettagli

SISTEMI OPERATIVI DISTRIBUITI

SISTEMI OPERATIVI DISTRIBUITI SISTEMI OPERATIVI DISTRIBUITI E FILE SYSTEM DISTRIBUITI 12.1 Sistemi Distribuiti Sistemi operativi di rete Sistemi operativi distribuiti Robustezza File system distribuiti Naming e Trasparenza Caching

Dettagli

Le reti basate su TCP/IP

Le reti basate su TCP/IP internet Le reti basate su TCP/IP Una rete di reti è detta internet (con la i minuscola). Una internet è definita fornendo i protocolli per trasferire le informazioni tra le varie reti. Il TCP/IP serve

Dettagli

T.A.R.I. Socket (ICT, AL)

T.A.R.I. Socket (ICT, AL) Internet Applications (Client-Server Concept, Use of Protocol Ports, Socket API, DNS, E-mail, TELNET, FTP) Funzionalità Livello di trasporto e livelli sottostanti Comunicazione base Disponibilità Livello

Dettagli

Parte II: Reti di calcolatori Lezione 10

Parte II: Reti di calcolatori Lezione 10 Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Parte II: Reti di calcolatori Lezione 10 Giovedì 3-04-2014 1 Reti per la distribuzione

Dettagli

I/O su Socket TCP: read()

I/O su Socket TCP: read() I/O su Socket TCP: read() I socket TCP, una volta che la connessione TCP sia stata instaurata, sono accedibili come se fossero dei file, mediante un descrittore di file (un intero) ottenuto tramite una

Dettagli

Connessioni di rete. Progetto di reti di Calcolatori e Sistemi Informatici - Stefano Millozzi. PdR_09010 - Stefano Millozzi

Connessioni di rete. Progetto di reti di Calcolatori e Sistemi Informatici - Stefano Millozzi. PdR_09010 - Stefano Millozzi Connessioni di rete Progetto di reti di Calcolatori e Sistemi Informatici - Stefano Millozzi 1 Socket orientato alla connessione o non orientato alla connessione 2 Socket in astratto 3 Socket modalità

Dettagli

Reti di Telecomunicazione Lezione 6

Reti di Telecomunicazione Lezione 6 Reti di Telecomunicazione Lezione 6 Marco Benini Corso di Laurea in Informatica marco.benini@uninsubria.it Lo strato di applicazione protocolli Programma della lezione Applicazioni di rete client - server

Dettagli

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

Luca Mari, Sistemi informativi applicati (reti di calcolatori) appunti delle lezioni. Architetture client/server: applicazioni client Versione 25.4.05 Sistemi informativi applicati (reti di calcolatori): appunti delle lezioni Architetture client/server: applicazioni client 1 Architetture client/server: un esempio World wide web è un

Dettagli

Uso di sniffer ed intercettazione del traffico IP

Uso di sniffer ed intercettazione del traffico IP Uso di sniffer ed intercettazione del traffico IP Massimo Bernaschi Istituto per le Applicazioni del Calcolo Mauro Picone Consiglio Nazionale delle Ricerche Viale del Policlinico, 137-00161 Rome - Italy

Dettagli

La programmazione di rete

La programmazione di rete La programmazione di rete Introduzione alla programmazione di rete La connessione La trasmissione 20 febbraio 2004 Applicazioni distribuite Applicazione: un insieme di programmi coordinati per svolgere

Dettagli

Internet, così come ogni altra rete di calcolatori possiamo vederla suddivisa nei seguenti componenti:

Internet, così come ogni altra rete di calcolatori possiamo vederla suddivisa nei seguenti componenti: Pagina 1 di 8 Struttura di Internet ed il livello rete Indice Struttura delle reti Estremità della rete Il nucleo della rete Reti a commutazione di pacchetto e reti a commutazione di circuito Funzionalità

Dettagli

12.5 UDP (User Datagram Protocol)

12.5 UDP (User Datagram Protocol) CAPITOLO 12. SUITE DI PROTOCOLLI TCP/IP 88 12.5 UDP (User Datagram Protocol) L UDP (User Datagram Protocol) é uno dei due protocolli del livello di trasporto. Come l IP, é un protocollo inaffidabile, che

Dettagli

I Socket in PHP. Introduzione. Gestione degli errori nei socket. Funzioni socket di PHP. (manuale PHP)

I Socket in PHP. Introduzione. Gestione degli errori nei socket. Funzioni socket di PHP. (manuale PHP) I Socket in PHP (manuale PHP) Introduzione Questa estensione implementa una interfaccia a basso livello verso i socket, fornendo la possibilità di agire sia come server sia come client. Per l'utilizzo

Dettagli

Laboratorio di Reti di Calcolatori

Laboratorio di Reti di Calcolatori Laboratorio di Reti di Calcolatori Socket UDP. Paolo D Arco Abstract Scopo della lezione è descrivere le funzioni che l interfaccia dei socket offre per far interagire client e server attraverso il protocollo

Dettagli

Laboratorio di. Reti Informatiche. Corso di Laurea Triennale in Ingegneria Informatica A.A. 2016/2017. Ing. Carlo Vallati

Laboratorio di. Reti Informatiche. Corso di Laurea Triennale in Ingegneria Informatica A.A. 2016/2017. Ing. Carlo Vallati Laboratorio di Reti Informatiche Corso di Laurea Triennale in Ingegneria Informatica A.A. 2016/2017 Ing. Carlo Vallati carlo.vallati@unipi.it 1 Esercitazione 5 Programmazione con i socket Parte 2 2 Programma

Dettagli

Chiamate a Procedure Remote

Chiamate a Procedure Remote FACOLTA DI SCIENZE MATEMATICHE, FISICHE E NATURALI Corso di Laurea Magistrale in Informatica Corso di Sistemi Distribuiti Anno Accademico 2012/2013 Relazione sullo sviluppo di Chiamate a Procedure Remote

Dettagli

Parte II: Reti di calcolatori Lezione 12

Parte II: Reti di calcolatori Lezione 12 Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15 Parte II: Reti di calcolatori Lezione 12 Giovedì 16-04-2015 1 Confronto architetture C/S e

Dettagli

AXO. Operativo. Architetture dei Calcolatori e Sistema. programmazione di sistema

AXO. Operativo. Architetture dei Calcolatori e Sistema. programmazione di sistema AXO Architetture dei Calcolatori e Sistema Operativo programmazione di sistema Il sistema operativo Il Sistema Operativo è un insieme di programmi (moduli software) che svolgono funzioni di servizio nel

Dettagli

Scrittura dei programmi applicativi di rete

Scrittura dei programmi applicativi di rete Nota di Copyright RETI DI CALCOLATORI Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Questo insieme di trasparenze (detto nel seguito slide) è protetto

Dettagli

Informatica per la comunicazione" - lezione 9 -

Informatica per la comunicazione - lezione 9 - Informatica per la comunicazione" - lezione 9 - Protocolli di livello intermedio:" TCP/IP" IP: Internet Protocol" E il protocollo che viene seguito per trasmettere un pacchetto da un host a un altro, in

Dettagli

Esercizio 2. Client e server comunicano attraverso socket TCP

Esercizio 2. Client e server comunicano attraverso socket TCP Esercizio 1 Scrivere una applicazione client/server in cui: Il client, in un ciclo infinito: Legge una stringa da standard input Invia al processo server la stringa. Il server visualizza: L'IP da cui si

Dettagli

Introduzione ai socket

Introduzione ai socket Introduzione ai socket Socket locali Contiene lucidi tratti da: 2006-2007 Marco Faella, Clemente Galdi, Giovanni Schmid (Università di Napoli Federico II), 2004-2005 Walter Crescenzi(Universita di Roma

Dettagli

Laboratorio reti AA 2008/2009. Dott. Matteo Roffilli Ricevimento in ufficio dopo la lezione

Laboratorio reti AA 2008/2009. Dott. Matteo Roffilli Ricevimento in ufficio dopo la lezione Laboratorio reti AA 2008/2009 Dott. Matteo Roffilli roffilli@csr.unibo.it Ricevimento in ufficio dopo la lezione 1 Laboratorio reti AA 2008/2009 Per esercitarvi fate SSH su: alfa.csr.unibo.it si-tux00.csr.unibo.it.

Dettagli

Programmazione di applicazioni di rete

Programmazione di applicazioni di rete Programmazione di applicazioni di rete Valeria Cardellini Università di Roma Tor Vergata Applicazioni di rete Applicazioni di rete - forniscono i servizi di alto livello utilizzati dagli utenti - determinano

Dettagli

Introduzione alla programmazione C di socket

Introduzione alla programmazione C di socket Introduzione alla programmazione C di socket (testo di riferimento : M. J. Donahoo, K. L. Calvert, TCP/IP Sockets in C: Practical Guide for Programmers. Morgan Kaufman Publishers. ) A.A. 2005/06 Una rete

Dettagli

Il modello TCP/IP. Sommario

Il modello TCP/IP. Sommario Il modello TCP/IP Il protocollo IP Mario Cannataro Sommario Introduzione al modello TCP/IP Richiami al modello ISO/OSI Struttura del modello TCP/IP Il protocollo IP Indirizzi IP Concetto di sottorete Struttura

Dettagli

I protocolli UDP e TCP

I protocolli UDP e TCP I protocolli UDP e TCP A.A. 2005/2006 Walter Cerroni Il livello di trasporto in Internet APP. APP. TCP UDP IP collegamento logico tra diversi processi applicativi collegamento logico tra diversi host IP

Dettagli

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15. Pietro Frasca.

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15 Pietro Frasca Lezione 5 Martedì 21-10-2014 Thread Come abbiamo detto, un processo è composto

Dettagli

Identità sulla rete protocolli di trasmissione (TCP-IP) L architettura del sistema. Dal livello A al livello B

Identità sulla rete protocolli di trasmissione (TCP-IP) L architettura del sistema. Dal livello A al livello B Identità sulla rete protocolli di trasmissione (TCP-IP) L architettura del sistema contenuto della comunicazione sistema per la gestione della comunicazione sottosistema C sottosistema B sottosistema A

Dettagli

Capitolo 1 - parte 1. Corso Reti ed Applicazioni Mauro Campanella

Capitolo 1 - parte 1. Corso Reti ed Applicazioni Mauro Campanella Capitolo 1 - parte 1 Corso Reti ed Applicazioni Mauro Campanella Precisazione Noi ci occuperemo solo della trasmissione di informazione in formato digitale. Un segnale analogico è basato su una variazione

Dettagli

MODELLI ISO/OSI e TCP/IP

MODELLI ISO/OSI e TCP/IP D. Talia RETI DI CALCOLATORI - UNICAL 1 Reti di Calcolatori MODELLI ISO/OSI e TCP/IP D. Talia RETI DI CALCOLATORI - UNICAL 2 Reti di Calcolatori Livelli e Servizi Il modello OSI Il modello TCP/IP Un confronto

Dettagli

Guida all' uso dei sockets nella programmazione in C

Guida all' uso dei sockets nella programmazione in C Guida all' uso dei sockets nella programmazione in C ( pseudo-traduzione personalizzata di "Beej's Guide to Network Programming" ) (Prima parte) INTRODUZIONE Finalmente ho trovato una guida chiara e semplice

Dettagli

Le Reti Informatiche

Le Reti Informatiche Le Reti Informatiche modulo 10 Prof. Salvatore Rosta www.byteman.it s.rosta@byteman.it 1 Nomenclatura: 1 La rappresentazione di uno schema richiede una serie di abbreviazioni per i vari componenti. Seguiremo

Dettagli

Altri tipi di connessione

Altri tipi di connessione Altri tipi di connessione Francesca Martelli f.martel@di.unipi.it Socket Un socket è una connessione a una porta su un computer remoto, che è usata per scambiare informazioni con comandi HTTP Supponiamo

Dettagli

Reti di calcolatori e Internet

Reti di calcolatori e Internet Corso di Laboratorio di Tecnologie dell'informazione Reti di calcolatori e Internet Copyright Università degli Studi di Firenze - Disponibile per usi didattici Cos è Internet: visione dei componenti Milioni

Dettagli

CORSO DI RETI SSIS. Lezione n.3 9 novembre 2005 Laura Ricci

CORSO DI RETI SSIS. Lezione n.3 9 novembre 2005 Laura Ricci CORSO DI RETI SSIS Lezione n.3 9 novembre 2005 Laura Ricci IL LIVELLO TRASPORTO realizza un supporto per la comunicazione logica tra processi distribuiti comunicazione logica = astrazione che consente

Dettagli

Introduzione (parte III)

Introduzione (parte III) Introduzione (parte III) Argomenti della lezione Ripasso degli argomenti del primo corso: il livello di trasporto, il meccanismo di controllo delle congestioni e le applicazioni Il livello di trasporto

Dettagli

Livello di Trasporto

Livello di Trasporto Livello di Trasporto Introduzione Problemi e requisiti Livello di trasporto in Internet UDP -UserDatagramProtocol TCP - Transmission Control Protocol Meccanismo di ritrasmissione Controllo del flusso Three-way

Dettagli

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori a.a. 2009/10

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori a.a. 2009/10 Corso di Laurea in Ingegneria Informatica Corso di Reti di Calcolatori a.a. 2009/10 Roberto Canonico (roberto.canonico@unina.it) Antonio Pescapè (pescape@unina.it) Le socket di Berkeley Le socket di Berkeley

Dettagli

Sicurezza delle reti. Monga. Ricognizione. Scanning Breve ripasso socket Network mapping Port Scanning NMAP. Le tecniche di scanning

Sicurezza delle reti. Monga. Ricognizione. Scanning Breve ripasso socket Network mapping Port Scanning NMAP. Le tecniche di scanning Sicurezza dei sistemi e delle 1 Mattia Dip. di Informatica Università degli Studi di Milano, Italia mattia.monga@unimi.it Port Lezione V: Scansioni Port a.a. 2015/16 1 cba 2011 15 M.. Creative Commons

Dettagli

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

Indirizzi Internet e. I livelli di trasporto delle informazioni. Comunicazione e naming in Internet Indirizzi Internet e Protocolli I livelli di trasporto delle informazioni Comunicazione e naming in Internet Tre nuovi standard Sistema di indirizzamento delle risorse (URL) Linguaggio HTML Protocollo

Dettagli

Inter-process communication: socket

Inter-process communication: socket Le Socket Inter-process communication: socket Abbiamo visti alcune tipologie di Inter-process communication: Anonymous pipes FIFOs o named pipes Le socket di comunicazione si pongono nell'ipc per realizzare:

Dettagli