Protocollo TCP-IP by MotherFucker2
Transcript
Protocollo TCP-IP by MotherFucker2
Introduzione alle reti e al protocollo TCP/IP Appunti Mario Di Criscio ¨˜"°º©-•=»™««Møth뮃üçkê® Îñ$ïdê»»™«=•-©º°"˜¨ 〉1〈 Introduzione Parlando di reti di computer si parla di un insieme molto vasto ed eterogeneo di mezzi di comunicazione che vanno dal cavo telefonico, alla fibra ottica, alla comunicazione via satellite o radio, a periferiche o strumenti molto complessi quali schede di rete, hub, switch e routers. Per rendere possibile la comunicazione attraverso un così variegato insieme di mezzi sono stati progettati e creati dei protocolli di comunicazione, che in sostanza rappresentano l'implementazione di un linguaggio comune fra i vari devices. Il protocollo più utilizzato e conosciuto è sicuramente il TCP/IP. Una caratteristica comune dei protocolli di rete è quella di essere strutturati a livelli sovrapposti. Ogni livello contiene dei protocolli, che a loro volta si basano su un protocollo del livello sottostante. Questo modello è stato standardizzato dalla ISO (International Standards Organization) che nel 1984 ha preparato il modello OSI (Open Systems Interconnection), strutturato in sette livelli e conosciuto universalmente come Modello ISO-OSI. L Nome Lello 7 Come si può vedere il modello è molto complesso, tanto che si è soliti suddividerlo in due parti: upper layer, che riguarda solo le applicazioni (realizzato in user space) e lower layer in cui si mescolano la gestione fatta dal kernel (cuore di ogni sistema operativo) e le funzionalità fornite dall'hardware. Il modello ISO-OSI mira ad effettuare una classificazione completamente generale di ogni protocollo di rete, anche se nel frattempo nasce un altro modello, specifico al TCP/IP, che è quello su cui è basato l'odierno Internet. Anche il modelloTCP/IP è strutturato a livelli (4); questi hanno una corrispondenza con i livelli del modello ISO-OSI. Il suo nome deriva dai due principali protocolli che lo compongono: TCP (Transmission Control Protocol), che copre il livello 3 e IP (Internet Protocol), che copre il livello 2. 〉2〈 Modulo 1 – Cenni sulle reti Una rete di computers è costituita da hardware e software che interagiscono per far comunicare tra di loro applicazioni in esecuzione su macchine differenti, siano esse situate all’interno della stessa stanza siano esse in continenti distanti tra di loro. Due le classificazioni principali: LAN (Local Area Network): rappresenta una rete di computers che mette in comunicazione tra di loro devices, stampanti e servers localizzati in un singolo site o locazione (un ufficio, una palazzina, una serie di palazzine). Le velocità tipiche di una LAN vanno dai milioni di bit per secondo (Mbps) ai miliardi di bit per secondo (Gbps) WAN (Wide Area Network): rappresenta una rete di computers che mette in comunicazione diversi sites o locazioni, dislocati nella stessa città come in continenti diversi. Le velocità tipiche di una WAN vanno dalle migliaia di bit al secondo (kbps) ai milioni di bit per secondo (Mbps). Le WAN sono realizzate grazie a Service Provider che mantengono per l’utente linee di vario tipo (ISDN, Frame Relay, T1, ATM, ecc.) Negli ultimi anni c’è stata una forte evoluzione in termini di performance di connettività. Le velocità e le distanze tra i computer sono enormemente aumentate. I componenti di una rete possono essere raggruppati in tre grossi gruppi: Devices: PC, server, stampanti Applicazioni: programmi che operano con i devices Reti: insieme di protocolli (ad esempio TCP/IP), cavi e interfacce di rete (schede di rete, hub, switch, router) Le applicazioni possono avere un notevole impatto sulla struttura della rete in termini di carico provocato e tempi di risposta necessari. Ogni volta che una nuova applicazione viene “messa in rete” è necessario studiare l’impatto che questa potrebbe avere sulla rete stessa. Se l’applicazione provocasse decadimenti in termini di performance, l’architettura delle rete potrebbe dover essere modificata. Le reti hanno una bandwith (larghezza di banda) finita; essa rappresenta la quantità di informazioni trasmissibili in un secondo. Ad esempio per trasmettere 1 Gbyte su una rete a 56 kbps sono necessarie 40 ore, su una rete a 1 Gbps sono ncessari 8 secondi. In generale le velocità delle LAN sono superiori a quelle delle WAN, in genere per questioni economiche. Ethernet e Token Ring utilizzano un metodo di accesso alla rete basato sulla condivisione, ovvero in un certo istante un solo device è abilitato a inviare messaggi. Per questo si deve tenere conto del numero di devices connessi in rete. Per aumentare le performance in una rete si ricorre alla segmentazione, ovvero alla divisione del numero totale di devices in gruppi più piccoli. I servizi WAN disponibili sono di due tipi: ¾ Circuit-switching: rete dedicata con buoni tempi di risposta, ma costosa (linee T1, T3, ISDN, ecc.) ¾ Packet-switching: rete condivisa da più utenze, tempi di risposta meno prevedibili, meno costosa (X25, Frame Relay, ATM, ecc.) Un frame è l’unità di trasmissione per la rete. Ogni frame trasporta un pacchetto di dati sulla rete. Esso contiene, oltre ai dati, altre informazioni come ad esempio indirizzo IP sorgente e destinazione. I router si utilizzano per connettere tra loro reti dello stesso tipo e non. Ad esempio un utente appartenente ad un rete basata su architettura Ethernet invia un messaggio ad un altro utente, la cui locazione è in un altro segmento rispetto al mittente, ma che di per certo sappiamo essere un segmento di rete basata su Token Ring. Il messaggio prima di arrivare alla rete di destinazione passerà per una WAN basata su Frame Relay. Quindi, il mittente spedisce un messaggio, il frame Ethernet incapsula un pacchetto di dati e arriva al primo router, che estre dal frame Ethernet il pacchetto di dati e lo incapsula in un frame di tipo Frame Relay. A questo punto il frame è in grado di viaggiare su una rete Frame Relay. Il pacchetto viene ricevuto dal secondo router, che non fa altro 〉3〈 che estrarre il pacchetto di dati dal frame Frame Relay e incapsularlo in un frame Token Ring. A questo punto il frame arriverà a destinazione. Modulo 2 – Cenni sulle LAN Componenti tipici di una LAN sono: • Computer • Sistemi operativi • Applicativi • Interfacce o schede di rete e relativi drivers • Devices per la connessione (hubs, switch, repeater, concentratori) • Devices per la connessione ad altre reti (switch e routers) • Cavi (UTP, fibra ottica) Le LAN si sono sviluppate parallelamente allo sviluppo di personal computers. Ethernet (Digital, Intel, Xerox) e Token Ring (IBM) vengono sviluppate a partire dal 1970 circa. Oggi una grossa parte delle reti installate (80-90%) sono di tipo Ethernet, mentre solo un 10% è di tipo Token Ring. AppleTalk rappresenta un altro protocollo di comunicazione per poter condividere stampanti e trasferire files, ma unicamente su macchine Apple. Le aziende odierne non possono più rinunciare all’utilizzo di LAN, poiché offrono dei servizi che ogni singolo utente utilizza per comunicare e produrre: o Invio e ricezione di email o Stampa di documenti o Condivisione dei propri dati o Possibilità di accesso a WAN e Internet Negli anni i requisiti del PC connessi in rete sono cresciuti, a causa della crescente richiesta di risorse delle applicazioni. Oggi per poter lavorare in maniera accettabile in rete è necessario disporre almeno di un PC con le seguenti caratteristiche: ♦ 64 Mb RAM ♦ 1 Gb HDD ♦ 1 slot per scheda di rete, relativa NIC e relativo driver ♦ Sistema operativo di rete (Unix, Microsoft Windows, BeOS) Modulo 3 – Ethernet La tecnologia Ethernet è la più diffusa nel mondo, opera a velocità comprese tra i 10 Mbps e i 1000 Mbps su svariati canali fisici (UTP, fibra, coassiale, ecc.). Possiede capacità di broadcast in quanto può inviare messaggi da un device a molti. Un device Ethernet opera secondo le specifiche CSMA/CD (Carrier Sense Multiple Access / Collision Detect), cioè prima di inviare un messaggio si assicura che nessun altro device stia trasmettendo sulla LAN evitando la cosiddetta “collsione”. L'Ethernet viene inventato nel 1972 (Ethernet I), partito come programma di sperimentazione, operava a 2.94 Mbps, permetteva una distanza massima d 1 km e la connessione di 256 devices al più. Del 1977 è la versione successiva Ethernet II. La versione che oggi utilizziamo (IEEE 802.3 CSMA/CD) è del 1980 e tra le caratteristiche vantate offre un costo tecnologico basso, supporto multi-vendor, possibilità di utilizzo di diverse topologie di cavi, velocità in costante aumento (fino al Gbps). Le Gigabit Ethernet supportano operazioni fino a 1000 Mbps sia su UTP che su fibra ottica. D solito si usano per connettere la dorsale di una rete tra switches e routers in una rete distribuita su più edifici, dei servers direttamente a degli switch in modalità full-duplex, utenti finali particolarmente prioritari. 〉4〈 Il protocollo IEEE 802.3 CSMA/CD è un protocollo LAN di broadcast che utilizza un metodo di accesso alla rete basato sul conflitto, ovvero i devices in rete sono in conflitto tra di loro per decidere chi può inviare un frame (un pacchetto Ethernet). Una volta inviato il messaggio, questo verrà diffuso in tutta la rete. Prendiamo l'esempio di un utente che usa un browser per accedere ad Internet: il browser manda un messaggio di richiesta HTTP alla scheda di rete, che costruisce il pacchetto Ethernet (con MAC address di mittente e destinatario) e lo mette nel suo Transmit Buffer. La NIC deve ora assicurarsi del fatto che LAN sia libera, se questa non lo è, essa attenderà un certo numero di microsecondi prima di testare nuovamente la rete. Se invece la rete è libera la NIC spedisce il frame bit per bit ad una velocità (rate transfer) che dipende dalla velocità della rete. Mentre invia il frame, essa continua a monitorare i due fili di Receive, per vedere se altri devices stanno tentando di inviare un frame, il che porterebbe ad una collisione. In questo caso la NIC smette di trasmettere e aspetta 9.6 microsecondi più una quantità di tempo random prima di ricontrollare se la rete è libera. Nel momento in cui questa è libera il frame viene ritrasmesso. Questa serie di operazioni viene ripetuta finchè il frame non viene trasmesso con successo (senza collisioni), almeno che il numero di tentativi sia stato maggiore di 16, caso in cui la NIC smette di trasferire il frame. Quando si parla di connettività Ethernet si incontrano sigle del tipo 10BaseT. La prima cifra (10) indica la velocità a 10 Mbps, la sigla che segue (Base) indica il tipo di segnale, le lettere che seguono hanno diversi significati (T sta per "twisted pair", S per "laser a bassa lunghezza d'onda", L per "laser ad alta lunghezza d'onda", X per "full duplex", F per "fibra ottica"). Qui di seguito vengono riportate alcune implementazioni di Ethernet a 10, 100 e 1000 (Gigabit) Mbps: 〉5〈 La struttura di un frame Ethernet originale è detta Ethernet II ed è composto da sette campi: preamble, start frame delimiter, destination address, source address, type field, data field, frame check sequence. Nel dettaglio: 1. Preamble: campo usato per la sincronizzazione (cioè per compensare le variazioni di clock delle schede di rete) 2. Start frame delimiter: indica che al byte successivo inizia il frame 3. Destination address: MAC address di destinazione 4. Source address: MAC address mittente 5. Type field: indica il tipo di pacchetto contenuto nel campo data field 6. Data field: trasporta il pacchetto di dati incluso l'overhead 7. Frame check sequence: usato a scopo di rilevazione dell'errore (CRC) Il campo Type di 2 bytes permette alla scheda di rete (NIC) di passare i dati al protocol stack appropriato. Alcuni valori tipici: I componenti Ethernet più comuni sono: ® NIC: schede di rete per collegare devices alla rete, funzionano a velocità comprese tra i 10 Mbps e 10000 Mbps ® Hub/Ripetitori/Concentratori: devices usati per connettere tra loro devices di una rete, funzionano in genere come semplici ripetitori di stream di bit da un device a tutti gli altri ® Switch: sono devices intelligenti, cioè imparano i MAC address dei devices connessi alle loro porte, analizzando i campi Source Address e Destination Address dei pacchetti ® Router: sono devices di internetworking, comunemente usati per connettere reti dello stesso tipo o reti diverse tra di loro; sono configurabili e utilizzano sistemi di indirizzamento software per indirizzare logicamenti i dati I connettori Ethernet più utilizzati sono: © AUI: connettore a 15 pin usato nei sistemi di cablaggio 10Base5, per compatibilità con sistemi precedenti è ancora presente su switch e routers © BNC: connettore coassiale usato con Ethernet 10Base2 © RJ-45: connettore a 8 pin usato con sistemi twisted pair come 10BaseT, 100BaseTX, 1000BaseTX; è il più comune ed utilizzato © ST: connettore per fibra ottica utilizzato negli anni 80-90 © SC: connettore per fibra ottica utilizzato per applicazioni 100 Mbps e superiori © Small Form: nuovo connettore per fibra ottica che ricorda la forma dell'RJ-45 ma di dimensioni più piccole La porta più utilizzata in assoluto è la RJ-45, che può essere classificata essenzialmente in: ™ MDI: Multiple Document Interface ™ MDI-X: Multiple Document Interface Crossed Over, dove i cavi di transmit sono invertiti con quelli di receive 〉6〈 Normalmente hub e switch hanno porte RJ-45 di tipo MDI-X perchè devono invertire il segnale in arrivo. Tutti gli hub hanno comunque una porta MDI-X per collegare in cascata altri hub (al più 4) utilizzando cavi dritti. Schede di rete e routers hanno invece porte di tipo RJ-45 MDI. Le regole per scegliere il tipo di cavo per connettere i vari devices tra di loro sono semplici: ± ± Se si connettono porte MDI con porte MDI-X è necessario un cavo dritto Se di connettono porte dello stesso tipo è necessario un cavo crossed over (invertito) Cavo dritto (straight through): Cavo invertito (crossed over): Per la progettazione di reti LAN basate su Ethernet sono necessarie delle regole specificate nel protocollo IEEE 802.3 CSMA/CD. Basilare è la regola 5-4-3 per le Ethernet a 10 Mbps secondo la quale gli hub Ethernet possono essere collegati l'uno all'altro per estendere le distanze e nel peggior caso, un singolo dominio di collisione può includere 5 segmenti Ethernet fra un utente A e un utente B; dei cinque segmenti soltanto 3 possono essere popolati. Se questa regola viene violata il protocollo CSMA/CD potrebbe non funzionare correttamente; infatti il protocollo tiene conto di una serie di variabili (dimensione minima del pacchetto, ritardi degli hubs, velocità di propagazione del segnale) affinchè la collisione possa essere rilevata. Un bridge/router/switch/gateway rappresenta un separatore di domini di collisione ed è quindi possibile riapplicare la regola 5-4-3. 〉7〈 Questa regola è applicabile a reti con velocità massima di 10 Mbps, non è invece applicabile a reti con velocità superiori poiché il protocollo CSMA/CD non riuscirebbe ad rilevare correttamente le collisioni. In questo caso gli hubs devono essere connessi a switch o routers. Modulo 4 – TCP/IP La suite TCP/IP nasce nel 1969, è un protocollo di comunicazione che mette a disposizione diversi servizi di rete ed è composto da due standards: TCP (Transmission Control Protocol) e IP (Internet Protocol), adottati dal dipartimento americano a partire dal 1982. Rappresenta la base di Internet ed è in continua evoluzione per soddisfare le continue richieste e sempre più crescenti di Internet. Le funzioni dei vari livelli sono le seguenti: × × × × Applicazione: É relativo ai programmi di interfaccia con la rete, in genere questi vengono realizzati secondo il modello client-server, realizzando una comunicazione secondo un protocollo che è specifico di ciascuna applicazione Trasporto: Fornisce la comunicazione tra le due stazioni terminali su cui girano gli applicativi, regola il flusso delle informazioni, può fornire un trasporto affidabile, cioè con recupero degli errori o inaffidabile. I protocolli principali di questo livello sono il TCP e l'UDP Rete: Si occupa dello smistamento dei singoli pacchetti su una rete complessa e interconnessa, a questo stesso livello operano i protocolli per il reperimento delle informazioni necessarie allo smistamento, per lo scambio di messaggi di controllo e per il monitoraggio della rete. Il protocollo su cui si basa questo livello è IP (sia nella attuale versione, IPv4, che nella nuova versione, IPv6) Collegamento: è responsabile per l'interfacciamento al dispositivo elettronico che effettua la comunicazione Vediamo la struttura della comunicazione TCP-IP attraverso i vari protocolli, che si può riassumere come segue: ⊗ Le singole applicazioni comunicano scambiandosi i dati ciascuna secondo un suo specifico formato. ⊗ Per applicazioni generiche, come la posta o le pagine internet, viene implementato uno specifico protocollo (http, smtp, pop3, imap, telnet, ftp, ecc.) ciascuno dei quali è descritto in uno standard (attraverso un RFC) ⊗ I dati delle applicazioni vengono inviati al protocollo di trasporto usando una opportuna interfaccia (socket). Qui il protocollo TCP (connessione con controllo) o UDP (connessione senza controllo) spezza ed incapsula i dati in pacchetti 〉8〈 ⊗ Una volta ottenuto il pacchetto, questo viene inviato al protocollo di rete (IP) che si preoccupa di incapsulare informazioni di instradamento (indirizzi di rete sorgente e destinazione, time to live e altre informazioni necessarie) ⊗ L'ultimo passo è il trasferimento del pacchetto al driver della NIC, che si incarica di incapsularlo a sua volta nel relativo protocollo di trasmissione, in maniera diretta attraverso l'Ethernet o in maniera indiretta attraverso i protocolli PPP (Point to Point Protocol) o SLIP, usati come interfaccia per far passare i dati attraverso la porta seriale o parallela. I devices di rete comunicano basandosi sul MAC Address, che viene utilizzato al livello 1 dello stack TCP-IP. E' specifico della scheda di rete, in modo tale che ognuna di esse abbia un indirizzo fisico univoco. La struttura di questi indirizzi dipende però dalla topologia della rete, ad esempio per Token Ring o Ethernet sono indirizzi a 48 bit, i Frame Relay usano indirizzi chiamati DLCI (Data Link Connection Identifiers), ATM usa i circuit numbers. Non avendo struttura comune non possono comunicare direttamente, per questo si rende necessario l'indirizzamento IP, una sorta di mappatura logica ad un indirizzo fisico che permette la comunicazione anche tra periferiche differenti tra di loro. I computer utilizzano il sistema di numerazione binaria e anche gli indirizzi IP seguono questa logica. Un indirizzo IP è composto da quattro numeri decimali separati da un punto, ad esempio 213.140.9.128 è un indirizzo IP. Ogni numero vale 1 byte (8 bit) ed è quindi nel range 0-255 (2=256). Ogni indirizzo IP è composto da due parti: sezione network (non amministrabile localmente) e una sezione host (amministrabile localmente perchè rappresenta l'interfaccia di rete locale). Analizzando il primo byte (nel nostro esempio 213) il software è in grado di sapere la classe dell'indirizzo IP. Infatti gli indirizzi IP possono collocarsi in: classe A classe B classe C La classe D è riservata agli indirizzi multicast, la classe E è riservata per sperimentazioni. Esistono alcune regole che si applicano agli indirizzi IP: Tutti 1 nei campi host di un indirizzo IP indicano un broadcast a livello IP Tutti 0 nei campi host di un indirizzo IP identificano una sottorete o una rete Inoltre l'indirizzo 127.0.0.1, detto anche indirizzo loopback, è riservato per i test in locale. Vediamo la rappresentazione binaria di un byte: 〉9〈 Ogni x sulla prima riga rappresenta 1 bit e ogni valore sulla seconda riga il rispettivo valore decimale (2^n). La somma di tutti i valori è 255, quindi ogni byte di un indirizzo IP può avere un valore compreso tra 0 e 255. Ad esempio la rappresentazione binaria dell'indirizzo IP 128.8.80.10 è: 10000000.00001000.01010000.00001010 Come ottengo un indirizzo IP in rappresentazione binaria ? Prendo in considerazione 1 byte alla volta e mi domando come, sommando i valori decimali che vanno da 1 a 128, posso ottenere il valore di quel byte. Nel momento in cui ho individuato quali valori mi servono, metterò nella posizione corrispondente un 1 e nelle altre posizioni uno 0. Prendiamo ad esempio il primo byte del nostro esempio, cioè 128: Per ottenere 128 mi serve il primo bit (2^7). Individuato il bit metterò un 1 e negli altri bit uno 0. Facciamo un esempio con il terzo byte dell'indirizzo IP preso in considerazione (80): Come ottengo 80 ? Sommando 64 e 16. Quindi metterò un 1 nelle posizioni corrispondenti: Il software identifica l'appartenenza di un indirizzo IP ad una determinata classe guardando i bit del primo byte. Se il primo bit di un indirizzo IP è uguale a 0 significa che questo numero in notazione decimale può avere un valore compreso tra 0 e 127 (cioè 64 + 32 + 16 + 8 + 4 + 2+ 1), ricordando che la rete 127 è riservata per il loopback. In questo caso 24 bit o 3 byte possono essere amministrati localmente e se tutti fossero usati per indirizzi di host nella rete potrebbero esserci 16.777.214 indirizzi IP possibili non considerando i due casi con tutti 1 o con tutti 0. Gli indirizzi di classe A sono di solito assegnati ad organizzazioni molto grandi. Se il primo bit di un indirizzo IP è uguale a 1 e il secondo è 0, questo viene identificato come un indirizzo di classe B (cioè 128 + 32 + 16 + 8 + 4 + 2 + 1). In questo caso possiamo avere 65.534 possibili host, cioè 2^16 - 2. Gli indirizzi di classe B vengono assegnati ad organizzazioni di medie dimensioni. Se i primi due bit di un indirizzo IP sono posti a 1 e il terzo a 0, allora questo viene identificato come un indirizzo di classe C. Quindi il primo byte può avere un valore compreso tra 192 e 223 (128 + 64 + 16 + 8 + 4 + 2 + 1). Possiamo avere quindi 2.097.152 (2^21) host nella rete. In tutti e tre i casi gli amministratori di rete, qualora sia necessario, possono effettuare il cosiddetto subnetting, ovvero la divisione degli host in sottoreti (blocchi più piccoli). Una subnet è una divisione logica di una rete IP in cui tutti i devices di una subnet sono sulla stessa rete fisica. Le sottoreti (o subnets) sono connesse tra loro mediante routers. I motivi per cui si creano sottoreti possono essere: ⊕ ⊕ ⊕ ⊕ ⊕ Volume di traffico elevato tra molti devices Dati sensibili per motivi di sicurezza Gruppi di lavoro distinti tra loro Connessione tra protocolli diversi (Ethernet, Token Ring, Frame Relay, ATM, ecc.) Ridimensionamento di alcune aree funzionali Il subnetting viene realizzato applicando una subnet mask, che identifica quali bit sono utilizzati per indicare le diverse parti di un indirizzo di rete (network, subnet, host), basata sulle specifiche necessità dell'ambiente di rete. Quando un'interfaccia di rete vuole comunicare con un'altra, il software (TCP/IP) segue una determinata procedura per determinare se l'indirizzo IP di destinazione appartiene alla stessa rete. Il primo passo è determinare la classe di appartenenza, controllando il primo byte. Il passo successivo è quello di confrontare la parte di network di indirizzo IP di entrambi. Se non coincidono, il primo host contatterà il router (default gateway), altrimenti contatterà direttamente l'interfaccia di destinazione. 〉 10 〈 Ad esempio, prendiamo in considerazione il caso in cui un host con indirizzo IP 126.55.19.24 (host A) deve spedire un pacchetto all'host 126.58.34.12 (host B): ÷ ÷ L'host A controlla il primo byte dell'indirizzo di destinazione: 126. Ne ricava che appartiene alla classe A. Da qui ne ricava che la parte da confrontare è il primo byte In questo caso i byte coincidono e quindi appartengono alla stessa rete Nel momento in cui una interfaccia di rete capisce che l'interfaccia di destinazione appartiene alla stessa rete, deve anche determinare se appartiene alla stessa subnet. Per riconoscere la subnet, ogni sistema della sottorete deve avere la stessa subnet mask, questa permette di distinguere tra network bits, subnet bits e host bits. La subnet mask ha la stessa struttura di un indirizzo IP, tuttavia di sicuro avrà il primo byte a 255. I bits a 1 indicano i network bits e i subnet bits, i bits a 0 indicano gli hosts (interfacce di rete). Ricordiamo che a seconda della classe di indirizzi un certo numero di bytes rappresentano la rete: ℵ Classe A: primo byte (8 bit) ℵ Classe B: primi due bytes (16 bit) ℵ Classe C: primi tre bytes (24 bit) Questo significa che nel momento in cui vogliamo calcolare il numero di hosts e subnets data una classe di indirizzi e una subnet mask, è necessario sottrarre il corrispondente o i corrispondenti bit dal numero totale di bits con valore 1 e quindi applicare la formula: 2^n – 2 dove n è il numero di bit che descrivono la subnet e il 2 da sottrarre rappresenta quelle due combinazioni non possibili perchè con tutti 0 descriviamo la rete, con tutti 1 descriviamo il broadcast. Come capire se due indirizzi appartengono alla stessa subnet ? E' necessario confrontare i bit della subnet negli indirizzi dati. Quanti bit confrontare ? I bit con valore 1 che ricaviamo dalla conversione dei byte o del byte dedicati/o alla subnet (cioè il numero di bit a 1 totali meno quelli della rete). Vediamo un esempio: ∇ ∇ ∇ Source: 161.55.121.133 Destination: 161.55.131.49 Subnet Mask: 255.255.248.0 Analizzando gli indirizzi, immediatamente scopriamo che sono indirizzi di classe B (primo byte ha valore 161) e quindi appartengono alla rete 161.55.0.0. In questo caso è sufficiente convertire il terzo byte della subnet mask in formato binario per capire se gli indirizzi IP dati sono nella stessa subnet: Dalla tabella rileviamo che i primi 5 bit del terzo byte rappresentano la subnet e quindi 11 bit sono dedicati agli hosts. A questo punto ci servirà confrontare i primi 5 bit del terzo byte dei due indirizzi. Ecco la conversione del terzo byte del source address: 〉 11 〈 E la conversione del terzo byte del destination address: Ricaviamo quindi che i valori dei primi cinque bit fra i due indirizzi non corrispondono, cioè i due indirizzi non appartengono alla stessa subnet. In una situazione del genere il pacchetto o datagram verrebbe inviato al router il quale si preoccuperà di instradarlo correttamente. Dalle regole qui presentate ricaviamo le tabelle di subnetting: Classe A: Subnet bits Subnet Mask Subnets Hosts 〉 12 〈 Classe B: Su bnet Mask Subnets Hosts 2 Classe C: Il default gateway è un parametro di configurazione IP che indica il passaggio di default dei pacchetti in caso di evantuale instradamento. Un default gateway può essere un router. Quindi quando un host di una sottorete invia un pacchetto ad un host non appartenente alla stessa sottorete, in realtà lo sta inviando al suo default gateway. Modulo 5 – Internetworking Si definisce Internetworking la pratica di collegare vari tipi di reti fra di loro, siano esse nella stessa locazione geografica siano esse separate. Alcune delle ragioni che portano all’internetworking includono: performance, connettività locale, sicurezza, connettività remota. Le apparecchiature di rete utilizzate per l'internetworking sono: ripetitori, concentratori, hub, bridges, hubs, switches. Questi device vengono utilizzate, oltre che per collegare sites remoti o uffici distanti tra di loro, per creare segmentazione, ovvero la divisione di devices in gruppi più piccoli allo scopo di aumentare performance e sicurezza. 〉 13 〈 La segmentazione può essere di due tipi: ◊ Fisica: avviene attraverso switch o bridge ◊ Logica: avviene attraverso router La segmentazione fisica è di solito utilizzata nelle grandi LAN in cui abbiamo più dipartimenti o divisioni. Come già accennato aiuta a risolvere problemi di congestione del traffico di rete. Per la creazione di segmentazione fisica si utilizzano protocolli di analisi o SNMP (Simple Network Management Protocol), successivamente si passa alla determinazione di come debbano essere creati i segmenti attraverso hubs, switches o bridges basandosi sul traffico analizzato; di seguito devono essere creati dei workgroup che vanno da 5 a 25 utenti (connessi a hubs) collegati quindi a porte di switches o bridges. Un'altra possibilità è quella di collegare eventuali power users (utenti che potrebbero sprecare maggiore bandwith rispetto ad altri) e servers direttamente agli switches. La segmentazione logica si effettua solitamente attraverso l'utlizzo di routers. E' applicata se si vuole ottenere performance (si limitano i broadcast alle singole subnets), sicurezza (utenti limitati in singole subnets), facilità di amministrazione (è più semplice amministrare piccole subnets piuttosto che grandi reti), connettività (è possibile connettere siti distanti attraverso i servizi WAN). 〉 14 〈 Bridge e switch imparano gli indirizzi MAC delle periferiche analizzando il source address dei pacchetti. Questi indirizzi MAC vengono poi immessi in tabelle mantenute dagli stessi bridges o switches. Il bridge è una periferica utilizzata per dividere i collision domains. Gli switch sono molto simili ma più performanti, perchè le operazioni di bridging sono state modificate in modo che le decisioni di forwarding dei pacchetti siano più veloci e intelligenti. Ci sono tre varianti di periferiche di livello OSI 2 (bridge o switch): ↔ Store-And-Forward Bridge: processa ogni singolo frame in entrata ed esamina i campi MAC address, consulta le tabelle di forward o di filtro, se non trova il destinatario esegue un forward del pacchetto a tutte le porte ↔ Store-And-Forward Switch: funziona come lo store-and-forward bridge ↔ Cut-Through Switch: funziona come uno store-and-forward switch, eccetto per il fatto che esegue una decisione di forward veloce. Esamina il campo MAC address del frame in entrata (primi 48 bit) ed esegue una decisione veloce (detta smart) nel senso che immediatamente comincia ad eseguire il forward senza aspettare che l'intero frame venga processato. Questo tipo di forwarding può aumentare notevolmente le performance della rete, riducendo la latenza o il ritardo del device stesso La fase di switching può avvenire attraverso device di diverso tipo: ° Ethernet Switching (10/100/1000/10000 Mbps) ≡ Connette LAN Ethernet ≡ Utilzza indirizzi MAC ≡ Configurabile come half-duplex o full-duplex ° Token Ring Switching (4/16 Mbps) ≡ Può essere utilizzato per connettere periferiche 4 Mbps o 16 Mbps Token Ring ≡ Ridotta latenza ° FDDI Switching (100Mbps) ≡ Connette LAN FDDI, server e router in grosse organizzazioni ≡ Bassa latenza ≡ Molto costoso ° ATM Switching (155/622 Mbps) ≡ Bandwith scalabile ≡ Architettura asincrona Nella grandi LAN è possibile osservare l'utilizzo di tecnologie ad alta velocità ove siano necessari trasferimenti di grossa mole di dati o dove la congestione del traffico non debba assolutamente essere un problema (trasferimento audio/video, banche, backbones). I router trasportano i protocolli instradabili (come l'IP) attraverso le reti. I protocolli utilizzati dai router per comunicare fra di essi e per scambiarsi le tabelle di routing sono il RIP (Routing Information Protocol) e l'OSPF (Open Shortest Path First). Questi protocolli vengono utilizzati per scoprire le reti e determinano il percorso migliore per raggiungerle, non solo, ricercano anche nuovi routers collegati e routers che si disconnettono dalla rete. La tabella di routing è utilizzata per scegliere un percorso per i pacchetti. Un esempio: 〉 15 〈 I routers sono utilizzati spesso per connettere siti remoti utilizzando WAN, lo stesso Internet è connesso da molti routers. Un protocollo di routing è un codice installato e configurato su un router. I protocolli di routing possono utilizzare algoritmi (metrica di routing) più o meno complicati, tra cui: ⇔ Distance Vector: protocolli come RIP e IGRP calcolano il percorso migliore attraverso l'hop count (numero di routers che si possono incontrare lungo il tragitto del pacchetto). Viene scelto il percorso che ha rilevato meno routers (quindi con hop count minore rispetto agli altri) ⇔ Link state: protocolli come OSPF e EIGRP calcolano il percorso attraverso variabili quali la velocità, il traffico e la disponibilità della rete. Questo tipo di operazione aumenta le performance del traffico di rete ⇔ Hybrid: combinazione tra distance vector e link state Fra i protocolli più conosciuti: Il RIP è un protocollo molto utilizzato perchè semplice da implementare, utilizza un algoritmo di tipo distance vector, usa messaggi broadcast per comunicare con gli altri router, in genere aggiorna le tabelle di routing ogni 30 secondi. I problemi rilevanti sono: limite in hop count (max 16 routers), utilizzo di UDP come protocollo di trasporto, spesso scelta del percorso lento. 〉 16 〈 L'OSPF utlizza un algoritmo link state, progettato per reti IP molto grandi come protocollo interno di routing; limita il traffico decidendo un singolo router per i messaggi di tipo broadcast (scambio tabelle di routing, scambio informazioni), supporta subnetting di lunghezza variabile, utilizza tre protocolli per conoscere la rete: ≈ OSPF Hello: controlla collegamenti e sceglie un router dedicato al broadcast ≈ OSPF Exchange: invia pacchetti per scambiare informazioni sul database di routing (tabelle) ≈ OSPF Flooding: invia avvertimenti se qualcosa (collegamenti, routers) è cambiato nella rete Un firewall è un sistema che fornisce avanzate funzionalità di sicurezza ad una rete, come ad esempio il NAT (Network Address Translation) che traduce un indirizzo IP privato in uno pubblico per poter comunicare con Internet. Attraverso un firewall è possibile filtrare pacchetti, decidere quali host in entrata o in uscita possono avere accesso, quali pacchetti o tipi di pacchetti possono entrare o uscire. Tutto è loggabile, analizzabile. Di solito un firewall sta ai confini di una rete, prima di un router o di un gateway. Modulo 6 – Virtual Private Networks Una VPN è una estensione di una rete privata che comprende collegamenti in reti condivise o pubbliche, come ad esempio Internet; essa abilita l’utente a scambiare dati tra due computer sfruttando una semplice connessione Internet in un modo che emuli le proprietà di un collegamento privato Point-To-Point. Per emulare un collegamento Point-To-Point, i dati vengono incapsulati da una header che fornisce le informazioni di routing che permettono di attraversare la rete pubblica o condivisa per raggiungere il punto finale. Naturalmente una situazione del genere non basta a mantenere protetti e illeggibili da estranei i dati transitanti, è per questo che i dati vengono criptati in modo tale che soltanto il punto iniziale e il punto finale possono leggere i dati, grazie ad una chiave segreta di criptazione (encription keys). Le applicazioni VPN sono di vario tipo, in genere permettono ad un utente distante dalla sede della propria azienda si collegarsi ad un server, il quale gli permetterà di entrare nella LAN, per condividere o prelevare dati o files. Un altro esempio è invece quello del collegamento tra due o più sedi della stessa organizzazione. Per essere implementato non ha bisogno di particolari infrastrutture; a livello logico appare come se I dati venissero inviati su un collegamento privato, anche se in realtà passano per Internet. 〉 17 〈 Infatti una connessione VPN instradata che utilizza Internet è logicamente equivalente ad un collegamento dedicato WAN. E' sufficiente un collegamento ad un ISP locale per collegarsi ad una rete remota, risparmiando gli eventuali costi di collegamento ad un server RAS magari distante centinaia se non addirittura migliaia di chilometri. Gli elementi comuni a una tecnlogia VPN sono: ∉ ∉ ∉ ∉ ∉ ∉ ∉ Server VPN: un computer che abbia attivo il servizio VPN Client VPN: un computer che inizializzi una connessione VPN; deve supportare PPTP (Point to Point Tunneling Protocol) o L2TP (Layer Two Tunneling Protocol), cioè un protocollo che supporti IPSec Tunnel: porzione di connessione in cui vengono incapsulati i dati Connessione VPN: porzione di connessione in cui vengono criptati i dati Protocolli di Tunneling: PPTP, L2TP (IPSec); quindi un sistema operativo che li supporti (Windows 2000, XP, Linux, ecc.) Dati di Tunneling: dati inviati lungo il collegamento Rete di transito: rete basata su IP, ad esempio Internet Le proprietà di una connessione VPN: ℘ Incapsulamento: i dati vengono incapsulati in un header ℘ Autenticazione: l'utente deve autenticarsi ℘ Criptazione: i dati vengono protetti e se intercettati lungo il tragitto non possono essere letti Durante la connessone al server VPN (che risponde su una interfaccia virtuale creata durante la configurazione) vengono asseganti indirizzo IP, server DNS e/o WINS (quindi funziona come un DHCP server). Modulo 7 – DHCP Nelle grosse LAN dove una configurazione manuale degli indirizzi IP e/o dei nomi delle macchine sarebbe troppo dispendiosa in termini di risorse e tempo, è bene utilizzare servizi di autoconfigurazione come BootP, DHCP, RARP. Ognuno di questi protocolli fornisce una referenza incrociata tra indirizzo di protocollo e indirizzo hardware (MAC address). Il più importante e moderno tra questi è sicuramente il DHCP (Dinamic Host Configuration Protocol). Il processo DHCP è una sequenza di quattro fasi: φ φ φ φ DHCPDISCOVER: fase in cui il client DHCP cerca un server DHCP nella rete inviando un messaggio di broadcast DHCPOFFER: fase in cui il server DHCP risponde con una offerta di indirizzo IP DHCPREQUEST: fase in cui il client risponde al server includendo uno degli indirizzi proposti DHCPACK: fase in cui il server conferma L'indirizzo IP viene confermato accompagnato da un lease time (un tempo di affitto), scaduto il quale, il server effettua una DHCPREQUEST per verificare che il client voglia rinnovare l'assegnamento dell'indirizzo IP. Un'altra fase (posteriore all'assegnamento) è: χ DHCPRELEASE: fase in cui l'indirizzo IP viene rilasciato dal client Il messaggio DHCP è composto da diversi campi: χ χ χ χ Operation Code: 1 se è una richiesta, 2 se è una risposta Hardware Type e Hardware Length: tipo di hardware e lunghezza dell'indirizzo hardware (1 e 6 per Ethernet) Hops: numero di routers incontrati Transaction ID: identificativo della transazione 〉 18 〈 χ χ χ χ χ χ χ χ χ Seconds: numero di secondi impiegati dall'operazione Flags: per il momento viene utilizzato il primo bit a sx, che rappresenta il broadcast flag Client IP Address: indirizzo IP del client Server IP Address: indirizzo IP del server da utilizzare Gateway IP Address: indica l'indirizzo IP del gateway Client Hardware Address: indirizza il MAC Address del client Server Host Name: nome host del server Boot Path & Filename: indica il path del file di boot che deve essere utilizzato dal client Options Area: dedicato alle opzioni DHCP (Subnet Mask, Time To Live, MTU, Default Gateway) Nella figura un esempio di configurazione su Windows XP: Modulo 8 – Domain Name System Il DNS è un database distribuito di mappature di nomi ed indirizzi IP. Nasce perchè ricordare la locazione di una macchina attraverso un indirizzo IP è difficoltoso e non rientra nella logica umana. Quanti indirizzi IP potremmo ricordare ? E' sicuramente più semplice ricordare dei nomi. Questo è un primo motivo dell'utlizzo del DNS. Una motivazione ben più importante è quella che un nome permette di nascondere la sua reale locazione e quindi il suo indirizzo IP, perchè questo potrebbe cambiare in seguito ad una decisione dell'amministratore o dell'ISP per esempio. In questo modo gli utenti non devono preoccuparsi delle variazioni legate all'amministrazione delle macchine, perchè il riferimento ad esse rimane invariato. La struttura dei nomi e l'implementazione del DNS permettono una distribuzione gerarchica delle autorità sui nomi di dominio. La spazio o struttura dei nomi può essere visto come un albero arbitrariamente annidato; infatti ogni organizzazione partecipante è responsabile del suo sottoalbero e di tutti gli oggetti o sottoalberi che appartengono ad esso. L'annidamento può essere arbitrariamente profondo, ad esempio mail.euronenet.it oppure mail.development.alpha.euronenet.it. I nomi di dominio hanno il formato subdomain.domain.tld (dove tld sta per top-level-domain) oppure host.domain.tld. 〉 19 〈 Esistono diverse tipologie di top-level-domain: Domini di organizzazioni: .com, .edu, .gov, .int, .mil, .net, .org, .tv Domini di paesi: .it, .de, .jp, .uk, .tw, .us, .nl, ecc. Il DNS permette la mappatura di diversi elementi, consentendo quindi il supporto di diverse applicazioni: Θ Θ Θ Θ Θ Θ Θ Θ System administrator Persona responsabile per il dominio Mail exchanger (server di posta SMTP) Hosts del dominio Pointer ad altri domini Informazioni su hardware Start of Authority (SOA) Name servers Per esempio se il mail server di un'azienda deve inviare una e-mail ad un certo [email protected], contatterà il dns chiedendo qual'è l'indirizzo IP del MX (Mail exc hanger) del dominio domain.tld. Il DNS risponderà con il suo reale indirizzo e quindi il mail server di domain.tld contatterà l'indirizzo IP dato comunicando con il servizio SMTP installato su quella macchina. 〉 20 〈 Modulo 9 – Cenni sul protocollo ICMP Il protocollo TCP/IP fornisce agli utenti un modo per poter testare la raggiungibilità di un determinato host nella rete (sia essa intranet o internet). Questo modo è il protocollo ICMP (Internet Control Message Protocol). Qualsiasi device di rete (Schede di rete, Routers, Gateways, Hubs intelligenti) può essere testata, purchè supporti o abbia abilitato il protocollo ICMP. E' un protocollo utilizzato per lo più dall'utility ping che si limita ad inviare un pacchetto per riceverne un altro; nel momento in cui si riceve un pacchetto abbiamo testato la raggiungibilità dell'indirizzo. Ogni pacchetto ICMP possiede un header di 4 byte: il primo indica il tipo, il secondo il codice e gli utlimi 2 bytes il checksum. Nella seguente tabella possiamo osservare i codici di risposta di ICMP: Tipo Codice Funzione Il comando ping invia un ICMP ECHO_REQUEST per ricevere un ICMP ECHO_RESPONSE da un host della rete. Il comando ping è utile per: ρ Determinare lo stato di un host all’interno o all’esterno della propria rete ρ Tracciare e isolare problemi di tipo hardware e software ρ Testare, misurare e amministrare reti Il comando calcola tempi di round-trip e statistiche di perdita dei pacchetti, e visualizza un sunto al termine dell’esecuzione; termina la sua esecuzione dopo la ricezione di un segnale di tipo INTerrupt da parte dell’utente (CTRL+C) o dopo il raggiungimento del timeout da parte del programma (ad esempio host non raggiungibile). Esecuzione di un ping da DOS: C:\>ping 10.110.0.112 Esecuzione di Ping 10.110.0.112 con 32 byte di dati: Risposta da 10.110.0.112: byte=32 durata<1ms TTL=255 Risposta da 10.110.0.112: byte=32 durata<1ms TTL=255 Risposta da 10.110.0.112: byte=32 durata<1ms TTL=255 Risposta da 10.110.0.112: byte=32 durata<1ms TTL=255 Statistiche Ping per 10.110.0.112: Pacchetti: Trasmessi = 4, Ricevuti = 4, Persi = 0 (0% persi), Tempo approssimativo percorsi andata/ritorno in millisecondi: Minimo = 0ms, Massimo = 0ms, Medio = 0ms C:\> 〉 21 〈 Esecuzione di ping da Unix: root@dns:~# ping 10.110.0.112 PING 10.110.0.112 (10.110.0.112): 56 octets data 64 octets from 10.110.0.112: icmp_seq=0 ttl=255 time=0.2 ms 64 octets from 10.110.0.112: icmp_seq=1 ttl=255 time=0.1 ms 64 octets from 10.110.0.112: icmp_seq=2 ttl=255 time=0.1 ms 64 octets from 10.110.0.112: icmp_seq=3 ttl=255 time=0.1 ms 64 octets from 10.110.0.112: icmp_seq=4 ttl=255 time=0.1 ms 64 octets from 10.110.0.112: icmp_seq=5 ttl=255 time=0.1 ms 64 octets from 10.110.0.112: icmp_seq=6 ttl=255 time=0.1 ms 64 octets from 10.110.0.112: icmp_seq=7 ttl=255 time=0.1 ms --- 10.110.0.112 ping statistics --11 packets transmitted, 11 packets received, 0% packet loss round-trip min/avg/max = 0.1/0.1/0.2 ms root@dns:~# L'esecuzione su Unix non termina se l'host è raggiungibile, è necessario inviare un segnale diINTerrupt al processo. Modulo 10 – Cenni sul protocollo UDP Il protocollo UDP è un protocollo di trasporto connection-less, ovvero senza controllo di stato della connessione. Ogni tipo di controllo sull'errore del flusso dati è effattuato (se presente) dall'applicazione. Viene molto utilizzato da applicazioni radio via Internet, ad esempio Shoucast di Winamp, o da protocolli come l'NFS (Network File System) su Unix per lo sharing di file o directory. I vantaggi che l'UDP può portare sono notevoli in termini di velocità, ma decadono completamente se si parla di affidabilità, poichè il protocollo in se non si preoccupa del fatto che i pacchetti arrivino a destinazione e inoltre il campo checksum (CRC) che controlla se il pacchetto è integro ed è quello originale, è opzionale. Sia il protocollo UDP che il protocollo TCP (protocolli di trasporto) utilizzano le porte per identificare un servizio o un'applicazione. I processi server vengono identificati con un numero di porta univoco, per esempio la porta 21 corrisponde al servizio FTP (File Transfer Protocol) di trasferimento file. Il client per ogni comunicazione genera una porta random, mentre i processi server devono mantenere attiva una porta, altrimenti non sarebbero identificabili dai client. Le porte possono essere di tipo registrato (registered ports) e di tipo riservato (well known ports). Le well know ports sono nel range numerico 0-1024, mentre le registered ports nel range 1025-65535. Le prime sono registrate e mantenute dalla IANA, le seconde registrate e non mantenute dalla IANA (Internet Assigned Numbers Authority). Il termine socket è utilizzato in diversi contesti, ma il significato comune è quello di coppia di valori indirizzo IP e numero di porta; può quindi essere utilizzato per descrivere un end point di una connessione TCP/IP. Ad esempio: 192.136.118.30:1427 dove 192.136.118.30 è l’indirizzo IP e 1427 è il numero di porta. Viene utilizzato anche per descrivere funzioni o oggetti (in linguaggi OOP) che rappresentano un end point (un host a cui connettersi). 〉 22 〈 Glossario 10Base2. standard IEEE/ISO 802.3 per la trasmissione su cavo coassiale RG58 da 50 ohm, con diametro di circa 5 mm. Spesso indicato come Thin wire cable o thinnet cable. Un segmento0 10Base2 puo'essere lungo fino a 185 m. 10Base5: standard IEEE/ISO 802.3 per la trasmissione su cavo coassialedefinito dalla specifica originale Ethernet "thick cable" (diametro di circa 10 mm. ed impedenza di 50 ohm). Un segmento 10base5 puo'essere lungo fino a 500 metri. 10BaseT: standard IEEE/ISO 802.3 per la trasmissione su cavo UTP. Un segmento 10BaseT puo' ammettere una distanza massima di 100 m. 10BaseF: standard IEEE/ISO 802.3 per la trasmissione in fibra ottica (10Base FP, 10BaseFB, 10BaseFL). address mask: maschera di 32 bits usata in TCP/IP per selezionare l'indirizzo della sottorete. ARP (Address Resolution Protocol): protocollo Internet usato per convertire dinamicamente un indirizzo Internet di livello network a un indirizzo di livello data link (spesso MAC). ARP lavora solo su una singola rete fisica ed e'limitato a reti che supportano il broadcast hardware. architettura di rete: schema, progetto di massima, insieme di regole che governano il progetto e le funzionalita'delle componenti hardware e software d una rete di calcolatori. ATM (Asynchronous Transfer Mode): standard CCITT per il trasferimento tramite celle di lunghezza fisica di informazioni di tipo misto (dati, voce, video etc.). banda: misura della capacita'di un sistema trasmissivo di trasmettere segnali (legata alla velocita'trasmissiva). baud: numero di simboli al secondo, cioe'numero di volte al secondo in cui un segnale puo'cambiare su una linea di trasmissione. BOOTP (Bootstrap Protocol): protocollo appartenente all'architettura di rete TCP/IP per consentire ad una macchina (generalmente) diskless di effettuare il bootstrap via locale. bps o b/s : bit per secondo. Misura della velocita'di una trasmissione di dati. bridge: dispositivo attivo che opera a livello 2 OSI, usato per creare una LAN estesa unendo due o piu'LAN. Un bridge ritrasmette selettivamente i pacchetti tra le LAN cui e'connesso. broadcast: sistema di consegna dei pacchetti che invia una copia di un dato pacchetto a tutti i nodi della rete. Il broadcast puo'essere implemetato via hardware (come in Ethernet) o via software. broadcast data link: collegamento in cui i pacchetti trasmessi da una stazione sono ricevuti da tutte le altre stazioni collegate. bus: topologia per reti locali in cui tutte le stazioni si agganciano ad un singolo mezzo trasmissivo di tipo broadcast. canale: parte di un sistema di comunicazioni che connette una sorgente ad una o piu'destinazioni. CDN (Canale Diretto Numerico): un collegamento pubblico punto-punto o multipunto sincrono a velocita'generalmente comprese tra 4800 b/s e 2 Mb/s, realizzato con tecnologia digitale. CSMA (Carrier Sense Multiple Access): caratteristica di un hardware di rete che opera consentendo a piu'stazioni di contendersi l'accesso ad un mezzo trasmissivo rimanendo in ascolto per stabilire quando il mezzo sia libero. CSMA/CD (Carrier Sense Multiple Access with Collision Detection): accesso CSMA combinato con un meccanismo che consente all'hardware di rilevare quando due stazioni tentano simultaneamente una ritrasmissione. cavo coassiale: tipo di cavo elettrico in cui un conduttore centrale e'circondato da un isolante, a sua volta inserito in uno strato di metallo tubolare il cui asse coincide con il conduttore centrale. cella: pacchetto corto di lunghezza fissa (tipicamente 53 byte). circuito virtuale: circuito, implementato tramite una rete a commutazione di pacchetto, che offre la simulazione di una connessione punto-punto fra due nodi. circuito virtuale permanente: circuito virtuale, allocato permanentemente dal gestore della rete per la comunicazione tra due nodi circuito virtuale commutato: circuito virtuale creato dinamicamente su richiesta di un nodo per la durata della comunicazione e che viene terminato quando non esistono piu'dati da trasmettere. Il circuito virtuale viene detto talvolta chiamata virtuale (VC). collision domain: singola rete locale CSMA/CD in cui, se due stazioni trasmettono contemporaneamente, i pacchetti vanno in collisione. Le stazioni separate da ripetitori fanno parte dello stesso collision domain. Le stazioni separate da bridge, router o gateway fanno parte di collision domain diversi. collisione: trasmissione simultanea di due o piu' stazioni su un mezzo trasmissivo condiviso (in ambiente CSMA/CD). Rende inutilizzabili i dati trasferiti. 〉 23 〈 commutazione di circuito: metodo per consentire ad apparati telefonici o di trasmissione dati una connessione su base temporanea. Quando la connessione viene stabilita, le due stazioni si possono pensare come connesse da un cavo unico, poiche' l'intera banda dei cavi utilizzati per il si sistema di commutazione e' interamente disponibile agli apparati (stazioni). Il ritardo nel trasferimento di informazione e' ridotto al minimo imposto dalle leggi di propagazione del segnale nel mezzo trasmissivo. commutazione di pacchetto: metodo di commutazione che raggruppa l'informazione digitale da trasmettere in pacchetti (trame) ed effettua la trasmissione su una rete con mezzi trasmessivi condivisi. I canali di comunicazione vengono occupati a turno per la durata di trasmissione di un pacchetto. datagram: pacchetto trasmesso tramite un protocollo non connesso. dominio di routing: insieme di end node e routers che condividono le informazioni di routing, operano seguendo lo stesso protocollo di routing e sono gestiti da un amministratore comune. doppino: coppia di cavi isolati intrecciati in modo che siano esposti in ugual modo ai segnali elettrici provenienti dall'ambiente. La coppia di fili puo' essere circondata da uno schermo, una guaina isolante o coppie di fili simili. end node: termine usato per indicare un nodo che puo' agire solo come sorgente o destinazione finale nel trasferimento dati, e che non effettua funzioni di routing. Ethernet: rete locale operante a 10 Mb/s con MAC CSMA/CD. flooding: algoritmo di routing in cui un router propaga i pacchetti a tutti i routers adiacenti. Frame Relay: standard per la realizzazione di reti a commutazione di pacchetto, pubbliche o private, utilizzando un protocollo di livello 2, connesso, su cui vengono definiti dei circuiti virtuali permanenti (PVC). full-duplex : tipo di comunicazione in cui le informazioni possono essere trasmesse in entrambe le direzioni contemporaneamente. Chiamato anche duplex. E' l' opposto di half duplex. gateway: dispositivo usato per connettere reti che seguono architetture diverse. La funzione di gateway e' quella di convertire i protocolli di un'architettura in quelli di un'altra. half-duplex: tipo di comunicazione in cui i dati possono essere trasmessi in entrambe le direzioni su un'unico canale di connessione, ma in una sola direzione per volta. E' il contrario di full duplex. header: parte iniziale di un messaggio, che contiene generalmente l'indirizzo di destinazione, della sorgente, la numerazione del messaggio ed altre informazioni di controllo. HDLC (High Level Data Link Control): protocollo standard internazionale del livello di data link usato per realizzare comunicazioni in ambiente di rete geografico (WAN). hop: termine usato nel routing per riferirsi ad un passaggio da un nodo ad un nodo adiacente attraverso un singolo data link. hop count: misura della distanztra due punti in Internet. Uno hop count pari a n indica che n router separano la sorgente dalla destinazione. host: computer connesso ad una rete che offre servizi a livello applicativo (computazione, accesso a data base, programmi speciali). ICMP (Internet Control Message Protocol) : protocollo complementare ad IP, che gestisce gli errori ed i messaggi di controllo. I router e gli host usano ICMP per inviare una notifica dei problemidatagram alla orgente dei medesimi. ICMP include anche un servizio di eco di richiesta/risposta, che serve per verificare se una destinazione e' raggiungibile ed attiva. incapsulamento: tecnica usata dai protocolli di rete in cui un protocollo (generalmente ma non necessariamente a livello piu' basso) accetta un messaggio da quello a livello superiore e lo inserisce nella parte dati di un proprio pacchetto. indirizzo di rete: insieme di numeri che identificano univocamente una stazione a livello di network indirizzo hardware: indirizzo di livello 2, sottolivello MAC, usato nelle reti locali, lungo tipicamente 48 bit ed assegnato al produttore alla scheda di rete. indirizzo Internet: indirizzo di rete a 32 bit assegnato alle interfacce degli host e dei router che utilizzano l'architettura di rete TCP/IP, scritto generalmente in notazione puntata. IP (Internet Protocol): protocollo standard di livello 3 di tipo non connesso, usato nel;l'architettura di rete TCP/IP. LAN (Local Area Network): tipo di sottorete che soddisfa le necessità di comunicazione ad alta velocita' (di solito da decine di Mb/s fino a parecchi Gb/s) e a distanze relativamente brevi tra dispositivi intelligenti. Le LAN sono generalmente delimitate al singolo edificio o ad un gruppo di edifici su un singolo comprensorio. Definizione IEEE 802: "Sistema di comunicazione che permette ad apparecchiature indipendenti di comunicare tra loro entro un'area limitata utilizzando un canale fisico a velocità elevata e con basso tasso di errore" . 〉 24 〈 LLC (Logical Link Control): sottolivello superiore del livello di Data Link, che fornisce all'utente servizi per accedere alla LAN senza doversi preoccupare del tipo di controllo di accesso al mezzo fisico usato. Sono forniti sia servizi connessi che non connessi a più protocolli di livello superiore contemporaneamente. MAC (Medium Access Control): sottolivello inferiore del livello di Data Link che e' responsabile di eseguire procedure che gestiscono l'accesso al mezzo trasmissivo condiviso. Il sottolivello MAC fornisce servizi non connessi al sottolivello di Logical Link Control. modem: acronimo derivante dalle parole modulatore e demodulatore. Dispositivo che consente di trasmettere e ricevere dati digitali su un canale di tipo analogico. multicast: tipo di indirizzamento implementato da un data link di tipo broadcast con cui ogni stazione puo' spedire una singola trasmissione ad un insieme selezionato di altre stazioni collegate al medesimo data link. Alcuni hardware (ad es. ethernet) supportano il multicast permettendo ad un'interfaccia di rete di appartenere ad uno o piu' gruppi multicast. Il broadcast e' uno speciale tipo di multicast, in cui il sottoinsieme di macchine selezionate e' l'intero insieme. nodo: termine usato per riferirsi ad un dispositivo che contiene almeno una istanza a livello di rete e dei sottostanti livelli di data link e fisico. PDU (Protocol Data Unit): pacchetto di dati trasmesso da un’entità di un nodo ad un'entita' di pari livello di un altro nodo. protocollo: descrizione formale dei formati dei messaggi e delle regole che due o più macchine devono seguire per scambiarsi tali messaggi. I protocolli possono descrivere dettagli di basso livello delle interfacce tra macchina e macchina o scambi di alto livello tra programmi applicativi. La maggior parte dei protocolli include sia descrizioni intuittive delle interazioni attese, sia specifiche più formali usando modelli di macchine a stati finiti. relaying: funzione che compie un router nel muovere un pacchetto da un nodo al successivo, lungo il cammino che deve percorrere lungo la rete. ripetitore: dispositivo usato per trasmettere segnali da un segmento di cavo ad un altro in una LAN. Un ripetitore opera a livello fisico, ed il suo funzionamento e' invisibile ad ogni altro livello superiore. La funzione di un ripetitore e' di ricevere un segnale da un segmento di cavo e di ritrasmetterlo su uno o piu' segmenti, rigenerando cosi' il segnale. ritrasmissione: metodo di correzione degli errori in cui le stazioni che ricevono un messaggio corrotto non mandano un acknowledge, o ne mandano uno negativo, inducendo la stazione trasmittente a ritrasmettere il messaggio. La ritrasmissione e' preferibile ai metodi che ricostruiscono i bit danneggiati sulla base di codici di correzione, perche' le linee di comunicazione (in particolare delle LAN) presentano tipicamente raffiche di errori (burst) che danneggiano seriamente un messaggio occasionalmente, piuttosto che danneggiarne lievemente molti. route: in generale, una route e' il cammino che il traffico di rete percorre dalla sorgente alla destinazione. In Internet ogni datagram IP e' instradato separatamente; il cammino che un datagrangram segue puo' includere molti router e molte reti fisiche. router: apparato in grado di instradare i pacchetti da un nodo ad un altro, ammettendo eventualmente l'esistenza di piu' cammini tra i nodi. I router collaborano per decidere il cammino ottimale che ogni pacchetto deve percorrere da un nodo sorgente ad un nodo destinatario. I router operano a livello 3 OSI (network). routing: funzione del livello di rete che determina il cammino migliore per trasferire ogni pacchetto verso la destinazione, basandosi sulla topologia corrente della rete. routing dinamico: tecnica di instradamento dei pacchetti in cui gli instradamentoi possono essere modificati dinamicamente. routing statico: tecnmica di routing in cui tutte le informazioni di routing sono precalcolate per ogni nodo, e sono fornite ad ogni router tramite un'operazione di gestione manuale. SMTP (Simple Mail Transfer Protocol): protocollo standard di Internet per trasferire la posta elettronica da una macchina all'altra. SMTP specifica come interagiscono due sistemi per la posta ed il formato dei messaggi di controllo scambiati tra i medesimi. spanning tree: algoritmo che riconfigura una topologia magliata di una Bridged Local Area Network in una topologia ad albero, eliminando i loop nel caso che ci siano dei percorsi alternativi. Trattato dallo standard IEEE802.1D stazione: per la maggior parte delle reti una stazione corrisponde ad una particolare istanza dei livelli data link e fisico, e corrisponde ad un singolo punto di attacco ad un segmento di mezzo trasmissivo. tabella di routing: tabella che indica le linee, i costi di trasmissione, lo stato di congestione ed altri parametri associati ai possibili cammini verso ogni destinazione. 〉 25 〈 telnet: protocollo standard i TCP/IP per servizi di emulazione di terminali remoti. telnet consente ad un utente di un sito di interagire con un sistema remoto in un altro sito come se il terminale dell'utente fosse connesso direttamente alla macchina remota. TCP/IP (Transmission Control Protocol/Internet Protocol): architettura di rete e insieme di protocolli generalmente associati al sistema operativo UNIX, usati per realizzare una rete interconnettendo sottoreti di vario tipo. TCP/IP e' il nome piu' comunemente usato, ma il termine piu' corretto e' Internet Protocol Suite. TCP (transmission Control Protocol) : protocollo di trasporto standard di Internet, che offre un servizio connesso, affidabile e full- duplex. TCP di solito si appoggia sul protocollo IP. UDP (User Datagram Protocol) : protocollo standard di Internet che consente ad un programma applicativo su una macchina di inviare un datagram ad un programma applicativo su un'altra macchina. UDP usa l'Internet Protocol (IP) per trasmettere i datagram. WAN (Wide Area Network) : rete costruita usando servizi di comunicazione pubblici che si estende su un'area geografica. 〉 26 〈