Opzioni per le Socket

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Opzioni per le Socket"

Transcript

1 Opzioni per le Socket A.A. 2005/06

2 Opzioni per le Socket Ogni socket aperto ha delle proprietà che ne determinano alcuni comportamenti Le opzioni del socket consentono di modificare tali proprietà Ogni opzione ha un valore di default: Alcune opzioni sono binarie (on o off) Altre hanno un valore (int o anche strutture più complesse) Le op. delle socket sono controllate mediante primitive: getsockopt() e setsockopt() : per configurare alcune caratteristiche proprie solo dei socket ioctlsocket()/fcntl(), per settare caratteristiche comuni a tutti i descrittori di I/O, quali comportamento bloccante o non bloccante.

3 Livello delle Opzioni Le opzioni sono divise in vari livelli Applicazione Socket API 1. SOL_SOCKET livello socket 2. IPPROTO_IP livello IP 3. IPPROTO_IPV6 livello IP per la versione 6 4. IPPROTO_ICMPV6 livello messaggi di controllo 5. IPPROTO_TCP livello TCP TCP/UDP IP strutturazione a livelli dei protocolli di rete l'interfaccia dei socket può usarne più di uno., Si avranno allora funzionalità e caratteristiche diverse per ciascun protocollo usato da una socket, quindi saranno anche diverse le opzioni che si potranno impostare per ciascun socket, a seconda del livello (trasporto, rete, ecc.) su cui si vuole andare ad operare.

4 Settaggio delle opzioni generiche Le opzioni tipiche per i socket possono essere settate solo quando il socket è reso disponibile all interfaccia di programmazione Es: socket di connessione ottenuta da un server in risposta ad una chiamata alla accept() Applicazion e Implementazione della socket Listening nuove conness. Q ** * accept() Blocca sino alla connessione con un client Evento descritto in Richiesta di connes-sione in entrata Ritorna il descrittore per questa socket (socket di connessione) Established Q W.X.Y.Z P A.B.C.D Rimuove la socket dalla lista di nuove conness. Listening Nuove connessi. Q ** * la socket creata verrà resa disponibile al programmatore solo quando questo farà eseguire la accept(). Per rendere possibile configurare la socket anche in questa situazione temporanea, l interfaccia socket implementa la politica seguente: la socket di connessione eredita dal listening socket alcune opzioni, invece di assumere le opzioni di default.

5 Le funzioni: set/getsockopt() Consentono rispettivamente di settare o leggere le opzioni dui una socket valida int setsockopt( SOCKET s, int level, int optname, const char* optval, int optlen ); descrittore di socket Livello a cui è definita l opz. Nome dell opz. Pt. Al buffer con il valore da assegnare all opz. Dimensione del buffer int getsockopt( SOCKET s, int level, int optname, const char* optval, int optlen ); descrittore di socket Livello a cui è definita l opz. Nome dell opz. Pt. Al buffer con il valore da assegnare all opz. Dimensione del buffer Restituiscono 0 in caso di successo. Il codice di errore altrimenti

6 Opzioni del livello SOL_SOCKET Dichiarete in winsok2.h

7 Alcuni esempi di Opzioni per le socket: livello SOL_SOCKET SO_BROADCAST: abilita o disabilita la possibilità per una socket di spedire messaggi broadcast. Viene applicato solo ai socket datagram (DGRAM) e solo se la rete sottostante lo permette. Per default questa opzione è disabilitata, per impedire ad un processo di spedire accidentalmente un datagram in broadcast. SO_DEBUG è supportata solo da TCP, e ordina al kernel di mantenere informazioni su tutti i pacchetti spediti o ricevuti da/a un certo socket, in una coda circolare. SO_KEEPALIVE: è applicata solo agli stream TCP, per verificare se una connessione che da molto tempo non scambia dati debba essere chiusa o no. Il motivo per cui una connessione deve essere chiusa da un end system e che l altro end system a) e down, b) non e raggiungibile (retepartizionata o problema nel routing), c) non e piu interessato a quella connessione.

8 Alcuni esempi di Opzioni per le socket: livello SOL_SOCKET (cont.) SO_RCVBUF e SO_SNDBUF: servono a modificare la dimensione dei buffer di ricezione e trasmissione del TCP e dell UDP. Per il TCP la dimensione del buffer di ricezione viene mandata all atto dell instaurazione della connessione. E quindi necessario che per il server questa opzione sia settata prima della chiamata alla listen(), mentre per il client deve essere settata prima della chiamata alla connect(). Invece per UDP il buffer di ricezione determina la dimensione massima dei datagram che possono essere accettati. TCP

