le reti di calcolatori · meccanici o elettronici) selezionano specifiche linee ... le reti di...

45
Le reti di calcolatori Le reti di calcolatori Moreno Marzolla Dipartimento di Informatica—Scienza e Ingegneria (DISI) Università di Bologna http://www.moreno.marzolla.name/

Upload: vankien

Post on 15-Feb-2019

220 views

Category:

Documents


0 download

TRANSCRIPT

Le reti di calcolatoriLe reti di calcolatori

Moreno MarzollaDipartimento di Informatica—Scienza e Ingegneria (DISI)

Università di Bolognahttp://www.moreno.marzolla.name/

Le reti di calcolatori 2

Copyright © 2011, 2016–2018 Moreno Marzollahttp://www.moreno.marzolla.name/teaching/FINFA/

This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 international (CC BY-SA 4.0) License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/ or send a letter to Creative Commons, 543 Howard Street, 5th Floor, San Francisco, California, 94105, USA.

Le reti di calcolatori 3

Ringraziamenti

● Prof. Gabriele D'Angelo, Università di Bologna– https://www.unibo.it/sitoweb/g.dangelo/

Le reti di calcolatori 4

Rete di calcolatori

● Una rete di calcolatori è un insieme di nodi collegati mediante mezzi di trasmissione dati che consentono lo scambio di informazioni

Le reti di calcolatori 5

Reti a commutazione di circuito

● Le prime reti di comunicazione sono state le reti telefoniche

● Una chiamata telefonica stabilisce una connessione diretta tra chiamante e ricevente

● I sistemi telefonici (commutatori meccanici o elettronici) selezionano specifiche linee telefoniche, o circuiti, connessi in modo da creare un unico collegamento tra chiamante e ricevente

● Una volta che la linea è stata creata, i dati (voce) vengono trasmessi

"JT Switchboard 770x540" by Joseph A. Carr - http://www.JoeTourist.net/. Licensed under Attribution via Commons - https://commons.wikimedia.org/wiki/File:JT_Switchboard_770x540.jpg#/media/File:JT_Switchboard_770x540.jpg

Le reti di calcolatori 6

Reti a commutazione di circuito

Commutatore

Chiamante

Ricevente

Le reti di calcolatori 7

Problemi

● La commutazione di circuito funziona bene per chiamate telefoniche

● Non funziona altrettanto bene per i dati– Stabilire una connessione punto-punto per ogni coppia

trasmittente-ricevente su reti di grandi dimensioni è complesso e poco efficiente

– Le linee dei commutatori rimangono impegnate durante l'intera durata della trasmissione

● Internet utilizza un meccanismo diverso, detto a commutazione di pacchetto

Le reti di calcolatori 8

Commutazione di pacchetto

● I messaggi vengono suddivisi in pacchetti di dimensione fissata

● Ogni pacchetto viene instradato verso il destinatario, attraverso nodi intermedi– Ogni nodo intermedio riceve un pacchetto e lo ritrasmette al

nodo successivo (store-and-forward)– Ciascun pacchetto può prendere strade diverse dagli altri

● Il destinatario riceve i pacchetti e li riassembla

Le reti di calcolatori 9

Commutazione di pacchetto

Mittente

Destinatario

Nodo di instradamento (router)Messaggio

Le reti di calcolatori 10

Commutazione di pacchetto

Mittente

Destinatario

Nodo di instradamento (router)Mes sa gg io

Le reti di calcolatori 11

Commutazione di pacchetto

Mittente

Destinatario

Nodo di instradamento (router)

Mes

sa

gg

io

Le reti di calcolatori 12

Commutazione di pacchetto

Mittente

Destinatario

Nodo di instradamento (router)Mes sa gg io

Le reti di calcolatori 13

Commutazione di pacchetto

Mittente

Destinatario

Nodo di instradamento (router)Messaggio

Le reti di calcolatori 14

Vantaggi della commutazione di pacchetto

● Messaggi di grandi dimensioni vengono suddivisi in pacchetti più corti facilmente gestibili

