Livello applicativo (Application Layer 5) Flashcards

1
Q

Dare qualche esempio di applicazione di rete

A

World Wide Web, Posta elettronica, Social Networking, P2P file sharing, Telefonia, Video Streaming, Remote Login, Istant Messagging, Videoconferenze

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

Quali agenti sono coinvolti nella comunicazione tra processi?

A

Un Host, dispositivo dell’utente

Un Processo, software in esecuzione su un host, possono esserci anche processi multipli

Software per la Comunicazione Inter-Processo (PCI), che permettono a diversi processi di comunicare scambiandosi informazioni e dati

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

Cosa è necessario per la comunicazione tra processi remoti?

A

È necessario un indirizzamento dei processi applicativi
E dei protocolli di comunicazione che stabilisce quale tipo di messaggi sono scambiati, la semantica, la sintassi, come e quando si ricevere o si inviare un messaggio

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

Come viene eseguito l’indirizzamento dei processi applicativi?

A

Lo scambio di messaggi fra i processi applicativi avviene utilizzando i servizi dei livelli inferiori attraverso i SAP (Service Access Point) e ad ogni processo è associata una SAP.
Inoltre ad ogni host (dispositivo connesso alla rete) è associato un indirizzo IP univoco (32 bit).

Lo socket sono le porte di comunicazioni e sono formate dalle SAP del processo in questione + l’indirizzo IP del dispositivo che ha il processo in esecuzione

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

Quali sono alcune delle tipologie dei requisiti delle applicazioni?

A

1 - Affidabilità: Alcune applicazioni possono tollerare perdite parziali (es. audio), altre affidabilità completa (es. file transfer, telnet)

2 - Ritardo: Alcune applicazioni richiedono bassa latenza (es. telefonia internet, giochi interattivi)

3 - Banda: Alcune applicazioni richiedono una minima velocità di trasferimento (es. applicazioni multimediali), altre hanno più flessibilità

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

Quali sono i possibili servizi di trasporto per un servizio di comunicazione?

A

I protocolli si trasporto sono principalmente due:

TCP: connection-oriented, trasporto affidabile e senza perdita dati, controllo di flusso: la velocità di trasmissione può essere regolata in base al ricevitore, controllo di congestione: per evitare il sovraccarico della rete, non fornisce garanzie (non sono noti) su possibili ritardi e sulla banda

UDP: traferimento non affidabile, senza connessione, senza controllo di flusso, senza garanzie, trasferimento più veloce

Il protocollo TCP è caratterizzato da una maggiore complessità rispetto all’UDP

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

Quali sono le caratteristiche degli agenti presenti nell’architettura Client-Server?

A

Il Server è un host sempre attivo, ha un IP permanente, può essere formato da un cluster, devono essere in grado di rispondere alle molte richieste dai client

Il Client non è sempre attivo (connessione discontinua) e possono cambiare indirizzo IP, non comunicano con altri client se non tramite il server, possono inviare molteplici richieste al server

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

Quali sono le caratteristiche di un’architettura Peer-to-Peer (P2P)?

A

Non ci sono server sempre connessi, i peers (terminali) comunicano direttamente tra loro, possono collegarsi in maniera intermittente dunque cambiando IP

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

Quali vantaggi presente un’architettura P2P rispetto a una Client-Server?

A

Non essendo un modello architetturale centralizzato permette di raggiungere scalabilità potenzialmente infinita (infiniti utilizzatori e latenza pressochè minima anche in momenti di picco del traffico). Lo svantaggio delle architetture P2P è principalmente la complessità nella gestione e nell’implementazione della stessa

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

Quali sono i contenuti delle pagine web e come sono identificate?

A

La pagine web (contenuto informativo più frequente degli scambi col protocollo HTTP) sono composte da oggetti (es. file, immagini, video, applet Java). Generalmente hanno un file di formattazione HTML che al suo interno richiama agli altri oggetti.
Ogni pagina/oggetto è una risorsa indirizzata da un Uniform Resource Locator (URL)
Gli url sono formati da varie parti indicanti: protocollo+indirizzo di rete del server+numero di porta+nomeoggetto/pagina richiesta

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

