LABORATORIO di Reti di Calcolatori

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "LABORATORIO di Reti di Calcolatori"

Transcript

1 LABORATORIO di Reti di Calcolatori Strumenti di specifica di protocolli e algoritmi di rete 1 of 44 v slide della docente Bibliografia v testo di supporto: D. Maggiorini, Introduzione alla programmazione client-server, Pearson Ed., 2009 q cap.3 (tutto) 2 of 44 1

2 v protocollo: insieme di regole per la comunicazione tra entità peer q per superare problemi di differente linguaggio dovuto a sistemi eterogenei v esistono organismi standardizzatori: q IEEE, OSI, IETF... Specifica di protocolli q definizione precisa delle regole v specifica = sintassi del linguaggio di comunicazione q chiunque può implementare protocollo standard autonomamente, con le politiche interne preferite, purchè l'interfaccia di comunicazione sia aderente alla specifica 3 of 44 v serve per vincolare l'implementazione q garantisce che tutte le implementazioni di dato protocollo possono inter-operare v serve per derivare formalmente proprietà del protocollo q dimostrazioni di correttezza del protocollo rispetto ai requisiti di servizio da fornire ai livelli superiori v strumenti diversi; livelli di dettaglio diversi v diagrammi temporali Specifica di protocolli q catturano parallelismo, ma pochi dettagli 4 of 44 2

3 v Automi a Stati Finiti (ASF) q descrizione a colpo d'occhio, ma di difficile rappresentazione se protocollo complesso v tabelle stati-eventi Strumenti di specifica q arricchimento degli AFS usati in documenti standard (e.g. specifica TCP v pseudo-codice ad alto livello delle operazioni eseguite dal protocollo q non si vede parallelismo tra entità di protocollo q può essere di difficile lettura, ma porta subito a implementazione reale 5 of 44 Diagrammi temporali v a differenza del precedente si vedono interazioni tra peer v scarso livello dettaglio operazioni v utile per dimostrazioni su proprietà per concorrenza S Msg 1 Msg 2 Msg2 - response D set timer 6 of 44 3

4 v stati rilevanti in cui si trova un processo v attende evento: q ricezione di un messaggio, arrivo di interrupt, scadenza timer... v al verificarsi di evento, processo può q cambiare valore variabili interne q produrre evento esterno (invio msg) q evolvere in nuovo stato con comportamento differente v rappresentazione: Automi a Stati Finiti IN, act, OUT current state INevent, action, OUTevent new state 7 of 44 Automi a Stati Finiti: esempio v protocollo dummy: q proc parte quando riceve Msg1 e set timer; q se riceve Msg2 prima di timeout risponde, altrimenti no q in ogni caso fa re-set timer q quando riceve Msg3, il processo termina Msg2 && timer not expired; set timer; response to Msg2 idle state Msg1; set timer; --- Msg3; exit; --- state_1 Msg2 && timer expired; set timer; 8 of 44 4

5 v dettagliano ASF tabella definizione q eventi in ingresso: ricezione messaggio di tipo xxx q eventi in uscita: invio messaggio di tipo yyy q stati del processo Tabelle stati-eventi q predicati: asserzione il cui valore di verità controlla l'evoluzione del protocollo P0: il contenuto del messaggio è corretto q stato del processo: variabili timer T, contatore C... q azioni eseguite dal protocollo reset valore T; incrementa C... 9 of 44 Primitive di servizio Confirm source Request Indication destination Response v comunicazione via buffer e interrupt v entità richiede (Request) invio messaggio v a dest: arrivo msg segnalato a dest (Indication) v se servizio confermato: q dest invia risposta/conferma ricezione (Response)... q... segnalata a sorgente (Confirm) v esempio servizio confermato? con ricevuta 10 of 44 5

6 Tabelle stati-eventi (cont.) P0: timer expired [1] : set timer stato evento Msg1.Ind Msg2.Ind Msg3.Ind idle-state [1]; state_ P0: Msg2.Resp; [1]; state_1 --- state_1 init-state P0: [1]; state_1 11 of 44 Pseudo-codice v da esempio precedente: define maxtime 100 procedure initialization {! timer 0; expired_timer False; } procedure idle_state {! when (received Msg1) do! timer maxtime;! }! procedure P0 {! if (expired_timer) then return(true);! else return(false); }! 12 of 44 6

7 Pseudo-codice (cont.) procedure state_1 {! while (True) do! when (timeout) do expired_timer True;! when (received Msg2) do! if ( P0) then send response to Msg2;! timer maxtime;! expired_timer False; when (received Msg3) do exit;! }! procedure Main {! initialization();! idle_state();! state_1()! }! 13 of 44 Esempio: silly stop&wait v sender: 1. quando riceve msg da applicazione lo invia a peer 2. attende la ricezione di un acknowledgment 3. dopo ricezione ack torna al punto 1 v receiver: 1. quando riceve msg da peer gli invia ack v quanti stati per il sender? e per il receiver? 14 of 44 7

8 SS&W: diagramma temporale S D arrivo msg da appl. msg ack to msg deliver msg to dest appl. 15 of 44 SS&W: automi a stati finiti v ASF for sender: msg from appl; ---; send msg idle state ack to msg; ---; --- wait state v ASF for receiver: unique state msg from peer; deliver to dest appl.; send ack to msg 16 of 44 8

9 SS&W: tabella stati-eventi stato evento unique state msg.indication msg.response; [1] unique state receiver [1]: deliver msg to dest appl. stato evento msg in queue from appl msg.confirm idle state msg.request; wait state --- sender wait state skip; wait state idle state 17 of 44 SS&W: pseudo-codice SENDER! procedure init { }! procedure idle_state {! when (received Msg) do! send Msg;! }! procedure wait_state {! when (received ack to Msg) do skip;! }! procedure Main{!! init();! while (True) do! idle_state();! wait_state();! }! RECEIVER! procedure init { }! procedure unique_state {! when (received Msg) do! send ack to Msg;! deliver msg to appl;! }! procedure Main{!! init();! while (True) do! unique_state();! }! 18 of 44 9

