Socket Programming. Socket Programming. Università di Palermo

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Socket Programming. Socket Programming. Università di Palermo"

Transcript

1 Socket Programming Socket Programming 1

2 Architettura Processo (Messagi) HTTP, SMTP, DNS, IMAP,... Trasporto (Messagi) TCP UDP Rete (Pacchetti) ARP IP ICMP Data link (Frames) Ethernet, FDDI, ,... 2

3 Sockets Socket già noti I socket sono un metodo per la creazione di connessioni tra processi, che è indipendente dal protocollo utilizzato I processi che vengono connessi possono essere sullo stesso host o su host differenti connessi via network Connection based (virtual circuit) Connectionless (datagram) Possibile classificare i Packet based socket in diversi modi: Stream based Reliable Unreliable 3

4 Sockets (2) Altra classificazione in base al dominio AF_UNIX AF_INET Formato dell address UNIX pathname Formato dell address costituito da host e porta Ciascun tipo di socket ha uno o più protocolli TCP UDP 4

5 Sockets (3) Definizione alternativa Un Socket è una API usata per le Interprocess Communications Si tratta di un metodo ben definito per connettere due processi, localmente o attraverso una rete Si tratta di qualcosa di indipendente dal protocollo e dal linguaggio Conosciuti spesso come Berkeley sockets 5

6 Byte ordering Nel corso di una trasmissione si deve seguire un qualche ordine Una variabile nella memoria deve essere strutturata in un qualche ordine Network byte order (Big Endian order) big end of egg cracked Increasing addresses MSB First transmitted LSB Host byte order (Little Endian order) little end of egg cracked Increasing addresses LSB First transmitted MSB 6

7 Address Information Per comunicare usando i socket devono specificare address e porta Si usa un tipo di dati generico: struttura pacchettizzata sockaddr struct sockaddr { unsigned short sa_family; char }; // Address family sa_data[14]; // Family specific address information sa_family spazio a cui appartiene l address (2 byte) In altri termini identifica il formato dei dati seguenti sa_data[14] insieme di bit la cui forma dipende dalla family (14 byte) 7

