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


Informatica per studi umanistici, Appunti di Fondamenti di informatica

Riassunto completo di slide + appunti del corso di Informatica per studi umanistici dell'anno 2025/26. Docente Luigi Asprino

Tipologia: Appunti

2025/2026

Caricato il 04/05/2026

studentesolitario222
studentesolitario222 🇮🇹

4.5

(2)

10 documenti

1 / 37

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
INFORMATICA
PER STUDI
UMANISTICI
2025/2026
DOCENTE: LUIGI ASPRINO
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 Informatica per studi umanistici e più Appunti in PDF di Fondamenti di informatica solo su Docsity!

INFORMATICA

PER STUDI

UMANISTICI

DOCENTE: LUIGI ASPRINO

Informatica per gli studi umanistici - prof. Luigi Asprino 2025/

Con il termine Informatica si indica l’insieme dei processi e delle tecnologie che rendono possibile la creazione, la raccolta, l’elaborazione, l’immagazzinamento e la trasmissione dell’informazione con metodologie e strumenti automatizzati.

Deriva dalla contrazione di due parole francesi: “information” e “automatique”.

Le tecnologie informatiche hanno tre funzioni principali:

  1. elaborazione informazioni
  2. memorizzazione informazioni (ed eventualmente combinarle con altre)
  3. organizzare le informazioni in modo da renderle più comprensibili

Hardware e Software Le tecnologie informatiche sono sistemi caratterizzati da due livelli che integrano e si completano vicendevolmente: l’hardware e il software.

Hardware indica la struttura fisica dei dispositivi costituita (solitamente) da componenti elettronici che svolgono funzioni nel trattamento e trasmissione dell’informazione.

Software indica il livello logico, cioè l’insieme delle istruzioni che consentono all’hardware di svolgere i propri compiti

HARDWARE

Computer: Macchina per l' elaborazione di dati rappresentati da caratteri alfanumerici variamente codificati , che vengono sottoposti a procedimenti aritmetici e logici ,

memorizzati in archivi e resi reperibili e trasmissibili.

Sistema :Un sistema è un insieme di parti (componenti) correlate tra loro che operano in maniera congiunta per svolgere una specifica funzione.

A seconda della scala un computer può essere considerato un sistema oppure un componente di un sistema di computer collegati tra loro (Internet).

punto di vista della temporizzazione degli eventi. Questo si ottiene grazie ad un orologio (clock) che fornisce una cadenza temporale a cui tutte le attività elementari sono sincronizzate. La frequenza del clock, cioè il numero delle attività elementari che vengono eseguite nell’unità di tempo (tale frequenza viene misurata in hertz, Hz), determina la velocità di elaborazione della CPU.

Al fine di poter essere processata dalla CPU qualsiasi informazione ricevuta manipolata o prodotta dalla CPU deve essere trasformata (più precisamente si dice “codificata”) in una sequenza di bit. Inoltre, anche le operazioni sono trasformate in una sequenza di bit per essere interpretate.

Memoria: I computer usano quindi supporti di memorizzazione di più tipi: ● una memoria centrale (RAM): contiene i programmi durante la loro esecuzione ed i dati relativi ● una o più memorie di massa (dischi etc.): che mantengono tutti i dati ed i programmi in attesa di essere eseguiti in modo persistente, anche dopo lo spegnimento del calcolatore

Tutte le informazioni vengono rappresentate mediante sequenze di 0 e di 1 (bit: Binary DigiT) I bit tra RAM e CPU fluiscono a gruppi di 8 (byte) che risulta essere la più piccola unità accessibile singolarmente.

Altri tipi di memoria: ● Memoria di sola lettura (Read-only memory - ROM): ○ Non può essere modificata. A differenza della RAM non è volatile. Contiene le informazioni di inizializzazione usate ogni volta che si accende l’elaboratore (bootstrap) ● Memoria cache ○ Livello di memoria intermedio tra i registri e la RAM. ○ Memorizza i dati usati più spesso senza doverli recuperare tutte le volte dalla RAM (che è più lenta) ○ Influisce moltissimo sulle prestazioni e sul costo della CPU (e quindi del computer) ○ E’ molto più costosa della RAM ○ Si basa sui principi di località “spaziale” o “temporale”: ■ Località spaziale: “quando si accede all’indirizzo A, è molto probabile che gli accessi successivi richiedano celle vicine ad A.” ■ Località temporale: “quando si accede all’indirizzo A, è molto probabile che gli accessi richiedano di nuovo la cella A.”

