Elementi di programmazione con interfaccia Socket

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Elementi di programmazione con interfaccia Socket"

Transcript

1 Struttura generale per stream sockets Socket() Well-Known Port Bind() Elementi di programmazione con interfaccia Socket Cenni di programmazione secondo la nuova interfaccia Socket definita nella RFC 2553 Socket() Connect() Write() Read() Close() Connection establishment (3-way handshake) Data (Request) Data (Reply) End-of-File notification Listen() Accept() Blocks until connection received from client Read() Process request Write() Read() 7 Close() Struttura generale per datagram sockets Socket() Sendto() Recvfrom() Close() Well-Known Port Data (Request) Data (Reply) Socket() Bind() Recvfrom() Blocks until datagram received from client Process request Sendto() Funzioni principali (1) socket() Predispone il sistema operativo alla gestione di un nuovo flusso dati creando una struttura in memoria Crea un nuovo socket descriptor con determinate caratteristiche (protocollo di rete, protocollo di trasporto) bind() Collega il socket descriptor precedentemente creato ad una porta specificata Normalmente è utilizzato per un socket di tipo server (anche se esistono casi in cui è utilizzato anche per i client) Il socket non è ancora attivo (non può essere utilzizato per inviare / ricevere dati) listen() Comunica al sistema operativo che deve aspettarsi delle connessioni Crea e gestisce un'apposita coda d'attesa la cui lunghezza è passata come parametro. Una connessione è pronta per essere de-accodata nel momento in cui il 3-way handshake del TCP è terminato correttamente 8 9

2 Funzioni principali (2) accept() Restituisce un socket descriptor corrispondente alla prima connessione che è stata accodata dalla Listen. La chiamata è bloccnte: se non esistono connessioni in arrivo, il programma si blocca fino a che ne arriva una. Questa funzione crea un nuovo socket descriptor: Il primo (unconnected socket) viene usato per accettare nuove connessioni Il secondo (connected socket) è relativo alla prima connessione accettata Buona prassi è la gestione della nuova connessione attraverso una chiamata di tipo fork() Il processo mantiene un thread in ascolto e un altro al servizio della nuova connessione Funzioni principali (3) connect() Attiva una connessione tra il socket descriptor locale e un socket descriptor remoto. La connessione può essere sia di tipo esplicito (TCP 3-way handshake) oppure implicito (UDP) Questa chiamata viene fatta sempre dal client UDP Questa funzione non è necessaria; è utile per poter utilizzare le primitive send() e recv() anzichè sendto() e recvfrom() Minore overhead di gestione della connessione: ad ogni sendto() il sistema apre il socket, sceglie una porta casuale, invia un datagram e richiude il socket) Necessita di avere una "connessione" aperta per ogni peer close() Chiude un socket descriptor precedentemente creato e ne disalloca le risorse interne Tutti i dati ancora pendenti (ad esempio dati in transito verso il socket chiuso ) vengono persi Funzioni di send/receive (1) read(), write() Usabili solo in UNIX Stesso significato e stessa sintassi rispetto al loro utilizzo su un normale file Mancano di alcune peculiarità che sono proprie dei socket Es. leggere i dati senza cancellarli del buffer(msg_peek), etc Tendenzialmente poco usate Funzioni di send/receive (2) send(), recv() Utilizzabili solo su socket connessi Sempre su socket TCP Solo se è stata chiamata la connect() nel caso di socket UDP Permettono alcuni opzioni attraverso l utilizzo dei flags sendto(), recvfrom() Utilizzabili su socket non connessi UDP senza a chiamata connect() Permettono di ricevere/inviare dati da/ad una certa destinazione senza effettuare la connessione a priori Con uno stesso socket permettono di inviare/ricevere dati da molte destinazioni Se utilizzati su socket connessi, i parametri relativi all host remoto vengono ignorati Sono equivalenti a send() e recv() 12 13

