Estratto del documento

Domande IIW

1° Capitolo ✔

Descrivere le varie componenti del ritardo in una rete a pacchetto (9)

[Descrivere i vari tipi di ritardo in una rete a pacchetto. (1) ] {Libro: par. 1.4.1 ed.6}

Un pacchetto parte da un host sorgente, attraversa una serie di router e arriva a un host

destinazione. Durante questo tragitto, il pacchetto può subire 4 tipi di ritardo che sommati tra

loro forniscono il ritardo totale di nodo. Questi ritardi sono:

- Ritardo di elaborazione: è il tempo necessario per esaminare l’intestazione di un

pacchetto e per determinare dove dirigerlo.

- Ritardo di accodamento: dopo l’elaborazione un pacchetto viene diretto verso la coda

che precede il router. In questa coda subisce un ritardo che dipende dal numero di

pacchetti accodati e che si deve attendere prima di essere trasmesso. Questo ritardo

può anche essere nullo nel caso non ci siano pacchetti in attesa nella coda.

- Ritardo di trasmissione: è la quantità di tempo richiesta dal router per trasmettere in

uscita il pacchetto. Questo ritardo non dipende dalla distanza tra due router ma solo

dalla lunghezza del pacchetto (L) in bit e dalla velocità di trasmissione del

collegamento (R) in bps. Il ritardo di trasmissione dunque risulta essere L/R.

- Ritardo di propagazione: è il tempo richiesto per la propagazione di un bit da un router

al router successivo, è quindi in funzione della distanza tra i due router (d), ma non

dipende dalla lunghezza del pacchetto. Il bit viaggia alla velocità di propagazione del

collegamento (v), che dipende dal mezzo fisico (compresa tra 2x10^8 m/s e 3x10^8

m/s). Il ritardo di propagazione è quindi dato da d/v.

Illustrare le caratteristiche generali e i relativi vantaggi delle reti a commutazione di

circuito e delle reti a pacchetto (1) {par. 1.3 ed. 6}

Commutazione di circuito: risorse richieste (di solito un circuito) lungo un percorso vengono

riservate per tutta la sessione di comunicazione; ciò causa un dispendio delle risorse e quindi

una perdita di efficienza, visto che quando inizia una sessione, bisogna attenderne la fine per

iniziarne un’altra. Un circuito in un collegamento è implementato con due tecniche diverse,

TDM o FDM; FDM indica che lo spettro di frequenze di un collegamento viene suddiviso tra le

connessioni stabilite con quel collegamento (ad esempio i primi 4khz solo per il telefono); TDM

indica che si divide il tempo in intervalli (frame) di durata fissa, divisi a loro volta in slot; quando

si stabilisce una connessione tramite un collegamento, le viene dedicato uno slot di tempo in

ogni frame, solo per quella connessione.

Commutazione di pacchetto: i messaggi da scambiare dalla sorgente vengono divisi in parti

più piccole chiamate pacchetti; questi pacchetti vengono trasmessi tramite router e

commutatori a livello di collegamento fino alla destinazione. Viene usata la tecnica dello store

and forward: il commutatore deve ricevere l’intero pacchetto prima di poterlo inoltrare alla

destinazione. Ogni commutatore ha un buffer di output dove conserva i pacchetti che

attendono la trasmissione; ciò può causare ritardi di accodamento o perdita di pacchetti.

Inoltre ogni pacchetto ha una propria descrizione tramite l’indirizzo IP di destinazione, e tutto

ciò viene memorizzato automaticamente tramite protocolli di instradamento all’interno della

tabella di inoltro presente nei router.

Le grandi differenze tra commutazione di pacchetto e di circuito risiede nell’efficienza e nella

velocità. Nella commutazione di circuito la velocità è divisa a seconda di quanti collegamenti

ci sono nello stesso circuito. Nella commutazione di pacchetto invece è disponibile tutta la

velocità per ogni singolo collegamento, con i dovuti ritardi e attese del caso. Inoltre l’efficienza

nella commutazione di pacchetti è molto maggiore visto che non vi è inutilizzo di risorse nei

momenti di silenzio, cosa che avviene nella commutazione di circuito.

2° Capitolo ✔

Descrivere il funzionamento del protocollo HTTP (8) (http1.1)

HTTP è un protocollo a livello di applicazione del web. Esso definisce in che modo i client web

(implementati da un browser web) richiedono le pagine ai web server e come questi ultimi

rispondono ai client. In pratica definisce una semantica per ogni interazione tra i due. L’uso di

questo protocollo viene specificato all’inizio dell’URL di richiesta da parte del client nei

confronti del server: nell’URL c’è la prima parte dedicata al nome del protocollo usato, la

seconda dedicata al nome dell’host del server che ospita la risorsa richiesta, la terza dedicata

al pathname nell’host del server della risorsa richiesta. Il protocollo di trasporto usato da HTTP

è il TCP, quindi l’affidabilità è tutta delegata a quest’ultimo, permettendo all’HTTP di non

preoccuparsene; ogni messaggio si ha la certezza che arriverà e verrà restituito tra client e

server grazie a TCP.

TCP inoltre è un protocollo orientato alla connessione e http può usare 2 approcci:

- Connessione non persistente: il client HTTP inizia una connessione TCP con il server

che possiede la pagina web. Dopo di che il client HTTP tramite la propria socket

richiede la pagina web al server. Il server riceve il messaggio, prende l’oggetto

richiesto e lo spedisce al client. Dopo che il client riceve la risposta da parte del server,

la connessione TCP verrà chiusa. Lo svantaggio di questo approccio è che per ogni

richiesta verso il server deve essere iniziata una nuova connessione.

- Connessione persistente: il client e il server possono scambiarsi più messaggi senza

dover ogni volta instaurare una connessione.

Inoltre HTTP è un protocollo senza memoria di stato, ovvero i server inviano i files richiesti dai

client senza memorizzare informazioni su questi ultimi, quindi, se si chiede lo stesso file più

volte allo stesso server, quest’ultimo procederà come se fosse la prima volta che gli viene

richiesta tale risorsa. ✔

Descrivere le differenze tra le versione 1.0 e 1.1 del protocollo HTTP (2)

Le differenze tra le due versioni risiedono soprattutto nel fatto che HTTP 1.0 utilizza

connessioni non persistenti: per mandare più oggetti appartenenti ad esempio alla stessa

pagina, viene aperta e chiusa una nuova connessione TCP ad ogni oggetto; invece, in HTTP

1.1 c’è l’utilizzo di connessioni persistenti, ovvero per più richieste e risposte successive tra

stessi client e server viene usata sempre la stessa connessione TCP permanente, ed inoltre

questa connessione può essere usata non solo per la sola pagina web in questione, ma per

spedire più pagine web; in più nella versione 1.1 c’è anche il pipelining, ovvero la capacità di

effettuare richieste di oggetti una dopo l’altra senza aspettare le risposte alle richieste

pendenti. Queste migliorie nella versione 1.1 comportano una notevole diminuzione dell’onere

di lavoro sul web server e dei ritardi dovuti alla versione 1.0.

Descrivere il funzionamento del caching nel web (5)

Una web cache, nota anche come proxy server, è un’entità di rete che soddisfa le richieste

http al posto del web server effettivo e serve per ridurre il traffico. A tale scopo, il proxy ha una

propria memoria su disco (una cache) in cui conserva le copie di oggetti recentemente

richiesti.

Quando un browser deve richiedere una pagina web invece di essere indirizzato verso il

server inizializza una connessione con un proxy server. Il browser stabilisce una connessione

TCP con il proxy server e invia la richiesta per l’oggetto specificato. Il proxy controlla nella

propria memoria se l'oggetto è presente. Se sì lo inoltra al client. Altrimenti, se non è presente,

il proxy invia al server una richiesta HTTP per l’oggetto. Una volta ricevuta la richiesta, il server

invia l’oggetto al proxy tramite una risposta HTTP. Quanto il proxy riceve questo oggetto, ne

salva una copia nella propria memoria e invia una copia al browser.

In questi passaggi il proxy server svolge sia un ruolo server quando comunica con il browser

sia un ruolo client quando contatta il server di origine.

I vantaggi del web caching sono la riduzione sostanziale dei tempi di risposta alle richieste dei

client e la riduzione del traffico al collegamento di accesso a internet.

Il web caching introduce però un problema: la copia di un oggetto che risiede in cache

potrebbe essere scaduta. Questo problema si risolve con un GET condizionale. Quando un

proxy richiede una oggetto al server, oltre a salvare una copia dell’oggetto nella cache, salva

anche la data dell’ultima modifica di questo oggetto. Successivamente, quando questo

oggetto viene di nuovo richiesto, il proxy effettua un controllo di aggiornamento inviando un

GET condizionale chiedendo al server di rinviargli l’oggetto se e solo se è stato modificato

rispetto all’ultima data specificata. Se non c'è stata nessuna modifica il server risponde al

proxy con un messaggio con il corpo vuoto.

Descrivere le caratteristiche principali dell’applicazione di Posta Elettronica. Si

illustrino, inoltre, i protocolli di livello applicativo impiegati in tale applicazione. (1)

L’applicazione di posta elettronica consente lo scambio di messaggi tra persone. E’ un mezzo

di comunicazione asincrono. I principali attori di questo sistema sono gli user agent (client di

posta), i server di posta e il protocollo SMTP.

