Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5...

120
Fabio Ruini Luca Schenetti 5^ informatico B Anno scolastico 2000/01 Il TCP/IP e la trasmissione dati su Internet

Transcript of Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5...

Page 1: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

Fabio Ruini

Luca Schenetti

5^ informatico B Anno scolastico 2000/01

Il TCP/IP e la trasmissione dati

su Internet

Page 2: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

Indice dei contenuti:

Capitolo 1: Da Arpanet ad Internet,

l’evoluzione della “Rete delle reti” 1.1 Introduzione 1.2 La “preistoria” di Internet 1.3 J.C.R. “Lick” Licklider 1.4 La Rand Corporation 1.5 Donald Davies ed il “packet switching“ 1.6 Bob Taylor, Larry Roberts e l’ideazione di Arpanet 1.7 Anno 1969: Arpanet, dalla teoria alla sperimentazione 1.8 Le RFC e lo sviluppo dei primi protocolli di rete 1.9 Finalmente il TCP/IP 1.10 Da Arpanet ad Internet Capitolo 2: Tipi di reti 2.1 Local Area Network (LAN) 2.1.1 Reti a bus 2.1.2 Reti a stella 2.1.3 Reti ad anello (token ring) 2.1.4 Reti a doppio anello 2.2 Le schede di rete (NIC) 2.3 Il cablaggio di una LAN 2.3.1 Cavi coassiali 2.3.1.1 Thin Ethernet (10base-2) 2.3.1.2 Thick Ethernet (10base-5) 2.3.2 Cavi twisted-pairs (10base-T) 2.3.2.1 Unshielded Twisted-Pairs (UTP) 2.3.2.2 Shielded Twisted-Pairs (STP) 2.3.3 Cavi USB 2.3.4 Cavi in fibre ottiche 2.4 Lo standard Ethernet 2.4.1 La storia 2.4.2 Il sistema di trasmissione 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti WAN digitali 2.5.2.1 T1 2.5.2.2 T3 2.5.2.3 Integrated Services Digital Network (ISDN) 2.5.2.4 Linea dedicata 2.5.2.5 xDSL (ADSL e HDSL) 2.5.3 Reti a commutazione di pacchetto 2.5.3.1 Datapac 2.5.3.2 X.25

Page 3: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

Capitolo 3: Il protocollo TCP/IP 3.1 Cos’è un protocollo? 3.2 Un esempio reale di comunicazione 3.3 Standardizzazione del protocollo 3.4 La necessità di condividere dati: le reti di computers

e l’internetworking 3.5 Open System Interconnection (OSI Model) 3.5.1 Lo strato fisico 3.5.2 Lo strato del collegamento dati 3.5.3 Lo strato della rete 3.5.4 Lo strato del trasporto 3.5.5 Lo strato della sessione 3.5.6 Lo strato della presentazione 3.5.7 Lo strato dell’applicazione 3.5.8 Il progetto 802 3.5.8.1 IEEE 802 categories 3.5.8.2 Le modifiche al modello OSI 3.5.8.2.1 Il sottostrato Logical Lin Control 3.5.8.2.2 Il sottostrato Media Access Control 3.6 TCP/IP 3.6.1 Visione a strati e raffronto con il modello OSI 3.6.1.1 Lo strato di interfaccia con la rete 3.6.1.2 Lo strato Internet 3.6.1.3 Lo strato del trasporto 3.6.1.4 Lo strato dell’applicazione 3.6.1.4.1 Windows Sockets (Winsock) 3.6.1.4.2 NetBIOS 3.6.1.4.3 TDI (Transport Driver Interface) 3.6.2 L’insieme dei protocolli del TCP/IP 3.6.2.1 I protocolli dello strato internet 3.6.2.1.1 IP (Internet Protocol) 3.6.2.1.2 ICMP (Internet Control Message Protocol) 3.6.2.1.3 IGMP (Internet Group Management Protocol) 3.6.2.1.4 ARP (Address Resolution Protocol) 3.6.2.2 I protocolli dello strato del trasporto 3.6.2.2.1 TCP (Transfer Control Protocol) 3.6.2.2.2 UDP (User Datagram Protocol) 3.6.2.2.3 Esemplificazione delle differenze tra TCP e UDP 3.6.2.3 I protocolli dello strato dell’applicazione 3.6.2.3.1 Telnet 3.6.2.3.2 Gopher 3.6.2.3.3 ANSI Z3950 e WAIS (Wide Area Information Servers) 3.6.2.3.4 SMTP (Simple Mail Transfer Protocol) 3.6.2.3.5 POP3 (Post Office Protocol version 3) 3.6.2.3.6 NNTP (News Network Transfer Protocol) 3.6.2.3.7 FTP (File Transfer Protocol) 3.6.2.3.8 HTTP (Hyper-Text Transfer Protocol) 3.7 Domain Name Service (DNS)

Page 4: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

Capitolo 4: Gli indirizzi dell’Internet Protocol (IP Address)

4.1 Fondamenti sugli indirizzi dell’Internet Protocol 4.2 Come si scrive un indirizzo IP? 4.3 Notazione per decimali puntati 4.4 Le classi degli indirizzi IP 4.4.1 Indirizzi di Classe A 4.4.2 Indirizzi di Classe B 4.4.3 Indirizzi di Classe C 4.4.4 Indirizzi di Classe D 4.4.5 Indirizzi di Classe E 4.5 Regole generali nell’assegnazione degli indirizzi IP 4.6 Il ruolo delle maschere di sottorete 4.7 Il processo di messa in AND 4.7.1 Esempio di messa in AND tra due host 4.8 Indirizzi di rete locale 4.9 Il futuro dell’assegnazione degli indirizzi IP (IPv6) Capitolo 5: NetBIOS over TCP/IP 5.1 NetBEUI e NetBIOS 5.1.1 Il protocollo SMB 5.1.2 I nomi NetBIOS 5.2 I limiti di NetBIOS e NetBEUI 5.3 NetBIOS over TCP/IP 5.3.1 Le porte dell’NBT 5.4 NBT: la sua funzione oggi

Capitolo 6: La tramissione dati dal punto di vista fisico-elettronico

6.1 I mezzi trasmissivi 6.1.1 Doppino telefonico 6.1.2 Cavo coassiale 6.1.3 Fibra ottica 6.1.4 Microonde e trasmissione via satellite 6.2 Rumore, distorsione e diafonia 6.3 Tecniche di modulazione del segnale 6.3.1 Modulazioni analogiche con portante armonica 6.3.1.1 AM (Amplitude Modulation) 6.3.1.2 FM (Frequency Modulation) 6.3.1.3 PM (Phase Modulation) 6.3.2 Modulazioni analogiche con portante impulsiva 6.3.2.1 PAM (Pulse Amplitude Modulation) 6.3.2.2 PWM (Pulse Width Modulation) 6.3.2.3 PPM (Pulse Phase Modulation) 6.3.2.4 PFM (Pulse Frequency Modulation) 6.3.3 Modulazioni digitali con portante armonica

Page 5: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

6.3.3.1 ASK (Amplitude Shift Keying) e OOK (On-Off Keying) 6.3.3.2 FSK (Frequency Shift Keying) 6.3.3.3 PSK (Phase Shift Keying) e DPSK (Differential PSK) 6.3.4 Modulazioni digitali con portante impulsiva 6.3.4.1 PCM (Pulse Code Modulation) 6.3.4.2 DM (Delta Modulation) e ADM (Adaptive DM) 6.4 Tipi di esercizio 6.4.1 Simplex (SX) 6.4.2 Half-duplex (HDX) 6.4.3 Full-duplex (FDX) 6.5 L’interfaccia seriale RS 232C 6.6 I modem 6.6.1 Null modem Capitolo 7: Internet All-in-One 7.1 Cos’è Internet All-in-One 7.1.1 Web browser 7.1.2 Client SMTP (SMTP mail sender) 7.1.3 Client POP3 (POP3 mail receiver) 7.1.4 UDP chat 7.1.5 Telnet Emulator 7.1.6 Il form principale 7.2 Il sorgente dei vari moduli 7.2.1 Codice Web browser 7.2.1.2 Codice funzione motori di ricerca 7.2.2 Codice SMTP mail sender 7.2.3 Codice POP3 mail receiver 7.2.4 Codice UDP chat 7.2.5 Codice Telnet emulator 7.2.6 Codice del form principale 7.2.7 Codice del visualizzatore della tesina 7.3 Installazione del software 7.4 Menù di autorun 7.5 Requisiti di sistema

Page 6: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

Capitolo 1: Da Arpanet ad Internet, l’evoluzione della “Rete delle reti” 1.1 - Introduzione La successione di eventi, progetti, idee e protagonisti che, nel corso di una trentina d’anni, hanno portato alla nascita di Internet e alla sua evoluzione nella forma attuale, costituisce un capitolo molto affascinante, ma anche atipico, nella storia dello sviluppo tecnologico. Parte del fascino è legato al ruolo determinante che questa tecnologia ha svolto e sta ancora svolgendo nella cosiddetta 'rivoluzione digitale'. In pochissimi anni, infatti, la rete, da esoterico strumento di lavoro per pochi informatici, é divenuta un mezzo di comunicazione di massa, che coinvolge quotidianamente milioni di persone in scambi comunicativi privati e pubblici, scientifici e commerciali, seri e ricreativi. Nessuno strumento di comunicazione ha mai avuto un tasso di espansione simile. Ma altrettanto affascinante è il modo in cui questa tecnologia è stata sviluppata. E qui entra in gioco l'atipicità cui facevamo cenno. Come gran parte delle innovazioni tecnologiche, anche le origini di Internet si collocano nel terreno della ricerca militare. Queste sue radici, tuttavia, sono state assai meno documentate di quanto non sia avvenuto per altre tecnologie, e di quanto non sia mai stato attestato dalla variopinta storiografia presente sulla rete. Una diffusissima leggenda metropolitana, vuole che Internet sia stata un frutto della guerra fredda strappato ai suoi destini guerrafondai da un manipolo di visionari e anarchici hackers (dove a questo termine restituiamo il senso originario di esperto informatico, in grado di restare giorni interi davanti ad uno schermo per far fare ad un computer ciò che ha in mente). La realtà è stata diversa; eppure, come tutte le leggende, anche quella appena citata nasconde una sua parte di verità. Se è vero infatti che il primitivo impulso allo sviluppo di una rete di comunicazione tra computer distanti venne da ambienti legati all'amministrazione della difesa, la maggior parte delle innovazioni che hanno scandito l'evoluzione della rete sono nate all'interno di libere comunità di ricerca, quasi del tutto svincolate dal punto di vista professionale e intellettuale dalle centrali di finanziamento del progetto. E ciascuna di queste innovazioni, proprio perché nata in tali contesti, è divenuta subito patrimonio comune. Internet insomma è stata sin dall'origine caratterizzata da un'ampia e soprattutto libera circolazione delle idee e delle tecnologie. A questo si deve la sua evoluzione, il suo successo e la sua sempre più determinante influenza sul modo di vivere odierno. Il rischio di un’involuzione di questa natura, semmai, è assai più vicino oggi. Il successo e la diffusione planetaria (anche se la visione del pianeta propugnata da queste statistiche è alquanto sbilanciata verso il nord industrializzato), hanno infatti attratto enormi interessi economici e finanziari. Tutti si affannano a trovare il modo per fare soldi con Internet e, naturalmente, per far soldi occorre impedire che le risorse circolino gratuitamente. Questo

Page 7: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

non vuol dire che la rete sia necessariamente destinata a divenire una sorta di supermercato digitale globale. Né che lo sviluppo commerciale di Internet sia da considerarsi in sé un male. Ci preme solo ricordare che ciò che adesso è Internet è il prodotto della libera circolazione delle idee, della cooperazione intellettuale, della mancanza di steccati e confini. E che questo lato della rete deve continuare ad esistere, affinché Internet mantenga intatto il suo fascino e il suo interesse. Per fortuna, i naviganti virtuali, anche ora che sono diversi milioni, continuano a condividere questa nostra convinzione.

1.2 – La “preistoria” di Internet Ripercorrere la storia della tecnologia è un’attività complessa. Forte è il rischio di cadere in visioni semplicistiche, e di concedere troppo ai tentativi di “reductio ad unum”. E’ però anche vero, che raramente lo sviluppo di una tecnologia e delle sue basi teoriche hanno un andamento lineare. Ed è altrettanto vero che quasi mai le sue origini sono riconducibili ad un solo individuo, ad un unico progetto, ad un sistema teorico coerente. Se questo è vero in generale, tanto più lo è per ciò che oggi chiamiamo Internet. Alla nascita vera e propria della rete, infatti, hanno contribuito diverse idee e altrettanti protagonisti, diversi dei quali lo hanno fatto soltanto in modo indiretto. Vediamo allora di individuare quali sono state le istanze che nel loro complesso costituiscono la “preistoria” di Internet.

Il contesto in cui si colloca questa preistoria é quello della “guerra fredda” e della contesa tecnologica che ne derivò tra Stati Uniti ed Unione Sovietica. Un evento simbolico di questa contesa fu la messa in orbita del primo satellite artificiale da parte dei sovietici, lo “Sputnik”, nel 1957. Dopo il rapido superamento del gap nucleare, questo successo della tecnologia sovietica seminò nel campo occidentale, e soprattutto negli USA, una profonda inquietudine. La sicurezza della supremazia tecnico-militare su cui era fondato l'intero sistema ideologico americano era stata duramente scossa. Per cercare di ricacciare immediatamente i timori di una vera e propria arretratezza, nell'ambito dell'amministrazione USA si concepì allora l'idea di creare un'agenzia il cui compito fosse quello di stimolare e finanziare la ricerca di base in settori che avrebbero potuto avere una ricaduta militare. L'idea circolava in varie sedi, ma in particolare fu il Segretario alla difesa Neil McElroy a convincere il presidente Eisenhower della necessità che tale agenzia fosse messa alle dipendenze del Pentagono. Oltre al vantaggio di stimolare l'attività scientifica con finalità strategiche, essa avrebbe avuto anche il ruolo di ridurre le tensioni tra le varie armi nella spartizione dei fondi dedicati a ricerca e sviluppo. Nonostante l'opposizione delle gerarchie militari, nel 1958 il Congresso approvò la costituzione e il finanziamento della “Advanced Research Projects Agency”, l'ARPA, la cui sede fu stabilita nell'edificio del Pentagono a Washington. Appena

Page 8: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

costituita, l'ARPA indirizzò le sue attività nella ricerca aerospaziale: in fin dei conti, tutto era cominciato dalla paura suscitata dal lancio dello Sputnik. Ma quando pochi mesi dopo tutti i programmi spaziali vennero trasferiti (insieme agli ingenti finanziamenti) alla neonata NASA, per i dirigenti dell'ARPA fu necessario trovare una nuova area di sviluppo. Tale area fu individuata nella giovane scienza dei calcolatori. Un impulso decisivo in questa direzione venne dal terzo direttore dell'agenzia, tale Jack Ruina, il primo scienziato chiamato a ricoprire quel prestigioso incarico. Ruina introdusse uno stile di lavoro assai informale, e chiamò a lavorare con lui colleghi assai bravi ma alquanto fuori degli schemi militari. Tra questi un ruolo fondamentale fu svolto da J.C.R. Licklider, uno dei personaggi più geniali e creativi della storia dell'informatica.

1.3 – J.C.R. “Lick” Licklider Di formazione psicologo, Lick (così lo chiamavano i suoi amici) passò ben presto ad occuparsi di computer nei laboratori del MIT di Boston. Ma a differenza di tanti altri ricercatori di questo campo, il suo interesse si rivolse subito al problema delle interfacce uomo-computer ed al ruolo che i calcolatori avrebbero potuto avere per lo sviluppo delle facoltà cognitive e comunicative dell'uomo (ben trenta anni prima che questi concetti divenissero centrali nel settore informatico). Egli espose le sue idee al riguardo in un articolo uscito nel 1960 intitolato “Man-Computer Symbiosis”, che lo rese subito famoso. Appena giunto all'ARPA, iniziò a creare una rete di collegamenti tra i maggiori centri di ricerca universitari nel settore informatico, creandosi un gruppo di collaboratori che battezzò secondo il suo stile anticonformista “Intergalactic Computer Network”. Tra i molti progetti che promosse vi furono lo sviluppo dei primi sistemi informatici concorrenti basati sul time-sharing e sulla elaborazione interattiva. Ma in uno dei suoi memorandum apparve anche per la prima volta l'idea di una rete mondiale di computer. Lick rimase molto poco all'ARPA. Ma il suo passaggio lasciò un segno così profondo da influenzare tutto lo sviluppo successivo di questa agenzia. Tra le tante eredità, l'idea di far interagire i computer in una rete fu poi raccolta da Bob Taylor, giovane e brillante scienziato chiamato dal successore di Lick, Ivan Sutherland, anche lui proveniente dal MIT.

1.4 – La Rand Corporation Lasciamo per il momento la storia dell'ARPA, e dei tanti scienziati (in gran parte provenienti dal MIT) che vi hanno lavorato, per passare ad un altro dei centri legati alla ricerca militare, collocato questa volta sulla West Coast: la Rand Corporation. La Rand era un'azienda californiana nata come costola della Douglas Aircraft, e resasi autonoma nel dopoguerra allo scopo di proseguire gli sforzi di ricerca applicata che erano stati avviati nel corso del secondo conflitto mondiale. Gran parte

Page 9: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

dei suoi studi e ricerche erano commissionati dall'aviazione, e il settore aeronautico costituiva il dominio principale delle sue attività di ricerca e consulenza. Nel 1959 venne assunto alla Rand un giovane ingegnere che aveva lavorato nel settore delle valvole per computer: Paul Baran. Egli fu inserito nella neonata divisione informatica, dove si mise a lavorare su un problema che da qualche tempo veniva studiato dai tecnici della Rand: come riuscire a garantire che il sistema di comando e controllo strategico dell'esercito rimanesse, se non intatto, almeno operativo in caso di un attacco nucleare. Le reti di comunicazione tradizionali su cui si basava l'intero apparato di controllo militare, infatti, erano estremamente vulnerabili. Lavorando su questo problema, Baran giunse a due conclusioni: la prima era che una rete sicura doveva avere una configurazione decentralizzata e ridondante, in modo che esistessero più percorsi possibili lungo i quali far viaggiare un messaggio da un punto all’altro; la seconda, legata alla prima, era che il sistema di telecomunicazioni doveva basarsi sulle nuove macchine di calcolo digitale, in grado di applicare sistemi di correzione degli errori e scelta dei canali comunicazione. Sviluppando i suoi calcoli Baran aveva elaborato un modello in cui ciascun nodo fosse collegato ad almeno altri quattro nodi, e nessun nodo avesse la funzione di concentratore, al contrario di quanto avveniva per la rete telefonica. In questo modo, ogni nodo poteva continuare a lavorare, ricevendo, elaborando e trasmettendo informazioni, anche nel caso in cui alcuni fra i nodi vicini fossero stati danneggiati. L'assenza di un nodo centrale inoltre eliminava ogni possibile obiettivo strategico la cui distruzione avrebbe compromesso il funzionamento dell'intera rete. Oltre all'idea di una rete decentrata e ridondante, Baran ebbe anche un'altra intuizione geniale: piuttosto che inviare un messaggio da un nodo all'altro come un unico blocco di bit, era meglio dividerlo in parti separate, che potessero viaggiare attraverso vari percorsi verso la destinazione, dove sarebbero stati ricomposti. Convinto della bontà del suo progetto, intorno agli anni 60 iniziò a pubblicare vari articoli; ma le sue idee trovarono una decisa opposizione, soprattutto da parte di quella che avrebbe dovuto esserne la principale destinataria: la AT&T, monopolista delle telecomunicazioni. Dopo vari tentativi di convincere i tecnici del colosso industriale a prendere in esame il progetto, nel 1965 Baran si diede per vinto e si dedicò su altri progetti.

1.5 – Donald Davies ed il “packet switching” Proprio in quegli anni, in modo del tutto indipendente, un fisico inglese che lavorava al National Physical Laboratory, Donald Davies, era giunto a conclusioni assai simili a quelle di Baran, seppur partendo da premesse diverse. Il suo problema, infatti, era la creazione di una rete pubblica abbastanza veloce ed efficiente da mettere a disposizione le capacità di elaborazione interattiva dei computer di seconda generazione anche a distanza, senza che le differenze di sistema operativo condizionassero la comunicazione.

Page 10: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

La soluzione trovata da Davies si basava sull'idea di suddividere i messaggi da inviare in blocchi uniformi: in questo modo un computer avrebbe potuto gestire l'invio e la ricezione di molti messaggi contemporaneamente suddividendo il tempo di elaborazione per ciascun messaggio in ragione dei blocchi di dati. Egli ebbe l'idea di denominare tali parti di messaggio “pacchetto” (packet), ed il sistema di comunicazione “commutazione di pacchetto” (packet switching), alternativa alla “commutazione di circuito” su cui si basavano i sistemi telefonici tradizionali (un confronto più dettagliato tra queste due tecniche, è illustrato nel paragrafo 2.6). Tutte queste idee ed intuizioni teoriche, elaborate in sedi diverse e indipendenti, confluirono pochi anni dopo nel progetto “Arpanet”, la progenitrice di Internet.

1.6 – Bob Taylor, Larry Roberts e l’ideazione di Arpanet Bob Taylor si era brillantemente laureato in psicologia e matematica, preparando un’ottima tesi di dottorato in psicoacustica. Aveva conosciuto Licklider nel 1963, facendo su di lui un’ottima impressione, e stabilendo una relazione di amicizia e stima reciproca. Per queste ragioni il successore di Lick all'Ufficio Tecniche di Elaborazione dell'Informazione (IPTO) dell'ARPA, Ivan Sutherland (il padre della computer graphic), lo chiamò come suo collaboratore nel 1965. Pochi mesi dopo anche Sutherland si dimise e Taylor, a soli 34 anni, ne assunse il posto. Entrando nella sala computer del suo ufficio, Bob si rese conto in prima persona di quanto assurda fosse l'incomunicabilità reciproca che quelle possenti e costose macchine presenti dimostravano. Possibile non essere in grado di condividere risorse tanto costose, come Licklider aveva più volte suggerito? Spinto da questa profonda frustrazione, Taylor si decise a sottoporre al direttore dell'agenzia, Charles Herzfeld, il finanziamento di un progetto volto a consentire la comunicazione e lo scambio di risorse tra i computer dei vari laboratori universitari finanziati dall'agenzia. Il progetto, che avrebbe consentito all’agenzia di risparmiare un sacco di fondi, fu naturalmente approvato e lo scienziato ebbe carta bianca. Iniziò così la storia di Arpanet, la rete dell'ARPA. Come prima mossa, Taylor decise di chiamare a sovraintendere agli aspetti tecnici del progetto un giovane e geniale informatico che aveva conosciuto al MIT, Larry Roberts. Dopo un iniziale rifiuto, Roberts accolse l'invito e si mise subito al lavoro prendendo contatto con i migliori colleghi disponibili sulla piazza, tra cui Frank Heart, il massimo esperto di elaborazione in tempo reale. Per molti mesi, però, il problema di progettare una rete abbastanza affidabile e veloce da permettere l'elaborazione interattiva a distanza rimase insoluto. Questo finché, verso la fine del 1967, Roberts partecipò ad una conferenza alla quale intervenne un collaboratore di Donald Davies, che illustrò il principio della commutazione di pacchetto, facendo anche riferimento ai lavori precedenti di Baran su questo tema. Per gli uomini dell’ARPA, fu come trovare l'ago nel pagliaio. Nel giro di sei mesi, Roberts elaborò le specifiche di

Page 11: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

progetto della rete, facendovi confluire tutte quelle idee che erano rimaste nell'aria per oltre un decennio. La rete dell'ARPA sarebbe stata una rete a commutazione di pacchetto in tempo reale. Per migliorarne l'efficienza e l'affidabilità, Roberts accolse nel suo progetto una idea di Wesley Clark: piuttosto che collegare direttamente i vari grandi computer, ogni nodo sarebbe stato gestito da un computer specializzato, dedicato alla gestione del traffico (battezzato “Interface Message Processor”, IMP) al quale sarebbe stato connesso il computer che ospitava i veri e propri servizi di elaborazione. Dunque, se è vero che il progetto della rete nacque in un contesto militare, la diffusa opinione che essa dovesse fungere da strumento di comunicazione sicuro tra i centri di comando militari nell'evenienza di una guerra nucleare è frutto di un equivoco storiografico. L'obiettivo perseguito da Bob Taylor, in realtà, era quello di aumentare la produttività e la qualità del lavoro scientifico nei centri finanziati dall'ARPA, permettendo ai ricercatori universitari di comunicare e di condividere le risorse informatiche, a quei tempi costosissime e di difficile manutenzione. Parte dell'equivoco circa le origini belliche della rete deriva dal fatto che nella stesura delle specifiche, Larry Roberts riprese le idee elaborate da Baran all'inizio degli anni 60.

1.7 – Anno 1969: Arpanet, dalla teoria alla sperimentazione La fase esecutiva del progetto Arpanet prese il via nel 1969. Dopo una gara di appalto alla quale parteciparono diversi grandi colossi dell'industria informatica del tempo, la realizzazione degli IMP (il vero cuore della rete) venne sorprendentemente assegnata alla Bolt Beranek and Newman (BBN), una piccola azienda con sede a Cambridge, la cittadina nei pressi di Boston dove sorgevano i due istituti universitari più importanti del paese: Harvard e MIT. Nel corso degli anni, questa piccola società era divenuta una specie di terza università, alle cui dipendenze avevano lavorato tutti i più brillanti ricercatori di quelle grandi università. Quando venne affidato l'appalto dell'ARPA, direttore della divisione informatica era Frank Heart. Oltre ad essere un valente scienziato, Heart era anche un ottimo manager. Egli dunque assunse in prima persona la responsabilità del progetto degli IMP, creando un gruppo di collaboratori di altissimo livello, tra cui Bob Kahn, uno dei massimi teorici delle reti di computer dell'epoca, che ebbe un ruolo fondamentale nella progettazione dell'intera architettura della rete. Il primo IMP (delle dimensioni di un moderno frigorifero) fu consegnato alla University of California il due settembre, e fu immediatamente connesso al grande elaboratore SDS Sigma 7 della UCLA senza alcuna difficoltà. Il primo di ottobre fu installato il secondo IMP presso lo Stanford Research Institute (SRI), dove fu collegato ad un mainframe SDS 940. Il progetto dell'ARPA si era finalmente materializzato in una vera rete, costituita da due nodi connessi con una linea dedicata a 50 kbps. Dopo qualche giorno fu tentato il primo collegamento tra host facendo simulare al Sigma 7 il

Page 12: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

comportamento di un terminale remoto del 940. L'esperimento, seppure con qualche difficoltà iniziale (al primo tentativo, una valvola del Sigma 7 andò in fumo mentre gli scienziati erano appena arrivati a digitare la lettera “g” di “login”), andò a buon fine, e dimostrò che la rete poteva funzionare. Nei mesi successivi vennero collegati i nodi dell'Università di Santa Barbara e dello Utah. Mentre la BBN si stava occupando dello sviluppo degli IMP, un'ulteriore fucina di cervelli si stava preoccupando dei problemi della comunicazione tra host ed IMP e soprattutto delle possibili applicazioni che la rete avrebbe potuto supportare. L'ARPA aveva deciso che questo aspetto del progetto fosse delegato direttamente ai laboratori di ricerca delle università coinvolte: dopotutto, era un problema loro sapere che cosa fare della rete, una volta che l'ARPA l'avesse realizzata.

