Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Reti di Computer: Broadcast e Punto-Punto, Modelli ISO/OSI e TCP/IP, Appunti di Elementi di Informatica

Gli appunti sono relativi al corso di Informatica tenuto dal Prof. Moriani presso l'Università Bicocca. I principali argomenti sono: - Introduzione all'informatica - Sistemi numerici - Software - Architettura del calcolatore - Algebra Booleana - Algoritmi - Reti - Sicurezza informatica

Tipologia: Appunti

2019/2020

In vendita dal 29/06/2020

erica.otto
erica.otto 🇮🇹

4.6

(26)

26 documenti

1 / 32

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
1
LEZIONE 1
SISTEMI DI ELABORAZIONE DELL’INFORMAZIONE
INFORMATICA: insieme dei processi e delle tecnologie che rende possibile la CREAZIONE, la RACCOLTA,
l’ELABORAZIONE, l’IMMAGAZZINAMENTO e la DIFFUSIONE dell’informazione
La parola “informatica” deriva dal francese “informatique”, che a sua volta deriva dalla compressione di
“information” e “electronique”/”automatique”.
Elementi funzionali dell’informatica sono i SISTEMI DI ELABORAZIONE DELL’INFORMAZIONE, ovvero i
COMPUTER.
COMPUTER (inglese): letteralmente significa “calcolatore”, in diretta discendenza dalle calcolatrici,
prima meccaniche, poi elettromeccaniche e poi elettroniche
ELABORATORE (italiano): sottintende un processo prossimo all’intelligenza umana
ORDINATEUR (francese): letteralmente significa “ordinatore”, a sottolineare le sue capacità di
organizzare i dati (oggi le informazioni)
HARDWARE (HW) e SOFTWARE (SW) sono i due pilastri su cui si regge l’informatica.
CICLO DI ELABORAZIONE DELL’INFORMAZIONE
I DATI sono la materia prima del trattamento dell’informazione. Si distinguono:
DATI SEMPLICI: numeri, caratteri, date
DATI COMPLESSI: immagini, grafici, filmati, suoni, animazioni (la gestione di tali dati è resa possibile
dalla potenza raggiunta dagli elaboratori nell’ultimo ventennio)
Le fasi del ciclo di elaborazione dell’informazione sono:
1) INPUT: la fase di input consiste nell’immissione di dati nel computer. I dispositivi di input più
comuni sono la tastiera, lo scanner, il mouse, il microfono e la webcam. I dati da inserire possono
essere testi, numeri, immagini o suoni.
2) ELABORAZIONE: una volta inseriti nel computer i dati possono essere elaborati; ad esempio, si può
paragonare, classificare o sommare numeri, formattare un testo o creare immagini e suoni.
3) OUTPUT: per vedere (o ascoltare) il risultato dell’elaborazione sono necessari dei dispositivi di
output, come lo schermo, la stampante e gli altoparlanti. Le informazioni ottenute possono anche
essere sottoposte ad un’ulteriore elaborazione, ad esempio, per integrare i suoni e le immagini in
una presentazione multimediale.
4) MEMORIZZAZIONE: i dati e i programmi al momento non utilizzati vengono memorizzati su appositi
nastri o dischi in modo da poter essere recuperati in qualsiasi momento.
5) DISTRIBUZIONE: i dati possono essere stampati e distribuiti, oppure trasmessi direttamente da un
computer all’altro; un esempio è l’invio di documenti come allegati della posta elettronica o
attraverso un sito web.
APPLICAZIONI DELL’INFORMATICA
GESTIONE AZIENDALE
o Transazioni con fornitori, dipendenti e clienti
o Analisi finanziarie (analisi di spesa, investimenti, vendite…)
o Lavoro d’ufficio (office automation)
o DSS (Decision Support System) e Data Mining
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20

Anteprima parziale del testo

Scarica Reti di Computer: Broadcast e Punto-Punto, Modelli ISO/OSI e TCP/IP e più Appunti in PDF di Elementi di Informatica solo su Docsity!

LEZIONE 1

SISTEMI DI ELABORAZIONE DELL’INFORMAZIONE

