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

definisce il formato e l’ordine dei messaggi

prelevare dal server tramite un messaggio GET. Un protocollo

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 velocita, 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 fi 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 di 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 stesso

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:

il tempo richiesto per esaminare l’intestazione del

- Ritardo di elaborazione: 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

la velocità dipende dal mezzo fisico (fibra ottica, doppino di rame, …).

B,

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

effettuando determinate azioni all’interno del

implementano in livelli. Ogni livello fornisce il suo servizio

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