Il protocollo SMTP si occupa di trasferire i messaggi dal server del mittente a quello del

destinatario; ciò avviene in questi passi: quando si da il comando allo user agent di inviare il

messaggio, esso viene posto sul mail server in coda di messaggi; il lato client di SMTP vede

il messaggio e apre una connessione TCP verso il server SMTP sul server mail del

destinatario, con un handshaking; in seguito a ciò invia il messaggio sulla connessione TCP;

sul server mail del destinatario il lato server di SMTP riceve il messaggio e lo pone nella

casella destinataria; il destinatario quando lo riterrà opportuno apre il proprio user agent per

leggere il messaggio. Per il SMTP non si usano server intermedi, ma la connessione avviene

anche tra due città distanti. Più mail verso lo stesso destinatario possono esser mandate sulla

stessa connessione TCP. Un messaggio di posta è formato da un’intestazione con delle righe

fondamentali (from:, to:..) separata da uno spazio dall’area riservata al corpo del messaggio.

Rispetto ad HTTP, il SMTP è un protocollo di tipo push, ovvero inoltra dati, non li riceve; per

questo motivo, per la ricezione tramite user agent di messaggi posizionati nel mail server del

destinatario si usano diversi protocolli di accesso alla posta come POP3, IMAP, o HTTP

stesso (tramite web mail).

Il protocollo POP3 è il protocollo più semplice, e consiste in 3 fasi: autorizzazione, transazione

e aggiornamento; nell’autorizzazione si fa il login con il mail server (in chiaro presso la porta

110); con la transazione si può fare “scarica e cancella” o “scarica e mantieni”;

nell’aggiornamento si conclude la sessione dopo aver ricevuto il comando quit, facendo il

logout dal mail server; il POP3 non trasporta info di stato tra sessioni diverse ne permette di

creare cartelle remote sul server.

Un server IMAP associa ad ogni messaggio una cartella (ad esempio i messaggi in arrivo

nella cartella INBOX). Consente la creazione di cartelle e lo spostamento di messaggi in esse.

Conserva info di stato tra sessioni diverse (nomi cartelle e assegnazioni di messaggi ad esse).

Inoltre consente di ricevere parte di un messaggio, cosa utile con connessioni a velocità

ridotte.

L’ultimo protocollo usato è HTTP. Questo viene usato nelle web mail, ovvero caselle di posta

aperte tramite un browser. ✔ ✔

Descrivere il funzionamento del DNS (8) / Descrivere il DNS (3)

Gli host internet possono essere indentificati in vari modi: ad esempio un utente che richiede

una pagina web utilizza degli hostname, mentre il browser web che deve instaurare una

connessione TCP con il web server che contiene gli oggetti richiesti utilizza gli indirizzi IP. Il

DNS(domain name system) è un servizio in grado di tradurre degli hostname nei loro indirizzi

IP. Inoltre fornisce anche servizi come host aliasing (fornisce hostname canonico per un

sinonimo), mail server aliasing (fornisce nome canonico di un sinonimo) e distribuzione del

carico di rete (associa ad ogni hostname canonico di siti replicati su più server un indirizzo IP

e lo restituisce a rotazione su richiesta).

Il DNS è sia un database distribuito implementato in una gerarchia di DNS server sia un

protocollo a livello di applicazione che consente di interrogare il database.

La traduzione da hostname a indirizzo IP avviene nel seguente modo: il browser estrae il

nome dell’host dall’URL e lo passa al lato client del DNS che viene eseguito sulla macchina

dell’utente; il client DNS invia una query contenente l’hostname a un DNS server e prima o

poi il DNS client riceve una risposta contenente l’indirizzo IP corrispondente all’hostname; una

volta ottenuta la risposta, il browser può dare inizio a una connessione TCP verso il processo

server HTTP collegato alla porta 80 di quell’indirizzo IP.

Il DNS utilizza un gran numero di server in maniera gerarchica e distribuiti nel mondo; in

particolare esistono 3 classi di DNS server: root server, top-level domain(TLD) server e server

autoritativi. Il client per prima cosa contatta un root server, che restituisce uno o più indirizzi

IP relativi al server TLD per un dominio di primo livello, dopo di che contatta uno di questi

server TLD che gli restituisce uno o più indirizzi del server autoritativo. Inoltre esiste anche un

DNS server locale che non appartiene alla gerarchia di server, ma svolge comunque un ruolo

principale. Sostanzialmente quando un host si connette a un ISP riceve l'indirizzo IP di uno o

più DNS server locali. Inoltre quando un host effettua una richiesta DNS, questa query viene

inviata al server locale che fa da proxy e inoltra la query alla gerarchia dei DNS detta in

precedenza.

