You are on page 1of 54

NOTA:

Questi sono appunti presi a lezione da alcuni studenti e


NON sono stati ancora corretti.
Essi rappresentano pertanto una traccia delle lezioni tenute
durante il corso ma NON devono essere considerati
affidabili.
Questi appunti rappresentano pertanto soltanto una
indicazione degli argomenti trattati.
a. giordano, 1 Dicembre 2012

INDICE
Introduzione: Cenni storici sui calcolatori
Il sistema operativo
Approfondimento

CPU/ Microprocessori
Approfondimento

Dalla rete telefonica a quella dati


Esempi di reti

Audio e video nei calcolatori


Audio
Video

pag. 2
pag. 8
pag. 11

pag. 14
pag. 20

pag. 22
pag. 23

pag. 28
pag. 28
pag. 29

Internet: come funziona la rete

pag. 32

Approfondimento

pag. 39

Crittografia

pag. 46

Calcolatori su rete Ethernet

pag. 48

Approfondimento

pag. 50

I primi calcolatori erano macchine di dimensioni notevoli che avevano come obiettivo quello di
risolvere calcoli complessi ( anni 80).
Come noto, un qualunque fenomeno fisico o naturale descrivibile mdiante uninsieme di
formule matematiche ovvero in un MODELLO MATEMATICO di entit variabile e cos facendo i
problemi possono essere univocamente descritti e trattati da chiunque possa avere conoscenze
matematiche.
Pi il fenomeno complesso o pi lo si vuole descrivere in dettaglio e con minori approsimmazioni,
pi diventa complicato il modello matematico e nasce quindi la necessit di disporre di uno
strumento in grado di trattare il modello stesso: il calcolatore.
Fino agli anni 80 i componenti degli elaboratori erano tridimensionali perch vi era la necessit
di maneggiarli ( prenderli, montarli ecc..), con il passare del tempo transistor e resistenze vengono
stampati analogamente ad un processo fotografico: nascono i Circuiti Integrati VLSI(1974). Uno
degli ultimi calcolatori tridimensionali famosi e cio costruiti con componentistica non VLSI il
PDP11 della Societ Digital. Verso il 1980 compare il primo personal computer.
Da questo momento i prezzi iniziano a calare in modo sempre pi significativo e si entra nellottica
di utilizzare il computer per innumerevoli altri compiti per i quali, nel passato, non ne sarebbe stato
giustificato limpiego.
Oggi i calcolatori sono praticamente presenti dappertutto.
Gli schemi di principio e di funzionamento di base di un calcolatore degli anni 80 e di uno di oggi
sono praticamente gli stessi e possono essere rappresentati secondo la rappresentazione di von
Neumann mediante tre principali blocchi funzionali.

ARCHITETTURA DI VON NEUMANN


La CPU o
microprocessore la
parte operativa. Essa
adibita al comando
e a far funzionare
tutto il resto.

CPU

Memoria

La memoria la
sede di dati e
istruzioni.

Esempio: processore
(anni 80) 8080 .
PENTIUM (ieri)
Input /
Output
Modem
Tastiera
Mouse
Schermo
Stampante
Hard disk .

Il blocco I/O
(ingresso, uscita)
consente al pc di
interagire con il
mondo circostante.

Bit e Byte
I computer sono in grado di determinare se in un collegamento elettrico fluisce corrente oppure no
ed grazie a questa abilit che si potuto creare un alfabeto interno mediante il quale la macchina
pu trattare i dati provenienti dallesterno.
Questo sistema di codifica chiamato alfabeto binario e si basa su sequenze di zeri e uni logici
associati agli stimoli elettrici che chiameremo BIT ( BInary- digiT).
Il computer legger un (1) in presenza di corrente e uno (0) in caso contrario cio in assenza.
In termini di Volt in gioco avremo:
per lo (0) = 0 Volt
4

per l(1) = 3,6 Volt ( nell8080 invece all(1) corrispondevano 5 Volt)


Il bit la pi piccola unit di trasmissione dati; per avere qualcosa di pi sostanzioso necessario
parlare di Byte ossia un insieme di 8 bit.

Operazioni elementari nei calcolatori di una volta


8 bit

Cella di
memoria

Situazione iniziale:
Ho 216 celle di memoria ognuna contenente
8 bit.
La prima ha indirizzo 0000H mentre
lultima FFFFH.

64kb
per
il
mod.
8080

La memoria riconosce 16 fili, gli Address


bus, che trasmettono sequenze di zeri e uni.
Il Data bus composto da 8 fili si occupa del
collegamento tra la memoria e la CPU.
Un ulteriore filo chiamato RW consente
alla memoria di conoscere il compito alla
quale deve sopperire sia esso lettura o
scrittura.

F F F F H

esadecimale

4 bit 4 bit 4 bit 4 bit

16 bit

Supponiamo sia presente nel calcolatore un programma in grado di trasformare numeri.


Allaccensione del pc la Cpu invia alla memoria lordine di leggere la prima cella di memoria dove
collocato il codice operativo della prima istruzione da eseguire.

1 ISTRUZIONE:

3A
98

LINGUAGGIO ASSEMBLER
3A = MOV A, 98 (consente di spostare
lindirizzo successivo nel registro di A)
Nella CPU una locazione di memoria
corrisponde ad un REGISTRO.
1 istruzione
=
Codice operativo
+
dato

REG A
98
CPU

2 ISTRUZIONE:

3A

2B = MOV B, 13

98

2B
13

2 istruzione

Il comando svolge la funzione riportata in


calce per ottenere a livello di CPU questo
risultato:

REG A
98

REG B
13

CPU

3 ISTRUZIONE:
3A

ADD A,B

98

ununica istruzione fatta di un solo byte che


permette di eseguire la somma e
ottenere il risultato in A.

2B
13

REG A
AB

3F

N.B. Si possono avere al massimo 256 informazioni diverse.


4 ISTRUZIONE:
4A

MOV 1234, A

12

Il contenuto di A viene spostato nella


locazione di memoria con indirizzo 1234.

34

Quando viene dichiarata una variabile le si


associa unallocazione di memoria.
Viene letta listruzione 4A ma per poter
essere completata necessario ricavare
lindirizzo dai due byte successivi; per
questo che il risultato sar collocato nella
cella 1234H.
AB

1234H

Operazioni
7

Shift (SHL) Sposta tutto di una posizione a destra o a sinistra. Equivale a moltiplicare per due.
Jump(JNZ) a seconda del valore in entrata, salta da una parte allaltra della memoria.
Chi fabbrica microprocessori deve creare un codice che soddisfi le varie esigenze a cui deve
sopperire.
Esistono due classi di microprocessori:
CISC (complex instruction set computer)
RISC (reduced instruction set computer)
La famiglia pi usata la CISC, ma lideale sarebbe un compromesso tra le due.
I coprocessori matematici sono circuiti integrati aventi una struttura tabellare multidimensionale in
cui entrano n variabili ed escono m risultati. Essi vengono principalmente utilizzati per fare
calcoli come somme e moltiplicazioni e consentono di ottenere il risultato in un unico passaggio. In
genere sono collegati alla CPU tramite un BUS poich ad essi manca la funzione di passare le
informazioni in memoria.
La velocit del collegamento CPU-MEMORIA dipende dalle dimensioni dellintero sistema.
Il tempo di accesso alla memoria di 10-100 nano secondi.
Il problema pi rilevante infatti, quello dello spazio.
Elementi come la CPU o i microprocessori stessi, essendo circuiti integrati, devono mantenere
dimensioni molto ridotte. Laumento di queste comporta un possibile incremento dei difetti
strutturali e quindi il relativo mal funzionamento dei vari componenti.
Dagli anni 80 in poi inizia lo studio strutture che ottimizzano il funzionamento degli accessori
come scheda video, scheda audio ecc, ma lo schema di base del calcolatore rimane invariato.

IL SISTEMA OPERATIVO

APPLICATIVI

SISTEMA OPERATIVO

BIOS
HARDWAREEE

Il sistema operativo un software che gestisce direttamente lhardware della macchina. Esso
formato da applicativi (es word, campo minato) che consentono di comunicare direttamente con il
computer, e che sono studiati per un particolare sistema operativo (es word di windows su linux non
viaggia). Il BIOS invece comune a tutti i sistemi operativi.

Facciamo un esempio: un evento qualcosa di asincrono che non dipende dal programma.
Consideriamo levento muovo il mouse:

CPU

MEM

INT
Il collegamento INT ha un piedino che fa arrivare
alla CPU il segnale zero. Questo significa che
I/O

successo qualcosa. La Cpu quindi legge lindirizzo


che arriva da I/O e lo manda in memoria dove c la
mouse

la routine per servire lI/O.

Nella CPU sono presenti un set di registri:


Program Counter
Stack Pointer
0000H
00001
Lo stack pointer un indirizzo che continua a spostarsi in avanti e indietro tenendo conto di
dove deve tornare; consente di annidare le informazioni
400(funzionamento similare a quello
degli IF annidati)
SP
(stack pointer)

FFF
400

RET

