Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


appunti informatica 2025/2026, Appunti di Elementi di Informatica

appunto informatica 2025/2026 sergio moriani

Tipologia: Appunti

2024/2025

Caricato il 20/01/2026

ste-rav04
ste-rav04 🇮🇹

5

(1)

5 documenti

1 / 37

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
INFORMATICA GENERALE
UNIVERSITA’ MILANO-BICOCCA
SLIDES, LIBRO E APPUNTI PRESI A LEZIONE
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25

Anteprima parziale del testo

Scarica appunti informatica 2025/2026 e più Appunti in PDF di Elementi di Informatica solo su Docsity!

INFORMATICA GENERALE

UNIVERSITA’ MILANO-BICOCCA

SLIDES, LIBRO E APPUNTI PRESI A LEZIONE

Lezione 1 (5 ottobre), introduzione Software principale àè il SISTEMA OPERATIVO Software applicativo à è il software che installi sul SO, esempio word L’informatica tratta i dati, che possiamo suddividere in:

  • Dati semplici : numeri, caratteri, date
  • Dati complessi : immagini, grafici, filmati, suoni, animazioni Ciclo di elaborazione dell'informazione
  1. Input , inserisco qualcosa all'interno del ciclo dell'informazione, esempio passo un audio, un testo, dispositivi input: scanner, tastiera
  2. Elaborazione , una volta raccolti i dati li possiamo elaborare, modificare un’immagine o un testo, possiamo sommare, unire più file…
  3. Output per vedere, ascoltare, ..., i dati elaborati. I dispositivi sono stampanti, altoparlanti
  4. Memorizzazione , i dati utilizzati vengono memorizzati per essere sempre disponibili, la memorizzazione avviene sull’ hard disk
  5. Distribuzione i dati possono essere stampati, distribuiti o trasmessi da un computer a un altro, tramite e-mail documenti cartacei, internet. Aspetti applicativi più rilevanti della IT (informatic tehnology)
  • Gestione aziendale o Sistema informativo aziendale = insieme di tutti i dati e tutti i processi che riguardano la raccolta, l’archiviazione, l’elaborazione, la distribuzione dei dati nelle attività operative e di controllo o Sistema informatico = insieme delle risorse tecnologiche facenti parte il sistema informativo
  • Office automation, Database, Educazione, Commercio, Giochi ed intrattenimento 1945 Proposta dell’architettura general purpose (macchina di Von Neumann) 1969 nasce ARPANET, net = network , arpa = associazione militare americana Lezione 2 (11 ottobre) Lingua del computer: linguaggio binario
  • Segnali analogici: sono segnali molto sensibili alle interferenze (rumore)
  • Segnali digitali: possono assumere solo 2 stati, per un dispositivo è semplice distinguere i due stati, per cui sono meno soggetti alle interferenze. Le informazioni del mondo esterno vengono memorizzati/elaborazione in un computer tramite una codificarappresentazione binaria”, quando le informazioni devono passare dal pc al mondo esterno avviene una fase chiamata decodifica , trasformare le informazioni da linguaggio binario a un linguaggio comprensibile per il mondo. Informazioni tradizionali
  • Numeri ( interi positivi, positivi e negativi, reali)
  • Testi Informazioni multimediali
  • Immagini fisse ( vettoriali, bitmap)
  • Audio
  • Video