9 Alcuni esempi di Opzioni per le socket: livello SOL_SOCKET (cont.) SO_REUSEADDR e SO_REUSEPORT: permettono di effettuare la bind() su porte e indirizzi IP gia utilizzati da qualche altro processo. La SO_REUSEADDR ad es. puo essere utile nei seguenti casi: si cerca di fare la bind() per una listening socket che e stata chiusa e si vuol fare ripartire, quando ancora esiste una connected socket nata dall listening socket appena chiusa. ci sono piu socket di connessione che lavorano sulla stessa porta di un host ma con IP diversi. (es: web server che devono lavorare sulla stessa well know port 80 ma su interfacce diverse) SO_TYPE: usata solo in lettura, restituisce il tipo del socket, SOCK_STREAM o SOCK_DGRAM.

10 Alcuni esempi di Opzioni per le socket: livello SOL_SOCKET (cont.) SO_LINGER: Determina le modalita di chiusura realizzate dalla funzione close() (closesocket() per winsock). Viene usato come argomento optval della setsockopt() un puntatore ad una struttura di tipo: typedef struct linger { int l_onoff; /* 0=OFF, nonzero= ON*/ int l_linger; /*timeout*/ } linger; Per default la close() restituisce subito il controllo al chiamante, ma se alcuni dati rimangono nei buffer di spedizione il TCP tenta di spedirli. Applicazione close() Returns immediately Implementazione della socket Established P A.B.C.D Q W.X.Y.Z Ha inizio un handshake di chiusura, Il descrittore viene deallocato Closed Hs msg Half-Closed P P A.B.C.D A.B.C.D Q Q Dott.ssa W.X.Y.Z Valeria Carofiglio W.X.Y.Z Hs ack Time-wait P A.B.C.D Q W.X.Y.Z

11 Alcuni esempi di Opzioni per le socket: livello SOL_SOCKET (cont.) typedef struct linger { int l_onoff; /* 0=OFF, nonzero= ON*/ int l_linger; /*timeout*/ } linger; se l_onoff==0 l opzione SO_LINGER e disabilitata: chiusura di default se l_onoff!= 0 e l_linger==0 quando una socket chiama la close(), il TCP chiude la connessione in modo traumatico, non spedendo i dati eventualmente bufferizzati per la spedizione. Non si va nello stato TIME_WAIT e si rischia di danneggiare l apertura di una nuova connessione con gli stessi indirizzi IP e di porta. In entrambi i casi non sappiamo se il TCP peer ha ricevuto tutti i dati, e nemmeno se li ha ricevuti l application peer.

12 Alcuni esempi di Opzioni per le socket: livello SOL_SOCKET (cont.) typedef struct linger { int l_onoff; /* 0=OFF, nonzero= ON*/ int l_linger; /*timeout*/ } linger; se l_onoff!= 0 e l_linger!=0 quando una socket chiama la close(), se la socket e di tipo bloccante (e il default) il TCP tenta di spedire i dati eventualmente bufferizzati per la spedizione, fino a che siverifica una di queste condizioni: tutti i dati sono trasmessi e riscontrati dal TCP peer, ed allora la funzione close() restituisce il controllo al chiamante con risultato 0, passando dallo stato TIME_WAIT. OPPURE scade il tempo assegnato di attesa l_linger e la funzione close() restituisce -1 mandando un segment RST (reset) all altro end-system, e non passa dallo stato TIME_WAIT.

13 Esempio: dimensionamento del buffer int rcvbuffersize; int sockoptsize;.. /*preleva la dimensione di origine del buffer*/ sockoptsize = sizeof(rcvbuffersize); If(getsockopt(m_socket, SOL_SOCKET, SO_RCVBUF, &rcvbuffersize, &sockoptsize) < 0) /*gestione errore*/ printf( initial receive buffer size: %d\n, rcvbuffersize); /*raddoppia la dimensione del buffer*/ rcvbuffersize *=2; If(setsockopt(m_socket, SOL_SOCKET, SO_RCVBUF, &rcvbuffersize, sizeof(rcvbuffersize)) < 0) /*gestione errore*/

14 Un esempio di Opzioni socket per TCP: livello IPPROTO_TCP TCP_NODELAY Per default il TCP abilita il cosiddetto Algoritmo di Nagle (Nagle Algorithm) il cui scopo e di diminuire il numero di segmenti piccoli trasmessi, come nel caso di client telnet che prevedono l ACK per ogni singolo carattere battuto a tastiera. Questo algoritmo è legato all algoritmo dell ACK ritardato (delayed ACK algorithm) che fa aspettare il TCP per circa msec) prima di dare l ack ad un segmento, sperando di poter accodare l ACK ad un segmento di dati. Questi due algoritmi assieme cercano di minimizzare il numero disegmenti trasmessi, ma producono ritardo per applicazioni che scambiano piccoli dati e quasi solo in una direzione. L opzione TCP_NODELAY disabilita l uso di questi algoritmi.

15 Esempio2: uso della setsockopt() #include <stdio.h> #include "winsock2.h" void main() { // // Declare variables WSADATA wsadata; SOCKET ListenSocket; sockaddr_in service; // // Initialize Winsock int iresult = WSAStartup( MAKEWORD(2,2), &wsadata ); if( iresult!= NO_ERROR ) printf("error at WSAStartup\n"); // // Create a listening socket ListenSocket = socket( AF_INET, SOCK_STREAM, IPPROTO_TCP ); if (ListenSocket == INVALID_SOCKET) { printf("error at socket()\n"); WSACleanup(); return; }

