Lezione n.6 LPR- Informatica Applicata

Documenti analoghi
LPR 2005/2006 Lezione 6. Comunicazione tra gruppi di processi Gruppi di multicast Multicast affidabile Java Multicast API

Lezione n.7b. TCP Sockets & Multicast. 24/11/2009 Vincenzo Gervasi

Lezione n.9 LPR UNIFORM RESOURCE LOCATOR MULTICAST

Lezione n.8. TCP Sockets & Multicast 24/11/2009 Andrea Corradini

6/4/2009. Laura Ricci

Lezione n.7. TCP Sockets & Multicast 19/11/2008. Laura Ricci

Lezione n.8 LPR-A - INFORMATICA TCP SOCKETS UDP MULTICAST

Datagrammi. NOTA: MulticastSocket estende DatagramSocket

27/2/2006. Lezione n.3 LPR-Informatica Applicata sockets UDP. Università degli Studi di Pisa. Laura Ricci 1. Dipartimento di Informatica.

Corso di Reti di Calcolatori

Corso di Reti di Calcolatori. Datagrammi

Esercizio Trasferimento File e Multicast

26/4/2010. Laura Ricci

Lezione n.3 LIVELLO TRASPORTO

Lezione n.8 LPR- Informatica Applicata

Protocollo UDP. User Data Protocol

Instradamento. Fondamenti di Informatica

4b. Esercizi sul livello di Rete Inoltro in IP

Parte II: Reti di calcolatori Lezione 11 (35)

Esercitazione: Socket Java senza connessione

Corso di Reti di Telecomunicazioni. Giovanni Schembra. Trasmissione trame su canale broadcast

Reti di Calcolatori:

Lezione n.7 LPR- Informatica Applicata

LPR A 2005/2006 Lezione 5. Riepilogo Caratteristiche Datagram Socket Stream Mode Socket API Sockets Lato Client Sockets Lato Server Esempi

Lezione n.5 LPR-Informatica Applicata 13/3/2006

Esercizi su UDP. Esercitazione di Laboratorio di Programmazione di Rete A. Daniele Sgandurra 22/10/2008. Università di Pisa

Le Reti Informatiche

(VHUFLWD]LRQLGLEDVHVXOOH6RFNHWLQ-DYD 6RFNHWGLWLSRGDWDJUDP

Trasmissione multicast in reti IP

Internet Protocol Cenni introduttivi

Network Programming. Java Programming Language. Network Programming TIGA 1

ICMP ARP RARP DHCP -NAT

Applicazioni web. Parte 10 Socket. Alberto Ferrari

2/5/2012. Laura Ricci

Implementazione di una LAN

Livello di Rete: Routing multicast IPv6

Protocolli multimediali

Principi, Modelli e Applicazioni per Sistemi Distribuiti M

INTERNET PROTOCOL RFC 791

Parte II: Reti di calcolatori Lezione 20 (44)

Appello 13 Febbraio Tempo complessivo a disposizione per lo svolgimento: 2h Usare lo spazio dopo ogni Esercizio/Quesito per la risposta.

Lezione n.8 LPR Informatica Applicata IP Multicast Sincronizzazione di thread: Il problema dei lettori/scrittori

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

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

LPR 2005/2006 Lezione 7. paradigma di interazione domanda/risposta remote procedure call RMI (Remote Method Invocation): API JAVA esercizio

Reti di Calcolatori - Laboratorio. Lezione 6. Gennaro Oliva

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

Avvertenza: Si usi lo spazio dopo ogni quesito per lo svolgimento. Includere fogli aggiuntivi solo se strettamente necessario.

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

Corso di Reti di Calcolatori T

Prova d Esame Compito A

Corso di Laurea in Informatica Esame di Reti Prof. Panzieri frame con source address uguale a MAC_UNI X X X X X

Socket in Java. Modelli di comunicazione

Reti di calcolatori Tecnologie Web Prova in itinere 2 16 giugno 2010

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

Configurazione delle interfacce di rete

Lo strato di Trasporto

Il protocollo IP A.A. 2006/2007. Alessandro Botticelli

Il protocollo IP A.A. 2005/2006. Walter Cerroni. Internet Protocol (IP) - RFC 791

Livello di trasporto:

PROVA FINALE Ingegneria del software

Indirizzamento IP. Politecnico di Milano Facoltà di Ingegneria dell Informazione

SUBNETTING E SUPERNETTING