Da decimale a binario Sistema ottale

  • r = 8
  • d = 0,1,2,3,4,5,6, Sistema esadecimale
  • r = 16
  • d = 1,2,3,4,5,6,7,8,9,A,B,C,D,E,F BIT NECESSARI àLe macchine hanno vincoli spaziali, è necessario conoscere il valore massimo rappresentabile.
  • Con n bit si può rappresentare al massimo
  • Per poter rappresentare fino a X numeri, sono necessari un numero di n bit pari a OVERFLOW à quando si supera il limite di bit consentiti, andiamo in overflow ovvero un errore di superamento del limite di scrittura n l’unità atomica è il bit n l’insieme di 8 bit è detto byte n word o tipicamente 16, 32 o 64 bit o l’insieme di bit è una caratteristica del calcolatore, essa influisce: sulla larghezza degli indirizzi, la dimensione dei registri del processore, la larghezza dei bus (word o multipli di essa). INTERVALLI DI VARIABILITA’ n Bit o Numero di configurazioni 2 o Intervallo di variabilità 0, n Byte o Numero di configurazioni 256 o Intervallo di variabilità: dipende dal tipo di codifica CODIFICA DEI TESTI Si utilizza una tabella arbitraria, con uno standard riconosciuto quasi universalmente. Che può essere:
  • CODICE ASCII ( American Standard Code for Informatic Interchange ), dove ogni carattere (simbolo) è codificato con 7 bit ( 128 simboli diversi ).
  • Extended ASCII: 8 bit per carattere
  • UNICODE. 16 bit per carattere

Lezione 3 (12 ottobre) SOFTWARE È il software che implementa la funzionalità di un sistema di elaborazione, possiamo distinguere i software in due categorie: n Software di sistema: sistema operativo e linguaggi di programmazione. Il sistema operativo permette di avviare programmi applicativi. n Programmi applicativi: come ad esempio, google, word, ecc.. Applicazioni: compiti eseguiti con l’ausilio del computer Programmi Applicativi : programmi utilizzati per svolgere le applicazioni Il processo dell’informaticaà § Le interfacce utente: rappresentano il mezzo di interazione tra l’utente e la macchina. GUI: interfacce grafiche utente CARATTERISTICHE COMUNI DELLE GUI

  • Interfaccia a finestre
  • Funzioni attivabili tramite click del mouse
  • Impiego della tecnologia WTSIWYG
  • Standardizzazione dei comandi tra le diverse applicazioni, es: copia incolla cerca taglia Principali funzioni del SO
  • Gestire le risorse dell’elaboratore
  • Controllare che le operazioni vengano eseguite in modo regolare
  • Determinare dove memorizzare dati e programmi
  • Coordinare la comunicazione tra i vari componenti del computer
  • Gestire l’interazione tra l’utente e i programmi applicativi RUOLO DEL BIOS BIOS: basic input output system Ciò che è memorizzato all’interno del BIOS non andrà perso ad ogni riavvio del pc o con un’interruzione brusca del pc (esempio interruzione di corrente) È un programma memorizzato su un chip di memoria (ROM) con le seguenti funzioni:
  • Interpreta i dati trasmessi tramite tastiera
  • Visualizza i caratteri sullo schermo
  • Gestisce le comunicazioni attraverso le porte del computer
  • Fornisce un collegamento fra il SW e i componenti HW dell’elaboratore. L’INTERPRETE DEI COMANDI : è la porzione di SO che si occupa di acquisire l’input dell’utente e di interpretarlo (esempio digitazione da tastiera, click con il mouse).
  • I nuovi SO sono multitasking (permettono l’esecuzione di più programmi contemporaneamente), i programmi per essere eseguiti hanno bisogno dell’accesso alla CPU, ma essendoci soltanto una CPU per computer, sarà il SO a regolare il processo di entrata nella CPU dai vari programmi.
  • In un SO multithreading i programmi applicativi possono svolgere più operazioni parallelamente.

COMPONENTI DI UN CALCOLATORE

BUS E SOLUZIONE MASTER-SLAVE

Il Bus è una linea a cui sono contemporaneamente connesse le unità del calcolatore e che consente trasferimento di dati tra tali unità

  • Problema : contesa su un mezzo condiviso!
  • Soluzione : CPU = master, periferiche = slave