16 Esempio2: uso della setsockopt()(cont.) // // Bind the socket to the local IP address // and port hostent* thishost; char* ip; u_short port; port = 27015; thishost = gethostbyname(""); ip = inet_ntoa (*(struct in_addr *)*thishost->h_addr_list); service.sin_family = AF_INET; service.sin_addr.s_addr = inet_addr(ip); service.sin_port = htons(port); if ( bind( ListenSocket,(SOCKADDR*) &service, sizeof(service) ) == SOCKET_ERROR ) { printf("bind failed\n"); closesocket(listensocket); return; }

17 Esempio2: uso della setsockopt()(cont.) // Initialize variables and call setsockopt. // The SO_KEEPALIVE parameter is a socket option // that makes the socket send keepalive messages // on the session. The SO_KEEPALIVE socket option // requires a boolean value to be passed to the // setsockopt function. If TRUE, the socket is // configured to send keepalive messages, if FALSE // the socket configured to NOT send keepalive messages. // This section of code tests the setsockopt function // by checking the status of SO_KEEPALIVE on the socket // using the getsockopt function. BOOL boptval = TRUE; int boptlen = sizeof(bool); int ioptval; int ioptlen = sizeof(int); if (getsockopt(listensocket, SOL_SOCKET, SO_KEEPALIVE, (char*)&ioptval, &ioptlen)!= SOCKET_ERROR) { printf("so_keepalive Value: %ld\n", ioptval); } if (setsockopt(listensocket, SOL_SOCKET, SO_KEEPALIVE, (char*)&boptval, boptlen)!= SOCKET_ERROR) { printf("set SO_KEEPALIVE: ON\n"); } if (getsockopt(listensocket, SOL_SOCKET, SO_KEEPALIVE, (char*)&ioptval, &ioptlen)!= SOCKET_ERROR) { printf("so_keepalive Value: Dott.ssa %ld\n", Valeria ioptval); Carofiglio } WSACleanup(); return; }

18 Esempio3: uso della getsockopt() #include <stdio.h> #include "winsock2.h" void main() { // // Declare variables WSADATA wsadata; SOCKET ListenSocket; sockaddr_in service; // // Initialize Winsock int iresult = WSAStartup( MAKEWORD(2,2), &wsadata ); if( iresult!= NO_ERROR ) printf("error at WSAStartup\n"); // // Create a listening socket ListenSocket = socket( AF_INET, SOCK_STREAM, IPPROTO_TCP ); if (ListenSocket == INVALID_SOCKET) { printf("error at socket()\n"); WSACleanup(); return; }

19 Esempio3: uso della getsockopt()(cont.) // // Bind the socket to the local IP address // and port hostent* thishost; char* ip; u_short port; port = 27015; thishost = gethostbyname(""); ip = inet_ntoa (*(struct in_addr *)*thishost->h_addr_list); service.sin_family = AF_INET; service.sin_addr.s_addr = inet_addr(ip); service.sin_port = htons(port); if ( bind( ListenSocket,(SOCKADDR*) &service, sizeof(service) ) == SOCKET_ERROR ) { printf("bind failed\n"); closesocket(listensocket); return; }

20 Esempio3: uso della getsockopt()(cont.) // // Initialize variables and call getsockopt. // The SO_ACCEPTCONN parameter is a socket option // that tells the function to check whether the // socket has been put in listening mode or not. // The various socket options return different // information about the socket. This call should // return 0 to the optval parameter, since the socket // is not in listening mode. int optval; int optlen = sizeof(int); if (getsockopt(listensocket, SOL_SOCKET, SO_ACCEPTCONN, (char*)&optval, &optlen)!= SOCKET_ERROR) printf("sockopt Value: %ld\n", optval); // // Put the listening socket in listening mode. if (listen( ListenSocket, 100 ) == SOCKET_ERROR) { printf("error listening\n"); } // // Call getsockopt again to verify that // the socket is in listening mode. if (setsockopt(listensocket, SOL_SOCKET, SO_ACCEPTCONN, (char*)&optval, &optlen)!= SOCKET_ERROR) printf("sockopt Value: %ld\n", optval); WSACleanup(); return; }

21 I/O bloccante Per default una socket e bloccante: Applicazione Kernel quando la socket deve effettuare un operazione di I/O, se questa non puo essere terminata immediatamente il processo si mette in attesa aspettando la fine dell operazione. Lettura Recvfrom() Bloccata System Call Attesa Copia Non ci sono dati pronti Inizo Copia OK

22 I/O non bloccante: Operazioni di input (read/recevfrom) Con una socket Non Bloccante: Applicazione Kernel se l operazione di input non puo essere terminata (non c e nemmeno un byte per il socket TCP o nemmeno un datagram per il socket UDP) la funzione ritorna immediatamente al chiamante restituendo il codice d errore EWOULDBLOCK (polling). Lettura Recvfrom() Attesa System Call EWOULDBLOCK System Call EWOULDBLOCK OK Attesa Copia Non ci sono dati pronti Inizo Copia

