La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

2003-2004Reti di Calcolatori1 Il modello Client/Server Internet: gli standard de facto Application Presentation Session Transport Network Link Physical.

Presentazioni simili


Presentazione sul tema: "2003-2004Reti di Calcolatori1 Il modello Client/Server Internet: gli standard de facto Application Presentation Session Transport Network Link Physical."— Transcript della presentazione:

1 2003-2004Reti di Calcolatori1 Il modello Client/Server Internet: gli standard de facto Application Presentation Session Transport Network Link Physical Application Presentation Session Transport Network Link Physical Node Host A Host B IP UDP e TCP HTTP – SMTP – FTP … Ethernet, PPP, ATM …

2 2003-2004Reti di Calcolatori2 Il modello Client/Server Internet Interconnessione tra reti Le implementazioni per internet devono tenere conto della presenza di tante reti interconnesse Gateway: modulo di rete che si occupa di connettere due sistemi Indipendenti di rete: il gateway Risolve i problemi di routing (livello 3) il bridge invece risolve i problemi di interfacciamento tra le diverse implementazioni dei livelli fisici e di data link Routing: per esigenze reali non costruisco Reti ad hoc per ogni applicazione. Riutilizzo le reti già stese ed operative per un sistema di interconnessione universale Apertura: il sistema interconnesso è un sistema aperto in grado di accettare qualsiasi tipo di applicazione al di sopra degli standard sottostanti: Il requisito di base è la capacità di adattarsi alle nuove tecnologie relative ai diversi livelli del sistema Pagamento: se i servizi utilizzano le reti interconnesse… chi paga?

3 2003-2004Reti di Calcolatori3 Il modello Client/Server Internet Lo stack TCP-IP livello di TRASPORTO: TCP Transmission Control Protocol: flusso di byte bidirezionale a canale virtuale best effort, dati non duplicati, affidabili, con controllo di flusso UDP User Datagram Protocol: Scambio di datagrammi livello di RETE: IP Internet Protocol: Scambio di datagrammi senza garanzia di consegna ICMP Internet Control Message Protocol: Scambio messaggi di controllo ARP Address Resolution Protocol: Ricerca dellindirizzo fisico di un nodo RARP Reverse Address Resolution Protocol: Ricerca un indirizzo IP di un nodo

4 2003-2004Reti di Calcolatori4 Il modello Client/Server Internet Applicazioni e Comunicazioni in TCP/IP

5 2003-2004Reti di Calcolatori5 Il modello Client/Server Internet Interazioni via Gateway

6 2003-2004Reti di Calcolatori6 Il modello Client/Server Internet Il Servizio IP IP si occupa di gestire il scambio dei pacchetti sulla rete: Problema dei Nomi: come identifico un nodo sulla rete? IP definisce uno standard gerarchico basato su una sequenza di 4 byte: ad esempio 137.204.56.1 Protezione delle informazioni: i pacchetti dovrebbero essere manipolati solo dai destinatari Routing: i pacchetti devono poter essere consegnati su reti diverse attreverso i gateway

7 2003-2004Reti di Calcolatori7 Il modello Client/Server Internet IP Naming ed indirizzamento gerarchico Ogni connessione di un host a una rete ha un indirizzo internet unico formato da due elementi e detto IP-ADDRESS=NETID, HOSTID NETID è lidentificatore di rete HOSTID è ldentificatore di host La distinzione facilita il routing Una rete è un ambiente considerato omogeneo: se il mio indirizzo è 137.204.56.1 ed il numero di rete è per esempio 137, sono sicuro che allinterno della rete 137 ci sarà o il nodo identificato dallid 204.56.1 oppure il gateway per la rete 137.204 Il routing quindi è automaticamente definito dalla struttura del nome Esiste inoltre uno standard per definire la struttura di una rete: Reti di Classe A: Le WAN tipicamente Reti di Classe B: LAN di grandi dimensioni Reti di Classe C: LAN di piccole dimensioni

8 2003-2004Reti di Calcolatori8 Il modello Client/Server Internet IP Naming: le classi degli indirizzi Esempio: 137.204.56.1: 137= 10001001 è una rete di classe B ! una LAN di grandi dimensioni NETID= 137.204 HOSTID= 56.1

9 2003-2004Reti di Calcolatori9 Il modello Client/Server Internet IP Naming: Broadcast e Multicast Se un byte è a 255 (11111111) indico tutti i nodi a quel livello gerarchico: 255.255.255.255: indirizzo di tutti i nodi della rete locale (si parla di limited broadcast perché i gateway scarcano il messaggio che quindi non si propaga tra le reti) 137.204.255.255: indirizzo tutti i nodi della rete 137.204 (si parla di directed broadcast perché scelgo la rete locale che voglio indirizzare) Tutti gli indirizzi dal 224.x.x.x al 239.x.x.x invece rappresentano un gruppo di specifici indirizzi che si sono precedentemente accreditati (multicast)

10 2003-2004Reti di Calcolatori10 Il modello Client/Server Internet IP Naming: Assegnamento indirizzi Il numero IP identifica in modo univoco un host nella sua rete Attraverso i protocolli ARP e RARP è possibile passare dal MAC-ADDRESS di una scheda di rete ethrnet al suo corrispettivo indirizzo Un host può avere più indirizzi IP associati ad una o più schede di rete Se un host ha più di un indirizzo IP allora può anche avere compiti di routing tra una rete ed unaltra Ci sono 2 modi per assegnare un indirizzo IP ad un host Assegnamento statico: configuro ogni macchina con un suo specifico IP reti molto stabili o di piccole dimensioni Assegnamento dinamico: ogni volta che un host viene agganciato alla rete gli viene assegnato dinamicamente un IP DHCP Dynamic Host Configuration Protocol: utile in reti di computer che a variabilità molto elevata