Legge di Moore: «La complessità di un microcircuito, misurata ad esempio tramite il numero di transistor per chip, raddoppia ogni 18 mesi (e quadruplica quindi ogni 3 anni).» Più transistor = maggior frequenza di funzionamento Analogamente: La capacità delle memorie DRAM quadruplica ogni tre anni (60% anno) I limiti della prima legge di Moore starebbero solo nel raggiungimento dei limiti fisici imposti per la riduzione delle dimensioni dei transistor al di sotto dei quali si genererebbero. Tali limiti sarebbero peraltro già stati raggiunti con la generazione dei processori Pentium al di sopra del quale l'unico modo possibile e praticabile per aumentare le prestazioni di calcolo è rappresentato dalla tecnologia multicore ovvero dall'accoppiamento in parallelo di più processori.

Il calcolatore elettronico è un Sistema Elettronico Digitale programmabile:

● Elettronico Digitale: ○ Sfrutta componenti elettronici digitali (porte logiche) che operano su grandezze binarie (bit) che possono assumere due soli valori (0 e 1) ● Sistema: ○ E’ composto da parti (o componenti) che interagiscono in modo organico fra loro (architettura di von Neumann) ● Programmabile: ○ Il comportamento del sistema è flessibile e specificato mediante un programma, ossia un insieme di ordini DOMANDE

  1. Tra i seguenti tipi di memoria qual è il più veloce? Cache
  2. Che cos’é l’ALU? è l’unità che fornisce la capacità di effettuare operazioni aritmetiche di base

SOFTWARE E DATI Software indica il livello logico, cioè l’insieme delle istruzioni che consentono all’hardware di svolgere i propri compiti. In generale, il mondo del software si divide in due grandi categorie: sistemi operativi (infrastruttura che offre delle funzioni di base) e programmi applicativi (che offrono funzionalità specifiche).

Pensiero computazionale Approccio per risolvere problemi , sviluppare sistemi e capire il comportamento umano che

riprende i concetti fondamentali della computazione (= calcolo)

Definisce i processi mentali che coinvolgiamo quando formuliamo un certo problema ed

esprimiamo le relative soluzioni usando un linguaggio che un computer (sia esso umano o macchina) può comprendere e, conseguentemente, eseguire

Astrazione: processo di rimozione dei dettagli trascurabili di una situazione in modo da semplificarla, per così focalizzare l’attenzione sulle sue caratteristiche principali

Usiamo queste astrazioni in modo intenzionale o inconscio nella vita quotidiana.

Dati e informazione

Un dato è un singolo fatto, è un elemento immediatamente presente alla conoscenza, ad esempio il numero “3” non ha bisogno di ulteriori spiegazioni per capirne il significato. E’

autoreferenziale, è l’elemento minimo di qualsiasi forma di conoscenza.

Vettore/Array: Collezione ordinata di elementi di lunghezza prefissata in cui:

● lo stesso elemento può occorrere una o più volte

Operazioni consentite su un array: ● Accedi/ Sostituisci l’elemento i-esimo

Esempi ● Coordinate latitudine e longitudine di un oggetto

Insieme: Collezione non-ordinata di elementi dove lo stesso elemento può occorrere una volta sola di lunghezza non prefissata****.

Operazioni consentite ● Aggiunta o rimozione di un elemento ● Verifica appartenenza di un elemento all’insieme

Esempi

● Colori primari ● Oggetti nella vostra borsa

Dizionario: Struttura dati che permette di memorizzare una collezione di elementi , in cui ogni elemento è identificato da un identificativo univoco.

Operazioni consentite ● Recupero elemento con un certo ID ● Inserisci un elemento con un certo ID ● Rimuovi un elemento con un certo ID ● Verifica l’esistenza di un elemento con un certo ID

Esempi ● Vocabolario ● Rubrica

Albero : Struttura dati in cui gli elementi sono organizzati gerarchicamente.

Nodo : elemento che contiene informazioni ● Arco : collega un nodo “padre” ad un nodo “figlio” ● Ogni nodo ha un solo padre e un albero non contiene cicli Nodi “speciali” ● Radice: Nodo senza padre ● Foglie: Nodi senza figli Operazioni consentite ● A seconda del tipo di albero sono consentite o meno le operazioni di cancellazione, aggiunta e verifica appartenenza

