La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Lez. 11 Alma Mater Studiorum - Universita' di Bologna Sede di Cesena Reti di Calcolatori Il Modello di Riferimento OSI Vedi: A.S. Tanenbaum, Computer Networks,

Presentazioni simili


Presentazione sul tema: "Lez. 11 Alma Mater Studiorum - Universita' di Bologna Sede di Cesena Reti di Calcolatori Il Modello di Riferimento OSI Vedi: A.S. Tanenbaum, Computer Networks,"— Transcript della presentazione:

1 Lez. 11 Alma Mater Studiorum - Universita' di Bologna Sede di Cesena Reti di Calcolatori Il Modello di Riferimento OSI Vedi: A.S. Tanenbaum, Computer Networks, 4th ed., Prentice Hall, sez. 1.3 e 1.4, pagg M.T. Rose, The open book, Prentice Hall, sez. 2, pagg ISO, IS OSI Transport Service Definition. Copyright © by Claudio Salati.

2 2 Rete: rete reale Alice PC di Alice File server

3 3 Rete: modello astratto.1 Rete un insieme di sottoreti, interconnesse da sistemi intermedi, detti intermediate system (IS) o router (nel passato, anche gateway), che interconnette (serve a interconnettere) un insieme di sistemi finali detti end system (ES) o host Scopo della rete Interconnettere tra loro gli ES Gli IS sono presenti solo per consentire linterconnessione degli ES Su ogni nodo della rete (ES o IS) e presente una istanza del protocollo di (inter-) rete: IP (Internet Protocol)

4 4 Rete: modello astratto.2 Sottorete Una infrastruttura di comunicazione connessa e omogenea. Puo' offrire una interfaccia con servizio di livello (layer) Data Link o con servizio di livello di Rete. Il layer di Data Link si occupa del trasferimento di (pacchetti di) dati tra sistemi fisicamente (direttamente) connessi. Il layer di Rete si occupa del trasferimento di (pacchetti di) dati tra due sistemi qualunque di una rete connessa. In ogni caso tutti i nodi di una stessa sottorete (in particolare, ES e IS delle nostra rete che si affacciano alla sottorete) possono comunicare tra loro tramite il servizio offerto dalla sottorete. Dal punto di vista di IP due nodi di rete, ES e/o IS, che si affacciano ad una stessa sottorete possono comunicare tra loro tramite i servizi della sottorete, che e quindi vista da IP come un servizio di livello Data Link. Esempio di sottorete: IP over avian carriers, RFC 1149 (RFC, Wikipedia).RFCWikipedia

5 5 Rete: modello astratto.2 Sottorete IP assume che tutte le sottoreti siano in grado di offrire un servizio di comunicazione connectionless. Si assume quindi che sia supportata una funzione del tipo Send_IPDatagram(IPDstAddr, IPSrcAddr, Dgram) N.B. se la sottorete non offre un servizio di comunicazione connectionless (e.g. reti ATM, SDH, OTN) e necessario introdurre uno stub di adattamento! Lo stub di adattamento e necessario anche per mappare gli indirizzi di livello IP nei corrispondenti indirizzi di sottorete. Internet = Interconnection of Networks

6 6 Rete: modello astratto sottorete Sottorete sottorete Sottorete ES IS ES IS sottorete IS

7 7 Nodi della rete (da: Rose) INTERMEDIATE-SYSTEM (IS) An IS is simply a single node, connected to more than one subnetwork, which is capable and is allowed to forward data from one subnetwork to another (non basta essere dual-homed!). An IS performs 2 tasks: it forwards data from one subnetwork to another (switching); in order to make the forwarding decision (where to send data next), it usually participates in a distributed routing algorithm. END-SYSTEM (ES) An ES is a node in the network containing the end-to-end services necessary for data transfer, the application services necessary for information transfer, le applicazioni finali (nel nostro caso, applicazioni di rete / distribuite). An ES is where the applications live. A node in the network may function both as an IS and as an ES.

8 8 Applicazioni finali e architettura layerizzata Chi e che realizza unapplicazione? Un programma in esecuzione, cioe un processo. Nel nostro caso il programma e distribuito su diversi nodi della rete, quindi e costituito di diversi processi che devono interagire tra loro. Quindi tra chi deve consentire il colloquio (scambio di informazioni) la rete? Tra processi utente distribuiti su macchine diverse (i moduli del programma distribuito). Perche due processi su macchine diverse riescano a parlarsi tra loro e necessario che prima ci riescano le macchine su cui essi sono allocati. 2 conseguenze: Organizzazione layerizzata delle funzionalita di rete : Colloquio allinterno di una sottorete vs. colloquio a livello di rete. Colloquio a livello di rete tra macchine vs. colloquio tra processi allocati su queste macchine. Necessita di indirizzare gli interlocutori a diversi livelli: Indirizzo di una macchina a livello di sottorete. Indirizzo della macchina a livello di rete. Indirizzo di un processo.

9 9 Applicazioni di Rete: Esempi VNC (consolle remota ), costituita da 2 tipi di moduli: viewer server telnet (terminale remoto), costituita da 2 tipi di moduli: client server FTP / TFTP (file transfer), costituita da 2 tipi di moduli: client server NFS (network file system), costituita da 2 tipi di moduli: client server WWW (web), costituita da 2 tipi di moduli: browser server... N.B.: appare sempre il paradigma client-server (anche se questo non significa che tutte le applicazioni distribuite siano client-server)!

10 10 Modello astratto alternativo (client-server).1 sottorete Sottorete sottorete Sottorete IS Client IS sottorete IS Server

11 11 Modello astratto alternativo.2 ES

12 12 Modello astratto alternativo.3 Client Server

13 13 Modello astratto alternativo: cloud-computing Client