MODELLO TCP/IP LIVELLO 4 Trasporto. Il protocollo per il controllo della trasmissione. La gestione degli errori di trasmissione

Introduzione (parte II)

Protocolli Internet. Canale di comunicazione. canale di comunicazione

Internet Control Message Protocol. IP si basa sulla collaborazione di tutti i computer (router) connessi alla rete

Le Reti Informatiche

Telematica II 12. Esercitazione/Laboratorio 4

Le Reti Informatiche

Modello client-server

17. Indirizzamento Multicast (IGMP)

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

INDIRIZZI IP SUBNETTING

Telematica di Base. Il livello di trasporto

IP Multicast Routing. Silvano GAI Fulvio RISSO.

RETI DI CALCOLATORI II

1) (commutazione pacchetto, prodotto banda-ritardo) 2) (frammentazione, commutazione di pacchetto) 3) (Selective Repeat)

Reti di calcolatori. Lezione del 17 giugno 2004

Reti a commutazione di pacchetti I dati vengono divisi in pacchetti I pacchetti vengono spediti singolarmente sulla rete

Roadmap. to-end o Relayed. Comunicazione End-to. Comunicazione:

III - 2. Il Livello Rete. Corso di RETI DI CALCOLATORI (9 CFU) a.a II anno / II semestre. Il Livello Rete.

Recupero I Prova in itinere - Rete Internet (ing. Giovanni Neglia) Lunedì 25 Giugno 2007

Internet Control Message Protocol (ICMP)

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori (a.a. 2010/11)

Reti di calcolatori. Lezione del 18 giugno 2004

Seconda Prova in itinere Esempio

Collegamento dati per accesso ad Internet. Informatica Generale (CdL in E&C), A.A Informatica Generale (CdL in E&C), A.A.

Parte II: Reti di calcolatori Lezione 13 (37)

Le Reti Informatiche

Prova 2-8 Luglio 2016

Internet (- working). Le basi.

Transcript:

Università degli Studi di Pisa Lezione n.6 LPR- Informatica Applicata Multicast 20/3/2006 Laura Ricci Multicast Laura Ricci 1

Riassunto della presentazione Comunicazione tra gruppi di processi Gruppi di multicast Multicast affidabile Java Multicast API Multicast Laura Ricci 2

GRUPPI DI PROCESSI: COMUNICAZIONE comunicazioni di tipo unicast = coinvolgono una sola coppia di processi diverse applicazioni di rete richiedono un tipo di comunicazione che coinvolga un gruppo di hosts. Applicazioni classiche: Usenet news: pubblicazione di nuove notizie ed invio di esse ad un gruppo di hosts interessati Videoconferenze: un segnale audio video generato su un nodo della rete deve essere ricevuto dagli hosts associati ai partecipanti alla videoconferenza Multicast Laura Ricci 3

GRUPPI DI PROCESSI: COMUNICAZIONE Altre applicazioni: massive multiplayer games: alto numero di giocatori che intergiscono in un mondo virtuale DNS: aggiornamenti delle tabelle di naming inviati a gruppi di DNS instant messaging applicazioni p2p Multicast Laura Ricci 4

GRUPPI DI PROCESSI: COMUNICAZIONE Comunicazione tra gruppi di processi: realizzata mediante multicasting (one to many communication). Comunicazione di tipo multicast un insieme di processi formano un gruppo di multicast G un messaggio spedito da un processo a quel gruppo viene recapitato a tutti gli altri partecipanti appartenenti a G un processo può lasciare un gruppo di multicast quando non è più interessato a ricevere i messaggi del gruppo Multicast Laura Ricci 5

COMUNICAZIONE TRA GRUPPI DI PROCESSI Multicast API: deve contenere primitive per unirsi ad un gruppo di multicast (join). E richiesto uno schema di indirizzamento per identificare univocamente un gruppo. lasciare un gruppo di multicast (leave). spedire messaggi ad un gruppo. Il messaggio viene recapitato a tutti i processi che fanno parte del gruppo in quel momento ricevere messaggi indirizzati ad un gruppo Multicast Laura Ricci 6

COMUNICAZIONE TRA GRUPPI DI PROCESSI: IMPLEMENTAZIONE L implementazione del multicast richiede: uno schema di indirizzamento dei gruppi un supporto che registri la corrispondenza tra un gruppo ed i partecipanti un'implementazione che ottimizzi l uso della rete nel caso di invio di pacchetti ad un gruppo di multicast Multicast Laura Ricci 7