Svolgo
loperazione
Parametri
di ritorno
FFFFH
Si verifica un evento
Salvo il lavoro
Svolgo loperazione dettata dallevento

Con Stack pointer torno al lavoro iniziale

10

Il primo S.O. si chiamava DOS (Dis Operative System 1985-1995), successivamente nato
windows. Non esisteva il mouse, si usava sola la tastiera e i caratteri alfanumerici. Quando il
calcolatore veniva acceso, sul monitor appariva la lettera C:\> che indicava lhard disk, la A
era il floppy disk.
C:\DATA\> questa scritta indicava che ci si trovava allinterno della cartella DATA.
I comandi e le istruzioni erano poche e semplici ad esempio:
COPY PIPPO-PLUTO era listruzione per copiare
.exe oppure .com

erano i nomi del programma e venivano usati per chiamarlo e usarlo.

Con DOS poteva girare un solo programma alla volta e quando ci avveniva non si poteva fare
nessun altra operazione. I programmi venivano lanciati con unistruzione di salto e se entravano in
un ciclo infinito non si poteva pi arrestarli e diventava necessario chiudere il computer.
La memoria era poca quindi non esistevano schede grafiche.
Windows 3.11 che girava sotto Dos, si prendeva carico di lanciare i programmi successivi, ed era
dotato di interfaccia grafica.
Windows 95 comunicava direttamente con il BIOS; era un sistema operativo multitasking dove
potevano girare pi task, ovvero pi programmi, e multiutente, cio permetteva a pi utenti di
usufruire del programma. Questo fu il primo esempio di time sharing, cio ogni task alternato
velocemente agli altri, ad esempio per un certo intervallo di tempo gira windows, poi Internet poi un
altro programma. Questa modalit utilizzata ancora oggi; il funzionamento avviene a scatti, ma
lutente non lo percepisce in quanto gli intervalli di tempo sono dellordine di 10 -6 secondi. Il
software gestisce la divisione dei tempi e il sistema operativo lo scheduler, tramite una tabella nella
quale si tiene conto di tutti i programmi che devono girare, linterapp interrompe un programma in
esecuzione, salva il contesto come una fotografia degli indirizzi e del contenuto della CPU, e parte
11

il programma successivo. Questo appena descritto, uno dei compiti principali del sistema
operativo multitasking, che permette di risparmiare tempo in quanto la CPU molto pi rapida
rispetto a tutto il resto.
Con la barra degli strumenti del desktop possibile accedere alla finestra dei processi del task
manager, dove sono elencati tutti i programmi che stanno girando in modo alternato e che hanno
definita una parte di memoria, parti di codice eseguito ognuno nel proprio contesto.
Socket una routine che permette ai programmi di dialogare tra di loro.
I Thread sono sottoprocessi che condividono la stessa parte di memoria, ad esempio con Visual
Basic possibile creare due finestre tali per cui quello che scrivo su una appare anche nellaltra. I
thread vengono generati da un processo e muoiono con esso. La gestione dei Thread avviene con un
meccanismo simile a un semaforo, e pu essere:
cooperativa: si gestiscono tra di loro
preventiva: stabilita dallutente a priori

APPROFONDIMENTO
In informatica, un sistema operativo (abbreviato in SO, o all'inglese OS, operating system) il
programma responsabile del diretto controllo e gestione dell'hardware che costituisce un computer e
delle operazioni di base. Si occupa anche di gestire gli accessi degli utenti e dei processi che
vengono eseguiti. Il sistema operativo l'interfaccia uomo-macchina
Il sistema operativo si compone di un sistema vero e proprio detto kernel e da una serie di
programmi di sistema.
Un generico sistema operativo moderno si compone di alcune parti ben definite: un gestore di file
system che si occupa di esaudire le richieste di accesso alle memorie di massa, un gestore di
memoria virtuale che alloca pagine di memoria a richiesta e si assicura che questa sia presente nella
memoria fisica al momento giusto, uno scheduler che assicura ai vari processi in esecuzione una
ben definita quantit di tempo di elaborazione, uno spooler che accumula i dati da stampare e li
stampa in successione, una interfaccia utente (shell o GUI) che permette agli esseri umani di
interagire con la macchina ed un kernel, fulcro del sistema, che gestisce il tutto. A seconda dei casi,
un particolare sistema operativo pu avere tutti questi componenti o solo alcuni. Vediamo ora una
serie di sistemi operativi possibili, dal pi semplice al pi complesso.
12

Praticamente il solo kernel, con una minima interfaccia interattiva per impartire i comandi. Permette
di scrivere in memoria il programma da eseguire e di lanciarlo, non ha nessuna altra caratteristica.
semplicissimo (per un computer), spesso i suoi comandi sono semplici chiamate dirette a subroutine
in linguaggio macchina, stato anche il primo tipo di sistema operativo mai implementato su un
computer. Controlla i processi base del sistema
Il secondo passo verso una migliore gestione del computer si ha con lo sviluppo di una interfaccia
utente separata dal kernel, un interprete di comandi che funga anche da interfaccia utente, da shell.
Questa shell primitiva di solito funge anche da interprete per un linguaggio di programmazione: a
seconda delle scelte dei progettisti del software pu essere un vero linguaggio oppure un pi
semplice linguaggio di scripting con cui creare comandi batch.
Un computer diventa molto pi utile se dotato di una memoria di massa: per gestirla serve un
gestore di file system, cio un insieme di funzioni che permetta di organizzare i dati sulla superficie
dei mezzi di memorizzazione secondo una struttura ben precisa. I sistemi operativi che risiedono su
disco (inizialmente floppy poi hard disk e altre piu' evolute unita' di massa) capaci di gestire un file
system sono detti genericamente Disk Operating Systems, cio DOS appunto. L'esemplare pi
famoso senz'altro il MS-DOS della Microsoft. Esiste anche una versione libera del dos,
denominata: FreeDOS.
Alcuni programmi non hanno sempre realmente bisogno della CPU: a volte, invece di eseguire
istruzioni stanno aspettando che arrivino dei dati da un file, o che l'utente prema un tasto alla
tastiera. Quindi si pu, in linea di principio, usare questi tempi "morti" per far girare un altro
programma. Questa idea, sorta fin dai primi anni 50, si concretizz nei sistemi operativi
multitasking, cio dotati di uno scheduler che manda in esecuzione pi processi (esecuzioni di
programmi) contemporaneamente, assegnando a turno la CPU ad ognuno e sospendendo
l'esecuzione dei programmi in attesa di un evento esterno (lettura sulla/dalla memoria di massa,
stampa, input utente ecc.) finch questo non si verifica.
Dovendo ospitare in memoria centrale pi programmi nello stesso tempo, i sistemi multitask hanno
bisogno di pi memoria rispetto a quelli monotask: perci questo tipo di sistemi operativi quasi
sempre dotato di un gestore di memoria virtuale.
Se un computer pu far girare pi programmi contemporaneamente, allora pu anche accettare
comandi da pi utenti contemporaneamente: in effetti dal multitasking alla multiutenza il passo
molto breve tecnicamente, ma fa sorgere una serie di nuovi problemi dal punto di vista della
13

sicurezza del sistema: come distinguere i vari utenti tra loro, come accertarsi che nessun utente
possa causare danni agli altri o alla macchina che sta usando ecc. Al giorno d'oggi, i diversi sistemi
operativi, come ad esempio il nuovo Windows CE 6 [1], sono progettati in modo che questo tipo di
operazioni avvengano nel pi breve tempo possibile, valorizzando, ad esempio, software come i
middleware, i driver, le interfaccia utente, e molti altri.
Questi problemi si risolvono assegnando un account univoco per ogni utente, assegnando un
proprietario ai file ed ai programmi e gestendo un sistema di permessi per l'accesso ad essi, e
prevedendo una gerarchia di utenti (cio di account) per cui il sistema rifiuter tutti i comandi
potenzialmente "pericolosi" e li accetter soltanto se impartiti da un utente in cima alla gerarchia,
che l'amministratore del sistema (generalmente l'account root nei sistemi Unix, Administrator
nei sistemi Windows).
Un sistema operativo real-time un sistema operativo utilizzato tipicamente in un ambito
industriale o comunque dove sia necessario ottenere una risposta dal sistema in un tempo massimo
prefissato. I sistemi operativi realtime si possono dividere in due categorie : hard e soft, a seconda
dei tempi di risposta.

14

CPU / MICROPROCESSORI
La CPU la parte pi significativa del calcolatore.
Al suo interno ci sono svariate scatolette che svolgono le principali operazioni.
Una di queste la ALU

8 BIT

8 BIT

ALU

Si occupa di operazioni di
somma e differenza tra BIT.
Entrano 8 BIT da una parte,
8 dallaltra e ne escono 8+1
(riporto)

8+1 BIT

Y
AND
XY
00
01
10
11

OR
Z
0
0
0
1

And = prodotto
logico

XY
00
01
10
11

Z
NOT

Z
0
1
1
1

Or = somma
logica

X
0
1

Z
1
0

15

Una volta:
AND
SN 7410
Ha 14 piedini
2 di alimentazione
12 di connessione
4 and

