Caratteristiche e Differenza tra i protocolli TCP e IP nelle reti

Caratteristiche e Differenza tra i protocolli TCP e IP nelle reti

TCP (Transmission Control Protocol)

Il protocollo TCP fu progettato esplicitamente per fornire un flusso affidabile, a livello end-to-end, utilizzando una rete (intesa eventualmente come “collezione” di sottoreti) intrinsecamente inaffidabile. Esso è in grado di adattarsi dinamicamente alle proprietà della rete ed è robusto nei confronti di molte tipologie di guasto.

Per rispettare questi requisiti, il protocollo TCP fornisce un servizio orientato alla connessione ed affidabile:

  • orientato alla connessione: la generica coppia di applicazioni (client e server), che vuole comunicare utilizzando TCP, deve necessariamente stabilire una connessione (una sorta di “collegamento virtuale”) prima di poter scambiare dati;
  • affidabile: le due applicazioni, una volta stabilita la connessione, devono assicurarsi che tutti i pacchetti trasmessi dal mittente (server) vengano consegnati, immuni da errori e in ordine, al ricevente (client).

Ogni macchina che supporta TCP possiede un’entità di trasporto TCP, che gestisce i flussi di dati TCP e si interfaccia con il livello IP. L’entità TCP riceve i dati dai processi locali, li suddivide in unità (dette segmenti TCP) lunghe al più 64 Kbyte e spedisce queste unità come datagrammi IP separati (in base all’incapsulamento precedentemente descritto). Quando un datagramma IP contenente dati TCP giunge ad una macchina, i dati vengono passati all’entità TCP, la quale ricostruisce il flusso originale di byte.
Il livello IP non fornisce alcuna garanzia sulla consegna corretta dei datagrammi, per cui è compito di TCP ritrasmetterli quando necessario. I datagrammi in arrivo possono inoltre essere nell’ordine sbagliato: è ancora compito di TCP riassemblare i messaggi nella sequenza corretta. In pratica, dunque, TCP deve fornire l’affidabilità che molte applicazioni richiedono e che la rete sottostante non possiede.

Modello di servizio TCP

I servizi del TCP si ottengono tramite la creazione, da parte del mittente e del ricevente, di punti di accesso chiamati socket. Ogni socket consiste nell’indirizzo IP dell’host e in un numero di 16 bit, locale all’host, detto porta. Per ottenere un servizio TCP, si deve creare esplicitamente una connessione fra un socket della macchina mittente e un socket della macchina ricevente.
Tutte le connessioni TCP sono full-duplex (il traffico può scorrere in entrambe le direzioni contemporaneamente) e punto-a-punto (ogni connessione ha esattamente due estremi). TCP non supporta il multitasking e il broadcasting.

Il TCP prevede il metodo del piggybacking per integrare le informazioni di controllo della trasmissione in una direzione con i dati diretti nella direzione opposta.
Il TCP non fa particolari assunzioni per quanto riguarda la rete sottostante, per cui funziona, con prestazioni diverse, su reti diverse: collegamenti telefonici commutati, reti locali, reti ad alta velocità in fibra ottica, collegamenti punto-punto a bassa velocità su lunghe distanze, reti miste wireless-wired.

IP (Internet Protocol)

Questo è il protocollo principale che opera al livello di rete in una qualunque architettura TCP/IP. Viene comunemente detto IP.
Si tratta di un protocollo di tipo connectionless (non orientato alla connessione), che si preoccupa di inviare datagrammi (così si chiamano i pacchetti a livello di rete) dalla sorgente verso la destinazione.
Il livello di rete riceve un flusso di dati dal livello di trasporto: mediante IP, tale flusso viene frammentato in datagrammi e trasmesso. IP non mantiene alcuna informazione per i successivi datagrammi, per cui ciascuno di essi viene instradato indipendentemente dagli altri. Questo comporta che i datagrammi possano essere recapitati anche in ordine diverso rispetto a come sono stati spediti.

Il protocollo è inoltre di tipo non affidabile, nel senso che non fornisce alcuna garanzia che i datagrammi giungano a destinazione. Si dice allora che IP è un protocollo di tipo best effort: se qualcosa va male, ad esempio un datagramma trova pieno il buffer di ingresso su un router, il protocollo scarta il datagramma e si limita a inviare un messaggio di errore al mittente (tramite il protocollo ICMP).
IP prevede anche un semplice algoritmo di frammentazione dei datagrammi, qualora la loro dimensione superi quella massima accettabile dal livello di interfaccia al canale fisico.

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *