IL PROTOCOLLO TCP/IP
Il Protocollo TCP/IP
Transmission
Protocol
Control
Protocol/Internet
Vinton Cerf e il suo socio Bob Khan, studenti
americani, comproprietari di una società per lo
sviluppo di soluzioni software, pubblicano nel
1974 un articolo dal titolo “Un protocollo per il
Controllo della Trasmissione”. Nasce il TCP: una
vera rivoluzione che ha in sé i principi di quello
che diventerà il protocollo TCP/IP.
Si tratta in realtà di un linguaggio
unificato capace di fare da veicolo tra
macchine a distanza, quale che sia il canale
usato, in modo da mandare messaggi da
qualunque nodo alla giusta destinazione.
PROTOCOLLO TCP/IP
Generalità
Il protocollo TCP/IP è un protocollo
basato sul paradigma Client-Server
del tipo Peer-to-Peer : un sistema
che implementa il protocollo TCP/IP
può funzionare da Client e da
Server
indifferentemente
e
cambiare addirittura identità in fase
di elaborazione.
Il protocollo TCP/IP è un protocollo
full duplex a commutazione di
pacchetto : non esiste un’autorità
centralizzata nella rete, ma un
qualunque nodo è logicamente
collegato ad un qualunque altro nodo
e ciascun nodo
può creare,
elaborare e trasmettere informazioni.
Tutti i nodi si trovano quindi allo
stesso livello gerarchico.
Modello TCP/IP
e Modello OSI
Nella terminologia usata per la
definizione di una Intranet, cioè di una
rete aziendale, il protocollo TCP/IP è
classificato come protocollo Routable.
Nella figura successiva sono messe a
confronto la struttura OSI e quella del
protocollo TCP/IP.
7
Applicazione
6
Presentazione
Applicazione
5
Sessione
API
4
Trasporto
Trasporto
3
Rete
Internet
2
Collegamento
Interfaccia Rete
1
Fisico
Hardware
Modello OSI
Modello TCP/IP
Applicazioni
E
Servizi
Applicazione
API
Trasporto
Internet
UDP
TCP
IP ICMP ARP RARP RIP OSPF EGP BGP
Interfaccia Rete
Hardware
Modello TCP/IP
DRIVER di RETE e NIC
Protocolli e Componenti TCP/IP
Indirizzo TCP/IP
TIPO Indirizzamento di Rete Indirizzamento di Host
Il TIPO varia da 1 a 4 bit e specifica se l’indirizzo
è di Classe A (bit 0); di Classe B (bit 10); di
Classe C (bit 110); di Classe D (bit 1110).
A seconda del tipo c’è un formato diverso e una
lunghezza diversa per le altre due parti.
Il Tipo più l’Indirizzamento di Rete individuano
l’Identificativo di Rete, cioè la singola rete alla
quale
appartiene
il
sistema
(host).
L’Indirizzamento di Host è l’indirizzo del sistema
Gli Indirizzi IP per Classe
Gli indirizzi per la rete principale sono sempre su 8
bit vanno da 0 fino a (2^8-1) = 255.
E’ stata stabilita la seguente suddivisione :
 Classe A :
0 – 126
(127
local host-NIC)
 Classe B :
128 –191
 Classe C :
