Modello Client-Server e Web Services
207 Questions
0 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

Quali sono le tre componenti principali delle architetture distribuite?

Interfaccia utente, logica applicativa e dati.

Cosa distingue un client grasso da un client magro?

Il client grasso gestisce parte o tutta la logica applicativa, mentre il client magro gestisce solo l'interfaccia utente.

Qual è l'obiettivo principale di un agente nel modello a tre livelli?

Compatibilità con sistemi legacy, miglioramento delle prestazioni e incremento della sicurezza.

Come contribuisce l'agente al bilanciamento del carico?

<p>L'agente smista le richieste su più server per evitare il sovraccarico.</p> Signup and view all the answers

In che modo l'agente facilita la compatibilità con i sistemi legacy?

<p>Interagisce con mainframe obsoleti e traduce protocolli per la funzionalità moderna.</p> Signup and view all the answers

Qual è un vantaggio della computazione parallela nel contesto delle architetture distribuite?

<p>Riduce i tempi di risposta per il client.</p> Signup and view all the answers

Quale ruolo gioca l'agente nel miglioramento delle prestazioni nell'architettura a tre livelli?

<p>Ottimizza la gestione delle richieste e delle risorse tra client e server.</p> Signup and view all the answers

Che cosa si intende per 'logica applicativa' in un'architettura distribuita?

<p>La logica applicativa si riferisce alla parte dell'applicazione che gestisce il funzionamento e la logica del sistema.</p> Signup and view all the answers

Qual è l'importanza della separazione delle componenti nelle architetture distribuite?

<p>Permette una maggiore scalabilità e manutenzione delle applicazioni.</p> Signup and view all the answers

Nell'architettura a tre livelli, quale componente si colloca tra client e server?

<p>L'agente, che funge da intermediario.</p> Signup and view all the answers

Qual è la principale differenza tra il modello client-server e l'architettura peer-to-peer?

<p>Nel modello client-server, il client richiede e il server risponde, mentre nell'architettura peer-to-peer, ogni nodo può agire sia da client che da server.</p> Signup and view all the answers

Cosa sono i web services e quale ruolo svolgono nella comunicazione tra applicazioni?

<p>I web services sono interfacce software che permettono a diverse applicazioni di comunicare su una rete utilizzando protocolli standardizzati come HTTP.</p> Signup and view all the answers

Quali sono alcuni degli intermediari che possono trovarsi nel modello client-server?

<p>Esempi di intermediari includono i proxy server e i componenti per il bilanciamento del carico.</p> Signup and view all the answers

Qual è uno dei principali limiti del modello client-server quando il server riceve molte richieste contemporaneamente?

<p>Uno dei limiti è la creazione di colli di bottiglia per la capacità di calcolo e la larghezza di banda.</p> Signup and view all the answers

Qual è la funzione principale del Network File System (NFS)?

<p>Il Network File System permette di accedere a un file system remoto come se fosse locale.</p> Signup and view all the answers

In quale contesto è più adeguata l'architettura two-tier e perché?

<p>L'architettura two-tier è più adeguata in ambienti di dimensioni ridotte a causa della sua bassa scalabilità e alta richiesta computazionale sul server.</p> Signup and view all the answers

Quali protocolli vengono comunemente utilizzati dal Network File System per la comunicazione?

<p>Il Network File System utilizza comunemente protocolli come UDP e TCP per la comunicazione.</p> Signup and view all the answers

Perché gli intermediari come i proxy server sono importanti nel modello client-server?

<p>Gli intermediari come i proxy server sono importanti perché possono migliorare la scalabilità, ottimizzare le prestazioni e aumentare la sicurezza.</p> Signup and view all the answers

Quale problema comune può presentarsi nell'architettura client-server quando il numero di client aumenta?

<p>Il problema comune è l'overload del server, che può accadere con un numero elevato di richieste simultanee.</p> Signup and view all the answers

Cosa implica il termine 'asimmetrico' nel contesto del modello client-server?

<p>Il termine 'asimmetrico' implica che solo il client invia richieste mentre il server risponde, senza che il server possa richiedere attivamente informazioni al client.</p> Signup and view all the answers

In che modo un agente può ottimizzare la gestione delle richieste simultanee in un sistema come didattica.polito.it?

<p>L'agente smista le richieste ai server in backend, permettendo una gestione efficiente del carico e risposte rapide.</p> Signup and view all the answers

Qual è il ruolo di un agente nel processo di aggregazione delle informazioni da diversi servizi esterni?

<p>L'agente interroga vari servizi, interpreta le risposte e le aggrega in un'unica risposta presentabile all'utente.</p> Signup and view all the answers

Come è cambiato il paradigma delle interfacce utente con l'evoluzione verso il web?

<p>Le interfacce utente ora funzionano principalmente tramite browser, garantendo compatibilità e accessibilità da qualsiasi dispositivo.</p> Signup and view all the answers

Qual è il beneficio di avere un server web come agente in un'architettura client-server moderna?

<p>Il server web funge da intermediario, traducendo e reindirizzando le richieste delle applicazioni in formato web.</p> Signup and view all the answers

In che modo il paradigma del cloud computing ha influenzato lo sviluppo delle applicazioni web?

<p>Il cloud computing ha reso possibile operare applicazioni complesse direttamente nel browser, senza necessità di installazioni locali.</p> Signup and view all the answers

Che funzione svolge un agente come broker nell'accesso alle informazioni per l'utente?

<p>L'agente funge da intermediario, ottimizzando l'accesso alle informazioni confrontando e sintetizzando dati da diversi servizi.</p> Signup and view all the answers

Qual è un esempio pratico di come un agente possa migliorare l'esperienza dell'utente in un sistema di viaggio online?

<p>Un agente può aggregare i prezzi di voli da diversi servizi come Booking ed Expedia, fornendo un confronto diretto per l'utente.</p> Signup and view all the answers

In che modo il browser è diventato quasi un sistema operativo autonomo grazie alle applicazioni web?

<p>Il browser gestisce applicazioni complesse e strumenti di produttività, operando come interfaccia per diverse funzionalità.</p> Signup and view all the answers

Quale vantaggio può derivare dall'uso di server farm nell'ambito della gestione delle richieste?

<p>Le server farm permettono di distribuire il carico di lavoro tra più server, aumentando l'efficienza e riducendo il rischio di sovraccarico.</p> Signup and view all the answers

Cosa implica avere un server applicativo in un'architettura client-server moderna?

<p>Il server applicativo elabora le richieste degli utenti e gestisce la logica applicativa, interagendo con dati e funzionalità.</p> Signup and view all the answers

Qual è il vantaggio principale di utilizzare un'architettura multi-tier rispetto a un'architettura a tre livelli?

<p>L'architettura multi-tier consente una distribuzione migliorata dei compiti tra vari agenti, aumentando l'efficienza e le prestazioni del sistema.</p> Signup and view all the answers

In che modo una Content Delivery Network (CDN) influisce sulla latenza nella comunicazione client-server?

<p>Una CDN riduce la latenza dirigendo il client verso il server geograficamente più vicino, migliorando così la velocità di delivery dei contenuti.</p> Signup and view all the answers

Qual è il ruolo del codice JavaScript in un'architettura multi-tier?

<p>Il codice JavaScript viene utilizzato dall'agente di presentazione per visualizzare dinamicamente i dati sullo schermo dell'utente.</p> Signup and view all the answers

Quale funzione dovrebbero svolgere gli agenti più vicini al server in un'architettura multi-tier?

<p>Gli agenti più vicini al server gestiscono la logica applicativa e l'accesso ai dati, mantenendo l'integrità del sistema.</p> Signup and view all the answers

Come può la distribuzione geografica dei server influenzare l'efficienza della comunicazione?

<p>La distribuzione geografica consente di ridurre i tempi di risposta ottimizzando il percorso di trasmissione dei dati tra client e server.</p> Signup and view all the answers

Quali sono le implicazioni della personalizzazione dei contenuti tramite le CDN?

<p>Le CDN possono adattare i contenuti per migliorare la localizzazione, come la lingua delle pagine, a seconda della posizione del client.</p> Signup and view all the answers

Come la separazione tra logica applicativa e presentazione dei dati migliora le prestazioni del sistema?

<p>Separando la logica applicativa dalla presentazione, si riducono i conflitti e si ottimizzano le risorse disponibili per ciascun compito.</p> Signup and view all the answers

Qual è l'importanza della scalabilità nelle architetture multi-tier?

<p>La scalabilità consente di aggiungere o rimuovere facilmente agenti in base al carico di lavoro, mantenendo l'efficienza operativa.</p> Signup and view all the answers

Cosa rende un agente di presentazione così importante in un'architettura multi-tier?

<p>L'agente di presentazione è cruciale poiché si occupa di visualizzare i dati in modo interattivo, migliorando l'esperienza utente.</p> Signup and view all the answers

In che modo le architetture multi-tier permettono un miglioramento dell'efficienza nello scambio dei dati?

<p>Questo approccio consente una gestione più mirata delle risorse e una comunicazione ottimizzata tra i vari livelli del sistema.</p> Signup and view all the answers

Qual è la funzione principale di un edge server in una CDN?

<p>Fornire contenuti agli utenti raccogliendo le richieste e rispondendo con i dati più vicini alla loro posizione.</p> Signup and view all the answers

Come una CDN contribuisce a migliorare l'affidabilità di un servizio web?

<p>Dirige le richieste verso server funzionanti in caso di guasto, garantendo continuità del servizio.</p> Signup and view all the answers

Quale vantaggio offrono le CDN durante i picchi di traffico?

<p>Distributono le richieste su più server, evitando sovraccarichi e garantendo la disponibilità del servizio.</p> Signup and view all the answers

In che modo le CDN possono personalizzare i contenuti per gli utenti?

<p>Analizzando l'indirizzo IP per determinare la posizione dell'utente e fornendo contenuti locali.</p> Signup and view all the answers

Perché la riduzione della latenza è importante per una migliore esperienza utente?

<p>Diminuisce il tempo di caricamento delle pagine, migliorando l'interazione con il sito web.</p> Signup and view all the answers

Quali misure di sicurezza spesso forniscono le CDN?

<p>Protezione contro attacchi DDoS e supporto per certificati SSL/TLS per la sicurezza delle comunicazioni.</p> Signup and view all the answers

Che ruolo giocano le CDN nell'ottimizzazione della distribuzione dei contenuti?

<p>Distribuiscono fisicamente i contenuti più vicino agli utenti, migliorando l'efficacia nella consegna.</p> Signup and view all the answers

Come una CDN può migliorare il tempo di risposta di un sito web?

<p>Servendo i contenuti dall'edge server più vicino, riduce la distanza fisica da percorrere.</p> Signup and view all the answers

