Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Ricerca personalizzata
11
voti

Web Stazione Meteo con Arduino [5] - Appendice 1 : Le Reti spiegate a mia Nonna

oggi sono qui a scrivere questa appendice alla mia avventura dopo che mi sono state chieste alcune spiegazioni più approfondite sul meccanismo che sta dietro la comunicazione tra Arduino e un sito, e in generale tra due "interlocutori" sulla rete. Posso capire che questi meccanismi non siano conosciuti da molti, ma sono qui a rimediare e cercherò di farla quanto più semplice possibile.

Per la spiegazione dei vari termini rimando al Glossario in fondo all'articolo.

Indice

Gli Host

Con il nome Host si intende un generico utilizzatore di una rete, che può essere:

  • Un PC
  • Un Router
  • Un Cellulare
  • Una Stampante
  • Lo shield Ethernet di Arduino
  • Etc. Etc.

Ogni host è identificato in maniera univoca all'interno di una rete da un indirizzo IP.

Indirizzi IP

Un indirizzo IP v4 (ad oggi i più diffusi, ma in via di abbandono data la loro ormai scarsità), è formato da 4 byte, quindi identificabile da quattro numeri decimali da 0 a 255 (Es. 192.168.1.1). Un indirizzo IP da solo non individua un host, ma c'è necessità di una Subnet Mask (Maschera di Sottorete) che hai il compito di individuare le due parti di un indirizzo IP:

  • Identificativo della Rete
  • Identificativo dell'Host

Una Subnet Mask, a livello binario, si presenta come una serie di 1 seguiti da una serie di 0 che in totale vanno ad occupare anch'essi 4byte, da notare che una sottomaschera valida ha una sola serie di 1 e una sola serie di 0, cioè (1111111111111111111100000000) è valida, (1111111111100000011100000000) non lo è. Mettendo a confronto a livello binario la maschera con l'IP, la parte con gli 1 identifica la rete, la parte con gli 0 identifica l'host.

Da notare che all'interno di una rete l'unica cosa che cambia tra gli indirizzi degli host è Identificativo dell'Host

Esempio 1 :

IP host : 192.168.0.10

Subnet Mask : 255.255.255.0

Identificativo della Rete : 192.168.0

Identificativo dell'Host : 10

Esempio 2 :

IP host : 192.168.0.10

Subnet Mask : 255.192.0.0

Identificativo della Rete : 192.128

Identificativo dell'Host : 40.10


La configurazione di un host

La configurazione di un host per poter funzionare al meglio deve comprendere :

  1. Un proprio IP univoco
  2. Una sottomaschera di rete
  3. L'indirizzo del Default Gateway (vedi glossario)
  4. Indirizzo del server DNS primario
  5. Indirizzo del server DNS secondario (nel caso il primo non risponda)
Configurazione IP statica (sinistra) | Configurazione IP tramite DHCP (destra)

Configurazione IP statica (sinistra) | Configurazione IP tramite DHCP (destra)

DHCP

Il dhcp si occupa in una rete di fornire ad ogni host che ne fa richiesta i 5 parametri necessari alla loro configurazione, tenendo conto degli indirizzi già assegnati per non avere ambiguità sulla rete.

Un esempio per meglio comprendere

Pensiamo alla rete come un serie di strade di una città, l'Identificativo della Rete rappresenta la città in cui siamo e Identificativo dell'Host, l'indirizzo della casa che cerchiamo. Osserviamo il nostro ip, i casi sono due:

  1. L'identificativo della rete dell'indirizzo che sto cercando è uguale alla rete in cui mi trovo (la città che cerco è quella in cui mi trovo)
  2. L'identificativo della rete dell'indirizzo che sto cercando è diverso alla rete in cui mi trovo (non mi trovo nella città giusta)

