Podcast
Questions and Answers
Quali sono le tre componenti principali delle architetture distribuite?
Quali sono le tre componenti principali delle architetture distribuite?
Interfaccia utente, logica applicativa e dati.
Cosa distingue un client grasso da un client magro?
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?
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?
Come contribuisce l'agente al bilanciamento del carico?
Signup and view all the answers
In che modo l'agente facilita la compatibilità con i sistemi legacy?
In che modo l'agente facilita la compatibilità con i sistemi legacy?
Signup and view all the answers
Qual è un vantaggio della computazione parallela nel contesto delle architetture distribuite?
Qual è un vantaggio della computazione parallela nel contesto delle architetture distribuite?
Signup and view all the answers
Quale ruolo gioca l'agente nel miglioramento delle prestazioni nell'architettura a tre livelli?
Quale ruolo gioca l'agente nel miglioramento delle prestazioni nell'architettura a tre livelli?
Signup and view all the answers
Che cosa si intende per 'logica applicativa' in un'architettura distribuita?
Che cosa si intende per 'logica applicativa' in un'architettura distribuita?
Signup and view all the answers
Qual è l'importanza della separazione delle componenti nelle architetture distribuite?
Qual è l'importanza della separazione delle componenti nelle architetture distribuite?
Signup and view all the answers
Nell'architettura a tre livelli, quale componente si colloca tra client e server?
Nell'architettura a tre livelli, quale componente si colloca tra client e server?
Signup and view all the answers
Qual è la principale differenza tra il modello client-server e l'architettura peer-to-peer?
Qual è la principale differenza tra il modello client-server e l'architettura peer-to-peer?
Signup and view all the answers
Cosa sono i web services e quale ruolo svolgono nella comunicazione tra applicazioni?
Cosa sono i web services e quale ruolo svolgono nella comunicazione tra applicazioni?
Signup and view all the answers
Quali sono alcuni degli intermediari che possono trovarsi nel modello client-server?
Quali sono alcuni degli intermediari che possono trovarsi nel modello client-server?
Signup and view all the answers
Qual è uno dei principali limiti del modello client-server quando il server riceve molte richieste contemporaneamente?
Qual è uno dei principali limiti del modello client-server quando il server riceve molte richieste contemporaneamente?
Signup and view all the answers
Qual è la funzione principale del Network File System (NFS)?
Qual è la funzione principale del Network File System (NFS)?
Signup and view all the answers
In quale contesto è più adeguata l'architettura two-tier e perché?
In quale contesto è più adeguata l'architettura two-tier e perché?
Signup and view all the answers
Quali protocolli vengono comunemente utilizzati dal Network File System per la comunicazione?
Quali protocolli vengono comunemente utilizzati dal Network File System per la comunicazione?
Signup and view all the answers
Perché gli intermediari come i proxy server sono importanti nel modello client-server?
Perché gli intermediari come i proxy server sono importanti nel modello client-server?
Signup and view all the answers
Quale problema comune può presentarsi nell'architettura client-server quando il numero di client aumenta?
Quale problema comune può presentarsi nell'architettura client-server quando il numero di client aumenta?
Signup and view all the answers
Cosa implica il termine 'asimmetrico' nel contesto del modello client-server?
Cosa implica il termine 'asimmetrico' nel contesto del modello client-server?
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?
In che modo un agente può ottimizzare la gestione delle richieste simultanee in un sistema come didattica.polito.it?
Signup and view all the answers
Qual è il ruolo di un agente nel processo di aggregazione delle informazioni da diversi servizi esterni?
Qual è il ruolo di un agente nel processo di aggregazione delle informazioni da diversi servizi esterni?
Signup and view all the answers
Come è cambiato il paradigma delle interfacce utente con l'evoluzione verso il web?
Come è cambiato il paradigma delle interfacce utente con l'evoluzione verso il web?
Signup and view all the answers
Qual è il beneficio di avere un server web come agente in un'architettura client-server moderna?
Qual è il beneficio di avere un server web come agente in un'architettura client-server moderna?
Signup and view all the answers
In che modo il paradigma del cloud computing ha influenzato lo sviluppo delle applicazioni web?
In che modo il paradigma del cloud computing ha influenzato lo sviluppo delle applicazioni web?
Signup and view all the answers
Che funzione svolge un agente come broker nell'accesso alle informazioni per l'utente?
Che funzione svolge un agente come broker nell'accesso alle informazioni per l'utente?
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?
Qual è un esempio pratico di come un agente possa migliorare l'esperienza dell'utente in un sistema di viaggio online?
Signup and view all the answers
In che modo il browser è diventato quasi un sistema operativo autonomo grazie alle applicazioni web?
In che modo il browser è diventato quasi un sistema operativo autonomo grazie alle applicazioni web?
Signup and view all the answers
Quale vantaggio può derivare dall'uso di server farm nell'ambito della gestione delle richieste?
Quale vantaggio può derivare dall'uso di server farm nell'ambito della gestione delle richieste?
Signup and view all the answers
Cosa implica avere un server applicativo in un'architettura client-server moderna?
Cosa implica avere un server applicativo in un'architettura client-server moderna?
Signup and view all the answers
Qual è il vantaggio principale di utilizzare un'architettura multi-tier rispetto a un'architettura a tre livelli?
Qual è il vantaggio principale di utilizzare un'architettura multi-tier rispetto a un'architettura a tre livelli?
Signup and view all the answers
In che modo una Content Delivery Network (CDN) influisce sulla latenza nella comunicazione client-server?
In che modo una Content Delivery Network (CDN) influisce sulla latenza nella comunicazione client-server?
Signup and view all the answers
Qual è il ruolo del codice JavaScript in un'architettura multi-tier?
Qual è il ruolo del codice JavaScript in un'architettura multi-tier?
Signup and view all the answers
Quale funzione dovrebbero svolgere gli agenti più vicini al server in un'architettura multi-tier?
Quale funzione dovrebbero svolgere gli agenti più vicini al server in un'architettura multi-tier?
Signup and view all the answers
Come può la distribuzione geografica dei server influenzare l'efficienza della comunicazione?
Come può la distribuzione geografica dei server influenzare l'efficienza della comunicazione?
Signup and view all the answers
Quali sono le implicazioni della personalizzazione dei contenuti tramite le CDN?
Quali sono le implicazioni della personalizzazione dei contenuti tramite le CDN?
Signup and view all the answers
Come la separazione tra logica applicativa e presentazione dei dati migliora le prestazioni del sistema?
Come la separazione tra logica applicativa e presentazione dei dati migliora le prestazioni del sistema?
Signup and view all the answers
Qual è l'importanza della scalabilità nelle architetture multi-tier?
Qual è l'importanza della scalabilità nelle architetture multi-tier?
Signup and view all the answers
Cosa rende un agente di presentazione così importante in un'architettura multi-tier?
Cosa rende un agente di presentazione così importante in un'architettura multi-tier?
Signup and view all the answers
In che modo le architetture multi-tier permettono un miglioramento dell'efficienza nello scambio dei dati?
In che modo le architetture multi-tier permettono un miglioramento dell'efficienza nello scambio dei dati?
Signup and view all the answers
Qual è la funzione principale di un edge server in una CDN?
Qual è la funzione principale di un edge server in una CDN?
Signup and view all the answers
Come una CDN contribuisce a migliorare l'affidabilità di un servizio web?
Come una CDN contribuisce a migliorare l'affidabilità di un servizio web?
Signup and view all the answers
Quale vantaggio offrono le CDN durante i picchi di traffico?
Quale vantaggio offrono le CDN durante i picchi di traffico?
Signup and view all the answers
In che modo le CDN possono personalizzare i contenuti per gli utenti?
In che modo le CDN possono personalizzare i contenuti per gli utenti?
Signup and view all the answers
Perché la riduzione della latenza è importante per una migliore esperienza utente?
Perché la riduzione della latenza è importante per una migliore esperienza utente?
Signup and view all the answers
Quali misure di sicurezza spesso forniscono le CDN?
Quali misure di sicurezza spesso forniscono le CDN?
Signup and view all the answers
Che ruolo giocano le CDN nell'ottimizzazione della distribuzione dei contenuti?
Che ruolo giocano le CDN nell'ottimizzazione della distribuzione dei contenuti?
Signup and view all the answers
Come una CDN può migliorare il tempo di risposta di un sito web?
Come una CDN può migliorare il tempo di risposta di un sito web?
Signup and view all the answers
Perché è significativa la capacità di cache in una CDN?
Perché è significativa la capacità di cache in una CDN?
Signup and view all the answers
Qual è l'effetto della distribuzione geografica dei server in una CDN?
Qual è l'effetto della distribuzione geografica dei server in una CDN?
Signup and view all the answers
Qual è un vantaggio significativo dell'utilizzo di interfacce web basate su HTML, CSS e JavaScript nelle applicazioni?
Qual è un vantaggio significativo dell'utilizzo di interfacce web basate su HTML, CSS e JavaScript nelle applicazioni?
Signup and view all the answers
In che modo le applicazioni ad hoc possono migliorare le prestazioni rispetto a quelle basate su interfacce web?
In che modo le applicazioni ad hoc possono migliorare le prestazioni rispetto a quelle basate su interfacce web?
Signup and view all the answers
Quali sono le principali sfide di sicurezza associate alle reti peer-to-peer?
Quali sono le principali sfide di sicurezza associate alle reti peer-to-peer?
Signup and view all the answers
Cosa distingue il modello P2P dal modello client-server rispetto alla distribuzione del carico di lavoro?
Cosa distingue il modello P2P dal modello client-server rispetto alla distribuzione del carico di lavoro?
Signup and view all the answers
Qual è un problema comune riguardo la privacy nelle reti P2P aperte?
Qual è un problema comune riguardo la privacy nelle reti P2P aperte?
Signup and view all the answers
Come il progetto SETI@home rappresenta un esempio di computing collaborativo?
Come il progetto SETI@home rappresenta un esempio di computing collaborativo?
Signup and view all the answers
Qual è l'effetto della disponibilità di dispositivi potenti sull'approccio web-based nelle applicazioni?
Qual è l'effetto della disponibilità di dispositivi potenti sull'approccio web-based nelle applicazioni?
Signup and view all the answers
Perché le applicazioni ad hoc risultano meno flessibili rispetto a quelle basate su interfacce web?
Perché le applicazioni ad hoc risultano meno flessibili rispetto a quelle basate su interfacce web?
Signup and view all the answers
Quali sfide si possono verificare nella gestione delle risorse in un modello P2P?
Quali sfide si possono verificare nella gestione delle risorse in un modello P2P?
Signup and view all the answers
Qual è il rischio associato alla cancellazione di un file in una rete P2P?
Qual è il rischio associato alla cancellazione di un file in una rete P2P?
Signup and view all the answers
Come si calcola il throughput in servizi al minuto a partire dal TPS?
Come si calcola il throughput in servizi al minuto a partire dal TPS?
Signup and view all the answers
Quali sono i vantaggi principali di un server concorrente rispetto a un server iterativo?
Quali sono i vantaggi principali di un server concorrente rispetto a un server iterativo?
Signup and view all the answers
Qual è un limite principale nell'ottimizzazione della velocità di trasmissione dei dati?
Qual è un limite principale nell'ottimizzazione della velocità di trasmissione dei dati?
Signup and view all the answers
Cos'è e come influisce la compressione dei dati su un sistema client-server?
Cos'è e come influisce la compressione dei dati su un sistema client-server?
Signup and view all the answers
Cosa determina la latenza percepita da un client in un sistema di server concorrenti?
Cosa determina la latenza percepita da un client in un sistema di server concorrenti?
Signup and view all the answers
Come può l'uso della memoria diretta (DMA) migliorare l'efficienza di trasmissione?
Come può l'uso della memoria diretta (DMA) migliorare l'efficienza di trasmissione?
Signup and view all the answers
Qual è il significato della formula del throughput TPS in relazione al numero di unità di elaborazione?
Qual è il significato della formula del throughput TPS in relazione al numero di unità di elaborazione?
Signup and view all the answers
Quali fattori devono essere valutati quando si decide di abilitare la compressione dei dati?
Quali fattori devono essere valutati quando si decide di abilitare la compressione dei dati?
Signup and view all the answers
In che modo la creazione di processi figli influisce sulle prestazioni di un server concorrente?
In che modo la creazione di processi figli influisce sulle prestazioni di un server concorrente?
Signup and view all the answers
Qual è la formula per calcolare il tempo totale di elaborazione di una richiesta su un server iterativo?
Qual è la formula per calcolare il tempo totale di elaborazione di una richiesta su un server iterativo?
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?
Come si calcola il tempo di elaborazione della CPU dato il numero di istruzioni e la frequenza della CPU?
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?
Qual è il tempo totale di accesso al disco per una richiesta che comporta 10 letture con un tempo medio di 10 ms per accesso?
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?
Qual è il tempo necessario per la trasmissione in rete di una risposta di 10 Mb con una velocità di 10 Mb/s?
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?
Qual è il tempo totale di elaborazione per una richiesta considerando i tempi di CPU, disco e rete calcolati precedentemente?
Signup and view all the answers
Come si calcola il throughput (TPS) a partire dal tempo totale di elaborazione?
Come si calcola il throughput (TPS) a partire dal tempo totale di elaborazione?
Signup and view all the answers
Qual è l'importanza del calcolo del tempo di elaborazione della CPU in un contesto di prestazioni del server?
Qual è l'importanza del calcolo del tempo di elaborazione della CPU in un contesto di prestazioni del server?
Signup and view all the answers
Perché è rilevante conoscere i tempi di accesso al disco in un server ad alte prestazioni?
Perché è rilevante conoscere i tempi di accesso al disco in un server ad alte prestazioni?
Signup and view all the answers
Qual è l'effetto della latenza di rete sul tempo totale di risposta di un server?
Qual è l'effetto della latenza di rete sul tempo totale di risposta di un server?
Signup and view all the answers
In che modo il throughput può influenzare la progettazione di un server?
In che modo il throughput può influenzare la progettazione di un server?
Signup and view all the answers
Perché la deframmentazione è meno rilevante negli SSD rispetto agli HDD?
Perché la deframmentazione è meno rilevante negli SSD rispetto agli HDD?
Signup and view all the answers
Qual è l'effetto del movimento meccanico delle testine nei dischi HDD?
Qual è l'effetto del movimento meccanico delle testine nei dischi HDD?
Signup and view all the answers
Cosa significa l'acronimo RAID e quali vantaggi principali offre?
Cosa significa l'acronimo RAID e quali vantaggi principali offre?
Signup and view all the answers
Come migliora il parallelismo nei dischi in una configurazione RAID le prestazioni del sistema?
Come migliora il parallelismo nei dischi in una configurazione RAID le prestazioni del sistema?
Signup and view all the answers
In che modo alcune configurazioni RAID aumentano la robustezza dei dati?
In che modo alcune configurazioni RAID aumentano la robustezza dei dati?
Signup and view all the answers
Quali sono le differenze fondamentali tra dischi HDD e SSD riguardo la lettura dei dati?
Quali sono le differenze fondamentali tra dischi HDD e SSD riguardo la lettura dei dati?
Signup and view all the answers
Qual è l'importanza della velocità di accesso nei dischi SSD?
Qual è l'importanza della velocità di accesso nei dischi SSD?
Signup and view all the answers
Perché è fondamentale considerare il tipo di disco quando si progetta un sistema di archiviazione?
Perché è fondamentale considerare il tipo di disco quando si progetta un sistema di archiviazione?
Signup and view all the answers
In che modo la tecnologia SSD offre vantaggi anche con dati frammentati?
In che modo la tecnologia SSD offre vantaggi anche con dati frammentati?
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?
Qual è la differenza nella latenza tra un server iterativo e uno concorrente con sei client e tre unità di elaborazione?
Signup and view all the answers
Qual è il principale collo di bottiglia nella gestione delle richieste secondo il contenuto fornito?
Qual è il principale collo di bottiglia nella gestione delle richieste secondo il contenuto fornito?
Signup and view all the answers
Come può la cache ottimizzare le prestazioni del server?
Come può la cache ottimizzare le prestazioni del server?
Signup and view all the answers
Quali sono i componenti principali da considerare per calcolare il throughput massimo di un server concorrente?
Quali sono i componenti principali da considerare per calcolare il throughput massimo di un server concorrente?
Signup and view all the answers
Qual è il tempo totale di accesso al disco per 100 letture se il tempo di accesso è 20 ms?
Qual è il tempo totale di accesso al disco per 100 letture se il tempo di accesso è 20 ms?
Signup and view all the answers
In che modo avere più unità di elaborazione influisce sulle prestazioni del server?
In che modo avere più unità di elaborazione influisce sulle prestazioni del server?
Signup and view all the answers
Quale dimensione della risposta è considerata nel contesto del calcolo del throughput massimo?
Quale dimensione della risposta è considerata nel contesto del calcolo del throughput massimo?
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?
Qual è il tempo di trasmissione totale se il server ha bisogno di 0,8 s per trasmettere ogni richiesta?
Signup and view all the answers
Come influisce la deframmentazione sull'organizzazione dei dati sul disco?
Come influisce la deframmentazione sull'organizzazione dei dati sul disco?
Signup and view all the answers
Qual è il tempo di calcolo per singola richiesta in un server che utilizza CPU da 1 GHz?
Qual è il tempo di calcolo per singola richiesta in un server che utilizza CPU da 1 GHz?
Signup and view all the answers
Qual è la principale differenza tra RAID 1 e RAID 5?
Qual è la principale differenza tra RAID 1 e RAID 5?
Signup and view all the answers
Perché RAID 6 è considerato più robusto rispetto a RAID 5?
Perché RAID 6 è considerato più robusto rispetto a RAID 5?
Signup and view all the answers
Qual è uno svantaggio di generare i processi figli in uno stato di idle in un server concorrente?
Qual è uno svantaggio di generare i processi figli in uno stato di idle in un server concorrente?
Signup and view all the answers
In che modo RAID 3 migliora l'affidabilità rispetto a configurazioni senza codici di correzione?
In che modo RAID 3 migliora l'affidabilità rispetto a configurazioni senza codici di correzione?
Signup and view all the answers
Quali vantaggi offre una configurazione RAID 0+1?
Quali vantaggi offre una configurazione RAID 0+1?
Signup and view all the answers
Qual è il principale benefit di pre-generare i figli in un server concorrente?
Qual è il principale benefit di pre-generare i figli in un server concorrente?
Signup and view all the answers
Cosa comporta l'uso di RAID 6 in termini di prestazioni rispetto a RAID 5?
Cosa comporta l'uso di RAID 6 in termini di prestazioni rispetto a RAID 5?
Signup and view all the answers
Qual è la principale funzione dei codici di correzione in RAID 5 e RAID 6?
Qual è la principale funzione dei codici di correzione in RAID 5 e RAID 6?
Signup and view all the answers
Quali compromessi devono essere considerati quando si utilizza RAID 1 rispetto a RAID 0?
Quali compromessi devono essere considerati quando si utilizza RAID 1 rispetto a RAID 0?
Signup and view all the answers
Come influisce la latenza sulle prestazioni complessive di un server?
Come influisce la latenza sulle prestazioni complessive di un server?
Signup and view all the answers
Qual è la principale funzione dei codici di rilevamento errori?
Qual è la principale funzione dei codici di rilevamento errori?
Signup and view all the answers
Come funziona il codice di parità nei codici di rilevamento errori?
Come funziona il codice di parità nei codici di rilevamento errori?
Signup and view all the answers
Qual è un esempio di codice di correzione errori e quali vantaggi offre?
Qual è un esempio di codice di correzione errori e quali vantaggi offre?
Signup and view all the answers
Quali limitazioni presenta l'uso di codici di rilevamento errori in caso di errori multipli?
Quali limitazioni presenta l'uso di codici di rilevamento errori in caso di errori multipli?
Signup and view all the answers
Cosa implica l'acronimo SEC-DED nel contesto dei codici di correzione errori?
Cosa implica l'acronimo SEC-DED nel contesto dei codici di correzione errori?
Signup and view all the answers
Come contribuisce il sistema RAID alla robustezza dei dati?
Come contribuisce il sistema RAID alla robustezza dei dati?
Signup and view all the answers
Che cosa distingue RAID 0 da altri livelli RAID?
Che cosa distingue RAID 0 da altri livelli RAID?
Signup and view all the answers
In che modo i codici ECC possono influenzare le trasmissioni di dati?
In che modo i codici ECC possono influenzare le trasmissioni di dati?
Signup and view all the answers
Qual è la differenza principale tra codici di rilevamento e codici di correzione errori?
Qual è la differenza principale tra codici di rilevamento e codici di correzione errori?
Signup and view all the answers
Che ruolo svolge il bit di parità in un byte per il rilevamento errori?
Che ruolo svolge il bit di parità in un byte per il rilevamento errori?
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?
Qual è la differenza principale tra la generazione di processi figli e la creazione di thread in un sistema concorrente?
Signup and view all the answers
Come influisce la probabilità $g$ sulla formula del throughput in un sistema di generazione dinamica di processi figli?
Come influisce la probabilità $g$ sulla formula del throughput in un sistema di generazione dinamica di processi figli?
Signup and view all the answers
Cosa si intende per 'collo di bottiglia' nel contesto del calcolo del throughput in reti?
Cosa si intende per 'collo di bottiglia' nel contesto del calcolo del throughput in reti?
Signup and view all the answers
Quali protocolli sono coinvolti nel funzionamento della posta elettronica e quali ruoli svolgono?
Quali protocolli sono coinvolti nel funzionamento della posta elettronica e quali ruoli svolgono?
Signup and view all the answers
Perché è vantaggioso usare un approccio misto nella gestione dei processi figli?
Perché è vantaggioso usare un approccio misto nella gestione dei processi figli?
Signup and view all the answers
Qual è l'impatto della modalità di elaborazione thread rispetto ai processi nella programmazione concorrente?
Qual è l'impatto della modalità di elaborazione thread rispetto ai processi nella programmazione concorrente?
Signup and view all the answers
In che modo il throughput nel contesto della programmazione concorrente è calcolato?
In che modo il throughput nel contesto della programmazione concorrente è calcolato?
Signup and view all the answers
Che ruolo svolgono i tronchi di connessione nella misura della capacità di rete?
Che ruolo svolgono i tronchi di connessione nella misura della capacità di rete?
Signup and view all the answers
Qual è la principale considerazione da fare quando si abilitano nuovi processi figli in modo dinamico?
Qual è la principale considerazione da fare quando si abilitano nuovi processi figli in modo dinamico?
Signup and view all the answers
Qual è l'effetto dell'isolamento della memoria nei processi sulla sicurezza delle applicazioni?
Qual è l'effetto dell'isolamento della memoria nei processi sulla sicurezza delle applicazioni?
Signup and view all the answers
Qual è l'importanza degli indirizzi email nel sistema di posta elettronica TCP/IP?
Qual è l'importanza degli indirizzi email nel sistema di posta elettronica TCP/IP?
Signup and view all the answers
Cosa rappresenta il protocollo SMTP nella trasmissione della posta elettronica?
Cosa rappresenta il protocollo SMTP nella trasmissione della posta elettronica?
Signup and view all the answers
Qual è la funzione dei protocolli SPF, DKIM e DMARC nel contesto della sicurezza email?
Qual è la funzione dei protocolli SPF, DKIM e DMARC nel contesto della sicurezza email?
Signup and view all the answers
Quali sono le differenze tra POP3 e IMAP nel download della posta?
Quali sono le differenze tra POP3 e IMAP nel download della posta?
Signup and view all the answers
Come si struttura un indirizzo email di base?
Come si struttura un indirizzo email di base?
Signup and view all the answers
In che modo i commenti o alias influenzano la leggibilità degli indirizzi email?
In che modo i commenti o alias influenzano la leggibilità degli indirizzi email?
Signup and view all the answers
Cosa significa Internet Message Format in relazione alla posta elettronica?
Cosa significa Internet Message Format in relazione alla posta elettronica?
Signup and view all the answers
Che ruolo ha SMTP-AUTH nell'autenticazione del client di posta elettronica?
Che ruolo ha SMTP-AUTH nell'autenticazione del client di posta elettronica?
Signup and view all the answers
Qual è la principale funzione di MHS nel contesto della posta elettronica?
Qual è la principale funzione di MHS nel contesto della posta elettronica?
Signup and view all the answers
Perché è importante l'uso di formati come MIME nella trasmissione di dati non testuali?
Perché è importante l'uso di formati come MIME nella trasmissione di dati non testuali?
Signup and view all the answers
Qual è il rischio associato ai client di posta che mostrano solo una parte del messaggio?
Qual è il rischio associato ai client di posta che mostrano solo una parte del messaggio?
Signup and view all the answers
Che ruolo ha l'MUA nel processo di invio di un'email secondo l'RFC 822?
Che ruolo ha l'MUA nel processo di invio di un'email secondo l'RFC 822?
Signup and view all the answers
Qual è la funzione del Message Delivery Agent (MDA) nella ricezione delle email?
Qual è la funzione del Message Delivery Agent (MDA) nella ricezione delle email?
Signup and view all the answers
Perché l'integrità dei dati è cruciale per i protocolli di posta elettronica come SMTP?
Perché l'integrità dei dati è cruciale per i protocolli di posta elettronica come SMTP?
Signup and view all the answers
Qual è un vantaggio dell'estensione MIME rispetto all'RFC 822 originale?
Qual è un vantaggio dell'estensione MIME rispetto all'RFC 822 originale?
Signup and view all the answers
Quali porte vengono utilizzate per il protocollo POP3?
Quali porte vengono utilizzate per il protocollo POP3?
Signup and view all the answers
Come si differenziano l'MSA e l'MTA nel contesto della posta elettronica?
Come si differenziano l'MSA e l'MTA nel contesto della posta elettronica?
Signup and view all the answers
Qual è l'importanza di accedere al Message Store tramite protocolli come POP3 o IMAP?
Qual è l'importanza di accedere al Message Store tramite protocolli come POP3 o IMAP?
Signup and view all the answers
Quale fattore rende problematico per gli utenti rispondere a email con nomi camuffati?
Quale fattore rende problematico per gli utenti rispondere a email con nomi camuffati?
Signup and view all the answers
Quali sono i protocolli standard utilizzati per inviare email dal client al server?
Quali sono i protocolli standard utilizzati per inviare email dal client al server?
Signup and view all the answers
Qual è il ruolo degli MTA nella trasmissione delle email?
Qual è il ruolo degli MTA nella trasmissione delle email?
Signup and view all the answers
Come si può rintracciare il percorso di un'email attraverso gli MTA?
Come si può rintracciare il percorso di un'email attraverso gli MTA?
Signup and view all the answers
Qual è l'importanza della codifica MIME per i file binari nelle email?
Qual è l'importanza della codifica MIME per i file binari nelle email?
Signup and view all the answers
Qual è la differenza tra 'Content-Type' e 'Content-Disposition' nelle intestazioni MIME?
Qual è la differenza tra 'Content-Type' e 'Content-Disposition' nelle intestazioni MIME?
Signup and view all the answers
Come viene trattato il contenuto binario in RFC 822?
Come viene trattato il contenuto binario in RFC 822?
Signup and view all the answers
Quale comando Linux può essere utilizzato per codificare file binari in un formato trasmissibile?
Quale comando Linux può essere utilizzato per codificare file binari in un formato trasmissibile?
Signup and view all the answers
In che modo gli MTA fungono da gateway nella comunicazione tra sistemi diversi?
In che modo gli MTA fungono da gateway nella comunicazione tra sistemi diversi?
Signup and view all the answers
Qual è uno dei rischi associati all'uso di e-mail senza considerare i campi dell’header?
Qual è uno dei rischi associati all'uso di e-mail senza considerare i campi dell’header?
Signup and view all the answers
Qual è l'effetto storico dell'introduzione degli MTA nel sistema di posta elettronica?
Qual è l'effetto storico dell'introduzione degli MTA nel sistema di posta elettronica?
Signup and view all the answers
Cosa comporterebbe l'assenza di una codifica adeguata per i file binari nelle email?
Cosa comporterebbe l'assenza di una codifica adeguata per i file binari nelle email?
Signup and view all the answers
Quando è preferibile utilizzare la codifica Base64 rispetto a Quoted-Printable?
Quando è preferibile utilizzare la codifica Base64 rispetto a Quoted-Printable?
Signup and view all the answers
Qual è la principale differenza di overhead tra Base64 e Quoted-Printable?
Qual è la principale differenza di overhead tra Base64 e Quoted-Printable?
Signup and view all the answers
Come viene codificato un carattere non ASCII in Quoted-Printable?
Come viene codificato un carattere non ASCII in Quoted-Printable?
Signup and view all the answers
Qual è il formato generale di un header MIME quando si utilizza la codifica Quoted-Printable?
Qual è il formato generale di un header MIME quando si utilizza la codifica Quoted-Printable?
Signup and view all the answers
Cosa permette la struttura multipart
in un messaggio MIME?
Cosa permette la struttura multipart
in un messaggio MIME?
Signup and view all the answers
Qual è l'importanza di specificare il boundary
in un messaggio multipart?
Qual è l'importanza di specificare il boundary
in un messaggio multipart?
Signup and view all the answers
In un messaggio multipart, come viene rappresentato il contenuto testuale associato a un charset specifico?
In un messaggio multipart, come viene rappresentato il contenuto testuale associato a un charset specifico?
Signup and view all the answers
Quale vantaggio offre l'uso di MIME per la codifica delle emails?
Quale vantaggio offre l'uso di MIME per la codifica delle emails?
Signup and view all the answers
Qual è il ruolo delle intestazioni MIME nel garantire la compatibilità del testo con vari charset?
Qual è il ruolo delle intestazioni MIME nel garantire la compatibilità del testo con vari charset?
Signup and view all the answers
Quale caratteristica rende Quoted-Printable ideale per contenuti testuali?
Quale caratteristica rende Quoted-Printable ideale per contenuti testuali?
Signup and view all the answers
Qual è il ruolo di MIME nella gestione delle email contenenti formati alternativi?
Qual è il ruolo di MIME nella gestione delle email contenenti formati alternativi?
Signup and view all the answers
In che modo SMTP limita il tipo di caratteri inviabili attraverso le email?
In che modo SMTP limita il tipo di caratteri inviabili attraverso le email?
Signup and view all the answers
Quale comando SMTP è utilizzato per avviare una connessione e identificare il server del mittente?
Quale comando SMTP è utilizzato per avviare una connessione e identificare il server del mittente?
Signup and view all the answers
Qual è la funzione del comando MAIL FROM
nel protocollo SMTP?
Qual è la funzione del comando MAIL FROM
nel protocollo SMTP?
Signup and view all the answers
Cosa implica l'uso di multipart/alternative
nel contesto di un'email?
Cosa implica l'uso di multipart/alternative
nel contesto di un'email?
Signup and view all the answers
Come contribuisce MIME alla trasmissione di contenuti multimediali via email?
Come contribuisce MIME alla trasmissione di contenuti multimediali via email?
Signup and view all the answers
Qual è la struttura di base di un messaggio SMTP?
Qual è la struttura di base di un messaggio SMTP?
Signup and view all the answers
Perché è importante la trasmissione via TCP nel protocollo SMTP?
Perché è importante la trasmissione via TCP nel protocollo SMTP?
Signup and view all the answers
In quale contesto è utilizzato boundary
in un messaggio email?
In quale contesto è utilizzato boundary
in un messaggio email?
Signup and view all the answers
Qual è il ruolo del comando DATA
nel protocollo SMTP?
Qual è il ruolo del comando DATA
nel protocollo SMTP?
Signup and view all the answers
Cosa indica il codice di stato SMTP 250
?
Cosa indica il codice di stato SMTP 250
?
Signup and view all the answers
Qual è la massima lunghezza di una mailbox in un indirizzo email secondo le specifiche SMTP?
Qual è la massima lunghezza di una mailbox in un indirizzo email secondo le specifiche SMTP?
Signup and view all the answers
Qual è il significato della prima cifra 4
in un codice di stato SMTP?
Qual è il significato della prima cifra 4
in un codice di stato SMTP?
Signup and view all the answers
Cosa rappresenta il comando QUIT
in una sessione SMTP?
Cosa rappresenta il comando QUIT
in una sessione SMTP?
Signup and view all the answers
Come vengono indicate le risposte su più righe in SMTP?
Come vengono indicate le risposte su più righe in SMTP?
Signup and view all the answers
Qual è il limite massimo della dimensione di un messaggio in SMTP?
Qual è il limite massimo della dimensione di un messaggio in SMTP?
Signup and view all the answers
Cosa implica il comando RCPT TO
durante una comunicazione SMTP?
Cosa implica il comando RCPT TO
durante una comunicazione SMTP?
Signup and view all the answers
Qual è l'importanza della cifra Y
in un codice di stato SMTP?
Qual è l'importanza della cifra Y
in un codice di stato SMTP?
Signup and view all the answers
Che cosa rappresenta il comando HELO
nel flusso di comunicazione SMTP?
Che cosa rappresenta il comando HELO
nel flusso di comunicazione SMTP?
Signup and view all the answers
Qual è la porta di default utilizzata da IMAP4?
Qual è la porta di default utilizzata da IMAP4?
Signup and view all the answers
Qual è uno dei principali vantaggi di IMAP rispetto a POP3?
Qual è uno dei principali vantaggi di IMAP rispetto a POP3?
Signup and view all the answers
Cosa consente il comando TOP
in IMAP?
Cosa consente il comando TOP
in IMAP?
Signup and view all the answers
Come consente IMAP4 di organizzare i messaggi?
Come consente IMAP4 di organizzare i messaggi?
Signup and view all the answers
Qual è la funzione del comando UIDL
in IMAP?
Qual è la funzione del comando UIDL
in IMAP?
Signup and view all the answers
Qual è uno stato avanzato dei messaggi che IMAP4 può gestire?
Qual è uno stato avanzato dei messaggi che IMAP4 può gestire?
Signup and view all the answers
Perché IMAP4 è considerato più evoluto di POP3?
Perché IMAP4 è considerato più evoluto di POP3?
Signup and view all the answers
Che tipo di accessi parziali consente IMAP4?
Che tipo di accessi parziali consente IMAP4?
Signup and view all the answers
Quale è uno dei principali motivi per cui si sceglie IMAP4?
Quale è uno dei principali motivi per cui si sceglie IMAP4?
Signup and view all the answers
Cosa implica l'uso di IMAP4 rispetto a POP3 nella gestione delle email?
Cosa implica l'uso di IMAP4 rispetto a POP3 nella gestione delle email?
Signup and view all the answers
Qual è la risposta del server che indica il supporto per l'SMTP esteso?
Qual è la risposta del server che indica il supporto per l'SMTP esteso?
Signup and view all the answers
Qual è uno dei rischi associati all'uso della codifica a 8 bit in SMTP?
Qual è uno dei rischi associati all'uso della codifica a 8 bit in SMTP?
Signup and view all the answers
Quali sono i metodi di autenticazione definiti nell'RFC 4954?
Quali sono i metodi di autenticazione definiti nell'RFC 4954?
Signup and view all the answers
Quale comando POP3 viene utilizzato per cancellare un messaggio dal message store?
Quale comando POP3 viene utilizzato per cancellare un messaggio dal message store?
Signup and view all the answers
Qual è la prima operazione obbligatoria da eseguire in una connessione POP3?
Qual è la prima operazione obbligatoria da eseguire in una connessione POP3?
Signup and view all the answers
Dopo il comando 'EHLO', come risponde il server per indicare i metodi di autenticazione disponibili?
Dopo il comando 'EHLO', come risponde il server per indicare i metodi di autenticazione disponibili?
Signup and view all the answers
Quale comando si utilizza per ottenere le dimensioni dei messaggi in un server POP3?
Quale comando si utilizza per ottenere le dimensioni dei messaggi in un server POP3?
Signup and view all the answers
Perché i metodi 'PLAIN' e 'LOGIN' sono considerati non sicuri?
Perché i metodi 'PLAIN' e 'LOGIN' sono considerati non sicuri?
Signup and view all the answers
Qual è il comando POP3 utilizzato per recuperare un messaggio specifico?
Qual è il comando POP3 utilizzato per recuperare un messaggio specifico?
Signup and view all the answers
Dove si colloca la codifica a 8 bit all'interno delle funzionalità SMTP esteso?
Dove si colloca la codifica a 8 bit all'interno delle funzionalità SMTP esteso?
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:
- Solo indirizzo: [email protected]
- Indirizzo con commento tra parentesi angolari: [email protected]
- Commento tra parentesi tonde accanto all'indirizzo: [email protected] (Nome Cognome)
- 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
.
- Per HTTP, l'indirizzo logico è un nome DNS (es.
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:
- Solo indirizzo:
[email protected]
- Indirizzo con commento tra parentesi angolari:
<[email protected]>
- Commento tra parentesi tonde accanto all'indirizzo:
[email protected] (Nome Cognome)
- Queste opzioni aiutano nella leggibilità.
- Solo indirizzo:
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 fileinputfile.gif
in un file di testo chiamatooutputfile.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.
-
Content-Type: definisce il tipo di contenuto (
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
- Esempio:
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
oUTF-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
(oEHLO
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
ePLAIN
. - I metodi
PLAIN
eLOGIN
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
eDELE
. - 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.
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.