10 Commenti v non esiste specifica univoca q nel primo esempio si possono usare 2 stati al posto di state_1, e passare da uno all'altro in funzione dello stato del timer... v provare a ridisegnare per homework... J v per homework, specificare diagramma temporale, ASF, tabella stati-eventi e pseudocodice per sender nel primo esempio q ipotizzando che Msg2 venga inviato quando ricevuto da applicazione q attenzione che può anche ricevere risposta a Msg2 come Msg2.Confirm 19 of 44 Server iterativo: diagramma temp. C service.req IDLE S service.req C service.resp waiting talking talking interazioni client server service.resp close.req close.resp 20 of 44 10

11 Server concorrente: diagr. temp. C IDLE S service.req C interleaving nei tempi morti service.req service.resp service.resp talking talking talking talking close.req close.resp 21 of 44 Server multiprocesso: diagr. temp. C service.req IDLE S service.req C service.resp talking talking S S service.resp talking talking close.req close.req END END close.resp 22 of 44 11

12 Confronto modelli servizio v cosa succede se interazione con server è di 1 messaggio? q server iterativo è molto simile a quello concorrente q allora: scelta server può dipendere da modalità interazione v concorrenza di server multi-processo è reale? q beh con una sola CPU J q server figli gestiscono unico client, quindi non sono né iterativi né concorrenti! v server concorrente è il più difficile da implementare q in ogni istante può ricevere messaggi di qualunque tipo q si vede negli automi! 23 of 44 Server iterativo: ASF idle state service.ind; --; service.resp data.ind; --; data.resp close.ind; --; close.resp work state v esce da Idle quando riceve service.req v quando vi entra, ne esce immediatamente se esistono altre service.req in coda q cioè in attesa all interfaccia con livello inferiore v lo ASF del client è sempre uguale è esercizio! 24 of 44 12

13 idle state Server concorrente: ASF service.ind; --; service.resp work state data.ind; --; data.resp close.ind no other clients; --; close.resp service.ind; --; close.ind other clients; --; close.resp service.resp v serve ancora la coda? beh, è quella con livello inferioreà SI v abbiamo messo tutte le transizioni possibili? q può ricevere service.req mentre Idle? dipende ritrasmissioni, messaggi in ritardo forse si! q attenzione a gestire anche situazioni anomale dovute a caratteristiche livelli inferiori à gestione eccezioni (o segmentation fault!) 25 of 44 esercizi v costruire tabella stati-eventi per: 1. client 2. server iterativo 3. server concorrente 4. server multi-processo? J v nel caso 3, la possibile presenza di situazioni anomale è rivelata da caselle vuote nella tabella q devono proprio essere così? da accertare 26 of 44 13

14 Specifica idle RQ v Primary manda frame e si blocca in attesa di ACK q se scadenza timer ritrasmissione, ritrasmette stesso frame v Secondary in attesa di ricezione q se riceve frame danneggiato fa drop q se riceve frame corretto manda ACK q se frame corretto è quello atteso, consegna a Network Layer 27 of 44 idle RQ: ASF per Primary Specific actions: [1] = start timer [4] = increment RetxCount [2] = increment Vs [5] = Increment ErrorCount [3] = stop timer [6] = Reset RetxCount to zero 28 of 44 14

15 Primary : tabella stati - eventi 29 of 44 Primary : tabella stati - eventi 30 of 44 15

16 Primary : tabella stati - eventi trasmette frame; set timer; incrementa #seq 31 of 44 Primary : tabella stati - eventi incrementa contatore errori 32 of 44 16

17 Primary : tabella stati - eventi non fa nulla 33 of 44 Primary : tabella stati - eventi se riceve ACK per frame outstanding, con CRC corretto: ferma timer; reset contatore ritrasmissioni 34 of 44 17

18 Primary : tabella stati - eventi se riceve ACK per frame outstanding, ma CRC errato: ritrasmette; fa ripartire timer; incrementa counter ritrasmissioni 35 of 44 Primary : tabella stati - eventi se riceve frame che non è ACK ed è errato: incrementa counter errori 36 of 44 18

19 Primary : pseudo-codice v implementazione sulla falsariga della specifica: q tipi enumerativi per eventi e stati q variabili di stato q procedure per eventi in output e azioni q funzioni per controllo predicati 37 of 44 Primary : pseudo-codice 38 of 44 19

20 Secondary: ASF 39 of 44 Secondary: tabella stati - eventi 40 of 44 20

21 Secondary: tabella stati - eventi 41 of 44 Secondary: tabella stati - eventi se CRC errato: chiedi ritrasmissione frame atteso; incrementa contatore errori 42 of 44 21

22 Secondary: tabella stati - eventi se CRC corretto e frame già ricevuto in precedenza: invia ACK 43 of 44 Secondary: tabella stati - eventi se CRC corretto e frame atteso: consegna frame; invia ACK; aggiorna #seq atteso 44 of 44 22

LABORATORIO di Reti di Calcolatori

LABORATORIO di Reti di Calcolatori LABORATORIO di Reti di Calcolatori Architetture client-server 1 of 12 v slide della docente Bibliografia v testo di supporto: D. Maggiorini, Introduzione alla programmazione client-server, Pearson Ed.,

Dettagli

Modello a scambio di messaggi

Modello a scambio di messaggi Modello a scambio di messaggi Aspetti caratterizzanti il modello Canali di comunicazione Primitive di comunicazione 1 Aspetti caratterizzanti il modello modello architetturale di macchina (virtuale) concorrente

Dettagli