23 I/O non bloccante: operazioni di output (write/sendto) Con una socket Non Bloccante di tipo TCP, se l operazione di scrittura non puo essere effettuata nemmeno in parte perche manca spazio nei buffer del TCP in cui andare a scrivere i dati, la funzione ritorna immediatamente al chiamante restituendo il codice d errore EWOULDBLOCK. Se invece e rimasto spazio, viene effettuata una scrittura di una porzione di dati minore o uguale alla dimensione del buffer libero, e la write restituisce il numero di byte scritti. Con un socket Non Bloccante di tipo UDP invece il problema non sussiste perche nessun datagram viene mantenuto in un buffer perche non c e ritrasmissione, quindi il datagram UDP viene immediatamente spedito e vada come vada. Quindi una primitiva di output di un socket UDP non blocca mai il processo che l effettua.

24 Un esempio di meccanismo per il controllo di un comportamento bloccante indesiderato: Socket Non Bloccanti Cambiare il comportamento delle socket per rendere le chiamate non bloccanti: Operazioni richieste possono essere completate immediatamente: il valore di ritorno della funzione indica successo altrimenti: il valore di ritorno della funzione indica fallimento (-1) (attenzione a distinguere) Winsock fa uso della funzioneioctlsocket() per controllare l I/O di una socket Unix fa uso della funzione fcntl() per controllare l I/O di una socket LE DUE FUNZIONI Dott.ssa NON Valeria SONO CarofiglioEQUIVALENTI

25 La funzione: fcntl() Consente (tra l altro) di settare i fleg per il controllo del bloccaggio di una socket valida int fcntl (int socket, int command, long argument); descrittore di socket Specifica dei flag (O_NONBLOCK ) Operazione da effettuare (F_GETFL e F_SETFL) la procedura corretta per settare un flags consiste nel: leggere i flags del descrittore mediante il comando F_GETFL, modificare solo il flag che interessa, settare i nuovi flags per il socket mediante il comando F_SETFL

26 La funzione: ioctlsocket() Consente (tra l altro) di settare i fleg per il controllo del bloccaggio di una socket valida int ioctlsocket (int socket, int command, u_long *argument); descrittore di socket Non-0 per abilitare la modalità non bloccante Operazione da effettuare (FIONBIO FIONREAD.) FIONBIO: I/O bloccante o no FIONREAD: per determinare l ammontare di dati in poendenza nel buffer che puo essere letto dalla socket s

27 Esempio: socket non bloccante // // Initialize Winsock WSADATA wsadata; int iresult = WSAStartup(MAKEWORD(2,2), &wsadata); if (iresult!= NO_ERROR) printf("error at WSAStartup()\n"); // // Create a SOCKET object. SOCKET m_socket; m_socket = socket(af_inet, SOCK_STREAM, IPPROTO_TCP); if (m_socket == INVALID_SOCKET) { printf("error at socket(): %ld\n", WSAGetLastError()); WSACleanup(); return; } // // Set the socket I/O mode: In this case FIONBIO // enables or disables the blocking mode for the // socket based on the numerical value of imode. // If imode = 0, blocking is enabled; // If imode!= 0, non-blocking mode is enabled. u_long imode = 0; ioctlsocket(m_socket, FIONBIO, &imode);

28 Socket non bloccanti: altri esempi di comportamento Operazioni di Accettazione Richiesta Connessione (accept). Con un socket Non Bloccante, se l operazione di accept non puo restituire immediatamente una nuova connessione perche la coda delle connessioni accettate e vuota, la funzione ritorna immediatamente al chiamante restituendo il codice d errore EWOULDBLOCK.

29 Socket non bloccanti: altri esempi di comportamento Operazioni di Richiesta Connessione (connect). Con un socket UDP la funzione connect non e realmente bloccante, perche deve solo scrivere nel kernel l indirizzo IP e il numero di porta dell altro endsystem, quindi anche nel caso di socket Non Bloccante la connect per l UDP effettua sempre l operazione interamente e restituisce il controllo al chiamante. Invece per il TCP la chiamata del client alla connect() di un socket bloccante deve aspettare che, all interno del three way handshake, il client abbia ricevuto il primo ACK. Solo allora puo veramente bloccare il processo. Se il socket TCP e di tipo Non Bloccante, la chiamata del client alla connect() fa iniziare il procedimento di inizio connessione, cioe fa spedire il primo ACK, ma se la connessione non puo immediatamente essere instaurata la connect() termina con un codice d errore EINPROGRESS ad indicare che l operazione continua a livello inferiore.

Laboratorio di Programmazione in Rete

Laboratorio di Programmazione in Rete Laboratorio di Programmazione 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

Laboratorio di Programmazione in Rete

