Modello basato sull'uso di un server centrale che dirige il traffico dei client registrati. Il server gestisce un database che mantiene un indice delle risorse condivise dai client. L'indice contiene indirizzo IP del client e nome della risorsa condivisa (chiave con la quale viene identificata la risorsa). Ogni volta che un utente effettua la richiesta per un particolare file, il server interroga il suo database e a seconda del risultato restituisce o meno una lista di file, corrispondenti a quello richiesto, dei client connessi alla rete.A questo punto l'utente richiedente non deve far altro che selezionare uno di questi file dalla lista, aprendo una connessione diretta con il proprietario del file. Di qui ha luogo il trasferimento della risorsa tra i due client.
Vantaggi e svantaggi: Il principale vantaggio del modello client-server e' la sua centralizzazione che permette la localizzazione dei file rapidamente ed efficacemente. Dal momento che il server mantiene aggiornato l'indice delle risorse condivise dai client, i file che gli utenti trovano attraverso le loro ricerche sono immediatamente pronti per essere scaricati. Nonostante un'architettura centralizzata sia efficiente, il sistema ha un singolo punto di ingresso.
Nella rete si identificano uno o più sistemi SERVER in grado di fornire servizi specifici a che li richiede e più sistemi CLIENT che sono i fruitori attivi di questi servizi. A livello di grandi applicazioni specialmente gestionali, è comodo suddividere il problema in più funzioni distinte e assegnare queste funzioni ad opportuni sistemi, molto potenti in grado di offrire la loro esecuzione in tempi molto brevi; si ottiene una frammentazione del problema, parallelizzabile, inoltre gli utenti possono accedere in un parallelismo di tipo pipeline alle varie funzioni, riducendo il tempo di esecuzione della singola applicazione e di permettere a più utenti di accedere allo stesso servizio comune Una possibile implementazione del modello client/server richiede solo due primitive: Send (ADDR, MSG) Receive (ADDR, MSG)
Il concetto di peer to peer non e' esattamente nuovo Il concetto di peer to peer non e' esattamente nuovo. Fino a 30 anni fa, le societa' lavoravano su architetture che oggi sarebbero etichettate come peer to peer. Detto semplicemente il peer to peer e' la condivisione di risorse e di servizi tra computer. Queste risorse e questi servizi comprendono scambio di informazioni, cicli di computazione, spazio su disco per i file. Una rete peer to peer sfrutta la potenza di calcolo dei client connessi ad essa.
Grazie al modello P2P, i computer possono comunicare e condividere i file e altre risorse, invece di passare attraverso un server centralizzato. Ciascun computer (nodo) e' responsabile del passaggio dei dati alle altre macchine. Le connessioni non nascono spontaneamente, ma devono essere richieste da una delle parti in causa. A differenza dell'approccio client-server, chi richiede la connessione non e' ad un livello gerarchico inferiore; infatti entrambi i partecipanti sono alla pari (peer). In una architettura peer to peer i computer che sono stati tradizionalmente usati solo come client comunicano tra di loro e possono agire sia da client che da server, assumendo un ruolo che e' molto efficiente per la rete. Questo riduce notevolmente il carico sui server.
Attraverso un client scaricato gli utenti si connettono alla rete Attraverso un client scaricato gli utenti si connettono alla rete. Dopo la connessione, ha inizio la comunicazione tra i nodi che avviene tramite uno scambio di messaggi. I messaggi servono a: segnalare la propria presenza sulla rete chiedere una o piu' risorse risorsa servire la richiesta di una o piu' risorse trasferire le risorse La validita' dei messaggi e' data dal TTL (time to live). Se il TTL > 0 allora il messaggo e' valido, altrimenti non viene preso in considerazione. Il valore del TTL viene decrementato ad ogni hop, al passaggio da un nodo
PROTOCOLLI DI COMUNICAZIONE Necessità della standardizzazione 3 componenti ITU (Telecomunicazioni) ISO (Standardizzazione in generale organizzazioni mondiali (IEEE)
ITU Organizzazione interna all’ONU: coordina i fornitori dei servizi di telecomunicazioni
ISO Organizzazione volontaria con il compito di SVILUPPARE GLI STANDARD INTERNAZIONALI; Fondata nel 1946 appartengono: ANSI (USA) UNI (ITALIA) DIN (GERMANIA) HA CREATO IL MODELLO OSI che rappresenta lo standard universalmente riconosciuto
ORGANIZZAZIONI Organizzazioni che si occupano della materia tra le quali la più importante è l’IEEE (institute of Electrical and Electronics Engineers) è un albo mondiale degli ingegneri elettronici ed elettrotecnici Proposta di standardizzazione delle reti LAN nota con la sigla 802.
OPEN SYSTEMS INTERCONNECTION MODELLO OSI OPEN SYSTEMS INTERCONNECTION Si inizia a studiarlo nel 1977; solo nel 1984 è stato approvato Rappresenta la conoscenza essenziale per affrontare le problematiche della comunicazione di rete
MODELLO OSI Scopo: Descrivere un modello di architettura VERSATILE ed EFFICIENTE per proporre una serie di contenitori (LIVELLI) gerarchicamente collegati per adattare o indirizzare gli standard esistenti o futuri. FAR SI’ CHE I SISTEMI DI ELABORAZIONE INTERCONNESSI TRA LORO RISULTINO VIRTUALMENTE APERTI
I LIVELLI DEL MODELLO OSI 1 - LIVELLO FISICO: (PH) gestisce direttamente le risorse fisiche di interconnessione (Mezzi di trasporto ) assicurando il trasferimento dei singoli bit in termini di: Caratteristiche meccaniche (numero dei piedini di un connettore) Elettriche (al livello di bit 1 corrispondono 12 volt) Funzionali (significato di ogni piedino)
I LIVELLI DEL MODELLO OSI 2 - LIVELLO COLLEGAMENTO DATI(data link layer) assicura il trasferimento di un frame (blocco di info) privo di errori. Deve: Delimitare i dati da inviare al livello 1 (caratteri di inizio e fine) Aggiungere informazioni di controllo necessarie per il riconoscimento ed individuazione degli errori (eventuali ripetizioni) Regolare il traffico (ordine dei pacchetti trasmessi e ricevuti, introdurre dei meccanismi (wait) per compensare eventuali mittenti troppo veloci rispetto al destinatario)
I LIVELLI DEL MODELLO OSI 3 - LIVELLO RETE (Network layer) : Determina il percorso che la sequenza di pacchetti che compongono il messaggio dovranno seguire per arrivare a destinazione. L’instradamento avviene attraverso l’utilizzo di tabelle Il percorso da seguire può essere: Fisso – assegnato all’inizio della comunicazione e rilasciato al termine della comunicazione – Commutazione di circuito Variabile per ogni frame che compone il messaggio – Commutazione di pacchetto Tariffazione Interfacciamento con reti differenti risolto con l’attribuzione del protocollo IP che si effettua a questo livello
I LIVELLI DEL MODELLO OSI I livelli 1 – 2 e 3 sono chiamati LIVELLI TRASMISSIVI perché si occupano dell’implementazione fisica della rete, in termini di cablaggi (livello 1), tipologie di instradamento (livello 3) Questi livelli sono orientati i livelli inferiori o con il supporto fisico. I livelli da 4 in poi sono chiamati LIVELLI END TO END
I LIVELLI DEL MODELLO OSI 4 – livello di trasporto (Transport layer): primo livello end to end- ottimizza l’uso delle risorse di rete prevenendo la congestione o multiplando (operazione che permette di condividere un solo mezzo fisico tra più stazioni) l’unica richiesta di collegamento su più connessioni E’ orientato alla connessione diretta con il livello paritario della stazione collegata. Controlla che i pacchetti siano trasmessi nella giusta sequenza (alta affidabilità) e ricevuti correttamente (senza perdite o duplicazioni). Il protocollo TCP è assimilabile a questo livello del modello OSI
I LIVELLI DEL MODELLO OSI 5 – livello sessione (Session layer) Crea una sessione (collegamento diretto tra due interlocutori) Organizza il dialogo in termini di: Tipo di dialogo (scambio in full duplex, half duplex, simplex) Sincronizzazione (capacità di sapere sempre fino a che punto la comunicazione sia arrivata a buon fine in modo da poter riprendere in caso di interruzione dall’ultimo scambio corretto
I LIVELLI DEL MODELLO OSI 6 – livello presentazione (Presentation layer) Presenta le informazioni scambiate tra le entità in maniera compatibile con l’ambiente in cui vengono trattate deve adattare la sintassi dei corrispondenti cioè in termini di formato dei dati e formato di rappresentazione locale) Assicura l’opportuna compressione dei dati e/o crittografia dei dati da scmbiare
I LIVELLI DEL MODELLO OSI 7 – livello applicazione (Application layer) E’ il livello in cui i programmi applicativi colloquiano con il modello OSI Gestione di applicazioni distribuite Gestione dei terminali virtuali (2 postazioni con controllori video o tastiere diverse non compatibili – si definisce uno standard di un terminale virtuale a cui tutti dovranno adeguarsi. Posta elettronica Trasferimento file Controllo dei sistemi remoti (possibilità di inviare i caratteri battuti al terminale di un sistema locale al sistema remoto e farli interpretare da quest’ultimo come se fossero stati digitati in quel sito)
LA COMMUTAZIONE La commutazione è quell’operazione che predispone il percorso che le info emesse dal mittente devono seguire per raggiungere il destinatario. Di circuito – rappresenta la versione automatizzata dell’operazione che doveva effettuare manualmente il centralinista quando adoperava le spine in un pannello di interconnessione.
COMMUTAZIONE DI CIRCUITO Tempo di attivazione della connessione fisica - permanente fino al termine della comunicazione Bassa efficienza nell’uso del mezzo
COMMUTAZIONE DI PACCHETTO Suddivisione del messaggio da trasmettere in più unità autonome Ambito strettamente digitale Capacità di instradamento autonoma Il disordine all’arrivo non crea alcun problema, viene utilizzato per il controllo dell’arrivo dei dati. Nota anche con il nome di datagram
COMMUTAZIONE DI PACCHETTO
COMMUTAZIONE DI PACCHETTO A CIRCUITO VIRTUALE Commutazione di circuito virtuale: ingloba le caratteristiche di entrambe le soluzioni: per comunicare, due stazioni fissano inizialmente il percorso (path) che i pacchetti devono seguire. Il trasferimento dei dati seguirà sempre questo percorso e i pacchetti arriveranno nella stessa sequenza con cui sono stati trasmessi. La determinazione del path è di competenza del singoli nodi interessati. Ogni nodo componente determina solo il collegamento con il nodo successivo
I protocolli TCP/IP Contrapposto all’architettura OSI (standard de iure), l’architettura TCP/IP (standard de facto) TCP/IP = Internet Protocol Suite TCP e IP sono 2 protocolli
I protocolli TCP/IP TCP/IP è una famiglia standard di protocolli progettati per reti di grandi dimensioni che utilizzano collegamenti WAN. TCP/IP fu sviluppato nel 1969 dal DARPA (Department of Defense Advanced Research Project Agency), come risultato di un esperimento di condivisione di risorse denominato ARPANET tra i principali centri di ricerca degli USA per scambio di info e strategie comuni. Lo scopo era quello di creare un protocollo che fosse in grado di assicurare collegamenti di rete per comunicazioni ad alta velocità
I protocolli TCP/IP OBIETTIVI RICHIESTI progettare una rete eterogenea (comunicazione tra qualsiasi tipo di computer (dal pc al main frame) Servizi non connessi rete a commutazione di pacchetto
Standard TCP/IP Stato Descrizione Required Deve essere implementato su tutti i gateway e gli host basati su TCP/IP Recommended consigliato Elective facoltativo Limited Use Non previsto l’impiego generale Not recommended sconsigliato I protocolli della famiglia (suite) TCP/IP sono di Pubblico Dominio (ben documentati e continuamente analizzati) Vengono pubblicati in una serie di documenti denominata RFC (Request for Comments) e sono disponibili su Internet o nel libro (DDN Protocol Handbook)
Architettura di protocolli TCP/IP I protocolli TCP/IP corrispondono ad un modello teorico a quattro livelli (Modello DARPA). APPLICAZIONE TRASPORTO INTERNET INTERFACCIA DI RETE Ciascuno dei livelli corrisponde a uno o più dei sette livelli del modello OSI.
Architettura di protocolli TCP/IP OSI TCP/IP Suite del protocollo TCP/IP Applicazione Applicazione SMTP SNMP FTP Telnet RIP Presentazione DNS Sessione Trasporto Trasporto TCP UDP Rete Internet IP IGMP ICMP ARP Data-Link Interfaccia di rete Ethernet Token Ring Frame Relay ATM Fisico
Modello TCP/IP corrisponde ad un modello teorico a quattro livelli (Modello DARPA). INTERFACCIA DI RETE INTERNET TRASPORTO APPLICAZIONE Ciascuno dei livelli corrisponde a uno o più dei sette livelli del modello OSI.
Livello Interfaccia di rete (livelli fisico e data link dell’ISO/OSI) I livelli 1 e 2 del modello ISO/OSI non vengono specificati: questo fa parte delle specifiche di progetto di DARPA, in quanto TCP/IP doveva essere in grado di appoggiarsi non solo su qualsiasi supporto fisico, ma anche su qualsiasi rete. L’unico compito è quello di fornire il pacchetto del corretto indirizzo di livello 2 del nodo della struttura (LAN, MAN o WAN) con cui collegarsi.
Livello Internet Coincide con iI livello rete del modello ISO/OSI ed il principale protocollo implementato in questo livello è il protocollo IP (Internet Protocol),in grado di offrire solo servizi non connessi (cioè senza conferma) Scambia cioè solo pacchetti non numerati e non effettua alcun tipo di controllo né sul flusso né sul contenuto; il suo scopo principale è quello di gestire l’instradamento dei pacchetti stessi. Oltre al protocollo IP esistono a questo livello altri protocolli come ARP/RARP, ICMP e i protocolli di routing
Livello Trasporto Il livello di trasporto fornisce servizi di comunicazione per sessioni e datagrammi al livello successivo (applicazione).I principali protocolli sono: TCP (da cui il nome dell’architettura TCP) offre servizi confermati di tipo connection oriented in modalità full-duplex. Caratterizzato dalla capacità di multiplexing (permettere a più applicazioni di accedere contemporaneamente ai vari servizi offerti) Fornisce un servizio di comunicazione one-to-one affidabile, orientato alla connessione. Il protocollo TCP consente di stabilire una connessione TCP, di stabilire la sequenza dei pacchetti inviati e di tenerne traccia e ripristinare i pacchetti persi durante la trasmissione; UDP che fornisce un servizio one-to-one o one-to-many per comunicazioni non affidabili senza connessione
Livello Applicazione Il livello di applicazione fornisce alle applicazioni la possibilità di accedere ai servizi degli altri livelli e definisce i protocolli che verranno utilizzati dalle applicazioni per lo scambio dei dati. I protocolli più comunemente usati sono: HTTP (HyperText Transfer Protocol) usato per il trasferimento dei file che compongono le pagine dei siti Web; FTP (File Transfer Protocol) utilizzato per il trasferimento interattivo di file; SMTP (Simple Mail Transfer Protocol) utilizzato per il trasferimento dei messaggi di posta elettronica e di eventuali allegati; Telnet, protocollo di emulazione di terminale utilizzato per l’accesso in remoto a Host di rete
Gli indirizzi IP L'indirizzamento IP permette di identificare ogni host all'interno di una rete TCP/IP. Grazie all'utilizzo delle classi di indirizzi ed al subnetting è possibile organizzare e gestire in modo più efficiente il proprio network. Un indirizzo IP, chiamato anche indirizzo logico, rappresenta un identificativo software per le interfacce di rete, esso viene utilizzato in combinazione con l'indirizzo fisico (MAC), il quale consente di determinare in modo univoco ogni interfaccia di un dispositivo di rete.
Struttura di un indirizzo IP Un IP Address è un numero di 32 bit suddiviso in quattro gruppi da 8 bit ciascuno, la forma con la quale viene solitamente rappresentato è detta decimale puntata (Dotted Decimal). Essendo ogni numero rappresentato da 8 bit, può assumere un range di valori da 0 a 255. Utilizzando 32 bit per indirizzo è possibile avere 4.294.967.296 combinazioni di indirizzi differenti. In realtà esistono alcuni indirizzi particolari, di conseguenza non tutti i valori sono disponibili al fine di identificare un host nella rete.
Struttura di un indirizzo IP 10011101 11100100 10001111 10011101 NET-ID HOST-ID
Classi di Indirizzi IP Per permettere una migliore organizzazione della rete, gli indirizzi disponibili sono stati suddivisi in classi in base alle dimensioni del network da gestire. In questo modo verranno utilizzate le classi più adatte ad alla dimensioni della rete, con conseguente minore “spreco” di ip address. Sono disponibili cinque classi di indirizzi IP, di cui solo le prime tre possono essere utilizzate per assegnare indirizzi agli host. Le classi vengono convenzionalmente denominate: A, B, C, D, E
8 bit nella porzione NETID 10011101 11100100 10001111 10011101 Indirizzi di classe A Gli indirizzi di classe A hanno: 8 bit nella porzione NETID 1 126 reti 1 e 24 bit nella porzione HOSTID per cui è possibile indirizzare 224 – 1 = 16.777.215 – 1 (la configurazione tutti ZERO non è permessa) = 16.777.214 hosts. I valori decimali del primo ottetto vanno da 0 a 127
E’ possibile quindi indirizzare 2(16-2) = 16.384 reti 10011101 11100100 10001111 10011101 Indirizzi di classe B Gli indirizzi di classe B hanno: 16 bit nella porzione NETID 1 1 1 E’ possibile quindi indirizzare 2(16-2) = 16.384 reti e 16 bit nella porzione HOSTID per cui è possibile indirizzare 216 – 1 = 65.535 – 1 (la configurazione tutti ZERO non è permessa) = 65.534 hosts. I valori decimali del primo ottetto vanno da 128 a 191
E’ possibile quindi indirizzare 2(24-3) = 2.097.152 reti 10011101 11100100 10001111 10011101 Indirizzi di classe C Gli indirizzi di classe C hanno: 24 bit nella porzione NETID 1 1 1 1 E’ possibile quindi indirizzare 2(24-3) = 2.097.152 reti e 8 bit nella porzione HOSTID per cui è possibile indirizzare 28 – 1 = 255 – 1 (la configurazione tutti ZERO non è permessa) = 254 hosts. I valori decimali del primo ottetto vanno da 192 a 223
Attribuzione degli indirizzi IP E’ possibile attribuire indirizzi IP qualsiasi nell’ambito di una rete locale non connessa ad Internet. Invece, nel caso in cui si preveda di interconnetere la rete ad altre reti basate sullo stesso protocollo o ad Internet, è opportuno procedere all’assegnazione degli indirizzi IP seguendo una politica ben precisa per evitare successivi conflitti. Per ottenere gli indirizzi IP è necessario rivolgersi alle organizzazioni che a livello internazionale, nazionale e locale gestiscono le assegnazioni (InterNIC o IANA)
Indirizzi IP privati Con indirizzi IP privati si intendono alcune classi di indirizzi, definite nella RFC 1918, riservate alle reti locali non connesse ad internet allo scopo di ridurre le richieste di indirizzi pubblici. Chiunque può utilizzare questi indirizzi per la propria rete locale, perché i pacchetti relativi a tali reti non vengono instradati dai router internet, e quindi essi non entreranno in conflitto con analoghi indirizzi posti su altre reti locali. Nel caso occorra connettere ad Internet una rete locale che utilizza queste classi indirizzi si deve ricorrere al NATing (Network Address Translation).
Tabella degli indirizzi IP privati Le classi in questione sono: indirizzo iniziale indirizzo finale classi Numero di indirizzi disponibili 10.0.0.0 10.255.255.255 singola classe A 16.777.216 172.16.0.0 172.31.255.255 16 classi B contigue 1.048.576 192.168.0.0 192.168.255.255 256 classi C contigue 65.536
Le sottoreti In una rete, come quelle di classe A e B, in cui il numero di Hosts è teoricamente elevato e quindi difficilmente implementabile senza utilizzare dei routers, si è pensato di adottare il metodo di indirizzamento di sottorete per poter assegnare gruppi di indirizzi a segmenti di rete come se queste ultime fossero reti distinte. In altre parole il metodo di indirizzamento di sottorete consiste nel “prendere in prestito” alcuni bit della HOSTID da trasferire sulla NETID.
Maschera di sottorete 172.16.0.0 10101100 00010000 00000000 I.P Maschera 11111111 11100000 00000000 255.255.224.0 Bit 1 nella maschera Bit corrispondente nell’IP appartiene al NETID Bit 0 nella maschera Bit corrispondente nell’IP appartiene al HOSTID
Indirizzi di sottorete Dall’esempio precedente risulta quindi possibile determinare i seguenti sei indirizzi di sottorete: 10101100 00010000 00100000 00000000 01000000 01100000 10000000 10100000 11000000 Sono esclusi gli indirizzi 000 e 111
Valori ammessi per indirizzi di sottorete Sempre dall’esempio precedente risulta quindi che i possibili indirizzi IP determinati con l’utilizzo della maschera utilizzata sono: Da 172. 16. 32. 1 a 172. 16. 63. 254 10101100 00010000 00100000 00000001 10101100 00010000 00111111 11111110 Da 172. 16. 192. 1 a 172. 16. 223. 254 10101100 00010000 11000000 00000001 10101100 00010000 11011111 11111110
Esempio 140.35.2.2 140.35.1.2 140.35.1.3 140.35.2.1 140.35.1.1 140.35.1.4 140.35.2.4 140.35.3.4 140.35.3.1 140.35.2.3 140.35.3.3 140.35.3.2
I LIVELLI DEL MODELLO OSI L’effetto del livello 2 è quello di consentire al LIVELLO 3 di vedere la linea di collegamento come un supporto veloce e virtualmente privo di errori