il tcpip in pilloleintroduzione 6 la “preistoria” di internet 7 j.c.r. “lick” licklider 8 la...

96
TCP/IP Guida al protocollo TCP/IP Il TCP/IP in pillole Volume 1

Upload: others

Post on 25-Aug-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

TCP/IP

Guida al protocollo TCP/IP

Il TCP/IP in pillole

Volume

1

Page 2: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

G U I D A A L P R O T O C O L L O T C P / I P

IL TCP/IP in pillole

Nessuna parte di questo documento può essere riprodotta o trasmessa in qualsiasi forma a mezzo elettronico o meccanico per alcuno scopo, senza il permesso scritto di RigaSoft

RigaSoft garantisce il massimo impegno per assicurare l’accuratezza delle informazioni contenute in questo documento. RigaSoft non sarà responsabile per errori tecnici o editoriali, oppure omissioni qui contenute, né per danni incidentali o conseguenti risultati dalla fornitura, prestazione o uso di questo materiale.

Tutti gli altri marchi e nomi di prodotti, sono marchi di fabbrica o marchi registrati dalle proprie società. Tutta la ricerca è stata effettuata da conoscenze e da lunghe ed estenuanti ricerche specifiche tramite internet. Una riscrittura parziale delle informazioni per una più semplice spiegazione degli argomenti e una impaginazione accurata fanno di questo documento un valido "bigino" per sapere cos'è e come funziona la nostra rete informatica di casa e più approfonditamente Internet e i protocolli annessi.

Page 3: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

Sommario Capitolo 1 Da Arpanet ad Internet, l’evoluzione della “Rete delle reti” 6

Introduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry Roberts e l’ideazione di Arpanet 10 Anno 1969: Arpanet, dalla teoria alla sperimentazione 11 Le RFC e lo sviluppo dei primi protocolli di rete 12 Finalmente il TCP/IP 13 Da Arpanet a Internet 14 Il World Wide Web e l'esplosione di Internet 17

Capitolo 2 Le reti di computers 21 Local Area Network (LAN) 21 Reti a bus 22 Reti a stella 23 Reti ad anello (token ring) 23 Reti a doppio anello 24 Le schede di rete (NIC) 25 Cavi coassiali 26 Thin Ethernet (10base-2) 26 Thick Ethernet (10-base-5) 27 Unshielded Twisted-Pairs (UTP) 27 Shielded Twisted-Pairs (STP) 28 Cavi USB 28 Cavi in fibre ottiche 28 Lo standard Ethernet 29 La storia 29 Il sistema di trasmissione 29 Wide Area Netowrk (WAN) 30 Reti WAN analogiche 30 La 56 commutata 30

Page 4: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

Reti WAN digitali 31 La T1 31 La T3 32 Integrated Services Digital Network (ISDN) 32 Linea dedicata 32 xDSL (ADSL e HDSL) 33 Reti a commutazione di pacchetto 34 Datapac 35 X.25 36

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

l'internetworking 39 Open System Interconnection (OSI model) 39 Lo strato fisico 41 Lo strato del collegamento dati 41 Lo strato della rete 41 Lo strato del trasporto 41 Lo strato della sessione 42 Lo strato della presentazione 42 Lo strato dell’applicazione 43 Il Progetto 802 43 IEEE 802 Categories 43 Le modifiche al modello OSI 44 Il sottostrato Logical Link Control (controllo logico di collegamento)

44 TCP/IP 44 Visione a strati e raffronto con il modello OSI 44 Lo strato di interfaccia con la rete 45 Lo strato Internet 45 Lo strato del trasporto 46 Lo strato dell’applicazione 47 Windows Sockets (Winsock) 47 NetBIOS 47 TDI (Transport Driver Interface) 48 L’insieme dei protocolli del TCP/IP 48 I protocolli dello strato internet 48 Internet Protocol (IP) 49 Il formato ed i campi di un pacchetto IP 49

Page 5: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

Internet Control Message Protocol (ICMP) 51 Internet Group Management Protocol (IGMP) 51 Address Resolution Protocol (ARP) 52 I protocolli dello strato del trasporto 53 Transfer Control Protocol (TCP) 53 Porte e socie 53 User Datagram Protocol (UDP) 54 Una esemplificazione delle differenze tra TCP e UDP 54 I protocolli dello strato dell’applicazione 54 Telnet 55 Network Virtual Terminal (NVT) 55 Le opzioni negoziabili 55 Visione simmetrica dei terminali e dei processi 55 Gopher 56 ANSI Z3950 e Wide Area Information Servers (WAIS) 56 Simple Mail Transfer Protocol (SMTP) 56 Post Office Protocol version 3 (POP3) 57 Network News Transfer Protocol (NNTP) 58 File Transfer Protocol (FTP) 58 Hyper-Text Transfer Protocol (HTTP) 59 Hyper-Text Transfer Protocol (HTTP) 60 Domain Name Service (DNS) 60

