cerca
Temi d'esame di Sistemi - 16/04/2009
modifica cronologia stampa login logout

Wiki

UniCrema


Materie per semestre

Materie per anno

Materie per laurea


Help

Uni.TemiEsameSED14 History

Hide minor edits - Show changes to output

Added lines 1-7:
(:title Temi d'esame di Sistemi - 16/04/2009:)
[[Torna alla pagina di Sistemi per l'elaborazione delle informazioni->Sistemi]]
----

%titolo% ''':: Temi d'esame di Sistemi - 16/04/2009 ::'''
Changed line 66 from:
'''Soluzione'''
to:
!!!!!Soluzione
January 26, 2011, at 07:45 PM by dario - Aggiunto esercizio 3
Changed lines 46-49 from:
to:
>>evvai<<
Questo esercizio ha una soluzione grazie agli appunti inviati durante la chiusura della sezione Unicrema:) Non ne siete felici?:)
>><<
Added lines 65-146:

'''Soluzione'''
Ecco le operazioni da fare:
# Creazione socket e configurazione per l'invio di pacchetti ogni minuto a tutti gli host
# Creazione socket ricezione (IP/porta host mittente richiesti da command line) + utilizzo
select()+utilizzo recvfrom()

//creo il socket per la trasmissione agli host della rete con modalita connectionless
if ((sock_upt = socket(PF_INET, SOCK_DGRAM, 0)) < 0) {
perror("socket");
exit(1);
}

//attraverso la funzione si setsockopt abilito il broadcast
if (setsockopt(sock_upt, SOL_SOCKET, SO_BROADCAST, &on, sizeof(on)) < 0) {
perror("setsockopt");
exit(1);
}

//inizializzo il socket
sin.sin_family = PF_INET;
sin.sin_addr.s_addr = INADDR_BROADCAST;
sin.sin_addr.s_port = htons(5555);
while(1) {
@adesso = localtime(time);
// solo nei primi due secondi di ogni minuto
if($adesso[0]<2) {
sendto(sock_upt,&info,lenght_uptime,0,sockadrr*)&sin,add_lenght);
}
}

// Creo l’array di descrittori di socket
for (port = 0; port < lenght; port++){
// Recupero la porta da utilizzare dalla lista di porte
// specificata a linea di comando
portNo = atoi(argv[port + 2]);

//richiedo indirizzo ip dell'host da cui voglio ricevere
//le informazioni sull'uptime
printf("Inserire indirizzo ip dell'host");
scanf(%c,add_client);

// Creo il socket relativo a quella porta
//e a quell'indirizzo e faccio il bind
servSock[port] = CreateUDPServerSocket(portNo,add_client);
}

while (running) {
// Azzero l’insieme dei socket controllati
//che saranno controllati dalla select.
//Deve essere chiamata prima di ogni select().
FD_ZERO(&rset);

// Inserisco i socket creati nella lista di descrittori che la select controlla
for (port = 0; port < noPorts; port++) {
FD_SET(servSock[port], &rset);
}

// Imposto il timeout prima di ogni select()
selTimeout.tv_sec = 6600; // secondi
if (select(servSock + 1, &rset, NULL, NULL, &selTimeout) == 0) {

//suppongo che se l'host non mi risp entro 11 min vuol dire che non è
// collegato e quindi non avrò richieste in lettura
printf("Timeoout");
} else {
//ricevo l'uptime del client di cui ho fatto richiesta
//specificando l'indirizzo del mittente
n=recvfrom(servSock + 1,&uptime,lenght,flags,sockaddr*) &add_client,add_lenght);

if(n<0) {
printf("errore");
} else {
printf(uptime);//visualizza le informazioni legate all'uptime del host richiesto
}

close(servSock+1);
}
}

