Network Working Group T. Socolofsky Request for Comment: 1180 C. Kale Spider Systems Limited January 1991 Un Tutorial sul TCP/IP Distribuita da .::http://www.rfc.altervista.org::. Stato del documento Questo RFC è una tutorial sul protocollo TCP/IP, che si occupa in particolare dei passi necessari per inoltrare un datagramma IP da un host sorgente a un host destinazione, attraverso un router. Questo RFC non specifica nessuno standard Internet. La distribuzione di questo documento è illimitata. Tavola dei Contenuti 1. Introduzione........................................ 2. Panoramica sul TCP/IP............................... 3. Ethernet............................................ 4. ARP................................................. 5. Internet Protocol.(IP).............................. 6. User Datagram Protocol.(UDP)........................ 7. Transmission Control Protocol.(TCP)................. 8. Applicazioni di Rete................................ 9. Altre Informazioni.................................. 10. Riferimenti......................................... 11. Riferimenti ad altri RFC............................ 12. Considerazioni sulla Sicurezza...................... 13. Contatti con gli Autori............................. 1. Introduzione Questo documento contiene solo una panoramica dei punti salienti del TCP/IP, e quindi rappresenta il ridotto all'osso della tecnologia TCP/IP. Si omettono la storia dello sviluppo e fondazione, gli aspetti economici legati al suo uso, e il suo futuro se comparato con ISO OSI. In pratica, sono omesse una buona parte di informazioni tecniche. Ciò che rimane è un minimo di informazioni che devono essere comprese da chi lavora professionalmente in un ambiente TCP/IP. Queste figure professionali comprendono: amministratori di sistema, programmatori di sistema, e gestori di rete. Questo testo farà uso di esempi presi dall'ambiente TCP/IP di UNIX, comunque i punti principali si applicano a tutte le implementazioni di TCP/IP. Notate che lo scopo di questo documento è quello di spiegare, non di definire. Se avete delle domande circa la corretta specifica di un protocollo, siete pregati di fare riferimento all'RFC che definisce l'attuale standard. La prossima sezione fa una panoramica del TCP/IP, seguita da una descrizione dettagliata dei componenti individuali. 2. Panoramica sul TCP/IP Il termine generico TCP/IP indica generalmente qualsiasi cosa che sia in relazione con i protocolli specifici di TCP e IP. Può includere altri protocolli, applicazioni, e anche componenti di rete. Esempi di questi protocolli sono: UDP, ARP, e ICMP. Esempi di applicazioni sono: TELNET, FTP, e RCP. Un termine più accurato è tecnologia internet. Una rete che utilizza la tecnologia internet è chiamata una interrete. 2.1 Strutture di base Per comprendere questa tecnologia dovete prima capire la seguente struttura logica: ---------------------------- | applicazioni di rete | | | |... \ | / .. \ | / ...| | ----- ----- | | |TCP| |UDP| | | ----- ----- | | \ / | | -------- | | | IP | | | ----- -*------ | | |ARP| | | | ----- | | | \ | | | ------ | | |ENET| | | ---@-- | ----------|----------------- | ---------o---------------- Cavo Ethernet Figura 1. Nodo base di una rete TCP/IP Questa è la struttura logica di una serie di protocolli stratificati all'interno di un computer collegato ad una interrete. Ogni computer che può comunicare usando la tecnologia internet ha una struttura logica simile a questa. È la struttura logica che determina il comportamento del computer nella rete. I rettangoli rappresentano punti di elaborazione dei dati che passano attraverso il computer, e le linee che collegano i rettangoli mostrano il percorso seguito dai dati. La linea orizzontale in basso rappresenta il cavo Ethernet; la «o» è il trasmettitore/ricevitore. Il simbolo «*» rappresenta l'indirizzo IP e il simbolo «@» l'indirizzo Ethernet. Comprendere questa struttura logica è essenziale per capire la tecnologia internet; vi si farà riferimento ovunque in questo tutorial. 2.2 Terminologia Il nome di una unità di dati che circola attraverso internet dipende dal punto in cui si trova nella pila di protocolli. In definitiva: se si trova in una Ethernet è chiamata frame Ethernet; se si trova fra il driver Ethernet e il modulo IP è chiamata pacchetto IP; se è fra il modulo IP e il modulo UDP è chiamata datagramma UDP; se si trova fra il modulo IP e il modulo TCP è chiamata segmento TCP (o più in generale, un messaggio di trasporto); e se è in una applicazione di rete è chiamata un messaggio di applicazione. Queste definizioni sono imperfette. Le definizioni correnti variano da una pubblicazione a quella successiva. Definizioni più specifiche possono essere trovate nell' RFC 1122, sezione 1.3.3. Un driver è un programma che comunica direttamente con l'interfaccia hardware della rete. Un modulo è un programma che comunica con un driver, tramite una applicazione di rete, o tramite un altro modulo. I termini driver, modulo, frame Ethernet, pacchetto IP, datagramma UDP, messaggio TCP, e messaggio di applicazione sono usati dove appropriati all'interno di questo tutorial. 2.3 Flusso dei dati Proviamo a seguire i dati nel loro cammino verso il basso nella pila di protocolli mostrata in Figura 1. In una applicazione che usa TCP (Transmission Control Protocol), i dati passano dall'applicazione al modulo TCP. Per applicazioni che usano UDP (User Datagram Protocol), i dati passano dall'applicazione al modulo UDP. FTP (File Transfer Protocol) è una tipica applicazione che usa TCP. La sua pila di protocolli in questo esempio è FTP/TCP/IP/ENET. SNMP (Simple Network Management Protocol) è una applicazione che usa UDP. La sua pila è SNMP/UDP/IP/ENET. I moduli TCP, UDP, e il driver Ethernet sono multiplexer molti a 1. In qualità di multiplexer collegano molti ingressi ad un'unica uscita. Essi sono anche de-multiplexer 1 a molti. In qualità di de-multiplexer collegano un ingresso a molte uscite a seconda del campo tipo, nell' intestazione del protocollo. 1 2 3 ... n 1 2 3 ... n \ | / | \ | | / ^ \ | | / | \ | | / | ------------- flusso ---------------- flusso |multiplexer| dei |de-multiplexer| dei ------------- dati ---------------- dati | | | | | v | | 1 1 Figura 2. n-a-1 multiplexer e 1-a-n de-multiplexer Se un frame Ethernet finisce nel driver Ethernet al di fuori della rete, il pacchetto può essere passato verso l'alto, o al modulo ARP (Address Resolution Protocol) o al modulo IP (Internet Protocol). Il valore del campo tipo nel frame Ethernet determina a quale dei due moduli sarà passato. Se un pacchetto IP arriva nel modulo IP, l'unità di dati è passata al livello superiore a TCP o a UDP, a seconda del campo protocollo nell'intestazione IP. Quando arriva un datagramma UDP nel modulo UDP, il messaggio di applicazione viene passato al livello superiore verso l'applicazione di rete determinata dal valore del campo porta nell'intestazione UDP. Se arriva come messaggio TCP nel modulo TCP il messaggio di applicazione è passato al livello superiore alla applicazione di rete determinata dal campo porta nell'intestazione TCP. Il multiplexing a scendere è semplice da eseguire perché da ogni punto di partenza c'è solo un percorso in discesa; ogni modulo di protocollo aggiunge le sue informazioni di intestazione così che il pacchetto può essere ricostruito nel computer di destinazione. I dati di passaggio dalle applicazioni attraverso TCP o UDP convergono nel modulo IP e da qui sono spediti in basso attraverso il driver di interfaccia di rete di basso livello. Sebbene la tecnologia internet supporti molti mezzi di rete diversi, Ethernet è usata in tutti gli esempi di questo tutorial perché è la rete fisica più comune sotto IP. Il computer nella Figura 1 ha un singolo collegamento Ethernet. L'indirizzo di 6 byte Ethernet è unico per ogni interfaccia su una Ethernet ed è localizzato nel livello più basso del driver Ethernet. Il computer ha invece un indirizzo IP di 4 byte. Questo indirizzo è localizzato nell'interfaccia più bassa del modulo IP. L'indirizzo IP deve essere unico per una internet. Un computer attivo, conosce sempre i suoi indirizzi IP e Ehernet. 2.4 Interfacce di Rete Se un computer è connesso a 2 Ethernet diverse, si trova nella situazione della Figura 3. ---------------------------- | applicazioni di rete | | | |... \ | / .. \ | / ...| | ----- ----- | | |TCP| |UDP| | | ----- ----- | | \ / | | -------- | | | IP | | | ----- -*----*- ----- | | |ARP| | | |ARP| | | ----- | | ----- | | \ | | / | | ------ ------ | | |ENET| |ENET| | | ---@-- ---@-- | ----------|-------|--------- | | | ---o---------------------- | Cavo Ethernet 2 ---------------o---------- Cavo Ethernet 1 Figura 3. Nodo di rete TCP/IP su 2 Ethernet Notate che il computer ha 2 indirizzi Ethernet e 2 indirizzi IP. Si vede da questa struttura che per computer con più di una interfaccia fisica di rete, il modulo IP è molti a molti sia multiplexer che de- multiplexer. 1 2 3 ... n 1 2 3 ... n \ | | / | \ | | / ^ \ | | / | \ | | / | ------------- flusso ---------------- flusso |multiplexer| dei |de-multiplexer| dei ------------- dati ---------------- dati / | | \ | / | | \ | / | | \ v / | | \ | 1 2 3 ... m 1 2 3 ... m Figura 4. n-a-m multiplexer e m-a-n de-multiplexer Il multiplexing è eseguito in entrambe le direzioni per accomodare i dati in ingresso e quelli in uscita. Un modulo IP con più di un'interfaccia di rete è più complesso di quello del nostro esempio originale in cui può inoltrare dati nella rete successiva. I dati possono arrivare da una qualsiasi interfaccia ed essere spediti tramite una qualsiasi altra interfaccia. TCP UDP \ / \ / -------------- | IP | | | | --- | | / \ | | / v | -------------- / \ / \ i dati i dati entrano da escono qui da qui Figura 5. Esempio di Instradamento di un pacchetto IP Il procedimento con cui un pacchetto IP è spedito ad un'altra rete è chiamato «instradamento» di un pacchetto IP. Un computer che è stato dedicato all'instradamento dei pacchetti IP è chiamato un «router IP». Come si può vedere dalla figura, il pacchetto IP inoltrato, non tocca mai i moduli TCP e UDP del router. Alcune implementazioni di router non hanno i moduli TCP o UDP. 2.5 IP crea una singola rete «logica»1 Il modulo IP è centrale al successo della tecnologia internet. Ogni modulo o driver aggiunge la sua intestazione al messaggio quando questo scende lungo la pila di protocolli. Ogni modulo o driver estrae la corrispondente intestazione dal messaggio quando questo risale la pila verso lo strato delle applicazioni. L'intestazione IP contiene l'indirizzo IP che costruisce una singola rete logica da molte reti fisiche. Questa interconnessione di reti fisiche è la sorgente del nome: internet. Un insieme di reti fisiche interconnesse che rientrano nei limiti di un pacchetto IP è chiamata una interrete (internet). 1 Da non confondere con il concetto di rete combinatoria (reti logiche). (N.d.T.) 2.6 Indipendenza dalla Rete Fisica IP nasconde la sottostante rete fisica alle applicazioni di rete. Se inventate una nuova rete fisica, potete metterla in servizio implementando un nuovo driver che connette alla internet sotto il livello IP. Così, le applicazioni di rete rimangono invariate e non sono vulnerabili ai cambiamenti della tecnologia hardware. 2.7 Interoperabilità Se due computer in una internet possono comunicare, si usa dire che interoperano; se l'implementazione della tecnologia internet è buona, si usa dire che si ha «interoperabilità». Gli utenti di computer per scopi generali traggono benefici dall'installazione di una internet grazie alla interoperabilità fra i computer nel mercato. Generalmente, quando comprate un computer, esso dovrà interoperare. Se il computer non ha interoperabilità, e questa non può essere aggiunta, esso occuperà una piccola e ristretta nicchia del mercato. 2.8 Dopo la panoramica Con queste conoscenze di base, tenteremo di rispondere alle seguenti domande: - Quando si spedisce un pacchetto IP, come viene determinato l'indirizzo Ethernet di destinazione? - Come fa IP a conoscere quale delle molteplici interfacce di rete di basso livello usare per spedire un pacchetto? - Come fa un'applicazione cliente su di un computer a raggiungere l'applicazione servente su un altro computer? - Perché esistono sia TCP che UDP, invece di averne solo uno dei due? - Quali applicazioni di rete sono disponibili? Le risposte verranno date, in ordine, dopo un ripasso sul funzionamento di Ethernet. 3. Ethernet Questa sezione è un breve ripasso sulla tecnologia Ethernet. Un frame Ethernet contiene l'indirizzo di destinazione, l'indirizzo del sorgente, il campo «tipo», e i dati. Un indirizzo Ethernet è di 6 byte. Ogni dispositivo ha il suo indirizzo Ethernet e rimane in attesa di frame Ethernet con quell'indirizzo di destinazione. Tutti i dispositivi riceveranno anche un frame Ethernet con un indirizzo di destinazione di FF-FF-FF-FF-FF-FF (in esadecimale), chiamato indirizzo broadcast. Ethernet usa il protocollo CSMA/CD (accesso multiplo con rilevamento di portante e rilevamento di collisioni). CSMA/CD significa che tutti i dispositivi comunicano tramite un singolo mezzo, che solo uno alla volta può trasmettere, e che tutti possono ricevere simultaneamente. Se due dispositivi provano a trasmettere nello stesso istante, la collisione di trasmissione è rilevata, e entrambi i dispositivi dovranno aspettare un periodo casuale (ma breve) prima di poter riprovare a trasmettere di nuovo. 3.1 Un'analogia umana Una buona analogia della tecnologia Ethernet è data da un gruppo di persone che parlano in una piccola stanza, completamente al buio. In questa analogia, il mezzo fisico della rete sono le onde sonore nell'aria della stanza, invece dei segnali elettrici nel cavo coassiale. Ogni persona può ascoltare le parole di un'altra persona che sta parlando (rilevamento di portante). Ognuno nella stanza ha la stessa capacità di parlare (accesso multiplo), ma nessuno di loro alza la voce perché sono cortesi. Se una persona è scortese, gli viene chiesto di lasciare la stanza. (ovvero, viene fatta uscire dalla rete). Nessuno parla mentre un altro sta parlando. Ma se due persone iniziano a parlare nello stesso istante, ognuno di loro se ne accorge perché sente qualche cosa che non ha detto (Rilevamento di collisione). Quando le persone si accorgono di questa condizione, aspettano un momento, quindi uno di loro comincia a parlare. L'altro ascolta il discorso e aspetta che il primo finisca prima di iniziare a sua volta a parlare. Ogni persona ha un nome univoco (indirizzo Ethernet unico) per evitare confusione. Ogni volta che qualcuno parla, questo fa una premessa dicendo il nome della persona a cui si rivolge e il suo stesso nome (indirizzi Ethernet del destinatario e della sorgente, rispettivamente), ad esempio: Ciao Jane, questo è Jack, ...blah blah blah... Se chi parla vuole rivolgersi a tutti, può dire «tutti» (indirizzo broadcast), ad esempio, Ciao a tutti, questo è Jack, blah, blah, blah, ... 4. ARP - Quando si spedisce un pacchetto IP, come viene determinato l'indirizzo Ethernet di destinazione? ARP (Protocollo di Risoluzione degli Indirizzi) è usato per tradurre gli indirizzi IP in indirizzi Ethernet. La traduzione è fatta solo per i pacchetti IP uscenti, perché è in questo caso che vengono create le intestazioni IP e Ethernet. 4.1 Tabella ARP per la traduzione degli indirizzi La traduzione si svolge con la visita di una tabella. La tabella, chiamata tabella ARP, è mantenuta in memoria e contiene una riga per ogni computer. C'è una colonna per l'indirizzo IP e una colonna per l'indirizzo Ethernet. Quando si traduce un indirizzo IP in uno Ethernet, si esegue una ricerca nella tabella sul valore dell'indirizzo IP. La seguente è una tabella ARP semplificata: -------------------------------------- |Indirizzo IP Indirizzo Ethernet | -------------------------------------- |223.1.2.1 08-00-39-00-2F-C3| |223.1.2.3 08-00-5A-21-A7-22| |223.1.2.4 08-00-10-99-AC-54| -------------------------------------- TABELLA 1. Esempio di Tabella ARP Per convenzione, quando si scrivono i 4 byte dell'indirizzo IP, si scrivono tutti i byte in decimale e si separano con un «punto». Per scrivere i 6 byte dell'indirizzo Ethernet, invece, per convenzione si scrivono i byte in esadecimale e si separano con un segno «-» o con «:». La tabella ARP è necessaria perché l'indirizzo IP e l'indirizzo Ethernet sono scelti in modo indipendente; non esistono algoritmi per calcolare un indirizzo IP dato un indirizzo Ethernet. L'indirizzo IP è scelto dall'amministratore di rete in base alla collocazione del computer in internet. Quando il computer viene spostato in un luogo differente in internet, il suo indirizzo IP deve essere cambiato. L'indirizzo Ethernet è scelto dal costruttore in base allo spazio degli indirizzi Ethernet di cui ha licenza. Quando la scheda d'interfaccia hardware Ethernet cambia, cambia anche il suo indirizzo. 4.2 Scenario tipico di traduzione Durante una normale operazione di un'applicazione di rete, come TELNET, viene spedito un messaggio di applicazione a TCP, quindi TCP spedisce il corrispondente messaggio TCP al modulo IP. L'indirizzo di destinazione IP è conosciuto dall'applicazione, dal modulo TCP, e dal modulo IP. A questo punto il pacchetto IP è stato costruito ed è pronto per essere passato al driver Ethernet, ma prima deve essere determinato l'indirizzo Ethernet. A questo punto si consulta la tabella ARP per cercare l'indirizzo Ethernet di destinazione. 4.3 Coppia ARP Richiesta/Risposta Ma in che modo viene riempita la tabella ARP la prima volta? La risposta è che viene riempita automaticamente da ARP a seconda del bisogno. Succedono due cose quando la tabella ARP non può essere usata per tradurre un indirizzo: 1. Un pacchetto di richiesta ARP con indirizzo Ethernet broadcast è spedito a tutti i computer della rete. 2. Il pacchetto IP in uscita è messo in coda. L'interfaccia Ethernet di ogni computer riceve il frame Ethernet broadcast. Ogni driver Ethernet esamina il campo tipo nel frame e passa il pacchetto ARP al modulo ARP. Il pacchetto di richiesta ARP dice Se il tuo indirizzo IP corrisponde a questo indirizzo IP, allora per favore dimmi il tuo indirizzo Ethernet. Un pacchetto di richiesta ARP appare all'incirca così: --------------------------------------- |Indir.IP Mittente 223.1.2.1 | |Indir.Enet Mittente 08-00-39-00-2F-C3| --------------------------------------- |Indir.IP Destinat. 223.1.2.2 | |Indir.Enet Destin. <'vuoto'> | --------------------------------------- TABELLA 2. Esempio di Richiesta ARP Ogni modulo ARP esamina l'indirizzo IP e, se l'indirizzo IP del destinatario corrisponde con il suo indirizzo IP, spedisce una risposta direttamente all'indirizzo Ethernet sorgente. Il pacchetto di risposta ARP dice Si, quell'indirizzo IP è il mio, permettimi di fornirti il mio indirizzo Ethernet. Un pacchetto ARP di risposta ha i campi mittente/destinatario invertiti rispetto a quello di richiesta. Esso appare all'incirca così: --------------------------------------- |Indir.IP Mittente 223.1.2.2 | |Indir.Enet Mittente 08-00-28-00-38-A9| --------------------------------------- |Indir.IP Destinat. 223.1.2.1 | |Indir.Enet Destin. 08-00-39-00-2F-C3| --------------------------------------- TABELLA 3. Esempio di Risposta ARP La risposta viene ricevuta dal computer mittente originario. Il driver Ethernet esamina il campo «tipo» nel frame Ethernet, quindi passa il pacchetto ARP al modulo ARP. Il modulo ARP esamina il pacchetto e aggiunge l'indirizzo IP del mittente e il suo indirizzo Ethernet alla tabella ARP. La tabella aggiornata appare ora così: ----------------------------------- |Indir. IP Indirizzo Ethernet| ----------------------------------- |223.1.2.1 08-00-39-00-2F-C3| |223.1.2.2 08-00-28-00-38-A9| |223.1.2.3 08-00-5A-21-A7-22| |223.1.2.4 08-00-10-99-AC-54| ----------------------------------- TABELLA 4. Tabella ARP dopo la Risposta 4.4 Scenario... continua La nuova traduzione è stata ora installata automaticamente nella tabella, solo pochi millisecondi dopo il necessario. Come ricorderete, dal punto 2 in poi il pacchetto IP uscente è stato messo in coda. Ora la traduzione dell'indirizzo IP nel corrispondente indirizzo Ethernet, può essere eseguita con una ricerca nella tabella ARP, quindi il frame Ethernet viene trasmesso al modulo Ethernet. Quindi, con i nuovi passi 3, 4 e 5, lo scenario per il computer mittente è: 3. Un pacchetto di richiesta ARP con un indirizzo Ethernet di broadcast è spedito in rete a ogni computer. 4. Il pacchetto IP uscente è messo in coda. 5. Il responso ARP arriva con la traduzione da indirizzo IP a Ethernet per la tabella ARP. Per il pacchetto IP in coda, ARP traduce l'indirizzo IP in un indirizzo Ethernet. 4.5 Il frame Ethernet viene trasmesso sulla Ethernet In conclusione, quando c'è una traduzione mancante nella tabella ARP, un pacchetto IP viene messo in coda. I dati di traduzione sono velocemente inseriti con una richiesta/responso ARP e il pacchetto IP viene trasmesso. Ogni computer ha una propria tabella ARP per ognuna delle sue interfacce Ethernet. Se il computer di destinazione non esiste, non ci sarà un pacchetto di risposta ARP e quindi nessun aggiornamento della tabella ARP. IP scarterà i pacchetti IP spediti a quell'indirizzo. I protocolli dei livelli superiori non possono sapere la differenza fra un problema a livello Ethernet e l'assenza di un computer con un determinato indirizzo IP. Alcune implementazioni di IP e ARP non mettono in coda il pacchetto IP in attesa del responso ARP. In questo caso, il pacchetto IP viene scartato e il recupero del pacchetto IP perso è lasciato al modulo TCP o all'applicazione di rete UDP. Il recupero si ottiene tramite un time-out e con la ritrasmissione. Il messaggio ritrasmesso verrà ora spedito con successo nella rete perché la prima copia del messaggio ha già causato l'aggiornamento della tabella ARP. 5. Protocollo Internet Il modulo IP è il centro della tecnologia internet e l'essenza di IP è la sua tabella di instradamento. IP usa questa tabella memorizzata per prendere qualsiasi decisione circa l'inoltro di un pacchetto IP. Il contenuto di una tabella di instradamento (route table) è definito dall'amministratore di rete ed errori in tale tabella possono impedire ogni comunicazione. Capire come va usata una tabella di instradamento è capire il funzionamento di internet. La comprensione di questo tema è necessaria per amministrare con successo e mantenere una rete IP. La tabella di instradamento è meglio compresa se si ha prima una panoramica del routing, poi si imparano gli indirizzi IP di rete, e quindi si passa ai dettagli. 5.1 Instradamento diretto La figura sottostante rappresenta una piccola internet con 3 computer: A, B e C. Ogni computer ha la stessa pila di protocolli TCP/IP come in Figura 1. Ogni interfaccia Ethernet ha il suo indirizzo Ethernet. Ogni computer ha un indirizzo IP assegnato all'interfaccia IP dal gestore della rete, che ha anche assegnato un indirizzo IP di rete alla Ethernet. A B C | | | --o------o------o-- Ethernet 1 Rete IP «development» Figura 6. Una rete IP Quando A spedisce un pacchetto IP a B, l'intestazione IP contiene l'indirizzo IP di A come indirizzo IP sorgente, e l'intestazione Ethernet contiene l'indirizzo Ethernet di A come indirizzo Ethernet sorgente. Nello stesso modo, l'intestazione IP contiene l'indirizzo IP di B come indirizzo IP di destinazione e l'intestazione Ethernet contiene l'indirizzo Ethernet di B come indirizzo Ethernet di destinazione. ---------------------------------------- |indirizzo sorgente destinazione| ---------------------------------------- |Intestazione IP A B | |Intes. Ethernet A B | ---------------------------------------- TABELLA 5. Indirizzi in un frame Ethernet per un pacchetto IP da A a B In questo semplice caso, IP è superfluo perché aggiunge poco al servizio offerto da Ethernet. Comunque, IP aggiunge costi: cicli di CPU e banda di rete per generare, trasmettere e controllare l'intestazione IP. Quando il modulo IP di B riceve il pacchetto IP da A, confronta l'indirizzo IP di destinazione con il suo, quindi passa il datagramma al protocollo di livello superiore. Questa comunicazione fra A e B usa un instradamento diretto. 5.2 Instradamento indiretto La figura sottostante offre un'immagine più realistica di una internet. Questa è composta da 3 Ethernet e 3 reti IP connesse da un router chiamato computer D. Ogni rete IP ha 4 computer; ogni computer ha il suo indirizzo IP e il suo indirizzo Ethernet. A B C ----D---- E F G | | | | | | | | | --o------o------o------o- | -o------o------o------o-- Ethernet 1 | Ethernet 2 Rete IP «development» | Rete IP «accounting» | | | H I J | | | | --o-----o------o------o-- Ethernet 3 Rete IP «factory» Figura 7. Tre Reti IP: Una Internet Ad eccezione del computer D, ogni computer ha una pila di protocolli TCP/IP come quella in Figura 1. Il computer D è il router; esso è connesso a tutte e 3 le reti e quindi ha 3 indirizzi IP e 3 indirizzi Ethernet. Il computer D ha una pila di protocolli TCP/IP simile a quella della Figura 3, a parte il fatto che ha 3 moduli ARP e 3 driver Ethernet invece di 2. Notate che il computer D ha un unico modulo IP. Il gestore della rete ha assegnato un numero unico, chiamato numero IP di rete, ad ognuna delle Ethernet. I numeri IP di rete non sono mostrati in questo diagramma, solo i nomi delle reti. Quando il computer A spedisce un pacchetto IP al computer B, il processo è identico all'esempio di rete singola visto prima. Ogni comunicazione fra computer che si trovano in una stessa rete IP corrisponde all'esempio di routing diretto discusso in precedenza. Quando i computer D e A comunicano, la comunicazione è diretta. Quando D e E comunicano, la comunicazione è diretta. Lo stesso fra D e H. Questo perché ognuna di queste coppie di computer si trova su una stessa rete IP. Invece, quando il computer A comunica con un computer all'altro capo del router, la comunicazione non è più diretta. A deve usare D per inoltrare il pacchetto IP verso la prossima rete IP. Questa comunicazione è chiamata «indiretta». L'instradamento di pacchetti IP è eseguito dal modulo IP e appare trasparente a TCP, UDP e alle applicazioni di rete. Se A spedisce un pacchetto IP a E, gli indirizzi IP e Ethernet della sorgente sono quelli di A. L'indirizzo IP di destinazione è quello di E, ma siccome il modulo IP di A spedisce il pacchetto IP a D per l'inoltro, l'indirizzo Ethernet di destinazione è quello di D. ---------------------------------------- |indirizzo sorgente destinazione | ---------------------------------------- |Intestazione IP A E | |Intest.Ethernet A D | ---------------------------------------- TABELLA 6. Indirizzi in un frame Ethernet per un pacchetto IP da A a E (prima di arrivare a D) Il modulo IP di D riceve il pacchetto IP e, esaminando l'indirizzo IP di destinazione, dice Questo non è il mio indirizzo IP, e spedisce il pacchetto IP direttamente a E. ---------------------------------------- |indirizzo sorgente destinazione | ---------------------------------------- |Intestazione IP A E | |Intest.Ethernet D E | ---------------------------------------- TABELLA 7. Indirizzi in un frame Ethernet per un pacchetto IP da A a E (superato D) In conclusione, per comunicazioni dirette, sia l'indirizzo IP sorgente che l'indirizzo Ethernet sorgente sono quelli del mittente, e quelli di destinazione sono quelli del destinatario. Nelle comunicazioni indirette, gli indirizzi IP e Ethernet non sono accoppiati in questo modo. Questo è un esempio di internet molto semplice. Le reti reali sono spesso complicate da molti fattori, con router multipli e molti tipi diversi di reti fisiche. Questo esempio di rete potrebbe essere creato da un amministratore di rete per dividere una grande Ethernet in modo da individuare il traffico broadcast. 5.3 Regole di instradamento del modulo IP Questa panoramica del routing ha mostrato cosa succede, ma non come succede. Ora esaminiamo le regole, o gli algoritmi, usati dal modulo IP. Per un pacchetto IP uscente, che arriva a IP da uno strato superiore, IP deve decidere se spedire il pacchetto direttamente o indirettamente, e deve scegliere l'interfaccia di rete da utilizzare. Queste scelte sono fatte consultando la tabella di instradamento. Per un pacchetto IP entrante, che arriva a IP da un'interfaccia inferiore, IP deve decidere se inoltrare il pacchetto o passarlo a uno strato superiore. Se il pacchetto deve essere inoltrato, viene trattato come un pacchetto uscente. Quando un pacchetto IP entrante arriva, non è mai rispedito indietro attraverso la stessa interfaccia di rete. Queste decisioni sono prese prima che il pacchetto IP sia ceduto all'interfaccia di rete e prima di consultare la tabella ARP. 5.4 Indirizzi IP L'amministratore di rete assegna gli indirizzi IP ai computer in accordo alla rete IP a cui i computer sono collegati. Una parte dei 4 byte dell'indirizzo IP rappresenta il numero di rete IP, l'altra parte è il numero IP del computer ( o numero di host). Per il computer nella tabella 1, con l'indirizzo IP 223.1.2.1, il numero di rete è 223.1.2 e il numero dell'host è 1. La parte dell'indirizzo usata per il numero di rete e per il numero dell'host è definita dai bit più alti nell'indirizzo di 4 byte. Tutti gli indirizzi IP di esempio in questo tutorial sono del tipo di classe C, cioè in cui i 3 bit più alti indicano che 21 bit sono il numero di rete e 8 bit indicano il numero dell'host. In questo modo ci possono essere 2097152 reti di classe C con al massimo 254 computer (host) su ogni rete. Lo spazio degli indirizzi IP è amministrato dal NIC (Network Information Center - Centro Informazione Reti). Tutte le internet connesse all'unica Internet mondiale devono utilizzare numeri di rete assegnati dal NIC. Se state configurando la vostra internet e non intendete connetterla alla Internet, dovrete comunque ottenere il vostro indirizzo IP dal NIC. Se scegliete da soli il vostro numero, correte il rischio di creare confusione e caos nell'eventualità in cui decidiate di connettervi ad un'altra internet. 5.5 Nomi Le persone si riferiscono ai computer per nome, non per numero. Un computer chiamato alpha potrebbe avere l'indirizzo IP 223.1.2.1. Per piccole reti, i dati usati per tradurre un nome in un indirizzo sono mantenuti in ogni computer in un file hosts. Per grandi reti, questo file si trova in un servente a cui ci si collega tramite rete quando se ne ha bisogno. Alcune righe di questo file possono assomigliare a queste: 223.1.2.1 alpha 223.1.2.2 beta 223.1.2.3 gamma 223.1.2.4 delta 223.1.3.2 epsilon 223.1.4.2 iota L'indirizzo IP è nella prima colonna, e il nome del computer nella seconda. Nella maggior parte dei casi, si può installare un identico file «hosts» su tutti i computer. Come potete notare, «delta» ha solo una voce in questo file, anche se ha 3 indirizzi IP. Delta può essere raggiunto con uno qualsiasi dei suoi indirizzi IP; non importa quale viene usato. Quando delta riceve un pacchetto IP e controlla l'indirizzo di destinazione, riconoscerà ognuno dei suoi indirizzi. Anche le reti IP hanno i loro nomi. Se avete 3 reti IP, il vostro file networks per documentare questi nomi potrebbe assomigliare a questo: 223.1.2 development 223.1.3 accounting 223.1.4 factory Il numero di rete è nella prima colonna e il suo nome nella seconda. Da questo esempio potete vedere che alpha è il computer numero 1 nella rete development, beta è il computer 2 nella rete development e così via. Si può anche dire che alpha è development.1, beta è development.2, e così via. Il precedente file hosts è adeguato per gli utenti, ma l'amministratore di rete lo rimpiazzerà probabilmente la riga per delta con: 223.1.2.4 devnetrouter delta 223.1.3.1 accnetrouter 223.1.4.1 facnetrouter Queste 3 nuove linee per il file hosts danno a ogni indirizzo IP di delta un nome appropriato. Infatti, il primo indirizzo IP elencato ha 2 nomi; «delta» e «devnetrouter» che sono sinonimi. In pratica «delta» è il nome generico del computer e gli altri 3 nomi sono usati solo quando si gestisce la tabella di inoltro. Questi file sono usati dai comandi di amministrazione di rete e dalle applicazioni di rete per fornire nomi significativi. Non sono richiesti per operazioni su una internet, ma le rendono più facili per noi. 5.6 Tabella di instradamento di IP Come fa IP a sapere quale interfaccia di rete usare per inviare un pacchetto IP? IP fa una ricerca nella tabella di instradamento usando come chiave di ricerca il numero di rete IP estratto dall'indirizzo IP di destinazione. La tabella di instradamento contiene una riga per ogni strada (route). Le colonne principali nella tabella sono: numero di rete IP, flag diretto/indiretto, indirizzo IP del router, numero di interfaccia. Questa è la tabella cui fa riferimento IP per ogni pacchetto IP uscente. Nella maggior parte dei computer la tabella di instradamento può essere modificata con il comando route. Il contenuto della tabella di instradamento è definito dall'amministratore di rete, perché è lui che assegna gli indirizzi IP ai computer. 5.7 Dettagli dell'instradamento diretto Per spiegare come viene usato, permetteteci di rivedere nel dettaglio la situazione di instradamento vista precedentemente. --------- --------- | alpha | | beta | | 1 | | 1 | --------- --------- | | ---o----------------o-- Ethernet 1 Rete IP «development» Figura 8. Primo piano di una rete IP La tabella di instradamento dentro alpha appare come questa: ------------------------------------------------ |rete flag dir/ind router interf.| ------------------------------------------------ |development diretto <"blank"> 1 | ------------------------------------------------ TABELLA 8. Esempio di Semplice Tabella di Instradamento Questa maschera può essere richiamata in alcuni sistemi UNIX con il comando netstat -r. In questa semplice rete, tutti i computer hanno la stessa tabella di instradamento. Per discussione, la tabella è stampata di nuovo senza la traduzione del numero di rete nel suo nome. --------------------------------------------- |rete flag dir/indir router interf.| --------------------------------------------- |223.1.2 diretto <"blank"> 1 | --------------------------------------------- TABELLA 9. Esempio di Semplice Tabella di Instradamento con Numeri 5.8 Scenario diretto Alpha sta inviando un pacchetto IP a beta. Il pacchetto IP è nel modulo IP di alpha e l'indirizzo IP di destinazione è beta o 223.1.2.2. IP estrae la porzione di rete di questo indirizzo IP e fa una ricerca nella prima colonna della tabella per cercare una corrispondenza. Con questa rete una corrispondenza viene trovata alla prima voce. Le altre informazioni in questa voce indicano che i computer in questa rete possono essere raggiunti direttamente tramite l'interfaccia numero 1. Una traduzione dalla tabella ARP è eseguita sull'indirizzo IP di beta, quindi il frame Ethernet è spedito direttamente a beta tramite l'interfaccia numero 1. Se un'applicazione prova a inviare dati a un indirizzo IP che non si trova nella rete development, IP non riuscirà a trovare una corrispondenza nella tabella di instradamento. IP quindi scarta il pacchetto IP. Alcuni computer mostrano un messaggio di errore Network not reachable (Rete non raggiungibile). 5.9 Dettagli dell'instradamento indiretto. Ora, diamo un'occhiata più da vicino allo scenario di routing più complicato precedentemente esaminato. --------- --------- --------- | alpha | | delta | |epsilon| | 1 | |1 2 3| | 1 | --------- --------- --------- | | | | | --------o---------------o- | -o----------------o-------- Ethernet 1 | Ethernet 2 Rete IP «Development» | Rete IP «accounting» | | -------- | | iota | | | 1 | | -------- | | --o--------o-------- Ethernet 3 Rete IP «factory» Figura 9. Primo piano delle tre Reti IP La tabella di instradamento di alpha appare così: -------------------------------------------------- |rete flag dir/ind. router interf.| -------------------------------------------------- |development diretto <"blank"> 1 | |accounting indiretto devnetrouter 1 | |factory indiretto devnetrouter 1 | -------------------------------------------------- TABELLA 10. Tabella di instradamento di Alpha La stessa tabella usando i numeri al posto dei nomi: ------------------------------------------------- |rete flag dir/ind. router interf.| ------------------------------------------------- |223.1.2 diretto <"blank"> 1 | |223.1.3 indiretto 223.1.2.4 1 | |223.1.4 indiretto 223.1.2.4 1 | ------------------------------------------------- TABELLA 11. Tabella di instr. Di Alpha con numeri Il router nella tabella di Alpha è l'indirizzo IP della connessione di delta con la rete development. 5.10 Scenario indiretto Alpha stà inviando un pacchetto IP a epsilon. Il pacchetto IP è nel modulo IP di alpha e l'indirizzo IP di destinazione è epsilon (223.1.3.2). Ip estrae la porzione di rete dell'indirizzo IP (223.1.3) e cerca nella prima colonna della tabella una corrispondenza. Viene trovata una corrispondenza alla seconda voce. Questa voce indica che i computer nella rete 223.1.3 possono essere raggiunti attraverso il router-IP devnetrouter. Il modulo IP di alpha procede quindi con la traduzione dalla tabella ARP dell'indirizzo IP di devnetrouter e spedisce il pacchetto IP direttamente a devnetrouter tramite l'interfaccia di Alpha numero 1. Il pacchetto IP contiene ancora l'indirizzo di destinazione di epsilon. Il pacchetto IP arriva all'interfaccia di rete development di delta e viene passato al modulo IP di delta. L'indirizzo IP di destinazione viene esaminato e, siccome non corrisponde a nessun indirizzo IP di delta, delta decide di inoltrare il pacchetto IP. Il modulo IP di delta estrae la porzione di rete dell'indirizzo IP di destinazione (223.1.3) e cerca nella sua tabella di instradamento una corrispondenza nel campo rete. La tabella di delta appare così: ------------------------------------------------ |rete flag dir/ind. router interf.| ------------------------------------------------ |development diretto <"blank"> 1 | |factory diretto <"blank"> 3 | |accounting diretto <"blank"> 2 | ------------------------------------------------ TABELLA 12. Tabella di instr. Di Delta Qui sotto la stessa tabella con i numeri al posto dei nomi. ------------------------------------------------ |rete flag dir/ind. router interf.| ------------------------------------------------ |223.1.2 direct <"blank"> 1 | |223.1.3 direct <"blank"> 3 | |223.1.4 direct <"blank"> 2 | ------------------------------------------------ TABELLA 13. Tabella di instr. Di Delta con numeri. La corrispondenza è trovata alla seconda voce. IP spedisce il pacchetto IP direttamente a epsilon tramite l'interfaccia numero 3. Il pacchetto IP contiene l'indirizzo IP di destinazione di epsilon e l'indirizzo Ethernet di destinazione di epsilon. Il pacchetto IP arriva a epsilon e viene passato al modulo IP di epsilon. L'indirizzo IP di destinazione del pacchetto viene esaminato e trovato corrispondente a quello di epsilon, quindi il pacchetto IP viene passato verso il protocollo del livello superiore. 5.11 Conclusioni sull'instradamento Quando un pacchetto IP viaggia attraverso una grossa internet, può dover passare attraverso molti router-IP prima di raggiungere la destinazione. Il percorso che prende non viene determinato da una sorgente centrale ma è il risultato della consultazione di ognuna delle tabelle di instradamento incontrate nel tragitto. Ogni computer definisce solo il prossimo salto nel viaggio e non gli resta altro che spedirlo per quella strada. 5.12 Gestione dell'instradamento Mantenere tabelle di instradamento corrette su tutti i computer in una grande interrete è un compito difficile; la configurazione di rete viene modificata costantemente dall'amministratore per andare incontro ai cambiamenti necessari. Errori nelle tabelle di instradamento possono bloccare le comunicazioni in un modo tale da rendere straziantemente noioso individuarne la causa. Mantenere una semplice configurazione di rete è molto lontano dalla realizzazione di una internet affidabile. Per esempio, il modo più semplice di assegnare reti IP alle Ethernet è quello di assegnare un singolo numero di rete IP a ogni Ethernet. Un certo aiuto viene fornito anche da alcuni protocolli e applicazioni di rete. ICMP (Protocollo dei Messaggi di Controllo di Internet) può rilevare alcuni problemi di instradamento. Per piccole reti la tabella di instradamento è riempita manualmente su ogni computer dall'amministratore di rete. Per reti più grandi l'amministratore di rete automatizza questa operazione manuale con un protocollo di instradamento per distribuire percorsi attraverso una rete. Quando un computer viene spostato da una rete IP a un'altra, il suo indirizzo IP deve cambiare. Quando un computer viene rimosso da una rete IP il suo vecchio indirizzo IP diventa non valido. Questi cambiamenti richiedono frequenti aggiornamenti al file «hosts». Questo file lineare può diventare difficile da mantenere per reti regolarmente di medie dimensioni. Il Sistema dei Nomi di Dominio (DNS) aiuta a risolvere questi problemi. 6. Protocollo Datagramma Utente (UDP) UDP è uno dei due protocolli principali residenti su IP. Esso offre servizi alle applicazioni di rete dell'utente. Esempi di applicazioni di rete che usano UDP sono: File System di Rete (NFS) e il Protocollo Semplice di Gestione di una Rete (SNMP). Il servizio è più piccolo di un'interfaccia a IP. UDP è un servizio di distribuzione di datagrammi «senza connessione» che non garantisce la consegna. UDP non mantiene una connessione end-to-end con il modulo UDP remoto; esso spinge semplicemente il datagramma fuori dalla rete e accetta datagrammi in arrivo dalla rete. UDP aggiunge due funzioni a quelle fornite da IP. Una è il multiplexing di informazioni fra le applicazioni in base al numero di porta. L'altra è un checksum per controllare l'integrità dei dati. 6.1 Porte Come fa un cliente su un computer a raggiungere il servente su un altro? Il percorso della comunicazione fra un'applicazione e UDP è attraverso le porte UDP. Queste porte sono numerate, a cominciare da zero. Un'applicazione che offre un servizio (il servente) aspetta i messaggi in arrivo in una specifica porta dedicata a quel servizio. Il servente aspetta pazientemente una richiesta di servizio da un cliente. Ad esempio, il servente SNMP, chiamato agente SNMP, aspetta sempre sulla porta 161. Ci può essere solo un agente SNMP per computer perché c'è solo una porta UDP numero 161. Questo numero di porta è ben conosciuto; è un numero fissato, un numero internet assegnato. Se un cliente SNMP vuole un servizio, spedisce la sua richiesta alla porta numero 161 di UDP sul computer di destinazione. Quando un'applicazione spedisce dati all'esterno attraverso UDP, questi arrivano dall'altra parte come unità singole. Per esempio, se un'applicazione scrive 5 volte sulla porta UDP, l'applicazione all'altro capo farà 5 operazioni di lettura dalla porta UDP. Inoltre, anche la dimensione di ogni operazione di scrittura combacia con la dimensione delle operazioni di lettura. UDP preserva i confini del messaggio definiti dall'applicazione. Esso non fondo mai due messaggi di applicazione insieme, né divide un singolo messaggio di applicazione in più parti. 6.2 Checksum Un pacchetto IP in arrivo con un campo «tipo» dell'intestazione IP indicante «UDP», viene passato in alto verso il modulo UDP da IP. Quando il modulo UDP riceve il datagramma UDP da IP, questo esamina il checksum UDP. Se il checksum è zero, significa che non è stato calcolato dal mittente e può essere ignorato. Così, il modulo UDP del computer mittente può generare o meno il checksum. Se Ethernet è la sola rete fra due moduli UDP comunicanti, allora non avete bisogno di checksum. Comunque, è raccomandato che la generazione di checksum sia sempre possibile perché ad un certo punto, in futuro, un cambiamento della tabella di instradamento potrebbe permettere spedizioni di dati attraverso mezzi meno affidabili. Se il checksum è valido (o zero), viene esaminato il numero di porta di destinazione e se esiste un'applicazione su quella porta, viene messo in coda di lettura un messaggio per l'applicazione. Altrimenti il datagramma UDP viene scartato. Se i datagrammi UDP in entrata arrivano più velocemente della capacità di lettura dell'applicazione e se la coda si riempie fino ad un valore massimo, i datagrammi UDP sono scartati da UDP. UDP continuerà a scartare i datagrammi UDP finché non ci sarà spazio nella coda. 7. TCP - Protocollo di Controllo della Trasmissione TCP fornisce un servizio diverso da quello di UDP. TCP offre un flusso di byte orientati alla connessione, invece di un servizio di spedizione di datagrammi senza connessione. TCP garantisce la consegna, mentre UDP no. TCP è usato dalle applicazioni di rete che richiedono una consegna garantita e non possono preoccuparsi di gestire un time-out e di ritrasmettere. Le applicazioni di rete tipiche che usano TCP sono il Protocollo di Trasferimento File (FTP) e TELNET. Altre applicazioni di rete TCP conosciute comprendono il sistema X-Window, rcp (copia remota), e i comandi della serie r-comando. Le capacità di TCP non sono senza costo: richiede più larghezza di banda di CPU e di rete. La realizzazione interna del modulo TCP è molto più complicata di quelle di un modulo UDP. Similmente a UDP, le applicazioni di rete si collegano alle porte TCP. Numeri di porta ben definiti sono dedicati a specifiche applicazioni. Per esempio, il servente TELNET usa la porta numero 23. Il cliente TELNET può trovare il servente semplicemente collegandosi alla porta 23 di TCP sul computer specifico. Quando l'applicazione inizia usando TCP, il modulo TCP nel computer del cliente e il modulo TCP nel computer del servente iniziano a comunicare fra di loro. I moduli TCP di questi due punti-terminali contengono l'informazione dello stato che definisce un circuito virtuale. Questo circuito virtuale consuma risorse in entrambi i punti-terminali. Il circuito virtuale è full duplex; i dati possono viaggiare in entrambe le direzioni contemporaneamente. L'applicazione scrive i dati sulla porta TCP, i dati attraversano la rete e sono letti dall'applicazione dall'altra parte. TCP impacchetta il flusso di byte a volontà; non mantiene i limiti fra due operazioni di scrittura. Per esempio, se un'applicazione fa 5 scritture sulla porta TCP, l'applicazione dall'altra parte potrebbe dovere fare 10 letture per leggere tutti i dati. Oppure potrebbe prendere tutti i dati con una singola lettura. Non c'è nessuna relazione fra il numero e la dimensione delle operazioni di scrittura da un lato e il numero e la dimensione delle operazioni di lettura dall'altro lato. TCP è un protocollo a finestra scorrevole con time-out e ritrasmissione. I dati in uscita devono essere riscontrati dal TCP del terminale remoto. I riscontri possono essere messi in piggyback sui dati. Entrambi i terminali riceventi possono controllare il flusso del terminale remoto, prevenendo così un «buffer overrun». Come in tutti i protocolli a finestra scorrevole, il protocollo ha una dimensione della finestra. La dimensione determina la quantità di dati che possono essere trasmessi prima che sia richiesto un riscontro. Per TCP, questa quantità non è un numero di segmenti TCP ma un numero di byte. 8. Applicazioni di rete Perché esistono sia TCP che UDP, invece di avere solo uno dei due? Perché forniscono servizi diversi. La maggior parte delle applicazioni sono implementate per usare solo uno dei due protocolli. Voi, i programmatori, scegliete il protocollo che meglio va incontro ai vostri bisogni. Se avete bisogno di un servizio di consegna affidabile di flussi di dati, TCP dovrebbe essere il migliore. Se avete bisogno di un servizio a datagrammi, UDP dovrebbe essere il migliore. Se avete bisogno di efficienza su un lungo circuito, TCP dovrebbe essere il migliore. Se avete bisogno di efficienza lungo reti veloci con bassa latenza, allora UDP. Se le vostre necessità non rientrano in queste categorie, allora la scelta migliore non è chiara. Comunque, le applicazioni possono essere modificate per sorvolare su scelte errate. Per esempio se scegliete UDP e avete bisogno di affidabilità, allora l'applicazione deve fornire affidabilità. Se scegliete TCP e avete bisogno di un servizio orientato alla registrazione, allora l'applicazione deve inserire dei marcatori nel flusso di byte per delimitare le registrazioni. Quali applicazioni di rete sono disponibili? Ce ne sono troppe per elencarle. Il numero cresce continuamente. Alcune applicazioni esistono dall'inizio della tecnologia internet: TELNET e FTP. Altre sono relativamente nuove: X-Windows e SNMP. A seguire una breve descrizione delle applicazioni menzionate in questo tutorial. 8.1 TELNET TELNET fornisce la capacità di login remoto a TCP. Le operazioni e le apparenze sono simili alla conversazione da tastiera tramite un collegamento telefonico. Sulla linea di comando l'utente scrive «telnet delta» e riceve un prompt di login da computer chiamato «delta». TELNET lavora bene; è una vecchia applicazione con una interoperabilità ampiamente diffusa. Le implementazioni di TELNET di solito lavorano fra diversi sistemi operativi. Per esempio, un cliente TELNET può essere su una VAX/VMS e il servente su un UNIX System V. 8.2 FTP Il Protocollo di Trasferimento File (FTP), vecchio quando TELNET, usa anch'esso TCP e ha una interoperabilità ampiamente diffusa. Le operazioni e l'apparenza sono come quelle che si hanno quando ci si collega con TELNET al computer remoto. Ma, invece di scrivere i soliti comandi, avete a che fare con una breve lista di comandi per visualizzare il contenuto di una directory e simili. Il comando FTP permette di copiare file fra computer. 8.3 RSH «Shell remota» (rsh o remsh) è uno dei comandi di un'intera famiglia di comandi remoti in stile UNIX. Il comando UNIX di copia, cp, diventa rcp. Il comando UNIX chi è collegato, who, diventa rwho. La lista non finisce qui e si riferisce a una collezione di comandi della serie «r» o «r*» (r asterisco). I comandi r* lavorano principalmente fra sistemi UNIX e sono pensati per interazioni fra host fidati. Viene data poca importanza alla sicurezza, ma forniscono un ambiente conveniente per gli utenti. Per eseguire il comando «cc file.c» su un computer remoto chiamato delta, bisogna scrivere «rsh delta cc file.c». Per copiare il file «file.c» su delta, si scrive «rcp file.c delta:». Per fare il login su delta, si scrive «rlogin delta», e se voi amministrate i computer in qualche modo, non vi sarà richiesto di inserire una password. 8.4 NFS Il File System di Rete, sviluppato inizialmente dalla Sun Microsystem Inc, usa UDP ed è eccellente per montare file system UNIX su più computer. Una stazione di lavoro senza dischi può accedere all'hard disk del servente come se fosse locale alla stazione di lavoro stessa. Una singola copia di un disco di una base di dati nel mainframe «alpha» può essere usata dal mainframe «beta» se il file system della base di dati è montata come NFS su «beta». NFS aggiunge un carico significativo su una rete ed ha scarsa utilità su collegamenti lenti, ma i benefici sono molti. Il cliente NFS è implementato nel kernel, permettendo a tutte le applicazioni e ai comandi di usare i dischi montati NFS come se fossero dischi locali. 8.5 SNMP Il «Protocollo Semplice di Gestione di una rete» usa UDP ed è stato concepito per l'uso in stazioni centrali di gestione di rete. È un fatto conosciuto che, se ha a disposizione abbastanza dati, un amministratore di rete può riconoscere e diagnosticare i problemi della rete. La stazione centrale usa SNMP per collezionare questi dati dagli altri computer nella rete. SNMP definisce il formato dei dati; il compito di interpretare i dati è lasciato alla stazione centrale o all'amministratore di rete. 8.6 X-Window Il sistema X Window usa il protocollo X Window su TCP per disegnare le finestre sul monitor di una stazione di lavoro. X Window è molto più di un'utilità per disegnare finestre; la sua intera filosofia è la creazione di interfacce utente. 9. Altre informazioni Molte informazioni sulla tecnologia internet non sono incluse in questo tutorial. Questa sezione elenca una serie di informazioni, considerate di livello superiore di dettaglio per i lettori che vorrebbero saperne di più. - comandi di amministrazione: arp, route, e netstat - ARP: voci permanenti, voci pubbliche, voci di time-out, spoofing (truffe) - Tabella di instr. IP: voci host, gateway predefinito, sottoreti - IP: contatore time-to-live (tempo di vita), frammentazione, ICMP - RIP, cicli di instradamento - Domain Name System (Sistema di Nomi di Dominio) 10. Riferimenti [1] Comer, D., «Internetworking with TCP/IP Principles, Protocols, and Architecture», Prentice Hall, Englewood Cliffs, New Jersey, U.S.A., 1988. [2] Feinler, E., et al, DDN Protocol Handbook, Volume 2 and 3, DDN Network Information Center, SRI International, 333 Ravenswood Avenue, Room EJ291, Menlow Park, California, U.S.A., 1985. [3] Spider Systems, Ltd., «Packets and Protocols», Spider Systems Ltd., Stanwell Street, Edinburgh, U.K. EH6 5NG, 1990. 11. Relazioni con gli altri RFC Questo RFC è un tutorial è non AGGIORNA né rende OBSOLETO nessun altro RFC. 12. Considerazioni sulla Sicurezza Ci sono delle considerazioni sulla sicurezza all'interno dei protocolli TCP/IP. Per alcune persone queste considerazioni rappresentano un problema serio, per altri no; dipende dalle richieste dell'utente. Questo tutorial non tratta di questo argomento, ma se volete saperne di più, dovete iniziare dal tema dell'imbroglio di ARP (ARP-spoofing), quindi usate la sezione «Security Considerations» dell'RFC 1122 per trovare maggiori informazioni. 13. Indirizzi degli autori Theodore John Socolofsky Spider Systems Limited Spider Park Stanwell Street Edinburgh EH6 5NG United Kingdom Phone: from UK 031-554-9424 from USA 011-44-31-554-9424 Fax: from UK 031-554-0649 from USA 011-44-31-554-0649 EMail: TEDS@SPIDER.CO.UK Claudia Jeanne Kale 12 Gosford Place Edinburgh EH6 4BJ United Kingdom Phone: from UK 031-554-7432 from USA 011-44-31-554-7432 EMail: CLAUDIAK@SPIDER.CO.UK 13.1 Traduzione in italiano a cura di: Giordano Neri 4/D M.te Amoli Pitelli (SP) 19137 Italia EMail: NERI@CLI.DI.UNIPI.IT