Capitolo 4 Gli indirizzi dell’Internet Protocol (IP address) 61 Fondamenti sugli indirizzi dell’Internet Protocol 61 Notazione per decimali puntati 61 Le classi degli indirizzi IP 61 Indirizzi di Classe A 62 Indirizzi di Classe B 62 Indirizzi di Classe C 63 Indirizzi di Classe D 63 Indirizzi di Classe E 63 Regole generali nell’assegnazione degli indirizzi IP 63 Il ruolo delle maschere di sottorete 64 Il processo di messa in AND 64 Esempio di messa in AND tra due host 65 Il protcollo SMB 66 I nomi NetBIOS 67 I limiti di NetBIOS e NetBEUI 69 NetBIOS over TCP/IP (NBT) 69 Le porte dell’NBT 70 NBT: la sua funzione oggi 71

Page 6: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

I limiti di NetBIOS e NetBEUI 71 NetBIOS over TCP/IP (NBT) 71 Le porte dell’NBT 72 NBT: la sua funzione oggi 73

Capitolo 5 La trasmissione dati dal punto di vista fisico-elettronico 74

I mezzi trasmissivi 74 Doppino telefonico 74 Cavo coassiale 74 Fibra ottica 75 Microonde e trasmissione via satellite 75 Rumore, distorsione e diafonia 77 Tecniche di modulazione del segnale 77 Modulazioni analogiche con portante armonica 78 AM (Amplitude Modulation) 78 FM (Frequency Modulation) 78 PM (Phase Modulation) 79 Modulazioni analogiche con portante impulsiva 79 PAM (Pulse Amplitude Modulation) 79 PWM (Pulse Width Modulation) 80 PPM (Pulse Phase Modulation) 80 PFM (Pulse Frequency Modulation) 80 Modulazioni digitali con portante armonica 81 ASK (Amplitude Shift Keying) e OOK (On-Off Keying) 81 FSK (Frequency Shift Keying) 82 Modulazioni digitali con portante impulsiva 82 PCM (Pulse Code Modulation) 83 DM (Delta Modulation) e ADM (Adaptive DM) 83 Tipi di esercizio 83 Simplex (SX) 83 Half-duplex (HDX) 84 Full-duplex (FDX) 84 L’interfaccia seriale RS 232C 84

Capitolo 6 Strumenti per la risoluzione dei problemi TCP/IP 86 Strumenti avanzati 86 Strumenti generali del sistema operativo 87 Cancellazione della cache ARP mediante lo strumento Arp 90 Verifica del gateway predefinito 90 Host di destinazione IP non raggiungibile 91 Richiesta IP scaduta 91 Esame della tabella di routing attraverso lo strumento Route 93

Page 7: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

Esame dei percorsi attraverso lo strumento Tracert 93

Page 8: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

6

Capitolo 1 Da Arpanet ad Internet, l’evoluzione della “Rete delle reti”

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

Page 9: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

7

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.

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 10: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

8

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.

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.

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 11: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

9

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.

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 12: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

10

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.

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 13: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

11

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.

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 14: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

12

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.

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 15: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

13

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

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 16: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

14

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.

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 17: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

15

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 18: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

16

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 19: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

17

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

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 20: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

18

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 21: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

19

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 22: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

20

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 23: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

21

Capitolo 2 Le reti di computers 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 24: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

22

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

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 25: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

23

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.

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

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”

Page 26: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

24

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

Page 27: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

25

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

Page 28: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

26

Multistation Access Units) sono dispositivi autonomi contenenti le NIC, che supportano uno o più nodi.

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. 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. Thin Ethernet (10base-2) 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 è

Page 29: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

27

utilizzato. In una rete a bus, infatti, è sufficiente che un cavo si danneggi, affinché tutti gli host rimangano completamente isolati. 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. 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.

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

Page 30: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

28

Shielded Twisted-Pairs (STP) Il cavo STP, così come l’UTP, presenta una impedenza di 100 ohm.

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

Page 31: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

29

Lo standard Ethernet 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. 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. 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 in precedenza. In realtà, al giorno d’oggi, Ethernet gestisce alla perfezione anche reti LAN basate su di una topologia a stella. Il CSMA/CD, comunque, rimane la prerogativa preponderante di questo standard.

