1 / 64

Il modello Client/Server

Host A. Host B. Host A. Host B. Application. Application. Presentation. Presentation. Session. Session. Transport. Transport. Node. Node. Network. Network. Link. Link. Physical. Physical. Internet: gli standard de facto. Il modello Client/Server. HTTP – SMTP – FTP ….

eric-grimes
Download Presentation

Il modello Client/Server

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. InternetInterconnessione tra reti Il modello Client/Server • 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? Reti di Calcolatori

  3. InternetLo stack TCP-IP Il modello Client/Server • 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 dell’indirizzo fisico di un nodo • RARPReverse Address Resolution Protocol: Ricerca un indirizzo IP di un nodo Reti di Calcolatori

  4. InternetApplicazioni e Comunicazioni in TCP/IP Il modello Client/Server Reti di Calcolatori

  5. InternetInterazioni via Gateway Il modello Client/Server Reti di Calcolatori

  6. InternetIl Servizio IP Il modello Client/Server • 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 Reti di Calcolatori

  7. InternetIP Naming ed indirizzamento gerarchico Il modello Client/Server • Ogni connessione di un host a una rete ha un indirizzo internet unico formato da due elementi e detto IP-ADDRESS=NETID, HOSTID • NETID è l’identificatore di rete • HOSTID è l’dentificatore 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 all’interno della rete 137 ci sarà o il nodo identificato dall’id 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 Reti di Calcolatori

  8. InternetIP Naming: le classi degli indirizzi Il modello Client/Server Esempio: 137.204.56.1: 137= 10001001  è una rete di classe B !  una LAN di grandi dimensioni NETID= 137.204 HOSTID= 56.1 Reti di Calcolatori

  9. InternetIP Naming: Broadcast e Multicast Il modello Client/Server • 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) Reti di Calcolatori

  10. InternetIP Naming: Assegnamento indirizzi Il modello Client/Server • 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 un’altra • 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 Reti di Calcolatori

  11. InternetIP: Caratteristiche e specifiche Il modello Client/Server • 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 Reti di Calcolatori

  12. InternetIP: Struttura del Datagramma Il modello Client/Server Intestazione Dati • 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 Reti di Calcolatori

  13. InternetARP Address Resolution Protocol Il modello Client/Server • 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 Reti di Calcolatori

  14. InternetARP Address Resolution Protocol Il modello Client/Server • 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 all’invio 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 l’indirizzo IP a rispondere, ma tutti i nodi che conoscono il MAC Address associato a quello specifico IP • Il pacchetto ARP: Reti di Calcolatori

  15. InternetRARP Reverse Address Resolution Protocol Il modello Client/Server • 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? • L’host 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 l’ip corrispondente • Ci possono essere più server sulla rete  possono rispondere tutti senza problemi di coordinamento (operazione idempotente) Reti di Calcolatori

  16. InternetRouting e separazione fra reti Il modello Client/Server • ARP e RARP funzionano solamente all’interno 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 all’altra Reti di Calcolatori

  17. InternetRouting e separazione fra reti Il modello Client/Server • La separazione logica può essere ulteriorimente diversificata attraverso il concetto di subnet: • All’interno della rete 137.204 è possibile definire due sottoreti: 137.204.56 e 137.204.57 • La subnet è rispettata permettendo una comunicazione diretta solo all’interno, obbligando il passaggio per un gateway per andare nell’altra 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 Reti di Calcolatori

  18. HOST A HOST B InternetRouting in topologie complesse Il modello Client/Server GATEWAY 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 Reti di Calcolatori

  19. HOST A HOST B InternetRouting: i percorsi multipli Il modello Client/Server • 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) Reti di Calcolatori

  20. InternetRouting: gestione dei percorsi Il modello Client/Server • 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 Reti di Calcolatori

  21. InternetAlgoritmi di routing Il modello Client/Server • Algoritmi generalmente globali basati su tabelle che sono disponibili ai diversi router partecipanti • A parte alcuni casi iniziali è diffuso l’uso di protocolli isolati tipo patata bollente • Algoritmi Statici • basati su informazioni statiche riguardanti il cammino più breve (per piccole reti ed interconnessioni) • 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 l’impostazione 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 Reti di Calcolatori

  22. InternetAlgoritmi di routing: Distance Vector Il modello Client/Server • 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 l’hop successivo • La propagazione delle informazioni (nelle tabelle di routing) è la chiave della gestione dell’algoritmo 1° passo propagazione 2° passo propagazione Reti di Calcolatori

  23. InternetAlgoritmi di routing: Distance Vector Il modello Client/Server • Cosa succede se cambia un percorso: 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 Reti di Calcolatori

  24. InternetDistance Vector: problemi di riconfigurazione Il modello Client/Server • 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 all’unico 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 all’infinito (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 Reti di Calcolatori

  25. InternetDistance Vector: Varianti per ridurre i problemi Il modello Client/Server • 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 Cun messaggio di non raggiungibilità se crede di raggiungere D via C • C non può rifarsi ad A (che non raggiungeva D) • L’algoritmo 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 Reti di Calcolatori

  26. InternetAlgoritmi di routing: Link State Il modello Client/Server • 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) • Dijkstrashortest-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) Reti di Calcolatori

  27. InternetLink State: Caratteristiche degli Algoritmi Il modello Client/Server • 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à Reti di Calcolatori

  28. InternetRouting: i protocolli di coordinamento tra gateway Il modello Client/Server • 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à  all’interno 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 Reti di Calcolatori

  29. InternetICMP: Internet Control Message Protocol Il modello Client/Server • 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 Reti di Calcolatori

  30. InternetICMP: Internet Control Message Protocol Il modello Client/Server • 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 ----------------------- Reti di Calcolatori

  31. InternetICMP: Internet Control Message Protocol Il modello Client/Server • 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 Reti di Calcolatori

  32. InternetICMP: Internet Control Message Protocol Il modello Client/Server • 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 Reti di Calcolatori

  33. Application User Datagram UDP Area dati header (UDP) IP header Area dati Internet (IP) Frame Area dati Frame Interfaccia di rete InternetUDP: User Datagram Protocol Il modello Client/Server • È il protocollo di livello trasporto per la gestione da parte dell’utente di comunicaizoni di tipo datagramma • Indirizzo: mentre IP deve identificare un nodo, UDP deve identificare uno specifico processo all’interno 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 Reti di Calcolatori

  34. InternetUDP: User Datagram Protocol Il modello Client/Server • 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 Reti di Calcolatori

  35. InternetUDP: User Datagram Protocol Il modello Client/Server • 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 Reti di Calcolatori

  36. InternetUDP: User Datagram Protocol Il modello Client/Server • Assegnazione dei numeri di porta: • Alcune porte sono riservate secondo lo standard del protocollo a specifici servizi: Reti di Calcolatori

  37. InternetUDP: User Datagram Protocol Il modello Client/Server • 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 l’invio • 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: l’unico stato è dato dalla definizione di una porta specifica per la ricezione Reti di Calcolatori

  38. InternetTCP: Transfer Control Protocol Il modello Client/Server • 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 Reti di Calcolatori

  39. InternetTCP: Transfer Control Protocol Il modello Client/Server Formato del segmento TCP (header 20 byte): Reti di Calcolatori

  40. InternetTCP: Transfer Control Protocol Il modello Client/Server • CODE BIT • URG un dato urgente nel segmento • ACK acknowledgement nel segmento • PUSH invio immediato del segmento • RST reset di una connessione • SYN si stabilisce la connessione • FIN termine 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 Reti di Calcolatori

  41. InternetTCP: Transfer Control Protocol Il modello Client/Server Le porte seguono lo stesso razionale di UDP  alcune delle porte riservate: Reti di Calcolatori

  42. InternetTCP: Transfer Control Protocol Il modello Client/Server • 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 dell’intera comunicazione dalla eccezione in poi) Reti di Calcolatori

  43. InternetTCP: Transfer Control Protocol Il modello Client/Server • 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 Reti di Calcolatori

  44. InternetTCP: Transfer Control Protocol Il modello Client/Server • 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 Reti di Calcolatori

  45. InternetTCP: Transfer Control Protocol Il modello Client/Server • 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 Reti di Calcolatori

  46. InternetTCP: Transfer Control Protocol Il modello Client/Server 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 Reti di Calcolatori

  47. InternetTCP: Transfer Control Protocol Il modello Client/Server • 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 all’utente 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) Reti di Calcolatori

  48. InternetDNS: Domain Name System Il modello Client/Server • È un servizio standard costruito per permettere una associazione logica più semplice all’indirizzo IP. • In Unix esiste un file /etc/hosts che contiene una tabella fatta in questo modo: • 192.168.0.10 localhost pc001 pc001.deis.unibo.it • 137.204.56.1 www-lia www-lia.deis.unibo.it • È possibile associare ad un indirizzo IP uno o più aliasche identificano l’host a cui è associato l’indirizzo • Cosa fa il sistema: • Riconosce un alias • Verifica se l’alias è nella tabella /etc/hosts • Converte l’alias nell’ip corrispondente • Passa a TCP (o UDP) l’indirizzo IP • Il DNS non è altro che un servizio distribuito e standard in internet per la conversione degli alias in numeri IP Reti di Calcolatori

  49. InternetDNS: Domain Name System Il modello Client/Server • 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) Reti di Calcolatori

  50. InternetDNS: Domain Name System Il modello Client/Server • 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) Reti di Calcolatori

More Related