presentazione di powerpointwpage.unina.it/rcanonic/didattica/rc/lucidi_2020/rc1... · 2020. 4....

21
Corso di Laurea in Ingegneria Informatica Corso di Reti di Calcolatori I Roberto Canonico ([email protected] ) Giorgio Ventre (giorgio.ventre @unina.it) Il livello trasporto: introduzione Il protocollo UDP I lucidi presentati al corso sono uno strumento didattico che NON sostituisce i testi indicati nel programma del corso

Upload: others

Post on 26-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Presentazione di PowerPointwpage.unina.it/rcanonic/didattica/rc/lucidi_2020/RC1... · 2020. 4. 24. · Presentation Session Transport Network Data Link Physical Application Presentation

Corso di Laurea in Ingegneria Informatica

Corso di Reti di Calcolatori I

Roberto Canonico ([email protected])

Giorgio Ventre ([email protected])

Il livello trasporto: introduzioneIl protocollo UDP

I lucidi presentati al corso sono uno strumento didattico che NON sostituisce i testi indicati nel programma del corso

Page 2: Presentazione di PowerPointwpage.unina.it/rcanonic/didattica/rc/lucidi_2020/RC1... · 2020. 4. 24. · Presentation Session Transport Network Data Link Physical Application Presentation

Nota di Copyright

Questo insieme di trasparenze è stato ideato e realizzato dai ricercatori del Gruppo di Ricerca COMICS del Dipartimento di Informatica e Sistemistica dell’Università di Napoli Federico II. Esse possono essere impiegate liberamente per fini didattici esclusivamente senza fini di lucro, a meno di un esplicito consenso scritto degli Autori. Nell’uso dovranno essere esplicitamente riportati la fonte e gli Autori. Gli Autori non sono responsabili per eventuali imprecisioni contenute in tali trasparenze né per eventuali problemi, danni o malfunzionamenti derivanti dal loro uso o applicazione.

Autori: Simon Pietro Romano, Antonio Pescapè, Stefano Avallone, Marcello Esposito, Roberto Canonico, Giorgio Ventre

Nota di copyright per le slide COMICS

Page 3: Presentazione di PowerPointwpage.unina.it/rcanonic/didattica/rc/lucidi_2020/RC1... · 2020. 4. 24. · Presentation Session Transport Network Data Link Physical Application Presentation

3

Livello Trasporto

OSI

Application

Presentation

Session

Transport

Network

Data Link

Physical

Transport

Service

User

Transport

Service

Provider

Page 4: Presentazione di PowerPointwpage.unina.it/rcanonic/didattica/rc/lucidi_2020/RC1... · 2020. 4. 24. · Presentation Session Transport Network Data Link Physical Application Presentation

4

Livello Trasporto

Application

Presentation

Session

Transport

Network

Data Link

Physical

Application

Presentation

Session

Transport

Network

Data Link

Physical

Network

Data Link

Physical

Network

Data Link

Physical

I protocolli di Livello Trasporto sono presenti solo negli end-system

Page 5: Presentazione di PowerPointwpage.unina.it/rcanonic/didattica/rc/lucidi_2020/RC1... · 2020. 4. 24. · Presentation Session Transport Network Data Link Physical Application Presentation

5

Servizi e Protocolli del Livello Trasporto

• Offre un canale di comunicazione logicatra applicazioni attive su differenti host

• Differenze tra livello trasporto e livello rete:• Network-layer:

trasferimento dati tra end-system

• Transport layer: trasferimento dati tra processi. Naturalmente necessita dei servizi offerti dal livello rete.

applicationtransportnetworkdata linkphysical

applicationtransportnetworkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysical

networkdata linkphysicalnetwork

data linkphysical

Da trasporto da host a host a trasporto da processo a

processo

Page 6: Presentazione di PowerPointwpage.unina.it/rcanonic/didattica/rc/lucidi_2020/RC1... · 2020. 4. 24. · Presentation Session Transport Network Data Link Physical Application Presentation

6

Servizi del Livello Trasporto - 1

• aumentare l’efficienza

• aumentare l’affidabilità

OSI

Transport

Network

Data Link

Physical

- affidabile

- inaffidabile

- affidabile

- inaffidabile

• controllo degli errori

• sequenza ordinata

• controllo di flusso

• controllo di congestione

Il livello trasporto

deve rimediare:

In particolare:

Isolare i livelli superiori dai

problemi dovuti all’uso di differenti

tecnologie di rete e dalle loro

(eventuali) imperfezioni

Il livello rete offre un servizio inaffidabile, quindi:

Page 7: Presentazione di PowerPointwpage.unina.it/rcanonic/didattica/rc/lucidi_2020/RC1... · 2020. 4. 24. · Presentation Session Transport Network Data Link Physical Application Presentation

7

Servizi del Livello Trasporto - 2

• I protocolli di Livello Trasporto sono realizzati al

di sopra del Livello Rete, quindi è necessario