192 – 254 (255
subnetmaskTCP/IP)
in questo intervallo i numeri da 224 a 239 sono
assegnati alla Classe D (sono quelli in cui i primi
quattro bit sono la sequenza 1110).
CLASSE A : Ind.IP 0126
2^7
2^6
2^5
2^4
2^3
2^2
2^1
2^0
128
64
32
16
8
4
2
1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
CLASSE B : Ind.IP 128-191
2^7
2^6
2^5
2^4
2^3
2^2
2^1
2^0
128
64
32
16
8
4
2
1
1
0
0
0
0
0
0
0
1
0
1
1
1
1
1
1
CLASSE C : Ind.IP 192-255
2^7
2^6
2^5
2^4
2^3
2^2
2^1
2^0
128
64
32
16
8
4
2
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
192
223
CLASSE D : Ind.IP 224-239
2^7
2^6
2^5
2^4
2^3
2^2
2^1
2^0
128
64
32
16
8
4
2
1
1
1
0
0
1
1
1
1
0
1
0
1
0
1
0
1
224
239
CLASSE C : Ind.IP 192-255
Si conviene che per la Classe C siano utilizzabili gli indirizzi :
2^7
2^6
2^5
2^4
2^3
2^2
2^1
2^0
128
64
32
16
8
4
2
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
0
1
Si parla anche di CLASSE E per gli indirizzi da 240 a 255
240
255
Il Protocollo TCP/IP : Applicazioni e Servizi
Applicazioni
e
Servizi
API
UDP
TCP
IP ICMP ARP RARP RIP OSPF EGP BGP
DRIVER di RETE e NIC
Protocolli e Componenti TCP/IP
Applicazioni e Servizi
Esistono tutta una serie di protocolli a livello
Applicazione.
I più importanti sono i seguenti:
 PING :
un servizio per il controllo del
collegamento
 SMTP :
servizio di posta elettronica
 TELNET :
servizio di login remoto
 FTP :
servizio di trasferimento di file
 DNS :
servizio di traduzione nome in indirizzo
IP
 X_Windows : servizio per la rappresentazione
grafica
delle applicazioni
API
Application Program
Interface
Sono le interfacce tra il livello Applicazione, i suoi
servizi e protocolli, e il livello di Trasporto, cioè tutti i
protocolli di comunicazione TCP/IP.
Le interfacce più usate :
 Socket
 TLI : Transport Layer Interface
Entrambe specificano : 1) l’indirizzo Internet,
2)l’indirizzo della porta, 3) il protocollo TCP o UDP a
seconda del tipo di connessione necessaria
(affidabile o orientata alla connessione verso non
affidabile o connectionless).
La TLI può usufruire di una ulteriore interfaccia
intermedia detta Stream.
Caso Interfaccia TLI
Applicazioni e Servizi
TLI
STREAM
Protocolli di Comunicazione
TCP/IP
Driver di Rete
e NIC
Protocolli dello Strato
Trasporto : UDP
UDP User Datagram Protocol : è un protocollo
non affidabile, connectionless. I messaggi
trasferiti dal livello applicazione vengono
scomposti in datagrammi detti Udp o Utente,
che sono poi incapsulati all’interno della
struttura del protocollo IP dello strato
sottostante. L’unico controllo in arrivo è fatto
attraverso la verifica del checksum ricevuto
con quello calcolato. Se i due checksum sono
diversi, il sistema ricevente stabilisce che è
intercorso un errore e scarta il datagramma.
Datagramma UDP
Vari
Ottetti
Indirizzo di
Destinazione
Indirizzo di
Origine
Lunghezza del
Datagramma
Checksum
DATI
32 bit
Protocolli dello Strato
Trasporto : TCP
TCP Transmission Control Protocol : è un
protocollo affidabile, orientato alla connessione,
full duplex, con conferma. Il sistema
trasmittente spedisce il messaggio diviso in
segmenti numerati in ordine di sequenza.
Attende una conferma da parte del sistema
ricevente entro un certo intervallo di tempo. Se
la conferma non arriva rispedisce il segmento.
Il sistema in ricezione opera un controllo sugli
errori in trasmissione tramite il checksum e su
errori di perdita, duplicazione o fuori sequenza
dei segmenti specificando il segmento che si
aspetta di ricevere. Anche in questo caso
ciascun segmento è incapsulato nella struttura
Segmento TCP
Indirizzo di
Destinazione
Indirizzo
Origine
Numero di
Sequenza
Numero di Applicazione
Altri Campi
Puntatore di
Urgenza
CHECKSUM
OPZIONI
DATI
Protocolli del livello
Internet
IP è responsabile di trasmettere Datagrammi UDP o
Segmenti TCP incapsulati nei suoi Datagrammi IP.
Realizza un servizio di trasmissione best-effort,
connectionless, tra il sistema sorgente e il destinatario.
 ICMP è l’insieme dei protocollo per realizzare le varie