Page 32: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

30

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. 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. 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. La 56 commutata

Page 33: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

31

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

Page 34: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

32

un’ampiezza di banda completa, gli abbonati usufruiscono di uno o più canali T1, ciascuno dei quali costituisce un incremento di 64kbps. La 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. Integrated Services Digital Network (ISDN) 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. 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

Page 35: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

33

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

Page 36: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

34

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

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

Page 37: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

35

seguono sono quattro comuni implementazioni delle reti a commutazione di pacchetto; ne verrano tuttavia approfondite 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 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 38: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

36

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

Page 39: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

37

La comunicazione da un capo all’altro tra i due DTE è svolta da un’associazione conosciuta come circuito virtuale. 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 40: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

38

Capitolo 3 Il protocollo TCP/IP Cos’è un protocollo? Il dizionario 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. 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 "Acme Information Technology S.p.a.". Un bel giorno, il direttore della "Emca" 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 "Acme" 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. 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 aramaico? 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

Page 41: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

39

ricordarlo, gli standard più diffusi sono per forza i più efficienti. Gli esempi sono numerosi, vedi il sistema 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. 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 progettisti ed implementatori di reti. 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 42: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

40

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

Page 43: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

41

sviluppo di nuovi protocolli, poiché questi devono semplicemente interagire con gli strati sopra e sotto a quello in cui sono implementati. 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. Lo strato del collegamento dati Lo strato del collegamento dati invia i frame dati dallo strato della rete allo strato fisico. Quando lo strato del collegamento dati riceve i bit dallo strato fisico, li traduce in frame di 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. Lo strato della rete 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. 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

Page 44: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

42

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

Page 45: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

43

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. 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. IEEE 802 Categorie 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;

Page 46: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

44

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). 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 con la scheda di rete ed è responsabile di eventuali errori di trasferimento dati tra due computer della rete. 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. 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.

Page 47: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

45

Lo strato di interfaccia con la rete Lo strato della rete infila sul cavo i frame in partenza e toglie dal cavo quelle in arrivo. Il formato utilizzato da questi frame 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. 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 • 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;

Page 48: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

46

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

Page 49: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

47

destinatario riceva con successo i dati. Se infatti non riceve uno specifico segmento, può richiedere all’host mittente di inviarlo una seconda volta.

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ò assemblare i dati nel loro formato originale. 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) 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. 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

Page 50: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

48

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”). TDI (Transport Driver Interface) La Transport Driver Interface è un’effettiva interfaccia di programmazione collocata al confine tra i componenti di protocollo dello strato della sessione ed i componenti dello strato del trasporto. TDI consente ad un programmatore di creare un componente per lo strato della sessione, senza dover avere una conoscenza diretta dei componenti del sottostante strato Trasporto e viceversa. Questa interfaccia è specifica dell’implementazione Microsoft del TCP/IP. L’insieme dei protocolli del TCP/IP Ora che è più chiaro lo schema logico del modello a strati TCP/IP, i paragrafi che seguono spiegano gli specifici protocolli che vi sono implicati, fornendo maggiori dettagli sulle funzionalità peculiari dei protocolli in ciascuno strato del modello TCP/IP. Ovviamente, verranno approfonditi soltanto i protocolli relativi alle comunicazioni Internet, mentre per gli altri verrà fornita soltanto un piccola descrizione.

I protocolli dello strato internet Nello strato internet del TCP/IP, lavorano quattro protocolli: • IP: che gestisce l’indirizzamento dei pacchetti dati; • ICMP: monitoraggio degli errori degli altri protocolli; • IGMP: si occupa di spedire pacchetti in broad e multicast.

Page 51: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

49

Internet Protocol (IP) L’Internet Protocol fornisce tutti gli indirizzi logici degli host. Ciascun host ha in dotazione un indirizzo IP univoco per la rete sulla quale sta lavorando. Il protocollo IP è senza connessione (connection-less). Affinché due host comunichino utilizzando il protocollo IP, non è necessario che prima stabiliscano una sessione. I due sistemi si scambiano i dati per mezzo di un sistema di consegna ottimizzato. Come accade per qualsiasi protocollo che fornisce l’indirizzamento in rete, l’Internet Protocol include sia i componenti della rete sia quelli dell’host. Confrontando l’indirizzo IP di un computer destinatario con l’indirizzo IP della propria origine, l’IP può determinare se il pacchetto deve essere instradato verso l’host destinatario o se è possibile mandarglielo direttamente. Il formato ed i campi di un pacchetto IP Il formato di un pacchetto IP appare di questo tipo:

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

Page 52: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

50