● I pacchetti possono viaggiare su percorsi differenti, bilanciando il traffico sulla rete

● La ritrasmissione di un singolo pacchetto perso o danneggiato è preferibile alla ritrasmissione dell'intero messaggio

Le reti di calcolatori 15

Problemi da risolvere

● Come faccio a identificare ogni nodo della rete?● Come faccio a consentire a programmi diversi in

esecuzione su nodi diversi di interagire tra loro?● Cosa succede se qualche pacchetto viene perso?● Cosa succede se qualche pacchetto viene duplicato?● Cosa succede se i pacchetti arrivano al destinatario in

ordine diverso dall'ordine di spedizione?● ...

Le reti di calcolatori 16

Stack di protocolli

A. S. Tanenbaum, Computer Networks, http://authors.phptr.com/tanenbaumcn4/

Le reti di calcolatori 17

Architettura TCP/IP

Protocolli a livelloapplicazione

TCP UDP

IP

Scheda di rete erelativo driver

Le reti di calcolatori 18

Livello Hardware

● Gestisce la comunicazione tra due macchine collegate direttamente mediante un opportuno canale– Impulsi elettrici su filo di

rame, impulsi luminosi su fi-bra ottica, onde radio...

● Problemi affrontati– Come rappresento sequen-

ze di bit con il segnale ana-logico?

– Come gestisco errori dovuti a interferenze o collisioni?

Protocolli a livelloapplicazione

TCP UDP

IP

Scheda di rete erelativo driver

Le reti di calcolatori 19

Livello Internet

Protocolli a livelloapplicazione

TCP UDP

IP

Scheda di rete erelativo driver

● Comunicazione orientata a pacchetti tra due nodi non necessariamente collegati direttamente

● Problemi affrontati:– Instradamento (routing)– Identificazione univoca

dei nodi della rete

Le reti di calcolatori 20

Livello Trasporto

● Comunicazione affidabile ed efficiente basata su un flusso di byte tra pro-cessi (programmi in ese-cuzione)

● Problemi affrontati– Gestione pacchetti persi /

duplicati / riordinati duran-te il tragitto

– Identificazione di processi in esecuzione sullo stesso nodo

Protocolli a livelloapplicazione

TCP UDP

IP

Scheda di rete erelativo driver

Le reti di calcolatori 21

Livello Applicazione

Protocolli a livelloapplicazione

TCP UDP

IP

Scheda di rete erelativo driver

● Protocolli di comunica-zione utilizzati dalle ap-plicazioni– SMTP/POP/IMAP (Posta

Elettronica)– HTTP (Web)– Bittorrent– ...

Le reti di calcolatori 22

IP

● Il protocollo IP definisce le regole di base per la comunicazione tra due nodi (host) connessi alla rete– Comunicazione orientata a pacchetti– Comunicazione non affidabile: i pacchetti (datagram)

possono essere persi, duplicati, ecc.● La comunicazione è tra due host (esempio, due PC).

IP (da solo) non distingue tra applicazioni diverse in esecuzione sullo stesso host

● IP definisce le regole– per l'instradamento dei pacchetti nella rete– per l'uso di indirizzi univoci assegnati a ciascun nodo della

rete

Le reti di calcolatori 23

Internet

IP

6

7

4

2

1 8

Pacchetto persoPacchettoduplicato

Pacchettofuori ordine

33

Mittente Destinatario

Le reti di calcolatori 24

TCP

● Il protocollo TCP si basa su IP, e definisce meccanismi per realizzare una comunicazione affidabile ed efficiente tra due processi in esecuzione su due host– Affidabile: pacchetti persi o danneggiati vengono ritrasmessi– Efficiente: ridurre la congestione nei nodi intermedi

● TCP fornisce l'illusione di un canale di comunicazione (un “tubo”) che collega due processi– I dati arrivano nello stesso ordine con cui sono spediti– Vengono corretti eventuali problemi legati a pacchetti IP

persi o duplicati

Le reti di calcolatori 25

Internet

TCPP1