3 socket() Dominio Rappresenta l architettura di rete prescelta TCP/IP, IPX, SNA,.. Tipo Tipologia del socket (connesso, non connesso, etc) Stream, Datagram. Raw Protocollo Nell eventualità che esistano più protocolli che soddisfano le caratteristiche indicate da Dominio e Tipo, questo parametro permette di specificare quale protocollo debba essere scelto Questo parametro è normalmente a zero Il socket descriptor che è stato creato dal sistema operativo socket(): Esempio int SockDescr; /* Socket descriptor */ int family, socktype, protocol; family= AF_INET; /* IP protocol */ socktype= SOCK_STREAM; /* TCP */ protocol= 0; SockDescr = socket(family, socktype, protocol); if (SockDescr == -1) bind() struct sockaddr: parametri su cui fare il binding Contiene i parametri (indirizzo, porta) sui quali il server dovrà mettersi in ascolto Indirizzo: può non essere specificato (ci si mette in ascolto su tutti gli indirizzi della macchina) Porta: è obbligatoria per un socket di tipo server struct sockaddr: è una struttura fasulla, necessaria solamente per astrarsi dalla particolare address family in uso Lunghezza della precedente struttura La bind() può operare con architetture di rete diverse (quindi indirizzi con formato diverso) 0 se tutto è OK, -1 in caso di errore bind(): Esempio int ret; /* return value */ struct sockaddr_storage addr; /* address/port on which we */ /* want to create a server */ socklen_t addrlen; /* length of the sockaddr_in */ SockDescr = socket(family, socktype, protocol); addrlen= sizeof(addr); /* now we have to initialize addr (not done here) */ ret= bind(sockdescr, (struct sockaddr *) &addr, addrlen); if (ret == -1) 16 17

4 listen() Numero massimo di connessioni che possono essere accodate Nel momento in cui il programmatore chiama la accept(), la coda delle connessioni viene decrementata di un unità 0 se tutto è OK, -1 in caso di errore listen(): Esempio int ret; /* return value */ struct sockaddr_storage addr; /* address/port on which we */ /* want to create a server */ socklen_t addrlen; /* length of the sockaddr */ ret= bind(sockdescr, (struct sockaddr *) &addr, addrlen); if (ret == -1) if (listen(sockdescr, MAX_CONNECTIONS) == -1) accept() struct sockaddr: parametri della macchina (indirizzo, porta sorgente) che si è connessa a noi Lunghezza della precedente struttura Un nuovo Socket Descriptor relativo alla nuova connessione se tutto è OK, -1 in caso di errore La accept() crea automaticamente un nuovo socket di tipo connesso, necessario per servire la connessione accettata accept(): Esempio int ret; /* return value */ struct sockaddr_storage from; /* address/port of the host */ /* is connecting to us */ socklen_t fromlen; /* length of the sockaddr */ int ChildSock; /* Socket Descriptor of the child */ if (listen(sockdescr, MAX_CONNECTIONS) == -1) ChildSock= accept(sockdescr, (struct sockaddr *) &from, &fromlen); if (ChildSock == -1) 20 21

5 connect() struct sockaddr: parametri della macchina (indirizzo, porta) con la quale si vuole attivare una connessione Lunghezza della precedente struttura 0 se tutto è OK, -1 in caso di errore connect(): Esempio int ret; /* return value */ struct sockaddr_storage addr; /* address/port of the host */ /* we want to connect to */ socklen_t addrlen; /* length of the sockaddr */ SockDescr = socket(family, socktype, protocol); /* now we have to initialize addr (not done here) */ ret= connect(sockdescr, (struct sockaddr *) &addr, addrlen); if (ret == -1) recv() void *buffer Buffer (allocato dall utente) nel quale verranno messi i dati ricevuti int bufferlen Lunghezza del buffer (per evitare buffer overflow) Corrisponde anche alla massima quantità di dati che si vogliono leggere int flags Eventuali modificatori del comportamento della funzione Il numero di bytes letti se tutto è OK, -1 in caso di errori Il numero di dati letti equivale a bufferlen nel caso in cui il numero di dati sia superiore alla disponibilità del buffer recv(): Esempio int AmountRead; /* the number of bytes read */ char Buffer[64000]; /* buffer in which data will be stored */ ChildSock= accept(sockdescr, (struct sockaddr *) &from, &fromlen); if (ChildSock == -1) AmountRead= recv(childsock, Buffer, sizeof(buffer), 0); if (AmountRead == -1) 24 25