8 Address Information (2) sockaddr sa_family Family sa_data Blob 2 byte 2 byte 4 byte 8 byte sockaddr_in Family Port Internet address Unused sin_family sin_port sin_addr sin_zero sa_family può avere diversi valori come AF_INET, AF_FILE, AF_UNSPEC, noi useremo solo AF_INET che si riferisce a Internet IP address formato da porta e address Esiste una struttura parallela a sockaddr e più dettagliata: sockaddr_in struct sockaddr_in { short int sin_family; // Address family unsigned short sin_port; // Port number struct in_addr sin_addr; // Internet address char sin_zero[8]; // Not used }; 8

9 Address Information (3) La struct sockaddr_in contiene a sua volta una struct del tipo in_addr struct in_addr { unsigned long s_addr; // Internet address [8 byte] }; Tre fatti importanti La struct sockaddr_in non è diversa da sockaddr ma è una versione specializzata per Internet Quindi con un cast si può passare dall una all altra sin_zero deve essere effettivamente posta a zero sin_port e sin_addr devono essere in Network Byte Order 9

10 System Calls In Unix ogni applicazione è eseguita come processo user level Un applicazione interagisce con il S.O. facendo delle System Call Una system call è praticamente una Procedure Call Procedure call ricevono argomenti e restituiscono risultati Argomenti e risultati possono essere valori o puntatori Le primitive per operazioni di I/O di Unix seguono il paradigma Open-Read-Write-Close 10 10

11 System Calls (2) Un sistema operativo dovrebbe fare girare i programmi di utente in restricted mode ossia non dovrebbero effettuare direttamente operazioni di I/O Uno user program per effettuare un operazione di I/O dovrebbe effettuare una system call In UNIX, funzioni come open(), read(), write(), close() sono system call Una system call UNIX è una transizione dallo user mode al kernel mode Il codice per TCP/IP è richiamato tramite system call 11

12 Unix features In Unix tutti i devices sono mappati in files Quindi impossibile distinguere operazioni su file da quelle su device Un processo di utente che deve compiere un operazione di I/O inizia con una call del tipo open La call ritorna un intero che è il file descriptor Lo user process usa il file descriptor per aprire l oggetto Dopo di ciò lo user process effettua una o più call read e/o write 12

13 Unix features (2) File descriptor di tipo int Call read e write prendono 3 argomenti File descriptor Buffer address Numero di bytes da trasferire L ultima operazione di una primitiva è sempre una call Close 13

14 UNIX & TCP/IP Le operazioni di I/O con i socket sono simili a quelle con i file I socket TCP/IP sono identificati usando i socket descriptor Primitive read() e write() funzionano con i socket TCP/IP open() non adeguata per effettuare connessioni Per permettere ad un server di attendere una connessione è necessaria una call I dati UDP sono sempre sotto forma di datagram e non di byte stream 14

15 Funzionalità richieste Allocare le risorse necessarie per le comunicazioni Specificare gli endpoint locale e remoto Iniziare la connessione per un client Attendere la connessione di un client Tramettere o ricevere dati Rivelare l arrivo di dati Generare dati urgent Manipolare i dati urgent ricevuti Terminare una connessione Abort Gestione degli errori Rilascio delle risorse 15

16 API API sono le routine fornite dal S.O che operano come interfaccia tra un applicazione e il protocol software Le API dipendono dall implementazione Per UNIX - socket e TLI (Transport Layer Interface) per BSD e System V Esisono diversi classi che racchiudono le librerie necessarie per lavorare con i socket. Si farà riferimento alle classi che fanno parte della GNU library In ogni modo l header da usare dipende dall environment 16

17 Socket library functions Tre tipi di funzioni System call Inizio/Fine Trasferimento dati Controllo opzioni Altre Network configuration lookup Indirizzo host Porte per i servizi Altre Utility functions Conversione formato Manipolazioni address Gestione errori 17

18 Sockets calls socket() bind() connect() send() recv() accept() listen() close() crea un nuovo socket e ritorna il suo descriptor associa un socket a coppia porta-address inizia una connessione ad un host remoto (server) invia dati a un socket descriptor riceve dati da un socket descriptor accetta una richiesta di connessione definisce la coda per la richiesta di connessioni chiusura one-way di un socket descriptor shutdown() disabilita ricezione e/o trasmissione 18

19 Network functions gethostbyname() getservbyname() gethostname() getservbyport() getservent() getprotbyname() getprotbynumber() getprotbyent() getnetbyname() getnetbyaddr() getnetent() ottiene gli host parameters a partire dall hostname ottiene i service parameters a partire da nome e protocollo ottiene l hostaname di un host locale 19

20 Utility functions htons() - host to network short htonl() - host to network long ntohs() - network to host short Conversioni solo tra tipi con lunghezza 2 e 4 byte ntohl() - network to host long inet_ntoa() - conversione da address IPv4 a stringa formato dotted-decimal inet_addr() - conversione da stringa formato dotted-decimal ad address IPv4 perror() - scrive un messaggio di errore su stderr (basato su errno) herror() - scrive un messaggio di errore su stderr (basato su h_errno) 20

21 GNU sockets La GNU library fornisce il supporto per diversi differenti tipi di socket, ciascuno con caratteristiche proprie Le costanti simboliche sono definite in alcuni header come `sys/socket.h' 21

22 Connessioni e associazioni Nella terminologia dei socket una connessione tra due processi è chiamata una associazione Una associazione può essere definita astrattamente come un insieme di 5 parametri che specificano i due processi e il metodo di comunicazione Per esempio: {protocol, local-addr, local-process, foreign-addr, foreign-process} Una semiassociazione è la parte dell insieme che riguarda un lato {protocol, addr, process} 22

23 Porte I protocolli TCP e UDP utilizzano degli identificatori a 16 bit denominati porte per identificare in modo univoco i processi interessati ad un socket In UNIX le prime 1024 porte per ambedue i protocolli sono dette well known e sono definite nel file /etc/services. I programmi che si connettono a queste porte richiedono un accesso con privilegi di root I numeri di queste porte sono assegnati dalla IANA 23

24 TCP Server socket() bind() listen() Client socket() accept() Connection establishment connect() recv() send() Data request/replay send() recv() close() close() 24

25 UDP socket() bind() sendto() recvfrom() close() 25

26 Headers Principali file header: <sys/types.h> Include le definizioni per una lunga serie di tipi come clock_t, dev_t, gid_t, pid_t, time_t, uid_t e molti altri <errno.h> Fornisce i nomi per i valori di errno <sys/socket.h> Include le definizioni di struct sockaddr; prototipi di sistema e costanti <netdb.h> Definizioni per operazioni su database di rete <netinet/in.h> Definisce la struct sockaddr_in e macro per il byte ordering <arpa/inet.h> Definisce prototipi per utilty functions 26

27 Servers Server Stateful Stateless Server stateful ricorda i dati del client (state) tra le request successive Server stateless non conserva alcuna informazione circa lo state Nel caso di server stateless il client deve: Specificare in ogni request i file name completi Riautenticarsi a ogni request Specificare la posizione per le operazioni di lettura e scrittura Nel caso di server stateful: Il client deve inviare meno dati in ogni request Il server è meno robusto di uno stateless Il server è meno semplice di uno stateless Un reboot del server o del client può mandare in crisi il server 27

28 API socket #include <sys/types.h> #include <sys/socket.h> int socket(int domain, int type, int protocol) In caso di successo ritorna un file descriptor (un socket ID) diversamente un -1. Per noi domain è sempre AF_INET Type può assumere i valori: SOCK_STREAM SOCK_DGRAM SOCK_SEQPACKET (solo su poche macchine) Protocol ha usualmente il valore 0 con il che viene definito implicitamente da Type 28

29 Creazione di un socket INET, STREAM Creazione socket s = socket.socket(socket.af_inet, socket.sock_stream) Connessione al socket (porta 80) Client s.connect((" 80)) Creazione di un socket INET, STREAM ss = socket.socket(socket.af_inet, socket.sock_stream) Bind del socket ad un host public e ad una porta well-known ss.bind((socket.gethostname(), 80)) Attivazione come server socket s.listen(5) Server 29

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

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

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

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

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

Dettagli

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

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

TECN.PROG.SIST.INF. I Socket Roberta Gerboni

TECN.PROG.SIST.INF. I Socket Roberta Gerboni 2015 - Roberta Gerboni Socket e porte I sistemi operativi multitasking possono fare girare contemporaneamente più processi dove ogni processo può rendere disponibili anche più servizi. Questi devono essere

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

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

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

Laboratorio reti AA 2006/2007. Dott. Matteo Roffilli Ricevimento in ufficio dopo la lezione

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

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

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

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

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

Dettagli

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

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

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

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

Lo strato di applicazione in Internet

Lo strato di applicazione in Internet Lo strato di applicazione in Internet Prof. Ing. Carla Raffaelli a.a. 2004/2005 Protocolli applicativi Sono i protocolli utilizzati dalle applicazioni per scambiarsi informazioni Esempi: HTTP per il web,

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

Esercitazione [08] Server multi-process/multi-thread

Esercitazione [08] Server multi-process/multi-thread Esercitazione [08] Server multi-process/multi-thread Leonardo Aniello aniello@dis.uniroma1.it Daniele Cono D'Elia delia@dis.uniroma1.it Giuseppe Laurenza laurenza@dis.uniroma1.it Federico Lombardi lombardi@dis.uniroma1.it

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

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

LABORATORIO di Reti di Calcolatori

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

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

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

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

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

Esercitazione [7] Server multi-process/multi-thread

Esercitazione [7] Server multi-process/multi-thread Esercitazione [7] Server multi-process/multi-thread Leonardo Aniello - aniello@dis.uniroma1.it Daniele Cono D'Elia - delia@dis.uniroma1.it Sistemi di Calcolo - Secondo modulo (SC2) Programmazione dei Sistemi

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

Comunicazioni fra processi remoti: i socket nello UNIX di Berkeley

Comunicazioni fra processi remoti: i socket nello UNIX di Berkeley Comunicazioni fra processi remoti: i socket nello UNIX di Berkeley La base per l I/O di rete in UNIX BSD (unix di Berkeley) è un astrazione chiamata socket (letteralmente "presa"). Si può considerare il

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

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

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

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

L interfaccia Socket

L interfaccia Socket L interfaccia Socket Che cos è E una API per la suite TCP/IP una API (Application Program Interface) è il set di funzioni che i programmatori usano per sviluppare applicazioni in un determinato ambiente.

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

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

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

Il sistema operativo LINUX Inter Process Communication. Sommario. popen ( ) PIPE. pipe ( ) popen ( ) Sistemi operativi Modulo II

Il sistema operativo LINUX Inter Process Communication. Sommario. popen ( ) PIPE. pipe ( ) popen ( ) Sistemi operativi Modulo II Il sistema operativo LINUX Inter Process Communication Sommario Giorgio Di Natale Stefano Di Carlo Politecnico di Torino Dip. Automatica e Informatica dup FIFO

Dettagli

Un server di posta (che usa il protocollo SMTP) è identificato dal numero di porta 25.

Un server di posta (che usa il protocollo SMTP) è identificato dal numero di porta 25. 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

I.I.S. G.B. PENTASUGLIA MATERA ISTITUTO TECNICO SETTORE TECNOLOGICO LICEO SCIENTIFICO SCIENZE APPLICATE. Classe: 5Ci

I.I.S. G.B. PENTASUGLIA MATERA ISTITUTO TECNICO SETTORE TECNOLOGICO LICEO SCIENTIFICO SCIENZE APPLICATE. Classe: 5Ci I.I.S. G.B. PENTASUGLIA MATERA ISTITUTO TECNICO SETTORE TECNOLOGICO LICEO SCIENTIFICO SCIENZE APPLICATE Disciplina: Tecnologie e Progettazione di Sistemi Informatici e di Telecomunicazione Cognome e Nome:

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

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

UDP. User Datagram Protocol. UDP Connectionless

UDP. User Datagram Protocol. UDP Connectionless UDP User Datagram Protocol IP fornisce un unreliable datagram service tra gli host I Transport protocols forniscono un servizio di consegna end-to-end tra gli endpoints di una connessione UDP Connectionless

Dettagli

LABORATORIO di Reti di Calcolatori

LABORATORIO di Reti di Calcolatori LABORATORIO di Reti di Calcolatori Socket: concetti fondamentali 1 of 18 v slide della docente Bibliografia v testo di supporto: D. Maggiorini, Introduzione alla programmazione client-server, Pearson Ed.,

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

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

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

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

I Socket di Berkeley

I Socket di Berkeley I Socket di Berkeley di Francesco Licandro Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Università degli studi di Catania A.A. 2004-2005 1 Programmazione su rete Le applicazioni di

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

La programmazione di rete

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

Dettagli

Uso di Internet: Esempio. Prof. Franco Callegati

Uso di Internet: Esempio. Prof. Franco Callegati Uso di Internet: Esempio Prof. Franco Callegati http://deisnet.deis.unibo.it Consultazione di una pagina WEB Per collegarsi a Internet un Utente apre il proprio Browser Web (B) Dal Sistema Operativo (Es:

Dettagli

Instradamento. Fondamenti di Informatica

Instradamento. Fondamenti di Informatica Instradamento Fondamenti di Informatica Previously on Fondamenti di Livelli e protocolli Livello fisico Fibra, DSL, Ethernet informatica Network Network: ogni nodo può inviare un messaggio a qualsiasi

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

Organizzazione della lezione

Organizzazione della lezione Laboratorio Reti di Calcolatori (A.A. 2008-2009) Delfina Malandrino delmal@dia.unisa.it http://www.dia.unisa.it/professori/delmal/ Organizzazione della lezione 2 Struttura del corso Alcune informazioni

Dettagli

Programmazione in Rete

Programmazione in Rete 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 Sommario della

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

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

Le reti basate su TCP/IP

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

Dettagli

IPC: InterProcess Communication

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

Dettagli

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

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

Dettagli

IPC: InterProcess Communication

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

Dettagli

Laboratorio di. Reti Informatiche. Corso di Laurea Triennale in Ingegneria Informatica A.A. 2016/2017. Ing. Niccolò Iardella

Laboratorio di. Reti Informatiche. Corso di Laurea Triennale in Ingegneria Informatica A.A. 2016/2017. Ing. Niccolò Iardella Laboratorio di Reti Informatiche Corso di Laurea Triennale in Ingegneria Informatica A.A. 2016/2017 Ing. Niccolò Iardella niccolo.iardella@unifi.it 1 Esercitazione 4 Programmazione con i socket Parte 1

Dettagli

Lo strato di Trasporto

Lo strato di Trasporto Corso di Fondamenti di Reti di Telecomunicazioni LT - ELE / LM-TLC Reti di Telecomunicazioni a.a. 2016-2017 Lo strato di Trasporto Internet è composta da host connessi a reti a commutazione di pacchetto,

Dettagli

C UDP in Windows p53 - variante 1

C UDP in Windows p53 - variante 1 // UDPclient.c C UDP in Windows p53 - variante 1 /* Testo del problema Il processo client invia la stringa "INVIAMI UN NUMERO" diverse volte in un intervallo di tempo di 1 secondo ad un processo server

Dettagli

TECN.PROG.SIST.INF. TCP socket in Windows. 2015 - Roberta Gerboni

TECN.PROG.SIST.INF. TCP socket in Windows. 2015 - Roberta Gerboni 2015 - Roberta Gerboni Schema logico della comunicazione TCP in linguaggio C mediante bytestream socket. Parte asimmetrica Ruolo passivo bind () Parte asimmetrica Ruolo attivo Parte simmetrica Parte simmetrica

Dettagli

Costruzione di Messaggi. (alcune considerazioni)

Costruzione di Messaggi. (alcune considerazioni) Costruzione di Messaggi (alcune considerazioni) Framing & Parsing Client e Server devono accordarsi su come l informazione debba essere codificata Framing è il problema di formattare il messaggio in modo

Dettagli

11. Protocollo di trasporto a datagramma: User Datagram Protocol (UDP)

11. Protocollo di trasporto a datagramma: User Datagram Protocol (UDP) 11. Protocollo di trasporto a datagramma: User Datagram Protocol (UDP) 11.1. Introduzione È il più semplice protocollo di trasporto 11.2. Identificare la destinazione finale La macchine sono multiprogrammate:

Dettagli

L uso di Socket UDP. TCP vs. UDP UDP

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

Dettagli

Elementi di programmazione con interfaccia Socket

Elementi di programmazione con interfaccia Socket 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

Dettagli

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

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

Dettagli

unsigned long inet_addr(cp) char *cp;

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

Dettagli

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

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

Dettagli

TCP/IP: summary. Lorenzo Cavallaro, Andrea Lanzi

TCP/IP: summary. Lorenzo Cavallaro, Andrea Lanzi Università degli Studi di Milano Facoltà di Scienze Matematiche, Fisiche e Naturali Corso di Laurea in Informatica December 7, 2004 Sommario 1 La suite di protocolli TCP/IP Layer 2 3 4 5 6 Sommario 1 La

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

MODELLI ISO/OSI e TCP/IP

MODELLI ISO/OSI e TCP/IP PARTE I - Reti di Calcolatori ed Internet MODELLI ISO/OSI e TCP/IP 2.1 Reti di Calcolatori Livelli e Servizi Il modello OSI Il modello TCP/IP Un confronto tra OSI e TCP/IP ARPANET Ethernet Reti ATM reti

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

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

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

Dettagli

MODELLI ISO/OSI e TCP/IP

MODELLI ISO/OSI e TCP/IP PARTE I - Reti di Calcolatori ed Internet MODELLI ISO/OSI e TCP/IP Reti di Calcolatori Livelli e Servizi Il modello OSI Il modello TCP/IP Un confronto tra OSI e TCP/IP ARPANET Ethernet Reti ATM reti wireless

Dettagli

Introduzione allo sniffing

Introduzione allo sniffing Università degli Studi di Milano Facoltà di Scienze Matematiche, Fisiche e Naturali Corso di Laurea in Informatica November 30, 2005 Sommario Introduzione alle chiamate socket 1 Introduzione alle chiamate

Dettagli

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

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

Dettagli

Le Reti Informatiche

Le Reti Informatiche Le Reti Informatiche modulo 8 Prof. Salvatore Rosta www.byteman.it s.rosta@byteman.it 1 Il Livello di Trasporto: 1 L utente non ha il controllo sulla rete; non può risolvere i problemi di un servizio inadeguato

Dettagli

Una prima applicazione in C per l utilizzo delle socket

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

Dettagli

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

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

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

Inter-process communication: socket

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

Dettagli

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

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

Dettagli

Implementazione di un server. Server iterativo. Offro servizio ad un client alla volta. Dobbiamo scrivere un programma in C che offre un servizio

Implementazione di un server. Server iterativo. Offro servizio ad un client alla volta. Dobbiamo scrivere un programma in C che offre un servizio Implementazione di un server Server iterativo Offro servizio ad un client alla volta Dobbiamo scrivere un programma in C che offre un servizio Il sistema operativo tiene gli altri client in coda È la variante

Dettagli

Laboratorio di Programmazione in Rete

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

Dettagli

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

LABORATORIO di Reti di Calcolatori

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

Dettagli

Uso di sniffer ed intercettazione del traffico IP

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

Dettagli

Introduzione alla rete Internet

Introduzione alla rete Internet Introduzione alla rete Internet Gruppo Reti TLC nome.cognome@polito.it http://www.telematica.polito.it/ INTRODUZIONE A INTERNET - 1 Internet: nomenclatura Host: calcolatore collegato a Internet ogni host

Dettagli

Reti di calcolatori TCP/IP. Slide a cura di Simon Pietro Romano

Reti di calcolatori TCP/IP. Slide a cura di Simon Pietro Romano Reti di calcolatori TCP/IP Slide a cura di Simon Pietro Romano spromano@unina.it Il livello rete Stack ISO/OSI Applicazione Presentazione Sessione Trasporto Rete Data Link Fisico Corso di Tecnologie dei

Dettagli