14 14 Modelli Il modello Internet e intrinsecamente peer-to-peer: qualunque ES puo interagire con qualunque ES. Il modello client-server estremizzato, in cui alcune macchine sono destinate ad ospitare solo il lato server delle applicazioni ed altre solo il lato client, non e peer-to-peer: due macchine client non possono interagire tra loro. Nel modello cloud-computing le macchine server sono addirittura annegate dentro la rete: quando richiedo un servizio non so nemmeno chi me lo stia fornendo! Lavere distinto tra macchine client e macchine server e quello che ha poi consentito di utilizzare allinterno della rete (delle sue intranet) indirizzi IP privati. Ma e anche una delle ragioni che hanno reso problematico le comunicazioni tra due ES qualunque. Una intranet è un insieme di sottoreti di internet che sono gestite da una unica organizzazione (amministrazione) e che può essere ad accesso ristretto da/verso il resto della rete.

15 15 Modello non piatto di rete sottorete Sottorete sottorete Sottorete ES IS ES IS sottorete IS intranet

16 16 Dati (stringhe di bit/byte) vs. informazioni Vedi: Beau Lotto: Optical illusions show how we see, TED Talks, July 2009; _see.htmlhttp://www.ted.com/talks/beau_lotto_optical_illusions_show_how_we _see.html, 4min & 30sec iniziali. Terminologia: Corso Reti di CalcolatoriBeau Lotto datiinformation informazionimeaning

17 17 Dati (stringhe di bit/byte) vs. informazioni Un dato (cioe una stringa di bit o di byte) e' una rappresentazione concreta (cioe una encodifica) di una informazione (un valore di un certo tipo). Non esiste una associazione biunivoca intrinseca dato informazione. In quanti modi possiamo pensare di rappresentare linformazione valore booleano true? Dato un testo, con quanti alfabeti diversi puo essere scritto? Alfabeto ANSI ASCII Alfabeto ISO Alfabeto Unicode Anche fissando lalfabeto, in quante maniere diverse posso pensare di codificare i caratteri di quellalfabeto? Esempio Unicode: UTF-8 UTF-16 big-endian UTF-16 little-endian

18 18 Tabella ASCII (7 bit per char)

19 19 Dati (stringhe di bit/byte) vs. informazioni Cosa rappresenta il dato (la stringa di bit) ? N.B.: assumiamo: most significant bit first (piu' a sinistra)! il numero +118 (con segno) in rappresentazione complemento-a-2 il numero 118 (senza segno) in rappresentazione binaria il numero 76 (senza segno) in rappresentazione BCD il valore booleano TRUE (come in C: stringa con almeno un bit 0; se tutti i bit sono 0 allora il valore rappresentato e' FALSE) Il carattere 'v' secondo l'alfabeto ASCII (esteso?) +118, 118, 76, TRUE, 'v' rappresentano informazioni Quando voglio usare un'informazione su un calcolatore (o trasferirla in rete) la devo codificare (rappresentare concretamente) tramite una stringa di bit o di byte (un dato) Se voglio risalire da un dato all'informazione da esso rappresentata devo sapere: di quale tipo di informazione si tratta quale e' la regola di encodifica utilizzata per quel tipo di informazione (nel contesto specifico)

20 20 Value notation Quando diciamo che +118, 118, 76, TRUE, 'v' rappresentano informazioni, intendiamo che la notazione che usiamo ci consente (obbliga) a indicare dei valori tipizzati. Quando in C scriviamo 5 intendiamo valore di tipo int, 5. Se volessimo il valore di tipo unsigned, 5, dovremmo scrivere 5U o 5u. Se volessimo il valore di tipo long, 5, dovremmo scrivere 5L o 5l. Analogamente, quando in C scriviamo intendiamo valore di tipo double, Se volessimo il valore di tipo float, 123.4, dovremmo scrivere 123.4F o 123.4f. Nei linguaggi di programmazione ogni valore e sempre tipizzato (appartiene ad uno ed un solo tipo). I linguaggi di programmazione prevedono una notazione che consente di esprimere valori tipizzati.

21 21 Dati (stringhe di bit/byte) vs. informazioni Quando ricevo dei dati (e.g. un file) attraverso il web, come faccio a capire quale tipo di informazioni essi rappresentano, e quindi quale e il programma adatto per trattarli? Testo HTML il Browser si occupa direttamente del rendering sullo schermo. Programma eseguibile il sistema operativo lo prende in carico per eseguirlo o per salvarlo in un file. Testo PDF viene aperto con Acrobat Reader. Testo semplice (plain text) viene aperto Wordpad o Notepad.... Il PDU HTTP (qualunque cosa questo significhi) riporta il tipo dellinformazione da esso trasportata, e.g.: Content-Type: text/html; charset=ISO Content-Type: text/plain; charset=us-ascii Content-Type: image/gif

22 22 Dati vs. informazioni e architettura layerizzata Due moduli di una applicazione distribuita, tra loro, vogliono scambiarsi informazioni. Ma le informazioni in astratto non esistono, esistono solo in quanto incarnate in una rappresentazione concreta, in dati. Quindi, se due moduli di una applicazione distribuita vogliono scambiarsi delle informazioni devono prima riuscire a scambiarsi tra loro dei dati e poi essere in grado di associare quei dati in modo corretto allinformazione che si vuole scambiare. Due funzionalita diverse, due layer diversi: Scambio di dati tra due moduli di una applicazione distribuita. Scambio di informazioni tra due moduli di una applicazione distribuita.

23 23 Una architettura layerizzata Scambiare dati tra due moduli del programma distribuito e condizione necessaria (ma non sufficiente) per potere scambiare informazione tra i due moduli. Scambiare dati tra due ES e condizione necessaria (ma non sufficiente) per potere scambiare dati tra i due moduli di un programma distribuito residenti su di essi. Scambiare dati tra due nodi di una sottorete e condizione necessaria (ma non sufficiente) per potere scambiare dati tra i due nodi della rete. Devo poter indirizzare Processi in esecuzione su un ES ES sulla rete Nodi sulle sottoreti