Soluzione: (basata su round sincroni) Soluzione: (basata su processo leader) upon event <tob, Init> do tosend = ; todeliver = ; starttimer(δ + ε);

Soluzione: (basata su round sincroni) Soluzione: (basata su processo leader) upon event <tob, Init> do tosend = ; todeliver = ; starttimer(δ + ε); Esercizio 1 Si consideri un sistema distribuito composto da N processi ciascuno dei quali è identificato attraverso un intero univoco. Supponendo che il sistema sia sincrono, che i processi non si guastino

Dettagli

Telematica di Base. Il livello di trasporto

Telematica di Base. Il livello di trasporto Telematica di Base Il livello di trasporto Trasporto: Servizi e Protocolli Fornisce un servizio di communicazione logica tra applicazioni di rete I protocolli di trasporto sono in esecuzione sugli host

Dettagli

Reti di Calcolatori. Master "Bio Info" Reti e Basi di Dati Lezione 3

Reti di Calcolatori. Master Bio Info Reti e Basi di Dati Lezione 3 Reti di Calcolatori Sommario Software di rete Livello Trasporto (TCP) Livello Rete (IP, Routing, ICMP) Livello di Collegamento (Data-Link) Livello Trasporto (TCP) I protocolli di trasporto sono eseguiti

Dettagli

Parte II: Reti di calcolatori Lezione 13 (37)

Parte II: Reti di calcolatori Lezione 13 (37) Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2016-17 Pietro Frasca Parte II: Reti di calcolatori Lezione 13 (37) Venerdì 21-04-2017 1 Trasferimento

Dettagli

TCP: apertura della connessione. Apertura connessione (handshake)

TCP: apertura della connessione. Apertura connessione (handshake) TCP: apertura della connessione Prima dello scambio dati, sender e receiver si "stringono la mano": Concordano sull aprire la connessione Concordano su alcuni parametri A livello trasporto, la richiesta

Dettagli

LABORATORIO di Reti di Calcolatori

LABORATORIO di Reti di Calcolatori LABORATORIO di Reti di Calcolatori Socket in linguaggio C: server concorrente single-process 1 of 12 v slide della docente Bibliografia v testo di supporto: D. Maggiorini, Introduzione alla programmazione

Dettagli

RETI DI CALCOLATORI Home Assignment protocolli a finestra scorrevole. Prima parte

RETI DI CALCOLATORI Home Assignment protocolli a finestra scorrevole. Prima parte RETI DI CALCOLATORI Home Assignment protocolli a finestra scorrevole Prima parte Q1. Indicare giustificando la risposta se è possibile o meno che la dimensione della finestra del protocollo Go-Back-N sia

Dettagli

Come scrivere bene codice? (1 di 1)

Come scrivere bene codice? (1 di 1) DIAGRMMI DI FLUSSO Come scrivere bene codice? (1 di 1) Prima di iniziare a scrivere un programma: Acquisire profonda comprensione del problema; Progettare un approccio per la risoluzione del problema.

Dettagli

Homework assignment #2. Maurizio Bonuccelli. Dipartimento di Informatica Università di Pisa

Homework assignment #2. Maurizio Bonuccelli. Dipartimento di Informatica Università di Pisa Homework assignment #2 Maurizio Bonuccelli Dipartimento di Informatica Università di Pisa Q1. Indicare giustificando la risposta se è possibile o meno che la dimensione della finestra del protocollo Go-Back-N

Dettagli

Telematica di Base. IL Livello di Trasporto TCP

Telematica di Base. IL Livello di Trasporto TCP Telematica di Base IL Livello di Trasporto TCP TCP RFCs: 793, 1122, 1323, 2018, 2581 point-to-point: Un sender, un receiver affidabile protocollo di tipo pipeline: Meccanismi per evitare la congestione,

Dettagli

Reti di Calcolatori e Laboratorio

Reti di Calcolatori e Laboratorio Nome: Matricola: Esercizio 1 (8 punti) Due terminali comunicano tramite un canale inaffidabile, nel quale i pacchetti possono essere persi o venir corrotti. Per ottenere un servizio di comunicazione affidabile,

Dettagli

Introduzione alla programmazione

Introduzione alla programmazione Introduzione alla programmazione Risolvere un problema Per risolvere un problema si procede innanzitutto all individuazione Delle informazioni, dei dati noti Dei risultati desiderati Il secondo passo consiste

Dettagli

LABORATORIO di Reti di Calcolatori

LABORATORIO di Reti di Calcolatori LABORATORIO di Reti di Calcolatori Socket: concetti fondamentali 1 of 18 v slide della docente Bibliografia v testo di supporto: D. Maggiorini, Introduzione alla programmazione client-server, Pearson Ed.,

Dettagli

Il livello trasporto: controllo di flusso in TCP

Il livello trasporto: controllo di flusso in TCP Reti di Calcolatori I Prof. Roberto Canonico Dipartimento di Ingegneria Elettrica e delle Tecnologie dell Informazione Corso di Laurea in Ingegneria delle Telecomunicazioni Corso di Laurea in Ingegneria

Dettagli

LABORATORIO di Reti di Calcolatori

LABORATORIO di Reti di Calcolatori LABORATORIO di Reti di Calcolatori Socket in linguaggio C: protocollo connection-oriented 1 of 15 v slide della docente Bibliografia v testo di supporto: D. Maggiorini, Introduzione alla programmazione

Dettagli

Principi di trasferimento affidabile

Principi di trasferimento affidabile Principi di trasferimento affidabile Il livello rete è inaffidabile: Presenza di errori Perdita e duplicazione di pacchetti Ordine dei pacchetti non garantito In caso di errori è necessario: Rilevare e/o

Dettagli

Esercitazione #2. Antonio Brogi. Dipartimento di Informatica Università di Pisa

