1 INTRODUZIONE. Comunicazione: trasferimento di informazioni secondo convenzioni prestabilite.



Documenti analoghi
Dal protocollo IP ai livelli superiori

Topologia delle reti. Rete Multipoint: ogni nodo è connesso agli altri tramite nodi intermedi (rete gerarchica).

Lo scenario: la definizione di Internet

Reti di Calcolatori. Il software

Reti di calcolatori. Reti di calcolatori

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione

Linux User Group Cremona CORSO RETI

Reti di Calcolatori

INDIRIZZI IP ARCHITETTURA GENERALE DEGLI INDIRIZZI IP FORME DI INDIRIZZI IP CINQUE FORME DI INDIRIZZI IP

Introduzione al TCP/IP Indirizzi IP Subnet Mask Frame IP Meccanismi di comunicazione tra reti diverse Classi di indirizzi IP Indirizzi IP privati e

Internet e protocollo TCP/IP

SWITCH. 100 Mb/s (UTP cat. 5E) Mb/s SWITCH. (UTP cat. 5E) 100 Mb/s. (UTP cat.

Protocolli di Comunicazione

ARCHITETTURA DI RETE FOLEGNANI ANDREA

Programma del corso. Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori

Indirizzi Internet e. I livelli di trasporto delle informazioni. Comunicazione e naming in Internet

Reti di Telecomunicazioni Mobile IP Mobile IP Internet Internet Protocol header IPv4 router host indirizzi IP, DNS URL indirizzo di rete

Informatica per la comunicazione" - lezione 8 -

Corso di Sistemi di Elaborazione delle informazioni. Reti di calcolatori 2 a lezione a.a. 2009/2010 Francesco Fontanella

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

Reti di Telecomunicazione Lezione 6

Architettura del. Sintesi dei livelli di rete. Livelli di trasporto e inferiori (Livelli 1-4)

InterNet: rete di reti

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00

Reti di Calcolatori. Vantaggi dell uso delle reti. Cosa è una rete? Punto di vista logico: sistema di dati ed utenti distribuito

Internet, così come ogni altra rete di calcolatori possiamo vederla suddivisa nei seguenti componenti:

Apparecchiature di Rete

Reti di Telecomunicazione Lezione 8

Laboratorio di Informatica Corso di laurea in Lingue e Studi interculturali. AA Paola Zamperlin. Internet. Parte prima

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

Protocollo IP e collegati

Reti e Internet: introduzione

Reti di Calcolatori. una rete di calcolatori è costituita da due o più calcolatori autonomi che possono interagire tra di loro una rete permette:

Protocolli applicativi: FTP

Reti di Calcolatori. Il Livello delle Applicazioni

Internet. Introduzione alle comunicazioni tra computer

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Parte II Lezione 5

Reti di calcolatori. Lezione del 10 giugno 2004

3. Introduzione all'internetworking

ARP (Address Resolution Protocol)

Finalità delle Reti di calcolatori. Le Reti Informatiche. Una definizione di Rete di calcolatori. Hardware e Software nelle Reti

Nelle reti di calcolatori, le porte (traduzione impropria del termine. port inglese, che in realtà significa porto) sono lo strumento

Comunicazione nel tempo

I canali di comunicazione

IP (Internet Protocol) sta al livello 2 della scala Tcp/Ip o al livello 3 della scala ISO/OSI. Un indirizzo IP identifica in modo logico (non fisico

Reti LAN. IZ3MEZ Francesco Canova

Il funzionamento delle reti

Reti di Calcolatori. Corso di Informatica. Reti di Calcolatori. Reti di Calcolatori. Corso di Laurea in Conservazione e Restauro dei Beni Culturali

CORSO DI RETI SSIS. Lezione n.2. 2 Novembre 2005 Laura Ricci

Introduzione alle applicazioni di rete

Introduzione alla rete Internet

Inizializzazione degli Host. BOOTP e DHCP

Elementi di Informatica e Programmazione

Cos è. Protocollo TCP/IP e indirizzi IP. Cos è. Cos è

GLI INDIRIZZI DELL INTERNET PROTOCOL (IP ADDRESS) 2. Fondamenti sugli indirizzi dell Internet Protocol 2. Struttura di un indirizzo IP 2

Reti di elaboratori. Reti di elaboratori. Reti di elaboratori INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042)

2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine.

Corso di Sistemi di Elaborazione delle informazioni. Reti di calcolatori 3 a lezione a.a. 2009/2010 Francesco Fontanella

Reti diverse: la soluzione nativa

Reti di Calcolatori: una LAN

Identità sulla rete protocolli di trasmissione (TCP-IP) L architettura del sistema. Dal livello A al livello B

Il funzionamento delle reti


Gestione degli indirizzi

Introduzione alla rete Internet

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00

Il livello 3 della pila ISO/OSI. Il protocollo IP e il protocollo ICMP

TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI

Reti. Reti. IPv4: concetti fondamentali. arp (address resolution protocol) Architettura a livelli (modello OSI)

GLI APPARATI PER L INTERCONNESSIONE DI RETI LOCALI 1. Il Repeater 2. L Hub 2. Il Bridge 4. Lo Switch 4. Router 6

UDP. Livello di Trasporto. Demultiplexing dei Messaggi. Esempio di Demultiplexing

Elementi di Informatica e Programmazione

Reti standard. Si trattano i modelli di rete su cui è basata Internet

PARTE 1 richiami. SUITE PROTOCOLLI TCP/IP ( I protocolli di Internet )

TEST DI RETI DI CALCOLATORI I (9400N) anno 1999/2000

Reti Informatiche. dott. Andrea Mazzini

Gestione degli indirizzi

Reti diverse: la soluzione nativa

Siti web centrati sui dati (Data-centric web applications)

COMPLESSO SCOLASTICO INTERNAZIONALE GIOVANNI PAOLO II. Pianificazione di reti IP (subnetting)

Introduzione alla rete Internet

Con accesso remoto s'intende la possibilità di accedere ad uno o più Personal Computer con un modem ed una linea telefonica.

Comprendere cosa è Internet e sapere quali sono i suoi principali impieghi. 25/09/2011 prof. Antonio Santoro

Dispositivi di rete. Ripetitori. Hub

Livello di Rete. Gaia Maselli

Applicazioni web centrati sui dati (Data-centric web applications)

SUITE PROTOCOLLI TCP/IP ( I protocolli di Internet )

FTP. Appunti a cura del prof. ing. Mario Catalano

IP Internet Protocol

Creare una Rete Locale Lezione n. 1

Gli indirizzi dell Internet Protocol. IP Address

Standard per Reti a Commutazione di Pacchetto Prof. Vincenzo Auletta Università degli studi di Salerno Laurea in Informatica

Università degli Studi di Pisa Dipartimento di Informatica. NAT & Firewalls

Transmission Control Protocol

Cos'è una vlan. Da Wikipedia: Una LAN virtuale, comunemente

Internet Internet è universalmente nota come la Rete delle reti: un insieme smisurato di computer collegati tra loro per scambiarsi dati e servizi.

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Prova completa Martedì 15 Novembre 2005

CAPITOLO 1. Introduzione alle reti LAN

MODELLI ISO/OSI e TCP/IP

La classificazione delle reti

Transcript:

1 INTRODUZIONE Introduzione ITU: International Telecomunication Union, è una compagnia riconosciuta dall' ONU e a cui partecipano i governi che da delle raccomandazioni in materia di reti. Molte diqueste diventano standard. IETF: Internet Engineering Task Force è un ente non legalmente riconosciuto che da delle direttive in materia di internet, emette delle RFC (Request For Comments) che spesso diventano standard di fatto data la portata dell'organizzazione. Comunicazione: trasferimento di informazioni secondo convenzioni prestabilite. Telecomunicazione: qualsiasi trasmissione e ricezione di segnali che rappresentano segni, scrittura immagini e suono, informazioni di qualsiasi natura, attraverso cavi, radio o altri sistemi ottici e elettromagnetici. Bit: Binary Information unit, è una misura logaritmica in base 2 dell'informazione. NAT: NAtural information unit, è una rappresentazione in base naturale dell'informaione. Banda: ampiezza spettrale di un segnale o di un canale (es. intervallo di frequenze in cui si trasmette), nelle telecomunicazioni viene spesso indicato il numero di dati per unità di tempo (bit/s, non esistono ufficialmente i bps) Capacità di un canale: massima velocità di trasmissione del canale, dipende dalla tecnologia con cui sono realizzati trasmettitore e ricevitore. Traffico offerto: quantità di dati che un host cerca di inviare sulla rete Traffico smaltito (troughput): porzione del traffico offerto che riesce ad essere consegnata correttamente a destinazione. Il troughput è sempre minore o uguale sia della capacità del canale che del traffico offerto. Tipologie di reti Rete di telecomunicazioni: un insieme di nodi e canali che fornisce un collegamento tra due o più punti per permettere la telecomunicazione tra essi. Nodo: punto in cui avviene la commutazione (processo di interconnestione di unità funzionali). Canale: un mezzo di trasmissione, può essere unidirezionale o bidirezionale; un canale unisce almeno due nodi. Canale punto-punto: il canale congiunge due soli nodi dai quali viene usato in modo paritetico (ponti radio). Canale multipunto: più nodi sono collegati ad uno stesso canale, c'è un Master che coordina l'attività degli Slave, gli slave comunicano tra loro ma sotto il controllo del master (es. Bluetooth). Canale brodcast: c'è un unico canale condiviso da tutti i nodi, l'informazione trasmessa da uno viene ricevuta da tutti, per questo deve contenere l'indirizzo di destinazione.

Topologia delle reti La disposizione di nodi e canali influisce sulla topologia delle reti; ogni disposizione ha determinati vantaggi e svantaggi. La topologia è definita da un grafo dove i vertici rappresentano i nodi e gli archi i canali. I canali possono essere diretti (orientati, unidirezionali) o indiretti (non orientati, bidirezionali). N è il numero di nodi e C il numero di canali. Topologia completamente magliata (mesh): C = N (N-1)/2 ogni nodo comunica con tutti gli altri, ha un'alta tolleranza ai guasti dato che, se si guasta un canale, i nodi possono continuare a comunicare. Tra due nodi esiste solo un percorso diretto (e di conseguenza una scelta ovvia di percorso a minima distanza) e l'alto numero di connessioni fisiche la rende molto costosa e complessa da gestire. Viene usate per connessioni ad alta sicurezza (strutture militari) o nei casi in cui l'uso di una connessione completamente magliata non implica l'uso di risorse fisiche (es. p2p). Topologia ad albero: C = N-1 è molto economica avendo un basso numero di canali, esiste un solo percorso tra due nodi ma è anche molto vulnerabile ai guasti: la perdita di un canale implica l'impossibilità di comunicare con gli altri oltre il guasto. È usata per ridurre i costi. Topologia a stella: C = N è usata per ridurre i costi di stesura dato che ha pochi nodi, ogni nodo ha solo una scelta possibile e la complessità è completamente demandata al centrostella (che non è un nodo). È vulnerabile ai guasti del centro, viene usata spesso nella parte terminale delle reti (centraline telefoniche, router, satelliti, cellulari). Topologia magliata: versione più economica della magliata, non tutti i nodi hanno a disposizione lo stesso numero di canali, la scelta del percorso può essere complicata e non tutti i nodi hanno la stessa sicurezza. La sicurezza e la tolleranza ai guasti può essere aumentata a piacere. Un esempio di questa rete è internet e la telefonia. Topologia ad anello: può essere unidirezionale C = N/2 o bidirezionale C = N, ha una certa tollerenza ai guasti dato che se salta un canale esiste un percorso alternativo (unico) ed è più economica della rete mesh. Viene usata nelle dorsali telefoniche. Topologia a bus: C = N-1 (bus attivo): è una sequenza di nodi connessi p2p; C = 1 (bus passivo) tutti i nodi sono collegati allo stesso canale. Esiste una sola scelta possibile, viene usata in reti locali e metropolitane. Componenti fisici delle reti Switch: è un apparato che collega temporaneamente un nodo ad un altro (telefoni, computer...) inizialmente erano di tipo meccanico, oggi sono tutti di tipo elettronico vista la riduzione del costo della capacità di elaborazione. Crea una rete a stella e il collegamento tra due nodi è di tipo punto-punto. Trunk: si usa per far comunicare fisicamente due switch, si tratta di una connessione di grande capacità, inizialmente costituita da un gran numero di doppini in rame, oggi in genere è in fibra ottica. Analogico: ho infiniti valori (continui) in cui il segnale varia nel tempo. Le reti telefoniche operano nella banda (range di frequenze) 300-3400Hz. Soffre di interferenze ed attenuazione, per questo non supera i 5 km e non è possibile amplificare il segnale poiché si amplificherebbero anche le distorsioni rendendo impossibile una ricostruzione.

Digitale: è rappresentato da cifre (es. binarie), è possibile ricostruire un valore da un segnale degradato, entro certi limiti, poiché so che ho solo determinati valori (es. 0, 1) quindi si può estendere la portata con dei ripetitori che ricostruiscono esattamente il segnale iniziale, circa ogni 2 km. In una rete analogica il percorso è dedicato, quindi la banda a disposizione è stabile, in una connessione dati invece la banda è condivisa. Multiplexing: multiplazione, su un singolo doppino si possono inviare più chiamate. PCM: il segnale analogico è campionato circa 8000 volte al secondo (compresso a 8 bits) e quindi viene convertito in segnale digitale (alla centrale telefonica per le linee normali, direttamente alla sorgente per i cellulari). Per il teorema di Nysquis-Shannon devo campionare almeno al doppio della frequenza massima per ottenere una buona ricostruzione da digitale ad analogico (3400*2 = 6800 ~ 8000 bytes = 8000*8 bits = 64kbps velocità standard ISDN). Per ridurre il numero di connessioni fisiche fra gli switch della rete telefonica, si utilizza un unico collegamento fisico (es. rame, fibra, microonde etc) sul quale vengono veicolate n comunicazioni contemporanee di tipo circuit switching. Tale tecnica viene denominata multiplexing (multiplazione). Nel trunk viaggiano solo segnali digitali, riconvertiti in analogici soo nel local loop ( ultimo miglio ); gli switch effettuano sia lo switching che la digitalizzazione. Internet Protocollo: Un protocollo definisce il formato e l ordine dei messaggi scambiati tra due o più entità in comunicazione, così come le azioni intraprese in fase di trasmissione e/o ricezione di un messaggio o di un altro evento, comprende sintassi, semantica e temporizzazione. Sintassi: insieme dei formati che consentono il riconoscimento di un messaggio, vengono rappresentati in bit e a livello fisico corrispondono a segnali elettrici. Semantica: algoritmi che definiscono il funzionamento di un protocollo es. se un pacchetto viene perso bisogna ritrasmetterlo Temporizzazione: logica temporale di funzionamento di un protocollo, timeout, eventi... Internet è composto in periferia da sistemi terminali, reti di accesso e collegamenti, nel nucleo invece si trovano sistemi di commutazione di circuito e di pacchetto, router e la rete delle reti. Sistemi terminali (host): fanno girare software applicativi e si trovano all'estremità della rete. Architettura client/server: l'host (client) richiede e riceve un servizio in esecuzione su un altro terminale (server). Architettura peer to peer: è un tipo di architettura in cui ci sono pochi o nessun server (Bittorrent, Skype). Trasmissione dei segnali Modem: Modulatore/demodulatore, trasforma i dati in segnali analogici, è un segnale modulato in frequenza a rappresentare i bit. La centrale ridigitalizza il segnale e lo invia sul trunk verso l'isp.

Portante: è un'onda che varia tra due potenziali e viene modulata in frequenza, ovvero la differenza di potenziale tra i picchi è costante ma cambia la frequenza con cui l'onda passa da un potenziale all'altro. Multiplexing FDM: Frequency Division multiplexing, trasmetto su un range tra 0 e 96000 Hz, ad ogni chiamata dedico 4000Hz e in questo modo posso trasmettere 24 chiamate sullo stesso cavo traslando le frequenze. Questo sistema è il più vecchio e non è più in uso. TDM: Time Division Multiplexing, vengono dati degli slot temporali e ogni byte di ogni telefonata ha uno specifico slot. Funziona solo con segnali digitali e deve essere perfettamente sincronizzato, i byte delle telefonate sono iniviati sempre nello stesso ordine. La centrale poi demultipla il segnale e eventualmente lo riconverte. La velocità è un multiplo della velocità del canale base (es. 64kbps * numero di canali logici). Overhead: sono informazioni supplementari che devono essere tramesse per mantenere la sincronizzazione e segnalare eventuali errori. È tuttora usato, esistono due standard: T1 usato in America e Giappone, ed E1 usato in Europa. Tecnologie trasmissive T1: è lo standard americano e giapponese, dispone di 24 canali a 8 bit e un bit di sincronizzazione; la velocità totale è quindi 8*24*8000+8000 = 1,544Mbps E1: è lo standard europeo, ha 30 canali per le chiamate e 2 canali di overhead (1 per la sincronizzazione e 1 per la segnalazione); la velocità totale è di 8*38*8000 = 2,048 Mbps Entrambi viaggiano su 4 cavi con standard ISDN, oltre che per le chiamate possono essere richiesti appositamente per avere internet ad alta velocità sull'ultimo miglio. È possibile l'aggregazione di più canali per aumentare la velocità (T1, T2, T3, T4, E1,, E5). I due standard differenti creano notevoli difficoltà nella differenza di tecnologie trasmissive di trunk fra Europa e USA: la sincronizzazione può essere differente per minime variazioni di clock tra le due tecnologie; è quindi necessario un sistema di riempimento dei byte trasmessi con bit fittizi (bit suffering) e sono presenti difficoltà nel demultiplexing. SDH: Syncronous Digital Hierarchy, viene creato per risolvere i problemi di comunicazione tra E1 e T1; è uno standard mondiale che sta sostituendo il PDH. Ha una sofisticata gestione degli errori attraverso puntatori che riescono a compensare eventuali asincronie dei dati in modo da non avere perdite. La fibra ottica viene introdotta negli anni 70 per aumentare la quantità di dati trasmissibili. Non risente di interferenze EM e la luce subisce un'attenuazione molto minore rispetto al segnale elettrico. Questo permette trasmissioni su lunghissime distanze senza bisogno di ripetitori (decine o centinaia di chilometri) e il diodo laser che genera il segnale può trasmettere molto più velocemente, quindi si possono trasferire più dati per unità di tempo. ISDN BRI: è un tipo di rete telefonica dove la digitalizzazione parte dal telefono, quindi anche il local loop trasmette in digitale. Si usa il TDM anche in questo caso; nell'unico local loop sono presenti 3 canali logici (canali B1 e B2 a 64 kbps e canale D a 16kbps usato per le segnalazioni ossia lo scambio di messaggi testuali fra i vari dispositivi).

L'infrastruttura oltre l'ultimo miglio è quella standard, mentre lapparecchio telefonico deve essere sostituito. Il segnale è diviso in frame da 48 bit, si trasmettono 4000 frame al secondo quindi la linea ha velocità di 4000*48 = 192kbps Nel caso si renda necessario avere velocità maggiori si può utilizzazare un flusso primario o ISDN PRI con 30 canali, ovvero una connessione E1 usata sia per trasmissioni dati che chiamate nelle aziende (soprattutto prima della ADSL); essendo una rete dedicata ha una banda garantita. Circuit Switching: è un tipo di connessione in cui il percorso che seguono i dati viene stabilito prima di iniziare la trasmissione. Una volta creato il circuito tutti i dati transitano su di esso, il ritardo introdotto è costante per ogni pacchetto e i pacchetti arrivano quindi nell'ordine in cui sono stati trasmessi. La banda disponibile è garantita dall'inizio alla fine della connessione. Packet Switching: in questo caso invece il pacchetto contiene le informazioni necessarie per essere indirizzato nella rete fino alla destinazione. I pacchetti possono seguire strade diverse e quindi è necessario un sistema per gestire il riordinamento. Questo permette avere più comunicazioni su un singolo canale e più canali per una singola comunicazione. La connessione può essere Connection Oriented oppure Connectionless. Dati a pacchetti L'idea dei pacchetti nasce in ambito informatico e si basa sul fatto che i dati, a differenza della voce, non hanno necessità di essere trasmessi in maniera assolutamente sincrona ma possono essere anche ritardati (bufferizzati), quindi tutto l'apparato TDM altamente sofisticato e costoso non era più necessario. Oltretutto il TDM assegna periodicamente degli slot temporali che risultano occupati anche se non si trasmettono dati, sprecando in questo modo banda. Un messaggio viene spezzato e trasformato in vari pacchetti: insiemi di bit in parte rappresentante i dati (payload), in parte un header che da varie informazioni, in particolare un numero che permette di ricostruire il messaggio originale e informazioni di integrità. Ogni strato attraverso cui passa aggiunge un nuovo header. Vantaggi: Questo sistema garantisce una velocità maggiore rispetto a quella fornita per la voce, ma senza i costi e i tempi di attivazione (posatura) necessari per connessioni T1 o E2. Il pacchetto occupa il canale solo per un tempo estremamente limitato e solo quando necessario, quindi migliora l'utilizzo generale del canale e si riducono i costi. Svantaggi: l'introduzione di ritardi (delay) e la variabilità di questo

messaggio (jitter) le rende poco adatte alle trasmissioni voce. Gli header aggiunti da ogni strato inoltre occupano un certo spazio e costituiscono un overhead trasmissivo, mentre nelle reti circuit switching l'unico layer è quello a livello 1. TDM continuous: la banda viene completamente riservata al singolo pacchetto, se non è disponibile il pacchetto viene memorizzato in appositi buffer e rilasicato appena il canale è disponibile (Store&Forward). Viene usato nelle reti ethernet. Funzionamento delle reti reali Socket: area di memoria che gestisce un flusso di messaggi (non di pacchetti); il messaggio viene suddiviso in pacchetti a livello TCP e aggiunge un header che contiene un numero del pacchetto (che servità poi per riordinarli). Il destinatario reinvia un pacchetto (ACK, acknowledge) dove conferma la ricezione. Network: è un livello del sistema operativo che aggiunge nell'header l'ip del mittente e del destinatario (IP header). Data Link: aggiunge un altro header che varia a seconda del tipo di trasmissione effettuata (Es. ehternet aggiunge il MAC). La trasmissione vera e propria inizia in questo punto; l'insieme di header e dati è detto frame, la procedura di aggiunta di header ai dati è detta incapsulation. Reti WAN packet switching: attraverso un modem DCE vengono tradotti i dati ed i pacchetti vengono indirizzati attraverso una serie di switch instradandoli fino ad un altro modem. Reti WAN Connection Oriented: questo tipo di connessione si basa sul concetto di virtual channel, ogni link di interconnessione tra gli switch viene suddiviso in più virtual channel ognuno identificato da un particolare codice (VCI, Virtual Channel Identifier). Ogni pacchetto ha un VCI per distinguerlo da tutti gli altri pacchetti che transitano sullo stesso link ma riguardano altre connessioni. Il VC può essere preconfigurato (Permanent VC), in questo caso viene settato dall'operatore telefonico e resta uguale fino alla cessazione del contratto costituendo un canale diretto tra due utenti, altrimenti può essere settato tramite un segnale detto call-setup che imposta il percorso temporaneamente (Switched VC) e rilasciato al termine della connessione. Lo switch possiede una tabella (settata attraverso i metodi precedenti) che specifica in che modo i pacchetti che arrivano con un certo VCI devono essere indirizzati verso un altro switch che fa una successiva associazione. Il primo switch della WAN determina, per tale messaggio, in base al DTE (Data Terminal Equipment) chiamato ed apposite informazioni preconfigurate di instradamento, quale deve essere il successivo switch di inoltro e quindi il link da usare; assegna inoltre alla connessione il primo valore libero di VCI libero. Il VCI identifica quindi la specifica connessione all'interno di ogni link, ma esso non è constante fra i vari link per la stessa connessione in quanto ogni switch, a monte del link, sceglie il primo valore di VCI libero. Questo tipo di reti ha un overhead limitato poiché ridotto al VCI e poche altre informazioni, e lo switch esegue un'attività molto semplice limitandosi a bufferizzare ed instradare dopo averne modificato il VCI. Reti WAN Connection Less: queste connessioni si basano unicamente sull'indirizzo IP di destinazione usando apposite tabelle di routing. Questo comporta un maggiore overhead ma anche la possibilità di eseguire un instradamento alternativo nel caso in cui uno dei router smetta di funzionare. Reti dei due tipi possono convivere (come di fatto succede) grazie all'incapsulamento dei dati.

X.25: DTE (Data Terminal Equipment): rappresentano le stazioni da connettere; DCE (Data Circuit-terminating Equipment): sono i dispositivi di connessione che consentono la comunicazione fra DTE e PSE (modem X.25). Nota: i segnali elettrici fra DTE e DCE sono diversi rispetto a quelli richiesti fra DCE e PSE (Packet Switch Equipment); sono gli switch che effettuano l'instradamento dei pacchetti, in modalità VC. FrameRelay: Tecnologia diffusa, nata come semplificazione e miglioramento in termini prestazionali di X.25 (1990). La sempre crescente richiesta di banda (X.25 offre solo 64 kbps), la maggior affidabilità delle linee, sempre più di tipo digitale (T1,E1) e la parallela diffusione della fibra ottica (SONET, SDH) portano all'esigenza di una tecnologia che offra velocità e prestazioni maggiori. È una tecnologia che si diffonde rapidamente soprattutto per i minori costi rispetto alle preesistenti soluzioni basate su linee dedicate (es. E1) ATM: nasce come tecnologia unificante per la trasmissione di voce e dati in reti locali e geografiche, usa pacchetti da 53 byte (5+48) abbastanza piccoli da permettere di ottenere la sincronia necessaria per trasmettere voce e video. Dispone di funzionalità QoS, sempre nell'ottica di migliorare la trasmissione voce dando priorità a certi pacchetti. Modello ISO/OSI: Divide la rete in 7 layer, ovvero strati software o hardware attraverso cui passano i dati. È un modello teorico standard a cui tutte le reti fanno riferimento ma non è implementato in maniera completa da nessuna. 1. Fisico: trasmissione elettronica per tensioni o segnali luminosi 2. Data Link: specifiche delle singole reti per l'instradamento (MX25,FR,ATM) 3. Rete: instradamento su reti diverse, di fatto IP è lo standard 4. Trasporto: numero di sequenza per le trasmissioni a pacchetti (TCP/UDT) 5. Sessione: caratteristiche della connessione, autenticazione, crittografia 6. Presentazione: mantenimento dell'integrità dei dati dopo la descrizione 7. Applicazione: programmi che usano la rete in qualche maniera. Questo modello permette di suddividere i problemi in vari sottoproblemi; ogni livello si occupa di una cosa specifica e demanda gli altri problemi a quello sopra o quello sotto: ad esempio Ethernet a livello 3 si occupa di accettare solo i pacchetti integri, quelli danneggiati vengono scartati, il problema dei pacchetti mancanti viene gestito a livello 4 che si occupa di inviare una richiesta per il pacchetto perso. Le reti locali lavorano in broadcast, le WAN no: inviare i dati a tutti i computer del mondo sarebbe estremamente dispendioso. Nelle reti locali invece il numero di computer è limitato e quindi, almeno in un primo momento, lavora in broadcast, successivamente subentrano delle ottimizzazioni.

Router: è un dispositivo che lavora a livello 3, con tante schede di rete quanti sono le reti che deve collegare. Uno switch riceve una richesta da una macchina collegata, controlla l'indirizzo e se questo non appartiene alla propria rete lo invia verso il gateway predefinito, un router che si occupa di instradare il pacchetto verso lo switch corretto che poi lo collega alla macchina richiesta. I due switch tra di loro non si vedono, tutta la connessione intermedia è gestita da un router. Se le reti non coincidono non c'è bisogno di un router.

2 - Livello Applicativo Due host connessi ad internet si scambiano messaggi tra loro codificati da applicativi (ISOOSI livelli 7,6,5) appositamente creati ed installati, che stabiliscono il formato dei messaggi e la loro sequenza di utlizzo. Architetture Client-Server: un host (client) apre una connessione (socket) verso un altro host ed effettua una richiesta. L'altro host (server), mette a disposizione dei servizi, elabora la richiesta e apre a sua volta una connessione verso il client fornendo i dati in risposta. Dato che il server è il punto critico della connessione, si tratta spesso di macchine particolarmente sicure dal punto di vista hardware e spesso ridondate. Una tecnica di ridondanza è avere un indirizzo IP virtuale a cui i client si connettono, se sulla macchina principale cade la connessione, questa viene indirizzata ad una seconda macchina identica che sostituisce la prima garantendo la continuità del servizio. Vi sono inoltre sistemi di bilanciamento che dividono le richieste tra le varie macchine in modo da non sovraccaricarle e il tutto avviene in maniera trasperente all'utente. Tutte le archietture client-server saranno supposte connesse ad internet, l'infrastruttura hardware e software che, attraverso specifici protocolli, consente la comunicazione tra host. Peer-to-Peer: è una rete in cui ogni noto richiede ed offre dei servizi, non esiste più quindi un datacenter con dei server dedicati ma molti client-server distribuiti. Una rete di questo genere è più sicura perchè replica molte volte i dati, condivide la banda di tutti i nodi (con i limiti derivanti all'avere connessioni asimmetriche) e costa molto meno per via dell'assenza dei datacenter. Per contro i protocolli di gestione sono molto più complicati: un server si presuppone che sia sempre disponibile e si disconnetta solo per errori gravi, mentre con un nodo ho una forte probabilità che si disconnetta dato che spesso si tratta di un normale computer e quindi si deve gestire questa eventualità senza, ad esempio, subire grosse perdite di dati. La rete è scalabile: aumenta la potenza all'aumentare del numero di peer connessi. L'architettura può essere centralizzata, esiste quindi un server che contiene gli indirizzi in cui reperire determinate risorse, solo in un secondo tempo la connessione diventa davvero p2p. Il peer invia una lista con i file che possiede disponibili per la condivisione. Poi al server vengono inviati i parametri di ricerca dei file (nome, tipo, dimensione, qualità...), cerca nella propria banca dati i peer con quel file e restituisce l'elenco al peer. In questo caso il server è ancora un point-failure perchè se cade la rete non è più accessibile; d'altra parte i dati restano comunque integri e non è necessario che il server abbia una banda enorme perchè il trasferimento di file avviene tra i nodi. Nel p2p decentralizzato un host si connette ad almeno un peer noto (reperito sul web o preconfigurato), al quale invia la lista dei propri file condivisi e dal quale si può reperire una lista dei peer a cui è a sua volta connesso. La ricerca è a cascata: si invia una richiesta ai peer a cui si è connessi, che a loro volta la inoltrano ai peer a cui sono connessi e così via per un certo numero di volte detto TTL (Time To Live) specificato all'inizio. È generata una certa quantità di traffico superfluo, tuttavia la grande quantità di banda dovuto alla condivisione garantisce comunque un vantaggio.