Precedence Delay Throughput Reliability Non usato 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 53: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

51

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

Page 54: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

52

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

Page 55: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

53

- 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). 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”. 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: • 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”. Porte e socie 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ù

Page 56: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

54

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. ( vedi all’indirizzo http://www.speedguide.net/ports.php?filter=&p=0 ) 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. 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. 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

Page 57: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

55

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

Page 58: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

56

desidera che abbiano inizio i suoi effetti. Questo punto deve essere specificato dall’host che invia il comando; 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. 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. 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. 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:

Page 59: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

57

• 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]>"; • é 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". 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;

Page 60: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

58

• 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”; • 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. 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. 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 61: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

59

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

Page 62: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

60

utilizzando un nome facile da ricordare (ad esempio http://www.internetallinone.cjb.net) invece che il corrispettivo IP (ad esempio 188.234.321.45) 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. 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. Domain Name Service (DNS) 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 63: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

61

Capitolo 4 Gli indirizzi dell’Internet Protocol (IP address)

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. 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. 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. Ciascun ottetto di informazioni é separato da quelli adiacenti per mezzo di un punto. 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

Page 64: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

62

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.

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

Page 65: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

63

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. 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 rimanenti 28 bit rappresentano il gruppo multicast al quale l’host appartiene. 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####. 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.

Page 66: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

64

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

Page 67: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

65

Esempio di messa in AND tra due host

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

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

Page 68: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

66

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

Page 69: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

67

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

Page 70: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

68

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

Page 71: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

69

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). 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. 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 72: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

70

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

Page 73: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

71

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

Page 74: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

72

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

Page 75: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

73

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. 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 76: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

74

Capitolo 5 La trasmissione dati dal punto di vista fisico-elettronico

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. 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. 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 fonici contemporaneamente. Un altro vantaggio, soprattutto su tratte piuttosto lunghe, deriva dalla velocità intrinseca di propagazione del segnale elettrico

Page 77: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

75

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

Page 78: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

76

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

Page 79: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

77

• 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. 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. Tecniche di modulazione del segnale 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).

Page 80: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

78

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). AM (Amplitude Modulation) In questo tipo di modulazione, alla portante viene variata l’ampiezza in base al valore di tensione del segnale modulante.

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

Page 81: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

79

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. 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. 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 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); 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 82: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

80

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. 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. PFM (Pulse Frequency Modulation) Molto simile alla modulazione FM, 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 83: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

81

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

Page 84: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

82

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.

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.

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

Page 85: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

83

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

Page 86: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

84

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

Page 87: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

85

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

Page 88: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

86

Capitolo 6 Strumenti per la risoluzione dei problemi TCP/IP

Nell'elenco che segue sono riportati alcuni degli strumenti di diagnostica TCP/IP inclusi in Windows XP. Strumenti di base Cartella Connessioni di rete Si trova nel Pannello di controllo, in Rete e connessioni Internet. Contiene informazioni generali e di configurazione per tutte le connessioni di rete presenti nel computer. IPConfig Visualizza i valori di configurazione correnti della rete TCP/IP, aggiorna o rilascia i lease DHCP (Dynamic Host Configuration Protocol) allocati, visualizza, registra o cancella i nomi DNS (Domain Name System). Ping Invia messaggi con richieste Echo ICMP per verificare che il protocollo TCP/IP sia configurato correttamente e che sia disponibile un host TCP/IP. Strumenti avanzati Hostname Visualizza il nome host del computer. Nbtstat Visualizza lo stato delle connessioni NetBIOS su TCP/IP correnti, aggiorna la cache dei nomi NetBIOS e visualizza i nomi registrati e l'ID dell'ambito. PathPing Visualizza il percorso di un host TCP/IP e segnala le perdite di pacchetti in corrispondenza di ogni router durante il tragitto. Route Visualizza la tabella di routing IP e aggiunge o elimina route IP. Tracert Visualizza il percorso di un host TCP/IP. Per visualizzare la corretta sintassi dei comandi da utilizzare con ciascuno degli strumenti citati in precedenza, al prompt dei comandi digitare -? dopo il nome dello strumento utilizzato.

Page 89: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

87

