FormularioSistemi Operativi e Reti di Calcolatori: definizioni, teoremi e formule delle note, in ordine di capitolo
In questa pagina 10
1. Programmazione di sistema e architetture di rete
Richiami di C per la programmazione di rete - memoria, puntatori, struct ed endianness
Definizione (network byte order). Tutti i campi numerici a più byte dei protocolli Internet (porte, lunghezze, indirizzi IPv4, campi di TCP, UDP, DNS) viaggiano in big endian, detto network byte order. Il formato della macchina è l'ordine host.
Esempio. La porta 8080 è 0x1F90. Su una macchina little endian la variabile uint16_t host = 8080 contiene in memoria i byte 90 1F; htons(8080) restituisce un valore che in memoria ha i byte 1F 90, cioè l'ordine di rete: ecco perché si scrive addr.sin_port = htons(8080). Su una macchina big endian htons non fa nulla, ma il codice resta uguale e quindi portabile.
Modello ISO-OSI, data plane e control plane, architetture client-server e publish-subscribe
Definizione (PDU e SDU). La PDU (Protocol Data Unit) è l'unità di dati scambiata fra due entità dello stesso livello su sistemi diversi: intestazione del protocollo più dati. La SDU (Service Data Unit) è il blocco di dati che un livello riceve dal livello superiore, da trasportare così com'è. Vale
PDU(n) = intestazione(n) + SDU(n)e la PDU del livellondiventa la SDU del livellon-1.
Esempio. Una richiesta HTTP di 51 byte attraversa la pila di un client:
Definizione (SAP). Un SAP (Service Access Point) è il punto in cui un livello offre i suoi servizi al livello superiore: l'interfaccia logica fra due livelli adiacenti. Ogni SAP ha un indirizzo che dice a quale utente del servizio vanno consegnati i dati.
Definizione (data plane e control plane). Il data plane (piano dati, anche forwarding plane) è la parte che inoltra i pacchetti, uno per uno e alla velocità della linea, applicando regole già decise: consultare la tabella di inoltro, commutare, filtrare, tradurre indirizzi. Il control plane (piano di controllo) è la parte che decide quelle regole: costruire e aggiornare le tabelle di instradamento scambiando messaggi con gli altri nodi, scegliere i percorsi, gestire la QoS.
System call POSIX, file descriptor e API delle socket
Definizione (file descriptor). Un file descriptor è un piccolo intero non negativo che il kernel restituisce quando un processo apre una risorsa di I/O. Indicizza la tabella dei descrittori del processo, che punta alla risorsa aperta nel kernel. Vale per file normali, pipe, terminali e socket: tutti si leggono e si scrivono con le stesse
readewrite.
Definizione (socket). Un socket è un punto finale di comunicazione, identificato nel programma da un file descriptor. Un socket TCP o UDP è associato a un indirizzo locale (indirizzo IP + porta). Una connessione TCP è identificata dalla quaterna (IP locale, porta locale, IP remoto, porta remota).
2. Il protocollo HTTP
HTTP 0.9 e 1.0 - struttura dei messaggi, header e parsing
Definizione (Simple-Request e Simple-Response, RFC 1945 par. 4.1).
Simple-Request = "GET" SP Request-URI CRLF;Simple-Response = [ Entity-Body ]. La richiesta è una sola riga; la risposta è soltanto il documento.
HTTP 1.1 - connessioni persistenti, Content-Length e chunked transfer encoding
Definizione (connessione persistente). In HTTP/1.1 la connessione resta aperta dopo la risposta e si riusa per le richieste successive, senza che il client lo chieda. Chi vuole chiuderla dopo il messaggio corrente lo dichiara con l'header
Connection: close, nella richiesta (il server chiude dopo la risposta) o nella risposta (il server chiude e lo dice prima).
Definizione (chunked). Con
Transfer-Encoding: chunkedil corpo è inviato come una sequenza di chunk: ciascuno preceduto dalla propria lunghezza in esadecimale e terminato da CRLF. L'ultimo chunk ha lunghezza zero. Sintassi (RFC 9112 par. 7.1):
Esempio. Il corpo Il chunked permette di inviare il corpo a pezzi.\n (49 byte) in tre chunk da 11, 20 e 18 byte. In esadecimale 11 = b, 20 = 14, 18 = 12:
Caching, autenticazione, tipi MIME e URI in HTTP
Definizione (media type).
tipo/sottotipo[; parametro=valore]. Il tipo indica la famiglia (text,image,audio,video,application,multipart), il sottotipo il formato preciso. I valori sono registrati presso IANA e non distinguono maiuscole e minuscole.
3. Applicazioni web dinamiche e web service
Web service, XML, JSON, SOAP e REST
Definizione (web service). Un sistema software progettato per supportare l'interazione fra macchine attraverso una rete, in cui le richieste e le risposte sono messaggi in un formato standard, di solito trasportati da HTTP.
4. Servizi di supporto di Internet
DNS, proxy web, HTTP CONNECT e gateway applicativi
Definizione (proxy e gateway, RFC 9110 par. 3.7). Un intermediario è un nodo che sta fra client e server e inoltra i messaggi. Un proxy è un intermediario scelto dal client (configurato nel browser o nel sistema) che inoltra le richieste verso i server di origine. Un gateway, o reverse proxy, è un intermediario scelto dal server: per il client sembra il server di origine e inoltra le richieste ad altri sistemi.
Definizione (CONNECT).
CONNECT host:porta HTTP/1.1: chiede al proxy di aprire una connessione TCP versohost:portae, se ci riesce, di inoltrare senza interpretarli i byte in entrambe le direzioni finché una delle due parti chiude. Il request-target è in authority-form: solo host e porta, e la porta è obbligatoria.
6. Servizi multimediali
Servizi multimediali e loro requisiti
Definizione (medium). Un medium (plurale media) è un mezzo per rappresentare, immagazzinare o trasportare informazione. Sono media il testo, i dati, il suono, l'immagine, il video. Multimedia indica un flusso di informazione rappresentato o trasportato da più media insieme; le comunicazioni multimediali sono la tecnologia per manipolare, trasmettere e controllare questi contenuti attraverso una rete.
Definizione. Nello streaming la fruizione del contenuto può iniziare prima di aver ricevuto tutto il file: i dati si trasmettono e si consumano man mano che vengono prodotti. Nel bulk transfer (trasferimento in blocco) i dati viaggiano in modo "atomico" e si possono usare solo a file completo.
7. Digitalizzazione dei segnali
Digitalizzazione dei segnali multimediali - campionamento, quantizzazione e binarizzazione
Definizione (campionamento). Si preleva il valore del segnale a intervalli regolari di durata (periodo di campionamento): , . La frequenza di campionamento è .
Teorema del campionamento di Shannon. Un segnale a banda limitata con frequenza massima può essere ricostruito con errore nullo dalla successione dei campioni se e soltanto se la frequenza di campionamento è almeno il doppio della frequenza massima: Quando vale, la formula di interpolazione ideale restituisce il segnale:
Definizione (aliasing). L'aliasing è lo spostamento in frequenza di un segnale ricostruito da campioni presi con che non rispetta il criterio di Nyquist: componenti ad alta frequenza si presentano, dopo la ricostruzione, come componenti a frequenza più bassa.
Grafico interattivo: Frequenza apparente di un tono campionato a Fc = 8 kHz: sotto 4 kHz coincide con la vera, sopra si ripiega (5 kHz appare come 3 kHz, 7 kHz come 1 kHz)
10. Codifica lossless
Codifica lossless - entropia, Huffman e codifiche a dizionario
Definizione (codice). Un codice è una mappa dall'alfabeto all'insieme delle stringhe di bit di lunghezza finita: . Le stringhe sono le codeword, di lunghezza . Nei codici a lunghezza fissa tutte le codeword hanno la stessa lunghezza; altrimenti il codice è a lunghezza variabile. La lunghezza media è
Teorema di Shannon sulla codifica di sorgente. La lunghezza media del codice istantaneo ottimo per una sorgente soddisfa e l'uguaglianza a sinistra vale se e solo se tutte le probabilità sono potenze intere negative di due (distribuzione diadica).
13. Metriche e prestazioni di rete
Metriche e prestazioni di rete per i servizi multimediali
Definizione (BDP). Numero di bit (o pacchetti) che possono essere contemporaneamente "in transito" nella connessione: anche il numero di bit ricevuti (a regime) in un tempo pari al RTT.
15. QoS e QoE
Qualità del servizio (QoS) e qualità dell'esperienza (QoE)
Definizione (QoS, ITU-T E.800, 2008). La QoS è l'insieme delle caratteristiche di un servizio di telecomunicazioni che influiscono sulla sua capacità di soddisfare le esigenze dichiarate e implicite dell'utente del servizio.
Definizione (QoE). La QoE è la qualità del servizio percepita dall'utente. La definizione ufficiale (Qualinet): "il grado di gradimento o fastidio dell'utente di un'applicazione o servizio".
16. Streaming adattativo e DASH
Streaming adattativo e DASH
Definizione. è il numero di secondi di video ricevuti ma non ancora riprodotti all'istante . Si misura in secondi di video, non in bit o byte. È l'autonomia del player: se la rete "muore" all'istante , il video continua per esattamente secondi. Quando la riproduzione si ferma: freezing, stallo o rebuffering.