6 send() void *buffer Buffer (allocato dall utente) che deve essere inviato int datatosend Numero di bytes (nel buffer) che devono essere inviati int flags Eventuali modificatori del comportamento della funzione Il numero di bytes inviati se tutto è OK, -1 in caso di errori Il numero di dati inviati può essere inferiore a datatosend nel caso in cui il numero di dati sia superiore alla disponibilità del buffer interno del sistema operativo send(): Esempio int AmountSent; /* the number of bytes sent */ int BytesToSend; /* the number of bytes to send */ char Buffer[64000]; /* buffer in which data will be stored */ ChildSock= accept(sockdescr, (struct sockaddr *) &from, &fromlen); if (ChildSock == -1) /* We suppose Buffer contains only strings */ BytesToSend= strlen(buffer); AmountSent= send(childsock, Buffer, BytesToSend, 0); if (AmountSent == -1) close() Indica il socket che si vuole chiudere 0 se tutto è OK, -1 in caso di errore close(): Esempio int ret; /* return value */ struct sockaddr_storage addr; /* address/port of the host */ /* we want to connect to */ socklen_t addrlen; /* length of the sockaddr */ AmountSent= send(childsock, Buffer, BytesToSend, 0); if (AmountSent == -1) ret= close(childsock); if (ret == -1) 28 29

7 Funzioni introdotte dalla RFC 2553 getaddrinfo() Consente una traduzione di una coppia nomehost/porta in strutture che potranno poi essere utilzizate dai socket successivi È trasparente dal protocollo di rete (IPv4/IPv6) Accetta sia nomi/porte numerici (es /80) che letterali ( freeaddrinfo() Libera le strutture dati precedentemente allocate dalla getaddrinfo() getnameinfo() Consente di tradurre le variabili di tipo struct sockaddr utilizzate internamente da alcune chiamate socket, in un nomehost/porta di tipo numerico oppure letterale E la speculare della getaddrinfo() Funzioni non supportate in Win32 E previsto il loro abbandono da parte di IETF Sono sostituibili dalle getaddrinfo() e getnameinfo() getipnodebyname() Intendeva sostituire la gethostbyname() Traduce un nome letterale in un insieme di strutture dati per il successivo utilizzo getipnodebyaddr() Intendeva sostituire la gethostbyaddr() Traduce un nome numerico in un insieme di strutture dati per il successivo utilizzo freehostent() Libera le strutture allocate dalle due funzioni precedenti inet_pton(), inet_ntop() Intendevano sostituire le inet_addr() e inet_ntoa() Convertono un indirizzo binario in un indirizzo stringa (stampabile) Strutture dati Sono state definite molte strutture dati Storicamente i socket hanno avuto una certa evoluzione Molte informazioni sono presenti in più posti Certe scelte possono apparire, in certi casi, incongruenti Struttura generale : struct addrinfo Mantiene tutti i parametri necessari ad operare Address family, protocollo, indirizzo, porta, flags, nome canonico Definita nella RFC 2553 Strutture di tipo sockaddr Mantengono i parametri più importanti per operare Address family, protocollo, indirizzo, porta Esistono due tipologie di strutture di questo tipo: Strutture reali legate ad un preciso protocollo di rete Strutture astratte indipendenti dal protocollo network Strutture dati astratte Definite per astrarsi dal tipo di indirizzo di rete/porta (e altro) L interfaccia socket è indipendente dal protocollo di livello network struct sockaddr È quella definita storicamente per prima È utilizzata da tutte le principali funzioni (connect(), bind(),) che richiedono per poter operare, informazioni del tipo indirizzo/porta Purtroppo, la sua lunghezza non è sufficiente a mantenere certi indirizzi di rete (la sua lunghezza è pari solamente a 16 bytes) È stata rimpiazzata dalla struct sockaddr_storage struct sockaddr_storage Struttura attualmente in uso È utilizzata per la definizione di variabili che dovranno contenere fondamentalmente indirizzi/porte Non è utilizzata per passare i parametri alle funzioni Per mantenere la compatibilità a livello di API, le funzioni hanno come parametri sempre delle struct sockaddr È necessario effettuare il cast delle variabili di questo tipo in struct sockaddr 32 33

8 Strutture dati astratte: definizioni struct sockaddr u_short sa_family; /* Address family */ char sa_data[14]; /* Up to 14 bytes of direct address */ }; struct sockaddr_storage short ss_family; /* Address family */ char ss_pad1[_ss_pad1size]; /* 6 byte pad, to make */ /* implementation specific pad up to alignment */ /* field that follows explicit in the data structure */ int64 ss_align; /* Field to force desired structure */ char ss_pad2[_ss_pad2size]; /* 112 byte pad to achieve */ /* the desired size; _SS_MAXSIZE value minus size of */ /* ss_family, ss_pad1, and ss_align fields is 112 */ }; Strutture dati astratte: esempio struct sockaddr_storage from; /* address/port of the host */ /* is connecting to us */ socklen_t fromlen; /* length of the sockaddr */ if (listen(sockdescr, MAX_CONNECTIONS) == -1) /* We cannot know, a priori, if the connecting host is */ /* IPv4 or IPv6: from must be a generic sockaddr_storage */ /* accept() has a struct sockaddr * as second parameter */ /* so we have to cast from into a struct sockaddr */ /* fromlen checks that the size of from is sufficient */ fromlen= sizeof(from); /* Get the size of from */ ChildSock= accept(sockdescr, (struct sockaddr *) &from, &fromlen); Strutture dati di tipo sockaddr reali (1) Sono quelle effettivamente utilizzate all interno delle funzioni Le struct sockaddr vengono convertite attraverso appositi cast Funzionamento Quando una funzione si trova a dover riempire una struct sockaddr, la riempie secondo il formato della sockaddr reale relativa a quella address family Le funzioni accettano, oltre al parametro struct sockaddr, anche un parametro indicate la lunghezza effettiva della struttura che è stata definita Necessario per sapere se la variabile originaria è stata allocata della lunghezza effettiva Strutture dati di tipo sockaddr reali (2) Strutture attualmente definite struct sockaddr_in Mantiene i parametri più importanti per il mondo IPv4 Address family, protocollo, indirizzo, porta struct sockaddr_in6 Mantiene i parametri più importanti per il mondo IPv6 Address family, protocollo, indirizzo, porta, flow label, scope 36 37

