
Casa domotica e approfondimenti sul protocollo IP
E' difficile pensare al giorno di oggi ad una casa domotica dove non sia presente un cablaggio di rete. Attraverso la rete si possono connettere computer, telefoni sistemi di distribuzione audio/video, telecamere di videosorveglianza e tanto altro ancora. Il cablaggio di una rete, indispensabile negli ambienti destinati al terziario, inizia a diventare attualità anche in una casa moderna. Vuoi saperne di più?
Va in rete quindi è compatibile con tutto...
Quante volte ci siamo sentiti dire questa frase? Ma è proprio così? E' vero o è falso? Sei curioso di capire il significato dei termini più utilizzati in questa tecnologia? Molte volte vorresti ottenere più risultati dai tuoi impianti di rete, ma senti che ti mancano le basi, vorresti provare a creartele? Non devi far altro che leggere questo articolo.
La rete
La rete è un mezzo per permettere a dispositivi intelligenti di scambiarsi i dati tra loro. Possiamo immaginarsi una sorta di 'ragnatela' dove in ogni incrocio può essere installato un computer o un apparecchio che, grazie appunto alla 'tela', riesce a trasmettere e ricevere informazioni dagli altri.
Il modello ISO/OSI a 7 strati
Il modello ISO/OSI è uno standard (ISO 7498) creato per normalizzare l'architettura di una rete di calcolatori. Ci sono molti sistemi di rete che utilizzano l'architettura definita nelle ISO 7498, quella che prenderemo in esame in quest'articolo è quella che normalmente connette i nostri computer, meglio conosciuta con le dominazioni non del tutto corrette di TCP/IP o Ethernet.
Il funzionamento di una rete, secondo questo standard, è fatto a strati, proprio come una cipolla. Si parla di strati perché ognuno di essi è indipendente dagli altri, ma gli strati inferiori fanno da supporto per quelli più esterni.
Il primo strato,
denominato strato fisico (phisical layer) identifica proprio il mezzo 'fisico' con cui un dispositivo è connesso alla nostra 'ragnatela'. Fondamentalmente esistono due grandi categorie per la connessione ad una rete:
- Utilizzando un cavo (wired connection)
- Via radio, ovvero senza utilizzare un cavo (wireless connection)
All'interno di ciascuna delle due famiglie (wired e wireless) esistono numerosi modi di connessione:
Reti Wired:
- 10BASE-T, 100BASE-T, 100 BASE-TX... (Ethernet)
- DSL
- ISDN
- ...
Reti Wireless:
- IEE802.11,(WiFi)
- GPRS
- HSPA
- IEEE 802.16 (WiMAX)
- ...
Il vantaggio di una connessione cablata (wired) è la sua maggiore affidabilità e capacità di trasporto dati, mentre il vantaggio di una connessione senza fili (wireless) è quella di una maggiore mobilità e minori costi di installazione.
Qualunque sia la soluzione adottata per realizzare la connessione fisica il risultato finale non cambia, il nostro apparecchio sarà connesso alla rete ed il suo utilizzo non sarà influenzato dal mezzo fisico utilizzato. Ad esempio il nostro modo di fare le email o di navigare internet non cambia utilizzando la connessione con cavo oppure WiFi.
Il secondo strato
si occupa di trasferire pacchetti dati da un dispositivo all'altro e di recuperare eventuali errori avvenuti nel mezzo fisico. Ancora su questo livello non possiamo parlare di una rete, ma solo della capacità di uno scambio dati tra due dispositivi dove ognuno di essi ha un proprio numero di serie che lo identifica (detto anche indirizzo fisico o MAC address). La nostra ragnatela ancora non è una rete e quindi una struttura unica, ma un insieme di coppie di dispositivi che possono scambiarsi dei pacchetti dati tra loro, tutt'al più condividendo il medesimo mezzo fisico.
Il terzo strato si occupa di organizzare lo scambio dati tra dispositivi in una rete, possiamo dire che si occupa di creare ed organizzare la ragnatela.
Ad ogni dispositivo della rete viene assegnato un indirizzo logico (indirizzo IP) che è formato da un insieme di 4 cifre, ciascuna compresa tra 0 e 255. Ad esempio 1.5.82.212 è un indirizzo IP valido. I vantaggi di usare un indirizzo logico anziché uno fisico sono molteplici.
Immaginiamo di installare una telecamera IP e quindi programmare col suo MAC address tutti gli altri dispositivi della rete che la devono utilizzare. Se un giorno la dovessi sostituire sarei costretto a modificare il MAC address della vecchia telecamera su tutti i dispositivi che ne fanno uso, altrimenti non potrebbero più trovarla.
Se invece assegno un indirizzo IP alla telecamera e programmo questo indirizzo in tutti i dispositivi che la usano, al momento che dovrò sostituirla sarà sufficiente dare al nuovo apparecchio il medesimo indirizzo di quello sostituito. Non dovrò nemmeno preoccuparmi di andare a conoscere o a riprogrammare tutti i dispositivi che ne fanno uso poiché questi continuerebbero a cercarla all'indirizzo corretto.
Inizia a nascere quello che è definito protocollo IP (internet protocol), ovvero un modo per scambiare dati tra apparecchi intelligenti ai quali gli è stato assegnato un indirizzo logico.
L'assegnazione di indirizzamenti logici ai dispositivi semplifica anche il compito di instradare il traffico di rete, fare in modo che un pacchetto di dati che deve andare da un dispositivo ad un altro prenda un cammino piuttosto che un altro. Detto argomento è quello del routing.
Il quarto strato si occupa del trasporto trasparente dei dati. Fino a questo momento
abbiamo sempre parlato di scambio di singoli 'pacchetti dati', ma mai di un flusso importante di dati. In generale in una rete non è consentito scambiare grandi quantità di dati in maniera continua tra un dispositivo all'altro poiché questo causerebbe la 'monopolizzazione' del mezzo fisico da parte di questi due dispositivi ai danni degli altri.
Quindi questo strato si occupa di frammentare in pacchetti (nel trasmettitore) e di ricomporre (nel ricevitore) un flusso di dati in modo da:
- trasportarlo da un dispositivo ad un altro della rete
- riprodurlo esattamente nella stessa maniera in cui è stato trasmesso.
Inoltre, occupandosi di trasporto dati da un punto ad un altro della rete, questo strato può occuparsi anche di capire se la trasmissione di ciascun singolo pacchetto è andata a buon fine, chiedendo quindi una conferma della ricezione e ritentando una nuova trasmissione del pacchetto in mancanza della sua 'ricevuta di ritorno' positiva.
Il compito del quarto strato è quindi di rendere invisibili tutti questi meccanismi (frammentazione, richiesta conferma ricezione) e riprodurre su un dispositivo una sequenza di dati in modo fedele a quella trasmessa.
Questo strato definisce quindi due modi di trasporto:
- UDP (Trasporto senza conferma di ricezione)
- TCP (Trasporto con conferma di ricezione)
Ecco da cosa deriva il nome TCP/IP, questo non è altro che una modalità di trasporto dati su una rete che utilizza il protocollo IP. Quando dicevamo che il termine TCP/IP è usato in maniera impropria per definire questo tipo di rete ci riferivamo proprio a questo. TCP/IP è un modo di trasportare i dati e non il nome della rete. Quando ci riferiamo alla rete, sarebbe più corretto dire rete IP, che è l'abbreviazione di rete che utilizza il protocollo IP.
Il quinto strato amplia la possibilità di trasporto trasparente dei dati e introduce il
concetto di sessione. Una sessione è come una telefonata: una persona alza la cornetta, chiama un numero e si mette in comunicazione con un altra. Durante la telefonata vengono scambiati dati tra una persona e l'altra e poi la telefonata viene chiusa.
Una sessione è quindi un lasso di tempo entro il quale un dialogo tra due apparecchi viene aperto, mantenuto attivo, e poi chiuso. Durante tutto il tempo in cui il colloquio è attivo possono esserci scambi di dati anche in maniera bidirezionale tra i due dispositivi.
Normalmente una sessione utilizza il modo di trasporto TCP per lo scambio dei dati in quanto esso garantisce anche il controllo dello stato di attività della connessione stessa.
Una caratteristica importante di una sessione è che entrambi i dispositivi sono informati dello stato di attività della connessione, se uno dei due termina la sessione, l'altro dispositivo ne verrà in qualche modo informato.
Il sesto strato codificate le informazioni nel modo più opportuno
in funzione del loro utilizzo. Ad esempio se quanto stiamo trasmettendo è un file di testo piuttosto che un video certi codici potrebbero essere interpretati come caratteri leggibili oppure codici speciali. Esso si occupa anche della eventuale crittografia dei dati trasmessi.
Il settimo strato è il vero e proprio utilizzo dei dati, ovvero della loro applicazione. In sostanza è proprio il settimo strato quello che ha bisogno di scambiare dati con gli altri dispositivi della rete.