INFORMATICA: insieme dei processi e delle tecnologie che rende possibile la CREAZIONE, la RACCOLTA, l’ELABORAZIONE, l’IMMAGAZZINAMENTO e la DIFFUSIONE dell’informazione La parola “informatica” deriva dal francese “informatique”, che a sua volta deriva dalla compressione di “information” e “electronique”/”automatique”. Elementi funzionali dell’informatica sono i SISTEMI DI ELABORAZIONE DELL’INFORMAZIONE, ovvero i COMPUTER.

  • COMPUTER (inglese): letteralmente significa “calcolatore”, in diretta discendenza dalle calcolatrici, prima meccaniche, poi elettromeccaniche e poi elettroniche
  • ELABORATORE (italiano): sottintende un processo prossimo all’intelligenza umana
  • ORDINATEUR (francese): letteralmente significa “ordinatore”, a sottolineare le sue capacità di organizzare i dati (oggi le informazioni) HARDWARE (HW) e SOFTWARE (SW) sono i due pilastri su cui si regge l’informatica. CICLO DI ELABORAZIONE DELL’INFORMAZIONE I DATI sono la materia prima del trattamento dell’informazione. Si distinguono:
  • DATI SEMPLICI: numeri, caratteri, date
  • DATI COMPLESSI: immagini, grafici, filmati, suoni, animazioni (la gestione di tali dati è resa possibile dalla potenza raggiunta dagli elaboratori nell’ultimo ventennio) Le fasi del ciclo di elaborazione dell’informazione sono:
  1. INPUT: la fase di input consiste nell’immissione di dati nel computer. I dispositivi di input più comuni sono la tastiera, lo scanner, il mouse, il microfono e la webcam. I dati da inserire possono essere testi, numeri, immagini o suoni.
  2. ELABORAZIONE: una volta inseriti nel computer i dati possono essere elaborati; ad esempio, si può paragonare, classificare o sommare numeri, formattare un testo o creare immagini e suoni.
  3. OUTPUT: per vedere (o ascoltare) il risultato dell’elaborazione sono necessari dei dispositivi di output, come lo schermo, la stampante e gli altoparlanti. Le informazioni ottenute possono anche essere sottoposte ad un’ulteriore elaborazione, ad esempio, per integrare i suoni e le immagini in una presentazione multimediale.
  4. MEMORIZZAZIONE: i dati e i programmi al momento non utilizzati vengono memorizzati su appositi nastri o dischi in modo da poter essere recuperati in qualsiasi momento.
  5. DISTRIBUZIONE: i dati possono essere stampati e distribuiti, oppure trasmessi direttamente da un computer all’altro; un esempio è l’invio di documenti come allegati della posta elettronica o attraverso un sito web. APPLICAZIONI DELL’INFORMATICA
  • GESTIONE AZIENDALE o Transazioni con fornitori, dipendenti e clienti o Analisi finanziarie (analisi di spesa, investimenti, vendite…) o Lavoro d’ufficio (office automation) o DSS (Decision Support System) e Data Mining

Nota bene: o SISTEMA INFORMATIVO AZIENDALE: insieme di tutti i dati e tutti i processi che riguardano la raccolta, l’archiviazione, l’elaborazione, la distribuzione dei dati nelle attività operative e di controllo o SISTEMA INFORMATICO: insieme delle risorse tecnologiche facenti parte (a supporto) del sistema informativo aziendale

  • PROGETTAZIONE DI PRODOTTI COMPLESSI o Tecniche CAD (Computer Aided Design, ovvero “progettazione assistita dal computer”), usate, ad esempio, per la modellizzazione 2D/3D di oggetti, ambienti…
  • PRODUZIONE DI PRODOTTI o Tecniche CAM (Computer Aided Manufactoring, ovvero “fabbricazione assistita dal computer), usate, ad esempio, in fase di produzione per controllare i sistemi robotizzati che creano, rifiniscono, assemblano e testano i prodotti e i loro componenti
  • HOME BANKING
  • E-GOVERNMENT
  • MEDICINA E SALUTE
  • E-JOB
  • ISTRUZIONE E FORMAZIONE
  • E-COMMERCE
  • SISTEMA DI NAVIGAZIONE GLOBALE (GPS) DIGITAL DIVIDE L’impossibilità di avvicinarsi alla tecnologia oggi chiude qualsiasi possibilità di recupero economico di molti Paesi, aumentando così ulteriormente il DIVARIO DIGITALE. Attività di contrasto al digital divide potrebbero essere:
  • Riutilizzo degli hardware (il cosiddetto TRASHWARE)
  • Utilizzo del SOFTWARE LIBERO (GNU/Linux, Mozilla Firefox, OpenOffice…) DIREZIONI E TREND
  • Tre direzioni dello sviluppo dei computer:
  1. Miniaturizzazione
  2. Velocità
  3. Economia (diminuzione prezzi)
  • Informatica pervasiva (negli elettrodomestici, nelle automobili, negli smartphone…)
  • Convergenza con la telecomunicazione

LEZIONE 2

SEGNALE DIGITALE E SEGNALE ANALOGICO

