OsGate.org Logo

Riassunto protocolli TCP/IP - tcp ip network protocollo

Networks Networks

Date 11.05.2010

Visits 7492

"In questo OpenCont vederemo una breve panoramica dei protocolli di rete che possono essere usati in una rete locale o remota. Grazie ad essi é possibile implementare svariati servizi che permettono di garantire l'usabilità della rete stessa."

Introduzione

In questo articolo tratteremo i principali protocolli di rete, analizzandoli attraverso lo stack di rete TCP/IP. Partendo dal livello di collegamento raggiungeremo il livello applicazioni fornendo una breve descrizione per ogni protocollo corredata da una tabella riassuntiva al termine.

Lavoreremo sui seguenti layer:

  • Data Link
  • Network Layer
  • Transport Layer
  • Application Layer

Datalink Layer

È il livello basilare dello stack TCP/IP dove vengono definite la maggior parte delle tecnologie LAN e WLAN e dove viene eseguito il controllo del collegamento ad un livello logico(LLC) ed il media access control (MAC). Da qui passano i dati arrivati dal mezzo di trasmissione fisico e il tipo di dati utilizzato è il frame. È anche responsabile della gestione degli errori e definisce i requisiti del livello fisico.

Possiamo riassumere il suo scopo primario come quello di scambiare messaggi a basso livello attraverso vari dispositivi.

SLIP - Serial Line Protocol

SLIP è il protocollo che è stato oramai rimpiazzato da PPP per la creazione di link internet over serial line o modem.

PPP - Point-to-point Protocol

Il PPP è il mezzo primario per effettuare una connessione da punto a punto attraverso una rete WAN. Di solito lo si può trovare nel collegamento tra un normale router ADSL domestico e la centrale del nostro provider. PPP è inoltre un insieme di sub protocolli dove possiamo trovare PPPoE (over Ethernet) e PPPoA (ATM). PPP implementa funzionalità che permettono ai livelli superiori del TCP/IP di funzionare al meglio.

ARP - Address Resolution Protocol

L'ARP è il protocollo che converte un indirizzo IP in un MAC address e può essere incluso a cavallo tra il datalink layer e il network layer.

Il suo scopo primario è di fare sapere al livello datalink l'indirizzo MAC address di un dato IP sulla rete in modo da poter perseguire nell'invio dei pacchetti attraverso il corretto mezzo fisico.

RARP - Reverse Address Resolution Protocol

Esegue il compito inverso di ARP, vale a dire converte un MAC address in un IP. Questo protocollo è stato ormai superato da DHCP o da per esempio BOOTP.

Network Layer

Parte nevralgica per il modello TCP/IP troviamo protocolli che stanno alle basi di internet e di qualsiasi rete LAN o WAN. A questo livello si lavora primariamente con l'addressing e con il

routing, caratteristica fondamentale per instradare pacchetti all'interno di una rete. Il Network Layer lavora principalmente con i datagrammi / pacchetti.

IP - Internet Protocol

Il protocollo per antonomasia a questo livello. L'Internet Protocol è uno dei 4 / 5 protocolli irrinunciabili all'interno di internet. Provvede a molte funzioni, ma la principale è che incapsula e formatta i datagrammi spedendoli attraverso una o più reti TCP/IP interconnesse tra di loro. L'ultima versione di IP è la numero 4, largamente supportata su praticamente tutti i tipi di devices sul pianeta. IP offre anche meccanismi di frammentazione dei pacchetti, dividendo i pacchetti che superano la dimensione massima in più chunk in modo da permettere ai layer piu bassi di continuare con l'invio. Se da un lato offre la frammentazione, al loro "arrivo" al livello 3 del ricevente, i datagrammi IP vengono riassemblati.

L'ultima versione sviluppata di IP è la numero 6 (IPv6) realizzata per la mancanza di addressing space di IPv4. Infatti con IPv6 è possibile gestire 2^128 IP in quanto è stato pensato per gestire indirizzi IP lunghi 128 bit rispetto ai 2^32 di Ipv4.

ICMP - Internet Control Message Protocol

È il protocollo che ci consente di ricevere e inviare messaggi sullo stato delle risorse e di eseguire dell'error reporting. È spesso usato per controllare malfunzionamenti attraverso la rete, come per esempio nel comando ping o traceroute.

Famiglia IRP - Interior Routing Protocol

I protocolli IRP sono coloro che lavorano all'interno di un Autonomous System (AS).

RIP - Routing Interior Protocol