MULTICAST: IMPLEMENTAZIONE Server A invia un messaggio su un gruppo di multicast composto da 3 clients connessi allo stesso router (router 2 ) router 2 router 2 router 1 router 1 Server A Soluzione 1: router 1 invia 3 messaggi distinti con collegamenti di tipo unicast Server A Soluzione 2: router 1 invia un unico messaggio. router 2 replica il messaggio per i tre clients Multicast Laura Ricci 8

MULTICAST: IMPLEMENTAZIONE Ottimizzazione della banda di trasmissione: il router che riceve un pacchetto di multicast MP invia un unico pacchetto sulla rete. Il pacchetto viene replicato solo quando è necessario. Esempio: pacchetto di multicast spedito da Milano agli hosts Hosta, HostB, HostC MP MP Bologna Bari Milano Firenze MP MP Host A Pisa MP MP Roma HostB HostC Multicast Laura Ricci 9

INDIVIDUAZIONE DEI GRUPPI DI MULTICAST Indirizzo di un gruppo di multicast: indirizzo IP di classe D Indirizzo di classe D- intervallo 224.0.0.0 239-255-255-255 1110.. l indirizzo di multicast è condiviso da tutti i partecipanti al gruppo è possibile associare un nome simbolico ad un gruppo di multicast Esempio: 224.0.1.1 ntp.mcast.net (network time protocol distributed service) Multicast Laura Ricci 10

INDIVIDUAZIONE GRUPPI DI MULTICAST Il livello IP (nei routers) mantiene la corrispondenza tra l indirizzo di multicast e gli indirizzi IP dei singoli hosts che partecipano al gruppo Gli indirizzi di multicast possono essere assegnati in modo permenante (assegnati da IANA). lista completa degli indirizzi di multicast riservati: http://www.iana.org/assignments/multicast-addresses in modo temporaneo. Multicast Laura Ricci 11

INDIVIDUAZIONE GRUPPI DI MULTICAST gli indirizzi di multicast appartenenti all intervallo 224.0.0.0-224.0.0.255 consentono di limitare la diffusione di un pacchetto alla sottorete locale. alcuni di questi indirizzi sono riservati ALL-SYSTEMS.MCAST.NET 224.0.0.1 tutti gli host della rete locale ALL-ROUTERS-MCAST.NET 224.0.0.2 tutti i routers della rete locale PIM-ROUTERS.MCAST.NET 224.0.0.12 tutti i PIM (Protocol Independent Multicasting) routers della rete locale Multicast Laura Ricci 12

MULTICAST ROUTERS per poter spedire e ricevere pacchetti di multicast oltre i confini della rete locale, occorre disporre di un router che supporta il multicast (mrouter) problema: disponbilità limitata di mrouters per testare se la vostra rete è collegata ad un mrouter, dare il comando % ping all-routers.mcast.net se si ottiene una risposta, è disponibile un mrouter sulla sottorete locale. Routers che non supportano il multicast, possono utilizzare la tecnica del tunnelling = trasmissione di pacchetti di multicast mediante unicast UDP Multicast Laura Ricci 13

CONNECTIONLESS MULTICAST Comunicazione Multicast utilizza il paradigma connectionless Motivazioni: gestione di un alto numero di connessioni: sono necessarie n(n-1) connessioni per un gruppo di n processi comunicazione connectionless adatta per il tipo di applicazioni verso cui è orientato il multicast (trasmissione di dati video/audio). Esempio: invio dei frames di una animazione. E più accettabile la perdita occasionale di un frame piuttosto che un ritardo costante tra la spedizione di due frames successivi Multicast Laura Ricci 14

UNRELIABLE VS. RELIABLE MULTICAST Unreliable Multicast (multicast non affidabile): non garantisce la consegna del messaggio a tutti i processi che partecipano al gruppo di multicast. unico servizio offerto dalla multicast JAVA API standard (esistono package JAVA non standard che offrono qualche livello di affidabilità) Reliable Multicast (multicast affidabile): garantisce che il messaggio venga recapitato una sola volta a tutti i processi del gruppo può garantire altre proprietà relative all ordinamento con cui i messaggi spediti al gruppo di multicast vengono recapitati ai singoli partecipanti Multicast Laura Ricci 15

UNORDERED MULTICASTING Unordered Multicasting: nessuna garanzia circa l ordine con cui i messaggi vengono recapitati ai destinatari. Esempio: p 0 invia, nell ordine, m 1,m 2,m 3 al gruppo di multicast. I messaggi vengono consegnati ai partecipanti secondo ordini diversi P 0 m3 m2 m1 m2 m1 P 1 Gruppo m3di multicast m3 m1 m2 P 2 m2 m3 m1 P 3 Multicast Laura Ricci 16