Strumenti generali del sistema operativo Oltre agli strumenti specifici per TCP/IP, è possibile utilizzare anche gli strumenti di Windows XP Professional e superiori. Visualizzatore eventi Registra errori ed eventi di sistema. Gestione computer Consente di apportare modifiche ai driver delle interfacce di rete e ad altri componenti del sistema. Processo di risoluzione dei problemi La procedura da utilizzare per la risoluzione dei problemi relativi al protocollo TCP/IP dipende dal tipo di connessione di rete in uso e dal problema di connettività che si è verificato. Risoluzione dei problemi automatizzata Per la maggior parte dei problemi riguardanti la connettività Internet, utilizzare innanzi tutto lo strumento Diagnostica rete per identificare l'origine del problema. Per utilizzare Diagnostica rete, attenersi alla seguente procedura: Fare clic sul pulsante Start, quindi scegliere Guida in linea e supporto tecnico. Fare clic sul collegamento relativo a Utilizza gli strumenti per visualizzare le informazioni sul computer e per diagnosticare eventuali problemi, quindi scegliere Diagnostica di rete dall'elenco a sinistra. Quando si sceglie Analizza sistema, vengono raccolte le informazioni di configurazione e viene eseguita la risoluzione automatica dei problemi della connessione di rete. Una volta terminato il processo, controllare le voci contraddistinte dalla dicitura "NON RIUSCITE", espandere tali categorie e visualizzare i dettagli aggiuntivi sui risultati della verifica. Queste informazioni possono essere utilizzate per risolvere il problema o possono essere fornite a un esperto del servizio di supporto reti per l'assistenza. Confrontando i test non riusciti con la documentazione nella sezione Risoluzione dei problemi manuale riportata più avanti in questo articolo, è possibile determinare l'origine del problema. Per interpretare i risultati relativi a TCP/IP, espandere la sezione Schede di rete dei risultati, quindi espandere la scheda di rete per cui la verifica ha dato esito negativo. È altresì possibile avviare direttamente l'interfaccia Diagnostica rete utilizzando il seguente comando: netsh diag gui Risoluzione dei problemi manuale Controllo della configurazione mediante lo strumento IPConfig Quando è necessario risolvere un problema di una rete TCP/IP, verificare innanzi tutto la configurazione TCP/IP del computer che presenta il problema. Utilizzare il comando ipconfig per visualizzare le informazioni di configurazione del computer host, compresi indirizzo IP, subnet mask e gateway predefinito. Con il parametro /all di IPConfig verrà generato un rapporto di configurazione dettagliato per tutte le interfacce, comprese eventuali schede di accesso remoto.

Page 90: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

88

È possibile reindirizzare l'output di IPConfig in un file per incollarlo in altri documenti. A questo scopo digitare: ipconfig > \nome_cartella\nome_file L'output viene associato al nome di file specificato e viene memorizzato nella cartella indicata. È possibile controllare l'output di IPConfig per identificare i problemi di configurazione di rete del computer. Se ad esempio un computer viene configurato manualmente con un indirizzo IP duplicato già individuato, la subnet mask diventa 0.0.0.0. Se l'indirizzo IP locale restituito è 169.254.y.z, con subnet mask 255.255.0.0, l'indirizzo IP è stato assegnato dalla funzione APIPA (Automatic Private IP Addressing) di Windows XP Professional. Ciò significa che è impostata la configurazione automatica di TCP/IP, non è stato trovato alcun server DHCP e non è specificata alcuna configurazione alternativa. In questa configurazione non vi è alcun gateway predefinito per l'interfaccia. Se l'indirizzo IP locale restituito è 0.0.0.0, la funzione di rilevamento del supporto DHCP ha ignorato questa impostazione in quanto la scheda di rete ha rilevato l'assenza di connessione a una rete oppure TCP/IP ha rilevato un indirizzo IP identico a un altro indirizzo configurato manualmente. Verifica della connettività mediante lo strumento Ping Se non si identificano problemi riguardanti la configurazione TCP/IP, la fase successiva consiste nel verificare se il computer è in grado di connettersi ad altri computer host della rete TCP/IP. Ping è uno strumento che consente di verificare la connettività di livello IP. Con il comando ping viene inviato un messaggio di richiesta Echo ICMP a un host di destinazione. È possibile utilizzare Ping ogni volta che si desidera verificare se un computer host è in grado di inviare pacchetti IP a un host di destinazione. È altresì possibile servirsi di Ping per identificare problemi dell'hardware di rete e configurazioni incompatibili. Se si esegue il comando ipconfig /all ed è visualizzata la configurazione IP, non è necessario effettuare il ping dell'indirizzo di loopback e del proprio indirizzo IP. Queste operazioni sono già state eseguite per visualizzare la configurazione. Durante le procedure di risoluzione dei problemi, assicurarsi che esista una route fra il computer locale e un host di rete utilizzando in primo luogo il comando Ping per l'indirizzo IP dell'host di rete a cui si desidera connettersi. La sintassi del comando è la seguente: ping indirizzo IP Quando si utilizza il comando Ping attenersi alla seguente procedura: Effettuare il ping dell'indirizzo di loopback per verificare che il protocollo TCP/IP sia installato e configurato correttamente nel computer locale. Utilizzare il seguente comando: ping 127.0.0.1

Page 91: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

89

Se la verifica di loopback non ha esito positivo, lo stack IP non risponde. L'assenza di risposta può essere causata da driver TCP danneggiati, dal mancato funzionamento della scheda di rete o dall'interferenza di un altro servizio con il protocollo IP. Effettuare il ping dell'indirizzo IP del computer locale per verificare che sia stato correttamente aggiunto alla rete. Se la tabella di routing è corretta, con questa procedura il pacchetto viene semplicemente inviato all'indirizzo di loopback 127.0.0.1. Utilizzare il seguente comando: ping indirizzo IP dell'host locale Se la verifica di loopback ha esito positivo ma risulta impossibile effettuare il ping dell'indirizzo IP locale, è possibile che si sia verificato un problema che riguarda la tabella di routing o il driver della scheda di rete. Effettuare il ping dell'indirizzo IP del gateway predefinito per verificare che il gateway sia attivo e che sia possibile connettersi a un host della rete locale. Utilizzare il seguente comando: ping indirizzo IP del gateway predefinito Se il comando ping non ha esito positivo in questa fase, è possibile che si sia verificato un problema riguardante la scheda di rete stessa, la periferica router/gateway, i cavi o altro hardware per la connettività. Effettuare il ping dell'indirizzo IP di un host remoto per verificare che il computer sia in grado di comunicare tramite router. Utilizzare il seguente comando: ping indirizzo IP dell'host remoto Se il comando ping non ha esito positivo in questa fase, è possibile che l'host remoto non risponda o che si sia verificato un problema riguardante l'hardware di rete fra i computer. Effettuare nuovamente il ping di un altro host remoto per escludere la prima possibilità. Effettuare il ping del nome di un host remoto per verificare che sia possibile risolvere il nome host remoto. Utilizzare il seguente comando: ping nome host remoto Il comando ping impiega la risoluzione dei nomi per risolvere il nome di un computer in un indirizzo IP. Se pertanto il ping dell'indirizzo IP ha esito positivo ma il ping del nome host non riesce, il problema riguarda la risoluzione del nome dell'host, non la connettività di rete. Verificare che per il computer gli indirizzi dei server DNS siano stati configurati in modo manuale nelle proprietà TCP/IP oppure assegnati automaticamente. Se quando si esegue il controllo utilizzando il comando "ipconfig /all" sono elencati indirizzi di server DNS, provare a eseguire il ping degli indirizzi dei server per verificare se è possibile accedervi. Se in qualche fase il comando Ping non ha esito positivo: Verificare che l'indirizzo IP del computer locale sia valido e corretto nella scheda Generale della finestra di dialogo Proprietà protocollo Internet (TCP/IP) o quando viene utilizzato nello strumento Ipconfig. Verificare che sia configurato un gateway predefinito e che il collegamento fra l'host e il gateway predefinito funzioni. Ai fini della risoluzione dei problemi,

Page 92: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

90