1.8 – Le RFC e lo sviluppo dei primi protocolli di rete Nei laboratori di quei tempi, l'età media era assai bassa: i professori avevano al massimo dieci anni di più degli studenti ed erano poco più anziani dei dottorandi. Al fine di coordinare le attività, tutti i giovani ricercatori coinvolti decisero di costituire un gruppo comune, che si sarebbe riunito di tanto in tanto per esaminare il lavoro svolto, e lo battezzarono “Network Working Group” (NWG). Le riunioni del NWG assunsero subito un tono assai informale e cooperativo. Ogni idea, risorsa e strumento che veniva elaborato dai primi utenti-creatori della rete, entrava subito in circolo diventando una ricchezza comune. Uno tra i più attivi nel gruppo era Steve Crocker, della UCLA, che ne assunse la direzione. Ben presto egli si rese conto della necessità di iniziare a mettere su carta il frutto di tante discussioni. Fu così che scrisse il primo documento ufficiale del gruppo, dedicato al problema della comunicazione tra host. Tuttavia, per non esagerare nell'ufficialità, e indicare il fatto che quel documento era solo una bozza da rifinire, Crocker decise di intitolare il suo documento “Request for Comment” (RFC), richiesta di commenti. Questa denominazione dei documenti tecnici è sopravvissuta alla sua storia, ed è usata ancora oggi per siglare le specifiche tecniche ufficiali di Internet (è possibile reperire tutte le RFC all’indirizzo http://www.rfc-editor.org). Il primo risultato prodotto dal NWG alla fine del 1969 era un rudimentale sistema di terminale remoto, battezzato “telnet” (non ancora il telnet oggi in uso, le cui specifiche risalgono al 1972). Questo sistema, però, non costituiva una grande novità rispetto ai terminali dei mainframe che già erano in funzione da anni: bisognava trovare un modo per far comunicare gli host da pari a pari, un qualche insieme di regole condivise da computer diversi. Nelle discussioni spuntò l'idea di chiamare queste regole “protocolli”. Dopo un anno di lavoro, finalmente le specifiche per il protocollo di comunicazione tra host erano pronte: esso fu battezzato NCP (Network Control Protocol). Poco più tardi venne sviluppato il primo protocollo applicativo vero e proprio, dedicato al

Page 13: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

trasferimento di file da un host all'altro: il File Transfer Protocol, meglio noto come FTP. Ma l'applicazione che forse ebbe la maggiore influenza nell'evoluzione successiva della rete fu la posta elettronica. L'idea venne per caso nel marzo del 1972 a un ingegnere della BBN, Ray Tomlinson, che provò ad adattare un sistema di messaggistica sviluppato per funzionare su un minicomputer multiutente (fu lui che ebbe l'idea di separare il nome dell'utente da quello della macchina con il carattere '@'). L'esperimento funzionò, e il NWG accolse subito l'idea, integrando nel protocollo FTP le specifiche per mandare e ricevere messaggi di posta elettronica indirizzati a singoli utenti. Nel frattempo la rete Arpanet, come veniva ormai ufficialmente chiamata, cominciava a crescere. I nodi, nel 1971, erano divenuti quindici e gli utenti alcune centinaia. Nel giro di pochi mesi tutti coloro che avevano accesso ad un host iniziarono ad usare la rete per scambiarsi messaggi. E si trattava di messaggi di tutti i tipi: da quelli di lavoro a quelli personali. La rete dell'ARPA era divenuto un ottimo sistema di comunicazione tra una comunità di giovani ricercatori di informatica! Intorno alla posta elettronica crebbe anche il fenomeno del software gratuito. Infatti ben presto cominciarono ad apparire programmi (che oggi chiameremmo “freeware”) per leggere i messaggi, sempre più raffinati e dotati di funzionalità evolute, che venivano liberamente distribuiti mediante FTP.

A questo punto, Larry Roberts decise che era giunto il tempo di mostrare pubblicamente i risultati conseguiti dal progetto e affidò a Bob Khan l'organizzazione di una dimostrazione pubblica. L'evento ebbe luogo nell'ambito della “International Conference on Computer Communications” che si tenne nell'ottobre del 1972. Fu un successo oltre ogni aspettativa. In quell’occasione si decise anche di fondare l’“International Network Working Group”, che avrebbe ereditato la funzione di sviluppare gli standard per la rete Arpanet dal precedente NWG. La direzione fu affidata a Vinton Cerf, uno dei più brillanti membri del gruppo della UCLA. Poco dopo, Cerf, che nel frattempo aveva ottenuto una cattedra a Stanford, fu contattato da Kahn per lavorare insieme ad un problema nuovo: come far comunicare tra loro reti basate su tecnologie diverse? In quegli anni, infatti, erano stati avviati anche altri esperimenti nel settore delle reti di computer, alcuni dei quali basati su comunicazioni radio e satellitari (in particolare va ricordata la rete Aloha-Net, realizzata dalla University of Hawaii per collegare le sedi disperse su varie isole, le cui soluzioni tecniche avrebbero dato lo spunto a Bob Metcalfe per la progettazione di Ethernet, la prima rete locale).

1.9 – Finalmente il TCP/IP Se si fosse riuscito a far comunicare questa miriade di reti diverse, sarebbe stato possibile diffondere le risorse disponibili su Arpanet ad una quantità di utenti assai maggiore, con costi molto bassi. Kahn e Cerf, si misero a lavorare alacremente intorno

Page 14: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

a questo problema ed in pochi mesi elaborarono le specifiche di un nuovo protocollo di comunicazione tra host, che battezzarono “Transmission Control Protocol”. Il TCP implementava pienamente l'idea della comunicazione a pacchetti, ma era indipendente dalla struttura hardware; esso introduceva anche il concetto di “gateway”, una macchina che doveva fare da raccordo tra due reti diverse. I risultati di questo lavoro furono pubblicati nel 1974 in un articolo dal titolo “A Protocol for Packet Network Internetworking”, in cui comparve per la prima volta il termine 'internet' (notare la lettera minuscola; la differenza tra internet ed Internet verrà affrontata in un apposito paragrafo del capitolo relativo al TCP/IP). Le ripercussioni dell'articolo dei due informatici furono enormi. Ben presto, numerosi ricercatori si posero a rifinire la proposta iniziale e a sperimentarne varie implementazioni. La prima dimostrazione pubblica di un collegamento tra Arpanet, Satnet e Packet Radio Network fu fatta nel luglio del 1977, con un sistema che collegava un computer in viaggio su un camper lungo la Baia di San Francisco a uno installato a Londra. Il collegamento funzionò perfettamente e convinse la DARPA (al nome originale dell'agenzia si era aggiunto il termine “Defense”) a finanziarne lo sviluppo. Un anno dopo, Cerf, Steve Crocker e Danny Cohen svilupparono il progetto iniziale del nuovo protocollo dividendolo in due parti: TCP, che gestiva la creazione e il controllo dei pacchetti, e IP che invece gestiva l'instradamento dei dati. Pochi anni dopo il TCP/IP sarebbe stato adottato ufficialmente come protocollo standard della rete Arpanet (e di tutte le reti finanziate dall'agenzia), sostituendo l'ormai datato e inefficiente NCP, e aprendo la strada alla nascita di Internet quale la conosciamo oggi.

Nel frattempo, Arpanet, la cui gestione era passata dalla DARPA alla DCA (Defense Communication Agency), continuava la sua espansione, sia come diffusione sia, soprattutto, come servizi e applicazioni che vi venivano sviluppati. Nel giugno del 1975 era stato creato il primo gruppo di discussione basato sulla posta elettronica, ospitato sull'host della DARPA e battezzato MsgGroup. I temi che vi si discutevano erano di ambito tecnico, ma non mancarono polemiche su fatti esterni. Visto il successo di MsgGroup, ben presto fecero la loro comparsa altri gruppi di discussione non ufficiali ospitati sugli host universitari: si narra che il primo fu SF-Lovers, dedicato agli amanti della fantascienza. Come aveva previsto Licklider ormai quindici anni prima, sulla base di un sistema di comunicazione interattivo fondato sui computer si era costituita una vera e propria comunità intellettuale.

1.10 - Da Arpanet a Internet Il successo di Arpanet nella comunità scientifica aveva dimostrato ampiamente i vantaggi che le reti di comunicazione telematiche potevano avere nell'attività di ricerca. Tuttavia, alle soglie degli anni '80, delle centinaia di dipartimenti di informatica del

Page 15: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

paese, solo 15 di questi avevano il privilegio (ma anche gli oneri finanziari) di possedere un nodo. Questa sperequazione era vista come un pericolo di impoverimento del sistema della ricerca universitaria. Per ovviare a tale rischio la “National Science Foundation” (NSF), un ente governativo preposto al finanziamento della ricerca di base, iniziò a sponsorizzare la costruzione di reti meno costose tra le università americane. Nacque così, nel 1981, “Csnet” (Computer Science Network), una rete che collegava i dipartimenti informatici di tutto il sistema accademico statunitense. Già prima di questa iniziativa, comunque, alcune sedi universitarie avevano creato infrastrutture telematiche a basso costo. Nel 1979, ad esempio, era stato creata “Usenet”, che collegava i computer della Duke University e della University of North Carolina, permettendo lo scambio di messaggi articolati in forum. Nel 1981 alla City University of New York venne creata “Bitnet” (acronimo della frase “Because It's Time Net”), che fu estesa ben presto a Yale.

Tutte queste reti, pur avendo adottato internamente tecnologie diverse e meno costose rispetto a quelle di Arpanet, potevano comunicare con essa grazie ai gateway basati sul nuovo protocollo di internetworking TCP/IP. Ben presto anche altri paesi del blocco occidentale iniziarono a creare reti di ricerca, basate sul medesimo protocollo (le cui specifiche, ricordiamo, erano gratuite e liberamente disponibili sotto forma di RFC; il relativo archivio era gestito, sin dai tempi del NWG, da Jon Postel) e perciò in grado di interoperare con le omologhe nordamericane. Intorno alla rete dell'ARPA, andava prendendo forma una sorta di rete delle reti. A sancire la nascita definitiva di tale rete intervenne nel 1983 la decisione da parte della DCA di dividere Arpanet in due rami per motivi di sicurezza: uno militare e chiuso, inizialmente battezzato “Defense Data Network” e poi “Milnet”, e uno per la comunità scientifica, che ereditava il nome originario e che non avrebbe avuto limiti di interconnessione esterna. La vecchia Arpanet poteva così divenire a tutti gli effetti il cuore della neonata Internet. Nello stesso tempo venne fondato un nuovo organismo di gestione tecnica della rete, l'”Internet Activities Board” (IAB), e tra i suoi sottogruppi l'”Internet Engineering Task Force” (IETF), cui fu affidato il compito specifico di definire gli standard della rete, compito che mantiene ancora oggi.

Parallelamente a tali sviluppi amministrativi, anche l'evoluzione tecnica della rete procedeva, raggiungendo proprio in quegli anni due tappe basilari: il 1 gennaio 1983, su decisione di DARPA e DCA, tutti i nodi di Arpanet passarono ufficialmente dal vecchio NCP a TCP/IP. Si narra che tutto filò liscio, anche se da un responsabile di nodo all'altro rimbalzò il messaggio "I survived the TCP/IP transition" (letteralmente: “Sono sopravvissuto al passaggio al TCP/IP”). Approfittando del clima di riorganizzazione che seguì la transizione, Paul Mockapetris, Jon Postel (che nel frattempo aveva anche definito il nuovo protocollo per la posta

Page 16: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

elettronica, il “Simple Mail Transfer Protocol”) e Craig Partridge si misero a lavorare ad un nuovo sistema per individuare i nodi della rete, assai più facile da maneggiare rispetto agli indirizzi numerici IP. Nel novembre dello stesso anno, dopo alcuni mesi di lavoro pubblicarono le RFC 892 e 893 che delineavano il “Domain Name System” (DNS). Ci volle ancora un anno intero di discussioni prima che il DNS fosse accettato da tutti e messo in funzione, ma quando questo avvenne tutti gli elementi tecnici affinché la diffusione di Arpanet/Internet esplodesse erano ormai disponibili.

A dare il via a tale esplosione fu ancora una volta la NSF. Dopo il successo dell'esperimento Csnet, l'ente federale per la ricerca era sempre più convinto della necessità di dotare il sistema universitario di una infrastruttura telematica ad alta velocità. Il problema fu che i fondi a sua disposizione si rivelarono del tutto insufficienti per tale obiettivo. Per ovviare a tale limite la NSF decise di coinvolgere direttamente le università nella costruzione della nuova infrastruttura. Essa si assunse direttamente l'onere di realizzare una “backbone” (in italiano è generalmente definita come “dorsale”) ad alta velocità, che congiungesse i cinque maggiori centri di supercalcolo del paese con una linea dedicata a 56 Kbps. Tale backbone, fu battezzata NSFnet. Tutte le altre università avrebbero potuto accedere gratuitamente a tale rete a patto di creare a loro spese le infrastrutture locali. Il progetto fu avviato nel 1986 ed ebbe un successo enorme. Nel giro di un anno quasi tutte le università statunitensi aderirono all'offerta della NSF, e si riunirono in consorzi per costruire una serie di reti regionali, a loro volta connesse a NSFnet. A ciò si affiancò la diffusione delle reti locali, la cui commercializzazione era appena iniziata. Come risultato, il numero di host di quella che è ormai possibile chiamare Internet, decuplicò, raggiungendo la quota di diecimila. Ma si trattò appena di un inizio. Il successo riportato dai protocolli TCP/IP, e da tutti gli altri protocolli applicativi che su di esso si basavano, stimolò la nascita di altre reti di ricerca nazionali, in gran parte dei paesi occidentali. Ormai, anche le reti private come Decnet, Compuserve e MCI decisero di connettersi ad Internet. Come conseguenza fra il 1985 e il 1988 il backbone della NSFnet dovette essere aggiornato ad una rete T1 a 1,544 Mbps, e un anno dopo il numero di host superò le 100 mila unità. A questo punto divenne evidente che la vecchia Arpanet aveva ormai esaurito la sua funzione. Tutti i nuovi accessi passavano per la più veloce, evoluta ed economica NSFnet. Inoltre la DARPA (dove non era rimasto nessuno dei grandi protagonisti della storia di Arpanet) era ormai rivolta ad altri interessi e non intendeva più spendere i 15 milioni di dollari annui per quella vecchia rete. Fu così che qualcuno (ma nessuno in particolare si assunse pubblicamente il compito) prese la decisione di staccare la spina. Nel 1989, a venti anni dalla sua nascita, il processo di smantellamento di Arpanet ebbe inizio. Tutti i siti vennero trasferiti alla rete della NSF o a qualcuna delle reti regionali. Alla fine dell'anno Arpanet aveva cessato di

Page 17: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

esistere, e il glorioso IMP numero 1 divenne un reperto in mostra alla UCLA, dove tutto era iniziato.

1.11 – Il World Wide Web e l'esplosione di Internet Per molti anni, la rete era stata uno strumento, alquanto esoterico, nelle mani di poche migliaia di studenti e ricercatori di informatica. Alcuni di loro potevano affermare senza battere ciglio di conoscere a memoria l'indirizzo di ogni singolo host. Ma la diffusione che conseguì alla nscita di NSFnet aveva cambiato radicalmente il quadro demografico degli utenti. Agli informatici (accademici e professionisti) si erano affiancati i fisici, i chimici, i matematici e anche alcuni rari studiosi dell'area umanistica. Senza contare che le reti universitarie iniziavano a fornire accessi anche agli studenti “undergraduate”, ed a fornire informazioni amministrative attraverso i loro host. Nel contempo, la quantità di risorse disponibili cresceva in modo esponenziale, e nessuno era ormai più in grado di tenerne il conto con il solo aiuto della memoria. Tutte queste ragioni, che si sommavano allo spirito di innovazione e di sperimentazione che aveva caratterizzato gli utenti più esperti della rete, determinarono agli inizi degli anni 90 una profonda trasformazione dei servizi di rete e la comparsa di una serie di nuove applicazioni decisamente più user friendly. Il primo passo in questa direzione fu lo sviluppo nel 1989 di un programma in grado di indicizzare il contenuto dei molti archivi pubblici di file basati su FTP, da parte di Peter Deutsch, un ricercatore della McGill University di Montreal. Il programma fu battezzato Archie, e in breve tempo gli accessi all'host su cui era stato installato generarono più della metà del traffico di rete tra Canada e USA. Preoccupati da tale situazione, gli amministratori della McGill decisero di impedirne l'uso agli utenti esterni. Ma il software era ormai di pubblico dominio, e numerosi server Archie comparvero su Internet. Poco tempo dopo, Brewster Kahle, uno dei migliori esperti della Thinking Machine, azienda leader nel settore dei supercomputer paralleli, sviluppò il primo sistema di “information retrieval” distribuito, il “Wide Area Information Server” (WAIS). Si trattava di un software molto potente che permetteva di indicizzare enormi quantità di file di testo e di effettuare ricerche su di essi grazie a degli appositi programmi client. Le potenzialità di WAIS erano enormi, ma la sua utilizzazione era alquanto ostica, e ciò ne limitò la diffusione. Nel momento di massimo successo il server WAIS principale istallato alla Thinking Machine ospitò circa 600 database, tra cui l'intero archivio delle RFC. Ben più fortunata, anche se altrettanto breve, fu la vicenda del primo strumento di interfaccia universale alle risorse di rete orientato al contenuto e non alla localizzazione: il Gopher. Le sue origini risalgono al 1991, quando Paul Lindner e Mark P. McCahill della University of Minnesota decisero di realizzare il prototipo di un sistema di accesso alle risorse di rete interne al campus la cui interfaccia fosse basata su menu descrittivi, e che adottasse una architettura client-server (in modo da rendere possibile la distribuzione su

Page 18: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

più host del carico di indicizzazione). Il nome, ispirato alla marmotta scavatrice simbolo dell'università, si dimostrò un'ottima scelta. Nel giro di due anni il programma (i cui sorgenti furono messi a disposizione liberamente, un po’ come succede oggi con i software GNU per Linux) si diffuse in tutta la rete, arrivando a contare più di 10 mila server e divenendo l'interfaccia preferita della maggior parte dei nuovi utenti. Al suo successo contribuì notevolmente lo sviluppo di un programma che permetteva di effettuare ricerche per parole chiave su tutti i menu del gopherspace, denominato Veronica e la cui origine si colloca nell’ambito della Duke University. Ma proprio mentre il Gopher raggiungeva l'apice del suo successo, un altro sistema, sviluppato nei laboratori informatici del CERN di Ginevra, cominciò ad attirare l'attenzione della comunità di utenti Internet: il “World Wide Web”. Il primo documento ufficiale in cui si fa riferimento a questo strumento risale al marzo del 1989. In quell'anno Tim Berners Lee, un fisico in carica al centro informatico del grande laboratorio, concepì l'idea di un "sistema ipertestuale per facilitare la condivisione di informazioni tra i gruppi di ricerca nella comunità della fisica delle alte energie", e ne propose lo sviluppo al suo centro. Avuto un primo assenso, si mise al lavoro sulla sua idea, coadiuvato dal collega Robert Cailliau (a cui si deve il simbolo costituito da tre 'W' sovrapposte in colore verde). Nel novembre del 1990 i due firmarono un secondo documento, assai più dettagliato, che descriveva il protocollo HTTP, il concetto di browser e server, e che rendeva pubblico il nome ideato da Berners Lee per la sua creatura, appunto World Wide Web. Nel frattempo, Berners Lee, lavorando con la sua nuova workstation Nextstep, un vero e proprio gioiello dell'informatica, sviluppò il primo browser/editor Web (battezzato con poca fantasia World Wide Web anch'esso). Le funzionalità di quel programma erano avanzatissime (ancor oggi i browser di maggiore diffusione non hanno implementato tutte le caratteristiche del primo prototipo), ma purtroppo le macchine Next in giro per il mondo erano assai poche. Per facilitare la sperimentazione del nuovo sistema ipertestuale di diffusione delle informazioni su Internet, Berners Lee realizzò un browser con interfaccia a caratteri, facilmente portabile su altre architetture, e lo battezzò “Line Mode Browser”. Esso venne distribuito nel marzo del 1991, in formato sorgente non compilato, attraverso alcuni gruppi di discussione. Una versione già compilata fu messa on-line e resa accessibile tramite un collegamento telnet pubblico su un host del CERN. Intanto iniziavano a sorgere i primi server Web esterni al CERN ma sempre legati al mondo della fisica nucleare. Alla fine dell'anno se ne contavano circa cinquanta. L'interesse intorno a questa nuova applicazione iniziava a crescere, ma l'ostica interfaccia a caratteri del browser ne limitava la diffusione. Un primo aiuto in questo senso venne nel 1992, quando Pei Wei, uno studente di Stanford, realizzò un browser grafico per X-window, battezzato “WWW Viola”. Fu proprio provando Viola che Marc Andressen, studente specializzando presso il National Center for Supercomputing Applications (NCSA) della University of Illinois,

Page 19: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

concepì l'idea di sviluppare un browser web grafico. Insieme al suo compagno di studi Eric Bina, Marc creò Mosaic. La prima versione per Unix X-window fu rilasciata nel gennaio 1993. Nel settembre dello stesso anno, il gruppo di programmatori raccoltosi intorno a Mark ed Eric rilasciò le prime versioni per Windows (che all’epoca aveva raggiunto la versione 3.0) e Macintosh. Mosaic fu una vera e propria rivelazione per gli utenti Internet. La semplicità di installazione e di uso ne fece una “killer application”, che nel giro di pochi mesi attrasse su World Wide Web migliaia di utenti, e che soprattutto rese evidente un modo nuovo di utilizzare i servizi della rete Internet, completamente svincolato dalla conoscenza di complicate sintassi e lunghi elenchi di indirizzi. Grazie a Mosaic ed alla sottostante architettura Web, Internet divenne uno spazio informativo ipermediale aperto che era alla portata di chiunque con il minimo sforzo.

Tutto ciò accadeva mentre Internet aveva già raggiunto i due milioni di host, ed il backbone della NSFnet era stato portato ad una banda passante di 44,736 Mpbs. Ma l'introduzione del binomio Mosaic/Web ebbe la forza di un vero e proprio 'Big bang'. Dalla fine del 1993 gli eventi si fanno ormai concitati. A fine anno Marc Andressen lasciò il NCSA. Nel marzo dell'anno dopo incontrò uno dei fondatori della Silicon Graphics, Jim Clark, che lo convinse a fondare una società per sfruttare commercialmente il successo di Mosaic. Il nome scelto per la società in un primo momento fu Mosaic Communication, ma, per evitare di pagare royalties al NCSA, fu deciso di cambiarlo in Netscape Communication, e di riscrivere da zero un nuovo browser Web, dopo avere cooptato la maggior parte dei vecchi amici e collaboratori di Mark. Pochi mesi dopo fu distribuita la prima versione beta di Netscape Navigator, le cui caratteristiche innovative ne fecero quasi immediatamente l'erede di Mosaic. Il 25 maggio del 1994 si tenne a Ginevra la prima “WWW Conference” (alcuni la hanno battezzata la 'Woodstock del Web'), seguita nell'ottobre da una seconda tenuta a Chicago. Da quei primi incontri si presero le mosse per la fondazione del “W3 Consortium” (la prima riunione risale al 14 dicembre 1994), una organizzazione voluta da Tim Berners Lee al fine di gestire in modo pubblico e aperto lo sviluppo delle tecnologie Web, così come era avvenuto per tutte le precedenti tecnologie che erano state sviluppate sulla e per la rete sin dai tempi del NWG.

Ma i tempi, appunto, erano ormai cambiati profondamente. Con cinque milioni di host, tra cui 25 mila server Web (moltiplicatisi secondo un ritmo di crescita geometrico), la nuova Internet era ormai pronta ad una ennesima mutazione. Da un sistema di comunicazione fortemente radicato nell'ambiente accademico, stava infatti per divenire un vero e proprio medium globale, in grado di generare profitti miliardari. Già da qualche anno, la rigida chiusura al traffico commerciale sul backbone NSFnet era stata sostituita da una ben più ampia tolleranza. Il 30 aprile del 1995

Page 20: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

la NSF chiuse definitivamente il finanziamento della sua rete, che venne ceduta ad un gestore privato. Nel frattempo, molte grandi multinazionali delle telecomunicazioni avevano già iniziato a vendere connettività Internet per conto proprio. Il controllo tecnico della rete rimaneva in mano alla Internet Society, una organizzazione no profit fondata nel 1992 alle cui dipendenze erano state messe IAB e IETF. Ma il peso dei grandi investimenti cominciava a farsi sentire, specialmente con l'entrata in campo della Microsoft, e con la reazione al suo temuto predominio da parte di altri attori, vecchi e nuovi, dell'arena dell'Information Technology.

Il resto, l'esplosione di Internet come numero di host, di utenti e come fenomeno mediatico, è cronaca dei giorni nostri.

Page 21: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

Capitolo 2: Le reti di computers 2.1 - Local Area Network (LAN)

Le reti locali (LAN), sono il più comune tipo di rete presente nei piccoli uffici. Una rete locale presenta le seguenti caratteristiche:

• opera su di un'area ristretta. Può trattarsi di un piano di un edificio o di un singolo edificio;

• gli host all'interno della LAN sono collegati tra di loro per mezzo di connessioni di rete ad elevata capacità di banda, tipo ethernet o token ring;

• spesso, tutti gli aspetti della rete locale sono gestiti privatamente. Non occorre l'intervento di terze parti per le soluzioni che riguardano la connettività;

• i servizi delle reti locali sono disponibili 7 giorni alla settimana, 24 ore su 24.

Parlando dei sistemi operativi di rete, si possono trovare due tipi fondamentali di reti locali: quelle paritetiche e quelle basate su server.

Le reti paritetiche (dette anche "peer-to-peer") operano senza server dedicati sulla rete. Ciascun host funge sia da client che da server. L'utente di ciascun host determina le informazioni o le periferiche che desidera condividere con gli altri membri della rete. Le reti paritetiche, in genere, sono relegate alle organizzazioni più piccole, poiché non si adattano bene a quelle di dimensioni maggiori. Presentano inoltre diversi problemi per quanto riguarda la sicurezza, dato che questa dipende dalla capacità di ciascun utente host di controllare la propria protezione.

Nelle reti basate su server, invece, almeno un host é dedicato alla funzione di server. I computer client non condividono alcuna informazione con gli altri computer. Tutti i dati sono archiviati sul server centrale. Molte reti aziendali si basano su questa metodologia. Nell'ambito di una rete basata su server, i server possono giocare parecchi ruoli, tra i quali:

• server di file e di stampa. Forniscono un deposito sicuro per tutti i dati. Possono anche gestire le code di stampa, che offrono l'accesso alle risorse di stampa condivisibili sulla rete;

• server di applicazione. Forniscono la parte del server nelle applicazioni client/server. In un ambiente client/server, il client fa girare una piccola versione del programma (stub), che permette la connessione con il server. La parte server dell'applicazione, ha poi lo scopo di eseguire, per conto del client, le interrogazioni che richiedono molta potenza elaborativa. I server Web ed i server di database sono esempi di server di applicazioni;

• server della posta. Forniscono funzioni di inoltro e di ricezione della posta elettronica ai client della rete. Ricorrendo a dei gateway, il trasporto può avvenire tra sistemi di posta omogenei;

• server fax. Forniscono, agli utenti della rete, servizi per l'inoltro e la ricezione di fax;

Page 22: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

• server della sicurezza. Sono dedicati alla sicurezza sulla rete locale, nel caso questa sia collegata a qualche rete più grande, come per esempio Internet. I server della sicurezza comprendono i firewall ed i server proxy;

• server di comunicazione. Consentono che vi sia un flusso di dati esterno tra la rete ed i client remoti. Un client remoto può utilizzare un modem per chiamare telefonicamente la rete locale. Il sistema contattato é il server di comunicazione, il quale può essere configurato con uno o più modem, per consentire l'accesso esterno alla rete. Dopo che il client si é collegato alla rete, esso può agire come se vi fosse direttamente connesso per mezzo di una scheda di rete.

Nell'implementazione di una rete locale, bisogna prendere in considerazione parecchi aspetti della rete, tra cui la collocazione dei computer, l'ubicazione dei cavi e l'hardware richiesto per la connessione. Il termine usato per definire questi problemi connessi alla progettazione di una rete, é "topologia di rete". Al momento attuale, per le reti locali si utilizzano comunemente queste quattro topologie:

• reti a bus;

• reti a stella;

• reti ad anello;

• reti a doppio anello.

2.1.1 - Reti a bus

La rete a bus é il metodo più semplice utilizzato per mettere in rete i computer. Consiste in un singolo cavo che connette tutti i computer, i server e le varie periferiche in un singolo segmento di rete. Gli host su una rete a bus, comunicano tra loro mettendo le informazioni sul cavo, indirizzate all'indirizzo fisico della scheda di rete usata per connettere il computer destinatario al segmento di rete. Questo indirizzo fisico prende il nome di indirizzo Media Access Control (MAC). I dati messi sulla rete vengono inviati a tutti i computer che fanno parte della rete stessa. Ciascun computer esamina questi dati, per scoprire se l'indirizzo di destinazione delle informazioni corrisponde al proprio indirizzo MAC. In caso affermativo, il computer legge le informazioni, altrimenti le scarta. Le reti ethernet costituiscono l'implementazione più comune delle reti a bus. Esse si servono di un metodo chiamato "Carrier Sense Multiple Access with Collision Detection" (CSMA/CD). Ciò significa che un solo computer per volta può inviare dati sulla rete a bus. Se un host volesse trasmettere dati e scopre che vi sono già altri dati in transito sulla rete, esso deve aspettare che questa sia libera prima di trasmettere le sue informazioni.

Page 23: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

Se due host iniziano contemporaneamente a trasmettere dati sulla rete, avviene un fenomeno chiamato “collisione”. Gli host possono accorgersi di questa situazione ed inviare sulla rete un segnale di ingorgo. Questo fa sì che la collisione duri abbastanza a lungo perché tutti gli altri host la riconoscano. Ciascun host trasmittente aspetta un periodo di tempo casuale prima di tentare di nuovo l’invio dei dati. Questo intervallo di tempo è reso casuale per ovvi motivi. Se infatti due host rilevassero una collisione e dopo un periodo di tempo T tornassero entrambi ad inviare il messaggio, vi sarebbe nuovamente una collisione. Si creerebbe insomma un ciclo di durata virtualmente infinita, durante il quale tutti gli host sarebbero esclusi dalla rete. 2.1.2 – Reti a stella

In una rete a stella, i segmenti di cavo da un’unità centrale di connessione (hub), connettono tutti i computer. In alcuni casi, l’hub può prendere anche il nome di “concentratore”. Questa che impiega un hub è una delle topologie di rete in assoluto più utilizzate. Il vantaggio principale, rispetto ad una rete a bus è che, se un segmento di cavo si rompe, solo l’host connesso alla hub su quel segmento di cavo ne è influenzato. Di seguito, sono elencati altri vantaggi della topologia di rete a stella:

• è possibile disporre più hub, uno sopra all’altro, in modo di aumentare il numero di porte che collegano gli host alla pila di hub. In questo modo, le reti a stella, possono diventare di grandi dimensioni;

• per effettuare le connessioni con degli hub, si possono utilizzare differenti tipi di cavo;

• se si utilizza un hub attivo, è possibile controllare in via centralizzata l’attività ed il traffico sulla rete, per mezzo di protocolli per la gestione della rete, come il Simple Network Management Protocol (SNMP).

Page 24: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

2.1.3 – Reti ad anello (token ring)

In una rete ad anello, tutti i computer sono collegati tra loro in un cerchio logico. I dati viaggiano intorno al cerchio e passano attraverso tutti i computer. Nella disposizione fisica, la rete ad anello sembra seguire lo stesso schema della rete a stella. La differenza sostanziale è l’unità di connessione, conosciuta come Multi-Station Access Unit (MAU). Nella MAU, i segnali dei dati passano, in un anello, da un host a quello successivo. I dati sono trasmessi intorno all’anello per mezzo di un metodo chiamato “passaggio del testimone” o “passaggio del gettone” (in inglese, token passing). Quando un host deve trasmettere dei dati, modifica il testimone con i dati che desidera inviare e lo configura con l’indirizzo MAC dell’host destinatario.

I dati passano attraverso tutti i computer finché non raggiungono quello giusto, che, a sua volta, modifica il testimone per indicare di aver ricevuto correttamente le informazioni trasmesse. Quando l’host mittente constata l’avvenuta ricezione dei dati, il pacchetto dei dati viene rimosso dalla rete. Il testimone è quindi

Page 25: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

rilasciato, in modo che un altro host sulla rete possa trasmettere dati. In una rete con topologia ad anello, esiste un solo testimone. Se un client vuole trasmettere dati ed il testimone è già in uso, deve attendere che questo venga rilasciato. Sebbene sembri un sistema poco efficiente, è bene far presente che il testimone viaggia nell’anello ad una velocità prossima a quella della luce. Se la lunghezza totale dell’anello fosse di 400 metri (l’equivalente di una pista di atletica), un testimone sarebbe in grado di percorrerlo circa 5000 volte al secondo.

2.1.4 – Reti a doppio anello

Le reti a doppio anello, sono un’evoluzione delle più semplici token ring. Al posto di un singolo anello che collega i vari host, gli anelli utilizzati sono due (anello principale ed anello secondario). Nelle normali operazioni, tutti i dati fluiscono sull’anello principale, mentre quello secondario rimane spesso inattivo. Quest’ultimo serve solo nel caso che si verifichi una rottura sull’anello principale. L’anello, quando è necessario, riconfigura sé stesso automaticamente, in modo da utilizzare il circuito secondario, continuando pertanto a trasmettere.

Le reti a doppio anello supportano solitamente la tecnologia a fibre ottiche, detta Fiber Distribucted Data Interface (FDDI). I cavi a fibre ottiche presentano i seguenti vantaggi:

• trasmissione sicura: non vengono emessi segnali elettromagnetici passibili di intercettazione;

• distanze maggiori: fino a 1600 metri su di un unico segmento, senza bisogno di ripetitori che rafforzino il segnale;

• immunità al rumore elettromagnetico (EM noise)

2.2 – Le schede di rete (NIC)

Conosciute anche come NIU (Network Interface Units), le NIC (Network Interface Cards) sono schede a circuiti stampati che forniscono l’accesso fisico dal nodo al mezzo trasmissivo della LAN. La NIC esegue la frammentazione della trasmissione dati e la formattazione dei pacchetti di dati con l’intestazione e la coda opportune. Una NIC, conforme allo standard IEEE, contiene un indirizzo logico univoco (MAC address), codificato nell’hardware, che antepone all’intestazione di ciascun pacchetto dati. La NIC dispone in genere di una certa quantità di memoria buffer che le

Page 26: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

consente di assorbire alcuni bit trasmessi dal dispositivo associato, costituire i pacchetti e mantenerli fino a che la rete non sia disponibile. Nell’ambito del modello di riferimento OSI (che sarà illustrato nel dettaglio nel capitolo 3), le NIC operano a livello dei due strati più bassi (fisico e collegamento dati) e possono contenere un microprocessore in grado di svolgere alcune banali funzioni di elaborazione, diminuendo il carico di lavoro del dispositivo collegato (solitamente un PC). La NIC può essere inserita in uno slot di espansione del PC, oppure in un contenitore separato. In configurazione autonoma essa può gestire più dispositivi, realizzando un ulteriore controllo della contesa del mezzo trasmissivo. I transceiver, integrati nelle NIC/NIU e nei MAU, vengono inseriti nelle LAN per ricevere un segnale di trasporto e trasmetterlo lungo il percorso assegnatogli. I MAU (Media Access Units o Multistation Access Units) sono dispositivi autonomi contenenti le NIC, che supportano uno o più nodi.

(una scheda di rete della 3COM:

il modello Gigabit EtherLink Server Network Interface Card)

2.3 – Il cablaggio di una LAN

Nell’implementazione di una rete locale, assume importanza fondamentale il tipo di cablaggio da utilizzare. I cavi di rete si suddividono fondamentalmente in quattro categorie:

• cavi coassiali

• cavi twisted-pairs

• cavi USB

• cavi in fibre ottiche

Ogni tipo di cavo, possiede caratteristiche ben precise: lunghezza massima del singolo segmento, impedenza, numero massimo di host collegabili al singolo segmento e molte altre.

2.3.1 – Cavi coassiali

I cavi coassiali si dividono sostanzialmente in due tipi diversi:

• i cavi coassiali “thin ethernet” (denominati più comunemente “thinnet”);

• i cavi coassiali “thick ethernet” (denominati più comunemente “thicknet)”.

Entrambi i tipi di cavo garantiscono un’ampiezza di banda di circa 10 Mbit/sec.

2.3.1.1 – Thin Ethernet (10base-2)

Page 27: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

Si tratta del cavo di rete in assoluto più utilizzato. Un singolo segmento può essere lungo fino a 185 metri e vi possono essere collegati fino a 30 host. Mediante l’utilizzo di un ripetitore di segnale, è possibile collegare tra loro fino a 5 segmenti da 185 metri l’uno, raggiungendo la ragguardevole cifra di 925 metri. I segmenti utilizzabili per collegare gli host, sono però al massimo 3. I professionisti, infatti, dicono che il thinnet deve rispettare la regola del 5-4-3: al massimo 5 segmenti, con 4 ripetitori e 3 segmenti utili per mettere in rete le macchine. L’impedenza del cavo thinnet (o coassiale sottile) è di 50 ohm. La topologia di rete in cui questo cavo viene utilizzato è quella di una rete a bus (vedi paragrafo 2.1.1). Tra i suoi pregi vi sono un prezzo veramente concorrenziale (circa 1000 lire al metro) ed il suo limitato spessore, che ne permette una facile collocazione anche in spazi ristretti. Si tratta però di un cavo molto delicato soprattutto in considerazione della topologia di rete in cui è utilizzato. In una rete a bus, infatti, è sufficiente che un cavo si danneggi, affinché tutti gli host rimangano completamente isolati.

(due cavi coassiali sottili:

in alto un RG-58 C/U ed in basso un RG-11)

2.3.1.2 – Thick Ethernet (10-base-5)

Parente stretto del thinnet, il thicknet è caratterizzato da un maggiore spessore, che migliora la distanza massima del singolo segmento (circa 500 metri) ed il numero di host ad esso collegabili (circa 100). L’impedenza del cavo thicknet è di 75 ohm ed anche in questo caso la topologia di rete nel quale viene utilizzato è quella di una rete a bus. E’ un cavo decisamente più costoso rispetto al “cugino” ed il suo spessore lo rende molto difficile da posare. Tra gli aspetti negativi, non bisogna trascurare il fatto che non è possibile fare delle “aggiunte” al cavo, che deve necessariamente essere un pezzo unico.

2.3.2 – Cavi twisted-pairs (10Base-T)

Si tratta di quello che in Italia é generalmente chiamato col nome di “doppino”. Così come per i cavi coassiali, anche i cavi twisted-pairs sono suddivisi in due diverse categorie:

• i cavi twisted-pairs STP (Shielded Twisted-Pairs);

• I cavi twisted-pairs UTP (Unshielded Twisted-Pairs)

Entrambi i tipi di cavo sono formati da 8 fili, intrecciati tra di loro in modo da formare 4 coppie. L’ampiezza di banda garantita da un rete di cavi twisted-pairs può arrivare fino a 100Mbps. La topologia di rete a cui questi cavi sono applicati è solitamente quella della rete a stella, in quanto possono essere soltanto due gli host collegati al singolo segmento.

Page 28: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

2.3.2.1 – Unshielded Twisted-Pairs (UTP)

Il cavo UTP si differenzia dall’STP esclusivamente per il fatto di non essere schermato. Può essere di cinque categorie differenti:

• Categoria 1: usata nei tradizionali cavi telefonici. Trasporta solo il traffico vocale e non i dati;

• Categoria 2: approvato per trasmissioni di dati fino a 4Mbps (le prime token ring);

• Categoria 3: approvato per trasmissioni di dati fino a 10Mbps (ethernet);

• Categoria 4: approvato per trasmissioni di dati fino a 16 Mbps (token ring);

• Categoria 5: approvato per trasmissioni di dati fino a 100Mbps (fast ethernet).

A seconda del tipo di cablaggio implementato, servono connettori diversi per interfacciare i segmenti di cavo con le schede di rete. I connettori RJ45 si accompagnano spesso al cablaggio UTP. Essi assomigliano molto ai connettori telefonici, ma rispetto a questi sono di dimensioni doppie.

(un connettore RJ45 abbinato ad un cavo UTP)

Non essendo schermato, il cavo UTP non raggiunge grandi distanze: tra stazione ed hub, infatti, difficilmente possono esserci più di 100 metri di distanza.

2.3.2.2 – Shielded Twisted-Pairs (STP)

Il cavo STP, così come l’UTP, presenta una impedenza di 100 ohm.

(un connettore RJ45 abbinato ad un cavo STP, si può notare la schermatura)

Trattandosi di un cavo schermato, la distanza raggiungibile dal segnale sul singolo segmento è circa doppia rispetto all’UTP e raggiunge i 200 metri. Importanza fondamentale nel costruire un

Page 29: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

cavo STP sta nel intrecciare il più possibile le quattro coppie di fili presenti al suo interno. In questo modo si riesce ad attenuare il più possibile il fenomeno elettromagnetico denominato “cross-talk”.

2.3.3 – Cavi USB

L'USB, da poco diventato uno standard per le schede madri, fornisce una larghezza di banda di 12 Mbps (megabits-per-second) con un massimo di 63 periferiche e una distanza massima del segnale di cinque metri per segmento. Si tratta dunque di un tipo di collegamento di rete poco pratico, in quanto il segnale decade in uno spazio veramente molto ridotto. L’USB si conferma dunque un ottimo sistema (soprattutto se alimentato dall’esterno) per collegare periferiche come mouse, stampanti, scanner, ecc... Per creare reti di PC, invece, è meglio orientarsi su altri tipi di cavi. 2.3.4 – Cavi in fibre ottiche

A differenza dei cavi visti in precedenza, quelli costituiti in fibre ottiche non trasmettono impulsi elettrici, ma bensì impulsi luminosi. Questa tecnica permette di raggiungere grandi distanze senza che il segnale decada, con una velocità prossima a quella della luce. Il principio di funzionamento dei cavi in fibre ottiche è concettualmente semplice. Il trasmettitore converte gli impulsi elettrici da spedire in segnali luminosi. Questi fasci di luce vengono immessi nel cavo, da dove (sfruttando i fenomeni fisici della rifrazione e della riflessione) viaggiano verso il destinatario. Una volta raggiunto l’host destinatario, una serie di fotocellule raccolgono l’impulso e lo riconvertono in una grandezza elettrica pronta per essere elaborata dal PC. A causa del costo ancora proibitivo, attualmente i cavi in fibre ottiche non vengono utilizzati per la cablatura di reti locali.

Tuttavia, molte dorsali di reti estese sfruttano già ora questa tecnologia.

(un cavo in fibra ottica)

2.4 – Lo standard Ethernet

Page 30: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

Ethernet è il più diffuso tipo di rete locale esistente al mondo. Come verrà ricordato in apertura del prossimo capitolo, il fatto che Ethernet sia diventato uno standard internazionale, non implica che essa sia la migliore tecnologia in assoluto. Sicuramente, però, si tratta della più economica e della più semplice da implementare.

2.4.1 – La storia

La storia di Ethernet ha inizio nei primi anni settanta presso il Palo Alto Research Center, il laboratorio di ricerca della Xerox, per merito di Robert Metcalfe e David Bloggs. Il loro lavoro iniziò nel 1972, ma solo quattro anni più tardi essi arrivarono a pubblicare una prima definizione pubblica di Ethernet. Il nome, ideato e registrato da Xerox, doveva suggerire l’idea dell’etere, di quella sostanza incorporea che in passato si supponeva pervadesse tutta l’aria e consentisse il propagarsi della luce. La prima versione commerciale della tecnologia risale al 1980 ed è dovuta all’iniziativa congiunta di Xerox, Digital Equipment ed Intel. Due anni dopo (1982), esce Ethernet 2 (detta anche DIX). Ormai diffusissima in svariati ambienti, le tre grandi aziende sentirono la necessità di affidarne la standardizzazione ad un ente al di sopra delle parti. Il ruolo di arbitro fu quindi affidato all’IEEE di New York, istituto che ne gestisce a tutt’oggi l’evoluzione.

2.4.2 – Il sistema di trasmissione

Originariamente, Ethernet, utilizzava un solo cavo per collegare decine di stazioni di lavoro, ciascuna delle quali riceveva contemporaneamente (o quasi) tutto quello che passava sulla rete. Solo una stazione alla volta, invece, aveva la possibilità di trasmettere. Si tratta della topologia a bus, abbinata alla tecnica CSMA/CD, che abbiamo già visto nel paragrafo 2.1.1. In realtà, al giorno d’oggi, Ethernet gestisce alla perfezione anche reti LAN basate su di una topologia a stella (paragrafo 2.1.2). Il CSMA/CD, comunque, rimane la prerogativa preponderante di questo standard.

2.5 – Wide Area Netowrk (WAN)

Le implementazioni delle reti locali, soffrono di limitazioni fisiche e geografiche. Col passare del tempo aumentano i fabbisogni di collegamenti in rete che prevedono la connettività su distanze ben maggiori di quelle tra le singole stanze di un edificio. Molte reti geografiche estese (WAN) sono semplici combinazioni di reti locali e collegamenti aggiuntivi per le comunicazioni tra le varie LAN. Per descrivere la portata o le dimensioni della WAN, si usano i seguenti termini:

• Reti di area metropolitana: le MAN (Metropolitan Area Network) sono WAN disposte in piccole aree geografiche. Dimensionalmente possono essere identificate come reti che collegano singole città o regioni;

• Reti universitarie: le CAN (Campus Area Network) sono di solito WAN che collegano fra loro dipartimenti e facoltà universitarie.

Page 31: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

Queste due definizioni sono quelle fornite dal libro “TCP/IP: guida completa” della Apogeo. Tuttavia si può facilmente notare come tali concetti non siano esattamente nostrani. Le definizioni viste qui sopra, infatti, si riferiscono ad un ambiente “USA-style”, dove si può ragionare per campus universitari e contee. Per cercare di dimensionare a dovere i due concetti qui sopra esposti, prendendoci una sorta di licenza poetica, potremmo arrivare a dire che:

• le MAN sono reti che ricoprono circa l’area di una grossa città e/o di una piccola provincia;

• le WAN sono reti molto più estese, che possono interessare anche una o più regioni di medie dimensioni.

Per l’implementazione pratica, queste reti apparentemente molto complesse, non differiscono molto da una LAN piuttosto estesa. Le comunicazioni su di una WAN, si servono comunque di una delle seguenti tecnologie di trasmissione:

• analogica;

• digitale;

• a commutazione di pacchetto.

2.5.1 – Reti WAN analogiche

Nonostante la loro scarsa qualità e le velocità piuttosto ridotte, é possibile utilizzare linee telefoniche analogiche per connettere insieme varie reti locali. La Public-Switched Telephone Network (PSTN) é principalmente destinata al traffico vocale, ma viene correntemente utilizzata anche per il traffico di dati. Un host che desideri collegarsi ad una PSTN, necessita obbligatoriamente di un modem (modulator/demodulator) che converta i segnali digitali emessi dal computer e li trasformi in grandezze analogiche, adatte a viaggiare sulla linea telefonica. Il modem, ovviamente, si preoccupa anche di convertire le grandezze analogiche che riceve in ingresso nei corrispettivi valori digitali. Negli ultimi anni, dai vecchi modem a 9600 bps si è arrivati ai 56 kbps, che riescono a sfruttare appieno l’ampiezza di banda disponibile sul filo telefonico. Tipico esempio di rete WAN analogica, è quella basata sulla 56 commutata.

2.5.1.1 – 56 commutata

E’ il metodo più semplice, ma anche quello con prestazioni inferiori, che si utilizza per implementare una rete WAN. Si fornisce ogni stazione di un modem di tipo analogico, di un opportuno software di comunicazione e ci si allaccia alla linea telefonica come si farebbe con un normale apparecchio telefonico. La linea viene detta commutata, perché lo smistamento in centrale avviene mediante organi di commutazione. Le prestazioni dipendono essenzialmente dal tipo di modem utilizzato: si passa dai 300 bit/sec del vecchio V.21, ai 56000 bit/sec del più recente V.90. Si tenga presente che queste velocità sono lorde, cioè comprendono overhead per la sincronizzazione e la gestione degli errori, quindi vanno corrette verso il basso di un 15-30% in funzione del protocollo in uso. Il costo delle versioni più diffuse è relativamente basso: un buon modem esterno V.90, oggi può costare dalle 100000 alle 300000 lire. Per quanto riguarda il traffico, la tariffa da pagare è strettamente legata al consumo e viene

Page 32: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

determinata dal fruitore del servizio nazionale (fino ad oggi monopolio di Telecom, ma destinato in questi mesi a cadere a vantaggio dei nuovi gestori come Infostrada, Wind e TeleDue). La soluzione basata su 56 commutata, infatti, richiede una connessione a richiesta e su questa vengono applicate le tariffe telefoniche vigenti, indipendentemente dal fatto che vi sia o meno una trasmissione di dati. Ad esempio, se volessi collegare due host appartenenti allo stesso distretto telefonico (quindi con il medesimo prefisso), tutto il tempo della connessione lo pagherei alla stessa tariffa di una normale telefonata urbana.

2.5.2 – Reti WAN digitali

Un altro metodo diffuso per collegare una WAN, prevede l’utilizzo delle linee DDS (Digital Data Service), che forniscono una connessione sincrona punto a punto. Esistono circuiti dedicati che forniscono un’ampiezza di banda full-duplex (ricezione e trasmissione contemporanee), instaurando un collegamento permanente da ciascun punto terminale della rete. Le linee digitali, sebbene più costose, sono preferibili a quelle analogiche per via delle maggiori velocità raggiungibili e dell’assenza di errori nella trasmissione. Il traffico digitale non necessita inoltre di un modem, in quanto i dati che un host deve spedire possono tranquillamente instradarsi sulla linea digitale. E’ comunque necessario l’utilizzo di un adattatore, spesso confuso (specie dai neofiti) con un modem.

Le linee WAN digitali sono divise in quattro categorie:

• T1;

• T3;

• ISDN;

• linea dedicata;

• ADSL;

2.5.2.1 – T1

Diffuso quasi esclusivamente negli Stati Uniti, il servizio T1 é quello digitale che offre le più alte velocità di passaggio dei dati. T1 può trasmettere un segnale in modalità full-duplex ad una velocità di 1544Mbps e può servire a inviare voce, dati e segnali video. A causa dell’altissimo costo delle linee T1, molti abbonati optano per un servizio T1 frazionato. Invece di utilizzare un’ampiezza di banda completa, gli abbonati usufruiscono di uno o più canali T1, ciascuno dei quali costituisce un incremento di 64kbps.

2.5.2.2 – T3

Il servizio T3 può fornire la trasmissione di voce e dati, a velocità fino a 45Mbps. Allo stato attuale, si tratta del miglior servizio disponibile in virtù del suo rapporto qualità/prezzo. Analogamente al T1, comunque, anche il T3 viene spesso frazionato.

2.5.2.3 – Integrated Services Digital Network (ISDN)

Page 33: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

Si tratta di un metodo di connettività tra LAN che può trasportare segnali di dati, voce ed immagini. Esistono principalmente due formati di ISDN: il Basic Rate ed il Primary Rate:

• ISDN Basic Rate: fornisce due canali bearer (portatori), conosciuti come canale B, che comunicano a 56kbps; un canale di gestione dei collegamenti da 8 kbps ed un canale per i dati (canale D), che trasporta segnali e dati di gestione dei collegamenti ad una velocità di 16kbps. Una rete che utilizza entrambi i canali B, può fornire un flusso di dati di 128kbps;

• ISDN Primary Rate: Può offrire l’intera ampiezza di banda di un collegamento T1, fornendo 23 canali B ed un canale D. Il canale D in ISDN Primary Rate, comunica a 64kbps ed è tuttora utilizzato solo per segnali e dati di gestione dei collegamenti.

Come le PSTN, anche ISDN è un’interfaccia con chiamata a richiesta. Invece di rimanere attivo a tutte le ore, chiama a richiesta quando occorre stabilire una connessione.

2.5.2.4 – Linea dedicata

Viene detta linea dedicata, quel collegamento fornito ad una coppia di utenti, costituito da una connessione virtualmente diretta (senza passare per i circuiti di commutazione di centrale) e di loro esclusiva proprietà. In pratica si potrebbe pensare che l’azienda telefonica fornisca una coppia di fili tra tutti quelli che ha a disposizione, che collegano direttamente i due utenti. In realtà, l’unica diversità che caratterizza questa linea rispetto ad una 56 commutata, è la totale assenza di commutazione. Nelle varie centrali telefoniche, infatti, non si opera più un processo di multiplexazione e demultiplexazione, ma gli interruttori rimangono sempre settati nella posizione che permette ai due utenti di essere in collegamento tra di loro. Le linee dedicate si dividono in due categorie, a seconda delle esigenze del cliente e delle disponibilità dell’azienda telefonica: il CDA ed il CDN:

• Il CDA (Canale Diretto Analogico) è un collegamento come quello descritto in precedenza, trattato dalla rete come un normale canale telefonico di natura analogica, che subisce nelle centrali numeriche la conversione ADC ed a cui viene assicurata una banda telefonica standard (300-3300 Hz). Le uniche differenze tra la soluzione a modem vista prima ed il CDA è la totale disponibilità del mezzo (non ci sono più problemi di traffico) e di conseguenza la migliore affidabilità. E naturalmente il costo, molto più elevato;

• Il CDN (Canale Diretto Numerico), è invece qualcosa di sostanzialmente diverso ed offre la possibilità di accedere direttamente alla centrale numerica (ove naturalmente sia presente) con un flusso la cui capacità normale è di 64 Kbit/sec. Si evita quindi la conversione e la manipolazione analogica del segnale (degrado, disturbi, amplificazione con rumore, ecc…) e si utilizza un canale a velocità maggiore e tasso di rumore inferiore, sempre rimanendo di utilizzo esclusivo della coppia di utenti che l’hanno acquistato. Il costo elevato di una linea dedicata è tale da far diventare quasi obbligatoria la scelta del canale CDN. La rete a disposizione è in grado di realizzare collegamenti punto-punto ed anche multipunto in half e full-duplex a 4 fili, è

Page 34: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

di tipo sincrono ed offre a lato linea una velocità di 64 Kbps. In realtà è possibile ottenere capacità maggiori: se consideriamo che la tecnica usata in centrale nel multiplare i dati è del tipo TDM, si capisce come sia possibile occupare più canali adiacenti della multiplazione ed ottenere una capacità multiplo dei 64 kbit originari. In pratica si ha a disposizione un flusso massimo di 2,048 Mbit/sec, ovviamente ad un costo molto più alto. La soluzione a linea dedicata (ovviamente prendiamo in considerazione quella di tipo CDN), attualmente costa circa 300000 lire di quota fissa, più un canone bimestrale di circa 4000000 fisso (indipendente dal traffico e calcolato per una capacità di 1 Mbit/sec), più una quota bimestrale per l’uso del mezzo trasmissivo, di circa 800000 lire per km. Conviene quindi adottare questa soluzione soltanto quando il traffico è abbastanza continuativo, anche di notte, sufficientemente elevato e comunque richiede un alto tasso di affidabilità e di sicurezza. Tipiche applicazioni delle linee dedicata, sono i collegamenti tra filiali bancarie.

2.5.2.6 – xDSL (ADSL e HDSL)

La sigla DSL sta per “Digital Subscriber Line” ed indica una tecnologia, di recente introduzione, che permette di raggiungere elevatissime velocità di trasferimento dati, utilizzando come mezzo trasmissivo il semplice doppino telefonico. Il segreto del tutto sta all’interno dei modem xDSL, dotati di processori di ultima generazione, capaci di oltre 250 milioni di operazioni al secondo. Tali processori sono in grado di controllare continuamente le caratteristiche della linea, correggendo disturbi e variazioni del segnale. Il segnale emesso da uno dei due modem, viene ricevuto dall’altro in forma fortemente attenuata e distorta, a causa della resistenza del doppino e delle caratteristiche non lineari del cavo al crescere (in questo caso, quasi esponenziale) della frequenza. Il modem xDSL, attraverso un preciso modello matematico di comportamento del cavo in rame in funzione della frequenza, è in grado di compensare le numerose distorsioni introdotte e può così ricostruire il segnale originario con una elevatissima affidabilità. Il tasso di errore (ber, bit error rate) di una linea DSL è sull’ordine di un bit ogni miliardo: un valore paragonabile a quello della fibra ottica. I dispositivi che sfruttano questa tecnologia sono principalmente di due tipi:

• ADSL (Asymetric DSL): si tratta della versione asimmetrica della DSL, utile per l’utenza “passiva” che passa più tempo ad effettuare download, piuttosto che degli upload. L’offerta di Telecom per gli utenti privati, prevede due canali separati: uno a 640 Kbit/sec per la ricezione ed uno a 128 Kbit/sec per l’invio;

• HDSL (High Bit-Rate DSL): raggiunge velocità di trasmissione simmetriche in invio ed in ricezione. Ad un costo relativamente basso (intendendo come target una azienda: per l’utente privato è una tecnologia ancora troppo costosa) è possibile sfruttare un canale reversibile a 2 Mbit/sec.

In Italia sta lentamente prendendo piede l’ADSL (nonostante già da qualche anno sia disponibile la poco pubblicizzata HDSL), grazie ad alcune offerte degli operatori telefonici, appetibili anche per

Page 35: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

gli utenti privati. A causa della relativa arretratezza delle nostre linee telefoniche, però, è necessaria l’installazione di una borchia ISDN prima di poter sfruttare la banda larga offerta dalla tecnologia DSL.

2.5.3 – Reti a commutazione di pacchetto

Le reti a commutazione di pacchetto consentono di trasmettere dati su una connessione “chiunque con chiunque”. A volte, una rete di questo tipo viene detta “rete ibrida”. Quando si trasmettono le informazioni sulla rete, non è possibile sapere in anticipo quale sarà il percorso che intraprenderanno i dati nel raggiungere il destinatario.

I dati originali sono suddivisi in pacchetti più piccoli, ciascuno dei quali è contrassegnato con l’indirizzo di destinazione ed un numero sequenziale. Quando il pacchetto attraversa la rete tra l’host di origine e quello destinatario, viaggia sul miglior percorso disponibile al momento della spedizione. In questo modo, se un collegamento della rete si interrompe durante la trasmissione del flusso di pachetti, non occorre inviarli tutti una seconda volta, poiché alcuni avranno trovato una strada alternativa quando il collegamento si è interrotto. La figura disegnata alcune righe sopra, mostra i possibili percorsi tra l’host A e l’host B. Ipotizziamo che, in una condizione identica a quella del diagramma, un pacchetto sia stato instradato da A a B attraverso le reti che si trovano in A,C,F ed H. Se la rete che si trova in F si blocca, i pacchetti che sono arrivati alla rete C devono trovare una strada alternativa per la rete H. Una alternativa possibile è attraversare le reti E e G, arrivando così ad H. All’host destinatario, i pacchetti potrebbero arrivare in momenti diversi o comunque non in sequenza. Poiché, però, ogni pacchetto è contraddistinto da un numero sequenziale, il messaggio originale si può ricostituire senza sbagliare. L’host destinatario può anche richiedere un nuovo invio dei pacchetti eventualmente persi, in base ai numeri mancanti nella sequenza. Le reti a commutazione di pacchetto sono rapide ed efficienti, avendo un loro metodo per gestire il traffico di instradamento. Quelle che seguono sono quattro comuni implementazioni delle reti a commutazione di pacchetto; ne verrano tuttavia approfondite

Page 36: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

soltanto due in quanto le altre richiederebbero una spiegazione troppo specifica, che esulerebbe dagli obiettivi di questa tesina.

• Datapac;

• X.25;

• X.28;

• Frame Relay;

• ATM

2.5.3.1 – Datapac

La rete Datapac é una rete a commutazione di pacchetto con copertura nazionale, in cui le comunicazioni tra gli utenti richiedono la formazione di un circuito virtuale. In Italia, la Datapac venne ribattezzata Itapac e fu introdotta nei primissimi anni 80.

I nodi della rete si trovano solitamente nelle città principali della nazione “coperta” e sono interconnessi con linee telefoniche analogiche (56 Kbit/sec). Le chiamate possono essere di tipo permanente (per ciò che riguarda l'utente, equivalenti ad una linea dedicata) o di tipo commutato. Il servizio, per quanto concerne la velocità di inoltro dei pacchetti, é organizzato su due livelli di priorità. I pacchetti hanno una dimensione massima di 128 byte per il livello di priorità più elevato e di 256 byte per il servizio normale. L'accesso alla rete può essere fatto mediante l'utilizzo di due tipi di interfaccia. Il primo é indipendente dal dispositivo utilizzato per l'accesso e si riferisce a dispositivi controllati a programma, mentre il secondo é dipendente dal dispositivo ed é utilizzato con unità di accesso a programma cablato. L'accesso, in ogni caso, avviene con un

Page 37: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

protocollo standardizzato. Lo standard, costituito dalle regole di accesso, così come é stato definito in Canada dal gruppo che si occupa del collegamento di computer, é stato chiamato SNAP (Standard Network Access Protocol), conosciuto internazionalmente come X.25. Lo SNAP regola:

• lo standard di controllo del data link;

• lo standard del Datagram (ben presto abbandonato dagli utenti a vantaggio del circuito virtuale che non comporta perdite o duplicazioni di messaggi o ordine di arrivo non sequenziale dei pacchetti);

• lo standard della virtual call (chiamata virtuale)

E' proprio il data link che dipende fortemente dal tipo di terminale utilizzato. Per terminali a pacchetto, il protocollo é quello stabilito dalla X.25, mentre, per i terminali "byte oriented", il protocollo é di tipo BSC IBM compatibile.

Lo SNAP é suddiviso in tre livelli di controllo indipendenti:

• livello fisico di interfaccia: é costituito da un circuito sincrono a 4 fili di tipo punto a punto, collegante il terminale alla rete. Se il protocollo di linea é l'HDLC, la trasmissione é full-duplex, mentre, se il protocollo é BSC, la trasmissione é half-duplex. L'interfaccia elettrica é conforme a quanto stabilito dalla raccomandazione CCITT V.24 (RS232);

• livello di frame (virtuale): controlla il trasferimento dei dati su di un singolo circuito di accesso alla rete;

• livello di pacchetto (virtuale): controlla il trasferimento dei dati provenienti da DTE di tipo multicanale.

Protocolli diversi da quelli standard di rete compresi nello SNAP, richiedono l'utilizzazione di apposite interfacce chiamate NIM. Il NIM (equivalente al PAD) contiene il software necessario per convertire i dati in pacchetti con caratteristiche SNAP compatibili. Tra i protocolli che lo SNAP permette di utilizzare, vi é anche il protocollo IBM di tipo multileaving.

2.5.3.2 – X.25

Questo protocollo è stato sviluppato negli anni 70, per fornire agli utenti capacità WAN sulle reti di dati pubblici. Furono le compagnie telefoniche a svilupparlo, agevolate dal fatto che i suoi attributi avessero carattere internazionale. Incaricata della sua amministrazione, è un’agenzia delle Nazioni Unite: la International Telecommunications Union (ITU). In una rete X.25, un host chiama un altro host per richiedere una sessione di comunicazione. Se la chiamata è accettata, i due sistemi possono iniziare un trasferimento full-duplex delle informazioni; in caso contrario essi rimangono isolati. Ciascuno dei due host può, in un qualsiasi momento, terminare la sessione. Ha quindi luogo una connessione punto a punto tra il data terminal equipment (DTE) al sito del client ed il data circuit-terminating equipment (DCE)

Page 38: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

all’impianto del vettore. Il DTE è connesso con il DCE per mezzo di un dispositivo di traduzione conosciuto come packet assembler/disassembler (PAD). Il DCE si connette con i packet switching exchanges (PSE), più comunemente conosciuti come switch. Questi si connettono tra loro fino a raggiungere il DCE dell’host destinatario. Tale DCE si connette con il DTE dell’host per completare la sessione di comunicazione.

La comunicazione da un capo all’altro tra i due DTE è svolta da un’associazione conosciuta come circuito virtule. I circuiti virtuali consentono lo svolgersi di comunicazioni tra due punti terminali definiti attraverso un numero qualunque di nodi intermedi. Tali nodi non devono per forza essere una porzione dedicata della rete. Il circuito non è un collegamento fisico di dati, ma è ampiezza di banda che può essere assegnata a richiesta. Questi circuiti virtuali possono essere di due tipi:

• Circuiti virtuali permanenti. I Permanent Virtual Circuit (PVC) servono per trasferimenti di dati comuni, che quindi avvengono con cadenza regolare. Sebbene la strada sia permanente, l’utilizzatore paga soltanto per il tempo in cui utilizza le linee;

• Circuiti virtuali a commutazione. Gli Swithced Virtual Circuit (SVC) servono per i trasferimenti saltuari di dati. La connessione percorre una strada specifica attraverso la rete. Tale strada viene mantenuta fino a quando non cessa la connessione.

Il protocollo X.25 contiene diversi algoritmi di correzione degli errori, poiché fu originariamente implementato attraverso linee PSTN, fortemente soggette a rumore e disturbi vari.

Page 39: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

Capitolo 3: Il protocollo TCP/IP 3.1 - Cos’è un protocollo? Il dizionario De Agostini definisce così la voce “protocollo”: “l’insieme delle regole da osservare durante cerimonie o visite ufficiali di personalità politiche”. In campo informatico, per protocollo si intende una serie di regole per comporre dei messaggi e far sì che essi possano essere scambiati tra due macchine. Noterete che in questa definizione potrebbe ricadere anche una semplice centrale telefonica, tuttavia vedremo come in ambito informatico la situazione sia decisamente più complessa. Un protocollo può contenere infatti regole estremamente dettagliate come quelle che identificano il significato di ogni singolo bit nella costruzione di un messaggio, oppure fornire uno scenario di più alto livello, come per esempio definire come avviene il trasferimento di files da un computer all’altro. Così come in un qualsiasi linguaggio di programmazione, le regole più dettagliate devono essere seguite alla lettera (provate a tralasciare un punto e virgola in un listato Pascal per rendervene conto), mentre quelle di alto livello vanno costruite nel modo corretto, pena errori nella struttura logica del programma, allo stesso modo le regole imposte da un protocollo di trasmissione devono essere seguite per evitare errori nella comunicazione. 3.2 - Un esempio reale di comunicazione Adesso che abbiamo definito cosa sia un protocollo di comunicazione, vediamone un applicazione pratica. Supponiamo di avere due ditte: la "Ruini Informatica S.r.l." e la "Schenetti Information Technology S.p.a.". Un bel giorno, il direttore della "Ruini" vuole mandare un biglietto di auguri al titolare dell'azienda concorrente, la cui moglie ha appena avuto un figlio. Egli prenderà dunque un foglio ed una penna ed inizierà a scrivere il biglietto. Successivamente lo passerà alla segretaria, che vi apporrà l'indirizzo della "Schenetti" e provvederà alla spedizione. Il postino porterà dunque il messaggio a destinazione ed il titolare della ditta potrà leggerlo. Sembra un gesto banale, quello di inviare qualcosa per posta, ma provate a pensare a quante convenzioni vi siano dietro. 3.3 - Standardizzazione del protocollo Riprendiamo l'esempio del paragrafo precedente. Cosa sarebbe successo se gli impiegati della ditta destinataria, si fossero trovati di fronte ad una lettera scritta in giapponese? Si sarebbero trovati quantomeno spiazzati ed assolutamente non in grado né di capire, né tantomeno di rispondere al messaggio. Tutto ciò immaginando che il postino conoscesse il giapponese e riuscisse a portare la lettera alla giusta destinazione. Fortunatamente, la comunicazione é andata a buon fine, in quanto entrambe le ditte utilizzavano il medesimo protocollo ed analoghe interfacce di comunicazione, come appunto la stessa lingua. Ne nasce una considerazione importante: la base di ogni protocollo é il concetto di standardizzazione. Più vasta é l'accettazione dello standard, più forte e diffuso é il protocollo. Non sempre, però, ed é bene ricordarlo, gli standard più diffusi sono per forza i più efficienti. Gli esempi sono numerosi, vedi il sistema

Page 40: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

operativo Windows contro Unix/Linux, il software di compressione dati Winzip contro Winrar, ecc... In ogni modo i sistemi divenuti standard sono generalmente i più conosciuti e ciò semplifica notevolmente le operazioni di implementazione e di trouble-shooting. Portiamo proprio il caso del TCP/IP, che sarebbe ormai dovuto soffocare sotto il peso dei suoi anni, ma che continua imperterrito a gestire reti di ogni sorta.

3.4 - La necessità di condividere dati: le reti di computers e l'internetworking

Sin dalla comparsa sul mercato dei primi personal computer, si é sentita la necessità di poter trasferire dati liberamente, senza dover necessariamente ricorrere agli ingombranti e delicatissimi floppy disk. Le prime reti di PC, venivano costruite in un modo per così dire "casereccio", in quanto mancavano precisi standard di riferimento. Le reti potevano funzionare benissimo, ma il problema era quello di interfacciarsi con l'esterno: era infatti impensabile tentare di far comunicare tra loro due reti distinte, a causa delle enormi differenze tra i vari tipi di implementazioni. Proprio su questo problema decise di intervenire la ISO (International Standard Organization), che nel 1979 pubblicò il cosiddetto "OSI Model" (Open System Interconnection Model), il primo schema di riferimento per progettatori ed implementatori di reti.

3.5 - Open System Interconnection (OSI model) Il modello di riferimento OSI é costituito dai seguenti sette strati distinti:

7) Strato dell'applicazione 6) Strato della presentazione 5) Strato della sessione 4) Strato del trasporto 3) Strato della rete 2) Strato del collegamento dati 1) Strato fisico Esso descrive il modo in cui le informazioni si fanno strada da un'applicazione su di un sistema host ad un'applicazione su di un altro sistema host. Mentre le informazioni discendono attraverso gli strati della rete sull'host mittente, cambiano il proprio formato in ciascuno strato. I dati che provengono dagli strati superiori sono incapsulati in informazioni di intestazione dallo strato immediatamente inferiore

Page 41: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

Questo diagramma mostra che, come i dati discendono attraverso l'host a sinistra, la combinazione tra l'intestazione dello stato precedente ed i dati é incapsulata nell'intestazione dello strato successivo; per esempio i dati originali di un messaggio e-mail sono incapsulati in un'intestazione del segmento. Questa assicura che gli host coinvolti nel messaggio siano in grado di comunicare in modo attendibile l'uno con l'altro. Al livello della rete, i dati (che ora comprendono l'intestazione del segmento ed i dati originali ricevuti dagli strati superiori) si sistemano in un pacchetto che contiene un'intestazione di rete. Questa intestazione di rete comprende gli indirizzi logici dell'origine e della destinazione. In una rete interconnessa TCP/IP, sono gli indirizzi IP degli host mittente e destinatario ed aiutano nell'instradamento dei pacchetti tra i due host attraverso la rete. Allo strato del collegamento dati, l'intestazione della rete e i suoi dati sono incapsulati in un'intestazione della cornice, che definisce il modo in cui le informazioni saranno trasportate attraverso l'interfaccia della rete sulla rete fisica. Ciascun dispositivo sulla rete richiede l'inclusione in una cornice per connettersi con il dispositivo successivo della rete. L'intestazione della cornice include anche gli indirizzi fisici degli host mittente e destinatario. Infine, allo strato fisico, l'intestazione della cornice ed i suoi dati si convertono in un formato che consente la trasmissione delle informazioni su di un mezzo come i cavi di rete. Quando i dati arrivano all'host destinatario, i bit sono nuovamente convertiti in un'intestazione della cornice con i suoi dati. Quando le informazioni si spostano verso l'alto attraverso gli strati della rete, ciascuna intestazione serve a determinare in che modo spostare i dati verso gli strati superiori. A ciascuno strato si staccano le informazioni di intestazione dello strato precedente, in modo tale che i dati abbiano di nuovo lo stesso formato che avevano al momento della trasmissione dallo strato corrispondente dell'host mittente.

Page 42: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

Ora che si sono ripassate le caratteristiche basilari del modello di riferimento OSI, nei paragrafi che seguono esamineremo brevemente ciascuno degli strati del modello. Ciascuno strato deve compiere una funzione predeterminata. Mentre i dati discendono attraverso gli strati, l’intestazione ed i dati provenienti dal livello superiore diventano la sezione dei dati del livello immediatamente inferiore. I dati non possono saltare uno strato, mentre scendono attraverso il modello OSI. Questo semplifica il processo della trasmissione e consente lo sviluppo di nuovi protocolli, poiché questi devono semplicemente interagire con gli strati sopra e sotto a quello in cui sono implementati.

3.5.1 - Lo strato fisico Lo strato fisico definisce le correnti elettriche, gli impulsi fisici o gli impulsi ottici che sono coinvolti nel trasporto dei dati dalla NIC (Network Interface Card, la scheda di rete) di un host al sistema di comunicazione. I requisiti e le caratteristiche necessarie per la trasmissione sono in genere documentate in standard come V.35 o RS-232 (porta seriale). Lo strato fisico é responsabile per la trasmissione fisica dei bit da un computer all'altro.

3.5.2 - Lo strato del collegamento dati Lo strato del collegamento dati invia le cornici dati dallo strato della rete allo strato fisico. Quando lo strato del collegamento dati riceve i bit dallo strato fisico, li traduce in cornici dati. Una cornice dati in genere comprende le seguenti componenti: • ID destinatario: questo ID, di solito, é l'indirizzo MAC

dell'host di destinazione o del gateway predefinito

• ID mittente: questo ID, di solito, é l'indirizzo MAC dell'host sorgente

• Informazioni di controllo: includono informazioni quali

l'effettivo tipo di cornice e notizie sull'instradamento e la segmentazione

• Controllo ciclico di ridondanza (CRC, Cyclic Redundancy Check):

effettua la correzione degli errori e verifica che la cornice dati sia arrivata intatta all'host destinatario di riferimento

Lo strato del collegamento dati é suddiviso a sua volta in due sottostrati, chiamati rispettivamente sottostrato del controllo del collegamento logico (Logical Link Control, LLC) e sottostrato del controllo dell'accesso ai supporti di trasmissione (Media Access Control, MAC). Il sottostrato LLC si occupa del controllo degli errori e lavora soprattutto con lo strato della rete per supportare servizi senza connessione od orientati alla connessione. Il sottostrato MAC fornisce l'accesso al supporto di trasmissione effettivo della LAN. Lavora soprattutto con lo strato fisico.

3.5.3 - Lo strato della rete

Page 43: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

Lo strato della rete determina il modo migliore per spostare i dati da un host all'altro. Gestisce l'indirizzamento dei messaggi e la traduzione degli indirizzi logici (come per esempio gli indirizzi IP) in indirizzi fisici (indirizzi MAC). Lo strato della rete determina anche la strada che i dati percorrono tra l'host mittente e quello destinatario. Se i pacchetti in corso di trasmissione sono troppo grandi per la topologia dell'host destinatario, lo strato della rete compensa, suddividendo i dati in pacchetti più piccoli, che saranno poi riassemblati una volta giunti a destinazione.

3.5.4 – Lo strato del trasporto Lo strato del trasporto segmenta e riassembla i dati in un flusso di dati. Provvede ad una connessione da un capo all’altro tra l’host mittente e quello destinatario. Quando si verifica una trasmissione di dati dall’uno all’altro, tali dati sono segmentati in insiemi di informazioni più piccoli. I segmenti ricevono una numerazione sequenziale e sono inviati all’host destinatario. Quando questo riceve i segmenti, invia una conferma. Nel caso che un segmento non arrivi, l’host destinatario può richiede un secondo invio del segmento specifico. In questo modo sussiste un controllo degli errori per il trasporto dei dati.

3.5.5 – Lo strato della sessione

Lo strato della sessione consente a due applicazioni su host separati di stabilire una connessione per la comunicazione, chiamata sessione. Le sessioni assicurano che i messaggi siano inviati e ricevuti con un alto grado di attendibilità. Lo strato della sessione svolge funzioni di sicurezza, per assicurare che due host siano autorizzati a comunicare attraverso la rete. Lo strato della sessione coordina le richieste di servizio e le risposte che hanno luogo quando le applicazioni comunicano tra gli host. Di seguito, sono elencati alcuni diffusi protocolli ed interfacce che operano allo strato della sessione:

• Remote Procedure Call (RPC): una RPC é un meccanismo di indirizzamento che consente di costituire una richiesta su di un client e di eseguirla poi su di un server al livello di sicurezza del client;

• Sistemi X-Windows: permettono a terminali intelligenti di comunicare con computer UNIX come se fossero direttamente attaccati.

3.5.6 - Lo strato della presentazione

Lo strato della presentazione determina il modo in cui i dati sono formattati nello scambio tra computer in una rete. I dati ricevuti dallo strato dell'applicazione sono tradotti in un formato intermediario comunemente riconosciuto. Lo strato della presentazione è anche responsabile per tutte le traduzioni e le codifiche dei dati e per le conversioni dei set di caratteri e dei protocolli. E' inoltre responsabile per le conversioni della sintassi tra due host in comunicazione, per esempio nel caso che

Page 44: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

uno degli host usi lo standard ASCII per le sue rappresentazioni di testo e dati, mentre l'altro host si serva di EBCDIC. Elencati di seguito si trovano alcuni usuali formati di presentazione gestiti dallo strato della presentazione: • ASCII: l’American Standard Code for Information Interchange è

un set di caratteri a 8 bit usato per definire tutti i caratteri alfanumerici. E’ l’implementazione più comune per le trasmissioni di testi sul computer;

• EBCDIC: l’Extenden Binary Coded Decimal Interchange Code è un

metodo di rappresentazione dei testi usato ampiamente sui mainframe e sui mini computer IBM;

• XDR (External data representation): si servono di XDR

applicazioni come NFS e NIS per fornire un formato universale per la trasmissione di testi tra due host. Facilita le trasmissioni tra due host che si servono di differenti rappresentazioni dei testi (come per esempio i sopra citati EBCDIC e ASCII);

• File binari: molti file audio, grafici ed eseguibili sono

convertiti in un formato binario al livello della presentazione. Quando i dati giungono all’host destinatario, l’estensione dei file mette in relazione il formato di presentazione con un’applicazione associata.

3.5.7 – Lo strato dell’applicazione Lo strato dell’applicazione consente ai programmi di accedere ai servizi di rete. Non ha a che fare con i programmi che necessitano solo di risorse locali. Per usare lo strato dell’applicazione, un programma deve avere una componente della comunicazione che richiede risorse di rete. Di seguito, si trova un elenco di tipi di programmi attualmente in uso che coinvolgono lo strato dell’applicazione:

• Posta elettronica: lo strato dell’applicazione fornisce servizi di comunicazione in rete. Le implementazioni comuni comprendono prodotti come Microsoft Exchange Server, Microsoft Outlook, Eudora Express, Netscape Messenger o Lotus Notes;

• Electronic Data Interchange (EDI): lo strato dell’applicazione

consente un flusso di dati gestionali più efficiente per le ordinazioni e le spedizioni di merci, gli inventari e la contabilità tra aziende associate;

• Applicazioni per le teleconferenze: lo strato dell’applicazione

consente agli utenti che si trovano in luoghi remoti di utilizzare applicazioni per riunirsi, come per esempio video, dati vocali e scambio di fax. Un programma molto diffuso che si serve di questa tecnologia è Microsoft Net Meeting;

• World Wide Web (WWW): attraverso i browser, gli utenti possono

vedere informazioni provenienti da località remote della rete, in formati quali testo, grafica, audio e video. Tra i più comuni server web, al momento attuale, si contano Apache Web Server, Netscape Suite-Spot e Microsoft Internet Information Server.

Page 45: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

3.5.8 – Il Progetto 802 Verso la fine degli anni 70, quando le prime LAN facevano intendere di poter diventare un futuro strumento di business, la IEEE sentì la necessità di definire alcuni standard. Per farlo, essa lanciò il cosidetto “Progetto 802”, così chiamato in virtù dell’anno (1980) e del mese (febbraio) in cui ebbe inizio. Il progetto 802, definì gli standard per i componenti fisici di una rete (la scheda di rete ed i cavi), di cui sono responsabili i primi due strati del modello OSI. 3.5.8.1 – IEEE 802 Categories Gli standard introdotti dal progetto 802, stabilirono 12 categorie in cui identificare le reti già esistenti e quelle future:

• 802.1: Internetworking; • 802.2: Logical Link Control (LLC); • 802.3: Carrier-Sense Multiple Access with Collision Detection

(CSMA/CD) LAN (Ethernet); • 802.4: Token Bus LAN; • 802.5: Token Ring LAN; • 802.6: Metropolitan Area Network (MAN); • 802.7: Broadband Technical Advisory Group; • 802.8: Fiber-Optic Technical Advisory Group; • 802.9: Integrated Voice/Data Networks; • 802.10: Network Security; • 802.11: Wireless Networks; • 802.12: Demand Priority Access LAN, 100BaseVG-AnyLAN;

3.5.8.2 – Le modifiche al modello OSI Come già ricordato, il Progetto 802, propose un miglioramento del modello OSI nei suoi due strati più bassi. Per la precisione, lo strato numero 2 (collegamento dati) venne suddiviso in due sottostrati: il Logical Link Control (LLC) ed il Media Access Control (MAC). 3.5.8.2.1 – Il sottostrato Logical Link Control (controllo logico di collegamento) Il sottostrato Logical Link Control gestisce le operazioni dello strato del collegamento dati e definisce inoltre l’utilizzo dei punti di interfaccia logica, chiamati Service Access Points (SAPs). Gli altri computer possono referenziare ed utilizzare i SAPs per trasferire informazioni dal Logical Link Control agli strati superiori del modello OSI. Si tratta dello standard 802.2, visto alcuni paragrafi sopra. 3.5.8.2.2 – Il sottostrato Media Access Control Il Media Access Control è il più basso dei due sottostrati in cui è stato diviso lo strato del collegamento dati. Questo sottostrato fornisce l’accesso simultaneo allo strato fisico da parte delle schede di rete dei vari host connessi. Esso dialoga direttamente

Page 46: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

con la scheda di rete ed è responsabile di eventuali errori di trasferimento dati tra due computer della rete. 3.6 - TCP/IP

Il nome completo è “TCP/IP Internet Protocol Suite” ed è un insieme di protocolli di trasmissione, i cui due principali sono appunto il TCP (Transmission Control Protocol) e l’IP (Internet Protocol). Nel capitolo 1 (per la precisione nel paragrafo 1.9) è stata descritta a grandi linee la creazione e l’introduzione sul mercato del TCP/IP.

3.6.1 - Visione a strati e raffronto con il modello OSI

Tra il modello di riferimento OSI a sette strati ed il modello TCP/IP a quattro strati, si possono fare i seguenti confronti:

- Il modello stratificato TCP/IP unifica lo strato fisico a quello del collegamento dati del modello OSI, nello strato della rete TCP/IP. Non fa distinzione tra le schede di rete in senso fisico ed i loro driver e questo permette di implementare il TCP/IP in qualunque topologia di rete;

- Lo strato Internet del modello TCP/IP corrisponde allo strato della rete del modello di riferimento OSI. Entrambi si occupano dei servizi di indirizzamento ed instradamento;

- Lo strato del trasporto in tutti e due i modelli permette che si stabiliscano sessioni di comunicazione da un capo all’altro tra due host;

- Lo strato della sessione del modello TCP/IP combina gli strati della sessione, della presentazione e dell’applicazione del modello OSI. Il modello TCP/IP comprende tutte le questioni che riguardano la rappresentazione dei dati e il mantenimento delle sessioni nell’ambito delle definizioni di una applicazione.

3.6.1.1 - Lo strato di interfaccia con la rete

Page 47: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

Lo strato della rete infila sul cavo le cornici (frame) in partenza e toglie dal cavo quelle in arrivo. Il formato utilizzato da queste cornici dipende dalla topologia di rete implementata. Lo strato della rete aggiunge un preambolo all'inizio della cornice, nonché un controllo ciclico di ridondanza (cyclical redundancy check, CRC) per assicurare che i dati non si danneggino durante il transito. Quando la cornice arriva a destinazione, il valore CRC é ricalcolato per determinare se i dati hanno subito qualche danno lungo il loro cammino. Se la cornice arriva intatta, viene trasmessa al livello superiore nel modello a strati della rete; se invece essa é danneggiata, a questo punto viene scartata e si rende necessaria una nuova spedizione da parte dell’host mittente.

3.6.1.2 - Lo strato Internet

Lo strato Internet svolge tre funzioni principali: l'indirizzamento, la suddivisione in pacchetti e l'instradamento. L'Internet Protocol (IP) risiede in questo strato dell'insieme stratificato di protocolli TCP/IP. IP offre la consegna di informazioni senza connessione e non garantita. Questo significa che il protocollo IP non svolge alcun controllo o misurazione per assicurarsi che l'host destinatario abbia ricevuto con successo le informazioni. I pacchetti possono andare perduti o arrivare non in sequenza. Quando le informazioni arrivano dallo strato del trasporto, il protocollo IP vi aggiunge un'intestazione che contiene le seguenti notizie:

• Indirizzo IP dell'origine: indirizzo IP assegnato all'host mittente;

• Indirizzo IP della destinazione: indirizzo IP assegnato all'host destinatario (vedremo cos'é un indirizzo IP nel paragrafo 2.8):

• Protocollo del trasporto: il protocollo usato dallo strato del trasporto é immagazzinato all'interno dell'intestazione IP. In questo modo, quando il diagramma arriva al sistema dell'host, lo strato Internet sa se trasferirlo utilizzando il protocollo TCP o il protocollo UDP;

• Somma di controllo (checksum): assicura che i dati che arrivano a questo strato non si siano danneggiati durante il transito;

• Tempo di durata in vita (Time-to-live, TTL): ogni volta che il datagramma attraversa un router, il TTL diminuisce di un valore pari almeno a uno. Quando il TTL raggiunge il valore zero, il datagramma si sgancia dalla rete.

Lo strato Internet determina anche come instradare un datagramma verso un host destinatario. Se si suppone che l'host dell'IP destinatario si trovi sullo stesso segmento di rete, il diagramma viene inviato direttamente all'host bersaglio. Se invece determina che l'host destinatario si trova su un segmento di rete remoto, IP usa la tabella di instradamento dell'host mittente per individuare la strada migliore per raggiungere la rete su cui si trova l'host remoto. Se nella tabella di instradamento non esiste un percorso esplicito, l'host all'origine impiega il suo gateway predefinito (il router preferito che un host utilizza per instradare il traffico verso segmenti di rete remoti) per inviare il diagramma

Page 48: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

all'host remoto. Altri processi che avvengono nello strato Internet sono la frammentazione ed il riassemblaggio. A volte, quando le informazioni sono trasferite tra i segmenti di rete, questi possono non servirsi della stessa topologia di rete. La topologia di rete del ricevente può non lavorare con la medesima dimensione del datagramma che usa la rete dell'host mittente. In questo caso, IP scompone i dati in pezzi più piccoli. Quando i dati arrivano all'host destinatario, i pezzi più piccoli vengono riassemblati,nel pacchetto dati originale. Al momento della frammentazione dei dati, in ciascun pacchetto distinto vengono apposte le seguenti informazioni:

• Flag: il bit di flag del frammento nell'intestazione IP di ciascun frammento di pacchetto é impostato in modo da indicare che i dati sono stati suddivisi. Sull'ultimo frammento di pacchetto il bit di flag non é impostato, poiché a seguire non vi sono altri frammenti;

• ID del frammento: quando un datagramma é spezzettato in porzioni più piccole, l’ID del frammento identifica tutti i pezzi da cui era composto in origine. Questa informazione serve al client per potere poi riassemblare il datagramma;

• Offset del frammento: quando le porzioni più piccole si riassemblano in un singolo datagramma, l’offset del frammento determina l’ordine in cui i frammenti si devono sistemare.

3.6.1.3 - Lo strato del trasporto

Lo strato del trasporto fornisce una comunicazione da un capo all’altro tra gli host utilizzando le porte. Nel modello a strati del TCP/IP, si trovano i seguenti due protocolli con il compito di trasportare i dati:

− Trasmission Control Protocol (TCP) − User Datagram Protocol (UDP)

Il TCP si occupa delle comunicazioni orientate alla connessione su una rete TCP/IP. Quando due host comunicano utilizzando il protocollo TCP, bisogna che tra i due si stabilisca una sessione. Questo avviene perché ciascun host possa determinare il numero sequenziale successivo che l’altro host utilizzerà. Una connessione TCP garantisce un livello di attendibilità. Le trasmissioni si servono di numeri sequenziali e di conferme per assicurarsi che l’host destinatario riceva con successo i dati. Se infatti non riceve uno specifico segmento, può richiedere all’host mittente di inviarlo una seconda volta.

Page 49: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

Nella figura qui sopra, l’host sulla sinistra ha segmentato un pacchetto dati in 5 pezzi più piccoli. Invia i primi due all’host sulla destra, il quale, al momento della ricezione, dà una conferma che l’invio ha avuto successo. Quindi l’host sulla sinistra invia i due frammenti successivi (il 3 ed il 4). Per qualche ragione, l’host sulla destra riceve solo il terzo frammento. L’host sulla sinistra invia di nuovo il frammento 4 ed insieme il frammento 5. Al momento della ricezione, l’host destinatario dà la conferma per entrambi i frammenti. Ora può riassemblare i dati nel loro formato originale.

3.6.1.4 - 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)

3.6.1.4.1 – Windows 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.

Page 50: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

3.6.1.4.2 – 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 5 (“NetBIOS over TCP/IP”).

3.6.1.4.3 – 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.

3.6.2 – 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.

Page 51: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

3.6.2.1 – 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.

3.6.2.1.1 – 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.

3.6.2.1.1.2 – Il formato ed i campi di un pacchetto IP

Il formato di un pacchetto IP appare di questo tipo:

Version Length Service Type Packet Length

Identification Flags Fragment Offset

Time-To-Live Protocol Header Checksum

Source Address

Destination Address

Options Padding

Data...

- 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;

Page 52: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

- 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.

Precedence Delay Throughput Reliability Non usato

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

Page 53: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

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;

Page 54: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

- 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

Page 55: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

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;

3.6.2.1.2 – Internet Control Message Protocol (ICMP)

L’Internet Control Message Protocol fornisce un meccanismo di monitoraggio sugli errori e messaggi di controllo per l’insieme di protocolli TCP/IP. Questo protocollo è stato creato principalmente perché riferisce gli insuccessi dell’instradamento all’host mittente.

Il protocollo ICMP può svolgere le seguenti funzioni:

- fornire messaggi di eco e di risposta per verificare l’attendibilità di una connessione tra due host. Questo, in genere, si fa con il comando PING (Packet Internet Groper);

- reindirizzare il traffico per fornire un instradamento più efficiente, quando un router è intasato a causa di un traffico eccessivo;

- emettere un messaggio di tempo scaduto quando il datagramma di un’origine ha superato il tempo di durata in vita che gli era stato assegnato e viene scartato;

- emettere annunci di instradamento per determinare l’indirizzo di tutti i router in un segmento di rete;

- fornire un messaggio di inibizione dell’origine per dire ad un host di rallentare le proprie comunicazioni, nel caso che queste stiano saturando un router o un collegamento di rete WAN;

- determinare quale maschera di sottorete è in uso su di un segmento di rete.

3.6.2.1.3 – Internet Group Management Protocol (IGMP)

A volte, invece di inviare le informazioni da un host origine ad un singolo host destinatario, occorre inviarle a più host destinatari. Un sistema consiste nell’utilizzare il metodo di trasmissione “broadcasting”, che, però, presenta due problemi principali. Come prima cosa, tutti gli host sulla rete devono esaminare il pacchetto per determinare se è destinato a loro. Come seconda cosa, molti instradatori sono configurati in modo da non inoltrare questi broadcast ad altri segmenti di rete. Questi due problemi possono causare congestioni sulla rete. Un’alternativa al broadcasting, è il “multicasting”. Invece che considerare come destinazione di un pacchetto IP tutte le macchine sulla rete, si può fare in modo che la destinazione sia uno specifico gruppo di

Page 56: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

computer. La consegna dei pacchetti multicast avviene tramite UDP. Pertanto, è possibile che si verifichino smarrimenti o ritardi durante il transito. Di seguito, troviamo alcune considerazioni sui gruppi multicast IP:

- tutte le attribuzioni di indirizzi multicast si basano su indirizzi IP di classe D, che vanno da 224.0.0.1, fino a 239.255.255.255;

- l’indirizzo 224.0.0.1 è riservato e rappresenta il gruppo “tutti gli host”. Questo gruppo comprende tutti gli host e gli instradatori IP che partecipano ad un multicasting IP su di un segmento di rete;

- un host IP può aderire o uscire dinamicamente da un gruppo multicast IP in qualsiasi momento;

- gli indirizzi multicast IP devono apparire solo come indirizzi di destinazione. E’ raro che essi appaiano come indirizzi dell’origine, poiché di solito non sono vincolati alle schede di rete. Alcune forme di UNIX permettono comunque queste funzionalità. In questi casi, un indirizzo multicast può effettivamente apparire come indirizzo dell’origine.

Il formato di un pacchetto IGMP appare di questo tipo:

Version Type Non utilizzato Checksum

Group Address

- il campo Version: questo campo indica la versione del protocollo in uso. Per i pacchetti IGMP è impostato sul valore 1;

- il campo Type: questo campo indica se il messaggio IGMP è un’interrogazione inviata da un instradatore multicast (valore 1) o una risposta inviata da un host IP (valore 2);

- il campo Checksum: questo campo è una somma di controllo per l’intero messaggio IGMP. Serve ad assicurare che le informazioni non si siano danneggiate durante il transito. Per calcolare le somme di controllo IGMP, si usa lo stesso algoritmo che serve per il calcolo delle somme di controllo dell’intestazione IP;

- il campo Group Address: questo campo contiene il multicast IP del gruppo al quale un host dichiara di appartenere. Nel caso di un interrogazione di gruppo multicast, questo campo è impostato su valori tutti uguali a zero.

3.6.2.1.4 – Address Resolution Protocol (ARP)

Perché due host possano comunicare con successo su di un segmento di rete, essi devono risolvere gli indirizzi hardware l’uno dell’altro. Questa funzione ha luogo, nell’insieme di protocolli TCP/IP per mezzo del protocollo di risoluzione degli indirizzi (Address Resolution Protocol, ARP). ARP risolve un indirizzo IP di un host destinatario in un indirizzo MAC ed inoltre si assicura che l’host di destinazione sia in grado di risolvere l’indirizzo IP del mittente di un indirizzo MAC. Capita di frequente, su una

Page 57: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

rete, che un computer client comunichi con un server centrale (vedi tutte le reti non paritetiche). Invece di richiedere ogni volta l’indirizzo MAC del server, il protocollo ARP si serve di un particolare tipo di memoria cache, chiamata “cache ARP”. Questa tiene in archivio un elenco di indirizzi IP risolti di recente in indirizzi MAC. Se l’indirizzo MAC dell’indirizzo IP di destinazione si trova nella cache ARP, esso viene utilizzato come indirizzo di destinazione per la comunicazione, evitando così di sprecare il tempo necessario ad una nuova risoluzione.

Nel gestire la cache ARP, occorre rispettare le seguenti regole:

- ciascuna nuova voce è configurata con un valore per il tempo di durata in vita (time-to-live, TTL). Il valore reale dipende dal sistema operativo utilizzato. Quando il valore del tempo di durata in vita raggiunge lo zero, la voce viene rimossa dalla cache ARP;

- se una nuova voce non è riutilizzata nei primi due minuti della sua vita, viene rimossa dalla cache ARP;

- in alcune implementazioni TCP/IP, il valore del tempo di durata in vita è reimpostato sul suo valore iniziale ogni volta che si riutilizza una voce della cache ARP;

- ciascuna implementazione di TCP/IP stabilisce un numero massimo di voci per la cache ARP. Se questa è piena e deve aggiungere una nuova voce, elimina la voce più vecchia per fare spazio a quella nuova (struttura di tipo first-in-first-out, FIFO).

3.6.2.2 – I protocolli dello strato del trasporto

All’interno dell’architettura TCP/IP, sono due i protocolli che lavorano al livello del trasporto:

• TCP: che necessita di una connessione, e garantisce il corretto invio dei dati;

• UDP: protocollo connection-less, che spedisce dati senza richiesta di conferma, garantendo una spedizione “al meglio”.

3.6.2.2.1 – Transfer Control Protocol (TCP)

Il protocollo TCP ha la responsabilità della trasmissione affidabile di dati tra un nodo e l’altro di una rete. Esso crea una sessione orientata alla connessione tra le due macchine, ovvero dando origine ad un circuito virtuale. Affinché possa stabilire una connessione, il TCP crea ed invia un pacchetto che richiede una connessione alla macchina di destinazione. In seguito attende, per vedere se l’host contattato è a sua volta disponibile alla comunicazione. Nel caso ciò si verifichi, la macchina di destinazione risponde con un proprio pacchetto che significa letteralmente “sono disponibile per una conversazione e voglio ulteriori notizie da te”. La prima macchina risponde dunque con un “bene, eccoti il resto dell’informazione”. Questo processo, attraverso il quale si stabilisce una sessione di comunicazione tra due macchine, è chiamato “handshaking (letteralmente stretta di mano) a tre vie”. Si dice “a tre vie” perché nel processo sono necessari tre passi:

Page 58: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

• il client richiedente invia al server un segmento (pacchetto) e specifica il numero di porta che vuole usare ed il suo numero di sequenza iniziale (ISN);

• il server risponde con un segmento contente il suo ISN ed un acknowledgement distinto dell’ISN client, a cui è sommato il valore 1;

• il client riconosce l’ISN del server, dando inizio alla sessione.

Il processo di handshaking a tre vie, stabilisce dunque il numero di porta che dovrà essere usato ed i numeri di sequenza iniziali di ambedue le parti. Affinché le macchine possano stabilire e mantenere una connessione, esse debbono scambiarsi determinate informazioni. Ogni pacchetto TCP inviato, contiene un numero di porta sorgente e destinazione, un numero di sequenza per i messaggi che debbono essere suddivisi in brani più piccoli ed un valore di controllo per garantire l’invio delle informazioni senza errori. Inoltre, ogni pacchetto contiene anche un numero di riconoscimento che dice alla macchina mittente quali pezzi del messaggio siano effettivamente arrivati a destinazione. Tutti questi accorgimenti, sono necessari per realizzare una trasmissione realmente “affidabile”.

3.6.2.2.1.1 – Porte e socket

Ogni processo che fa uso del TCP/IP, deve avere un numero di porta di protocollo, per fare riferimento alla posizione di una particolare applicazione che gestisce il processo sulla singola macchina. Un’applicazione, teoricamente, può essere configurata per essere eseguita su quasi tutte le 65'536 porte (UDP e TCP) disponibili, anche se le applicazioni ed i servizi TCP/IP di uso più comune usano solitamente le prime 1'023. Queste porte, sono dette “Well knowed ports” (porte ben note) e sono assegnate e gestite a lato server dalla IANA (Internet Assigned Numbers Authority). Per esempio, quando si stabilisce una sessione Telnet, l’applicazione client si collega alla porta 23 TCP del server Telnet. Una porta è in realtà un sottoinsieme di una socket. Le socket sono infatti semplici stringhe, formate dalla combinazione indirizzo IP + numero di porta.

3.6.2.2.2 – User Datagram Protocol (UDP)

UDP è un altro protocollo dello strato del trasporto a cui va la responsabilità della trasmissione dati su una rete. A differenza del TCP, però, si tratta di un protocollo che non necessita di connessione. Non viene infatti stabilita alcuna sessione e l’UDP si limita soltanto a “fare del suo meglio” perché la spedizione vada a buon fine. Questo protocollo non cerca di verificare che l’host di destinazione abbia o meno ricevuto le informazioni che gli sono state inviate. UDP è utilizzato da quelle applicazioni che inviano piccole quantità di dati e che non hanno bisogno di una consegna sicura. Come vedremo nel corso del capitolo 5, UDP è usato dal NetBIOS per i servizi “Name service” e “Datagram”, che devono inviare piccolissime quantità di dati. Anche questo protocollo utilizza i numeri di porta per fare identificare un processo particolare ad un indirizzo IP specifico, ma le porte UDP sono diverse da quelle TCP e possono pertanto coincidere numericamente, senza causare conflitti.

Page 59: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

3.6.2.2.3 – Una esemplificazione delle differenze tra TCP e UDP

Un protocollo UDP fornisce un servizio senza connessione. Non esiste una garanzia del fatto che l’host destinatario riceverà le informazioni. Le applicazioni che si servono di UDP devono fare da sé per assicurarsi che i dati siano consegnati con successo all’host ricevente. L’unica protezione che esiste in un pacchetto UDP è un valore di controllo nella sua intestazione, il quale assicura che i dati non si siano danneggiati durante il transito. Una tipica analogia che serve a paragonare i protocolli TCP e UDP è l’ufficio postale in confronto ad un corriere espresso. L’ufficio postale funziona un po’ come il protocollo UDP. Quando si scrive una lettera per un amico e la si imbuca, non è garantito che essa giungerà a destinazione, anche se la maggior parte delle volte lo farà. Questo meccanismo può andare bene finché si deve scrivere una qualche sciocchezza: infatti, che essa arrivi o non arrivi non ha grande importanza. Il protocollo TCP possiamo vederlo invece come un corriere espresso, che garantisce sempre e comunque la consegna, oltretutto entro un determinato lasso di tempo. Ovviamente, il costo del corriere è superiore rispetto a quello del postino tradizionale. In materia di protocolli, il maggior costo si rileva come maggior traffico sulla rete, in quanto, oltre all’invio del frammento, il TCP richiede che venga inviata al mittente la conferma di ricezione.

3.6.2.3 – I protocolli dello strato dell’applicazione

I protocolli che operano allo strato dell’applicazione sono svariati. Per la gestione delle e-mail, infatti, esistono SMTP (invio), POP3 ed IMAP4 (ricezione). Per il trasferimento di file vi è l’FTP, mentre per la visualizzazione di documenti si è affermato l’HTTP, che ha avuto la meglio su Gopher e Telnet

3.6.2.3.1 – Telnet

Per dirla con il linguaggio di Postel e Reynolds, che lo teorizzarono nel 1983 con la pubblicazione della RFC 854, il Telnet “non è altro che una connessione TCP usata per la trasmissione di dati, intervallati da particolari informazioni di controllo”. Il protocollo Telnet appoggia su tre idee fondamentali:

• il concetto di Network Virtual Terminal;

• il principio delle opzioni negoziabili;

• una visione simmetrica dei terminali e dei processi;

3.6.2.3.1.1 – Network Virtual Terminal (NVT)

Quando tra due host viene stabilita una connessione Telnet, ciascuno dei due determina l’apertura e la chiusura di una rete di terminali virtuali (NVT). Una NVT, concettualmente, è una rete che fornisce degli standard per la comunicazione, una certa ampiezza di banda e gestisce la sessione come se il server avesse a che fare con un terminale tradizionale. Questo elimina la necessità che ogni host (sia esso un server o un client) debba mantenere in memoria le informazioni (indirizzo IP, MAC, ecc…) relative all’altro terminale.

Page 60: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

3.6.2.3.1.2 – Le opzioni negoziabili

Il principio della negoziazione delle opzioni, nasce dalla considerazione che alcuni server possono fornire servizi addizionali per la NVT che vanno a creare. I client potrebbero avere software Telnet molto semplici, che non permettono altro che le operazioni di base, o anche software piuttosto sofisticati. Gli utenti di questi ultimi desiderano giustamente avere il massimo dai loro programmi. Per garantire comunque compatibilità per tutti i vari client Telnet, Postel e Reynolds hanno previsto una fase, ad inizio collegamento, di negoziazione delle opzioni. Al giorno d’oggi, queste opzioni fanno sorridere. Il server chiede infatti al client se possiede ad esempio un display a colori, qual é lo standard di caratteri utilizzato e così via. Il client risponde semplicemente accettando o rifiutando le opzioni che gli vengono proposte dal server.

3.6.2.3.1.3 – Visione simmetrica dei terminali e dei processi

La simmetria della sintassi di negoziazione, potrebbe potenzialmente portare ad un loop infinito. Ciascun host, infatti, vede ogni comando in entrata non come un acknowledgment, ma sempre come una richiesta che deve essere soddisfatta. Per prevenire questi loop, valgono le seguenti regole, volte anche a minimizzare l'occupazione di banda sulla rete:

• gli host possono soltanto richiedere un cambiamento nello stato delle opzioni. Non possono pertanto spedire messaggi del tipo: "io sono in questo stato";

• se un host riceve la richiesta di abilitare una opzione che é già attiva, a questa richiesta non deve essere data alcuna risposta;

• quando uno dei due host invia un comando volto a cambiare un'opzione e l'uso di questa opzione avrà una qualche operazione anche sui dati già processati, allora il comando deve essere inserito nel punto esatto in cui si desidera che abbiano inizio i suoi effetti. Questo punto deve essere specificato dall’host che invia il comando;

3.6.2.3.2 – Gopher

Creato nell’aprile del 1991 all’università del Minnesota, da un gruppo di studenti guidato dal programmatore Mark McCahill, il Gopher si può definire come un altro sistema che tentò di rappresentare tutte le risorse ed i servizi che Internet metteva a disposizione in quel periodo. Il nome deriva dalla mascotte dell’università, una specie di talpa dorata, chiamata appunto “Golden Gopher”. Più tecnicamente, si trattava di un sistema client/server, dotato di una interfaccia che si presentava all’utente sotto forma di menù a scelta multipla. Ogni menù, era in realtà una categoria in cui vi erano i dati o i servizi richiesti che rimandavano ad altri server Internet. I vari server Gopher, nei quali un demone rimaneva in ascolto sulla porta TCP 70, erano connessi tra di loro a collegare una gigantesca rete.

Page 61: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

Per trovare le informazioni di cui un utente necessitava, venne creato un motore di ricerca interno (precursore degli odierni Google, Altavista, NorthernLight, Yahoo, ecc…), chiamato Veronica. Al giorno d’oggi il Gopher è pressoché inutilizzato, sopraffatto in praticità, velocità e diffusione dall’HTTP, benché tutti i browser di ultima generazione continuino a supportarlo. All’indirizzo gopher://gopher.tc.umn.edu/ è possibile trovare interessanti risorse riguardo a questo protocollo.

3.6.2.3.3 – ANSI Z3950 e Wide Area Information Servers (WAIS)

Il modello relazionale per i database offre sicuramente un potente strumento per la rappresentazione di realtà complesse. Il linguaggio SQL, essendo uno standard ISO, viene oramai utilizzato dalla maggior parte dei produttori di Data Base Management System. D'altro canto, data la sua potenza e complessità, SQL non é sicuramente un linguaggio utilizzabile dall'utente finale. L'utente richiede infatti interfacce guidate, elementari e capaci di accedere facilmente ai dati prescindendo dalla loro dislocazione geografica. Proprio a questo scopo è stato creato il protocollo ANSI Z3950, che consente di interagire con un database da una postazione remota, tramite una interfaccia utente il più semplice possibile. Il sistema, che si appoggia al TCP/IP, é costituito da un insieme di server WAIS opportunamente modificati, che comunicano tra di loro attraverso il protocollo di cui sopra. Il server (waisserver) accede ai dati memorizzati sul DBMS relazionale mediante il linguaggio SQL e ridistribuisce all'utente i pointer (WAIS DocId): l'utente richiede al server i singoli record o set di record. Attualmente e' stata realizzata l'interfaccia WAIS/SQL verso i DBMS SYBASE (SYBASE Inc.) e ALLBASE (HP Corp.), su WS SUN e IBM per SYBASE,e su WS HP sia per SYBASE che per ALLBASE.

3.6.2.3.4 – Simple Mail Transfer Protocol (SMTP)

L'SMTP (Simple Mail Transfer Protocol) é, come dice il nome stesso, un protocollo creato per gestire in maniera semplice e veloce l'invio di messaggi di posta elettronica (e-mail). Esso si basa su una connessione (indifferentemente TCP o UDP), tra un host client ed un server il cui demone software é in ascolto sulla porta 25. La comunicazione tra le due macchine, avviene attraverso alcuni semplici scambi informazioni. Una volta stabilita la connessione, infatti: • il client si presenta, inviando una stringa del tipo: "HELO Fabio", nella quale indica il suo nome. Il server risponde con un "250 +OK" che é il codice utilizzato dai server SMTP per segnalare l'avvenuta ricezione e l'elaborazione del messaggio;

• il client specifica che si tratta di una e-mail e dovrebbe ora fornire il proprio indirizzo di posta. I nuovi software di ricezione (Outlook Express, Eudora, ecc...), però, ignorano di pari passo questo campo. Essendo comunque obbligatorio, é necessario inserire la stringa: "MAIL FROM:<>";

• il client specifica quindi l'indirizzo del destinatario della e-mail. Una stringa di esempio può essere: "RCPT TO:<[email protected]>";

Page 62: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

• é terminata la fase di autenticazione e può quindi cominciare quella di scrittura e trasmissione del messaggio. Prima di tutto é necessario il comando "DATA";

• ora si può indicare l'indirizzo del mittente. Ad esempio: "FROM:[email protected]";

• é quindi necessario ripetere l'indirizzo del destinatario: "TO:[email protected]";

• il messaggio dovrebbe contenere un soggetto; per specificarlo: "SUBJECT:soggetto prova";

• ora serve una riga vuota, per indicare al server che l'intestazione della e-mail é conclusa e che ora inizia il corpo del messaggio. Il testo può essere inviato tutto insieme o anche riga per riga. Il server provvede ad inoltrare la e-mail quando riceve la stringa ".";

• il client si scollega: "QUIT".

3.6.2.3.5 – Post Office Protocol version 3 (POP3)

Il POP3, descritto in almeno 20 RFC diverse(1081, 1225 e 1460 solo per citare le più significative) è il protocollo complementare dell’SMTP. Se infatti l’SMTP si occupa della spedizione delle e-mail, il POP3 fa l’esatto contrario, ovvero fornisce una serie di comandi per la fase di ricezione. E’ per merito dei server POP3 che è possibile ricevere le e-mail “on demand”. Una volta inoltrato dal server SMTP del mittente, infatti, un messaggio viene memorizzato dal server POP3 del destinatario, che solitamente è una macchina sempre accesa e destinata prevalentemente a ricevere la posta in arrivo. L’utente può collegarsi in un qualsiasi momento con il proprio server POP3 e trasferire in locale tutti i messaggi destinati a lui, tenendone o meno una copia sul server. Il demone POP3 è solitamente in ascolto sulla porta 110 TCP, alla quale il client deve accedere per poter controllare la sua mailbox. I procedimenti principali utilizzati dal protocollo per avviare il trasferimento sono i seguenti:

• il client si identifica, inserendo il proprio username. La stringa da inviare deve essere ad esempio: “USER [email protected]”. Il server risponde con un +OK ed un codice che indica la corretta ricezione ed elaborazione della stringa trasmessa;

• una volta fornito il proprio username, l’utente deve farsi riconoscere mediante una password. La stringa da inviare è del tipo “PASS 5info2” (NB: la mia password non é questa, ma a titolo esemplificativo credo possa andare bene). Il server risponde inviando il solito +OK, seguito però dal numero di messaggi presenti nella mailbox;

• il client può quindi iniziare la ricezione dei messaggi, con la stringa “RETR numeromessaggio”. Ad esempio: “RETR 1” provoca l’invio dal server al client del primo messaggio (in ordine temporale basato sulla spedizione) presente nella casella di posta;

• nonostante venga trasmesso al legittimo destinatario, il messaggio rimane memorizzato anche nell’hard disk del server. Per eliminarlo il client può usare la forma: “DELE numeromessaggio”;

Page 63: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

• per chiudere la connessione, come nel caso dell’SMTP, è sufficiente l’invio della stringa: “QUIT”.

Il protocollo POP3 è stato ormai sostituito dal più recente IMAP4. Questo nuovo protocollo non ha comunque introdotto sostanziali migliorie al POP3, al punto che, se fosse possibile pesare il numero di software che sfruttano uno solo dei due protocolli, l’ago della bilancia continuerebbe a pendere inesorabilmente verso il POP3.

3.6.2.3.6 – Network News Transfer Protocol (NNTP)

Nei primi anni 80, quando Internet si chiamava ancora Arpanet ed era uno strumento riservato a pochi intimi, gli utenti si scambiavo le notizie facendo un largo uso della posta elettronica. Si trattava senz'altro di un metodo molto efficiente, ma che soffriva di diverse limitazioni, data l'arretratezza dei primi server SMTP utilizzati. In particolare, venivano molto utilizzate le mailing list e quando queste superavano una decina di utenti registrati, ogni processo di spedizione metteva a dura prova le capacità del server che doveva provvedere ad inoltrare il tutto. Si pensò così di ideare un protocollo che alleggerisse tutto questo lavoro. A tal fine, nel 1986 venne proposto l'NNTP, descritto da Brian Kantor e Phil Lapsley nella RFC 977. Il protocollo, opportunamente aggiornato, é ancora utilizzatissimo anche ai giorni nostri. L'NNTP é stato progettato affinché tutti gli articoli (in gergo "post") risiedano su di un server dedicato e permettano all'utente di leggere soltanto i post che gli interessano, potendo avere in anteprima il titolo del messaggio ed il nome del mittente. Al giorno d'oggi, tutti i più diffusi software che gestiscono la posta elettronica hanno anche la funzione di news-reader. Tranne Internet All-in-One, nel quale abbiamo dovuto tralasciare la parte NNTP per esigenze puramente temporali.

3.6.2.3.7 – File Transfer Protocol (FTP)

L'FTP é un protocollo che garantisce il trasferimento di file tra due host, in maniera affidabile ed efficiente. Esso si appoggia ai protocolli TCP e Telnet per le connessioni, aggiungendo una interfaccia più complessa, ma decisamente più affidabile. Questa interfaccia é riassumibile nello schema qui sotto:

Page 64: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

Nel modello, il protocollo utente inizializza il controllo della connessione (control connection), che sfrutterà il protocollo Telnet. All'avvio della connessione, i comandi FTP standard sono generati dall'user-PI e trasmessi al server. La risposta viene quindi spedita dal server-PI all'user-PI. I comandi FTP specificano i parametri per instaurare la trasmissione dati effettiva (data connection), come ad esempio il numero di porta TCP da utilizzare (solitamente la 25), oltre alla natura delle "file system operation" (store, retrieve, delete, append, ecc...). L'user-DTP si mette dunque in ascolto sulla porta ed il server-DTP inizia la sua trasmissione, in accordo con i parametri ricevuti precedentemente.

3.6.2.3.8 – Hyper-Text Transfer Protocol (HTTP)

L'HTTP é uno dei protocolli più recenti (l'RFC 1945 di Tim Berners-Lee é datata 1996), che ha notevolmente agevolato l'espandersi a livello mondiale di Internet. La sua funzione principale é quella di interfacciamento con il WWW (World Wide Web) e di conseguenza con l'HTML (Hyper-Text Markup Language), il linguaggio che sta alla base dei documenti ipertestuali. Proprio per agevolare l'ipertestualità delle pagine, con link che permettono di passare da una pagina all'altra tramite un semplice clic del mouse, l'HTTP é stato progettato come un protocollo "state-less" (senza memoria). Ciò significa che il procedimento di ricezione dati non é vincolato a quelli appena ricevuti. Quando richiediamo la visualizzazione di una pagina HTML, infatti, il nostro browser non fa altro che connettersi al server dove essa é memorizzata, richiederla attraverso semplici stringhe ASCII di testo (chiamate “method”), riceverla e chiudere immediatamente la connessione. L'unico incoveniente di questo protocollo si riscontra quando l'utente ha problemi a connettersi al server HTTP. Può infatti capitare di riuscire a vedere qualche pagina, senza però essere in grado di visualizzare quelle successive. 3.7 – Domain Name Service (DNS)

Page 65: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

Il DNS è un particolare servizio che consente la risoluzione del nome di un host nell’indirizzo IP corrispondente. In ambiente Windows NT questa funzione viene assolta da un server locale (server DNS); nell’ambito di Internet, invece, il server DNS non è locale, ma messo a disposizione in remoto dal provider che fornisce l’accesso al Web. Sostanzialmente, il server DNS é un database, contenente un elenco di nomi di host e corrispettivi indirizzi IP. L’HTTP si appoggia pesantemente al DNS. Ciò permette di collegarsi ad un server web utilizzando un nome facile da ricordare (ad esempio http://www.internetallinone.cjb.net) invece che il corrispettivo IP (ad esempio 188.234.321.45)

Page 66: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

Capitolo 4: Gli indirizzi dell’Internet Protocol (IP address) 4.1 – Fondamenti sugli indirizzi dell’Internet Protocol Gli indirizzi IP identificano in modo univoco ciascun host su una internet TCP/IP. Un host può essere un computer, un terminale o anche un instradatore (router). In generale, possiamo dire che un host é un qualunque dispositivo fisico sulla nostra rete, che corrisponde ad una delle seguenti proprietà:

• si usa per accedere ad altri dispositivi sulla rete; • ci si connette a questo dispositivo in qualità di componente

condiviso della rete.

In una internet TCP/IP, ciascun host ha bisogno di un indirizzo IP che lo identifichi in modo univoco. Questo indirizzo IP, naturalmente, deve essere unico in tutta la internet. La scelta degli indirizzi in una LAN é generalmente opera dell'amministratore, ma quando si ha a che fare con reti molto più estese geograficamente e come numero di utilizzatori, cosa si può fare per risolvere il problema? In questo caso, occorre una autorità che si occupi dell'assegnazione dei numeri. Per Internet, la Internet Assigned Number Authority (IANA) stabilisce le linee di condotta che riguardano l'assegnazione degli indirizzi IP ed é preposta a tale assegnazione. Che cosa accadrebbe se un host utilizzasse lo stesso indirizzo IP di un altro host della rete? Questo dipende dal tipo di implementazione del TCP/IP sulla rete. In molti casi, il secondo host, il cui l'indirizzo IP é già in uso, si ritroverebbe impossibilitato ad accedere alla rete. In altri scenari, tuttavia, verrebbe utilizzato l'indirizzo MAC dei due host per riuscire comunque ad identificarli in modo univoco. 4.2 – Come si scrive un indirizzo IP? Ciascun indirizzo IP é una sequenza di 32 cifre binarie, quindi 1 o 0. Questo é il motivo per cui la versione corrente dell'attribuzione di indirizzi IP é conosciuta come assegnazione di indirizzi a 32 bit. Sarebbe però facile fare confusione se ci si riferisse agli indirizzi in questo modo, pertanto, per gli indirizzi IP si utilizza la rappresentazione per decimali puntati. 4.3 - Notazione per decimali puntati Un indirizzo IP, che come si é accennato é formato da 32 bit, comprende quattro ottetti di informazioni. Per comodità, ciascuno di questi ottetti viene scritto nella sua corrispondente notazione decimale. Per esempio, l'indirizzo IP: 01111111 00000000 00000000 00000001, appare di solito sotto forma di 127.0.0.1.

Page 67: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

Ciascun ottetto di informazioni é separato da quelli adiacenti per mezzo di un punto. 4.4 - Le classi degli indirizzi IP Su un singolo segmento di rete, tutti gli host IP condividono lo stesso indirizzo di rete. Ciascun host su quel segmento, deve avere una porzione dell'indirizzo univoca e distintiva. Cinque gruppi di indirizzi IP sono stati istituiti come classi di indirizzi IP e solo le prime tre possono essere assegnate agli host su una rete. In ciascuna di queste prime tre classi di indirizzi IP, gli ID sono composti da una porzione relativa alla rete e da una relativa all'host.

(figura 3.4)

4.4.1 - Indirizzi di Classe A Un indirizzo di Classe A, assegna 8 bit dell'indirizzo alla porzione della rete e 24 bit alla porzione dell'host. In un indirizzo di classe A, il valore del primo ottetto é compreso tra 1 e 126. Questi numeri sono rappresentati in binario da schemi del tipo: 0#######. Questo consente 126 reti distinte di 16'774'214 host ciascuna. Questi numeri si ricavano mediante i seguenti calcoli:

Page 68: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

1) la prima cifra del primo ottetto in un indirizzo di classe A è 0; questo lascia 7 bit per creare ciascun ID di rete univoco. Il valore di 2^7 è 128. Tuttavia, non si possono utilizzare due indirizzi: non si può utilizzare il valore 0 come ID di rete e neppure il valore 127, perché è riservato per funzioni di loopback. Questo lascia 126 ID di rete univoci; 2) rimangono 24 bit a disposizione dell’ID dell’host. Il valore di 224 è 16'777’216. Un ID di un host non può essere formato tutto da 0 o tutto da 1. Questo elimina dal gruppo due ID per gli host, pertanto restano 16'777'214 host univoci per rete. 4.4.2 - Indirizzi di Classe B Un indirizzo di Classe B, assegna 16 bit alla porzione della rete e 16 bit alla porzione dell’host. Il valore del primo ottetto è compreso tra 128 e 191. Questi numeri sono rappresentati in binario da schemi del tipo 10###### e ciò si traduce in 16'384 reti univoche, con 65'534 host ciascuna. Questi due numeri si ricavano mediante i seguenti calcoli: 1) le prime due cifre del primo ottetto di un indirizzo di Classe B sono 1 e 0; questo lascia 14 bit a rappresentare ciascun ID di rete univoco. Se si calcola 214, si determina che il numero totale di ID di rete di Classe B è 16'384; 2) rimangono 16 bit per l’ID dell’host. Il valore di 216 è 65'536. Un ID di un host non può essere costituito da tutti 0 o tutti 1 e questo elimina due ID dal gruppo, pertanto rimangono 65'534 host univoci per rete. 4.4.3 - Indirizzi di Classe C Un indirizzo di Classe C, assegna 24 bit alla porzione della rete e 8 bit alla prozione dell’host. Il valore del primo ottetto è compreso tra 192 e 223. Questi numeri sono rappresentati in binario da schemi del tipo 110#####. Ciò si traduce in 2'097'152 reti univoche con 254 host ciascuna. Questi numeri si ricavano mediante i seguenti calcoli: 1) le prime tre cifre di un indirizzo di Classe C sono 1, 1 e 0; questo lascia 21 bit a rappresentare ciascun ID di rete univoco. Se si calcola 2^21, si determina che il numero totale di ID di rete di Classe C è 2'097'152; 2) rimangono 8 bit per l’ID dell’host. Il valore di 2^8 è 256. Un ID di un host non può essere costituito tutto da 0 o tutto da 1 e questo elimina due ID dal gruppo, pertanto rimangono 254 host univoci per ciascuna rete. 4.4.4 – Indirizzi di Classe D Gli indirizzi di Classe D sono riservati a gruppi multicast e non è possibile assegnarli a singoli host su di una rete. Un indirizzo di classe D ha il valore del primo ottetto compreso tra 224 e 239 ed è rappresentato in binario da schemi del tipo 1110####. I

Page 69: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

rimanenti 28 bit rappresentano il gruppo multicast al quale l’host appartiene. 4.4.5 - Indirizzi di Classe E Gli indirizzi di Classe E sono sperimentali e pertanto sono ancora preclusi al pubblico, essendo riservati ad usi futuri. Un indirizzo di Classe E ha il valore del primo ottetto compreso tra 240 e 255 ed è rappresentato in binario da schemi del tipo 1111####. 4.5 – Regole generali nell’assegnazione degli indirizzi IP Quelle che seguono sono regole generali da applicare nell’assegnazione degli ID di rete e degli host:

- tutti gli host sullo stesso segmento di rete fisico devono avere lo stesso ID di rete;

- ciascun host su di un segmento di rete deve avere una porzione dell’host univoca nell’indirizzo IP;

- un ID di rete non può mai essere 127. Questo valore è riservato a funzioni di loopback;

- un ID di rete non può essere costituito da tutti 1, poiché questo rappresenta un indirizzo broadcast (255.255.255.255);

- un ID di un host non può essere costituito da tutti 1, poiché anche questo rappresenta un indirizzo broadcast per la rete;

- un ID di rete non può essere costituito da tutti 0, poiché questo rappresenta la rete locale;

- un ID di un host non può essere costituito da tutti 0, poiché di consueto si rappresenta una rete usando la porzione della rete dell’ID con un ID dell’host impostato su tutti 0 e pertanto non è possibile assegnare quest’ultimo ad un host individuale.

4.6 – Il ruolo delle maschere di sottorete Le maschere di sottorete indicano quali bit di un indirizzo IP rappresentano la porzione della rete e quali rappresentano invece la porzione dell’host. Con gli indirizzi IP di Classe A,B, e C si utilizzano maschere di sottorete predefinite, nel modo che segue:

- Classe A – 255.0.0.0 - Classe B – 255.255.0.0 - Classe C – 255.255.255.0 -

La maschera di sottorete di Classe A dice che i primi 8 bit dell’indirizzo IP rappresentano la porzione della rete dell’indirizzo. I rimanenti 24 bit rappresentano la porzione dell’host dell’indirizzo. Diciamo che un host abbia l’indirizzo IP 11.25.65.32. Usando la maschera di sottorete predefinita,

Page 70: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

l’indirizzo della rete sarebbe 11.0.0.0 e la componente dell’host sarebbe 25.65.32. La maschera di sottorete di Classe B dice che i primi 16 bit dell’indirizzo IP rappresentano la porzione della rete dell’indirizzo. I rimanenti 16 bit rappresentano l’indirizzo dell’host all’interno della rete. Se un host avesse l’indirizzo IP 172.16.33.33, la porzione della rete dell’indirizzo sarebbe 172.16.0.0 e la componente dell’host sarebbe 33.33. La maschera di sottorete di Classe C dice che i primi 24 bit dell’indirizzo IP rappresentano la porzione della rete dell’indirizzo. I rimanenti 8 bit rappresentano l’indirizzo dell’host all’interno della rete. Se un host avesse l’indirizzo IP 192.168.2.3, la porzione della rete dell’indirizzo sarebbe 192.168.2.0 e la componente dell’host sarebbe 3. 4.7 - Il processo di messa in AND

Quando un host mittente cerca di comunicare con un host destinatario, usa la sua maschera di sottorete per determinare se l'host destinatario si trova sulla rete locale o su di una rete remota. Questo processo é conosciuto con il nome di messa in AND. La funzione di messa in AND gode delle seguenti proprietà:

• se i due valori confrontati sono entrambi 1, il risultato é 1;

• se uno dei due valori é 0 e l'altro é 1, il risultato é zero; • se entrambi i valori confrontati sono 0, il risultato é zero.

Come si può facilmente notare, il funzionamento é il medesimo dell'AND operatore nell'algebra booleana. Gli indirizzi IP dell'origine e della destinazione, sono confrontati con la maschera di sottorete dell'origine per mezzo del processo di messa in AND. Per ciascuno dei due indirizzi, si crea un risultato AND. Se questi sono uguali significa che gli host si trovano sulla stessa rete. Se invece questi risultati AND sono diversi, significa che l'host destinatario si trova su una rete remota. Tutto il traffico destinato a quell'host remoto, dovrebbe dirigersi verso il router indicato nella tabella di instradamento (routing) dell'host origine. 4.7.1 – Esempio di messa in AND tra due host

Page 71: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

Host A IP (dec): 172.16.2.4 IP (bin): 10101100 00010000 00000010 00000100 SNM: 255.255.0.0 Host B IP (dec): 172.16.3.5 IP (bin): 10101100 00010000 00000011 00000101 SNM: ? (255.255.0.0) Se si effettua il processo di messa in AND, il risultato per l'host A (utilizzando la sua maschera di sottorete 255.255.0.0) é ciò che segue: Indirizzo IP dell’host A 10101100 00010000 00000010 00000100 Maschera di sottorete dell’host A 11111111 11111111 00000000 00000000 Risultato della messa in AND 10101100 00010000 00000000 00000000 Il risultato per l’host B, si può vedere invece qui sotto Indirizzo IP dell’host B 10101100 00010000 00000011 00000101 Maschera di sottorete dell’host A 11111111 11111111 00000000 00000000 Risultato della messa in AND 10101100 00010000 00000000 00000000 Come si può facilmente notare, i due risultati corrispondono. Questo indica che, per quanto riguarda l'host A, i due host si trovano sulla stessa rete fisica. Le comunicazioni possono quindi svolgersi direttamente tra i due host. La maschera di sottorete dell’host B, infatti, è la medesima dell’host A. 4.8 – Indirizzi di rete locale Sono stati riservati tre gruppi di indirizzi IP per l’uso sulle reti locali, dietro ai firewall ed ai server proxy. Eccoli elencati qui di seguito:

• da 10.0.0.0 a 10.255.255.255; • da 172.16.0.0 a 172.31.255.255; • da 192.168.0.0 a 192.168.255.255.

Questi indirizzi sono stati creati per fornire alle reti non collegate ad Internet, un gruppo di indirizzi IP che non fossero in conflitto con quelli attualmente in uso sulla Rete. Qualora le reti che si servono di questi indirizzi riservati dovessero un domani allacciarsi ad Internet, non avrebbero da preoccuparsi del fatto che qualche indirizzo possa essere conflittuale con qualche altra rete su Internet.

Page 72: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

4.9 – Il futuro dell’assegnazione degli indirizzi IP (IPv6) Con la crescita di Internet, lo schema attuale di assegnazione degli indirizzi IP sta velocemente esaurendo gli indirizzi disponibili. La IETF, rendendosene conto, ha il compito di creare la prossima generazione di indirizzi. Parecchie RFC pubblicate, stabiliscono le necessità del nuovo protocollo. Questo nuovo rilascio del protocollo IP, conosciuto ora come IPv6, doveva inizialmente sostituire l’attuale IPv4 con l’avvicinarsi dell’anno 2000. Al momento in cui scriviamo questa tesina, però, il protocollo in uso su Internet è ancora fermo alla quarta versione. Le caratteristiche che avrà l’IPv6, sono comunque riassunte in questo elenco:

• Aumentate capacità di assegnazione degli indirizzi. La dimensione dell’indirizzo per IPv6 sarà di 128 bit, cosa che garantirà un bel gruppo di indirizzi IP per Internet. Questo gruppo fornirà a ciascun utente un insieme di indirizzi IP uguale al numero totale di indirizzi IP disponibile in tutta Internet al giorno d’oggi;

• Semplificazione dell’intestazione IP. Buona parte delle informazioni dell’intestazione di IPv4 diventeranno opzionali o verranno addirittura scartate. Questo accelererà l’elaborazione delle informazioni dell’intestazione IP una volta giunte all’host ricevente;

• Migliorata estensibilità dell’intestazione IP. L’intestazione IP è stata formattata in modo da fornire un inoltro più efficiente, più flessibilità sulla lunghezza dei campi delle opzioni e maggior semplicità per includere nuove opzioni in futuro. Questo permetterà all’intestazione IP di cambiare con l’evoluzione del protocollo nei prossimi anni, senza che sopraggiunga la necessità di riprogettare l’intero formato dell’intestazione;

• Migliorato controllo di flusso. I datagrammi IP saranno in grado di richiedere una migliore qualità del servizio. Questo comprenderà la consegna delle informazioni in un momento specifico e la capacità di richiedere una minima disponibilità di larghezza di banda o servizio in tempo reale;

• Aumentata sicurezza. L’intestazione IP includerà estensioni per supportare l’autenticazione degli host mittente e destinatario ed una migliore assicurazione dell’integrità dei dati. Questo darà anche la possibilità di cifrare i dati durante il trasporto sulla rete.

Questi miglioramenti del protocollo IP dovrebbero agevolare notevolmente l’incessante crescita di Internet e l’aumento delle funzionalità garantite dalle applicazioni che usano il TCP/IP come insieme di protocolli di base.

Page 73: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

Capitolo 5: NetBIOS over TCP/IP 5.1 – NetBEUI e NetBIOS NetBEUI è l'acronimo di NetBIOS Extended User Interface (interfaccia utente estesa di NetBIOS). NetBIOS, a sua volta, significa Network Basic Input Output System (sistema input/output di base per le reti). SMB, infine, sta per Server Message Block.

Più che un protocollo, il NetBIOS, che nel modello OSI lavora al livello sessione, é paragonabile ad una API, cioé ad un'interfaccia di programmazione che, attraverso un set di comandi standard, unisce l'SMB con i protocolli di trasporto ed instradamento sottostanti (come il TCP/IP o l'IPX/SPX). NetBEUI é invece un protocollo vero e proprio (o meglio, come il TCP/IP, un'insieme di protocolli), che ingloba in modo nativo sia l'interfaccia NetBIOS, sia una semplice funzionalità di trasporto. Il livello di trasporto del NetBEUI implementa il protocollo OSI LLC2. Quindi, mentre il NetBIOS può lavorare solo se abbinato ad un protocollo di trasporto, NetBEUI é del tutto indipendente, non avendo bisogno nè di protocolli di trasporto, nè di interfacce verso l'SMB. 5.1.1 – Il protcollo SMB Creato dalla IBM a metà degli anni 80 e sufficientemente adattato e modificato dalla Microsoft, l'SMB é un importante protocollo, la cui implementazione é presente in quasi tutti i sistemi Windows. Come si può vedere nella figura precedente, si tratta del protocollo di più alto livello, al di sotto del quale si può trovare il NetBEUI oppure il NetBIOS (se corredato, come già detto, di un adeguato protocollo di trasporto). Il suo funzionamento é di tipo client/server, del tipo richiesta-risposta, dove il server é quel sistema che rende disponibili le proprie risorse condivise al client. I messaggi di richiesta e di risposta tra il client ed il server, sono detti appunto SMB. Essenzialmente, il lavoro di questo protocollo é quello di rendere

Page 74: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

possibile la condivisione di files e stampanti, incluse tutte le operazioni che comunemente vengono fatte su queste risorse (ad esempio, leggere, scrivere, cancellare, creare, stampare, ecc...). Come ricordato prima, ad ognuna di queste operazioni corrisponde un certo messaggio SMB (ad esempio read, write, delete, new, print, ecc...). SMB é anche il responsabile del tanto comodo quanto problematico "browsing" delle risorse di rete. All'interno del protocollo SMB esiste infatti quel particolare elemento che permette di disporre delle risorse remote come se fossero locali. Il nome di questo componente é redirector ed esso permette, ad esempio, di vedere il disco fisso di un altro computer come se fosse il proprio. Per adattare meglio l'SMB ai vari ambienti sotto cui può lavorare, sono state create diverse varianti di questo protocollo. Per questo, quando due computer instaurano una connessione SMB, la prima operazione che viene effettuata é quella di stabilire quale variante utilizzare. Se entrambi gli host supportano la variante scelta dal client, si passa alla fase di autenticazione, che avviene inviando al server un nome utente ed una password. Se il login ha successo, al client viene inviato come risposta un numero, l'UID, che funge da identificatore e che dovrà essere reinviato al server in tutte le successive connessioni con esso. Il protocollo SMB é in grado di gestire due livelli distinti di sicurezza: share e user. In modalità share, ad ogni risorsa condivisa viene associata una password, che una volta superata permette il pieno accesso alla risorsa in questione. In modalità user, invece, il client deve essere innanzitutto autenticato dal server tramite una coppia utente-password indipendenti dalle risorse di cui l'utente vorrà usufruire. L'accesso alla risorsa é deciso in base ai privilegi posseduti dal client. Si definisce dominio un insieme di computer in cui la gestione della sicurezza é affidata ad una entità centrale, chiamata PDC (primary domain controller). Al suo fianco possono esserci spesso controller secondari di backup. Un PDC contiene ad esempio l'elenco dei nomi dei client, le rispettive password, il gruppo di appartenenza, ecc... Le comunicazioni con il livello inferiore (NetBEUI o NetBIOS) avvengono tramite particolari strutture dati a 64 byte, chiamate NCB (network control block). Attraverso le NCB passano le richieste e le risposte SMB. Il metodo consiste nel caricare opportunamente queste strutture dati con tutte le informazioni necessarie, come il codice del comando, i nomi NetBIOS o altri parametri. L'accesso alle NCB può essere asincrono, se il controllo ritorna subito al programma, o sincrono, se invece il rogramma attende il completamento dell'operazione specificata. p 5.1.2 – I nomi NetBIOS Ogni host Windows, riceve un nome NetBIOS nel corso dell’installazione del sistema operativo. Questo nome viene usato per identificare in modo univoco la macchina sulla rete. Il nome NetBIOS però non viene utilizzato in sé per identificare un host:

Page 75: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

viene invece usato dalle applicazioni e dai processi NetBIOS per stabilire comunicazioni con altre applicazioni NetBIOS su di host remoti. Un nome NetBIOS è costituito da 15 caratteri alfanumerici. Se un nome NetBIOS non contiene 15 caratteri, Windows aggiunge il numero opportuno di caratteri nulli per portarlo alla lunghezza standard. A tutti i nomi NetBIOS viene aggiunto un sedicesimo carattere (chiamato nodo), che solitamente non è visibile. Si tratta di un valore esadecimale che indica il tipo di nome, servizio o gruppo rappresentato dal nome NetBIOS.

Name Number Type Service <computername> 00 U Workstation Service <computername> 01 U Messenger Service <__MSBROWSE__> 01 G Master Browser <computername> 03 U Messenger Service <computername> 06 U RAS Server Service <computername> 1F U NetDDE Service <computername> 20 U File Server Service <computername> 21 U RAS Client Service <computername> 22 U Exchange Interchange <computername> 23 U Exchange Store <computername> 24 U Exchange Directory <computername> 30 U Modem Sharing Server Service <computername> 31 U Modem Sharing Client Service <computername> 43 U SMS Client Remote Control <computername> 44 U SMS Admin Remote Control Tool <computername> 45 U SMS Client Remote Chat <computername> 46 U SMS Client Remote Transfer <computername> 4C U DEC Pathworks TCP/IP Service <computername> 52 U DEC Pathworks TCP/IP Service <computername> 87 U Exchange MTA <computername> 6A U Exchange IMC <computername> BE U Network Monitor Agent <computername> BF U Network Monitor Apps

<username> 03 U Messenger Service <domain> 00 G Domain Name <domain> 1B U Domain Master Browse <domain> 1C G Domain Controllers <domain> 1D U Master Browser <domain> 1E G Browser Service Elections

<INET~Services> 1C G Internet Information Server <IS~Computer_name> 00 U Internet Information Server

<computername> [2B] U Lotus Notes Server IRISMULTICAST [2F] G Lotus Notes IRISNAMESERVER [33] G Lotus Notes Forte_$ND800ZA [20] U DCA Iramalan Gateway Service

Nella tabella qui sopra, il sedicesimo carattere (esadecimale) è rappresentato nella colonna number. La colonna type, invece, indica se il nome NetBIOS è unico (U) oppure di gruppo (G).

Page 76: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

5.2 – I limiti di NetBIOS e NetBEUI La diffusione di Internet, ha messo subito in luce tutti i limiti di NetBIOS e del suo “socio” NetBEUI, quando la rete cresce di dimensioni. Tralasciando problemi seri, ma non insormontabili, quale il degrado prestazione sulle WAN dovuto all’uso dei broadcast, rimangono tuttavia altri problemi di non facile soluzione. Innanzitutto c’è il problema dell’unicità dei nomi. Dato che due computer non possono utilizzare due nomi uguali nella stessa rete, occorrerebbe individuare un nome diverso per ogni computer connesso. Operazione non banale in una rete geografica con milioni di host collegati. In secondo luogo, sempre a causa dei nomi, NetBEUI non permette il routing. Cioè, dato un nome NetBIOS, è impossibile sapere quale sia la strada per raggiungerlo. Ciò porta a complicazioni assurde: per esempio, un host si comporterebbe nello stesso modo per spedire un pacchetto ad un host distante da lui 100 metri, oppure situato in un altro continente. Il problema, in questo caso, risiede nel fatto che i nomi NetBIOS non contengono alcuna informazione gerarchica. A differenza degli indirizzi IP, che possono essere visti come indirizzi postali del tipo stato.citta.via.casa, i nomi NetBIOS non forniscono indicazioni di nessun tipo. Un ultimo problema, forse il più importante, è che i router di Internet non permettono il propagarsi dei broadcast, tanto cari al NetBIOS quando cerca di localizzare un nodo. Per dire tutto in poche parole, NetBIOS ed Internet sono incompatibili. Tuttavia, per evitare che il NetBIOS venisse definitivamente abbandonato, Microsoft ebbe la brillante idea di abbinare l’interfaccia NetBIOS ad un protocollo molto più flessibile del NetBEUI, ovvero il TCP/IP. In questo modo, ogni messaggio elaborato da NetBIOS viene incapsulato in un messaggio TCP/IP, che non soffre delle limitazioni di cui sopra. 5.3 - NetBIOS over TCP/IP (NBT) Per rendere possibile l'interfacciamento tra NetBIOS e TCP/IP era necessario che anche NetBIOS iniziasse ad interpretare degli indirizzi IP. E' da questa considerazione che nasce il NetBIOS over TCP/IP, chiamato anche NBT e descritto nelle RFC 1001 e 1002. Esso é in grado di lavorare su reti geografiche, basandosi su associazioni tra nomi NetBIOS ed indirizzi IP ricevute dall'esterno. Iniziamo col dire che i singoli host (che in ambiente NBT sono detti nodi), possono operare secondo cinque modalità standard:

• nodi b (broadcast nodes): utilizzano broadcast sia per la registrazione che per la risoluzione dei nomi in indirizzi IP. I nodi b soffrono ancora del problema dei broadcast di NetBIOS: se essi sono separati da router, non riusciranno a vedersi;

• nodi eb (enhanced broadcast nodes): é la configurazione di default per gli host basati su Windows NT, che non sono

Page 77: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

configurati per accedere ad un server WINS. Questa versione modificata dei nodi b, permette di consultare il file LMHOSTS nell’eventualità in cui la risoluzione via broadcast fallisca;

• nodi p (point-to-point nodes): scoprono l'IP delle risorse, interrogando con richieste unicast un server WINS noto. WINS (Windows Internet Name Service) ‚ un server che, imitando i DNS, fornisce una lista di coppie nome NetBIOS - indirizzo IP;

• nodi m (multi nodes): utilizzano prima il broadcast (come i nodi b) e poi, in caso di risposta negativa, inoltrano le richieste ad un server WINS (come i nodi p);

• nodi h (hybrid nodes): funzionano al contrario dei nodi m, cioé‚ prima contattano un server WINS noto, poi passano eventualmente al broadcast;

I clients Microsoft, per la risoluzione di un nome NetBIOS, utilizzano dunque un procedimento che si suddivide in sei passaggi:

• controllo della cache interna, dove sono memorizzati gli ultimi indirizzi risolti;

• interrogazione del server WINS;

• broadcast;

• controllo del file LMHOSTS;

• controllo del file HOSTS;

• interrogazione del server DNS;

Il file LMHOSTS é il corrispondente Windows di quello che negli ambienti UNIX é solitamente HOSTS. Si tratta di un file da editare manualmente e che contiene, come una sorta di server WINS statico, una lista di coppie nome netbios - indirizzo IP. Può risultare molto utile nel caso in cui alcuni nodi non riescano a vedersi (per la presenza, ad esempio, di un router) e non vi sia un server WINS disponibile. 5.3.1 – Le porte dell’NBT Il protocollo NBT, utilizza tre porte del TCP/IP per la comunicazione:

• porta 137 UDP: risoluzione nomi NetBIOS; • porte 138 e 139 UDP: datagrammi; • porta 139 TCP: sessioni;

Page 78: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

Per gli amministratori di rete, queste porte sono spesso problematiche da gestire. Il rischio concreto, infatti, è che qualche errore di configurazione renda accessibili le risorse condivise del computer, tramite una connessione NetBIOS effettuata da un utente privo di autorizzazione. Si tratta di una operazione di hacking molto diffusa, anche da coloro che sono considerati semplici lamer (un termine dispregiativo, che gli hackers usano per indicare chi vuole diventare come loro, ma senza essere disposto a passare giorni e giorni davanti al computer). E’ infatti sufficiente un semplice portscanner (ottimo il SuperScan 2.04, prelevabile freeware da Internet) per trovare un sistema “netbiossato”, su cui tentare l’accesso. Un pc con il NetBIOS attivo è riconoscibile proprio dalle porte 137, 138 e 139 che risultano aperte, in quanto vi sono in ascolto i demoni predisposti da Microsoft. 5.4 – NBT: la sua funzione oggi Al giorno d’oggi, Internet è basata quasi esclusivamente sul TCP/IP e potrebbe benissimo andare avanti senza NetBIOS e NetBEUI. Nell’ambito delle reti locali, invece, il discorso è diverso. Microsoft ha infatti sviluppato un protocollo chiamato NBF (NetBIOS Frame), che presenta alcune migliorie rispetto al NetBEUI da cui prende spunto. Tra queste, invece di interfacciarsi con i livelli superiori tramite il consueto NetBIOS, l’NBF utilizza un’altra interfaccia più flessibile, denominata TDI (Transport Driver Interface). Nelle reti di piccole/medie dimensioni (diciamo fino a circa 200 host), l’NBF resta una delle soluzioni migliori, in quanto il broadcast non è molto problematico ed è piuttosto veloce.

Page 79: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

Capitolo 6: La trasmissione dati dal punto di vista fisico-elettronico 6.1 – I mezzi trasmissivi Uno degli aspetti più importanti di una rete, indipendentemente dal fatto che sia essa locale o geografica, è costituito dal tipo e dalle caratteristiche della linea fisica utilizzata come supporto per il segnale. Anche se negli anni più recenti sono andati affermandosi nuovi e più vantaggiosi supporti trasmissivi, il mezzo a tutt’oggi più diffuso (e rimarrà ancora tale per diverso tempo) è il filo di rame, utilizzato nella stragrande maggioranza dei collegamenti telefonici. 6.1.1 – Doppino telefonico Il doppino è un cavo intrecciato, costituito da 2 fili di rame isolati tra di loro, che collega solitamente un apparecchio telefonico alla più vicina centralina telefonica pubblica o privata. Spesso il doppino è realizzato anche con 4 fili, intrecciati a formare 2 coppie: in questo caso si parla di cavi twisted-pairs (come quelli UTP e STP utilizzati per le LAN). Prenderemo comunque in esame il doppino “classico”, ovvero quello con due soli fili. Di questi due fili, uno solo assolve alla funzione di trasportare i segnali, dato che il secondo serve come riferimento di terra del segnale stesso. Il doppino ha una capacità teorica di 1 Mbit/sec, ma a causa di appositi filtri presenti nelle stazioni telefoniche, la banda passante viene ridotta a 3100 Hz (compresa tra 300 e 3400 Hz). Un comune canale telefonico, non si presta alle trasmissioni di segnali digitali su lunghe distanze, per svariati motivi. Effetti capacitivi ed induttivi creano infatti una forte attenuazione del segnale in spazi veramente ridotti, rendendolo ben presto illeggibile se non opportunamente rigenerato. Per la trasmissione, si utilizza solitamente un segnale detto portante, modulato (da un altro segnale detto modulante) in modo da conservare nella sua forma l’informazione da trasmettere. La modulazione del segnale, verrà omunque approfondita tra qualche paragrafo. c 6.1.2 – Cavo coassiale Un passo avanti rispetto al comune doppino di rame, è costituito dal cavo coassiale, formato da due conduttori concentrici, isolati reciprocamente e ricoperti da materiali protettivi. La struttura del coassiale permette di trasmettere il segnale verso una certa direzione attraverso il conduttore interno e, allo stesso tempo, ricevere il segnale di risposta tramite il conduttore esterno. Si ottiene così una forte riduzione dell’attenuazione del segnale e del disturbo provocato dalle interferenze elettromagnetiche. A fronte di un costo nettamente superiore rispetto a quello del doppino, per una trasmissione attraverso cavo coassiale sono richiesti un minor numero di ripetitori di segnale e soprattutto si può disporre di una ampiezza di banda di circa 20 Mhz. Facendo un rapido calcolo, si può stabilire che all’interno di un cavo coassiale potrebbero tranquillamente coesistere circa 4000 canali

Page 80: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

fonici contemporaneamente. Un altro vantaggio, soprattutto su tratte piuttosto lunghe, deriva dalla velocità intrinseca di propagazione del segnale elettrico all’interno del cavo. Questa velocità, nel caso l’isolante tra i due conduttori sia l’aria, eguaglia approssimativamente quella della luce. Rimane su ottimi livelli anche nel caso di isolanti solidi, toccando punte “minime” di 80'000 km/sec^2. La distorsione del segnale è superiore a quella del doppino, ma la velocità di propagazione (oltre 10 volte superiore) del coassiale permette di ridurre notevolmente i tempi di trasmissione. 6.1.3 – Fibra ottica La trasmissione mediante fibra ottica è una delle soluzioni più utilizzate per la creazione di linee dorsali ad alto traffico, che necessitano di una grossa ampiezza di banda. Il funzionamento del cavo in fibra ottica è concettualmente semplice. Invece che trasmettere lungo un filo di rame dei segnali elettrici, si è pensato di fare viaggiare, attraverso una minuscola “galleria”, singoli impulsi di luce. Al contrario delle prime fibre ottiche, realizzate già negli anni 70, quelle odierne garantiscono un livello di attenuazione incredibilmente basso (0,05%, ovvero 2 db/km). I continui miglioramenti del mezzo trasmissivo, hanno ad oggi consentito di effettuare una trasmissione, senza ripetitori, fino a 25/30 km di distanza.

L’altissima frequenza a cui può viaggiare la luce, garantisce un’ampiezza di banda veramente notevole e, di conseguenza, un numero spropositato di canali trasmissivi. Ulteriore vantaggio che ne deriva, è la totale immunità a disturbi esterni di tipo induttivo o elettromagnetico. La fibra ottica è inoltre esente da problemi di diafonia. A fronte di tutti questi vantaggi, c’è comunque qualche lato negativo. Innanzitutto il costo, ancora proibitivo per gli utenti privati, così come per le piccole-medie aziende. La fragilità della fibra, inoltre, unita alla “impossibilità” della sua riparazione, ne limita fortemente l’impiego in campo domestico. 6.1.4 – Microonde e trasmissione via satellite La potenzialità trasmissiva delle microonde si pone a metà strada tra quella del cavo coassiale e quella della fibra ottica. Se si opera a frequenze superiori al Ghz, un collegamento di questo genere può supportare migliaia e migliaia di canali fonici. Alla

Page 81: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

limitazione dovuta al fatto che le microonde si propagano in linea retta, si contrappone il vantaggio di poter piazzare un ripetitore ogni 35-40 km contro i 3-6 km di un cavo coassiale spesso (thicknet). Questo problema è stato comunque risolto mediante l’uso di satelliti per le telecomunicazioni. Tre satelliti posti in orbite geostazionarie, permettono infatti di ricoprire l’intera superficia terrestre (esclusi i poli). Una stazione di terra che invia dati verso un satellite mediante microonde, può far sì che quest’ultimo rinvii i dati ricevuti a tutte le stazioni terrestri presenti nel suo campo di copertura, fisse o mobili che siano. I costi per queste apparecchiature sono elevazioni ed inoltre, in caso di guasto del satellite, non è possibile intervenire per le riparazioni.

Il concetto fondamentale che regola l’utilizzo della banda trasmissiva di un satellite, è quello dell’accesso multiplo. Per comprendere appieno come questo opera, occorre considerare la struttura di massima di un satellite e come esso si comporta. L’operazione fondamentale consiste nel ricevere i segnali provenienti da stazioni di terra su canali con una frequenza portante preassegnata e riinviarli verso la stazione di destinazione, operante su di un diverso canale con una diversa frequenza portante. Ciò viene fatto utilizzando dispositivi chiamati trasponder, che provvedono a convertire i dati dalla banda di frequenza di ricezione in quella di trasmissione

Page 82: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

specifica della stazione desiderata. L’accesso multiplo è una tecnica che permette, ad un certo numero di stazioni trasmittenti di terra, l’utilizzo contemporaneo della banda di frequenza gestita da uno dei trasponder collocati all’interno di un satellite. I tre metodi di accesso multiplo più diffusi, ad oggi sono:

• FDMA (Frequency Division Multiple Access): sistema basato sulla divisione di frequenza, tramite la quale una stazione di terra ha a disposizione una certa parte della banda trasmissiva, che occupa per l’intera durata della sessione di trasmissione;

• TDMA (Time Division Multiple Access): con questo sistema, una stazione di terra ha disposizione l’intera banda trasmissiva a disposizione, ma solo in determinati intervalli di tempo. Si tratta del metodo in assoluto più utilizzato;

• CDMA (Code Division Multiple Access): non si basa né su suddivisione della frequenza, né del tempo, ma bensì su di un sistema in base al quale la frequenza portante del canale viene modulata a variazione di fase con un codice pseudocasuale differente.

6.2 – Rumore, distorsione e diafonia Nei paragrafi precedenti abbiamo parlato a lungo di alcuni fenomeni e grandezze elettriche, noti come rumore, distorsione e diafonia. Vediamo nel dettaglio in cosa consistono:

• rumore: si intende per rumore, una serie di disturbi (caratterizzati da una propria frequenza, ecc…) presenti in un determinato ambiente. Fonti di rumore elettromagnetico, per esempio, sono tutti i fili in cui il passaggio della corrente genera un campo magnetico;

• distorsione: un sistema di trasmissione assolve bene alla sua funzione, quando l’informazione presente nella sorgente raggiunge inalterata la destinazione. Il transito del segnale in un canale di trasmissione, può però provocare alcuni effetti indesiderati, in grado di alterare il segnale stesso. Si parla in questi casi di distorsione lineare (se causata da un comportamento non corretto dei dispositivi lineari) o distorsione non lineare.

• diafonia: si tratta di un fenomeno legato ai campi elettromagnetici, generati da due conduttori vicini. Nei cavi bifilari, infatti, la vicinanza dei due conduttori può portare a seri problemi di trasmissione. Dato che ogni filo in cui passa corrente genera un campo elettromagnetico, il secondo filo risentirà pesantemente dell’influenza di questo campo. E’ per questo motivo che nei doppini telefonici e nei cavi UTP/STP per le reti, i conduttori sono fortemente intrecciati tra loro, in modo da generare due campi elettromagnetici perpendicolari che si annullano a vicenda.

6.3 – Tecniche di modulazione del segnale

Page 83: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

Il processo di modulazione consiste essenzialmente nell’impiego di un segnale, detto portante (o carrier), per trasferire il contenuto informativo di un altro segnale (detto modulante), al fine di adattare le caratteristiche del segnale da trasmettere ai mezi trasmissivi a disposizione. La modulazione va a modificare uno o più parametri della portante, secondo una legge precisa e ben definita. Il segnale che si ottiene, il segnale modulato, è ovviamente correlato con il segnale modulante e ne contiene quindi l’informazione. Questa può essere estratta, una volta trasmessa, attraverso un processo di demodulazione effettuato dal ricevitore. Tra le varie tecniche di modulazione, si possono distingure la modulazione analogica e quella digitale, riferendoci con questi aggettivi alla forma dell’onda modulante. In entrambi questi casi, la portante può essere armonica (segnale sinusoidale) o impulsiva (segnale digitale). 6.3.1 – Modulazioni analogiche con portante armonica Un utilizzo tipico di queste modulazioni, (in particolare AM ed FM) è quello delle radiotrasmissioni. Un segnale analogico, come per esempio l’uscita di un microfono, viene modulato per essere trasmesso nell’aria da una antenna. Esistono tre tipi principali di modulazioni analogiche con portante armonica:

• modulazione di ampiezza (AM); • modulazione di frequenza (FM); • modulazione di fase (PM).

6.3.1.1 – AM (Amplitude Modulation) In questo tipo di modulazione, alla portante viene variata l’ampiezza in base al valore di tensione del segnale modulante.

Page 84: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

Ciò che determina quanto la modulante deve incidere sulla portante è l’indice di modulazione, il quale deve presentare valori compresi tra 0 e 1. Nel caso esso sia maggiore di 1, si ottiene come risultato un’onda disturbata o sovramodulata. Si tratta concettualmente di un buon sistema di modulazione, ma che richiede campi di frequenza decisamente troppo grandi. Per questo sono state create alcune varianti della AM, come la DSB (vengono trasmesse solo le bande laterali dello spettro e la portante è soppressa) e la SSB (dove, oltre alla portante, viene soppressa anche una delle due bande laterali). 6.3.1.2 – FM (Frequency Modulation) Questo tipo di modulazione si ottiene variando la frequenza della portante, in funzione dell’informazione da trasmettere. Anche nella FM esiste un indice di modulazione, che esprime il rapporto tra la deviazione di frequenza dovuta alla modulazione e la frequenza del segnale modulante.

Il vantaggio principale offerto da questa tecnica, nel caso l’indice di modulazione sia alto (>5), consiste nella possibilità di ottenere un’elevata immunità della trasmissione da disturbi ed interferenze. Da un punto di vista energetico, la potenza richiesta per la tramissione del segnale FM è uguale a quella richiesta per la trasmissione della sola portante non modulata. 6.3.1.3 – PM (Phase Modulation) Questa tecnica consiste nel variare la fase dell’onda sinusoidale portante, in funzione del segnale modulante. Anche nella PM esiste una deviazione di fase, molto simile a quella di frequenza che abbiamo appena visto nella FM. 6.3.2 – Modulazioni analogiche con portante impulsiva Nel caso la portante non sia più una sinusoide, ma bensì un segnale impulsivo adatto a viaggiare su linee digitali, i tipi di modulazione che è possibile utilizzare variano. Oltre alle

Page 85: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

modulazioni di ampiezza e di frequenza, che concettualmente abbiamo appena affrontato, è possibile operare anche sulla larghezza degli impulsi digitali e sulla loro posizione. Sono quindi quattro i principali tipi di modulazioni analogiche con portante impulsiva:

• modulazione dell’ampiezza degli impulsi (PAM); • modulazione della larghezza degli impulsi (PWM); • modulazione della posizione degli impulsi (PPM); • modulazione della frequenza degli impulsi (PFM);

6.3.2.1 – PAM (Pulse Amplitude Modulation) Il segnale modulato é costituito da impulsi di ampiezza proporzionale a campioni del segnale modulante, prelevati con cadenza regolare. La frequenza della portante viene a coincidere con la frequenza di campionamento del segnale: si potrà pertanto parlare indifferentemente di frequenza della portante o frequenza di campionamento. Tale frequenza, comunque, deve essere almeno doppia rispetto a quella della modulante, in rispetto al teorema di Shannon sul campionamento.

Page 86: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

6.3.2.2 – PWM (Pulse Width Modulation) Con questa tecnica di modulazione viene fatta variare la larghezza (equivalente alla durata) degli impulsi in funzione del livello del segnale modulante. La frequenza e l’ampiezza degli impulsi vengono invece mantenute costanti. 6.3.2.3 – PPM (Pulse Phase Modulation) Con la PPM, gli impulsi del segnale mantengono ampiezza, larghezza e frequenza costanti, ma la loro posizione viene variata in funzione del segnale modulante. 6.3.2.4 – PFM (Pulse Frequency Modulation) Molto simile alla modulazione FM vista nel paragrafo 6.3.1.2, la PFM è un tipo di modulazione che varia la frequenza degli impulsi della portante, in funzione dell’ampiezza del segnale modulante. Questa tecnica, che essenzialmente é realizzata dai convertitori tensione-frequenza, non è adatta ai sistemi di comunicazione a lunga distanza.

Page 87: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

6.3.3 – Modulazioni digitali con portante armonica Quando l’informazione da trasmettere é rappresentata da un segnale binario (costituito da una sequenza di livelli logici 0 ed 1) e con esso si modula una portante, si ottiene una modulazione di tipo digitale. Con questo tipo di modulazione, è possibile convertire segnali digitali (come ad esempio l’uscita della porta seriale di un PC) per adattarli ad una linea analogica (come quella telefonica). Dovrebbe essere chiaro che questa tecnica è quella che sta alla base del funzionamento dei modem. Esistono tre tipi principali di modulazioni digitali con portante armonica:

• modulazioni a variazione di ampiezza (ASK e OOK); • modulazioni a variazione di frequenza (FSK); • modulazioni a variazioni di fase (PSK e DPSK).

6.3.3.1 – ASK (Amplitude Shift Keying) e OOK (On-Off Keying) Con questo tipo di modulazione, l’ampiezza della portante armonica viene modulata da un segnale, che come abbiamo appena ricordato è digitale binario e può quindi assumere soltanto i valori 0 e 1. Nella ASK, l’ampiezza del segnale modulato, varia tra due valori distinti, associati ai due livelli binari. Una variante di questa tecnica é costituita dalla modulazione OOK, che lascia passare la portante quando la modulante ha valore 1 e, viceversa, non la trasmette quando il livello logico del segnale modulante é 0. La modulazione OOK può essere schematizzata in questo grafico:

6.3.3.2 – FSK (Frequency Shift Keying) Concettualmente molto semplice, la modulazione FSK prevede che la portante venga trasmessa con una frequenza f1 quando il segnale binario modulante vale 1 e con una frequenza f0 quando la modulante é a valore zero.

6.3.3.3 – PSK (Phase Shift Keying) e DPSK (Differential PSK) La modulazione PSK genera un segnale modulato con ampiezza, frequenza e periodo degli impulsi costanti, a fronte di uno

Page 88: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

sfasamento, rispetto alla portante, di 180° (se la modulante è a zero) o di 0° (modulante a 1). Rispetto alle altre tecniche di modulazione digitale illustrate, la PSK è quella che offre le migliori prestazioni, benché il processo di demodulazione sia molto sensibile a eventuali slittamenti degli oscillatori o a variazioni delle caratteristiche del mezzo trasmissivo usato. Anche per questo, viene usata spesso una variante della PSK, detta DPSK (Differential PSK). Con questa tecnica, schematizzata nel grafico qui sotto, ogni variazione binaria della modulante è associata ad una variazione di 180° della fase del segnale modulato.

6.3.4 – Modulazioni digitali con portante impulsiva Con il recente abbassamento dei prezzi, è ora possibile installare linee telefoniche digitali nelle case, ad un bassissimo costo. Ciò comporta ovviamente l’acquisto di nuovi apparecchi telefonici e la sostituzione del modem con un più economico TA (Terminal Adapter). Questo apparecchio non funziona più da convertitore digitale/analogico e viceversa, ma si limita ad adattare il segnale proveniente dall’uscita del PC per poterlo trasmettere sulla linea telefonica. I TA utilizzano principalmente due tecniche di modulazione per l’adattamento del segnale:

• modulazione ad impulsi codificati (PCM); • modulazione Delta (DM).

6.3.4.1 – PCM (Pulse Code Modulation) L’impiego di questa tecnica per la trasmissione di un segnale, prevede che questo venga campionato, quantizzato e convertito in forma digitale seriale ad n bit, secondo un certo codice. Il codice può essere ad esempio un semplice RZ, NRZ, GRAY, ecc… I vantaggi che favoriscono l’impiego sempre più diffuso della tecnica PCM nei moderni sistemi di comunicazione sono numerosi: innanzitutto l’elevata insensibilità della trasmissione alle interferenze ed al rumore; la possibilità di elaborare i segnali trasmessi in forma digitale; la facilità con cui i segnali possono essere riformati o rigenerati lungo il canale di trasmissione; la possibilità di utilizzare un unico canale trasmissivo per trasferire campioni di segnali diversi, seguendo una tecnica di multiplazione chiamata TDM.

Page 89: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

6.3.4.2 – DM (Delta Modulation) e ADM (Adaptive DM) La modulazione DM é un particolare tipo di PCM in cui, dato un campione di segnale, non viene trasmesso il relativo codice, ma la sua variazione (delta) rispetto al valore precedente (o ai valori precedenti). Con la tecnica DM, delta è codificata con un solo bit, cosa che consente di ridurre drasticamente il numero di bit da trasmettere. Si ha però una limitazione per il fatto che, tra due campionamenti successivi, il segnale da trasmettere non deve presentare variazioni superiori al passo di quantizzazione. Un miglioramento alla tecnica DM lineare, arriva dalla modulazione ADM in cui l’ampiezza del passo di quantizzazione varia, con legge definita, in funzione dei valori dei campioni precedenti del segnale. 6.4 – Tipi di esercizio La trasmissione di informazioni tra due punti A e B (collegamento point-to-point), può avvenire secondo tre modalità distinte:

• Simplex (SX) • Hald-duplex (HDX) • Full-duplex (FDX)

6.4.1 – Simplex (SX) La trasmissione é unidirezionale e prevede una rigida gerarchia, in quanto la direzione non può essere invertita. Per questo si tratta di una soluzione scarsamente utilizzata, in quanto il mittente non può ricevere alcun segnale dal destinatario e non può quindi avere alcuna informazione sull’esito della trasmissione. iene realizzata con una linea a due fili. V 6.4.2 – Half-duplex (HDX) La trasmissione dei dati viene effettuata alternativamente (non contemporaneamente) nei 2 sensi, attraverso un solo canale. Quando A trasmette, B si pone in ricezione e viceversa. E’ importante tenere in debita considerazione il tempo di turn-around, ovvero quell’intervallo di tempo (nell’ordine delle decine di millisecondi), necessario per invertire il senso della trasmissione. Viene realizzata con una linea a due fili. 6.4.3 – Full-duplex (FDX) La trasmissione e la ricezione possono avvenire contemporaneamente mediante due canali separati (realizzati, ad esempio, con quattro fili), uno adibito per il passaggio dei dati da A verso B e l’altro da B verso A. L’esercizio full-duplex può essere realizzato anche nella banda fonica tradizionale, utilizzando i due soli fili del doppino, stando però attenti ad assegnare una banda passante univoca a ciascuno dei due canali. 6.5 – L’interfaccia seriale RS 232C Nel 1969, l’organismo statunitense EIA (Electronic Industries Association), una struttura che rappresenta i costruttori americani ed è interessata all’emissione di standard nazionali, ha definito uno standard di comunicazione tra terminali remoti e

Page 90: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

computer. Tale modello si è affermato di fatto come interfaccia generalizzata tra un computer e le sue periferiche. Lo standard RS 232C definisce caratteristiche elettriche, meccaniche e funzionali di un protocollo di comunicazione tra un dispostivo di elaborazione che gestisce i dati (DTE, Data Terminal Equipment) ed un apparecchio di ricetrasmissione degli stessi (DCE, Data Comunication Equipment). Di norma, viene utilizzato per trasmissioni di tipo sia sincrono che asincrono, half e full-duplex. Secondo questo standard, il DTE è collegato al DCE attraverso un cavo, i cui terminali a 25 poli sono trapezoidali (per evitare l’inversione di aggancio), di tipo CANNON (dal nome della casa costruttrice).

Come si può vedere dalla figura, i poli sono numerati in un modo un po’ particolare, partendo dall’angolo in alto a destra. Tra questi, comunque, i più utilizzati sono i seguenti:

Piedinatura RS232

Descrizione Sigla Direzione verso DTE

2 Dati trasmessi TD OUT 3 Dati ricevuti RD IN 4 Richiesta di trasmissione RTS OUT 5 Pronto a trasmettere CTS IN 6 DCE pronto DSR IN 20 DTE pronto DTR OUT 8 Portante ricevuta DCD IN

Proprio da questa considerazione, è nata la nuova interfaccia eriale, che presenta 9 poli anziché 25. s 6.6 - I modem Il modem (modulator/demodulator) è il tipo di DCE più diffuso in assoluto. In Italia, un buon 80% del mercato appartiene al modem V.90, che garantisce una banda di 56 Kbit/sec in ricezione e di 33,6 Kbit/sec in fase di invio. Si tratta di un modem fonico (in quanto opera all’interno della banda fonica 300-3400 Hz), particolarmente economico e discretamente efficiente, considerata la qualità delle nostre linee telefoniche. Per la trasmissione ati, il V.90 utilizza la modulazione PSK. d

Page 91: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

6.6.1 – Null modem Non sempre, però, è necessario un modem. Nel caso in cui occorra, per esempio, collegare tra loro due host posti ad una distanza inferiore a 15 metri, non è necessario alcun modem. E’ sufficiente infatti un particolare tipo di cavo, chiamato quasi ironicamente “null modem”, che colleghi tra loro le porte seriali dei rispettivi host. Per la realizzazione di un null modem, si utilizza il semplice schema riportato qui sotto, basato sulla piedinatura della RS-232 (vista nel paragrafo 6.5):

Page 92: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

Capitolo 7: Internet All-in-One 7.1 – Cos’è Internet All-in-One Terminata la parte “introduttiva” all’argomento, possiamo finalmente andare ad approfondire Internet All-in-One, il software che abbiamo sviluppato appositamente per questa tesina. Nei paragrafi precedenti, abbiamo già più volte fatto riferimento al programma quindi dovrebbe essere chiaro, per lo meno a grandi linee, quello che questo software è in grado di fare. Per i meno attenti, comunque, ecco qui un riepilogo dei moduli contenuti in Internet All-in-One:

• un web browser; • un client SMTP; • un client POP3; • una chat basata su UDP; • un emulatore di terminale in stile Telnet;

Il linguaggio di programmazione utilizzato è Visual Basic 6.0 Professional Edition, corredato dai Service Pack 4 e 5. Per motivi di comodità, d’ora in avanti abbrevieremo Visual Basic in “VB” e Internet All-in-One in “IAIO”. 7.1.1 – Web browser Il primo modulo che compone IAIO è un web browser, che può essere utilizzato per la consultazione di pagine HTML sia locali che remote. Il motore di composizione delle pagine è quello dell’Internet Explorer 4, messo gratuitamente a disposizione degli sviluppatori da Microsoft.

Page 93: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

Il file contenente questo motore si chiama mscomctl.ocx e deve essere obbligatoriamente incluso nel CD, pena il non corretto funzionamento dell’intera applicazione. L’interfaccia che abbiamo disegnato attorno al webbrowser ricalca a grandi linee quella tipica di Explorer e Netscape Navigator. Da sinistra a destra abbiamo i seguenti pulsanti:

• freccia rivolta a sinistra: consente di tornare alla pagina che si stava visualizzando precedentemente;

• freccia rivolta a destra: viene abilitato in seguito alla pressione del bottone precedente e consente l’operazione inversa;

• stop: interrompe il caricamento della pagina; • aggiorna: ricarica la pagina corrente; • motori di ricerca: si tratta di una opzione semplice ma

utile, che manca nei grandi browser commerciali. La pressione di questo bottone apre una piccola finestra, nella quale sono indicati i 13 motori di ricerca più utilizzati del web. Con un semplice clic è possibile collegarsi a uno qualsiasi di questi motori, anche senza ricordare l’indirizzo;

• bambino col berretto: il pulsante funziona come un link, puntato all’indirizzo http://www.internetallinone.cjb.net, un sito su cui sono disponibili ancora poche pagine, ma che verrà ampliato in futuro.

Completano il form la classica barra degli indirizzi, nella quale è possibile digitare l’url della risorsa da visitare. Una procedura riconosce poi la pressione del tasto invio ed è in grado di avviare immediatamente la navigazione. Il bottone “Vai” è l’equivalente del tasto invio e punta il browser sull’indirizzo specificato nella apposita barra. 7.1.2 – Client SMTP (SMTP mail sender) L’SMTP mail sender, é un modulo che permette l’invio di posta elettronica. Il procedimento seguito è quello descritto nel paragrafo 3.6.2.3.4, che dal nostro software viene eseguito in maniera del tutto automatica. Occorre infatti compilare soltanto alcuni campi, come l’indirizzo del mittente, quello del destinatario ed il subject del messaggio. Per tutte le prove abbiamo utilizzato il server SMTP di Libero Infostrada, che risponde all’indirizzo smtp.libero.it, sulla porta numero 25. E’ comunque possibile specificare un server diverso, assicurandosi però che esso risponda pienamente agli standard imposti dalla RFC 821. In caso contrario, sarà impossibile spedire e-mail attraverso l’SMTP mail sender. Per quello che riguarda l’invio di file allegati, questa possibilità non è stata inclusa per un semplice motivo. I diversi sistemi di codifica non richiedono infatti alcuna conoscenza specifica, ma (sia la MIME che la UUENCODE) sono dei semplici algoritmi che codificano un file binario in una serie di caratteri corrispondenti. La routine sarebbe stata oltretutto

Page 94: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

laboriosa da implementare, motivo per il quale abbiamo deciso di focalizzare gli sforzi su altri moduli.

L’interfaccia creata non necessita di particolari spiegazioni. Vi sono i bottoni per cancellare tutti i campi, inoltrare la mail al server o tornare al menù principale di IAIO. 7.1.3 – Client POP3 (POP3 mail receiver)

Anche il funzionamento del protocollo POP3 é stato abbondantemente spiegato nel capitolo 3 (per la precisione nel paragrafo 3.6.2.3.5). Il POP3 mail receiver automatizza la procedura di

Page 95: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

autentificazione e scaricamento dei messaggi. Una volta premuto il bottone “Controlla nr. messaggi”, infatti, compare un Message Box che indica quanti messaggi sono presenti nella mailbox. Se ve ne è almeno uno, il bottone del form chiamato “Leggi i messaggi” diventa cliccabile. Alla sua pressione si apre un’altra finestra ed automaticamente inizia il procedimento di ricezione di tutti i messaggi presenti nella casella.

Al termine della fase di ricezione, i subject dei messaggi ricevuti vengono presentati nella list box in alto a sinistra. Cliccando su uno di quelli presenti, la casella di testo inferiore visualizza il corpo del messaggio, mentre le tre caselle più piccole, poste nell’angolo superiore destro, visualizzano alcuni dettagli del messaggio. Questi sono: l’indirizzo di posta del mittente, la data e l’ora in cui il messaggio è stato spedito e l’ID che il server SMTP ha assegnato a questo messaggio. Da ricordare che anche per il test del POP3 mail receiver (che per la verità è stato molto breve) abbiamo utilizzato soltanto il pop-server di Libero Infostrada (popmail.libero.it, sulla porta 110). 7.1.4 – UDP chat Per motivi di tempo, purtroppo, non é stato possibile curare tutti i moduli con la stessa maniacale attenzione rivolta all’UDP chat. Da questo punto di vista, infatti, l’UDP chat è il modulo più completo, sul quale siamo riusciti ad operare anche una lunga fase di beta testing e di debug. In questo siamo stati molto aiutati dal resto della classe, che ben volentieri ha testato la nostra chat durante le ore di laboratorio. L’interfaccia potrebbe apparire complessa, quindi crediamo meriti qualche riga di

Page 96: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

commento. Innanzitutto il campo nickname deve essere compilato con il nome (o più propriamente il soprannome) dell’utente locale.

La casella di testo chiamata “Indirizzo IP host”, deve invece riportare l’indirizzo IP del computer remoto su cui è attiva l’UDP chat. A tal fine, le due label di destra sono dotate di una specie di semaforo. Quando si scrive un indirizzo IP corretto e si preme il tasto INVIO, le due spie diventano di colore verde, ad indicare la possibilità di iniziare la comunicazione. Il messaggio va scritto nella casella di testo presente nella parte inferiore del form (“Testo da inviare”) e spedito con la pressione del tasto INVIO o del bottone “Invia il testo”. Per quanto riguarda le voci di menù, oltre ai comandi “Copia” & “Incolla” (classici di qualsiasi applicazione Windows), abbiamo inserito anche il menù “Sottofondo”, che grazie al Media Player di Microsoft consente la riproduzione di alcuni simpatici file midi durante la chiaccherata virtuale. I messaggi vengono criptati attraverso un semplice algoritmo, che converte ogni carattere nel suo corrispondente ascii, a cui viene sommato un numero random. 7.1.5 – Telnet emulator Il Telnet emulator è stato senza dubbio il modulo che tra tutti ci è risultato il più utile. Avendolo realizzato già ad ottobre, infatti, ce ne siamo serviti per fare esperienza in innumerevoli sessioni di invio e ricezione posta (SMTP, POP3 ed IMAP4), ma anche per “divertimento” (vedi NetBIOS e Telnet). L’interfaccia che abbiamo creato è il più semplice possibile. Le due caselle di testo in alto devono essere riempite con il nome del server ed il numero di porta sulla quale collegarsi. I bottoni “connetti”

Page 97: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

(equivalente alla pressione del tasto INVIO all’interno delle due caselle di testo precedenti) e “disconnetti” si attivano alternativamente. Il secondo di questi, in particolare, diventa cliccabile soltanto dopo un primo invio di dati da parte del server.

Nella casella di testo più in basso, deve essere inserito il comando da inoltrare al server. Ciò si può fare con la pressione del tasto INVIO o del bottone “invia”. Il pulsante “cancella”, permette inoltre di resettare la casella di testo contenente il messaggio da inviare al server. 7.1.6 – Il form principale Tutti i moduli che abbiamo visto sono richiamabili da un piccolo menù principale a bottoni. Quando il mouse passa su un bottone, la scritta nella parte inferiore del form (“Internet All-in-One”), scompare a tutto vantaggio di una piccola descrizione relativa al bottone su cui si trova il cursore. In senso orario i bottoni rimandano a:

• ancora: Web Browser; • taccuino con biro: SMTP mail sender; • cassetta della posta: POP3 mail receiver; • genio: esci dal programma; • bacheca: leggi la tesina in formato HTML; • ragazzino frastornato davanti al computer: Telnet emulator; • uomo diventato tutt’uno con la sedia: UDP chat.

Page 98: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

7.2 – Il sorgente dei vari moduli Avendo dovuto studiare il linguaggio Visual Basic nei ritagli di tempo, non possiamo certo avere la pretesa che questo codice sia apprezzato dai programmatori più puristi. In ogni modo si tratta di codice pienamente funzionante e questa è la cosa che più conta ai fini pratici. 7.2.1 – Codice Web browser Dim ind As String Private Sub cmdVai_Click() ind = txtIndirizzo.Text WebBrowser1.Navigate ind End Sub Private Sub Form_Resize() WebBrowser1.Width = frmBrowser.Width - 350 WebBrowser1.Height = frmBrowser.Height - 3110 frmBrowser.Refresh End Sub Private Sub imgAggiorna_Click() WebBrowser1.Refresh End Sub Private Sub imgAvanti_Click() WebBrowser1.GoForward End Sub Private Sub imgCerca_Click() Load frmSearchEngines frmSearchEngines.Visible = True

Page 99: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

End Sub Private Sub imgHomepage_Click() txtIndirizzo.Text = "http://www.internetallinone.cjb.net" WebBrowser1.Navigate "http://www.internetallinone.cjb.net" End Sub Private Sub imgIndietro_Click() WebBrowser1.GoBack End Sub Private Sub imgStop_Click() WebBrowser1.Stop End Sub Private Sub Form_Unload(Cancel As Integer) frmPrincipale.Visible = True End Sub Private Sub Form_Terminate() frmPrincipale.Visible = True End Sub Private Sub mnuATuttoSchermo_Click() WebBrowser1.FullScreen = True End Sub Private Sub mnuEsci_Click() frmPrincipale.Visible = True Unload frmBrowser End Sub Private Sub txtIndirizzo_KeyPress(KeyAscii As Integer) If (KeyAscii = 13) Then ind = txtIndirizzo.Text WebBrowser1.Navigate ind End If E nd Sub

7.2.1.2 – Codice funzione Motori di ricerca Private Sub cmdSEAnnulla_Click() Unload frmSearchEngines End Sub Private Sub cmdSEOK_Click() Dim motore_di_ricerca As String If Option1.Value = True Then motore_di_ricerca = "http://www.altavista.com" frmBrowser.txtIndirizzo.Text = "http://www.altavista.com" ElseIf Option2.Value = True Then

Page 100: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

motore_di_ricerca = "http://it.altavista.com" frmBrowser.txtIndirizzo.Text = "http://it.altavista.com" ElseIf Option3.Value = True Then motore_di_ricerca = "http://www.google.com/en" frmBrowser.txtIndirizzo.Text = "http://www.google.com/en" ElseIf Option4.Value = True Then motore_di_ricerca = "http://www.google.it" frmBrowser.txtIndirizzo.Text = "http://www.google.it" ElseIf Option5.Value = True Then motore_di_ricerca = "http://www.lycos.com" frmBrowser.txtIndirizzo.Text = "http://www.lycos.com" ElseIf Option6.Value = True Then motore_di_ricerca = "http://www.lycos.it" frmBrowser.txtIndirizzo.Text = "http://www.lycos.it" ElseIf Option7.Value = True Then motore_di_ricerca = "http://www.yahoo.com" frmBrowser.txtIndirizzo.Text = "http://www.yahoo.com" ElseIf Option8.Value = True Then motore_di_ricerca = "http://www.webcrawler.com" frmBrowser.txtIndirizzo.Text = "http://www.webcrawler.com" ElseIf Option9.Value = True Then motore_di_ricerca = "http://www.arianna.it" frmBrowser.txtIndirizzo.Text = "http://www.arianna.it" ElseIf Option10.Value = True Then motore_di_ricerca = "http://www.virgilio.it" frmBrowser.txtIndirizzo.Text = "http://www.virgilio.it" ElseIf Option11.Value = True Then motore_di_ricerca = "http://www.iltrovatore.it" frmBrowser.txtIndirizzo.Text = "http://www.iltrovatore.it" ElseIf Option12.Value = True Then motore_di_ricerca = "http://www.astalavista.com/en" frmBrowser.txtIndirizzo.Text = "http://www.astalavista.com/en" ElseIf Option13.Value = True Then motore_di_ricerca = "http://www.northernlight.com" frmBrowser.txtIndirizzo.Text = "http://www.northernlight.com" End If frmbrowser.txtIndirizzo = motore_di_ricerca frmBrowser.WebBrowser1.Navigate motore_di_ricerca frmSearchEngines.Visible = False End Sub 7.2.2 – Codice SMTP mail sender Dim ricevi As String Private Sub cmdInvia_Click() Dim stringatemp As String Dim stringaserver As String Dim stringaporta As String If (txtServer.Text = "") Then

Page 101: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

MsgBox ("Prima di potere inviare l'e-mail é necessario specificare il nome del server SMTP"), vbExclamation ElseIf (txtPorta.Text = "") Then MsgBox ("Prima di potere inviare l'e-mail é necessario specificare il numero della porta sui cui collegarsi"), vbExclamation ElseIf (txtDestinatario.Text = "") Then MsgBox ("Prima di potere inviare l'e-mail é necessario specificare l'indirizzo e-mail del destinatario"), vbExclamation Else stringaserver = txtServer.Text stringaporta = txtPorta.Text txtMessaggio.Visible = False lblStatoSpedizione.Visible = True ProgressBar.Visible = True cmdInvia.Enabled = False cmdResetta.Enabled = False ProgressBar.Value = 0 Winsock2.Connect stringaserver, stringaporta delay ricevi = "" ProgressBar.Value = ProgressBar.Value + 10 Winsock2.SendData "HELO [email protected] (62.10.12.69)" & vbCrLf delay ricevi = "" ProgressBar.Value = ProgressBar.Value + 10 Winsock2.SendData "MAIL FROM:<>" & vbCrLf delay ricevi = "" ProgressBar.Value = ProgressBar.Value + 10 Winsock2.SendData "RCPT TO:<" & txtDestinatario.Text & ">" & vbCrLf delay ricevi = "" ProgressBar.Value = ProgressBar.Value + 10 Winsock2.SendData "DATA" & vbCrLf ProgressBar.Value = ProgressBar.Value + 10 Winsock2.SendData "FROM:" & txtMittente.Text & vbCrLf ProgressBar.Value = ProgressBar.Value + 10 Winsock2.SendData "TO:" & txtDestinatario.Text & vbCrLf ProgressBar.Value = ProgressBar.Value + 10 Winsock2.SendData "SUBJECT: " & txtOggetto.Text & vbCrLf Winsock2.SendData vbCrLf ProgressBar.Value = ProgressBar.Value + 10 stringatemp = txtMessaggio.Text Winsock2.SendData stringatemp & vbCrLf ProgressBar.Value = ProgressBar.Value + 10 Winsock2.SendData "." & vbCrLf delay ricevi = "" ProgressBar.Value = ProgressBar.Value + 10

Page 102: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

Winsock2.Close ProgressBar.Visible = False lbl0.Visible = False lbl50.Visible = False lbl100.Visible = False lblStatoSpedizione.Caption = "Spedizione completata" cmdResetta.Caption = "Invia nuova mail" cmdResetta.Enabled = True End If End Sub Private Sub Winsock2_DataArrival(ByVal bytestotal As Long) Winsock2.GetData Dalserver, vbString ricevi = Dalserver End Sub Private Sub delay() Do While ricevi = "" DoEvents Loop End Sub Private Sub txtMittente_LostFocus() If txtMittente.Text = "" Then txtMittente.Text = "Anonimo" End If End Sub Private Sub txtOggetto_LostFocus() If txtOggetto.Text = "" Then txtOggetto.Text = "Nessun oggetto" End If End Sub Private Sub cmdResetta_Click() cmdResetta.Caption = "Resetta i campi dell'e-mail" txtMittente.Text = "" txtDestinatario.Text = "" txtOggetto.Text = "" txtMessaggio.Visible = True txtMessaggio.Text = "" cmdInvia.Enabled = True End Sub Private Sub Form_Terminate() frmPrincipale.Visible = True End Sub Private Sub Form_Unload(Cancel As Integer) frmPrincipale.Visible = True End Sub

Page 103: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

Private Sub cmdEsci_Click() frmPrincipale.Visible = True Unload frmSMTP End Sub 7.2.3 – Codice POP3 mail receiver ‘(inizio primo form) Dim ricevi As String Public NumeroMessaggi As Integer Private Sub cmdEsci_Click() frmPrincipale.Visible = True Unload frmPOP3 End Sub Private Sub delay() Do While ricevi = "" DoEvents Loop End Sub Private Sub cmdVisualizza_Click() frmPOP3.Visible = False Load frmPOP3Messaggi frmPOP3Messaggi.Visible = True End Sub Private Sub winsock1_DataArrival(ByVal bytestotal As Long) If (flag = False) Then Winsock1.GetData ricevi, vbString If (flag = True) Then Winsock1.GetData ricevi, vbString frmPOP3Messaggi.txtCorpoDelMessaggio.Text = frmPOP3Messaggi.txtCorpoDelMessaggio.Text & vbCrLf & ricevi End If End Sub Private Sub cmdNumeroEMail_Click() Dim NomeServer As String Dim NumeroPorta As String Dim UserName As String Dim Password As String Dim PasswordCriptata As String Dim i As Integer cmdNumeroEMail.Enabled = False 'inizializzazione variabili NomeServer = txtServer.Text NumeroPorta = txtPorta.Text UserName = txtUserName Password = txtPassword 'connessione e comunicazione con il server

Page 104: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

txtMessaggi = txtMessaggi & "Connessione alla porta numero " & NumeroPorta & " del server " & NomeServer & " in corso..." & vbCrLf Winsock1.Connect NomeServer, NumeroPorta ricevi = "" delay txtMessaggi = txtMessaggi & "CONNESSIONE RIUSCITA" & vbCrLf & ricevi & vbCrLf ricevi = "" Winsock1.SendData "USER " & UserName & vbCrLf txtMessaggi = txtMessaggi & "USER " & UserName & vbCrLf delay txtMessaggi = txtMessaggi & ricevi & vbCrLf Winsock1.SendData "PASS " & Password & vbCrLf PasswordCriptata = "" For i = 1 To Len(Password) PasswordCriptata = PasswordCriptata & "*" Next i txtMessaggi = txtMessaggi & "PASS " & PasswordCriptata & vbCrLf ricevi = "" delay txtMessaggi = txtMessaggi & ricevi & vbCrLf Winsock1.SendData "STAT" & vbCrLf txtMessaggi = txtMessaggi & "STAT" & vbCrLf ricevi = "" delay txtMessaggi = txtMessaggi & ricevi & vbCrLf NumeroMessaggi = Mid$(ricevi, 5, 1) 'richiesta visualizzazione messaggi If (NumeroMessaggi = 0) Then MsgBox ("Nella mailbox non é presente nessun messaggio"), vbOKOnly If (NumeroMessaggi = 1) Then MsgBox ("Nella mailbox é presente 1 messaggio"), vbOKOnly cmdVisualizza.Caption = "Leggi il messaggio" cmdVisualizza.Enabled = True End If If (NumeroMessaggi > 1) Then MsgBox ("Nella mailbox sono presenti " & NumeroMessaggi & " messaggi"), vbOKOnly cmdVisualizza.Enabled = True End If Winsock1.SendData "QUIT" & vbCrLf ricevi = "" delay Winsock1.Close txtMessaggi = txtMessaggi & ricevi & vbCrLf & "Connessione terminata" & vbCrLf cmdNumeroEMail.Enabled = True End Sub Private Sub form_terminate() frmPrincipale.Visible = True

Page 105: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

Winsock1.Close End Sub Private Sub form_unload(cancel As Integer) frmPrincipale.Visible = True Winsock1.Close End Sub ‘(fine primo form) ‘(inizio secondo form) Dim Messaggi(100) As String Dim IDs(100) As String Dim Oggetti(100) As String Dim DateOre(100) As String Dim Mittenti(100) As String Dim ricevi As String Private Sub cmdInterrompi_Click() Winsock0.Close lblStato.Caption = "Operazione interrotta dall'utente" Me.Refresh End Sub Private Sub lstElencoMessaggi_Click() txtMittente.Text = Mittenti(lstElencoMessaggi.ListIndex) txtDataOra.Text = DateOre(lstElencoMessaggi.ListIndex) txtID.Text = IDs(lstElencoMessaggi.ListIndex) txtCorpoDelMessaggio.Text = Messaggi(lstElencoMessaggi.ListIndex) End Sub Private Sub Winsock0_DataArrival(ByVal bytestotal As Long) Winsock0.GetData ricevi, vbString End Sub Private Sub delay() Do While ricevi = "" DoEvents Loop End Sub Private Sub cmdChiudi_Click() frmPOP3.Visible = True Unload frmPOP3Messaggi End Sub Private Sub Form_Load() Dim i As Integer Dim messaggio As String Dim riga As String Dim j As Integer

Page 106: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

Dim Mittente As String Dim DataOra As String Dim k As Integer Dim SegnoPiu As Integer Dim InizioID As Integer Dim FineID As Integer Dim IDMessaggio As String Dim Oggetto As String messaggio = "" Me.Visible = True cmdInterrompi.Enabled = True 'lblNumeroMessaggi2.Caption = frmPOP3.NumeroMessaggi Winsock0.Connect frmPOP3.txtServer.Text, frmPOP3.txtPorta.Text lblStato.Caption = "Connessione al server " & frmPOP3.txtServer.Text & " sulla porta numero " & frmPOP3.txtPorta.Text & " in corso..." Me.Refresh ricevi = "" delay Winsock0.SendData "USER " & frmPOP3.txtUserName.Text & vbCrLf lblStato.Caption = "Verifica user name in corso..." Me.Refresh ricevi = "" delay Winsock0.SendData "PASS " & frmPOP3.txtPassword.Text & vbCrLf lblStato.Caption = "Verifica password in corso..." Me.Refresh ricevi = "" delay 'inizio ricezione messaggi For i = 1 To frmPOP3.NumeroMessaggi lblStato.Caption = "Ricezione messaggio numero " & i & " in corso..." Me.Refresh Winsock0.SendData "RETR " & i & vbCrLf 'prima attesa di risposta (+ok dal server) ricevi = "" delay 'seconda attesa di risposta (corpo del messaggio) ricevi = "" delay txtCorpoDelMessaggio.Text = txtCorpoDelMessaggio.Text & ricevi & vbCrLf messaggio = ricevi 'estrapolazione dati dal messaggio riga = "" For j = 1 To Len(messaggio) riga = riga & Mid$(messaggio, j, 1) 'controllo se si tratta della riga dell'intestazione contenente il mittente

Page 107: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

If Mid$(messaggio, j, 1) = Chr$(13) And (Mid$(messaggio, j + 1, 1) = Chr$(10)) Then If (Mid$(riga, 1, 4) = "FROM") Or (Mid$(riga, 1, 4) = "from") Or (Mid$(riga, 1, 4) = "From") Then Mittente = Mid$(riga, 6, (Len(riga) - 6)) Mittenti(i - 1) = Mittente End If 'controllo se si tratta della riga dell'intestazione contenente la data If (Mid$(riga, 1, 4) = "Date") Or (Mid$(riga, 1, 4) = "DATE") Or (Mid$(riga, 1, 4) = "date") Then For k = 1 To Len(riga) If (Mid$(riga, k, 1) = "+") Then SegnoPiu = k - 8 'tolgo il carattere "+" e quelli di inizo riga End If Next k DataOra = Mid$(riga, 7, SegnoPiu) DateOre(i - 1) = DataOra End If 'controllo se si tratta della riga dell'intestazione contenente l'id If (Mid$(riga, 1, 4) = "Mess") Or (Mid$(riga, 1, 4) = "mess") Or (Mid$(riga, 1, 4) = "MESS") Then For k = 1 To Len(riga) If (Mid$(riga, k, 1) = "<") Then InizioID = k + 1 If (Mid$(riga, k, 1) = ">") Then FineID = k - 1 Next k IDMessaggio = Mid$(riga, InizioID, FineID - InizioID + 1) IDs(i - 1) = IDMessaggio End If 'controllo se si tratta della riga dell'intestazione contenente il subject If (Mid$(riga, 1, 4) = "Subj") Or (Mid$(riga, 1, 4) = "subj") Or (Mid$(riga, 1, 4) = "SUBJ") Then Oggetto = Mid$(riga, 10, Len(riga) - 10) Oggetti(i - 1) = Oggetto lstElencoMessaggi.AddItem Oggetto End If 'prepara per la riga successiva riga = "" j = j + 1 'non prende in considerazione il linefeed (10 dec ascii) End If Next j 'fine estrapolazione dati dal messaggio Messaggi(i - 1) = messaggio messaggio = "" Next i 'termine ricezione messaggi lblStato.Caption = "Operazione completata con successo"

Page 108: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

Me.Refresh cmdInterrompi.Enabled = False End Sub ‘(fine secondo form) 7.2.4 – Codice UDP chat Dim op2 As Integer Dim nickname As String Dim nickname2 As String Dim IndirizzoLocale3 As String Dim IndirizzoApplicazione As String Dim FileDaSuonare As String Private Sub txtIP_GotFocus() If txtIP.Text = "127.0.0.1" Then txtIP.Text = "" End Sub Private Sub txtNickname_Keypress(KeyAscii As Integer) If (KeyAscii = 13) Then If (txtNickname.Text <> "") Then nickname = "n" & txtNickname.Text txtIP.SetFocus Else nickname = "n" & "Anonymous" txtIP.SetFocus End If End If End Sub Private Sub form_Load() IndirizzoApplicazione = App.Path lblMyIP2.Caption = Winsock1.LocalIP lblOtherIP2.Caption = Winsock1.LocalIP End Sub Private Sub cmdInvia_Click() Dim s, c, op, fine, IndirizzoLocale As String Dim a, i, q, comodo, lung As Integer s = txtInvia.Text lung = Len(s) IndirizzoLocale = "i" & Winsock1.LocalIP Winsock1.SendData IndirizzoLocale Winsock1.SendData nickname For i = 1 To lung c = Mid(s, i, 1) a = Asc(c) Randomize comodo = Int(Rnd * 28) op = "o" & comodo Winsock1.SendData op a = a + comodo

Page 109: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

a = Str(a) Winsock1.SendData a Next i fine = "007" Winsock1.SendData fine nickname = Mid$(nickname, 2, Len(nickname)) txtMessaggi.Text = txtMessaggi.Text & "<" & nickname & " (" & Winsock1.LocalIP & ")> " & txtInvia.Text & vbCrLf nickname = "n" & nickname txtInvia.Text = "" End Sub Private Sub mnuFileEsci_Click() End End Sub Private Sub mnuHelpInformazioniSu_Click() Load frmAbout frmAbout.Visible = True End Sub Private Sub mnuModificaCopia_Click() Clipboard.Clear If txtMessaggi.SelLength = 0 Then Clipboard.SetText txtMessaggi.SelText ElseIf txtMessaggi.SelLength = 0 Then Clipboard.SetText txtMessaggi.SelText Else Beep End If End Sub Private Sub mnuModificaIncolla_Click() txtInvia.SelText = Clipboard.GetText() End Sub Private Sub mnuSottofondoStop_Click() MediaPlayer1.Stop End Sub Private Sub mnuSottofondoSuona1_Click() FileDaSuonare = IndirizzoApplicazione & "1.mid" MediaPlayer1.FileName = FileDaSuonare MediaPlayer1.Play End Sub Private Sub mnuSottofondoSuona2_Click() FileDaSuonare = IndirizzoApplicazione & "2.mid" MediaPlayer1.FileName = FileDaSuonare MediaPlayer1.Play End Sub

Page 110: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

Private Sub mnuSottofondoSuona3_Click() FileDaSuonare = IndirizzoApplicazione & "3.mid" MediaPlayer1.FileName = FileDaSuonare MediaPlayer1.Play End Sub Private Sub mnuSottofondoSuona4_Click() FileDaSuonare = IndirizzoApplicazione & "4.mid" MediaPlayer1.FileName = FileDaSuonare MediaPlayer1.Play End Sub Private Sub mnuSottofondoSuona5_Click() FileDaSuonare = IndirizzoApplicazione & "5.mid" MediaPlayer1.FileName = FileDaSuonare MediaPlayer1.Play End Sub Private Sub txtInvia_GotFocus() If lblsemaforo2.BackColor = &HC0C0FF Then MsgBox ("Per potere spedire messaggi é necessario premere INVIO nel campo" & vbCrLf & "superiore, confermando così l'indirizzo IP dell'host remoto!"), vbOKOnly txtIP.SetFocus End If End Sub Private Sub txtinvia_keypress(Keyascii2 As Integer) Dim s, c, op, fine, IndirizzoLocale2 As String Dim a, i, q, comodo, lung As Integer If Keyascii2 = 13 Then Winsock1.SendData nickname s = txtInvia.Text lung = Len(s) IndirizzoLocale2 = "i" & Winsock1.LocalIP Winsock1.SendData IndirizzoLocale2 For i = 1 To lung c = Mid(s, i, 1) a = Asc(c) Randomize comodo = Int(Rnd * 28) op = "o" & comodo Winsock1.SendData op a = a + comodo a = Str(a) Winsock1.SendData a Next i fine = "007" Winsock1.SendData fine nickname = Mid$(nickname, 2, Len(nickname)) txtMessaggi.Text = txtMessaggi.Text & "<" & nickname & " (" & Winsock1.LocalIP & ")> " & txtInvia.Text & vbCrLf

Page 111: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

nickname = "n" & nickname txtInvia.Text = "" End If End Sub Private Sub winsock1_DataArrival(ByVal bytestotal As Long) Dim ricevi, comodo2, comodo4, nickname2 As String Dim lung2 As Integer Winsock1.GetData Dalserver, vbString ricevi = Dalserver lung2 = Len(ricevi) If Mid$(ricevi, 1, 1) = "o" Then comodo2 = Mid$(ricevi, 2, lung2) op2 = Val(comodo2) ElseIf Mid$(ricevi, 1, 1) = "0" Then txtMessaggi.Text = txtMessaggi.Text & vbCrLf Beep ElseIf Mid$(ricevi, 1, 1) = "n" Then nickname2 = Mid$(ricevi, 2, Len(ricevi)) txtMessaggi.Text = txtMessaggi.Text & "<" & nickname2 & " (" & IndirizzoLocale3 & ")> " ElseIf Mid$(ricevi, 1, 1) = "i" Then IndirizzoLocale3 = Mid$(ricevi, 2, Len(ricevi)) Else comodo3 = Val(ricevi) - op2 comodo4 = Chr$(comodo3) txtMessaggi.Text = txtMessaggi & comodo4 End If End Sub Private Sub txtIP_KeyPress(Keyascii3 As Integer) lblsemaforo2.BackColor = &HC0C0FF txtIP.ForeColor = &HFF& If Keyascii3 = 13 Then Winsock1.RemoteHost = txtIP.Text lblsemaforo2.BackColor = &HC0FFC0 txtIP.ForeColor = &H0& txtInvia.SetFocus End If lblOtherIP2.Caption = txtIP.Text End Sub Private Sub txtNickname_LostFocus() If txtNickname.Text = "" Then nickname = "nAnonymous" txtNickname.Text = "Anonymous" Else nickname = "n" & txtNickname.Text End If End Sub

Page 112: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

Private Sub Winsock1_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean) MsgBox "Errore del controllo Winsock. Numero errore: " & Number & vbCrLf & Description, vbExclamation, "Winsock Error" End Sub Private Sub cmdEsci_Click() frmPrincipale.Visible = True Unload frmChat End Sub Private Sub Form_Unload(Cancel As Integer) frmPrincipale.Visible = True End Sub Private Sub Form_Terminate() frmPrincipale.Visible = True End Sub 7.2.5 – Codice Telnet Emulator Dim flag As Boolean Private Sub cmdCancella_Click() txtComando.Text = "" End Sub Private Sub cmdEsci_Click() frmPrincipale.Visible = True Unload frmTelnet End Sub Private Sub cmdConnetti_Click() If ((txtHostRemoto = "") Or (txtPorta = "")) Then MsgBox ("Compilare in modo corretto i campi ""host remoto"" e/o porta"), vbExclamation Else: Winsock1.Connect txtHostRemoto, txtPorta cmdConnetti.Enabled = False cmdDisconnetti.Enabled = True cmdCancella.Enabled = True cmdInvia.Enabled = True txtComando.Enabled = True txtHostRemoto.Enabled = False txtPorta.Enabled = False txtRisposta.Text = "CONNESSO" & vbCrLf End If End Sub Private Sub frmTelnet_Load() flag = False

