2. Il livello applicazione Flashcards

1
Q

Quali sono le architetture delle applicazioni di rete?

A

Le architetture delle applicazioni di rete sono: client-server, P2P, architetture ibride(client-server e P2P) e cloud computing

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Spiega in maniera generale l’architettura client-server.

A

Nell’architettura client-server, c’è il server, che è un host sempre attivo con un indirizzo permanente. Il client comunica con il server, può avere un indirizzo dinamico e non comunica direttamente con altri client.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Spiega in maniera generale l’architettura Peer to Peer(P2P).

A

In questo caso non c’è un server sempre attivo. Coppie arbitrarie di host(peer) comunicano direttamente tra loro.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Fai un esempio di un’architettura ibrida e spiega in poche parole cosa fa.

A

Ad esempio skype utilizza un’architettura ibrida, ovvero ha un server centralizzato che ricerca gli indirizzi delle persone che vogliono chiamarsi e poi la connessione client-client è diretta(non attraverso il server).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Spiega in maniera generale che cos’è il cloud computing.

A

Il cloud computing è un insieme di tecnologie che permette di memorizzare, archiviare e/o elaborare dati tramite l’utilizzo di risorse distribuite e virtualizzate in rete. I dati sono memorizzati in server farm.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Che cos’è un processo? Spiega come si differenzia tra client e server.

A

Un processo è un programma in esecuzione su un host. All’interno dello stesso host possono esserci più processi, che comunicano tra di loro utilizzando schemi interprocesso(definiti dal SO). Processi su host different comunicano tramite lo scambio di messaggi. Il processo client è quello che dà inizio alla comunicazione, invece quello server attende di essere contattato.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Che cos’è una socket e che cosa serve?

A

Un processo invia/riceve messaggi a/da la sua socket. Una socket è analoga a una porta, dunque un processo che vuole inviare un messaggio lo farà uscire dalla propria porta per poi arrivare alla porta del processo di destinazione.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Come fa il mittente a identificare il processo destinatario al quale mandare un messaggio?

A

Ogni host ha un indirizzo IP univoco di 32 bit, ma non è sufficiente conoscere l’indirizzo IP del host destinatario, perché sullo stesso host possono essere in esecuzione molti processi, quindi per inviare un messaggio ci serve l’indirizzo IP dell’ host destinatario e il numero di porta del processo.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Quali sono i requisiti del servizio di trasporto delle applicazioni?

A

Un’ applicazione può richiedere diversi requisiti del servizio di trasporto dipendentemente da cosa serve. La perdita di dati(certe applicazioni tollerano qualche perdita, altre richiedono un trasferimento dati affidabile al 100%), throughput, temporizzazione, sicurezza.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Quali sono i protocolli di trasporto Internet e quali sono le loro caratteristiche generali?

A

I due protocolli di trasporto Internet più importanti sono TCP(Transport Control Protocol) e UDP(User Datagram Protocol). TCP offre un trasporto affidabile, controllo di flusso, controllo della congestione, mentre UDP non offre un trasporto affidabile e quindi la mancanza di controllo e affidabilità lo rende più veloce e leggero, dunque perfetto per applicazioni sensibili al tempo(ad esempio giochi online, streaming ecc.).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Che cos’è HTTP e come funziona?

A

HTTP(HyperText Transfer Protocol) è un protocollo a livello di applicazione del Web. Usa TCP, ovvero il client inizializza la connessione TCP(crea una socket) con il server, il server accetta la connessione TCP del client, scambio di messaggi HTTP e in fine si chiude la connessione TCP. HTTP è un protocollo senza stato, ossia il server non mantiene informazioni sulle richieste fatte dal client.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Quali sono le connessioni HTTP? Descrivi i concetti principali.

A

Le connessioni HTTP possono essere connessioni non persistenti(Su una connessione TCP viene trasmesso un solo oggetto) o connessioni persistenti(più oggetti possono essere trasmessi su una singola connessione TCP).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Definisci RTT(Round-Trip Time) e quanto è il tempo di risposta a una richiesta HTTP da parte di un client.

A