I segnali ANALOGICI sono dei segnali complessi che possono assumere infiniti valori e sono molto sensibili alle interferenze (rumore).

  • Sistema ottale, che utilizza: r = 8 e d = 0,1,2,3,4,5,6,
  • Sistema esadecimale, che utilizza: r = 16 e d = 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F o Da binario a esadecimale (ogni cifra esadecimale corrisponde a 4 bit perché con 4 bit si può rappresentare come valore max il 15 che corrisponde al max valore rappresentabile con il sistema esadecimale, ovvero F) → 1100 0110 = C 6 RAPPRESENTAZIONE BINARIA Per fare in modo che la comunicazione tra mondo esterno e computer sia possibile è necessario utilizzare la rappresentazione binaria basata su delle sequenze di 0 e 1, cioè è necessario che le INFORMAZIONI provenienti dal mondo esterno siano CODIFICATE in linguaggio binario in modo che siano comprese dalla macchina. Le informazioni possono essere:
  • TRADIZIONALI o Numeri (interi, positivi e negativi, reali…) o Testi
  • MULTIMEDIALI o Immagini fisse (vettoriali, bitmap) o Audio o Video Per la codifica si utilizzano dei CODICI universalmente riconosciuti, come:
  • Codice ASCII (American Standard Code for Information Interchange) → Ogni carattere è codificato con 7 bit e in questo modo è possibile ottenere 128 caratteri diversi
  • Codice ASCII ESTESO → Ogni carattere è codificato con 8 bit e in questo modo è possibile ottenere 256 caratteri diversi
  • UNICODE → Ogni carattere è codificato con 16 bit e in questo modo è possibile ottenere 2^16 = caratteri BIT, BYTE E WORD L’unità atomica è il BIT. Esiste una particolare aggregazione di bit costituita da 8 BIT che prende il nome di BYTE. Di solito si usano i multipli del byte:
  • KILO (KB) = 2^10 (1024 byte)
  • MEGA (MB) = 2^20 (1KB*1024)
  • GIGA (GB) = 2^30 (1MB*
  • TERA (TB) = 2^40 (1GB*1024)
  • PETA (PB) = 2^50 (1TB*1024) Un’altra aggregazione è costituita dall’insieme di 16, 32 o 64 bit ed è detta WORD: la dimensione di tale insieme di bit rappresenta un’importante caratteristica del calcolatore considerato. Essa influenza:
  • La lunghezza degli indirizzi
  • La dimensione dei registri del processore
  • La larghezza dei bus (word o multipli di essa)

INTERVALLI DI VARIABILITÀ

Il bit può assumere 2 configurazioni e il suo intervallo di variabilità è (0,1). Il byte, invece, può assumere 256 configurazioni (perché 1 byte = 8 bit e ciascun bit ha 2 configurazioni, quindi 1 byte = 2^8 configurazioni) e il suo intervallo di variabilità dipende dal tipo di CODIFICA (se codifico in binario l’intervallo va da 00000000 a 11111111, se codifico in decimale va da 0 a 255…). BIT NECESSARI E OVERFLOW Le macchine hanno VINCOLI SPAZIALI e pertanto è necessario conoscere il massimo valore rappresentabile. Per esempio, con n bit si può rappresentare al massimo il numero 2n- 1 (ad esempio, con 4 bit si può rappresentare al massimo 2^4 - 1, ovvero 15). Da qui, è facile determinare che per poter rappresentare fino ad X sono necessari un numero n di bit pari a [log 2 X]. Esiste un limite al numero di bit impiegati per rappresentare un numero: dato che la rappresentazione è formata da un numero finito di bit, se si supera tale limite si ha errore (OVERFLOW).

LEZIONE 3

IL SOFTWARE

Il software implementa le funzionalità di un sistema di elaborazione. Esistono due categorie fondamentali di software:

  1. SOFTWARE DI SISTEMA
  • Compilatore di LINGUAGGI DI PROGRAMMAZIONE
  • SISTEMI OPERATIVI: sono i programmi che fanno funzionare i vari componenti del computer. Essi gestiscono le risorse del sistema in maniera trasparente all’utente. Hanno subito nel corso del tempo un graduale ampliamento delle loro funzioni (connessione ad una rete, gestione del suono/video…). Appena le nuove funzionalità si diffondono vengono assorbite dal sistema operativo. Le funzioni principali del sistema operativo sono: o Gestire risorse dell’elaboratore o Controllare che le operazioni vengano eseguite in modo regolare o Determinare dove memorizzare dati e programmi (gestire la memoria) o Coordinare la comunicazione tra i vari componenti del computer o Gestire l’interazione tra l’utente e i programmi applicativi → Di questo si occupa l’INTERFACCIA UTENTE, che rappresenta il mezzo con cui l’utente si interfaccia con il SISTEMA OPERATIVO. Essa è l’interprete dei comandi che l’utente dà al computer. Si distinguono: ▪ Interfaccia A CARATTERI (o a linea di comando) ▪ Interfaccia GRAFICA (GUI), sviluppata per la prima volta al XEROX PARC. Oggi ne esistono diverse: ✓ Windows di Microsoft ✓ Aqua di Apple ✓ KDE e GNOME per Linux Le caratteristiche comuni alle interfacce grafiche sono: ✓ Interfaccia a finestre ✓ Funzioni attivabili tramite click del mouse ✓ Impiego della tecnologia WYSIWYG (What You See Is What You Get) ✓ Standardizzazione dei comandi tra le diverse applicazioni
  • Fornisce un insieme di operazioni più semplici da utilizzare rispetto a quelle del livello sottostante
  • È costituito dall’insieme di operazioni fornite dal livello immediatamente sottostante CARATTERISTICHE DEL CALCOLATORE Un calcolatore è formato da:
  • Unità di elaborazione
  • Unità di controllo Le funzioni del calcolatore:
  • Preleva le istruzioni dalla memoria
  • Interpreta i codici di istruzioni
  • Effettua le azioni che i codici prevedono, cioè esegue sequenze di istruzioni memorizzate (un insieme organizzato e finito di istruzioni è un programma) MACCHINA DI VON NEUMANN: COMPONENTI DI UN CALCOLATORE Burks, Goldstein e Von Neumann sono stati i primi a proporre che il codice del programma potesse essere memorizzato nella stessa memoria dei dati. Solo l’interpretazione da parte della CPU stabilisce se una data configurazione di bit è da ritenersi un dato o un’istruzione. Gli elementi principali sono:
  • BUS: il bus è una linea a cui sono contemporaneamente connesse le unità del calcolare e che consente il trasferimento di dati tra tali unità. Il problema del bus è che essendo uno è conteso dalla CPU, dalla RAM e dalle periferiche. La soluzione è detta MASTER-SLAVE, ovvero significa che la CPU (master) ha la priorità sulle periferiche (slave). I pregi della soluzione master-slave sono: o SEMPLICITÀ: una sola linea di connessione per diversi dispositivi o ESTENDIBILITÀ: nuovi dispositivi possono essere aggiunti tramite un’interfaccia al bus senza influenzare l’hardware preesistente

o STANDARDIZZAZIONE: definizione di normative che consentono a periferiche a periferiche di costruttori diversi di interagire correttamente I difetti della soluzione master slave sono: o LENTEZZA: l’uso in mutua esclusione del bus inibisce, almeno parzialmente, la parallelizzazione delle operazioni di trasferimento di dati tra dispositivi o LIMITATA CAPACITÀ: al crescere del numero di dispositivi la presenza di una sola linea comporta un limite alla capacità di trasferire dati o SOVRACCARICO DELLA CPU: l’unità centrale viene coinvolta in tutte le operazioni di trasferimento di dati Esistono 3 divisioni all’interno del bus: o BUS DATI, usato per trasferire dati o BUS INDIRIZZI, che identifica la posizione delle celle di memoria in cui la CPU va a scrivere o leggere o BUS DI CONTROLLO, in cui transitano i segnali di controllo che consentono di selezionare le unità coinvolte in un trasferimento (sorgente e destinazione) e di definire la direzione dello scambio (scrittura o lettura)

  • MEMORIA (RAM): memoria centrale in cui vengono salvati i dati durante il funzionamento del computer
  • CPU: la CPU (Central Processing Unit) è il processore del computer. Essa è composta dai seguenti elementi: o UNITÀ DI CONTROLLO, che legge le istruzioni dalla memoria e ne determina il tipo: ▪ Istruzioni ARITMETICO LOGICHE ✓ Somma, sottrazione, divisione… ✓ And, or, xor… ✓ Maggiore, minore, uguale… ▪ Istruzioni di CONTROLLO DEL FLUSSO (delle istruzioni stesse) ✓ Sequenza ✓ Selezione ✓ Ciclo a condizione iniziale, a condizione finale… ▪ Istruzioni di TRASFERIMENTO di informazioni ✓ Trasferimento dati e istruzioni tra CPU e memoria ✓ Trasferimento dati e istruzioni tra CPU e dispositivi di input/output o UNITÀ ARITMETICO-LOGICA, che è costituita da un insieme di circuiti in grado di svolgere le operazioni di tipo aritmetico e logico necessarie per eseguire le istruzioni o REGISTRI, che sono delle memorie ad alta velocità usati per i risultati temporanei e che determinano il parallelismo della CPU. I dati contenuti nei registri, per raggiungere l’ALU, seguono un percorso prestabilito detto DATA PATH. Esistono: ▪ Registri GENERICI (R0, R1, R2, …, Rn) ▪ Registri SPECIFICI ✓ IR (Instruction Register), usato per contenere il codice dell’istruzione in corso di esecuzione. Viene caricato in fase di fetch (vedi ciclo macchina) e determina le azioni svolte durante la fase di esecuzione ✓ PC (Program Counter), che tiene traccia dell’esecuzione del programma e contiene l’indirizzo di memoria in cui è memorizzata la prossima istruzione da eseguire

LEZIONE 5

ALGEBRA BOOLEANA

George Boole era un matematico inglese del XIX secolo. La sua algebra iniziò ad essere utilizzata solo dall’inizio del XX secolo con la nascita dei primi sistemi di calcolo. Essa si basa su VARIABILI BOOLEANE (o variabili logiche) aventi due soli possibili valori:

  • VERO, corrispondente a 1
  • FALSO, corrispondente a 0 Usando le variabili booleane si possono costruire le FUNZIONI BOOLEANE (o funzioni logiche), ad esempio F(x,y,z). Ogni funzione booleana è caratterizzata dalla propria TABELLA DI VERITÀ, che rappresenta tutte le possibili combinazioni che possono assumere le variabili della funzione: x y z F 0 0 0 1 0 0 1 0 0 1 0 1 0 1 1 1 1 0 0 0 1 0 1 X 1 1 0 0 1 1 1 0 A seconda del valore assunto da F si distinguono:
  • Funzioni COMPLETAMENTE SPECIFICATE, se per tutte le combinazioni di variabili il valore di F è determinato (0 e 1)
  • Funzioni NON COMPLETAMENTE SPECIFICATE, se a uno o più combinazioni di variabili non corrisponde alcun valore della funzione (X) Oltre alle variabili ci sono anche le COSTANTI. Essendo l’algebra booleana definita su soli due simboli, esistono due sole costanti: 0 e 1. Tra le variabili e le costanti possono intervenire delle relazioni. Esistono due tipologie di operatori:
  • MONADICI
  • DIADICI Gli operatori sono:
  • NOT (-): il risultato è il complemento dell’unica variabile o Se x=0, NOTx= o Se x=1, NOTx=
  • AND (*): il risultato è vero se e solo se sono vere entrambe le variabili o Se x=0 e y=0, xANDy= o Se x=0 e y=1, xANDy= o Se x=1 e y=0, xANDy= o Se x=1 e y=1, xANDy=
  • OR (+): il risultato è vero se e solo se è vera almeno una delle variabili o Se x=0 e y=0, xORy= o Se x=0 e y= 1 , xORy= o Se x=1 e y=0, xORy= o Se x=1 e y= 1 , xORy=
  • XOR: il risultato è vero se e solo se è vera solo una delle variabili (se le variabili sono concordi il risultato è 0, se le variabili sono discordi il risultato è 1) o Se x=0 e y=0, xXORy= o Se x=0 e y=1, xXORy= o Se x=1 e y=0, xXORy= o Se x=1 e y=1, xXORy= Con gli operatori NOT, OR, AND e XOR si possono costruire tutte le funzioni booleane. Esistono due operatori, NAND e NOR, che permettono la sintesi di qualsiasi funzione:
  • NAND: il risultato è vero solo se è falso l’AND tra le due variabili o Se x=0 e y=0, xANDy= o Se x=0 e y=1, xANDy= o Se x=1 e y=0, xANDy= o Se x=1 e y=1, xANDy=
  • NOR: il risultato è vero solo se è falso l’OR tra le due variabili o Se x=0 e y=0, xORy= o Se x=0 e y=1, xORy= o Se x=1 e y=0, xORy= o Se x=1 e y=1, xORy= Un insieme di variabili e/o costanti booleana a cui siano applicati gli operatori logici si dice ESPRESSIONE BOOLEANA (o espressione logica). Un’espressione logica rappresenta una funzione logica PROPRIETÀ DELL’ALGEBRA BOOLEANA
  • TEOREMA DI ANNULLAMENTO o X * 0 = 0 o X + 1 = 1
  • TEOREMA DI IDENTITÀ o X * 1 = X o X + 0 = X
  • TEOREMA DI IDEMPOTENZA o X * X = X o X + X = X
  • TEOREMA DI COMPLEMENTAZIONE o X * X = 0 o X + X = 1
  • PROPRIETÀ COMMUTATIVA o X * Y = Y * X o X + Y = Y + X
  • PROPRIETÀ DISTRIBUTIVA o X * (Y + Z) = X * Y + X * Z o X + (Y * Z) = (X + Y) * (X + Z)
  • TEOREMA DI ASSORBIMENTO o X * (X + Y) = X o X + (X * Y) = X o X * (X + Y) = X * Y o X + (X * Y) = X + Y

non ha alcun valore: è necessario quindi inizializzare la variabile B scrivendo ad esempio “B=0” (assegnamento) oppure “leggi B” (istruzione di input).

  1. VALUTAZIONI DI ESPRESSIONI: l’esecutore (chiunque esegue l’algoritmo) è in grado di valutare espressioni aritmetiche ed assegnarle alla relativa variabile. Si rappresentano graficamente mediante RETTANGOLI e testualmente (con lo pseudocodice) con espressioni del tipo “B=5(82- 35)/7” (inizializzazione) e “A=(B+34)/B2” (valutazione)
  2. STRUTTURE DI CONTROLLO/SELEZIONE: servono per modificare il flusso sequenziale di esecuzione delle operazioni. Si rappresentano graficamente con dei ROMBI e testualmente (con lo pseudocodice) in vari modi a seconda di ciò che serve rappresentare (ad esempio “A<0?”) ESEMPI DI ALGORITMI (vedi Power Point)
  • Leggere base B e altezza H e stampare l’area
  • Leggere due numeri X e Y e stampare il maggiore dei due
  • Leggere due numeri X e Y e scambiare loro valore
  • Leggere un numero e stampare un messaggio a seconda che sia primo o meno

LEZIONE 7

RETI DI COMPUTER

Le reti sono un componente fondamentale per la realizzazione di un sistema informativo. Senza la rete i computer non possono comunicare tra loro e le uniche modalità di decentralizzazione dell’elaborazione dell’informazione sono costituite da:

  • COLLEGAMENTO DI TERMINALI AD UN COMPUTER CENTRALE: l’elaborazione e la gestione dei dati sono concentrate sul computer, ma l’interazione tra computer e utenti è decentralizzata sui terminali (a poca distanza fisica dal computer)
  • TRASFERIMENTO DI FILE DA UN COMPUTER ALL’ALTRO, mediante connessioni punto-punto prive di un effettivo meccanismo di comunicazione bidirezionale Si parla di RETE DI COMPUTER quando effettivamente più sistemi di elaborazione autonomi (computer) possono dialogare tra loro scambiandosi informazioni attraverso un mezzo fisico di connessione e quando tale meccanismo di comunicazione e di scambio è replicabile su più computer, senza dipendere dalla specificità delle due macchine che comunicano tra loro. È molto importante la possibilità offerta dalle moderne tecnologie di rete di interconnettere tra loro reti diverse, anche mediante MEZZI TRASMISSIVI ETEROGENEI. Gli utilizzi che oggi facciamo delle reti di computer (utilizzate ormai, anche inconsapevolmente, prevalentemente da persone prive di competenze tecniche specifiche) sono numerosissime: scambio di informazioni (mail, messaggistica…), accesso a banche dati, accesso a servizi online, acquisti e transazioni finanziarie, giochi e divertimento… COME SI REALIZZA UNA RETE DI COMPUTER Una rete di computer si realizza attraverso le seguenti componenti:
  • COMPONENTI HARDWARE: i computer e i nodi della rete (router, gateway, switch…), ma anche i mezzi trasmissivi (cavi elettrici, cavi in fibra ottica, onde radio…)
  • COMPONENTI SOFTWARE: i programmi (in parte realizzati come componenti dei sistemi operativi) che consentono ai computer e ai nodi della rete di effettuare lo scambio di informazioni, con

particolare attenzione all’efficienza, all’affidabilità e (in parte) all’indipendenza dal media fisico (computer) con cui si realizza la connessione COMMUTAZIONE DI PACCHETTO - PACKET SWITCHING Nelle reti di trasmissione dati, l’informazione da inviare dalla sorgente (casa di un mio amico) al destinatario (casa mia) viene suddivisa in PACCHETTI trasmessi separatamente. Questa tecnica si definisce PACKET SWITCHING, o COMMUTAZIONE DI PACCHETTO, e permette di utilizzare il medesimo canale di comunicazione per alternare la trasmissione di dati da parte di più nodi di una stessa rete che condividono il canale. Come nella tecnica del multitasking, dove viene ripartito il tempo della CPU dedicato all’elaborazione dei diversi processi, nel packet switching il canale di comunicazione viene utilizzato in tempi diversi da diversi nodi della rete, alternando rapidamente le operazioni di trasmissione da parte dei diversi nodi in modo da dare l’impressione che tutti i nodi della rete stiano usando il canale contemporaneamente. Siccome il canale viene utilizzato contemporaneamente da più nodi, i pacchetti possono entrare in CONFLITTO tra di loro corrompendosi. La suddivisione in pacchetti permette però di rendere più efficiente la correzione degli errori: nel caso in cui si verifichi un errore nella trasmissione di un pacchetto non sarà necessario ripetere l’intera trasmissione, ma il mittente (sorgente) potrà limitarsi a trasmettere nuovamente solo il pacchetto che si è corrotto. I pacchetti vengono trasmessi sequenzialmente ma, anche a causa delle ritrasmissioni, possono arrivare in un ordine diverso da quello con cui sono stati spediti: sarà il destinatario ad occuparsi di ricostruire la SEQUENZA CORRETTA dei pacchetti per restituire l’integrità all’informazione trasmessa. RETE BROADCAST E PUNTO-PUNTO Dal punto di vista fisico una rete può essere:

  • BROADCAST o Si utilizza lo STESSO CANALE FISICO DI TRASMISSIONE, suddividendo la comunicazione in pacchetti o Ogni pacchetto contiene l’IDENTIFICATIVO DEL DESTINATARIO che riceve e legge il pacchetto di dati, gli altri nodi della rete (non destinatari) lo scartano o È possibile inviare pacchetti destinati a TUTTI i nodi della rete (trasmissione di tipo BROADCAST), oppure è possibile inviare pacchetti destinati ad ALCUNI nodi della rete (trasmissione di tipo MULTICAST)

▪ Linee telefoniche (DSL – Digital Subscriber Line; ISDN – Integrated Services Digital Network) ▪ Ponti radio ▪ Canali satellitari La distanza dei computer da collegare è un dato importante, perché per distanze diverse si utilizzano tecnologie trasmissive diverse, più adatte a coprire in modo efficiente brevi o lunghe distanze. IL SOFTWARE PER LE RETI Nella comunicazione tra computer sono due programmi a dialogare tra di loro. Nell’ambito del dialogo tra i due programmi spesso si distinguono due ruoli:

  • CLIENT, il software che inizia il dialogo collegandosi ad un server per accedere ad un servizio o ad una risorsa
  • SERVER, il software che è in attesa della connessione da parte di uno o più client e che fornisce il servizio o la risorsa richiesta Nel modello delle reti PEER-TO-PEER (letteralmente “da pari a pari”), ciascun nodo presente nella rete svolge simultaneamente il ruolo di server (offrendo servizi ad altri nodi) e di client (richiedendo servizi ad altri nodi). Il software (client e server che sia) per la gestione delle comunicazioni in rete è estremamente strutturato e si compone di MODULI suddivisi per LIVELLI. Ogni livello comunica solo con il livello soprastante e con quello sottostante:
  • Il livello più basso è quello FISICO, relativo alla gestione della trasmissione su un particolare media
  • Il livello più alto è quello più ASTRATTO, relativo all’interazione tra due applicazioni che operano su due end-point (due computer) distinti collegati in reta tra loro In fase di TRASMISSIONE, ogni livello aggiunge al pacchetto ricevuto dal livello sovrastante un HEADER, formando così un pacchetto più grande (il pacchetto viene detto “imbustato”). L’header contiene informazioni di servizio utili per lo scambio del pacchetto di dati:
  • Lunghezza del pacchetto
  • Numero progressivo del pacchetto nell’ambito dell’intero flusso di comunicazione
  • Data e ora in cui il pacchetto è stato prodotto (timestamp) In fase di RICEZIONE, invece, ogni livello riceve un pacchetto “imbustato” dal livello inferiore: il livello n scorpora l’header dal segmento contenente i dati veri e propri ed esegue anche dei CONTROLLI DI INTEGRITÀ del pacchetto sulla base delle informazioni contenute nell’header. Inoltre, il ricevitore ricostruisce il flusso di comunicazione originario concatenando i pacchetti ricevuti, non in base all’ordine di ricezione ma in base al numero progressivo presente nell’header del pacchetto. Una distinzione tra i diversi software di rete si effettua in base al numero di livelli di cui è composto e alla funzione assegnata a ciascun livello. Lo scopo di ciascun livello è quello di offrire dei servizi agli strati sovrastanti (nascondendo la complessità relativa all’implementazione del servizio stesso). In questo modo è come se due livelli paritari, entrambi di livello n sui due nodi della rete, parlassero tra loro mediante un PROTOCOLLO (insieme di regole) di livello n. In realtà, i due componenti di livello n comunicano tra loro attraverso i servizi offerti dai componenti di livello n- 1. Tra ogni coppia di livelli adiacenti è definita un’INTERFACCIA, che definisce:
  • Le OPERAZIONI PRIMITIVE che possono essere richieste al livello sottostante
  • I SERVIZI che possono essere offerti al livello sovrastante

Il software per le reti è, come già detto, suddiviso in livelli (LAYER). Ogni livello si occupa di una specifica problematica:

  1. Dialogo tra applicazione client e applicazione server
  2. Segmentazione in pacchetti e scambio dati
  3. Percorso sulla rete dal mittente al destinatario
  4. Connessione tra sorgente e ricevente, e correzione degli errori
  5. Aspetti fisici della trasmissione Vedi esempio slide 08/1. MODELLI E ARCHITTURE DELLE RETI Esistono MODELLI TEORICI per la definizione dell’architettura di una rete e ARCHETETTURE EFFETTIVE che di fatto costituiscono uno standard nel mondo delle reti. È un modello teorico il MODELLO ISO/OSI (Open Systems Interconnection), il quale:
  • Definisce il numero, le caratteristiche e le relazioni funzionali tra i livelli di un software di rete, ma non ne definisce i protocolli effettivi
  • Consiste in 7 LIVELLI, forse un po' troppo astratti e di difficile implementazione È un’architettura effettiva l’ARCHITETTURA TCP/IP (Trasmission Control Protocol/Internet Protocol), che:
  • Definisce, livello per livello, anche i protocolli effettivi
  • Consiste in 4 LIVELLI ARCHITETTURA TCP/IP (o STACK TCP/IP) L’architettura di rete TCP/IP è un INSIEME DI PROTOCOLLI che operano coordinati tra loro a vari livelli di uno STACK (letteralmente “pila”) costituito dai seguenti 4 LIVELLI:
  1. Livello 1: LIVELLO NETWORK ACCESS
  • Protocolli fisici per LAN e WAN
  • Include il LIVELLO FISICO e il LIVELLO DATA LINK del modello teorico ISO/OSI
  1. Livello 2: LIVELLO INTERNET
  • Protocollo IP (Internet Protocol) per l’indirizzamento e il routing dei pacchetti sul canale fisico verso la destinazione finale
  • Coincide con il LIVELLO NETWORK nel modello teorico ISO/OSI
  1. Livello 3: LIVELLO TRANSPORT
  • Protocollo TCP (Trasmission Control Protocol) per la frammentazione della comunicazione in pacchetti in uscita e il ri-assemblaggio degli stessi in ingresso per la ricostruzione dei dati originari (questo protocollo garantisce la consegna del pacchetto)
  • Protocollo UDP (User Datagram Protocol) per la frammentazione della comunicazione in pacchetti (questo protocollo NON garantisce né l’ordine né la consegna del pacchetto)
  • Coincide con il LIVELLO TRANSPORT del modello teorico ISO/OSI

Il livello data link IN TRASMISSIONE:

  • Riceve dal livello network un pacchetto di dati (formato binario)
  • Frammenta la sequenza di bit in FRAME dipendenti dal particolare protocollo fisico di trasmissione
  • Calcola un CHECKSUM (controllo degli errori) di ciascun frame
  • Passa il pacchetto formato dal frame e dal checksum al livello fisico sottostante, che lo spedisce come sequenza di bit Il livello data link IN RICEZIONE:
  • Riceve una sequenza di bit dal livello fisico
  • Ricostruisce i frame uno dopo l’altro
  • Ricalcola il checksum e verifica che sia uguale a quello contenuto nel frame
  1. Livello 3: LIVELLO NETWORK Il livello Network si occupa di TRASFERIRE IL PACCHETTO DI DATI dalla sorgente alla destinazione passando attraverso una serie di NODI INTERMEDI (routing, instradamento dei pacchetti…). In particolare, il livello Network si occupa di:
  • Conoscere la topologia della rete
  • Scegliere di volta in volta il cammino migliore per “instradare” i pacchetti (routing)
  • Gestire il flusso dei dati e la congestione della rete
  • Gestire problematiche relative alla interconnessione di reti diverse Il livello Network è particolarmente sofisticato sugli apparati router, proprio per l’implementazione di un ALGORITMO DI ROUTING efficiente. Gli algoritmi di routing possono essere:
  • ALGORITMI DI CAMMINO MINIMO: il pacchetto viene instradato verso la via che richiede un numero inferiore di HOP (passaggi per nodi intermedi) per giungere al router di destinazione
  • ALGORITMI DI FLOODING: il pacchetto viene inviato su tutti i cammini uscenti dal router, tranne quello attraverso cui il pacchetto è arrivato al router
  • ALGORITMI FLOW-BASED: viene calcolato il traffico sulle diverse linee uscenti dal router, tenendo conto della loro capacità trasmissiva e, in base a questi dati, si stabilisce su quale linea inviare il pacchetto Il livello network è realizzato mediante il PROTOCOLLO IP, che si occupa di:
  • TRAFFICO IN USCITA o Ricevere i dati dal livello transport (livello soprastante) e incapsularli in PACCHETTI IP o Instradare i pacchetti sulla rete mediante il livello data link (livello sottostante)
  • TRAFFICO IN INGRESSO o Riassemblare i pacchetti ricevuti dai livelli sottostanti (possono essere frammentati) o Spacchettare il pacchetto IP, verificarlo ed estrarre i dati del livello transport (livello soprastante) o Consegnare i dati al livello transport nell’ordine in cui questi sono arrivati (che può essere un ordine diverso da quello con cui sono stati spediti) Un PACCHETTO IP è una SEQUENZA DI BYTE costituita da un header e da un segmento di dati. La parte HEADER contiene:
  • La VERSIONE del protocollo
  • La LUNGHEZZA dell’header e la lunghezza totale del pacchetto
  • Un IDENTIFICATIVO del pacchetto e un PROGRESSIVO del frammento nel caso il pacchetto IP debba essere ricostruito assemblando più frammenti
  • Il TIME TO LIVE, ossia un contatore che viene decrementato di uno ad ogni passaggio per un nodo intermedio nella rete: quando arriva a zero il pacchetto viene scartato
  • L’indirizzo (tra cui l’INDIRIZZO IP) del MITTENTE e del DESTINATARIO
  • Altre informazioni opzionali Un INDIRIZZO IP è composto da 32 bit, suddivisi in 4 gruppi da 8 bit (4 byte). L’indirizzo IP, assegnato ad ogni interfaccia di un nodo della rete per identificarlo UNIVOCAMENTE, contiene due informazioni distinte:
  • L’IDENTIFICATIVO DELLA RETE in cui si trova l’host
  • L’IDENTIFICATIVO DELL’HOST all’interno della rete (uno stesso host può essere identificato da più indirizzi IP) L’insieme dei 32 bit che costituiscono l’indirizzo IP viene ripartito tra BIT RISERVATI ALL’IDENTIFICAZIONE DELLA RETE e BIT RISERVATI ALL’IDENTIFICAZIONE DELL’HOST in base al numero di host che devono essere indirizzati in una stessa rete: se devo assegnare indirizzi a molti host, allora riserverò più bit all’identificazione degli host e meno bit all’identificazione della rete. Gli indirizzi IP di rete sono distinti in TRE DIVERSE CLASSI, a seconda del numero di bit riservati all’identificazione della rete o degli host:
  • CLASSE A: 126 reti che possono contenere 16 milioni di host ciascuna
  • CLASSE B: 6.382 reti con circa 64.000 host ciascuna
  • CLASSE C: 2 milioni di reti con 254 host ciascuna Gli indirizzi IP che identificano le reti connesse direttamente ad Internet (reti che sono una porzione della rete Internet) vengono assegnati alle organizzazioni che ne fanno richiesta (aziende, enti pubblici, associazioni…) da organismi nazionali detti NIC (Network Information Center). A livello mondiale, il registro di assegnazione degli indirizzi IP viene gestito da ICANN (Internet Corporation for Assigned Names and Numbers) e dalla sua organizzazione controllata denominata IANA (Internet Assigned Numbers Authority). In Europa, il registro degli indirizzi IP è gestito da RIPE NCC (Réseaux IP Européens – Network Coordination Centre). In Italia, il registro è gestito da NIC-IT. Oltre agli indirizzi che identificano le reti connesse direttamente ad internet, sono disponibili anche identificativi per RETI IP PRIVATE, cioè non connesse direttamente ad Internet: per l’uso di identificativi riservati alle reti private non è necessario ottenere alcuna autorizzazione da enti di gestione. Per le reti private sono riservate le seguenti classi IP:
  • 1 rete della classe A
  • 16 reti della classe B
  • 256 reti della classe C Per collegare alla rete pubblica Internet una rete con indirizzi IP privati, è necessario utilizzare un apparato (gateway) che esegua il NAT (Network Address Translation), ossia rimappi gli indirizzi IP privati su uno o più indirizzi IP pubblici. Il SISTEMA OPERATIVO di ogni host è configurato con l’indicazione di:
  • Indirizzo IP dell’host
  • MASCHERA DI SOTTORETE, per ricavare l’identificativo della rete (serve per capire se gli host appartengono alla stessa rete oppure no)