9 Strutture di tipo sockaddr_in: definizione struct sockaddr_in6 short sin6_family; /* AF_INET6 */ u_short sin6_port; /* Transport level port number */ u_long sin6_flowinfo; /* IPv6 flow information */ struct in_addr6 sin6_addr; /* IPv6 address */ u_long sin6_scope_id; /* Set of interfaces for scope */ }; struct sockaddr_in short sin_family; /* AF_INET */ u_short sin_port; /* Transport level port number */ struct in_addr sin_addr; /* IPv6 address */ char sin_zero[8]; }; Strutture di tipo sockaddr_in: esempio struct sockaddr_storage from; /* address/port of the host */ /* is connecting to us */ socklen_t fromlen; /* length of the sockaddr */ fromlen= sizeof(from); /* Get the size of from */ ChildSock= accept(sockdescr, (struct sockaddr *) &from, &fromlen); if (from. sa_family == AF_INET) /* This is an IPv4 address */ struct in_addr binip4addr; /* IPv4 address in binary form */ struct sockaddr_in *sockaddr4; /* real struct for IPv4 hosts */ sockaddr4= (sockaddr_in *) &from; /* convert the structure */ binip4addr= sockaddr4->sin_addr; /* assign the IPv4 address */ } Struttura generale: struct addrinfo Struttura fondamentale per l utilizzo dei socket Introdotta dalla RFC 2553 Caratteristiche Contiene tutti i parametri necessari a qualunque funzione socket per poter operare Viene riempita automaticamente dalla getaddrinfo() E possibile realizzare una lista linkata di strutture di tipo struct addrinfo Esiste un puntatore next a sè stessa Utilizzata prevalentemente nel caso in cui, ad uno stesso host (identificato come nome letterale, es ) corrispondano più indirizzi diversi In questo caso, la lista linkata permette di scegliere uno tra gli indirizzi identificati Struttura addrinfo: definizione struct addrinfo int ai_flags; /* AI_PASSIVE,AI_CANONNAME,AI_NUMERICHOST */ int ai_family; /* AF_xxx */ int ai_socktype; /* SOCK_xxx */ int ai_protocol; /* 0 or IPPROTO_xxx for IPv4 and IPv6 */ size_t ai_addrlen; /* length of ai_addr */ char *ai_canonname; /* canonical name for nodename */ struct sockaddr *ai_addr; /* binary address */ struct addrinfo *ai_next; /* next structure in linked list */ }; 40 41