RIP è forse uno dei più vecchi e conosciuti protocolli di routing esistenti. Al suo interno viene utilizzato un algoritmo di routing chiamato "distance vector". Grazie a quest'ultimo, ogni router sulla rete è a conoscenza di come raggiungere le altre reti basandosi sui dati passati da i router adiacenti. All'interno di ogni router è presente una tabella che indica come raggiungere le altre reti dove viene anche indicato il costo in termini di hops. Periodicamente ogni router aggiorna i dati nella propria tabella e successivamente invia quest'ultima ai router adiacenti. RIP possiede alcune limitazioni, ed è per questo che stato in parte sostituito da OSPF. È stata sviluppata la versione RIP-2.

OSPF - Open Shortest Path First

OSPF è un protocollo di sviluppato nel 1980 per colmare le lacune di RIP. Come si può evincere dal suo nome cerca il percorso più corto possibile per inviare i pacchetti mirando a ridurre i tempi di invio. Per fare ciò utilizza un algoritmo di tipo link-state, dove ogni router possiede un database dello stato della rete e a ogni cambiamento di topologia di quest'ultima il database di ogni router viene aggiornato cosi da permettere in ogni momento di sapere quale sia il percorso più breve per raggiungere una data destinazione. OSPF sostituisce l'ormai obsoleto RIP.

IGRP - Interior Gateway Routing Protocol / EIGRP - Enhanced Interior Routing Protocol

IGRP è un protocollo propietario della CISCO implementato nel 1980 come miglioramento del già presente standard industriale RIP. IGRP utilizza distance vector per calcolare l'instradamento dei pacchetti e include diverse nuovi migliorie, come l'utilizzo delle metriche per determinare la strada da percorrere. EIGRP è un miglioramento dello stesso IGRP e usa metodi più sofisticati per il calcolo delle route, come l'algoritmo DUAL (Diffuse Update Algorithm).

Famiglia ERP - Exterior Routing Protocol

Gli ERP sono una famiglia di protocolli atti a permettere lo scambio di informazioni tra Autonomous System (AS)

EGP - Exterior Gateway Protocol

È il primo protocollo di tipo ERP apparso in internet. Per funzionare scambia le informazioni di routing con i router adiacenti. È considerato ormai obsoleto in favore del più moderno BGP.

BGP - Border Gateway Protocol

È il protocollo ERP più usato al giorno d'oggi, e dal 1980 ad oggi ha raggiunto la versione 4, BGP-4. BGP effettua scambi di informazioni sullo stato e la raggiungibilità della rete, e per fare questo si affida a TCP garantendo così affidabilità. Utilizza inoltre sofisticate tecniche di calcolo per determinare come differenti reti possono essere raggiunte.

Transport Layer

Il livello di trasporto permette di stabilire un canale dati end-to-end. Inoltre al suo interno sono presenti protocolli che permettono la segmentazione / riassemblaggio dei dati. Avviene anche il controllo del flusso di dati così da garantire affidabilità. Sono presenti protocolli sia connectionless che connection oriented. Quando siamo al livello transport layer si parla di datagrammi / segmenti come unità dei dati. Rappresenta la connessione con le applicazioni software, che lavorano ai livelli più alti, e con i livelli più bassi, che svolgono compiti prettamente di invio dei dati.

TCP - Transmission Control Protocol

Il protocollo per effettuare la gran parte delle operazioni di scambio dati in maniera affidabile. TCP include molteplici tecniche di controllo del flusso dei dati in modo da ritrasmettere automaticamente quelli andati persi. Per scambiare dei dati con TCP è fondamentale eseguire per prima cosa una connessione con un altro host utilizzando il meccanismo three-way-handshake SYN / SYN ACK / ACK. I campi dove viene applicato sono ambienti che richiedono affidabilità, come per esempio scambio di file (FTP, SSH, HTTP, ecc....).

UDP - User Datagram Protocol

Tramite UDP si effettuano scambi dei dati senza effettuare il meccanismo delle connessioni, in quanto è connectionless. UDP è molto più semplice di TCP e non include tutti i meccanismi per il controllo dell'affidabilità di TCP, questo permette maggiore velocità di trasmissione (non esiste una grandissima differenza) a costo di un eventuale perdita dei dati. In caso di perdita di dati è sufficiente rinviare la richiesta UDP, anche perché quest'ultimo viene usato per inviare piccoli messaggi di poco peso in termini di dimensioni che possono essere eventualmente rinviati. Lo troviamo in DNS, DHCP, RIP o applicazioni multimediali come lo streaming.