funzioni di controllo sul messaggio da trasmettere. Si
serve a sua volta dei servizi IP.
 ARP è il protocollo per la conversione dell’indirizzo
Internet nell’indirizzo MAC fisico del sistema
(generalmente a 48 bit)
 RARP consente ad un sistema senza indirizzo IP di
richiederlo

Protocolli di Routing
del Livello Internet
A livello Internet sono specificati i vari
Protocolli di Routing :
 RIP Routing Internet Protocol
 OSPF Open Shortest Path First
 EGP Exterior Gateway Protocol
 BGP Board Gateway Protocol
Sono tutti i protocolli volti a stabilire il miglior
percorso per la trasmissione dei Datagrammi
IP.
Il Gateway
del Protocollo TCP/IP
Nelle reti aziendali verrà introdotto il Gateway : un
elemento che opera come convertitore di protocollo.
Il termine Gateway usato nei protocolli di routing è invece
sinonimo di router (in realtà ne individua l’indirizzo IP).
Quando un sistema deve trasmettere un messaggio
chiama un router di default o usa un algoritmo per
stabilire a quale router rivolgersi (sulla base dell’indirizzo
a cui trasmettere). Il router ricevuto il datagramma IP
verifica l’indirizzo ed eventualmente comunica al sistema
sorgente il miglior router a cui spedire il prossimo
datagramma. Il sistema sorgente memorizza queste
informazioni in una tabella di routing.
L’Interfaccia Rete
(Livello Data-Link del
mod.OSI)
Il protocollo TCP/IP non definisce
specifiche per i livelli Interfaccia Rete e
Fisico, ma usa quelli delle LAN che lo
implementano (LAN Ethernet, Token
Ring, FDDI, ecc…).
Questa peculiarità (adattabilità) ha reso
il protocollo TCP/IP il protocollo più
usato nel mondo e non è quindi un caso
che su di esso si basa il funzionamento
della rete Internet.
Servizio di Demultiplexing
Un importante servizio fornito dal livello
Interfaccia Rete e che merita una particolare
attenzione è quello di Demultiplexing delle Trame.
Una scheda di interfaccia (NIC) trasferisce una
trama ricevuta verso il livello Interfaccia Rete, che
la scompone e stabilisce a quali protocolli del
livello Internet essa va indirizzata.
Protocolli per
Ll risoluzione
degli indirizzi
Protocolli per
la risol degli
ind. inversi
Protocolli
Internet
Protocolli per i
messaggi di
controllo Internet
DEMULTIPLEXING
NIC
TRAMA
Ambienti Client-Server
Generalità
Un ambiente Client-Server è caratterizzato dalla
presenza di una rete (LAN o WAN) per
trasmissioni ad alta velocità tra “fornitori” di
servizi, detti Server e “consumatori” di servizi,
detti Client.
I Server e i Client rappresentano i nodi della
rete.
La filosofia alla base delle strutture ClientServer è rendere accessibili al massimo numero
di utenti in maniera affidabile ed efficiente un
gran numero di risorse high-level da gestire in
maniera ottimale. I Server sono i supervisori
che ne regolano l’uso in un ambiente
Struttura tipo
La struttura per un tipico sistema Client-Server è quella di figura :
Mainframe
SERVER 1
I dati vengono conservati in un magazzino
dei dati (prima si usava il Mainframe) al
quale accedono vari Server, che gestiscono le
interrogazioni e gli aggiornamenti dei dati. I
Server possono essere workstation o PC con
prestazioni superiori. I Server sono poi
collegati tramite la rete ai Client, semplici
PC, che rappresentano l’interfaccia con gli
utenti finali.
SERVER 2
LAN
PC_1
PC_2
CLIENT
PC_3
PC_4
I Server sono sistemi reattivi che agiscono
solo su richiesta. I Client sono sistemi attivi
che
avnzano
richieste
anche
indipendentemente dagli utenti finali.
Processi Client - Server
I processi Client-Server a cui facciamo
riferimento sono nella maggior parte dei casi
quelli multithreaded, dove una classe di
Server (Thread) sono attivati e disattivati dai
Client sulla base di considerazioni basate
sull’efficienza, sui tempi di risposta e sulle
code esistenti.
I Sistemi
Server





I possibili Sistemi Server in ambienti Client-Server sono :
FILE SERVER per l’accesso a file e directory : il server trasmette ai
client record di file o interi file dietro richiesta
PRINT SERVER per l’accesso a servizi di stampa
DATABASE SERVER per l’accesso a DataBase : il server riceve dai
client interrogazioni in SQL; le elabora; accede alle basi dei dati e
rispedisce ai client lungo la rete solo i risultati
COMMUNICATION o GROUPWARE SERVER per l’accesso a
dispositivi specifici per le comunicazioni tra client e loro utenti allo
scopo di trattare testi, immagini, banche dati, ecc…
APPLICATION o TRANSACTION SERVER per l’accesso a specifiche
applicazioni con la possibilità di distribuzione della potenza di calcolo :
il client richiede al server l’esecuzione di una procedura remota tramite
istruzioni in SQL e quando l’esecuzione della procedura è terminata e
il client riceve i risultati si dice che ha avuto luogo la transazione.
I componenti sw di un
sistema C/S
(componenti base)
I componenti base di un sistema C/S sono :
 sw di interfaccia per la presentazione e
l’interazione con l’utente finale
 sw di applicazione per l’elaborazione dei
processi
 sw di gestione per le basi dei dati
Questi tre componenti possono essere
allocati o sul server o sul client determinando
un sistema a “Server Pesante” o “Client
Pesante” a seconda di dove vengano allocati
il numero maggiore di componenti.
Esempi
Client Pesante :
File Server, DataBase Server dove sw di
interfaccia e di applicazione risiedono sul
client;
Server Pesante :
Groupware Server, Transaction Server dove
sw di applicazione e di gestione delle basi dei
dati risiedono sul server.
Sistemi Peer-to-Peer C/S
Esistono anche sistemi più flessibili Peer-toPeer C/S dove il generico nodo della rete può
funzionare sia da client che da server,
cambiando addirittura identità nel corso di una
elaborazione se necessario.
Esempi di sistemi Peer-to-Peer Client-Server
sono quelli che supportano le famiglie di
protocolli TCP/IP.
I componenti sw di un
sistema C/S
(componenti addizionali)
Oltre ai tre componenti base esistono altri componenti
sw addizionali il cui insieme è detto middleware:
 sw di rete (sistemi operativi per la gestione della
rete);
 sw di comunicazione fra i nodi (protocolli);
 sw per applicazioni high level (es. X-Open DTP per il
colloquio tra DBMS eterogenei all’interno di una
stessa transazione).
Questi componenti possono essere allocati sia sul
server che sul client.
Configurazioni ClientServer
Parte I
Con le varie combinazioni di componenti sw si
vengono a creare le seguenti configurazioni :
 Presentazione Distribuita : la logica della base dei
dati e delle applicazioni risiede sul server e il client si
occupa della presentazione grafica delle informazioni,
cioè della loro codifica, mentre la logica delle
interfacce utente risiede sul server
 Presentazione Remota : rispetto alla precedente sul
client risiede anche la logica delle interfacce utente; la
rappresentazione grafica è allestita dal Client sulla
base dei dati trasmessi dal server attraverso la rete
Configurazioni Client-Server
Parte II
Logica Distribuita : il server si occupa della
gestione delle basi dei dati e delle funzioni di
controllo; elabora le richieste formulate dai
client, che hanno la gestione delle interfacce
utente e dell’interfaccia verso il server per
trasferire le interrogazioni degli utenti.
Il sw di applicazione risiede sul server.
 Gestione dei dati remota : esistono fonti
esterne usate come Data Source. I Server
acquisiscono i dati da queste fonti per
generarne altri disponibili ai client attraverso
specifiche applicazioni.

