ForumFree

Protocolli di Rete

« Older   Newer »
  Share  
spike87bar
view post Posted on 12/5/2008, 08:31




Nell'ambito delle telecomunicazioni, due o più macchine o host (computer, telefono, stampante, ecc...) possono comunicare tra loro rispettando norme che sono dette protocolli di rete. L'aderenza ai protocolli garantisce che due software in esecuzione su diverse macchine possano comunicare correttamente, anche se sono stati realizzati indipendentemente.


Servizio con e senza connessione
Quando un client e un server iniziano a comunicare si possono scambiare pacchetti di controllo prima di spedire i dati reali.

Queste procedure dette di handshaking preparano le due componenti alla comunicazione. Tali procedure sono alla base, ad esempio, del TCP.

Tuttavia possono anche esserci servizi che inviano direttamente i dati come nel caso dell'UDP.

La maggior parte delle applicazioni, tuttavia, hanno bisogno di inviare i dati in maniera sicura e affidabile per cui l'handshake serve proprio a questo compito. Si comprende come la connessione con TCP, ad esempio, sia più sicura ma anche più lenta perché scambia non solo dati reali, ma anche dati di servizio.

I livelli

Ciascun protocollo regola normalmente solo una parte degli aspetti di una comunicazione. I diversi protocolli sono organizzati con un sistema detto "a livelli" : a ciascun livello viene usato uno specifico protocollo.

La divisione in livelli è fatta in modo tale che ciascuno di essi utilizzi i servizi offerti dal livello inferiore, e fornisca servizi più "ricchi" a quello superiore. I diversi livelli in un host comunicano tra loro tramite le interfacce . Ogni livello parla solo con quello immediatamente superiore e con quello immediatamente inferiore. I protocolli regolano invece la comunicazione tra due entità dello stesso livello, che serve a fornire servizi al livello superiore.

I vari livelli sono organizzati in pile di protocolli (figura 3). Le pile di protocolli sono un modo flessibile per combinare componenti per realizzare un servizio.

Un esempio reale di una organizzazione a livelli protocollari, classico nelle trattazioni inerenti le reti di calcolatori, è quello del percorso di una valigia in un viaggio aereo partendo dalla casa di origine all'hotel di destinazione. Il primo livello che notiamo è quello della preparazione della valigia: il turista prende i vestiti e ve li ripone per poi chiuderla, come ciò viene fatto è definito dal protocollo del primo livello. Il secondo livello è quello dell'addetta alle valigie all'aeroporto di partenza, il turista le consegna la valigia (passaggio dal primo al secondo livello) e l'addetta attacca alla valigia le informazioni relative al volo e alla destinazione. Qui notiamo l'aspetto fondamentale dell'organizzazione a livelli protocollari, cioè che per l'addetta non è necessario conoscere come i vestiti sono stati riposti nella valigia, altresì non è necessario per il viaggiatore conoscere le operazioni che deve effettuare l'addetta, egli infatti otterrà ciò che vuole (avere i vestiti all'hotel d'arrivo), senza che ciò influisca affatto su come gli altri protocolli debbano lavorare, a patto che lo facciano correttamente.

La struttura serve ad adempiere ad alcuni compiti:

*controllo dell'errore;
*controllo del flusso;
*frammentazione e riassemblaggio;
*multiplexing, in modo che sessioni dello strato più alto possano *condividere una singola connessione dello strato più basso;
*instaurazione della connessione.

Tale architettura presenta vantaggi concettuali e strutturali anche se alcuni si sono opposti in maniera decisa in quanto uno strato spesso duplica le funzionalità di un altro strato in maniera ripetitiva.

Ad esempio, il servizio di ADSL viene fornito con diverse modalità, le più comuni sono chiamate PPP over ATM (ovvero il protocollo Point to Point usa i servizi forniti dal protocollo ATM) e PPP over Ethernet.


Il livello più basso (1) è detto "livello fisico" e si occupa di gestire la trasmissione dei segnali attraverso il mezzo di trasporto (cavo, fibra ottica, infrarossi, ecc...). Il livello più elevato è chiamato "livello applicativo" ed è quello che permette all'utente di creare il messaggio da comunicare.

La divisione in livelli è piuttosto rigida a livello di specifica dei protocolli, mentre nell'implementazione spesso diversi livelli vengono implementati insieme in uno stesso modulo software.

Non è detto che due macchine che comunicano usino la stessa pila di protocolli. Ad esempio, se vi connettete ad internet attraverso un modem voi appoggiate il livello di rete IP su una connessione PPP, mentre il server a cui vi collegate probabilmente appoggia la rete IP su una connessione ethernet.

In una rete a pacchetto ciascun livello della "pila protocollare" aggiunge ai pacchetti una intestazione, attraverso una operazione detta imbustamento. Il termine si applica anche ad alcune reti a commutazione di circuito, come SDH, dove l'imbustamento è un circuito dedicato a trasmettere informazioni di controllo.


image




nello specifico:

L'Open Systems Interconnection (meglio conosciuto come Modello ISO/OSI) è uno standard stabilito nel 1978 dall'International Organization for Standardization, il principale ente di standardizzazione internazionale, (ISO), che stabilisce una pila di protocolli in 7 livelli.

L'organizzazione sentì la necessità di produrre una serie di standard per le reti di calcolatori ed avviò il progetto OSI (Open Systems Interconnection), un modello standard di riferimento per l'interconnessione di sistemi aperti. Il documento che illustra tale attività è il Basic Reference Model di OSI, noto come standard ISO 7498.

Il modello ISO/OSI è costituito da una pila (o stack) di protocolli attraverso i quali viene ridotta la complessità implementativa di un sistema di comunicazione per il networking. In particolare ISO/OSI è costituito da strati (o livelli), i cosiddetti layer, che racchiudono uno o più aspetti fra loro correlati della comunicazione fra due nodi di una rete. I layers sono in totale 7 e vanno dal livello fisico (quello del mezzo fisico, ossia del cavo o delle onde radio) fino al livello delle applicazioni, attraverso cui si realizza la comunicazione di alto livello.

Livelli o layers

Ogni layer individua un protocollo di comunicazione del livello medesimo. ISO/OSI realizza una comunicazione per livelli, ovvero, dati due nodi A e B, il livello n del nodo A può scambiare informazioni col livello n del nodo B ma non con gli altri: ciò conferisce modularità al sistema e semplicità di implementazione e reimplementazione. Inoltre ogni livello realizza la comunicazione col livello corrispondente su altri nodi usando il PoS (point of service) del livello immediatamente sottostante. Sicché ISO/OSI incapsula i messaggi di livello n in messaggi del livello n-1. Così se A deve inviare, ad esempio, una e-mail a B, l'applicazione (liv. 7) di A propagherà il messaggio usando il layer sottostante (liv. 6) che a sua volta userà il PoS del layer inferiore, fino ad arrivare alla comunicazione sul mezzo fisico.

In tal modo si realizza una comunicazione multilivello che consente, ad esempio, di implementare algoritmi diversi per l'instradamento in rete pur disponendo di protocolli di trasporto connessi.

ISO/OSI è stato progettato per permettere la comunicazione in reti a 'commutazione di pacchetto', del tutto simili al paradigma TCP-UDP/IP usato in Unix e nella rete ARPAnet, poi divenuta Internet. La differenza sostanziale fra TCP/IP e ISO/OSI consiste nel fatto che nel TCP/IP il layer applicativo è esterno alla pila di protocolli (ovvero è una applicazione stand-alone che 'usa' TCP/IP per comunicare con altre applicazioni) , i layer sono dunque solo 5 (applicazione, trasporto, rete, data-link, fisico) e i livelli sessione, presentazione sono assenti perché implementati (eventualmente) altrove, cioè nell'applicazione stand-alone esterna.

ISO/OSI è uno stack di protocolli incapsulati, che sicuramente è più flessibile rispetto al paradigma di TCP/IP, ma soltanto perché risulta più astratto rispetto a questo. In pratica non esistono implementazioni 'complete' di ISO/OSI , a parte quelle proprietarie (ad esempio DECNET della Digital) e di interesse accademico.

Al fine di ottenere un miglioramento dell’attuale modello può risultare interessante la possibilità di trarre vantaggio da uno scambio di informazioni nell’ambito della stessa pila protocollare, tra gli strati non adiacenti. Questa possibità, che sta riscuotendo un notevole interesse negli ultimi anni, prende il nome di Cross-Layer (CL), ed è interessante soprattutto nelle comunicazioni radio per la natura stessa variabile del mezzo trasmissivo. L’idea fondamentale del concetto Cross-Layer è di introdurre la capacità, nei vari protocolli

Elenco e funzioni dei livelli

Livello 1: fisico
Obiettivo: trasmettere un flusso di dati non strutturati attraverso un collegamento fisico, occupandosi della forma e del voltaggio del segnale. Ha a che fare con le procedure meccaniche e elettroniche necessarie a stabilire, mantenere e disattivare un collegamento fisico.
Semplicemente: si occupa di controllare la rete, gli hardware che la compongono e i dispositivi che permettono la connessione.

In questo livello si decidono:
*Le tensioni scelte per rappresentare i valori logici 0 e 1
*La durata in microsecondi del segnale elettrico che identifica un bit
*L'eventuale trasmissione simultanea in due direzioni
*La forma e la meccanica dei connettori usati per collegare l'hardware al mezzo trasmissivo