n PREGI BUS E MASTER-SLAVE o Semplicità : 1 sola linea di connessione # di dispositivi o Estendibilità : nuovi dispositivi possono essere aggiunti tramite un'interfaccia al bus senza influenzare l'HW preesistente o Standardizzabilità : definizione di normative che consentono a periferiche di costruttori diversi di interagire correttamente n DIFETTI BUS E MASTER-SLAVE o Lentezza : l'uso in mutua esclusione del bus inibisce almeno parzialmente la parallelizzazione delle operazioni di trasferimento di dati tra dispositivi o Limitata capacità : al crescere del numero di dispositivi la presenza di una sola linea comporta un limite alla capacità di trasferire dati o Sovraccarico della CPU : l'unità centrale viene coinvolta in tutte le operazioni di trasferimento di dati SCHEMA DI RIFERIMENTO DEI BUS

  • Bus dati : utilizzato per trasferire dati (es. fra memoria e CPU, fra CPU e interfacce di l/O)
  • Bus indirizzi : che identifica la posizione delle celle di memoria un cui la CPU va a scrivere o leggere
  • Bus di controllo : in cui transitano i segnali di controllo che consentono di selezionare le unità coinvolte in un trasferimento dati (sorgente e destinazione), di definire la direzione dello scambio (scrittura O lettura)

Lezione 5 (19 ottobre) Architettura di Von Neumann Burks, Goldstein e Von Neumann sono stati i primi a proporre che il codice del programma potesse essere memorizzato nella stessa memoria dei dati. Quando apro word (installato sull’hardisk) un frammento di word si va a memorizzare nella CPU per permettere al programma di funzionare.

  • Memoria indifferenziata per dati o istruzioni
  • Solo l’interpretazione da parte di CPU stabilisce se una data configurazione di bit è da considerare come un dato o come un’istruzione CPU: UNITA’ CENTRALE DI ELABORAZIONE

ELEMENTI DI UNA CPU

  • Unità di controllo : Legge le istruzioni dalla memoria e ne determina il tipo
  • Unità aritmetico-logica : Esegue le operazioni necessarie per eseguire le istruzioni, esegue operazioni di tipo matematico e di tipo logico
  • Registri ( supporti di memorizzazione all’interno della cpu, pro : accesso immediato contro : quantità di dati salvabili molto ridotta) o Memoria ad alta velocità usata per risultati temporanei , servono per avere accesso a informazioni in maniera veloce o il Determina il parallelismo della CPU o Esistono registri generici e registri specifici : Program Counter (PC), Instruction Register (IR) Tre Tipologie di Istruzioni: n Istruzioni Aritmetico Logiche (Elaborazione dati) o Somma, sottrazione, divisione, o And, Or, Xor, … o Maggiore, minore, uguale, maggiore uguale, … n Controllo del flusso delle istruzioni o Sequenza o Selezione o Ciclo a condizione iniziale, a condizione finale, … n Trasferimento di informazione o Trasferimento dati e istruzioni tra CPU e memoria o Trasferimento dati e istruzioni tra CPU e dispositivi di I/O