Configurazioni Client-Server
Parte III

Base di Dati Distribuite : le basi dei dati sono
distribuite tra server e client e quindi anche i
client hanno il sw per la gestione delle basi
dei dati.
La soluzione più tipica è comunque quella che
assegna i sw di interfaccia utente al client,
quelli per la gestione delle basi dei dati al
server (dove spesso risiede anche la base dei
dati). I dati statici sono allocati sul client per
ridurre il sovraccarico del server e della rete.
Collegamenti tra i
Componenti sw
I collegamenti più usati per i tre componenti base e per quelli
del middleware sono :
 le pipeline usate per lo più in ambienti Unix per collegare
stazioni che usano differenti sistemi operativi;
 le chiamate a procedura remota attraverso le quali vengono
richieste le esecuzioni di procedure remote, residenti cioè su
altri sistemi;
 interazioni SQL, tramite linguaggio SQL, usate per DBMS
relazionali;
 l’Object Request Broker (ORB) : un mediatore di richieste di
oggetti che coordina richieste e offerte, le cui caratteristiche
sono definite dallo standard CORBA e che è usato in amcienti
client-server object oriented.
Progettazione di Sistemi
Client-Server
Nella progettazione di sistemi C/S ha trovato largo
impiego il “Modello di Sviluppo Concorrente”
anche detto “Concurrent Engineering”.
Questo modello fissa una sequenza di stati :
1. INESISTENTE
4. IN ATTESA
DI MODIFICHE
2. IN CORSO DI
SVILUPPO
5. IN CORSO DI
REVISIONE
3. IN ESAME
6. ACQUISITO
7. COMPLETATO
Le Attività per la
Progettazione
Per un sistema Client-Server il modello concorrente
stabilisce le attività inerenti al progetto del sistema e
al progetto dei suoi componenti.
Le attività per il progetto del sistema sono:
 progettazione
 assemblaggio
 utilizzo
per il progetto dei suoi componenti :
 progettazione
 realizzazione
Il Modello Concorrente
Il modello concorrente si applica ad ognuna delle attività viste
prima. Il passaggio in uno stato di una certa attività può produrre il
passaggio di stato di un’altra attività ad essa correlata.
Le attività del sistema e quelle dei componenti si svolgono in
parallelo.
4. IN ATTESA
DI MODIFICHE
1.
INESISTENTE
2. IN CORSO DI
SVILUPPO
5. IN CORSO DI
REVISIONE
3. IN ESAME
6. ACQUISITO
7. COMPLETATO
Progettazione dei
Componenti
All’interno della progettazione dei componenti
per un sistema Client-Server attenzione
particolare è dedicata a :
 la progettazione della Base dei Dati, tipicamente
un RDBMS o una Base dei Dati OO;
 la progettazione dell’interfaccia utente
 il collaudo finale, che riveste un ruolo molto
importante.
Progettazione della Base
di Dati
La progettazione della Base di Dati rientra nel Ciclo di Vita di
un sistema informativo, secondo lo schema che segue :
REQUISITI PER DBMS
STUDIO DI FATTIBILITA’
RICERCA E ANALISI
DEI REQUISITI
PROGETTAZIONE
PROGETTAZIONE
CONCETTUALE
SCHEMA E/R
PROGETTAZIONE
LOGICA
SCHEMA RELAZIONALE
IMPLEMENTAZIONE
VALIDAZIONE
E COLLAUDO
FUNZIONAMENTO
PROGETTAZIONE
FISICA
SCHEMA FISICO DEL DBMS
Base di Dati in Ambiente
C/S
La Base di Dati usata in un ambiente ClientServer, che vede la presenza di una rete, è
necessariamente una Base di Dati distribuita.
Diventa cruciale l’organizzazione dei dati in
termini di loro formato e allocazione. Diventa
altresì cruciale gestire l’accesso a questi dati
in maniera efficiente e stabile nel tempo.
Linguaggio SQL e RDBMS rappresentano
un’ottima combinazione software-hardware
per la risoluzione di questi problemi.
Scarica

document