Page 113: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

End Sub Private Sub mnuEsci_Click() frmPrincipale.Visible = True Unload frmTelnet End Sub Private Sub txtHostRemoto_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then If ((txtHostRemoto = "") Or (txtPorta = "")) Then MsgBox ("Compilare in modo corretto i campi ""host remoto"" e/o porta"), vbExclamation Else: Winsock1.Connect txtHostRemoto, txtPorta cmdConnetti.Enabled = False cmdDisconnetti.Enabled = True cmdCancella.Enabled = True cmdInvia.Enabled = True txtComando.Enabled = True txtHostRemoto.Enabled = False txtPorta.Enabled = False End If End If End Sub Private Sub txtPorta_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then If ((txtHostRemoto = "") Or (txtPorta = "")) Then MsgBox ("Compilare in modo corretto i campi ""host remoto"" e/o porta"), vbExclamation Else: Winsock1.Connect txtHostRemoto, txtPorta cmdConnetti.Enabled = False cmdDisconnetti.Enabled = True cmdCancella.Enabled = True cmdInvia.Enabled = True txtComando.Enabled = True txtHostRemoto.Enabled = False txtPorta.Enabled = False End If End If End Sub Private Sub cmdDisconnetti_Click() cmdConnetti.Enabled = True cmdDisconnetti.Enabled = False cmdCancella.Enabled = False cmdInvia.Enabled = False txtComando.Enabled = False txtHostRemoto.Enabled = True txtPorta.Enabled = True Winsock1.Close txtRisposta.Text = txtRisposta.Text & "DISCONNESSO" & vbCrLf