11 2003-2004Reti di Calcolatori11 Il modello Client/Server Internet IP: Caratteristiche e specifiche IPv4: gestisce la comunicazione attraverso datagrammi Servizio: Connectionless: ciascun pacchetto è trattato indipendentemente dagli altri. Diversi pacchetti possono seguire percorsi diversi ed essere consegnati fuori ordine Unreliable: la consegna non è garantita, cioè non effettua un controllo sull'avvenuta ricezione di un pacchetto Best-effort: l'inaffidabilità del trasferimento è dovuta a cause esterne e non al software di rete nessun messaggio di errore al richiedente Protocollo: Elaborazione: del messaggio del livello superiore nel formato per la trasmissione Incapsulamento / frammentazione Instradamento (routing) cioè: Traduzione da indirizzo logico a indirizzo fisico Scelta del percorso

12 2003-2004Reti di Calcolatori12 Il modello Client/Server Internet IP: Struttura del Datagramma I sottocampi del campo header contengono: versione del protocollo lunghezza header e totale (totale < 64K) identificazione del datagramma (usato per ricomporre i frammenti) precedenza (0-7) tipo di trasporto desiderato (bit di qualità): Type of Service (ToS vedi qualità del servizio) throughput T,di affidabilità R, di ritardo D, costo C Internet non può garantire il soddisfacimento del tipo di trasporto richiesto che dipende dal cammino che deve percorrere il datagramma frammentazione e flags time to live, tempo di permanenza del datagramma indirizzo IP sorgente e destinazione tipo di protocollo livello superiore (TCP 6, UDP 17, ICMP 1,...) checksum per il controllo opzioni: monitoraggio e controllo rete IntestazioneDati

13 2003-2004Reti di Calcolatori13 Il modello Client/Server Internet ARP Address Resolution Protocol ARP protocollo semplice ed efficiente (costo broadcast) invia un pacchetto broadcast in cui chiede l'indirizzo fisico corrispondente ad indirizzo IP (Quale Fa per questo Ia?) tutti gli hosts ricevono tale pacchetto: solo quello che riconosce il suo indirizzo IP risponde con il proprio indirizzo fisico

14 2003-2004Reti di Calcolatori14 Il modello Client/Server Internet ARP Address Resolution Protocol IP non ha bisogno di scatenare una sequenza ARP ad ogni invio di messaggio. Esiste una memoria cache che contienne le coppie IP- MAC Address ottenute in precedenza Lo stato viene mantenuto per un certo tempo e poi scade Se si riceve un errore dal livello di datalink allinvio di un messaggio il dato viene invalidato Attraverso i broadcast ARP tutti i nodi della rete cercano di mantenere aggiornata la loro cache non è in generale il nodo a cui appartiene lindirizzo IP a rispondere, ma tutti i nodi che conoscono il MAC Address associato a quello specifico IP Il pacchetto ARP:

15 2003-2004Reti di Calcolatori15 Il modello Client/Server Internet R ARP Reverse Address Resolution Protocol Normalmente un sistema si attiva caricando le sue configurazioni (e quindi anche il suo indirizzo IP) da una memoria di massa. Cosa succede se una macchina è diskless? Lhost conosce il suo Mac Address ha bisogno di chiedere ad un server dedicato quale è il suo indirizzo IP Il cliente fa un broadcast per richiedere il suo IP Il server risponde con lip corrispondente Ci possono essere più server sulla rete possono rispondere tutti senza problemi di coordinamento (operazione idempotente)

16 2003-2004Reti di Calcolatori16 Il modello Client/Server Internet Routing e separazione fra reti ARP e RARP funzionano solamente allinterno della stessa LAN: non è possibile fare indirizzamento diretto tra due reti diverse. Reti Logicamente Separate: se definisco due o più reti logiche al di sopra della rete fisica (esempio: nella stessa LAN definisco due reti ip, come 137.204 e 137.205) Reti Fisicamente Separate: sono completamente distinte e sono unite da un gateway, un host con due o più schede di rete con il compito di reindirizzare i pacchetti da una rete allaltra

