Connessione al database con Visual Basic NET? Lo trovi su Opentraining.it Visual Basic Italia
PRINCIPALE > ARTICOLO

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.
Presentazione:
REAL SOFTWARE RILASCIA LA VERSIONE 5.0 di REALbasic per Windows






Gorizia, 5 maggio 2003 - Active, distributore in esclusiva di REALSoftware, Austin, Tx, annuncia la disponibilità di REALbasic 5.0 per Windows, uno strumento per lo sviluppo semplice da usare che permette agli utenti Windows di tutti i livelli di creare applicazioni personalizzate e di compilarle sia per la piattaforma Windows che per quella Macintosh.
[>>]

http://www.active-software.com

 

Contatti. Utilizzare l'email generica per domande relative al sito:
Porre 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)

Questa lezione, consultata da 8399 utenti, è stata giudicata di contenuti sufficienti , con un'esposizione di facile comprensione e con un livello di approfondimento sufficiente da 92 votanti.


Lo strato dell'applicazione

Le applicazioni che si basano sulla rete lavorano sullo strato dell’applicazione 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)


Window Sockets (Winsock)

Windows Sockets (o Winsock, come viene comunemente chiamata) é un’interfaccia 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.


NetBIOS

La maggior parte dei servizi e delle applicazioni che girano sotto il sistema operativo Windows, utilizzano l’interfaccia 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 è un’effettiva 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 dell’implementazione Microsoft del TCP/IP.



L’insieme 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 l’indirizzamento dei pacchetti dati;
• ICMP: monitoraggio degli errori degli altri protocolli;
• IGMP: si occupa di spedire pacchetti in broad e multicast.



Internet Protocol (IP)

L’Internet 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 l’indirizzamento in rete, l’Internet Protocol include sia i componenti della rete sia quelli dell’host. Confrontando l’indirizzo IP di un computer destinatario con l’indirizzo IP della propria origine, l’IP può determinare se il pacchetto deve essere instradato verso l’host 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 dell’intestazione 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 l’intestazione 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 l’importanza 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 l’indirizzo 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 un’alta 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 l’insieme dei dati e l’intestazione 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 all’host 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 Don’t 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: nell’ultimo 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, l’host 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 sull’inizio 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. All’host 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 dell’intestazione non si siano rovinate durante il transito. Questa somma di controllo vale soltanto per la porzione dell’intestazione del pacchetto. Da ciò ne deriva una ridotta elaborazione a ciascun instradatore, perché la somma di controllo non è calcolata sull’intero 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 nell’intestazione 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, l’opzione deve essere solo copiata sul primo frammento. Se il copy flag è impostato su 1, l’opzione 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 l’opzione ha a che fare con un controllo del datagramma o della rete. Il valore 2 significa che l’opzione 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 dell’elenco 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 dall’origine
 0  7 Usato per tener traccia dei percorsi fino ad una destinazione. E’ utile per determinare l’esatta 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 nell’elenco delle opzioni
 0  9 Instradamento della fonte preciso. Come accade per l’instradamento 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 dell’ora esatta

- il campo Padding: i contenuti di questo campo si basano sulle opzioni selezionate per un pacchetto IP. Il riempitivo assicura che l’intestazione del datagramma sia arrotondata su di un numero pari di byte;

Fabio Ruini scrive al sito
http://members.xoom.virgilio.it/tcp_ip/