n Registro di Stato (SR): bit del registro SR indicano che una particolare condizione si è verificata a seguito dell'esecuzione di un'istruzione, ad esempio, se un'istruzione di somma genera un overflow allora la ALU scrive un certo valore nel registro SR. CISC E RISK à^ sono due modi di esecuzione delle istruzioni nella CPU n CISC: Complex Instruction Set Computing Complex: esegue istruzioni complesse Un repertorio di istruzioni esteso è preferibile perché:

  • Istruzioni potenti semplificano la programmazione
  • Riduce il gap tra linguaggio di macchina e linguaggio di alto livello, perché può sfruttare istruzioni complesse
  • L'uso efficiente della memoria (all'epoca era costosa) era la preoccupazione principale: o Meglio avere codici compatti n RISC: Reduced Instruction Set Computing L’approccio RISK si basa su un numero limitato di istruzioni, non come il CISC. Memorie più veloci ed economiche:
  • Posso anche mettere un numero maggiore di istruzioni, però più semplici. Comportamento dei programmi
  • L'80% delle istruzioni eseguite corrispondeva al solo 20% del repertorio
  • Conviene investire nella riduzione dei tempi di esecuzione di quel 20%, anziché aggiungere raffinate istruzioni, quasi mai usate, ma responsabili dell'allungamento del tempo di ciclo di macchina Conviene costruire processori molto veloci, necessariamente con repertori RISC - CRITERI DI PROGETTAZIONE
  • Frequenza di clock (velocità della CPU)à Velocità con cui gli istanti di tempo si succedono all'interno della CPU. Si misura in HZ, che significa "volte al secondo". 2Hz = 2 volte al secondo.
  • Periodo di Clock : intervallo di tempo tra un istante ed il successivo. È l'inverso della frequenza di clock. Il periodo di clock deve essere sufficientemente "lungo" da consentire a tutti i segnali elettrici di arrivare
  • Le istruzioni devono essere semplici, Tutte le istruzioni occupano lo stesso spazio di memoria (una parola)
  • Ristretto numero di formati o La codifica "ordinata" consente accorgimenti per velocizzare l'esecuzione (pipeline), difficilmente applicabili a repertori di istruzioni complesse
  • La semplificazione del repertorio tende a far aumentare la dimensione del codice o Non è un problema, vista la tendenza alla riduzione dei costi e all'aumento della densità delle memorie o Dal punto di vista della velocità i guadagni che si ottengono nel semplificare le istruzioni sono superiori all'effetto negativo del maggior numero di istruzioni per programma L'Unità Aritmetico-Logica (ALU) è costituita da un insieme di circuiti in grado di svolgere le operazioni di tipo aritmetico e logico La ALU legge i dati contenuti all'interno dei registri generali, esegue le operazioni e memorizza il risultato in uno dei registri generali

