Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
RETE DI CALCOLATORI
Una rete di computer è un insieme di dispositivi hardware e software collegati l'uno con
l'altro da appositi canali di comunicazione, che permette il passaggio da un utente all'altro di
risorse, informazioni e dati in grado di essere pubblicati e condivisi.
CLIENT-SERVER MODEL
Il modello client–server è una struttura applicativa distribuita nella quale genericamente un
computer client o terminale si connette ad un server per la fruizione di un certo servizio. Un
server gestisce la maggior parte dei processi e memorizza tutti i dati. Un client richiede dati
o elaborazioni. Il server manda i risultati dell’elaborazione al client.
Un esempio del client-server è il Restaurant service:
- I clienti (client) fanno una serie di richieste (antipasti, bevanda, portata principale e
dessert).
- Queste richieste sono tutte tipicamente fatte ad una persona, il cameriere (server).
- I servizi possono essere forniti da altre persone nel ristorante, tra cui il barista e una
varietà di chef, tuttavia, per il cliente, questi servizi sono forniti da una sola persona, il
cameriere. Il cliente non vuole sapere chi esegue quale servizio. Vorrebbe solo avere
un pasto di alta qualità consegnato in modo tempestivo.
TECNOLOGIE DI TRASMISSIONE
➔ Point-to-point: connette individualmente coppie di macchine
➔ Broadcast: le reti hanno un solo canale di comunicazione che è condiviso
contemporaneamente tra tutte le macchine della rete.
La tipologia point-to-point è composta da link e da nodi e per passare dall'origine alla
destinazione, i messaggi (o pacchetti) possono attraversare uno o più elaboratori (nodi).
PROTOCOLLI
La comunicazione tra le varie entità all’interno delle reti è gestita da un protocollo. Per
protocollo di rete si intende una definizione formale a priori delle modalità di interazione che
due o più apparecchiature collegate tra loro devono rispettare per eseguire una
comunicazione e interessa il lato software. Per ridurre la complessità dei protocolli di rete,
generalmente i protocolli sono suddivisi in livelli. Lo scopo di ogni di un livello è di offrire
alcuni servizi ai livelli più alti, nascondendo a questi livelli come questi servizi sono
realmente svolti.
Il livello n su una macchina porta avanti una comunicazione con il livello n di un’altra
macchina. Questa comunicazione è chiamata protocollo di livello n. Le entità che effettuano
questa conversazione sono chiamate peer entity (e.g., software, mezzi hardware o persone).
La conversazione tra il livello n di una macchina ed il livello n di un’altra macchina è
realizzato attraverso i servizi offerto dal livello inferiore (n-1).
TIPOLOGIA DI SERVIZI
Ci sono due principali classi di servizi offerti da un livello a quello superiore:
- servizi connection-oriented: sono modellati secondo il sistema telefonico, dove per
parlare con qualcuno si alza il telefono, si chiama, si parla e poi si riattacca.
- servizi connectionless: sono modellati secondo il sistema postale: ogni lettera
viaggia indipendentemente dalle altre; arriva quando arriva, e forse non arriva.
Inoltre, due lettere con uguale mittente e destinatario possono viaggiare per strade
diverse.
MODELLO OSI
Iniziamo ad esaminare due importanti realtà nel mondo delle reti:
- OSI Reference Model;
- Internet Protocol Suite (detta anche architettura TCP/IP).
Un modello di riferimento è cosa diversa da un'architettura di rete: il modello di riferimento
definisce il numero, le relazioni e le caratteristiche funzionali dei livelli, ma non definisce i
protocolli effettivi. L’architettura di rete definisce, livello per livello, i protocolli effettivi.
L’OSI nasce nel 1984 dal frutto del lavoro della ISO, ed ha lo scopo di fornire un modello
rispetto a cui confrontare le varie architetture di rete e non include di per sè la definizione di
protocolli specifici. Il modello OSI possiede dei principi di progetto: ogni livello deve avere un
diverso livello di astrazione e una funzione ben definita.
Il modello OSI ha 7 livelli:
- fisico: ha a che fare con la trasmissione di bit "grezzi" su un canale di
comunicazione. Gli aspetti di progetto sono volti a garantire che se parte un 1, arrivi
effettivamente un 1 e non uno zero e largamente riguardanti le caratteristiche
meccaniche, elettriche e procedurali delle interfacce di rete (componenti che
connettono l'elaboratore al mezzo fisico) e le caratteristiche del mezzo fisico.
- data link: ha lo scopo di far sì che un mezzo fisico trasmissivo appaia, al livello
superiore, come una linea di trasmissione esente da errori di trasmissione non
rilevati.
- network: ha lo scopo di controllare il funzionamento della subnet di comunicazione.
- transport: ha lo scopo di accettare dati dal livello superiore, spezzettarli in pacchetti,
passarli al livello network ed assicurarsi che arrivino alla peer entity che si trova
all'altra estremità della connessione. In più, fare ciò efficientemente, isolando i livelli
superiori dai cambiamenti della tecnologia di rete sottostante.
- session: il compito principale è di coordinare il dialogo tra utenti basandosi sul
servizio offerto dal livello di trasporto, offrendo i medesimi servizi offerti dal livello di
trasporto (apertura-chiusura collegamento, connessione e trasferimento dati). Si
occupa anche della sincronia di invio/ricezione messaggi
- presentation: è interessato alla sintassi ed alla semantica delle informazioni da
trasferire. Si occupa di trasferire dati standard da rappresentazioni specifiche delle
piattaforme Hardware di partenza in una rappresentazione ‘on the wire’ e poi in
quella specifica dell’HW di arrivo.
- application: ha l’obbiettivo di interfacciare utente e macchina, sta prima del livello
transport e svolge il lavoro utile per l’utente. Fornisce un insieme di protocolli che
operano a stretto contatto con le applicazioni.
SOTTOLIVELLO MAC
I protocolli per decidere chi è il prossimo a trasmettere su un canale broadcast
appartengono ad un sottolivello del livello data link, detto sottolivello MAC. Questo
sottolivello fa parte del livello DATA LINK.
PROTOCOLLO ALOHA
Esistono due versioni :
- Pure Aloha: le stazioni trasmettono quando vogliono, però durante la trasmissione
ascoltano il canale e confrontano ciò che ricevono con ciò che hanno spedito. •
Dunque, se si verifica una collisione se ne accorgono, e in tal caso, dopo aver
lasciato passare una quantità di tempo casuale, ritrasmettono il frame. La scelta di
attendere per una quantità di tempo casuale discende dal fatto che altrimenti una
collisione ne ricrea infinite altre.
- Slotted Aloha: per diminuire il tempo di vulnerabilità di questo metodo (ovvero
diminuire le possibilità che dei frame collidano), è stato proposto un protocollo in cui
le stazioni non possono iniziare a trasmettere quando vogliono, ma solo all'inizio di
un intervallo di tempo (slotted time).
LIVELLO NETWORK
Il livello network è incaricato di muovere i pacchetti dalla sorgente fino alla destinazione
finale, attraversando tanti sistemi intermedi (router) della subnet di comunicazione quanti è
necessario. Ciò è molto diverso dal compito del livello data link, che è di muovere
informazioni solo da un capo all'altro di un singolo canale di comunicazione.
Un algoritmo di routing è quella parte del software di livello network che decide su quale
linea di uscita instradare un pacchetto che è arrivato: in una subnet non orientata alla
connessione l'algoritmo viene applicato ex novo ad ogni pacchetto; in una subnet basata su
circuiti virtuali (quindi orientata alla connessione ) l'algoritmo viene applicato solo all’inizio
della creazione del circuito. Gli algoritmi si dividono in:
- algoritmi non adattivi (static routing): le decisioni di routing sono prese in anticipo,
all'avvio della rete, e sono comunicate ai router che poi si attengono sempre a quelle;
- algoritmi adattivi (dynamic routing): le decisioni di routing sono riformulate (sulla
base del traffico, della topologia della rete, ecc.) molto spesso.
PROTOCOLLO IP
E’ un protocollo datagram, quindi non connesso e non affidabile, che riceve i dati dal livello
transport e li incapsula in pacchetti di dimensione massima pari a 64 kbyte. I dispositivi
collegati alla rete e che usano il protocollo IP vengono identificati univocamente grazie ad un
indirizzo particolare chiamato indirizzo IP, formato da 32 bit. Per permettere una migliore
organizzazione della rete, gli indirizzi disponibili sono stati suddivisi in 5 classi, di cui solo le
prime 3 possono essere utilizzate per assegnare indirizzi agli host:
- 126 network di classe A, le quali possono contenere 16 milioni di host ciascuna;
- 16382 network di classe B, con circa 64.000 host ciascuna;
- 2 milioni di network di classe C, con 254 host ciascuna
HTTP
L'HyperText Transfer Protocol (HTTP) (protocollo di trasferimento di un ipertesto) è un
protocollo a livello applicativo usato come principale sistema per la trasmissione
d'informazioni sul web, ovvero in un'architettura tipica client-server. È gestito da un software
(server HTTP) residente sugli host che intendono essere fornitori di informazioni. Chi vuole
accedere alle informazioni fornite dal server HTTP deve utilizzare un software client
(browser) in grado di interpretare le informazioni inviate dal server. Il client esegue una
richiesta e il server restituisce la risposta. Nell'uso comune il client corrisponde al browser ed
il server la macchina su cui risiede il sito web. Vi sono quindi due tipi di messaggi HTTP:
messaggi richiesta e messaggi risposta.
FIREWALL
Un firewall è un componente per la sicurezza informatica avente lo scopo di controllare gli
accessi alle risorse di un sistema filtrando tutto il traffico che tale sistema scambia con
l'esterno.
TCP ATTACK
Richiama il funzionamento del protocollo IP. Gli utenti finali creano dei pacchetti IP e i router
li elaborano esclusivamente in base all'indirizzo di destinazione. Problema: gli host finali
possono mentire su altri campi che non influiscono sulla consegna. L'host può indurre la
destinazione a credere che il pacchetto provenga da una fonte attendibile. Soluzione:
utilizzare metodi di autenticazione migliori. Le connessioni TCP hanno uno stato associato:
numeri di sequenza di partenza, numeri di porta. Problema: cosa succede se un utente
malintenzionato impara questi valori? A volte i numeri di porta sono ben noti. I numeri di
sequenza vengono talvolta scelti in modi molto prevedibili.
CRITTOGRAFIA
La necessità di nascondere messaggi strategici da occhi nemici è antica quanto l'uomo.
La crittografia o criptografia è la branca della crittologia che tratta delle "scritture nascoste",
ovvero dei metodi per rendere un messaggio "offuscato" in modo da non essere
comprensibile/intelligibile a persone non autorizzate a leggerlo.
Metodi di cifratura storici:
- Scitala Spartana (V sec. a.C.)
- telegrafo ottico di Polibio
- Cifrario di Cesare (I sec. a.C.)
- Enigma
La crittografia si può suddividere in due maggiori tipologie:
➔ Crittografia simmetrica: si faceva uso di un'unica chiave sia per proteggere il
messaggio che per renderlo nuovamente leggibile. Il problema era condividere la
chiave di cifratura con il destinatario del messaggio criptato senza che questa
venisse scoperta.
➔ Crittografia asimmetrica: la vera novità del secolo scorso è l'invenzione di una
tecnica crittografica che utilizza chiavi diverse per cifrare e per decifrare un
messaggio, facilitando incredibilmente il compito di distribuzione delle chiavi. Infatti in
questo caso non è necessario nascondere le chiavi o le password: c'è una chiave per
crittografare (che chiunque può vedere) e una per decifrare, che conosce solo il
destinatario senza necessità quindi di riceverla (scambiarla) dal mittente.
Quindi ad ogni attore coinvolto nella comunicazione è associata una coppia di chiavi:
➔ La chiave pubblica, che deve essere distribuita e serve per criptare;
➔ la chiave privata, appunto personale e segreta, che serve a decodificare;
BITCOIN
Il bitcoin è la prima e più diffusa tra le cosiddette criptovalute. È un "valore" concordato tra
le parti sulla base della "legge della domanda e dell'offerta", infatti il loro valore è cioè
determinato esclusivamente dalla legge della domanda e dell'offerta.
Il protocollo Bitcoin, comunemente indicato con l'iniziale maiuscola per distinguerlo dalla
moneta, utilizza un complesso sistema di crittografia per gestire gli aspetti funzionali del
bitcoin, come la generazione di nuova valuta o l'attribuzione di proprietà.
Quando un "utente A" (Amy) trasferisce criptovaluta a un "utente B" (Jerry), attraverso una
connessione diretta da computer a computer (il peer-to-peer), aggiunge alle proprie monete
la chiave pubblica di B e autorizza la transazione firmandola con la propria chiave privata (la
propria "firma"). La transazione viene inviata sulla rete peer-to-peer, dove viene controllata e
registrata da tutti i nodi (gli elaboratori) che partecipano alla rete.