Estratto del documento

Programmazione di reti

Appunti di Andrea Zammarchi

Unibo - Cesena

Ingegneria e Scienze Informatiche

A.A. 2020/2021

1

Sommario

1. Reti di calcolatori e Internet .................................................. 5

1.1 Protocolli di rete ................................................................................................. 5

1.2 Interazione tra sistemi periferici....................................................................... 5

1.3 Metodi di accesso residenziale........................................................................... 5

DSL, via cavo, FTTH, dial-up e satellite ................................................................................................... 5

Ethernet e WiFi .......................................................................................................................................... 5

3G e LTE ................................................................................................................................................... 5

1.4 Mezzi trasmissivi ................................................................................................ 5

1.5 Il nucleo della rete .............................................................................................. 5

Commutazione di pacchetto ...................................................................................................................... 5

Commutazione di circuito ......................................................................................................................... 6

1.6 Ritardi, perdite e throughput nelle reti di commutazione di pacchetto ....... 6

1.7 Livelli di protocolli e loro modelli di servizio .................................................. 6

Architettura a livelli ................................................................................................................................... 6

Analisi del traffico .................................................................................................... 7

2. Livello di applicazione ........................................................... 7

2.1 Architetture delle applicazioni di rete .............................................................. 7

Client-server .............................................................................................................................................. 7

P2P ............................................................................................................................................................. 7

2.2 Processi comunicanti .......................................................................................... 7

2.3 Servizi di trasporto offerti da Internet ............................................................. 8

Servizi TCP ............................................................................................................................................... 8

Servizi UDP ............................................................................................................................................... 8

2.4 Web e HTTP ....................................................................................................... 8

Panoramica di HTTP ................................................................................................................................. 8

Interazione utente-server ........................................................................................................................... 9

Web caching ............................................................................................................................................ 10

2.5 Posta elettronica ............................................................................................... 10

SMTP ....................................................................................................................................................... 10

2.6 DNS .................................................................................................................... 10

Panoramica del funzionamento di DNS .................................................................................................. 11

Record e messaggi DNS .......................................................................................................................... 11

2

2.7 Distribuzione di file P2P .................................................................................. 11

BitTorrent ................................................................................................................................................ 11

2.8 Streaming video e reti per la distribuzione di contenuti .............................. 12

Streaming HTTP e DASH ....................................................................................................................... 12

Reti per la distribuzione di contenuti ....................................................................................................... 12

2.9 Programmazione delle socket .......................................................................... 12

UDP client ............................................................................................................................................... 12

UDP server .............................................................................................................................................. 12

TCP client ................................................................................................................................................ 13

TCP server ............................................................................................................................................... 13

3. Livello di trasporto ............................................................... 13

3.1 Multiplexing e demultiplexing ........................................................................ 13

3.2 Trasporto non orientato alla connessione: UDP ........................................... 14

Struttura dei segmenti UDP e checksum ................................................................................................. 14

3.3 Principi del trasferimento dati affidabile ...................................................... 14

Trasferimento dati affidabile su un canale perfettamente affidabile: rdt1.0 ............................................ 14

Trasferimento dati affidabile su un canale con errori sui bit: rdt2.0 ........................................................ 15

Trasferimento dati affidabile su un canale con perdite ed errori sui bit: rdt3.0 ....................................... 16

Trasferimento dati affidabile con pipeline ............................................................................................... 16

3.4 Trasporto orientato alla connessione: TCP ................................................... 17

Struttura dei segmenti TCP...................................................................................................................... 17

Time-out e stima del tempo di andata e ritorno ....................................................................................... 18

Raccomandazioni sulla generazione di acknowledgement ...................................................................... 18

Controllo di flusso ................................................................................................................................... 18

Cause e costi della congestione ............................................................................................................... 19

3.5 Controllo di congestione TCP ......................................................................... 20

Algoritmo di controllo di congestione di TCP ........................................................................................ 20

Retrospettiva sul controllo di congestione di TCP .................................................................................. 20

Fairness .................................................................................................................................................... 21

Notifica esplicita di congestione (ECN): controllo di congestione assistita dalla rete ............................ 21

4. Livello di rete ....................................................................... 21

4.1 Panoramica del livello di rete .......................................................................... 21

Piano di controllo: approccio tradizionale ............................................................................................... 21

Piano di controllo: approccio SDN .......................................................................................................... 21

Modelli di servizio ................................................................................................................................... 21

3

4.2 Interno di un router ......................................................................................... 22

Elaborazione alle porte di ingresso e inoltro basato sull’indirizzo di destinazione ................................. 22

Struttura di commutazione....................................................................................................................... 22

