Indice

 

Cos’è un Protocollo?

Un protocollo è un sistema di regole che definiscono come i dati vengono scambiati all’interno o tra computer. Le comunicazioni tra dispositivi richiedono che i dispositivi concordino sul formato dei dati che vengono scambiati. L’insieme di regole che definisce un formato è chiamato protocollo.

I protocolli possono essere implementati tramite hardware, software o una combinazione di entrambi.

I sistemi di comunicazione utilizzano formati ben definiti per lo scambio di vari messaggi. Ogni messaggio ha un significato esatto inteso a suscitare una risposta da una gamma di possibili risposte predeterminate per quella particolare situazione. Il comportamento specificato è in genere indipendente da come deve essere implementato. I protocolli di comunicazione devono essere concordati dalle parti coinvolte.

Per raggiungere un accordo, un protocollo può essere sviluppato in uno standard tecnico. Un linguaggio di programmazione descrive lo stesso per i calcoli, quindi esiste una stretta analogia tra protocolli e linguaggi di programmazione: i protocolli sono alla comunicazione ciò che i linguaggi di programmazione sono ai calcoli.

Una formulazione alternativa afferma che i protocolli sono alla comunicazione ciò che gli algoritmi sono ai calcoli.

Più protocolli spesso descrivono diversi aspetti di una singola comunicazione. Un gruppo di protocolli progettati per funzionare insieme è noto come suite di protocolli; quando implementati nel software, sono uno stack di protocolli.

I protocolli di comunicazione Internet sono pubblicati dall’Internet Engineering Task Force (IETF).

L’IEEE (Institute of Electrical and Electronics Engineers) gestisce le reti cablate e wireless e l’International Organization for Standardization (ISO) gestisce altri tipi. L’ITU-T gestisce i protocolli e i formati di telecomunicazione per la rete telefonica pubblica commutata (PSTN). Man mano che PSTN e Internet convergono, anche gli standard vengono spinti verso la convergenza.

Torna su

Storia dei Sistemi di comunicazione

Ulteriori informazioni: Protocol Wars
Il primo utilizzo del termine protocollo in un contesto moderno di commutazione dati avviene nell’aprile 1967 in un memorandum intitolato “A Protocol for Use in the NPL Data Communications Network“. Sotto la direzione di Donald Davies, che fu pioniere della commutazione di pacchetto presso il National Physical Laboratory nel Regno Unito, fu scritto da Roger Scantlebury e Keith Bartlett per la rete NPL.

Su ARPANET, il punto di partenza per la comunicazione host-to-host nel 1969 fu il protocollo 1822, scritto da Bob Kahn, che definiva la trasmissione di messaggi a un IMP.

Il Network Control Program (NCP) per ARPANET, sviluppato da Steve Crocker e altri studenti laureati tra cui Jon Postel e Vint Cerf, fu implementato per la prima volta nel 1970.

L’interfaccia NCP consentiva al software applicativo di connettersi attraverso ARPANET implementando protocolli di comunicazione di livello superiore, un primo esempio del concetto di stratificazione del protocollo.

La rete CYCLADES, progettata da Louis Pouzin nei primi anni ’70, fu la prima a implementare il principio end-to-end e a rendere gli host responsabili della consegna affidabile dei dati su una rete a commutazione di pacchetto, anziché essere un servizio della rete stessa.

Il suo team fu il primo ad affrontare il problema molto complesso di fornire alle applicazioni utente un servizio di circuito virtuale affidabile utilizzando un servizio best-effort, un primo contributo a quello che sarà il Transmission Control Protocol (TCP).

Bob Metcalfe e altri presso Xerox PARC delinearono l’idea di Ethernet e del PARC Universal Packet (PUP) per l’interconnessione in rete.

La ricerca nei primi anni ’70 di Bob Kahn e Vint Cerf portò alla formulazione del Transmission Control Program (TCP).

La sua specifica RFC 675 fu scritta da Cerf con Yogen Dalal e Carl Sunshine nel dicembre 1974, ancora un progetto monolitico a quel tempo.

L’International Network Working Group concordò su uno standard di datagramma senza connessione che fu presentato al CCITT nel 1975 ma non fu adottato dal CCITT né da ARPANET.

Ricerche internazionali separate, in particolare il lavoro di Rémi Després, contribuirono allo sviluppo dello standard X.25, basato su circuiti virtuali, che fu adottato dal CCITT nel 1976.

I produttori di computer svilupparono protocolli proprietari come Systems Network Architecture (SNA) di IBM, DECnet di Digital Equipment Corporation e Xerox Network Systems.

Il software TCP fu riprogettato come uno stack di protocolli modulare, denominato TCP/IP.

Questo fu installato su SATNET nel 1982 e su ARPANET nel gennaio 1983. Lo sviluppo di una suite completa di protocolli Internet entro il 1989, come delineato in RFC 1122 e RFC 1123, gettò le basi per la crescita di TCP/IP come suite di protocolli completa come componente principale dell’Internet emergente.