assicurarsi che sia configurato un solo gateway predefinito. Sebbene sia possibile configurare più di un gateway predefinito, i gateway successivi al primo vengono utilizzati solo se lo stack IP determina che il gateway originale non funziona. Lo scopo della risoluzione dei problemi è quello di determinare lo stato del primo gateway configurato, in modo da poter eliminare tutti gli altri per semplificare la procedura. Verificare che non sia abilitata la protezione IP (IPSec). A seconda dei criteri IPSec, i pacchetti di ping possono venire bloccati o necessitare di protezione. Per ulteriori informazioni su IPSec, vedere "Controllo della protezione IP" in questo articolo. Importante: se il sistema remoto a cui si sta inviando il comando ping viene contattato attraverso un collegamento ad alto ritardo, ad esempio un collegamento satellitare, per la risposta potrebbe occorrere più tempo. È possibile utilizzare il parametro -w (attesa) per specificare un periodo di timeout superiore al periodo predefinito di quattro secondi. Verifica di una route attraverso lo strumento PathPing PathPing è uno strumento in grado di rilevare la perdita di pacchetti in percorsi a vari hop. Eseguire un'analisi PathPing dell'host remoto per verificare che i router funzionino correttamente lungo il percorso alla destinazione. Utilizzare il seguente comando: pathping indirizzo IP dell'host remoto Cancellazione della cache ARP mediante lo strumento Arp Se il ping dell'indirizzo di loopback (127.0.0.1) e quello del proprio indirizzo IP hanno esito positivo ma non è possibile effettuare il ping di altri indirizzi IP, provare a cancellare la cache ARP (Address Resolution Protocol). È possibile eseguire questa operazione servendosi dello strumento Arp. Utilizzare arp -a o arp -g per visualizzare le voci della cache. Utilizzare arp -d indirizzo IP per eliminare le voci. Per cancellare la cache ARP, utilizzare il comando seguente: netsh interface ip delete arpcache Verifica del gateway predefinito L'indirizzo del gateway deve trovarsi sulla stessa rete dell'host locale, in caso contrario sarà impossibile inviare messaggi dal computer host a qualunque percorso esterno alla rete locale. Se l'indirizzo del gateway si trova nella stessa rete dell'host locale, verificare che l'indirizzo del gateway predefinito sia stato immesso correttamente. Verificare infine che il gateway predefinito sia un router, non semplicemente un host, e che tale router sia abilitato all'inoltro di datagrammi IP. Controllo delle comunicazioni mediante lo strumento Tracert o lo strumento Route Se il gateway predefinito risponde correttamente, eseguire il ping di un host remoto e verificare che le comunicazioni fra le reti funzionino come previsto. Se le comunicazioni non funzionano correttamente, utilizzare lo strumento Tracert per analizzare il percorso della destinazione. Se i router IP sono computer in cui è installato Microsoft Windows 2000 o Microsoft Windows

Page 93: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

91

NT, esaminare la tabella di routing IP utilizzando lo strumento Route o lo snap-in Routing e Accesso remoto presente in tali computer. Per i router IP che non sono computer in cui è installato Windows XP Professional, Windows 2000 o Windows NT, utilizzare uno strumento adatto, consigliato dal fornitore, per esaminare la tabella di routing IP. Durante la risoluzione dei problemi, con il comando ping vengono spesso restituiti i seguenti quattro messaggi di errore: TTL scaduto durante il passaggio Questo messaggio di errore indica che il numero di hop necessario ha superato la durata (Time to Live, TTL). Aumentare la durata utilizzando il parametro ping-i. Può esistere un loop di routing. Utilizzare il comando tracert per verificare se router non correttamente configurati hanno causato un loop di routing. Host di destinazione IP non raggiungibile Questo messaggio di errore indica che non esistono route locali o remote a un host di destinazione, sia a livello dell'host di invio sia a livello del router. Effettuare la procedura di risoluzione dei problemi per l'host locale o la tabella di routing del router. Richiesta IP scaduta Questo messaggio di errore indica che i messaggi di risposta Echo non sono stati ricevuti entro il periodo di timeout specificato, il cui valore predefinito è quattro secondi. Utilizzare il comando ping -w per aumentare il timeout. Impossibile trovare l'host Questo messaggio di errore indica che non è possibile risolvere il nome dell'host di destinazione. Verificare il nome e la disponibilità dei server DNS o WINS. Controllo della protezione IP Sebbene l'utilizzo di IPSec possa aumentare le difese di una rete, può altresì rendere più difficoltoso modificarne le configurazioni o risolvere i problemi. In alcuni casi i criteri IPSec richiedono comunicazioni protette in computer con Windows XP Professional e i relativi requisiti possono rendere difficoltosa la connessione a un host remoto. Se la protezione IPSec è stata implementata a livello locale, è possibile disattivare il servizio IPSEC nello snap-in Servizi. Se le difficoltà scompaiono quando si arresta il servizio IPSec, i criteri IPSec bloccano il traffico necessario o ne richiedono la protezione. Chiedere all'amministratore dei sistemi di protezione di modificare i criteri IPSec. Controllo dei filtri dei pacchetti Errori nei filtri dei pacchetti possono impedire il corretto funzionamento della risoluzione degli indirizzi o della connettività. Per capire se un problema di rete è causato dai filtri dei pacchetti, disattivare i filtri dei pacchetti TCP/IP. Attenersi alla seguente procedura: Nel Pannello di controllo fare clic su Rete e connessioni Internet, quindi scegliere Connessioni di rete. Fare clic con il pulsante destro del mouse sulla connessione LAN che si desidera modificare, quindi scegliere Proprietà.

Page 94: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

92