FIFO MULTICASTING Se un processo P invia, nell ordine, i messaggi m i ed m j ad un gruppo di multicast, allora tutti i processi del gruppo ricevono i messaggi secondo quell ordine. Non viene garantito nessun ordinamento per messaggi spediti da processi diversi P1 m12 m11 m22 m21 P2 m12 m22 m21 m11 Gruppo di Multicast m12 m22 m11 m21 P4 P5 Multicast Laura Ricci 17

CAUSAL ORDER MULTICAST Se la ricezione di un messaggio m i precede la spedizione del messaggio m j, allora m i viene ricevuto da tutti i processi del gruppo prima del messaggio m j mi mj mi ed mj sono in relazione di ordinamento causale Causal-order multicast : mantiene l ordinamento causale dei messaggi. Tutti i processi ricevono i messaggi spediti al gruppo di multicast secondo l ordinamento causale Esempio: P 1,P 2,P 3 appartengono allo stesso gruppo di multicast. P 1 invia un messaggio m i a P 2. P 2, dopo aver ricevuto il messaggio di P 1, spedisce un messaggio m j sul gruppo di multicast. Tutti gli appartenenti al gruppo di multicast ricevono mi prima di mj Multicast Laura Ricci 18

ATOMIC ORDER MULTICAST Atomic order multicast: garantisce che tutti i messaggi spediti ad un gruppo di multicast vengano consegnati ad ogni partecipante al gruppo secondo lo stesso ordine. Esempio: P 1 invia m 1, P 2 invia m 2, P 3 invia m 3 l ordine con cui i partecipanti riceveranno i messaggi può essere uno qualsiasi tra m1-m2-m3, m1-m3-m2, m2-m1-m3, m2-m3-m1, m3-m1-m2, m3-m2- m1 ma l ordine è lo stesso per ogni partecipante Multicast Laura Ricci 19

MULTICAST: L API JAVA public class MulticastSocket extends DatagramSocket MulticastSocket = socket su cui spedire/ricevere i messaggi verso/da un gruppo di multicast try { MulticastSocket ms =new MulticastSocket( );. } catch (SocketException ex) {System.out.prinln ( ) } è possibile specificare la porta a cui collegare il socket. Multicast Laura Ricci 20

MULTICAST: L API JAVA public void joingroup (InetAddress address) throws IOException try{ MulticastSocket ms = new MulticastSocket (4000); InetAddress ia = InetAddress.getByName ( experiment.mcast.net ); ms.joingroup(ia);.. } catch (IOException ex) { System.out.println(ex) } operazione necessaria nel caso si vogliano ricevere messaggi dal gruppo di multicast lega il multicast socket ad un gruppo di multicast tutti i messaggi ricevuti tramite quel socket provengono da quel gruppo IOException sollevata se ia non è un indirizzo di multicast Multicast Laura Ricci 21

MULTICAST: L API JAVA Uso delle porte per multicast sockets: Unicast IP Address individua un host, porta individua un servizio Multicast IP Address individua un gruppo di hosts, porta consente di partizionare dati di tipo diverso inviati allo stesso gruppo 5000 Host1 Gruppo di multicast 4000. invio dati 5000 4000 Host2 Esempio: porta 5000 traffico audio, porta 4000 traffico video Multicast Laura Ricci 22

MULTICAST: L API JAVA due processi, attivati sullo stesso host da due shell diverse possono collegarsi allo stesso gruppo di multicast sulla stessa porta una porta non individua una specifica applicazione (processo) import java.io.*; import java.net.*; public class provamulticast { public static void main (String args[]) throws Exception { byte[] buf = new byte[10]; DatagramPacket dp = new DatagramPacket (buf, buf.length); MulticastSocket ms = new MulticastSocket (4000); ms.receive(dp); } } se attivo due istanze di provamulticast da shell diverse della stessa macchina, non viene sollevata BindException (che viene invece sollevata se si sostituisce il MulticastSocket con un DatagramSocket) Multicast Laura Ricci 23

MULTICAST: L API JAVA Per spedire messaggi ad un gruppo di multicast: creare un multicastsocket su una porta anonima (non è necessario collegare il multicast socket ad un gruppo di multicast) creare un pacchetto inserendo nell intestazione l indirizzo del gruppo di multicast a cui si vuole inviare il pacchetto Spedire il pacchetto tramite il socket creato public void send (DatagramPacket p) throws IOException Multicast Laura Ricci 24

