MODELLO ISO/OSI E TCP/IP

Suddivisione in livelli

COMUNICAZIONE TRA HOST

retiAnche in internet la comunicazione tra Host puรฒ avvenire se tutti adottano lo stesso standard e gli stessi protocolli a prescindere dalle differenze. La comunicazione avviene su livelli, posizionati uno sopra l’altro in una sorta di pila o stack. Al livello piรน basso abbiamo il livello Host to Network che si occupa di gestire la comunicazione sul mezzo fisico. Nello strato superiore abbiamo un altro livello che gestisce altri aspetti della connessione ma comunque sempre molto importanti e che implementerร  i propri protocolli e cosรฌ via dicendo fino a risalire la cima dello stack dove si arriva allo strato applicativo che come vedremo รจ lโ€™ultimo sia nel modello ISO/OSI che in TCP/IP. Ad ognuno dei livelli la comunicazione puรฒ avvenire se tutti gli Host implementano gli stessi protocolli.

MODELLO ISO/OSI E TCP/IP

Modello ISO/OSI e TCP/IP

STANDARD

ISO

International Standard Organization

  • Organizzazione che produce e pubblica gli standard internazionali (su tutto)
  • Membri: gli organismi di standardizzazione nazionali dei paesi membri (89 nel 2004)
    • ANSI (per gli USA) uno dei membri principali
    • UNI (Ente Nazionale Italiano di Unificazione) per lโ€™Italia

IEEE

Institute of Electrical and Electronics Engineers

  • La piuโ€™ grossa organizzazione professionale del mondo
  • Sviluppa ricerca e produce standards nei settori di ingegneria elettrica e computers
  • I suoi standard spesso vengono adottati come standard internazionali. Ad es., sulle reti locali:
    • IEEE 802.3 (Ethernet)
    • IEEE 802.5 (Token ring)
    • IEEE 802.11 (Comunicazione wireless)

MODELLO OSI

  • Nel 1977 lโ€™ISO ha costituito un gruppo che producesse uno standard universale per le architetture di rete
  • Il modello รจ stato pubblicato nel 1983 col nome OSI (Open System Interconnection)
  • Lo scopo รจ quello di definire una architettura (strati, protocolli, interfacce) in modo sufficientemente preciso da consentire implementazioni indipendenti ma interoperanti.

ARCHITETTURA STRATIFICATA

  • Una strutturazione ritenuta idonea per una architettura di rete รจ la stratificazione
  • La rete viene strutturata in livelli (strati, o Layer), visti come una pila di oggetti (stack)
  • Ciascuno strato ha come compito quello di fornire un servizio allo strato superiore.
  • La definizione delle regole di accesso ai servizi offerti da uno strato costituisce la interfaccia tra quello strato e lo strato superiore, ed รจ lโ€™unica cosa che lo strato superiore deve conoscere
  • Ciascuno strato realizza i servizi per lo strato superiore comunicando logicamente con lo strato paritario del nodo remoto, attraverso un insieme di regole dette protocollo.
  • Lo scambio di dati con lo strato paritario viene realizzato fisicamente utilizzando i servizi dello strato sottostante.

GLI STRATI DEL MODELLO OSI

LIVELLI OSI FISICO (1)

  • Lo strato fisico si occupa della trasmissione dei bit sul mezzo trasmissivo e comprende i dispositivi hardware necessari alla connessione
  • Definisce le grandezze fisiche utilizzate e le regole di handshaking (controllo del flusso)
  • Problemi tipici di questo livello sono:
    • la codifica (i valori delle tensioni, la durata dei bit)
    • proprietร  meccaniche dei connettori
    • specifiche elettriche dei circuiti dellโ€™interfaccia
  • Fanno parte di questo livello le tecnologie RS232, Ethernet, Token Ring e I protocolli dei modem.

LIVELLI OSI DATA LINK (2)

  • Lo strato di data link raggruppa i bit ricevuti dal livello superiore di rete in gruppi di bit detti Frame e viceversa in ricezione. Trasforma una trasmissione di bit grezzi tra nodi adiacenti in una linea di trasmissione con controllo di errore (analisi)
  • Esegue funzioni quali
    • divisione dei dati in frame
    • controllo degli errori
    • conferma della ricezione (acknowledge)
    • controllo del flusso (handshacking)
    • controllo di accesso al mezzo trasmissivo (indirizzo MAC: Medium Access Control della scheda di rete)
  • Frame
    • delimitazione, ordinamento dei bit, suddivisione in campi, indirizzi, etc.
  • Rilevazione e correzione errori
    • FCS (Frame Control Sequence), codici di correzione di errore, ritrasmissione, etc.

