Reti di calcolatori - dii.unisi.itmaggini/Teaching/RdC/Material/testi prove/11-01... · Reti di...

4
Nome Cognome Matricola_______________________________ Reti di calcolatori Prova in itinere 2 – 21 gennaio 2011 1. [punti 10] Dato il seguente schema di rete scegliere la configurazione di rete dell’host 6 (IP, netmask e configurazione di routing) e indicare il contenuto delle tabelle di routing del router R3. Si disegni infine il grafo che rappresenta la rete precedente secondo le tipologie di collegamento (punto-punto, transienti, foglia) previste dal protocollo OSPF. 2. [punti 12] Scrivere in linguaggio C o Java le istruzioni necessarie per implementare un client TCP che si collega alla porta 6666 di un server assegnato (si assuma che l’IP venga passato come parametro del programma) e realizza il seguente protocollo di comunicazione una volta aperta la connessione. 1. Il client attende che il server invii una stringa che rappresenta una domanda dell’utente. 2. Viene chiamata la funzione String getUserReply(String d) per Java – char * getUserReply(char *d) per C dove d è la stringa ricevuta dal server. La stringa ottenuta dalla funzione è inviata al server. 3. Si attende una stringa dal server. a. Se la stringa ricevuta è “OK” si chiama la funzione playAgain() che ritorna 1 se l’utente vuole giocare di nuovo. In tal caso si invia la stringa “NEW” al server e si itera l’esecuzione dal punto 1. Se invece playAgain() ritorna 0 si invia la stringa “BYE”, si chiude la connessione e si esce dal programma. b. Se la stringa è “RETRY” si torna al punto 2. 3. [punti 8] Dato il polinomio generatore G(x)=x 4 +x 2 +1, calcolare il CRC per la sequenza di bit 011011100011. Inoltre verificare se il CRC calcolato con G(x) è in grado di rilevare due errori a distanza 6 fra di loro. Host 1 Host 2 Host 3 Host 4 Host 5 Host 6 Host 7 Host 8 Host 9 Host 10 Internet R1 R2 R3 R4 R5 81.0.0.0 192.168.3.8/30 192.168.3.16/30 198.123.7.128/27 198.123.7.160/27 143.9.0.0 198.123.7.64/27 198.123.7.96/27 serial 0 serial 0 serial 0 serial 0 serial 1 eth 0 eth 0 eth 0 eth 0 eth 0 eth 1 eth 1 eth 1 81.1.1.1 81.1.1.2 81.1.1.3 198.123.7.97 198.123.7.129 198.123.7.161 198.123.7.65 143.9.1.1

Transcript of Reti di calcolatori - dii.unisi.itmaggini/Teaching/RdC/Material/testi prove/11-01... · Reti di...

Page 1: Reti di calcolatori - dii.unisi.itmaggini/Teaching/RdC/Material/testi prove/11-01... · Reti di calcolatori Prova in itinere 2 – 21 gennaio 2011 1. [punti 10] Dato il seguente schema

Nome Cognome Matricola_______________________________

Reti di calcolatori Prova in itinere 2 – 21 gennaio 2011

1. [punti 10] Dato il seguente schema di rete

scegliere la configurazione di rete dell’host 6 (IP, netmask e configurazione di routing) e indicare il contenuto delle tabelle di routing del router R3. Si disegni infine il grafo che rappresenta la rete precedente secondo le tipologie di collegamento (punto-punto, transienti, foglia) previste dal protocollo OSPF.

2. [punti 12] Scrivere in linguaggio C o Java le istruzioni necessarie per implementare un client

TCP che si collega alla porta 6666 di un server assegnato (si assuma che l’IP venga passato come parametro del programma) e realizza il seguente protocollo di comunicazione una volta aperta la connessione.

1. Il client attende che il server invii una stringa che rappresenta una domanda dell’utente. 2. Viene chiamata la funzione String getUserReply(String d) per Java – char *

getUserReply(char *d) per C dove d è la stringa ricevuta dal server. La stringa ottenuta dalla funzione è inviata al server.

3. Si attende una stringa dal server. a. Se la stringa ricevuta è “OK” si chiama la funzione playAgain() che ritorna 1 se

l’utente vuole giocare di nuovo. In tal caso si invia la stringa “NEW” al server e si itera l’esecuzione dal punto 1. Se invece playAgain() ritorna 0 si invia la stringa “BYE”, si chiude la connessione e si esce dal programma.

b. Se la stringa è “RETRY” si torna al punto 2.

