Eseguire
una ricerca veloce nell' archivio delle risorse di Visual Basic
Italia®:
|
Preso
dall'archivio...
Premere il pulsante sotto per accedere direttamente ad un articolo
o ad un esempio preso in modo casuale dall'archivio.
|
Ultimo
e-book pubblicato:
"INTRODUZIONE
AI CSS"
Lo scopo del CSS language è quello di controllare lo
stile dei vari elementi che concorrono a formare un
documento HTML.
Si può operare in tre modi collegamento ad un foglio di stile
esterno;definizione degli stili all'inizio
del documento utilizzo della proprietà style all'interno
di un Tag HTML (embedded style). Questo e-book introduttivo
servirà per apprendere tali nozioni fondametali dei fogli
di stile.
Prezzo: € 0.0.
|
Contatti.
Utilizzare l'email generica per domande relative al sito:
oppure scrivere
ad un responsabile di area.
Responsabile
del sito: >Andrea
Martelli
Responsabile area "Corso di VB":
> Giorgio Abraini
|
|
|
|
Il
protocollo TCP/IP, e la trasmissione dati su Internet - TCP/IP
- quarta parte (a cura di Fabio Ruini) |
Lo
strato dell'applicazione |
Le
applicazioni che si basano sulla rete lavorano sullo strato
dellapplicazione nel modello stratificato TCP/IP. Il
termine applicazioni che si basano sulla rete
si riferisce a quelli applicazioni che si connettono o che
comunicano con host su reti remote. Le applicazioni di rete
che girano su reti TCP/IP rientrano in genere in una di queste
tre categorie, che prendono il nome dalle interfacce di programmazione
che sfruttano:
- Windows Sockets (Winsock);
- NetBIOS;
- TDI (Transport Driver Interface)
Windows
Sockets (o Winsock, come viene comunemente chiamata) é
uninterfaccia di programmazione di rete, pensata per
facilitare la comunicazione tra applicazioni e stack di protocollo
TCP/IP differenti. Molti sviluppatori creano applicazioni
che dovranno essere usate con il TCP/IP o con le loro specifiche
implementazioni TCP/IP.
Winsock è stata pensata per fornire un terreno comune
alle applicazioni ed ai protocollo relativi alla parte più
alta del modello di riferimento TCP/IP.
Anche Internet All-in-One, il software che correda
questo testo, è stato realizzato sfruttando in modo
massiccio il Winsock.
La
maggior parte dei servizi e delle applicazioni che girano sotto
il sistema operativo Windows, utilizzano linterfaccia
NetBIOS per la comunicazione tra processi (IPC, Interprocess
Communications).
Il NetBIOS sfrutta inoltre una convenzione denominata UNC (Universal
Naming Convention) per gestire un collegamento tra due macchine
collegate in rete, risolvibile per mezzo di nomi (nomi NetBIOS)
al posto dei meno mnemonici indirizzi IP. Il NetBIOS è
approfondito nel capitolo "NetBIOS over TCP/IP.
TDI
(Transport Driver Interface) |
La
Transport Driver Interface è uneffettiva interfaccia
di programmazione collocata al confine tra i componenti di protocollo
dello strato della sessione ed i componenti dello strato del
trasporto.
TDI consente ad un programmatore di creare un componente per
lo strato della sessione, senza dover avere una conoscenza diretta
dei componenti del sottostante strato Trasporto e viceversa.
Questa interfaccia è specifica dellimplementazione
Microsoft del TCP/IP.
Linsieme
dei protocolli del TCP/IP |
Ora
che è più chiaro lo schema logico del modello
a strati TCP/IP, i paragrafi che seguono spiegano gli specifici
protocolli che vi sono implicati, fornendo maggiori dettagli
sulle funzionalità peculiari dei protocolli in ciascuno
strato del modello TCP/IP. Ovviamente, verranno approfonditi
soltanto i protocolli relativi alle comunicazioni Internet,
mentre per gli altri verrà fornita soltanto un piccola
descrizione.
I
protocolli dello strato internet |
Nello
strato internet del TCP/IP, lavorano quattro protocolli:
IP: che gestisce lindirizzamento dei pacchetti
dati;
ICMP: monitoraggio degli errori degli altri protocolli;
IGMP: si occupa di spedire pacchetti in broad e multicast.
LInternet
Protocol fornisce tutti gli indirizzi logici degli host. Ciascun
host ha in dotazione un indirizzo IP univoco per la rete sulla
quale sta lavorando. Il protocollo IP è senza connessione
(connection-less).
Affinché due host comunichino utilizzando il protocollo
IP, non è necessario che prima stabiliscano una sessione.
I due sistemi si scambiano i dati per mezzo di un sistema di
consegna ottimizzato.
Come accade per qualsiasi protocollo che fornisce lindirizzamento
in rete, lInternet Protocol include sia i componenti della
rete sia quelli dellhost. Confrontando lindirizzo
IP di un computer destinatario con lindirizzo IP della
propria origine, lIP può determinare se il pacchetto
deve essere instradato verso lhost destinatario o se è
possibile mandarglielo direttamente.
Il
formato ed i campi di un pacchetto IP |
Il
formato di un pacchetto IP appare di questo tipo:
-
il campo Version: questo campo indica quale versione
del protocollo IP è utilizzata per formattare il datagramma
IP.
La versione corrente del protocollo è la numero 4, ma
si sta lavorando sul protocollo IPv6 che dovrebbe entrare in
vigore entro la fine del 2001. Se il computer ricevente non
può gestire la versione del protocollo IP specificata
nel campo Version, semplicemente scarta il pacchetto. La lunghezza
del campo è di 4 bit;
- il campo Length: questo campo indica la lunghezza dellintestazione
di IP. Tutti i campi in un pacchetto IP sono infatti di lunghezza
fissa, eccetto i campi Options e Padding. Questo campo determina
la linea divisoria tra lintestazione e la porzione dei
dati del pacchetto. Il campo Length viene sottratto dal campo
Packet Length per determinare dove cominciano i dati;
-
il campo Service Type: questo campo comunica al protocollo
IP come occorre gestire il pacchetto IP. Include al suo interno
i cinque sottocampi: Precedence, Delay, Throughput e Reliability.
Il sottocampo Precedence stabilisce limportanza
di un datagramma. Questo sottocampo di tre bit può variare
da un valore zero (normale) ad un valore 7 (controllo di rete).
Più il numero è alto e più il pacchetto
è importante. Teoricamente, i pacchetti a priorità
più alta dovrebbero essere instradati verso lindirizzo
di destinazione più velocemente rispetto a quelli con
priorità inferiore. I sottocampi Delay, Throughput
e Reliability specificano tutti il trasporto desiderato
per il pacchetto. Questi tre sottocampi sono in genere tutti
impostati su 0. Se sono impostati ad 1, indicano che si desidera
un basso ritardo, un alto throughput ed unalta attendibilità.
Quando sono disponibili più percorsi per raggiungere
una rete remota, questi campi possono servire a determinare
il percorso da intraprendere. Gli ultimi due bit del campo Service
Type sono attualmente inutilizzati nella versione 4 del protocollo
IP;
- il campo Packet Length: questo campo contiene la lunghezza
totale del pacchetto IP, intendendo con questo linsieme
dei dati e lintestazione IP;
-
i campi Packet Fragmentation: i successivi tre campi
ricoprono un ruolo nei processi di frammentazione e riassemblaggio.
In una inter-rete IP, le informazioni possono viaggiare fra
differenti topologie di rete che comprendono ethernet, token
ring e FDDI. Ciascuna topologia è vincolata dalla quantità
di dati che può inserire in una singola cornice sulla
rete. Quando i dati passano tra le diverse topologie, a volte
occorre suddividerli in frammenti più piccoli, che possano
essere trasportati attraverso le altre topologie di rete.
Le dimensioni di questi frammenti si basano sul formato massimo
che può gestire la topologia di rete attraverso la quale
il datagramma sta viaggiando. Quando un pacchetto è frammentato,
occorre fornire anche un meccanismo che consenta il riassemblaggio
del pacchetto originale una volta giunto allhost di destinazione.
Il campo Identification contiene un identificatore univoco,
che contrassegna il datagramma originale.
Se un pacchetto originale è suddiviso in tre frammenti,
ciascuno dei tre ha un identico campo Identification. Il campo
Flags, che è di 3 bit, controlla la frammentazione. Il
primo di questi bit è attualmente inutilizzato. Il secondo
è il bit Dont Fragment (DF) e il terzo è
il bit More Fragments (MF).
Se
il bit DF è impostato su 1, il datagramma non può
essere frammentato. Se i dati giungono ad una rete che non può
gestire cornici di queste dimensioni, il datagramma viene scartato
(dal momento che non è possibile frammentarlo). Questo
meccanismo si rivela particolarmente utile in quelle circostanze
in cui è in corso un test sulle dimensioni dei pacchetti
e quindi non bisogna suddividerli in frammenti più piccoli.
Il bit MF indica che il pacchetto corrente è seguito
da altri pacchetti: nellultimo pacchetto di un frammento,
infatti, il bit MF è impostato a 0.
Ciò significa che a seguire non vi sono ulteriori pacchetti.
Il campo Fragment Offset è utilizzato in associazione
con il bit MF durante il riassemblaggio del pacchetto frammentato.
Molte volte, lhost destinatario riceve i pacchetti frammentati
non in sequenza. Il bit MF, il campo Identification ed il campo
Fragment Offset aiutano proprio a determinare come ricomporre
questi pacchetti frammentati nel pacchetto originale. Il valore
offset si basa sempre sullinizio del messaggio.
Per esempio, se un pacchetto da 1500 byte deve essere suddiviso
in frammenti non più grandi di 700 byte, accadrà
quanto segue: il primo frammento riceverà in assegnazione
lo stesso ID del pacchetto originale da 1500 byte. Il bit MF
sarà impostato su 1 ed il campo Fragment Offset sarà
impostato su 0. Il secondo frammento avrà lo stesso ID
del pacchetto originale ed avrà ancora il bit MF impostato
su 1.
Il campo Fragment Offset per il secondo frammento sarà
invece impostato su 700.
Il frammento conclusivo avrà sempre lo stesso ID del
pacchetto originale. In quanto ultimo pacchetto, il bit MF sarà
impostato su 0, poiché non seguiranno altri frammenti.
Il valore Fragment Offset per questo pacchetto, sarà
impostato su 1400;
-
il campo Time-to-Live (TTL): questo campo indica quanto
a lungo un datagramma può esistere su di una rete. Ogni
volta che il pacchetto attraversa un istradatore, il suo valore
diminuisce di almeno un secondo. Quando il campo TTL raggiunge
il valore zero, il datagramma viene scartato dal router in cui
si trova attualmente. Allhost mittente, giunge un messaggio
(per via del protocollo ICMP), che informa che il pacchetto
è stato scartato, pertanto è necessario inviarlo
una seconda volta;
- il campo Protocol: questo campo indica quale protocollo
di alto livello è stato usato per creare le informazioni
immagazzinate nella porzione dei dati del pacchetto. Questo
campo aiuta nello spostamento del pacchetto in su fino al protocollo
corretto nel modello a strati TCP/IP. Definisce inoltre il formato
della porzione dei dati del pacchetto. Un numero di identificazione
del protocollo (Protocol Indentification Number, PIN) assegnato
dal Network Information Center (NIC, la scheda di rete) rappresenta
ciascun protocollo. ICMP, per esempio, è il protocollo
numero 1; TCP è il protocollo numero 6;
- il campo Header Checksum: questo campo serve ad assicurare
che le informazioni dellintestazione non si siano rovinate
durante il transito. Questa somma di controllo vale soltanto
per la porzione dellintestazione del pacchetto. Da ciò
ne deriva una ridotta elaborazione a ciascun instradatore, perché
la somma di controllo non è calcolata sullintero
pacchetto. A ciascun instradatore che il pacchetto attraversa,
il valore Header Checksum deve essere calcolato di nuovo, perché
il campo TTL decresce per ciascun instradatore, obbligando quindi
a svolgere un nuovo calcolo;
- i campi IP Address Source e Destination: i campi Source IP
Address e Destination IP Address, contengono gli indirizzi IP
a 32 bit degli host mittente e destinatario. Naturalmente, questi
due valori non devono mutare durante il transito;
-
il campo Options: questo campo può essere costituito
da parecchi codici di lunghezza variabile. In un pacchetto IP,
si può utilizzare più di una opzione. In tale
caso, i campi appaiono in sequenza nellintestazione IP.
Ciascuna opzione è lunga 8 bit e consiste in tre sottocampi.
Il primo bit rappresenta il copy flag, che determina
il modo in cui questa opzione deve essere trattata quando un
pacchetto origine è frammentato. Se il copy flag è
impostato su 0, lopzione deve essere solo copiata sul
primo frammento. Se il copy flag è impostato su 1, lopzione
deve essere copiata su tutti i frammenti del pacchetto originale.
La option class è rappresentata da 2 bit
e le può essere assegnato uno tra quattro valori. Il
valore 0 significa che lopzione ha a che fare con un controllo
del datagramma o della rete. Il valore 2 significa che lopzione
serve a scopo di debug o di misurazione. I valori 1 e 3 sono
riservati per usi futuri e non sono ancora stati definiti. I
5 bit finali, rappresentano lo option number,
che assume significato in base al valore della option
class, secondo la tabella che segue:
Option
Class
|
Option
Number
|
Descrizione
|
0 |
0 |
Termine
dellelenco delle opzioni |
0 |
1 |
Usata
come riempitivo. Indica che non vi sono opzioni impostate |
0 |
2 |
Opzioni
della sicurezza per applicazioni militari |
0 |
3 |
Instradamento
della fonte non ben definito. Questa opzione indica una
sequenza di indirizzi IP che dovrebbe essere usata come
percorso fino ad un host destinatario. Consente che si
verifichino parecchi salti di rete tra gli indirizzi indicati
dallorigine |
0 |
7 |
Usato
per tener traccia dei percorsi fino ad una destinazione.
E utile per determinare lesatta strada percorsa
tra un host origine e uno destinatario. Ogni instradatore
che si trova tra le mani il pacchetto IP aggiunge il proprio
indirizzo IP nellelenco delle opzioni |
0 |
9 |
Instradamento
della fonte preciso. Come accade per linstradamento
non ben definito, specifica un percorso di instradamento
per un host destinatario. La differenza è che,
se non può percorrere la strada indicata, il pacchetto
viene scartato |
2 |
4 |
Marcatura
di orario Internet che consente la registrazione di segnatempi
che indicano il tempo trascorso lungo una strada. Ciascun
instradatore annota il proprio indirizzo IP e un segnatempo,
che indica il momento in cui ha avuto per le mani il pacchetto.
Questo segnatempo si basa sui millisecondi trascorsi dalla
mezzanotte sul meridiano di Greenwich (Greenwich Mean
Time o Universal Time). Poiché, però, gli
orologi non sono sincronizzati, è bene considerare
questi segnatempo solo come stime dellora esatta |
-
il campo Padding: i contenuti di questo campo si basano
sulle opzioni selezionate per un pacchetto IP. Il riempitivo
assicura che lintestazione del datagramma sia arrotondata
su di un numero pari di byte;
|
|