...

UX_Il livello Application e i suoi protocolli

by user

on
Category: Documents
21

views

Report

Comments

Transcript

UX_Il livello Application e i suoi protocolli
Il livello Application e i suoi protocolli
N.11
Il livello di rete e quello di trasporto si occupano di trasferire i bits da un host all'altro, ma chi decide
cosa, quando e dove trasferire certe informazioni, nonché il loro significato, è il livello Applicazione.
Nonostante il sistema dei protocolli Internet sia in grado di stabilire un servizio di comunicazione, essi
non possono iniziare il contatto, o accettarlo, con un computer remoto. Alla comunicazione devono
comunque partecipare due software applicativi che interagiscono secondo lo schema client/server.
Ciascun programma applicativo, inoltre, è collegato con uno dei protocolli del livello trasporto per
inviare o ricevere dati, a cui passa i dati nella forma richiesta. In altre parole nel livello Applicazione
viene svolto unicamente il lavoro più "vicino" all'utente, ovvero si gestisce l'interattività tra
l'utente e la macchina.
Applicazione
Presentazione
Applicazione
TELNET SNMP FTP SMTP HTTP …
Sessione
Trasporto
Trasporto
Rete
Rete
Collegamento
Collegamento
+
Fisico
Fisico
Nel livello Applicazione sono presenti diverse tipologie di oggetti software:
•
•
protocolli di supporto alle applicazioni, come
o DNS (Domain Name System RFC 1034 e 1035), per creare la corrispondenza tra
indirizzi IP e nomi facili da ricordare
o DHCP (Dynamic Host Configuration Protocol), per assegnare dinamicamente gli
indirizzi IP;
protocolli standardizzati di supporto a specifiche applicazioni, come
o SNMP (Simple Network Management Protocol), per la gestione della rete
o FTP (File Transfer Protocol RFC 959), per il trasferimento di files
o SMTP (Simple Mail Transfer Protocol) e POP3 (Post Office Protocol, versione 3), per
l'invio e la ricezione dei messaggi di posta elettronica
o HTTP (Hypertext Transfer Protocol), per trasferire ipertesti multimediali dalla rete, alla
base del World Wide Web (WWW)
o TELNET (RFC 0854), per il controllo di computer a distanza
o IRC (Internet Relay Chat), per il trasferimento in tempo reale di messaggi digitati sulla
tastiera (le classiche "chat")
Nel seguito approfondiremo il funzionamento di alcuni di questi protocolli, con riferimento alla
specifica tipologia di servizio che offrono.
1
Il protocollo DNS
In Internet ogni computer viene individuato solamente attraverso il suo indirizzo IP, ma noi utilizziamo
indirizzi simbolici. Come si armonizzano queste due cose? La risposta è data da un ingegnoso
meccanismo che si chiama DNS.
Il DNS (Domain Name System) è il sistema utilizzato dai computer che gestiscono Internet per
tradurre gli indirizzi letterali (es. www.itistulliobuzzi.it) nel corrispondente indirizzo IP (es.
131.192.8.30) e viceversa. Tale sistema si basa sull'esistenza di computer di servizio, detti DNS server
o name server, che vengono interpellati ogni volta che si rende necessaria una traduzione; per questo
motivo nella configurazione dei programmi di comunicazione di base (Accesso Remoto) viene
richiesto di indicare un name server, senza il quale non è possibile utilizzare gli indirizzi letterali.
Ad esempio in Windows 7
Ecco come fare:
- cliccate su START;
- cliccate su Pannello di controllo;
- Cliccate su Centro Connessioni di Rete e Condivisione;
- Nella finestra centrale riga Visualizza reti attive individuate Tipo accesso: Internet;
- Sotto Tipo accesso trovate Connessioni:
- A fianco trovate un collegamento (p.e. Connessione rete wireless oppure Connessione alla rete locale (LAN);
- Cliccando sul collegamento si aprirà una finestra Stato di connessione delle rete Wireless;
- Sotto la riga Attività trovate il bottone Proprietà, cliccatelo;
- Si aprirà una ulteriore finestra Proprietà connessioni wireless;
- nell'elenco a discesa selezionate Protocollo Internet Versione 4 (TCP/IPv4);
- Cliccate su Proprietà;
- Nella nuova finestra selezionate cliccate sulla linguetta Generale;
- Mettete il pallino in fianco a Utilizza i seguenti indirizzi Server DNS;
- Inserite gli indirizzi DNS di uno dei servizi consigliati nell'articolo;
- Se volete inserire più indirizzi DNS (più di due) potete cliccare su Avanzate e linguetta DNS;
- In questa sezione potete aggiungere vari servizi DNS.
Con
-
Windows XP
Cliccate su Start > Pannello di controllo (visualizzazione per categorie) >
Cliccate su 'Rete e connessioni Internet' e poi su Connessioni di rete.
Cliccate il pulsante destro del mouse sulla connessione di rete che si desidera configurare, quindi scegliere Proprietà.
Nella scheda Generale (per una connessione LAN) o nella scheda Rete (per tutte le altre connessioni) cliccate su Protocollo
Internet (TCP/IP), quindi scegliere Proprietà.
Solitamente troverete impostato l'opzione 'Ottieni indirizzo server DNS automaticamente';
Se desiderate invece configurare manualmente gli indirizzi per il server DNS, fare clic su Utilizza i seguenti indirizzi server DNS e
in Server DNS preferito e Server DNS alternativo digitare gli indirizzi IP per il server DNS preferito e per il server DNS alternativo.
I DNS impostati nelle connessioni di rete di solito sono due Primario e Secondario proprio perchè nel
caso non funzionasse il primo si può tentare con il secondo.
Il sistema di nominazione DNS è organizzato in domini. I domini gerarchicamente più alti sono
chiamati domini di primo livello (TLD o Top Level Domain). Lo schema logico dei nomi si compone
dunque di varie parti, o sottodomini, con l'indicazione fino al dominio di primo livello cui
appartengono:
" www.dominio_n_livello.dominio_n-1_livello... dominio_2_livello.dominio_1_livello "
in cui le sottostringhe domini identificano sottodomini dei domini identificati dalle stringhe seguenti,
l'ultima sottostringa identifica il TLD (primo livello).
I domini di primo livello sono molteplici. Alcuni di essi, di tipo organizzativo, raggruppano gli
enti/istituzioni in base al loro tipo di attività (inizialmente nati solo per le istituzioni statunitensi), altri,
di tipo geografico, riguardano tutti gli stati esistenti al mondo.
2
Alcuni domini di tipo organizzativo
com
Enti commerciali
Alcuni domini di tipo geografico
it
Italia
gov
Istituzioni governative
ca
Canada
edu
Istituzioni accademiche
de
Germania
net
Organizzazioni di servizio in rete
fr
Francia
org
Organizzazioni non-profit
uk
Regno Unito
mil
Istituzioni militari
es
Spagna
nom
Pagine personali
ru
Russia
Ogni dominio di livello alto è responsabile della creazione dei suoi sottodomini, che devono essere
registrati presso una apposita autorità. In Italia l'ente responsabile è la Registration Authority Italiana
(http://www.nic.it/RA/) che si occupa della gestione del name server primario del country code italiano
"it". Tale servizio è attivo su un server specificatamente dedicato a questo compito (dns.nic.it).
La definizione di altri sottodomini a livello gerarchico inferiore è lasciata al gestore del dominio locale.
Ciascun dominio è responsabile di fornire il servizio DNS al suo interno, cioè deve essere in grado di
rispondere ad interrogazioni riguardanti sottodomini al suo interno.
Il DNS sfrutta la struttura gerarchica dei nomi degli indirizzi simbolici che evidenziamo con il seguente
esempio:
I nodi del grafico rappresentano i DNS. Il nodo più in alto si chiama Root DNS. Nella realtà ogni
singolo nodo è costituito da due o più computer localizzati in strutture diverse e in grado di sostituirsi
vicendevolmente. Questa ridondanza serve a sopperire ad eventuali guasti di un DNS. Concettualmente
possiamo pensare ad ogni nodo come se fosse costituito da un solo computer.
Sotto al nodo root troviamo i DNS dei domini primari dei vari paesi o di grandi organizzazioni: fr, uk,
it , com, edu, gov, org, net e via dicendo.
Sotto al nodo it possiamo trovare alcuni esempi di domini di organizzazioni italiane: cnr è il Consiglio
Nazionale delle Ricerche, unifi è l'Università di Firenze, infn è l'Istituto Nazionale di Fisica Nucleare.
All'interno dell'Università di Firenze possiamo avere per esempio i domini ing di Ingegneria, dfc del
Dipartimento di Fisiopatologia Clinica. All'interno del Dipartimento di Fisiopatologia Clinica abbiamo
i vari singoli computer.
Ogni DNS in sostanza gestisce un database che contiene un elenco di corrispondenze
domain name <-> indirizzo IP
per un sottoinsieme dei computer connessi ad Internet.
Cerchiamo di capire ora cosa succede quando, per esempio, si digita un indirizzo web in un
browser di Internet.
3
Supponiamo che, da un computer localizzato presso l'università di Stanford, uno studente, navigando
con il suo browser, digiti l'indirizzo www.unifi.it.
1. Il browser che si trova nel computer in una rete locale dell'Università di Stanford chiede al DNS
della rete di Stanford se sa qual'é l'IP che corrisponde al nome: www.unifi.it. Il DNS nel suo data
base ha certamente le corrispondenze per tutti i computer della rete di Stanford ma quasi certamente
non questa.
2. Il DNS di Stanford quindi passa il nome www.unifi.it al DNS root.
3. Il DNS root non potrà sapere l'IP di tutti i computer del mondo e quindi non saprà nemmeno quello
che ci interessa ma è in grado di rendere al DNS di Stanford l'indirizzo IP del DNS che concerne il
dominio it.
4. Forte di questa informazione, il DNS di Stanford propone lo stesso quesito al DNS it.
5. Il DNS it si comporta nello stesso modo del precedente: rende l'indirizzo IP del DNS del dominio
unifi.it.
6. Il DNS di Stanford rinvia il nome www.unifi.it al DNS di unifi.it che troverà nel proprio database
la corrispondenza con l'indirizzo 150.217.1.40 e potrà quindi inviare indietro l'indirizzo IP
desiderato.
7. Solo a questo punto il DNS di Stanford può concludere il suo compito inviando l'indirizzo
150.217.1.40 al browser.
Solo dopo che ha avuto luogo questa serie di passaggi, il browser può effettivamente contattare il
computer desiderato mediante il suo l'indirizzo IP.
Il DNS di Stanford tuttavia non si sbarazza immediatamente dell'indirizzo trovato bensì lo mantiene
nella sua cache per un certo tempo nell'eventualità che lo stesso indirizzo venga richiesto un'altra volta.
Questo serve ad ottimizzare il tempo perché, per veloci che siano i collegamenti, il lavoro di ricerca
mediante DNS una certa latenza temporale la comporta e poi è abbastanza probabile che se un indirizzo
è stato cercato una volta venga ricercato un certo numero di volte successive. Quindi, prima di
effettuare le operazioni di cui al punto 1 precedente, può anche succedere che il DNS di Stanford sia in
grado di rendere subito l'indirizzo IP di www.unifi.it. Questo accade se si tratta di richieste abbastanza
vicine ad una prima richiesta.
E' abbastanza sorprendente che questo complesso meccanismo che coinvolge macchine che possono
distare varie migliaia di chilometri, abbia luogo in frazioni di secondo.
Altro esempio:
(I Root Servers sarebbero 13 e sono sparsi nel mondo. Molti sono negli Stati Uniti e vengono gestiti da
grandi organizzazioni. Questi Servers ricoprono un ruolo di fondamentale importanza, per fare un
esempio drastico, se questi server venissero spenti, nessuno potrebbe più navigare in Internet con una
grave ricaduta sull'economia mondiale).
4
Nota: i root server non sono 13 ma centinaia (vedi immagine). Ci sono 12 organizzazioni responsabili
della loro manutenzione. I nomi dei Root Server mondiali sono contrassegnati da lettere dell’alfabeto
dalla A alla M ed i loro nomi host sono rispettivamente a.root-servers.net … m.root-server.net da qui
l’idea di 13 macchine. Ad ogni host è associato un indirizzi IP fisico ciò ovviamente non vuol dire che
dietro ad un IP fisico ci sia necessariamente una sola macchina, per esempio il server I “nasconde”
dietro di se macchine dislocate in 25 paesi.
Il protocollo DHCP
Dopo aver collegato tutti i computer di una rete, è necessario impostare, per ogni interfaccia di rete, un
indirizzo IP e la maschera di rete, facendo attenzione ad assegnare indirizzi IP diversi ai nodi della rete.
(configurazione statica). Il protocollo DHCP (Dynamic Host Configuration Protocol) permette la
configurazione dinamica di un host che si collega ad una rete IP, ovvero permette ai dispositivi di rete
di ricevere la configurazione IP necessaria per poter operare su una rete.
Costruito sul modello client/server, esso prevede la presenza di un server DHCP.
L'allocazione dinamica risulta particolarmente utile in quanto assegna un indirizzo ad un client solo
temporaneamente, in relazione alla sua connessione alla rete e permette di dividere un numero
limitato di indirizzi fra un gruppo di client che non hanno bisogno di un indirizzo IP permanente. In tal
modo l'indirizzo assegnato può essere diverso ogni volta che l'host si connette alla rete.
Richiesta e attribuzione dell'indirizzo
1) Il calcolatore vuole ottenere un indirizzo tramite DHCP, attiva il processo DHCP client e utilizza il
protocollo UDP. In questo momento, il calcolatore non ha un indirizzo IP valido.
2) Invia quindi un pacchetto in broadcast, con indirizzo IP sorgente messo convenzionalmente a
0.0.0.0, e destinazione 255.255.255.255. Il pacchetto viene ricevuto da tutti i server DHCP presenti,
che possono rispondere (o meno) con un pacchetto in cui propongono un indirizzo IP ed altri
parametri al client.
3) Il client aspetta un certo tempo di ricevere una o più offerte, dopodiché ne seleziona una, ed invia
un pacchetto in broadcast, indicando all'interno del pacchetto, quale server ha selezionato. Anche
questo pacchetto raggiunge tutti i server dhcp presenti sulla rete.
4) Il server che è stato selezionato conferma l'assegnazione dell'indirizzo con un pacchetto
5) gli altri server vengono informati che la loro offerta non è stata scelta dal client.
5
La posta elettronica
Costituisce uno dei servizi più consolidati (è in uso da circa 20 anni) ed utilizzati di Internet. Con
questo servizio il servizio postale per via elettronica è completamente organizzato e dispone le seguenti
possibilità:
•
•
•
scrivere e spedire un messaggio, anche a più destinatari contemporaneamente
ricevere e leggere i messaggi ricevuti da altri utenti
memorizzare, stampare e cancellare l'archivio dei messaggi spediti e ricevuti.
Un messaggio di posta elettronica ha un formato ben definito, costituito da una intestazione (header) e
da un corpo (body), esattamente come avviene nella "cartacea" posta ordinaria:
Le informazioni contenute nell'header sono, in linea di massima, le seguenti:
- indirizzo di ritorno del messaggio (Return Path o Reply-To)
- principali tappe nel percorso di consegna (Received)
- codice identificativo del messaggio (Message-ID)
- data e ora di invio del messaggio (Date)
- indirizzo del mittente (From)
- indirizzo del destinatario, anche molti (To)
- eventuale indirizzo del destinatario cui si invia il messaggio per conoscenza, anche molti (Cc Carbon Copy)
- eventuale indirizzo del destinatario "nascosto", anche molti (Bcc - Blind Carbon Copy)
- soggetto del messaggio (Subject)
- eventuale codifica dei file non ASCII (Mime-Version, Content-Type)
- priorità del messaggio (X-Priority, X-MSMail-Priority)
- mail client (X-Mailer).
Il Body, invece, contiene il testo del messaggio. In ogni caso entrambe le parti, dunque sia header che
body, devono essere espressi in linguaggio ASCII ridotto (a 7 bit), con eventuali codifiche aggiuntive
per trasmettere caratteri o files non ASCII.
Gli indirizzi di posta elettronica hanno la forma:
[email protected]
dove nomeutente (o username) è formato da una stringa di caratteri che identificano il destinatario,
mentre nomehost generalmente corrisponde ad un dominio e non ad un singolo host.
6
I protocolli SMTP e POP3.
Il servizio di posta elettronica si basa su un'architettura client-server. Il client si occupa della
composizione e della lettura, il server si occupa della trasmissione dei messaggi.
Il client di Email è il programma che si usa abitualmente, ad esempio Eudora, Outlook o altri. Con il
client vengono composti i messaggi, ordinati in cartelle e sottocartelle e spediti. Quando vengono
spediti, di fatto il client si limita ad inviarli al mail server il quale si occupa della spedizione vera e
propria. Quando invece si vogliono leggere i messaggi che sono stati spediti, il client va ad interrogare
il mail server che gestisce la propria casella postale. Non sempre tutte queste funzionalità a cui
abbiamo accennato sono riunite in un unico programma. Alcuni client sono in realtà composti da due
programmi, uno che fornisce l'interfaccia per la manipolazione dei messaggi ed uno che gestisce la
spedizione e la ricezione dei medesimi. Per esempio, una soluzione adottata spesso volentieri dagli
utenti del sistema operativo Linux impiega il programma pine per la scrittura e la manipolazione dei
messaggi ed il programma fetchmail per la loro ricezione dal mail server. Per inciso, quella di dividere
ed affidare le funzionalità a programmi diversi è la tipica filosofia del sistema operativo Unix. E' una
tecnica con la quale si ottiene un software molto più stabile ed efficiente, contrariamente alla tendenza
sviluppatasi intorno a Windows dove si tende piuttosto a produrre grossi programmi con numerose
funzionalità che spesso risultano tuttavia instabili.
Il mail server è un programma che in generale può risiedere su di un computer qualsiasi, anche il
proprio. Tuttavia, affinché le funzionalità di Email siano regolarmente disponibili è necessario che sia
ospitato in un computer che sia connesso alla rete e che sia operativo 24 ore su 24. Nell'ambito dello
schema usuale nel quale si usa il client di email nel computer a casa e ci si collega ad un service
provider per i servizi di rete, il mail server è quello del service provider che provvede anche a fornire e
mantenere uno spazio per la casella postale che ospita i messaggi. Via via che i messaggi arrivano
questi si accumulano nella casella postale gestita dal mail server. Quando ci si collega alla rete e con il
proprio client si chiede di leggere i messaggi questi vengono trasferiti nel proprio computer e
contemporaneamente vengono cancellati dalla casella postale del mail server. E' anche possibile far sì
che i messaggi rimangano sul mail server quando vengono letti, mediante un'opzione che si può
determinare fra le preferenze impostabili nel proprio client di posta. Questa opzione può essere utile
quando capita di leggere la posta elettronica da un computer che non è quello usuale su cui si lavorate.
Se, in tale situazione, si lascia che i messaggi letti vengano cancellati dal mail server, quando si ritorna
a consultare la posta dal proprio computer abituale non si troveranno più i messaggi letti da un'altra
macchina. Può essere quindi conveniente, quando si legge la posta da un computer inusuale (per
esempio da un Internet Point) è meglio controllare le opzioni in modo da lasciare i messaggi letti sul
mail server.
La posta elettronica è quindi implementata attraverso la cooperazione di due tipi di programmi:
•
•
Mail User Agent (MUA), è un client di posta , il programma che consente di gestire la
composizione, la trasmissione, la ricezione e l'eliminazione di messaggi da e verso un server di
posta, ad esempio Microsoft Outlook;
Mail Transport Agent (MTA), è un server di posta, il programma che si occupa dello
smistamento da un computer a un altro della posta elettronica, quindi permette di trasportare i
messaggi sulla rete fino al MTA server di destinazione e consegnare la posta ai client MUA.
In corrispondenza delle funzionalità illustrate si utilizzano due protocolli distinti:
•
SMTP (Simple Mail Transfer Protocol), per il trasporto dei messaggi dal MUA d'origine fino
ad un MTA e fra i vari MTA, da sorgente a destinazione; (dal client al server)
7
•
POP3 (Post Office Protocol versione 3), per la consegna del messaggio da un MTA al MUA di
destinazione. (dal server al client)
Vediamo come avviene la trasmissione di un messaggio.
Supponiamo che l'utente [email protected] spedisca un messaggio all'utente [email protected] e
che:
- Mario.rossi usi un MUA (programma) configurato per consegnare la posta ad un SMTP server (in
figura: Server 1) in esecuzione sull'host mailer.libero.it
- Mario.bianchi usi un MUA (programma) configurato per prelevare la posta da un POP3 server (in
figura: Server 2) in esecuzione sull'host mailer.hotmail.it.
La sequenza di operazioni è la seguente:
• Mario.rossi compone il messaggio con il suo MUA, tipicamente
un programma sul suo PC
• quando Mario.rossi preme il pulsante "Invia" il suo messaggio:
o interroga il DNS per sapere l'indirizzo dell'host mailer.libero.it
Fase iniziale: operazioni
o apre una connessione TCP ed effettua una conversazione
compiute da Mario.rossi e dal
SMTP con il server SMTP (MTA) in esecuzione sull'host
suo MUA
mailer.libero.it al fine di consegnare il messaggio
o chiude la connessione TCP (a questo punto Mario.rossi ha
concluso quanto di sua competenza)
•
o
Fase intermedia: operazioni
compiute dai soli MTA
il server SMTP (MTA) di mailer.libero.it :
interroga il DNS per sapere l'indirizzo IP dell'host hotmail.it che
coincide con l'host mailer.hotmail.it
o apre una connessione TCP ed effettua una conversazione
SMTP con il server SMTP (MTA) in esecuzione sull'host
mailer.hotmail.it e gli consegna il messaggio
In pratica, in queste prime due fasi, il messaggio viene depositato nella Mail Box (casella postale
elettronica) di Mario.bianchi, deve quindi essere estratto e visualizzato sul pc del ricevente.
•
Fase finale: operazioni compiute da
Mario.bianchi e dal suo MUA
Mario.bianchi lancia il suo MUA (esegue il programma di
posta elettronica)
• Appena Mario.bianchi preme il pulsante "Ricevi", il suo
MUA:
o interroga il DNS per sapere l'indirizzo IP dell'host
mailer.hotmail.it
o
apre una connessione TCP ed effettua una
conversazione POP3 con il server POP in esecuzione
sull'host mailer.hotmail.it, preleva il messaggio dalla casella
di posta, lo cancella dal server remoto e lo salva sul
8
o
computer locale.
mostra il messaggio a Mario.bianchi.
In pratica, in quest'ultima fase, Mario.bianchi legge il messaggio ricevuto dalla sua Mail Box:
Se il protocollo SMTP gestisce l'apertura della connessione, il trasferimento delle informazioni e la
chiusura della connessione, il protocollo POP3 gestisce l'accesso remoto alle caselle di posta elettronica
previa autenticazione degli utenti.
La comunicazione con Telnet
Il protocollo Telnet fornisce una modalità di comunicazione generale, interattiva, bi-direzionale con la
quale è possibile controllare un computer remoto, proprio come se ci si trovasse su un suo terminale.
Esiste un altro servizio che svolge sostanzialmente le stesse funzioni: SSH. SSH è un sistema più
recente e molto più sicuro di telnet per quanto riguarda la sicurezza. Ai fini della esposizione seguente
possiamo tranquillamente sostituire la parola SSH a telnet:
Telnet consente di eseguire comandi su di un computer remoto attraverso la rete. Con questo servizio si
ha la possibilità di utilizzare un altro computer come se fosse il proprio che invece svolge solo la
funzione di terminale sul quale impartire i comandi. Si tratta di un sistema con il quale si controlla il
computer mediante comandi scritti a mano, come si faceva con il sistema operativo DOS ed in generale
con tutti i computer precedentemente all'avvento delle interfacce grafiche. I comandi quindi possono
consistere in comandi di visualizzazione del contenuto delle directory, di manipolazione dei files e così
via. Possono consistere anche nel lancio di particolari programmi esattamente come si può fare su di un
proprio sistema locale.
Il servizio telnet è realizzato di fatto con due diversi componenti: un client ed un server. Il client
telnet è il programma che viene fatto partire da chi cerca di stabilire un collegamento con un computer
remoto per usare le risorse di quel computer. D'altro canto il computer remoto deve evidentemente
essere predisposto per offrire un simile servizio. Ebbene, tale predisposizione si ottiene mediante il
programma che implementa il lato server di telnet. Questo è un programma che gira in continuazione
sul sistema remoto stando in "ascolto" per soddisfare eventuali richieste da parte di utenti che mediante
i loro client telnet chiedano di collegarsi. Si vede bene così la diversa natura del lato client e del lato
server di una certa applicazione: il lato client è un software che viene lanciato da un utente giusto nel
momento in cui questo ne ha bisogno, il lato server invece è un programma che si suppone essere
sempre in funzione per raccogliere eventuali richieste. Quindi il lato server di un servizio deve essere
lanciato al momento del bootstrap del sistema. Per inciso, nell'ambito dei sistemi operativi UNIX (e
quindi Linux), questo tipo di programma si chiama demone. Non è affatto detto che su di uno stesso
computer debbano essere disponibili sia il lato client che il lato server di un servizio. Si può dare
oramai abbastanza per scontato che il client telnet sia sempre disponibile ma non il lato server. Infatti
installare un server vuol dire avere l'intenzione di offrire qualcosa della propria macchina al mondo
esterno. È bene sapere che installare un server telnet significa avere una precisa cognizione delle risorse
della propria macchina che si intende mettere a disposizione e delle risorse che vogliamo invece
proteggere.
9
L'impiego di telnet è basato sul concetto di sessione. Questo significa che per poter usufruire dei servizi
forniti da telnet deve essere stabilita una nuova sessione di lavoro mediante una procedura di
riconoscimento del richiedente. Quando un utente remoto chiede mediante il proprio client telnet di
accedere ai servizi del server telnet è necessario che si qualifichi con un nome di utente, lo user name,
ed una chiave di accesso, la password. Solo se il server riconosce il nome dell'utente e la password
consente l'accesso aprendo la sessione di lavoro. Durante la sessione il client ha disposizione tutta una
serie di comandi per accedere ai servizi offerti dal server. Alla fine del lavoro, il client chiede di
chiudere la sessione mediante un apposito comando dopodiché per accedere nuovamente è necessario
aprire una nuova sessione. Nel caso in cui il server non riconosca il nome di un utente o la password fra
quelli legali la sessione non viene fatta partire.
A molti utenti moderni di computer abituati ad utilizzare la rete "navigando" mediante un browser
dotato di interfaccia grafica telnet può sembrare molto scomodo e poco utile. Effettivamente oggi il suo
impiego è limitato ad un'utenza particolarmente tecnica ed in casi particolari. Un esempio potrebbe
essere quello della necessità di compiere calcoli molto laboriosi che su di una propria piccola macchina
richiederebbero troppo tempo. In tal caso mediante una sessione telnet si può andare ad eseuire i calcoli
su di un computer remoto molto più potente. Naturalmente sarà in generale necessario trasferire i dati
su cui eseguire i calcoli dal piccolo sistema locale al computer remoto ed, eventualmente, recuperare i
risultati. A questo si può provvedere con un altro dei servizi di base su cui è stata costruita Internet: il
File Transfer Protocol.
Il protocollo FTP
Il protocollo FTP (File Transfer Protocol), che fino ai primi anni ’90 era la maggiore sorgente dei
pacchetti che circolavano su Internet, è utilizzato per il trasferimento di file, binari o di testo, tra due
computer collegati alla rete. Il suo funzionamento è basato sulla tecnologia client/server: un client FTP
richiede un trasferimento di dati, un server FTP risponde alla richiesta.
A differenza del protocollo HTTP, centrato sul trasferimento e sulla visualizzazione delle pagine e
delle immagini contenute, il protocollo FTP permette di entrare nelle directory del computer remoto,
esattamente come se fosse in locale, con possibilità operative dipendenti dal tipo di accesso. I tipi di
accesso FTP sostanzialmente due:
•
•
autenticato, in cui l’utente ottiene l’accesso attraverso un processo di autenticazione, che si
esplica fornendo al server i propri dati (username, password). In questo all’utente viene
concessa la possibilità di compiere tutte quelle operazioni che normalmente si compiono sul
disco locale, quali, ad esempio, la copia, la cancellazione o lo spostamento dei files. E’ inoltre
possibile trasferire i files in entrambe le direzioni, per cui si possono avere due tipi di
procedure:
o download, per il trasferimento di files dalla macchina server alla macchina client;
o upload, per il trasferimento di files dalla macchina client alla macchina server;
anonimo, in cui ciascun utente può accedere liberamente all’archivio “pubblico”. Con questa
modalità l’insieme delle operazioni eseguibili è ristretto rispetto a quelle concesse agli utenti
autorizzati dal sistema, in particolare è possibile compiere solo operazioni di download.
Come per il telnet il FTP è anche strutturato in una parte client ed una server. Normalmente
viene installato solo il lato client. Il server FTP viene installato solo in computer destinati
all'offerta di particolari servizi alla comunità.
L'operazione di trasferimento di un file è oggi disponibile anche dall'interno di un browser. In
altre parole anche il protocollo HTTP dispone della funzionalità di trasferimento di file. A molti
sarà infatti capitato di fare un download di un file a partire da una pagina Web. Non per questo
10
il FTP è da ritenersi obsoleto. Vi sono innumerevoli siti FTP dai quali è possibile scaricare
informazioni di vario tipo, molto tipicamente software. Esiste un'enorme quantità di software
disponibile nei siti ftp di tutto il mondo. Quando ci si riferisce ad un software reperibile nel
pubblico dominio si intende usualmente che è disponibile in qualche sito ftp.
L'esecuzione del download di uno o pochi file dalle pagine di un browser è comoda ma nelle
seguenti circostanze può essere conveniente impiegare il FTP.
o
o
Trasferimento di gruppi di files Nei siti FTP i documenti sono ordinati in directory
proprio come nel disco rigido del proprio computer. I file da trasferire possono essere
numerosi oppure potrebbe anche essere necessario selezionare agevolmente una parte
dei files disponibili. Queste sono operazioni che si fanno molto comodamente con un
client FTP. Molti dei moderni client FTP sono dotati di interfaccia grafica cosicché
trasferire files mediante il FTP diventa facile come spostare files fra cartelle diverse sul
proprio disco rigido.
Aggiornamento di un sito Web L'impiego comune del Web è ovviamente quello di
andare a cercare delle informazioni o di usufruire di vari servizi quali per esempio la
prenotazione di mezzi pubblici o la gestione del proprio conto in banca. Si sta tuttavia
diffondendo molto rapidamente la consuetudine di creare ed offrire delle proprie pagine
Web. I gestori degli accessi ad Internet, gli Internet Service Provider (ISP), offrono
abitualmente al pubblico le risorse per ospitare e mantenere un sito Web a costi variabili
dipendenti dal tipo di servizi che il cliente richiede siano attivati. Ebbene, quando si
sviluppa e si mantiene un sito Web succede molto spesso di doverlo aggiornare. È
usuale sviluppare e modificare le pagine del proprio sito localmente e poi trasferire tutti
i file interessati sul computer del service provider che ospita le pagine Web, il cosiddetto
Web server. Questa operazione è inversa rispetto a quella usuale di scaricare dei files sul
proprio computer poiché in questo caso si devono trasferire dei files dal proprio
computer ad uno remoto, si deve cioè fare un upload anziché un download. Queste
operazioni si fanno molto bene mediante il FTP.
Come avviene il trasferimento
Il servizio di trasferimento dei dati avviene secondo il paradigma seguente, che implica la creazione di
due connessioni TCP:
•
•
il client FTP inizia una connessione di controllo, che avviene attraverso il protocollo Telnet,
eventualmente autentica il proprio accesso (login), ed invia i comandi FTP per visualizzare le
directory, trasferire i files, nonché fornire i parametri da utilizzare per il trasferimento, ecc.;
il server FTP crea una connessione dati sulla quale invia e/o riceve i dati richiesti, a seconda
della richiesta ricevuta. Per ogni trasferimento, comunicato attraverso la connessione di
controllo, il server crea una nuova connessione dati in accordo con i parametri specificati.
Il protocollo richiede che la connessione di controllo rimanga aperta durante un'intera sessione.
Una volta che la connessione di controllo scompare, la sessione “FTP” viene terminata ed il software
ad entrambe le estremità termina tutti i processi di trasferimento dei dati. Mentre le connessioni del
server avvengono su porte diverse (di default sono adiacenti: 20 per il controllo, 21 per i dati), le
connessioni del client avvengono alla stessa porta.
NOTA: Chi vuole può vedere alcuni esempi di sessioni ftp gestite con i semplici client FTP disponibili
nei sistemi operativi (Windows, Linux).
11
Il World Wide Web
Il World Wide Web (WWW), anche detta ragnatela mondiale, è un’architettura software che fornisce
l’accesso e la navigazione ad un insieme di iperoggetti multimediali residenti fisicamente nelle
memorie delle macchine collegate ad Internet.
Questi oggetti (tipicamente documenti e programmi), detti anche pagine web, sono pertanto collegati
tra di loro in modo da formare un grande ipermedia, e contengono testo formattato con linguaggio
specifico, collegamenti (link) ad altre pagine web o ad altre risorse; possono contenere però anche
immagini, suoni, video, scenari tridimensionali e codice (script) eseguibile localmente.
Oggi il WWW rappresenta il servizio più famoso offerto da Internet, ma nell’ultimo decennio è stata
anche la ragione che ha decretato il suo successo ed il suo enorme sviluppo. Ragioni più precise per
comprendere il rapido successo avuto dall’architettura WWW sono da ricercare in alcune
caratteristiche peculiari, quali:
- l’ampia scalabilità,
- la sua adattabilità alle reti,
- la sua natura distribuita e l’accessibilità da tutte le piattaforme,
- ma anche per lo standard di pubblico dominio su cui è basato.
L’architettura software è di tipo client/server. Il Web User Agent, ovvero l'interfaccia tra utente e
protocollo di rete, è il cosiddetto Browser.
Gli standard principali utilizzati nell’architettura software del Web sono sostanzialmente tre:
•
•
•
URL (Uniform Resource Locator), per l’indirizzamento delle risorse
HTML (HyperText Markup Language), il linguaggio per la definizione delle pagine web
HTTP (HyperText Transfer Protocol), il protocollo utilizzato tra client e server per comunicare.
L'indirizzamento URL. Ogni risorsa accessibile via Web ha un indirizzo URL di riferimento. Tale
indirizzo è costituito da tre parti:
•
•
•
metodo di accesso, per indicare il protocollo da utilizzare, ovvero in che modo si vuole
accedere alla risorsa. I metodi più comuni sono HTTP (protocollo nativo del web), FTP (File
Transfer Protocol, per il trasferimento di files), NEWS (protocollo per accedere ai gruppi di
discussione), MAILTO (per spedire posta elettronica), TELNET (protocollo di terminale
virtuale per login remoti), FILE (accesso a documenti locali);
nome dell’host, letterale o indirizzo IP, per identificare la residenza fisica della risorsa. A ciò va
collegato anche il numero della porta che permette l’accesso alla risorsa;
nome dell’oggetto, che include il cammino ed il nome del file, per identificare univocamente la
risorsa.
Un URL assume dunque la forma seguente
metodoaccesso://nomehost:porta/nomeoggetto
anche se il numero della porta viene solitamente omesso in quanto il protocollo scelto sottintende quale
porta utilizzare. Ad esempio http://www.itistulliobuzzi.it/docenti/indice.html rappresenta l’URL
della pagina indice delle dispense “indice.html”, che dunque viene recuperata con il metodo http,
dall’host www.itistulliobuzzi.it, ed è contenuta nella directory docenti, mentre il numero di porta
omesso è di default 80.
12
Esistono alcune regole per completare un URL non specificato interamente dall'utente: se manca il
nome della directory, si assume che la directory sia la stessa della pagina precedente; se manca il nome
del file si restituisce un file prefissato all’interno della directory (“index.html”, “default.html” oppure
“welcome.html”), e così via.
In generale una pagina web è composta da una pagina testuale formattata con il linguaggio HTML e
da oggetti referenziati nella pagina testuale stessa.
Il protocollo HTTP
Il protocollo HTTP è il protocollo di livello Applicazione che permette di gestire il sistema distribuito
del web, occupandosi del dialogo tra client e server web. E’ un protocollo senza memoria (stateless) in
quanto ogni interazione tra client e server si svolge indipendentemente da eventuali “dialoghi”
precedenti, e d’altro canto non è previsto un livello di sessione che li ricordi. Questa struttura, per certi
versi necessaria, permette di ricercare e recuperare un’informazione in maniera veloce, saltando
rapidamente da un server all’altro attraverso i collegamenti ipertestuali.
Ogni singola interazione tra client e server si svolge con la seguente procedura:
• apertura di una connessione di livello trasporto TCP (l’HTTP richiede una comunicazione
affidabile)
• il client invia la richiesta con l’URL desiderato. La richiesta deve contenere il comando da
eseguire sull’oggetto indicato dall’URL (ad esempio il comando PUT indica la richiesta di
mandare un oggetto al server, mentre il comando GET, che tra l’altro è quello più utilizzato,
indica la richiesta dell’oggetto dal server), la versione del protocollo HTTP in uso, il tipo di
client nonché i dati che il client può accettare;
• il server responsabile dell’URL richiesto invia una risposta al client.
• chiusura della connessione di livello trasporto.
Esempio
Se un browser vuole ricevere il file specificato dall’URL http://www.somehost.com/abc/saluti.html
dapprima apre una connessione con l’host www.somehost.com alla porta 80 (porta di default, poiché
nell’URL non è specificata alcuna porta). Quindi spedisce attraverso la connessione la richiesta:
GET /abc/saluti.html HTTP/1.0
Il server risponde con qualcosa di questo tipo, trasmesso attraverso la stessa connessione
HTTP/1.0 200 OK
Date: Fri, 31 Dec 1999 23:59:59 GMT
Content-Type: text/html
Content-Length: 1354
<html>
<body>
<h1>Ciao a tutti.</h1>
(more file contents)
...
</body>
</html>
Dopo aver mandato la risposta il server chiude la connessione.
13
Nella richiesta, GET è il metodo di richiesta, significa “dammi questa risorsa”.
Nella risposta, 200 è il codice di stato (indica che la richiesta ha avuto buon fine), OK è la spiegazione
in lettere del codice di stato. Seguono altre informazioni e quindi l’intera pagina HTML richiesta.
Tutti i codici che iniziano con 1 sono informativi, con 2 significano successo, con 3 ridirezione, con 4
errore del client, con 5 errore del server. Eccone alcuni:
•
•
•
•
•
200: OK, la richiesta è stata processata e i dati vengono spediti
204: No Content, la richiesta è stata processata ma non ha avuto risposta
301: Moved Permanently: il file specificato è stato permanentemente spostato in un’altra
locazione
403: Forbidden: il client non è autorizzato a ricevere i dati richiesti
404: Not Found: i dati specificati nell’URL non sono stati trovati
Le Chat
L’ambiente delle chat oggi fornisce un mezzo di comunicazione col quale si incontrano tante culture, in
un sistema che di fatto crea una comunità mondiale virtuale. La comunicazione, essenzialmente
asincrona per natura, avviene in tempo reale tra più utenti collegati in rete tramite client apposito o su
siti web dedicati e con l’utilizzo quasi esclusivo del testo (ma anche voce e immagini). Ciascun utente è
dotato di un nome virtuale, il nickname. Come in ogni comunità, inoltre, ci sono norme che
costituiscono linee guida di base per il comportamento e l’interazione fra gli utenti, anche se di fatto
non esiste una modalità per creare e sostenere regole e leggi nel mondo virtuale.
I sistemi di comunicazione in tempo reale, nati dall’esigenza di scambiarsi messaggi o comunicare a
distanza in tempo reale simulando l’uso del telefono, hanno oggi raggiunto una diffusione planetaria.
Tra i client più diffusi figura ad esempio Messenger.
Uno dei protocolli più diffusi, su cui sono basati un gran numero di clients, e certamente il più antico è
il protocollo IRC (Internet Relay Chat).
Il protocollo IRC. IRC è un sistema di teleconferenza, basato sul modello TCP/IP (in generale la porta
TCP è la 6667), che ben si adatta ad un uso su macchine e modelli diversi. I processi server
costituiscono la spina dorsale di IRC, dei veri e propri punti di connessione per i client e per gli altri
server IRC, che effettuano la distribuzione/multiplexing dei messaggi (e altro) all’interno della loro rete
(la configurazione topologica è ad albero).
Il protocollo SNMP
Il protocollo SNMP (Simple Network Management Protocol), basato su UDP/IP è utilizzato per
monitorare e gestire gli apparati di rete.
E’ stato progettato per inviare dati sullo stato della rete, ma è anche possibile modificare alcuni
parametri degli apparati di rete.
14
Fly UP