INTRODUZIONE ALLE RETI - Home Page di …leotardi.ddns.info/html/lan/download/manualereti.doc ·...

95
1

Transcript of INTRODUZIONE ALLE RETI - Home Page di …leotardi.ddns.info/html/lan/download/manualereti.doc ·...

1

INTRODUZIONE ALLE RETI...........................................51. RETE DI ELABORATORI.........................................61.1. Topologia di rete..........................................71.1.1. Tecnologia trasmissiva...................................71.1.2. Scala dimensionale.......................................82. ASPETTI GENERALI DELLE RETI.................................82.1. Protocollo e architettura di rete........................82.2. Pacchetto..................................................93. MODELLO OSI/ISO............................................113.1 I Livelli OSI/ISO.........................................124. INTERNETWORK (Interconnessione tra reti.)..................144.1 Apparati e connessioni....................................154.1.1Ripetitori o HUB..........................................154.1.2Bridge e Switch...........................................164.1.3Router....................................................164.1.4Gateway...................................................174.1.5Termini vari..............................................18

ARCHITETTURA CLIENT-SERVER......................................191 Concetti generali..........................................192. Socket.....................................................203. Comunicazione connection-oriented..........................214. Comunicazione connectionless...............................225. Modello Client-Server a tre livelli........................22

RETI TCP/IP.....................................................231. Prefazione.................................................242. IP-PROTOCOL................................................262.1. Prefazione................................................262.2. Classi di reti............................................273. Subnetting.................................................284. Indirizzi riservati e/o particolari........................294.1. Indirizzo unicast.........................................294.2. Indirizzo di broadcast....................................294.3. Indirizzo multicast.......................................294.4. Indirizzo di loopback.....................................294.5. Indirizzo 0.0.0.0.........................................294.6. Indirizzi riservati alle subnet...........................304.7. Indirizzo di Network mask.................................305. Header IP versione 4.......................................316. Routing IP.................................................346.1. Instradamento diretto.....................................356.2. Instradamento indiretto...................................367. IPv6.......................................................387.1. Ipv6 prefazione...........................................387.2 Formato indirizzi.........................................397.3 Indirizzi Unicast.........................................407.4 Multicast.................................................427.5 Anycast...................................................428. TCP/UDP....................................................438.1. Prefazione................................................438.2. Indirizzamento, porte e socket............................448.3. Formato pacchetto TCP.....................................468.4. Sessione TCP e stato della connessione....................48

8.5. Formato pacchetto UDP.....................................498.6. Trasmissione UDP..........................................498.7. Incapsulamento messaggi...................................50

PROTOCOLLI DATA-LINK e di CONTROLLO.............................511. Prefazione.................................................522. ARP........................................................533. ICMP.......................................................544. IGMP.......................................................565. SLIP.......................................................566. PPP........................................................567. Tecnologie delle reti RETI-LAN.............................587.1. Carrier Sense Multiple Access / Collision Detection.......587.2. Ethernet..................................................587.3. Standard IEEE 802.........................................597.4. IEEE 802.3................................................607.5. Token Ring o IEEE 802.5...................................617.6. LLC.......................................................638. Tecnologie delle reti MAN e WAN...........................638.1. Reti telefoniche tradizionali.............................638.2. Reti ISDN.................................................638.3. ATM.......................................................63

APPLICAZIONI....................................................651. Prefazione.................................................662. RISOLUZIONE DEI NOMI.......................................662.1. DNS.......................................................662.2. Windows e i servizi di risoluzione nomi...................672.2.1. WINS....................................................673. SMTP - Posta elettronica...................................694. Telnet.....................................................705. FTP........................................................716. NFS........................................................727. SNMP.......................................................738. HTTP/WWW..................................................759. DHCP.......................................................7610. RAS.......................................................7711. RETI WINDOWS..............................................7811.1.Architettura di rete in Windows NT........................7811.2.Rete Windows NT...........................................7911.3.Rete Windows 2000.........................................8111.4.Acitve Directory Windows 2000.............................8111.4.1. Acitve Directory concetti base.........................8111.4.2.Acitve Directory funzionalità di dominio................8311.4.3.Acitve Directory e domini Windows NT....................83

2

Prefazione.Questo manuale non ha la pretesa di essere un trattato esauriente ed esaustivo sulle reti bensì una semplice ed umile guida a tutti coloro che si affacciano per la prima volta al mondo delle reti.

Sono spiegati , almeno in questa prima edizione, molti concetti teorici sule architetture di rete, i protocolli e i relativi servizzi applicativi offerti.

La stesura del manuale nasce ormai qualche anno fa e racchiude tutte informazioni e considerazioni reperite sulla rete internet e/o frutto di esperienze personali e da numerose chiacchierate con chi di reti ne sa più di me.

Leonardo Buluggiu.

3

INTRODUZIONE ALLE RETI.

4

1. RETE DI ELABORATORI

Per RETE s’intende un insieme più elaboratori (computer, hosts) e/o (elementi) autonomi (senza cioè che intercorra relazione tra loro) capaci di condividere risorse o scambiarsi informazioni, sono in pratica interconnessi tra loro.

Distinguiamo sistemi: Mainframe: sono un insieme terminali dove esiste un unico centro elaborativo

(composto anche di più elaboratori) e una serie di terminali. Terminali composti essenzialmente da monitor e tastiera ( non hanno una propria intelligenza), con i quali accedervi. Un tale sistema può essere considerato anche sistema distribuito in quanto l’esistenza di più elaboratori è invisibile all’utente finale. Un computer mainframe ( o un insieme di essi ) è dedicato sia all’immagazzinamento di dati sia all’elaborazione degli stessi, un terminale solo alla visualizzazione dei risultati. Un tale sistema è ( era ) ottimo, quando si hanno moltissimi utenti da connettere.

Elaboratori autonomi in cui l’utente è consapevole della molteplicità

d’elaboratori univocamente determinati e ognuno dei quali potrebbe avere un compito prestabilito, modello client-server. Generalmente si hanno uno o più server dedicati all’immagazzinamento dei dati ed una serie di pc dedicati all’elaborazione di questi ultimi.

Figura 2 Rete Client-Server

Figura 1 Rete Mainframe

5

Nota.Il termine host ( ospite in italiano ), attualmente utilizzato come sinonimo di computer, elaboratore. Il termine derivato dal fatto che in passato i servizi erano ospitati ( hosted ) su mainframe, in altre parole elaboratori centralizzati e collegati tramite un terminale o TTY TeleType. Oggi in un contesto di reti il termine host indica indifferentemente un elaboratore client o server.

1.1. Topologia di rete.

Si possono distinguere due parametri elementari per definire le caratteristiche hardware di una rete e una serie di sottoparametri.

1.1.1. Tecnologia trasmissiva.

Reti broadcast.Tali reti sono contraddistinte dal fatto che esiste un unico canale trasmissivo condiviso quindi da tutti gli elaboratori presenti nella rete. Le informazioni inviate da un elaboratore A un elaboratore B sono inviate sul canale trasmissivo e ricevuti da tutti gli elaboratori connessi alla rete ma sarà preso in considerazione solo ed esclusivamente dal destinatario, l’elaboratore B.

Reti punto a punto.Questa topologia di reti è formata di un insieme di connessioni tra coppie d’elaboratori. Le informazioni che devono andare da un host A ad un host B possono viaggiare attraverso tutta una serie d’elaboratori intermedi, e possono di volta in volta compiere strade differenti, per far viaggiare le informazioni in tale modo esistono degli algoritmi di instradamento (routing).

Figura 3

Generalmente sono di tipo punto-punto le reti geograficamente molto estese, ciò è anche abbastanza logico facendo una semplice considerazione, nelle reti punto-punto esistono più vie, più possibilità di instradare un’informazione da un host della rete ad un altro quindi qualora qualche host sia fuori uso è possibile

6

evitare tale host guasto e instradare le informazioni per un'altra via. Le reti broadcast trovano impiego per aree localizzate, fanno però eccezioni quelle reti il cui mezzo trasmissivo sia il satellite.

1.1.2. Scala dimensionale.Le reti possono anche essere suddivise in base alla loro scala dimensionale, che oltre al parametro di dimensione fisica (di lunghezza dei cavi che compongono la rete ed estensione geografica), si valuta anche il numero di hosts presenti.

LAN (Local Area Network).Hanno un’estensione che va da pochi metri ad un massimo di qualche chilometro, esistono due topologie trasmissivive il ring ed il bus. In tutte e due le topologie sono presenti dei meccanismi che decide quale host ha il diritto di trasmettere, per evitare collisioni di trasmissioni.

MAN (Metropolitan Area Network).Hanno un’estensione che può arrivare intorno alla decina di chilometri, quindi è impiegata nell’ambito urbano.

WAN (Wide Area Network).Si estendono oltre i cento chilometri e lungo tutti il pianeta, è composta di più subnet (sottoreti) collegate tra loro che collegano più host. Ad esempio le subnet possono essere delle MAN. Una subnet è costituita oltre che da una linea di trasmissione da un elemento di commutazione ovvero un elemento che mette in comunicazione tra loro le varie subnet, tal elemento è chiamato router.

2. ASPETTI GENERALI DELLE RETI.

2.1. Protocollo e architettura di rete.

Per protocollo si intende una serie di regole univocamente interpretabili che permettono ad esempio, a persone di diversa lingua e cultura di interagire e comprendersi senza ambiguità. Nel contesto telematico, le regole, che permettono lo scambio di informazioni tra computer con differenti caratteristiche sia dal punto di vista hardware che software prendono anch’esse il nome di protocollo.

Le reti sono organizzate, strutturate, in vari livelli con compiti ben delineati e precisi, tra reti differenti il numero dei livelli possono differire. Ogni livello n (service provider) ha sostanzialmente il compito di offrire un servizio, cioè una serie di operazioni elementari, al livello n+1 (service user) senza che il livello n+1 sappia come venie implementato tale servizio.

Un determinato livello n di un host A ha una comunicazione con un livello n di un host secondo un protocollo di livello n (con le stesse regole), i processi entità che possono effettuare un tale tipo di comunicazione si chiamano “entità di pari livello” peer entitiy. Fermo restando che il conversare tra host tra stessi livelli è un’astrazione in quanto i dati e le informazioni passano sempre e in ogni caso tra i livelli sottostanti, non esiste assolutamente un collegamento fisico tra livelli di ordine n di host differenti. La comunicazione

7

tra i vari livelli avviene tramite delle “interfacce di livello” che chiaramente per essere ben progettate dovranno rendere minime le informazioni da trasferire.

Figura 4 Comunicazione tra livelli

L’unione dei protocolli riguardanti i livelli viene denominato architettura di rete.

2.2. Pacchetto.Le informazioni che sono trasferite all’interno della rete da un host A ad un host B sono “confezionati” in “PACCHETTI”. Il nostro pacchetto “PAC” può essere “confezionato” in vari modi, ad esempio se deve attraversare supporti fisici differenti potrebbe essere suddiviso in pacchetti di dimensioni più piccole rispetto all’originario o essere accorpato ad altri pacchetti e instradato tra i vari router. Percorrendo i livelli dall’alto verso il basso, ogni livello aggiungerà delle informazioni e il pacchetto inviato sarà l’incapsulamento di tutte le informazioni dei vari livelli.

Figura 5 Unione dei pacchetti

8

Nota.

Molto spesso i pacchetti che transitano tra un livello ed un altro della pila OSI/ISO sono indicati con una testata (header) e un payload, il payload indica una stringa generica, composta da più sottocampi, di dati scambiati tra livelli di pari entità.

9

3. MODELLO OSI/ISO.

Nel mondo delle reti bisogna sottolineare la differenza che corre tra un MODELLO e UN’ARCHITETTURA :

Un MODELLO definisce:Il numero dei livelli;Le relazioni tra i livelli;Le caratteristiche funzionali;

Un MODELLO NON definisce:I protocolli;

Un’ARCHITETTURA definisce:Livello per livello i protocolli;

Un MODELLO è ad esempio:

OSI Reference Model;

Un’ARCHITETTURA è ad esempio :Internet Protocol Suite ( architettura TCP/IP o TCP/IP reference model).

Nota.ISO International Standard Organization identifica un insieme di enti internazionali. La parola “iso” deriva dal greco “uguale a”

Nota.OSI è un modello creato da ISO che definisce una piattaforma per i sistemi aperti.

Nota.Sistema, è un insieme di computer o terminali, programmi, persone in grado di elaborare e trasferire informazioni.

Nota.Aperto, seguendo delle norme (ISO) è in grado di scambiare informazioni.

10

3.1 I Livelli OSI/ISO. Il modello OSI/ISO (Open System Interconnection), suddivide la gestione della rete in sette livelli il più basso (livello uno) è rappresentato dal supporto trasmissivo il più alto è quello applicativo. Tale modello va ricordato che non definisce una tecnologia ma un riferimento agli aspetti comuni che possono riguardare una rete. Fornisce un modello in grado di fare colloquiare e/o confrontare sistemi con tecnologie totalmente differenti.

Figura 6 Modello ISO-OSI

Livello 7 Applicazione (Application Program Interface) o Aplication Service Element (ASE).

Interfaccia che comunica con i programmi applicativi cioè quelli utilizzati o creati dall’utente. In questo livello dovranno essere definiti i protocolli necessari per la gestione dei servizi offerti trasferimento file, posta elettronica, ecc. ecc. Livello 6 Presentazione E’ il livello che si occupa di dare un formato comune ai dati attraverso una comunicazione che avviene tra computer differenti, ad esempio tra personal computer e mainframe, formatta e trasforma i dati per creare un riferimento comune dei dati tra i soggetti in comunicazione. Sostanzialmente seleziona una sintassi comune con la quale strutturare i dati da trasmettere.

Livello 5 Sessione Crea mantiene e termina una sessione, una connessione, logica fra i programmi utilizzati dai due soggetti in comunicazione tra loro utilizzati per il trasferimento dei dati. Implementa dei meccanismi per un acomunicazione bidirezionale, decide chi dei due soggetti può comunicare (assegna un token = gettone che garantisce la possibilità di trasmettere ) o come riprendere una comunicazione interrotta check-point.

Livello 4 Trasporto

11

Il compito di questo livello è quello di ricevere e/o inviare i dati, suddividerli in pacchetti, se necessario, controllarli e dove previsto possibilmente correggerli. Questo livello può essere pensato anche come “isolante” sia per i livelli superiori da un eventuale cambio di tecnologia da parte della rete sottostante. E’ anche il primo livello end-to-end, cioè mette in comunicazione l’host sorgente con l’host destinatario.A questo livelo è anche affidata la qualità del servizio QOS ( Qualità of Service ) ovvero che i pacchetti arrivino, senza errori, tutti, senza ne perdite ne duplicazioni. ISO definisce 5 trasport protocol (TP) in base al livello di affidabilità: TP0: base, prevede che i tre livelli iso sottostanti si prendano carico dela

ricezione dei dati senza errori. TP1: basic erro recovery. TP2: controllo sul flusso dei dati. TP3: permette di ritrasmettere pacchetti. TP4: rileva e corregge errori.

Livello 3 Rete (NETWORK) Lo scopo del livello è controllare il funzionamento della subnet di comunicazione e di determinare il percorso migliore da far percorrere ai dati per raggiungere il destinatario., cioè l’instradamento dei dati o routing. Definisce:pacchettiindirizzamentoinstradamento in modo astratto rispetto al supporto fisico di comunicazione.

Incombenze: routing, la scelta del cammino dei vari pacchetti può essere statica o dinamica.Congestione dei router, troppi pacchetti in entrata da molte linee di ingresso verso una sola linea in uscita.Costi in base alla quantità di dati movimentati (accounting).Conversione di dati se sussiste un passaggio di dati fra una rete ed un'altra diversa, che comporta pacchetti da frammentare indirizzi da rimappare, più protocolli da gestire.

Livello 2 Collegamento dati (DATA-LINK) In base al tipo di comunicazione del livello 1 definisce i pacchetti e il tipo di indirizzamento, assicura che i dati inviati siano affidabili e privi di errori.Tale livello:Suddivide i dati in frame (pacchetto).Invia i frame in sequenza.Controlla che per ogni frame inviato riceva acknowledgement frame (ack)

Incombenze: Aggiunge ad ogni frame dei framing (delimitatori) d’inizio e fineSi dovranno gestire gli errori di trasmissione dovuti ad errori di ricezione, duplicazione e/o perdita dei frame.Gestione d’invio frame ricezione ack (si deve attendere del tempo affinché il ricevente abbia il tempo necessario di rispondere ack).Condivisione del canale trasmissivo per tutte le reti broadcast (generalmente hanno un sottolivello data-link).

Livello 1 Fisico Costituisce il vero e proprio supporto di trasporto dei dati, cavo coassiale, fibra ottica, trasmissione radio. Le informazioni vengono sparate in bit su un mezzo di trasporto, Rawbit Strema Service.

12

4. INTERNETWORK (Interconnessione tra reti.)

Abbiamo un’interconnessione nel momento in cui diverse reti siano esse LAN, WAN, o MAN sono collegate tra loro (una MAN può essere considerata una subnet di una WAN). Il collegamento di più reti comporta l’utilizzo di particolari nodi che devono essere in grado di mettere in comunicazione anche reti con tecnologie differenti. Questi nodi possono essere bridge, router, gateway a seconda di che tipo di collegamento stiamo effettuando.Le interconnessioni tra questi nodi possono avvenire secondo i seguenti metodi: A stella, in questo tipo di collegamento i dati scambiati

passano tutti per un nodo centrale. Ad anello, le comunicazioni avvengono in teoria in un unico

verso e gli hosts sono collegati tra loro come a formare un anello.

Ad albero

Figura 7 Connessione dispositivi Radio. Via satellite.

Figura 8 Colegamenti Wireless

13

4.1 Apparati e connessioni.

4.1.1 Ripetitori o HUB.Un ripetitore o HUB è sostanzialmente un dispositivo che lavora al livello 1 della pila OSI/ISO, vale a dire quello fisico e permette l’interconnessione di due reti. Tutto ciò che è ascoltato su una rete, è ritrasmesso sull’altra. La ritrasmissione tra una rete e l’altra comporta un notevole aumento di traffico e una conseguente minore velocità di trasmissione dovuta alle frequenti collisioni che avvengono sul bus.

Figura 9 Hub

L’utilizzo di hub è limitato al meccanismo CSMA/CD, se la rete supera una certa dimensione, il tempo di percorrenza di un messaggio da un capo all’altro potrebbe far sembrare il BUS libero, invece che occupato. Altro limite sta nel numero di collisioni che si genererebbero per la quantità di traffico dovuta alla quantità di PC connessi.E’ possibile collegare più hub tramite le giuste prese uplink che inverte la coppia trasmissione ricezione.

4.1.2 Bridge e Switch.Un bridge permette la connessione di più reti dello stesso tipo, con tecnologie uguali e con un indirizzamento compatibile tra loro. Opera al secondo livello del modello OSI/ISO. E’ un apparato più costoso e più lento del semplice hub, poiché deve analizzare i pacchetti ricevuti e decidere se ripeterli nelle altre reti a cui è connesso oppure no. I messaggi scambiati tra due host di una stessa rete non sono ripetuti nelle altre, non producono traffico aggiuntivo.Un bridge analizza i pacchetti provenienti dalle sue interfacce e n’estrae l’indirizzo MAC (in questo caso si parla di bridge a livello di MAC address, esistono anche bridge a livello LLC per collegare reti Ethernet e Token Ring), del PC dal quale proviene memorizza tali indirizzi in due tabelle e comincia così a capire quali host appartengono ad una rete e quali all’altra. L’intelligenza del bridge sta nel momento in cui riceve un pacchetto con un indirizzo a lui già noto ( presente in tabella ) e può decidere se ritrasmetterlo o no.Lo switch è l’evoluzione del bridge, può collegare fino a 8 sottoreti e svolge le funzioni d’analisi degli indirizzi via hardware invece che via software è quindi più veloce.

14

4.1.3 Router.Router è in grado di connettere reti e di trasferire informazioni solo con lo stesso tipo di protocollo di trasmissione di rete (TCP/IP…), anche con indirizzamenti differenti. Opera al terzo livello del modello OSI/ISO al livello IP. Ogni router ha almeno una linea d’ingresso/uscita rivolta alla sua rete e una linea d’ingresso/uscita rivolta al mondo esterno.I compiti di un router in sostanza sono: Ricevere un pacchetto d’informazioni da una linea d’ingresso; Memorizzarlo al suo interno; Instradarlo sulla linea d’uscita appena libera.

Figura 10 Instradamento e sottoreti

4.1.4 Gateway.Gateway permette la connessione di molteplici reti differenti tra loro in tutto e per tutto indirizzamento, protocolli di rete, servizi. Opera all’ultimo livello del modello OSI/ISO.

15

Figura 11 Instradamenti sottoreti Gateway

4.1.5 Termini vari.

internet è generalmente usato come sinonimo d’internetwork cioè interconnessione di due o più reti generiche.

Internet è una internetwork basata sul TCP/IP.

Subnet (sottorete) insieme dei router e delle linee trasmissive.

Rete (network) è l’insieme degli host più le subnet.

Internetwork è l’insieme di più reti collegate per mezzo di gateway, con tecnologie differenti.

16

ARCHITETTURA CLIENT-SERVER.

17

1. PrefazioneUn modello cosiddetto client-server, è composto da minimo due processi che interagiscono tra loro sulla stessa macchina, o più realisticamente su macchine differenti, legate tra loro da una dipendenza specifica, ovvero un’applicazione client avrà il compito di richiedere un servizio, un’informazione, di far compiere un’azione all’applicazione server, e l’applicazione server avrà il compito di risolvere la richiesta dell’applicazione client.

SERVER CLIENT

RESPONSO

RICHIESTA

Figura 12 Modello Client Server

Quello rappresentato in figura è un tipico scenario di un pc client che fa una “richiesta” ad un pc server, il pc server elabora la richiesta e invia al client il suo “responso”.Su una macchina possono convivere più processi e quindi al tempo stesso posso avere diversi processi che comunicano o tra loro e/o più processi che comunicano con altri processi presenti su più macchine differenti, affinché la comunicazione tra i vari processi avvenga in maniera corretta, si deve introdurre il concetto di porta che è nient’altro che un punto in comune che ha il processo server e quello client. Il server mette a disposizione determinati servizi sempre sulle stesse porte, sono servizi cosiddetti standard ed il numero della porta è sempre lo stesso. Ad esempio se un client richiede un servizio di Telnet ad un server (alias numerico di un servizio), esso lo richiederà alla porta 23, se richiederà un servizio http esso lo farà sulla porta 80.

18

2. Socket.Una socket può essere definito come il punto finale di comunicazione tra i due processi ed è individuata da i seguenti parametri, la coppia indirizzo-IP porta, e il protocollo usato per la comunicazione. Spesso il concetto di socket è confuso ed allineato a quello di porta. La porta identifica un servizio, una socket è un punto di comunicazione tra i processi che utilizzano una rete o i protocolli di rete.

Figura 13 Connessione Cleint-ServerNella figura precedente vediamo schematicamente ed in maniera astratta, come due processi uno client e uno server, residenti su macchine differenti, comunichino ed interagiscono tra loro tramite un punto di contatto, la socket.

19

3. Comunicazione connection-oriented.Una comunicazione connetion-oriented come ad esempio è una comunicazione TCP/IP, si basa sul concetto di connessione, due host per eseguire uno scambio di dati devono prima compiere entrambi una sequenza d’azioni.

Figura 14 Stati connessione Client Server

Server e client devono da prima creare una socket, il server rimarrà poi in uno stato di Listen, ovvero sarà in attesa che qualcuno richieda una connessione per il servizio che lui offre, il client eseguirà una Connect ovvero una richiesta di connessione al server, il server esaminerà la richiesta ed eventualmente la accetterà Accept, dopodiché inizierà uno scambio di informazioni tramite Send e Receive alternate tra client e server, fino a che qualcuno non chiederà la disconnessione, disconnect. I passaggi qui elencati sono le primitive normalmente utilizzate per una trasmissione trasmissione TCP/IP connection oriented, tale schema prescinde dal tipo di piattaforma software utilizzata.

20

4. Comunicazione connectionless.Una comunicazione connectionless è molto semplice, ed è composto dalla creazione della socket e l’invio del pacchetto da trasmettere. Sul pacchetto trasmesso, non si ha alcuna garanzia che esso sia effettivamente arrivato a destinazione, se fossero spediti più pacchetti in sequenza non è detto che arrivino al destinatario nella stessa sequenza, questo perché possono compiere percorsi differenti all’interno della rete. L’unico vantaggio di questo tipo di comunicazione è la sua velocità.

5. Modello Client-Server a tre livelli.Il modello client-server rappresentato in precedenza è un modello a due livelli, ovvero sono presenti un computer client ed un computer server, tale modello pur avendo dei vantaggi, potenza di elaborazione decentralizzata, ha anche i sui svantaggi, costi di gestione elevati per i client i quali dovranno continuamente avere un software aggiornato per la connessione ai programmi che girano sul server, e client sempre più costosi per far girare i programmi.

Il modello client-server a due livelli è modificato ed è inserito un nuovo livello, avremo quindi:

Un o più client economico in cui le funzioni elementari sono quelle di permettere una connessione in rete e di gestire un’interfaccia grafica.

Un o più application server qui risiederanno i software per la connessione in rete e per l’interrogazione dei database.

Uno o più database server con funzioni per la gestione dei dati.

Figura 15 Client Server a tre stati.

La più tipica delle applicazioni a tre livelli client-server è rappresenta da:1 Client con browser esempio con Nescape o MS Internet Explorer.2 Server Web con Apache o IIS di MS che fornisce un servizio WWW:3 Server con ORACLE o MySQL per la gestione e archiviazione dei dati.

21

RETI TCP/IP.

1. Prefazione.

Al contrario dell’OSI/ISO che è un modello, TCP/IP (anche conosciuta come Internet Protocol Suite o TCP/IP reference model) è un’architettura vera e propria di rete e deve il suo nome ai due protocolli TCP (Transmission Control Protocol) e IP (Internet Protocol), nata per l’interconnessione di molteplici reti. TCP e IP non sono altro che dei protocolli di comunicazione che a sua volta possono includere applicazioni e altri protocolli.

Figura 16 TCP/IP

Applicazione. E’ il livello che mette a disposizione all’utente finale che utilizza la rete alcuni servizi tra i più disparati possono ad esempio avere:Telnet: terminale in remoto; FTP (File Transfer Protocol) trasferimento di file tra vari hosts in remoto; SMTP (Simple Mail Transfer Protocol) e POP (Post Office Protocol): server di

posta elettronica. DNS (Domain Name Service): corrispondenza tra IP numerici e nomi di dominio

(es. 123.10.34 = pippo.it) HTTP (HyperText Transfer Protocol): protocollo base del mondo WEB Word Wide

Web.