gestire:

• apertura della connessione (setup)

• memorizzazione dei pacchetti all’interno della rete

• un numero elevato di connessioni …

• Multiplexing e Demultiplexing

Page 8: Presentazione di PowerPointwpage.unina.it/rcanonic/didattica/rc/lucidi_2020/RC1... · 2020. 4. 24. · Presentation Session Transport Network Data Link Physical Application Presentation

8

Multiplexing e Demultiplexing - 1

applicationtransportnetwork

MP2

applicationtransportnetwork

segment – dati che sono

scambiati tra processi a

livello trasporto

TPDU: transport protocol data unitreceiver

Ht

Hn

Demultiplexing: inoltrare i segment ricevuti al correttoprocesso cui i dati sonodestinati

segment

segment M

applicationtransportnetwork

P1M

M M

P3 P4

segmentheader

application-layerdata

Page 9: Presentazione di PowerPointwpage.unina.it/rcanonic/didattica/rc/lucidi_2020/RC1... · 2020. 4. 24. · Presentation Session Transport Network Data Link Physical Application Presentation

9

Multiplexing e Demultiplexing - 2

multiplexing/demultiplexing:

• Realizzato attraverso la coppia

<indirizzo IP, numero di porto>

• source, dest port # è

presente in ogni segmento

• numeri di porto “well-known”

per applicazioni particolari

Raccogliere i dati provenientidalle applicazioni, imbustare idati con un header approriato(per il de-multiplexing)

source port # dest port #

32 bits

applicationdata

(message)

other header fields

TCP/UDP segment format

Multiplexing:

Page 10: Presentazione di PowerPointwpage.unina.it/rcanonic/didattica/rc/lucidi_2020/RC1... · 2020. 4. 24. · Presentation Session Transport Network Data Link Physical Application Presentation

10

Multiplexing e Demultiplexing: esempi

host A server Bsource port: xdest. port: 23

source port:23dest. port: x

Uso del concetto di porto:una semplice app telnet

Web clienthost A

Webserver B

Web clienthost C

Source IP: CDest IP: B

source port: xdest. port: 80

Source IP: CDest IP: B

source port: ydest. port: 80

Caso del Web server

Source IP: ADest IP: B

source port: xdest. port: 80

Page 11: Presentazione di PowerPointwpage.unina.it/rcanonic/didattica/rc/lucidi_2020/RC1... · 2020. 4. 24. · Presentation Session Transport Network Data Link Physical Application Presentation

Connectionless demux

Su P3 c’è un processo in ascolto sul porto UDP 6428.

Client

IP:B

P2

clientIP: A

P1P1P3

serverIP: C

SP: 6428

DP: 9157

SP: 9157

DP: 6428

SP: 6428

DP: 5775

SP: 5775

DP: 6428

Il SP fornisce il “return address”

Page 12: Presentazione di PowerPointwpage.unina.it/rcanonic/didattica/rc/lucidi_2020/RC1... · 2020. 4. 24. · Presentation Session Transport Network Data Link Physical Application Presentation

Connection-oriented demux 1/2

Client

IP:B

P1

clientIP: A

P1P2P4

serverIP: C

SP: 9157

DP: 80

SP: 9157

DP: 80

P5 P6 P3

D-IP:CS-IP: A

D-IP:C

S-IP: B

SP: 5775

DP: 80

D-IP:CS-IP: B

Osservazione su HTTP persistente e non persistente…

Page 13: Presentazione di PowerPointwpage.unina.it/rcanonic/didattica/rc/lucidi_2020/RC1... · 2020. 4. 24. · Presentation Session Transport Network Data Link Physical Application Presentation

Connection-oriented demux: Threaded Web Server

Client

IP:B

P1

clientIP: A

P1P2

serverIP: C

SP: 9157

DP: 80

SP: 9157

DP: 80

P4 P3

D-IP:CS-IP: A

D-IP:C

S-IP: B

SP: 5775

DP: 80

D-IP:CS-IP: B

Page 14: Presentazione di PowerPointwpage.unina.it/rcanonic/didattica/rc/lucidi_2020/RC1... · 2020. 4. 24. · Presentation Session Transport Network Data Link Physical Application Presentation

14

I protocolli TCP e UDP

OSI

Application

Presentation

Session

Transport

Network

Data Link

PhysicalNon Specificati

IP

TCP e UDP

RPC

XDR

NFS

Internet Protocol Suite

ARP e RARP

ICMP Protocolli

di routing

Telnet

FTP

SMTP

SNMP

Transport

Service

User

Transport

Service

Provider

Page 15: Presentazione di PowerPointwpage.unina.it/rcanonic/didattica/rc/lucidi_2020/RC1... · 2020. 4. 24. · Presentation Session Transport Network Data Link Physical Application Presentation

15

UDP: User Datagram Protocol [RFC 768]

• Aggiunge poco ad IP:

• servizio “best effort”:

• i pacchetti UDP possono:

– subire perdite

– giungere a destinazione in ritardo, o non arrivare affatto

– giungere a destinazione non ordinati

• servizio connectionless:

• non è prevista una fase di inizializzazione

• ogni segmento UDP è inviato indipendentemente dagli

altri

– Domanda: C’è qualcuno in ascolto?

Page 16: Presentazione di PowerPointwpage.unina.it/rcanonic/didattica/rc/lucidi_2020/RC1... · 2020. 4. 24. · Presentation Session Transport Network Data Link Physical Application Presentation

16

UDP: User Datagram Protocol - 2

• Perché è stato introdotto UDP?

• non è necessaria la fase di inizializzazione (setup) che introduce delay

• Es: DNS è basato su UDP

• semplice: sender e receiver non devono conservare informazioni di stato

• intestazione di dimensioni contenute:• basso overhead

• controllo della congestione assente: • le applicazioni possono inviare alla velocità desiderata

– utile per alcune applicazioni

– rischioso per la rete

Page 17: Presentazione di PowerPointwpage.unina.it/rcanonic/didattica/rc/lucidi_2020/RC1... · 2020. 4. 24. · Presentation Session Transport Network Data Link Physical Application Presentation

17

UDP: User Datagram Protocol - 3

• Ampiamente usato per

applicazioni multimediali:

• tolleranti alle perdite di

pacchetti

• sensibili ai ritardi

• Altre applicazioni:• DNS

• NFS (Network File System)

• SNMP (Simple Network

Management Protocol)

• Domanda: si può rendere UDP

affidabile?

• Gestione degli errori

• Conferma di avvenuta

ricezione

source port # dest port #

32 bits

Applicationdata

(message)

Formato di un segmento UDP

length checksum

Lunghezzain bytes del

segmento UDP,header incluso

Page 18: Presentazione di PowerPointwpage.unina.it/rcanonic/didattica/rc/lucidi_2020/RC1... · 2020. 4. 24. · Presentation Session Transport Network Data Link Physical Application Presentation

Checksum UDP

Mittente:

• Tratta il contenuto del segmento

come una sequenza di interi

espressi su 16 bit

• checksum: complemento ad 1

della somma (in complemento

ad 1) dei numeri da 16 bit che

costituiscono il segmento UDP

• Incluso uno pseudoheader che

include gli indirizzi IP sorgente e

destinazione

• Il mittente pone il valore della

checksum nel campo checksum

del segmento UDP

Ricevente:• calcola la somma in

complemento ad 1 dei campi del segmento ricevuto compresa la checksum

• Risultato composto da tutti 1 ?

• NO: errore!

• SI: nessun errore rilevato …

• … il che non vuol dire che non vi siano stati errori …

Obiettivo: rilevare “errori” (bit alterati) nel segmento trasmesso

Page 19: Presentazione di PowerPointwpage.unina.it/rcanonic/didattica/rc/lucidi_2020/RC1... · 2020. 4. 24. · Presentation Session Transport Network Data Link Physical Application Presentation

UDP checksum: pseudo-header

• La checksum viene calcolata anteponendo al datagramma UDP uno

pseudo-header che contiene gli indirizzi IP sorgente e destinazione e la

lunghezza del datagramma

• Lo pseudo-header (come dice il nome) viene aggiunto ai soli fini del calcolo

della checksum, non viene trasmesso

19

Page 20: Presentazione di PowerPointwpage.unina.it/rcanonic/didattica/rc/lucidi_2020/RC1... · 2020. 4. 24. · Presentation Session Transport Network Data Link Physical Application Presentation

UDP checksum: calcolo in C (1/2)

unsigned short int udp_checksum(const void *buf, int len, in_addr_t src_addr, in_addr_t dest_addr)

{

const unsigned short int *buf=buff;

unsigned short int *ip_src=(void *)&src_addr, *ip_dst=(void *)&dest_addr;

unsigned short int sum;

size_t length=len;

// Calculate the sum

sum = 0;

while (len > 1)

{

sum += *buf++;

if (sum & 0x80000000)

sum = (sum & 0xFFFF) + (sum >> 16);

len -= 2;

}

// Add the padding if the packet lenght is odd

if ( len & 1 )

sum += *((unsigned char *)buf);

// Add the pseudo-header

...

20

Page 21: Presentazione di PowerPointwpage.unina.it/rcanonic/didattica/rc/lucidi_2020/RC1... · 2020. 4. 24. · Presentation Session Transport Network Data Link Physical Application Presentation

UDP checksum: calcolo in C (2/2)

...

// Add the pseudo-header

sum += *(ip_src++);

sum += *ip_src;

sum += *(ip_dst++);

sum += *ip_dst;

sum += htons(IPPROTO_UDP);

sum += htons(length);

// Add the carries

while (sum >> 16)

sum = (sum & 0xFFFF) + (sum >> 16);

// Return the one's complement of sum

return ( (unsigned short int)(~sum) );

}

21