NOT
SN7404
14 piedini
6 not

Oggi in una ALU ci sono circa 200 piedini.


Vediamo come si fa una somma di 2 byte
B11

B2

0 1 0 1 0
0 0 1 1 0
C out

C in

0 0 0

16

b1
Cout

b2
FULL
ADDER

Sommatore completo perch


tiene conto del resto in
ingresso e in uscita

Cin

Se metto otto sommatori in fila ottengo il byte

X, 8 bit

Y, 8 bit
Carry

R, 8 bit

b1

b2

Cin

0
0
0
0
1
1
1
1

0
0
1
1
0
0
1
1

0
1
0
1
0
1
0
1

Cout

0
1
1
0
1
0
0
1

Traduciamo R1 in componenti :
17

B1

0
1
1
1

B2

1
1

R1

1
1
Cin

Traduciamo R2 in componenti:
0

B1
1
1
B2

R2
1
0

Cin

Traduciamo R3 in componenti:
B1
B2
R3
Cin
Traduciamo R4 in componenti:
B1
18

B2
Cin
N.B. il risultato influenzabile finch i carry non si sono propagati totalmente. Si poteva creare una
tabella da 16 bit dove ci sarebbero stati in uscita 9 bit di cui 8 che costituivano il byte risultato e 1
che rappresentava il carry (convenienza dal punto di vista dellimmediatezza).
Vediamo nel dettaglio cosa c dentro un operatore logico.

Piastrina di silicio.

Sezione ingrandita di un transistor MOS.

19

Il silicio una sostanza che si ritrova abbondantemente in natura ma difficile trovarlo allo stato
puro. Di solito viene usato il silicio drogato perch risulta essere un miglior conduttore.
Se si collega Source e Drain ad una batteria si ottiene il fenomeno della conduzione perch c
passaggio di corrente ma, se il numero di elettroni basso, la conduzione risulta minima. In
alternativa si pu collegare il Gate ad un operatore logico di 5V in modo che gli elettroni si
concentrino nella zona dellossido e si ottenga un buon conduttore.
D

5V

+
-

S
D

0V

20

5V

NOT
Z

AND
Z
5V

R
X

OR

Z
5V
X

Un COMPILATORE mediante codici di scrittura ad alto livello crea file eseguibili.

21

Un INTERPRETE legge pezzi di programma ad alto livello, li traduce in codice eseguibile e li fa


girare.

APPROFONDIMENTO
La CPU (acronimo di Central Processing Unit, detta comunemente processore)
l'implementazione fisica di uno dei due componenti della macchina di Turing (l'altro la memoria).
Compito della CPU quello di leggere le istruzioni e i dati dalla memoria ed eseguire le istruzioni;
il risultato della esecuzione di una istruzione dipende dal dato su cui opera e dallo stato interno della
CPU stessa, che tiene traccia delle passate operazioni.
In base all'organizzazione della memoria si possono distinguere due famiglie di CPU:

con architettura Von Neumann classica, in cui dati ed istruzioni risiedono nella stessa
memoria ( dunque possibile avere codice automodificante). Questa architettura la pi
comune, perch pi semplice e flessibile.

con architettura Harvard: i dati e le istruzioni risiedono in due memorie separate. Questa
architettura garantisce migliori prestazioni poich le due memorie possono lavorare in
parallelo ma pi complessa da gestire. tipicamente utilizzata nei DSP.

Qualunque CPU contiene:

una ALU (Unit Aritmetico-Logica) che si occupa di eseguire le operazioni logiche e


aritmetiche;

una Unit di Controllo che legge dalla memoria le istruzioni, se occorre legge anche i dati
per l'istruzione letta, esegue l'istruzione e memorizza il risultato se c', scrivendolo in
memoria o in un registro della CPU.

dei registri, speciali locazioni di memoria interne alla CPU, molto veloci, a cui possibile
accedere molto pi rapidamente che alla memoria: il valore complessivo di tutti i registri
della CPU costituisce lo stato in cui essa si trova attualmente. Due registri sempre presenti
sono:

22

il registro IP (Instruction Pointer) o PC (Program Counter), che contiene l'indirizzo


della cella in memoria della prossima istruzione da eseguire;

il registro dei flag: questo registro non contiene valori numerici convenzionali, ma
piuttosto un insieme di bit, detti appunto flag, che segnalano stati particolari della
CPU e alcune informazioni sul risultato dell'ultima operazione eseguita. I flag pi
importanti sono:

Flag di stato:

Overflow: indica se il risultato dell'operazione precedente troppo grande


per il campo risultato: 0 assenza di overflow,1 overflow

Zero: vale 1 se l'ultima operazione ha avuto risultato zero, altrimenti vale 0.

Carry: vale 1 se l'ultima operazione ha ecceduto la capacit del registro che


contiene il risultato, altrimenti vale 0 (esempio: in un registro a 8 bit, che pu
rappresentare solo numeri da 0 a 255, la somma 178+250 darebbe come
risultato 172 e il carry verrebbe posto a 1).

Segno: indica il segno del risultato dell'operazione precedente: 0 risultato


positivo,1 risultato negativo

Flag di controllo:

Interrupt: se a questo flag viene assegnato valore 1, la CPU smette di


rispondere alle richieste di servizio esterne delle periferiche (i segnali delle
linee IRQ) finch non viene ripristinato al valore 0, o finch non arriva
dall'esterno un segnale di RESET.

A proposto di registri le CPU si distinguono in:

basate su stack: i registri sono organizzati in una struttura a stack e tutte le istruzioni
operano esclusivamente su questo stack (ad esempio il Transputer); questa architettura ha il
vantaggio di non dover specificare su quale registro interno operare ( sempre quello in cima
allo stack), ottenendo istruzioni (opcodes) pi corte e pi semplici da decodificare. L'altra
faccia della medaglia che nel caso sia necessario un dato "sepolto" in fondo allo stack, il
suo recupero un'operazione molto lenta.

basate su registri: queste CPU sono dotate di ulteriori registri generici che restano a
disposizione dell'utente per memorizzarci valori temporanei. Le istruzioni possono accedere
a questi registri generici. La maggioranza delle CPU sono di questo tipo.

23

Una CPU un circuito digitale sincrono: vale a dire che il suo stato cambia ogni volta che riceve un
impulso da un segnale di sincronismo detto CLOCK, che ne determina di conseguenza la velocit
operativa, detta velocit di clock: quindi il tempo di esecuzione di una istruzione si misura in cicli di
clock, cio in quanti impulsi di clock sono necessari perch la CPU la completi. In effetti, una parte
importante e delicata di ogni CPU il sistema di distribuzione che porta il segnale di clock alle
varie unit e sottounit di cui composta, per fare in modo che siano sempre in sincronia: tale
sistema si dirama in una struttura ad albero con divisori e ripetitori che giunge ovunque nella CPU.
Nei processori pi moderni (Pentium, Athlon, PowerPC) questa "catena di ingranaggi" elettronica
arriva ad impiegare circa il 30% di tutti i transistor disponibili. La velocit di questa distribuzione
determina in maniera diretta la massima frequenza operativa di una CPU: nessuna CPU pu essere
pi veloce del suo critical path, cio del tempo che impiega il clock per percorrere il tratto pi
lungo in tutto l'albero di distribuzione del clock. Per esempio, se il segnale di clock di una data CPU
impiega un nanosecondo per attraversare tutto il chip ed arrivare fino all'ultima sottounit, questa
CPU potr operare a non pi di 1 GHz, perch altrimenti le sue componenti interne perderebbero la
sincronizzazione, con risultati imprevedibili (per motivi di tolleranze e margini di sicurezza, il
limite pratico sar anzi ben minore di 1GHz).
L'ALU (Arithmetic Logic Unit, Unit Aritmetico-Logica) l'unita designata all'elaborazione dei
dati in un microprocessore.
L'ALU formata da un insieme di porte logiche opportunamente collegate. Queste porte logiche nel
loro complesso provvedono ad eseguire tutte le operazioni aritmetiche e logiche gestite dal
microprocessore.
Le prime ALU erano in grado di eseguire nativamente solo le operazioni pi semplici (addizione,
sottrazione e shifting di bit ecc.) e le operazioni logiche booleane (AND, OR, XOR e NOT). Le
operazioni pi complesse come le operazioni di moltiplicazioni o divisione venivano emulate
utilizzato ripetutamente somme o sottrazioni. Con l'evolvere dell'elettronica si riuscito a integrare
nelle ALU anche le operazioni di divisione e moltiplicazione. Le ALU non sono in grado di
svolgere tutte le operazioni supportate dai microprocessori moderni, infatti le operazioni in virgola
mobile o le operazioni multimediali (tipo AltiVec o MMX) sono svolte da unit specializzate che
non risiedono nell'ALU.

24

DALLA RETE TELEFONICA ALLA RETE DATI