17 2003-2004Reti di Calcolatori17 Il modello Client/Server Internet Routing e separazione fra reti La separazione logica può essere ulteriorimente diversificata attraverso il concetto di subnet: Allinterno della rete 137.204 è possibile definire due sottoreti: 137.204.56 e 137.204.57 La subnet è rispettata permettendo una comunicazione diretta solo allinterno, obbligando il passaggio per un gateway per andare nellaltra rete Si realizza questa astrazione attraverso lo strumento della Maschera Viene impostata una maschera di 32 bit es: 255.255.255.0 maschera di classe C implica che sono visibili al nodo solo gli host che hanno la stessa rete di classe C La maschera è una impostazione di connessione (viene decisa sul lato client, può essere quindi rimossa per accedere direttamente fuori dalla subnet

18 2003-2004Reti di Calcolatori18 Il modello Client/Server Internet Routing in topologie complesse Per garantire prestazioni e tolleranza ai guasti ratamente le reti hanno un unico cammino per procedere da un host ad un altro: Nello schema seguente sono identificabili diversi percorsi per connettere Host A a Host B GATEWAY HOST A HOST B

19 2003-2004Reti di Calcolatori19 Il modello Client/Server Internet Routing: i percorsi multipli Si possono identificare vari percorsi: Rosso: percorso più breve (3 nodi prima di destinazione hop) Blu: percorso alternativo che salta una rete (5 hop) Verde: un percorso completamente diverso (5 hop) HOST A HOST B

20 2003-2004Reti di Calcolatori20 Il modello Client/Server Internet Routing: gestione dei percorsi Ricordiamo che in generale, dal protocollo esistono solo due casi: I due host sono nella stessa rete fisica (direct routing): Grazie a ARP posso avere indirizzo fisico Invio diretto dei datagrammi I due host sono in due reti fisiche diverse (indirect routing): Invio il datagramma al gateway più adatto ( secondo quali politiche?) Se il gateway è fisicamente connesso alla rete destinazione passa in uno stato di direct routing Se non conosce la rete fisica invia il pacchetto ad un altro gateway Il datagramma passa da un gateway ad un altro fino ad un gateway che può inoltrarlo direttamente Alterata solo la parte di frame fisico (checksum e fram.) Utilizzo di tabella di routing che lavora (per lo più) sulle informazioni di rete

21 2003-2004Reti di Calcolatori21 Il modello Client/Server Internet Algoritmi di routing Algoritmi generalmente globali basati su tabelle che sono disponibili ai diversi router partecipanti A parte alcuni casi iniziali è diffuso luso di protocolli isolati tipo patata bollente 1.Algoritmi Statici basati su informazioni statiche riguardanti il cammino più breve (per piccole reti ed interconnessioni) 2.Algoritmi Dinamici basati su informazioni dinamiche di traffico della rete, lunghezza del messaggio e tipo di servizio richiesto I Router (gli host che si occupano di routing) si coordinano attraverso protocolli: time out delle entry dei router in modo asincrono propagazione asincrona delle informazioni di routing Sia che limpostazione del routing sia statica o dinamica è necessario tenere conto che la rete è comunque un sistema dinamico I percorsi possono mutare per guasti o modifica della struttura della rete È necessario gestire attraverso diversi protocolli specifici la evoluzione delle topologie

22 2003-2004Reti di Calcolatori22 Il modello Client/Server Internet Algoritmi di routing: Distance Vector Ogni gateway mantiene una tabella per tutte le reti che conosce memorizzando i diversi percorsi in funzione della distanza misurata in hop Associo quindi staticamente quale è il miglior percorso per una rete I percorsi non sono memorizzati per intero viene memorizzato solo lhop successivo La propagazione delle informazioni (nelle tabelle di routing) è la chiave della gestione dellalgoritmo R0 0R1 0R2 0 Rn-1 0 R1 0R2 0R3 0...Rn 0 R0 0R1 0R2 0 Rn 0 R1 0R2 0R3 0 Rn-1 0 R2 1 G2R0 1 G1R1 1 G2..... Rn-2 1 Gn-1 R3 1 G3R4 1 G4 1° passo propagazione 2° passo propagazione

23 2003-2004Reti di Calcolatori23 Il modello Client/Server Internet Algoritmi di routing: Distance Vector Cosa succede se cambia un percorso: R0 0R1 0R2 0 Rn 0 R1 0R2 0R3 0 Rn-1 0 RQ 0R0 1 G1 RQ 0 Rn-2 1 Gn-1 R2 1 G2 R3 1 G3 R1 1 G2 Rn-3 2 Gn-1 R3 1 G3 RQ 1 G3 R0 1 G1 Rn-4 3 Gn-1... Propagazione locale delle tabelle di routing ad ogni vicino in modo asincrono Chi riceve una offerta aggiorna la propria tabella se la proposta è conveniente in base alla metrica Le entry hanno scadenza (e devono essere sostituite) Ogni gateway decide il routing in modo indipendente in base alla tabella locale

24 2003-2004Reti di Calcolatori24 Il modello Client/Server Internet Distance Vector: problemi di riconfigurazione Supponiamo che ci sia una variazione di configurazione come da esempio: Se un pacchetto deve andare da E a B: Il pacchetto viene inviato a D D non ha più rotta per B e quindi manda il pacchetto allunico gateway che conosce: E Finché E non viene aggiornato ho una condizione di loop counting-to- infinity incremento infatti il numero di hop del mio pacchetto ogni volta e posso potenzialmente andare avanti allinfinito (spesso si limita infinito a 16 !!) E e D continuano ad incrementare la loro distanza da B in base alla rotta che prende il pacchetto informazioni errate di routing In una condizione come questa A,B e C si danno delle informazioni non coerenti il problema è che non si tiene traccia di chi fornisce le informazioni

25 2003-2004Reti di Calcolatori25 Il modello Client/Server Internet Distance Vector: Varianti per ridurre i problemi Il problema è sostanzialmente legato alla lenta convergenza del sistema: Le buone notizie viaggiano con i pacchetti (aggiornamenti sui costi di routing) Le cattive notizie invece sono molto lente (informazioni di caduta di un nodo viene raccolta in caso di timeout), solo dopo il timeout possono essere inoltrate, nel frattempo la situazione è inconsistente e vengono danneggiate le tabelle di routing Split Horizon: per evitare di inserire informazioni errate nella mia tabella di routing non accetto informazioni da nodi a cui ho precedentemente inoltrato aggiornamenti su quella specifica riga Hold down: dopo una notifica di un problema si ignorano le informazioni di cammino per un certo periodo, lasciando il tempo a tutti i nodi di accorgersi della eccezione I loop che si sono già creati vengono mantenuti durante il periodo di attesa Split Horizon con Poisoned Reverse e Triggered Broadcast: quando avviene una eccezione ogni nodo invia in broadcast le informazioni dei cammini in loro possesso: A inva a C un messaggio di non raggiungibilità se crede di raggiungere D via C C non può rifarsi ad A (che non raggiungeva D) Lalgoritmo permette di ricostruire i cammini corretti in base alle informazioni ottenute in broadcast Ci sono ulteriori problemi relativamente alla possibilità di creare diverse catene di boradcast che rendono difficile la rigenerazione delle tabelle

26 2003-2004Reti di Calcolatori26 Il modello Client/Server Internet Algoritmi di routing: Link State Link State: si basano sul principio della completa conoscenza della topologia di rete e della relativa ricerca del percorso minimo (Shortest Path First) Il grafo di interconnessione per evitare cicli viene gestito con algoritmi che possono favorire decisioni locali (routing dinamico) Dijkstra shortest-path-first Possibilità di fare source routing e anche di spedire messaggi su cammini diversi (routing dinamico) A REGIME, ogni gateway tiene sotto controllo le proprie connessioni e le verifica periodicamente invio periodico di messaggi nel vicinato per controllare la correttezza delle risorse locali identificazione del guasto e segnalazione di eventi di guasto (uso di più messaggi per evitare transitori e accelerare la propagazione) Non appena si verifica un problema chi ha rilevato il problema invia il messaggio a tutti i componenti (broadcast o flooding)

27 2003-2004Reti di Calcolatori27 Il modello Client/Server Internet Link State: Caratteristiche degli Algoritmi Vantaggi: si controlla solo il vicinato informazioni di variazione propagate rapidamente (senza ambiguità via broadcast) possibilità di scelte differenziate dei cammini nella topologia conoscenza dei cammini completi e source routing In sostanza le variazioni non sono dipendenti da possibili intermediari I messaggi sono gli stessi qualunque sia la dimensione del sistema Problemi: necessità di mantenere tutta la topologia azioni costose (broadcast) in caso di variazione In generale, necessità di limitare i domini di conoscenza reciproca In conclusione possiamo dire che algoritmi di natura globale come i link state sono molto efficienti ma non permettono una forte scalabilità

28 2003-2004Reti di Calcolatori28 Il modello Client/Server Internet Routing: i protocolli di coordinamento tra gateway Per implementare i diversi algoritmi sono necessari protocolli che permettano ai router di coordinarsi e scambiarsi informazioni Ci sono differenze legate alle possibilità di controllo sulla rete: Un sistema si dice autonomo se è controllato in modo unificato da una unica autorità allinterno di un sistema autonomo sono implementate in autonomia le politiche di routing considerate più appropriate internet è un aggregato di molti sistemi autonomi Esistono dei router detti core mantengono la totalità delle informazioni di routing per un sistema IGP: Interior Gate Protocol protocollo per trovare il percorso all'interno di un sistema autonomo politica che consente percorsi multipli e con possibilità di tollerare i guasti (algoritmi multipath IGRP CISCO) EGP: Exterior Gate Protocol protocollo rilevente per i gateway di controllo per trovare il percorso fino ai core dei diversi sistemi autonomi struttura ad albero con i core come radice

29 2003-2004Reti di Calcolatori29 Il modello Client/Server Internet ICMP: Internet Control Message Protocol Permette di gestire e controllare la rete ICMP consente di inviare messaggi di controllo o di errore al sorgente del messaggio (solo a questo) ICMP usato per il coordinamento tra livelli di IP Condizioni di errore al mittente (non correzione) per i relativi provvedimenti nodi intermedi non informati dei problemi nodo sorgente può provvedere a correggere Rappresenta un mezzo per rendere note condizioni anomale a chi ha mandato datagrammi (usando IP) La politica di uso è tutta a carico dell'utilizzatore METALIVELLO: Errori su messaggi ICMP non possono causare a loro volta messaggi ICMP I messaggi ICMP sono considerati a livello di datagrammi IP sono soggetti alle stesse regole di routing non hanno priorità possono essere persi possono causare ulteriore congestione

30 2003-2004Reti di Calcolatori30 Il modello Client/Server Internet ICMP: Internet Control Message Protocol Formato: Messaggio ICMP inserito un datagramma IP: il messaggio ICMP contiene sempre l'header e 64 bit dell'area dati del datagramma che ha causato il problema I campi type e code consentono di fornire informazioni ulteriori----------------------- 0 Echo Reply 3 Destinazione irraggiungibile 4 Problemi di congestione (source quench) 5 Cambio percorso (redirect) 8 Echo Request 11 Superati i limiti di tempo del datagramma 12 Problemi sui parametri del datagramma 13 Richiesta di timestamp 14 Risposta di timestamp 15 Richiesta di Address mask 16 Risposta di Address mask

31 2003-2004Reti di Calcolatori31 Il modello Client/Server Internet ICMP: Internet Control Message Protocol Eventi Segnalati campo CODE ==> un intero dipendente dai valori di TYPE Se il destinatario non si raggiunge campo type vale 3 Il campo Code contiene quindi il codice di errore 0Rete irraggiungibile 1Host irraggiungibile 2Protocollo irraggiungibile 3Porta irraggiungibile 4Frammentazione necessaria 5Errore nel percorso sorgente (source route fail) 6Rete di destinazione sconosciuta

32 2003-2004Reti di Calcolatori32 Il modello Client/Server Internet ICMP: Internet Control Message Protocol I servizi offerti dal protocollo sono relativi alla gestione dinamica della rete: echo request/reply (type 8/0): controllo percorso un host può verificare la raggiungibilità di una destinazione Comando ping address mask (type 17/18)richiesta di maschera un gateway può richiedere la struttura di mack si una sottorete sincronizzazione degli orologi (type 13/14) ricezione e invio del tempo fisico si misurano i millisecondi si considera tempo di invio, di ricezione, di risposta redirect (type 5) cambio percorso un gateway deve cambiare la propria tabella di routing funzione di controllo di gestione

33 2003-2004Reti di Calcolatori33 Il modello Client/Server Internet UDP: User Datagram Protocol È il protocollo di livello trasporto per la gestione da parte dellutente di comunicaizoni di tipo datagramma Indirizzo: mentre IP deve identificare un nodo, UDP deve identificare uno specifico processo allinterno di un nodo Definisco la porta UDP come numero di 2 byte in grado di identificare uno specifico processo da parte del sistema operativo Indirizzo UDP: indirizzo IP + porta UDP Si appoggia a IP per la consegna dei datagrammi Application User Datagram Internet (IP) Interfaccia di rete (UDP) Area dati header Area dati Area dati Frame Frame header IP UDP

34 2003-2004Reti di Calcolatori34 Il modello Client/Server Internet UDP: User Datagram Protocol UDP fornisce un servizio unreliable e connectionless I datagrammi possono essere persi, duplicati, pesantemente ritardati o consegnati fuori ordine il programma applicativo che usa UDP deve trattare i problemi Formato di un datagramma UDP

35 2003-2004Reti di Calcolatori35 Il modello Client/Server Internet UDP: User Datagram Protocol Quali sono i servizi che offre UDP: Multiplexing: possibilità di inviare diversi messaggi in parallelo da parte di diversi processi al di sopra di un unico servizio IP Demultiplexing: ricostruzione in ricezione dei messaggi in modo che vengano recapitati alla porta corretta

36 2003-2004Reti di Calcolatori36 Il modello Client/Server Internet UDP: User Datagram Protocol Assegnazione dei numeri di porta: Alcune porte sono riservate secondo lo standard del protocollo a specifici servizi: 0Riservato 7Echo 9Discard 11Users 13Daytime 37Time 69tfpt (trivial file transfer protocol) 111Sun RPC protocol 513who (demone di rwho) 514system log

37 2003-2004Reti di Calcolatori37 Il modello Client/Server Internet UDP: User Datagram Protocol Assegnazione dei numeri di porta: Quando un processo ha bisogno di inviare un datagramma: UDP assegna al processo dinamicamente una porta UDP genera il pacchetto e passa ad IP per linvio Quando un processo riceve un datagramma: Il processo deve richiedere una specifica porta per la ricezione Porte da 1-1024 sono accessibili solo da processi di sistema (servizi standard) Quando un processo risponde ad un datagramma: UDP invia il messaggio verso la porta mittente che ha letto nel pacchetto di request Non esiste nessun concetto di connessione: lunico stato è dato dalla definizione di una porta specifica per la ricezione

38 2003-2004Reti di Calcolatori38 Il modello Client/Server Internet TCP: Transfer Control Protocol TCP fornisce un servizio reliable e connection oriented stream full-duplex: Se i pacchetti TCP si perdono vengono automaticamente reinviati Garanzia della sequenza dei pacchetti Astrazione del canale virtuale o stream: i messaggi del mittente vengono inviati sotto forma di stream di byte in modo affidabile Gestione dei dati prioritari: Banda per i dati normali Fuori Banda per i dati urgenti Gestire una connessione significa avere uno stato relativo: TCP non impegna risorse nei nodi intermedi: è un canale virtuale end-to-end

39 2003-2004Reti di Calcolatori39 Il modello Client/Server Internet TCP: Transfer Control Protocol Formato del segmento TCP (header 20 byte):

40 2003-2004Reti di Calcolatori40 Il modello Client/Server Internet TCP: Transfer Control Protocol CODE BIT URGun dato urgente nel segmento ACKacknowledgement nel segmento PUSHinvio immediato del segmento RSTreset di una connessione SYNsi stabilisce la connessione FINtermine della connessione Si cerca di frammentare meno possibile i messaggi detti segmenti dal protocollo: segmenti troppo corti: grosso overhead di trasmissione segmenti troppo lunghi: frammentazione a livello di IP e possibili perdite ed overhead

41 2003-2004Reti di Calcolatori41 Il modello Client/Server Internet TCP: Transfer Control Protocol Le porte seguono lo stesso razionale di UDP alcune delle porte riservate: PORTAPROTOCOLLODESCRIZIONE 20FTP-DATAFile Transfer Protocol (dati) 21FTPFile Transfer Protocol 23TELNETTerminale remoto 25SMTPProtocollo di posta elettronica 80HTTPProtocollo WWW 119NNTPProtocollo di invio news

42 2003-2004Reti di Calcolatori42 Il modello Client/Server Internet TCP: Transfer Control Protocol Come viene implementata la Reliability: richiederebbe una attesa sincrona di un messaggio di conferma (acknowledgement o ACK) per ogni segmento spedito prima di inviarne uno successivo vedi ARQ Il mittente deve attendere tra una trasmissione e l'altra Soluzione inefficiente: devo inviare una conferma per ogni pacchetto inviato PiggyBacking: inserisco uno stato di ack nel messaggio di risposta successivo Finestra scorrevole: TCP invia gli ack tutti insieme per una determinata finestra di messaggi TCP usa GO BACK-N: se un segmento non viene ricevuto (manca ack) viene richiesta la rispedizione del segmento complessivo e tutti i seguenti vengono scartati (ripetizione dellintera comunicazione dalla eccezione in poi)

43 2003-2004Reti di Calcolatori43 Il modello Client/Server Internet TCP: Transfer Control Protocol Protocollo per stabilire la CONNESSIONE TCP: Connessione tra due nodi: three-way handshake PRIMA FASE: A invia il segmento SYN a B e richiede la connessione (SYN nell'header del segmento e X valore scelto da A) SECONDA FASE: B riceve il segmento SYN e ne invia uno identico ad A insieme all'ACK (e Y valore scelto da B) TERZA FASE: A riceve il segmento SYN ed ACK e conferma la ricezione a B attraverso un ack a sua volta Il sistema di comunicazione a tre fasi compromesso ogni nodo invia un messaggio ed ha conferma Semantica at-most once

44 2003-2004Reti di Calcolatori44 Il modello Client/Server Internet TCP: Transfer Control Protocol Protocollo per stabilire la CONNESSIONE TCP: Protocollo di BIDDING (senza rifiuto) NEGOZIAZIONE a tre fasi per stabilire proprietà; si verifica che: Entrambi i nodi disponibili alla connessione per una sessione di comunicazione Accordo sulla sequenza iniziale di valori: ogni pari propone per il proprio verso: numeri di porta numeri per i flussi (messaggi ed ack) tempo di trasmissione e risposta (finestra,...) La sequenza é confermata proprio durante la inizializzazione Scelta casuale di un numero da cui iniziare la numerazione e comunicato all'altra per ogni flusso In fase iniziale si negoziano anche altre opzioni: accordo sul MSS (maximum segment size) dimensione del blocco di dati massimo da inviare (default 536) Maggiore il valore, migliori le performance fattore di scala della finestra richiesta di tempo e risposta per il coordinamento degli orologi

45 2003-2004Reti di Calcolatori45 Il modello Client/Server Internet TCP: Transfer Control Protocol Protocollo di chiusura della CONNESSIONE TCP: NEGOZIAZIONE chiusura a fasi semplice operazione di close graceful Chiusura monodirezionale Chiusura definitiva in un verso senza perdere i messaggi in trasferimento Il nodo A comunica a TCP di non avere ulteriori dati e chiude TCP chiude la comunicazione solo nel verso da A a B se B non ha terminato, i dati continuano a fluire da B ad A I dati che precedono la fine sono ricevuti prima della fine della connessione da A a B. controllo ancora aperto da A a B (flusso di ack) TCP permette solo il passaggio di ack su canale intenzionalmente chiuso

46 2003-2004Reti di Calcolatori46 Il modello Client/Server Internet TCP: Transfer Control Protocol Protocollo di chiusura della CONNESSIONE TCP: Chiusura a quattro fasi: A invia segmento FIN (che arriva dopo i relativi dati) TCP aspetta a dare corso alla chiusura definitiva, ma invia ad A solo un ack Dopo il tempo necessario per i programmi applicativi B invia ad A il suo segmento FIN che informa della disponibilità a chiudere la connessione L'ultimo passo: conferma da A a B della ricezione del segmento FIN e la chiusura del collegamento

47 2003-2004Reti di Calcolatori47 Il modello Client/Server Internet TCP: Transfer Control Protocol I sintesi: La gestione della connessione e della reliability porta ad un costo in termini di overhead non trascurabili per piccole interazioni I possibili guasti del dialogo sono spesso relativi al concetto di congestione (i gateway scartano i pacchetti IP in caso di congestione: TCP implementa diversi algoritmi che manipolano i time out e le dimensioni della slicing window per recuperare al meglio uno stato di congestione Il protocollo fornisce allutente una astrazione di stream completa: A Livello di applicazioni si usa quindi TCP quando si hanno esigenze di gestione della reliability (es: HTTP, FTP) Si usa invece UDP se si ha la necessità di gestire interazioni non per forza affidabili e senza uno stato necessario (es: protocolli di peering)

48 2003-2004Reti di Calcolatori48 Il modello Client/Server Internet DNS: Domain Name System È un servizio standard costruito per permettere una associazione logica più semplice allindirizzo IP. In Unix esiste un file /etc/hosts che contiene una tabella fatta in questo modo: 192.168.0.10localhostpc001pc001.deis.unibo.it 137.204.56.1www-liawww-lia.deis.unibo.it È possibile associare ad un indirizzo IP uno o più alias che identificano lhost a cui è associato lindirizzo Cosa fa il sistema: Riconosce un alias Verifica se lalias è nella tabella /etc/hosts Converte lalias nellip corrispondente Passa a TCP (o UDP) lindirizzo IP Il DNS non è altro che un servizio distribuito e standard in internet per la conversione degli alias in numeri IP

49 2003-2004Reti di Calcolatori49 Il modello Client/Server Internet DNS: Domain Name System Quali sono i requisiti di questo servizio: Deve essere flessibile e distribuito, non è possibile che ci sia una singola entità che tenga traccia di tutti gli indirizzi di Internet: Scalabile Completamente Distribuito località ogni domonio deve gestire in proprio il suo naming Deve garantire prestazioni significative e garantire un qualità costante nelle risposte perché tutti i client in internet hanno bisogno di risolvere il nome prima di utilizzare uno specifico servizio: Reliability (affidabilità) Efficienza Deve essere fidato: devo fidarmi di quello che mi dice (cosa succede se un DNS invece di darmi un indirizzo di una banca mi da un indirizzo di un sito malicious?) Trustness (fiducia)

50 2003-2004Reti di Calcolatori50 Il modello Client/Server Internet DNS: Domain Name System Come possiamo costruire il servizio: I numeri IP sono costruiti in modo gerarchico e parlante: posso cercare di riprendere il concetto di gerarchia: Reti (e sotto reti) vs. Domini Hosts vs. Servizi in un dominio Devo costruire una struttura generale che mi garantisca un ordine: Delega: ogni Dominio è responsabile del suo naming interno Autorità riconosciute: decidono i domini di livello 0 (.com.it.org..) e forniscono gli indirizzi riconosciuti dei domini di primo livello (amazon.com, unibo.it, mit.edu) Ogni dominio è responsabile della integrità dei suoi sottodomini / hosts (è difficile che una banca inserisca nel suo dominio spontaneamente un sito acker)

51 2003-2004Reti di Calcolatori51 Il modello Client/Server Internet DNS: Domain Name System È stata definita una struttura gerarchica standard.

52 2003-2004Reti di Calcolatori52 Il modello Client/Server Internet DNS: Domain Name System Caratteristiche Standard del Servizio: I singoli nomi sono case insensitive e al max 63 char Il nome completo al max 255 char Non sono validi solo caratteri riconosciuti in TUTTI gli standard di codifica: ASCII 7 Non si possono utilizzare inoltre alcuni caratteri riservati (., / \ | …etc) I domini non sono collegati in nessun modo alle reti fisiche o alle organizzazioni (logico vs. fisico): non ho mai vincoli fisici relativamente alla costruzione dei miei domini (motivo per cui possono esistere gli ISP: Internet Service Provider) Quando si ha la responsabilità di gestire un dominio si deve garantire una qualità del servizio specifica (si delega la gestione del naming ad operatori specializzati in grado di offire il servizio adeguato)

53 2003-2004Reti di Calcolatori53 Il modello Client/Server Internet DNS: Domain Name System Implementazione: Ogni richiesta viene fatta al servizio di nomi tramite un agente specifico di gestione dei nomi per una località a livello di API si passa il riferimento da mappare ad un resolver che o conosce già la corrispondenza (cache) o la trova attraverso una richiesta C/S a un name server Ogni hosts sa quale è il suo server (DNS Server) di riferimento (configurazione di sistema) Il DNS Server di riferimento è normalmente il DNS della organizzazione di cui si fa parte Ogni dominio corrisponde infatti al Name Server che ha autorità sulla traslazione degli indirizzi che non ha una visione completa, ma solo locale In genere, ogni zona ha un primary master responsabile per i dati della intera zona ma in più ci sono una serie di secondary master che sono copie del primary, con consistenza garantita dal protocollo DNS (non massima)

54 2003-2004Reti di Calcolatori54 Il modello Client/Server Internet DNS: Domain Name System allo start up il secondario chiede i dati al primario e può fare fronte al traffico in caso di guasto Ad intervalli prefissati, i secondari chiedono le informazioni al primario (modello pull) I ruoli sono mescolati in modo libero: primario di una zona può diventare il backup (master secondario) di un'altra zona Efficienza su località: i dati ottenuti possono essere richiesti nuovamente i server mantengono informazioni caching dei diversi server per ottimizzare i tempi di risposta al cliente È definito un protocollo di richiesta e risposta per il name server con uso di protocollo UDP (comunicazione porte 53) e se messaggi troppo lunghi? Eccezione e uso di TCP

55 2003-2004Reti di Calcolatori55 Il modello Client/Server Internet DNS: Domain Name System Quale è lo stato che il DNS mantiene per gestire i nomi: Un server mantiene un record per ogni risorsa dinamico (caricato da file di configurazione ed aggiornato) Le query consultano l'insieme dei record: Nome dominio Time to live(tempo validità in secondi) Classe(Internet IN) Tipo(descrizione del tipo) Valore TipoSignificatoValore SOAStart of Authorityparametri della zona AIP host addressintero a 32 bit (dot not.) MXMail exchangeserver di domino di mail NSName serverserver per dominio corrente CNAMECanonical namealias di nome in un dominio PTRPointerper corrispondenza inversa HINFOHost descriptiondescrizione di host e SO TXTTexttesto qualunque

56 2003-2004Reti di Calcolatori56 Il modello Client/Server Internet DNS: Domain Name System Esempi di record DNS: -------------------------------------------------------------- @ IN SOA promet1.deis.unibo.it. postmaster.deis.unibo.it. (644 10800 1800 604800 86400) ; serial number, refresh, retry, expiration, TTL in sec ; versione, 3 ore, 1/2 o, 1 sett, 1 d IN NS promet1.deis.unibo.it. IN NS promet4.deis.unibo.it. IN NS almadns.unibo.it. IN NS admii.arl.army.mil. ------------------------------------------------------------------------------------- localhost IN A 127.0.0.1 @ A 137.204.59.1 MX 10 deis.unibo.it. MX 40 mail.ing.unibo.it. ------------------------------------------------------------------------------------- lab2 IN NS lab2fw.deis.unibo.it. lab2fw IN A 137.204.56.136 amce11 IN A 137.204.57.244 IN HINFO HW:PC IBM SW:WINDOWS 95 IN WKS 137.204.57.244 TCP FTP TELNET SMTP IN MX 40 amce11.deis.unibo.it. labvisione IN CNAME csite27 deis18 IN TXT "Qualunque testo non significativo" deis18 IN RP root.deis.unibo.it luca\.ghedini.mail.ing.unibo.it ; record per responsabile

57 2003-2004Reti di Calcolatori57 Il modello Client/Server Internet DNS: Domain Name System Come procede la risoluzione dei nomi: Se il DNS di zona non è in grado di offrire la risposta deve partire una sequenza di ricerca sugli altri DNS; questa sequenza, a seconda delle implementazioni può seguire due algoritmi: Soluzione ricorsiva richiede che al cliente o si fornisca risposta (anche chiedendo ad altri) o si segnali errore (dominio non esistente, etc.) Soluzione iterativa richiede che al cliente si fornisca o la risposta o il migliore suggerimento (come un riferimento al migliore name server) A seconda del ruolo dellservitore nella gerarchia verranno implementati i due algoritmi: Il resolver usa una query tipicamente ricorsiva: ha bisnogno di una risposta e demanda al DNS server di riferimento lonere di una eventuale escalation il server di dominio si incarica di rispondere coordinandosi con altri sequendo un procedimento iterativo Tutti i server si comporteranno quindi tra loro in modo iterativo

58 2003-2004Reti di Calcolatori58 Il modello Client/Server Internet DNS: Domain Name System client resolver pippo.cineca.it trova Gestore deis.unibo.it unibo.it RIF a it it cineca.it RIF a cineca.it trovato per pippo.cineca.it 137.205.88.00 pippo.cineca.it Server di Dominio Server Dominio Secondari Server Dominio Secondari

59 2003-2004Reti di Calcolatori59 Il modello Client/Server Internet In Sintesi: Laccesso ad una pagina WEB Uso dei diversi livelli di protocolli Da cliente a servitore remoto I passi che devono essere fatti sono i seguenti: Richiesta di pagina Web Richiesta al DNS Protocollo ARP per trovare percorsi in uscita Connessione TCP tra client e server Passaggio dei dati Chiusura

60 2003-2004Reti di Calcolatori60 Il modello Client/Server Internet Estensioni dei Protocolli TCP/IP Al di sopra della suite TCP/IP è possibile costruire soluzioni adatte alle esigenze più diverse: FTPHTTP TCP IP UDP RTPTELNET SMTP POP SNMPDNS Internet VT XDR NFS Accanto ai protocolli tradizionali, compaiono molte linee di sviluppo, incoraggiate da IETF con la costituzione di gruppi di lavoro: Alcuni protocolli rappresentano necessità di ampie utenze: NAT, DHCP, PPP,... estensioni per consentire una migliore sicurezza estensioni per la gestione della mobilità estensioni per considerare sistemi a flusso di informazioni multimedial estensioni per la gestione della qualità di servizio

61 2003-2004Reti di Calcolatori61 Il modello Client/Server Internet Alcuni protocolli standard PPP e SLIP: Protocolli nati per la gestione di ampie batterie di modem: È troppo costoso assegnare un IP ad ogni utente Viene creato un pool di indirizzi che viene associato dinamicamente alla sola sessione di accesso di un modem Quando un modem chiude la connessioen il numero IP assegnato torna nel pool DHCP (rfc 2131) Protocollo nato per la gestione di reti molto dinamiche Quando un host entra nella rete chiede un IP: Si basa su due ruoli: clienti e servitori con protocollo di bidding a fasi broadcast del discovery (richiesta di ingresso) offerte dei servitori (con parametri di scelta) scelta di una offerta (in broadcast) conferma della offerta messaggi di mantenimento prima della scadenza (lease) È molto interessante vista la diffusione dei computer portatili nelle grosse organizzazioni

62 2003-2004Reti di Calcolatori62 Il modello Client/Server Internet DHCP: implementazione

63 2003-2004Reti di Calcolatori63 Il modello Client/Server Internet Reti Publiche vs. Private, Aperte vs. Opache Il naming basato su IP ha permesso di creare una rete pubblica completa; ogni host è in grado di raggiungere ogni altro host attraverso il routing. Questa soluzione però non sempre è interessante, a volte infatti può essere favorevole creare reti private (non raggiungibili direttamente) con un set di indirizzi separato dal resto della rete: Vantaggio di costo: un indirizzo IP pubblico ha un costo Protezione e sicurezza: non espongo direttamente la mia macchina su internet ma gestisco direttamente il suo accesso Flessibilità: posso utilizzare senza complessità aggiunta protocolli di assegnamento dinamico come il DHCP Si parla di Reti Private o Opache quando gli indirizzi IP della rete non sono esposti direttamente su internet In Internet, una rete opaca è vista attraverso i suoi gateway, i gateway nascondono gli indirizzi interni e si occupano della traduzione (ad esempio FastWeb ha una rete privata, da internet si vedono solo i gateway delle diverse reti cittadine

64 2003-2004Reti di Calcolatori64 Il modello Client/Server Internet NAT NAT: Network Address Transaltion: è il servizio che gestisce la traduzione degli indirizzi nel caso di reti opache Traduce, allinterno dei pacchetti IP gli indirizzi pubblici/privati e si occupa di ricostruire i pacchetti (checksum) in modo corretto Le applicazioni che utilizzano direttamente i numeri IP possono andare incontro a problemi nel pacchetto infatti risulta un destinatario IP privato… se provo a raggiungerlo al di fuori della sessione di interazione specifica (controllata dal NAT) non riesco a risolvere il nome


Scaricare ppt "2003-2004Reti di Calcolatori1 Il modello Client/Server Internet: gli standard de facto Application Presentation Session Transport Network Link Physical."

Presentazioni simili


Annunci Google