Perché è significativa la capacità di cache in una CDN?

<p>Permette di memorizzare temporaneamente i contenuti, riducendo le richieste al server di origine.</p> Signup and view all the answers

Qual è l'effetto della distribuzione geografica dei server in una CDN?

<p>Migliora l'efficienza comunicativa e riduce la latenza per gli utenti in diverse località.</p> Signup and view all the answers

Qual è un vantaggio significativo dell'utilizzo di interfacce web basate su HTML, CSS e JavaScript nelle applicazioni?

<p>Offrono un'interfaccia familiare e semplice per gli utenti.</p> Signup and view all the answers

In che modo le applicazioni ad hoc possono migliorare le prestazioni rispetto a quelle basate su interfacce web?

<p>Possono ottimizzare il proprio funzionamento rimuovendo elementi di sovraccarico come il protocollo HTTP.</p> Signup and view all the answers

Quali sono le principali sfide di sicurezza associate alle reti peer-to-peer?

<p>La protezione della privacy e la condivisione non autorizzata di contenuti protetti da copyright.</p> Signup and view all the answers

Cosa distingue il modello P2P dal modello client-server rispetto alla distribuzione del carico di lavoro?

<p>Nel P2P, ogni nodo può agire sia come client che come server, distribuendo equamente il carico.</p> Signup and view all the answers

Qual è un problema comune riguardo la privacy nelle reti P2P aperte?

<p>Distribuire dati sensibili su nodi non sicuri, esponendo informazioni riservate.</p> Signup and view all the answers

Come il progetto SETI@home rappresenta un esempio di computing collaborativo?

<p>Analizzando dati spaziali condivisi suddivisi tra vari nodi della rete.</p> Signup and view all the answers

Qual è l'effetto della disponibilità di dispositivi potenti sull'approccio web-based nelle applicazioni?

<p>Ha reso il modello web-based praticabile anche per applicazioni complesse.</p> Signup and view all the answers

Perché le applicazioni ad hoc risultano meno flessibili rispetto a quelle basate su interfacce web?

<p>Perché rimuovono parti del protocollo e altre funzionalità, rendendo gli aggiornamenti più difficili.</p> Signup and view all the answers

Quali sfide si possono verificare nella gestione delle risorse in un modello P2P?

<p>Difficoltà nel controllo delle risorse e gestione dei conflitti tra peer.</p> Signup and view all the answers

Qual è il rischio associato alla cancellazione di un file in una rete P2P?

<p>Difficoltà nel garantire la cancellazione definitiva una volta che il file è distribuito tra i nodi.</p> Signup and view all the answers

Come si calcola il throughput in servizi al minuto a partire dal TPS?

<p>Il throughput in servizi al minuto si calcola moltiplicando il TPS per 60.</p> Signup and view all the answers

Quali sono i vantaggi principali di un server concorrente rispetto a un server iterativo?

<p>I server concorrenti gestiscono più richieste simultaneamente, riducendo la latenza per i client.</p> Signup and view all the answers

Qual è un limite principale nell'ottimizzazione della velocità di trasmissione dei dati?

<p>Il limite tecnologico impone un certo punto oltre il quale non è possibile aumentare la velocità.</p> Signup and view all the answers

Cos'è e come influisce la compressione dei dati su un sistema client-server?

<p>La compressione dei dati riduce il volume di dati trasmessi, migliorando le prestazioni di rete.</p> Signup and view all the answers

Cosa determina la latenza percepita da un client in un sistema di server concorrenti?

<p>La latenza è determinata dal tempo di creazione del processo figlio e dal tempo medio di elaborazione della risposta.</p> Signup and view all the answers

Come può l'uso della memoria diretta (DMA) migliorare l'efficienza di trasmissione?

<p>L'accesso diretto alla memoria consente il trasferimento di dati senza coinvolgere la CPU, migliorando l'efficienza.</p> Signup and view all the answers

Qual è il significato della formula del throughput TPS in relazione al numero di unità di elaborazione?

<p>Il TPS è calcolato come il quoziente tra le unità di elaborazione e il tempo totale di elaborazione di una richiesta.</p> Signup and view all the answers

Quali fattori devono essere valutati quando si decide di abilitare la compressione dei dati?

<p>Si devono valutare le capacità di elaborazione del client e del server e il vantaggio di riduzione del volume dati.</p> Signup and view all the answers

In che modo la creazione di processi figli influisce sulle prestazioni di un server concorrente?

<p>La creazione di processi figli comporta un overhead che può rallentare l'elaborazione delle richieste.</p> Signup and view all the answers

Qual è la formula per calcolare il tempo totale di elaborazione di una richiesta su un server iterativo?

<p>La formula è $T_{totale} = T_{CPU} + T_{disco} + T_{rete}$.</p> Signup and view all the answers

Come si calcola il tempo di elaborazione della CPU dato il numero di istruzioni e la frequenza della CPU?

<p>Si calcola con $T_{CPU} = \frac{N_{istr}}{f}$.</p> Signup and view all the answers

Qual è il tempo totale di accesso al disco per una richiesta che comporta 10 letture con un tempo medio di 10 ms per accesso?

<p>Il tempo è $T_{disco} = 10 \times 0,01 , s = 0,1 , s$.</p> Signup and view all the answers

Qual è il tempo necessario per la trasmissione in rete di una risposta di 10 Mb con una velocità di 10 Mb/s?

<p>Il tempo di trasmissione è $T_{rete} = \frac{10 , Mb}{10 , Mb/s} = 1 , s$.</p> Signup and view all the answers

Qual è il tempo totale di elaborazione per una richiesta considerando i tempi di CPU, disco e rete calcolati precedentemente?

<p>Il tempo totale è $T_{totale} = 0,00005 , s + 0,1 , s + 1 , s \approx 1,1 , s$.</p> Signup and view all the answers

Come si calcola il throughput (TPS) a partire dal tempo totale di elaborazione?

<p>Il throughput è calcolato con $TPS = \frac{1}{T_{totale}} = \frac{1}{1,1} \approx 0,91 , servizi , al , secondo$.</p> Signup and view all the answers

Qual è l'importanza del calcolo del tempo di elaborazione della CPU in un contesto di prestazioni del server?

<p>Il calcolo del $T_{CPU}$ è cruciale perché determina il tempo necessario per eseguire le istruzioni del server, influenzando le prestazioni globali.</p> Signup and view all the answers

Perché è rilevante conoscere i tempi di accesso al disco in un server ad alte prestazioni?

<p>I tempi di accesso al disco sono rilevanti perché contribuiscono in modo significativo ai colli di bottiglia nelle performance delle applicazioni.</p> Signup and view all the answers

Qual è l'effetto della latenza di rete sul tempo totale di risposta di un server?

<p>La latenza di rete aumenta il $T_{totale}$, scalando notevolmente il tempo di risposta, soprattutto per richieste di grandi dimensioni.</p> Signup and view all the answers

In che modo il throughput può influenzare la progettazione di un server?

<p>Il throughput indica quante richieste un server può gestire e influisce sulla scalabilità e sulle scelte architetturali.</p> Signup and view all the answers

Perché la deframmentazione è meno rilevante negli SSD rispetto agli HDD?

<p>Negli SSD non esiste testina, permettendo un accesso diretto a qualsiasi zona della memoria.</p> Signup and view all the answers

Qual è l'effetto del movimento meccanico delle testine nei dischi HDD?

<p>Il movimento meccanico influisce negativamente sui tempi di lettura.</p> Signup and view all the answers

Cosa significa l'acronimo RAID e quali vantaggi principali offre?

<p>RAID sta per 'Redundant Array of Independent Disks' e offre aumento della velocità e della robustezza dei dati.</p> Signup and view all the answers

Come migliora il parallelismo nei dischi in una configurazione RAID le prestazioni del sistema?

<p>Il parallelismo consente di accedere a più dati contemporaneamente.</p> Signup and view all the answers

In che modo alcune configurazioni RAID aumentano la robustezza dei dati?

<p>Duplicano i dati su dischi diversi per prevenire la perdita di informazioni in caso di guasto.</p> Signup and view all the answers

Quali sono le differenze fondamentali tra dischi HDD e SSD riguardo la lettura dei dati?

<p>Gli HDD utilizzano testine meccaniche, mentre gli SSD hanno un accesso diretto alla memoria.</p> Signup and view all the answers

Qual è l'importanza della velocità di accesso nei dischi SSD?

<p>Una maggiore velocità di accesso consente prestazioni superiori nei carichi di lavoro intensivi.</p> Signup and view all the answers

Perché è fondamentale considerare il tipo di disco quando si progetta un sistema di archiviazione?

<p>La scelta tra HDD e SSD influisce direttamente su velocità, costi e robustezza dei dati.</p> Signup and view all the answers

In che modo la tecnologia SSD offre vantaggi anche con dati frammentati?

<p>Gli SSD riducono i tempi di accesso grazie all'accesso diretto alla memoria, indipendentemente dalla frammentazione.</p> Signup and view all the answers

Qual è la differenza nella latenza tra un server iterativo e uno concorrente con sei client e tre unità di elaborazione?

<p>La latenza di un server concorrente è $ rac{6}{3}$, mentre quella di un server iterativo è proporzionale a 6 richieste.</p> Signup and view all the answers

Qual è il principale collo di bottiglia nella gestione delle richieste secondo il contenuto fornito?

<p>Il principale collo di bottiglia è il tempo di accesso al disco.</p> Signup and view all the answers

Come può la cache ottimizzare le prestazioni del server?

<p>La cache riduce i tempi di accesso, memorizzando temporaneamente i dati recentemente letti dal disco.</p> Signup and view all the answers

Quali sono i componenti principali da considerare per calcolare il throughput massimo di un server concorrente?

<p>I componenti principali sono il tempo di calcolo, il tempo di accesso al disco e il tempo di trasmissione.</p> Signup and view all the answers

Qual è il tempo totale di accesso al disco per 100 letture se il tempo di accesso è 20 ms?

<p>Il tempo totale di accesso è $100 imes 0{,}02 ext{s} = 2 ext{s}$.</p> Signup and view all the answers

In che modo avere più unità di elaborazione influisce sulle prestazioni del server?

<p>Avere più unità di elaborazione raddoppia le prestazioni, consentendo la gestione parallela delle richieste.</p> Signup and view all the answers

Quale dimensione della risposta è considerata nel contesto del calcolo del throughput massimo?

<p>La dimensione della risposta considerata è di 10 MB.</p> Signup and view all the answers

Qual è il tempo di trasmissione totale se il server ha bisogno di 0,8 s per trasmettere ogni richiesta?

<p>Il tempo di trasmissione totale è di 0,8 s per ogni richiesta.</p> Signup and view all the answers