Esercitazione #2. Antonio Brogi. Dipartimento di Informatica Università di Pisa Esercitazione #2 Antonio Brogi Dipartimento di Informatica Università di Pisa Finora in aula 1.Lun 21/09/2015 16:00-18:00 (2:0 h) lezione: Introduzione al corso. Introduzione alle reti. (Antonio Brogi)

Dettagli

Tecniche ARQ (protocolli a finestra)

Tecniche ARQ (protocolli a finestra) ecniche AQ (protocolli a finestra) Gruppo eti LC nome.cognome@polito.it http://www.telematica.polito.it/ ECNICHE AQ - 1 ecniche per la protezione dagli errori di trasmissione FEC (Forward Error Correction)

Dettagli

Strutture di Controllo

Strutture di Controllo Strutture di Controllo Istruzioni condizionali e cicli http://www.dia.uniroma3.it/~roselli/ roselli@dia.uniroma3.it Credits Materiale a cura del Prof. Franco Milicchio Introduzione Fino ad ora, il nostro

Dettagli

Esercitazione 3 Programmazione Concorrente nel linguaggio go. 13 Novembre 2017

Esercitazione 3 Programmazione Concorrente nel linguaggio go. 13 Novembre 2017 Esercitazione 3 Programmazione Concorrente nel linguaggio go 13 Novembre 2017 1 Concorrenza in go 2 creazione goroutine Sintassi : Esempio go func IsReady(what string, minutes int64)

Dettagli

Il modello a scambio di messaggio

Il modello a scambio di messaggio Il modello a scambio di messaggio Ciascun processo evolve in un proprio ambiente che non può essere modificato direttamente da altri processi. Quindi non esiste memoria condivisa e le risorse sono tutte

Dettagli

Reti e Protocolli rassegna (II)

Reti e Protocolli rassegna (II) Reti e Protocolli rassegna (II) Francesco Dalla Libera francesco@dallalibera.org Prestazioni di un sistema di comunicazione: metriche Throughput (larghezza di banda) analogico: range di frequenze ammissibili

Dettagli

Rappresentazione degli algoritmi

Rappresentazione degli algoritmi Rappresentazione degli algoritmi Universitá di Ferrara Ultima Modifica: 21 ottobre 2014 1 1 Diagramma di flusso Utilizzare il diagramma di flusso per rappresentare gli algoritmi che risolvono i seguenti

Dettagli

Risoluzione di un problema

Risoluzione di un problema Algoritmi Risoluzione di un problema Descrizione di un problema! Individuazione di un ALGORITMO! Metodo risolutivo (progetto) Introduzione 2 Algoritmo Sequenza finita di mosse che risolve in un tempo finito

Dettagli

Lezione n.3 LIVELLO TRASPORTO

Lezione n.3 LIVELLO TRASPORTO Università degli Studi di Pisa Lezione n.3 SSIS INFORMATICA LIVELLO TRASPORTO 30/11/2007 Laura Ricci Laura Ricci 1 LIVELLO TRASPORTO realizza un supporto per la comunicazione logica tra processi distribuiti

Dettagli

Architetture data-flow

Architetture data-flow Architetture data-flow Le architetture che abbiamo visto finora sono dette architetture control flow. Ciò sta ad indicare che il flusso dell elaborazione è dettato dall ordine con cui le varie istruzioni

Dettagli

Implementazione di DFA in C

Implementazione di DFA in C Implementazione di DFA in C Dispensa di Laboratorio di Linguaggi di Programmazione Sommario Corrado Mencar, Pasquale Lops, Stefano Ferilli Questa dispensa fornisce le linee guida per l implementazione,

Dettagli

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori I

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori I Corso di Laurea in Ingegneria Informatica Corso di Reti di Calcolatori I Roberto Canonico (roberto.canonico@unina.it) Giorgio Ventre (giorgio.ventre@unina.it) Il livello trasporto: controllo di congestione

Dettagli

Note sull utilizzo di ISAGRAF V. 3.31

Note sull utilizzo di ISAGRAF V. 3.31 Appendice B Note sull utilizzo di ISAGRAF V. 3.31 B.1 Lettura del fronte di salita di una variabile Nel linguaggio Ladder è sufficiente settare il contatore come in figura B.1(A) per leggere il fronte

Dettagli

Prestazioni stop-and-wait. Prestazioni

Prestazioni stop-and-wait. Prestazioni Prestazioni stop-and-wait first packet bit transmitted, t = 0 sender receiver last packet bit transmitted, t = L / R RTT first packet bit arrives last packet bit arrives, send ACK ACK arrives, send next

Dettagli

Principi di trasferimento affidabile

Principi di trasferimento affidabile Principi di trasferimento affidabile Il livello rete è inaffidabile: Presenza di errori Perdita e duplicazione di pacchetti Ordine dei pacchetti non garantito In caso di errori è necessario: Rilevare e/o

Dettagli

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori Elementi di Programmazione Algoritmi e programmi Algoritmo Sequenza

Dettagli

1) (commutazione pacchetto, prodotto banda-ritardo) 2) (frammentazione, commutazione di pacchetto) 3) (Selective Repeat)

1) (commutazione pacchetto, prodotto banda-ritardo) 2) (frammentazione, commutazione di pacchetto) 3) (Selective Repeat) 1) (commutazione pacchetto, prodotto banda-ritardo) Considerare l invio di un pacchetto di L bit da un nodo C ad un nodo S, attraverso 3 router intermedi, che introducono un ritardo di elaborazione di

Dettagli

Dall analisi alla codifica (1)

Dall analisi alla codifica (1) Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 09 Dall analisi alla codifica (1) Aprile 2010 Dall'analisi alla codifica (1) 1 Contenuti... Problemi e algoritmi comprensione del problema

Dettagli

LA METAFORA DELL UFFICIO