RTT(Round-Trip Time) è il tempo di propagazione di andata e ritorno tra due host(tempo impiegato da un piccolo pacchetto per andare dal client al server e ritornare al client). Il tempo di risposta è un RTT all’inizio per iniziare la connessione TCP, poi un altro RTT perché ritornino la richiesta HTTP e i primi byte della risposta e poi ancora il tempo di trasmissione del file, dunque il tempo di risposta è: 2RTT + tempo di trasmissione.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Quali sono gli svantaggi delle connessioni non persistenti? Descrivi invece le caratteristiche delle connessioni persistenti.

A

I svantaggi delle connessioni non persistenti sono che richiedono 2RTT per oggetto. Nelle connessioni persistenti invece il server lascia la connessione TCP aperta dopo l’invio di una risposta, dunque il client invia le richieste non appena incontra un oggetto referenziato e per questo motivo usa un solo RTT per tutti gli oggetti referenziati.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Dai una breve spiegazione dei principali commandi HTTP.

A

GET: richiede una risorsa senza modificarla, i dati sono passati nell’URL.
POST: invia dati al server per creare o aggiornare una risorsa
HEAD: simile a GET, ma restituisce solo le intestazioni della risposta, senza il corpo.
PUT: carica una risorsa sul server, creando o sovrascrivendo una risorsa esistente con i dati forniti.
DELETE: richiede al server di eliminare una risorsa specificata.

Esiste anche il GET condizionale che è strettamente collegato al cache web, ovvero l’obiettivo è di non inviare un oggetto se la cache ha una copia aggiornata dell’oggetto.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Quali sono i principali codici di stato della risposta HTTP e in breve cosa significano.

A

200(OK): la richiesta ha avuto successo.
301(Moved Permanently): L’oggetto richiesto è stato trasferito.
400(Bad Request): Il messaggio di richiesta non è stato compreso dal server.
404(Not Found): Il documento richiesto non si trova su questo server.
505(HTTP version non supported): il server non supporta la versione richiesta del protocollo HTTP.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Che cosa sono i cookie? A che cosa servono e come funzionano?

A

I cookie sono formati da quattro componenti:
- una riga di intestazione nel messaggio di risposta HTTP, dove il server torna al client l’identificativo che userà le prossime volte che manderà una richiesta allo stesso server
- una riga di intestazione nel messaggio di richiesta HTTP, ovvero l’identificativo dato dal server la prima volta
- un file cookie mantenuto sul sistema terminale dell’utente e gestito dal browser, che manda l’identificativo corretto in base al sito che l’utente sta visitando
- un database sul sito dove vengono salvati gli identificativi dei cookie.

I cookie possono contenere autorizzazioni, carte per acquisti, stato della sessione. Servono anche ai siti per imparare mole informazioni sugli utenti.

18
Q

Che cos’è un cache web(server proxy) e a che cosa serve?

A

L’obiettivo del cache web è di soddisfare la richiesta del client senza coinvolgere il server di origine. Il funzionamento generale è che il browser trasmette tutte le richieste HTTP alla cache, se la cache ha l’oggetto lo manda al client, altrimenti la cache richiede l’oggetto al server d’origine e poi lo inoltra al client. I vantaggi del cache web sono che riduce i tempi di risposta alle richieste del client e riduce il traffico.

19
Q

Quali sono le novità portate da HTTP/2?

A

Le novità principali introdotte da HTTP/2 si basa su SPDY, protocollo di livello applicazione per trasportare contenuti sul web con minima latenza tramite: multiplexing di flussi, priorità delle richieste e compressione dell’ header HTTP. Inoltre introduce il framing binario, server push e TLS.

20
Q

Descrivi che cos’è il framing binario e suoi vantaggi.

A

Tutte le comunicazioni HTTP/2 sono suddivise in messaggi e frame più piccoli, ognuno dei quali codificato in formato binario. Sia il client che il server devono utilizzare il nuovo meccanismo di codifica per capirsi, quindi un client HTTP/1.x non comprende un server HTTP/2 e viceversa.

21
Q

Spiega meglio il concetto di priorità degli stream in HTTP/2.

A

L’ordine in cui i frame vengono interposti e consegnati sia dal client che dal server influenza le prestazioni. HTTP/2 consente a ciascun stream di avere peso e dipendenza associati. Il client può costruire e comunicare un “albero di priorità”, che esprime come preferirebbe ricevere risposte.

22
Q