Application Layer

È il livello che ha maggiore contatto con l'utente finale, in quanto quest'ultimo utilizza direttamente questi protocolli attraverso le applicazioni desktop. È il layer che possiede più protocolli di tutti.

DNS - Domain Name System

È il protocollo che traduce i nomi leggibili per le persone comuni in indirizzi IP, in modo da permettere agli apparati di rete di agire correttamente. È largamente utilizzato in molteplici applicazioni, per esempio nei browser. La porta standard utilizzata dal servizio è la numero 53 UDP.

NFS - Network File System

NFS permette di condividere file system in rete, cosi da consentire l'accesso ad altri utenti alle risorse remote come se fossero locali. NFS funziona attraverso un sistema di RPC (Remote Procedure Call), mandate dall'utente al server in modo da poter eseguire le operazioni richieste, questo perché non utilizza un formato dei messaggi predefinito come gli altri protocolli

Dal lato utente la share NFS è praticamente invisibile e sembra essere un normale disco fisso collegato localmente. La versione utilizzata attualmente è NFSv3, anche se ultimamente è stata sviluppata la più moderna NFSv4.

DHCP - Dinamic Host Configuration Protocol

Grazie al DHCP un host collegato in rete ottiene automaticamente un indirizzo IP. Attraverso questo protocollo è facile configurare altri parametri da inviare in modo automatico, come subnet mask, gateway, server dns o quant'altro. DHCP prende il posto di BOOTP vecchio protocollo per l'assegnazione degli indirizzi. DHCP utilizza UDP come protocollo di trasporto e lato server le porte sono la 67 (server) e 68(client).

SNMP - Simple Network Message Protocol

SNMP permette all'amministratore di rete di disporre di una serie di tecnologie e funzioni in grado di eseguire operazioni di monitoring sui dispositivi TCP/IP in rete. SNMP si rifersice sia al nome del protocollo sia al nome framework che bisogna installare sui dispositivi che si voglia siano raggiungibili. SNMP lavora attraverso un agent installato sul client ed una NMS (Network Management Station) installata sul server. È basato su UDP e utilizza la porta 161 sull'agent e 162 sulla NMS. Esistono 3 versioni di SNMP e la più usata è SNMPv2.

FTP - File Transport Protocol

Permette lo scambio di file di qualsiasi tipo tra due host remoti. FTP garantisce che i file vengano consegnati a destinazione basandosi su TCP in modo da avere un canale di trasferimento affidabile tra server e client. Funziona attraverso un meccanismo di comandi inviati dal client che servono per indicare al server che operazione eseguire. In FTP sono presenti due tipi di canali: il command channel e il data channel. Il primo si usa per i comandi FTP inviati mentre il secondo per i dati veri e propri. Vengono anche usate due tipi di connessioni quella detta "attiva" e quella "passiva". In quella attiva è il server che inizia la connessione ed il trasferimento dei dati direttamente sul client, mentra in quella passiva è il client che dice al server quale porta deve aprire per restare in ascolto mentre il client inizia la connessione. Utilizza la porta 21 TCP.

HTTP - Hyper Text Transfer Protocol

Il protocollo su cui si basa il WWW. Tramite esso è possibile lo scambio di dati tra un web server ed i client, l'ultima versione delle tre disponibili (0.9, 1.0) è la 1.1. Grazie alla versione 1.1 che estende e potenzia la 1.0, è stata possibile l'espansione del web in quanto include numerose funzionalità. Le principali sono:

  • Supporto agli hostname multipli: con HTTP/1.0 un nome di dominio poteva corrispondere solo ad un IP mentre con HTTP/1.1 è possibile fare risiedere più nomi di dominio su un webserver utilizzando solo un IP
  • Connessioni persistenti: è possibile inviare richieste multiple per gli oggetti di un documento utilizzando una sola connessione TCP, in modo da aumentare notevolmente le performance.
  • Meccanismi di sicurezza aumentati

Funziona tramite la porta 80 e usa TCP e ne è stata sviluppata una versione "sicura" denominata HTTPS (porta 443).

POP - Post Office Protocol

Il POP è un protocollo per il download delle email da un server mail remoto sul proprio client, ed è stato concepito per essere semplice. Implementa il metodo di utilizzo offline, ovvero scarica tutte le email remote sul client, non lasciando nessuna copia sul server, inoltre non sono previsti meccanismi di sincronizzazione. Lavora sulla porta 110 TCP, la versione 3 (POP3) è la più utilizzata e possiede una versione sicura, POP3S (porta 995).