DNS (Domain Name Server) Ogni host visibilile su internet è identificato da un indirizzo IP espresso da un valore a 32 bit, che viene assegnato da auctorities e unico a livello mondiale. Essendo univoco consente di indicare in modo preciso, in fase di trasmissione, a quale host vada inviato il messaggio: viene formulata un'apposita richiesta condificata in un certo protocollo e inviata all'ip del server che deve fornire la risposta. Oltre all'ip si deve specificare anche il numero di porta, dato che su un server protrebbero girare (come succede di solito) diversi servizi e si deve essere in grado di sapere a quale vada indirizzata la richiesta. Per facilitare l'utilizzo da parte delle persone gli indirizzi IP corrispondono anche a indirizzi testuali mnemonici; gli applicativi comunque continuano ad utilizzare i soli indirizzi IP, quindi è necessario un sistema che converta i nomi testuali in indirizzi numerici: i DNS si occupano del mapping e reverse mapping (IP nome). Per poter svolgere questo compito è però necessario un protocollo software che consenta la conversione automatica, delle authorities ed un insieme di server. Inizialmente i nomi erano mantenuti in un file di testo sui server di un'università: questo creava un problema di utilizzo di banda per il download. Inoltre non c'era alcun controllo di univocità (con conseguenti problemi di crashing e la pratica di registrare domini di marchi noti per poi rivenderli) e non era possibile una sincronizzazione rapida dei nuovi domini registrati. Nacque così la struttura DNS che prevede una gerarchia ad albero rovesciato (come nei sistemi unix), dove ogni nodo rappresenta la radice di un sottoalbero che è a sua volta un dominio. Le foglie invece sono gli host. Il primo livello è un dominio geografico, il secondo livello è un dominio registrato dall'azienda o dall'organizzazione, da cui poi sono gestibili vari sottodomini. Anche le authorities che gestiscono i nomi sono organizzate gerarchicamente: la principale è ICANN, che gestisce i domini geografici o comunque a top-level; i domini di primo livello sono invece delegati alle authorities locali, che a loro volta delegano i sottodomini ad un'altra autorità. La registrazione è affidata a aziende dette registrar o manteiner (le prime possono fare registrazione via web, le seconde solo in via cartacea); il dominio registrato sarà poi a carico del registrant (chi lo ha richiesto) che ne è responsabile dal punto di vista legale e controlla una zona. Una zona è un sottoinsieme di nomi controllati da un certo ente ed è diversa dal dominio, che invece è un insieme di nomi del namespace (sottoalberi) e non sempre coincidono: un dominio può avere più zone. I DNS a disposizione sono sempre almeno due e si occupano di una certa zona, o a volte di più zone, che possono venire delegate da un sottodominio, anche se sarebbero a carico del registrant a livello teorico. Il dominio si riferisce al contesto del namespace, la zona alla posizione gerarchica delle auctorities. Il nameserver gestisce delle informazioni specifiche: SOA (start of authority): contiene i nomi per la gestione di una zona specifica, e altri parametri di gestione NS (nameserver): indica i nomi dei nameserver primario e secondario per reperire le informazione di una zona (un record per host) A (address): indirizzo IP di un record L'uso dei DNS porta dei vantaggi: il carico di lavoro è distribuito, il sistema ha ridondanza, si delega la rsponsabilità dei dati lungo la catena gerarchica, e si evita la possibilità di dupicati.