3. [punti 8] Dato il polinomio generatore G(x)=x4+x2+1, calcolare il CRC per la sequenza di bit

011011100011. Inoltre verificare se il CRC calcolato con G(x) è in grado di rilevare due errori a distanza 6 fra di loro.

Host 1

Host 2

Host 3 Host 4 Host 5 Host 6

Host 7

Host 8

Host 9 Host 10

Internet

R1

R2

R3

R4

R5

81.0.0.0

192.168.3.8/30 192.168.3.16/30

198.123.7.128/27 198.123.7.160/27 143.9.0.0

198.123.7.64/27

198.123.7.96/27

serial 0 serial 0

serial 0 serial 0

serial 1

eth 0

eth 0

eth 0

eth 0

eth 0

eth 1

eth 1

eth 1

81.1.1.1

81.1.1.2

81.1.1.3

198.123.7.97

198.123.7.129

198.123.7.161

198.123.7.65

143.9.1.1

Page 2: Reti di calcolatori - dii.unisi.itmaggini/Teaching/RdC/Material/testi prove/11-01... · Reti di calcolatori Prova in itinere 2 – 21 gennaio 2011 1. [punti 10] Dato il seguente schema

Nome Cognome Matricola_______________________________

Reti di calcolatori Prova in itinere 2 – 21 gennaio 2011

1. [punti 10] Dato il seguente schema di rete

scegliere la configurazione di rete dell’host 5 (IP, netmask e configurazione di routing) e indicare il contenuto delle tabelle di routing del router R2. Si disegni infine il grafo che rappresenta la rete precedente secondo le tipologie di collegamento (punto-punto, transienti, foglia) previste dal protocollo OSPF.

2. [punti 12] Scrivere in linguaggio C o Java le istruzioni necessarie per implementare un client

UDP che si collega alla porta 2203 di un server assegnato (si assuma che l’IP venga passato come parametro del programma) e realizza il seguente protocollo di comunicazione.

1. Viene chiamata la funzione String getUserQuery() per Java – char * getUserQuery() per C

che produce l’interrogazione da inviare al server. Si invia al server la stringa “Q “ concatenata con la stringa ottenuta.

2. Si attende un pacchetto di risposta. a. Se il pacchetto contiene la stringa “MISS” si chiama la funzione int queryAgain(). Se il

valore prodotto da tale funzione è 1 si itera dal punto 1, altrimenti si chiude il socket e si esce dal programma.

b. Se il pacchetto contiene una stringa che inizia con la stringa “HIT” si estrae la sottostringa successiva che rappresenta l’ID con cui ottenere le risposte dal server. A questo punto si itera l’invio della stringa “H “ concatenata con ID seguito dalla ricezione di una stringa di risposta fino a che non si riceve una stringa di lunghezza nulla. Infine si chiude il socket e si esce dal programma.

3. [punti 8] Dato il polinomio generatore G(x)=x4+x+1, calcolare il CRC per la sequenza di bit 001100101011. Inoltre verificare se il CRC calcolato con G(x) è in grado di rilevare due errori a distanza 5 fra di loro.

Host 1

Host 2

Host 3 Host 4

Host 5 Host 6

Host 7

Host 8

Host 9

Host 10

Internet

R1

R2

R3

R4

R5

75.0.0.0

203.65.88.128/28

152.131.0.0

serial 0

serial 0

serial 1

eth 0

eth 0 eth 0

eth 0

eth 0

eth 1

eth 1

eth 1

75.1.1.1

203.65.88.129

Host 11

eth 1 152.131.1.4

152.131.1.3

152.131.1.2

152.131.1.1

203.65.88.144/28

203.65.88.145

203.65.88.48/28 203.65.88.49

203.65.88.192/28

203.65.88.193

172.16.6.132/30

Page 3: Reti di calcolatori - dii.unisi.itmaggini/Teaching/RdC/Material/testi prove/11-01... · Reti di calcolatori Prova in itinere 2 – 21 gennaio 2011 1. [punti 10] Dato il seguente schema

Nome Cognome Matricola_______________________________

Reti di calcolatori Prova in itinere 2 – 21 gennaio 2011

1. [punti 10] Dato il seguente schema di rete

scegliere la configurazione di rete dell’host 3 (IP, netmask e configurazione di routing) e indicare il contenuto delle tabelle di routing del router R5. Si disegni infine il grafo che rappresenta la rete precedente secondo le tipologie di collegamento (punto-punto, transienti, foglia) previste dal protocollo OSPF.

