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 〈