Internet nasce quando si reso possibile collegare in modo semplice, efficace e poco costoso
computer fra di loro.
C la necessit di scambiare informazioni in modo sicuro e veloce e i supporti fisici come i floppy,
dischi magnetici ecc. non forniscono garanzie sufficienti. Per questo nata lidea di costruire un
sistema che colleghi punti remoti sul modello della RETE TELEFONICA.
Oggi si parla addirittura di RETI di DATI dove tutti i segnali trasmettibili vengono digitalizzati
mediante bit e byte.

ESEMPIO DI ONDA SONORA


200-300 livelli distinguibili
diversi

SCHEMA INTERNO DI UN MICROFONO


Dispositivo che sfrutta lenergia meccanica per
trasformarla in elettrica.
Dallaltra parte del microfono ci sar un
dispositivo assolutamente identico chiamato
altoparlante che riceve il segnale elettrico e lo
traduce in suono.

25

MECCANISMO DI
TRASMISSIONE
DIGITALE
5V

Si hanno due livelli:


0 Volt
5 Volt

Informazione digitalizzata

ANDAMENTO CURVA:

K1

K2*e(-t*k2)
0

Si hanno due parametri


K2 dipende dal materiale
e la costante naturale

In natura tutti i fenomeni sono rappresentabili mediante esponenziali e sinusoidi.


Quando si studiano i fenomeni naturali bisogna sempre ricordare che:
-

le frequenze basse sono le meno ostacolate

tutto ha un inerzia

qualsiasi segnale nel tempo pu essere rappresentato come insieme di sinusoidi

IL SUONO:
La frequenza che lorecchio umano pu percepire va dai 16 ai 16000 Hz (Hertz = 1 oscillazione al
secondo).

26

La banda che viene trasmessa negli apparecchi telefonici va da 300 a 3000 Hz: non si pu scendere
al di sotto dei 300 Hz per problemi tecnologici ( necessit di amplificatori sulla linea con
conseguente aumento di costi e spazio) e non possibile neppure superare i 3000 Hz per limitazioni
fisiche.
A causa dei RUMORI si pu poi fare riferimento a 200-300 livelli.
Se analizziamo il segnale digitale osserviamo che :

1
0

1/3 msec

F=1/T

Si riesce a passare da segnale


digitale a sinusoide e
viceversa.

T=1/F

Si possono trasmettere 6000 bit/sec.


1 bit dura 1/6 di millisecondo.
Si supponga di dover trasmettere una sequenza fatta di 100 zeri e 100 uni, si cerca la sinusoide
associata al segnale e ci si rende conto che questa ha frequenza 30 Hz. Sulla linea telefonica non
passa.
C la necessit di un dispositivo che consenta di trasmettere le sequenze indipendentemente dalla
durata ed ecco entrare in gioco il MODEM.

27

MODEM
1:0

2400 : 1200

COM 1 + COM 2 (nome porta)


RS232 (protocollo)
9 : (25)pin
DBs / DB25
Maschio

LP1 (nome porta)


CENTRONICS (protocollo)
25 pin
parallela
DD25

Gli applicativi vedono la macchina tramite il sistema operativo.


Il protocollo descrive le regole che ci sono fra due elementi affinch questi si scambino dati.
Riguarda la comunicazione a tutti i livelli.
Per esempio il protocollo RS232 di basso livello e si occupa delle operazioni per luscita o
lentrata di 1 byte.
Problema: distinguere quando il segnale vuoto o porta informazioni.

-10V

+10V

0
Bit
di
start

1 byte

1
Bit
di
stop

0
S
T
A
R
T

Perch questo sistema funzioni, la durata di un bit deve essere nota .


Ci vuole allora un accordo sulle velocit: per lRS232 si usano i multipli di 50 (da 50 a 76800
byte\sec ).

28

PROTOCOLLO PUNTO A PUNTO


TOKEN RING (Rete Locale)

Nel tempo in cui si riesce a


percorrere un intero giro
possibile ricevere e mandare
informazioni da qualunque
punto a qualunque punto.

MITT

DEST

dati

Velocit 4 Mbit/sec
PROBLEMA: se viene staccata
una postazione si interrompe il
circuito.

ETHERNET ( Carrier Sense Multiple Access Collision Detection)


PROBLEMA: con questa tecnica
possono esserci scontri di trasmissione.

Velocit 10 Mbit/sec
In 1 microsec = 150 m

Per ovviare questo inconveniente si


attribuisce peso differente agli uni e agli
zeri.

A seconda della lunghezza della rete, della sua composizione e del traffico di rete cerco lalgoritmo
di attesa migliore.
Oggi ethernet usato per tutte le reti locali.
Anche lethernet definito a basso livello, in pi ha solo una diversa organizzazione di dati.

29

MITT

48 bit ovvero
6 byte

DEST

DATI

Linsieme lungo meno di 1 Kbyte.

48 bit ovvero
6 byte

Quando un computer entra a far parte di una rete gli viene associato un indirizzo unico e diverso da
quello di tutte le macchine collegate.
Un pacchetto che nella locazione DEST presenta tutti 1 un pacchetto BROADCAST comune a
tutte le macchine collegate.

AUDIO E VIDEO NEI CALCOLATORI


Suoni e immagini, allinterno di un calcolatore, danno origine ad un certo quantitativo di dati.
IL SUONO
Analizziamo un segnale sonoro, campionandolo mediante un convertitore analogico / digitale
chiamato CODEC e traduciamo le informazioni in una sequenza di bit.

max

MESSAGGIO
ANALOGICO

min

t
I codec sono sia video che audio.
Quanti campioni necessario prendere? Si pu ricostruire la forma donda originale?
Per il teorema del campionamento si pu rispondere di s alla domanda soprastante in quanto ogni
sistema naturale risente della forma donda sinusoidale e quindi:
1. si sceglie la sinusoide di ampiezza massima ovvero quella da 3000 Hz;
30

2. si fanno campioni in numero doppio rispetto alla frequenza massima ossia 6000
campioni/sec;
3. si applica un integratore ai campioni costituito da una resistenza e un condensatore;
4. si ottiene il segnale di partenza.
Un campione da quanti bit deve essere costituito? Ossia quanti livelli si devono poter distinguere?
256 un buon numero di livelli per poter trasmettere il suono
8 bit * 6000 campioni/sec = 64 Kbit/sec (bidirezionali) una buona larghezza di banda
2Mbit/sec = 30 canali telefonici
16000 frequenza max = 32000 campionamenti/sec
48 Kbit * 16 bit = 900 Kbit/sec (ADSL)

LE IMMAGINI
VGA 640 * 480 pixel ( schermata del BIOS ). il formato di partenza, supportato da tutte le schede
video. Con levoluzione si arrivati a formati come: 800 * 600, 1024 * 768, 1240 * 1024,
1600 * 1200, legati ovviamente alla dimensione dello schermo.

12
15

GRANDEZZA
SCHERMO
1
17
19

Per comprendere lo sviluppo grafico delle informazioni fondamentale fare riferimento allangolo
di percezione dellocchio.
1 punto luminoso sul monitor fatto di tre sorgenti luminose dette FOTODIODI che
opportunamente combinate offrono tutta la scala del visibile compreso il bianco e sono:

rosso

verde

blu
31

Quanti campioni/sec bisogna prendere?


Si dispone di due parametri: colore e luminosit; a differenza del suono, sono sufficienti 25
campioni/sec per ottenere una discreta visibilit; si pensi che con 35-50 campionamenti/sec non ho
pi problemi.

Esempio:
(10^6) * 50 *
punti

frequenza

24

= 1 Gb/sec (circa 10^9)

colori

Il monitor in grado di
rappresentarli ma le
informazioni da elaborare
devono essere compresse.

CPU

MEMORIA

La scheda video una memoria a due porte:


riceve bit;
invia tre segnali analogici.
Se limmagine resta invariata non c
scambio di informazioni.

Input /
Output

Hard
Disk

La CPU produce una quantit enorme di


punti e li invia alla memoria creando sovente
ingorghi di informazioni.

ethernet

Per ovviare a questo inconveniente oggi si usa un CHIPSET, un elemento che mette a disposizione
dei bus in grado di smistare le informazioni.

32

CPU

BUS
AGP
North bridge

SCHEDA
VIDEO

PCI-X

DMA

MEMORIA

PCI-X

PCI
South bridge
audio

seriale

SCSI

Hard disk

DMA = direct memory access. Permette di trasferire dati dalla memoria e alla memoria senza
lintervento della CPU.
Il primo bus si chiamava ISA, poi diventato ESA, fino ad arrivare nel 1992 a PCI (133Mb/sec).
AGP a 2 Gb/sec un bus punto-punto a 32 bit (parallelo).
PCI-X a 4,3 Gb/sec fatto da un filo di ritorno che manda 64 bit alla volta e in grado di fare
533Mb/sec (seriale). Per arrivare a 4,3 Gb/sec se ne mette pi di uno in parallelo ed essendo fili
schermati e indipendenti non ci sono interferenze.

33

INTERNET, COME FUNZIONA LA RETE

RETE LOCALE
utente

utente

utente

Mac address
48 bit

4 103 64 10 3