Il processo di traduzione DNS può introdurre un ritardo delle interrogazioni di internet, per

questo motivo il DNS utilizza il caching per migliorare le prestazioni. Il DNS server che riceve

una risposta DNS, può metter in cache le informazioni contenute. Se una coppia

hostname/indirizzo IP è nella cache di una server quando gli arriverà una richiesta per lo

stesso hostname, il DNS server potrà fornire l’indirizzo IP desiderato anche se non è

autoritativo.

Per funzionare i database DNS devono essere riempiti, questo avviene semplicemente

quando si vuole registrare un nuovo dominio: un registrar controllerà il dominio e richiederà

gli indirizzi IP dei server autoritativi che aggiungerà al database.

(record di messaggi e messaggi non l’ho messi)

Differenza tra query DNS iterative e ricorsive. (1)

Con una query iterativa il client inoltra una richiesta a un DNS server per tradurre l’hostname

nell’indirizzo IP corrispondente. Se il server non può effettuare la traduzione, gli fornisce il

nome del DNS server che secondo lui può effettuare la traduzione. Successivamente il client

ripete la procedura rivolgendosi al DNS server che gli è stato fornito.

Con una query ricorsiva il client inoltra una richiesta a un DNS server per la traduzione il quale,

se questo non può fornire una risposta, interrogherà altri DNS server finchè non trova la

risposta desiderata.

In generale la richiesta da host a server locale è ricorsiva, mentre le successive sono tutte

iterative. ✔

Descrivere come vengono realizzate le DHT (1)

Le DHT sono tabelle hash distribuite. Distribuite perché, nel sistema P2P, ogni peer può

gestire un piccolo sottoinsieme della totalità di coppie (chiave,valore); inoltre ogni peer può

interrogare il database distribuito con una specifica chiave ed esso gli restituirà i peer che

hanno la coppia (chiave,valore) richiesta ed ogni peer può anche aggiungere nuove coppie al

database.

Un primo metodo di realizzazione sarebbe la distribuzione casuale delle coppie e la

memorizzazione in ogni peer dell’IP di tutti gli altri: ciò però non è affatto scalabile e non va

quindi bene.

Un metodo migliore è il seguente: si assegna un identificatore ad ogni peer (da 0 a 2^n-1 con

n fissato); anche ogni chiave deve essere sempre nello stesso intervallo precedente; queste

chiavi però spesso non sono nel formato giusto, e per creare interi a partire da esse si usa

una funzione hash che ne crea la corrispondenza (tramite questa funzione più chiavi possono

avere la stessa corrispondenza ma è una probabilità molto ridotta quindi trascurabile). Come

si assegnano le chiavi ai peer? Si assegna ogni coppia chiave-valore al peer il cui id è il più

vicino alla chiave, e se la chiave corrisponde proprio ad uno degli id, allora si assegna proprio

a quel peer, mentre se è più grande di tutti gli id, allora si memorizza nel peer con l’id più

piccolo (convenzione modulo-2^n). Però con questo metodo c’è un problema quando un peer

vuole aggiungere una nuova coppia: per determinare il peer con id più vicino alla chiave

dovrebbe conoscerli tutti, cosa infattibile.

Questo problema si risolve con la DHT circolare. In questa realizzazione ogni peer tiene

traccia solo del predecessore immediato e successore. Un peer per sapere quale sia

responsabile per una certa chiave, interroga il successivo o il precedente, e se non è nessuno

dei due, manda avanti al successore in senso orario sul cerchio, fino ad arrivare al

responsabile che invia risposta al peer originario che ha mandato la richiesta. Però così

facendo, nel caso peggiore, ogni peer dovrebbe mandare una richiesta sul cerchio.

Questo problema si aggir

Anteprima
Vedrai una selezione di 6 pagine su 21
Ingegneria di internet e del web - Domande d'esame con risposte Pag. 1 Ingegneria di internet e del web - Domande d'esame con risposte Pag. 2
Anteprima di 6 pagg. su 21.
Scarica il documento per vederlo tutto.
Ingegneria di internet e del web - Domande d'esame con risposte Pag. 6
Anteprima di 6 pagg. su 21.
Scarica il documento per vederlo tutto.
Ingegneria di internet e del web - Domande d'esame con risposte Pag. 11
Anteprima di 6 pagg. su 21.
Scarica il documento per vederlo tutto.
Ingegneria di internet e del web - Domande d'esame con risposte Pag. 16
Anteprima di 6 pagg. su 21.
Scarica il documento per vederlo tutto.
Ingegneria di internet e del web - Domande d'esame con risposte Pag. 21
1 su 21
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher Eowyn120 di informazioni apprese con la frequenza delle lezioni di Ingegneria di internet e del web e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Roma Tor Vergata o del prof Lo Presti Francesco.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community