LIVELLI OSI RETE (3)

  • Lo strato di rete (network) determina il modo in cui I frame vengono instradati dal trasmettitore al ricevitore (routing o instradamento dei dati) ricercando I percorsi migliori
  • Funzioni caratteristiche sono:
    • suddivisione dei dati in pacchetti
    • indirizzamento dei nodi della rete (Indirizzo IP)
    • recapito a destinazione (su quale canale uscente inoltrare i dati provenienti da un canale), solitamente basandosi su tabelle
    • modalitร  di definizione ed aggiornamento delle tabelle
    • controllo della congestione, dei ritardi, dei tempi di transito
  • Algoritmi di instradamento
    • definizione della topologia della rete
    • calcolo del percorso su base locale e/o globale,
    • riconfigurazione in caso di guasti, etc.

LIVELLI OSI TRASPORTO (4)

  • Lo strato di trasporto provvede al trasferimento dei messaggi senza che gli utenti, ovvero i livelli superiori, debbano essere a conoscenza della sua struttura.
  • Procede in tre fasi:

ย ย ย  – realizzazione della connessione

ย ย ย  – trasferimento dei dati

ย ย ย  – rimozione della connessione

  • Eโ€™ il primo protocollo end-to-end

ย  ย  ย  ย  – Affidabilitร 

ย  ย  ย  ย  ย  ย tutti I frame arrivano a destinazione, in copia unica e in ordine

ย  ย  ย  ย  – Trasparenza:ย  “forma” dell’informazione qual era alla sorgente conservata a destinazione

ย  ย  ย  ย  – Ottimizzazione: traffico ripartito sui canali disponibili, prevenzione

ย ย ย ย ย ย ย ย  della congestione della rete

LIVELLI OSI SESSIONE (5)

  • Lo strato di sessione si occupa di negoziare la connessione tra i due nodi (login session) e fissare i parametri del colloquio (velocitร , controllo errori, tipo di trasferimento simplex, half-duplex o full-duplex, ecc.)
    • controllo su quale delle due parti abbia diritto di trasmettere
    • supervisione di una connessione lunga con eventuale ripristino della connessione in caso di fallimento del livello sottostante
    • Dialogo e sincronizzazione tra programmi applicativi nellโ€™utilizzo delle risorse condivise

LIVELLI OSI PRESENTAZIONE (6)

  • Il livello di presentazione determina il modo con cui le informazioni appaiono allโ€™utente, controllandone la sintassi e la semantica, cioรจ eseguendo conversione di codici e di formati da un sistema operativo allโ€™altro
    • codifiche differenti dei dati (ASCII/EBCDIC, โ€ฆ)
      • ASCII: American National Standard Code for Information Interchange
      • EBCDIC: Extended Binary Coded Decimal Interchange Code
    • compressione dei dati
    • crittografia dei messaggi per ragioni di sicurezza

LIVELLI OSI APPLICAZIONE

  • Il livello di applicazione si occupa di fornire agli utenti I mezzi per accedere alle reti funzionando da interfaccia tra il sistema di elaborazione dati e il mondo esterno
  • Compiti: definire i servizi attraverso cui l’utente utilizza la rete, con tutte le relative interfacce di accesso

ย ย ย  – Servizi di utente

  • terminale, trasferimento di file, posta elettronica, browser web, applicazioni Client-Server (Database), etc.

ย ย ย  – Servizi di sistema operativo

  • localizzazione di risorse, sincronizzazione degli orologi tra sistemi diversi, controllo di diritti di accesso, etc.

FLUSSO DEI DATI

  • Ogni livello organizza la sua comunicazione come se avvenisse direttamente con il processo paritario, secondo il protocollo (flusso virtuale).
  • I dati in realtร  scorrono dal livello superiore al livello inferiore nel nodo che trasmette, ed in senso inverso nel nodo che riceve
  • Il livello N accede quindi ai servizi dello strato N-1 per inviare i dati al processo paritario N sul nodo remoto

IL PROTOCOLLO

  • Un protocollo รจ un insieme di regole che definiscono la comunicazione tra due (o piรน) entitร  (host, dispositivi, file, ecc.)
  • Esempio: protocollo per trasferimento di file (FTP)
    • il client comunica al server โ€œvoglio trasferire un fileโ€ ed attende la risposta dal server
    • il server risponde โ€œe tu chi sei?โ€ ed attende la comunicazione dal client
    • il client invia lo username
    • il server risponde
      • non sei autorizzato
      • dammi la password
    • nel primo caso il client chiude, nel secondo invia la password
    • il client comunica il nome del file che vuole trasferire
    • il server fornisce il file
    • il client legge il file e lo copia localmente
    • alla fine il server chiude la comunicazione

PROTOCOL DATA UNIT

  • Il protocollo definisce quindi le modalitร  con cui due entitร  comunicano
  • Generalmente un protocollo prevede lo scambio di dati e di informazioni di controllo per gestire la comunicazione; ad esempio:
    • informazioni di controllo per negoziare le caratteristiche della comunicazione (la dimensione dei pacchetti, la velocitร , โ€ฆ)
    • informazioni di riscontro (acknowledge) sulla ricezione dei dati
  • Il pacchetto unitario (dati o informazioni di controllo) che si scambiano due strati pari รจ detto PDU