Accodamento in ingresso......................................................................................................................... 22

Accodamento in uscita............................................................................................................................. 23

Schedulazione dei pacchetti ..................................................................................................................... 23

4.3 Il protocollo Internet (IP) ................................................................................ 23

Datagrammi IPv4 ..................................................................................................................................... 23

Indirizzamento IPv4 ................................................................................................................................ 24

NAT (network address translation) ......................................................................................................... 25

IPv6.......................................................................................................................................................... 25

4.4 Inoltro generalizzato e SDN ............................................................................ 26

Match ....................................................................................................................................................... 26

Action ...................................................................................................................................................... 27

5. Ultimi argomenti vari ........................................................... 27

5.1 Recap del piano di rete .................................................................................... 27

5.2 Algoritmi di instradamento ............................................................................. 27

5.3 Rendere sicure le connessioni TCP: SSL ....................................................... 27

4

1. Reti di calcolatori e Internet

1.1 Protocolli di rete

Qualsiasi attività in Internet che coinvolga due o più entità remote viene governata da un protocollo. Sapendo che ora è possibile richiedere un documento web, il vostro computer invierà il nome della pagina che vuole prelevare dal server tramite un messaggio GET. Un protocollo definisce il formato e l’ordine dei messaggi scambiati tra due o più entità in comunicazione, così come le azioni intraprese in fase di trasmissione e/o di ricezione di un messaggio o di un altro evento.

1.2 Interazione tra sistemi periferici

Talvolta gli host vengono ulteriormente suddivisi in due categorie: client e server. In modo informale, i client sono host che richiedono dei servizi e tendono a essere PC, smartphone e via dicendo, mentre i server si occupano di erogare dei servizi e sono sostanzialmente macchine più potenti che memorizzano e distribuiscono pagine web o flussi video, ritrasmettono la posta elettronica e così via.

1.3 Metodi di accesso residenziale

DSL, via cavo, FTTH, dial-up e satellite

Il modem DSL residenziale converte i dati digitali in toni ad alta frequenza per poterli trasmettere alla centrale locale sul cavo telefonico. Le linee telefoniche residenziali trasportano contemporaneamente dati e segnali telefonici tradizionali codificandoli in tre bande di frequenza non sovrapposte:

  • Un canale di downstream (verso l’abitazione) ad alta velocità, nella banda tra 50 kHz e 1 MHz.
  • Un canale in upstream (verso il DSLAM) a velocità media, nella banda tra 4 e 50 kHz.
  • Un canale telefonico ordinario a due vie, nella banda tra 0 e 4 kHz.

Ethernet e WiFi

Nelle aziende e nelle università, e sempre di più nelle abitazioni, per collegare i sistemi periferici al router di bordo si utilizza una rete locale. Ethernet utilizza un doppino di rame intrecciato per collegare numerosi sistemi periferici tra loro e connetterli a uno switch Ethernet. Tale accesso ha generalmente velocità di 100 Mbps, che possono arrivare fino a 1 o anche 10 Gbps.

3G e LTE

Le compagnie di telecomunicazioni hanno investito somme enormi nelle cosiddette reti wireless di terza generazione (3G), che consentono accesso wireless a Internet con commutazione a pacchetto e su scala geografica a velocità che superano 1 Mbps. Tuttavia, sono già disponibili tecnologie di accesso su scala geografica ancora più alta: 4G e 5G.

1.4 Mezzi trasmissivi

  • Doppino di rame intrecciato
  • Cavo coassiale
  • Fibra ottica
  • Canali radio terrestri
  • Canali radio satellitari

1.5 Il nucleo della rete

Commutazione di pacchetto

Le applicazioni distribuite scambiano messaggi che possono contenere qualsiasi cosa il progettista del protocollo desideri. La sorgente suddivide i messaggi lunghi in parti più piccole note come pacchetti. Tra la sorgente e la destinazione, questi pacchetti viaggiano attraverso collegamenti e commutatori di pacchetto (i due tipi principali: router e commutatori a livello di collegamento). I pacchetti vengono trasmessi su ciascun collegamento a una velocità pari alla velocità totale di trasmissione del collegamento stesso.

5

La maggior parte dei commutatori di pacchetto utilizza la trasmissione store-and-forward. Ciò significa che il commutatore deve ricevere l’intero pacchetto prima di poterne cominciare a trasmettere sul collegamento in uscita il primo bit.