Nella scheda Generale, in corrispondenza di La connessione utilizza gli elementi seguenti, fare clic su Protocollo Internet (TCP/IP), quindi scegliere Proprietà. Scegliere Avanzate, quindi fare clic sulla scheda Opzioni. In corrispondenza di Impostazioni facoltative scegliere Filtro TCP/IP, quindi scegliere Proprietà. Deselezionare la casella di controllo Attiva filtro TCP/IP (su tutte le schede), quindi scegliere OK. Provare a eseguire il ping di un indirizzo utilizzando il relativo nome DNS, il nome computer NetBIOS o l'indirizzo IP. Se il comando ping ha esito positivo, le opzioni di filtro dei pacchetti potrebbero non essere configurate correttamente o essere troppo limitative. Ad esempio, i filtri potrebbero permettere al computer di agire da server Web ma durante il processo vengono disattivati degli strumenti, quali l'amministrazione remota. È possibile ripristinare una gamma più ampia di opzioni dei filtri permesse, modificando ad esempio i valori relativi alla porta TCP, alla porta UDP e al protocollo IP. Controllo degli errori per la connessione a un server specifico Per individuare la causa di problemi di connettività quando si tenta di connettersi a un server specifico attraverso connessioni basate su NetBIOS, utilizzare il comando NBTSTAT -n sul server per determinare quale nome di server è registrato nella rete. Con il comando nbtstat -n output vengono elencati vari nomi registrati dal computer. Fra questi dovrebbe essere compreso un nome somigliante al nome del computer configurato nella scheda Nome computer in Sistema nel Pannello di controllo. In caso contrario, provare uno degli altri nomi univoci visualizzati dal comando Nbtstat. Lo strumento Nbtstat consente inoltre di visualizzare le voci contenute nella cache relative a computer remoti dalle voci contenute nel file Lmhosts contraddistinte da #PRE o da nomi risolti di recente. Se il nome utilizzato per il server dai computer remoti è identico e gli altri computer si trovano in una sottorete remota, verificare che per questi computer il mapping da nome a indirizzo sia contenuto nei rispettivi file Lmhosts o server WINS. Individuazione della causa di blocco di una connessione remota Per determinare perché una connessione TCP/IP a un computer remoto non funziona correttamente, utilizzare il comando netstat -a per visualizzare lo stato di tutte le attività delle porte TCP e UDP del computer locale. Per una buona connessione TCP nelle code di invio e ricezione è in genere indicato 0 byte. Se i dati vengono bloccati in una delle due code oppure se lo stato delle code è irregolare, probabilmente è presente un problema di connessione. Se i dati non sono bloccati e lo stato delle code appare normale, si sta probabilmente verificando un ritardo della rete o del programma.

Page 95: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

93

Esame della tabella di routing attraverso lo strumento Route Affinché due host possano scambiarsi datagrammi IP, è necessario che entrambi dispongano di una route attraverso la quale comunicare o utilizzino gateway predefiniti che impiegano una route. È possibile controllare la tabella di routing di un host basato su Windows XP digitando il seguente comando al prompt dei comandi: route print Esame dei percorsi attraverso lo strumento Tracert Tracert è uno strumento per l'analisi della route che invia messaggi di richieste Echo ICMP con valori incrementali sempre maggiori nel campo TTL dell'intestazione IP per determinare il percorso di rete da un host all'altro e analizza i messaggi ICMP restituiti. Lo strumento Tracert consente di individuare il percorso da un router all'altro per un massimo di 30 hop. Se un router ha generato errori o se il pacchetto è stato indirizzato in un loop, con Tracert il problema viene individuato. Dopo avere trovato il router che presenta problemi, sarà possibile rivolgersi al relativo amministratore, se si tratta di un router esterno, o ripristinarne il normale funzionamento se il router è sotto la propria responsabilità. Risoluzione dei problemi relativi ai gateway Se durante la configurazione viene visualizzato il messaggio riportato di seguito, verificare se il gateway predefinito si trova nella stessa rete logica della scheda di rete del computer: Il gateway predefinito non appartiene a una delle interfacce configurate. Confrontare la porzione dell'ID di rete relativa all'indirizzo IP del gateway predefinito con gli ID di rete delle schede di rete del computer. In particolare, controllare che l'operatore logico bit per bit AND dell'indirizzo IP e della subnet mask equivalga all'operatore logico bit per bit AND del gateway predefinito e della subnet mask. Ad esempio, un computer dotato di una sola scheda di rete configurata con l'indirizzo IP 172.16.27.139 e subnet mask 255.255.0.0 richiede che il gateway predefinito sia 172.16.y.z. L'ID di rete di questa interfaccia IP è 172.16.0.0.

Page 96: Il TCPIP in pilloleIntroduzione 6 La “preistoria” di Internet 7 J.C.R. “Lick” Licklider 8 La Rand Corporation 8 Donald Davies ed il “packet switching” 9 Bob Taylor, Larry

94