networking/001-ISO⁄OSI-TCP⁄IP.md
2025-04-17 21:10:10 +02:00

4.8 KiB
Raw Blame History

Cos'é Internet

Internet é una serie di dispositivi (host o nodi) interconnessi tra loro grazie ad altri dispositivi, come switch e router.

Per dimensioni, l'architettura di rete si puo' suddividere in:

  • LAN (local area network)
  • WAN (wide area network)

Stack protocollari

  • Modello teorico ISO/OSI
  • Modello pratico TCP/IP

modello iso/osi - tcp/ip

Per creare una comunicazione standard tra i vari host é stato creato il modello teorico ISO/OSI, implementato nel modello TCP/IP.

Si tratta di una struttura di dati che contiene un insieme di protocolli (regole), divisi, in base al loro scopo, tra i vari layer.

  • Physical layer Layer 1: livello piú basso, che si occupa dell'effettiva trasmissione fisica dei dati, mediante un mezzo trasmissivo (es. cavo in rame, fibra ottica, onde radio, ecc.). Le informazioni inviate sono codificate come bit (0 e 1).
  • Data-Link o Layer 2: una serie di standard che si occupano di comunicazioni tra dispositivi locali (LAN), con eventuali meccanismi di correzione degli errori. I pacchetti di informazioni sono chiamati frame, che contengono anche i vari mac-address sorgente e destinazione.
  • Network Layer o Layer 3: i protocolli di routing (instradamento dei pacchetti) permettono l'indirizzamento degli host a livello globale (WAN).
  • Transport Layer o Layer 4: crea un vero e proprio canale di comunicazione tra i singoli processi, associati ad una porta, di due o piú host (TPC/UDP).
  • Session Layer o Layer 5: gestione della sessione della comunicazione.
  • Presentation Layer o Layer 6: a questo livello l'informazione viene elaborata e trasformata in modo da presentarla all'Application Layer (e quindi per essere comprensibile a noi umani).
  • Application Layer o Layer 7: a stretto contatto coi software che utilizziamo.

In ogni layer, il pacchetto di informazioni ha varie nomenclature. Inoltre, ogni layer ha un suo determinato meccanismo di indirizzamento delle informazioni, che garantisce un flusso bidirezionale (come e da chi verso chi). Ad esempio, a livello data-link sarà il mac sorgente e destinatario.

  • Application: payload o messaggio
  • Transport: segmento TCP (indirizzamento tramite porte)
  • Network: pacchetto IP (indirizzamento tramite indirizzo IP)
  • Data-Link: frame (indirizzamento tramite mac-address)
  • Physical: bit (mezzo trasmissivo che collega due o piú host)

Interazione tra i layer

I layer sono modulari e indipendenti: qualche aggiunta o modifica ad un certo layer, non distrugge la struttura generale. Tuttavia, questi interagiscono tra di loro in diversi modi:

  • Interazione adiacente (adjacent layer interaction): si verifica quando un layer richiede un servizio da quello immediatamente sottostante, oppure quando un layer offre un servizio a quello immediatamente soprastante. Offrire un servizio, in questo contesto, significa mettere a disposizione un protocollo specifico. Ad esempio, l'utilizzo del protocollo HTTPS implica la necessità di una trasmissione dati affidabile. Ciò comporta che il livello applicativo, che gestisce HTTPS, debba appoggiarsi al livello di trasporto per garantire la consegna affidabile dei dati. In altre parole, il livello applicativo "richiede" al livello di trasporto l'uso di un protocollo affidabile come il TCP, per assicurare che le informazioni vengano trasmesse correttamente.
  • Same layer interaction: indica l'interazione tra stessi livelli di due stack protocollari di host differenti (come se l'application layer dell'host A comunicasse direttamente con l'application layer dell'host B). Questo collegamento logico prevede un meccanismo chiamato incapsulamento/deincapsulamento.
  1. Incapsulamento:

    • Al momento dellinvio, i dati generati dallapplicazione vengono passati attraverso i vari layer dello stack dellhost A
    • Ogni layer aggiunge al payload informazioni necessarie per la gestione della comunicazione, sotto forma di header e/o trailer
  2. Trasmissione:

    • I dati, incapsulati in vari strati, viaggiano quindi attraverso la rete
  3. Deincapsulamento:

    • Allarrivo dellinformazione sullhost B, i dati vengono elaborati seguendo lordine inverso rispetto a quello dellincapsulamento
    • Ogni layer rimuove (o "spacchetta") le informazioni (header/trailer) che erano state aggiunte dal corrispondente layer dellhost A
    • In questo modo, lhost B riesce a recuperare i dati originali generati dallapplicazione

Larchitettura a strati facilita linteroperabilità tra differenti sistemi e protocolli, poiché ogni layer opera in modo indipendente.

Non tutti gli host implementano tutto lo stack protocollare. Ad esempio, un dispositivo embedded potrebbe avere solo le funzionalità base per comunicare via rete (come il livello di rete e di trasporto) senza implementare un layer applicativo complesso.