24 24 Una architettura gerarchica a livelli La costruzione di una rete di calcolatori e' un problema complesso. La strategia normale per risolvere un problema complesso e' di scomporlo in sotto-problemi piu' semplici. Una maniera per organizzare tra loro i sotto-problemi e' quella di definire una architettura gerarchica a livelli (layer) in cui ciascun livello e' realizzato sfruttando le funzionalita' offerte dal livello (in generale, dai livelli) inferiore della gerarchia. Ogni livello offre un insieme ben definito di servizi, che il livello superiore puo' utilizzare senza doversi preoccupare di come questi servizi sono implementati. ogni livello rappresenta una macchina virtuale. ogni livello rappresenta un dato astratto (ADT, classe).

25 25 Una architettura gerarchica e distribuita Layer 1 Layer 2 Layer 3 Layer 4 Layer 5

26 26 Una architettura distribuita Una rete di calcolatori e' realizzata tramite l'interconnessione fisica di diversi nodi che interagiscono tra loro. Ciascun layer dell'architettura di rete, per poter realizzare la propria funzionalita', deve essere presente (istanziato) su piu' (alcuni o tutti i) nodi della rete (a seconda del layer e del tipo di nodo). Ciascun layer e' cioe' realizzato in modo distribuito. Per poter realizzare la propria funzionalita' il layer n su un nodo deve poter interagire con il layer n di uno o piu' altri nodi. Le regole dell'interazione tra le diverse istanze del layer n (in particolare, la sintassi dellinformazione scambiata) e la logica di evoluzione dello stato di ciascuna istanza a seconda degli eventi che la coinvolgono sono complessivamente indicate come protocollo del layer n. Una istanza del layer n e' chiamata protocol entity del layer n. Due protocol entity che dialogano tra loro si riferiscono come peer entity (pari).

27 27 Protocollo Le strutture informative scambiate tra due istanze del layer n per dialogare tra loro sono dette nPDU (Protocol Data Unit di livello n). "Dialogare tra loro" significa "sviluppare il loro protocollo di dialogo, fare evolvere il proprio stato e il proprio comportamento in base allo stato del pari ( scambio di informazioni con il pari) e alle richieste del cliente. Perche' il dialogo sia efficace il protocollo (e in particolare la struttura dell'informazione scambiata) deve essere condiviso, e quindi standardizzato. La definizione di cosa fa azioni (e.g. inviare un certo PDU al pari) e transizioni di stato (protocol entity implementate come MSF) una protocol entity di un layer che si trova in un certo stato a fronte degli eventi che possono intervenire e' indicata come insieme delle procedure del protocollo.

28 \ active OPEN | CLOSED | \ < \ \ create TCB | ^ \ \ snd SYN passive OPEN | | CLOSE \ \ | | \ \ create TCB | | delete TCB \ \ V | \ \ CLOSE | \ | LISTEN | | | delete TCB | | rcv SYN | | SEND | | | | | V snd SYN,ACK / \ snd SYN | | | | | SYN | rcv SYN | SYN | | RCVD |< | SENT | | | snd ACK | | | | | | rcv ACK of SYN \ / rcv SYN,ACK | | | | x | | snd ACK | V V | CLOSE | | ESTAB | | snd FIN | CLOSE | | rcv FIN V | | snd FIN / \ snd ACK | FIN | | CLOSE | | WAIT-1 | | WAIT | rcv FIN \ | rcv ACK of FIN | CLOSE | | snd ACK | | V x V snd FIN V |FINWAIT-2| | CLOSING | | LAST-ACK| | rcv ACK of FIN | rcv ACK of FIN | | rcv FIN | Timeout=2MSL | | x V x V \ snd ACK delete TCB >|TIME WAIT| >| CLOSED | TCP Connection State Diagram

29 29 Layer e loro interazioni: colloquio tra pari I layer di unarchitettura di rete sono normalmente numerati da 1 a N, dove N dipende dalla particolare architettura di rete (N=7 nel caso del modello di riferimento OSI, Open Systems Interconnection, ma in realta al di sopra del Layer 7 ce lapplicazione utente vera e propria, lapplicazione finale). Nel modello di riferimento OSI ad ogni layer sono associati anche un nome ed un acronimo. Il layer 1 e' normalmente indicato come layer Fisico (Ph). In realta', eccetto che per il livello Fisico, non e' possibile un colloquio diretto tra pari su nodi diversi. Per parlare con il proprio pari sul nodo B, l'istanza del layer n+1 (n 1) presente sul nodo A deve (non ha altro strumento per farlo!) utilizzare i servizi forniti dal layer n residente sul proprio nodo.

30 30 Accesso ai servizi del layer n L'accesso ai servizi del layer n da parte di un cliente (protocol entity del layer n+1) avviene attraverso un nSAP (Service Access Point del layer n) Ogni cliente del layer n utilizza un proprio nSAP per accedere ai servizi di questo layer Lo nSAP di un cliente (di una entita di livello n+1) e distinguibile da tutti gli altri nSAP non solo da quelli allocati sullo stesso nodo, ma da tutti gli altri nSAP della rete! Un nSAP individua univocamente nella rete una entita di livello n+1 Un nSAP consente alle altre entita di livello n+1 di indirizzare una entita di livello n+1 Un nSAP e formato dalla concatenazione dellindirizzo della entita di protocollo di livello n che fornisce il servizio (n-1SAP) con un nSEL (selettore di livello n): lnSEL identifica univocamente (a livello locale) un particolare cliente dellentita rispetto a tutti i suoi altri clienti N.B. di conseguenza gli indirizzi delle diverse entita dei diversi layer sono strutturati ad albero.

31 31 OSI Reference Model Layer end-to-end, presenti solo sugli ES infoinfo datidati

32 32 LArchitettura OSI in soldoni Funzioni dei diversi layer dellarchitettura di rete OSI: Layer 1, Physical, Ph: scambio di bit tra nodi adiacenti della rete. Layer 2, Data Link, Dl: scambio di pacchetti di dati (frame) tra nodi adiacenti della rete. Layer 3, Network, N: scambio di pacchetti di dati (datagram) tra nodi qualunque della rete, anche se non adiacenti. Layer 4, Transport, T: scambio di dati tra i moduli di una applicazione distribuita. Layer 5, Session, S: ???. Layer 6, Presentation, P: scambio di informazioni tra i moduli di una applicazione distribuita. Layer 7, Application, A: protocolli applicativi specifici (e.g. HTTP) e supporti per la costruzione di applicazioni distribuite. E sopra il livello 7 ci sta la nostra applicazione, il programma utente (e.g. il browser o il web server)!

33 33 Dati vs. Info: definizione di un nPDU, n = 2..6 Non ce distinzione tra informazione e sua encodifica. Occorre indicare non solo quali sono le informazioni scambiate, ma anche come esse sono encodificate nellnPDU. Esempio (PDU IP):

34 34 Dati vs. Info: definizione di un 7PDU (APDU) E sufficiente descrivere quale e linformazione che viene scambiata, senza preoccuparsi di come essa viene encodificata da un pari, dallaltro o sulla rete. Esempio (PDU RPC): struct rpc_msg { unsigned int xid; // transaction identifier union switch (msg_type mtype) { case CALL: call_body cbody; case REPLY: reply_body rbody; } body; }; enum msg_type { CALL = 0, REPLY = 1 }; struct call_body { unsigned int rpcvers; // must be ==2 unsigned int prog; // binding info unsigned int vers; // binding info unsigned int proc; // binding info opaque_auth cred; // authen. info opaque_auth verf; // authen. info // procedure specific parameters start here };...

35 35 Definizione OSI di un layer Ogni layer puo' definire diversi insiemi di servizi Ad esempio i livelli 2, 3, 4 del modello di riferimento OSI (rispettivamente, Data Link o Dl, Network o N, Transport o T layer) definiscono ciascuno due insiemi di servizi: Connection Oriented (CO) n-layer Service ConnectionLess (CL) n-layer Service Ogni insieme di servizi e' implementato da uno o piu' protocolli. Nell'architettura di rete OSI ogni layer e' definito tramite: La definizione degli insiemi di servizi offerti dal layer. La definizione dei protocolli utilizzati per realizzare quegli insiemi di servizi. Non e prevista (neanche nel mondo TCP/IP!) la definizione di unAPI standard per laccesso ai servizi offerti da un layer.

36 36 Definizione OSI dei servizi di un layer La definizione OSI dei servizi di un layer non avviene tramite la definizione di una API (Application Programming Interface o interfaccia programmatica) standard. Del resto nemmeno nel mondo Internet le API sono soggette a definizione standard. Per il layer di Trasporto: Non esiste nessun RFC che definisce l'API socket. Non esiste alcun RFC che definisce l'API TLI: TLI (XTI) e' uno standard Unix System V/Posix, non Internet. Internet standardizza solo i protocolli! La standardizzazione dei protocolli garantisce la interoperabilita' di diverse implementazioni dell'architettura di rete. La definizione di API standard consentirebbe la portabilita' del SW da un ambiente operativo all'altro.

37 37 API standard? Piu facile da dire che da fare. I diversi ambienti operativi incoraggiano stili di programmazione diversi : Sincrono (il programma invoca le system call quando vuole lui): e lo stile tradizionale Unix. Asincrono (o event driven, basato su call-back): e lo stile tradizionale Windows, derivato dallorganizzazione dei SW per GUI. Sequenziale: e lo stile tradizionale C. Concorrente: e lo stile tradizionale Java e Windows. Anche quando delle API sono state standardizzate (e.g. TLI) e capitato che nessuno le ha prese sul serio!

38 38 Definizione di un layer: parole chiave.1 Si applicano a diversi layer servizi Connection-Oriented (CO) vs. servizi ConnectionLess (CL) Servizio di trasmissione dei pacchetti che richiede che le entita' di comunicazione stabiliscano una connessione (circuito virtuale) prima di inviare i dati (CO) vs. servizio di trasmissione dei pacchetti che tratta ciascun pacchetto dati come un'entita' a se stante (CL). Servizio telefonico (CO) vs. servizio postale (CL). indirizzamento Metodo che consente l'identificazione e la localizzazione di una entita' della rete. Per quanto detto: basato sullutilizzo degli nSAP. Identificazione (e.g. codice fiscale o alias piu povero, come nome+cognome) vs. localizzazione (e.g. numero di telefono).

39 39 Definizione di un layer: parole chiave.2 Si applicano a diversi layer controllo degli errori Capacita' di riconoscere che e' avvenuto un errore nella trasmissione o nella ricezione di un pacchetto dati, eventualmente con lo scopo di recuperarlo. Error detecting codes (e.g. checksum, CRC) vs. error correcting codes (e.g. Reed-Solomon). controllo di flusso Controllo della velocita' con cui gli host e/o i router si inviano i pacchetti dati. Per evitare che il lato ricevente sia sommerso di dati che non riesce a gestire. Nel Layer 3: troppi datagram, in genere relativi a diversi flussi di comunicazione, attraversano il router. Nel Layer 4: un modulo dellapplicazione distribuita non riesce a smaltire i dati inviatigli da un altro modulo della stessa applicazione. E.g.: prof, sta parlando troppo in fretta!

40 40 Definizione di un layer: parole chiave.3 Si applicano a diversi layer multiplexing / de-multiplexing Creazione di un unico segnale complesso a partire da piu' segnali indipendenti / separazione di un unico segnale complesso nei suoi segnali componenti e loro gestione indipendente. Esempi TLC: segnale multiplato nel tempo TDM/PCM (PDH, SDH), o nelle frequenze (FDM), o nelle (rete ottica). Quality of Service (QoS) Qualita' del servizio che una rete garantisce, in termini di bit-rate, jitter, ritardo, errori residui. Esempio Ethernet/IEEE 802.1q: priorita dei frame Esempio IP: diffServ e campo ToS (Type of Service) end-to-end Che si applica agli estremi di una comunicazione, senza interessare i punti (nodi/layer) intermedi. Quindi, in particolare, che e allocato solo sugli ES.

41 41 Parole chiave e datagram IP Quality of Service Controllo degli errori Indirizzamento De/multiplexing

42 42 Definizione di un layer: parole chiave.4 Si applicano a diversi layer affidabilita (reliability) Una comunicazione si definisce affidabile se non perde non duplica non desequenzializza garantisce lintegrita dei dati (delle informazioni) trasmessi (trasmesse). Un servizio affidabile deve necessariamente essere CO? No, ma TCP e CO e affidabile mentre UDP e CL e non affidabile. Un servizio affidabile deve essere confermato (a livello utente)? No, non e la conferma del cliente che garantisce laffidabilita, ma il fornitore del servizio. Come si fa a sapere che un dato e stato ricevuto dal pari? Perche lo garantisce il servizio! Quello che eventualmente non si sa e quando avviene la ricezione. Esempio: .

43 43 OSI Reference Model: layer end-to-end

44 44 Layer OSI - Layer 4, Trasporto (da: Rose) The Transport Layer is responsible for reliability and multiplexing of data transfer across the network (over and above that provided by the Network Layer) to the level required by the application. The Transport Layer is a true end-to-end layer, all the way from the source to the destination (e allocato solo sugli ES!). A program on the source machine carries on a conversation with a similar program on the destination machine. In the lower layers the protocols are between each machine and its adjacent neighbors, and not between the ultimate source and destination machines. The Transport Layer determines what type of service to provide to the users of the network: reliable point-to-point channel (no errors, losses, duplication); unreliable transfer of isolated messages. In ogni caso, il servizio di Trasporto si occupa di trasferimento di dati (bit, byte).

45 45 Layer OSI - Layer 5, Sessione Responsible for adding control mechanisms to the data exchange. (Rose) Consente di strutturare il dialogo applicativo: controllo del dialogo (half-duplex vs. full duplex) assegnazione di token creazione di checkpoint per un eventuale backtrack parziale Per quanto ci riguarda il livello di Sessione fornisce un servizio sostanzialmente equivalente a quello fornito da TCP di Internet: Trasferimento affidabile e trasparente di byte end-to-end tra due processi ovunque localizzati sulla rete. Gestione "ben educata" della connessione, ed in particolare della fase di disconnessione. Gestione di richieste contemporanee incrociate di apertura di una connessione.

46 46 Layer OSI - Layer 6, Presentazione Il livello di Sessione (Trasporto) ci consente di effettuare uno scambio affidabile di bit/byte (dati) tra due moduli di una applicazione distribuita. Ma le applicazioni non vogliono scambiare dei bit, vogliono scambiare delle informazioni ! Il servizio di presentazione fornisce gli strumenti per scambiare informazione (e.g. il numero intero con segno +5) tra due moduli di una applicazione distribuita in modo tale che il significato dell'informazione sia conservato inalterato indipendentemente: dalla codifica utilizzata per rappresentare l'informazione durante il trasferimento. dalla codifica utilizzata per rappresentare localmente l'informazione su ciascuno dei due moduli/End-System. (per i quali possono essere diversi piattaforma HW, sistema operativo, linguaggio di programmazione, sistema di programmazione: vogliamo essere liberi!)

47 47 Layer OSI - Layer 7, Applicazione The Application Layer is the ultimate responsible for managing the communications between applications. (Rose) Il Layer Applicativo non rappresenta le applicazioni finali nel loro complesso (il livello utente, che si trova sopra il Livello 7) ma il loro aspetto di interazione con la rete: Layer 7 = insieme dei protocolli applicativi utilizzati per offrire i servizi di comunicazione in rete ai programmi utente. Protocol entity HTTP vs. applicazione finale web browser Il Layer 7 e' quindi costituito da un insieme di servizi applicativi, che in termini OSI sono chiamati ASE (Application Service Element). Ad esempio la classe URL di Java che consente ad un modulo client di interagire con un web server tramite il protocollo HTTP. Ci sono ASE progettati per supportare applicazioni specifiche (e.g. file transfer), anche se possono essere utilizzati anche in contesti diversi (e.g. file transfer come parte di una applicazione di system management), e ASE che nascono per essere di uso generale (e.g. RPC).

48 48 Layer OSI - Layer 7, RPC RPC sta per Remote Procedure Call. Le RPC rappresentano il metodo di elezione per costruire applicazioni distribuite utilizzando i servizi del Layer 7. Linterazione tra due moduli del programma distribuito avviene tramite chiamata di procedura, cosi come succede nella programmazione concentrata. Come nella costruzione di un programma concentrato: Sara necessario bind-are linterfaccia del modulo server. (nella programmazione concentrata lo fa di norma il linker) Sara necessario indirizzare la singola procedura allinterno del modulo server. (nella programmazione concentrata lo fa di norma il linker) Sara necessario scambiare in modo coerente parametri di ingresso/uscita tra procedura chiamante e procedura chiamata. E controllare che questo scambio sia corretto! (nella programmazione concentrata lo fa di norma il compilatore)

49 49 Layer OSI Tutti i layer dal 4 compreso in su rappresentano interazioni e funzionalita' end-to-end. Tanenbaum: Two of the OSI 7 layers are nearly empty (Session and Presentation). The TCP/IP model does not have Session and Presentation Layers. No need for them was perceived, so they were not included. Experience with the OSI model has proven this view correct: they are of little use to most applications. Salati: Falso: il Presentation Layer e' (concettualmente, e spesso anche praticamente) essenziale. Il Session Layer e' meno rilevante, ma solo perche' le sue funzionalita' possono essere meglio fornite da protocolli di Layer 7 (Application), e.g. RPC. Le funzioni del Layer 7 (Application), che non coincide con le applicazioni finali ma che fornisce ad esse i servizi di comunicazione (e.g. RPC), sono anchesse essenziali.

50 50 Definizione OSI dei servizi di un layer La definizione OSI di un insieme di servizi di un layer avviene listandone i singoli servizi componenti. Ogni servizio componente e' a sua volta definito in termini di primitive (interazioni logiche) scambiate tra il layer stesso (il provider del servizio) e il suo cliente. Sono previste 4 primitive (direzionali), che possono essere composte secondo diverse ricette (3 ricette principali). Le 4 primitive sono: request(layer cliente layer servitore) indication(layer servitore layer cliente) response(layer cliente layer servitore) confirm(layer servitore layer cliente ) Ogni primitiva ha associati una direzione (fissa, dal layer servitore a quello cliente o viceversa) e un insieme di parametri (dipendente dal particolare servizio in cui la primitiva e utilizzata). Il protocollo di un layer e descritto in termini di scambio di PDU con il pari, di transizioni di stato e di scambio di primitive con i layer adiacenti.

51 51 Servizi OSI: descrizione (ricetta 1) Servizio Non Confermato

52 52 Servizi OSI: descrizione I parametri passati dal service user nella primitiva.req (.resp) sono (possono essere) inseriti dal service provider nella corrispondente primitiva.ind (.conf, rispettivamente), e sono (possono essere) cosi' trasmessi al service user remoto. Un parametro puo' anche avere un significato locale, che coinvolge la protocol entity server, e quindi venire modificato da questa e/o non essere trasmesso al pari. Nella descrizione di un servizio sono indicati i parametri associati alle primitive che lo implementano. Service provider Service User S.req(p1, …, pn) S.ind(p1, …, pn)

53 53 Servizi e Protocolli Service Provider Protocol Entity Service User Service Provider Protocol Entity Service User S.req S.ind S.respS.conf Service Provider Protocol User Protocol Provider API

54 54 Servizi e Protocolli kSAP k-1SAP

55 55 Servizi OSI: descrizione (ricetta 2) Servizio Confermato

56 56 Servizi OSI: descrizione (ricetta 3) Servizio Iniziato dal Provider

57 57 COTS, Connection Oriented Transport Service (ISO 8072) Servizi componenti: T-CONNECT, confermato T-DATA, non confermato T-EXPEDITED-DATA, non confermato T-DISCONNECT, non confermato o provider-initiated I servizi sono definiti in modo astratto: l'implementazione dell'interfaccia deve solo essere funzionalmente "equivalente. Quali sono le differenze tra il COTS OSI e il servizio offerto da TCP? Basta fare lanalisi di questa specifica! Diverse API implementative possono essere associate ad una stessa definizione di servizio/i. Nel caso del TS (in C): socket TLI

58 58 COTS: servizio T-CONNECT (ISO 8072) The Transport Connection (TC) establishment TS primitives can be used to establish a TC, provided the TS users exist and are known to the TS provider. Simultaneous T-CONNECT requests at the two TSAPs are handled independently by the TS provider (N.B.: a differenza che in TCP, vedi anche slide TCP Connection State Diagram). NOTE – Simultaneous T-CONNECT requests typically result in a corresponding number of TCs. Nella descrizione del servizio sono descritti/e: i parametri di ciascuna primitiva che implementa il servizio. le sequenze, legittime e non, di utilizzo dei diversi servizi. La specifica del servizio e puramente funzionale: le primitive non definiscono unAPI. Come si implementa una indication? Request e confirm coincidono con chiamata e ritorno di una stessa funzione o no? Response e una funzione? Non ha parametri di ritorno?

59 59 Scenari di Connessione successful TC establishment TS provider T-CONNECT.request T-CONNECT.indication T-CONNECT.response T-CONNECT.confirm

60 60 Scenari di Connessione rejection of TC establishment request by its user TS provider T-CONNECT.request T-CONNECT.indication T-DISCONNECT.request T-DISCONNECT.indication N.B.: si tratta di una variante obsoleta della ricetta 2

61 61 Scenari di Connessione rejection of TC establishment request by TS provider TS provider T-CONNECT.request T-DISCONNECT.indication N.B.: si tratta di una variante obsoleta della ricetta 2

62 62 T-CONNECT: primitive e parametri (ISO 8072) TS primitive ParameterT-CONNECT request T-CONNECT indication T-CONNECT response T-CONNECT confirm Called AddressXX(=) Calling AddressXX(=) Responding AddressXX(=) Expedited data optionXX(=)X Quality of ServiceXXXX(=) TS user-dataX(U)X(=)X(U)X(=) XMandatory parameter. (=)The value of that parameter is identical to the value of the corresponding parameter of the preceding TS primitive. (U)Use of this parameter is a TS user option.

63 63 T-CONNECT: primitive e parametri (ISO 8072) Esempio: parametro Expedited data option The Expedited Data option parameter indicates whether the expedited (out-of-band in terminologia TCP) data option is to be available on the TC. If this service is declared not available, it cannot be used on the TC. The value of the parameter is either Expedited Data Service selected or Expedited Data Service not selected. The values of the various primitives are related such that: a)in the T-CONNECT request primitive, either of the defined values may occur; b)in the T-CONNECT indication primitive, the value is equal to the value in the T-CONNECT request primitive; c)in the T-CONNECT response primitive, the value is either Expedited Data Service not selected or is equal to the value in the T-CONNECT indication primitive; d)in the T-CONNECT confirm primitive, the value is equal to the value in the T-CONNECT response primitive.