Internet una grande rete a livello mondiale; come rete dati unica al pari della rete telefonica.
Ad Internet si accede tramite un PROVIDER. Nella rete circolano pacchetti che sono simili a quelli
della rete locale ma che contengono indirizzi univoci che possono essere interpretati.

INTERNET
INTERNET
(rete
(retedidicavi
cavie enodi)
nodi)

TRAFFICO DI ROUTING ci sono macchine che testano la velocit di risposta dei vari nodi e
stilano una tabella di routing che indicano le migliori strade da seguire.

Google

Lindirizzo internet deve essere


geograficamente localizzato.
Ogni nodo ha una
propria tabella di
routing

collegamento
nodo
34

Ogni gestore ha un HLR (home location register) dove per ogni numero di telefono c lindirizzo
istante per istante di dove si trova lutente (telefonia mobile).
Nasce negli anni 70 e si chiama ARPANET, era una rete limitata al governo americano e utilizzata
per scopi militari. Negli anni 80 luniversit di Barkley decide di unire varie universit con questo
sistema: nasce INTERNET.

ff

ff

ff

232 4 10 9

ff

0.0.0.0

Indirizzi IP

255 . 255 . 255 . 255


Indirizzo di classe A
Usato dallIBM
(16 milioni di indirizzi)

46 . X . X . X
Fisso
256

Indirizzo di classe B
Usato dalluniversit di GE
(64000 indirizzi)

2 24 16 10 6

Devono arrivare
a 4 miliardi

130 . 251 . X . X

Un utente ha un indirizzo IP, un gestore invece ha una o pi classi di indirizzi; nasce per un
problema perch ad un certo punto gli indirizzi finiscono.
I gestori di sono resi conto che quando i calcolatori degli utenti sono spenti non hanno bisogno di
indirizzi IP.
Il server DHCP dispensa gli indirizzi IP alloccorrenza, sono indirizzi dinamici (gestiti fra pi
persone, si ha un costo minore).
Gli indirizzi sono delle risorse.
I server di posta, i server web e di servizi non possono cambiare gli indirizzi IP.
PEER TO PEER: collegamento diretto fra due macchine client senza server (funzionamento tipo
Msn).

IPV4: metodo di indirizzamento a 4 byte


35

IPV6: metodo di indirizzamento a 8 byte


molto usato lIPV4 per uniformare la comunicazione.

Livello link
LAN
192.1.1.1

Livello di rete
DHCP
modem

172.1.1.1
Suporto fisico
INTERNET

192.1.1.2
GATEWAY
ROUTER

Mac address

DATA

FROM
192.1.1.1

Mando al server
un dato

SERVER

TO
172.1.1.1
DATA

FROM
172.1.1.1

Google

Ricevo un dato
dal server

TO
192.1.1.1

Il MAC ADDRESS gestito dal sistema operativo.


Per far si che la rete funzioni, ci che parte e che arriva deve essere corretto:

36

O si trasmette in maniera abbondante cos se si perdono dati forse il messaggio arriva


comunque;

Oppure si richiede la trasmissione delle cose sbagliate.

(pacchetto) ethernet frame


LAN

mac add
HEADER

INTERNET

Livello link

DATA
(pacchetto) datagram IP
IP add

Livello di rete

DATA

HEADER

(testa del pacchetto)

CRC

Ci che fuori dalla parte dati non solo indirizzo. Il frame ethernet lungo al massimo 1492 dati
ma in genere pi piccolo; massimo 64 kbyte il limite per il pacchetto IP.
PROBLEMA: ci che arriva giusto o soggetto ad interferenze?
A seconda del metodo che si usa diventa pi o meno facile accorgersene.
1 metodo: si manda un numero che indica lutilizzo di zeri e uni nel pacchetto. Inconveniente: se
lerrore cambia sia uno zero che un uno non vedo pi niente. Un file eseguibile con un byte
cambiato non funziona.
2 metodo: si sommano tutti i byte trasmessi e nel pacchetto viene allega anche la somma per
operare il controllo.
3 metodo: Cyclic Redoundancy Code (codice di ridondanza ciclica) viene aggiunta nella parte
dellindirizzo. Esempio:

2x

...x

5 1

3x 4 x 3 x 2 x 3 : x 1

...x ...x ...x ... ...x11


3

37

RESTO
Se si volesse trasmettere:
258

257

256

255

254

253

come avere:

1 x 258 0 x 257 1 x 256 0 x 255 0 x 254 1 x 253 ...

Gli zeri e gli uni diventano coefficienti per il polinomio. Ora si divide il polinomio ottenuto per un
polinomio CHIAVE che vale per ETHERNET:
10 4 C 1 1 D B 7

33

(esadecimale)

N.B. arriva a 9 poi partono


le lettere fino a F

0 x 32 0 x 31 x 27 ...

Polinomio
da trasmettere

Polinomio
chiave

Quoto + Resto
32 bit
il mio CRC

In realt il CRC si attacca alla fine dei dati perch si sposta di 2 32 il polinomio, si aggiunge un tot di
zeri e si attacca CRC in coda
Nota Bene: in codice binario la somma e la sottrazione sono uguali.
0
0
1
1

0
1
0
1

0
1
1
0

Si fa unoperazione di OR esclusivo
dopo loperazione di shiftamento
per ottenere il resto.

Se dopo il controllo il resto zero va bene altrimenti c un errore.


LIP serve per identificare nel mondo internet un PC. Ogni indirizzo IP ha un link con la zona
geografica a cui si fa riferimento.
38

Allinterno di un protocollo IP sono definiti altri sottoindirizzi che vengono chiamati PORTE ( ce ne
sono 64000 o 216) quindi quando mando o ricevo qualcosa oltre allindirizzo IP devo specificare il
numero della porta di comunicazione.
A questo punto posso vedere il mio pacchetto cos:
non porta ancora dati utili
IP add

INTERNET

DATA

TTL
(time to live)

pacchetto IP

DATA

Header
Port number

Pacchetto UDP
(Unnumbered Data Protocol)

Il pacchetto UDP definito a livello di trasporto. Grazie al port number tutti i server web possono
assolvere alle richieste dellutente.

Indirizzo
IP

PORT
NUMBER

SOCKET

Dato mediante il quale in


internet si pu rispondere alle
richieste di pi applicazioni.
(Se si hanno pi finestre aperte
mentre si connessi, lindirizzo
di porta fa si che da internet le
informazioni arrivino alla
finestra che le ha chieste)

Il pacchetto UDP monotipo.

Allo stesso livello di UDP pu esserci un pacchetto TCP. Nellheader del pacchetto TCP c il
numero dei pacchetti che vengono condivisi.
Dopo questo scambio di informazioni inizia la trasmissione. Chi trasmette manda il numero di
pacchetti da inviare.

SEI PRONTO?

39

Stazione di
Trasmissione

Stazione di
Ricezione

OK
Quando la stazione di ricezione ottiene il numero di pacchetti deve dare lok, se questo non arriva la
stazione di trasmissione ricomincia linvio.
C un compromesso tra la grandezza della finestra e la qualit della rete (bassa qualit, rete pi
piccola). Con il protocollo TCP ho la certezza che ci che arriva sia corretto. Anche il pacchetto di
TCP a livello di trasporto. Il software che si occupa di questo dato dal sistema operativo.
Ogni ROUTER ha un software di tipo RIP che costantemente aggiorna le tabelle router e assegna
un numero di bont del percorso, grazie a questo si possono evitare gli imprevisti.
Essendo per considerazioni di software ci possono essere casi in cui un pacchetto gira per tempi
infiniti in rete, questo non positivo.
Ci vuole un meccanismo che impedisca ai pacchetti di stare in linea per troppo tempo: questo
meccanismo prende il nome di parametro TTL.
Quando ad un router arriva un pacchetto, questo prende il numero TTL e lo decrementa di 1.
quando arriva un pacchetto con TTL pari a zero questo viene eliminato. Al mittente che ha
trasmesso un pacchetto con TTL pari a zero viene mandato indietro un pacchetto di diagnostica
mediante il quale il mittente prende coscienza che il suo pacchetto stato eliminato. Questa tecnica
viene usata dal software RIP per costruire la tabella.