IMAP - Internet Message Access Protocol

Altro protocollo per scaricare email da server remoti sia in modalità offline che online. IMAP a differenza di POP3 ha al suo interno meccanismi di sincronizzazione che permettono una grande interoperabilità, garantendo l'utilizzo di più devices contemporaneamente. Vista la sua grande flessibilità, un eventuale utente che utilizza IMAP può gestire per esempio le stesse mailbox su differenti computer o eseguire il download solo di dereminate email, il tutto senza alterare le mailbox su altri computer.

La porta è la 143 TCP e come POP3 ha la sua versione sicura, IMAPS (porta 993).

SMTP - Simple Mail Transfer Protocol

SMTP è un protocollo per l'invio di email da client a server, derivato dal precedente MTP (Mail Transfer Protocol). Nel processo per inviare le email, il server SMPT esegue entrambi i compiti di invio e ricezione, per questo sono state create delle terminologie apposite al fine di evitare di confindersi: SMPT sender (client) e SMPT receiver(server). La porta standard del servizio è la numero 25 TCP, la versione sicura è SMPTS (porta 465).

SSH - Secure Shell

SSH è un importante protocollo per chi necessità connessioni sicure con terminali remoti siccome il link stabilito attraverso client e server è interamente cifrato. Possiamo definire SSH lo standard usato per connettersi e gestire macchine remote, inoltre la sua introduzione ha posto quasi la parola fine all'utilizzo di telnet e rlogin, vecchi protocolli utilizzati per lo stesso scopo. SSH utilizza la crittografia asimmetrica per cifrare ogni singola lettere digitata nella console e inviata al server SSH. Utilizza la porta 22 TCP.

Tabella riassuntiva dei protocolli

 

Livello Protocollo Descrizione
Application Layer DNS Converte nomi in indirizzi IP, porta 53 UDP.
  NFS Permette la condivisione di file system in rete, NFSv3.
  DHCP Distribuisce IP e altri dati in maniera automatica sulla rete. Porte 67(server) e 68 (client) UDP.
  SNMP Permette di eseguire il monitoring dei devices TCP/IP in rete. Porte 161 (agent) e 162 (NMS) UDP, versione SNMPv2.
  FTP Consente di trasferire file sulla rete, porta 21 TCP.
  HTTP Il protocollo per il trasferimento di informazioni tra web server e client. Versione HTTP/1.1 porta 80 TCP. HTTPS porta 443 TCP.
  POP Download delle email in modalita offline. Versione POPv3 porta 110 TCP, POP3s versione sicura sulla porta 995 TCP.
  IMAP Download email in modalità sia online che offline, possibilità di sincronizzazione e altre funzioni piu avanzate, porta 143 TCP.
Sicuro tramite IMAPS, porta 993 TCP.
  SMTP Invio di email verso un server SMTP. Porta 25 TCP, sicuro su SMPTS porta 465 TCP.
  SSH Connessione e gestione di terminali remoti in sicurezza, connessione cifrata, porta 22 TCP.
Transport Layer TCP Trasmette i dati in modo affidabile, meccanismi di re-invio in caso di perdita dei dati e frammentazione/deframmantazione.
Orientato alla connessione.
  UDP Non garantisce l'invio dei dati, nessun meccanismo per la protezione dei dati come in TCP. Più veloce di TCP.
Network Layer IP / IPv6 Trasferisce i datagrammi attraverso reti interconnesse tra di loro.
  ICMP Controlla i malfunzionamenti sulla rete, come per esempio quando si usa il comando ping.
  RIP Il primo protocollo di routing, utilizza l'algoritmo distance vector per scoprire i cambiamenti della rete.
  OSPF Sostituisce RIP, utilizza l'algoritmo link-state.
  IRGP / EIGRP Protocolli proprietari di routing della CISCO utilizzanti un algoritmo distance vector, EIRGP è il miglioramento di IRGP.
  EGP Primo protocollo ERP apparso, scambi i dati con i router adiacenti.
  BGP Sostituisce EGP, è più complesso e utilizza tecniche sofisticate per il routing.
Datalink Layer SLIP Vecchio protocollo per connessioni con modem e serial line.
  PPP Usato per stabilire una connessione point-to-point, lo si trova tra l'ADSL domestico e la centrale del provider.
  ARP Converte gli IP in MAC address per permettere ai livelli superiori di accedere ai livelli inferiori.
  RARP Converte i MAC address in IP oramai non più utilizzato.