64 64 T-CONNECT: primitive e parametri (ISO 8072) Esempio: negoziazione dellopzione Expedited data transfer The expedited TSDU transfer is only made available when specifically requested and agreed to by both TS users when the TC is established. When available this service is always bidirectional. The procedure for negotiating the use of the expedited TSDU transfer is as follows: a)The calling TS user may request or not request the use of the expedited TSDU transfer feature. b)If the calling TS user does not request the use of the expedited TSDU transfer feature, the called TS user is not allowed to request its use. c)If the calling TS user does request the use of the expedited TSDU transfer feature, the called TS user may agree to the use of expedited TSDU transfer on the TC, in which case the TS provider is required to provide it. The called TS user may refuse the use of expedited TSDU transfer in which case the service will not be used on that TC.

65 65 T-CONNECT: primitive e parametri (ISO 8072) Esercizio: Come mai il parametro Expedited data option e uguale nelle primitive.req e.ind del servizio T-CONNECT mentre il parametro Quality of Service puo essere diverso? E come mai, invece, entrambi i parametri sono uguali nella coppia di primitive.resp /.conf del servizio T-CONNECT? Come puo essere utilizzato il parametro TS user-data presente (in forma opzionale) nelle primitive che implementano il servizio T- CONNECT?

66 66 COTS: servizio T-DATA (ISO 8072) The TS provider provides for an exchange of TSDUs, in both directions simultaneously. The TS provider preserves the integrity, the sequence and boundaries of the TSDUs. N.B.: TCP non preserva lidentita dei singoli SDU (i Ioro boundary, quali byte fanno parte di un SDU e quali di un altro). TCP e stream-oriented, non message-oriented. Primitive ParameterT-DATA requestT-DATA indication TS user-dataXX(=) XMandatory parameter. (=)The value of that parameter is identical to the value of the corresponding parameter of the preceding TS primitive.

