480 likes | 818 Views
IL PROTOCOLLO TCP/IP. Transmission Control Protocol/Internet Protocol
E N D
Transmission Control Protocol/Internet Protocol 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. 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/IPGeneralità 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.
Applicazione Presentazione Sessione Trasporto Rete Collegamento Fisico Applicazione Trasporto Internet Interfaccia Rete Hardware 7 6 5 4 3 2 1 API Modello OSI Modello TCP/IP
Applicazione Trasporto Internet Interfaccia Rete Hardware Applicazioni E Servizi API UDP TCP IP ICMP ARP RARP RIP OSPF EGP BGP DRIVER di RETE e NIC Modello TCP/IP Protocolli e Componenti TCP/IP
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 nella rete. Indirizzo TCP/IP TIPO Indirizzamento di Rete Indirizzamento di Host
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 subnetmask-TCP/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). Gli Indirizzi IP per Classe
CLASSE A : Ind.IP 0-126 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 192 1 1 0 0 0 0 0 0 223 1 1 0 1 1 1 1 1
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 224 1 1 1 0 0 0 0 0 239 1 1 1 0 1 1 1 1
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 240 1 1 1 1 0 0 0 0 255 1 1 1 1 1 1 1 1 Si parla anche di CLASSE E per gli indirizzi da 240 a 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
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 Gestione : insieme di tutti i protocolli per la gestione della rete Applicazioni e Servizi
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. API Application Program Interface
Caso Interfaccia TLI Applicazioni e Servizi TLI STREAM Protocolli di Comunicazione TCP/IP Driver di Rete e NIC
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. Protocolli dello Strato Trasporto : UDP
Datagramma UDP Indirizzo di Origine Indirizzo di Destinazione Lunghezza del Datagramma Checksum Vari Ottetti DATI 32 bit
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 del protocollo IP dello strato sottostante. Protocolli dello Strato Trasporto : TCP
Segmento TCP Indirizzo di Destinazione Indirizzo Origine Numero di Sequenza Numero di Applicazione Altri Campi Puntatore di Urgenza CHECKSUM OPZIONI DATI
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 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. Protocolli di Routing del Livello Internet
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. Il Gateway del Protocollo TCP/IP
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. L’Interfaccia Rete(Livello Data-Link del mod.OSI)
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. Servizio di Demultiplexing 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
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 Client-Server è 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 distribuito, che prevede cioè la presenza di una rete. Generalità
Struttura tipo La struttura per un tipico sistema Client-Server è quella di figura : Mainframe 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. I Server sono sistemi reattivi che agiscono solo su richiesta. I Client sono sistemi attivi che avnzano richieste anche indipendentemente dagli utenti finali. SERVER 1 SERVER 2 LAN PC_1 PC_2 PC_3 PC_4 CLIENT
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. Processi Client - 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 Sistemi Server
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. I componenti sw di un sistema C/S(componenti base)
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. Esempi
Esistono anche sistemi più flessibili Peer-to-Peer 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. Sistemi Peer-to-Peer C/S
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. I componenti sw di un sistema C/S(componenti addizionali)
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-ServerParte I
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-ServerParte II
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. Configurazioni Client-ServerParte III
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. Collegamenti tra i Componenti sw
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 : Progettazione di Sistemi Client-Server 1. INESISTENTE 2. IN CORSO DI SVILUPPO 4. IN ATTESA DI MODIFICHE 3. IN ESAME 5. IN CORSO DI REVISIONE 6. ACQUISITO 7. COMPLETATO
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 Le Attività per la Progettazione
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. 1. INESISTENTE 2. IN CORSO DI SVILUPPO 4. IN ATTESA DI MODIFICHE 3. IN ESAME 5. IN CORSO DI REVISIONE 6. ACQUISITO 7. COMPLETATO
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 dei Componenti
La progettazione della Base di Dati rientra nel Ciclo di Vita di un sistema informativo, secondo lo schema che segue : Progettazione della Base di Dati REQUISITI PER DBMS STUDIO DI FATTIBILITA’ PROGETTAZIONE CONCETTUALE RICERCA E ANALISI DEI REQUISITI SCHEMA E/R PROGETTAZIONE LOGICA PROGETTAZIONE SCHEMA RELAZIONALE IMPLEMENTAZIONE PROGETTAZIONE FISICA VALIDAZIONE E COLLAUDO SCHEMA FISICO DEL DBMS FUNZIONAMENTO
La Base di Dati usata in un ambiente Client-Server, 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. Base di Dati in Ambiente C/S