Quindi come si differenziano le connessioni in HTTP/2 da HTTP/1.x?

A

In HTTP/1.x se volevamo fare richieste multiple o avere risposte multiple in parallelo, avevamo bisogno di connessioni TCP multiple. In HTTP/2 invece ogni stream è suddiviso in frame, che possono essere intervallati e gestiti con priorità diverse, dunque si rende necessaria una sola connessione per origine.

23
Q

Descrivi meglio il concetto di server push introdotto da HTTP/2.

A

Il server può inviare più risposte per una singola richiesta del client. Una tipica applicazione web è costituita da decine di risorse, tutte scoperte dal client esaminando il documento fornito dal server. Perché non lasciare che il server invii le risorse associate in anticipo? Per questo motivo oltre alla risposta originale, il server può inviare risorse aggiuntive senza che il client debba richiederle esplicitamente.

24
Q

Che cos’è TLS(Transport Layer Security) e a che cosa serve?

A

TLS(Transport Layer Security) è un protocollo crittografico che permette una comunicazione sicura dalla sorgente al destinatario fornendo autenticazione, integrità dei dati e confidenzialità. Il suo funzionamento può essere suddiviso in tre parti:
- negoziazione fra le parti dell’algoritmo da utilizzare
- scambio delle chiavi e autenticazione
- cifratura simmetrica e autenticazione dei messaggi