P2

P3P6

P7

P4

P5

P8

HostProcesso

Le reti di calcolatori 26

Gli indirizzi IPv4

● Ogni nodo collegato alla rete si chiama host– PC, smartphone, smart TV, router, ...

● Gli indirizzi IPv4 sono composti da 4 blocchi; ogni blocco è un numero intero compreso tra 0 e 255– Es. 130.136.1.104– Quindi un indirizzo IPv4 può essere codificato con 32 bit,

suddivisi in 4 numeri di 8 bit● Ciascun host collegato a Internet deve avere un

indirizzo IP● Domanda: quanti indirizzi IPv4 distinti possono

esistere?

Le reti di calcolatori 27

Risposta

● Al massimo

256 256 256 256 = 232 = 4 294 967 296

● In realtà sono di meno, perché certi intervalli di indirizzi sono riservati– Esempio: 10.x.x.x denota un indirizzo IPv4 privato, che non

può identificare un host raggiungibile dalla rete Internet “pubblica”

Le reti di calcolatori 28

Quale è il mio indirizzo IP?

● Usando Windows XP,File → Programs → Accessories → Command Prompt

● All'interno della finestra che si apre, digitare ipconfig e premere “Invio”

Le reti di calcolatori 29

Gli indirizzi IPv6

● Gli indirizzi IPv4 stanno per finire...● Per tale ragione è stato sviluppato un nuovo protocollo

(IPv6) con un nuovo schema di numerazione– Indirizzi di 16 byte = 128 bit– Ci sono in tutto circa 31038 possibili indirizzi IPv6

– Vuol dire 71023 indirizzi IPv6 per metro quadro di superficie terrestre, oceani inclusi!

Le reti di calcolatori 30

I nomi di dominio

● Lavorare con i numeri può andare bene per i calcolatori, meno per gli utenti umani

● Per questa ragione, al posto dei numeri si usano i nomi di dominio– Es.: www.cs.unibo.it corrisponde a 130.136.1.16

● Un nome di dominio è costituito da sequenze di caratteri separati da punti

● I nomi vengono tradotti in numeri da server chiamati Domain Name Server (DNS)

Le reti di calcolatori 31

Tradurre nomi di dominio in indirizzi IP

● Si può usare il comando nslookup nome_host– Esempio: A quale indirizzo IP corrisponde www.unibo.it ?

Le reti di calcolatori 41

Banda e Latenza

● Banda– Quantità di dati che possono essere trasferiti attraverso un

canale di comunicazione in una unità di tempo– Si misura in B/s (KB/s, MB/s, GB/s...)

● Latenza– Tempo che passa dall'invio di un dato alla sua ricezione– Si misura in secondi (millisecondi, …)

● Esempio

Latenza 2s

Banda512B/s

Le reti di calcolatori 42

Esempio

● Spediamo una microSD da 1GB (= 230 Byte = circa 1.000.000.000 di Byte) tramite piccione viaggiatore

● Un piccione viaggiatore, con buone condizioni meteo, riesce a viaggiare alla velocità di 70km/h

● Calcolare la latenza e la banda di un piccione viaggiatore che consegna 1GB a 140km di distanza

Le reti di calcolatori 43

http://www.reuters.com/article/2009/09/09/us-safrica-pigeon-idUSTRE5885PM20090909

Le reti di calcolatori 45

Domanda

● È dato un canale con banda 1 MB/s (=1024 1024 B/s) e latenza 20 ms (=20 10-3s)

● Vogliamo trasferire 100 KB (=100 1024 B)

● Quanto tempo passa dall'inizio della trasmissione alla completa ricezione da parte del destinatario (x)?

x

a

b

Mittente Destinatario

Tempo

Le reti di calcolatori 46

Il protocollo HTTP

● Hyper Text Transfer Protocol (HTTP)– Nella pila di protocolli TCP/IP si colloca a livello applicazione

● Principalmente utilizzato dai browser per collegarsi ai server Web e richiedere risorse– Pagine HTML, immagini, video, file binari, …

