Opzioni per le Socket
|
|
- Arturo Grande
- 8 anni fa
- Visualizzazioni
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 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
DettagliLaboratorio 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
DettagliOpzioni 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
DettagliCreare 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
DettagliLe 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
DettagliLaboratorio 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
DettagliJ+... 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
DettagliUna 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
DettagliP3-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
DettagliI/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
DettagliCenni 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
DettagliReti 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
DettagliIntroduzione 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
DettagliI 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
DettagliL 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
DettagliControllo 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
DettagliLaboratorio 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
DettagliInterazione (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
DettagliEsercitazione [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
DettagliSocket TCP. prima parte
Socket TCP prima parte Cosa cambia: socket int fd = socket(pf_inet, SOCK_STREAM, 0); if (fd
DettagliDATAGRAM 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
DettagliHTTP 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
DettagliIntroduzione 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
DettagliEsercizi (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
DettagliSocket 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/
DettagliSocket 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(...)
DettagliCOMUNICAZIONE 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
Dettaglirsystem 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..................................................................................
DettagliTECN.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
DettagliL 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& 3ULPRHVHUFL]LR6RFNHWVWUHDPFRQULGLUH]LRQH Si progetti un applicazione distribuita Client/Server per una rete di workstation UNIX (BSD oppure System V). In particolare,
DettagliProgrammazione 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
DettagliParadigma 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
DettagliLaboratorio 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
DettagliUDP. 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
DettagliIntroduzione 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
DettagliTransmission 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
DettagliLaboratorio 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
DettagliElementi 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
DettagliSistemi 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à
DettagliDo-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
DettagliInizializzazione 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
DettagliLABORATORIO 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
DettagliNetworking. 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
DettagliScrittura 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
DettagliSocket. 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
DettagliIPC 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
DettagliEsempio 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
DettagliTECNOLOGIE 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
DettagliCome 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
DettagliInterazione (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.
Dettagli1. 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
DettagliUso 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
Dettaglidall 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 È
DettagliBlocchi 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
DettagliGestione 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
DettagliInterprocess 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
DettagliProva 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:
DettagliArduino 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
DettagliMODELLO 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
DettagliIl 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
DettagliIL 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
DettagliL 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/
DettagliIntroduzione. 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
DettagliComunicazione 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
DettagliFunzioni. 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
DettagliUniversità 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
DettagliFirewall 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ò
DettagliEsercizio 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
DettagliSicurezza 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
DettagliTipi 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
DettagliTCP: 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
DettagliEsercitazione [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
DettagliLivello 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
DettagliGestione 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
DettagliProgram 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
DettagliFunzioni 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
DettagliRETI 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
DettagliProva 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
DettagliDynamic 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
DettagliAltri 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
Dettagli10.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
DettagliSistemi 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
DettagliIL 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
DettagliI 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à
DettagliStrutture. 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
DettagliP2-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
DettagliIntroduzione 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
DettagliNelle 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
DettagliProva 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:
DettagliAppunti 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
DettagliLaboratorio 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
DettagliISTITUTO 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++ è
DettagliEsercitazione. 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:
DettagliSistemi 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
DettagliReti 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
DettagliSocket & 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
DettagliInizializzazione, 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
DettagliSocket. 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
DettagliESERCIZI 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