Consigli di una studentessa che ha avuto difficoltà con l'esame di Reti di Calcolatori
Riporto qui sotto alcune considerazioni di una persona che ha fatto due appelli piuttosto male, si è ripresentata dopo molti mesi ed ha superato l'esame tranquillamente con un buon voto.
Considerazioni fatte su mia richiesta e riportate qui con il suo permesso, anonimizzate.
Spiegano benissimo e con parole diverse dalle mie ciò che dico spesso: una grande difficoltà dell'esame di Reti di Calcolatori è che ci sono moltissime dipendenze tra gli argomenti; sono praticamente tutti incastrati tra loro.
Considerazioni della studentessa
Premetto che l’esame di Reti di calcolatori ha costituito per me uno scoglio, sia per il fatto di non aver mai affrontato tale materia durante gli studi della laurea triennale in ... o in altri corsi che ho seguito, sia per il fatto che in generale, non ritengo di essere propriamente un’appassionata del settore.
Nonostante questo, sono rimasta affascinata nel conoscere un sistema così complesso ed eccezionale nel suo funzionamento.
Rispetto alle prove che ho sostenuto e che purtroppo hanno avuto esito negativo, penso che il problema più grande per me sia stato non avere una visione complessiva della dinamica di funzionamento del sistema. Ho avuto difficoltà nel collegare tra loro i vari argomenti trattati e inizialmente li ho inquadrati soltanto singolarmente.
L’ atto di rifare gli esercizi già svolti forse mi aveva fatto entrare in un automatismo che considerava il tema dell’esercizio fine a sè stesso.
Dal momento che il mio livello di preparazione si era dimostrato inadeguato, per prepararmi all’appello del ... ho innanzitutto ripreso bene dall'inizio la teoria (soltanto teoria!). Ho ripreso le slide e gli appunti delle lezioni e ho cercato di capire meglio il ragionamento alla base del funzionamento client – server. Successivamente, ho cercato di collegare ogni argomento successivo al primo, quindi ricollegandomi sempre al funzionamento client-server, ripetendo per ogni passaggio la sequenza di procedure invocate rispettivamente dal client e dal server.
Anche per il DNS, ho cercato di ragionare partendo dai casi più semplici visti a lezione e facendo delle prove, simulando di creare nuove zone e configurando i rispettivi Name Server, cercando di condurre un ragionamento che andasse oltre all’assegnazione mnemonica dei RR per ciascun Name Server, ma cercando di capire come questi potessero assicurare il vero e proprio funzionamento corretto del sistema.
Una volta studiato bene la teoria, ho applicato lo stesso metodo agli esercizi svolti, ragionando sui vari passaggi e ipotizzando di fare delle variazioni rispetto a quanto richiesto dal testo, proprio per non rischiare di ricadere nell'automatismo dello svolgimento di esercizi che ormai conoscevo. Per superare questo esame credo sia indispensabile avere una buona conoscenza teorica degli argomenti e, solo dopo aver capito il funzionamento complessivo del sistema, applicarlo agli esercizi facendo un ragionamento step-by step, immaginando di avere un sistema reale da far funzionare in modo corretto.
Considerazioni mie, successive alla provetta 1 (Novembre 2021)
Vediamo cosa diceva la studentessa che aveva avuto problemi: "...ho innanzitutto ripreso bene dall'inizio la teoria (soltanto teoria!). Ho ripreso le slide e gli appunti delle lezioni e ho cercato di capire meglio il ragionamento alla base del funzionamento client – server. Successivamente, ho cercato di collegare ogni argomento successivo al primo, quindi ricollegandomi sempre al funzionamento client-server, ripetendo per ogni passaggio la sequenza di procedure invocate rispettivamente dal client e dal server."
Cerchiamo di applicare il suo metodo.
Vediamo quali azioni esegue un nodo che invia una richiesta DNS al mail server:
- apro una connessione verso un server (il mail server) di cui devo conoscere indirizzo IP e numero di porta;
- devo inviare una richiesta in quella connessione;
hhhmmmm....l'indirizzo IP ce l'ho ma il numero di porta qual'è? un mail server sta in ascolto sulla porta SMTP (25) e sulla porta POP (110); come faccio ad inviargli una richiesta DNS (53)? Anche se non mi ricordo i valori numerici, è evidente che sono diversi.
hhhmmm....le richieste sono sequenze di byte; il server deve parlare il mio stesso protocollo altrimenti non ci intendiamo; come faccio ad inviare una richiesta nel protocollo DNS ad un server che parla il protocollo SMTP o POP?
Facile rendersi conto che inviare richieste DNS ad un mail server non ha senso.
Applichiamolo ad una richiesta DNS inviata al proxy:
- apro una connessione verso un server (il proxy) di cui devo conoscere indirizzo IP e numero di porta;
- devo inviare una richiesta in quella connessione;
hhhmmmm....quale numero di porta? un proxy sta in ascolto su una porta che di default è 80 (infatti verso il browser si comporta da server HTTP); spesso è 8080; come faccio ad inviargli una richiesta DNS (53)? Anche se non mi ricordo i valori numerici, è evidente che sono diversi.
hhhmmm....le richieste sono sequenze di byte; il server deve parlare il mio stesso protocollo altrimenti non ci intendiamo; come faccio ad inviare una richiesta nel protocollo DNS ad un server che parla il protocollo HTTP?
Facile rendersi conto che inviare richieste DNS a un proxy non ha senso.
Applichiamolo alle richieste DNS generate da un browser che naviga attraverso un proxy (una quantità deprimente di persone ha scritto che il browser risolve il nome del sito web).
1) browser apre una connessione con il proxy; 2) browser invia una richiesta HTTP al proxy in quella connessione; 3) proxy apre una connessione con il server specificato nella richiesta HTTP;
per il punto 1 al browser serve indirizzo IP e numero di porta; l'indirizzo IP lo trova risolvendo il nome del proxy;
per il punto 2 non si genera traffico DNS: il browser costruisce la richiesta e la spara nella connessione;
per il punto 3 il proxy trova nella richiesta HTTP il nome del web server; al proxy serve indirizzo IP e numero di porta; l'indirizzo IP lo trova risolvendo il nome del web server, il numero di porta è 80;
Facile rendersi conto che un browser che naviga attraverso proxy non risolve i nomi dei web server.