Facciamo un esempio, cosa è HTTP?
E' uno standard applicativo che consente di navigare il WEB. Qualsiasi browser riesce a navigare qualsiasi sito internet ospitato su qualsiasi server. Perché?
Grazie ai primi 6 strati del protocollo riusciamo a metterci in contatto con un server, facciamo quindi la nostra telefonata ed apriamo una sessione. Potremmo mai ricevere la pagina di google inviando al server la seguente stringa?
Gentile Server, mi chiamo Giuseppe, sono italiano e vivo in un piccolo paese, sarei lieto se mi potesse inviare l'home page di google, devo fare una ricerca. Rimanendo in attesa di una sua risposta colgo l'occasione per porgerLe i miei migliori saluti.
La risposta sarà sicuramente negativa. Grazie agli strati inferiori del protocollo il server riceverebbe proprio la stringa che abbiamo inviato, ma come potrebbe poi interpretarla? C'è un modo stabilito in cui effettuare la richiesta di una pagina ad un server WEB e un modo stabilito in cui riceviamo la risposta. Il tutto è ampiamente documentato dal W3C, ovvero dal World Wide Web Consortium, organismo che si occupa di standardizzazioni internet.
Si parla quindi di standardizzazione applicativa, ovvero di una standardizzazione che descrive il significato dei dati, senza più occuparsi del modo in cui essi vengano trasportati da un punto all'altro poiché questo è compito degli strati inferiori.
Gli strati 1...6 di un protocollo standard garantiscono il corretto trasporto dei dati, se questo non è però accompagnato da una standardizzazione del loro contenuto e del loro utilizzo il valore della standardizzazione degli strati precedenti 1...6 è largamente perduto.
Non a caso la parte applicativa, ovvero lo strato 7, è stata inserita nel modello ISO/OSI come strato del protocollo e quindi parte integrante di esso. Considerare l'applicazione come una cosa a parte che comunica su un protocollo standard non è sicuramente un approccio standard.
A titolo informativo, altri standard applicativi che possiamo citare sono:
- FTP: (File transfer protocol) Modo di trasmissione di file.
- SMTP: (Simple mail transport protocol) Protocollo per la posta elettronica.
A questi ne potevamo aggiungere molti altri ma pensiamo che questi possano essere più che sufficienti per far capire il concetto di standardizzazione applicativa.
Vero o falso?
Torniamo al quesito che ci siamo posti all'inizio, ovvero se un dispositivo capace di connettersi ad una rete IP sia anche in grado di comunicare con tutti gli altri.
L'affermazione è sicuramente falsa. Il fatto di avere capacità di connessione IP non indica assolutamente alcuna caratteristica di interoperabilità con altri dispositivi, ma solo che il trasporto dati fino al livello 5/6 è garantito.
Molte applicazioni in commercio utilizzano l'approccio di utilizzare solo gli strati inferiori del protocollo ed una applicazione a parte che ne usufruisce per comunicare. Non è che questo tipo di approccio sia sbagliato, può invece non essere corretto il modo in cui queste applicazioni sono presentate.
La
maggior parte dei limiti di utilizzo dei prodotti che funzionano su una
rete IP sono spesso dovuti ad una limitata o assente standardizzazione
della loro parte applicativa piuttosto che da altre cause, infatti tali prodotti dialogano solo con i propri software e/o active-x.
Se un dispositivo incorpora lo standard SMTP significa automaticamente che può inviare le email, se ha lo standard FTP significa che posso ricevere o inviare file, se ha lo standard HTTP significa che ha un WEB server. Se invece il dispositivo ha solo una presa per la connessione fisica significa che posso utilizzare una struttura di rete IP per la connessione ma oltre questo non possiamo dedurre nessuna possibilità di utilizzo di programmi standard.
Sicuramente un prodotto che implementa degli stati applicativi standard è più aperto e flessibile di chi non li ha, in ogni modo il nostro suggerimento è quello di analizzare sempre fino in fondo ciò che stiamo valutando. Avere o non avere una presa IP, rispettare o non rispettare uno standard W3C, non
implica alcun indice di qualità del
prodotto ne tanto meno di potenza o versatilità della sua applicazione.
Concludiamo dicendo che La conoscenza e l'esperienza di chi sceglie un prodotto per se stesso o per la propria clientela è sempre l'elemento fondamentale.
Ci auguriamo che questo articolo abbia contribuito ad arricchire la conoscenza di chi ha avuto la pazienza di leggerlo fino in fondo.
Approfondimenti
Chi volesse approfondire ulteriormente il protocollo IP ed il modello ISO/OSI, segnaliamo alcuni link:
- Approfondimenti
- Nuova versione 3.1
- Come fare a...
- Schema unifilare
- Casa domotica - impianto base
- Collegare un XMASTER alla rete
- Kalì non usa ACTIVEX
- La programmazione ad oggetti
- Kalì è basato su un bus?
- Perchè Kalì non prende virus?
- Il protocollo IP
- Il dizionario della casa domotica
- Storico versioni