Se mi trovo nel caso 1), basta che mi rechi all'indirizzo dell'host che devo cercare. Se mi trovo nel caso 2) devo cambiare città, per far ciò devo prendere l'autostrada (nel nostro esempio rappresenta internet). Per prendere l'autostrada devo cambiare rete e devo cambiare metodo di trasmissione (da ethernt a linea telefonica), quindi mi recherò da un router che mi permette di cambiare rete e poi da un modem che mi permette di cambiare tipo di trasmissione dei dati. A livello della linea telefonica ci saranno altri router che mi instraderanno verso la giusta rete. A questo punto siamo arrivati nella "città" che cercavamo e quindi non ci resta che andare dall'host di cui abbiamo il suo identificativo.

Il DNS

Il DNS è un servizio che sfruttando un database distribuito su più server riesce a risolvere un nome in un IP. Tutte le volte che digitiamo il nome di un sito sulla barra degli indirizzi del nostro browser questo viene inviato ad un server DNS che si occupa di fornirci l'indirizzo della risorsa a cui vogliamo accedere.

Da notare che le comunicazioni sulla rete avvengono SOLAMENTE tramite indirizzi IP.

Questo servizio è nato soprattuto per facilitare il collegamento mentale tra l'host e la sua funzione. Per es. vogliamo andare su un sito, è più facile ricordarsi un nome, magari attinente a ciò che il sito tratta, che un serie di numeri. Esempio lampante di come funzionano entrambe le cose:

Link a Google.it :

http:\\www.google.it

http:\\173.194.35.56

Il DNS permette poi di associare a indirizzi dinamici un nome, così come fa no-ip o dyndns, per poter trovare una risorsa anche se essa cambia IP. Altro possibilità è quella degli indirizzi di secondo e terzo livello, che permettono di avere più riferimenti all'interno di uno stesso IP. (per esempio i siti altervista, dove il nome del vostro sito è il dominio di secondo livello : miosito.altervista.org) Ma queste sono cose complicate e per come ho voluto impostare l'articolo le tralascerò.

Esempio per il DNS

Riprendendo l'esempio di prima, possiamo vedere i nomi dei siti, come nomi di persone, per poter recarci a casa loro il loro nome non ci è di aiuto, ma abbiamo bisogno di un indirizzo. A questo punto entra in gioco il DNS, che fa le veci dell'elenco telefonico, noi gli diamo il nome e lui ci fornisce l'indirizzo o gli indirizzi a cui possiamo trovare colui che cerchiamo.

Ricapitolando

Per rimanere in tema con il mio progetto e per ricapitolare i vari passaggi per arrivare ad una risorsa su di un'altra rete, vi elencherò i passi che portano Arduino con il suo ethernet shield ad arrivare a comunicare con un sito.

(Nella mia rete il servizio DHCP è svolto dal mio router/modem)

  • Accensione
  • Richiesta di un IP al DHCP della mia rete
  • Ricezione della configurazione completa dal DHCP della mia rete
  • Connessione a "miosito.it"
  • Richiesta al DNS di risolvere il nome "miosito.it"
  • Il DNS risponde con un IP
  • effettuo la connessione all'IP fornito dal DNS sulla porta che ho specificato nel codice
  • Invio la richiesta http a "miosito.it"
  • "miosito.it" risponde con il contenuto richiesto (pagina, file, etc.)
  • Chiudo al connessione con "miosito.it"

Alla successiva connessione riparto dal quarto punto.

Varie configurazioni di rete

Glossario

Host : Con questo termine si indicano i generici utilizzatori di una rete.

Indirizzo IP : è un numero che identifica univocamente un dispositivo collegato a una rete che utilizza Internet Protocol(IP) come protocollo di comunicazione, nella versione v4 si presenta come una terna di interi numeri decimali, memorizzati su 8bit per ognuno (0-255).

Default Gateway : Il Default Gateway è quell'apparato (solitamente un router), verso il quale vengono inviati i pacchetti da tutti gli host se hanno una destinazione con identificatore di rete diverso da quello della rete in cui si trova l'host che lo ha inviato.