Page 114: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

End Sub Private Sub cmdInvia_Click() cmdInvia.Enabled = False txtRisposta.Text = txtRisposta.Text & txtComando Winsock1.SendData txtComando & vbCrLf End Sub Private Sub txtComando_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then cmdInvia.Enabled = False txtRisposta.Text = txtRisposta.Text & txtComando Winsock1.SendData txtComando & vbCrLf End If End Sub Private Sub winsock1_DataArrival(ByVal bytestotal As Long) Winsock1.GetData risposta, vbString cmdInvia.Enabled = True If (flag = False) Then flag = True txtRisposta.Text = "CONNESSO" & vbCrLf End If If (txtRisposta.Text <> "") Then txtRisposta.Text = txtRisposta.Text & vbCrLf & risposta & vbCrLf Else: txtRisposta.Text = risposta & vbCrLf End If End Sub Private Sub Form_Unload(Cancel As Integer) frmPrincipale.Visible = True End Sub Private Sub Form_Terminate() frmPrincipale.Visible = True End Sub 7.2.6 – Codice del form principale 'procedura di caricamento del form Private Sub form_Load() lblEtichetta.Visible = True lblIP.Caption = Winsock1.LocalIP lblLH.Caption = Winsock1.LocalHostName End Sub 'procedure di risposta alla pressione dei vari pulsanti Private Sub cmdChat_Click() Load frmChat