10 Struttura addrinfo: esempio int ClientSock; /* Socket descriptor */ struct addrinfo Hints, *AddrInfo; /* Generic struct addrinfo */ int Ret; /* Generic return value */ /* Reset the content of the Hints variable */ memset(&hints, 0, sizeof(struct addrinfo)); /* Initialize the Hints variable, needed to specify some param */ Hints.ai_family = AF_INET; Hints.ai_socktype = SOCK_STREAM; /* Get the addresses in binary form */ Ret= getaddrinfo( 80, &Hints, &AddrInfo); ClientSock = socket(addrinfo->ai_family, AddrInfo->ai_socktype, AddrInfo->ai_protocol); /* Connects to the first address returned */ Ret= connect(clientsocket, AddrInfo->ai_addr, AddrInfo->ai_addrlen); freeaddrinfo(addrinfo); 42

Una semplice applicazione client/server 1

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

Dettagli

INTERNET DOMAIN SOCKETS (Cap.59)

INTERNET DOMAIN SOCKETS (Cap.59) INTERNET DOMAIN SOCKETS (Cap.59) Internet Domain Stream Socket TCP Internet Domain Datagram Socket UDP A differenza degli UDDS I datagrams possono essere persi duplicati o arrivare in un ordine diverso

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

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

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

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

L interfaccia socket

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

Dettagli

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

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

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

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

Reti (già Reti di Calcolatori )

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

Dettagli

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

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