Laboratorio di Programmazione in Rete Laboratorio di Programmazione 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

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

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

Le Opzioni per i Socket

Le Opzioni per i Socket Advanced TCP Socket Le Opzioni per i Socket Le opzioni per i socket sono controllate mediante tre tipi di primitive: 1) le funzioni getsockopt() e setsockopt(), che permettono di configurare alcune caratteristiche

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

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

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

P3-05: Socket Options

P3-05: Socket Options Autunno 2002 Prof. Roberto De Prisco -05: Socket Options Università degli studi di Salerno Laurea e Diploma in Informatica Socket options 05.2 Ogni socket aperto ha delle proprietà che ne determinano alcuni

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

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

Reti di Calcolatori - Laboratorio. Lezione 7. Gennaro Oliva

Reti di Calcolatori - Laboratorio. Lezione 7. Gennaro Oliva Reti di Calcolatori - Laboratorio Lezione 7 Gennaro Oliva Opzioni di socket Ogni socket aperto ha un insieme di opzioni associate che ne determinano il comportamento Distinguiamo due tipi: opzioni binarie

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

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

L uso di Socket UDP. Usiamo le API Winsock incluse in <Winsock.h> A.A. 2005/06. Dott.ssa Valeria Carofiglio

L uso di Socket UDP. Usiamo le API Winsock incluse in <Winsock.h> A.A. 2005/06. Dott.ssa Valeria Carofiglio L uso di Socket UDP Usiamo le API Winsock incluse in A.A. 2005/06 TCP TCP vs. UDP UDP Interazione UDP Client/Server Server 1. (Inizializzare una WSA) 2. Creare una socket 3. Assegnare un local

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

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

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

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

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

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

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

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

Esercizi (1-2): da: TCP/IP Sockets in C (Donahoo-Calvert)

Esercizi (1-2): da: TCP/IP Sockets in C (Donahoo-Calvert) Esercizi PARTE 1 Esercizi (1-2): da: TCP/IP Sockets in C (Donahoo-Calvert) When you make a phone call, it s usually the callee that answers with hello. What changes to our example client and server would

Dettagli

Socket API per il Multicast

Socket API per il Multicast Socket API per il Multicast Massimo Bernaschi Istituto per le Applicazioni del Calcolo Mauro Picone Consiglio Nazionale delle Ricerche Viale del Policlinico, 137-00161 Rome - Italy http://www.iac.cnr.it/

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

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

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

TECN.PROG.SIST.INF. UDP socket in Windows. Roberta Gerboni

TECN.PROG.SIST.INF. UDP socket in Windows. Roberta Gerboni Roberta Gerboni Schema logico della comunicazione UDP in linguaggio C mediante Datagram socket. bind () Con i datagram socket (SOCK_DGRAM) viene realizzata una comunicazine che permette di scambiare dati

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