Risoluzione dei nomi: una ricerca avviene a cascata : inserisco un indirizzo, viene contattato il rootserver che fornisce l'ip del server autoritativo di quella zona (es.it,.org,.com), la richiesta viene inviata verso il basso agli altri server autoritativi per le zone sottostanti (es. it unitn science) fino a risolvere l'indirizzo. I nameserver lavorano in multicast, quindi quando facciamo una richiesta risponde uno dei nameserver corrispondenti ad un certo indirizzo. Oltre che in maniera iterativa, possono lavorare anche in maniera ricorsiva: il server contattato si fa carico di tutte le operazioni richieste per la risoluzione, mentre in maniera iterativa restituisce solo le informazioni di sua competenza. La procedura avviene sempre in modalità iterativa per questioni di costo, e viene migliorata mantenendo una cache dei nomi cercati. Protocollo SMTP (Simple Mail Transfert Protocol) Come dice il nome, è un semplice protocollo per il trasferimento di messaggi di posta risalente al 1975. La sua semplicità comporta però anche effetti collaterali: spam, informazioni in chiaro, mancanza di un meccanismo di autenticazione. Gli indirizzi email hanno sempre struttura <username>@<domainname> : compare solo il dominio dell'utente e non il nome del server perchè questo viene recuperato tramite il campo MX del record nel DNS. Componenti del servizio di posta: MUA (Mail User Agent): è il client che consente di gestire i propri messaggi di posta, anche in versione web, MTA (Mail Transfert Agent): è un processo software che gestisce l'invio e la ricezione dei messaggi di posta MDA (Mail Delivery Agent): riceve i dati dal MTA e lo salva nello spazio dove sono memorizzate le cartelle mail degli utenti in forma di file di testo e database relazionali. POP/IMAP Server: interagisce con i client di posta degli utenti, accede al message store e trasmette ai client le email contenute nella casella, si basa su POP3 e IMAP. Un'email è costituita da: Envelope: è una serie di messaggi, in protocollo SMTP, scambiati tra MUA e MTA e da un MTA all'altro fino alla consegna HELO: comando di apertura a inizio Envelope Mail From, Rcpt To: mittente e destinatario Data: testo dell'email