Come influisce la deframmentazione sull'organizzazione dei dati sul disco?

<p>La deframmentazione organizza i dati in modo contiguo, migliorando l'accesso e le prestazioni.</p> Signup and view all the answers

Qual è il tempo di calcolo per singola richiesta in un server che utilizza CPU da 1 GHz?

<p>Il tempo di calcolo per singola richiesta è di 0,1 s.</p> Signup and view all the answers

Qual è la principale differenza tra RAID 1 e RAID 5?

<p>RAID 1 duplica i dati su due dischi per mirroring, mentre RAID 5 distribuisce i codici di correzione su più dischi per migliorare sia la velocità che la robustezza.</p> Signup and view all the answers

Perché RAID 6 è considerato più robusto rispetto a RAID 5?

<p>RAID 6 utilizza la duplicazione dei codici di correzione che consente di tollerare il guasto di due dischi, offrendo maggiore protezione rispetto a RAID 5, che tollera solo uno.</p> Signup and view all the answers

Qual è uno svantaggio di generare i processi figli in uno stato di idle in un server concorrente?

<p>Richiede una gestione attenta dei processi e introduce complessità di sincronizzazione, pur riducendo la latenza.</p> Signup and view all the answers

In che modo RAID 3 migliora l'affidabilità rispetto a configurazioni senza codici di correzione?

<p>RAID 3 utilizza un disco dedicato per memorizzare i codici di correzione, permettendo il recupero dei dati in caso di guasti.</p> Signup and view all the answers

Quali vantaggi offre una configurazione RAID 0+1?

<p>RAID 0+1 combina la velocità della suddivisione dei dati e la robustezza del mirroring, offrendo prestazioni elevate e maggiore sicurezza.</p> Signup and view all the answers

Qual è il principale benefit di pre-generare i figli in un server concorrente?

<p>Minimizza il tempo di attesa per la creazione di un processo figlio, fornendo una risposta immediata ai client.</p> Signup and view all the answers

Cosa comporta l'uso di RAID 6 in termini di prestazioni rispetto a RAID 5?

<p>RAID 6 ha un overhead maggiore per il calcolo dei codici di correzione, ma offre una maggiore protezione contro i guasti.</p> Signup and view all the answers

Qual è la principale funzione dei codici di correzione in RAID 5 e RAID 6?

<p>I codici di correzione consentono la ricostruzione dei dati in caso di guasto di uno o più dischi.</p> Signup and view all the answers

Quali compromessi devono essere considerati quando si utilizza RAID 1 rispetto a RAID 0?

<p>RAID 1 fornisce maggiore protezione dei dati a scapito di una riduzione della capacità di archiviazione disponibile, mentre RAID 0 ottimizza la velocità sacrificando la sicurezza.</p> Signup and view all the answers

Come influisce la latenza sulle prestazioni complessive di un server?

<p>Una latenza elevata riduce la velocità di risposta del server, compromettendo l'esperienza dell'utente e l'efficienza del servizio.</p> Signup and view all the answers

Qual è la principale funzione dei codici di rilevamento errori?

<p>Rilevare la presenza di errori di trasmissione senza correggerli.</p> Signup and view all the answers

Come funziona il codice di parità nei codici di rilevamento errori?

<p>Il bit di parità viene impostato a 1 se il numero di zeri è dispari e a 0 se è pari.</p> Signup and view all the answers

Qual è un esempio di codice di correzione errori e quali vantaggi offre?

<p>Il codice SecDent, che può correggere errori e rilevarne altri.</p> Signup and view all the answers

Quali limitazioni presenta l'uso di codici di rilevamento errori in caso di errori multipli?

<p>Potrebbero non individuare errori se coinvolgono più di un bit.</p> Signup and view all the answers

Cosa implica l'acronimo SEC-DED nel contesto dei codici di correzione errori?

<p>Single Error Correction - Double Error Detection.</p> Signup and view all the answers

Come contribuisce il sistema RAID alla robustezza dei dati?

<p>Utilizza la ridondanza per proteggere i dati in caso di guasti hardware.</p> Signup and view all the answers

Che cosa distingue RAID 0 da altri livelli RAID?

<p>Aumenta la velocità distribuindo i dati, ma non offre ridondanza.</p> Signup and view all the answers

In che modo i codici ECC possono influenzare le trasmissioni di dati?

<p>Permettono di individuare e correggere errori, aumentando l'affidabilità.</p> Signup and view all the answers

Qual è la differenza principale tra codici di rilevamento e codici di correzione errori?

<p>I codici di rilevamento identificano errori, mentre quelli di correzione possono anche correggerli.</p> Signup and view all the answers

Che ruolo svolge il bit di parità in un byte per il rilevamento errori?

<p>Serve a verificare se il numero di zeri è pari o dispari per identificare errori.</p> Signup and view all the answers

Qual è la differenza principale tra la generazione di processi figli e la creazione di thread in un sistema concorrente?

<p>I processi figli sono indipendenti e hanno risorse isolate, mentre i thread condividono risorse di memoria e spazio di indirizzamento.</p> Signup and view all the answers

Come influisce la probabilità $g$ sulla formula del throughput in un sistema di generazione dinamica di processi figli?

<p>La probabilità $g$ aumenta il tempo di generazione rispetto al tempo di attivazione, influenzando il throughput complessivo.</p> Signup and view all the answers

Cosa si intende per 'collo di bottiglia' nel contesto del calcolo del throughput in reti?

<p>Il collo di bottiglia è il tronco di connessione con la velocità minima che limita la capacità complessiva di throughput.</p> Signup and view all the answers

Quali protocolli sono coinvolti nel funzionamento della posta elettronica e quali ruoli svolgono?

<p>SMTP per l'invio di email e TCP per il livello di trasporto; SMTP gestisce l'invio mentre TCP garantisce la comunicazione affidabile.</p> Signup and view all the answers

Perché è vantaggioso usare un approccio misto nella gestione dei processi figli?

<p>Consente di ottimizzare le risorse e di rispondere meglio alle richieste, evitando il sovraccarico del sistema.</p> Signup and view all the answers

Qual è l'impatto della modalità di elaborazione thread rispetto ai processi nella programmazione concorrente?

<p>L'uso di thread consente una comunicazione più veloce ma introduce rischi di instabilità dovuti alla condivisione di risorse.</p> Signup and view all the answers

In che modo il throughput nel contesto della programmazione concorrente è calcolato?

<p>Il throughput è calcolato come $(1 - g) imes T_{ ext{attivazione}} + g imes T_{ ext{generazione}}$.</p> Signup and view all the answers

Che ruolo svolgono i tronchi di connessione nella misura della capacità di rete?

<p>I tronchi determinano la capacità massima e l'efficienza del throughput di rete, influenzando le prestazioni globali.</p> Signup and view all the answers

Qual è la principale considerazione da fare quando si abilitano nuovi processi figli in modo dinamico?

<p>Si deve valutare la probabilità $g$ che determina quando generare nuovi processi rispetto a quelli attivati.</p> Signup and view all the answers

Qual è l'effetto dell'isolamento della memoria nei processi sulla sicurezza delle applicazioni?

<p>L'isolamento fornisce una maggiore sicurezza, riducendo il rischio di interferenze tra applicazioni concorrenti.</p> Signup and view all the answers

Qual è l'importanza degli indirizzi email nel sistema di posta elettronica TCP/IP?

<p>Gli indirizzi email sono identificatori univoci che permettono l'invio e la ricezione dei messaggi tra utenti.</p> Signup and view all the answers

Cosa rappresenta il protocollo SMTP nella trasmissione della posta elettronica?

<p>SMTP è il protocollo principale utilizzato per la trasmissione dei messaggi di posta elettronica.</p> Signup and view all the answers

Qual è la funzione dei protocolli SPF, DKIM e DMARC nel contesto della sicurezza email?

<p>Questi protocolli servono a prevenire spam e phishing, verificando la legittimità dei messaggi inviati.</p> Signup and view all the answers

Quali sono le differenze tra POP3 e IMAP nel download della posta?

<p>POP3 consente il download e la cancellazione dei messaggi dal server, mentre IMAP permette di gestire i messaggi mantenendoli sul server.</p> Signup and view all the answers

Come si struttura un indirizzo email di base?

<p>Un indirizzo email di base si struttura come <code>utente@dominio</code>.</p> Signup and view all the answers

In che modo i commenti o alias influenzano la leggibilità degli indirizzi email?

<p>I commenti e alias migliorano la leggibilità degli indirizzi email, facilitando l'identificazione del mittente o del ruolo associato.</p> Signup and view all the answers

Cosa significa Internet Message Format in relazione alla posta elettronica?

<p>Internet Message Format è un formato standard per la codifica dei messaggi di posta elettronica testuali.</p> Signup and view all the answers

Che ruolo ha SMTP-AUTH nell'autenticazione del client di posta elettronica?

<p>SMTP-AUTH è utilizzato per autenticare i client, garantendo che solo gli utenti autorizzati possano inviare messaggi.</p> Signup and view all the answers

Qual è la principale funzione di MHS nel contesto della posta elettronica?

<p>MHS gestisce i messaggi e le interazioni tra sender e receiver nella trasmissione di posta elettronica.</p> Signup and view all the answers

Perché è importante l'uso di formati come MIME nella trasmissione di dati non testuali?

<p>MIME consente la codifica e l'invio di dati non testuali, come file audio e video, via email.</p> Signup and view all the answers

Qual è il rischio associato ai client di posta che mostrano solo una parte del messaggio?

<p>Gli utenti possono essere ingannati a rispondere a indirizzi email malevoli senza rendersene conto.</p> Signup and view all the answers

Che ruolo ha l'MUA nel processo di invio di un'email secondo l'RFC 822?

<p>L'MUA è il client di posta che invia il messaggio all'MSA tramite SMTP.</p> Signup and view all the answers

Qual è la funzione del Message Delivery Agent (MDA) nella ricezione delle email?

<p>L'MDA consegna il messaggio nel Message Store del destinatario.</p> Signup and view all the answers

Perché l'integrità dei dati è cruciale per i protocolli di posta elettronica come SMTP?

<p>Perché la posta elettronica spesso contiene informazioni importanti che devono arrivare intatte e senza errori.</p> Signup and view all the answers

Qual è un vantaggio dell'estensione MIME rispetto all'RFC 822 originale?

<p>MIME permette l'invio di dati binari come audio e video, superando la limitazione del testo a 7 bit.</p> Signup and view all the answers

Quali porte vengono utilizzate per il protocollo POP3?

<p>Il protocollo POP3 utilizza la porta 110.</p> Signup and view all the answers

Come si differenziano l'MSA e l'MTA nel contesto della posta elettronica?