APPROFONDIMENTO
Internet (composto del latino inter, "fra" e dell'inglese net, "rete") percepita come la pi grande
rete telematica mondiale, e collega alcune centinaia di milioni di elaboratori per suo mezzo
40

interconnessi. In realt nata nelle intenzioni dei suoi inventori come "la" rete delle reti. Nell'arco
di alcuni decenni oggi divenuta la rete globale.
Nata negli anni sessanta come progetto del Dipartimento della difesa statunitense per lo sviluppo di
una rete telematica decentrata, alla fine della guerra fredda, stata messa a disposizione di impieghi
civili all'inizio degli anni novanta, collegando dapprima i principali centri universitari e
raggiungendo poi, in modo ampio, l'utenza casalinga.

Internet pu essere vista come una rete logica di enorme complessit, appoggiata a strutture fisiche
e collegamenti di vario tipo (fibre ottiche, cavi coassiali, collegamenti satellitari, doppino
telefonico, link su radiofrequenza (WiFi), su ponti radio, su raggi laser e su onde convogliate su
condotte elettriche o addirittura idrauliche) che interconnette un agente umano o automatico ad un
altro agente tramite qualsiasi tipo di computer o elaboratore elettronico.
Ogni dispositivo connesso direttamente ad Internet si chiama host o end system mentre la struttura
che collega i vari host si chiama link di comunicazione.

Generalmente Internet definita la rete delle reti, infatti Internet costituita da tutta una serie di
reti, private, pubbliche, aziendali, universitarie, commerciali, connesse tra di loro, in effetti gi
prima della sua nascita esistevano reti locali, principalmente nei centri di ricerca internazionali, nei
dipartimenti universitari. Un grande risultato della nascita e dell'affermazione di Internet stato
quello di creare uno standard de facto tra i protocolli di comunicazione tra le varie reti, consentendo
ai pi diversi enti e agenti di scambiare dati mediante un protocollo comune, il TCP/IP,
relativamente indipendente da specifiche hardware proprietarie, da sistemi operativi, dai formati dei
linguaggi di comunicazione degli apparati di comunicazione (modem, router, switch, hub, bridge,
gateway, repeater, multiplexer).
Ci che viaggia in Internet, infatti, sono i pacchetti, che costituiscono l'unit minima in questo
sistema di comunicazione. Tali pacchetti viaggiano usando una tecnica conosciuta come
commutazione di pacchetto (packet switching) che consente di condividere un cammino piuttosto
che fare uso di percorso dedicato. In pratica un pacchetto che parte da un host e giunge ad un altro
host non segue un percorso predefinito, ma quello pi congeniale in un preciso momento.
L'utenza casalinga accede ad Internet mediante l'uso di Internet Service Provider ("Fornitori di
servizi di connettivit", abbreviato in "ISP") i quali sono connessi a loro volta ad ISP di livello
superiore che utilizzano router ad alta velocit e link in fibra ottica.
Come si comprende, la struttura di Internet non uniforme ma la "ragnatela" composta da
un'ossatura molto veloce e potente a cui si connettono sottoreti a volte pi deboli e lente.
41

Queste sottoreti possono anche essere protette e, quindi, consentono l'accesso a Internet (e
viceversa) solo in maniera condizionata. Si tratta delle Intranet e la protezione stabilita da un
firewall.
Funzionamento
I collegamenti tra i vari nodi Internet sono appoggiati su criteri statistici di disponibilit e non su
criteri totalmente deterministici altrimenti tipici della tecnologia informatica, tanto che spesso
vengono definiti pi caotici; ed i processi sono distribuiti piuttosto che centralizzati.
Molti nodi sono collegati tra loro in diversi modi e tramite diversi path. Questo tipo di collegamento
pu essere compreso alla luce delle motivazioni che negli anni sessanta dettarono la nascita di
Internet (allora denominata ARPANET): creare una rete di elaboratori decentrata che potesse
resistere ad un attacco nucleare da parte dell'Unione Sovietica. Una tale rete decentrata sarebbe
sopravvissuta a molti attacchi visto che un attacco ad un singolo elaboratore non ne avrebbe
impedito il funzionamento generale, ed i collegamenti ridondanti avrebbero sostituito quelli
distrutti.
Per potersi collegare ad Internet, il solo requisito richiesto ad un qualsiasi agente o dispositivo
elettronico quello di poter "dialogare" con i protocolli.
Tali protocolli controllano l'invio e la ricezione dei pacchetti. I protocolli pi importanti sono il
Transmission Control Protocol ("Protocollo di trasmissione dati", TCP) e l'Internet Protocol
("Protocollo Internet", IP).
La struttura di comunicazione a livelli per cui sopra e sotto questi due protocolli ne funzionano
degli altri.
In pratica un pacchetto che parte da un host attraversa i diversi strati protocollari che aggiungono
informazioni al pacchetto, quando questo raggiunge la destinazione, avviene uno spacchettamento
al contrario e ogni livello legge le sue informazioni.
Quindi, come si comprende, un pacchetto composto da un'informazione base incapsulata in una
struttura di informazioni di servizio.
Le modalit di utilizzo di Internet differiscono a seconda del tipo di servizio che si richiede e al tipo
di server a cui ci si collega; per citarne solo alcune:

posta elettronica (e-mail)


consente di inviare e ricevere (a/da utenti) messaggi contenenti testo ed altri formati (es.:
immagini, video, audio). La modalit di funzionamento dei server di posta elettronica e di
molti programmi client viene detta store-and-forward

file transfer protocol ("Protocollo di trasferimento dati", FTP)


42

consente di inviare e ricevere (a/da sistemi) file, cio insiemi di informazioni codificate in
maniera binaria (es.: testi, immagini, filmati, programmi, ecc.)

hyper text transfer protocol ("Protocollo di trasferimento ipertesti", HTTP)


consente di organizzare le informazioni e le risorse presenti in rete in maniera nonsequenziale (Collegamento ipertestuale), come meglio descritto in seguito.

Server

Si intende comunemente un computer dedicato allo svolgimento di un servizio preciso (come la


gestione di una rete locale o geografica), alla gestione delle periferiche di stampa (print server), allo
scambio e condivisione di dati fra i computer (file server, database server), all'invio o inoltro di
posta elettronica (mail server) o a contenere i file in un sito web (web server). Utilizza un sistema
operativo di rete. I computer collegati e che utilizzano il servizio del server, si chiamano client. A
volte lo stesso computer svolge diverse funzioni di server (es: sia file server che print server).
Quando sono collegati tra di loro, attraverso una rete, i server formano un'unica risorsa
computazionale definita come server cluster.
In realt, il termine server si riferisce pi correttamente al software installato su di un computer
(server software). I server software si dividono solitamente in file server, che permettono agli utenti
di salvare e accedere ai file su un computer in comune, e application server, dove il server viene
usato per far funzionare un programma applicativo e condividerne le funzionalit tra gli utenti.

Client
Si indica una componente che accede ai servizi o alle risorse di un'altra componente, detta server. In
questo contesto si pu quindi parlare di client riferendosi all'hardware o al software.
Un computer collegato ad un server tramite rete locale o geografica, ed al quale richiede uno o pi
servizi, utilizzando uno o pi protocolli di rete un esempio di client hardware. Un programma di
posta elettronica un esempio di client software.
Sono sempre di pi i software, come il web, l'E-Mail, i database, che sono divisi in una parte client
(residente ed in esecuzione sul pc client) ed una parte server (residente ed in esecuzione sul server).
Il termine client indica anche il software usato sul computer client per accedere alle funzionalit
offerte dal server.

43

Indirizzo IP
Un Indirizzo IP un numero che identifica univocamente nell'ambito di una singola rete i
dispositivi collegati con una rete informatica che utilizza lo standard IP (Internet Protocol). Ciascun
dispositivo (router, computer, server di rete, stampanti, alcuni tipi di telefoni,...) ha, quindi, il suo
indirizzo.
Semplificando, un indirizzo IP pu essere visto come l'equivalente di un indirizzo stradale o un
numero telefonico dei dispositivi collegati su internet. Infatti, cos come un indirizzo stradale o un
numero telefonico identifica un edificio o un telefono, cos un indirizzo IP identifica univocamente
uno specifico computer o un qualsiasi altro dispositivo di rete o una rete. A sua volta, in una rete
possono essere utilizzati altri indirizzi IP validi localmente analogamente alla numerazione degli
interni di un edificio.
In particolare, all'interno di una rete ad ogni interfaccia connessa alla rete fisica viene assegnato un
indirizzo univoco, in modo da rendere possibili le comunicazioni tra un computer e l'altro.
Va considerato, infatti, che non l'host ad essere connesso ma l'interfaccia fisica (ad esempio una
scheda di rete); un router, ad esempio, ha diverse interfacce e per ognuna occorre un indirizzo IP.
Gli indirizzi IP pubblici sono rilasciati e regolamentati dall'ICANN tramite una serie di
organizzazioni delegate. Tuttavia da tener presente che a livello mondiale e nazionale i primi
provider di connessione Internet si sono accaparrati un numero sproporzionato di indirizzi IP. I
provider che si sono affacciati dopo sul mercato hanno ovviato a questo stato di cose considerando i
propri utenti di una medesima citt come una rete privata che accede ad Internet mediante un
singolo IP pubblico. Questo comporta alcune difficolt nell'utilizzo di servizi su Internet che
presuppongono che ad un IP corrrisponda un singola connessione (per esempio IRC e peer-to-peer).

Domain Name System


Il DNS un servizio di directory, utilizzato soprattutto per la risoluzione di nomi di Host in indirizzi
IP. Questa funzione essenziale per l'usabilit di Internet, visto che gli esseri umani preferiscono
ricordare nomi testuali, mentre gli Host ed i router sono raggiungibili utilizzando gli indirizzi IP.
Permette inoltre ad una qualsiasi entit di cambiare o riassegnare il proprio indirizzo IP, senza dover
notificare tale cambiamento a nessuno, tranne che al proprio server DNS di riferimento.
Un'altra delle peculiarit del DNS quella di consentire, ad esempio ad un sito web, di essere
ospitato su pi server (ognuno con il proprio indirizzo IP), con una conseguente divisione del carico
di lavoro.
44

Indirizzamento IP statico e dinamico


Gli indirizzi IP possono essere assegnati in maniera permanente (ad esempio ad un server che si
trova sempre allo stesso indirizzo) oppure in maniera temporanea, da un insieme di indirizzi
disponibili.
Gli indirizzi dinamici vengono utilizzati per indentificare dispositivi non permanenti come ad
esempio: personal computer o client. Gli Internet Service Provider (ISP) utilizzano l'allocazione
dinamica per assegnare un ristretto numero di indirizzi ad una vasta clientela. Questo sistema viene
utilizzato soprattutto per gli accessi dial-up, Wi-fi o in qualsiasi altro accesso temporaneo
permettendo, ad esempio ad un Notebook, di connettersi ad un'amplia variet di servizi senza la
necessit di dover conoscere i dettagli di indirizzamento di ogni rete.
L'indirizzamento dinamico richiede la presenza di un server in grado di accettare richieste ed
assegnare indirizzi. L'indirizzamento pu avvenire in maniera casuale, oppure in base ad una
determinata politica. Il protocollo pi comunemente utilizzato per assegnare indirizzi
dinamicamente il DHCP. DHCP viene utilizzato soprattutto in reti locali, in particolare su
Ethernet. In altri contesti, funzioni simili sono svolte all'interno di PPP.

Gli indirizzi statici vengono utilizzati per identificare dispositivi semi-permanenti con indirizzo IP
costante. I Server utilizzano tipicamente questo metodo di indirizzamento. L'indirizzo statico puo'
essere configurato direttamente sul dispositivo, oppure come parte di una configurazione DHCP che
associa a l'Indirizzo MAC, il corrispondente indirizzo IP statico.
L'Internet Protocol (IP) utilizza due versioni di indirizzamento IP: IPv4 e IPv6. Quella a cui ci si
riferisce quando si parla di "indirizzo IP" la IPv4 , quella pi comunemente utilizzata oggigiorno.
L'indirizzo IPv4 costituito da 32 bit (4 byte), viene descritto con 4 numeri decimali rappresentati
su 1 byte (quindi ogni numero varia tra 0 e 255) separati dal simbolo "punto". Un esempio di
indirizzo IPv4 195.24.65.215. Questa rappresentazione limita lo spazio di indirizzamento a
4,294,967,296 indirizzi univoci possibili. A questo numero di indirizzo vanno tuttavia sottratti i
circa 18.000.000 di indirizzi che vengono utilizzati per le reti locali. Per ovviare al problema della
mancanza di indirizzi IP dovuta alla costante crescita di Internet stato inventato IPv6.
L'indirizzo IPv6 costituito da 128 bit (16 byte), viene descritto da 8 numeri esadecimali
rappresentati su 2 byte ciascuno (quindi ogni numero varia tra 0 e 65535) separati dal simbolo "due

45

punti". Un esempio di indirizzo IPv6 2001:0DB8:0000:0000:0000:0000:0000:0001, che pu


essere abbreviato in 2001:DB8::1 (i due punti doppi stanno a sostituire la parte dell'indirizzo che
composta di soli zeri consecutivi. Si pu usare una sola volta, per cui se un indirizzo ha due parti
composte di zeri la pi breve andr scritta per esteso).
Il numero di indirizzi univoci disponibili in IPv6 2128 = 65.5368 3,4 1038, ma anche tra questi
ve ne sono di riservati.

Transmission Control Protocol


Transmission Control Protocol (TCP) il protocollo di trasporto principale su cui si appoggiano
gran parte delle applicazioni Internet.
Il TCP un protocollo corrispondente al livello 4 (trasporto) del modello di riferimento OSI, e di
solito usato in combinazione con il protocollo di livello 3 (rete) IP. La corrispondenza con il
modello OSI non perfetta, in quanto il TCP e l'IP nascono prima. La loro combinazione indicata
come TCP/IP ed , alle volte, erroneamente considerata un unico protocollo.
Le caratteristiche principali del TCP sono:

La creazione di una connessione (protocollo orientato alla connessione)

La gestione di connessioni punto-punto

La garanzia che i dati trasmessi giungano a destinazione in ordine e senza perdita di


informazione

Attraverso il meccanismo della finestra scorrevole, offre funzionalit di controllo di flusso e


controllo della congestione, vitali per il buon utilizzo della rete IP, che non offre alcuna
garanzia in ordine alla consegna dei pacchetti, al ritardo, alla congestione.

Una funzione di multiplazione delle connessioni ottenuta attraverso il meccanismo delle

porte.

User Datagram Protocol


L'User Datagram Protocol (UDP) uno dei principali protocolli della Suite di protocolli Internet.
UDP un protocollo di trasporto a pacchetto. usato di solito in combinazione con il protocollo IP.
A differenza del TCP, non gestisce il riordinamento dei pacchetti n la ritrasmissione di quelli persi.
L'UDP ha come caratteristica di essere un protocollo di rete inaffidabile, privo di connessione, ma
46

in compenso molto rapido ed efficiente per le applicazioni "leggere" o time-sensitive. Infatti,


usato spesso per la trasmissione di informazioni audio o video. Dato che le applicazioni in tempo
reale spesso richiedono un ritmo minimo di spedizione, non vogliono ritardare eccessivamente la
trasmissione dei pacchetti e possono tollerare qualche perdita di dati, il modello di servizio TCP pu
non essere particolarmente adatto alle esigenze di queste applicazioni. L'UDP fornisce soltanto i
servizi basilari del livello di trasporto, ovvero:

multiplazione delle connessioni, ottenuta attraverso il meccanismo delle porte

verifica degli errori mediante una checksum, inserita in un campo dell'intestazione del
pacchetto.

mentre TCP garantisce anche il trasferimento affidabile dei dati, il controllo di flusso e il controllo
della congestione.
UDP un protocollo stateless ovvero privo di stato: non mantiene lo stato della connessione dunque
rispetto a TCP ha informazioni in meno da memorizzare. Un server dedicato ad una particolare
applicazione che sceglie UDP come protocollo di trasporto pu supportare molti pi client attivi

CRITTOGRAFIA
Il primo impiego si ebbe con i telefoni cellulari per evitare dispersione di dati, in quanto, tutte le
informazioni che arrivano dal server passano tramite stazioni di trasmissione e corrono il rischio che
qualcuno riesca a captarle.
Al giorno doggi la rete GSM non si clona pi.
47

Dentro alle schede SIM c un calcolatore nel quale, al momento della fabbricazione, viene creata
una locazione di memoria in cui vi scritto un numero (divisore) il quale pu essere usato ma non
letto.
Quando si vuole chiamare, il gestore invia un dividendo, lapparecchio chiamante manda il resto
della divisione e siccome il server conosce il tale divisore controlla anche lui il calcolo. Se i due
resti sono uguali allora vuol dire che il numero chiamante originale e va bene.
Lunico modo per riuscire a frodare tenere una tabella e sperare che il gestore mandi un dividendo
gi mandato, ma sono numeri con troppe cifre quindi non facile recapitare lo stesso numero pi
volte.
Quando si ha la stessa chiave da tutte e due le parti si ha una chiave simmetrica.
Il sistema a chiave asimmetrica non tanto differente.
Tre matematici della RSA Security hanno trovato il modo di avere una chiave asimmetrica.
Sono partiti da l Teorema di Eulero:
a p 1 mod p 1mod p

dove p = n primo

a np

n1

mod il resto
5mod3=2
ap-1 mod p = 1
25 = 24 mod 5 =1
I matematici hanno detto:
a p 1 q 1 mod pq 1

a p 1 q 1 1 mod pq a

Se p e q sono di 100 cifre il numero sotto diventa ancora pi grande.


a k mod pq a

k non n primo

Si prende k e lo si divide circa a met quindi vuol dire la chiave stata divisa a met.
a c e mod pq a

c = coding
e = encoding
ac mod pq la chiave codificata; lunico modo che ho per decodificarla : acode mod pq = a
Ci sono delle propriet per semplificare i calcoli. La fattorizzazione per ad oggi risulta impossibile.
Avremo quindi una chiave pubblica ed una privata.

48

Il client genera la chiave pubblica e privata, prende la chiave pubblica e la manda al server, questo
permette che quando il server riceve dal client la codifica con la sua chiave privata e lui con la sua
chiave pubblica. Lui da parte sua genera una chiave pubblica e privata, la sua chiave pubblica la
manda al client; questultimo codifica 2 volte: chiave privata client con chiave pubblica del server.
Il server lunico che codifica con la sua privata.
Le chiavi pubbliche dovrebbero essere garantite, per fare ci esistono delle societ di certificazione
che hanno un elenco di chiavi pubbliche. Questo sistema da garanzia di comunicazione ma il server
deve essere affidabile.

SERVER
Mia pubblica
Sua privata
Sua pubblica

CLIENT
Mia pubblica
Mia privata
Sua pubblica

chiaro

CALCOLATORI SU RETE ETHERNET


Una volta i calcolatori venivano connessi in serie tramite connettori a T, solo che il sistema risultava
instabile, allora si creato un HUB. Tutto quello che viene mandato ad un calcolatore viene
mandato a tutti.
Esempio: in un edificio di 4 piani si hanno dei pc collegati ad un HUB per ogni piano, a loro volta
gli HUB sono collegati tra di loro.
49

Il problema che se A parla con B gli altri non possono fare pi nulla. Allora si deciso di rendere
la rete intelligente: i calcolatori vengono collegati con uno SWITCH.
Quando lo switch acceso capisce che sono connessi A,B,C e lo scrive in tabella, manda la
chiamata a tutti e guarda cosa succede. Dopo un p guarda e vede che c un messaggio da K (pc di
un altro piano) a C, ha capito il posizionamento di K e C e se lo segna. (es a-b, b-m, c-k sul primo
filo; k-c, m-b sul secondo e m-b sul terzo).
Man mano che i calcolatori si accendono gli switch sanno dove sono i calcolatori e se lo segnano in
una tabella in modo che le informazioni vengano instradate in modo corretto, per i pc possono
parlarsi solo nel tratto in comune.
Se vogliono andare in internet hanno bisogno di un router e la macchina necessita di un ip.
DHCP: ogni volta che mi collego il gestore mi concede un IP; funzione anche presente nel router
(assegna IP privati per la rete locale)
Se ci sono pi pc in contemporanea, il router smista con il DNS le porte che magari nellip del pc
erano uguali. Il DNS solitamente fornito dal provider e serve per connettersi al proprio ISP
(operatore).
GATEWAY: inidirizzo IP del router
NAT: network address translation, serve per la traduzione degli indirizzi.
BRIDGE: collega reti diverse come tecnologia.

HUB

SWITCH

C,B,A,K,M

K, M
50

DNS (es130.244.127.161)
ROUTER

INTERNET
(es 60.128.1.32)

GATEWAY (es 10.1.1.0)


SUBNET MASK (255.255.255.0)

A
10.1.1.1

B
10.1.1.2

10.1.1.3

10.1.1.4

APPROFONDIMENTO
Ethernet il nome di un protocollo per reti locali, sviluppato a livello sperimentale da Robert
Metcalfe e David Boggs, suo assistente, alla Xerox PARC.
L'obiettivo originale dell'esperimento era ottenere una trasmissione affidabile a 3Mbps su cavo
coassiale in condizioni di traffico contenuto, ma in grado di tollerare bene occasionali picchi di

51

carico. Per regolamentare l'accesso al mezzo trasmissivo era stato adottato un protocollo di tipo
CSMA/CD (Carrier Sense Multiple Access / Collision Detection).
Ethernet attualmente il sistema LAN pi diffuso per diverse ragioni:

nata molto presto e si diffusa velocemente per cui l'uscita di nuove tecnologie come
FDDI e ATM hanno trovato il campo occupato;

Rispetto ai sistemi concorrenti pi economica e facile da usare e la diffusione delle


componenti hardware ne facilitano l'adozione;

Funziona bene e genera pochi problemi (cosa rara nel campo informatico);

adeguata all'utilizzo con TCP/IP;

Nonostante i suoi concorrenti fossero pi veloci nella trasmissione dati, la Ethernet si


sempre adeguata.

Frame
Nonostante Ethernet abbia diverse tipologie, l'elemento comune nella struttura del frame che
viene definito DIX (DEC, Intel, Xerox) ed rimasto fedele alla versione originale.
Gli elementi sono:

Preamble (Preambolo) (8 byte): I primi 7 byte hanno valore 10101010 e servono a svegliare
gli adattatori del ricevente e a sincronizzare gli orologi con quelli del mittente. L'ultimo byte
ha valore 10101011 e la serie dei due bit a 1 indica al destinatario che sta arrivando del
contenuto importante;

Destination MAC address (Indirizzo di destinazione) (6 byte): Questo campo contiene


l'indirizzo LAN dell'adattatore di destinazione, se l'indirizzo non corrisponde il Livello
fisico del protocollo lo scarta e non lo invia agli strati successivi.

Source MAC address (Indirizzo sorgente) (6 byte);

EtherType (Campo tipo) (2 byte): Questo campo indica il tipo di protocollo in uso durante la
trasmissione e la lunghezza del campo dati;

Payload (Campo dati) (da 46 a 1500 byte): contiene i dati reali e possono essere di
lunghezza variabile in base al MTU (Maximum Transmission Unit) della Ethernet. Se i dati
superano la capacit massima, vengono suddivisi in pi pacchetti;
52

FCS (Controllo a ridondanza ciclica) (CRC) (4 byte): permette di rilevare se sono presenti
errori di trasmissione, in pratica il ricevente calcola il CRC mediante un algoritmo e lo
confronta con quello ricevuto in questo campo.

Gli indirizzi sono tutti a 6 byte in quanto Ethernet definisce uno schema di indirizzamento a 48 bit:
ogni nodo collegato, quindi, ha un indirizzo Ethernet univoco di questa lunghezza. Esso corrisponde
all'indirizzo fisico della macchina ed associato all'hardware.
Sono anche detti indirizzi hardware, indirizzi MAC (o MAC address) o indirizzi di livello 2.
Tipologia di trasmissione
La codifica usata per i segnali binari la codifica Manchester.
Ethernet una tecnologia che fornisce al livello di rete un servizio senza connessione, in pratica il
mittente invia il frame nella LAN senza alcun handshake iniziale, questo frame viene inviato in
modalit broadcast (o a bus condiviso) e attraversa tutta la LAN. Quando viene ricevuto da tutti gli
adattatori presenti sulla LAN quello che vi riconoscer il suo indirizzo di destinazione lo recepir
mentre tutti gli altri lo scarteranno.
Il frame ricevuto pu contenere errori, la maggior parte dei quali sono verificabili dal controllo
CRC. Un frame che non supera il controllo CRC, viene scartato. Ethernet non prevede la
ristrasmissione del frame scartato, n una notifica della sua perdita agli strati superiori. Ethernet
quindi inaffidabile, ma anche semplice ed economica.
Sar compito degli strati superiori (ad esempio TCP) provvedere alla ri-trasmissione. La gestione
delle collisioni e dell'occupazione simultanea del canale di trasmissione viene gestita mediante il
CSMA/CD (Carrier Sense Multiple Access with Collision Detection). Anche da questo punto di
vista, Ethernet non in grado di garantire la consegna di un frame, e men che meno che il frame sia
consegnato entro un tempo prevedibile.
Negli sistemi Ethernet recenti, il problema non si presenta in quanto con gli switch e la crescita
della capacit (vedi Gigabit Ethernet) si eliminano le collisioni e si rende molto pi improbabile la
congestione.
Ethernet utilizza un algoritmo di accesso multiplo alla rete detto CSMA/CD. Ci permette
all'Ethernet, in certe condizioni, di avere un'efficienza di trasmissione del 100%.
L'efficienza vista come la frazione di tempo a lungo termine durante la quale sono trasmessi frame
senza collisioni con altri mittenti.

53

Ethernet con ripetitori e hub


Ethernet tende a crescere ma il cavo Ethernet ha una capacit limitata sia in lunghezza sia in
capacit di traffico, per cui le LAN di grosse dimensioni vengono suddivise in reti pi ridotte
interconnesse tra loro da particolari nodi tra i quali possiamo trovare dei ripetitori, degli hub o
elementi pi sofisticati come bridge o switch.
Il ripetitore semplicemente replica il segnale ricevuto. Il cavo Ethernet pu quindi assumere
lunghezze molto maggiori alle sue capacit. L'unico vincolo che tra due computer ci devono
essere al massimo due ripetitori per salvaguardare la temporizzazione di CSMA/CD.
Ethernet con bridge e switch
Il bridge lelemento di interconnessione pi sofisticato dell'hub perch opera sui pacchetti e non
sui segnali elettrici. Con questo sistema si possono creare segmenti di LAN indipendenti in cui le
collisioni e i ritardi restano limitati.
Molti bridge sono adattativi o ad apprendimento per cui sono provvisti di un software con elenchi
di indirizzi per ogni scheda ethernet che posseggono. In questo modo quando arriva un pacchetto,
estrapolano l'indirizzo di destinazione, e inviano lo stesso pacchetto nel segmento giusto in base agli
elenchi associati alle schede.
Molto pi sofisticati sono gli switch che sono composti da un numero elevato di schede ethernet
che consente ad ogni host di essere connesso direttamente. Allo switch vengono poi collegati uno o
pi cavi Ethernet ad alta velocit che collegano altri segmenti di LAN.
In questo modo lo switch intercetta i pacchetti e li ridireziona ad un host oppure sui segmenti
Ethernet. La gestione dei pacchetti, quindi, ottimizzata perch questi sono subito reindirizzati alla
destinazione evitando, per quanto possibile, collisioni. In questo modo ogni scheda ha un suo
dominio di collisione.

54