LA METAFORA DELL UFFICIO LA METAFORA DELL UFFICIO Lavagna di lavoro Lavagna di programma Sportello utenti Impiegato Capo Ufficio LAVAGNA DI LAVORO Chiamiamo variabili le posizioni sulla lavagna, identificate ognuna da un nome

Dettagli

Lo strato di Trasporto

Lo strato di Trasporto Corso di Fondamenti di Reti di Telecomunicazioni LT - ELE / LM-TLC Reti di Telecomunicazioni a.a. 2016-2017 Lo strato di Trasporto TCP è un protocollo orientato alla connessione; sono presenti le fasi

Dettagli

la trasmissione è regolata solamente dall algoritmo per il controllo del flusso prima di inviare l ACK.

la trasmissione è regolata solamente dall algoritmo per il controllo del flusso prima di inviare l ACK. 1. Considerare il problema della stima del Round Trip Time. Supporre che inizialmente RTT valga 200 ms. Il mittente invia un segmento e riceve l ACK relativo dopo 100 ms, quindi invia un altro segmento,

Dettagli

Livello di trasporto: meccanismi trasferimento dati affidabile

Livello di trasporto: meccanismi trasferimento dati affidabile Livello di trasporto: meccanismi trasferimento dati affidabile Gaia Maselli Queste slide sono un adattamento delle slide fornite dal libro di testo e pertanto protette da copyright. - Copyright 2013 McGraw-Hill

Dettagli

Capitolo 3 - parte 2. Corso Reti ed Applicazioni Mauro Campanella

Capitolo 3 - parte 2. Corso Reti ed Applicazioni Mauro Campanella Capitolo 3 - parte 2 Corso Reti ed Applicazioni Mauro Campanella Principi di un trasferimento dati affidabile strato di trasporto strato di applicazione (a) Servizio fornito (b) la realizzazione del Servizio

Dettagli

LA METAFORA DELL UFFICIO

LA METAFORA DELL UFFICIO LA METAFORA DELL UFFICIO Lavagna di lavoro Lavagna di programma Sportello utenti Impiegato Capo Ufficio LAVAGNA DI LAVORO Chiamiamo variabili le posizioni sulla lavagna, identificate ognuna da un nome

Dettagli

Laboratorio di Programmazione(corso A) Laurea in Informatica - A.A. 2000/2001 Docente: A. Lanza

Laboratorio di Programmazione(corso A) Laurea in Informatica - A.A. 2000/2001 Docente: A. Lanza Laboratorio di Programmazione(corso A) Laurea in Informatica - A.A. 2000/2001 Docente: A. Lanza 1.1. Introduzione al linguaggio Pascal Struttura di programma Elementi lessicali: le parole riservate e gli

Dettagli

Sistemi e Tecnologie della Comunicazione

Sistemi e Tecnologie della Comunicazione Sistemi e Tecnologie della Comunicazione Lezione 11: data lin layer: codici di rilevazione di errore, gestione degli errori 1 La rilevazione di errore Un codice a rilevazione di errore ha lo scopo di permettere

Dettagli

Logica per la Programmazione

Logica per la Programmazione Logica per la Programmazione Lezione 12 Linguaggio di Programmazione Imperativo: Sintassi e Semantica Concetto di Tripla di Hoare Soddisfatta pag. 1 Introduzione Dall inizio del corso ad ora abbiamo introdotto,

Dettagli

Prestazioni. aumentare l intervallo dei numeri di sequenza dotare sender e receiver di buffer per memorizzare i pacchetti non riscontrati

Prestazioni. aumentare l intervallo dei numeri di sequenza dotare sender e receiver di buffer per memorizzare i pacchetti non riscontrati Prestazioni Protocolli stop-and-wait poco efficienti Soluzione: il sender può inviare più pacchetti senza dover aspettare i riscontri (pipelining) Occorre: aumentare l intervallo dei numeri di sequenza

Dettagli

Telecomunicazioni (Ing. Gest., canale M-Z) Esercizi per gruppi di lavoro - 4 ARQ e livello di rete

Telecomunicazioni (Ing. Gest., canale M-Z) Esercizi per gruppi di lavoro - 4 ARQ e livello di rete Telecomunicazioni (Ing. Gest., canale M-Z) Esercizi per gruppi di lavoro - 4 ARQ e livello di rete GRUPPO: 17 Maggio 2018 1 Esercizio Si consideri un protocollo ARQ di tipo Go-Back-N. Le PDU sono numerate

Dettagli

Sviluppo di programmi

Sviluppo di programmi Sviluppo di programmi FASE 1: Dare un nome al problema partendo dall analisi del problema FASE 2: Scrivere la specifica funzionale FASE 3: Scrittura dell algoritmo FASE 3.1: Introduzione delle variabili

Dettagli

R. Cusani, F. Cuomo: Telecomunicazioni - DataLinkLayer: Gestione degli errori, Aprile 2010

R. Cusani, F. Cuomo: Telecomunicazioni - DataLinkLayer: Gestione degli errori, Aprile 2010 1 11. Data link layer: codici di rilevazione di errore, gestione degli errori La rilevazione di errore Un codice a rilevazione di errore ha lo scopo di permettere al ricevente di determinare se vi sono

Dettagli

Lezione 6 Introduzione al C++ Mauro Piccolo

Lezione 6 Introduzione al C++ Mauro Piccolo Lezione 6 Introduzione al C++ Mauro Piccolo piccolo@di.unito.it Linguaggi di programmazione Un linguaggio formale disegnato per descrivere la computazione Linguaggi ad alto livello C, C++, Pascal, Java,

Dettagli

GESTIONE DELLE PERIFERICHE D INGRESSO/USCITA ARGOMENTI

GESTIONE DELLE PERIFERICHE D INGRESSO/USCITA ARGOMENTI GESTIONE DELLE PERIFERICHE D INGRESSO/USCITA ARGOMENTI Compiti del sottosistema di I/O Architettura del sottosistema di I/O Gestore di un dispositivo di I/O Gestione e organizzazione dei dischi COMPITI