Livello 2: datalink
Obiettivo: permettere il trasferimento affidabile di dati attraverso il livello fisico. Invia frame di dati con la necessaria sincronizzazione ed effettua un controllo degli errori e delle perdite di segnale. Tutto cio' consente di far apparire, al livello superiore, il mezzo fisico come una linea di trasmissione esente da errori di trasmissione.
Questo livello si occupa di formare i dati da inviare attraverso il livello fisico, incapsulando i dati in un pacchetto provvisto di header (intestazione) e tail (coda), usati anche per sequenze di controllo. Questa frammentazione dei dati in specifici pacchetti è detta framing e i singoli pacchetti sono i frame.
Per ogni pacchetto ricevuto, il destinatario invia al mittente un pacchetto ACK (acknowledgement, conferma) contenente lo stato della trasmissione: il mittente deve ripetere l'invio dei pacchetti mal trasmessi e di quelli che non hanno ricevuto risposta. Per ottimizzare l'invio degli ACK, si usa una tecnica detta Piggybacking, che consiste nell'accodare ai messaggi in uscita gli ACK relativi ad una connessione in entrata, per ottimizzare l'uso del livello fisico. I pacchetti ACK possono anche essere raggruppati e mandati in blocchi.
Questo livello si occupa anche di controllare il flusso di dati: in caso di sbilanciamento di velocità di trasmissione, si occupa di rallentare l'opera della macchina più veloce, accordandola all'altra e minimizzando le perdite dovute a sovraccarico.
La sua unità dati fondamentale è la trama.

Livello 3: rete
Obiettivo: rende i livelli superiori indipendenti dai meccanismi e dalle tecnologie di trasmissione usate per la connessione. Si occupa di stabilire, mantenere e terminare una connessione, garantendo il corretto e ottimale funzionamento della sottorete di comunicazione.

È responsabile di:
*routing: scelta ottimale del percorso da utilizzare per garantire la consegna delle informazioni
*gestione della congestione: evitare che troppi pacchetti arrivino allo *stesso router contemporaneamente
*indirizzamento
*conversione dei dati nel passaggio fra una rete ed un'altra con diverse caratteristiche. Deve, quindi:
<>tradurre gli indirizzi
<>valutare la necessita' di frammentare i dati se la nuova rete ha una diversa unità massima di trasmissione
<>valutare la necessita' di gestire diversi protocolli attraverso l'impiego di gateway

La sua unità dati fondamentale è il pacchetto.

Livello 4: trasporto
Obiettivo: permettere un trasferimento di dati trasparente e affidabile (implementando anche un controllo degli errori e delle perdite) tra due host. È il primo livello realmente end-to-end, cioe' da host sorgente a destinatario.
A differenza dei livelli precedenti, che si occupano di connessioni tra nodi contigui di una rete, il Trasporto (a livello logico) si occupa solo del punto di partenza e di quello di arrivo.
Si occupa anche di effettuare la frammentazione dei dati provenienti dal livello superiore in pacchetti, detti 'segmenti' e trasmetterli in modo efficiente ed affidabile usando il livello rete ed isolando da questo i livelli superiori. Inoltre, si preoccupa di ottimizzare l'uso delle risorse di rete e di prevenire la congestione.

La sua unità dati fondamentale è il messaggio.

Livello 5: sessione
Obiettivo: controllare la comunicazione tra applicazioni. Stabilire, mantenere e terminare connessioni (sessioni) tra applicazioni cooperanti.
Esso consente di aggiungere, ai servizi forniti dal livello di trasporto, servizi più avanzati, quali la gestione del dialogo (mono o bidirezionale), la gestione del token (per effettuare mutua esclusione) o la sincronizzazione (inserendo dei checkpoint in modo da ridurre la quantità di dati da ritrasmettere in caso di gravi malfunzionamenti).
Si occupa anche di inserire dei punti di controllo nel flusso dati: in caso di errori nell'invio dei pacchetti, la comunicazione riprende dall'ultimo punto di controllo andato a buon fine.

Livello 6: presentazione
Obiettivo: trasformare i dati forniti dalle applicazioni in un formato standardizzato e offrire servizi di comunicazione comuni, come la crittografia, la compressione del testo e la riformattazione.
Esso consente di gestire la sintassi dell'informazione da trasferire.

E sono previste tre diverse sintassi:
*astratta (definizione formale dei dati che gli applicativi si scambiano),
*concreta locale (come i dati sono rappresentati localmente)
*di trasferimento (come i dati sono codificati durante il trasferimento).

Livello 7: applicazione
Obiettivo: interfacciare utente e macchina.
Fornisce un insieme di protocolli che operano a stretto contatto con le applicazioni. È errato identificare un'applicazione utente come parte del livello applicazione.

I protocolli delle applicazioni tipiche di questo livello realizzano operazioni come:
*Trasferimento di file
*Terminale virtuale
*Posta elettronica
 
Top
8kikka8
view post Posted on 12/5/2008, 13:19




huuu io li ho "fatti" a scuola....noioooooooosiiiiiiiiiii

image
 
Top
_The Miracle_
view post Posted on 13/5/2008, 19:41




Io pure... E li ho anche portati all'orale... Pauuuuuuura! :lol:
 
Top
8kikka8
view post Posted on 14/5/2008, 13:18




io li avevo rimossi esattamente una settimana dopo averli studiati!!!
 
Top
3 replies since 12/5/2008, 08:31   108 views
  Share