Page 115: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

frmPrincipale.Visible = False frmChat.Visible = True End Sub Private Sub cmdPOP3_Click() Load frmPOP3 frmPOP3.Visible = True frmPrincipale.Visible = False End Sub Private Sub cmdTesina_Click() Load frmTesina frmPrincipale.Visible = False frmTesina.Visible = True End Sub Private Sub cmdTelnet_Click() Load frmTelnet frmTelnet.Visible = True frmPrincipale.Visible = False End Sub Private Sub cmdBrowser_Click() Load frmBrowser frmBrowser.Visible = True frmPrincipale.Visible = False End Sub Private Sub cmdEMail_Click() Load frmSMTP frmSMTP.Visible = True frmPrincipale.Visible = False End Sub 'procedure che richiamano la descrizione della applicazione 'associata al bottone nella label inferiore Private Sub cmdBrowser_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) If (lblSelezione.Visible = False) Then lblEtichetta.Visible = False lblSelezione.Visible = True frmPrincipale.Refresh End If lblSelezione.Caption = "Web browser:" & vbCrLf & "browser compatibile Internet Explorer 4.0" & vbCrLf & "supporta Java, VBscript e Javascript" End Sub Private Sub cmdTelnet_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) If (lblSelezione.Visible = False) Then

Page 116: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