25
Che cos'è FTP(File Transfer Protocol) e a che cosa serve?
FTP(File Transfer Protocol) è un protocollo a livello applicazione, che serve per trasferire file a/da un host remoto. FTP funziona stabilendo due connessioni tra il client e serve: una per il controllo(per inviare comandi, sulla porta 21) e una per il trasferimento dei dati(sulla porta 20 utilizzando una connessione TCP).
26
Quali sono le principali componenti della posta elettronica e come funzionano?
Le tre componenti principali della posta elettronica sono l'agente utente, il server di posta e il SMTP(Simple Mail Transfer Protocol). L'agente utente serve all'utente per comporre, leggere, modificare mail(ad esempio gmail). Il server di posta contiene i messaggi in arrivo per l'utente o la coda di messaggi da trasmettere. Il protocollo SMTP invece serve per inviare i messaggi di posta elettronica tra i server di posta.
27
Definisci meglio come funziona il protocollo SMTP.
Il protocollo SMTP è un protocollo a livello applicazione, che usa TCP per trasferire in modo affidabile i messaggi di posta elettronica. Per il trasferimento ci sono tre fasi: - handshaking - trasferimento dei messaggi - chiusura
28
Invece come funziona per l'agente utente accedere al server di posta per ricevere le mail in arrivo?
Per ottenere i messaggi dal server ci sono diversi protocolli di accesso alla posta(come ad esempio POP, IMAP, HTTP).
29
Spiega meglio il funzionamento di POP3 e di IMAP.
In POP3 avviene prima la fase di autorizzazione(user e pass), se il server risponde ok, allora c'è la fase di transazione. Esiste la modalità scarica e cancella, ovvero dopo che il server ha consegnato la posta, la elimina dal server e quindi Bob non può rileggere la mail se cambia client. Altrimenti esiste la modalità scarica e mantieni per leggere da più client. IMAP invece mantiene tutti i messaggi in un unico posto(il server) e consente all'utente di organizzare il messaggio in cartelle.
30
Come funziona invece la parte di sicurezza nel trasferimento di posta elettronica?
Per garantire la sicurezza della comunicazione, si può usare SMTP insieme a TLS. Un'evoluzione di TLS è STARTTLS che consente di chiedere in prima istanza al server l'instaurazione di una connessione cifrata, quindi la conversazione diventa cifrata prima che venga trasmessa qualunque informazione sensibile o potenzialmente tale.
31
Spiega in maniera generale che cos'è il DNS e a che cosa serve?
Il DNS(Domani Name System) è un database distribuito implementato in una gerarchia di server DNS, inoltre è un protocollo a livello di applicazione che consente agli host, ai router e ai server DNS di comunicare per risolvere i nomi(praticamente associa un indirizzo IP ad un nome).
32
Spiega come il DNS "traduce" il nome di una pagina web in un indirizzo IP.
Spiegiamo questo concetto utilizzando un esempio: www.amazon.com. Il cliente chiede al root server di trovare il DNS server del dominio .com, dopo il client chiede al server DNS .com di trovare il server DNS di amazon.com e infine il client chiede al server DNS amazon.com di restituirgli l'indirizzo IP del server www in quel dominio, cioè www.amazon.com.
33
Che cos'è un TLD(Top Level Domain) e che cos'è invece un Server DNS Locale?
Un TLD(Top Level Domain) sono i domini come com, org, net ecc.. Un server DNS locale non appartiene direttamente alla gerarchia dei server, ciascun ISP(università, società, ISP residenziale) ha un server DNS locale. Quando un host effettua una richiesta DNS, la query viene inviata al suo server DNS locale, che opera da proxy
34
Definisci il concetto di caching e aggiornamento dei record, parlando di DNS.
Una volta che un server DNS impara la mappatura, la mette nella cache. Le informazioni nella cache vengono invalidate dopo un certo periodo di tempo. Tipicamente un server DNS locale memorizza nella cache gli indirizzi IP dei server TLD.
35
Spiega come funziona la distribuzione di file(come ad esempio nel caso di BitTorrent).
Nell'architettura P2P di BitTorrent c'è un tracker che tiene traccia dei peer che partecipano, invece i peer che si scambiano le parti di un file si chiamano torrent. Dunque il funzionamento è il seguente: il file viene diviso in parti, quando un peer entra a far parte del torrent, non possiede alcuna parte del file ma le accumula col passare del tempo, si registra presso il tracker per avere la lister dei peer e si collega ad un sottoinsieme di vicini. C'è la regola del tit for tat, ovvero se un vicino mi dà i propri contenuti, si alza la probabilità che io gli invii i miei e vale ache l'opposto. Una volta ottenuto l'intero file, il peer può lasciare il torrent(egoisticamente) o rimanere collegato(seeder).
36
Spiega come funziona la ricerca di informazioni in un architettura P2P.
Esiste un indice, che crea una corrispondenza tra le informazioni e le loro posizioni negli host(di solito è una distributed Hash Table). Ci sono due modi per ricercare informazioni. Con il File sharing l'indice tiene traccia dinamicamente della posizione dei file che i peer condividono, quindi per trovare qualcosa basta che un peer consulti l'indice. Nella Messaggeria instantanea invece l'indice ti dice l'indirizzo IP del host che ha quello che stai cercando e poi tu devi chiedere a quell'host il file(come ad esempio Napster).
37
Parlando di P2P, come funziona il metodo di query flooding e quali sono gli aspetti negativi?
Il query flooding è un metodo utilizzato nelle reti P2P per cercare informazioni. In questo metodo la query viene propagata a tutti i nodi vicini, che a loro volta propagano la query ai loro vicini, fino a che non si trova un successo o un limite. Questo approccio è semplice da implementare ma può generare un elevato traffico di rete, riducendone l'efficienza.
38
Spiega il concetto di cloud computing?
Il cloud computing prevede uno o più server reali, generalmente organizzati in un'architettura ad alta affidabilità e fisicamente collocati presso i data center del fornitore del servizio. Il fornitore dei servizi espone delle interfacce per elencare e gestire i propri servizi da parte dei clienti.
39
che cos'è una CDN e a che cosa serve?
Le CDN(Content Delivery Network) rappresentano una soluzione comune per la realizzazione di servizi su Internet. Il concetto è memorizzare i dati il più vicino possibile ai consumatori in modo da ottimizzare le prestazioni. Ci sono due diverse filosofie in ambito: - enter deep: installare i server nelle reti degli ISP in tutto il mondo - bring home: meno server, ma installati negli IXP per poter servire le reti di più ISP contemporaneamente
40
Spiega il funzionamento di una socket e il suo ruolo in iterazione tra client e server.
Il client deve contattare il server, dunque il processo deve essere in esecuzione e il server deve avere creato una socket che dà il benvenuto al contatto con il client. Il client contatta il server creando una socket TCP, specificando l'indirizzo IP e il numero di porta del processo server. Quando il client crea la socket, il client TCP stabilisce una connessione con il server TCP. Quando il server TCP viene contattato dal client, crea un nuova socket per il processo server per comunicare con il client(questo perché consente al server di comunicare con più client).