MULTICAST: L API JAVA Spedizione di un pacchetto tramite un multicast socket try { InetAddress ia= InetAddress.getByName( experimental.mcast.net ); byte [] data = ;. int port 4000; DatagramPacket dp = new DatagramPacket(data, data.length, ia, port); MulticastSocket ms = new MulticastSocket( ); ms.send(dp); } catch(ioexception ex){ System.out.println(ex) } Multicast Laura Ricci 25

MULTICAST: TIME TO LIVE IP Multicast Scoping: meccanismo utilizzato per limitare la diffusione sulla rete di un pacchetto inviato in multicast ad ogni pacchetto IP viene associato un valore rappresentato su un byte, riferito come TTL (Time-To-Live) del pacchetto TTL assume valori nell intervallo 0-255 TTL indica il numero massimo di routers che possono essere attraversati dal pacchetto il pacchetto viene scartato dopo aver attraversato TTL routers meccanismo introdotto originariamente per evitare loops nel routing dei pacchetti Multicast Laura Ricci 26

MULTICAST: TIME TO LIVE Internet Scoping, implementazione il mittente specifica un valore del TTL per i pacchetti spediti il TTL viene memorizzato in un campo dell header del pacchetto IP TTL viene decrementato da ogni router attraversato Se TTL = 0 il pacchetto viene scartato Multicast Laura Ricci 27

MULTICAST: TIME TO LIVE Valori consigliati per il ttl Destinazione Valori di ttl processi sullo stesso host 0 processi sulla stessa sottorete locale 1 processi su reti locali gestite dallo stesso router 16. processi allocati su un qualsiasi host di 255 Internet Multicast Laura Ricci 28

TIME TO LIVE: API JAVA Assegna il valore di default = 1 al TTL ( i pacchetti di multicast non possono lasciare la rete locale) Per modificare il valore di default: Associo il ttl al multicast socket MulticastSocket s = new MulticastSocket( ); s.settimetolive(1); Specifico il ttl nella send DatagramPacket dp = new DatagramPacket(data, data.length); MulticastSocket ms= new MulticastSocket( ); ms.send(dp,64) Multicast Laura Ricci 29

MULTICAST: ESERCIZIO 1 Definire un Server TimeServer, che invia su un gruppo di multicast dategroup, ad intervalli regolari,la data e l ora. Data ed ora possono essere ottenute mediante il metodo JAVA calendar( ), l attesa tra un invio ed il successivo può essere simulata mediante il metodo sleep( ). L indirizzo IP di dategroup viene introdotta linea di comando. Definire quindi un client TimeClient che si unisce a dategroup e riceve, per dieci volte consecutive, data ed ora, le visualizza, quindi termina. Multicast Laura Ricci 30

MULTICAST: ESERCIZIO 2 Si consideri una applicazione composta da m servers Magazzino 1,....,Magazzino m ed n clients Client 1,...,Client n. Ognuno dei client ed dei server è allocato all'interno di uno spazio virtuale bidimensionale e può essere individuato dalle sue coordinate cartesiane all'inteno di questo spazio. Ogni Magazzino possiede lo stesso insieme di articoli, ognuno caratterizzato da un codice e dalla quantità presente in quel magazzino (scorta). Le informazioni riguardanti gli articoli vengono caricate da un file. Ogni magazzino invia periodicamente le sue coordinate ad un gruppo di multicast M a cui ogni client si collega all'inizio della propria esecuzione. Quando un client riceve una informazione da M, la scarta se l ha ricevuta precedentemente, altrimenti la memorizza in una struttura dati opportuna. Multicast Laura Ricci 31

MULTICAST: ESERCIZIO 2 (CONTINUA) Ogni client riceve dall'utente, in modo interattivo, il codice e la quantità di un prodotto e richiede tale prodotto al magazzino più vicino, tramite una connessione UDP. Il Magazzino invia al client un ack, nel caso possieda tale prodotto in quantità sufficiente, altrimenti invia un nack. Il client visualizza la risposta e, nel caso di nack, provvede ad inviare un ulteriore richiesta al Magazzino piu' vicino, scelto tra i rimanenti. Il procedimento termina quando il Client riceve una risposta positiva da un magazzino, oppure quando sono stati consultati tutti i magazzini. Multicast Laura Ricci 32