Come sono fatte le istruzioni Che tipo di istruzioni può eseguire un processore, esempi:

  • leggi la parola in RAM all'indirizzo 5 e mettila nel registro R
  • scrivi il contenuto del registro R1 nella parola di memoria all'indirizzo y
  • somma il contenuto dei registri R0 e R8 mettendo il risultato nel registro R Come sono codificate le istruzioni
  • Le istruzioni che un processore può eseguire sono anch'esse rappresentate in formato digitale.
  • Si sceglie di usare un certo numero di bit e si fa corrispondere ad un'operazione e a un registro una configurazione.
  • Si sceglie di usare un certo numero di bit e a seconda dello spazio di indirizzamento si fa corrispondere ad un indirizzo una configurazione
  • In questo modo, le istruzioni sono rappresentate in formato digitale e mantenute all'interno della RAM per essere prelevate (lette) ed eseguite dal processore. Come sono codificate le istruzioni
  • I ADD R3, R8,R13 à istruzione che somma il contenuto del registro R3 con il contenuto del registro R8 e mette il risultato nel registro R13. Ipotizziamo di avere 16 registri in tutto e di avere una dimensione della parola di memoria di 16 bit (per cui un'istruzione è codificata con 16 bit):
  • associo all'operazione ADD 4 bit fatti così: 1011, associo 4 bit ad ogni indice di registro per cui ottengo per R3 (0011), per R8 (1000), per R13 (1101) per cui si ha che ADD R3, R8,R13 si codifica con 1011 0011 1000 1101 IL BUS Soluzione che ci da il BUS àCollegare ogni componente a tutte le altre ( costoso se ho molte componenti separate)
  • Usare un unico collegamento condiviso Bus di sistema: insieme di collegamenti (solitamente in rame) che connette tutti componenti di un'architettura. Lezione 6 (25 ottobre) ALGEBRA BOOLEANA
  • Si basa su variabili dette logiche o booleane aventi due soli possibili valori: o VERO (sinonimi: true, T, 1, acceso, ON, etc...) o FALSO (sinonimi: false, F, 0, spento, OFF etc...) Funzioni booleane àUsando le variabili booleane, si possono costruire le funzioni booleane (o funzioni logiche). Es. una funzione booleana di tre variabili: F(x,y,z) Il codominio è costituito da due soli possibili stati: true vero 1 o false falso 0 Tabella della verità Ogni funzione booleana è caratterizzata dalla propria tabella di verità

Espressioni logiche

  • Un insieme di variabili e/o costanti booleane a cui siano applicati gli operatori logici si dice espressione booleana o logica
  • Una espressione logica rappresenta una funzione logica: ad esempio: Precedenze tra operatori Le precedenze sono simili al + e al x dell’algebra consueta:
  • priorità alta x
  • priorità bassa + Proprietà dell’algebra booleana LEZIONE 7 (26 OTTOBRE) RETI DI COMPUTER Le reti sono un componente fondamentale per la realizzazione di un sistema informativo Senza la rete i computer non possono comunicare fra loro e le uniche modalità di decentralizzazione dell'elaborazione dell'informazione sono costituite da:
  • collegamento di terminali ad un computer centrale : l'elaborazione e la gestione dei dati sono concentrate sul computer, ma l'interazione tra computer e utenti è decentralizzata sui terminali (a poca distanza fisica dal computer)
  • trasferimento di file da un computer all'altro , mediante connessioni punto-punto prive di un effettivo meccanismo di comunicazione bidirezionale Si parla di rete di computer quando effettivamente più sistemi di elaborazione autonomi (computer) possono dialogare fra loro scambiandosi informazioni attraverso un mezzo fisico di connessione e quando tale meccanismo di comunicazione e di scambio è replicabile su più computer, senza dipendere dalla specificità delle due macchine che comunicano fra loro È molto importante la possibilità offerta dalle moderne tecnologie di rete di interconnettere fra loro reti diverse, anche mediante mezzi trasmissivi eterogenei Gli utilizzi che oggi facciamo delle reti di computer (utilizzate ormai, anche inconsapevolmente, prevalentemente da persone prive di competenze tecniche specifiche) sono numerosissimi: scambio di informazioni (mail, messaggistica, ...), accesso a banche dati, accesso a servizi on-line, acquisti e transazioni finanziarie, giochi e divertimento, ecc. Come si realizza una rete di computer Una rete di computer si realizza attraverso le seguenti componenti:
  • componenti fisiche : i computer e i nodi della rete (router, gateway, switch, ...), ma anche i mezzi trasmissivi (cavi elettrici, cavi in fibra ottica, onde radio, ...)
  • componenti software : i programmi (in parte realizzati come componenti dei sistemi operativi) che consentono ai computer e ai nodi della rete di effettuare lo scambio di informazioni, con particolare

attenzione all'efficienza, all'affidabilità e (in parte) alla indipendenza dal media fisico con cui si realizza la connessione Packet switching

  • Nelle reti di trasmissione dati l'informazione da inviare dalla sorgente al destinatario viene suddivisa in pacchetti trasmessi separatamente
  • Questa tecnica si definisce packet switching (commutazione di e pacchetto) e permette di utilizzare il medesimo canale di comunicazione per alternare la trasmissione di dati da parte di più nodi di una stessa rete che condividono il canale o Come nella tecnica del multitasking, dove viene ripartito il tempo della CPU dedicato all'elaborazione dei diversi processi, nel packet switching il canale di comunicazione viene utilizzato in tempi diversi da diversi nodi della rete, alternando rapidamente le operazioni di trasmissione da parte dei diversi nodi in modo da dare l'impressione che tutti i nodi della rete stiano usando il canale contemporaneamente
  • Siccome il canale di comunicazione viene usato contemporaneamente da più nodi, i pacchetti possono andare in conflitto fra di loro, corrompendosi: in tal caso è necessario trasmettere nuovamente i soli pacchetti corrotti o La suddivisione in pacchetti permette anche di rendere più efficiente la correzione degli errori: nel caso in cui si verifichi un errore nella trasmissione di un pacchetto non sarà necessario ripetere l'intera trasmissione, ma il mittente potrà limitarsi a trasmettere nuovamente solo il pacchetto che si è corrotto.
  • I pacchetti vengono trasmessi sequenzialmente, ma, anche a causa delle ritrasmissioni, possono arrivare in un ordine diverso da quello con cui sono stati spediti: sarà il destinatario ad occuparsi di ricostruire la sequenza corretta dei pacchetti per restituire l'integrità all'informazione trasmessa Reti broadcast e punto-punto Dal punto di vista fisico una rete può essere broadcast o punto-punto n Reti broadcast o Si utilizza lo stesso canale fisico di trasmissione, suddividendo la comunicazione in pacchetti o Ogni pacchetto contiene l'identificativo del destinatario che riceve e legge il pacchetto di dati, gli altri nodi della rete lo scartano o È possibile inviare pacchetti destinati a tutti i nodi della rete (broadcast) o È possibile inviare pacchetti destinati ad alcuni nodi della rete (multicast) n Reti punto-punto o Il canale trasmissivo è riservato alla comunicazione tra due nodi della rete

o linee telefoniche (DSL Digitale Subscriber Line; ISDN Integrated Services Digital Network) o ponti radio o canali satellitari LEZIONE 8 (2 NOVEMBRE) Il software per le reti Nella comunicazione tra computer sono due programmi a dialogare tra di loro Nell'ambito del dialogo tra i due programmi spesso si distinguono due ruoli:

  • client : il software che inizia il dialogo collegandosi ad un server per accedere ad un servizio o ad una risorsa;
  • server: il software che è in attesa della connessione da parte di uno o più cliente che fornisce il servizio o la risorsa richiesta. Il modello delle reti peer-to-peer (letteralmente: "da pari a pari") ciascun nodo (software) presente nella rete svolge simultaneamente il ruolo di server (offrendo servizi ad altri nodi) o di client (richiedendo servizi ad altri nodi) Il software per la gestione delle comunicazioni in rete è estremamente strutturato e si compone di moduli suddivisi per livelli : ogni livello comunica solo con il livello soprastante e con quello sottostante
  • Il livello più basso è quello fisico , relativo alla gestione della trasmissione su un particolare media
  • Il livello più alto è quello più astratto , relativo alla interazione tra due applicazioni che operano su due end-point (due computer) distinti collegati in rete fra loro Una distinzione tra i diversi software/protocolli di gestione delle reti si effettua in base al numero di livelli di cui è composto e alla funzione assegnata a ciascun livello Lo scopo di ciascun livello è quello di offrire dei servizi agli strati sovrastanti , nascondendo la complessità relativa all'implementazione del servizio stesso
  • In questo modo è come se due livelli paritari, entrambi di livello n sui due nodi della rete, parlassero tra loro mediante un protocollo di livello n
  • In realtà i due componenti di livello n comunicano fra loro attraverso i servizi offerti dai componenti di livello n- 1
  • Il dato viene costruito dal livello n del primo host Tra ogni coppia di livelli adiacenti è definita un’interfaccia, che definisce:
  • le operazioni primitive che possono essere richieste al livello sottostante
  • I servizi che possono essere offerti al livello sovrastante Stratificazione del software per le reti Il software per le reti è suddiviso in strati: ogni layer si occupa di una specifica problematica: 5. Come fanno due programmi a comunicare tra loro? Chi definisce le regole con cui avviene la comunicazione e quali dati devono essere trasmessi? Quale significato hanno? 4. Nella comunicazione tra due programmi come si svolge la " sessione di comunicazione "? Come si segmenta il dato da comunicare e come o si riassembla quando lo si riceve? Chi apre la comunicazione, chi la tiene attiva e chi la chiude al termine della comunicazione? Come si fa a tenere attive sessioni di comunicazione diverse con lo stesso computer? Come si distinguono tipi di comunicazione differenti (es.: pagine web, posta elettronica, chat, ecc.)?

3. Su una rete , non su un singolo segmento di collegamento tra due computer, come si fa a far arrivare i dati trasmessi dal mittente fino al giusto destinatario? Q uale percorso deve compiere la comunicazione? Quale cammino sul grafo deve essere scelto per far comunicare due nodi? Come identifico i nodi della rete? 2. Come si regola il flusso di dati sul canale di comunicazione? Quanti dati devono essere inviati (o ricevuti) sul canale? Come ci si accorge di un errore di trasmissione e come si rimedia ad un eventuale errore? 1. Quale mezzo di trasmissione deve essere utilizzato? Come si rappresentano dati sul canale di comunicazione analogico? Come si attiva e si utilizza fisicamente il canale? Metaforicamente è come se il software per le reti funzionasse come nella seguente figura in cui due filosofi stranieri devono comunicare tra di loro: - Il filosofo sfrutta il servizio di traduzione dell'interprete che traduce e scrive un documento in inglese - L'interprete sfrutta il servizio della segretaria per inviare il testo via fax - La segretaria utilizza il fax come canale fisico di trasmissione - La comunicazione è segmentata in pacchetti in modo che - il canale trasmissivo non sia impegnato continuativamente per tempi molto lunghi - in caso di errore di trasmissione debba essere rispedito solo un pacchetto e non l'intero flusso di dati In fase di trasmissione, ogni livello aggiunge al pacchetto ricevuto dallo strato sovrastante un header , formando così un pacchetto più grande (il pacchetto viene "imbustato") L'header contiene informazioni di servizio utili per lo scambio del pacchetto di dati - lunghezza del pacchetto - numero progressivo del pacchetto nell'ambito del l'intero flusso di comunicazione - data ed ora in cui il pacchetto è stato prodotto (timestamp) In fase di ricezione ogni livello riceve un pacchetto "imbustato" dal livello inferiore: il livello n scorpora l’header del pacchetto dal segmento contenente i dati veri e propri (il pacchetto viene estratto dalla busta di livello n) - il livello n esegue anche dei controlli di integrità del pacchetto sulla base delle informazioni contenute nell'header - il ricevitore ricostruisce il flusso di comunicazione originario concatenando i pacchetti ricevuti non in base all'ordine di ricezione, ma in base al numero progressivo presente nell' header del pacchetto Modelli e architetture delle reti Esistono modelli teorici per la definizione di un'architettura di una rete e architetture effettive che di fatto costituiscono uno standard nel mondo delle reti n Modello OSI (Open Systems Interconnection)

Lezione 9 ( 8 novembre) Lo stack OSI semplificato Per descrivere i diversi aspetti del protocollo di rete adottiamo il modello OSI semplificato , ridotto a soli cinque livelli:

**1. Livello Fisico

  1. Livello Data Link
  2. Livello Network
  3. Livello Transport
  4. Livello Application** Nel TCP /IP il livello Network Access include sia il livello Fisico che il Data Link del modello OSI semplificato LIVELLO 1: FISICO
  • Il canale di comunicazione fisico per la realizzazione di reti di computer è un analogico, In cui i valori variano in modo continuo (energia elettrica, campo elettromagnetico, luce, ecc.) all'interno di un determinato intervallo detto ampiezza
  • Il segnale trasmesso su un canale analogico può essere rappresentato mediante una funzione sinusoidale non periodica che, con gli strumenti dell'analisi di Fourier, può essere interpretata come somma di funzioni trigonometriche con ampiezza e periodo (e frequenza) diverse
  • Un segnale è quindi caratterizzato da un intervallo di frequenze delle funzioni sinusoidali che lo compongono: tale intervallo si chiama banda di frequenza del segnale
  • Anche il mezzo fisico di trasporto del segnale è caratterizzato da un intervallo di frequenze delle funzioni che compongono il segnale che può essere trasmesso da tale mezzo fisico; questo intervallo il prende il nome di banda passante (es.: 3KHz: da 0 a 3.000 HZ) Livello 2: DATA LINK
  • Il livello Data Link offre una comunicazione affidabile ed efficiente tra due nodi connessi da un canale fisico (un cavo Ethernet, una linea telefonica, ecc.) o offre servizi al livello Network (sovrastante) o determina la suddivisione in frame dei bit a livello fisico o gestisce gli errori di trasmissione (verifica integrità dei propri pacchetti spediti, altrimenti li ritrasmette, ad esempio tramite l'algoritmo backoff) o regola il flusso di dati tra sorgente e destinatario
  • Questo livello dello stack è tipicamente implementato nel firmware (o nei driver) di una scheda di rete Ethernet o di un'interfaccia wi-fi; protocolli PPP (Point-to-Point Protocol) e SLIP (Serial Line Internet Protocol) sono protocolli del livello Data Link implementati via software
  • Il livello Data Link in trasmissione: o riceve dal livello Network un pacchetto di dati (formato binario) o frammenta la sequenza di bit in frame dipendenti dal particolare protocollo fisico di trasmissione o calcola un checksum di ciascun frame o passa il pacchetto formato dal frame e dal checksum al livello Fisico sottostante, che lo spedisce come sequenza di bit
  • Il livello Data Link in ricezione: o riceve una sequenza di bit dal livello fisico o ricostruisce i frame uno dopo l'altro o ricalcola il checksum e verifica che sia uguale a quello contenuto nel frame

LIVELLO 3: NETWORK / INTERNET

Il livello Network si occupa di trasferire il pacchetto di dati dalla sorgente destinazione passando attraverso una serie di nodi intermedi (routing, instradamento dei pacchetti) n Il livello Network si occupa di o conoscere la topologia della rete o scegliere di volta in volta il cammino migliore per "instradare" i pacchetti (routing) o gestire il flusso dei dati e la congestione della rete o gestire problematiche relative alla interconnessione di reti diverse n Il livello Network è particolarmente sofisticato sugli apparati router, proprio per l'implementazione di un algoritmo di routing efficiente n Gli algoritmi di routing sono spesso basati sui seguenti principi o algoritmi di cammino minimo : il pacchetto viene instradato verso la via che richiede un numero inferiore di hop (passaggi per nodi intermedi) per giungere al router di destinazione o algoritmi di flooding : il pacchetto viene inviato su tutti i cammini uscenti dal router, tranne quello attraverso cui il pacchetto è arrivato al router o algoritmi flow-based : viene calcolato il traffico sulle diverse linee uscenti dal router, tenendo conto della loro capacità trasmissiva e, in base: questi dati, si stabilisce su quale linea inviare il pacchetto lezione 10 (9 novembre) PROTOCOLLO TCP/IP E INDIRIZZI IP Il livello 3 "Network / Internet" nel protocollo TCP /IP è realizzato mediante (Internet Protocol) che si occupa di: n Traffico in uscita: o riceve re i dati dal livello 4 di Trasporto e incapsulari in pacchetti IP (max 64 KByte, tipicamente 1.500 Byte) o instradare i pacchetti sulla rete mediante il livello Data Link n Traffico in ingresso o ri-assemblare i pacchetti ricevuti dai livelli sottostanti (possono essere frammentati o spacchettare il pacchetto IP, verificarlo ed estrarre i dati del livello Trasporto o consegnare i dati al livello trasporto nell'ordine in cui questi sono arrivati (che può essere un ordine di verso da quello con cui sono stati spediti) n Un pacchetto IP è una sequenza di byte costituita da un header e da un segmento di dati n La parte header contiene: o La versione del protocollo o la lunghezza dell'header e la lunghezza totale del pacchetto o un identificativo del pacchetto per ricostruirlo a partire da frammenti più piccoli e un progressivo del frammento nel caso il pacchetto IP debba essere ricostruito assemblando più frammenti o il time to live , ossia un contatore che viene decrementato di uno ad ogni passaggio per un nodo intermedio nella rete: quando arriva a zero il pacchetto viene scartato o indirizzo del mittente e del destinatario o altre informazioni opzionali