Le reti di calcolatori - Moreno Marzolla Dipartimento di Informatica-Scienza e Ingegneria (DISI) Università di Bologna ...

Pagina creata da Manuel Poli
 
CONTINUA A LEGGERE
Le reti di calcolatori - Moreno Marzolla Dipartimento di Informatica-Scienza e Ingegneria (DISI) Università di Bologna ...
Le reti di calcolatori

                                       Moreno Marzolla
      Dipartimento di Informatica—Scienza e Ingegneria (DISI)
                                        Università di Bologna
                            http://www.moreno.marzolla.name/
Le reti di calcolatori - Moreno Marzolla Dipartimento di Informatica-Scienza e Ingegneria (DISI) Università di Bologna ...
Copyright © 2011, 2016–2018 Moreno Marzolla
http://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                              2
Le reti di calcolatori - Moreno Marzolla Dipartimento di Informatica-Scienza e Ingegneria (DISI) Università di Bologna ...
Ringraziamenti
●   Prof. Gabriele D'Angelo, Università di Bologna
    –   https://www.unibo.it/sitoweb/g.dangelo/

                             Le reti di calcolatori   3
Le reti di calcolatori - Moreno Marzolla Dipartimento di Informatica-Scienza e Ingegneria (DISI) Università di Bologna ...
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          4
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
                                             "JT Switchboard 770x540" by Joseph A. Carr -
●   Una volta che la linea è stata           http://www.JoeTourist.net/. Licensed under Attribution via
                                             Commons -
    creata, i dati (voce) vengono            https://commons.wikimedia.org/wiki/File:JT_Switchboard
    trasmessi                                _770x540.jpg#/media/File:JT_Switchboard_770x540.jpg

                                   Le reti di calcolatori                                         5
Reti a commutazione di circuito
             Commutatore

Chiamante

                                        Ricevente

               Le reti di calcolatori           6
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              7
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                    8
Commutazione di pacchetto

Mittente

                                                Destinatario

Messaggio
               Nodo di instradamento (router)

                   Le reti di calcolatori                  9
Commutazione di pacchetto

 Mittente

                                                       Destinatario

Mes    sa   gg   io
                      Nodo di instradamento (router)

                          Le reti di calcolatori                 10
Commutazione di pacchetto
                                      sa
           io
Mittente

                                                  Destinatario

                                       Mes
                gg

                 Nodo di instradamento (router)

                     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)
                                                Messaggio

                   Le reti di calcolatori                   13
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            14
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           15
Stack di protocolli

                                  Le reti di calcolatori                     16

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

    Protocolli a livello
      applicazione

    TCP                        UDP

                  IP

     Scheda di rete e
      relativo driver

          Le reti di calcolatori     17
Livello Hardware
                                ●    Gestisce la comunicazione
Protocolli a livello                 tra due macchine collegate
  applicazione                       direttamente mediante un
                                     opportuno canale
TCP             UDP
                                       –   Impulsi elettrici su filo di
        IP                                 rame, impulsi luminosi su fi-
                                           bra ottica, onde radio...
 Scheda di rete e
                                ●    Problemi affrontati
  relativo driver                      –   Come rappresento sequen-
                                           ze di bit con il segnale ana-
                                           logico?
                                       –   Come gestisco errori dovuti
                                           a interferenze o collisioni?
                       Le reti di calcolatori                          18
Livello Internet
                                     ●    Comunicazione orientata
Protocolli a livello                      a pacchetti tra due nodi
  applicazione
                                          non necessariamente
TCP             UDP                       collegati direttamente
                                     ●    Problemi affrontati:
        IP                                  –   Instradamento (routing)
                                            –   Identificazione univoca
 Scheda di rete e                               dei nodi della rete
  relativo driver

                       Le reti di calcolatori                             19
Livello Trasporto
                                     ●    Comunicazione affidabile
Protocolli a livello                      ed efficiente basata su
  applicazione
                                          un flusso di byte tra pro-
TCP             UDP                       cessi (programmi in ese-
                                          cuzione)
        IP                           ●    Problemi affrontati
                                            –   Gestione pacchetti persi /
 Scheda di rete e                               duplicati / riordinati duran-
  relativo driver                               te il tragitto
                                            –   Identificazione di processi
                                                in esecuzione sullo stesso
                                                nodo

                       Le reti di calcolatori                              20
Livello Applicazione
                                     ●    Protocolli di comunica-
Protocolli a livello
  applicazione                            zione utilizzati dalle ap-
                                          plicazioni
TCP             UDP                         –   SMTP/POP/IMAP (Posta
                                                Elettronica)
        IP                                  –   HTTP (Web)
                                            –   Bittorrent
 Scheda di rete e                           –   ...
  relativo driver

                       Le reti di calcolatori                          21
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                    22
IP
Mittente                                                                       Destinatario

                                   Internet

               1                                                          8
                       7
                                                                    2
                               3
Pacchetto                  3                                 6
fuori ordine
                                    4
                   Pacchetto                                     Pacchetto perso
                   duplicato
                                    Le reti di calcolatori                                    23
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                24
TCP
P1

                              Processo        Host
P2

P3
                                         P6

                                         P7
         Internet
                                         P8
P4

P5

     Le reti di calcolatori                     25
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                 26
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                   27
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         28
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 31038 possibili indirizzi IPv6
    –   Vuol dire 71023 indirizzi IPv6 per metro quadro di superficie
        terrestre, oceani inclusi!

                               Le reti di calcolatori                29
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        30
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                31
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

Banda
512B/s

                                   Latenza 2s
                               Le reti di calcolatori                   41
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   42
http://www.reuters.com/article/2009/09/09/us-safrica-pigeon-idUSTRE5885PM20090909
                                  Le reti di calcolatori                            43
Domanda
                                          Mittente   Destinatario
●   È dato un canale con
    banda 1 MB/s (=1024 
                                                             a
    1024 B/s) e latenza 20
    ms (=20  10-3s)
●   Vogliamo trasferire 100                x
    KB (=100 1024 B)                                       b
●   Quanto tempo passa
    dall'inizio della
    trasmissione alla
    completa ricezione da
    parte del destinatario (x)?                            Tempo
                          Le reti di calcolatori                    45
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                           46
Client                                     Server Web
  (browser)                                    www.unibo.it

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

                       index.html
  GET /logo.png

GET /banner.png          logo.png

                        banner.png
 GET /photo.jpg

                         photo.jpg

                                           Chiusura della connessione TCP

                  Le reti di calcolatori                                47
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                51
La catena dell'invio / ricezione della
         posta elettronica

Mittente                                                                               Destinatario
pippo@abc.com                                                                          pluto@xyz.com
                         Server di posta del              Server di posta del
                         dominio abc.com                  dominio xyz.com

                1                              2                                3

                                           Protocollo                     Protocollo
            Protocollo
                                             SMTP                            POP
              SMTP
                                                                           oppure
                                                                            IMAP

                                      Le reti di calcolatori                                     53
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           54
HELO abc.com
                             SMTP
250 multivac.localdomain Hello localhost.localdomain [127.0.0.1], pleased to
meet you
MAIL FROM: 
250 2.1.0 ... Sender ok
RCPT TO: 
250 2.1.5 ... Recipient ok (will queue)
DATA
354 Enter mail, end with "." on a line by itself
From: 
To: 
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 delivery
QUIT
221 2.0.0 multivac.localdomain closing connection

                              Le reti di calcolatori                           55
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                   56
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                    57
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                58
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

                          Le reti di calcolatori   59
Puoi anche leggere