Changed lines 24-28 from:
\\GET http://www.unimi.it/HTTP/1.1
\\Accept: */*
\\Accept-Language: en
\\Accept-Encoding: gzip, deflate
\\Cookie: monster_728x240_expAnsa_091006=00238b6afa1ff3e8e1393f86619f
to:
[[<<]]GET http://www.unimi.it/HTTP/1.1
[[<<]]Accept: */*
[[<<]]Accept-Language: en
[[<<]]Accept-Encoding: gzip, deflate
[[<<]]Cookie: monster_728x240_expAnsa_091006=00238b6afa1ff3e8e1393f86619f
Changed lines 30-34 from:
\\User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en)
\\AppleWebKit/418.9
\\Pragma: no-cache
\\Connection: keep-alive
\\Host: www.unimi.it
to:
[[<<]]User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en)
[[<<]]AppleWebKit/418.9
[[<<]]Pragma: no-cache
[[<<]]Connection: keep-alive
[[<<]]Host: www.unimi.it
Changed lines 24-29 from:
GET http://www.unimi.it/HTTP/1.1
Accept: */*
Accept-Language: en
Accept-Encoding: gzip, deflate
Cookie:
monster_728x240_expAnsa_091006=00238b6afa1ff3e8e1393f86619f
to:
\\GET http://www.unimi.it/HTTP/1.1
\\Accept: */*
\\Accept-Language: en
\\Accept-Encoding: gzip, deflate
\\Cookie: monster_728x240_expAnsa_091006=00238b6afa1ff3e8e1393f86619f
Changed lines 30-34 from:
User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en)
AppleWebKit/418.9
Pragma: no-cache
Connection: keep-alive
Host: www.unimi.it
to:
\\User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en)
\\AppleWebKit/418.9
\\Pragma: no-cache
\\Connection: keep-alive
\\Host: www.unimi.it
Added line 37:
Added line 39:
Added line 7:
Added line 9:
Added lines 14-15:
Deleted line 0:
Changed lines 4-5 from:
Un browser WEB deve scaricare una pagina che contiene 6 immagini da 1 Mbyte ciascuna, 3 delle quali sono memorizzate sullo stesso server e 3 se su un server diverso,
to:
Un browser WEB deve scaricare una pagina che contiene 6 immagini da 1 Mbyte ciascuna,
3 delle quali sono memorizzate sullo stesso server e 3 se su un server diverso,
Changed lines 8-9 from:
(2)Supponendo che la max banda vista dal browser sia 100 kbps su ciascuna connessione TCP, che RTT sia costante su tutte le connessioni e pari a 100 msec, e che la banda di partenza per tutte le connessioni sia 16 kbps, quanto è il tempo totale di scaricamento di tutte le immagini?
to:
(2)Supponendo che la max banda vista dal browser sia 100 kbps su ciascuna connessione
TCP, che RTT sia costante su tutte le connessioni e pari a 100 msec, e che la banda
di partenza per tutte le connessioni sia 16 kbps, quanto è il tempo totale di
scaricamento di tutte le immagini?
Changed lines 16-17 from:
Un utente si collega al web della rete di un'azienda utilizza un proxy http che lavora sulla porta 8080. Si supponga che il browser generi il seguente pacchetto di richiesta HTTP:
to:
Un utente si collega al web della rete di un'azienda utilizza un proxy http che lavora
sulla porta 8080. Si supponga che il browser generi il seguente pacchetto di richiesta
HTTP:
Changed lines 34-36 from:
b. Si illustri passo per passo cosa fa il proxy quando riceve la richiesta del browser, supponendo che per quest'ultimo sia configurato per utilizzare come proxy la porta 4040.
to:
b. Si illustri passo per passo cosa fa il proxy quando riceve la richiesta del
browser, supponendo che per quest'ultimo sia configurato per utilizzare come proxy la
porta 4040.
Changed lines 42-43 from:
Il servizio ruptime fornisce il nome degli host attivi sulla sottorete e il loro tempo totale di attività. Ecco la relativa pagina man:
to:
Il servizio ruptime fornisce il nome degli host attivi sulla sottorete e il loro tempo
totale di attività. Ecco la relativa pagina man:
Changed lines 50-55 from:
Ruptime gives a status line like uptime for each machine on the local network; these are formed from packets broadcast by each host on the network once a minute.
Machines for which no status report has been received for 11 minutes are shown as being down.