Cos’è il protocollo HTTP?

A

Il protocollo HTTP (HyperText Transfer Protocol) è un protocollo di livello applicativo usato come principale sistema per la trasmissione d’informazioni sul web.
Basato su un’architettura Client-Server si appoggia sul protocollo di trasporto TCP (Transmission Control Protocol) ed è un protocollo State-less, dunque nessuna memoria sulle richieste viene mantenuta nei server delle richieste passate ricevute da un client

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

Quali sono le modalità di connessione tra client e server HTTP?

A

1) Connessione non persistente
Per ogni oggetto da inviare viene iniziata una nuova sessione TCP. Queste connessioni vengono effettuate per ogni oggetto e possono essere effettuate in parallelo per minimizzare i ritardi

2) Connessione persistente
La connessione TCP effettuata rimane aperta ed è utilizzata per trasferire più oggetti. Si divide in due tipologie:
2.1) Con pipelining: Le richieste HTTP sono inviate in serie
2.2) No pipelining: le richieste HTTP sono inviate in parallelo (modalità default per HTTP 1.1)

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

Quali sono le fasi di una connessione HTTP?

A

1) Richiesta di connessione TCP da parte del client
2) Il server può accettare o rifiutare la richiesta, in caso positivo seguono gli altri punti..
3) Il client e il server sono legati da una connessione TCP, il client procede dunque con la richiesta di un determinato oggetto/pagina
4) Il server elabora la richiesta del client e restituisce una risposta al client (potrebbe anche essere fallita l’elaborazione e dunque si avrebbe un errore come risposta alla richiesta)
5) Il client riceve l’oggeto della richiesta. Eseguendo il parsing della (eventuale) pagina web scopre se ci sono altri oggetti allegati ad essa e procede a richiedere questi ultimi

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

Cos’è il Round Trip Time (RTT)?

A

Consiste nel tempo per trasferire un messaggio “piccolo” (come una richiesta) dal client al server e ritorno

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

Come sono composte le HTTP requests?

A

I messaggi HTTP sono codificati in ASCII
Hanno tre sezioni:
1) Request line composta da: method+URL+HTTP version
2) Header lines, una collezione i cui elementi sono composti da: header field name+value
3) Body: Entity body, l’informazione scambiata

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

Quali sono i più comuni metodi HTTP?

A

GET -> Quando il client vuole scaricare un documento dal server, che è specificato nell’URL. Il server normalmente risponde con il documento richiesto nel corpo del messaggio di risposta.

HEAD -> E’ usato quando il client non vuole scaricare il documento ma solo alcune informazioni sul documento (come ad esempio la data dell’ultima modifica). Nella risposta il server non inserisce il documento ma solo degli header informativi.

POST -> Per fornire degli input al server da utilizzare per un particolare oggetto identificato nell’URL.

PUT -> Per memorizzare un documento nel server. Il documento viene fornito nel corpo del messaggio e la posizione di memorizzazione nell’URL.

DELETE -> Cancella il documento specificato nella URL

17
Q

Cosa sono gli header in una richiesta HTTP? Fai degli esempi

A

Gli header servono per scambiare informazione di servizio aggiuntiva (metadati).

Cache-control: Informazione sulla cache
Accept: Formati accettati dal client
Accept-language: Linguaggio accettato
Authorization: Mostra i permessi del client
If-modified-since: Invia il doc. solo se modificato
User-agent: Tipo di user agent (es. firefox, chrome, ecc)

18
Q

Come sono composte le HTTP responses?

A

Hanno tre sezioni:

1) Status line composta da: HTTP version+status code+phrase
2) Header lines, una collezione i cui elementi sono composti da: header field name+value
3) Body: Entity body, l’informazione scambiata

19
Q

Cosa sono gli status code in un’HTTP responses?

A

Gli status codes servono per comunicare al client informazioni sull’elaborazione della loro richiesta precedentemente inviata
Sono divisi in classi (secondo la centinia di appartenenza) chiamate status code classes:

1xx: informazione
2xx: successo
3xx: redirezione (richiesta è corretta, è stata rediretta ad un altro server)
4xx: errore lato client (richiesta errata)
5xx: errore lato server (c’è un problema interno del server)

20
Q

Cos’è il “Conditional GET”?

A

Il conditional GET è una richiesta di un oggettto tramite il metodo GET accompagnato da un header: “If-modified-since: “ in cui si inserisce la data dell’oggetto presente in cache locale (lato client).
In caso in cui l’oggetto non sia stato modificato dopo la data inserita il server risponde con uno status code 304 Not Modified; alternativamente nella rispostata viene incluso l’oggetto in questione e lo status code diventa 200 OK

21
Q

Cosa sono i cookie e quale funzionalità hanno?

A

I cookie sono dei codici identificativi dei client che utilizzano un certo servizio (i cookie dipendono pienamente dal servizio web che li implementa).
I server inviano i cookie nella risposta HTTP al client e ci si aspetta che i web browser salvino (sono salvati lato client!) e inviino i cookie al server, ogni qual volta si facciano richieste aggiuntive al web server.
Viene inoltre creato un record col nuovo ID nel database nel backend

22
Q

Come funzionano e quale ruolo hanno le proxy HTTP?

A

L’obiettivo è rispondere alle richieste HTTP senza coinvolgere il server HTTP
Le richieste di tutti i client di un certo servizio sono fatte passare per un proxy HTTP: se l’oggetto richiesto è disponibile nella cache del proxy server, il proxy server risponde con l’oggetto o altrimenti il proxy recupera l’oggetto dal server d’origine e lo restituisce al client.
Sono anche detti “application gateway”, sono sia client (per i server del servizio stesso), che server (nei confronti degli utenti del servizio).

23
Q

Cosa è e come funziona il DNS?

A

DNS (Domain Name System) è un protocollo di segnalazione: svolge la funzione di risoluzione dei nomi simbolici
Normalmente per riferirsi a un servizio si utilizza un dominio, un nome human-readeable, ma in realtà come tutti gli altri host anche i server sono indicizzati da un univoco indirizzo IP (32 bit) non proprio human-readeable.
Per questo vengono utilizzati nomi simbolici (dominii) e la DNS provvede alla mappatura fra indirizzi IP e nomi simbolici

24
Q

Quali sono gli strumenti utilizzati per la risoluzione di nomi simbolici? E quali sono i servizi aggiuntivi?

A

Database distribuito costituito da molti name servers con organizzazione gerarchica
Protocollo di trasporto basato su UDP tra name server e host per risolvere nomi simbolici

Inoltre ci sono dei servizi aggiuntivi che il DNS permette:

1) host aliasing -> gestione dei sinonomi
2) mail server aliasing -> gestione sinonimi anche per la posta
3) load distribution -> il server scelto tra i molti (sono possibili cluster ecc.) su cui viene indirizzato un utente utilizzatore del servizio viene scelto in base al carico presente su tutti questi ultimi

25
Q

Come sono organizzati i nomi simbolici e i DNS?

A

Hanno una struttura di tipo gerarchico, in base i livelli del dominio
I root DNS contengono informazioni sul loro mappaggio gerarchico, dunque in base al dominio dei nomi simbolici
I Local Name Server sono collegati agli host e posseduti dal ISP fornitore dell’accesso ad internet. Il local server se necessario contatta il root DNS
Gli Authoritative Name Server sono DNS resposabili di un particolare hostname (polimi DNS -> polimi.it)

26
Q

Quali sono le modalità di risoluzione dei DNS?

A

La risoluzione può essere iterativa oppure ricorsiva

Devi anche ricordarti i passaggi

27
Q

Un host connesso alla rete come ottiene un mappaggio per un nome simbolico?

A

Dato un host collegato a un ISP, dunque a un Local Name Server DNS, i suoi processi applicativi per risolvere i nomi simbolici utilizzano le funzioni dei DNS utilizzando UDP come trasporto per le richieste ai DNS

28
Q

Cos’è il DNS caching?

A