Dettagli

Logica per la Programmazione

Logica per la Programmazione Logica per la Programmazione Lezione 11 Linguaggio di Programmazione Imperativo: Sintassi e Semantica Concetto di Tripla di Hoare Soddisfatta pag. 1 Introduzione Dall inizio del corso ad ora abbiamo introdotto,

Dettagli

Fondamenti di Informatica

Fondamenti di Informatica Fondamenti di Informatica (L-Z) Corso di Laurea in Ingegneria Gestionale Introduzione alla Programmazione Prof. Stefano Mariani Dott. Alket Cecaj Indice Il concetto di algoritmo Algoritmo vs. programma

Dettagli

Chiamata di procedura remota

Chiamata di procedura remota Con gli strumenti gia` visti, si puo` realizzare come segue: lato chiamante: send asincrona immediatamente seguita da una receive lato chiamato: una receive seguita, al termine dell azione richiesta, da

Dettagli

PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE

PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE 1 ALGORITMO, PROGRAMMA, PROCESSO Algoritmo Procedimento logico che deve essere eseguito per risolvere un determinato problema. Programma Descrizione di un

Dettagli

Broadcast. Sistemi Distribuiti Laurea magistrale in ingegneria informatica A.A Leonardo Querzoni. domenica 1 aprile 12

Broadcast. Sistemi Distribuiti Laurea magistrale in ingegneria informatica A.A Leonardo Querzoni. domenica 1 aprile 12 Broadcast Sistemi Distribuiti Laurea magistrale in ingegneria informatica A.A. 2011-2012 Leonardo Querzoni Best effort broadcast Interfaccia: ; ; Proprietà: Best

Dettagli

ELEMENTI DI INFORMATICA E PROGRAMMAZIONE

ELEMENTI DI INFORMATICA E PROGRAMMAZIONE COGNOME E NOME: Università degli Studi di Brescia ELEMENTI DI INFORMATICA E PROGRAMMAZIONE Ingegneria GESTIONALE PROF. M. SECHI PARTE B 00/00/0000 NUM. MATRICOLA PER RITIRARSI SCRIVERE QUI "RITIRATO" La

Dettagli

Chiamata di procedura remota

Chiamata di procedura remota Chiamata di procedura remota Meccanismo di comunicazione e sincronizzazione tra processi in cui un processo che richiede un servizio ad un altro processo rimane sospeso fino al completamento del servizio

Dettagli

Informatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi

Informatica Generale Andrea Corradini Gli algoritmi e la risoluzione di problemi Informatica Generale Andrea Corradini 13 - Gli algoritmi e la risoluzione di problemi Sommario Passi per la risoluzione di problemi Problemi di ricerca e ordinamento Algoritmi iterativi: la ricerca lineare

Dettagli

CORSO DI PROGRAMMAZIONE

CORSO DI PROGRAMMAZIONE ISTITUTO TECNICO INDUSTRIALE G. M. ANGIOY SASSARI CORSO DI PROGRAMMAZIONE INTRODUZIONE ALLE ISTRUZIONI ITERATIVE DISPENSA 03.01 03-01_Iterazioni_[ver_15] Questa dispensa è rilasciata sotto la licenza Creative

Dettagli

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori (a.a. 2010/11)

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori (a.a. 2010/11) Corso di Laurea in Ingegneria Informatica Corso di Reti di Calcolatori (a.a. 2010/11) Roberto Canonico (roberto.canonico@unina.it) Giorgio Ventre (giorgio.ventre@unina.it) Il livello trasporto: tecniche

Dettagli

Programmazione a blocchi. Algobuild Prof. Sergio Roselli

Programmazione a blocchi. Algobuild Prof. Sergio Roselli Programmazione a blocchi Algobuild Prof. Sergio Roselli Blocchi base Inizio programma I Fine programma F Input IN A Output Esecuzione OUT A A = 5 + 1 L interprete Algobuild Algobuildpermette di trascrivere

Dettagli

HyTech. Laboratorio di Sistemi in Tempo Reale. Corso di Laurea in Informatica Multimediale. 13 Novembre 2008

HyTech. Laboratorio di Sistemi in Tempo Reale. Corso di Laurea in Informatica Multimediale. 13 Novembre 2008 HyTech Laboratorio di Sistemi in Tempo Reale Corso di Laurea in Informatica Multimediale 13 Novembre 2008 Sistemi in Tempo Reale (Lab) HyTech 13 Novembre 2008 1 / 29 Outline 1 Una breve introduzione ad

Dettagli

Esame - 16 Luglio 2018