DHCP : (Dynamic Host Configuration Protocol) cioè protocollo di configurazione dinamica degli host, è un servizio che gira su di un server o, nel caso casalingo, sul proprio router/modem e che si accolla la responsabilità di assegnare ad ogni host della propria rete i corretti indirizzi IP per poter funzionare e non avere collisioni tra IP (cioè IP uguali sulla stessa rete).

DNS : (Domain Name System) cioè Sistema dei Nomi a Dominio, è un servizio che si occupa di fare la conversione tra Nomi e Indirizzi IP e viceversa.

Modem : nome che proviene dal lavoro che svolge (MOdulazione DEModulazione), si occupa di far comunicare tra loro reti che sfruttano tecnologie di trasmissione differenti.

Router : (Instradatore) Apparato che si occupa di instradare le comunicazioni tra reti Reti differenti.

Una vignetta

Come funziona il browser web.

Come funziona il browser web.

Link agli articoli del progetto

Web Stazione Meteo con Arduino [1] - L'idea

Web Stazione Meteo con Arduino [2] - La Rilevazione dei Dati

Web Stazione Meteo con Arduino [3] - Il Primo Circuito di Prova

Web Stazione Meteo con Arduino [4] - Il circuito definitivo e la comunicazione http

Web Stazione Meteo con Arduino [6] : Il Sito Web

Web Stazione Meteo con Arduino [7] : Bug Fixing

8

Commenti e note

Inserisci un commento

di ,

Grazie. Sto lavorando alla parte del sito e nei prossimi penso di pubblicare la relativa puntata, poi ho apportato delle modifiche per aumentare la sicurezza della comunicazione e altre finezze su cui farò un'ulteriore puntata alla fine. Però per adesso il codice che pubblicherò sulla programmazione del sito sarà compatibile con la prima parte del progetto per mantenere una certa coerenza.

Rispondi

di ,

ciaoo complimenti bel progetto =) sto seguendo la tua guida e la trovo semplice e molto chiara perchè sto cercando di realizzare un progetto uguale identico da portare alla maturità spero che riesci a finire anche la parte del sito. grazie e buon lavoro.

Rispondi

di ,

Ti confermo al 100% che con Altervista funziona perfettamente. Il dominio di secondo livello serve solamente ad altervista per avere piu siti su uno stesso IP. Grazie dei complimento, lieto di essere stato utile!

Rispondi

di ,

Veramente complimenti, se sei riuscito a far capire a me in così poco tempo come funziona il tutto devi esser stato proprio bravo! A questo punto mi riservo di provare la tua soluzione sul mio sito altervista, sperando che Arduino riesca a connettercisi il fatto che dici " (per esempio i siti altervista, dove il nome del vostro sito è il dominio di secondo livello : miosito.altervista.org) " non mi rassicura, immagino che Altervista per indirizzarti su un suo dominio di sotto livello faccia una sorta di "redirect" o non so come si può chiamare un servizio del genere di ed immagino che sia fatto totalmente da lato Server non ci dovrebbero essere problemi con il collegamento di arduino... c'è da provare.. in caso non fosse possibile, mipuoi consigliare un servizio di Hosting gratuito come Altervista che non utilizzi questo sistema? Grazie ancora e complimenti per la guida, davvero fin troppo facile, nonostante non sia stata la prima che leggo è stata la prima che ho capito. Ciao Ivan

Rispondi

di ,

Grazie!!

Rispondi

di ,

Complimenti, mi è piaciuto il progetto :)

Rispondi

di ,

Prego! Felice di essere utile!

Rispondi

di ,

Una introduzione semplice e chiara, sia da leggere che da capire. Complimenti e grazie!

Rispondi

Inserisci un commento

Per inserire commenti è necessario iscriversi ad ElectroYou. Se sei già iscritto, effettua il login.