Esempi ● Categorie ● Organigramma aziendale

Grafo: Struttura dati in cui gli elementi sono collegati da archi.

● Nodo: elemento che contiene informazioni ● Arco: collega due nodi chiamati sorgente e destinazione

Operazioni consentite ● Inserimento di arco/nodo ● Querying

Esempi ● Rete stradale (nodi incroci, archi strade) ● Rete internet (nodi router e server, archi collegamenti)

Matrice: Una matrice è un array bi-dimensionale in cui ogni elemento di un array è a sua volta un array.

Può essere visualizzato come se fosse una tabella (righe per colonne).

Per accedere ad un elemento bisogna fornire il numero di riga e il numero di colonna.

Esempi ● Matrice parola/documento

DOMANDA:

  1. Quale politica segue una coda (queue)? FIFO fist in first out
  2. Che cos’è una lista? Una collezione ordinata di elementi a lunghezza non prefissata
  3. Quale caratteristica distingue una lista da un insieme? La lista può contenere duplicati, l’insieme no
  4. Che cos’è un grafo? Una struttura in cui i nodi sono collegati da archi
  5. Qual è la caratteristica principale di un albero? Ha una radice e non contiene cicli
  6. Come può essere descritta una matrice? Un array bidimensionale visualizzabile come tabella

ALGORITMI

Come manipoliamo le informazioni? Le strutture dati offrono dei modi per organizzare informazioni generiche utilizzando dei costrutti standard. In altre parole, servono per memorizzare informazioni in modo statico. Per manipolare le informazioni al fine di produrne di nuove dobbiamo eseguire delle sequenze di operazioni. Queste sequenze di operazioni le chiamiamo algoritmi e sono qualcosa di cui tutti abbiamo esperienza quotidiana.. Possono essere ricette step by step, istruzioni per l’assemblaggio di un oggetto…

Un algoritmo è: un’astrazione di una procedura passo passo che prende qualcosa come input e produce un certo output , scritta in un linguaggio specifico in modo che le istruzioni che definisce possano essere comunicate e comprese da un computer in modo da ottenere qualcosa come conseguenza dell’ elaborazione di qualche materiale di input.

I linguaggi naturali non sono formali per definizione

Tuttavia molti studi in linguistica cercano di fornirne una formalizzazione mediante l’uso di strumenti matematici Chomsky è uno dei padri della linguistica moderna – le cui ipotesi di ricerca principali sul linguaggio umano sono:

  1. la sua struttura sintattica di base è rappresentabile mediante una teoria matematica
  2. tale struttura è determinata biologicamente in tutti gli umani

Linguaggi grammaticali e formali: Un linguaggio formale possiamo pensarlo come un insieme di frasi. Una grammatica formale permette descrive come generare un linguaggio ed è definita da 4 elementi: ● un insieme di regole di produzione, ● simboli terminali ● simboli non-terminali ● simbolo iniziale

Grammatica formale: Un insieme di regole di produzione di forma premessa ::= espressione, dove la premessa e l’espressione possono contenere uno o più: ● simboli terminali (specificati tra virgolette), che identificano tutti i simboli elementari del linguaggio in considerazione (come nomi, verbi, etc.) ● simboli non terminali (specificati tra parentesi angolari), che identificano tutti i simboli di una grammatica formale che possono essere sostituiti da una combinazione di simboli terminali e non terminali Esempio: ::= "Io" ::= "scrivo" | "leggo"

Il simbolo non terminale è il simbolo iniziale.

Frasi che possiamo produrre da questa grammatica:

_- Io scrivo

  • Io leggo_

Linguaggi di programmazione: Un linguaggio di programmazione è un linguaggio formale che obbliga l’uso di specifiche regole sintattiche sviluppate in modo tale da evitare possibili istruzioni ambigue. Solitamente l’ espressività del linguaggio è ridotta ma tutte le “frasi” componibili trasmettono un solo possibile significato. I linguaggi di programmazione sono solitamente basati su grammatiche libere dal contesto e possono distinguersi per un basso o elevato livello di astrazione dal linguaggio propriamente in uso da un elaboratore elettronico per eseguire le operazioni.