● Caratteristiche:– Protocollo client-server

● In HTTP esistono due ruoli: il client (di solito, il vostro browser) attiva la connessione e invia le richieste. Il server accetta la connessione e risponde alla richiesta

– Protocollo generico● E' un protocollo di trasporto: puo' essere usato per richiedere pagine

HTML, file binari, immagini...

Le reti di calcolatori 47

GET /index.html

index.html

GET /logo.png

logo.pngGET /banner.png

banner.pngGET /photo.jpg

photo.jpg

Client(browser)

Server Webwww.unibo.it

Apertura di una connessione TCP verso il processo server in esecuzione su www.unibo.it

Chiusura della connessione TCP

Le reti di calcolatori 51

Posta Elettronica(EMail)

● Consente di trasferire messaggi da un host ad un altro– I messaggi possono includere testo, ma anche allegati di

qualsiasi tipo (suoni, immagini, filmati...)

Le reti di calcolatori 53

La catena dell'invio / ricezione della posta elettronica

[email protected]

[email protected]

ProtocolloSMTP

321

ProtocolloSMTP

ProtocolloPOP

oppureIMAP

Server di posta del dominio abc.com

Server di posta del dominio xyz.com

Le reti di calcolatori 54

Simple Mail Transport Protocol (SMTP)

● Protocollo utilizzato dal mittente per comunicare col proprio server di posta in uscita, quando vuole spedire un nuovo messaggio

Le reti di calcolatori 55

SMTPHELO abc.com250 multivac.localdomain Hello localhost.localdomain [127.0.0.1], pleased to meet youMAIL FROM: <[email protected]>250 2.1.0 <[email protected]>... Sender okRCPT TO: <[email protected]>250 2.1.5 <[email protected]>... Recipient ok (will queue)DATA354 Enter mail, end with "." on a line by itselfFrom: <[email protected]>To: <[email protected]>Subject: Questa e' una prova

Questo e' il testo del messaggio.Non c'e' molto da dire, in verita'...A presto..250 2.0.0 i0UHCm501849 Message accepted for deliveryQUIT221 2.0.0 multivac.localdomain closing connection

Le reti di calcolatori 56

Post Office Protocol (POP)

● È uno dei protocolli che il destinatario può utilizzare per recuperare i messaggi– I messaggi vengono trasferiti dal server di posta del

destinatario al PC del destinatario usando il protocollo POP– Una volta sul PC del destinatario, i messaggi possono

essere letti da un apposito programma (Thunderbird, Outlook, OSX Mail.app...)

● Tramite POP è possibile chiedere al server di posta di:– Recuperare la posta e in seguito cancellarla dal server– Recuperare la posta senza cancellarla– Vedere se ci sono nuovi messaggi

Le reti di calcolatori 57

Internet Message Access Protocol (IMAP)

● È il protocollo che ha rimpiazzato POP per la lettura dei messaggi– Con IMAP è possibile chiedere al server di scaricare solo

alcuni messaggi, anziché tutti– È possibile scaricare solo l'intestazione e il mittente di un

messaggio (evito così di trasferire il corpo di messaggi che non mi interessano)

– IMAP consente di creare cartelle sul server di posta per tenere ordinati i messaggi

Le reti di calcolatori 58

Alcune tristi verità sulla posta elettronica

● A meno di non prendere opportune precauzioni (crittografia, firma digitale)– non possiamo essere sicuri dell'identità del mittente– non possiamo essere sicuri che i messaggi vengano letti

solo dal destinatario– non possiamo essere sicuri che i messaggi non siano stati

alterati durante il tragitto mittente → destinatario● Quindi:

– Trattate ogni mail con sospetto– MAI fornire dati sensibili via mail (esempio, password,

numeri di carta di credito, codice fiscale...)

Le reti di calcolatori 59

Idee chiave

● Reti a commutazione di circuito vs reti a commutazione di pacchetto

● Stack di protocolli● Indirizzi IP● HTTP, SMTP, POP, IMAP● Banda e latenza