Livello applicativo (Application Layer 5) Flashcards
Dare qualche esempio di applicazione di rete
World Wide Web, Posta elettronica, Social Networking, P2P file sharing, Telefonia, Video Streaming, Remote Login, Istant Messagging, Videoconferenze
Quali agenti sono coinvolti nella comunicazione tra processi?
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
Cosa è necessario per la comunicazione tra processi remoti?
È 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
Come viene eseguito l’indirizzamento dei processi applicativi?
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
Quali sono alcune delle tipologie dei requisiti delle applicazioni?
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à
Quali sono i possibili servizi di trasporto per un servizio di comunicazione?
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
Quali sono le caratteristiche degli agenti presenti nell’architettura Client-Server?
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
Quali sono le caratteristiche di un’architettura Peer-to-Peer (P2P)?
Non ci sono server sempre connessi, i peers (terminali) comunicano direttamente tra loro, possono collegarsi in maniera intermittente dunque cambiando IP
Quali vantaggi presente un’architettura P2P rispetto a una Client-Server?
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
Quali sono i contenuti delle pagine web e come sono identificate?
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
Cos’è il protocollo HTTP?
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
Quali sono le modalità di connessione tra client e server HTTP?
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)
Quali sono le fasi di una connessione HTTP?
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
Cos’è il Round Trip Time (RTT)?
Consiste nel tempo per trasferire un messaggio “piccolo” (come una richiesta) dal client al server e ritorno
Come sono composte le HTTP requests?
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