67 67 COTS: servizio T-DATA (ISO 8072) Notare che i parametri del servizio non consentono di specificare su quale connessione si vogliono trasmettere i dati: Nella definizione di una interfaccia funzionale astratta non e un problema. (ricordiamoci che i servizi sono acceduti tramite un TSAP quindi: Le primitive sono scambiate tramite un TSAP. La connessione sulla quale si vogliono inviare i dati e quella associata al TSAP a cui e stata inviata la primitiva T- DATA.req. Domanda: come e implementato un TSAP?) Nella definizione di unAPI questa informazione e essenziale. La specifica OSI del servizio e puramente funzionale, non implementativa. Il servizio T-DATA e non confermato. Il servizio T-DATA e affidabile.

68 68 Scenari di Data Transfer normal data transfer TS provider T-DATA.request T-DATA.indication N.B.: il servizio T-DATA e' non confermato. Cio' non significa che non sia affidabile!

69 69 COTS: servizio T-EXPEDITED-DATA (ISO 8072) The expedited data transfer service provides a further means of information exchange on a TC in both directions simultaneously. The transfer of expedited TSDUs is subject to different QOS and separate flow control from that applying to TS user-data of the data transfer service. The TS provider guarantees that an expedited TSDU will not be delivered after any subsequently submitted normal TSDU or expedited TSDU on that TC. The relationship between normal and expedited data flow is modelled by the operation of reordering within queues... In particular expedited data will be delivered when the receiving TS user is not accepting normal data. However, the amount of normal data bypassed by such reordering cannot be predicted. Primitive ParameterT-EXPEDITED-DATA request T-EXPEDITED-DATA indication TS user-dataXX(=) XMandatory parameter. (=)The value of that parameter is identical to the value of the corresponding parameter of the preceding TS primitive.