<p>L'MSA serve per inviare l'email nel sistema, mentre l'MTA è responsabile del suo smistamento attraverso la rete.</p> Signup and view all the answers

Qual è l'importanza di accedere al Message Store tramite protocolli come POP3 o IMAP?

<p>Permette agli utenti di recuperare email in modo efficiente e gestire la posta in modo flessibile.</p> Signup and view all the answers

Quale fattore rende problematico per gli utenti rispondere a email con nomi camuffati?

<p>La visualizzazione parziale dei messaggi può portare a fraintendimenti riguardo agli indirizzi email reali.</p> Signup and view all the answers

Quali sono i protocolli standard utilizzati per inviare email dal client al server?

<p>I protocolli standard sono SMTP per l'invio e POP3 o IMAP per la ricezione.</p> Signup and view all the answers

Qual è il ruolo degli MTA nella trasmissione delle email?

<p>Gli MTA gestiscono e instradano i messaggi attraverso domini multipli, migliorando l'affidabilità e l'efficienza del traffico email.</p> Signup and view all the answers

Come si può rintracciare il percorso di un'email attraverso gli MTA?

<p>Si può rintracciare il percorso aprendo il sorgente del messaggio e visualizzando i campi 'Received' aggiunti da ciascun MTA.</p> Signup and view all the answers

Qual è l'importanza della codifica MIME per i file binari nelle email?

<p>La codifica MIME consente la trasmissione di file binari superando le limitazioni dei caratteri a 7 bit e specificando il tipo di contenuto.</p> Signup and view all the answers

Qual è la differenza tra 'Content-Type' e 'Content-Disposition' nelle intestazioni MIME?

<p>'Content-Type' definisce il tipo di contenuto mentre 'Content-Disposition' indica come deve essere utilizzato l'allegato.</p> Signup and view all the answers

Come viene trattato il contenuto binario in RFC 822?

<p>RFC 822 è progettato per contenuti testuali, quindi i file binari devono essere codificati per la trasmissione attraverso email.</p> Signup and view all the answers

Quale comando Linux può essere utilizzato per codificare file binari in un formato trasmissibile?

<p>Il comando <code>uuencode</code> può essere utilizzato per convertire file binari in un formato trasmissibile testualmente.</p> Signup and view all the answers

In che modo gli MTA fungono da gateway nella comunicazione tra sistemi diversi?

<p>Gli MTA traducono i formati di messaggi da un tipo all'altro, permettendo la comunicazione tra sistemi di posta diversi.</p> Signup and view all the answers

Qual è uno dei rischi associati all'uso di e-mail senza considerare i campi dell’header?

<p>Ignorare i campi dell’header può portare a problemi di affidabilità e sicurezza nella trasmissione delle email.</p> Signup and view all the answers

Qual è l'effetto storico dell'introduzione degli MTA nel sistema di posta elettronica?

<p>Hanno unificato diversi sistemi di posta elettronica, facilitando la trasmissione efficiente dei messaggi.</p> Signup and view all the answers

Cosa comporterebbe l'assenza di una codifica adeguata per i file binari nelle email?

<p>Senza codifica, i file binari potrebbero essere danneggiati o non riconosciuti alla ricezione.</p> Signup and view all the answers

Quando è preferibile utilizzare la codifica Base64 rispetto a Quoted-Printable?

<p>La codifica Base64 è preferibile per contenuti binari o quando ci sono molti caratteri non ASCII.</p> Signup and view all the answers

Qual è la principale differenza di overhead tra Base64 e Quoted-Printable?

<p>Base64 ha un overhead del 33%, mentre Quoted-Printable può avere un overhead inferiore al 10%.</p> Signup and view all the answers

Come viene codificato un carattere non ASCII in Quoted-Printable?

<p>Un carattere non ASCII viene codificato come <code>=</code> seguito da due cifre esadecimali che rappresentano il suo valore ASCII.</p> Signup and view all the answers

Qual è il formato generale di un header MIME quando si utilizza la codifica Quoted-Printable?

<p>Un header MIME può contenere un charset come <code>ISO-8859-1</code> e un esempio è <code>=?ISO-8859-1?Q?G=FCnter?=</code>.</p> Signup and view all the answers

Cosa permette la struttura multipart in un messaggio MIME?

<p>La struttura <code>multipart</code> consente di includere varie parti con formati diversi in un unico messaggio.</p> Signup and view all the answers

Qual è l'importanza di specificare il boundary in un messaggio multipart?

<p>Il <code>boundary</code> è fondamentale per separare le diverse parti del messaggio in modo chiaro.</p> Signup and view all the answers

In un messaggio multipart, come viene rappresentato il contenuto testuale associato a un charset specifico?