(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

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

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

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

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

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

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

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

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

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

Dettagli

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

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

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

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

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

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

Dettagli

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

CORSO DI RETI SSIS. Lezione n.2. 2 Novembre 2005 Laura Ricci

CORSO DI RETI SSIS. Lezione n.2. 2 Novembre 2005 Laura Ricci CORSO DI RETI SSIS Lezione n.2. 2 Novembre 2005 Laura Ricci IL DOMAIN NAME SYSTEM (DNS) Indirizzi IP poco adatti per essere memorizzati da utenti umani è prevista la possibiltà di associare nomi simbolici

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

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

Socket per TCP: Fondamenti

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

Dettagli

LABORATORIO di Reti di Calcolatori

LABORATORIO di Reti di Calcolatori LABORATORIO di Reti di Calcolatori Socket in linguaggio C: nozioni preliminari 1 of 16 v slide della docente Bibliografia v testo di supporto: D. Maggiorini, Introduzione alla programmazione client-server,

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

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

Scrittura dei programmi applicativi di rete

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

Dettagli

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

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

Programmazione di Rete

Programmazione di Rete Programmazione di Rete Ing. Carlo Nobile Socket slide n 1 Sommario Berkeley's socket Socket UDP: funzioni fondamentali Esempio applicazione: Listener Sender Socket non bloccanti Indirizzo IP e Porta Sicurezza

Dettagli

Reti di Telecomunicazione Lezione 6

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

Dettagli

Interazione con il DNS Conversioni di Nomi ed Indirizzi

Interazione con il DNS Conversioni di Nomi ed Indirizzi a.a. 2003/04 Interazione con il DNS Conversioni di Nomi ed Indirizzi Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/professori/auletta/ Università degli studi di Salerno Laurea in

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

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 Programming. Socket Programming. Università di Palermo

Socket Programming. Socket Programming. Università di Palermo Socket Programming Socket Programming 1 Architettura Processo (Messagi) HTTP, SMTP, DNS, IMAP,... Trasporto (Messagi) TCP UDP Rete (Pacchetti) ARP IP ICMP Data link (Frames) Ethernet, FDDI, 802.11,...

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

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

Protocolli applicativi: FTP

Protocolli applicativi: FTP Protocolli applicativi: FTP FTP: File Transfer Protocol. Implementa un meccanismo per il trasferimento di file tra due host. Prevede l accesso interattivo al file system remoto; Prevede un autenticazione

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

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

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

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

Dettagli

Gestione degli indirizzi

Gestione degli indirizzi Politecnico di Milano Facoltà di Ingegneria dell Informazione Gestione degli indirizzi -Address Resolution Protocol (ARP) -Reverse Address Resolution Protocol (RARP) -Dynamic Host Configuration Protocol

Dettagli

API e socket per lo sviluppo di applicazioni Web Based

API e socket per lo sviluppo di applicazioni Web Based API e socket per lo sviluppo di applicazioni Web Based Cosa sono le API? Consideriamo il problema di un programmatore che voglia sviluppare un applicativo che faccia uso dei servizi messi a disposizione

Dettagli

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

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

Dettagli

Esercitazione [7] Client/Server con Socket

Esercitazione [7] Client/Server con Socket Esercitazione [7] Client/Server con Socket Leonardo Aniello - aniello@dis.uniroma1.it Daniele Cono D'Elia - delia@dis.uniroma1.it Federico Lombardi - lombardi@dis.uniroma1.it Sistemi di Calcolo - Secondo

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

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

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

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

Introduzione allo sniffing

Introduzione allo sniffing Università degli Studi di Milano Facoltà di Scienze Matematiche, Fisiche e Naturali Anno Accademico 2007/2008 Introduzione allo sniffing Roberto Paleari 2-4 Settembre 2008 Roberto Paleari Introduzione

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

appunti delle lezioni Architetture client/server: applicazioni client

appunti delle lezioni Architetture client/server: applicazioni client Sistemi informativi applicati (reti di calcolatori): appunti delle lezioni Architetture client/server: applicazioni client 1 Architetture client/server: un esempio World wide web è un esempio particolarmente

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

Gestione degli indirizzi

Gestione degli indirizzi Politecnico di Milano Advanced Network Technologies Laboratory Gestione degli indirizzi - Address Resolution Protocol (ARP) - Reverse Address Resolution Protocol (RARP) - Dynamic Host Configuration Protocol

Dettagli

IPC System V. Code di messaggi

IPC System V. Code di messaggi IPC System V Code di messaggi Panoramica coda di messaggi una lista concatenata di messaggi, FIFO semaforo un contatore condiviso, atomicamente modificabile memoria condivisa uno spazio di memoria accessibile

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

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

Reti di Telecomunicazioni Mobile IP Mobile IP Internet Internet Protocol header IPv4 router host indirizzi IP, DNS URL indirizzo di rete

Reti di Telecomunicazioni Mobile IP Mobile IP Internet Internet Protocol header IPv4 router host indirizzi IP, DNS URL indirizzo di rete IP Analizziamo con sufficiente dettaglio il sistema denominato IP, usato per consentire a due computer mobili di spostarsi liberamente in altre reti pur mantenendo lo stesso indirizzo IP. In particolare,

Dettagli

il trasferimento di file

il trasferimento di file il trasferimento di file g.di battista e m.patrignani nota di copyright questo insieme di slides è protetto dalle leggi sul copyright il titolo ed il copyright relativi alle slides (inclusi, ma non limitatamente,

Dettagli

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori I

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori I Corso di Laurea in Ingegneria Informatica Corso di Reti di Calcolatori I Roberto Canonico (roberto.canonico@unina.it) Giorgio Ventre (giorgio.ventre@unina.it) Il livello rete in Internet Il protocollo

Dettagli

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

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

Dettagli

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

2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine. ESERCIZIARIO Risposte ai quesiti: 2.1 Non sono necessarie modifiche. Il nuovo protocollo utilizzerà i servizi forniti da uno dei protocolli di livello trasporto. 2.2 Il server deve essere sempre in esecuzione

Dettagli

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

T42 Tunnel For Two Secure SSL InterApplication Relay Clizio Merli - 4u Srl S.r.l. T42 Tunnel For Two Secure SSL InterApplication Relay Clizio Merli - 4u Srl S.r.l. Il package open source T42 (letteralmente tea for two, dove T ha però in realtà il significato di tunnel ), un relay inter-applicativo

Dettagli

costruttori e distruttori

costruttori e distruttori costruttori e distruttori Costruttore E un metodo che ha lo stesso nome della classe a cui appartiene: serve per inizializzare un oggetto all atto della sua creazione Ce ne possono essere uno, più di uno,

Dettagli

API Socket di Berkeley

API Socket di Berkeley Laboratorio Reti di Calcolatori (A.A. 2008-2009) Programmazione di rete ed interfaccia API socket di Berkeley Delfina Malandrino delmal@dia.unisa.it http://www.dia.unisa.it/professori/delmal/ API Socket

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

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

Guida all' uso dei sockets nella programmazione in C

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

Dettagli

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

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

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

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

Università degli Studi di Pisa Dipartimento di Informatica. NAT & Firewalls Università degli Studi di Pisa Dipartimento di Informatica NAT & Firewalls 1 NAT(NETWORK ADDRESS TRANSLATION) MOTIVAZIONI NAT(Network Address Translation) = Tecnica di filtraggio di pacchetti IP con sostituzione

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

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

Le socket di Berkeley

Le socket di Berkeley Corso di Reti di Calcolatori I Simon Pietro Romano (spromano@unina.it) Antonio Pescapè (pescape@unina.it) Giorgio Ventre (giorgio@unina.it) Roberto Canonico (roberto.canonico@unina.it) Le socket di Berkeley

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

Maschere di sottorete a lunghezza variabile

Maschere di sottorete a lunghezza variabile Sottoreti Il CIDR (Classless Inter-Domain Routing) è un nuovo schema di indirizzamento introdotto nel 1993 per sostituire lo schema classful secondo il quale tutti gli indirizzi IP appartengono ad una

Dettagli

Il routing in Internet Exterior Gateway Protocols

Il routing in Internet Exterior Gateway Protocols Il routing in Internet Exterior Gateway Protocols A.A. 2005/2006 Walter Cerroni Exterior Gateway Protocols I protocolli di tipo EGP sono diversi da quelli di tipo IGP All interno di un AS si persegue l

Dettagli

Reti di Calcolatori - Laboratorio. Lezione 5. Gennaro Oliva

Reti di Calcolatori - Laboratorio. Lezione 5. Gennaro Oliva Reti di Calcolatori - Laboratorio Lezione 5 Gennaro Oliva Server basato su I/O Multiplex Per realizzare un server è possibile utilizzare l'i/o Multiplex Un unico processo iterativo gestisce il socket che

Dettagli

DOMOTICA ED EDIFICI INTELLIGENTI UNIVERSITA DI URBINO

DOMOTICA ED EDIFICI INTELLIGENTI UNIVERSITA DI URBINO Corso DOMOTICA ED EDIFICI INTELLIGENTI UNIVERSITA DI URBINO Docente: Ing. Luca Romanelli Mail: romanelli@baxsrl.com Networking NAT 1 Sommario L indirizzamento privato e pubblico I meccanismi di address

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

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

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

Dettagli

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

Programmazione di applicazioni di rete

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

Dettagli

Creare connessioni cifrate con stunnel

Creare connessioni cifrate con stunnel ICT Security n. 24, Giugno 2004 p. 1 di 5 Creare connessioni cifrate con stunnel Capita, e purtroppo anche frequentemente, di dover offrire servizi molto insicuri, utilizzando ad esempio protocolli che

Dettagli

Reti di Telecomunicazione Lezione 7

Reti di Telecomunicazione Lezione 7 Reti di Telecomunicazione Lezione 7 Marco Benini Corso di Laurea in Informatica marco.benini@uninsubria.it Il protocollo Programma della lezione file transfer protocol descrizione architetturale descrizione

Dettagli

Progettare un Firewall

Progettare un Firewall Progettare un Firewall Danilo Demarchi danilo@cuneo.linux.it GLUG Cuneo Corso Sicurezza 2006 Concetti introduttivi Come pensare un Firewall Argomenti trattati I Gli strumenti del Firewall Gli strumenti

Dettagli