70 70 Scenari di Data Transfer expedited data transfer TS provider T-EXPEDITED- DATA.request T-EXPEDITED- DATA.indication

71 71 COTS: servizio T-DISCONNECT (ISO 8072) The TC release TS primitives are used to release a TC. The release may be performed: a)by either or both of the TS users to release an established TC; b)by the TS provider to release an established TC; all failures to maintain a TC are indicated in this way; c)by either or both the TS users to abandon TC establishment; d)by the TS provider, to indicate its inability to establish a requested TC. TC release is permitted at any time regardless of the current TC phase. A request for release cannot be rejected (sarebbe anche impossibile rigettarla visto che il servizio T-DISCONNECT e non confermato!). The Transport Service does not guarantee delivery of any TS user- data once the release phase is entered. N.B.: a differenza del Trasporto OSI TCP garantisce invece la chiusura morbida della connessione.

72 72 T-DISCONNECT: primitive e parametri (ISO 8072) Primitive ParameterT-DISCONNECT requestT-DISCONNECT indication ReasonX TS user-dataX(U)X(=) XMandatory parameter. (=)The value of the parameter is identical to the value of the corresponding parameter of the preceding TS primitive. (U)Use of this parameter is a TS user option. The Reason parameter gives information indicating the cause of the TC release. Remote TS user invoked. TS provider invoked. This reason may be of transient or permanent nature. lack of local or remote resources of the TS provider; called TS user unknown; called TS user unavailable;...

73 73 Scenari di Disconnessione TC release initiated by its user TS provider T-DISCONNECT.request T- DISCONNECT.indication

74 74 Scenari di Disconnessione TC release initiated by its provider TS provider T-DISCONNECT.indication

75 75 Dati scambiati sull'interfaccia e PDU.1 Consideriamo la fase di data transfer: Il layer n (server) e' richiesto di trasferire dati forniti dal suo layer cliente, il layer n+1. I dati da trasmettere sono passati dal layer n+1 come parametro in una primitiva inviata al layer n tramite lo nSAP da lui utilizzato. E.g. il parametro TS user-data della primitiva T-DATA.request. Questi dati rappresentano lo n+1PDU, ma dal punto di vista del layer n sono opachi (payload): il layer n non li capisce, li deve solo trasportare al pari di livello n+1 dall'altra parte della rete. Dal punto di vista del layer n questi dati sono indicati da OSI come nSDU (Service Data Unit di Layer n). Per offrire il suo servizio il layer n deve parlare con il suo pari, cioe' deve produrre un nPDU, e questo nPDU deve contenere lo nSDU, cioe' lo n+1PDU.