INCAPSULAMENTO E PDU

Come abbiamo visto, un’architettura di rete viene suddivisa in livelli (o strati), dove ogni entitร  comunica in modo logico (o virtuale) con la peer entity corrispondente, mentre comunica in modo fisico (o reale) con i due livelli adiacenti (quello immediatamente superiore e quello immediatamente inferiore). I protocolli definiscono le regole di comunicazione fra due entitร  di pari livello su due livelli corrispondenti.

PDU

Considerando ora la comunicazione fra due entitร  di pari livello (comunicazione logica), essa avviene in generale mediante lo scambio di messaggi che vengono dettiย Protocol Data Unit (PDU). Una Protocol Data Unit (PDU) รจ dunque l’unitร  d’informazione scambiata tra due peer entity in un’architettura di rete a strati.

Per fare un’analogia, la PDU potrebbe essere il singolo SMS scambiato fra due persone (peer entity) che intrattengono uno scambio di messaggi attraverso i loro cellulari. Come gli SMS hanno una lunghezza massima prefissata (140 byte) e possono contenere solo un certo tipo di dati (caratteri), cosรฌ anche le PDU hanno un formato prestabilito in base al particolare protocollo di comunicazione.

Alcune PDU possono servire per inviare o ricevere informazioni di controllo (es. stabilire una connessione, assicurarsi che un messaggio sia arrivato, chiudere una connessione etc.), mentre altre invece servono per trasmettere dati (o informazioni). Perรฒ dal punto di vista del formato, tutte le PDU di un certo protocollo hanno la stessa struttura, indipendentemente dal loro scopo.ย  Per tornare al nostro esempio, anche gli SMS possono essere usati per stabilire una connessione (“Ciao”), per confermare una ricezione (“Hai ricevuto il mio messaggio di stamattina?”) oppure per chiuderla (“Ora devo andare, ci sentiamo dopo”), come anche possono essere usati per trasmettere informazioni (“Non sto bene, devo avere un po’ di febbre”): la loro “struttura” tuttavia rimane sempre la stessa.

In pratica una PDU che serve per gestire una comunicazione รจ indistinguibile nella forma da una PDU di scambio dati e entrambe vengono trattate esattamente alla stessa maniera dai livelli inferiori. Usando ancora una metafora, al postino non interessa qual รจ il contenuto di una certa lettera da consegnare nรฉ il suo scopo.

In ogni caso ogni PDU รจ in generale formata da due parti:

  • unaย intestazioneย (oย header)
  • unaย parte di datiย (data o body)

L’intestazione puรฒ essere assimilata all’indirizzo presente su una busta, mentre la parte di dati corrisponde al contenuto di una lettera. Per poter raggiungere il destinatario (cioรจ la peer entity corrispondente) una PDU deve essere consegnata al livello inferiore, il quale a sua volta la consegnerร  al livello inferiore e cosรฌ via fino ad arrivare al livello della trasmissione fisica (es. i cavi e i dispositivi di collegamento in una rete).

Nel passaggio da un livello a quello inferiore, alla PDU viene aggiunta una nuova intestazione (header) e la PDU stessa viene trattata come la nuova parte di dati. Tale processo viene dettoย incapsulamentoย (encapsulation). Si osservi la figura seguente:

Incapsulamento

Il Layer 1 rappresenta il livello fisico di trasmissione, mentre gli altri strati rappresentano i livelli di una architettura di rete TCP/IP di cui parleremo piรน avanti. Si osservi che il messaggio (PDU) del livello piรน alto (Upper Layer Message) viene passato al livello sottostante TCP/UDP mediante l’aggiunta di un nuovo header e cosรฌ via fino ad arrivare in fondo. In modo simmetrico e contrario, quando il messaggio arriva al destinatario, ogni livello esamina l’header corrispondente e lo toglie dal messaggio stesso. Il processo diย incapsulamentoย รจ strettamente connesso al concetto diย informationย hiding. Ogni livello utilizza i propri protocolli di comunicazione, ma la struttura e il contenuto dei messaggi scambiati non interessano agli altri livelli.

SCHEMA CONCETTUALE DI COMUNICAZIONE TRA DUE HOST

Schema concettuale di comunicazione tra due host

SCHEMA REALE DI UNA COMUNICAZIONE TRA DUE HOST

Schema reale di comunicazione tra due host

Quando un messaggio a livello applicativo viene inviato dal mittente a un destinatario deve ripercorrere tutti i livelli nello stack del mittente, al di sotto di esso, fino ad arrivare al livello fisico per poi essere trasmesso come impulsi elettrici (0 e 1) sul mezzo di comunicazione. Dalla parte del destinatario il messaggio verrร  scompattato, arriverร  al livello fisico, risalirร  la cima dello stack di livello in livello fino ad arrivare al livello applicativo. Se il mittente invia un messaggio a livello N il destinatario riceverร  tale messaggio sempre al livello N.

LINK DI APPRODONDIMENTO

APPROFONDIMENTO