Header: metadati del messaggio (non necessariamente uguali a quelli From/To), ogni mailserver aggiunge dei propri dati. Contiene informazioni come id, mittente, destinatario, data, mail di risposta, cc, bcc Body: messaggio vero e proprio e allegati Se si indicano n destinatari verranno inviate n email; i destinatari diretti sono indicati nel campo TO, i destinatari per conoscenza con CC (Carbon Copy), i destinatari nascosti con BCC (Blind Carbon Copy); infine viene generato un comando RCPT TO per ogni destinatario. L'indirizzo mittente è nel campo FROM e genera un comando MAIL FROM. Con un comando DATA vengono inviati header e body del messaggio. Invio del messaggio: il client MUA risolve l'ip del mailserver via DNS si connette alla porta TCP 25 del mailserver, che risponde con un messaggio 220 <ready> il client invia un HELO e il server risponde con 250 <OK> il client specifica l'indirizzo email del mittente con mail form e il server risponde con 250 <Ok> viene inviato il destinatario RCPT TO 250 <Ok> viene inviato il messaggio con DATA e il server risponde 354 il termine della trasmissione viene indicato da una riga col solo carattere. la sessione viene chiusa con QUIT il processo viene ripetuto tra i vari MTA; mentre per l'invio di n mail dal MUA all'mta c'è una sola connessione con n richieste, per l'invio tra i vari MTA ci sono ci sono n connessioni. Inoltre header e body vengono lasciati inalterati. L'MTA lascia inalterati header e body, ad eccezione del campo received (indica i mailserver per cui il messaggio è transitato) Se non è possibile inviare il messaggio si ritenta ogni tot secondi per un certo numero di giorni (es. 20 minuti per un massimo di 5 giorni). POP3: è un protocollo che consente il download delle mail dal server di posta, di solito è sulla porta 110. Le mail scaricate vengono cancellate dal server. STAT: numero di mail nella casella di posta e lo spazio occupato RETR <message num>: scarica la mail con il numero specificato DELE <message num>: cancella la mail con il numero specificato TOP <num di email> <num righe>: visualizza le righe specificate della mail IMAP: è un protocollo alternativo a POP3 che consente di mantenere le mail sul server di posta (e quindi visualizzarle da più postazioni). HTTP HyperText Transfert Protocol Tim Berners-Lee inventa il linguaggio HTTP che fornisce un metodo per ottenere documenti collegati tra loro; ha scritto anche il primo webserver (1989) e progettato il linguaggio HTML. Nel 1991 realizza il primo client chiamato WorldWideWeb che decodifica dall'html a testo formattato e immagini. Scrive diversi altri client sperimentali, tra cui Mosaic, gratuito, da cui deriva Netscape Il problema di base era l'enorme varietà di diversi sistemi operativi esistenti, per cui l'unico modo per leggere messaggi inviati da un certo sistema era avere un sistema compatibile e poi convertirli in un formato specifico per essere letti su un sistema diverso. L'idea fu di creare un protocollo standard attraverso il quale tutti i sistemi potessero comunicare anche con sistemi differenti semplicemente usando un programma. I collegamenti ipertestuali sono simili ad un indice: si cerca una chive che fa riferimento ad una certa pagina, o ad un altro libro, e così si sa dove andare a cercare. Si basa su un architettura client server senza un controllo centralizzato:

chiunque volesse pubblicare qualcosa doveva far girare un server e chiunque volesse leggere doveva far girare un client con cui collegarsi al server. Grazie alla standardizzazione ogni client poteva comunicare con ogni server. Gira a livello 7 (applicativo) su porta 80. URL (Uniform Resource Locator): è un indirizzo codificato in modo standard, che permette di identificare univocamente una risorsa sul web, in genere file html, script ecc... È formato da protocollo://nome.del.server/percorso/del/file in pratica è un extension del nome del file che comprende procollo, nome DNS e il percorso. Il protocollo specifica la sequenza di comandi client-server, l'indirizzo è il nome che il dns dovrà risolvere, il percorso è la posizione del file sul server. HTML (HyperText Markup Language) È il linguaggio con cui viene rappresentato il documento inviato dal Webserver al client. Consente di inviare al browser un file di testo contenente testo, riferimenti a immagini e link, specificando le modalità di visualizzazione del testo. Nel documento sono presenti dei tag che specificano dei comandi ad alto livello per definire in che modo verrà visualizzato il testo. I comandi HTTP vengono inviati in stringhe con il formato <parametro>:<valore>, una linea vuota contiene i CarriageReturn+LineFeed, il corpo del messaggio (opzionale) è contenuto nel body e può essere costituito sia da testo che da file. Comandi: GET: chiede l'invio di una risorsa presente nella directory locale del serverpath HEAD: è simile al comango GET ma prevede l'invio della sola risposta e non della risorsa POST: è simile al GET, ma i dati vengono inviati nel Body invece che nell'url, quindi non sono direttamente visibili. Ci sono due header ContentType e ContentLenght nell'header ad indicare tipo e lunghezza dei dati. La risposta del server è rappresentata da una linea di stato, una sequenza di informazioni parametro:valore terminate da una riga contenente solo CR LF. È un protocollo stateless, cioè ogni connessione è indipendente dalle altre; se è necessario che il server associ gli stessi dati a diverse connessioni (es. carrello virtuale, login...) si ricorre alla tecnica dei cookie, cioè un numero di riconoscimento salvato dal client e inviato su richiesta del server per farsi riconoscere. FTP (File Transfert Protocol) È uno dei più vecchi protocolli internet; la difficoltà è fornire comandi universali su sistemi operativi diversi (nomi, file system...). La debolezza sta nella trasmissione non sicura dei dati e dei login. Fornisce comandi per collegarsi ad un server, effettuare il login e navigare nelle directory. Viene aperta una connessione per i comandi e una per i dati, in genere l'host richiede il trasferimento di un file e il server apre la connessione per il suo trasferimento (modalità attiva). Spesso questo è impedito dal firewall, quindi viene richiesta una connessione dal server in risposta ed è il client ad aprire il trasferimento (modalità passiva). Per funzioni molto semplici esiste un protocollo alternativo (Trivial FTP) che non consente l'interazione utente/server e si usa ad esempio per l'aggiornamento di apparati telefonici. Telnet