Linguaggio macchina: Un insieme di istruzioni che possono essere eseguite direttamente dalla CPU ( central processing unit , o processore) di un computer elettronico Basato sul codice binario – una sequenza di 0 e 1 – rivisitato da Leibniz alla fine del diciassettesimo secolo.

A basso livello: Forniscono un livello di astrazione sopra il linguaggio macchina Permettono di scrivere programmi in modo che siano un pochino più intellegibili dagli umani Il più famoso linguaggio di questo tipo è l’Assembly – anche se introduce simboli più comprensibili, di solito una linea di codice in Assembly rappresenta una specifica istruzione

in linguaggio macchina.

Ad alto livello: Caratterizzati da un forte livello di astrazione dal linguaggio macchina – esempio: Python Possono usare parole proprie del linguaggio naturale per definire costrutti specifici, così da essere di più facile comprensione per un umano.

Più astrazione da un linguaggio di programmazione a basso livello è fornita, più comprensibile è il linguaggio.

Linguaggi visuali: In modo da facilitare l’avvicinamento all’uso dei linguaggi di programmazione tradizionali, negli ultimi anni sono stati sviluppati diversi linguaggi di programmazione visuali che permettono lo sviluppo di piccoli programmi per risolvere problemi computazionali specifici. Alcuni sono proposti sotto forma di gioco, e permettono l’introduzione dei costrutti principali propri dei linguaggi di programmazione mediante l’utilizzo di oggetti grafici.

Esempio: Nel 2017, Google ha messo a disposizione un doodle in cui si deve istruire un coniglio in modo che riesca a mangiare tutte le carote posizionate su un determinato percorso

Le azioni che si possono far compiere al coniglio riguardano attività di movimento, ad esempio “vai avanti” o “gira a destra”, e devono essere disposte in una specifica sequenza

Problema computazionale: mangiare tutte le carote presenti sul percorso.

Per recuperare una certa informazione a partire dagli indici a disposizione, una persona deve seguire determinate regole in modo da identificare la posizione in cui tale informazione si trova.

Meccanismo per associazioni: Il meccanismo di indicizzazione non è il modo in cui la mente umana solitamente opera. Partendo da una specifica informazione, la mente si sposta istantaneamente alla successiva mediante un processo associativo : un’informazione ne richiama un’altra, conformemente a una complicata rete di pensieri veicolata dalle cellule del nostro cervello. Questa selezione poteva essere meccanizzata e conseguentemente esplicitata in una macchina.

DOMANDA:

  1. Qual era uno dei principali limiti nell’organizzazione delle informazioni prima dell’avvento degli ipertesti? L'organizzazione sequenziale e l’indicizzazione artificiale dei contenuti
  2. In cosa consisteva l’idea di un ipertesto secondo la definizione originaria? Un corpo di materiale scritto interconnesso in modo complesso non adatto alla carta

L’avvento del web: Tim Berners-Lee, un giovane scienziato del CERN di Ginevra, propone (1989) un progetto chiamato World Wide Web. Inizialmente respinto da parte dei suoi superiori con il famoso commento “vago, ma eccitante”. Venne accettato come progetto collaterale per testare le potenzialità di un nuovo computer (il NeXT) che era stato appena comprato dal CERN.

Un ipertesto che potesse descrivere una varietà di risorse eterogenee (documenti, persone, concetti astratti, …) collegabili tra loro mediante l’uso di collegamenti ipertestuali etichettati , in modo da poter specificare la semantica del collegamento come parte esplicita del link. I collegamenti ipertestuali del Web dovevano essere percorribili in un’ unica direzione.

Primo prototipo: Un’ulteriore semplificazione: soltanto una tipologia di risorse (la pagina Web) e una sola tipologia di collegamento ipertestuale , ovvero il semplice riferimento (il documento A fa riferimento al documento B). Sviluppò una serie di tecnologie che permettessero agli utenti: ● la creazione di documenti ipertestuali ● di mettere a disposizione i suddetti documenti ipertestuali sul Web ● di identificarli mediante l’utilizzo di un opportuno identificativo ● di richiederli mediante l’utilizzo di uno specifico protocollo di comunicazione ● di visualizzarli su un computer

Identificare le risorse del Web: Il computer non mostra tutto quello che conosce sui link ipertestuali presenti in quella pagina