Ogni commutatore di pacchetto connette più collegamenti. Per ciascuno di questi, il commutatore mantiene un buffer di output per conservare i pacchetti che sta per inviare su quel collegamento. Di conseguenza, oltre ai ritardi store-and-forward, i pacchetti subiscono anche ritardi di accodamento nei buffer di output. Tali ritardi sono variabili e dipendono dal traffico di rete. Siccome la dimensione del buffer è finita, può capitare che un pacchetto in arrivo trovi il buffer completamente pieno. In questo caso si verifica una perdita di pacchetto.

Commutazione di circuito

Un circuito all’interno di un collegamento è implementato tramite multiplexing a divisione di frequenza (FDM) o multiplexing a divisione di tempo (TDM). Nel primo caso, il collegamento dedica una banda di frequenza a ciascuna connessione per la durata della connessione stessa. La larghezza di tale banda è detta ampiezza di banda. Nel caso del TDM il tempo viene suddiviso in frame di durata fissa, a loro volta ripartiti in un numero fisso di slot temporali. Quando la rete stabilisce una connessione attraverso un collegamento, le dedica uno slot di tempo in ogni frame.

La commutazione di pacchetto risulta più efficiente, in quanto essa fornisce sostanzialmente le stesse prestazioni della commutazione di circuito, ma consente più del triplo degli utenti.

1.6 Ritardi, perdite e throughput nelle reti di commutazione di pacchetto

I principali ritardi che investono un pacchetto durante il suo viaggio sono:

  • Ritardo di elaborazione: il tempo richiesto per esaminare l’intestazione del pacchetto e per determinare dove dirigerlo.
  • Ritardo di accodamento: il tempo che attende la trasmissione sul collegamento, che dipenderà dal numero di pacchetti precedentemente arrivati.
  • Ritardo di trasmissione: risulta essere L/R, ovvero lunghezza del pacchetto in bit diviso la velocità di trasmissione del collegamento dal router.
  • Ritardo di propagazione: una volta immesso sul collegamento, un bit deve propagarsi fino al router B, la velocità dipende dal mezzo fisico (fibra ottica, doppino di rame, …).

Il throughput massimo di un router rappresenta la velocità massima alla quale il router può inoltrare i pacchetti.

Oltre al ritardo e alla perdita di pacchetti, un’altra misura critica delle prestazioni in una rete di calcolatori è il throughput end-to-end. Il throughput istantaneo in ogni istante di tempo è la velocità (bps) alla quale B sta ricevendo il file. Se il file consiste di F bit e il trasferimento richiede T secondi affinché B riceva tutti gli F bit, allora il throughput medio del trasferimento del file è di F/T bps.

Sia Rs la velocità del collegamento tra il server e il router e Rc quella del collegamento tra il router e il client, il throughput è il minimo tra Rs e Rc, cioè la velocità di trasmissione del collegamento che fa da collo di bottiglia.

1.7 Livelli di protocolli e loro modelli di servizio

Architettura a livelli

Per dare struttura alla loro progettazione, i progettisti organizzano i protocolli e l’hardware e software che li implementano in livelli. Ogni livello fornisce il suo servizio effettuando determinate azioni all’interno del livello stesso e utilizzando i servizi del livello immediatamente inferiore.

6

I livelli sono:

  • Livello di applicazione: è la sede delle applicazioni di rete e dei relativi protocolli (es: HTTP, SMTP, FTP). I pacchetti di questo livello sono detti messaggi.
  • Livello di trasporto: trasferisce i messaggi del livello di applicazione tra punti periferici gestiti dalle applicazioni. I due principali sono TCP e UDP. I pacchetti di questo livello sono detti segmenti.
  • Livello di rete: si occupa di trasferire i pacchetti a livello di rete, detti datagrammi, da un host all’altro. Questo livello include il famoso prot
Anteprima
Vedrai una selezione di 7 pagine su 27
Appunti di Programmazione di reti Pag. 1 Appunti di Programmazione di reti Pag. 2
Anteprima di 7 pagg. su 27.
Scarica il documento per vederlo tutto.
Appunti di Programmazione di reti Pag. 6
Anteprima di 7 pagg. su 27.
Scarica il documento per vederlo tutto.
Appunti di Programmazione di reti Pag. 11
Anteprima di 7 pagg. su 27.
Scarica il documento per vederlo tutto.
Appunti di Programmazione di reti Pag. 16
Anteprima di 7 pagg. su 27.
Scarica il documento per vederlo tutto.
Appunti di Programmazione di reti Pag. 21
Anteprima di 7 pagg. su 27.
Scarica il documento per vederlo tutto.
Appunti di Programmazione di reti Pag. 26
1 su 27
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher andrea.zammarchi3 di informazioni apprese con la frequenza delle lezioni di Programmazione di reti e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Bologna o del prof Pau Giovanni.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community