Fornite lo pseudocodice per un client ruptime, facendo tutte le opportune ipotesi e mettendo in evidenza le chiamate alla socket library che utilizzate.
to:
Ruptime gives a status line like uptime for each machine on the local network;
these are formed from packets broadcast by each host on the network once a minute.
Machines for which no status report has been received for 11 minutes are shown
as being down.

Fornite lo pseudocodice per un client ruptime, facendo tutte le opportune ipotesi e
mettendo in evidenza le chiamate alla socket library che utilizzate.
Changed lines 62-64 from:
Sun XDR converte i dati nello standard big-endian prima di trasmetterli. Spiegate in cosa consiste questa conversione attraverso un esempio. (Opzionale) Discutete vantaggi e svantaggi di questa tecnica rispetto a Receiver Make it Right.
to:
Sun XDR converte i dati nello standard big-endian prima di trasmetterli. Spiegate in
cosa consiste questa conversione attraverso un esempio. (Opzionale) Discutete vantaggi
e svantaggi di questa tecnica rispetto a Receiver Make it Right.
Added lines 1-51:

!! Esercizio 1 (8 punti)


Un browser WEB deve scaricare una pagina che contiene 6 immagini da 1 Mbyte ciascuna, 3 delle quali sono memorizzate sullo stesso server e 3 se su un server diverso,
Si consideri sia l'utilizzo di HTTP 1.0 che 1.1.
(1)Quante connessioni TCP vengono aperte?
(2)Supponendo che la max banda vista dal browser sia 100 kbps su ciascuna connessione TCP, che RTT sia costante su tutte le connessioni e pari a 100 msec, e che la banda di partenza per tutte le connessioni sia 16 kbps, quanto è il tempo totale di scaricamento di tutte le immagini?

!! Esercizio 2 (6 punti)


Un utente si collega al web della rete di un'azienda utilizza un proxy http che lavora sulla porta 8080. Si supponga che il browser generi il seguente pacchetto di richiesta HTTP:

GET http://www.unimi.it/HTTP/1.1
Accept: */*
Accept-Language: en
Accept-Encoding: gzip, deflate
Cookie:
monster_728x240_expAnsa_091006=00238b6afa1ff3e8e1393f86619f
6837;
User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en)
AppleWebKit/418.9
Pragma: no-cache
Connection: keep-alive
Host: www.unimi.it

a. Si descriva il significato di tutti i campi del pacchetto
b. Si illustri passo per passo cosa fa il proxy quando riceve la richiesta del browser, supponendo che per quest'ultimo sia configurato per utilizzare come proxy la porta 4040.


!! Esercizio 3 (12 punti)


Il servizio ruptime fornisce il nome degli host attivi sulla sottorete e il loro tempo totale di attività. Ecco la relativa pagina man:

NAME
ruptime -- show host status of local machines
SYNOPSIS
ruptime [-alrtu]
DESCRIPTION
Ruptime gives a status line like uptime for each machine on the local network; these are formed from packets broadcast by each host on the network once a minute.
Machines for which no status report has been received for 11 minutes are shown as being down.

Fornite lo pseudocodice per un client ruptime, facendo tutte le opportune ipotesi e mettendo in evidenza le chiamate alla socket library che utilizzate.


!! Esercizio 4 (4 punti)


Sun XDR converte i dati nello standard big-endian prima di trasmetterli. Spiegate in cosa consiste questa conversione attraverso un esempio. (Opzionale) Discutete vantaggi e svantaggi di questa tecnica rispetto a Receiver Make it Right.