2. [punti 12] Scrivere in linguaggio C o Java le istruzioni necessarie per implementare un server

TCP che si mette in ascolto sulla porta 6666 e realizza il seguente protocollo di comunicazione una volta accettata una connessione.

1. Il server chiama la funzione String nextQuery() per Java – char * nextQuery() per C che

genera una stringa che rappresenta una domanda. La stringa viene inviata al client. 2. Si attende una stringa di risposta dal client. 3. Si verifica la risposta ricevuta chiamando la funzione int verifyReply(String r) per Java – int

verifyReply(char *r) per C. a. Se verifyReply() produce il valore 1 si invia la stringa “OK” e si attende una stringa dal

client. Se la stringa ricevuta è “NEW” si itera dal punto 1. Se è “BYE” si chiude la connessione.

b. Se verifyReply() produce il valore 0 si invia la stringa “RETRY” e si torna al punto 2.

3. [punti 8] Dato il polinomio generatore G(x)=x4+x3+1, calcolare il CRC per la sequenza di bit

010111010110. Inoltre verificare se il CRC calcolato con G(x) è in grado di rilevare due errori a distanza 7 fra di loro.

Host 1

Host 2

Host 3 Host 4 Host 5 Host 6

Host 7

Host 8

Host 9 Host 10

Internet

R1

R2

R3

R4

R5

154.11.0.0.

172.45.6.128/30 172.45.6.32/30

97.0.0.0 211.9.7.128/26 211.9.7.0/26

211.9.7.64/26

211.9.7.192/26

serial 0 serial 0

serial 0 serial 0

serial 1

eth 0

eth 0

eth 0

eth 0

eth 0

eth 1

eth 1

eth 1

154.11.1.2

211.9.7.193

97.1.1.1

211.9.7.129

211.9.7.65

211.9.7.1

154.11.1.1

154.11.1.3

Page 4: Reti di calcolatori - dii.unisi.itmaggini/Teaching/RdC/Material/testi prove/11-01... · Reti di calcolatori Prova in itinere 2 – 21 gennaio 2011 1. [punti 10] Dato il seguente schema

Nome Cognome Matricola_______________________________

Reti di calcolatori Prova in itinere 2 – 21 gennaio 2011

1. [punti 10] Dato il seguente schema di rete

scegliere la configurazione di rete dell’host 2 (IP, netmask e configurazione di routing) e indicare il contenuto delle tabelle di routing del router R2. Si disegni infine il grafo che rappresenta la rete precedente secondo le tipologie di collegamento (punto-punto, transienti, foglia) previste dal protocollo OSPF.

2. [punti 12] Scrivere in linguaggio C o Java le istruzioni necessarie per implementare un server

UDP che si mette in ascolto sulla porta 2203 e realizza il seguente protocollo di comunicazione.

1. Per ogni pacchetto ricevuto si controlla la stringa contenuta.

a. Se inizia con “Q” si chiama il metodo String doQuery(String q) per Java – char * doQuery(char *q) per C dove q è la sottostringa a partire dal carattere 2. Se la stringa prodotta da doQuery ha lunghezza nulla si invia al client un pacchetto che contiene la stringa “MISS” altrimenti si invia la stringa “HIT “ concatenata con la stringa prodotta dal doQuery().

b. Se inizia con “H” si chiama il metodo String nextQueryHit(String ID) per Java – char * nextQueryHit(char *ID) per C dove ID è la sottostringa estratta da quella ricevuta a partire dal carattere 2. Si invia in risposta la stringa ottenuta.

3. [punti 8] Dato il polinomio generatore G(x)=x4+x3+x+1, calcolare il CRC per la sequenza di bit 000111011011. Inoltre verificare se il CRC calcolato con G(x) è in grado di rilevare due errori a distanza 6 fra di loro.

Host 1

Host 2

Host 3 Host 4

Host 5 Host 6

Host 7

Host 8

Host 9

Host 10

Internet

R1

R2

R3

R4

R5

133.24.0.0

199.43.108.32/27

57.0.0.0

serial 0

serial 0

serial 1

eth 0

eth 0 eth 0

eth 0

eth 0

eth 1

eth 1

eth 1

133.24.1.1

199.43.108.33

Host 11

eth 1 57.1.1.4

57.1.1.3

57.1.1.2

57.1.1.1

199.43.108.64/27

199.43.108.65

199.43.108.96/27 199.43.108.97

199.43.108.160/27

199.43.108.161

192.169.3.48/30