Esame - 16 Luglio 2018 Cognome Nome Matricola Esame - 16 Luglio 2018 Tempo complessivo a disposizione per lo svolgimento: 2 ore Si usi lo spazio bianco dopo ogni esercizio per la risoluzione E1 E2 Quesiti Lab Esercizio 1 (7

Dettagli

Livello 4 (trasporto): cosa vedremo

Livello 4 (trasporto): cosa vedremo Il livello Trasporto Livello 4 (trasporto): cosa vedremo Servizi di livello trasporto multiplexing/demultiplexing Protocollo non orientato alla connessione: UDP Principi di trasferimento end-to-end affidabile

Dettagli

Compitino di Laboratorio di Informatica CdL in Matematica 13/11/2007 Teoria Compito A

Compitino di Laboratorio di Informatica CdL in Matematica 13/11/2007 Teoria Compito A Matematica 13/11/2007 Teoria Compito A Domanda 1 Descrivere, eventualmente utilizzando uno schema, gli elementi funzionali di una CPU. Domanda 2 Java è un linguaggio compilato o interpretato? Motivare

Dettagli

Corso di Reti di Calcolatori L-A

Corso di Reti di Calcolatori L-A Università degli Studi di Bologna Facoltà di Ingegneria Corso di Reti di Calcolatori L-A Esercitazione 0 (svolta) Multithreading in Java Luca Foschini Anno accademico 2009/2010 Esercitazione 0 1 Modello

Dettagli

Strato di trasporto. Livello di applicazione SAP. Livello di trasporto. Livello di rete SAP

Strato di trasporto. Livello di applicazione SAP. Livello di trasporto. Livello di rete SAP Strato di trasporto Lo strato di trasporto si colloca al livello 4 dello strato ISO-OSI e svolge il compito di mettere in comunicazione diversi processi software. La comunicazione tra applicazioni avviene

Dettagli

Il livello trasporto: tecniche di trasmissione affidabile dei dati

Il livello trasporto: tecniche di trasmissione affidabile dei dati Corso di Laurea in Ingegneria Informatica Corso di Reti di Calcolatori I Roberto Canonico (roberto.canonico@unina.it) Giorgio Ventre (giorgio.ventre@unina.it) Il livello trasporto: tecniche di trasmissione

Dettagli

Reti di Calcolatori:

Reti di Calcolatori: Reti di Calcolatori: Internet, Intranet e Mobile Computing a.a. 2007/2008 http://www.di.uniba.it/~lisi/courses/reti/reti0708.htm dott.ssa Francesca A. Lisi lisi@di.uniba.it Orario di ricevimento: mercoledì

Dettagli

Laboratorio di Programmazione

Laboratorio di Programmazione Laboratorio di Programmazione Laurea in Bioinformatica Docente: Carlo Drioli Web: www.scienze.univr.it/fol/main?ent=oi&id=39990 Programmazione: Dati Strutture di controllo Algoritmi Materiale tratto dai

Dettagli

2. Teoria. [7 punti] La comunicazione tra processi nel sistema UNIX.

2. Teoria. [7 punti] La comunicazione tra processi nel sistema UNIX. 1. Unix [12 punti] Prova Scritta di Recupero del 5 Aprile 2004 Si scriva un programma C che utilizzi le system call di UNIX e che realizzi un comando UNIX avente la seguente sintassi: esame fsize fin fout

Dettagli

Reti di Calcolatori in Tecnologia IP

Reti di Calcolatori in Tecnologia IP Reti di Calcolatori in Tecnologia IP Il Livello Transport e TCP Dott. Marco Bianchi 04/12/2001 1 Agenda Introduzione Indirizzamento Protocolli di livello transport Attivazione e rilascio di una connessione

Dettagli

Algoritmi e soluzione di problemi

Algoritmi e soluzione di problemi Algoritmi e soluzione di problemi Dato un problema devo trovare una soluzione. Esempi: effettuare una telefonata calcolare l area di un trapezio L algoritmo è la sequenza di operazioni (istruzioni, azioni)

Dettagli

Indice PARTE A. Prefazione Gli Autori Ringraziamenti dell Editore La storia del C. Capitolo 1 Computer 1. Capitolo 2 Sistemi operativi 21 XVII XXIX

Indice PARTE A. Prefazione Gli Autori Ringraziamenti dell Editore La storia del C. Capitolo 1 Computer 1. Capitolo 2 Sistemi operativi 21 XVII XXIX Indice Prefazione Gli Autori Ringraziamenti dell Editore La storia del C XVII XXIX XXXI XXXIII PARTE A Capitolo 1 Computer 1 1.1 Hardware e software 2 1.2 Processore 3 1.3 Memorie 5 1.4 Periferiche di

Dettagli

Università degli Studi di Bergamo

Università degli Studi di Bergamo Università degli Studi di Bergamo Facoltà di Ingegneria Prof. Filippini 2! E il primo livello logico della commutazione di pacchetto! Funzioni! Identificare logicamente i bit o gruppi di bit scambiati

Dettagli

LAVAGNA DI PROGRAMMA SPORTELLO UTENTE LAVAGNA DI LAVORO

LAVAGNA DI PROGRAMMA SPORTELLO UTENTE LAVAGNA DI LAVORO LAAGNA DI LAORO Chiamiamo variabili le posizioni sulla lavagna, identificate ognuna da un nome distinto, e valore il loro eventuale contenuto SPORTELLO UTENTE LAAGNA DI PROGRAMMA Modulo IN: modulo di ricezione

Dettagli

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori I

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori I Corso di Laurea in Ingegneria Informatica Corso di Reti di Calcolatori I Roberto Canonico (roberto.canonico@unina.it) Giorgio Ventre (giorgio.ventre@unina.it) Il livello trasporto: controllo di congestione

Dettagli

Modello a scambio di messaggi

Modello a scambio di messaggi Modello a scambio di messaggi PRIMITIVE PER LO SCAMBIO DI MESSAGGI Un messaggio si può considerare costituito da: origine, destinazione e contenuto type messaggio = record origine:. ; destinazione:. ;

Dettagli

Esempio: modello trasmissione TCP

Esempio: modello trasmissione TCP Esempio: modello trasmissione TCP Simuliamo un sistema con un sender e un receiver al livello trasporto usando il protocollo TCP, e immaginiamo tutta la rete sottostante come un black-box model caratterizzato

Dettagli

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 19 - Eccezioni Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso

Dettagli

Istruzioni Condizionali

Istruzioni Condizionali Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa 10 Istruzioni Condizionali Carla Limongelli Novembre 2011 http://www.dia.uniroma3.it/~java/fondinf/ Istruzioni condizionali 1 Contenuti

Dettagli

Istruzioni di Ciclo. Unità 4. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

Istruzioni di Ciclo. Unità 4. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Domenico Daniele Bloisi Docenti Metodi Numerici prof. Vittoria Bruni vittoria.bruni@sbai.uniroma1.it Programmazione prof. Domenico

Dettagli

Progetto e analisi di algoritmi

Progetto e analisi di algoritmi Progetto e analisi di algoritmi Roberto Cordone DTI - Università degli Studi di Milano Polo Didattico e di Ricerca di Crema Tel. 0373 / 898089 E-mail: cordone@dti.unimi.it Ricevimento: su appuntamento

Dettagli

Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto

Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto Diagramma a blocchi per la selezione, in un mazzo di chiavi, di quella che apre un lucchetto 14 1. Dato un numero dire se è positivo o negativo 2. e se il numero fosse nullo? 3. Eseguire il prodotto tra

Dettagli

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori Elementi di Programmazione Elementi del linguaggio e primi programmi

Dettagli

GESTIONE DELLE PERIFERICHE D INGRESSO/USCITA ARGOMENTI

GESTIONE DELLE PERIFERICHE D INGRESSO/USCITA ARGOMENTI GESTIONE DELLE PERIFERICHE D INGRESSO/USCITA ARGOMENTI Compiti del sottosistema di I/O Architettura del sottosistema di I/O Gestore di un dispositivo di I/O COMPITI DEL SOTTOSISTEMA DI I/O 1. Nascondere

Dettagli

RETI DI CALCOLATORI Home Work ritardi e livello applicativo

RETI DI CALCOLATORI Home Work ritardi e livello applicativo RETI DI CALCOLATORI Home Work ritardi e livello applicativo Prima parte Q1. Supponiamo che un router A trasmetta un pacchetto su un collegamento con un router B, che la frequenza di trasmissione del collegamento

Dettagli

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

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione I semestre 03/04 Comunicazione tra Computer Protocolli Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/professori/auletta/ Università degli studi di Salerno Laurea in Informatica 2

Dettagli

Reti di Calcolatori e Laboratorio - Compito del 15 Gennaio 2013

Reti di Calcolatori e Laboratorio - Compito del 15 Gennaio 2013 Nome: Matricola: e-mail: Esercizio 1 (6 punti) Si consideri la rete composta da 4 router (w,x,y e z), che ha la configurazione mostrata in figura. w 3 x 2 1 y 7 z Al tempo t, quando i vettori di distanza

Dettagli

SECONDA PROVA INTERMEDIA DEL MODULO DI. 1 giugno 2017 NOME: COGNOME: MATRICOLA:

SECONDA PROVA INTERMEDIA DEL MODULO DI. 1 giugno 2017 NOME: COGNOME: MATRICOLA: SECONDA PROVA INTERMEDIA DEL MODULO DI 1 giugno 2017 NOME: COGNOME: MATRICOLA: ESERCIZIO 1 (12 punti) Motivando ciascuna istruzione con opportuni commenti, scrivere una funzione Assembly MIPS scomponi

Dettagli

Algoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal

Algoritmi, Strutture Dati e Programmi. UD 2.b: Programmazione in Pascal Algoritmi, Strutture Dati e Programmi : Programmazione in Pascal Prof. Alberto Postiglione AA 2007-2008 Università degli Studi di Salerno Il Linguaggio di Programmazione Pascal Esistono molti linguaggi

Dettagli

Algoritmi e Strutture di Dati

Algoritmi e Strutture di Dati Algoritmi e Strutture di Dati Pseudocodifica m.patrignani Nota di copyright queste slides sono protette dalle leggi sul copyright il titolo ed il copyright relativi alle slides (inclusi, ma non limitatamente,

Dettagli

GESTIONE DELLE PERIFERICHE D INGRESSO/USCITA COMPITI DEL SOTTOSISTEMA DI I/O ARGOMENTI

GESTIONE DELLE PERIFERICHE D INGRESSO/USCITA COMPITI DEL SOTTOSISTEMA DI I/O ARGOMENTI GESTIONE DELLE PERIFERICHE D INGRESSO/USCITA ARGOMENTI Compiti del sottosistema di I/O Architettura del sottosistema di I/O Gestore di un di I/O 1. Nascondere al programmatore i dettagli delle interfacce

Dettagli

Fondamenti di Informatica A. A. 2018/19

Fondamenti di Informatica A. A. 2018/19 Fondamenti di Informatica Prof. Marco Lombardi A. A. 2018/19 AlgoBuild: Strutture Iterative e Selettive OUTLINE Blocco condizionale (Struttura selettiva IF - IF/ELSE) Esempi Cicli a condizione iniziale

Dettagli

Informatica (A-K) 5. Algoritmi e pseudocodifica

Informatica (A-K) 5. Algoritmi e pseudocodifica Vettori e matrici #1 Informatica (A-K) 5. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile & Ambientale A.A. 2011-2012 2 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie

Dettagli

Istruzioni condizionali di diramazione in Fortran 90

Istruzioni condizionali di diramazione in Fortran 90 Istruzioni condizionali di diramazione in Fortran 90 Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2006/2007 Fortran 90: Istruzioni di diramazione DIS - Dipartimento

Dettagli

Protocolli a finestra

Protocolli a finestra ecniche per la protezione dagli errori di trasmissione ecniche AQ (protocolli a finestra) FEC (forward error correction) AQ (automatic retransmission request) Gruppo eti LC nome.cognome@polito.it http://www.telematica.polito.it/

Dettagli

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

Fondamenti di Informatica 6. Algoritmi e pseudocodifica Vettori e matrici #1 Fondamenti di Informatica 6. Algoritmi e pseudocodifica Corso di Laurea in Ingegneria Civile A.A. 2010-2011 1 Semestre Prof. Giovanni Pascoschi Le variabili definite come coppie

Dettagli

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter Informatica B a.a 2005/06 (Meccanici 4 squadra) Scaglione: da PO a ZZZZ PhD. Ing. Michele Folgheraiter Funzionamento macchina di von Neumann clock Memoria Centrale: Tutta l informazione prima di essere

Dettagli