Primitive

Una primitiva è come uan particolare funzione che viene richiesta ad una certa entità fornitrice di servizi. In tal caso specifica quale funzione deve essere eseguita e di norma contiene anche eventuali dati o parametri necessari per la funzione richiesta.

Nel modello OSI esisrtono 4 categorie di primitive, denominate richiesta (request), indicazione (indication), risposta (response), e conferma (confirm). Il significato di questi termini verrà evidenziato con il seguente esempio: supponiamo che l'entità di livello N del sistema A debba inviare in messaggio all'equivalente in B. Per fare ciò invocherà una particolare funzione dell'entirà attiva del livello (N-1) mediante una chiamata primitiva che chiameremo Data.request( ). Il prefisso Data ricorda che è una chiamata di inoltro dati, mentre le parentesi tonde indicano il fatto che si tratta di una chiamata di procedura, a cui ovviamente dovranno essere passati dei parametri.

Per soddisfare la chiamata di procedura Data.request( ), la (N-1)_entità confezionerà l'opportuno pacchetto di dati, detto (N-1)_PDU che arriverà al destinatario attraversando tutti i livelli sottostanti dei sistemi A e B. Questo messaggio viene tradotto dalla (N-1)_entità mediante la primitiva Data.indication( ) per la N-entità di B, in tal modo il messaggio riceverà il destinatario.

Il servizio inoltre può essere confermato o non confermato. Nel primo caso si aspetta dal destinatario un messaggio di risposta, per essre sicuri dell'avvenuto e corretto trasferimento. Praticamente la N_entità del destinatario deve richieder alla (N-1)_entità l'esecuzione della primitiva Data.response( ), con la quale si intende fornire un'indicazione sull'esito della trasmissinone. A questo punto il mittende reagisce chiedendo all'oppurtuna entità del suo livello superiore di soddisfare alla primitiva Data.confirm( ).

Nel secondo caso invece non vi è la richiesta di conferma.