Podcast
Questions and Answers
Qual è la definizione di Round-Trip Time (RTT)?
Qual è la definizione di Round-Trip Time (RTT)?
- Tempo di trasmissione di un file
- Tempo necessario per chiudere una connessione TCP
- Tempo di propagazione di andata e ritorno tra due host (correct)
- Tempo impiegato per inviare una richiesta HTTP
Qual è uno svantaggio delle connessioni non persistenti?
Qual è uno svantaggio delle connessioni non persistenti?
- Non consentono il caricamento di oggetti referenziati
- Richiedono 2 RTT per ogni oggetto (correct)
- Non possono gestire più richieste simultanee
- Richiedono più risorse di rete
Cos'è un messaggio di richiesta HTTP?
Cos'è un messaggio di richiesta HTTP?
- Un messaggio di errore del server
- Un messaggio ASCII che richiede un'azione (correct)
- Un formato binario non leggibile
- Un'informazione per la chiusura della connessione
Quale metodo HTTP NON è incluso in HTTP/1.1?
Quale metodo HTTP NON è incluso in HTTP/1.1?
Qual è la somma totale del tempo per la risposta comprensivo di RTT?
Qual è la somma totale del tempo per la risposta comprensivo di RTT?
In un messaggio HTTP, cosa indica la riga di stato?
In un messaggio HTTP, cosa indica la riga di stato?
Cosa avviene nelle connessioni persistenti?
Cosa avviene nelle connessioni persistenti?
Qual è il vantaggio delle connessioni persistenti rispetto a quelle non persistenti?
Qual è il vantaggio delle connessioni persistenti rispetto a quelle non persistenti?
Quale tra i seguenti NON è un tipo di messaggio HTTP?
Quale tra i seguenti NON è un tipo di messaggio HTTP?
Quali sono i componenti principali dei cookie?
Quali sono i componenti principali dei cookie?
Cosa specifica un cookie all'interno di una richiesta HTTP?
Cosa specifica un cookie all'interno di una richiesta HTTP?
Qual è lo scopo principale della cache web?
Qual è lo scopo principale della cache web?
Cosa NON è una funzione dei cookie?
Cosa NON è una funzione dei cookie?
In che modo la cache web gestisce le richieste quando un oggetto non è presente?
In che modo la cache web gestisce le richieste quando un oggetto non è presente?
Quali dati possono essere memorizzati nei cookie?
Quali dati possono essere memorizzati nei cookie?
Quale affermazione sui cookie è vera?
Quale affermazione sui cookie è vera?
Cosa non è un risultato di un sistema di caching web?
Cosa non è un risultato di un sistema di caching web?
Qual è il ruolo del database sul sito in relazione ai cookie?
Qual è il ruolo del database sul sito in relazione ai cookie?
Qual è il principale vantaggio del multiplexing in HTTP/2?
Qual è il principale vantaggio del multiplexing in HTTP/2?
Che cosa implica la priorità delle richieste in HTTP/2?
Che cosa implica la priorità delle richieste in HTTP/2?
In HTTP/2, cos'è un frame?
In HTTP/2, cos'è un frame?
Cosa accade se un client HTTP/1.x cerca di comunicare con un server HTTP/2?
Cosa accade se un client HTTP/1.x cerca di comunicare con un server HTTP/2?
Qual è l'effetto della compressione dell'header HTTP in HTTP/2?
Qual è l'effetto della compressione dell'header HTTP in HTTP/2?
Come vengono gestite le comunicazioni in HTTP/2?
Come vengono gestite le comunicazioni in HTTP/2?
Cosa rappresenta un identificativo univoco in un stream?
Cosa rappresenta un identificativo univoco in un stream?
Qual è l'obiettivo del framing binario in HTTP/2?
Qual è l'obiettivo del framing binario in HTTP/2?
Che ruolo hanno le dipendenze tra stream in HTTP/2?
Che ruolo hanno le dipendenze tra stream in HTTP/2?
Qual è il significato di pesi assegnati agli stream?
Qual è il significato di pesi assegnati agli stream?
Qual è la principale differenza tra HTTP/1.1 e HTTP/2 riguardo alle connessioni TCP?
Qual è la principale differenza tra HTTP/1.1 e HTTP/2 riguardo alle connessioni TCP?
Qual è la funzione principale del server push nel contesto di HTTP/2?
Qual è la funzione principale del server push nel contesto di HTTP/2?
Quali sono le tre fasi principali del protocollo TLS?
Quali sono le tre fasi principali del protocollo TLS?
Qual è il miglioramento principale fornito da HTTPS rispetto a HTTP?
Qual è il miglioramento principale fornito da HTTPS rispetto a HTTP?
Qual è l'effetto della 'S' in HTTPS sulla latenza di connessione?
Qual è l'effetto della 'S' in HTTPS sulla latenza di connessione?
Che tipo di sistema utilizza FTP per il trasferimento di file?
Che tipo di sistema utilizza FTP per il trasferimento di file?
Quale porta è normalmente utilizzata per la connessione di controllo in FTP?
Quale porta è normalmente utilizzata per la connessione di controllo in FTP?
Come si stabilisce una connessione dati in FTP dopo l'autenticazione?
Come si stabilisce una connessione dati in FTP dopo l'autenticazione?
Qual è una limitazione di TLS rispetto a HTTPS?
Qual è una limitazione di TLS rispetto a HTTPS?
Qual è il principale vantaggio dell'uso di HTTP/3 e QUIC rispetto a TLS?
Qual è il principale vantaggio dell'uso di HTTP/3 e QUIC rispetto a TLS?
Qual è il ruolo principale delle Content Delivery Networks (CDN)?
Qual è il ruolo principale delle Content Delivery Networks (CDN)?
Quale comando si utilizza per trovare l'indirizzo IP di un nodo della CDN di Facebook?
Quale comando si utilizza per trovare l'indirizzo IP di un nodo della CDN di Facebook?
Quale delle seguenti informazioni è necessaria per il client per connettersi a un server tramite una socket TCP?
Quale delle seguenti informazioni è necessaria per il client per connettersi a un server tramite una socket TCP?
Quale tipo di socket è associato a un trasferimento inaffidabile di dati?
Quale tipo di socket è associato a un trasferimento inaffidabile di dati?
Quale affermazione sui servizi TCP è vera?
Quale affermazione sui servizi TCP è vera?
Cos'è una socket nel contesto di applicazioni client/server?
Cos'è una socket nel contesto di applicazioni client/server?
Qual è uno dei principali vantaggi delle socket API?
Qual è uno dei principali vantaggi delle socket API?
Cosa si intende per 'stream socket' in TCP?
Cosa si intende per 'stream socket' in TCP?
Quale affermazione è falsa riguardo al processo server durante la comunicazione TCP?
Quale affermazione è falsa riguardo al processo server durante la comunicazione TCP?
Qual è la funzione della variabile 'buffer' in una socket TCP?
Qual è la funzione della variabile 'buffer' in una socket TCP?
Cosa deve fare il server quando riceve una richiesta di connessione da un client?
Cosa deve fare il server quando riceve una richiesta di connessione da un client?
Quale delle seguenti è una caratteristica distintiva delle socket Unix?
Quale delle seguenti è una caratteristica distintiva delle socket Unix?
La comunicazione tra client e server in un'architettura client/server avviene tramite:
La comunicazione tra client e server in un'architettura client/server avviene tramite:
Un client è responsabile della creazione della socket per:
Un client è responsabile della creazione della socket per:
Study Notes
Definizione di Round-Trip Time (RTT)
- Il RTT è il tempo impiegato da un pacchetto per viaggiare da un host a un altro e tornare indietro.
- Questo tempo include la propagazione di andata e ritorno.
- Un esempio è il tempo necessario a un piccolo pacchetto per viaggiare da un client a un server e tornare al client.
Il Tempo di Risposta
- Include il tempo per l'inizializzazione della connessione TCP;
- un RTT per la richiesta del file;
- un RTT per il ritorno della richiesta HTTP e dei primi byte della risposta HTTP;
- il tempo di trasmissione del file.
- Il tempo totale è di 2 RTT più il tempo di trasmissione.
Connessioni non persistenti
- Richiedono 2 RTT per oggetto.
- Hanno un overhead del sistema operativo per ogni connessione TCP.
- I browser spesso aprono connessioni TCP parallele per caricare gli oggetti referenziati.
Connessioni persistenti
- Il server mantiene la connessione TCP aperta dopo aver inviato una risposta.
- I messaggi successivi tra gli stessi client / server vengono trasmessi sulla connessione aperta.
- Il client invia le richieste non appena incontra un oggetto referenziato.
- Solo un RTT per tutti gli oggetti referenziati.
Messaggi HTTP
- I messaggi HTTP sono di due tipi: richiesta e risposta.
- I messaggi di richiesta HTTP sono in formato ASCII (leggibile dall'utente).
- La riga di richiesta include comandi come GET, POST, HEAD.
Formato generale del messaggio di richiesta HTTP
- La riga di richiesta indica il comando, l'oggetto richiesto e il protocollo.
- Le righe di intestazione forniscono informazioni aggiuntive come il nome host o l'agente utente.
- Un ritorno a capo e un avanzamento riga indicano la fine del messaggio.
Upload dell'input di un form
- Il metodo POST utilizza il corpo dell'entità per inviare l'input al server.
- Il metodo URL utilizza il campo URL della riga di richiesta per inviare l'input al server.
Tipi di metodi HTTP
- HTTP/1.0 supporta i metodi GET, POST e HEAD.
- HTTP/1.1 supporta inoltre i metodi PUT e DELETE.
- PUT include il file nel corpo del messaggio e lo invia al percorso specificato nel campo URL.
- DELETE cancella il file specificato nel campo URL.
Messaggio di risposta HTTP
- La riga di stato include il protocollo, il codice di stato e l'espressione di stato.
- Le righe di intestazione forniscono informazioni aggiuntive come la data, il server o l'ultima modifica.
Interazione utente-server: i cookie
- I cookie sono utilizzati da molti siti web per memorizzare informazioni sull'utente.
- Comprendono una riga di intestazione nel messaggio di risposta HTTP, una riga di intestazione nel messaggio di richiesta HTTP, un file cookie mantenuto sul sistema terminale dell'utente e un database sul sito.
Cookie (continua)
- Il server crea un identificativo unico per l'utente e una voce nel database per quell'ID.
- L'ID è inviato al client attraverso il campo Set-cookie: nel messaggio di risposta HTTP.
- Il client memorizza l’ID nel file cookie e lo aggiunge alla richiesta successiva nel campo cookie:.
- Il server può utilizzare questo ID per personalizzare l'esperienza dell'utente.
Cosa possono contenere i cookie?
- Autorizzazione
- Carta di credito
- Raccomandazioni
- Stato della sessione dell'utente
Cookie e privacy
- I cookie possono consentire ai siti di raccogliere informazioni sull'utente.
- L'utente può fornire al sito il nome e l'indirizzo email.
Cache web (server proxy)
- La cache web è un server proxy che memorizza le copie delle pagine web.
- Questa memorizzazione consente di soddisfare le richieste del client senza coinvolgere il server d'origine.
- Il browser trasmette tutte le richieste HTTP alla cache.
- Se l'oggetto è già in cache, la cache lo fornisce direttamente al client.
- In caso contrario, la cache richiede l'oggetto al server d'origine e poi lo inoltra al client.
Perché il caching web?
- Riduce il tempo di risposta per il client.
- Riduce il carico sul server d'origine.
- Migliora le prestazioni del sito web.
HTTP/2.0
- Consente di trasportare dati web con latenza minima grazie al multiplexing dei flussi e alla priorità delle richieste.
- HTTP/2 si basa sul protocollo SPDY.
Multiplexing di flussi
- Supporta un numero illimitato di flussi su una singola connessione TCP.
- Aumenta l'efficienza della connessione.
Priorità delle richieste
- Il client può inviare quante richieste desidera e assegnarle una priorità .
- Evita la congestione.
Compressione dell'header HTTP
- Diminuisce i byte trasmessi.
Framing binario
- È un nuovo livello che codifica e trasferisce i messaggi HTTP.
- HTTP/2 mantiene la semantica HTTP ma ne cambia la codifica in transito.
Stream, messaggi e frame
- Le comunicazioni vengono eseguite all'interno di una singola connessione TCP.
- Ogni stream ha un identificativo univoco e informazioni opzionali di priorità .
- Ogni messaggio HTTP è costituito da uno o più frame.
- Ciascun frame ha un tipo di dati specifico (es. intestazioni HTTP, payload dei messaggi).
- I frame di diversi stream possono essere intervallati e riassemblati tramite l'identificativo di flusso incorporato.
Multiplexing di richiste e risposte
- In HTTP/1.x, più connessioni TCP erano necessarie per eseguire richieste parallele.
- HTTP/2 elimina questa limitazione, permettendo di eseguire richieste e risposte in parallelo su una sola connessione.
- Il messaggio HTTP può essere diviso in frame indipendenti, intervallarli e ricomporli dall'altra parte.
Priorità degli stream
- L'ordine in cui i frame vengono intervallati e consegnati dal client e dal server influenza le prestazioni.
- HTTP/2 assegna un peso e una dipendenza a ciascun, consentendo di costruire un "albero di priorità " che indica come ricevere le risposte.
Connessione HTTP/2
- Non ha più bisogno di più connessioni TCP per eseguire stream in parallelo.
- Ogni stream è diviso in frame e gestito con priorità diverse.
- Tutte le connessioni HTTP/2 sono persistenti.
- È necessaria solo una connessione per origine.
Server push
- Il server può inviare più risposte per una singola richiesta del client.
- Invia risorse associate senza che il client le richieda esplicitamente.
- Il server può inviare le risorse associate alla risposta originale in anticipo.
Transport Layer Security (TLS)
- È un protocollo crittografico che consente una comunicazione sicura.
- Fornisce autenticazione, integrità dei dati e confidenzialità .
- Ha tre fasi principali: negoziazione dell'algoritmo, scambio delle chiavi e autenticazione, cifratura simmetrica e autenticazione dei messaggi.
HTTPS
- Invia tutte le richieste e le risposte attraverso una comunicazione cifrata.
- Utilizza TLS sulla porta 443.
- Il browser capisce automaticamente che deve usare TLS e invia richieste criptate.
- Cripta solo le informazioni del protocollo HTTP, non gli header dei protocolli inferiori.
- Più del 50% dei siti usa HTTPS.
La "S" aumenta il ritardo di connessione
- L'inizializzazione di una sessione TLS richiede tempo.
- Richiede 2 RTT più 1 RTT per la connessione TCP.
- Le soluzioni includono protocolli più moderni come HTTP/3 e QUIC.
Capitolo 2: Livello applicazione
- Tratta i principi delle applicazioni di rete, il web e HTTP, FTP, la posta elettronica (SMTP, POP3, IMAP), DNS, le applicazioni P2P e il cloud computing.
FTP: file transfer protocol
- Consente il trasferimento di file da/verso un host remoto.
- Utilizza il modello client/server.
- Il client FTP contatta il server FTP alla porta 21 usando TCP.
- Il server FTP apre una seconda connessione dati usando TCP per trasferire un file.
Contenuto Delivery Networks (CDN)
- Facebook ha la propria CDN.
- È possibile identificare i nodi CDN di Facebook utilizzando l'indirizzo fbcdn.net all'interno del codice HTML di una pagina web.
- Il comando "ping www.fbcdn.net" restituisce l'indirizzo IP di un nodo CDN.
- L'indirizzo IP può essere utilizzato per localizzare geograficamente il nodo tramite una ricerca online.
Programmazione delle Socket
- Le socket sono interfacce di comunicazione tra il processo di un'applicazione locale e il sistema operativo.
- Le socket sono aperte, utilizzate e chiuse dalle applicazioni, ma sono gestite dal sistema operativo (SO).
- Ci sono diversi tipi di socket, inclusi: DARPA Internet Address (Internet Socket), Unix Socket e indirizzi X.25 (X.25 Socket).
- Il paradigma client/server si basa sulle socket.
- Le socket API offrono due tipi di servizi di trasporto: datagramma inaffidabile e affidabile, orientato ai byte.
Programmazione delle Socket con TCP
- Una socket è una porta tra il processo di un'applicazione e il protocollo di trasporto end-to-end (UDP o TCP).
- TCP fornisce un trasferimento affidabile di byte tra i processi, chiamato socket di stream (SOCK_STREAM).
- La connessione TCP passa attraverso buffer e variabili gestite dal sistema operativo e dall'applicazione.
- Per comunicare, il client deve contattare il server con una socket TCP e specifiche di indirizzo IP e numero di porta del server.
- Il server, una volta contattato, crea una nuova socket per comunicare con il client.
- Il server può gestire connessioni con più client utilizzando numeri di porta distinti.
- TCP offre un trasferimento di byte affidabile e ordinato tra il client e il server, come una "pipeline".
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Related Documents
Description
Scopri il concetto di Round-Trip Time (RTT) e il suo impatto sulle prestazioni di rete. Questo quiz esplora il tempo di risposta delle connessioni TCP, sia persistenti che non persistenti, e come questi influenzano il caricamento delle risorse. Testa le tue conoscenze su questi importanti aspetti delle reti di computer.