Corso di Reti di Calcolatori



Documenti analoghi
Corso di Reti di Calcolatori. Datagrammi

Datagrammi. NOTA: MulticastSocket estende DatagramSocket

Protocolli Internet. Canale di comunicazione. canale di comunicazione

Telematica II 12. Esercitazione/Laboratorio 4

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

Il modello client/server consente a due processi di condividere risorse e di cooperare per il raggiungimento di un obiettivo.

Programmare con le Socket TCP in java. 2: Application Layer 1

Programmare con le Socket

Applicazioni web. Parte 5 Socket

Esercitazione: Socket Java senza connessione

Programmare con le Socket TCP

Reti di Calcolatori:

Laboratorio di Networking Operating Systems. Lezione 2 Principali strumenti di diagnostica

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

Networking. Mauro Migliardi Ph. D.

Corso di recupero di sistemi Lezione 8

Parte II: Reti di calcolatori Lezione 10

Architettura Client-Server

ProgettAzione tecnologie in movimento - V anno Unità 4 - Realizzare applicazioni per la comunicazione in rete

appunti delle lezioni Architetture client/server: applicazioni client

Tecnologie Web L-A. Java e HTTP. Dario Bottazzi Tel , dario.bottazzi@unibo.it, SkypeID: dariobottazzi. Java e TCP/IP in a Nutshell

(VHUFLWD]LRQLGLEDVHVXOOH6RFNHWLQ-DYD 6RFNHWGLWLSRVWUHDP

Corsi di Reti di Calcolatori (Docente Luca Becchetti)

Lezione n.9 LPR- Informatica Applicata

Esercizio Trasferimento File e Multicast

Laboratorio di reti I: Il pacchetto java.net

Socket & RMI Ingegneria del Software - San Pietro

R.Focardi Laboratorio di Ingegneria del Software 6. 1

Socket TCP. seconda parte

Corso di Reti di Calcolatori L-A

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

Modello client-server

DNS: Domain Name System

Sommario. Configurazione della rete con DHCP. Funzionamento Configurazione lato server Configurazione lato client

Chat. Si ha un server in ascolto sulla porta Quando un client richiede la connessione, il server risponde con: Connessione accettata.

Java Socket LSO 2008

I name server DNS. DNS: Domain Name System. Esempio di DNS. DNS: Root name server. DNS: queries ripetute

Comandi di Rete. Principali Comandi di Rete. Verificare, testare ed analizzare da Riga di Comando

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

Programmazione distribuita in Java. Socket & Client-Server

Applicazioni distribuite

Configurazione e diagnosi di una rete

PROGRAMMARE IN JAVA VOLUME II

Organizzazione della lezione. Lezione 18 Remote Method Invocation - 6. (con callback) L accesso al registry per il rebind()

Tesina esame Programmazione di Sistemi Mobile realizzata da Roberto Giuliani matricola Sockets e DatagramSocket

Protocollo ICMP, comandi ping e traceroute

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

Configurazione Rete in LINUX

SAPIENZA Università di Roma Facoltà di Ingegneria dell Informazione, Informatica e Statistica

TFA 42 Sistemi e Reti di Calcolatori per la Didattica

Cenni di programmazione distribuita in C++ Mauro Piccolo

Reti. Reti. IPv4: concetti fondamentali. arp (address resolution protocol) Architettura a livelli (modello OSI)

TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI

Lezione n.2 20/2/2006

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

La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni

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

Sommario. Configurazione della rete con DHCP. Funzionamento Configurazione lato server Configurazione lato client

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

ARP (Address Resolution Protocol)

Interconnessione di reti

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

ARP e instradamento IP

Main System Monitor Keyboard

7 Esercitazione (svolta): Callback. Polling. Java RMI: callback. Server. Server. Client. Client. due possibilità:

Corso di Sistemi di Elaborazione delle informazioni. Reti di calcolatori 3 a lezione a.a. 2009/2010 Francesco Fontanella

Introduzione. Java. G. Prencipe accesso alla rete -- TCP

UTC Fire & Security Italia Controllo remoto sistema Advisor Advanced via GPRS v.1.0. Versione Fw di riferimento

appunti delle lezioni Architetture client/server: applicazioni server

Internet. Introduzione alle comunicazioni tra computer

Informatica per la comunicazione" - lezione 8 -

Come si può notare ogni richiesta ICMP Echo Request va in timeout in

Università degli Studi di Modena e Reggio Emilia. Facoltà di Ingegneria Reggio Emilia CORSO DI TECNOLOGIE E APPLICAZIONI WEB. Http con java, URL

Inizializzazione degli Host. BOOTP e DHCP

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

Transcript:

Corso di Reti di Calcolatori UNICAL Facoltà di Ingegneria a.a. 2002/2003 Esercitazione sul networking in Java (3 a parte) e comandi di rete paolo.trunfio@deis.unical.it 1