Altro protocollo molto datato, consente l'accesso remoto ad un server attraverso una shell testuale. Per consentire la compatibilità è stato scelto un set di caratteri ASCII ridotto a 95 caratteri stampabili. I caratteri digitati sul client vengono trasformati in caratteri nello standard NVT, inviati e riconvertiti sul server nella propria codifica dall'applicazione telnet. 3 - Il livello Trasporto TCP (Transmission Control Protocol) Si occupa di dividere il messaggio in pacchetti di dimensione uguale, aggiunge un header con un numero di sequenza che garantisce che i pacchetti non vadano persi e anche la possibilità di riordinarli nel caso non arrivino in ordine (es. ethernet). Per motivi di sicurezza il numero non parte da 0 ma viene scelto in maniera casuale. Alla ricezione del pacchetto viene inviato un acknowledgment al mittente e il numero viene salvato incrementato di 1, ad indicare quindi il numero del successivo pacchetto atteso. Se l'ack non arriva entro un certo tempo prestabilito il mittente reinvia il pacchetto; se, per qualche motivo, si hanno doppi pacchetti il client provvede automaticamente a scartarli. Nell'header viene anche specificato il numero di porta che identifica in maniera univoca il processo a cui è assegnato. Nell'header viene anche specificato il numero di porta del mittente (numero efemerale perchè non è fisso) attraverso la quale vengono inviati i segnali di risposta. UDP (User Data Protocol) I messaggi non vengono suddivisi in segmenti ma integrati in pacchetti composti da un header e dal messaggio, per una dimensione di circa 65kb. Non è previsto un sistema di controllo di integrità, e questo rende il protocollo molto semplice ma insensibile alle perdite di pacchetti, quindi non si fa carico della corretta consegna e gli errori devono essere gestiti dagli applicativi. È utile quando devono essere privilegiate le prestazioni rispetto all'affidabilità, come nel caso di applicazioni multimediali, oppure se si è in presenza di meccanismi molto semplici (come i messaggi dei DNS) per i quali la perdida di un messaggio viene risolta con una nuova richiesta. IP (Internet Protocol) È un protocollo di livello 3: riceve i pacchetti o datagram da TCP/UDP e crea per ognuno un nuovo pacchetto IP che contiene IP sorgente e IP destinazione. La procedura è detta incapsulamento. IP è responsabile della scelta del route (cammino necessario per recapitare il pacchetto) e per calcolarlo si basa solo sull'indirizzo mittente-destinatario. Per farlo utilizza delle tabelle di routing che indicano, per ogni indirizzo di destinazione, l'ip successivo (next-hop) al quale il pacchetto deve essere consegnato, e la procedura è diversa a seconda del fatto che il pacchetto sia inviato sulla stessa lan (net-id identico) o su una lan diversa. Nel primo caso viene inviato direttamente al layer inferiore, altrimenti il router lo indirizza ad un altro router se non si trova su una delle reti a cui è collegato, alla rete di destinazione altrimenti. Il layer software sottostante prende i pacchetti IP, li incapsula con un proprio header e li invia allo strato fisico per la consegna. Nel caso di ethernet i pacchetti sono inviati in broadcast.