lblEtichetta.Visible = False lblSelezione.Visible = True frmPrincipale.Refresh End If lblSelezione.Caption = "Telnet emulator" & vbCrLf & "permette di collegarsi alla porta di un server" & vbCrLf & "e di agire come fosse un terminale" End Sub Private Sub cmdPOP3_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) If (lblSelezione.Visible = False) Then lblEtichetta.Visible = False lblSelezione.Visible = True frmPrincipale.Refresh End If lblSelezione.Caption = "POP3 mail receiver:" & vbCrLf & "permette di ricevere messaggi di posta elettronica" & vbCrLf & "attraverso server POP3" End Sub Private Sub cmdTesina_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) If (lblSelezione.Visible = False) Then lblEtichetta.Visible = False lblSelezione.Visible = True frmPrincipale.Refresh End If lblSelezione.Caption = "La nostra tesina" & vbCrLf & "Il TCP/IP e la trasmissione" & vbCrLf & "dati su Internet" End Sub Private Sub cmdChat_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) If (lblSelezione.Visible = False) Then lblEtichetta.Visible = False lblSelezione.Visible = True frmPrincipale.Refresh End If lblSelezione.Caption = "UDP chat:" & vbCrLf & "chat sincrona basata sul protocollo UDP" & vbCrLf & "funziona su Internet o su rete locale (LAN)" End Sub Private Sub cmdEmail_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) If (lblSelezione.Visible = False) Then lblEtichetta.Visible = False lblSelezione.Visible = True frmPrincipale.Refresh End If