<p>Il contenuto testuale è rappresentato con `Content-Type: text/plain; charset=</p> Signup and view all the answers

Quale vantaggio offre l'uso di MIME per la codifica delle emails?

<p>MIME consente di inviare contenuti sia testuali che binari in un unico messaggio, migliorando la versatilità delle comunicazioni email.</p> Signup and view all the answers

Qual è il ruolo delle intestazioni MIME nel garantire la compatibilità del testo con vari charset?

<p>Le intestazioni MIME specificano il charset utilizzato, assicurando che i caratteri siano interpretati correttamente dal client di posta.</p> Signup and view all the answers

Quale caratteristica rende Quoted-Printable ideale per contenuti testuali?

<p>Quoted-Printable preserva la leggibilità del testo originale, codificando solo i caratteri speciali.</p> Signup and view all the answers

Qual è il ruolo di MIME nella gestione delle email contenenti formati alternativi?

<p>MIME consente di inviare diversi formati di contenuto, offrendo agli utenti una sola versione da visualizzare in base alle loro preferenze.</p> Signup and view all the answers

In che modo SMTP limita il tipo di caratteri inviabili attraverso le email?

<p>SMTP è un protocollo a 7 bit che supporta solo caratteri ASCII base, motivo per cui è necessaria l'implementazione di MIME per i dati non ASCII.</p> Signup and view all the answers

Quale comando SMTP è utilizzato per avviare una connessione e identificare il server del mittente?

<p>Il comando <code>HELO</code> (o <code>EHLO</code> per le estensioni moderne) è utilizzato per avviare la connessione SMTP e identificare il server del mittente.</p> Signup and view all the answers

Qual è la funzione del comando MAIL FROM nel protocollo SMTP?

<p><code>MAIL FROM</code> specifica l'indirizzo del mittente e il percorso di ritorno per eventuali notifiche di consegna o errori.</p> Signup and view all the answers

Cosa implica l'uso di multipart/alternative nel contesto di un'email?

<p>L'uso di <code>multipart/alternative</code> implica che ci sono differenti rappresentazioni dello stesso contenuto, come testo e HTML.</p> Signup and view all the answers

Come contribuisce MIME alla trasmissione di contenuti multimediali via email?

<p>MIME permette l'invio di contenuti multimediali e caratteri non ASCII, estendendo le capacità del protocollo SMTP.</p> Signup and view all the answers

Qual è la struttura di base di un messaggio SMTP?

<p>Un messaggio SMTP ha una struttura composta da comandi come <code>HELO</code>, <code>MAIL FROM</code>, <code>RCPT TO</code> e il contenuto del messaggio dopo <code>DATA</code>.</p> Signup and view all the answers

Perché è importante la trasmissione via TCP nel protocollo SMTP?

<p>La trasmissione via TCP garantisce una connessione affidabile per lo scambio di messaggi email.</p> Signup and view all the answers

In quale contesto è utilizzato boundary in un messaggio email?

<p><code>boundary</code> è utilizzato per separare le diverse parti di un messaggio multipart, come in <code>multipart/alternative</code>.</p> Signup and view all the answers

Qual è il ruolo del comando DATA nel protocollo SMTP?

<p><code>DATA</code> rappresenta il contenuto principale del messaggio e deve essere terminato da una riga contenente solo un punto.</p> Signup and view all the answers

Cosa indica il codice di stato SMTP 250?

<p><code>250</code> indica che il comando è stato completato con successo.</p> Signup and view all the answers

Qual è la massima lunghezza di una mailbox in un indirizzo email secondo le specifiche SMTP?

<p>La massima lunghezza di una mailbox è di 64 caratteri.</p> Signup and view all the answers

Qual è il significato della prima cifra 4 in un codice di stato SMTP?

<p>La prima cifra <code>4</code> rappresenta un errore temporaneo.</p> Signup and view all the answers

Cosa rappresenta il comando QUIT in una sessione SMTP?

<p><code>QUIT</code> chiude la connessione SMTP.</p> Signup and view all the answers

Come vengono indicate le risposte su più righe in SMTP?

<p>Le risposte su più righe sono precedute da un trattino (<code>-</code>), mentre l'ultima riga termina con il codice di stato finale senza il trattino.</p> Signup and view all the answers

Qual è il limite massimo della dimensione di un messaggio in SMTP?

<p>La dimensione massima di un messaggio è di 64 KB.</p> Signup and view all the answers

Cosa implica il comando RCPT TO durante una comunicazione SMTP?

<p><code>RCPT TO</code> specifica il destinatario del messaggio.</p> Signup and view all the answers

Qual è l'importanza della cifra Y in un codice di stato SMTP?

<p>La cifra <code>Y</code> indica la tipologia del messaggio, fornendo ulteriori dettagli sul tipo di risposta.</p> Signup and view all the answers

Che cosa rappresenta il comando HELO nel flusso di comunicazione SMTP?

<p><code>HELO</code> avvia la connessione e richiede una risposta di benvenuto dal server.</p> Signup and view all the answers

Qual è la porta di default utilizzata da IMAP4?

<p>143</p> Signup and view all the answers

Qual è uno dei principali vantaggi di IMAP rispetto a POP3?

<p>Accesso simultaneo da più dispositivi.</p> Signup and view all the answers

Cosa consente il comando TOP in IMAP?

<p>Visualizzare solo le prime linee di un messaggio.</p> Signup and view all the answers

Come consente IMAP4 di organizzare i messaggi?

<p>Permette di organizzare i messaggi in cartelle sul server.</p> Signup and view all the answers

Qual è la funzione del comando UIDL in IMAP?

<p>Fornisce un identificatore unico per ogni messaggio.</p> Signup and view all the answers

Qual è uno stato avanzato dei messaggi che IMAP4 può gestire?

<p>Stato di 'letto'.</p> Signup and view all the answers

Perché IMAP4 è considerato più evoluto di POP3?

<p>Permette operazioni lato server per ricerca e filtro.</p> Signup and view all the answers

Che tipo di accessi parziali consente IMAP4?

<p>Consente l'accesso solo agli header di un messaggio.</p> Signup and view all the answers

Quale è uno dei principali motivi per cui si sceglie IMAP4?

<p>Mantiene le mail sul server.</p> Signup and view all the answers

Cosa implica l'uso di IMAP4 rispetto a POP3 nella gestione delle email?

<p>Non richiede di riscaricare o duplicare le email.</p> Signup and view all the answers

Qual è la risposta del server che indica il supporto per l'SMTP esteso?

<p>250</p> Signup and view all the answers

Qual è uno dei rischi associati all'uso della codifica a 8 bit in SMTP?

<p>Rischi di sicurezza se gli intermediari non la supportano.</p> Signup and view all the answers

Quali sono i metodi di autenticazione definiti nell'RFC 4954?

<p>LOGIN, CRAM-MD5, DIGEST-MD5, PLAIN.</p> Signup and view all the answers

Quale comando POP3 viene utilizzato per cancellare un messaggio dal message store?

<p>DELE</p> Signup and view all the answers

Qual è la prima operazione obbligatoria da eseguire in una connessione POP3?

<p>QUIT</p> Signup and view all the answers

Dopo il comando 'EHLO', come risponde il server per indicare i metodi di autenticazione disponibili?

<p>Elencando i metodi con il comando 'AUTH'.</p> Signup and view all the answers

Quale comando si utilizza per ottenere le dimensioni dei messaggi in un server POP3?

<p>STAT</p> Signup and view all the answers

Perché i metodi 'PLAIN' e 'LOGIN' sono considerati non sicuri?

<p>Perché inviano le credenziali in chiaro.</p> Signup and view all the answers

Qual è il comando POP3 utilizzato per recuperare un messaggio specifico?

<p>RETR</p> Signup and view all the answers

Dove si colloca la codifica a 8 bit all'interno delle funzionalità SMTP esteso?

<p>Nella gestione di messaggi di grandi dimensioni.</p> Signup and view all the answers

Study Notes

Modello Client-Server

  • Il modello client-server è un'architettura che si basa sull'interazione tra due entità: il client che invia le richieste e il server che le riceve e le elabora.
  • L'interazione tra il client e il server avviene tramite una porta specifica su un nodo identificato da un IP e un nome unico, come definito nel protocollo HTTP 1.1.
  • Il modello client-server è asimmetrico, il client è quello che fa la richiesta e il server risponde.
  • In un'architettura peer-to-peer, ciascun nodo può agire come client e server in momenti diversi.

Web Services e scambio di messaggi

  • Un web service è un'interfaccia software che consente a diverse applicazioni di comunicare tra loro su una rete, utilizzando protocolli standardizzati come HTTP.
  • Lo scambio di messaggi avviene attraverso formati standardizzati come XML o JSON, garantendo interoperabilità tra sistemi diversi.

Intermediari nel Modello Client-Server

  • Tra il client e il server possono esserci degli intermediari, come i proxy server o i componenti per il bilanciamento del carico.
  • Questi intermediari possono aumentare la scalabilità, migliorare le prestazioni e aggiungere un livello di sicurezza.

Problemi e Limitazioni del Modello Client-Server

  • Il modello client-server può avere problemi di scalabilità: se il server riceve troppe richieste, potrebbe avere difficoltà a gestire il carico computazionale e la larghezza di banda.
  • Un server sovraccaricato può portare al sovraccarico del server, specialmente in architetture che gestiscono un numero elevato di client.
  • L'architettura client-server è logica, non fisica: client e server possono essere su reti locali o anche sulla stessa macchina.

Network File System (NFS)

  • NFS è un esempio di architettura client-server che permette di accedere a un file system remoto come se fosse locale.
  • NFS si basa su protocolli come UDP per la comunicazione, anche se oggigiorno si utilizzano anche TCP per una maggiore affidabilità.

Modello a Due Livelli (Two-Tier)

  • In un'architettura a due livelli, il client interagisce direttamente con il server.
  • Questo modello è spesso utilizzato in ambienti di dimensioni ridotte.
  • Le problematiche principali del modello a due livelli sono la bassa scalabilità e l'elevata richiesta computazionale sul server, rendendolo adatto a reti locali o piccoli gruppi di client.

Suddivisione delle Componenti

  • Nelle architetture distribuite, le componenti principali possono essere separate in: interfaccia utente, logica applicativa e dati.
  • Client grasso: il client gestisce una parte o tutta la logica applicativa (es. esecuzione di JavaScript nel browser).
  • Client magro: solo l'interfaccia utente è sul client, mentre la logica e i dati risiedono sul server.

Modello a Tre Livelli (Three-Tier)

  • Nel modello a tre livelli, un agente intermedio si colloca tra il client e il server.
  • L'agente può svolgere diverse funzioni: compatibilità con sistemi legacy, miglioramento delle prestazioni e incremento della sicurezza.
  • Compatibilità: l'agente può interagire con mainframe obsoleti e tradurre protocolli per assicurare funzionalità moderne senza modificare l'hardware legacy.
  • Bilanciamento del carico: l'agente smista le richieste su più server per evitare il sovraccarico.
  • Computazione parallela: l'agente spezza le richieste complesse in parti più piccole, distribuendo il carico computazionale su più server e riducendo i tempi di risposta per il client.

Agenti e Server per la Gestione di Richieste Simultane

  • didattica.polito.it è un esempio pratico di sistema che gestisce migliaia di richieste simultanee degli studenti, agendo come interfaccia per l'accesso al database centrale.
  • Il sistema non si basa su un singolo server, ma su una batteria di server connessi a un database centrale, garantendo risposte rapide e gestione efficiente del traffico, anche nei momenti di picco.
  • didattica.polito.it funge da smistatore delle richieste ricevute ai server in backend, che gestiscono il carico in modo efficiente.

Aggregatori di Informazioni

  • Gli aggregatori di informazioni fungono da intermediari tra utenti e servizi esterni (es. Booking, Expedia), raccogliendo informazioni su voli o hotel da diverse fonti.
  • L'agente confronta le risposte ricevute dai diversi servizi, identifica i campi compatibili e li aggrega in un'unica risposta presentabile all'utente.
  • L'agente agisce come un broker, ottimizzando l'accesso alle informazioni per l'utente.

Evoluzione delle Interfacce Utente verso il Web

  • Le interfacce utente si stanno spostando sempre più verso il web, a differenza di 15 anni fa, quando venivano sviluppate specificamente dalle software house.
  • La standardizzazione ha portato molte applicazioni a funzionare tramite browser, sfruttando il paradigma del cloud computing.
  • Applicazioni come Google Suite e Microsoft Office sono ora completamente accessibili tramite browser, garantendo compatibilità e accessibilità da qualsiasi dispositivo.
  • Il browser è diventato quasi un sistema operativo in sé, gestendo applicazioni complesse come gli strumenti di produttività quotidiana.

Client-Server e Web Agent come Intermediari

  • Le architetture client-server moderne utilizzano un agente, ossia un server web, come intermediario tra client e applicazione.
  • L'agente traduce e reindirizza le richieste verso le applicazioni e presenta una risposta in formato web.
  • Le applicazioni legacy che in passato fornivano dati tramite un'interfaccia specifica, ora li presentano in HTML attraverso un server web.
  • Questo modello di architettura client-server a tre livelli (3-tier) è estendibile a n livelli, con una serie di intermediari che permettono di scalare e distribuire il carico del sistema.

Ottimizzazione tramite Architetture Multi-Tier

  • Un'architettura multi-tier tipica (ad esempio, 4-tier) prevede la divisione dei compiti tra diverse unità.
  • Gli agenti web vicini al client gestiscono la presentazione dei dati, mentre altri agenti si occupano della logica applicativa, posizionandosi tra il client e il server.
  • L'agente più vicino al server contiene i dati e gestisce le funzioni principali, mentre un altro agente, più vicino al client, si occupa di presentarli.
  • La distribuzione dei compiti tra gli agenti aumenta le prestazioni e migliora l'efficienza dello scambio e della trasmissione dei dati.

Distribuzione Geografica e Content Delivery Network (CDN)

  • Quando il client è distante dai server (es. client in Italia e server negli Stati Uniti), si può utilizzare una Content Delivery Network (CDN).
  • La CDN distribuisce i server in diverse aree geografiche, istruite tramite DNS affinché il client sia indirizzato al server più vicino.
  • Questo riduce la latenza e aumenta l'efficienza della comunicazione.
  • Le CDN possono anche essere configurate per personalizzare i contenuti per il client, come la localizzazione della lingua delle pagine.

Content Delivery Network (CDN)

  • Le CDN sono reti di server distribuiti geograficamente che collaborano per fornire contenuti agli utenti in modo rapido ed efficiente.

  • I server CDN, noti come edge server, sono posizionati strategicamente in diverse località per avvicinare fisicamente i contenuti agli utenti finali, riducendo così la latenza e migliorando le prestazioni del sito web.

  • Quando un utente richiede un contenuto da un sito web che utilizza una CDN, la richiesta viene instradata all'edge server più vicino alla posizione geografica dell'utente.

  • Se l'edge server ha già una copia del contenuto in cache, lo fornisce direttamente all'utente. Altrimenti, l'edge server recupera il contenuto dal server di origine, lo memorizza in cache e lo consegna all'utente.

Vantaggi delle CDN

  • Riduzione della latenza: le CDN riducono il tempo necessario per il trasferimento dei dati, migliorando i tempi di caricamento delle pagine.

  • Scalabilità: le CDN gestiscono picchi di traffico distribuendo le richieste su più server, prevenendo sovraccarichi e garantendo la disponibilità del servizio anche durante elevati volumi di accesso.

  • Affidabilità: in caso di guasto di un server, le CDN possono reindirizzare le richieste ad altri server funzionanti, assicurando la continuità del servizio.

  • Sicurezza: molte CDN offrono protezioni integrate contro attacchi DDoS e supportano certificati SSL/TLS, migliorando la sicurezza delle comunicazioni.

Personalizzazione dei contenuti tramite CDN

  • Le CDN possono essere configurate per personalizzare i contenuti in base alla posizione geografica dell'utente. Ad esempio, è possibile fornire pagine web nella lingua locale o adattare offerte e promozioni in base alla regione dell'utente.

  • Questa personalizzazione avviene analizzando l'indirizzo IP dell'utente per determinare la sua posizione e servendo contenuti appropriati dal server più vicino.

Interfacce web-based in applicazioni desktop e mobile

  • Molte applicazioni, sia per desktop che per mobile, integrano funzionalità di browser all'interno dell'applicazione stessa, anche senza utilizzare un browser completo. Questo approccio offre all'utente un'interfaccia web familiare, che però non implica necessariamente l'uso del browser.

  • Diversi app mobili incorporano elementi HTML e JavaScript in componenti web per visualizzare contenuti aggiornati in tempo reale.

Pro e contro dell’interfaccia web

  • I vantaggi dell'utilizzo di browser all'interno delle applicazioni sono legati alla familiarità dell'utente con l'interfaccia web e alla semplicità degli standard HTML, CSS e JavaScript.

  • Gli svantaggi storici, come le prestazioni limitate o la compatibilità tra le versioni, sono oggi perlopiù risolti. La disponibilità di dispositivi con elevate capacità di elaborazione ha reso questo approccio praticabile anche per applicazioni complesse.

Ottimizzazione e prestazioni per applicazioni ad hoc

  • Le applicazioni ad hoc, non vincolate a interfacce web, possono beneficiare di ottimizzazioni più specifiche rimuovendo parti del protocollo HTTP o altri elementi di sovraccarico, sebbene ciò le renda meno flessibili e più difficili da aggiornare.

  • Tali applicazioni risultano ideali in ambienti specifici in cui è richiesta una gestione diretta delle risorse di sistema e delle prestazioni.

Modello peer-to-peer (P2P) e flessibilità

  • Nel modello peer-to-peer, i nodi della rete possono agire sia come client che come server in momenti diversi, permettendo una distribuzione più equa e flessibile del carico di lavoro.

  • I peer possono scambiare risorse tra di loro senza un server centrale, migliorando la scalabilità e la resilienza del sistema.

Sicurezza e problemi del peer-to-peer

  • Le reti P2P presentano particolari problematiche di sicurezza, soprattutto per quanto riguarda la privacy e la protezione dei dati.

  • Ad esempio, nelle reti di file sharing, la condivisione non autorizzata di contenuti protetti da copyright è una violazione comune.

  • È difficile garantire la cancellazione definitiva di un file una volta distribuito su molti peer. Se un nodo è offline, risulta complicato impedire il riemergere della risorsa una volta che il nodo ritorna operativo.

File sharing e computing collaborativo

  • La condivisione di file è uno dei casi d’uso più noti del P2P, con i peer che condividono risorse audio, video e documenti frammentando i file per consentire una distribuzione efficiente tra più nodi.

  • Nel computing collaborativo, invece, un compito complesso viene suddiviso tra i nodi della rete. Un classico esempio è il progetto SETI@home, in cui vari nodi analizzano dati spaziali condivisi.

  • Questo modello permette di sfruttare capacità computazionali su larga scala e può essere visto come un'implementazione parziale del concetto di cloud computing, dove ogni nodo contribuisce alla realizzazione del servizio.

Privacy e controllo nelle reti collaborative

  • Nelle reti P2P aperte, vi sono sfide legate alla protezione dei dati e alla sicurezza delle informazioni. Se i dati sono sensibili, distribuirli su nodi non sicuri potrebbe esporre informazioni riservate a usi non autorizzati.

  • Questo è un problema tipico delle reti aperte. Le reti chiuse o riservate, come quelle per istituzioni scientifiche o di ricerca, mitigano questi rischi regolando l’accesso e il controllo dei dati.

Prestazioni di un server iterativo

  • Il tempo totale per completare una richiesta è dato dalla somma del tempo di elaborazione della CPU, del tempo di accesso al disco e del tempo di trasmissione in rete.
  • Il tempo di elaborazione della CPU dipende dalla frequenza della CPU e dal numero di istruzioni eseguite per ogni richiesta.
  • Il tempo di accesso al disco dipende dal numero di letture dal disco e dal tempo medio di accesso per ogni operazione.
  • Il tempo di trasmissione in rete dipende dalla dimensione della risposta e dalla velocità della scheda di rete.

Ottimizzazione della trasmissione

  • La trasmissione dei dati può essere un collo di bottiglia e può essere ottimizzata utilizzando meccanismi come cache e nodi intermediari.
  • Le schede di rete più veloci possono ridurre i tempi di trasmissione, ma ci sono limiti tecnologici e di controllo (ad esempio, rete gestita da provider esterni).

Compressione dei dati

  • La compressione dei dati può ridurre la quantità di dati trasmessi, ma richiede elaborazione sia sul server che sul client.
  • La scelta di abilitare la compressione dipende dalle capacità di elaborazione del client e del server.

Tecnologie per migliorare l’efficienza di trasmissione

  • L'accesso diretto alla memoria (DMA) può migliorare l’efficienza complessiva del sistema separando la trasmissione dall’elaborazione della CPU.

Server concorrenti

  • Un server concorrente gestisce più richieste contemporaneamente, generando processi figli per ogni richiesta.
  • I server concorrenti offrono latenza inferiore per ogni client rispetto ai server iterativi, ma hanno maggiore complessità nella programmazione e overhead dovuto alla creazione dei processi figli.
  • Le risorse del server (CPU, memoria) impongono un limite superiore al numero di processi gestibili simultaneamente.

Calcolo delle prestazioni di un server concorrente

  • Il tempo totale per l’elaborazione di una richiesta include il tempo di creazione del processo figlio e il tempo di elaborazione della risposta.
  • Il throughput di un server concorrente dipende dal numero di unità di elaborazione (ad esempio, core) e dal tempo totale per l’elaborazione di una richiesta.

Latenza e gestione delle code

  • La latenza percepita da un client può aumentare se il numero di richieste simultanee supera il numero di unità di elaborazione.
  • Le richieste in eccesso vengono messe in coda e la latenza dipende dal tempo di elaborazione della risposta, dal tempo di creazione del processo figlio e dal numero di client in attesa.

Gestione delle risorse nei server concorrenti

  • I server concorrenti possono allocare diverse richieste a differenti core di una CPU, offrendo un’elaborazione parallela e migliorando le prestazioni rispetto ai server iterativi.
  • Esiste sempre un limite fisico al numero di client che possono essere serviti simultaneamente, dovuto al numero di unità di elaborazione disponibili.

Carico e latenza nei server concorrenti

  • I server iterativi hanno una latenza proporzionale al numero di richieste, mentre i server concorrenti possono gestire contemporaneamente più richieste, riducendo la latenza media.
  • Un server concorrente con tre unità di elaborazione può ridurre la latenza di un terzo rispetto a un server iterativo con lo stesso carico.

Esempio del calcolo del throughput massimo

  • Il throughput massimo di un server concorrente dipende da fattori come la CPU, il disco e la scheda di rete.
  • In un server con due CPU da 1 GHz, un disco da 250 GB con tempo di accesso di 20 ms e una scheda di rete da 100 Mbps, il tempo di accesso al disco è il principale collo di bottiglia, determinando il throughput massimo.
  • Il tempo di calcolo per singola richiesta, il tempo di accesso al disco e il tempo di trasmissione influenzano il throughput complessivo.

Ottimizzazione delle prestazioni

  • Le prestazioni dei server possono essere migliorate sfruttando il parallelismo delle CPU, la cache e il buffer.
  • La cache memorizza temporaneamente i dati frequentemente richiesti, riducendo il tempo di accesso al disco.
  • La deframmentazione dei dati sul disco permette di disporre i dati contigui in aree vicine, migliorando il tempo di accesso, soprattutto sui dischi magnetici.
  • Gli SSD (dischi a stato solido) non necessitano di deframmentazione poiché l'accesso ai dati è diretto e veloce.

RAID per migliorare la velocità e la robustezza

  • Il RAID (Redundant Array of Independent Disks) permette di migliorare le prestazioni e la robustezza dei dati usando più dischi.
  • Il RAID aumenta la velocità grazie al parallelismo tra i dischi, consentendo di accedere a più dati contemporaneamente.
  • Alcuni tipi di RAID, come RAID 1, duplicano i dati su più dischi per aumentare la robustezza, prevenendo la perdita di informazioni in caso di guasto di un disco.

Robustezza e rilevamento degli errori

  • I codici di rilevamento errori (error detecting code) individuano errori senza correggerli, segnalando la necessità diritrasmettere o ricalcolare il dato.
  • I codici di correzione errori (error correcting code) possono individuare e correggere alcuni errori, richiedendo più bit aggiuntivi rispetto ai codici di solo rilevamento.

Codici di correzione degli errori (ECC)

  • CodeSecDent è un esempio di ECC che aggiunge bit di controllo sia in riga che in colonna per rilevare e localizzare errori.
  • Questo codice permette di correggere un errore singolo (single error correction) e rilevare errori doppi (double error detection -SEC-DED).

Utilizzo di RAID per migliorare velocità e robustezza

  • RAID 0 distribuisce i dati su più dischi, aumentando la velocità ma senza migliorare la robustezza.
  • RAID 1 duplica i dati su due dischi (mirroring) per migliorare la robustezza senza aumentare la velocità.
  • RAID 3 utilizza un disco aggiuntivo per la memorizzazione dei codici di correzione, utile quando si hanno più di due dischi.
  • RAID 5 e RAID 6 distribuiscono i codici di correzione su tutti i dischi, migliorando la velocità e la robustezza.

Ottimizzazione dei server concorrenti

  • La pregenerazione dei figli all'avvio dei server concorrenti riduce la latenza complessiva, rendendo immediata la risposta al client.
  • Questo metodo introduce complessità di sincronizzazione tra i processi, ma mantiene i vantaggi in termini di riduzione delle latenza rispetto ai server iterativi.

Approcci misti nella gestione dei processi figli

  • È possibile combinare metodi diversi per gestire i processi figli.
  • Un approccio comune è pre-generare un pool di processi figli, che vengono poi utilizzati quando necessario.
  • Quando il pool si esaurisce, si possono generare nuovi figli su richiesta.
  • Un'altra opzione è quella di impostare un numero massimo di figli, con le richieste aggiuntive che vengono messe in coda.
  • La pre-generazione dei figli può velocizzare l'attivazione rispetto alla generazione dinamica.
  • Il throughput in caso di generazione dinamica con probabilità g è calcolato come: Throughput = (1 - g) * T_attivazione + g * T_generazione, con T_attivazione il tempo di attivazione per i figli pre-generati e T_generazione il tempo di generazione per i figli nuovi.

Modalità di elaborazione nei server concorrenti: processi vs. thread

  • I processi figli possono essere creati come processi o thread.
  • I processi sono entità indipendenti con risorse di sistema e memoria isolate.
  • La comunicazione tra processi è relativamente lenta ma sicura.
  • I thread sono parti di un processo e condividono la memoria, garantendo comunicazione rapida.
  • La condivisione della memoria tra thread può portare a instabilità, poiché un thread può influenzare gli altri.

Esercizi sui tronchi di rete e calcolo del throughput

  • Per calcolare il throughput in scenari di rete complessi, si devono considerare i diversi tronchi di rete e la loro capacità.
  • Il throughput complessivo è limitato dalla velocità del tronco più lento (“collo di bottiglia”).

Posta elettronica e protocolli di rete

  • La posta elettronica, come altre applicazioni di rete, utilizza protocolli applicativi, come SMTP per l'invio di email.
  • La posta elettronica si basa anche su diversi livelli di protocollo di rete:
    • Livello di trasporto (es: TCP)
    • Routing IP
    • Livello fisico (es: segnali elettromagnetici per wireless, trasmissione ottica per fibra)
  • Gli indirizzi logici sono essenziali per la trasmissione.
  • In HTTP, l'indirizzo logico è un nome DNS, ad esempio www.polito.it.
  • Per l'email, l'indirizzo logico è l'indirizzo email stessa, con la struttura utente@dominio.

Formati e protocolli di posta elettronica

  • La posta elettronica su Internet si basa su un sistema di gestione dei messaggi (Message Handling System o MHS).
  • Gli indirizzi email sono identificatori univoci per gli utenti.
  • SMTP è il protocollo principale per la trasmissione dei messaggi.
  • POP3 e IMAP vengono utilizzati per il download dei messaggi.

Sicurezza e formati dell'email

  • Per garantire la sicurezza, vengono utilizzati protocolli come SMTP_AUTH per l'autenticazione del client.
  • SPF, DKIM e DMARC prevengono spam e phishing, verificando la legittimità del messaggio.
  • I messaggi di posta vengono codificati in formato Internet Message Format (testo) o MIME (dati non testuali, come audio o video).

Struttura degli indirizzi email

  • Il formato base degli indirizzi email è utente@dominio.
  • Oltre al formato base, è possibile aggiungere un commento o un alias:
  • La formattazione degli indirizzi email aumenta la leggibilità e facilita l'individuazione del ruolo di un determinato indirizzo.

Carico e Latenza nei Server Concorrenti

  • I server concorrenti offrono una latenza inferiore rispetto ai server iterativi, poiché possono elaborare richieste in parallelo.
  • Con un server iterativo, la latenza è proporzionale al numero di richieste.
  • In un server concorrente, la latenza è ridotta in base al numero di unità di elaborazione disponibili.

Esempio di Calcolo del Throughput Massimo

  • Il throughput massimo di un server concorrente è limitato dal collo di bottiglia, ovvero il componente più lento del sistema.
  • In questo esempio, il tempo di accesso al disco è il principale collo di bottiglia, poiché richiede molto più tempo rispetto al tempo di calcolo o alla trasmissione.
  • La cache e il buffer locale possono migliorare le prestazioni del server, riducendo il tempo di accesso al disco.

Ottimizzazione tramite Cache e Buffer Locali

  • Gli accessi alla memoria cache sono molto più veloci rispetto agli accessi al disco.
  • La cache contiene dati frequentemente richiesti, riducendo il numero di accessi al disco.
  • La deframmentazione può migliorare le prestazioni, organizzando i dati in modo contiguo, ottimizzando il tempo di accesso in sistemi con dischi magnetici.

Differenze tra Dischi HDD e SSD

  • Gli SSD non hanno testine di lettura, quindi il concetto di deframmentazione è meno rilevante.
  • Gli SSD offrono tempi di accesso molto inferiori rispetto agli HDD, grazie alla possibilità di accedere direttamente a qualsiasi parte della memoria.

RAID per migliorare velocità e robustezza

  • Il RAID è una tecnologia che combina più dischi in parallelo per migliorare le prestazioni e la robustezza dei dati.
  • Il RAID aumenta la velocità consentendo di accedere a più dati contemporaneamente.
  • Il RAID aumenta la robustezza duplicando i dati su dischi diversi, proteggendo i dati dai guasti di un disco.

Robustezza e rilevamento degli errori

  • Per garantire la robustezza nelle trasmissioni di dati, vengono utilizzati codici di rilevamento errori e codici di correzione errori.
  • I codici di rilevamento errori rilevano la presenza di errori durante la trasmissione ma non li correggono.
  • I codici di correzione errori (ECC) sono più complessi e consentono di individuare e correggere determinati errori.
  • Un esempio di codice di rilevamento errori è il bit di parità, che viene utilizzato per controllare la parità di zeri nei dati trasmessi.

Codici di correzione degli errori (ECC)

  • Un esempio semplice di ECC è il codice SecDent, che aggiunge bit di controllo in righe e colonne per rilevare e localizzare errori.
  • Il codice SecDent può correggere un singolo errore e rilevare errori doppi (single error correction, double error detection - SEC-DED).

Errori multipli e limiti dei codici

  • I codici di rilevamento errori potrebbero non essere in grado di individuare errori che coinvolgono più di un bit.

Utilizzo del RAID per migliorare velocità e robustezza

  • I sistemi RAID (Redundant Array of Independent Disks) offrono soluzioni per aumentare la velocità di accesso ai dati e la robustezza.
  • RAID 0 distribuisce i dati su più dischi, migliorando la velocità ma non la robustezza (nessuna ridondanza).
  • RAID 1 duplica i dati su due dischi (mirroring), migliorando la robustezza senza aumentare la velocità.
  • RAID 3 utilizza un disco aggiuntivo per memorizzare codici di correzione, utile quando si hanno più di due dischi.
  • RAID 5 e RAID 6 distribuiscono codici di correzione su tutti i dischi, migliorando velocità e robustezza. RAID 6 permette la duplicazione dei codici per proteggersi da errori su blocchi interi.
  • Combinazioni di standard, come RAID 0+1 o RAID 1+0, offrono vantaggi in termini di velocità e robustezza.

Ottimizzazione dei server concorrenti

  • Per minimizzare il tempo di creazione dei processi figlio in un server concorrente, è possibile pregenerare i figli all'avvio, tenendoli in stato di idle fino a quando sono necessari.
  • Questo metodo riduce la latenza complessiva, rendendo immediata la risposta al client.
  • Questo approccio richiede una gestione attenta dei figli generati e introduce complessità di sincronizzazione tra i processi, mantenendo comunque i vantaggi in termini di riduzione della latenza rispetto ai server iterativi.

Approccio misto nella gestione dei processi figli

  • Si possono usare soluzioni miste per la generazione dei processi figli.
  • Un approccio è pre-generare un pool di processi figli e generare altri solo in caso di necessità.
  • Un altro approccio è fissare un numero massimo di figli, mettendo in coda le richieste aggiuntive.
  • Il tempo di attivazione dei figli pre-generati sostituisce il tempo di generazione.
  • La probabilità di generazione dinamica di nuovi figli (g) influenza il calcolo del throughput:
    • Throughput = (1 - g) x Tempo di attivazione + g x Tempo di generazione

Modalità di elaborazione nei server concorrenti: processi vs. thread

  • I figli possono essere creati come processi o thread.
  • I processi sono indipendenti, con memoria e strutture di sistema isolate.
    • La loro comunicazione è più lenta ma più sicura.
  • I thread sono parti di un processo e condividono risorse di memoria e spazio di indirizzamento.
    • La loro comunicazione è più rapida, ma la condivisione può portare a instabilità.

Esercizi sui tronchi di rete e calcolo del throughput

  • Per calcolare il throughput in scenari di rete complessi, bisogna identificare il tronco con velocità minima (collo di bottiglia).
  • Esempio: un laboratorio con una rete di 54 Mbps per gli studenti e una connessione backbone a 100 Mbps verso il server.

Posta elettronica e protocolli di rete

  • La posta elettronica richiede un protocollo applicativo (es. SMTP) e connessioni di rete su vari livelli di protocollo:
    • Livello di trasporto (es. TCP)
    • Routing IP
    • Livello fisico (es. segnali elettromagnetici per wireless o trasmissione ottica per fibra)
  • La necessità di indirizzi logici è cruciale.
    • Per HTTP, l'indirizzo logico è un nome DNS (es. www.polito.it).
    • Per l'email, l'identificativo è l'indirizzo, con la struttura utente@dominio.

Formati e protocolli di posta elettronica

  • La posta elettronica su internet (posta elettronica TCP/IP) si basa su un sistema di gestione dei messaggi (Message Handling System o MHS).
  • Comprende:
    • Indirizzi email come identificatori univoci
    • SMTP come protocollo principale per la trasmissione
    • POP3 e IMAP per il download della posta

Sicurezza e formati dell'email

  • Protocolli per la sicurezza:
    • SMTP-AUTH per l'autenticazione del client
    • SPF, DKIM e DMARC per prevenire spam e phishing
  • Il formato dei messaggi di posta è:
    • Internet Message Format (per il testo)
    • MIME (per dati non testuali, come file audio o video)

Struttura degli indirizzi email

  • Formato base: utente@dominio
  • Opzioni di formattazione:

Client di posta e problemi di visualizzazione

  • I client di posta elettronica possono causare problemi di visualizzazione che possono essere sfruttati per l'ingegneria sociale.
  • Un esempio è la visualizzazione parziale di commenti con indirizzi email nascosti, che potrebbero indurre l'utente a rispondere a messaggi malevoli.

Struttura della posta elettronica e RFC 822

  • La struttura della posta elettronica, secondo la RFC 822, è costituita da diversi agenti:
    • Message User Agent (MUA): Il client di posta, come Thunderbird o Outlook.
    • Message Submission Agent (MSA): Il primo nodo che inoltra la mail all'infrastruttura di posta.
    • Message Transfer Agent (MTA): I nodi che smistano la posta, simili ai router per i pacchetti IP.
    • Message Store (MS): Il server dove le email vengono conservate per il destinatario.

Schema di invio e ricezione di una mail

  • Il client di posta (MUA) si connette all'MSA tramite SMTP, che inoltra il messaggio agli MTA.
  • Il messaggio viene poi inoltrato tramite SMTP attraverso diversi MTA fino all'MTA destinatario.
  • L'MTA destinatario (a volte chiamato Message Delivery Agent - MDA) consegna il messaggio al Message Store del destinatario.
  • L'utente recupera il messaggio dal Message Store tramite il proprio client di posta (MUA) utilizzando protocolli come POP3 o IMAP.

Protocolli e porte standard per la posta elettronica

  • I protocolli comuni per la posta elettronica sono SMTP, POP3 e IMAP.
  • Le porte standard per questi protocolli sono:
    • SMTP: 25 (per MTA) e 587 (per MSA)
    • POP3: 110
    • IMAP: 143
  • Questi protocolli si basano su TCP, che garantisce l'integrità dei dati poiché la latenza non è un problema critico per le email.

Formato e codifica dei messaggi di posta elettronica

  • Il formato originale dell'RFC 822 si basa su testo a 7 bit, limitato a dati di testo.
  • MIME consente l'invio di dati binari, come audio e video, superando la limitazione del testo a 7 bit.
  • Un messaggio di posta elettronica è diviso in due parti:
    • Header: Contiene meta-informazioni, come mittente, destinatario e oggetto.
    • Body: Contiene il contenuto effettivo del messaggio.

Esempi di campi dell'header

  • From: Il mittente logico dell'email, come ad esempio [email protected].
  • Sender: Il mittente operativo, il nodo che ha effettivamente inviato il messaggio.
  • Return-Receipt-To: Richiesta di una notifica di avvenuta consegna.
  • DSN (Delivery Status Notification): Indica solo l'avvenuta consegna nel Message Store.
  • MDN (Message Disposition Notification): Notifica di lettura, opzionale e a discrezione del destinatario.

Affidabilità dei campi dell'header e infrastruttura MTA

  • Gli strumenti di posta elettronica, come i client di posta elettronica, richiedono un utilizzo consapevole delle informazioni disponibili negli header delle email.
  • Gli header delle email contengono diversi "campi" RFC che forniscono informazioni utili per comprendere il percorso e la storia del messaggio.
  • Esistono anche campi specifici in base al sistema di trasmissione.
  • L'infrastruttura MTA (Mail Transfer Agent) è fondamentale per l'invio e la ricezione globale delle email.
  • Gli MTA funzionano in modo simile ai router per i pacchetti IP, gestendo e indirizzando messaggi attraverso diversi domini.
  • MTA migliorano l'affidabilità ed efficienza del traffico email.
  • In passato, esistevano diversi sistemi di posta elettronica con formati e protocolli differenti.
  • Gli MTA hanno funzionato anche come gateway, traducendo i diversi formati per consentire la comunicazione tra sistemi diversi.

Tracciamento degli MTA e campi 'Received'

  • È possibile tracciare il percorso di un messaggio email attraverso diversi MTA analizzando i campi "Received" nell'header.
  • Ogni MTA aggiunge un proprio campo "Received" con informazioni come il server, la data e l'ora di ricezione del messaggio.
  • I campi "Received" sono elencati in ordine inverso, quindi il primo MTA che ha ricevuto il messaggio è in fondo e l'ultimo è in cima.
  • Questi campi forniscono informazioni dettagliate sul percorso dell'email e sui diversi MTA che ha attraversato.

Contenuto binario e trasmissione dei dati

  • L'RFC 822, lo standard che definisce il formato delle email, è progettato per il testo.
  • Per trasmettere dati binari (come immagini o file eseguibili) è necessaria una specifica codifica.
  • I file binari possono essere codificati per evitare errori durante la trasmissione.
  • In Linux, il comando uuencode può convertire i file binari in un formato di testo trasmissibile.
  • Ad esempio: uuencode inputfile.gif outputfile.txt converte il file inputfile.gif in un file di testo chiamato outputfile.txt.

Codifica MIME per i file binari

  • La codifica MIME (Multipurpose Internet Mail Extensions) consente di trasmettere file binari tramite email.
  • MIME supera le limitazioni dei caratteri a 7 bit che erano presenti nei sistemi di posta elettronica tradizionali.
  • MIME specifica sia il tipo di contenuto che la sua codifica:
    • Content-Type: definisce il tipo di contenuto (text, audio, image, application, ecc.) e il sottotipo (html, mp3, gif, ecc.). Ad esempio:
      • Content-Type: text/html
      • Content-Type: audio/mp3
    • Content-Disposition: indica come deve essere utilizzato l'allegato (ad esempio, inline o come attachment).
    • Content-Transfer-Encoding: specifica la codifica utilizzata per trasmettere dati binari in modo affidabile.

Esempi di codifica per dati binari

  • Base64: Mappa ogni 6 bit di dati su un carattere stampabile ASCII, incrementando le dimensioni del messaggio del 33%.

    • echo "testo da codificare" | base64 è un comando per codificare testo in base64 in Linux.
    • Esempio di conversione:
      • Testo originale: "C'è"
      • Codifica Base64: "QyY="
  • Quoted-Printable: Codifica solo i caratteri necessari tramite uguale (=) seguito dal codice esadecimale del carattere.

    • Esempio:
      • Testo originale: "C'è"
      • Codifica Quoted-Printable: C=E8

Codifiche MIME: Base64 e Quoted-Printable

  • La scelta tra Base64 e Quoted-Printable dipende dal tipo di contenuto e dalla leggibilità richiesta.
  • Base64 è ideale per contenuti binari o testualmente complessi, garantendo una codifica costante con un sovraccarico del 33%.
  • Quoted-Printable è perfetto per contenuti leggibili, mantenendo la maggior parte del testo originale. È preferibile quando pochi caratteri richiedono codifica, riducendo il sovraccarico rispetto a Base64, fino al 10% o meno con caratteri speciali rari.

MIME: Codifica Selettiva di Header e Body

  • MIME permette la codifica di sezioni specifiche del messaggio, sia nell'header che nel body.
  • Ad esempio, l'header può avere un charset come ISO-8859-1 o UTF-8 con codifica Quoted-Printable, mantenendo leggibilità e conformità al charset.

MIME: Supporto Multi-Parte

  • MIME consente di includere più parti (multipart) in un singolo messaggio con vari content-type, permettendo di includere sezioni di diversi formati (testo, allegati, immagini).
  • Ogni parte è separata da un delimitatore chiamato "boundary".
  • Un esempio include sia testo che un file zip, con ogni sezione delimitata dal boundary.

Messaggi con Tipi di Contenuto Alternativi

  • MIME supporta formati alternativi in una stessa email, permettendo diverse rappresentazioni dello stesso contenuto, come testo o HTML.
  • Il client di posta seleziona la versione da visualizzare in base alle preferenze dell'utente o alle capacità del client.

SMTP e Trasmissione Email

  • SMTP (Simple Mail Transfer Protocol) consente di trasmettere email su TCP, complementando l'RFC 822 per il formato email.
  • SMTP è un protocollo a 7 bit, quindi supporta solo caratteri ASCII base, rendendo MIME fondamentale per la gestione di dati non ASCII.
  • I comandi principali includono:
    • HELO (o EHLO per le estensioni moderne): avvia la connessione SMTP e specifica il nome host del mittente.
    • MAIL FROM: specifica l'indirizzo del mittente e il percorso di ritorno per notifiche di consegna o errori.

SMTP: Codici di Stato e Flusso di Messaggi

  • Reset To identifica il destinatario e il percorso per raggiungerlo.
  • DATA rappresenta il corpo principale del messaggio RFC 822 (mail) e termina con una riga contenente solo un punto seguito da un ritorno a capo.
  • QUIT chiude la connessione SMTP.

Codici di Stato SMTP

  • I server SMTP rispondono ai comandi del mittente con codici di stato a tre cifre.
  • X (prima cifra): rappresenta il macro-stato:
    • 1: Errore di connessione iniziale (es. nome server errato).
    • 2: Comando completato con successo.
    • 3: Azione necessaria, ad esempio autenticazione.
    • 4: Errore temporaneo (es. 422 per casella piena).
    • 5: Errore permanente, impossibile completare l'azione.
  • Y (seconda cifra): rappresenta la tipologia del messaggio:
    • 0: Sintassi.
    • 1: Informazione generale.
    • 2: Problema di connessione
    • 5: Mail system.
  • Z (terza cifra): differenzia messaggi all'interno di una classe.

Risposte Multiriga

  • Le risposte multiriga sono indicate da trattini (-) prima di ogni riga, tranne l'ultima che contiene solo il codice di stato finale senza il trattino.

Limiti SMTP Classici

  • Mailbox (parte a sinistra della chiocciola): massimo 64 caratteri.
  • Domain (parte a destra della chiocciola): massimo 64 caratteri.
  • Percorso completo del messaggio: massimo 256 caratteri.
  • Comando/risposta: massimo 512 caratteri.
  • Testo: massimo 1000 caratteri per riga (consigliato non superare 80).
  • Destinatari: massimo 100 per sessione.
  • Dimensione messaggio: massimo 64 KB (il comando SIZE può variare il limite).

Connessione SMTP: Esempio di Flusso

  • HELO: avvia la connessione; risposta 250 indica successo.
  • MAIL FROM: specifica il mittente; 250 OK, autorizzato.
  • RCPT TO: specifica il destinatario; 250 OK, destinatario trovato.
  • DATA: avvia l'inserimento del contenuto del messaggio, terminato da . su una riga.
  • QUIT: chiusura della connessione, con risposta 221.

Estensioni SMTP

  • EHLO: comando iniziale per usare le estensioni.
  • SIZE: indica la dimensione massima supportata per i messaggi.
  • Pipeline: permette l'invio di comandi in sequenza.
  • Delivery Status Notification (DSN): estende i comandi per notifiche sullo stato di consegna.
  • 8BITMIME: supporto per la trasmissione di dati a 8 bit (es. contenuti binari).

SMTP Moderno

  • Il protocollo SMTP moderno, descritto nell'RFC 5321, mantiene la compatibilità con il protocollo originale, aggiungendo comandi per supportare nuove funzionalità e migliorare l'efficienza della comunicazione email.

SMTP Esteso

  • L'SMTP esteso supporta messaggi di dimensioni maggiori e la codifica a 8 bit.
  • Il comando EHLO può essere utilizzato per testare se un server supporta l'SMTP esteso.
  • Se un server non supporta l'SMTP esteso, potrebbero verificarsi errori durante l'invio di email.

Autenticazione SMTP

  • L'SMTP esteso definisce il comando AUTH per l'autenticazione degli utenti.
  • L'autenticazione può essere eseguita utilizzando metodi come LOGIN, CRAM-MD5, DIGEST-MD5 e PLAIN.
  • I metodi PLAIN e LOGIN non sono sicuri perché trasmettono le credenziali in chiaro.

 POP3

  • Il POP3 (Post Office Protocol v3) consente ai client di scaricare le email dal server per la visualizzazione locale.
  • I comandi obbligatori del POP3 includono QUIT, STAT, LIST, RETR e DELE.
  • Il POP3 è un protocollo semplice che supporta solo le operazioni di base.

IMAP

  • L'IMAP (Internet Message Access Protocol v4) consente ai client di gestire le email direttamente sul server.
  • La porta di default per IMAP è 143.
  • I vantaggi di IMAP includono l'accesso simultaneo da più dispositivi, la possibilità di organizzare le email in cartelle sul server, l'accesso parziale ai messaggi e le operazioni lato server per la ricerca e il filtro.
  • IMAP consente di mantenere le email sul server, permettendo l'accesso da più dispositivi senza dover riscaricare o duplicare le email.

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Description

Scopri i principi fondamentali del modello client-server e dei web services. Questo quiz esplora le interazioni tra client e server, l'architettura peer-to-peer e gli standard di messaggistica come XML e JSON. Metti alla prova le tue conoscenze riguardo a come le applicazioni comunicano su una rete.

More Like This

Use Quizgecko on...
Browser
Browser