MokaByte Numero 35  - Novembre 1999   

Introduzione alle reti,
un po' di teoria

di
Lorenzo Bettini

Vediamo alcuni concetti di base sulla rete (ovviamente Internet), che possono essere utili anche per l'uso di tutti i giorni. 

 


Iniziamo a vedere alcuni concetti di base che riguardano la rete più utilizzata al mondo: Internet. Questi concetti possono risultare utili anche agli utenti che vedono Internet come un semplice strumento, ma non hanno mai avuto il tempo (e/o la voglia) di approfondire certi argomenti. L'articolo vuole essere un'introduzione informale e decisamente poco tecnica (per quanto sia possibile), per una serie di articoli successivi più specialisti ed approfonditi.


Introduzione

Internet, ormai, al giorno d'oggi, è una parola sulla bocca di tutti, anche dei non addetti al lavoro, ed anche di quelli che hanno avuto sempre un certo astio, disprezzo, paura verso l'Informatica ed in particolare verso i computer. Del resto la possibilità di essere "on-line", di essere parte di questa "comunità globale" (dove globale vuole proprio intendere tutto il globo terrestre) fa gola a tutti, e quindi molti hanno deciso di scendere a compromessi e di cercare di imparare ad utilizzare (meglio) quelle macchine, che fino a qualche mese prima provocavano loro mal di testa (specialmente a coloro che erano costretti ad utilizzare i computer per lavoro), per ottenere maggiori risultati sul lavoro (basti pensare alle possibilità offerte dai motori di ricerca o al servizio di posta), ma anche per ricercare informazioni sui loro hobbie preferiti o semplicemente per conoscere nuove persone di tutto il mondo o mantenere corrispondenze e contatti con amici lontani.

Non sono lontani gli anni in cui le reti erano qualcosa che solo grandi ditte e grossi istituti (specialmente di ricerca) si potevano permettere, soprattutto anche per i costi che erano insostenibili per un utente normale. Del resto anche i computer sono diventati alla portata di tutti. I costi dei computer ultimamente sono scesi in modo impressionante, e, tranne qualche sporadico episodio, continueranno a decrescere; i dispositivi per l'accesso alla rete (sia continuo che "da casa", tramite modem) seguono fortunatamente questa tendenza.