Trasporto. In questo livello sono implementati i protocolli TCP (Transmission Control Protocol e UDP (User Datagram Protocol), che si occupano di suddividere i dati in DATAGRAM e ricomporli all’arrivo. TCP (Transmission Control Protocol): è un protocollo connesso (comunicazione:

connection oriented) ed affidabile, tutti i pacchetti in partenza arrivano e nella sequenza corretta. Il TCP è in grado di verificare se tutti i pacchetti sono giunti a destinazione, ed è in grado di richiedere l’invio d’eventuali pacchetti perduti o errati.

UDP (User Datagram Protocol): è un protocollo non connesso (comunicazione: connectionless) e non affidabile, i pacchetti partiti possono non arrivare a destinazione e/o arrivare in ordine diverso da come sono partiti.

In questo livello sono introdotti anche i cosiddetti numeri di porta, le porte servono per identificare i servizi richiesti o disponibili al livello APPLICAZIONI. Un server offre un determinato servizio su una determinata porta, ovvero il server rimane in attesa di una richiesta da parte di un client su una determinata porta che contraddistingue il servizio, se il server accetta la richiesta dal client, il server destinerà una delle sue porte libere alla connessione con quel determinato client.

Rete .Questo è forse il livello più importante dell’architettura TCP/IP (ammesso che si possa parlare d’importanza di un livello rispetto ad un altro) e permette ad un singolo host di far viaggiare le informazioni attraverso la rete da un host A ad un host B facendole magari transitare tra più hosts. Le informazioni, i dati che viaggiano attraverso la rete sono inviati, sottoforma di “pacchetti”, in altre parole i dati possono essere frammentanti e spediti in maniera separata. La frammentazione in “pacchetti” si rende necessaria per i seguenti motivi:Si impedisce ad un singolo utente, di tenere occupata la rete per un per un tempo molto lungo qualora dovesse trasmettere grandi quantità di dati.La rilevazione e la correzione degli errori è effettuata per ogni singolo pacchetto, questo fa sì che in caso d’errore di un errore in un singolo pacchetto, si possa richiedere la ritrasmissione solo del pacchetto giunto a destinazione con un errore e non di tutto il messaggio originario.Connettere reti con diverse dimensioni dei blocchi dati.I pacchetti utilizzati in questo livello sono denominati DATAGRAM e contengono informazioni legate ai soli indirizzi IP dei singoli hosts, in questo livello è aggiunta un’intestazione con gli indirizzi di mittente e destinatario. Questo modulo o protocollo IP prende le decisioni per l’instradamento dei vari pacchetti IP attraverso la rete. Per fare ciò è utilizzata la tabella di route che è definita dall’amministratore di rete. L’utilizzo del doppio sistema indirizzo IP e indirizzo di scheda è necessario poiché un instradamento su indirizzi IP è più veloce ed efficiente, le reti TCP/IP non si basano solo su reti ethernet ma anche ad esempio su reti seriali, per evitare che la sostituzione di una scheda richieda la riconfigurazione della rete, se non vi fossero questi problemi l’indirizzo della scheda sarebbe già sufficiente.

Collegamento dei dati (DATA-LINK). In questo livello i dati provenienti dal livello IP sono “manipolati” per essere inviati sul supporto fisico, e viceversa i dati provenienti dal supporto fisico sono “manipolati” in maniera inversa per essere trasferiti al livello superiore IP. Nell’architettura TCP/IP non sono definiti protocolli per questo livello, questo semplicemente perché i protocolli utilizzati in questo livello sono condizionati dal tipo di supporto fisico che avremo al livello sottostante e dalla tipologia della rete, se punto-punto o di tipo broadcast. Ad esempio in una rete broadcast (Ethernet o TokenRing) utilizzi schede di rete avremo bisogno del protocollo ARP,nelle reti punto-punto si utilizzerà invece il protocollo SLIP (Serial line IP) o il PPP (Point to Point Protocol).

Fisico. Per la connessione di due o più PC è necessaria una connessione e per avere una connessione è necessario avere delle interfacce di comunicazione e un supporto fisico (cavo o etere). Nelle reti locali generalmente si utilizzano modem o schede Ethernet e dei semplici cavi.

2. IP-PROTOCOL.

2.1. Prefazione.Nei paragrafi seguenti è trattato il protocollo IPv4, mentre nell’ultimo paragrafo è fornita una introduzione all’IPv6.Ogni computer e ogni periferica presente in una rete TCP/IP deve essere univocamente identificato. Un computer che ha più schede di rete, come ad esempio nel caso dei router, ciascuna avrà un proprio indirizzo, un cosiddetto IP address. Per far ciò è assegnato ad ogni host un numero composto di 32 bit. Questo è scritto nella cosiddetta forma dotted decimal notation :

a.b.c.d (ad esempio: 10.100.22.35)

ciascuno dei quattro numeri a b c d può essere compreso tra 0 e 255. Un IP address identifica nella fattispecie un ID di host e un ID di rete o identificare un ID di host ( <indirizzo IP> = < IDnet > + < IDHost> ) , un ID di sottorete ( subnet ) e un ID di rete ( network ) ( <indirizzo IP> = < IDsubnet > + < IDnet > + < IDHost> ).Un ID di host può identificare un server, una workstation, un router collegata alla rete. Un ID di rete identifica una rete e deve essere unico all’interno del sistema delle reti. Va fatto notare che può anche non esserci corrispondenza tra una rete fisica ( cioè l’insieme dei cavi delle schede degli apparati) e l’indirizzo di una rete, infatti quello che qui indichiamo con ID di rete identifica un indirizzo di rete logico,un’astrazione organizzativa delle risorse non una risorsa fisica. Molto spesso su una rete fisica convivono più reti logiche , cosiddette multinetting ,ognuna contraddistinta da un ID logico, in reti così organizzate esistono delle funzionalità per garantire la visibilità e lo scambio di dati tra host appartenenti a reti ( funzionalità di forwarding )

Nota.Ad una singola interfaccia di rete possono essere assegnati più indirizzi IP ( ad esempio è possibile creare degli alias per un IP address), in questo un interfaccia così configurata prende il nome di multi-homed.

Gli indirizzi delle reti si suddividono in cinque grandi classi, sa suddivisione seguente è anche denominata Class Full, in quanto sono utilizzati tutti gli IP a disposizione.

ROUTER

192.192.100.14 192.192.100.15 192.192.100.12

SUBNET CLASSECID-RETE

192.192.192.

ID-RETE192.192.100

192.192.192.10 192.192.192.12 192.192.192.14

ip-router

192.192.192.254

ip-router192.192.100.

254

Figura 17 Rete

2.2. Classi di reti.

Classe A. (IP da 1.b.c.d a 126.b.c.d)Il numero a deve essere compreso tra 1 e 126 e identifica la rete i numeri b, c, d individuano il computer. Le reti di classe A sono le più estese e se ne deduce che siano 126.

Classe B. (IP da 128.1.c.d a 191.254.c.d)In questa classe i numeri a e b individuano la rete e devono assumere i seguenti valori: a tra 128 e 191 b fra 1 e 254, i computer della rete sono identificati dai numeri c e d.

Classe C. (IP da 192.0.1.c a 223.255.254.d) La rete è individuata da a compreso tra 192 e 223, b fra 1 e 254, c fra 1 e 254 e i computer identificati da d.

a.b.c.d

Classe Valori ID rete ID host N°reti N°host Netmask

A 1-126 a b.c.d 126 16.777.214 255.0.0.0B 128-191 a.b c.d 16384 65.534 255.255.0.0C 192-223 a.b.c d 2097151 254 255.255.255.0

Figura 18 Schema bit classi IP

Classe D ( IP 224.0.0.0 a...)Gli indirizzi di classe D hanno i primi tre bit a uno e il quarto a zero ed è dedicata al multicast address o indirizzo di gruppo.1110xxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx.

Classe E ( IP 240.0.0.0 a … )Gli indirizzi di classe E hanno i primi quattro bit a uno e il quinto a zero. Si tratta di una classe destinata ad usi futuri.11110xxx.xxxxxxxx.xxxxxxxx.xxxxxxxx.

3. Subnetting.Il termine subnetting indica la suddivisone di una rete logica in più sottoreti o subnet. In sostanza la suddivisone di una rete i una sottorete è basata sugli stessi principi della suddivisone in classi della rete, ovvero vi è un certo numero di bits che identificano l’host, un certo numero di bits che identificano la sottorete ed un certo numero di bits sono indicheranno la rete ( o classe di apparteneza ). L’indirizzo IP apparirà suddiviso come prima accennato:

<indirizzo IP> = < IDnet > + < IDsubnet > + < IDHost>

Se si considera una suddivisione degli indirizzi IP secondo le classi prima elencate, si ha che una parte di bits dedicati agli host sono ora utilizzati per indicare la sottorete sono così delineate delle Class Less.Nel caso di ripartizionamento di una rete di tipo Class Full, è necessario indicare anche la subnet mask per il calcolo dell’indirizzo di rete ( anzi di sottorete ) di appartenenza di un host. In quanto la netmask è ora in realtà subnetmask ( i due termini possono indicare lo stesso indirizzo ma non sempre ). Il meccanismo per calcolare la subnetmask è analogo a quello per calcolare la netmask,ovvero si sostituisce il numero 1 ai numeri dell’indirizzo IP della rete e della sottorete e il numero 0 ai rimanenti numeri dell’indirizzo del host computer.Il procedimento di suddivisione di una rete di Class Full in sottoreti è motivato dal fatto che ad esempio si voglia separare gli host dei vari reparti di una stessa azienda in maniera logica o per limitare il traffico di broadcast.

4. Indirizzi riservati e/o particolari.

4.1. Indirizzo unicast.Un indirizzo unicast è il più semplice degli indirizzi, identifica una interfaccia logica ( un host ), c’è una corrispondenza uno ad uno un indirizzo contraddistingue una interfaccia.

4.2. Indirizzo di broadcast.

Un indirizzo di broadcast è un indirizzo che consente di inviare un messaggio a tutti gli host connessi ad una rete o sottorete, tale indirizzo è composto da una sequenza più o meno lunga di bit ad uno, ad esempio :

255.255.255.255 indirizzo di broadcast sulla rete, indicato anche come limited o local broadcast.

Network broadcast:

a.255.255.255 indirizzo di broadcast per una rete di classe A a prenderà il valore identificativo della rete.a.b.255.255 indirizzo di broadcast per una rete di classe B a b prenderanno i valori identificativi della rete.a.b.c.255 indirizzo di broadcast per una rete di classe C a b c prenderanno i valori identificativi della rete

Va sottolineato che lo scambio dei messaggi broadcast può essere effettuato solo tra host appartenenti alla stessa rete cioè che hanno medesimo ID di rete.E’ un indirizzo di tipo uno a tutti, un unico indirizzo IP contraddistingue tutti le interfacce di una rete, è utilizzato solo come indirizzo destinazione.

4.3. Indirizzo multicast.Identifica più host ma non tutti di una rete, è un indirizzo di tipo uno a molti.

4.4. Indirizzo di loopbackL’indirizzo di loopback 127.0.0.1 è un particolare indirizzo che viene utilizzato per identificare il localhost, cioè il computer stesso , l’indirizzo 127.0.0.0 è un indirizzo di rete immaginaria interna al computer stesso. Viene utilizzato per provare le applicazioni che utilizzano la rete senza disturbare la rete stessa, un pacchetto eventualmente spedito da una applicazione viene considerato come se fosse entrante all’host e non viene spedito sulla rete.

4.5. Indirizzo 0.0.0.0.E’ un indirizzo utilizzato per alcuni scopi particolari, ad esempio per richiedere un indirizzo IP ad un server DHCP in fase di start up, al boot della macchina una scheda di rete non ha un IP address per default ha 0.0.0.0 che identifica “un generico nodo su questa generica rete”.

0.0.0.0 E’ l’indirizzo predefinito per l’instradamento dei pacchetti, di default route

4.6. Indirizzi riservati alle subnet.Se si ha la necessità di collegare la propria rete ad Internet si dovrà richiedere agli organi competenti un indirizzo IP per ogni computer connesso. Se non si ha la necessità di collegare direttamente ad Internet ogni Pc si possono utilizzare per le proprie reti i seguenti indirizzi:classe A: da 10.0.0.0 a 10.255.255.255classe B: da 172.16.0.0 a 172.31.255.255classe C: da 192.168.0.0 a 192.168.255.255.

E’ obbligatorio utilizzare i sopraindicati indirizzi qualora si voglia collegare la propria rete ad Internet tramite un firewall di protezione.

4.7. Indirizzo di Network mask.La network mask è un indirizzo utilizzato dal software per calcolare l’identificativo di rete di un host a partire dal su indirizzo IP.L’indirizzo di rete di una qualunque classe in viene individuato con una maschera di rete ( netmask o subnetmask ) ottenuta: sostituendo il numero 1 ai numeri dell’indirizzo IP della rete e sostituendo il numero 0 ai rimanenti numeri dell’indirizzo del computer. Ad esempio la netmask 255.255.255.0 fa riferimento ad una rete di classe C.

5. Header IP versione 4.Un generico pacchetto IP è costituito da una parte di dati e da una testata o header, che ha una parte opzionale di lunghezza variabile e una parte fissa di 20 byte.

Figura 19 Header IPv4

Significato dei vari campi dell’header.

Nota.In sistemi operativi like-Unix è possibile impostare un indirizzo IP ad una interfaccia senza specificare una netmask, è così utilizzata quella di default in base alla classe di appartenenza dell’indirizzo. In sisteme Windows è obbligatorio inserirei la netmask ( è un campo che viene identificato come subnetmask).

Campo SpiegazioneVersione Versione del protocollo (attualmente è la numero 4)IHL Lunghezza header (min.5 max. 15)Servizio Tipo di servizio (caratterizza velocità e affidabilità richieste). Questo campo è sottodiviso in 5 sottocampi:

Precedence è un valore da 0 a 7 che stabilisce la priorità con il quale un pacchetto deve essere consegnato a destinazione, teoricamente un pacchetto con alta priorità dovrebbe avere una precedenza maggiore rispetto ad uno con priorità più bassa. Nel trasporto di dati video e audio generalmente è utilizzato altrimenti è impostato a 0,Delay, Throughput, Reliability, Const sono utilizzati quando esistono alternative di percorso in fase di routing per raggiungere un host e specificano la classe di servizio.Bits 0-2: Precedence. 111 - Network Control 110 - Internetwork Control 101 - CRITIC/ECP 100 - Flash Override 011 - Flash 010 - Immediate 001 - Priority 000 – Routine

Bit 3: 0 = Normal Delay, 1 = Low Delay.Bits 4: 0 = Normal Throughput, 1 = High Throughput.Bits 5: 0 = Normal Relibility, 1 = High Relibility.Bit 6-7: Reserved for Future Use.

Precedence

Lunghezza-Totale Lunghezza del pacchetto max 65536Identificativo Numero che identifica i frammenti di uno stesso pacchetto.FLAGS Flags di controllo.

Bit 0: riservato, deve essere 0Bit 1: (DF Don't Fragment)0 = Pacchetto frammentabile,1 = Pacchetto non frammentabile,

Bit 2: (MF More Fragments)0 = Ultimo frammento del pacchetto1 = Esistono altri frammenti del pacchetto.

0 1 2 +---+---+---+ | | D | M | | 0 | F | F | +---+---+---+

Offset-del-Frammento Indice frammento del pacchetto

Contatore o TTL In origine era utilizzato come contatore che veniva decrementato in funzione del tempo, quando era zero il pacchetto è scartato. Attualmente è utilizzato in maniera analoga è inizializzato a 255 e decrementato ad ogni hop ovvero ad ogni transito su un router, quando raggiunge il valore 0 il pacchetto è scartato. Questo meccanismo è utilizzato affinché un pacchetto non incorra in un giro di loop sulla rete. Questo campo è anche denominato TTL time to live.

Protocollo Codice del protocollo di livello di trasporto.Nella tabella di seguito sono elencati i valori corrispondenti ai protocolli più comuni:

Valore Protocollo.0 Riservato IPV61 ICMP2 IGMP4 IP6 TCP17 UDP

Checksum-Testata Viene calcolato ad ogni hop (punti di passaggio, ovvero ogni router passato dopo la LAN locale è un hop che è aggiunto) nel modo seguente:si sommano (considerando il checksum di partenza a zero) in complemento a uno, le parole a 16 bit dello header.si complementa a uno il risultato

Indirizzo-Mittente Indirizzo IP mittenteIndirizzo-Destinatario Indirizzo IP destinatarioOpzioni Tipi di opzioni:

Securitystrict source routing (routing da intraprendere)loose source routing (router da non mancare )record route (ogni router attraversato aggiunge il proprio indirizzo)Timestamp

Padding E’ utilizzato per allineare ai 32 bit la testata dell’header IP. E’ generalmente composta da zeri.

6. Routing IP.Le reti TCP/IP sono collegate tra loro attraverso router ovvero dispositivi che trasferiscono i pacchetti IP attraverso le reti. Esiste in ogni router una tabella (tabella di route), dove vengono memorizzate le informazioni di : numero di rete IP, flag di indirizzamento diretto/indiretto, indirizzo IP del router e numero di interfaccia. Tali informazioni vengono utilizzate dal protocollo IP per ogni pacchetto in uscita, servono per prendere le decisioni su come instradare i pacchetti nella rete.E’ anche memorizzato in tale tabella l’indirizzo di un default router utilizzato per inviare i pacchetti destinati a reti sconosciute.Tale tabella è definita dall’amministratore di rete e mantenuta da uno degli algoritmi di routing adottati

ROUTER A

192.192.100.14 192.192.100.15 192.192.100.12

ID-RETE192.192.192.

ID-RETE192.192.100

192.192.192.10 192.192.192.12 192.192.192.14

192.192.300.14 192.192.300.15 192.192.300.12

ID-RETE192.192.300

ROUTER B

ip router 192.192.100.254

ip router 192.192.300.254

I ROUTER A e Bcostrituiscono una sottorete

ip router 192.192.192.254

RETI-SOTTORETI

Figura 20 Routing

Un pacchetto in partenza da un host viene corredato, dell’indirizzo IP di origine e di quello di destinazione, quest’ultimo è confrontato con la tabella di route memorizzata sul router di appartenenza del host che ha inviato il pacchetto e ci si può trovare davanti a una delle tre alternative:Il pacchetto viene scartatoIl pacchetto è trasferito ad un livello superiore a quello di IPIl pacchetto è instradato in una delle reti collegate.

La ricerca nella tabella di route avviene nei seguenti passi: Si cerca una corrispondenza tra indirizzo destinazione e indirizzi

memorizzati. Si ricava l’indirizzo di sottorete dell’host e si cerca una eventuale

corrispondenza con l’indirizzo di sottorete. Si ricava l’indirizzo di rete dell’host e si cerca una eventuale

corrispondenza con l’indirizzo di rete. Si utilizza il default route. Si scarta il pacchetto.

6.1. Instradamento diretto.

192.192.100.14 192.192.100.15 192.192.100.10ROUTER A

192.192.100.12

rete Topolinia192.192.100....

host -pluto host -pippo

Figura 21 Routing Instradamento diretto

Supponiamo di avere una rete con indirizzo di rete 192.192.100 e di nome Topolinia e una serie di host appartenenti a tale rete e ammettiamo che dall’host con indirizzo IP 192.192.199.14 di nome Pluto si voglia inviare un messaggio all’host di nome pippo con indirizzo 192.192.100.12.La nostra tabella di Route sarà più o meno la seguente:

Rete Flag diretto/indiretto Router Numero interfacciaTopolinia 192.192.000 Diretto <blank> 1

Nel momento in cui Pluto spedisce un pacchetto esso viene esaminato dal livello IP che interroga la tabella di route, essendo il pacchetto destinato a pippo si ricerca a partire dall’idirizzo IP di pippo l’indirizzo di rete di appartenenza, trovato quest’ultimo si vede se esiste una corrispondenza nella tabella di route, come nel nostro caso e si ricavano delle informazioni aggiuntive cioè che il computer destinazione appartiene alla nostra stessa rete e quindi può essere raggiunto con un instradamento diretto. Il pacchetto viene semplicemente spedito sulla rete (in questo caso si ha una sola interfaccia)

6.2. Instradamento indiretto. Nell’instradamento indiretto le cose si complicano un poco. Supponiamo di avere una situazione come quella in figura seguente.

192.192.100.14 192.192.100.15 192.192.100.10ROUTER A

192.192.100.12

rete Topolinia192.192.100....

host -pluto host -pippo

192.192.200.14 192.192.200.15 192.192.200.10 192.192.200.12

rete Paperopoli192.192.200....

host -paperino

host -paperoga

Figura 22 Routing Instradamento indiretto

Avremmo che le tabelle di route per un qualsiasi host della rete Topolinia dovrebbero essere:

Rete Flag diretto/indiretto Router Numero interfacciaTopolinia 192.192.100 Diretto <blank> 1Paperopoli192.192.200

Indiretto Router A192.192.100.254

1

Per la rete Paperopoli:Rete Flag diretto/indiretto Router Numero interfaccia

Topolinia 192.192.100 Indiretto Router A192.192.200.254

1

Paperopoli192.192.200

Diretto <blank> 1

Per il router A:Rete Flag diretto/indiretto Router Numero interfaccia

Topolinia 192.192.100 Diretto <blank> 1Paperopoli192.192.200

Diretto <blank> 2

3

Si immagini che il computer Pluto voglia inviare dei dati al computer Paperoga. Nel momento in cui Pluto spedisce il pacchetto, il protocollo IP esamina la sua tabella di route e ricerca l’indirizzo di rete di Paperoga, ovvero l’indirizzo della rete Paperopoli. Nella tabella di route Pluto effettivamente trova l’indirizzo della rete Paperopoli e capisce che per instradare quel pacchetto fino a Paperoga deve utilizzare il suo router A, non può cioè inviare direttamente nella rete di apparteneza quel pacchetto. Il pacchetto inviato da Pluto arriva così al router A che esamina a sua volta esamina l’indirizzo di destinazione, estrae l’indirizzo di rete del destinatario, consulta la sua

tabella di route trova una corrispondenza e rinvia il pacchetto arrivato sulla rete Paperopoli che è connessa all’interfaccia numero 2.

7. IPv6.

7.1. Ipv6 prefazione.IPv6 è chiaramente la naturale evoluzione del protocollo IPv4, l’evoluzione è stata principalmente necessaria per sopperire alla scarsità di indirizzi IP a cui ormai si sta andando incontro.

Figura 23 Header IPv6

Campo SpiegazioneVer 4-bits versione IPV6Traffic Class 8-bits Simile al tipo di servizio dell’IPV4Flow Label 20-bits è utilizzato per indicare ai router tra

destinazione e origine un particolare trattamento dei pacchetti (?)

PayLoad Length 16-bits specifica la lunghezza del pacchettoNextHeader 8-bits specifica l’header successivoHop Limit 8-bits sostituisce il vecchio TTL, è

decrementato ad ogni hop.Source Address 16-bytes indirizzo origineDestination Address 16-bytes indirizzo destinazione

Il formato del pacchetto IPV6 ha un minor numero di campi nella testata, questo comporta maggiori prestazioni ed efficienza di routing è stata anche eliminata la possibilità di frammentare un pacchetto in transito e per migliorare la gestione delle opzioni si è pensato ad un header estensibile.

7.2 Formato indirizzi.

Gli indirizzi IP in formato IPv6 sono formati da ben 128 bit ( e sono assegnati direttamente alle interfacce), contrariamente agli indirizzi IPv4 che sono di 32 bit. Questo significa avere a disposizione 2^128 indirizzi, qualcosa come

340.282.366.920.938.463.463.374.607.431.768.211.456 indirizzi IPv6, un numero che attualmente appare spropositato. Se tale numero è rapportato alla superfice terrestre avremo a disposizione per ogni metro quadro, qualcosa come 655.570.793.348.866.943.898.599 indirizzi.Oltre che per l’aumento degli indirizzi IP l’IPv6 introduce maggiore sicurezza ai dati riservati e si ha un miglioramento del routinq, questo perché l’IPv6 rispetto all’IPv4 ha un header composto di 7 invece che 13 campi e sono state implementate funzioni di autenticazione basate sulla crittografia. La sicurezza è garantita già al livello 3 dell’architettura TCP/IP ovvero al livello IP, dove sono introdotti un Encrypted Security Payload e un Autenticcation Header ovvero campi concordati tra mittente e destinatario per implementare chiave crittografica e algoritmi di risoluzione.

Il formato degli indirizzi segue delle regole leggermente più complicate e differenti rispetto al precedente, il formato è simile al seguente:

x:x:x:x:x:x:x:x

Ogni x è un campo di 16 bits in notazione esadecimale, i valori possono essere scritti indipendentemente con lettere minuscole e maiuscole e gli zero, esempio:

3fEe:12e4:1254:1aFf:1e45:1234:32a1:23a1

ovvero 8 gruppi di 16 bit l’uno ( 16*8 = 128 ). Se nell’indirizzo compare uno 0 come cifra più significativa di un gruppo questa può essere omessa come nel seguente caso: 3fEe:12e0:1254:Ff:1e45:1234::23a1

è in realtà come se rappresentassimo:

3fEe:12e0:1254:00Ff:1e45:1234:0000:23a1

chiaramente bisogna fare particolare attenzione nel rappresentare gli eventuali zeri, gli seri possono essere omessi una sola volta, non è ammessa quindi una notazione così composta:3fEe:12e0::00Ff:1e45:1234::23a1 (ERRATA)

Contrariamente alla netmask per individuare la subnet nell’IPv6 è introdotto il concetto di prefisso ed è così rappresentato:

3fEe:12e0:1254:Ff:1e45:1234::23a1/90

il /90 sta ad indicare che i primi 90 bit rappresentano la subnet e i rimanenti 38 il singolo host ( 128 – 90 = 38 ). Caso limite è se utilizziamo una rappresentazione di questo tipo:

3fEe:12e0:1254:Ff:1e45:1234::23a1/127

abbiamo cosi solamente 2 host, ma una miriade di subnet(!).

Gli indirizzi sono suddivisi, come per il precedente standard, per vari scopi. La divisione è effettuata attraverso un prefisso FORMAT PREFIX che riguarda i bit più significativi. In base alla divisione si individuano tre macro categorie di indirizzi: Unicast. Multicast. Anycast.

Va sottolineato che gli indirizzi IPv6 sono assegnati alle interfacce, questo significa che un indirizzo IPV6 può identificare una singola interfaccia come nel caso degli indirizzi UNICAST o a gruppi di interfacce come nel caso di indirizzi ANYCAST e MULTICAST.

7.3 Indirizzi Unicast.

L’indirizzo è assegnato ad una singola interfaccia i pacchetti inviati ad un indirizzo di questo tipo arriveranno solo all’interfaccia associata.Gli indirizzi di tipo Unicast, sono divisi in due parti da 64 bit ciascuna, i primi 64 bit identificano il prefisso di rete e i rimanenti individuano l’host. Si possono individuare le seguenti sottocategorie: Unspecified. Indica che un interfaccia di rete è priva di indirizzo, indicato

nella forma :: è utilizzato ad esempio per ottenere un indirizzo IP dal server DHCP, e come nella versione IPv4 indica il default route.

Loopback. Indica il localhost, indicato nella forma: ::1 Scoped. E’ stato introdotto nella versione IPv6 e identifica un ambito ( =

scope) Link-local. E’ utilizzato per la comunicazione tra nodi vicini per uno

stesso collegamento, ad esempio due host collegati senza l’intervento di un router.Un indirizzo del genere è automaticamente configurato su ogni host in base al MAC.

Il formato del FP è 1111 1110 10 e di conseguenza l’indirizzo sarà: FE80:0:0:0: < mac address> o FE80::/64.Tali indirizzi sono utilizzati per implementare un’altra importantissima caratteristica dell’IPv6, ovvero l’autoconfigurazione cioè la capacità di un host di ottenere un indirizzo internet. Se nell’host è pesente una scheda ethernet automaticamente è garantito un indirizzo univoco locale con la seguente forma: FE80::xxxx:xxxx:xxxx dove le x rappresentano i 48 bit dell’indirizzo MAC della scheda. Per ottenere l’indirizzo globale da utilizzare su internet si avrà una:

Autoconfigurazione statefull Autoconfigurazione stateless

Site-local. Sono utilizzati per le intranet private, gli indirizzi locali al sito non possono essere raggiunti al di fuori del sito. La differenza con i link-local sta nel fatto che non vengono assegnanti in automatico ma devono essere configurati.

Il formato di tali indirizzi è: FEC0::/48 ( l’FP 1111 1110 11), FEC0:0:0:<subnet id>:<interface id>, con la subnet-id è possibile identificare fino a 65536 subnet per ogni orgnanizzazione.

Aggregatale Global. Corrispondono in linea di massima agli indirizzi Ip pubblici. Tali indirizzi sono stai creati con lo scopo di creare una infrastruttura di routing più efficiente di quella attuali, come dice il nome stesso sono aggregati e organizzati in maniera gerarchica. L’FP è 001 e il formato degli indirizzi è:

ID TLA. Top Level Aggregator, è un valore stabilito dalla IANA , ne possono esistere fino a 8192, è il livello gerarchico più alto per le funzionalità di routing.

Res. Utilizzato per future espansioni. ID NLA. Next Level Aggregator, identifica il sito di un cliente.

ID SLA. Site Level Aggregator, utilizzato dale singole organizzazioni per identificare un proprio sito.

ID interfaccia, identifica una subnet specifica-

Il campo ID interfaccia indica l'interfaccia di un nodo in una subnet specifica. La dimensione del campo è 64 bit.

Indirizzi IPv6 e IPv4. Per favorire la coesistenza dei due meccanismi di indirizzamento durante la fase di transizione è stato introdotto un meccanismo di mappatura dei vecchi indirizzi IPv4 nel conesto IPv6. Indirizzo mappato. Si presenta nella forma 0:0:0:0:0:FFFF:a.b.c.d , dove

a.b.c.d. è nient’altro che un indirizzo IPv4. Un nodo (host) IPv4 è rappresentato come un host IPv6.

Indirizzi compatibile. E’ rappresentato nella forma: 0:0:0:0:0:0:a.b.c.d

7.4 Multicast.Rappresenta un’insieme di indirizzi assegnati ad un’insieme di interfacce ovvero ad un nodo di comunicazione. Un pacchetto inviato ad un indirizzo multicast arriverà quindi a tutte le interfacce del medesimo insieme, è l’equivalente dell’indirizzo di brodcast nell’IPv4. Il formato è il seguente: FF<flags><scope>::<group id>

Campo Spiegazione.FF Identifica un indirizzo

multicast.Flags 1 indica un indirizzo

temporaneo. 0 indicia un indirizzo permanente assegnato dale autorità competenti.

Scope Utilizzato per limitare l’ambito del group-id: 0 riservato 1 node-local 2 link-locale 3 (non assegnato) 4 (non assegnato) 5 site-local 6 (non assegnato) 7 (non assegnato) 8 organization-local 9 (non assegnato) A (non assegnato) B (non assegnato) C (non assegnato) D (non assegnato) E global scope F riservato

Group id Identifica il gruppo dei nodi multicast.

7.5 Anycast. Gli indirizzi sono assegnati a un gruppo di interfacce, i pacchetti inviati ad un indirizzo anycast arriveranno all’interfaccia più vicina secondo il routine, non sono distinguibili dagli indirizzi multicast.

8. TCP/UDP.

8.1. Prefazione.I protocolli TCP / UDP, sono protocolli utilizzati al livello di trasporto nell’architettura TCP/IP, e forniscono quindi il meccanismo di trasferimento dei dati. Il TCP è un protocollo cosiddetto conection oriented , ovvero garantisce la consegna dei dati inviati tra un host e un altro, si stabilisce prima una connessione tra i due host e poi inizia il trasferimento dati. L’UDP invece non garantisce che i dati siano giunti a destinazione. La scelta dell’uso di un protocollo rispetto ad un altro è da decidersi in base all’esigenza, l’UDP è più veloce e meno sicuro, il TCP è più sicuro ma più lento in quanto oltre ad occuparsi della consegna delle informazioni durante una transazione TCP è necessario eseguire tutta una serie di controlli e impostazioni sullo stato della connessione.

8.2. Indirizzamento, porte e socket.Un host connesso in rete è identificato da un indirizzo IP ( o più di uno in caso di router ) e ogni singolo host può usufruire contemporaneamente di uno o più servizi a livello application che utilizzano il TCP a livello transport, l’utilizzo del solo indirizzo IP non è sufficiente a indirizzare correttamente i dati provenienti dalla rete all’applicazione giusta. Si pensi ad esempio che sul medesimo host si stia navigando in internet e facendo un download di un file, il browser utilizzerà il protocollo http e www a livello application e il download l’FTP ma a livello di transport tutti e due utilizzeranno il TCP, come farà quindi il TCP a indirizzare correttamente i dati per il web-browser e quelli per l’FTP? Per utilizzare più servizi su una macchina si utilizzano le cosiddette porte. Le porte numerate da 0 a 65.536 corrispondono ad ogni applicazione sul server in ascolto. Le porte tra 0 e 1023 sono porte conosciute ( well-known port ) ovvero porte riservate a servizi standard predefiniti, tali porte sono assegnate dalla IANA (Internet Assigned Number Authority), di seguito vengono elencate alcune di quelle più utilizzate:

Porta Servizio Protocollo0 Riservato UDP7 Echo UDP13 DAYTIME Restituisce

data e oraUDP

20 FTP (Canale dati) TCP21 FTP (Canale controllo) TCP23 Telnet TCP25 Smtp TCP37 TIME ora UDP42 NAME Server dei nomi

hostUDP

43 WHOIS Chi è in servizio

UDP

53 DNS TCP80 http TCP110 Pop (versione 3) TCP139 Servizi NetBios UDP162 SNMP Monitor di rete UDP513 WHO Demone Remote

Who UNIXUDP

514 SYSLOG system log UDP525 TIMED demone Time UDP

Nel momento in cui un host mittente voglia inviare delle informazioni ad un host di destinazione riguardante un particolare servizio, l’host origine richiederà una connessione specificando indirizzo IP e porta del servizio, la combinazione indirizzo IP, protocollo di trasporto e numero della porta prende il nome di indirizzo di socket o più brevemente solo socket, una socket può essere considerata ne più ne meno che un punto di accesso all’host.

8.3. Formato pacchetto TCP.Un pacchetto TPC è composto, similmente a quello IP, da una parte fissa detta testata ( header ) fissa di 20 byte e una parte opzionale, più la parte di dati. Il segmento del TCP non può essere più grande di 65536 byte.Il formato di un segmento TCP è il seguente:

Figura 24 Formato pacchetto TCP

Campo SpiegazioneSource port, destination port Sono le porte utilizzate nella connessioneSequence number Numero d’ordine del primo byte contenuto nel campo datiAck number Numero d’ordine del prossimo byte che il ricevente si aspetta

dal mittente. ( Inviato solo se è settato ACK ).Data offset E’ un numero ( parola) di 32 bits che indica dove inizia l’area

dei dati.URG 1 se il flag urgent pointer è usato. Urgent Pointer field

significant

ACK 1 se l’ACK è corretto. Acknowledgment field significant.

PSH Se 1 indentifica dati urgenti (pushed data), il dato va onsegnat senza attendere il riempimento del buffer.

RST Se 1 è inoltrata una richiesta di reset della connessione. Reset the connection.

SYN Durante la fase di contrattazione della connessione, se SYN=1 ACK= 0 richiesta connessione SYN = 1 ACK=1 accettata la connessione. Synchronize sequence numbers

FIN Se 1 rilascia la connessioneWindows size Indica il numero di byte che devono essere spediti a partire da

quello ACK compreso.Checksum Viene calcolato ad ogni hop nel modo seguente, si sommano

(considerando il checksum di partenza a zero) in complemento a uno, le parole a 16 bit della testata e si complementa a uno il risultato.

Urgent pointer Punta ai dati urgentiOptions Uso di NAk, dimensioni dati da spedire.padding E’ utilizzato per allineare ai 32 bit la testata dell’header TCP.

E’ generalmente composta di zeri.DATA Dati da trasportare.

Nel calcolo del checksum rientra anche uno pseudoheader, che non è trasmesso ma precede concettualmente l’header:

Source e destination address Indirizzi IP del mittente e destinatarioPCTL Protocol codice numerico del protocollo ( per il TCP = 6 ).TCP segment length Numero del segmento TCP header compreso

8.4. Sessione TCP e stato della connessione.Una sessione TCP è composta da: un’attivazione di connessione, da una serie di passaggi per l’invio e la ricezione delle informazioni e il rilascio della connessione. Per compiere un trasferimento dati utilizzando il TCP è necessario, come si è detto, instaurare una connessione. L’host mittente richiede una connessione e l’host destinazione deve necessariamente accettare la richiesta se vuole instaurare una connessione, tale processo avviene i tre passaggi denominato hadshaking a tre vie di TCP.L’host mittente invia all’host destinazione un pacchetto con il flag di sincronizzazione SYN a 1 ( si richiede una sincronizzazione tra i due host),e bit di ACK a 0.L’host destinazione invia un pacchetto con SYN a 1 e ACK a 1 se accetta la connessione più ACK number che il destinatario aspetta di ricevere, oppure un RST a 1 per rifiutare la connessione.L’host mittente invia al destinatario un pacchetto di conferma che include l’ACK number che si aspetta di ricevere.Il rilascio della connessione avviene generalmente quando è finito il trasferimento dei dati, una delle due parti invia un pacchetto con il flag FIN a 1, se esso è riconfermato dall’altro host la connessione in uscita è rilasciata, di conseguenza ci sarà una richiesta di fine dall’altro host e un pacchetto di risposta per rilasciare la connessione nell’altro verso. Se un pacchetto di risposta è perso dopo un certo tempo, la connessione è rilasciata automaticamente.Lo stato e la variazione di stato di una sessione sono dati dalla sequenza d’azioni e comandi dati dall’utente. Gli stati della connessione possono essere:

Stato connessione SpiegazioneLISTEN L’host, (server) è in attesa che qualcuno richieda una connessione.SYN-SENT Nella fase iniziale è stato inviato un segmento SYN e si è in attesa di

risposta, si è inviata una richiesta di connessione.SYN-RECEIVE E’ stato ricevuto il segmento SYN-ACK in fase di creazione della

connessione e si è in attesa dell’ACK.ESTABLISHED A handshake completato indica che la connessione è attiva.FIN-WAIT Si è in attesa di un acknoledgement della richiesta di terminazione della

connessione precedente o terminazione della connessione dal pc remoto.

FIN-WAIT2 Si è in attesa della terminazione della connessione.CLOSE-WAIT In attesa di richiesta terminazione dal pc locale.CLOSING Si è in attesa dell’acknowledgement alla richiesta di terminazione da

parte dell’host remoto.LAST-ACK Rappresenta l’attesa dell’acknoledgement della richiesta di terminazione

della connessione inviata dal computer remoto.TIME-WAIT Tempo di latenza CLOSED Connessione chiusa.

8.5. Formato pacchetto UDP.Come si vede dalla figura sottostante, dove è riportata solo l’header, il pacchetto UDP è molto elementare, consta solo di 4 campi, Source port, destination port, length e checksum.

Figura 25 Formato pacchetto UDP

Nome campo SpiegazioneSource port È un campo di 16 bit, rappresenta la porta dalla quale è partito il

pacchetto sull’host mittente, è inserito nel caso in cui l’host destinatario vuole replicare.

Destination port È un campo di 16 bit, rappresenta la porta, il punto finale, di destinazione dei pacchetti sull’host destinazione.

Length È un campo di 16 bit, che contiene la lunghezza dell’header UDP e dei dati trasmessi.

Checksum È un campo di 16 bit, campo utilizzato per controllare che il pacchetto non sia danneggiato durante il trasporto, può essere disattivata.

8.6. Trasmissione UDP.Una trasmissione dati UDP, come si è detto non instaura nessuna connessione (detto conectionelss) a priori l’host mittente saprà conosce la porta e l’indirizzo IP del destinatario. Il mittente invierà un pacchetto UDP che sarà ricevuto dal destinatario che al livello IP eseguirà un parser ( un controllo ) ed estrapolerà che il pacchetto arrivato è un pacchetto UDP. In seguito prelevato il numero di porta si eseguirà una verifica se sull’host ricevente la Destination port è in ascolto, in quel caso saranno recapitati i dati al livello successivo altrimenti sarà inviato un messaggio d’errore.

8.7. Incapsulamento messaggi.

Di seguito è rappresentato uno schema riassuntivo di com’è composto un pacchetto dal livello Application fino al livello Network compreso.

Figura 26 Incapsulamento

Dal livello Application si parte con i dati, sono passati a livello transport e ci si aggiunge la testata TCP con i numeri di porta, si scende al livello network aggiungendo la testata IP.

PROTOCOLLI DATA-LINK e di CONTROLLO.

1. PrefazioneIl livello DATA-LINK è l’ultimo livello della gerarchia subito prima di quello fisico, l’implementazione dei protocolli e le funzionalità che sono implementate in questo livello, sono quindi strettamente correlate al tipo di supporto fisico utilizzato per la trasmissione e ricezione di dati, ma si individuano comunque delle caratteristiche analoghe anche per supporti differenti. Compito di questo livello è gestire il traffico di trasmissione tra sorgente e destinatario, gestire eventuali errori e disturbi di trasmissione, gestire ritardi di propagazione determinare l’inizio e la fine di ogni frame. Va ricordato che i bit sparati da questo livello sulla rete sono ricevuti dal destinatario esattamente nella stessa sequenza,questo che apparentemente può sembrare banale non lo è affatto, basti pensare ad esempio ai pacchetti inviati dal livello network che possono compiere percorsi differenti in base al routine e ricomposti nella giusta sequenza solo all’arrivo a destinazione.Di seguito sono elencati i passaggi elementari compiuti nel passaggio tra livello fisico, DATA-LINK e NETWORK. Nel momento in cui arrivano dei bit sull’interfaccia di rete di un host l’interfaccia hardware (HW) se ne accorge e li passa al corrispettivo livello datalink Software-Hardware. IL livello datalink esegue dei controlli sul frame arrivato e se è tutto coretto li passa al livello Network.I controlli sono eseguiti sia in ricezione che in trasmissione al livello datalink. In trasmissione:

il flusso di byte provenienti dal network è diviso in frame. è calcolato un apposito valore chiamato checksum e aggiunto ad ogni frame

In ricezione: Sono catturati e delimitati ciascun frame. Sono ricalcolati i checksum e controllati se corrispondono a quello

presente nel frame in caso positivo il frame è accettato.

Nel livello data-link bisogna prendere in considerazione anche un altro aspetto per quanto riguarda la trasmissione/ricezione dei dati ed è chi ha diritto a trasmettere. Nelle reti punto-punto essendo solo due gli host interessati il problema non si pone ma nelle reti broadcast la cosa è più complicata. Su un canale broadcast esistono una serie di protocolli che operano ad un sottolivello del datalink denominato sottolivello MAC (multiaccess channel) che regolano le trasmissioni, esistono due meccanismi fondamentali e sono l’allocazione dinamica e quella statica.Esistono tutta una seri di protocolli che sono utilizzati per il corretto funzionamento delle reti e sottoreti. Utilizzati da supporto per l’invio e la ricezione dei pacchetti, vedremo ad esempio l’ARP.

2. ARP.ARP acronimo di Address Resolution Protocol, non è un protocollo utilizzabile direttamente dalle applicazioni o dagli utenti finali e non è neanche un protocollo per il trasporto dei dati, è un protocollo cosiddetto di manutenzione utilizzato per ricavare l’indirizzo di scheda al livello data-link a partire da un indirizzo IP. Ogni scheda, esempio ethernet, che è utilizzata per una connessione è individuata da un indirizzo UNIVOCO (in fase di fabbricazione) rappresentato in forma esadecimale composto di una sequenza di 48 bit:

08:02:FF:2A:E6:40Quest’indirizzo è utilizzato per capire chi è il destinatario al quale devono essere inviati i dati (o pacchetti IP) . Tale indirizzo prende il nome di MAC address, qualora ci si trovi in presenza di dispositivi che non abbiano un indirizzo fisico vedi ad esempio un modem all’atto della connessione ad esso viene assegnato un indirizzo logico. Per determinare l’indirizzo Ethernet del destinatario è usata la tabella ARP (Address Resolution Protocol) con la quale si può ricavare l’indirizzo Ethernet dall’indirizzo IP.

Indirizzo IP Indirizzo Ethernet

255.0.2.3 05-05-08-ab-2c-03

195.0.125.23 08-a3-09-a0-3e-4d

10.100.0.2 A0-a4-08-09-05-05

Nella tabella ARP ( Address Resolution Protocol ) se non è presente l’indirizzo cercato è inviata sulla rete a tutti i computer una richiesta ARP contenente un indirizzo cosiddetto di broadcast. Tutti i computer in ascolto analizzano la richiesta ARP e controllano se l’indirizzo IP corrispondente nella richiesta è il proprio in caso affermativo rispondono al mittente inviando il proprio indirizzo ethernet. Va ricordato che nel caso in cui esista più di una scheda di rete esisteranno più indirizzi ethernet e di conseguenza più tabelle ARP. I computer che utilizzano il TCP/IP hanno una lista di indirizzi ethernet e ip che aggiornano periodicamente , questo fa si che non ci sia una continua interruzione sulla rete per risolvere le richieste ARP.

ARP

3. ICMP.Internet Control Message Protocol protocollo della suite TCP/IP utilizzato in una rete IP per condividere informazioni di errore e/o di stato della rete. Le informazioni vengono utilizzate poi dai protocolli di livello superiore per risolvere problemi di trasmissione di pacchetti o dagli amministratori per risolvere problemi sulla rete. I principali messaggi utilizzati da questo protocollo per esaminare lo stato della rete sono, ad esempio: echo request replay, si invia una request e si aspetta una replay per vedere se un host è presente o meno nella rete, time exceeded il contatore del pacchetto nel header IP è zero. PING

Campo SiegazioneType Tipo messaggioCode Codice dipendente dal valore typeChecksum Codice di controllo erroriIdentifier Il contenuto dipende dai campi "Type" e

"Code". In caso di messaggi di errore, ad esempio, riporta l'Header IP con i primi 64 bit del pacchetto che ha causato l’errore. Questo avviene perché protocolli TCP/IP sono soliti codificare le informazioni più importanti all'interno dei primi 64 bit.

Sequence numberAddress mask

Type Code Descrizione nota00 Echo reply.03 Destination

unreachable.03 0 Net unreachable.03 1 Host unreachable.03 2 Protocol

unreachable.03 3 Port unreachable.03 4 Fragmentation

needed and DF set.03 5 Source route failed.04 Source quench. Nelle congestioni, viene generato da un router intermedio quando questo ha esaurito lo

spazio dove accodare i messaggi in arrivo, oppure viene generato dal computer destinatario se i datagrammi stanno arrivando troppo velocemente

05 Redirect. Se viene generato da un router intermedio conterrà un indirizzo IP relativo ad un router che andrebbe contattato al posto di questo

05 0 Redirect datagrams for the network.

05 1 Redirect datagrams for the host.

05 2 Redirect datagrams for the host.

05 3 Redirect datagrams

for the type of service and host.

08 Echo. Usato per controllare se un computer è attivo. E' il messaggio che genera il comando ping

09 Router Advertisement

Con questo messaggio ICMP, i router periodicamente segnalano la loro presenza sulle reti a cui sono collegati

10 Router Solicitation Usato per forzare i router in ascolto ad identificarsi per non dover attendere i Router Advertisement periodici

11 Time exceeded. Viene generato da un router intermedio quando il campo Time To Live del datagramma è zero. Se generato dal computer destinatario indica che è scaduto il timer che controlla il riassemblamento di un datagramma, il datagramma sarà scartato

11 0 Time to live exceeded in transit.

11 1 Fragment reassemble time exceeded.

12 Parameter problem Indica che è stato incontrato un problema durante l'analisi dei paramentri dell'header13 Timestamp request Usato per misurare le prestazioni e per il debugging ma mai per sincronizzare orologi. Il

mittente salva in un campo dell'ICMP n.13 il suo time stamp. Il ricevente prepara un ICMP 14 settando altri due campi il time stamp di ricezione e di trasmissione

14 Timestamp reply In risposta all'ICMP n.1315 Information request16 Information reply17 Address Mask

requestUna richiesta broadcast che serve per scoprire la maschera subnet usata dalle macchine in rete. Usato nelle richieste Reverse-ARP, un particolare tipo di ARP usato dalle macchine che non possiedono dischi e non possono memorizzare i dati della rete tra uno spegnimento e la riaccensione. Tutti i riceventi del broadcast ICMP 17 rispondono preparando un ICMP 18 con i dati della sottorete

18 Address Mask reply In risposta all'ICMP n.17

4. IGMP.IGMP (Internet Group Membership Protocol), è un protocollo utilizzato da un Host, per gestire pacchetti multicasting. Con il termine multicasting si intende l’invio di uno stesso messaggio a più destinatari sulla rete ( vedi indirizzo multicast ). Multicastig IP è un’estensione del modello multicast utilizzato su una LAN ad una rete TCP/IP, i singoli host si scambiano datagrammi nei cui campi di destinazione sono specificati indirizzi di gruppo IP (IGMP) anziché singoli host, il datagramma IP è inviato ad un solo indirizzo ( che è l’indirizzo di gruppo ) ma è elaborato da più host. Altri aspetti da indicare per il multicasting IP sono: I gruppi possono essere di dimensione variabile e senza limiti, in quanto

l’entrare ( o l’uscire ) in un gruppo è un’operazione dinamica. Un singolo host può inviare pacchetti all’indirizzo del gruppo senza far

parte del gruppo.

Gli indirizzi multicastIP sono definiti in un intervallo della classe D da 224.0.0.0 a 239.255.255.255. I vari indirizzi e le loro funzioni sono registrati dalla IANA.

I messaggi IGMP scambiati sono i seguenti:

Tipo messaggio IGMP. Descrizione.Appartenenza al gruppo di host.

All’ingresso di un host in un gruppo, l’host invia un messaggio di appartenenza al guppo.

Interrogazione di appartenenza.

E’ utilizzato da un router che esegue un polling per individuare i membri del gruppo.

Abbandono del gruppo Inviato da un host quando lascia un gruppo.

5. SLIP.Serial Line IP utilizzato per spedire su una linea seriale i pacchetti IP, nacque per collegare via modem macchine su Internet, può supportare solo indirizzi IP statici, e non esiste controllo degli errori.

6. PPP.Point to Point Protocol, è la naturale evoluzione del protocollo SLIP, è utilizzato per connettere via modem un singolo computer a Internet, o per collegare direttamente due router. Può essere impiegato anche su architetture in cui il livello network non sia implementato tramite il protocollo IP utilizza una famiglia di protocolli (NCP Network control Protocol) per ricavare e settare opzioni differenti a livello rete. Supporta indirizzi IP dinamici, esiste un rilevamento sugli errori. Utilizza protocolli per testare, attivare e disattivare la linea LCP, Link Control Protocol.

Campo Spiegazione

Flag 7E start byte

Address FF ( era utilizzato per gestire le linee multipunto)

Control 03 indica un servizio non affidabile

Protocol Protocollo relativo al pacchetto IP, IPX…

Payload Ha una lunghezza variabile, di default 1500 byte

Checksum 2 o 4 byte per il controllo errori

Flag 7E stop byte

Tecnologie delle reti RETI-LAN.Le reti Lan sono caratterizzate da una velocità di trasmissione dati che può variare da 10Mbps a 1 Gbps ( bps bit per secondo), ed una estensione limitata al massimo a qualche chilometro. Tutti i computer presenti in reti LAN sono collegati ad un cavo denominato bus e può essere utilizzato da un solo host per volta.

6.1. Carrier Sense Multiple Access / Collision DetectionAffinché il bus venga utilizzato in maniera corretta dai vari host connessi al bus esiste un protocollo denominato CSMA/CD (Carrier Sense Multiple Access / Collision Detection) che si occupa di governare gli accessi e le trasmissioni sul canale trasmissivo, tale metodo non fissa dei tempi prestabiliti in cui un host può trasmettere ma è invece randomico. I passi compiuti da un PC che vuole trasmettere sono più o meno i seguenti:L’host che deve trasmettere, ascolta se il bus è libero, ovvero se sul mezzo trasmissivo non vi è una portante di segnale, se è così invia sul bus un messaggio con il proprio indirizzo e quello del destinatario, il messaggio è ricevuto da tutti gli host collegati al bus ma presoo in considerazione solo dal destinatario.Se il bus è occupato l’host trasmittente riprova in un secondo momento dopo un intervallo di tempo.Se si verifica una richiesta di bus in contemporanea, entrambe gli host la rilevano e tenteranno la ritrasmissione dopo un intervallo casuale.Gli standard che utilizzano questo metodo di accesso alla rete sono lo standard Ethernet e quelle definite dagli standard IEEE 802.3, è da sottolineare che gli standard definiti in IEEE802.3 sono un’evoluzione di Ethernet, sono compatibili, ma non sono la stessa cosa in quanto il formato dei messaggi è differente.Un altro metodo di accesso alla rete e quello denominato a token descritto più avanti.

6.2. Ethernet

La rete con tecnologia cosiddetta ethernet si sviluppa al livello 1 e 2 della pila OSI, al livello fisico e data-link, ogni pacchetto inviato sulla rete viene completato aggiungendovi un header in test ed un trail in coda, tale meccanismo è chiamato ethernet encapsulation. L’header contiene le informazioni relative all’indirizzo ethernet di provenienza e destinazione ( il MAC address ) e il tipo di frame utilizzato. Il Trail , contiene,come ogni informazione a livello data-link, un codice di controllo errore. L’header ethernet ha il seguente formato:

Il pacchetto in uscita ( o in entrata ) verso ( da ) il livello fisico sarà quindi così composto:

Due host possono essere collegati secondo il modello point-to-point ( punto punto) , ma in un rete come abbiamo visto, esistono molteplici host che possono essere collegati tra loro ad esempio ad anello, la ethernet è una tecnologia utilizzata soprattutto a livello di LAN (reti broadcast) ed implementa un meccanismo per colloquiare sulla rete in maniera da evitare “collisioni”, un host è in grado di spedire pacchetti sulla rete solo ed esclusivamente quando nessun altro lo sta facendo, tale meccanismo si prende il nome d CSMA/CD ( Carrier Sense Multiple Access with Collision Detection).

6.3. Standard IEEE 802. Lo standard cosiddetto IEEE 802 è alla base degli standard LAN prodotti dalla IEEE, tali standard sono diversi al livello fisico e nel sottolivello MAC ma sono compatibili a livello data-link ed ingloba: Specifiche generali 802.1 Logical Link Control, LLC, 802.2 CSMA/CD 802.3 ( evoluzione dello standard ethernet) tale

standard prevede una serie di varianti in relazione ai supporti fisici utilizzati.

Token Bus 802.4 Token Ring 802.5 DQDB 802.6

6.4. IEEE 802.3Lo standard IEEE 802.3 è attualmente il più diffuso standard per reti a bus, e deriva direttamente dallo standard Ethernet, si differenziano solamente per lo il formato dei pacchetti utilizzati.Il formato dei pacchetti IEEE 802.3 è il seguente:

Contenuto Spiegazione

Preamble Sono 7 byte tutti uguali impostati a AA ovvero , 1010.1010, producono un’onda quadra per 5 o 6 miscrosecondi se sparati sul bua a 10Mbps e sono utilizzati per sincronizzare il clock del ricevitore con quello del trasmettitore

Start Frame In byte impostao a AB 1010.1011

Source / Destination 6 byte del MAC address della scheda di rete

Length Lunghezza dei dati da 0 a 1500 byte

Dati Payload del livello superiore

Pad Se il frame è più corto di 64 byte con questo campo si porta il frame alla lunghezza di 64byte.

Checksum Bytes di controllo

Di tale standard ne esistono tutta una serie di varianti in relazione ai mezzi fisici utilizzati. 10Base5 (Thick ethernet) con le seguenti caratteristiche:

Velocità massima 10MBps; Lunghezza Bus 500 m; Numero di host collegabili 100; Bus su cavo coassiale; Connettore di tipo RG8 –RG 11

Ogni host ha una propria interfaccia di rete, scheda ethernet. E’ da notare che 10Base5 sta per: 10 è la velocità sul bus, Base baseband signal, la trasmissione avviene in banda base, 500 è la lunghezza massima del bus. Il collegamento tra host e bus avviene tramite un connettore detto vampiro , il cavo coassiale del bus non è interrotto.

10Base2 (Thin ethernet) con le seguenti caratteristiche: Velocità massima 10MBps; Lunghezza Bus 200 m; Numero di host collegabili 30; Bus su cavo coassiale; Connettore di tipo RG58

Il collegamento tra host e bus avviene mediante un connettore a T sul primo e sull’ultimo connettore a T dell’host è installato un terminatore.

10BaseT e 100BaseT (Fasth ethernet) hanno una velocità massima rispettivamente 10MBps e 100MBps, il collegamento avviene a stella, gli host sono collegati ad un hub. Il collegamento avviene tramite 2 coppie di doppini uno utilizzato per la trasmissione ed uno per la ricezione, entrambe utilizzano un connettore RJ45.

La differenza oltre che nella velocità di trasmissione sta nella qualità di schermatura dei cavi, la distanza tra host e hub per entrambe non deve superare i 100 m.

6.5. Token Ring o IEEE 802.5

La rete Token-Ring è utilizzata anch’essa in reti tipo LAN ad anello ed opera ai livelli 1 e 2 dell’OSI/ISO. Per inviare un pacchetto in una rete token-ring, l’host preleva dalla rete un pacchetto particolare detto Token (gettone) che si muove all’interno dell’anello (Ring) quando nessun host trasmette, nel momento in cui sulla rete non è presente questo pacchetto significa che un host lo ha prelevato e si accinge a trasmettere. E’ chiaro che tale tipo di tecnologia è impiegabile solo su reti ad anello, esiste una stazione ( host 9 che funge da monitor per il controllo della rete.

SD ED Delimitatori di Starting e end

AC1 byte formato da : xxxyzjjj

Xxx 3 bit per la priorità attuale Y se è impostato a 1 è un frame orfano, è impostato dal monitor a 1.

Z se è 0 è un token altrimenti è un frame

Jjj priorità richiesta

FC Distingue i frame tra quelli di controllo e quelli dati

Source Destination Indirizzi sorgente e destinazione

RI Contiene se necessario informazioni sul routine

Dati Payload del livello superiore

Checksum Codice crc

FS Indica lo stato del frame

6.6. LLC.Come si è detto gli standard IEEE 802 sono diversi al livello fisico e nel sottolivello MAC ma sono compatibili a livello data-link, questo perhè esiste uno strato denominato LLC, Logical Data Link che definisce la parte superiore del livello , ovvero quella che si interfaccia con il livello di rete, ed è indipendente dai vari sottolivelli MAC.

7. Tecnologie delle reti MAN e WAN.Le reti MAN (Metropolitan Area Network) come si è detto hanno una estensione che può arrivare intorno alla decina di chilometri, mentre le WAN (Wide Area Network) si estendono oltre i cento chilometri e lungo tutto il pianeta. Le comunicazioni tra host appartenenti in zone geograficamente distanti tra loro, possono avvenire tramite: reti telefoniche tradizionali. linee dedicate reti a commutazione di pacchetto reti ISDN reti ATMLe comunicazioni che avvengono su reti geograficamente distante avvengono a livello 3 ( o superiori) del modello OSI/ISO , cioè al livello di Network e sono implementati da router e gateway.

7.1. Reti telefoniche tradizionali.Vengono utilizzati dei classici modem per connettere il pc alla rete, il pc è connesso ad un modem tramite una porta seriale e il modem è collegato alla rte telefonica.

7.2. Reti ISDN.Integrated Service Digital Network, sono sempre linee telefoniche ma che permettono un maggiore velocità di trasferimento, da 64 a 128 kbit al secondo.

7.3. ATM.La tecnologia ATM ( Asyncronus transfer mode ) può essere impiegata sia su reti MAN che WAN ma anche su LAN. E’ stata progettata per la trasmissione di dati,

voci e video in contemporanea. L’ATM opera alivello OSI 2 nel sottolivelo MAC di quello data-link. I dati da inviare sono suddivisi in pacchetti di celle da 53 byte. Con il termine asincrono si indica che la frequenza delle celle contenenti le informazioni non è costante.

ATM si occupa dell’invio delle celle dal mittente al destinatario.

AAL suddivide ( e ricostruisce ) le celle da trasmettere.

E’ anche possibile collegare switch ATM a reti LAN in questo caso è necessario un ulteriore livello software ( implementato sempre a livello 2 ) detto LAN ( LAN E) ed è un livello di emulazione posto sopra al AAL,

APPLICAZIONI

1. Prefazione Il livello applicazioni o application si trova subito sopra i livelli presentazione e sessione se consideriamo il modello di riferimento ISO/OSI e subito sopra il livello di trasporto se consideriamo l’architettura TCP/IP. In questo livello sono inglobati protocolli e servizi direttamente utilizzabili dall’utente finale o dalle applicazioni create per l’utente finale. Nei paragrafi seguenti vengono elencati alcuni delle principali applicazioni vengono trattata in maniera abbastanza superficiale, l’intento è dare solo una conoscenza di base.

2. RISOLUZIONE DEI NOMI.

2.1. DNSIl DNS (Domain name system) è un servizio utilizzato per mettere in corrispondenza un indirizzo IP con un nome. Sarebbe particolarmente scomodo indirizzare un host o l’indirizzo di posta elettronica di un utente utilizzando un classico indirizzo Ip, così si è cercato un meccanismo per far corrispondere un nome logico ad un indirizzo IP.Esempio: Topolino.topolinia.us può essere 193.45.90.30

Il servizio DNS è composto da un protocollo, per la distribuzione e il mantenimento delle corrispondenze nomi-ip, un database distribuito per conservare le informazioni nomi-ip ed uno schema di dominazione di tipo gerarchico.Quando un’applicazione ha necessità di collegarsi ad un host può farlo o utilizzando direttamente l’indirizzo IP o utilizzando il nome logico assegnato alla risorsa, in realtà l’applicazione utilizzerà sempre e comunque l’indirizzo IP per le connessioni, ma l’indirizzo sarà ricavato tramite una richiesta di DNS. L’host che conosce il nome logico della risorsa ma non l’IP invierà una richiesta DNS al server locale che tenterà di risolverla, se la risolve restituisce l’IP altrimenti interroga il DNS server superiore e così via fino a risolvere se possibile la richiesta.Come si è detto il DNS utilizza uno schema di dominazione gerarchico, ovvero esistono dei domini di massimo livello, i cosiddetti top-level-domain e si scende via verso il basso in sottodomini, fino al singolo host.

A ciascun dominio detto nodo è assegnato un nome che può contenere o meno dei sottodomini. Il nodo principale non ha nome è nullo. L’insieme dei nomi dei domini e sottodomini amministrati da uno stesso server DNS è denominato “zona”.

La forma del nome logico utilizzato nell’esempio precedente è composto da un numero di stringhe separate da punti:

Topolino.topolinia.us

Indica che Topolino è l’host ( è sempre la stringa più a sinistra) , topolinia il sottodominio ( i sottodomini sono elencati dalle stringhe successive a quella prima di sinistra ) e us il top-level-domain (ultima stringa a destra).Generalmente il top-level-domain indica o la nazionalità del dominio o nel caso degli U.S.A. principalmente ma non solo di alcuni enti.

Suffisso Dominioit Italiafr Franciauk Inghilterradk Germania

Suffisso Dominiocom Aziende edu Universitàgov Enti governativiorg Organizzazioni no profitnet Fornitori di accesso alla rete

Ogni top-level-domain registra attraverso una propria autorità i relativi sottodomini. I nomi dei top-level-domain generalmente sono suddivisi nelle seguenti categorie principali, domini geografici ( codici costituiti da due caratteri che corrispondono al paese secondo le norme ISO 3166), domini governativi ( 3 caratteri).Ogni sottodominio ha un proprio name-server il quale deve essere in grado di gestire correttamente tutte le corrispondenze che esistono tra gli host del proprio dominio e i relativi indirizzi IP. Tali informazioni sono memorizzate in un resource record ( ne esiste uno per ogni host del dominio ),chiamato authoritative record poiché è gestito dal DNS server responsabile. Nel caso in cui un name server inoltri una richiesta ad un name server superiore ed ottenga una risposta tale risposta verrà memorizzata in un chached record per un ceto periodo di tempo, ciò perché presumibilmente potrà essere di nuovo inoltrata tale richiesta e per risparmiare tempo si memorizza per l’eventuale richiesta successiva.

2.2. Windows e i servizi di risoluzione nomi.Nelle reti Windows che supportano il TCP/IP è necessario che ogni computer appartenete alla rete sia individuato univocamente dalla coppia nome-host/indirizzo IP, e necessario quindi che sulla rete sia presente un servizio di risoluzione nomi. Uno dei servizi utilizzati da Windows è il WINS (Windows Internet Naming Service).

2.2.1. WINSIl WINS come si è detto è un servizio di risoluzione nomi in reti Windows, tale servizio si rende necessario su reti che utilizzino host con sistemi operativi

precedenti a Windows 2000 questo perché tali host utilizzano NetBios (Network Basic Input Output). NetBios è a tutti gli effetti un API ( Application Programmino Interface) di WINS ovvero una sono tutta una serie di comandi ( ad esempio i comandi net ) che le applicazioni utilizzano per accedere ai servizi di rete, i nomi NetBIOS sono composti da un’unica parte (sono lineari) e non gerarchicamente come nel DNS, inoltre il servizio NetBIOS non necessita del TCP/IP. Ciò nonostante i nomi DNS e Wins sono compatibili tra loro. La differenza fondamentale tra Wins e DNS sta ne fatto che Wins è un servizio totalmente dinamico mentre il DNS è statico in quanto necessita di database dei nomi-indirizzo per eseguire il mapping del nome host-indirizzo. NetBios ha anche delle estensione quali NetBEUI (NetBios Enhanced User Interface) e NetBT (NetBios su TCP/IP).Una comunicazione tra un client ed un server Wins avviene tramite una sessione, che è suddivisa in tre parti: Registrazione del nome . Il client IP invia il proprio nome e l’indirizzo Ip

al server wins che provvederà ad eseguire un controllo sl dtabase ins, se il nome e l’indirizzo IP non sono già in uso il server accetterà la richiesta.

Rinnovo del nome . La coppia nome-ip è valida un intervallo di tempo detto lease. Il lease deve essere rinnovato entro un intervallo di tempo con una nuova richiesta al server.

Rilascio del nome . Se il client non è in grado di rinnovare il nome-ip la precedente registrazione è rilasciata.

Per la risoluzione dei nomi un client Wins ha a dispostone quattro metodi distinti, il metodo utilizzato dipende dalla configurazione della rete: Nodo B (B-node broadcast mode). Un client invia in broadcast un messaggio ad

ogni host della rete richiedendo l’indirizzo IP per un determinato nome. Tale metodo ha come svantaggio il fatto che in una rete di grandi dimensioni è sovraccaricata da messaggi broadcast ed i router non inoltrano i messaggi di broadcast.

Nodo P (P-node point-to-point node). Un host client invia un messaggio di query al Server Wins che replica con una risposta. Questo metodo implica la conoscenza dell’indirizzo IP del server Wins e nel caso di non funzionamento del server Wins non vi è nessun sistema in grado di risolvere il nome.

Nodo M (M-node modified node). E’ una combinazione del B-nodo e del P-nodo P, il client effettua prima una richiesta secondo il B-node e poi secondo il P-node. L’M-node è in grdo di attraversare i router.

Nodo H (H node hybrid node). E’ in modo predefinito del Wins è una combinazione anch’esso del B-nodo e del P-nodo , SOLO CHE IN QUESTO CASO è eseguita prima una richiesta secondo il p-node e poi un in b-node se la prima ha esito negativo.

3. SMTP - Posta elettronica.La posta elettronica o e-mail (eletronic mail) è un altro servizio che opera al livello application e probabilmente è il più vecchio servizio dopo il www che opera su reti internet.In internet il formato degli indirizzi di posta elettronica è il seguente:

username@hostname

dove username identifica il mittente/destinatario dell’email e l’hostname identifica il dominio al quale appartiene lo username.Il servizio di posta elettronica è di norma un messaggio formattato e preciso, anch’esso definito secondo delle regole RFC, e composto da un header e da un body che contiene il testo del messaggio. Chi offre un servizio di posta elettronica deve implementare come minimo le seguenti operazioni, comporre spedire e ricevere messaggi a più utente e da più utenti.L’header e il body sono separati tra loro da una riga vuota e l’header è a sua volta suddiviso in una serie di linee composte da una parola chiave e dalle informazioni successive, qui di seguito vengono elencate alcune delle linee principali che costituiscono la testata:

To Indirizzo del o dei destinatariFrom Indirizzo del mittenteCc Indirizzo di uno o più destinatari a cui si invia

per conoscenzaBcc I destinatari in questa lista non sanno che

esistono altri destinatariSubject Oggetto del messaggioSender Chi effettua l’invio

La posta elettronica è implementata in internet attraverso due sottosistemi il MUA (Mail User Agent) e il MTA (Mail Transoprt Agent).

Il sottosistema MUA ha il compito di comporre messaggi ricevere e leggere messaggi e cosa importante di trasportare i messaggi all’MTA di trasmissione il traspoto avviene tramite l’uso del protocollo SMTP (Simple Mail Transfer Protocol).

Il sottosistema MTA si occupa del trasporto dei messaggi sulla rete fino a consegnarli all’MTA di destinazione, consegnare ai vari MUA la posta a loro arrivata, la consegna avviene tramite l’uso del protocollo POP (Post Office Protocol).

Vediamo ora i processi e i passi che sono compiuti e l’utente [email protected] vuole scrivere un messaggio all’utente con username [email protected]. Nel momento in cui topolino ha finito di scrivere il messaggio e preme invio, per prima cosa il suo M.U.A. interroga il proprio DNS per ricavare l’indirizzo IP di topolinia.us, apre una connessione (TCP) e tramite il protocollo SMTP consegna il messaggio al server topolinia.us, che deve essere in ascolto sulla porta SMTP ( il server deve fornire il servizio di posta). Il server SMTP interroga il proprio DNS per ricavare l’IP di paperopoli.us , ricavato l’indirizzo apre una connessione (TCP) e sempre tramite SMTP (Simple Mail Transfer Protocol) consegna il messaggio al server SMTP di paperopoli.it. Nel momento in cui Paperino apre il suo M.U.A. il M.U.A. invia una richiesta per conoscere l’IP paperopoli.us, apre una connessione TCP e poi tramite il server POP di paperopoli.us scarica il messaggio spedito da topolino. Il processo precedentemente spiegato è molto realistico ma con alcune semplificazioni, ovvero i server di post che implementano SMTP e il POP generalmente hanno indirizzi IP differenti ( a volte sono proprio macchine differenti).

4. Telnet.E’ una delle più vecchie applicazioni che esistono, permette di fare il login remoto su una macchina. Generalmente è utilizzato su varie piattaforme, ad esempio da una macchina con sistema operativo Windows si accende aprendo una sessione Telnet ad una macchina con sistema operativo Unix. Telnet fornisce un’interfaccia a caratteri per eseguire comandi sulla macchina remota, è possibile impartire comandi alla macchina remota come se si fosse seduti comodamente alla console. Il protocollo di trasporto è il TCP e per funzionare il protocollo telnet è necessario che sulla macchina remota sia in esecuzione un processo Telnet Server che apra in ascolto sulla porta 23 una socket server.

Quando si instaura una connessione Telnet tra due sistemi eterogenei tra loro ( ma non necessariamente) è come se si avesse a disposizione un terminale virtuale, indicato anche con il termine NVT ( Network Virtual Terminal), tale terminale deve fornire un insieme minimo ed omogeneo di funzioni che sono negoziate tra il client e il server all’atto della connessione.Esistono in commercio sia client grafici sia client a caratteri, entrambi comunque devono supportare una serie di comandi base elencati nella tabella seguente.

Accesso OPEN <host:porta> Stabilisce la connessione verso il server telnetclose Termina la sessione telnet con il computer remoto.

Gestione Sessionedisplay Visualizza le impostazioni correnti del client Telnet

( esempio se è attivo o no l’echo)quit Esce dal client telnetsend <carattere> Invia caratteri speciali al telnet server.set <parametro> Imposta/modifica dei parametri della sessioneunset <parametro> Elimina lo stato impostato con il comandio set status Visualizza lo stato della connessione.

5. FTP.File Transfer Protocol, è un’applicativo datato almeno quanto Telnet. Fornisce a seguito anch’esso di un login su una macchina remota, tutta una serie di comandi e funzionalità per il trasferimento dei file tra due macchine collegate in rete e che supportano il TCP/IP e per la gestione di file e directory.

Possiamo individuare un processo server che apre una porta , la 21 , e rimane in ascolto per servire una richiesta da parte di un client. Lo scambio di dati e il trasferimento di file durante una connessione FTP tra server e client consta di due processi separati uno: il primo che si occupa di gestire l’invio dei comandi e a ricezione delle risposte ( esito dei comandi ) denominato anche Protocol Interpreter (PI); il secondo si occupa del trasferimento dei dati tra server e client o viceversa denominato quest’ultimo Data Transfer Process (DTP), il DTP che si occupa del trasferimento dei dati, dei files, opera sulla porta 20, vi sono quindi a tutti gli effetti due connessioni TCP/IP. Un DTP può essere di due tipi:

1. Active Mode (default), il client contatta il server utilizza due canali differenti per i comandi e i dati ( porta 20 e 21 ), ed è il server che da inizio alle connessioni.

2. Passive Mode è il client che da il via alle connessioni ed è impiegato solo il canale della porta 21 sia per i comandi che per il trasferimento dei dati.

Esistono numerosi client-FTP grafici e facilmente ed intuitivamente utilizzabili, ma, sotto la grafica esiste un mondo di comandi impartibili anche da linea di comando ( a console ), sia sotto le piattaforme Windows sia sotto le piattaforme like-Unix di seguito indichiamo i più comuni ed utilizzati:

Accesso OPEN <host:porta> Stabilisce la connessione verso il server ftpQUIT Termina la sessione FTP con il computer remoto. .USER <nome_utente> Specifica un utente per l'accesso al servercomputer

remoto.PASS <password_utente> Invio della password

Trasferimento TYPE Indica il tipo di trasferimento

BINARY Tipo di trasferimento per i file non di testo: eseguibili, grafici ecc.

ASCII Tipo di trasferimento per il file di testoGET <file_remoto> [<file_locale>] Trasferimento di un file dal server al client;PUT <file_local> [<file_remotoe>] Trasferimento di un file dal client al server

Gestione File DELETE Cancella un file sul serverCD Cambia la directory sul serverPWD Visualizza la directory in cui ci si trova al momentoMKDIR: Crea una nuova directory sul serverLS o DIR: Visualizza l'elenco dei file presenti sul serverRMDIR: Rimuove una directory sul serverRENAME <file-1> <file-2>: rinomina un file

Esiste anche un protocollo denominato TFTP (Trivial File Transfer Protocol ) utilizzato per trasferire file tra due host, non è provvisto di autenticazione usa come traporto l’UDP porta 69, ha meno funzioni rispetto all’FTP è utilizzato generalmente per trasferire file tra host e router o switch.

6. NFS.Network File system, utilizzato su sistemi Unix permette il montaggio di file system su più macchine. Permette a macchine client prive di disco di utilizzare un disco montato su un server come se il disco fosse invece in locale.

7. SNMP.Simple Network Management Protocol , utilizzato per la gestione di dispositivi di rete, router, bridge e hub da un computer centrale . E’ possibile monitorare le prestazioni della rete rilevare errori sulla rete e accessi non autorizzate, configurare periferiche remote, monitorare il carico e/o conoscere il throughput delle interfacce di rete.

L’SNMP può essere considerato sia un protocollo sia un’architettura ( o sistema ) per il monitoraggio e/o configurazione di un device. L’architettura definisce quali sono i componenti, le entità che sfrutteranno il protocollo per comunicare.I due componenti essenziali che compongono e sfruttano l’SNMP sono:

1. L’Agent SNMP , è un software e/o un fimware ( programma) che risiede su un device da controllare.

2. Manager SNMP ( console), è un software di gestione che si occupa di ricevere e/o inviae informazioni dagli agent.

L’SNMP utilizzato generalmente su reti TCP/IP ( ma anche IPX) utilizza come protocollo di trasporto UDP, per avere una maggiore performance e minore overhead dela rete sacrificando però l’affidabilità del TCP per quanto riguarda la stabilità e l’affidabilità della comunicazione.

Le informazioni memorizzate sugli agent (organizzate secondo una struttura definita) e scambiate con i Manager sono denominate MIB.Tra agent e Manager esistono due tipologie di messaggi che possono essere gestiti: Messaggi di interrogazione/configurazione. Per tali messaggi è utilizzata per

default la porta UDP 161. Tali messaggi sono inviati in maniera sincrona dal Manager all’Agent e sono: GetRequest, inviato per leggere una MIB su un Agent. GetNextRequest, inviato per leggere una MIB in modo sequenziale. GeBulk inviato, per leggere una MIB in un'unica richiesta. SetRequest inviato, per modificare il valore di un paramentro di una MIB.

Trap. E’ un messaggio asincrono inviato dal’Agent verso il Manager per notificare un particolare evento sul’Agent. Questo messaggio è inviato per default la porta UDP 162. Alcune Trap predefinite sono: coldStart, inviata quando l’agent di un device si reinizializza e la sua

configurazione è modificata ,esempio il restart di un PC. warmStart, inviata quando l’agent si reinizializza senza la modifica di

configurazione. linkDown , inviata quando il collegamento tra agent e manager non funziona. linkUP , inviata quando il colegamneto tra agent è Manager è avviato.

Va sottolineato il fatto che è buona norma che l’Agent notifichi al Manager solo trap di reale necessità .

Le MIB MIB ( Management Information Base ) definiscono dati o oggetti memorizzati negli Agent e messi a disposizione dei Manager, ogni Agent gestisce una o più MIB. Gli oggetti delle MIB includono generalmente per ogni device controllato valori che descrivono lo stato del device stesso. Gli oggetti descritti da una MIB sono definiti in base a delle strutture gerarchiche denominate SMI ( Structure Mangement Information ). L’SMI è una struttura che può essere rappresentata tramite un albero con tre componenti:

1. Root. Non ha un nome, contiene informazioni comuni a tutte le MIB.2. Subtree. Contiene un sottoinsieme di informazioni della root.3. Leaf. Rappresenta un sottodominio dove ogni MIB è unica e si differenzia

da un'altra MIB.Ogni oggetto è identificato in maniera univoca dal suo percorso, e i vari oggetti sono suddivisi in categorie:

System, contiene informazioni sul device (esempio un PC). Interfaces, contiene le informazioni relative alle interfacce di rete. IP, informazioni relative al protocollo IP. ICMP, informazioni relative al protocollo IP. Tcp /UDP, contiene informazioni relative al protocollo TCP/UDP.

L’insieme degli apparati che un Manager SNMP può gestire appartengono ad una comunità che rappresenta un identificativo per le interrogazione da parte del Manager. Gli Agent rispondono solo a Manager facenti parte dela stessa comunità.Esistono tre tipi di comunità: monitor, solo lettura, gli Agent possono solo essere interrogati. Control, lettura/scrittura un Manager può variare un parametro su un

dispositivo. Trap, messaggio sincrono da Agent a Manager.

I nomi dele comunità di default sono impostate a public per le comunità di lettura e private per quele di lettura e scrittura.

Dell’SNMP ne esistono tre versioni:1. SNMPv1 i nomi delle community sono in chiaro.2. SNMPv2 i nomi delle community sono crittografate tramite l’algoritmo MD5.3. SNMPv3.

8. HTTP/WWW.L’http acronimo di HyperText Transfer Protocol è un protocollo connetcion oriented, ed è il principale protocollo utilizzato in internet per la navigazione all’interno del Word Wide Web ( più semplicemente conosciuto come WWW). Il Web , WWW o W3 è un insieme di server http in che comunicano tra loro attraverso Internet, e raccolgono una moltitudine di elementi testuali, sonori, grafici e video organizzati in pagine Web.Il termine Web non va considerato come un sinonimo di Internet, con Internet si indica la rete, con la parola Web uno dei molteplici servizi presenti nella rete.

DHCP.IL DHCP (Dinamic Host Configuration Protocol) è un protocollo ( ed un servizio ), basato sul modello clien-server , il cui compito è quello di fornire , da parte del server, una configurazione dinamica ed univoca per ogni host, client, collegato ad una rete.

IL DHCP sostanzialmente è un protocollo che aiuta gli amministratori nella gestione e nella assegnazione degli indirizzi IP a tutti gli host di una rete, se non ci fosse tale servizio bisognerebbe cablare manualmente un IP per ogni host con il rischio che sulla medesima rete siano presenti due host col medesimo IP. Con tale servizio è possibile spostare un host in ogni punto della rete senza dover necessariamente modificare i parametri riguardanti la configurazione del host. Considerando un rete come quella in figura precedente si può notare un SERVER-DHCP (sul quale è in esecuzione un servizio DHCP-Server) il quale ha il compito di fornire un indirizzo IP ad ogni host Client-DHCP (sul quale è in esecuzione un servizio DHCP-Client) che ne fa richiesta. All’avvio di una connessa in rete e configurata per ottenere un indirizzo IP, ovvero vi è un servizio di Client-DHCP attivo, il computer cliente invia: una “Richiesta di lease IP” ovvero un indirizzo IP che abbia una certa durata nel tempo, tale richiesta è inoltrata in

broadcast sulla rete, il client si pone così in uno stato di attesa.

I server che ricevono la richiesta di lease IP rispondono ai client con “Offerte di lease”, il client che riceverà le offerte ne selezionerà una ( in genere la prima arrivata ) e invierà al server quale offerta ha scelto “Selezione di lease “ il server di risposta invierà “Riconoscimento di lease” da quel momento in poi l’host potrà utilizzare la configurazione TCP/IP ricevuta e scelta. Generalmente se un host ( Client-DHCP ) è arrestato e riavviato nella stessa sottorete otterrà il medesimo indirizzo IP.Come si è accennato l’indirizzo IP ha una sua durata nel tempo, ovvero ha un tempo di scadenza, generalmente quando è passato il 50% della durata del tempo di lease il client ricontatterà il server, per rinnovare l’IP. Se invece è passato circa l’87,5% del tempo di lease senza che il client sia riuscito a contattare il server originario, il client tenterà di rinnovare illese con un altro server. Scaduto il tempo di lease senza nessun rinnovo, il client non potrà più utilizzare quello indirizzo e dovrà inoltrare una nuova “Richiesta di lease IP”.il client sia riuscito a contattare il server originario, il client tenterà di rinnovare illese con un altro server. Scaduto il tempo di lease senza nessun rinnovo, il client non potrà più utilizzare

quell’indirizzo e dovrà inoltrare una nuova “Richiesta di lease IP”.

9. RASIl RAS Remote Access Service è un servizio windows che permette l’accesso tramite linea telefonica a degli host verso una rete. Anche qui abbiamo un’architettura di tipo client-server in quanto abbiamo un host client-RAS remoto che attraverso un modem contatta e si mette in comunicazione con un server-RAS, il quale farà si che il client-RAS disporrà di tutte le caratteristiche e di tutte le funzionalità (condivisione di file, utilizzo di stampanti ecc. ecc.. ) di un host connesso alla rete del server.

Il client-RAS e di conseguenza il server-RAS può utilizzare vari protocolli tra cui TCP/IP, NetBEUI, IPX per la gestione a livello di rete e protocolli PPP o SLIP a livello data-link. L’utilizzo di protocolli differenti per la connessione ad una rete permette ad un clien-RAS di interagire con server eterogenei, è possibile quindi utilizzare un clien-RAS con S.O. windows e Telnet, ad esempio, per operare su server Unix.Nel momento che un clien-RAS richiede una connessione ad un server-RAS quest’ultimo fornirà direttamente i parametri di configurazione ( IP, maschera di subnet) al client per entrare a far parte della rete. Gli indirizzi IP forniti dal server-RAS sono indirizzi statici riservati ( da parte del server RAS) per gli host che richiederanno la connessione, ed è chiaro che tali indirizzi non potranno far parte di un pool di indirizzi, ad esempio, messi a disposizione da un eventuale server-DHCP presente sulla rete.L’ID di rete fornito al client-RAS sarà analogo a quello del server-RAS.E’ da notare che tale tipo di collegamento è il classico collegamento utilizzato per collegarsi ad internet tramite un modem da casa o dall’ufficio, si chiama tramite un modem un internet-provider che mette a disposizione un server-RAS che a sua volta ci immetterà nella rete internet.

10. RETI WINDOWS.Una rete Windows è composto come ogni altra rete da uno o più macchine server e una o più macchine client. I sistemi operativi ( s.o.) microsoft possono essere divisi in s.o. server e client. I s.o. server sono : Windows NT Server ( varie versioni l’ultima è la 4.0), Windows 2000 Server, Windows XP Server. I sistemi operativi client sono: l’obsoleto MS-DOS, Windows 3.x, Windows 9x, Windows 2000 Professional , Windows XP Professional & Home.

10.1. Architettura di rete in Windows NT. In Microsoft Windows NT esistono tutta una serie di funzionalità di rete, integrate indipendenti dai protocolli. I servizi offerti alle applicazioni, come condivisione di file, cartelle, funzionalità di stampa sono utilizzabili su qualsiasi protocollo che supporti il TDI, Transport Driver Interface .

10.2. Rete Windows NT. Nella figura che segue è rappresentata una semplice rete basata su Windows NT, organizzata secondo un modello a dominio. Con il termine dominio si intende un raggruppamento logico di server di rete, computer client e stampanti ( con s.o. anche differenti da Windows NT Workstation, ad esempio Win95, Win98, Win2000 Professional) che condividono informazioni relative agli account di dominio.

Gli host presenti in un domino , generalmente sono vicini e appartengono ad una stessa LAN ma possono anche essere distanti ed essere collegati tramite un collegamento remoto. Gli utenti che accedono ad un dominio da uno degli host eseguono una procedura di accesso al momento del boot della macchina e se il loro account è stato configurato nei server di dominio possono accedere alle risorse del dominio. Una rete NT è composta da tre tipi di server: server primario di dominio, pimary domain controller PDC sul

quale risiedo il database di directory ovvero tutte le informazioni riguardanti gli account utente di un dominio.

backup domain controller BDC, ovvero server che conservano una copia del database di directory , tale copia è aggiornata in modo sincrono, periodico e automaticamente con quella del PDC, questo meccanismo è utilizzato poiché in caso di guasto del PDC,

i BDC possono funzionare da serve per l’accesso al dominio dei vari utenti registrati.

server membro ( anche detti stand alone ), ovvero dei server dedicati ad alcune applicazioni in particolare ( ma non necessariamente) , server di posta, server ras, server proxy per l’accesso ad internet, server DNS o DHCP.

Il vantaggio dell’uso dei domini, sta principalmente nel fatto che gli amministratori della rete hanno una gestione centralizzata, ogni amministratore potrà gestire un singolo account per utente, ed ogni utente con il proprio account avrà a disposizione le risorse del dominio. Un utente per usufruire dei servizi messi a disposizione da un dominio necessita di un account utente, all’account creato è assegnato un ID di protezione unico (SID security identifier). Il concetto di dominio equivale a quello di gruppo di lavoro in Windows 9.x., anche se per gruppo di lavoro si intende un insieme di computer organizzata di computer e non di utenti che non appartengono ad un dominio, in un gruppo di lavoro (workgroup) ciascun host registra le informazioni di log-on ma non le condivide con altri computer.L’esempio in figura precedente rappresenta un modello di dominio singolo ma esiste anche un modello di dominio master singolo e master a più domini. Il modello master singolo è un dominio che funziona da dominio amministratore centrale per altri domini, gli account utente sono contenuti in un dominio master, e quindi in un unico database di directory e vengono gestiti centralmente, le risorse vengono invece raggruppate e gestite localmente nei singoli domini che concedono una relazione di fiducia ai domini master ( gli accunt dei domini master possono utilizzare risorse degli altri domini).Il master a più domini è composto da più domini master singoli legati tra loro da relazioni di fiducia bidirezionale, e ciascun dominio master singolo è legato ai vari domini di risorse in maniera unidirezionale.In figura abbiamo un semplice esempio di una azienda con sede a Roma e Milano con due domini master singoli ( che insieme formano un modello a più domini master), domini di risorse uffici produzione e vendita, si può notare la relazione bidirezionale tra i master e l’unidirezionale tra i master e i domini di risorse.

10.3. Rete Windows 2000. Una rete basata su server Windows 2000 presenta delle differenze rispetto ad una basata su Windows NT principalmente su come è gestito e replicato il database di directory e su come possono essere organizzati e gestiti i client.Di sistemi operativi Windows 2000 server ne abbiamo a disposizione di tre tipi: Windows 2000 Server , è il modello base che fornisce tutti i

supporti e le risorse per l’utilizzo della rete è in grado di supportare fino a due CPU ed è il diretto discendente di Windows Server NT 4.0.

Windows 2000 Advanced Server può supportare fino a quattro CPU e fino a 64 GB di memoria, include le funzionalità per il clustering.

Windows 2000 Datacenter Serve r, supporta fino a 16 CPU, 64 GB di memoria.

Nel momento dell’installazione di Windows 2000 Server ( qualsiasi tipo), è possibile configurare la macchina in una delle tre opzioni: Server membro , in questa configurazione il computer entra a far

parte del domino ma non memorizza informazioni di database di directory.

Controller di dominio , memorizzano informazioni di database di directory e forniscono il servizio di autenticazione all’accesso al dominio.

Server autonomo, ha un proprio database utenti e non fa parte del domino.

Contrariamente a Windows NT, Windows 2000 non fa differenza tra controller di dominio primari e di backup, ogni controller di dominio può elaborare modifiche al database di directory e replicarle ad ogni controller di domnio presente nella rete ( replica multimaster ). Windows 2000 replica oltre al SAM ( Security Access Manager ) , come NT, anche tutta una serie di informazioni denominate archivio dati, il quale contiene un insieme di oggetti che rappresentano gli account dei gruppi e degli utenti,le informazioni di condivisione di risorse quali stampanti e file.Windows 2000 supporta anche domini con servizi denominati di Active Directory.

10.4. Acitve Directory Windows 2000.

10.4.1. Acitve Directory concetti base.Active Directory è un servzio di directory per la getione delle risorse di rete.Active Directory è una tecnologia basata sui protocolli standard Internet permette di definire la struttura della rete ed è alla base di Windows 2000, dove qualsiasi attività di gestione è riconducibile al servizio Active Directory.Il protocollo principale utilizzato da A.D. per definire la struttura dei domini è il DNS, abbiamo quindi una struttura a modello gerarchico, contrariamente a Windows NT dove generalmente avevamo una struttura lieare.Il servizio A.D. fornisce strutture logiche e fisiche per tutti i componenti che compongono le risorse di rete.

LOGICHE Domini, è un insieme di PC che condividono un database di

directory,è da notare che i nomi dei domini nella gerarchia devono essere univoci.

Strutture di domini sono l’insieme di uno o più domini con spazio di nomi contiguo. Si distinguono domini parent e child, in una struttura di spazio di nomi contiguo il child è figlio del parent e a sua volta un dominio child può essere un dominio parent.

Insieme di strutture di domini , uno o più strutture di domini con condivisione di informazioni di directory comuni.

Unità organizzative , rappresentano un gruppo di domini che riflettono la struttura organizzativa o aziendale di un asocietà.

FISICHE Subnet gruppo di PC con intervallo di indirizzi IP specifici

e network mask. Siti una o più subnet.

Active Directory consente la creazione di più siti all’interno di un singolo dominio o la creazione di un solo sito per più domini. I PC di subnet in grado di interagire reciprocamente in rete sono ben connessi, in teoria i siti sono costituiti da subnet e pc ben connessi.Un sito ben connesso ha le seguenti caratteristiche: Quando un client si connette ad un domonio il processo di LogOn ricerca il

controller di domino presente nel proprio sito, questo comporta un minor traffico sulla rete e più velocità di autenticazione.

La replica di informazioni di directory avviene all’interno del sito piuttosto che tra siti differenti, segue un minor carico sulla rete.

10.4.2. Acitve Directory funzionalità di dominio.I domini Active Directory supportano la gestione di account risorse e protezione.I domini DNS creano una gerarchia di dominio per il mapping dei nomi.Active Directory è una tecnologia utilizzabile per i sistemi Windows 2000, Windows NT, se presente il relativo software client , tali client accedono alla rete come client Active Directory.I sistemi Windows NT senza sostare client per il servizio Active Directory, accedono alla rete come parte di un dominio NT, SOLO SE, è previsto dalle modalità operative del dominio di A.D. e a patto che sa configurato un dominio NT.

10.4.3. Acitve Directory e domini Windows NT.Per Windows NT, i computer che richiedono la connessione a un dominio Active Directory, prevede due modalità. Modalità mista Active Directory, supporta sia domini Windows 2000 sia Windows

NT, non esistendo più Server PDC il ruolo è demandato al controller di dominio con Windows 2000 che è configurato come PDC master. I pc con Windows NT Server possono appartenere al domino solo come BDC ( o server membri) le copie del database di directory vengono comunque aggiornate sui BDC dal controller di dominio, ma in sola lettura.

Il controller di dominio che funge da PDC supporta per l’autenticazione i protocolli:

NTLM protocollo di autenticazione Windows NT. KERBEROS protocollo di autenticazione di utenti e sistemi

secondo gli standard Internet. Modalità nativa non sono presenti server BDC , non è supportato

il protocollo NTLM e non esistono più server Windows2000 che eseguono l’emulazione PDC.