Page 117: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

lblSelezione.Caption = "SMTP mail sender:" & vbCrLf & "permette di inviare messaggi di posta elettronica" & vbCrLf & "attraverso un server SMTP" End Sub Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) If lblEtichetta.Visible = False Then lblSelezione.BackColor = &H8080FF lblEtichetta.Visible = True lblSelezione.Visible = False frmPrincipale.Refresh End If End Sub Private Sub imgGenio_Click() End End Sub Private Sub imgGenio_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) If (lblSelezione.Visible = False) Then lblEtichetta.Visible = False lblSelezione.Visible = True frmPrincipale.Refresh End If lblSelezione.BackColor = &HC0FFFF lblSelezione.Caption = vbCrLf & "Esci da Internet All-in-One" & vbCrLf E nd Sub 7.2.7 – Codice del visualizzatore della tesina Private Sub Form_Load() Dim locazione As String locazione = App.Path WebBrowser1.Navigate locazione & "\tesina.html" End Sub Private Sub form_terminate() frmPrincipale.Visible = True End Sub Private Sub form_unload(cancel As Integer) frmPrincipale.Visible = True End Sub 7.3 – Installazione del software La procedura di installazione di IAIO è stata automatizzata attraverso l’utilizzo della “Creazione guidata pacchetti di installazione” di Visual Basic.