(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

Programmazione dei socket con TCP #2

Programmazione dei socket con TCP #2 I Il Server e il Client si scambiano messaggi attraverso la rete mediante un dell API (Application Programming Interface) Telematica II 10. Esercitazione/Laboratorio 3 Server ports Clients user space Socket

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

Laboratorio di Programmazione in Rete

Laboratorio di Programmazione in Rete Laboratorio di Programmazione 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

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

Introduzione al Linguaggio C

Introduzione al Linguaggio C Introduzione al Linguaggio C File I/O Daniele Pighin April 2009 Daniele Pighin Introduzione al Linguaggio C 1/15 Outline File e dati Accesso ai file File I/O Daniele Pighin Introduzione al Linguaggio C

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

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

Elementi sull uso dei firewall

Elementi sull uso dei firewall Laboratorio di Reti di Calcolatori Elementi sull uso dei firewall Carlo Mastroianni Firewall Un firewall è una combinazione di hardware e software che protegge una sottorete dal resto di Internet Il firewall

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

Do-Dots Protocollo di comunicazione

Do-Dots Protocollo di comunicazione Do-Dots Protocollo di comunicazione Ultimo aggiornamento 10 maggio 2011 rev3 Spiegazioni 10/05/2011 rev2 Primo aggiornamento con attuali comandi 03/05/2011 rev1 - Stesura iniziale 14/05/2010 DOCUMENTO

Dettagli

Inizializzazione degli Host. BOOTP e DHCP

Inizializzazione degli Host. BOOTP e DHCP BOOTP e DHCP a.a. 2002/03 Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/~auletta/ Università degli studi di Salerno Laurea e Diploma in Informatica 1 Inizializzazione degli Host Un

Dettagli

LABORATORIO di Reti di Calcolatori

LABORATORIO di Reti di Calcolatori LABORATORIO di Reti di Calcolatori Socket in linguaggio C: protocollo connection-oriented 1 of 15 v slide della docente Bibliografia v testo di supporto: D. Maggiorini, Introduzione alla programmazione

Dettagli

Networking. Mauro Migliardi Ph. D.

Networking. Mauro Migliardi Ph. D. Software Architectures Networking Mauro Migliardi Ph. D. A word of wisdom The word networking strikes fear in the hearts of many programmers. Fear not! Using the networking capabilities provided in the

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. 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

IPC Inter Process Communication

IPC Inter Process Communication 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

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

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

Come si può vedere, la regola è stata fatta in modo da spostare tutti i messaggi di Spam nella cartella del cestino.

Come si può vedere, la regola è stata fatta in modo da spostare tutti i messaggi di Spam nella cartella del cestino. www.playnet.it agg. Documento 1/03/2007 REGOLE DEL CLIENT Le regole del client sono un sistema di smistamento dei messaggi (arrivati) fra le varie cartelle di posta presenti sul server. Possono essere

Dettagli

Interazione (TCP) Client-Server con le socket

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

Dettagli

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

1. RETI INFORMATICHE CORSO DI LAUREA IN INGEGNERIA INFORMATICA SPECIFICHE DI PROGETTO A.A. 2013/2014. 1.1 Lato client RETI INFORMATICHE - SPECIFICHE DI PROGETTO A.A. 2013/2014 1. RETI INFORMATICHE CORSO DI LAUREA IN INGEGNERIA INFORMATICA SPECIFICHE DI PROGETTO A.A. 2013/2014 Il progetto consiste nello sviluppo di 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

dall argomento argomento della malloc()

dall argomento argomento della malloc() Allocazione dinamica Quando? Tutte le volte in cui i dati possono crescere in modo non prevedibile staticamente a tempo di sviluppo Un array con dimensione i fissata a compile-time non è sufficiente È

Dettagli

Blocchi funzione: FbModbusAsciiMs

Blocchi funzione: FbModbusAsciiMs Pagina 1 di 6 ELSIST Srl, www.elsist.it Blocchi funzione MNL041Q000 FbModbusAsciiMs Questo blocco funzione permette lo scambio di dati tra due sistemi, uno master ed uno slave, utilizzando una connessione

Dettagli

Gestione dei File in C

Gestione dei File in C Gestione dei File in C Maurizio Palesi DIIT Università di Catania Viale Andrea Doria 6, 95125 Catania mpalesi@diit.unict.it http://www.diit.unict.it/users/mpalesi Sommario In questo documento saranno introdotte

Dettagli

Interprocess Communications - II. Franco Maria Nardini

Interprocess Communications - II. Franco Maria Nardini Interprocess Communications - II Franco Maria Nardini XSI IPC Tre tipi di IPC introdotti da System V: semafori shared memory code di messaggi Comunicazioni tra processi su stesso host Tutte consentono

Dettagli

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

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 7 Febbraio 2005, ore 15.00 Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 7 Febbraio 2005, ore 15.00 NB: alcune domande hanno risposta multipla: si richiede di identificare TUTTE le risposte corrette. Cognome: Nome:

Dettagli

Arduino Quick Ethernet library Reference

Arduino Quick Ethernet library Reference Arduino Quick Ethernet library Reference Di Luca Panebianco per Automazione Open Source Versione 1.0 www.xploreautomation.com Pag 1 Indice dei contenuti 1 Classe Ethernet...3 2 Classe IPAddress...3 3 Classe

Dettagli

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it MODELLO CLIENT/SERVER Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it POSSIBILI STRUTTURE DEL SISTEMA INFORMATIVO La struttura di un sistema informativo

Dettagli

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

Il client deve stampare tutti gli eventuali errori che si possono verificare durante l esecuzione. RETI INFORMATICHE CORSO DI LAUREA IN INGEGNERIA INFORMATICA SPECIFICHE DI PROGETTO A.A. 2010/2011 Il progetto consiste nello sviluppo di un applicazione client/server. Sia il server che il client dovranno

Dettagli

IL LIVELLO TRASPORTO Protocolli TCP e UDP

IL LIVELLO TRASPORTO Protocolli TCP e UDP Reti di Calcolatori ed Internet IL LIVELLO TRASPORTO Protocolli TCP e UDP 5-1 Il Livello Trasporto I servizi del livello Trasporto Le primitive di Trasporto Indirizzamento Protocolli di Trasporto Livello

Dettagli

L API socket ed i daemon

L API socket ed i daemon L API socket ed i daemon Massimo Bernaschi Istituto per le Applicazioni del Calcolo Mauro Picone Consiglio Nazionale delle Ricerche Viale del Policlinico, 137-00161 Rome - Italy http://www.iac.cnr.it/

Dettagli

Introduzione. Concetti Preliminari Obiettivi. Portscanning. Scan Detector. Modello TCP/IP Three Way Handshake

Introduzione. Concetti Preliminari Obiettivi. Portscanning. Scan Detector. Modello TCP/IP Three Way Handshake Corso di Sicurezza su Reti anno 2001/ 2002 Rilevazione dei Relatori : Capuano Giuseppe Veropalumbo Edoardo Vittore Emanuele Docente del Corso : Prof. De Santis Alfredo Introduzione Concetti Preliminari

Dettagli

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

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione I semestre 04/05 Comunicazione tra Computer Protocolli Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/professori/auletta/ Università degli studi di Salerno Laurea in Informatica 1

Dettagli

Funzioni. Il modello console. Interfaccia in modalità console

Funzioni. Il modello console. Interfaccia in modalità console Funzioni Interfaccia con il sistema operativo Argomenti sulla linea di comando Parametri argc e argv Valore di ritorno del programma La funzione exit Esercizio Calcolatrice 2, presente in tutti i programmi

Dettagli

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

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2015-16. Pietro Frasca. Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2015-16 Pietro Frasca Lezione 15 Martedì 24-11-2015 Struttura logica del sottosistema di I/O Processi

Dettagli

Firewall e NAT A.A. 2005/2006. Walter Cerroni. Protezione di host: personal firewall

Firewall e NAT A.A. 2005/2006. Walter Cerroni. Protezione di host: personal firewall Firewall e NAT A.A. 2005/2006 Walter Cerroni Protezione di host: personal firewall Un firewall è un filtro software che serve a proteggersi da accessi indesiderati provenienti dall esterno della rete Può

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

Sicurezza nelle applicazioni multimediali: lezione 9, firewall. I firewall

Sicurezza nelle applicazioni multimediali: lezione 9, firewall. I firewall I firewall Perché i firewall sono necessari Le reti odierne hanno topologie complesse LAN (local area networks) WAN (wide area networks) Accesso a Internet Le politiche di accesso cambiano a seconda della

Dettagli

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto: Tipi primitivi Il linguaggio Java offre alcuni tipi di dato primitivi Una variabile di tipo primitivo può essere utilizzata direttamente. Non è un riferimento e non ha senso tentare di istanziarla mediante

Dettagli

TCP: trasmissione Source port [16 bit] - Identifica il numero di porta sull'host mittente associato alla connessione TCP. Destination port [16 bit] - Identifica il numero di porta sull'host destinatario

Dettagli

Esercitazione [5] Input/Output su Socket

Esercitazione [5] Input/Output su Socket Esercitazione [5] Input/Output su 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 Calcolo

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

Gestione della Connessione in TCP

Gestione della Connessione in TCP I semestre 03/04 Gestione della Connessione in TCP Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/professori/auletta/ Riscontro e Ritrasmissione Per ogni segmento spedito la sorgente

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

Funzioni in C. Violetta Lonati

Funzioni in C. Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni

Dettagli

RETI DI CALCOLATORI. Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI. Facoltà di Ingegneria Università degli Studi di Udine

RETI DI CALCOLATORI. Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI. Facoltà di Ingegneria Università degli Studi di Udine RETI DI CALCOLATORI Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine 2003 Pier Luca Montessoro (si veda la nota a pagina 2) 1 Nota di Copyright Questo

Dettagli

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Prova completa Martedì 15 Novembre 2005

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Prova completa Martedì 15 Novembre 2005 Prova di Esame - Rete Internet (ing. Giovanni Neglia) Prova completa Martedì 15 Novembre 2005 Si svolga il compito su questi fogli. Nel caso di domande a risposta aperta, lo spazio lasciato sul foglio

Dettagli

Dynamic Linking. Introduzione Creazione di una libreria dinamica Uso di una libreria dinamica

Dynamic Linking. Introduzione Creazione di una libreria dinamica Uso di una libreria dinamica Dynamic Linking Introduzione Creazione di una libreria dinamica Uso di una libreria dinamica Dynamic Linking Il linking tra i moduli di un programma e le librerie da esso utilizzate può essere Statico

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

10.1. Un indirizzo IP viene rappresentato in Java come un'istanza della classe InetAddress.

10.1. Un indirizzo IP viene rappresentato in Java come un'istanza della classe InetAddress. ESERCIZIARIO Risposte ai quesiti: 10.1. Un indirizzo IP viene rappresentato in Java come un'istanza della classe InetAddress. 10.2. Un numero intero in Java è compreso nell'intervallo ( 2 31 ) e (2 31

Dettagli

Sistemi Operativi: Programmazione di Sistema

Sistemi Operativi: Programmazione di Sistema Corso di Sistemi Operativi: Programmazione di Sistema Corso di Laurea in Informatica, Università di Firenze Anno accademico 2011/2012 Prof. Luca Ferrari e-mail: ferrari@dsi.unifi.it telefono: 055 4237454

Dettagli

IL LIVELLO TRASPORTO Protocolli TCP e UDP

IL LIVELLO TRASPORTO Protocolli TCP e UDP Reti di Calcolatori IL LIVELLO TRASPORTO Protocolli TCP e UDP D. Talia RETI DI CALCOLATORI - UNICAL 5-1 Il Livello Trasporto I servizi del livello Trasporto Le primitive di Trasporto Indirizzamento Protocolli

Dettagli

I file di dati. Unità didattica D1 1

I file di dati. Unità didattica D1 1 I file di dati Unità didattica D1 1 1) I file sequenziali Utili per la memorizzazione di informazioni testuali Si tratta di strutture organizzate per righe e non per record Non sono adatte per grandi quantità

