Protocolli di Networking

Concetti di Base

Protocollo

Un Protocollo di Comunicazione è definito da due aspetti:

  • Formato dei dati interscambiati
  • Regole di interscambio

Tutto deve essere implementato in software su un sistema operativo di riferimento.

Storicamente, a partire da circa il 1980, il linguaggio di implementazione dei protocolli di rete è stato il Linguaggio C, e la piattaforma di sistema operativo di riferimento è stata Unix.

I discendenti diretti sono il C++, in cui è scritto Windows, e Linux.

Abbiamo quindi le puntualizzazioni seguenti.

Formato Dati

E' definito da struct in linguaggio C.

Regole di Interscambio

Sono definite da un algoritmo della categoria Macchine a Stati Finiti (Finite State Machines - FSM).

Questi sono algoritmi deterministici, che prima vengono descritti in pseudocodice poi implementati in Linguaggio C. Una buona specifica di un FSM è immediatamente rendibile in codice.

Fsm

Esempio: TCP FSM

Tcpfsm

Data Communication

Interscambio di dati fra DTE tramite DCE:

  • DTE - Data Terminal Equipment
  • DCE - Data Communication Equipment

Datacom

Commutazione

Commutazione di Circuito

  • Sincrono
  • Tre fasi: stabilimento, uso e abbattimento del circuito
  • La comunicazione è un unico flusso e passa necessariamente attraverso il circuito stabilito, anche se la qualità degradasse
  • In caso di malfunzionamenti gravi, occorre ristabilire il circuito
  • Telefonia tradizionale

Comcirc

Commutazione di Messaggio

  • Store and Forward - ogni messaggio transita per intero dal nodo trasmittente a quello ricevente di un link; il ricevente lo accumula localmente; quando il messggio è tutto presente lo invia al prossimo destinatario
  • UUCP - Unix to Unix Communication Programs era una serie di programmi per posta e newsgroups (posta a sottoscrizione), che usavano questo metodo

Commes

Commutazione di Pacchetto

  • Il messaggio è suddiviso in segmenti, che vengono incapsulati in pacchetti
  • Similitudine con la Posta Tradizionale, i pacchetti si chiamano anche datagrammi
  • i pacchetti sono smistati separatamente
  • Internet, ma non solo

Compac

Evoluzione di Internet

ARPAnet

(Defense) Advanced Research Project Agency

Darpa

  • Molti progetti finanziati, anche la telepatia; conseguentemente molti sprechi
  • Complesso Militare/Civile/Universitario
  • Scopo: supremazia tecnologica degli USA

ARPAnet - dal 1969

  • Comunicazione dati a lunga distanza
    • US continentali, esteso a (poche) basi estere
  • Parte del Command & Control in caso di conflitto
    • Progettata per essere resilente
  • Basata su commutazione di pacchetto
  • Inizialmente software e hardware dedicati su Host
    • Computer della Bolt, Beranek & Newman
    • Codice “Fuzzball”, OS dedicato, CPU 32 bit
  • Poi riscritto in Linguaggio C per BSD Unix

Arpanet 1974

Arpamap

Contrariamente a quello che si pensa, la prima rete ARPAnet non era a molte maglie, non esistevano molti percorsi alternativi, e non sarebbe stata resiliente in caso di attacco atomico.

Fuori dagli Stati Uniti continentali vi era il nodo delle Hawaii, quello di Londra, e un terzo nodo in una base americana nella Norvegia del nord, con un radar di ascolto puntato sull'Unione Sovietica.

ARPAnet era comunque in attiva espansione, quindi sarebbe in seguito diventata resiliente.

ARPAnet ha tre caratteristiche di nota:

  • Commutazione di pacchetto
    • Il ricevente ricompone i pacchetti, poichè frammenti di pacchetto possono aver compiuto percorsi diversi
    • Eventualmente richiede ritrasmissione
  • Routing dinamico
    • Ciascun pacchetto, o suo frammento, segue il link migliore nell’istante di smistamento
    • Se nodi falliscono il routing successivo sceglie altri link
    • Notevole resilienza
  • Device di smistamento intelligenti
    • Host non switch
    • Ciascuno mantiene una Tabella di Routing

Simile a Store and Forward ma per pacchetti, non interi messaggi

Un pacchetto = max pochi kilobytes

Limite massimo di dimensione di un pacchetto: 64 kilobytes

Ma le librerie interne implementative della Berkeley consentivano una dimensione massima di 8 kilobytes