Il lavoro internazionale su un modello di riferimento per gli standard di comunicazione portò al modello OSI, pubblicato nel 1984. Per un periodo tra la fine degli anni ’80 e l’inizio degli anni ’90, ingegneri, organizzazioni e nazioni si scontrarono sulla questione di quale standard, il modello OSI o la suite di protocolli Internet, avrebbe prodotto le migliori e più robuste reti informatiche.

Torna su

 

Le Protocol Wars

Le guerre dei protocolli sono state un dibattito di lunga data nell’informatica che si è verificato dagli anni ’70 agli anni ’90, quando ingegneri, organizzazioni e nazioni si sono polarizzati sulla questione di quale protocollo di comunicazione avrebbe prodotto le reti migliori e più robuste.

Ciò è culminato nella guerra degli standard Internet-OSI negli anni ’80 e all’inizio degli anni ’90, che è stata infine “vinta” dalla suite di protocolli Internet (TCP/IP) a metà degli anni ’90 quando è diventata la suite di protocolli dominante attraverso la rapida adozione di Internet.

Alla fine degli anni ’60 e all’inizio degli anni ’70, i pionieri della tecnologia di commutazione di pacchetto hanno costruito reti di computer che fornivano comunicazione dati, ovvero la capacità di trasferire dati tra punti o nodi. Con l’emergere di più di queste reti a metà o alla fine degli anni ’70, il dibattito sui protocolli di comunicazione è diventato una “battaglia per gli standard di accesso”.

Una collaborazione internazionale tra diversi provider postali, telegrafici e telefonici (PTT) nazionali e operatori commerciali ha portato allo standard X.25 nel 1976, che è stato adottato sulle reti dati pubbliche che forniscono copertura globale. Separatamente, sono emersi protocolli di comunicazione dati proprietari, in particolare Systems Network Architecture di IBM nel 1974 e DECnet di Digital Equipment Corporation nel 1975.

Il Dipartimento della Difesa degli Stati Uniti (DoD) ha sviluppato TCP/IP durante gli anni ’70 in collaborazione con università e ricercatori negli Stati Uniti, nel Regno Unito e in Francia. IPv4 è stato rilasciato nel 1981 ed è diventato lo standard per tutte le reti di computer del DoD. Entro il 1984, era stato concordato il modello di riferimento internazionale OSI, che non era compatibile con TCP/IP. Molti governi europei (in particolare Francia, Germania Ovest e Regno Unito) e il Dipartimento del Commercio degli Stati Uniti hanno imposto la conformità al modello OSI, mentre il Dipartimento della Difesa degli Stati Uniti ha pianificato di passare da TCP/IP a OSI.

Nel frattempo, lo sviluppo di una suite completa di protocolli Internet entro il 1989 e le partnership con l’industria delle telecomunicazioni e dei computer per incorporare il software TCP/IP in vari sistemi operativi hanno gettato le basi per l’adozione diffusa di TCP/IP come suite di protocolli completa. Mentre OSI ha sviluppato i suoi standard di rete alla fine degli anni ’80, TCP/IP è entrato in uso diffuso su reti multi-vendor per l’interconnessione e come componente principale dell’emergente Internet.

Torna su

Tipi di Protocolli

Esistono due tipi di protocolli di comunicazione, in base alla loro rappresentazione del contenuto trasportato: basati su testo e binari.

Basati su testo

Un protocollo basato su testo o protocollo di testo normale rappresenta il suo contenuto in un formato leggibile dall’uomo, spesso in testo normale codificato in una codifica leggibile dalla macchina come ASCII o UTF-8, o in formati basati su testo strutturato come il formato Intel hex, XML o JSON.

L’immediata leggibilità umana è in contrasto con i protocolli binari nativi che hanno vantaggi intrinseci per l’uso in un ambiente informatico (come la facilità di analisi meccanica e un migliore utilizzo della larghezza di banda).

Le applicazioni di rete hanno vari metodi di incapsulamento dei dati. Un metodo molto comune con i protocolli Internet è una rappresentazione orientata al testo che trasmette richieste e risposte come righe di testo ASCII, terminate da un carattere di nuova riga (e solitamente un carattere di ritorno a capo). Esempi di protocolli che utilizzano testo semplice e leggibile dall’uomo per i propri comandi sono FTP (File Transfer Protocol), SMTP (Simple Mail Transfer Protocol), le prime versioni di HTTP (Hypertext Transfer Protocol) e il protocollo finger.

I protocolli basati su testo sono in genere ottimizzati per l’analisi e l’interpretazione umana e sono quindi adatti ogni volta che è richiesta l’ispezione umana dei contenuti del protocollo, come durante il debug e durante le prime fasi di progettazione dello sviluppo del protocollo.

Binario

Un protocollo binario utilizza tutti i valori di un byte, al contrario di un protocollo basato su testo che utilizza solo valori corrispondenti a caratteri leggibili dall’uomo nella codifica ASCII. I protocolli binari sono pensati per essere letti da una macchina piuttosto che da un essere umano. I protocolli binari hanno il vantaggio della concisione, che si traduce in velocità di trasmissione e interpretazione.

I protocolli binari sono stati utilizzati nei documenti normativi che descrivono standard moderni come EbXML, HTTP/2, HTTP/3 ed EDOC. Un’interfaccia in UML può anche essere considerata un protocollo binario.

Torna su