TCP/IP
TCP/IP sta per Transmission Control Protocol/Internet Protocol ed è una suite di protocolli di comunicazione utilizzati per interconnettere dispositivi di rete su Internet. TCP/IP è anche utilizzato come protocollo di comunicazione in una rete informatica privata, una intranet o extranet.
L’intera suite IP, un insieme di regole e procedure, è comunemente chiamata TCP/IP. TCP e IP sono i due protocolli principali, sebbene altri siano inclusi nella suite. La suite di protocolli TCP/IP funziona come un livello di astrazione tra le applicazioni Internet e il routing e la switching fabric.
TCP/IP specifica come i dati vengono scambiati su Internet fornendo comunicazioni end-to-end che identificano come devono essere suddivisi in pacchetti, indirizzati, trasmessi, instradati e ricevuti a destinazione. TCP/IP richiede una gestione centrale minima ed è progettato per rendere le reti affidabili con la capacità di ripristinare automaticamente il guasto di qualsiasi dispositivo sulla rete.
Internet Protocol Version 4 (IPv4) è la versione principale utilizzata su Internet oggi. Tuttavia, a causa di un numero limitato di indirizzi, nel 1998 l’Internet Engineering Task Force (IETF) ha sviluppato un protocollo più recente, noto come IPv6. IPv6 amplia notevolmente il pool di indirizzi disponibili da IPv4 e viene progressivamente adottato.
In che modo TCP e IP sono diversi?
I due protocolli principali della suite IP svolgono funzioni specifiche e presentano numerose differenze. Le principali differenze tra TCP e IP includono quanto segue:
TCP
- Garantisce una distribuzione affidabile e ordinata dei pacchetti attraverso le reti.
- TCP è un protocollo di comunicazione intelligente di livello superiore che utilizza ancora IP come mezzo per trasportare pacchetti di dati, ma collega anche computer, applicazioni, pagine Web e server Web.
- TCP comprende in modo olistico l’intero flusso di dati di cui queste risorse hanno bisogno per funzionare e garantisce che l’intero volume di dati necessario venga inviato la prima volta.
- TCP definisce come le applicazioni possono creare canali di comunicazione attraverso una rete.
- Gestisce il modo in cui un messaggio viene assemblato in pacchetti più piccoli prima che vengano trasmessi su Internet e riassemblati nell’ordine corretto all’indirizzo di destinazione. TCP opera al livello 4, o livello di trasporto, dell’Open Systems Interconnection (modello OSI).
- TCP è un protocollo orientato alla connessione, il che significa che stabilisce una connessione tra il mittente e il destinatario prima di consegnare i dati per garantire una consegna affidabile.
- Mentre svolge il suo lavoro, TCP può anche controllare le dimensioni e la velocità di flusso dei dati. Garantisce che le reti siano libere da qualsiasi congestione che potrebbe bloccare la ricezione dei dati. Un esempio è un’applicazione che desidera inviare una grande quantità di dati su Internet. Se l’applicazione utilizzasse solo IP, i dati dovrebbero essere suddivisi in più pacchetti IP. Ciò richiederebbe più richieste per inviare e ricevere dati, poiché le richieste IP vengono emesse per pacchetto.
- Con TCP, è necessaria solo una singola richiesta per inviare un intero flusso di dati; TCP gestisce il resto.
- TCP esegue controlli per garantire che i dati vengano consegnati. Può rilevare i problemi che si verificano in IP e richiedere la ritrasmissione di eventuali pacchetti di dati persi.
- TCP può riorganizzare i pacchetti in modo che vengano trasmessi nell’ordine corretto. Ciò riduce al minimo la congestione della rete impedendo i colli di bottiglia della rete causati dalla consegna di pacchetti fuori ordine.
IP
- IP è un protocollo Internet di basso livello che facilita le comunicazioni dati su Internet.
- IP invia pacchetti di dati costituiti da un’intestazione, che contiene informazioni di routing, come l’origine e la destinazione dei dati e il payload dei dati stesso.
- Definisce come indirizzare e instradare ogni pacchetto per garantire che raggiunga la destinazione corretta. Ogni computer gateway sulla rete controlla questo indirizzo IP per determinare dove inoltrare il messaggio.
- IP è limitato dalla quantità di dati che può inviare. La dimensione massima di un singolo pacchetto dati IP, che contiene sia l’intestazione che i dati, è compresa tra 20 e 24 byte. Ciò significa che stringhe di dati più lunghe devono essere suddivise in più pacchetti dati che devono essere inviati in modo indipendente e quindi riorganizzati nell’ordine corretto.
- Fornisce il meccanismo per inviare dati da un nodo di rete a un altro.
- IP opera al Livello 3, o livello di accesso alla rete, del modello OSI.
- IP è un protocollo senza connessione, il che significa che non garantisce la consegna né fornisce controllo e correzione degli errori. Altri componenti in una rete TCP/IP
Altri componenti presenti in una rete TCP/IP includono maschere di sottorete, traduzione degli indirizzi di rete (NAT) e vari protocolli.
Una maschera di sottorete indica a un computer o a un altro dispositivo di rete quale parte dell’indirizzo IP viene utilizzata per rappresentare la rete e quale parte viene utilizzata per rappresentare gli host o altri computer sulla rete. Un NAT è la virtualizzazione degli indirizzi IP. Aiuta a migliorare la sicurezza e a ridurre il numero di indirizzi IP di cui un’organizzazione ha bisogno.
I protocolli TCP/IP comuni includono quanto segue:
- Hypertext Transfer Protocol. HTTP gestisce la comunicazione tra un server Web e un browser Web.
- HTTP Secure gestisce la comunicazione sicura tra un server web e un browser web.
- File Transfer Protocol. FTP gestisce la trasmissione di file tra computer.
- Domain name system. DNS traduce i nomi di dominio in indirizzi IP.
- Simple mail transfer protocol. SMTP è utilizzato per le comunicazioni e-mail ed è responsabile della trasmissione di e-mail tra server di posta.
- User datagram protocol. UDP è un protocollo senza connessione che offre una consegna dei dati più veloce ma meno affidabile. È ampiamente utilizzato in applicazioni in tempo reale come lo streaming video e i giochi online.
Come funziona TCP/IP?
TCP/IP utilizza il modello di comunicazione client-server in cui un utente o una macchina, un client, riceve un servizio, come l’invio di una pagina Web, da un altro computer, un server, nella rete.
Collettivamente, la suite di protocolli TCP/IP è classificata come stateless, il che significa che ogni richiesta client è considerata nuova perché non è correlata alle richieste precedenti. Essere stateless libera percorsi di rete in modo che possano essere utilizzati continuamente.
Il livello di trasporto stesso, tuttavia, è stateful. Trasmette un singolo messaggio e la sua connessione rimane in atto fino a quando tutti i pacchetti in un messaggio non sono stati ricevuti e riassemblati a destinazione.
Il modello TCP/IP differisce leggermente dal modello di rete OSI a sette livelli progettato dopo di esso. Il modello di riferimento OSI definisce il modo in cui le applicazioni possono comunicare su una rete.
Perché TCP/IP è importante?
TCP/IP è la suite di protocolli fondamentale che consente il trasferimento di dati e la comunicazione su Internet e altre reti. Non è proprietario e, di conseguenza, non è controllato da nessuna singola azienda. Pertanto, la suite IP può essere modificata facilmente. È compatibile con tutti i sistemi operativi (SO), quindi può comunicare con qualsiasi altro sistema. La suite IP è anche compatibile con tutti i tipi di hardware e reti di computer.
TCP/IP è altamente scalabile e, come protocollo instradabile, può determinare il percorso più efficiente attraverso la rete. È ampiamente utilizzato nell’attuale architettura Internet.
I 4 livelli del modello TCP/IP
La funzionalità TCP/IP è suddivisa nei seguenti quattro livelli, ognuno dei quali include protocolli specifici:
- Livello applicazione. Il livello applicazione è il livello superiore e fornisce alle applicazioni uno scambio di dati standardizzato. I suoi protocolli includono HTTP, FTP, Post Office Protocol 3 (POP3), SMTP, DNS, Dynamic Host Configuration Protocol e SNMP. A livello applicazione, il payload sono i dati effettivi dell’applicazione.
- Livello trasporto. Il livello trasporto è responsabile del mantenimento delle comunicazioni end-to-end attraverso la rete. TCP gestisce le comunicazioni tra gli host e fornisce controllo del flusso, multiplexing e affidabilità. I protocolli di trasporto includono TCP e User Datagram Protocol (UDP), che a volte viene utilizzato al posto di TCP per scopi speciali.
- Livello Internet. Il livello Internet, chiamato anche livello rete, gestisce i pacchetti e collega reti indipendenti per trasportare i pacchetti attraverso i confini della rete. I protocolli del livello rete sono IP e Internet Control Message Protocol, che vengono utilizzati per la segnalazione degli errori.
- Livello collegamento rete. Il livello di collegamento di rete, noto anche come livello di interfaccia di rete o livello di collegamento dati, è costituito da protocolli che operano solo su un collegamento, ovvero il componente di rete che interconnette i nodi o gli host nella rete. I protocolli in questo livello più basso includono Ethernet per reti locali e Address Resolution Protocol.
Utilizzi di TCP/IP
TCP/IP può essere utilizzato per le seguenti attività:
- Accesso remoto e trasferimento file interattivo. TCP/IP fornisce accesso remoto sulla rete per il trasferimento file interattivo per inviare e-mail e pagine Web sulla rete.
- Accesso remoto a un file system. TCP/IP fornisce accesso remoto al file system di un host server, consentendo agli utenti di accedere e gestire i file archiviati sul server da una posizione remota.
- Rappresenta il flusso di informazioni. TCP/IP viene utilizzato per rappresentare il modo in cui le informazioni cambiano forma mentre viaggiano su una rete dal livello fisico concreto al livello applicativo astratto. Descrive in dettaglio i protocolli di base, o metodi di comunicazione, a ogni livello mentre le informazioni passano.
- Trasmissione dati end-to-end. Descrive in che modo le comunicazioni end-to-end dovrebbero essere ottenute dividendo i dati in pacchetti, indirizzandoli, trasmettendoli, instradandoli e ricevendoli a destinazione.
- Cloud computing. TCP/IP viene utilizzato nel cloud computing per facilitare la comunicazione tra servizi basati su cloud, applicazioni e macchine virtuali. TCP/IP garantisce che le risorse e i client cloud comunichino in modo affidabile e sicuro su Internet.
Pro e contro di TCP/IP
I vantaggi dell’utilizzo del modello TCP/IP includono quanto segue:
- Aiuta a stabilire una connessione tra diversi tipi di computer.
- Funziona indipendentemente dal sistema operativo.
- TCP/IP supporta molti protocolli di routing.
- Utilizza un’architettura client-server altamente scalabile.
- TCP/IP può essere utilizzato in modo indipendente.
- Supporta diversi protocolli di routing.
- È leggero e non grava inutilmente su una rete o un computer.
Gli svantaggi di TCP/IP includono quanto segue:
- È complicato da configurare e gestire.
- Il livello di trasporto non garantisce la consegna dei pacchetti.
- Non è facile sostituire i protocolli in TCP/IP.
- Non separa chiaramente i concetti di servizi, interfacce e protocolli, quindi non è adatto per descrivere nuove tecnologie in nuove reti.
- È particolarmente vulnerabile agli attacchi di sincronizzazione, che sono un tipo di attacco denial-of-service in cui un malintenzionato utilizza TCP/IP.
Modello TCP/IP vs. modello OSI
TCP/IP e OSI sono i protocolli di rete di comunicazione più ampiamente utilizzati. La differenza principale tra i due modelli è che OSI è un modello concettuale che non è utilizzato praticamente per la comunicazione. Piuttosto, definisce come le applicazioni possono comunicare su una rete. TCP/IP, d’altro canto, è un’esecuzione pratica che è ampiamente utilizzata per stabilire collegamenti e interazioni di rete.
I protocolli TCP/IP stabiliscono gli standard su cui è stata creata Internet, mentre il modello OSI fornisce linee guida su come deve essere effettuata la comunicazione. Pertanto, TCP/IP è un modello più pratico.
I modelli TCP/IP e OSI hanno somiglianze e differenze. La somiglianza principale sta nel modo in cui sono costruiti per utilizzare entrambi i livelli, sebbene TCP/IP sia costituito da soli quattro livelli, mentre il modello OSI sia costituito dai seguenti sette livelli:
- Livello 7: livello applicativo, consente all’utente, software o umano, di interagire con l’applicazione o la rete quando desidera leggere messaggi, trasferire file o svolgere altre attività correlate alla rete.
- Livello 6: livello di presentazione, traduce o formatta i dati per il livello applicativo in base alla semantica o alla sintassi accettata dall’app.
- Livello 5: livello di sessione, imposta, coordina e termina le conversazioni tra app.
- Livello 4: livello di trasporto, trasferisce i dati attraverso una rete e fornisce meccanismi di controllo degli errori e controlli del flusso di dati.
- Livello 3: livello di rete, sposta i dati in e attraverso altre reti.
- Livello 2, livello di collegamento dati, gestisce i problemi che si verificano a seguito di errori di trasmissione di bit.
- Livello 1: livello fisico, trasporta i dati utilizzando interfacce elettriche, meccaniche o procedurali.
Il livello applicativo è il livello superiore sia per il modello TCP/IP che per il modello OSI. Sebbene questo livello esegua le stesse attività in ciascun modello, tali attività possono variare a seconda dei dati che ciascuno riceve.
Le funzioni svolte in ogni modello sono simili anche perché ognuno utilizza un livello di rete e un livello di trasporto per funzionare. I modelli TCP/IP e OSI sono usati principalmente per trasmettere pacchetti di dati. Sebbene utilizzino mezzi e percorsi diversi, raggiungono comunque le loro destinazioni.
Le somiglianze tra il modello TCP/IP e il modello OSI includono quanto segue:
- Sono entrambi modelli logici.
- Definiscono gli standard di rete.
- Dividono il processo di comunicazione di rete in livelli.
- Forniscono framework per la creazione e l’esecuzione di standard e dispositivi di rete.
- Consentono a un produttore di realizzare dispositivi e componenti di rete che possono coesistere e funzionare con i dispositivi e i componenti realizzati da altri produttori.
Le differenze tra il modello TCP/IP e il modello OSI includono quanto segue:
- TCP/IP utilizza solo un livello, il livello di applicazione, per definire le funzionalità dei livelli superiori, mentre OSI utilizza tre livelli, applicazione, presentazione e sessione.
- TCP/IP utilizza un livello, il livello fisico, per definire le funzionalità dei livelli inferiori, mentre OSI utilizza due livelli, fisico e collegamento dati. La dimensione dell’intestazione TCP/IP è di 20 byte, mentre l’intestazione OSI è di 5 byte.
- TCP/IP è uno standard orientato al protocollo, mentre OSI è un modello generico basato sulle funzionalità di ogni livello.
- TCP/IP segue un approccio orizzontale, mentre OSI segue un approccio verticale.
- In TCP/IP, i protocolli sono stati sviluppati prima e poi il modello. In OSI, il modello è stato sviluppato prima e poi sono stati sviluppati i protocolli in ogni livello.
- TCP/IP aiuta a stabilire una connessione tra diversi tipi di computer, mentre OSI aiuta a standardizzare router, switch, schede madri e altro hardware.
La storia di TCP/IP
La Defense Advanced Research Projects Agency, il ramo di ricerca del Dipartimento della Difesa degli Stati Uniti, ha creato il modello TCP/IP negli anni ’70 per l’uso in ARPANET, una rete WAN che ha preceduto Internet. TCP/IP è stato originariamente progettato per il sistema operativo Unix ed è stato integrato in tutti i sistemi operativi successivi.
Il modello TCP/IP e i relativi protocolli sono ora gestiti dall’IETF.