Dentro quel frammento di testo sottolineato e solitamente colorato in blu (o in viola, nel caso sia stato già visitato) che può essere cliccato, c’è nascosto un oggetto invisibile che inizia per “http://” (o, a volte, “https://”)

Quell’oggetto è un Uniform Resource Locator , o URL , rappresenta una sorta di nome (o più propriamente, un indirizzo ) della pagina web a cui il link punta e permette di accedere cliccandoci sopra, ad esempio:

http://it.wikipedia.org/wiki/Barack_Obama

Struttura di un URL: La forma di un qualunque URL presente nel Web è conforme con la seguente struttura (ove gli elementi tra parentesi quadre sono opzionali):

://[:][/][?][#]

Metafora: arrivare in una specifica posizione all’interno di una casa per prendere oggetto specifico ● schema: mezzo di trasporto usato per raggiungere la casa ● host: indirizzo della casa da raggiungere ● porta: ingresso da utilizzare per entrare nella casa ● percorso: sequenza dei locali da percorrere per arrivare in quello di interesse ● interrogazione: chiedere alla casa di eseguire azioni in quel locale ● frammento: oggetto specifico dentro il locale raggiunto

Ogni qual volta che, da un proprio dispositivo (un computer, uno smartphone, etc.), si clicca su un link, il dispositivo stesso recupera una copia della risorsa a cui l’URL si riferisce, per poi visualizzarla a video.

Browser: Un’applicazione software che permette di accedere e ottenere le informazioni presenti nel Web, così da poterlo “navigare” – esempi: Internet Explorer, Firefox, Microsoft Edge, Safari, Google Chrome. Il primo browser sviluppato da Tim Berners-Lee si chiamava WorldWideWeb.

Come funziona un Browser: Il browser permette di specificare un URL della risorsa a cui siamo interessati in un apposito campo della sua interfaccia, solitamente in alto. A seconda del tipo di risorsa, permette di visualizzarla all’interno della finestra browser (ad esempio nel caso di una pagina web) o di salvarla in uno specifico documento nel proprio computer (ad esempio nel caso di un documento PDF). Nel primo caso, la pagina web visualizzata è un documento ipertestuale a tutti gli effetti: può contenere dei link che, se cliccati, indicano al browser di richiedere e scaricare la risorsa identificata dall’URL del link stesso così da visualizzarla. La navigazione nel Web è solo metaforica , siccome non ci si sposta fisicamente da una pagina web ad un’altra come se prendessimo un autobus.

sulla risorsa definita dall’URL specificato – per esempio come conseguenza di un click su un collegamento ipertestuale

  • PUT permette di creare sul server web contattato la risorsa specificata dall’URL utilizzato nella richiesta, e di associarvi informazioni incluse nella richiesta
  • DELETE permette di rimuovere dal server web contattato tutte le informazioni relative alla risorsa specificata nella richiesta tramite l’URL
  • POST permette di specificare informazioni aggiuntive , incluse nella richiesta, ad una risorsa esistente che già risiede sul server

Classificazione metodi HTTP: Safe: viene usato solo per recuperare delle informazioni dal server web, senza cambiarne lo stato , ad esempio aggiungendo nuovi dati (ad esempio GET). Idempotente : molteplici richieste effettuate allo stesso URL hanno lo stesso effetto , sul server web, che effettuare una sola richiesta (ad esempio GET e PUT). GET è preponderante nel Web, visto che viene usato per richiedere una qualsiasi risorsa, gli altri metodi non sempre sono liberamente utilizzabili da tutti i client – sta sempre al server decidere quali di questi metodi possano essere usati nella comunicazione.

DOMANDA:

  1. Quale metodo HTTP viene usato per richiedere informazioni su una risorsa? GET 12
  2. Che cosa si intende per “client” in una architettura client-server? è l’agente che fa la richiesta, ad esempio un browser nel protocollo HTTP
  3. Che cosa permette di fare il metodo HTTP DELETE? Permette di rimuovere dal server web contatto tutte le informazioni relative alla risorsa specificata nella richiesta tramite l’URL

Messaggio HTTP:

Messaggi di risposta: Tutte le risposte, oltre che a contenere metadati nell’header e, talvolta, dati nel payload, specificano anche un codice di stato (sempre nell’header) Un codice di stato è un numero di tre cifre , la cui prima (da 1 a 5) definisce la classe di risposta:

  1. Risposta informativa (molto raro, di solito non usato)
  2. Successo (es. 200 OK)
  3. Redirezione (es. 303 See other)
  4. Errore del client (es. 403 Forbidden, 404 Not Found)
  5. Errore del server (es. 503 Service Unavailable

Server Web: È un computer “speciale” che esegue un software specifico che permette di ricevere, gestire, e soddisfare richieste HTTP provenienti da un client, ad esempio un browser

Il nome del server web è incluso nell’URL che identifica la risorsa di cui si vuole ottenere informazioni, nella parte host, come introdotto nella lezione precedente precedente (ad esempio it.wikipedia.org) La richiesta HTTP da mandare al server è molto più strutturata rispetto a quello che abbiamo visto la scorsa volta con il semplice URL.

Informazioni principali di una richiesta: Quando un client (ad esempio, un browser) richiede informazioni su una specifica risorsa (ad esempio una pagina web) utilizzando l’URL relativo, ad esempio:

Cosa succede lato server: Una volta che il server web riceve una richiesta fatta come indicato in precedenza, cerca localmente informazioni del documento indicate nel percorso della richiesta. Se trova la risorsa, ne fa una copia che viene impacchettata nel payload in un nuovo messaggio HTTP di risposta e la invia al mittente originale, specificando “200 OK” come stato. Se non trova la risorsa, associa il codice di errore relativo nello stato e, opzionalmente, potrebbe anche specificare nel payload un qualche messaggio per specificare meglio l’errore o, in generale, la situazione occorsa.

DOMANDA:

  1. Quale codice di stato HTTP indica un successo della richiesta? 200
  2. Che cos’è un server web? Un computer che esegue un software per gestire richieste HTTP
  3. Che cosa contiene l’header di un pacchetto HTTP? I metadati relativi alla comunicazione, come il nome di client usato per effettuare la richiesta, il nome del server web che dovrebbe avere a disposizione la risorsa, etc.

Distinzione importante: Web ≠ Internet Il Web è uno dei più famosi servizi di Internet, perché si basa interamente sulle tecnologie messe a disposizione da Internet. Internet in realtà è una contrazione di interconnected network (rete interconnessa), ovvero una rete composta da tante altre reti più piccole di dispositivi in qualche modo interconnessi

destinatario – sì, anche il mittente ha un indirizzo IP assegnato, e anche tutti i nodi di Internet ne hanno uno. Un indirizzo IP può essere statico (non cambia) o dinamico (cambia ogni volta che ci si connette a Internet).

Comunicazione senza connessione: I pacchetti IP di un certo messaggio vengono instradati in modo completamente indipendente tra loro, visto che ogni pacchetto contiene esplicitamente l’indirizzo del computer a cui deve essere recapitato. Nello stato di rete , il mittente e il destinatario non devono mettersi d’accordo prima di inviare i dati, ma semplicemente agiscono senza conoscere l’eventuale stato (attivo, non disponibile, etc.) dell’altro. I pacchetti possano perdersi , non arrivare nell’ordine in cui sono stati mandati, arrivare duplicati , e quant’altro – e il protocollo IP non è responsabile della risoluzione di queste problematiche, demandando tutta questa gestione allo strato di trasporto (protocollo TCP).

  1. Come si fa a recuperare l’indirizzo IP del server web a cui mandare il messaggio di richiesta preparato dal browser, ovvero i relativi pacchetti IP, se si ha solo a disposizione il nome del server web (ad esempio, it.wikipedia.org)?
  2. Abbiamo visto che i pacchetti IP vengono instradati attraverso i vari nodi di Internet prima di arrivare al destinatario, ma cosa sono davvero questi nodi?

Domain Name System (DNS): È una sorta di elenco del telefono di Internet. Partendo dal nome di un server web (es: it.wikipedia.org) permette di ottenere il relativo indirizzo IP (es: 208.80.154.224). In Internet ci sono diversi computer speciali chiamati server DNS il cui ruolo è quello di restituire il corretto indirizzo IP per un certo nome a seguito di una richiesta fatta dal DNS Resolver , che conosce l’IP del server DNS più vicino perché preconfigurato o ottenuto dinamicamente nel momento in cui il computer mittente si è connesso a Internet. Il server DNS può chiedere aiuto ad altri server DNS se non conosce direttamente l’IP dell’host richiesto dal Resolver.

I nodi di internet: Ogni nodo di Internet è uno specifico computer che può avere uno o più ruoli. I nostri computer personali, i server web, i server DNS, sono tutti computer parte della rete e identificati da uno specifico indirizzo IP. C’è almeno un altro computer speciale, fondamentale per il corretto funzionamento della rete: il router.

Router: Dispositivo di rete dedicato a svolgere un compito molto peculiare e preciso: l’ instradamento dei pacchetti IP dal mittente fino al destinatario Esistono diversi tipi di router usati in rete dipendentemente dal ruolo che svolgono:

  • il router che abbiamo a casa, che permette al nostro computer di connettersi a Internet mettendoci in contatto con il nostro Internet Service Provider (ISP), ovvero l’operatore che ci permette di usufruire dei vari servizi di Internet
  • router di collegamento tra sottoreti diverse ma sempre facenti parte di Internet

Cosa fanno: I router agiscono principalmente sullo strato di rete , svolgendo il ruolo di vigile urbano di Internet: veicolano il traffico dei pacchetti IP verso il percorso più appropriato dal mittente al destinatario Quando un router riceve un pacchetto IP, controlla qual è il prossimo nodo a cui il pacchetto deve essere trasmesso in modo da avvicinarlo al destinatario e, una volta identificato l’indirizzo IP del prossimo nodo, questa informazione viene incapsulata in un nuovo pacchetto dello strato di accesso alla rete, così che venga recapitato al nodo identificato.

Un router non entra mai nel merito del payload del pacchetto IP e non ne tiene traccia.

DOMANDA:

  1. Cosa definisce il protocollo IP? Le regole per l’instradamento dei pacchetti in rete
  2. Cosa significa che la comunicazione IP è “senza connessione”? I pacchetti vengono instradati indipendentemente tra loro
  3. A cosa serve il Domain Name System DNS? A convertire nomi di dominio in indirizzi IP

Dimensione massima dei pacchetti: La scorsa lezione abbiamo accennato al fatto che un particolare messaggio debba essere spezzato in uno o più pacchetti IP prima che questi vengano instradati in rete

Due diversi fattori:

  1. il limite dato dalla massima quantità di dati che ogni pacchetto IP può trasportare (che dipende dalla versione considerata del protocollo, IPv4 o IPv6)
  2. il limite imposto dalla rete a cui si instradano i pacchetti, ovvero il suo Maximum Transmission Unit (MTU)

Come sono espressi questi limiti:

  • Bit (contrattura di binary digit ): l'unità minima di informazione che si può scambiare in una comunicazione e può assumere solo uno di due valori: 0 o 1
  • Byte : unità minima di informazione occupabile su un computer, che storicamente corrisponde al numero di bit necessari per codificare un carattere sul computer 1 byte = 8 bit Il concetto di bit è stato usato da diversi studiosi del passato (ad esempio Babbage con le schede perforate), ma introdotto come termine formalmente da Claude Shannon (1948)

Teoria dell’informazione: Nell’articolo che introduce il bit, Shannon in realtà mette le basi di uno specifico campo di ricerca e studio chiamato teoria dell’informazione. La teoria dell’informazione si occupa di studiare come quantificare, memorizzare, e scambiare informazione, che ha tuttora svariate applicazioni pratiche, oltre che aver caratterizzato e veicolato l’invenzione di diverse tecnologie del passato, incluso lo sviluppo di Internet. Esempio: evincere la capacità massima di un canale per trasmettere informazione in modo affidabile è stato uno degli studi più importanti della teoria dell’informazione (a cui l’MTU è strettamente connesso).

Da bit a simboli e viceversa: Ogni carattere, numero, programma, applicazione all'interno di un computer, così come un qualunque messaggio da scambiare in Internet, è codificato come una sequenza di bit che, in qualche modo, vengono poi decodificati con la sequenza di caratteri corretta dalla particolare applicazione che riceve ed interpreta quell'informazione. Per esempio, nella codifica binaria tradizionale dei numeri interi, il numero 0 è rappresentato dalla sequenza "0", il numero 1 da "1", il numero 2 da "10", il numero 3 da "11", il numero 4 da "100", e così via.