Datagrammi Le applicazioni che comunicano tramite socket possiedono un canale di comunicazione dedicato. Per comunicare, un client ed un server stabiliscono una connessione, trasmettono dati, quindi chiudono la connessione. Tutti i dati inviati sul canale sono ricevuti nello stesso ordine in cui sono stati inviati. Le applicazioni che comunicano tramite datagrammi inviano e ricevono pacchetti di informazione completamente indipendenti tra loro. Queste applicazioni non dispongono e non necessitano di un canale di comunicazione punto-a-punto. La consegna dei datagrammi alla loro destinazione non è garantita, e neppure l ordine del loro arrivo. Il package java.net fornisce tre classi che consentono di scrivere applicazioni che usano datagrammi per inviare e ricevere pacchetti sulla rete: DatagramSocket, DatagramPacket e MulticastSocket. Una applicazione può inviare e ricevere DatagramPacket tramite un DatagramSocket. Inoltre, i DatagramPacket possono essere inviati in broadcast a più destinatari che sono in ascolto su un MulticastSocket. NOTA: MulticastSocket estende DatagramSocket 2

java.net.datagramsocket DatagramSocket (int port) Crea un DatagramSocket e lo collega alla porta specificata sulla macchina locale. void receive (DatagramPacket p) Riceve un DatagramPacket da questo socket. void send (DatagramPacket p) Invia un DatagramPacket su questo socket. void close () Chiude questo DatagramSocket. 3

java.net.datagrampacket DatagramPacket (byte[] buf, int length) Crea un DatagramPacket per ricevere pacchetti di lunghezza length. DatagramPacket (byte[] buf, int length, InetAddress address, int port) Crea un DatagramPacket per inviare pacchetti di lunghezza length all host ed alla porta specificati. InetAddress getaddress () Restituisce l indirizzo IP della macchina alla quale questo DatagramPacket deve essere inviato o da cui è stato ricevuto. int getport () Restituisce la porta della macchina alla quale questo DatagramPacket deve essere inviato o da cui è stato ricevuto. 4