76 76 Dati scambiati sull'interfaccia e PDU.2 Lo nSDU (user-data) rappresenta il campo informativo (payload) dello nPDU, ma questo deve contenere anche uno header (o overhead) per supportare il protocollo: e.g. per indicare che lo nPDU trasporta degli user-data. questo header e' chiamato da OSI PCI (Protocol Control Information). Per richiedere la trasmissione del proprio PDU un cliente puo' dover fornire al layer servitore informazioni aggiuntive (e.g. QoS, Quality of Service), oltre che indicare il servizio/primitiva richiesti: l'insieme di queste informazioni e' chiamato ICI (Interface Control Information).

77 77 Dati scambiati sull'interfaccia e PDU.3 ICI +PDU nel loro complesso sono indicati da OSI come IDU (Interface Data Unit). Analogamente il PDU e' composto della coppia PCI+SDU. Un IDU rappresenta una interazione tra due layer di livello diverso, entrambi residenti su uno stesso nodo di rete. Un PDU rappresenta una interazione tra due diverse protocol entity dello stesso livello, residenti (in generale) su diversi nodi della rete. Layer n+1 Layer n n+1 PDUICI IDU n SDUICI n SDUPCI = n PDU n Protocol Machine

78 78 Comunicazioni virtuali vs. Comunicazioni reali Segmentazione e riassemblaggio di uno SDU 4PDU = 3SDU

79 79 Segmentazione e riassemblaggio Segmentazione e riassemblaggio, nel mondo OSI, sono funzioni tipiche sia del layer 3 che del layer 4. In un mondo message based se ce segmentazione deve esserci anche riassemblaggio. IP, che e message based e supporta la segmentazione, deve di conseguenza supportare anche il riassemblaggio TCP pero e stream based, non message based: quindi il servizio TCP non e costretto a mantenere lidentita dei TSDU. Non ha senso parlare di riassemblaggio. La nozione di segmentazione assume un significato completamente diverso come possibilita da parte della protocol entity TCP mittente di segmentare e assemblare TSDU come e piu conveniente per ottimizzare lutilizzo della rete. Esercizio: disegnare una serie di scenari che evidenzino come TCP puo gestire liberamente la trasmissione in rete e il prolungamento al cliente lato RX dei TSDU.

80 80 Servizi e Protocolli Un servizio rappresenta un insieme di operazioni che un layer servitore mette a disposizione di un layer cliente. Un servizio e' correlato all'interfaccia tra due layer su uno stesso nodo. Un protocollo e' un insieme di regole che governano il formato e il significato (l'effetto) dei PDU che sono scambiati fra due entita' di pari livello (in generale, su due nodi diversi). Le entita' di un layer utilizzano il protocollo per dialogare tra loro e realizzare i servizi offerti dal layer. Le diverse protocol entity di un layer sono distribuite su piu nodi, e per riuscire a fornire il servizio devono poter interagire tra loro. Dal punto di vista del cliente del layer, il protocollo puo' anche cambiare, purche' non cambi il servizio offerto: se cambia il protocollo ma non il servizio offerto da un layer, il ruolo del layer nell'architettura di rete rimane invariato.

81 81 Servizi e Protocolli Tanenbaum: "The specification of a network architecture must contain enough information to allow to implement each layer so that it will correctly obey the appropriate protocol (e quindi sara capace di interoperare con i suoi pari). Neither the details of the implementation nor the specification of the interfaces (le API locali di ciascun layer che definiscono implementativamente i servizi forniti o utilizzati dai diversi layer) is part of the architecture because these are hidden inside the machine and not visible from the outside. It is not even necessary that the interfaces on all machines in a network be the same, provided that each machine can correctly use all the protocols.

82 82 Servizi e Protocolli In effetti molte interfacce di rete sono "difficilmente" accessibili al normale programmatore (e.g. interfacce dei Layer 2 e 3). In realta sui sistemi operativi piu diffusi anche laccesso ai servizi di questi Layer avviene tramite lAPI socket, ma questa consente modalita di utilizzo del servizio molto piu complesse di quelle utilizzate per il Layer di Trasporto Pero: ci sono interfacce (e.g. quella del Layer di Trasporto) che e' essenziale siano standardizzate se si vuole ottenere la portabilita' delle applicazioni di rete.

83 83 Domande e risposte Possono interagire correttamente tra di loro due clienti del Servizio di Trasporto se Il primo usa lAPI Socket di Java per accedere al Servizio di Trasporto TCP mentre il secondo usa lAPI socket in C? Si. Il primo usa lAPI TLI in C per accedere al Servizio di Trasporto TCP mentre il secondo usa lAPI socket in C? Si. Entrambi usano lAPI socket in C per accedere al Servizio di Trasporto, ma uno utilizza quello TCP e laltro quello UDP? No. Entrambi usano lAPI socket in C per accedere al Servizio di Trasporto, ma uno utilizza quello TCP e laltro quello OSI COTS? No. Perche il nome Open Systems Interconnection (OSI) e fuorviante? Perche in realta stiamo parlando di una interconnessione aperta (protocolli condivisi) di sistemi chiusi (le API dei layer sono definite privatamente dai singoli sistemi)!


Scaricare ppt "Lez. 11 Alma Mater Studiorum - Universita' di Bologna Sede di Cesena Reti di Calcolatori Il Modello di Riferimento OSI Vedi: A.S. Tanenbaum, Computer Networks,"

Presentazioni simili


Annunci Google