Salta al contenuto
Note per Studenti Formulario · Sistemi Operativi e Reti di Calcolatori

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 livello n diventa la SDU del livello n-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 read e write.

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: chunked il 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 verso host:porta e, 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 TcT_c (periodo di campionamento): sc(n)=s(nTc)s_c(n)=s(nT_c), n∈Zn\in\mathbb Z. La frequenza di campionamento è Fc=1TcF_c=\frac1{T_c}.

Teorema del campionamento di Shannon. Un segnale s(t)s(t) a banda limitata con frequenza massima fMf_M può essere ricostruito con errore nullo dalla successione dei campioni sc(n)=s(nTc)s_c(n)=s(nT_c) se e soltanto se la frequenza di campionamento è almeno il doppio della frequenza massima: Fc≥2fM(criterio di Nyquist).\boxed{F_c\ge2f_M}\qquad\text{(criterio di Nyquist).} Quando vale, la formula di interpolazione ideale restituisce il segnale: s(t)=∑n∈Zs(nTc) sinc ⁣(t−nTcTc).s(t)=\sum_{n\in\mathbb Z}s(nT_c)\,\mathrm{sinc}\!\left(\frac{t-nT_c}{T_c}\right).

Definizione (aliasing). L'aliasing è lo spostamento in frequenza di un segnale ricostruito da campioni presi con FcF_c 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 CC è una mappa dall'alfabeto all'insieme delle stringhe di bit di lunghezza finita: C:xi↦ci∈{0,1}∗C:x_i\mapsto c_i\in\{0,1\}^*. Le stringhe cic_i sono le codeword, di lunghezza ℓi\ell_i. Nei codici a lunghezza fissa tutte le codeword hanno la stessa lunghezza; altrimenti il codice è a lunghezza variabile. La lunghezza media è L=∑i=1Mpi ℓi(bit per simbolo).\mathcal L=\sum_{i=1}^Mp_i\,\ell_i\quad\text{(bit per simbolo)}.

Teorema di Shannon sulla codifica di sorgente. La lunghezza media L∗\mathcal L^* del codice istantaneo ottimo per una sorgente XX soddisfa H(X)≤L∗<H(X)+1,H(X)\le\mathcal L^*<H(X)+1, 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. BDPbit=S⋅RTT,BDPpkt=BDPbit∣PDU∣.\mathrm{BDP}_{\text{bit}}=S\cdot\mathrm{RTT},\qquad\mathrm{BDP}_{\text{pkt}}=\frac{\mathrm{BDP}_{\text{bit}}}{|\mathrm{PDU}|}.

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. B(t)B(t) è il numero di secondi di video ricevuti ma non ancora riprodotti all'istante tt. Si misura in secondi di video, non in bit o byte. È l'autonomia del player: se la rete "muore" all'istante tt, il video continua per esattamente B(t)B(t) secondi. Quando B(t)=0B(t)=0 la riproduzione si ferma: freezing, stallo o rebuffering.