La pila ISO/OSI e TCP/IP

Pila ISO/OSI TCP/IP - DMC | Digital Melting Culture - E-learning

La pila ISO/OSI

Application: specifica i protocolli di comunicazione condivisa e i metodi d’interfaccia utilizzati dagli host nelle comunicazioni di rete. Nel modello ISO/OSI il layer Application è solo responsabile della comunicazione con le applicazioni con cui s’interfaccia l’utente; nel modello TCP/IP incorpora anche i due layer sottostanti (Presentation e Session).

Tra protocolli del layer Application (in TCP/IP) troviamo: HTTP, HTTPS, FTP, SSH, SMTP, SMNP, POP, IMAP, DNS, IRC, Telnet e altri.

Presentation: assicura che l’informazione proveniente dal layer Application dell’host sorgente sia leggibile dal layer Application dell’host destinazione; per il mittente, il layer Presentation è responsabile della conversione dell’informazione nei formati di trasmissione standard per il livello sottostante; nel destinatario è responsabile della traduzione, della formattazione e della consegna dell’informazione al layer Application (esempio conversione da/verso un formato proprietario verso/da il codice ASCII); in questo layer, ad esempio vengono convertiti i caratteri di terminazione di una stringa come il “\0”, la serializzazione degli XML e dei JSON.

Session: fornisce i meccanismi per aprire, chiudere e gestire una sessione tra l’applicazione in locale e la sua parte remota: gestisce, ad esempio, i metodi di logon/logoff di un client FTP; in caso di perdita di connessione è questo layer incaricato di provare a ripristinarla; in caso di inutilizzo prolungato può sospendere o chiudere la connessione.

Transport: fornisce i servizi necessari per una comunicazione end-to-end affidabile. Mentre il layer Network sottostante si occupa dell’instradamento dei pacchetti tra mittente e destinatario senza garanzie di consegna né di ordine dei pacchetti, il layer Transport garantisce che la comunicazione sia efficiente e affidabile.
Tra i servizi offerti dal layer Transport troviamo:

  • connessione connection-oriented: non bisogna dare per scontato l’instaurare una connessione prima di avviare lo scambio di dati; la comunicazione può essere sia connection-oriented che connectionless-oriented. I protocolli principali del layer Transport sono TCP, utilizzato per la trasmissione connection-oriented e UDP, per quella connectionless;
  • segmentazione: i dati inviati dagli strati superiori (unico strato superiore nel modello TCP/IP) sono stati standardizzati come visto nel layer Presentation ma mantengono la loro struttura originaria; sono espressi, cioè, come sequenze di bit a lunghezza variabile; il layer Transport, provvede in primo luogo a segmentare le sequenze a lunghezza variabile in segmenti di lunghezza fissa; il layer sottostante, il Network (Internet nel TCP/IP), impone che ogni pacchetto ricevuto dal livello superiore abbia una lunghezza non superiore alla MTU (maximum transmission unit).
    Nel protocollo TCP, un segmento è composto da due parti: l’header e i dati; l’header TCP ha una dimensione di 20 byte raggruppati in 5 sequenze da 32 bit così composte:

    • 16 bit del numero di porta del mittente e 16 bit del numero di porta del destinatario;
    • 32 bit del numero di sequenza: il numero di sequenza è rappresentato dal primo byte di dati trasmessi con il pacchetto;
    • 32 bit aknowledgment: è il numero di riconoscimento che identifica il numero di sequenza successivo che il ricevente si attende con il pacchetto successivo;
    • 32 bit così suddivisi:
      • 4 bit lunghezza dell’header;
      • 6 bit riservati;
      • 6 bit per le flag (ACK, SYN, FIN, URG, RST, PSH);
      • 16 bit per la dimensione della finestra: indica il numero di byte che il ricevente può accettare;
    • 16 checksum: per rilevare errori di trasmissione;
    • 16 bit urgent pointer;
  • stesso ordine di consegna: i 32 bit del numero di sequenza inclusi nell’header TCP permettono di consegnare i pacchetti nell’esatta sequenza con cui sono stati trasmessi; ed è l’unico modo per garantire la consegna esatta, dato che il layer Network non garantisce che i pacchetti siano consegnati nel medesimo ordine con cui sono stati trasmessi;
  • affidabilità: alcuni pacchetti possono essere persi durante il trasporto, a causa di congestioni di rete ed errori; il layer Transport rileva eventuali errori di trasmissione ed eventuale corruzione del pacchetto, grazie ai 16 bit del checksum; la flag ACK (o NACK) inviata al mittente confermerà la correttezza (o la corruzione) del dato ricevuto; in caso di dato corrotto, il protocollo TCP prevede la ritrasmissione automatica del dato;
  • controllo di flusso: vuol dire uniformare il tasso di trasmissione dei dati tra mittente e destinatario; se il mittente invia dati più velocemente di quanto il destinatario riesca a gestirne, quest’ultimo potrebbe avere problemi di buffer overrun, evitati col controllo di flusso;
  • controllo delle congestioni: controlla che il traffico immesso sul layer sottostante (Network o Internet) non sia eccessivo per la larghezza della banda; ad esempio, le richieste di rinvio automatico dei pacchetti in caso di errore potrebbero portare a un aumento eccessivo del traffico di rete; il protocollo evita questi scenari grazie alle procedure di controllo delle congestioni;
  • multiplexing/demultiplexing: quando un pacchetto giunge a un indirizzo, l’esatta destinazione è rappresentata dalla porta indicata e, a seconda della porta di destinazione, è gestito da vari protocolli (http, ftp, ssh); analogamente, si possono avere più pacchetti in partenza da un indirizzo, a seconda della porta specificata dal mittente; ciò vuol dire che le porte rappresentano numerosi punti terminali per un unico nodo e che quindi vi sono più servizi di rete attivi nello stesso momento, ognuno in ascolto sulla propria porta corrispondente; grazie al multiplexing, il layer Transport combina in un unico flusso di dati i pacchetti in uscita di uno stesso mittente, ma provenienti da porte diverse e, grazie al demultiplexing, in consegna, separa il flusso di dati affinché ogni pacchetto sia trasportato verso la porta giusta.