Oggi la rete è a disposizione di tutti coloro che lavorano in una ditta o azienda di dimensioni medie, e che comunque ci tenga a essere collegata al resto del mondo con qualcosa di più immediato delle semplici lettere cartacee, e che voglia affidarsi a dei media pubblicitari che siano in grado di raggiungere più persone possibili. Uno studente universitario non dovrebbe avere problemi ad avere a disposizione l'accesso ad Internet, e quindi una ricerca di una qualsiasi informazione per effettuare lavori scolastici non rappresenta più uno scoglio difficilmente superabile. Del resto anche chi può permettersi di avere a casa un computer, se vuole, con una spesa modesta può anche concederci l'accesso ad Internet tramite modem (al giorno d'oggi molto economici) ed un abbonamento (ed adesso sono molti quelli disponibile in modo gratuito).

Inoltre con le nuove tecnologie l'accesso ad Internet non è più limitato ad una postazione statica, ma si sta dirigendo anche a dispositivi portatili come palmari e telefonini cellulari; nonostante in questo campo la tecnologia sia molto giovane, adesso è possibile essere collegati ad Internet anche durante i viaggi, le permanenze fuori casa/ufficio.

Lo scopo di questo e di altri articoli che verranno in futuro è quello di fornire una panoramica generale sui concetti che stanno alla base della connessione in rete e soprattutto su Internet. I concetti illustrati saranno volutamente informali nella speranza che siano accessibili anche ad utenti meno esperti. Del resto la conoscenza di qualche "retroscena" di Internet potrà servire, oltre a soddisfare qualche curiosità, anche a facilitare l'esecuzione di certe operazioni, in quanto queste non verranno più fatte in modo meccanico, e a fornire qualche aiuto per risolvere certi problemi che a volte si incontrano durante le nostre "navigate".

Nella parte pratica, vedrete, insieme ad Andrea Trentini, alcuni comandi e programmi per Internet. E' bene specificare che, nonostante spesso questi comandi siano tipici di un ambiente Unix, poiché Internet è nata in questo ambiente, risulteranno utili, perché presenti (magari in altre forme) anche su altri sistemi.

Internet ed i suoi servizi

Sono molti i servizi che Internet mette a disposizione, ma i più famosi ed utilizzati sono il WEB che mette a disposizione un'infinità di informazioni di tipo testuale e multimediale, che in pratica ricoprono in modo soddisfacente ogni argomento, e la posta elettronica, che nella sua semplicità si rivela qualcosa di fondamentale per che si è abituato ad utilizzarla e che in pratica ci collega in tempo brevissimo con tutto il mondo (alzi la mano che fra di voi, quando si trova, anche solo per un giorno, lontano da casa o dalla propria postazione Internet, non prova una certa smania se non ha la possibilità di "leggersi la posta"? ;-)

Il lavoro, in qualsiasi settore, ha senz'altro tratto vantaggio, sia per la reperibilità di informazioni in formati anche multimediali, sia per la velocità con cui è possibile "dialogare" coi propri collaboratori senza la necessità (molto costosa) di telefonate interurbane. Vi sono altri servizi, anche questi molto utilizzati, come ad esempio la chat, con cui si può dialogare, praticamente in tempo reale, con persone da tutto il mondo, che adesso ha anche una versione "visuale": la video conferenza. Altri servizi sono sempre basati sulla trasmissione di dati in modo più o meno sicuro, più o meno veloce, e nei formati più vari. Vediamo quindi qualche nozione comune a tutti i servizi elencati e non.

Internet ed i suoi concetti di base

Internet è una rete "globale", e comprende computer eterogenei sia per quel che riguarda il tipo di processore e di sistema operativo, quindi deve utilizzare convenzioni e mezzi in modo da metterli in condizione di comunicare e di identificarsi in modo univoco l'un l'altro.

Un computer è identificabile in Internet in modo univoco tramite il suo indirizzo IP, cioè un indirizzo numerico composto da 4 parti, come 151.219.34.5; tale indirizzo identifica in modo univoco il computer su Internet (ovviamente tali indirizzi sono assegnati da organizzazioni mondiali, ma questo esula dallo scopo dell'articolo). Ovviamente ricordarsi indirizzi di questo tipo, nonostante seguano una certa logica, non è senz'altro semplice. Per questo motivo, si può accedere ad un computer anche specificandone l'indirizzo a parole: senz'altro qualcosa del tipo www.altavista.com o www.pippoexpress.it è più semplice da ricordare anche perché spesso porta abbastanza informazione sul sito che si va a visitare (col primo si accede al famoso motore di ricerca Altavista, mentre col secondo si accederà al sito di una poco probabile ditta PippoExpress); inoltre anche le varie parti dell'indirizzo (separate da punti) hanno un significato standard: ad esempio l'ultima parte a destra nella maggior parte dei casi indica la nazione del sito o per lo meno il tipo di sito che si va a visitare (educational, militare, ecc...).

Pensare di avere memorizzato su ogni computer le tabelle che collegano i nomi ai relativi indirizzi numerici, visto il numero enorme di computer presenti su Internet, e vista anche la continua crescita di tali computer, è praticamente improbabile. Tali tabelle sono allora tenute memorizzate in modo parziale solo su alcuni computer, che possono essere utilizzati per tradurre appunto un indirizzo a parole in quello numerico; se non è possibile tradurre l'indirizzo su quel computer, automaticamente la richiesta viene inoltrata ad un altra computer che svolge lo stesso servizio. Tale servizio viene chiamato DNS (Domain Name Service) ed è organizzato fra questi computer in modo gerarchico. Ovviamente di questi computer si deve conoscere direttamente l'indirizzo numerico (da qualche parte si deve iniziare :-). Normalmente, poiché su Internet si trovano tante sottoreti, ogni sottorete ha un proprio computer che svolge tale servizio, ed a volte anche più di uno (per questo si sente spesso parlare di DNS primario e DNS secondario), nel caso uno non sia in grado di rispondere per altri problemi. Ad esempio un provider ha un proprio DNS.

Servizi

Implicitamente si è già parlato di servizi, in quanto i vari computer di Internet in realtà mettono a disposizione servizi. Quindi in realtà collegarsi ad un computer su Internet, in realtà corrisponde col richiedere un servizio a quel computer. Abbiamo già parlato di DNS, che è appunto il servizio che consiste nella traduzione di un indirizzo a parole in un indirizzo Internet, che è disponibile su alcuni computer in rete.

Anche il web è un servizio: vari computer, detti server web, mettono a disposizione un insieme di pagine (HTML), immagini ed altre informazioni multimediali, leggibili tramite programmi chiamati browser html. Allo stesso modo anche la posta è un servizio messo a disposizione da certi computer (server di posta) che agiscono come delle sorte di "caselle postali" (in realtà prendono tale nome anche nel gergo Internet), che raccolgono le mail destinate agli utenti registrati presso di loro e che sono a loro volta in grado di spedire mail ad altri utenti (è bene precisare che, nonostante spesso siano gestiti dallo stesso computer e dallo stesso programma, il servizio di ricezione e quello di spedizione sono servizi sostanzialmente differenti, che verranno approfonditi eventualmente in articoli successivi).

Oltre alla parola servizi si è anche usato la parola server, che chi ha utilizzato Internet, pur non essendo un informatico, avrà senz'altro sentito pronunciare: server. Un server è appunto un computer che mette a disposizione un certo servizio; in realtà il servizio è messo a disposizione da un processo (programma in esecuzione) che risiede su un certo computer quindi è giusto vedere anche tale processo come server, anche se in questo caso si preferisce un termine più colorito (molto in voga in ambiente Unix): daemon! Inoltre lo stesso termine server denota in senso molto più generale un computer pensato per fare da server (sia per l'architettura ed i dispositivi, che per il sistema operativo). In effetti un solo computer è in grado di mettere a disposizione più servizi, ed anche se si specificano indirizzi (a parole) differenti, in realtà, a nostra insaputa, possiamo accedere allo stesso computer. Questo è possibile grazie a concetti di livello più basso come porte, socket, ed altri che però verranno trattati solo in altri articoli ed accennati nell'articolo di Andrea.

Accanto alla parola server, si sente inoltre molto spesso pronunciare anche la parola client; se il server è chi mette a disposizione il servizio, il client è quello che lo richiede e che lo utilizza. Verrebbe da pensare che tutti noi utilizzatori di Internet siamo client, ma in realtà è considerato client il programma che colloquia col server, e quindi mantenendo i nostri esempi, non è un client web il navigatore di Internet, ma il browser che utiliziamo per navigare: è infatti il browser che accede al server che si trova all'indirizzo da noi specificato, recupera la pagina da noi specificata e ce la visualizza in modo più o meno formattato. Allo stesso modo un client di posta elettronica è un programma che ci permette di leggere le nostre e-mail e di spedirne altre (come il famosissimo Eudora ed il Netscape Messanger).

Il modello client-server è in realtà qualcosa di molto più astratto ed in particolare è un paradigma di programmazione che si applica anche a programmi che non devono necessariamente essere eseguiti in rete in modo distribuito, ma anche questo approfondimento è rimandato ad un articolo successivo.

Protocolli

Abbiamo detto che le applicazioni Internet, che si basano sul paradigma client-server, si basano su continue comunicazioni. Del resto tali comunicazioni avvengono, anche in questo caso, fra programmi scritti per computer e sistemi operativi differenti; inoltre un server web non è pensato per dialogare solo con un numero limitato di browser, e viceversa, col nostro browser possiamo accedere praticamente a tutti i server web, senza conoscerne le caratteristiche approfondite. Allo stesso modo la posta può essere letta col programma che preferiamo: il nostro provider non ci obbliga a leggerla con un certo programma.

Se i partecipanti della comunicazione sono inerentemente eterogenei, o comunque non sono a conoscenza delle caratteristiche l'uno dell'altro, affinché il dialogo possa avvenire, ci si deve basare su alcune convenzioni, che vanno appunto sotto il nome di protocollo. In pratica per ogni servizio esiste un protocollo (come l'HTTP per il web), e tutti si basano su quelli di più basso livello TCP/IP, che vi introdurrà Andrea. Tramite questi protocolli il client inizia la comunicazione spedendo una certa stringa, alla quale si aspetta una risposta in un certo formato, a sua volta il server si aspetterà una richiesta in un certo formato a cui risponderà in un altro formato; tutti questi formati sono stabiliti dal protocollo del servizio. In un certo senso un client comunica col server al posto nostro, ma conoscendo il protocollo potremmo accedere alle stesse informazioni effettuando il dialogo manualmente (ma in un certo senso questo corrisponde un po' alla programmazione direttamente in un linguaggio assembler).

In realtà esiste anche un protocollo per specificare l'indirizzo Internet di una risorsa, che include in realtà anche il tipo di servizio: l'URL (Uniform Resource Locator), che nella sua forma completa si presenta nel seguente formato:

<protocollo>://<nome server>:<numero porta>/<percorso della risorsa>

Forse messo così non dice molto a molti, ma esempi del tipo:

http://www.pippo.it/documenti/primo.html

o

ftp://ftp.freestuff.it:1234/pub/games

senz'altro sono molto più familiari. Si può notare quindi che si specifica prima il protocollo (l'ftp non è ancora stato trattato, ma senz'altro è noto a molti, per recuperare file sulla rete), l'indirizzo del server (il numero di porta sarà più chiaro dopo la lettura dell'articolo di Andrea), ed infine il percorso completo per arrivare alla risorsa a cui siamo interessati.

Conclusioni

Spero che questa introduzione molto informale abbia dato un'idea di quali siano i concetti che stanno alla base del funzionamento di Internet e dei programmi che utiliziamo per accedere ai suoi servizi.

Andrea vi illustrerà adesso alcuni protocolli e programmi di Internet. Buona lettura e

a presto :-)

Lorenzo