Page 118: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

7.4 – Menù di autorun Nel momento in cui viene inserito il cd-rom nel lettore (nel caso la funzione di autorun non sia stata disabilitata), compare una piccola schermata che consente di effettuare le seguenti operazioni:

• installazione di Internet All-in-One; • installazione Windows Media Player 7.0; • installazione Acrobat Reader; • installazione Microsoft Netscape Navigator 6.01; • installazione Microsoft Internet Explorer 5.5; • consultazione della tesina in formato DOC; • consultazione della tesina in formato HTML;

Il menù è stato realizzato mediante l’Indigorose AutoPlay Menu Studio, versione 2.0. 7.5 – Requisiti di sistema Non è stato possibile provare IAIO su molte macchine. In ogni modo abbiamo cercato di estrapolare i requisiti minimi che un PC dovrebbe avere per eseguire in tutta tranquillità i programmi inclusi sul CD:

• processore Intel Pentium o compatibile (consigliato Pentium II o superiore);

• 4 Mbyte di memoria RAM (consigliati 16 Mbyte o superiore); • sistema operativo Microsoft Windows 95 o superiore

(consigliato Windows 98 o ME); • 15 Mbyte di spazio disponibile su disco (solo per IAIO); • scheda video che permetta una risoluzione di almeno 800x600

(consigliata 1024x768); • connessione ad Internet (consigliata);

Page 119: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

Riferimenti bibliografici ed Internet

Libri di testo:

• TCP/IP: guida completa (Apogeo)

• TCP/IP: guida all’esame di certificazione (Ed Tittel, Kurst Hudson, J. Michael Stewat – Apogeo)

• Networking Essentials (Microsoft Press)

• Trasmissione dati: dispositivi, standard e protocolli (Giuseppe Saccardi – Gruppo Editoriale Jackson)

• Internet 2000 (www.liberliber.it)

• Frontiere di rete (www.liberliber.it)

• Visual Basic 6 senza fatica Speedy (Paolo Guccini - McGraw Hill)

• Microsoft Visual Basic 6.0 professional Passo per passo (Michael Halvorson - Microsoft Press)

• Microsoft Visual Basic 6.0 Applicazioni distribuite MCSD Training (Microsoft Press)

• Programmare Microsoft Visual Basic 6.0 (Francesco Balena - Microsoft Press)

• Sviluppare applicazioni con Microsoft Visual Basic 6.0: mastering (Microsoft Press)

• HTML 4 (Paolo Asioli, Federico Gallo - Tecniche nuove)

• Javascript for dummies espresso (Emily A. Vander Veer - Apogeo)

Siti Internet di riferimento (ultima verifica: 05/2001)

• http://www.rfc-editor.org (tutte le RFC)

• http://www.w3.org (W3 Consortium – protocolli vari)

• http://www.vene.tsx.org (TCP/IP: questo sconosciuto)

• http://www.vercellitour.it/tutorials.html

• http://www.hackerzine.org (Manuali vari)

• http://www.networkingitalia.com (Ethernet e NetBIOS)

• http://www.manuali.net

• http://www.docenti.org

• http://www.zeusnews.com

• http://neworder.box.sk

• http://www.interpuntonet.it

• http://www.oltrelinux.com

• http://www.spippolatori.com (La programmazione del Winsock 1 e 2 - Winsock per cerebrolesi)

Page 120: Il TCP/IP e la trasmissione dati su Internet · l’evoluzione della “Rete delle reti” ... 2.5 Wide Area Network (WAN) 2.5.1 Reti WAN analogiche 2.5.1.1 56 commutata 2.5.2 Reti

• http://www.programmazione.it (Winsock.ocx - Backdoors in VB)

• http://www.bismark.it (Guide vari protocolli)

• http://www.html.it

• http://www.javascript.it

• http://www.vbweb.co.uk (VB Web Internet Tutorials: Winsock Object - Building a web browser)

• http://www.archimedianet.it/ddesantis (L'oggetto Winsock)

• http://www.freeweb.org/html/Programmo_Facile (Guide varie)

• http://www.infokomp.no/info/winsock.htm (Winsock error codes)

• http://www.ubi1k-vb.net/resources/sourcecode/grafica.html