Dettagli

Strutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1)

Strutture. Strutture e Unioni. Definizione di strutture (2) Definizione di strutture (1) Strutture Strutture e Unioni DD cap.10 pp.379-391, 405-406 KP cap. 9 pp.361-379 Strutture Collezioni di variabili correlate (aggregati) sotto un unico nome Possono contenere variabili con diversi nomi

Dettagli

P2-11: BOOTP e DHCP (Capitolo 23)

P2-11: BOOTP e DHCP (Capitolo 23) Autunno 2002 Prof. Roberto De Prisco -11: BOOTP e DHCP (Capitolo 23) Università degli studi di Salerno Laurea e Diploma in Informatica Indirizzi IP dinamici 11.2 Un indirizzo IP statico è assegnato ad

Dettagli

Introduzione alla programmazione in C

Introduzione alla programmazione in C Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale

Dettagli

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

Nelle reti di calcolatori, le porte (traduzione impropria del termine. port inglese, che in realtà significa porto) sono lo strumento I protocolli del livello di applicazione Porte Nelle reti di calcolatori, le porte (traduzione impropria del termine port inglese, che in realtà significa porto) sono lo strumento utilizzato per permettere

Dettagli

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Venerdì 18 Febbraio 2005, ore 9.30

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Venerdì 18 Febbraio 2005, ore 9.30 Prova di Esame - Rete Internet (ing. Giovanni Neglia) Venerdì 18 Febbraio 2005, ore 9.30 NB: alcune domande hanno risposta multipla: si richiede di identificare TUTTE le risposte corrette. Cognome: Nome:

Dettagli

Appunti tratti dal videocorso on-line di Algoritmi e Programmazione Avanzata By ALeXio

Appunti tratti dal videocorso on-line di Algoritmi e Programmazione Avanzata By ALeXio Appunti tratti dal videocorso on-line di Algoritmi e Programmazione Avanzata By ALeXio 1-La memoria dinamica La scrittura di un programma (indipendentemente dal linguaggio adottato) deve sempre tener conto

Dettagli

Laboratorio di Sistemi Operativi

Laboratorio di Sistemi Operativi Le FIFO pipe vs fifo la pipe può essere usata solo tra processi "imparentati" (che hanno un antenato comune che ha creato la pipe) la fifo consente di scambiare dati tra processi qualsiasi 2 1 FIFO (named

Dettagli

ISTITUTO TECNICO INDUSTRIALE STATALE LA GESTIONE DEI FILE DI TESTO IN C++

ISTITUTO TECNICO INDUSTRIALE STATALE LA GESTIONE DEI FILE DI TESTO IN C++ ISTITUTO TECNICO INDUSTRIALE STATALE G A L I L E O F E R R A R I S DIISPENSA DII IINFORMATIICA E SIISTEMII AUTOMATIICII LA GESTIONE DEI FILE DI TESTO IN C++ Le classi per la gestione dei file. Il C++ è

Dettagli

Esercitazione. Formato di compitini e compiti: domande ed esercizi "closed book" G. Ferrari - Reti di calcolatori.

Esercitazione. Formato di compitini e compiti: domande ed esercizi closed book G. Ferrari - Reti di calcolatori. Esercitazione Formato di compitini e compiti: domande ed esercizi "closed book" Esercitazione - 1 Domanda 1 In una comunicazione di rete tra due host, quale è il client e quale è il server. Necessario:

Dettagli

Sistemi di Elaborazione. Introduzione alla Programmazione distribuita

Sistemi di Elaborazione. Introduzione alla Programmazione distribuita Sistemi di Elaborazione Introduzione alla Programmazione distribuita Obiettivi Introdurre i concetti di base su programmazione distribuita Modello Client-Server Interfaccia Socket Progettare e realizzare

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

Socket & RMI Ingegneria del Software - San Pietro

Socket & RMI Ingegneria del Software - San Pietro Socket & RMI Ingegneria del Software - San Pietro Socket È possibile trattare la comunicazione di rete allo stesso modo con cui è possibile trattare la lettura da file. La classe Socket rappresenta la

Dettagli

Inizializzazione, Assegnamento e Distruzione di Classi

Inizializzazione, Assegnamento e Distruzione di Classi Inizializzazione, Assegnamento e Distruzione di Classi Lezione 9 Operazioni Automatiche In ogni programma C++ oggetti classe vengono gestiti automaticamente dal compilatore Inizializzati al momento della

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

ESERCIZI DI PROGRAMMAZIONE C IN AMBIENTE UNIX

ESERCIZI DI PROGRAMMAZIONE C IN AMBIENTE UNIX ESERCIZI DI PROGRAMMAZIONE C IN AMBIENTE UNIX Introduzione In questa dispensa sono stati raccolti alcuni esercizi di programmazione C in ambiente Unix, tratti dagli esami di Sistemi Operativi svoltisi

Dettagli