Network (Internet in TCP/IP): è responsabile dell’instradamento (routing) dei pacchetti (datagrammi) attraverso router intermedi e reti interconnesse; fornisce protocolli e metodi per trasferire datagrammi di dati a lunghezza variabile tra due nodi situati in reti diverse; in questo livello, grazie al protocollo IP, viene aggiunto l’indirizzo del destinatario. Il layer Network risponde alle richieste del layer Transport ed emette richieste per il layer Data Link.

In TCP/IP, il layer Application trasmette i dati al layer Transport; il layer Transport li divide incapsulandoli in segmenti TCP, composti da un header TCP (contenente informazioni quali i numeri di sequenza e di porta) e dal dato, e inviando il segmento al layer Network; quest’ultimo incapsula il segmento TCP nel payload di un datagramma IP e aggiunge il proprio header con informazioni di routing, quali indirizzi mittente e destinazione. Come per il layer Transport, anche qui, se il pacchetto ha dimensione troppo grande viene frammentato e poi ricostruito a destinazione.

Un datagramma è strutturato in header e payload. L’header contiene tutta l’informazione necessaria per il routing.

il protocollo IPv4 prevede un header di 32 byte strutturati in 5 sequenze da 32 bit. Queste sono:

  1. 32 bit così strutturati:
    • 4 bit versione protocollo (IPv4, IPv6);
    • 4 bit lunghezza “in 32bit” dell’header (20 byte), valore normale = 5;
    • 8 bit servizi TOS: serve a minimizzare il ritardo, massimizza il numero di pacchetti inviati;
    • 16 bit lunghezza “in byte” dell’intero datagramma datagramma IP trasmesso;
  2. 32 bit così strutturati:
    • 16 bit identificazione: numero identificativo del datagramma IP, ad ogni trasmissione successiva incrementa di 1;
    • 3 bit flag;
    • 13 bit fragment offset;
  3. 32 bit così strutturati:
    • 8 bit TTL (time to live): indica il numero massimo di router attraverso il quale il datagramma IP può passare; ogni router che riceve il pacchetto decrementa di 1 il TTL; quando arriva a 0, il router lo scarta e un messaggio di errore ICMP viene restituito al mittente;
    • 8 bit protocollo: indica quale protocollo a livello Transport gestirà il datagramma (TCP = 6);
    • 16bit header checksum: calcolato solo sull’header, non sull’intero datagramma, verifica che i bit non siano corrotti nella trasmissione;
  4. 32 bit indirizzo IP sorgente;
  5. 32 bit indirizzo IP destinatario;

Tra i protocolli del layer Network, vi sono:

  • IP (nelle sue due versioni IPv4 e IPv6);
  • IPsec: suite di strumenti per la sicurezza in rete, tra cui mutua autenticazione all’inizio di una sessione, negoziazione delle chiavi crittografiche da utilizzare durante la sessione, autenticazione dell’origine del dato, integrità del dato, cifratura/decifratura e autenticazione dei pacchetti di dati, protezione dagli attacchi di replay; su IPsec sono basate le VPN);
  • ICMP (Internet Control Message Protocol);
  • altri ancora.

Physical: si occupa del trasporto fisico (trasmissione e ricezioni) dei flussi di bit che costituiscono i dati grezzi – raw – non strutturati, dai dispositivi di rete intermedi (switch, hub, router, bridge, modem) verso le tecnologie di connessione wired (cavo coassiale, fibra ottica, doppino telefonico) e wireless (onde radio, microonde, raggi infrarossi); rappresenta un’interfaccia standardizzata per il mezzo di trasmissione; riceve i segnali digitali dal livello Data Link, espressi come sequenze di bit pacchettizzati, e li converte nel formato previsto dalla tecnologia di connessione (segnali elettrici o ottici, onde radio); qui si decidono i numeri di bit di un collegamento, se la comunicazione sarà half-duplex o full-duplex, la forma degli eventuali connettori utilizzati per collegare l’hardware al mezzo trasmissivo, la modulazione e la codifica utilizzate e altro ancora; la condivisione del mezzo di trasmissione tra i partecipanti alla rete può essere gestita secondo le varie strategie di trasporto, come CSMA/CD adottata dal protocollo Ethernet.

Tra i protocolli utilizzati sono:

  • Ethernet (espresso mediante lo standard IEEE 802.3);
  • Wifi (IEEE 802.11);
  • IEEE 1394;

La pila TCP/IP Vs. ISO/OSI

Pila ISO/OSI TCP/IP - DMC | Digital Melting Culture - E-learning

Ricevi un contatto

Lascia i tuoi riferimenti e scrivi a cosa sei interessato, ti contatteremo entro 48 ore per darti tutte le informazioni che ti occorrono.