TimeServer (1) import java.io.*; import java.net.*; import java.util.*; public class TimeServer { public static void main(string[] args) { DatagramSocket socket = null; try { socket = new DatagramSocket(3575); int n = 1; while (n <= 10) { byte[] buf = new byte[256]; // riceve la richiesta DatagramPacket packet = new DatagramPacket(buf, buf.length); socket.receive(packet); // produce la risposta String dstring = new Date().toString(); buf = dstring.getbytes(); 5

TimeServer (2) // invia la risposta al client InetAddress address = packet.getaddress(); int port = packet.getport(); packet = new DatagramPacket(buf, buf.length, address, port); socket.send(packet); n++; socket.close(); catch (IOException e) { e.printstacktrace(); socket.close(); 6

TimeClient (1) import java.io.*; import java.net.*; import java.util.*; public class TimeClient { public static void main(string[] args) throws IOException { String hostname = "localhost"; DatagramSocket socket = new DatagramSocket(); // invia la richiesta byte[] buf = new byte[256]; InetAddress address = InetAddress.getByName(hostname); DatagramPacket packet = new DatagramPacket(buf, buf.length, address, 3575); socket.send(packet); 7

TimeClient (2) // riceve la risposta packet = new DatagramPacket(buf, buf.length); socket.receive(packet); // visualizza la risposta String received = new String(packet.getData()); System.out.println("Response: " + received); socket.close(); 8

java.net.multicastsocket MulticastSocket (int port) Crea un MulticastSocket e lo collega alla porta specificata sulla macchina locale. void joingroup (InetAddress mcastaddr) Si collega ad un multicast group. void leavegroup (InetAddress mcastaddr) Abbandona un multicast group. void receive (DatagramPacket p) Riceve un DatagramPacket da questo socket. void send (DatagramPacket p) Riceve un DatagramPacket da questo socket. void close () Chiude questo MulticastSocket. 9

MulticastTimeServer (1) import java.io.*; import java.net.*; import java.util.*; public class MulticastTimeServer { public static void main(string[] args) { MulticastSocket socket = null; try { socket = new MulticastSocket(3575); int n = 1; while (n <= 100) { byte[] buf = new byte[256]; // non aspetta la richiesta String dstring = new Date().toString(); buf = dstring.getbytes(); 10

MulticastTimeServer (2) // invia il messaggio in broadcast InetAddress group = InetAddress.getByName("230.0.0.1"); DatagramPacket packet = new DatagramPacket(buf, buf.length, group, 3575); socket.send(packet); System.out.println ("Broadcasting: "+dstring); Thread.sleep(1000); n++; socket.close(); catch (Exception e) { e.printstacktrace(); socket.close(); 11

MulticastTimeClient import java.io.*; import java.net.*; import java.util.*; public class MulticastTimeClient { public static void main(string[] args) throws IOException { MulticastSocket socket = new MulticastSocket(3575); InetAddress group = InetAddress.getByName("230.0.0.1"); socket.joingroup(group); DatagramPacket packet; for (int i = 0; i < 100; i++) { byte[] buf = new byte[256]; packet = new DatagramPacket(buf, buf.length); socket.receive(packet); String received = new String(packet.getData()); System.out.println("Time: " + received); socket.leavegroup(group); socket.close(); 12

ping (1) Invia una successione di pacchetti all'host specificato, per verificare l'integrità e la qualità della connessione. Sintassi Windows: ping [-t] [-n conteggio] [-w timeout] hostname Opzioni: -t Effettua un ping sull'host specificato finché non viene interrotto. Per interrompere digitare Ctrl-C. -n conteggio Numero di richieste di eco da inviare. -w timeout Timeout in millisecondi per ogni risposta. 13

ping (2) C:\>ping java.sun.com Esecuzione di Ping java.sun.com [192.18.97.71] con 32 byte di dati: Risposta da 192.18.97.71: byte=32 durata=210ms TTL=241 Risposta da 192.18.97.71: byte=32 durata=201ms TTL=241 Risposta da 192.18.97.71: byte=32 durata=200ms TTL=241 Risposta da 192.18.97.71: byte=32 durata=201ms TTL=241 Statistiche Ping per 192.18.97.71: Pacchetti: Trasmessi = 4, Ricevuti = 4, Persi = 0 (0% persi), Tempo approssimativo percorsi andata/ritorno in millisecondi: Minimo = 200ms, Massimo = 210ms, Medio = 203ms 14

host (1) Effettua la risoluzione (diretta ed inversa) dell host specificato Sintassi Linux (non disponibile sotto Windows): host hostname [server] Opzioni: server è il nome del server DNS da utilizzare (se non specificato usa il DNS di default) 15

host (2) # host java.sun.com java.sun.com. has address 192.18.97.71 # host www.deis.unical.it www.deis.unical.it. is an alias for haldo.deis.unical.it. haldo.deis.unical.it. has address 160.97.27.7 # host 192.18.97.71 71.97.18.192.in-addr.arpa. domain name pointer flres.java.sun.com. 16

nslookup Effettua la risoluzione (diretta ed inversa) dell host specificato. C:\>nslookup java.sun.com Server: dns.isi.cs.cnr.it Address: 194.119.198.151 Nome: java.sun.com Address: 192.18.97.71 C:\>nslookup 192.18.97.71 Server: dns.isi.cs.cnr.it Address: 194.119.198.151 Nome: flres.java.sun.com Address: 192.18.97.71 17

traceroute (1) Mostra tutti i router che un pacchetto attraversa per raggiungere l host di destinazione Sintassi Windows: tracert [-d] [-h max_salti] [-w timeout] hostname Opzioni: -d Non risolve gli indirizzi in nome host. -h max_salti Numero massimo di punti di passaggio per ricercare la destinazione. -w timeout Timeout in millisecondi per ogni risposta. 18

traceroute (2) C:\>tracert java.sun.com Rilevazione instradamento verso java.sun.com [192.18.97.71] su un massimo di 30 punti di passaggio: 1 <10 ms <10 ms <10 ms 194.119.198.129 2 <10 ms 30 ms 10 ms 10.0.0.134 3 40 ms 30 ms 40 ms rc-cnrcs.na.garr.net [193.206.130.125] 4 20 ms 60 ms 60 ms rt-rc-1.na.garr.net [193.206.134.169] 5 30 ms 30 ms 40 ms mi-na.garr.net [193.206.134.9] 6 40 ms 41 ms 30 ms rtg-rt.mi.garr.net [193.206.134.206] 7 30 ms 40 ms 40 ms rm-mi-g.garr.net [193.206.134.14] 8 40 ms 50 ms 40 ms mno-vcn-i1-pos0-2.telia.net [213.248.79.125] 12 190 ms 190 ms 211 ms nyk-bb1-pos1-0-0.telia.net [213.248.80.13] 13 200 ms 190 ms 201 ms sl-gw9-nyc-7-2.sprintlink.net [144.232.169.61] 18 230 ms 231 ms 220 ms sl-gw14-che-8-0.sprintlink.net [144.232.15.162] 19 220 ms 211 ms 210 ms sl-internap-26-0-0.sprintlink.net [160.81.54.46] 20 230 ms 220 ms 211 ms border3.ge3-0-bbnet2.den.pnap.net [216.52.40.71] 21 201 ms 210 ms 220 ms sun-1.border3.den.pnap.net [216.52.42.42] 22 210 ms 211 ms 220 ms flres.java.sun.com [192.18.97.71] Rilevazione completata. 19

netstat Visualizza statistiche su protocollo e connessioni di rete TCP/IP Sintassi: netstat [-a] Opzioni: -a Visualizza tutte le connessioni e le porte di ascolto C:\>netstat Connessioni attive Proto Indirizzo locale Indirizzo remoto Stato TCP host1:22 host2 ESTABLISHED TCP host1:1408 host3 TIME_WAIT 20