Un server, dopo aver reperito un’informazione su cui non è authoritative può memorizzarla temporaneamente e all’arrivo di una nuova richiesta può fornire l’informazione senza risalire sino al server authoritative
Il TTL è deciso dal server authoritative ed è un indice di quanto stabile nel tempo è l’informazione, solitamente i TLD server (top level domain server, reposabili dei domini di alto livello: .com .edu .org) sono generalmente “memorizzati” nei Local Name Servers

29
Q

Quali sono le tipologie di informazioni memorizzate dai DNS (resource records)?

A

– A: Name è il nome di un host e Value è il suo indirizzo IP
(morgana.elet.polimi.it, 131.175.21.1, A, TTL)

– NS: Name è un domain e Value è il nome di un server che può ottenere le informazioni relative (quando le richieste DNS vengono passate tra diversi DNS)
(elet.polimi.it, morgana.elet.polimi.it, NS, TTL)

– CNAME: Name è un nome alternativo (alias) per un host il cui nome canonico è in value
(www.polimi.it, zephyro.rett.polimi.it, CNAME, TTL)

– MX: Name è dominio di mail o un alias di mail e value è il nome del mail server che gestisce il servizio email per il dominio indicato
(elet.polimi.it, mailserver.elet.polimi.it, MX,TTL)

30
Q

Cosa sono e quale problema risolvono i CDNs?

A

I CDNs, Content Distribution Networks, servono a distribuire contenuti a molti utenti diversi posizionati geograficamente lontano gli uni dagli altri
Vengono realizzati creando una rete di server (sistema) geograficamente distribuito che possono ospitare copie dei contenuti richiesti (funzionamento simile alle cache)
Tra i server del sistema quello più adatto viene scelto in base alla vicinanza geografica, al numero minore di hop rispetto al client, oppure viene anche fatto scegliere liberamente dall’utente.

31
Q

Chi sono coinvolti nel servizio di posta elettronica?

A

Un client (servizio di posta elettronica)

Un mail server che gestisce il traffico mail per un determinato dominio

Un protocollo per il trasferimento delle email: Simple Mail Transfer Protocol

Protocolli per l’accesso alla posta: Post Office Protocol 3, Internet Mail Access Protocol

32
Q

Che ruolo svolgono i mail server?

A

Per ogni client contengono una coda di entrata (chiamata mailbox) e una coda di email in uscita
Sono i mail server a gestire le mail dei propri utenti: gestiscono le mail in uscita e si occupano del loro indirizzamente dal client al mail server di destinazione, gestiscono le mail in entrata dal mail server stesso al servizio client
I mail server comunicano con gli altri server per l’instradamento delle mail attraverso il protocollo SMTP
I mail server comunicano con i propri servizi client (o utenti) attraverso i protocollo d’accesso mail: POP3, IMAP

33
Q

Cos’è il protocollo SMTP?

A

Il protocollo SMTP è un protocollo applicativo client-server

L’interazione tra client SMTP e server SMTP e di tipo comando/risposta testuali e codificati in ASCII

34
Q

Qual è il formato dei messaggi email?

A

Sono composti da un header coi campi: “to”, “from”, “subject”
E da un body: contenuto dell’email

35
Q

Cosa sono i MIME?

A

Il Multipurpose Internet Mail Extensions (MIME; letteralmente “estensioni multifunzione alla posta di Internet”) SONO uno standard di Internet che estende la definizione del formato dei messaggi di posta elettronica, originariamente definito dall’SMTP, il protocollo di trasmissione delle email. MIME aggiunge il supporto per:

l'impiego di codifiche di caratteri diversi dall'ASCII, dunque anche contenuti multimediali (non ASCII 7-bit)
l'aggregazione di diversi messaggi tra loro,
la codifica di messaggi (o loro parti) non testuali.

Definisce header per specificare il tipo di contenuto (Content-Type) ed il tipo di codifica (base64, quoted printable)

Esempi di “content-type”: image/gif e application/zip
Esempio di codifica “content-Transfer-Encoding”: base64

36
Q

Quali sono i principali protocolli di accesso alla mailbox?

A

POP3 consente: download dei messaggi
IMAP consente: download dei messaggi, gestione della mailbox sul mail server
HTTP: Sola visualizzazione posta da client di un mail server