4 Internet Protocol In una specifica rete locale (LAN/WAN), per la trasmissione dei pacchetti si utilizzano indirizzi fisici (detti anche locali, in quanto utilizzato solo all'interno della LAN/WAN). Per le reti Ethernet (lo standard più diffuso per le LAN) l'indirizzo fisico è rappresentato dal MAC address, un numero binario di 6 bytes che individua in modo univoco la scheda di rete Ethernet destinataria del pacchetto. Per le reti WAN invece non si registra l'indirizzo fisico del destinatario, ma il valore di virtual channel che verrà utilizzato dal successivo switch per decidere il successivo switch di inoltro. In un contesto di internetworking i protocolli applicativi devono però consentire una comunicazione trasparente fra host appartenenti a reti caratterizzate da tecnologie differenti. Per questo motivo al posto degli indirizzi fisici, che in linea teorica sarebbero sufficienti per la trasmissione di pacchetti, il protocollo IP assegna alla scheda di rete di un host un indirizzo logico (IP address) consentendo di individuare - indipendentemente dalle tecnologie di livello 2 (LAN/WAN) utilizzate - ogni host e la rispettiva rete di appartenenza in modo univoco a livello mondiale. Gli indirizzi IP Gli indirizzi IP sono rappresentati in notazione dotted decimal: i 32 bits dell'indirizzo sono suddivisi in 4 bytes, riportandone il valore decimale separato da punti. L'indirizzo IP è diviso in due parti distinte: i bit iniziali, in numero variabile, rappresentano l'identificativo della LAN/WAN di appartenenza (net-id) i rimanenti bit costituiscono l'identificativo univoco della scheda di rete nell'ambito della LAN/WAN (host-id). Inizialmente gli indirizzi IP erano divisi in classi, ed il numero di bit che rappresentano il net-id era stabilito rigidamente in base alla classe, con un enorme spreco di indirizzi. Ora invece il numero di bit che costituisce il net-id è variabile ed è fornito dai bit a 1 della subnet-mask (VLSM: Variable Length Subnet Mask). La subnet mask può essere rappresentata in notazione dotted decimal oppure in slash notation: il numero di bit corrispondenti al net-id vengono rappresentati dopo l'indirizzo IP separato da una barra. La slash notation non è sempre implementata, ma è preferibile per semplicità e compattezza. Esempio: Indirizzo IP: 192.168.15.7 Subnet mask (dotted decimal): 255.255.255.0 Indirizzo IP con subnet mask in slash notation: 192.168.15.7/24 IP dotted decimal: 192. 168. 15. 7 IP in bit: 11000000 10101000 00001111 00000111 Subnet mask in bit: 11111111 11111111 11111111 00000000 Subnet mask dotted decimal: 255. 255. 255. 0 Subnet mask slash notation: 24 bit (net-id) I primi 24 bit rappresentano il net-id (192.168.15), mentre i restanti 8 rappresentano l'host-id (7). Due host possono comunicare fra loro nell'ambito di una specifica LAN/WAN solo se le loro schede di rete hanno indirizzo IP con medesimo net-id. Due host aventi schede di rete con net-id diverso possono comunicare solo attraverso un

router che ha tante schede di rete quante sono le LAN/WAN direttamente collegate. Il network address può essere ottenuto dall'indirizzo IP ponendo tutti i bit dell'host-id a 0, ad esempio: Indirizzo IP : 192.15.32.195/27 11000000 00001111 00100000 11000011 Network address : 192.15.32.192/27 11000000 00001111 00100000 11000000 Quando invece l'host-id assume il valore massimo (tutti i bit a 1) si è in presenza del broadcast address, usato quando un host deve comunicare con tutti i rimanenti della stessa rete. Esempio: Indirizzo IP : 192.15.32.195/27 11000000 00001111 00100000 11000011 Broadcast address : 192.15.32.223/27 11000000 00001111 00100000 11011111 Quindi gli indirizzi IP con host-id = 0 o host-id massimo non possono mai essere assegnati ad un host! Gli indirizzi IP vengono assegnati per blocchi da IANA (Internet Assigned Number Authorities) ad organizzazioni denominate RIR (Regional Internet Registries), le quali a loro volta le distribuiscono in sottoblocchi a vari NIR e/o LIR (National/Local Internet Registers). Da questi ultimi gli ISP (Internet Service Providers) acquistano i range di indirizzi a loro necessari, per distribuire sottoblocchi di indirizzi IP ai vari clienti secondo le rispettive necessità. Questo meccanismo semplifica il funzionamento dei router in caso di invio dei pacchetti nella stessa sottorete. Esempio: un'azienda che necessita di gestire al massimo 254 hosts compra da un ISP un indirizzo /24 (256 indirizzi meno il network address e il broadcast address). L'azienda può eventualmente creare due sottoreti distinte usando una subnet mask /25, e via così, considerando che per ogni sottorete due indirizzi IP non possono essere assegnati agli host. Esempio di sottoreti ottenute con indirizzi IP 193.1.8.0-255 e netmask /25: 193.1.8.0 broadcast 193.1.8.127; host 193.1.8.1-126 193.1.8.128 broadcast 193.1.8.255; host 193.1.8.129-254 Esempio di sottoreti ottenute con indirizzi IP 193.1.8.0-255 e netmask /26: 193.1.8.0 broadcast 193.1.8.63; host 193.1.8.1-62 193.1.8.64 broadcast 193.1.8.127; host 193.1.8.65-126 193.1.8.128 broadcast 193.1.8.191; host 193.1.8.129-190 193.1.8.192 broadcast 193.1.8.255; host 193.1.8.193-254 Una rete può essere divisa in sottoreti con subnet mask fino a /30, quando cioè ci sono solo 2 indirizzi IP assegnabili agli host. Per ottimizzare la disponibilità di indirizzi IP, all'interno della LAN non si utilizzano indirizzi IP pubblici, bensì indirizzi IP privati semplificando anche la gestione degli indirizzamenti negli host e nei router della LAN. La conversione degli indirizzi IP da privati a pubblici viene effettuata tramite natting (da nat = Network Address Translation) nel router di interconnessione ad ISP. Gli indirizzi privati (non utilizzabili su internet) usati nelle LAN sono: da 10.0.0.0 a 10.255.255.255 da 172.16.0.0 a 172.31.255.255 da 192.168.0.0 a 192.168.255.255 da 127.0.0.0 a 127.255.255.255 (127.0.0.0/8) utilizzati per il loopback (il layer IP, nel caso che il destinatario corrisponda ad un indirizzo di loopback, non consegna il pacchetto al livello 2 ma lo inoltra direttamente sulla coda IP dei pacchetti in arrivo allo stesso host). Quando client e server sono su LAN/WAN diverse, IP lato mittente decide di inviare il pacchetto al default gateway. Il pacchetto IP viene incapsulato dal

protocollo di livello 2 della scheda di rete collegata alla rete sulla quale si trova il default gateway, e inviato al router direttamente collegato che si fa carico dell'inoltro. Stack TCP/IP Un messaggio applicativo (es: GET /path/index.html) viene passato a un server dal protocollo applicativo gestito da un programma client a quello immediatamente inferiore tramite la socket, composta da: indirizzo IP del server destinatario (eventualmente risolto tramite DNS) porta del destinatario, ossia il numero identificativo del processo del destinatario al quale va consegnato il messaggio (well-known port) porta del mittente, ossia il numero identificativo del processo del mittente che invia il messaggio (es: browser) e al quale vanno consegnate le risposte (ephemeral port) indirizzo IP del mittente (per la consegna delle risposte) tipo di protocollo di trasporto (es: TCP) Si consideri per semplicità che il livello inferiore a quello applicativo sia TCP. TCP suddivide il messaggio applicativo in pacchetti (TCP segment) ed aggiunge ad ognuno di essi un header contenente informazioni necessarie alla corretta consegna (es: sequence number) per verificare che nessun paccheto vada perso e sia consegnato in modo ordinato. TCP consegna quindi ogni singolo pacchetto al protocollo inferiore (IP) che a sua volta aggiunge un suo header riportante ulteriori informazioni necessarie per il corretto instradamento dei pacchetti. IP passa infine ogni pacchetto al protocollo di livello 2 (driver della scheda di rete Ethernet o di altri protocolli), che si fanno carico di risolvere l'indirizzo IP destinatario in indirizzo fisico tramite protocollo ARP (Address Resolution Protocol). Supponendo che il protocollo di livello 2 sia Ethernet, il pacchetto viene incapsulato in un frame con header specifico ed inviato fisicamente al destinatario. Se IP di destinazione non si trova all'interno della LAN (net-id differente), il MAC di destinazione corrisponde a quello della scheda di rete del router collegato alla LAN (default gateway). ARP è un protocollo di raccordo tra i livelli 3 e 2, anche se è più corretto considerarlo di livello 2, nonostante sia di livello superiore ad Ethernet, perchè non avviene alcun routing durante la sua esecuzione. Una transazione ARP nasce quando il protocollo di livello 2 deve inviare un pacchetto al destinatario sulla stessa sottorete o al router. Arp chiede ad Ethernet di inviare sulla rete un particolare frame (ARP request) contenete la richiesta del MAC address. Tale frame ha come MAC source quello della scheda di rete del mittente, e come MAC destinatario un valore corrispondente a tutti '1' (FF:FF:FF:FF:FF:FF) in modo che sia letta da tutte le schede di rete della LAN (broadcasting di livello 2). Solo la scheda di rete avente indirizzo IP corrispondente a quello del destinatario risponde, inviando al richiedente un frame (ARP reply) riportante il suo MAC. ARP mittente archivia il MAC destinatario in una tabella di cache. Anche il destinatario aggiorna la sua tabella di cache riportandovi IP e MAC address mittente; per tale motivo nel frame di richiesta è presente anche l'indirizzo IP del mittente (crossresolution). La tabella di cache consente di evitare continui broadcasting che possono portare a collisioni e rallentamenti nella rete, ma viene aggiornata ad intervalli regolari per eliminare la presenza di informazioni obsolete. IP è stato progettato come protocollo leggero, con l'esclusivo compito di trasmettere i pacchetti fra le LAN (internetworking) : si limita ad instradare tali pacchetti, demandando a TCP lato destinatario tutti gli aspetti riguardanti la loro corretta ricezione, la notifica al mittente (acknowledgment) e

l'eventuale richiesta di ritrasmissione. Possono però verificarsi errori in uno dei vari router che compongono il percorso di instradamento dei pacchetti fra il mittente ed il destinatario (errori di livello 3). TCP lato destinatario, in casi come questi, o non riceverebbe alcun pacchetto (es. errore di configurazione) oppure li riceverebbe in modo incompleto (blocco o sovraccarico), limitandosi a chiederne la ritrasmissione, senza poter notificare il mittente circa i motivi della perdita. IP delega ad uno specifico protocollo (ICMP, Internet Control Message Protocol) la notifica ad IP mittente di tutti i problemi riscontrati in fase di instradamento, usando messaggi opportunamente codificati. I messaggi ICMP sono inglobati, come se fossero dati, in pacchetti IP. ICMP è stato progettato per notificare non solo errori (error messages: type da 1 a 127) ma anche informazioni di vario tipo (informational messages: type da 128 a 255).

5 INTERNET ROUTING Come sceglie un router il percorso che i pacchetti da inviare dovranno seguire per arrivare a destinazione? Un router è collegato a diverse reti che contengono diversi router. Per trovare un percorso da una sorgente a tutte le destinazioni, oltre a considerare se può esistere un percorso più breve, bisogna tener conto dei vari problemi che possono succedere alla rete, ad esempio il fatto che un router possa diventare inattivo. L'idea di base è che un protocollo di routing imposti in ogni router una tabella di routing, ovvero una tabella in cui è memorizzato, per ogni destinazione, attraverso quale dei router adiacenti devo passare (next hop) per avere un percorso il più breve possibile. Ogni nodo della rete costruisce la sua tabella di routing facendo una scelta locale in base alla topologia globale della rete. Dover conoscere lo stato globale della rete rappresenta il problema principale del routing: la rete infatti è molto grande, dinamica e il suo stato globale è difficile da recuperare. Un protocollo di routing deve riassumere intelligentemente le informazioni più importanti, minimizzare lo spazio della tabella di routing per consultarla e modificarla più velocemente, minimizzare il numero e la frequenza di messaggi di controllo, ed evitare buchi neri, cicli e oscillazioni. Un ultimo requisito, come già accennato, è ovviamente che il percorso scelto sia ottimale. Ulteriori complicazioni derivano dalle varie scelte che un protocollo può effettuare: routing centralizzato (un'unica tabella di routing) o distribuito (una per ogni nodo); scambio di informazioni locale o globale; routing statico o dinamico (utilizzo di un protocollo di propagazione del percorso, per scambiare informazioni con altri routers quando ci sono cambiamenti nella rete che comportano la necessità di un aggiornamento della tabella di routing locale); routing stocastico o deterministico; scegliere un percorso singolo o avere delle alternative; routing dipendente o indipendente dallo stato della rete. Assunzioni sui grafi: c(x,y) è il costo dell'arco xy; D(i,j) è il costo del cammino minimo da i a j il costo del percorso (a,b,...,z) è dato da c(a,b)+c(b,c)+...+c(y,z) Ora vedremo nel dettaglio due tecniche di routing distribuito, riportando per ognuna un protocollo: Distance Vector (DV) Routing Information Protocol (RIP) Link State (LS) Open Shortest Path First (OSPF) Distance Vector Distance Vector si basa sull'algoritmo di Bellman-Ford. I valori di distanza nella tabella di routing vengono inizializzati in questo modo: D(i,i) = 0; D(i,k) = c(i,k) se k è adiacente ad i; D(i,j) = INFINITO per tutti i nodi non adiacenti j. Inoltre l'algoritmo mantiene i valori di next-hop per ogni destinazione: next-hop(i) = i; next-hop(k) = k se k è adiacente ad i; next-hop(j) = UNKNOWN per tutti i nodi non adiacenti j. Ad ogni iterazione, ogni nodo i scambia il suo DV con i nodi ad esso adiacenti.

In pseudocodice: foreach(k appartenente a adj(i)) { if ( c(i,k)+d(k,j) < D(i,j) ) { D(i,j) = c(i,k)+d(k,j); next-hop(j) = k; } } È un meccanismo iterativo e asincrono: di volta in volta ogni nodo invia il suo DV ai suoi vicini; quando un nodo riceve un nuovo DV da un vicino, aggiorna il proprio, sostituendo per ogni percorso dei vecchi valori se sono più costosi di quelli nuovi. Questo meccanismo è inoltre distribuito: se un nodo aggiorna i suoi valori, li notifica anche ai nodi adiacenti. Un problema del DV è il counting to infinity : se il collegamento a un router cade, un suo vicino aggiorna la sua tabella di routing, ma vede che tramite un'altro router ci può arrivare, perchè quest'ultimo non ha ancora aggiornato la sua tabella di routing. Questo errore si propaga nella rete portando a stime sempre più errate. Il counting to infinity non si riscontra nelle reti senza cicli; questo problema si può risolvere impostando al massimo 15 hops, limitando il tempo di convergenza, oppure tramite la tecnica dello split horizon, che può essere semplice o poison-reverse. Nello split horizon semplice ogni router, nell'inoltrare le proprie tabelle di routing ai vicini, omette, per ciascun vicino, di comunicare gli specifici percorsi appresi da quel router. Lo split horizon con poison-reverse, invece di omettere i percorsi appresi dal vicino, li include, impostando il valore a infinito. Il risultato è lo stesso (il vicino non aggiorna quel valore), ma il costo è maggiore (viene inviata una tabella di routing più grande). Quando il costo di un collegamento cambia, se diminuisce la segnalazione viaggia velocemente, se aumenta viaggia invece più lentamente. Routing Information Protocol (RIP) Il RIP è un protocollo DV implementato anche nei SO Cisco; ha una convergenza lenta e lavora con reti di dimensione limitata, ma è facile da implementare e semplice da gestire, ed il suo uso è molto diffuso. Per limitare il tempo di convergenza, il numero massimo di hop è 15, 16 viene trattato come infinito (nota: l'amministratore di rete può assegnare valori maggiori di 1 ad ogni singolo hop per arrivare prima a 16). Ogni router comunica il suo DV ai suoi vicini ogni 30 secondi, o quando la sua tabella di routing cambia, tramite UDP su porta 520; Le modifiche si propagano su tutta la rete. I percorsi scadono (vengono settati a 16) dopo 3 minuti che non vengono aggiornati. Il RIP utilizza split horizon poisonreverse. Le tabelle di routing RIP sono gestite da processi a livello applicazione (Unix: routed). RIP ha 3 timer per le operazioni periodiche: uno per l'aggiornamento (30s), uno per la disattivazione (3 minuti), e uno per il garbage collector (2 minuti che partono dopo la disattivazione: il router non viene subito eliminato). 1=richiesta, 2=risposta Richiesta: può arrivare da routers che si so appena connessi; Risposta: può arrivare da routers che effett aggiornamenti regolari o programmati, o risp una query specifica. In questo caso i router aggiornano la propria tabella di routing. Address Family: 2 per IP Metric: distanza del router dalla rete (1=ho Link State (LS)