Prof. Bruno Ciciani Facoltà di Ingegneria
Università di Roma La Sapienza Determinazione del tempo di servizio
(trasferimento) di un messaggio trasmesso su LAN tramite protocollo TCP
Tempi di Servizio nei Router di rete
STRATIFICAZIONE DEL PROTOCOLLO TCP/IP
IP
UDP TELNET
HTTP FTP
TCP
NFS DNS SNMP
network layer transport layer
RPC
INOLTRO DATAGRAMMA IP
Il router mantiene una tabella di routing, usata per cercare il prossimo router o l’host cui inoltrare il datagramma
Host A Host B
TCP IP Network layer
TCP IP Network layer IP
Data layer
router
Strato n Strato n -1
Strato n
Strato n -1
network
PROTOCOLLI
La progettazione di un protocollo di comunicazione segue un approccio basato su una architettura a strati
Ogni entità dello stato n comunica solo , scambiando PDU, con le entità remote di strato n,usa i servizi forniti dallo strato n -1 e fornisce servizi allo strato n+1.
Al momento del trasferimento dei dati ogni strato aggiunge una intestazione (header)
PROTOCOLLI DI RETE
Protocol PDU
name
Max PDU size
Overhead Max data area
TCP Segment 65535 20 65515
UDP Datagram Ltd by IP 8 Ltd by IP
IPv4 Datagram 65535 20 65515
IPv6 Datagram 65535 40 65495
ATM Cell 53 5 48
Ethernet Frame 1518 18 1500
Ieee 802.3 Frame 1518 21 1497
Ieee 802.5 TR Frame 4472 28 4444
FDDI Frame 4500 28 4472
TCP
• TCP fornisce un servizio orientato alla connessione, affidabile, con controllo di flusso, di tipo end-to-end e garantisce la consegna dei dati nell’ordine di spedizione, senza perdite.
• TCP implementa un meccanismo affidabile di connessione detto Three way handshake
• 3 segmenti sono necessari per stabilire una connessione
• 4 segmenti sono necessari per terminarla in entrambe le direzioni
Host A Host B
syn syn
ack data data
fin ack
data fin
IP
• IP specifica il formato dei pacchetti spediti in internet
• Il servizio è inaffidabile, non è di tipo end to end, i datagramma possono essere persi
FRAMMENTAZIONE
• Le entità di ciascuno strato comunicano con le altre attraverso lo scambio di PDU composte da un preambolo (header) ed un’area dati
• Le PDU hanno una dimensione massima per l’area dati (chiamata, per lo strato di rete, MTU)
• Essendo diverse le lunghezze degli MTU per i diversi protocolli, il router deve essere in grado di frammentare i datagramma, che verranno riassemblati a livello IP dall’host di destinazione.
Svantaggi della frammentazione
• Il router deve poter dividere il PDU
• il nodo destinazione deve riassemblare i frammenti
• RACCOMANDAZIONE:
IP standard raccomanda di frammentare dal nodo sorgente, in previsione del percorso da effettuare.
Tempi di Servizio
Service Time of a message
Time to transmit the message over the network
=
=
# of bytes (including protocol
header -trailer, and fragmentation if there is) bandwidth
=
Esempio SENZA frammentazione
Messaggio di 300 byte inviato da un Client a un Server
TCP IP Network layer
client
TCP IP Network layer
Server
ethernet
T.R.
FDDI
300 300 20
300 20 20
300 20 20 18
300 20 20 28
300 20 20 28
300 300 20
300 20 20
router1 router2
Tempi di Servizio delle Lan
4404 20
20 28 Service Time Eth =
10.000.000 = 358 x 8 =
10.000.000
0.000286 sec.
Service Time FDDI =
100.000.000 = 368 x 8 =
100.000.000
0.00002944 sec.
300 20 20 28
Messaggio di 300 byte inviato da un Client a un Server
Esempio CON frammentazione
TCP IP Network layer
client
TCP IP Network layer
Server
ethernet
T.R.
FDDI
10000 4404
20 4424 1172
4404 20
20
4424 20
1172 20
4404 20
20
4424 20
1172 20
28 28 28
4404 20
20
4424 20
1172 20
28 28 28
28 28
- +
TR FDDI
28 + 28
-
28 + 28
-
4404 20
20
4424 20
1172 20
28 28 28
- 28 FDDI
- 28
- 28
= 4424
= 4424
= 1192
1480 20
18
1480 20
18
data IP ET
data ET
Il Server invia una risposta di 10.000 byte al Client
Ipotesi di livello TCP che ignora la MTU della rete locale
20 20
Tempi di Servizio delle Lan
Service Time =
16.000.000
Il Server invia una risposta di 10.000 byte al Client
(Ipotesi di livello TCP che ignora la MTU della rete locale)
Caso della rete Token Ring
4404 20
20 20 4424 20 1172
28 + 28 + 28
Service Time =
16.000.000
(4472+4472+1220) x 8
= 0.005082 sec.
( ) x 8
Esempio CON frammentazione
TCP IP Network layer
client
TCP IP Network layer
Server
ethernet
T.R.
FDDI
10000 4404
20 4404 1192
4404 20
20
4404 20
1192 20
4404 20
20
4404 20
1192 20
28 28 28
4404 20
20
4404 20
1192 20
28 28 28
28 28
- +
TR FDDI
28 + 28
-
28 + 28
-
4404 20
20
4404 20
1192 20
28 28 28
- 28 FDDI
- 28
- 28
= 4424
= 4424
= 1232
1460 20
18
1480 20
18
data IP
ET
data ET
Il Server invia una risposta di 10.000 byte al Client
Ipotesi di livello TCP che conosce la MTU della rete locale
20 20
20 20
20 20
20 20
20 20 20
20 20
TCP
Tempi di Servizio delle Lan
Service Time =
16.000.000
Il Server invia una risposta di 10.000 byte al Client
(Ipotesi di livello TCP che conosce la MTU della rete locale)
Caso della rete Token Ring
4404 20
20 20 4404 20 1192
28 + 28 + 28
Service Time =
16.000.000
(4472+4472+1260) x 8
= 0.005102 sec.
( 20 20 ) x 8
Tempo medio di servizio
Calcolo nel caso senza frammentazione
Indichiamo con:
MTUn: MTU in byte della rete n
XOvhd: overhead in byte del protocollo X
FrameOvhdn: overhead in byte del frame nella rete n
Overheadn: overhead totale (TCP+IP+frame) in byte nella rete n Bandwidthn: bandwidth in Mbps della rete n
Ndatagrams: numero di datagramma IP necessari
Nsegments: numero di segmenti TCP necessari (< o = di Ndatagrams) N: numero di reti
Tempo medio di servizio
caso senza frammentazione
NDatagrams =
MessageSize + NSegments x TCPOvhd
minn MTUn - IPOvhd
Overheadn = NSegments x TCPOvhd + Ndatagrams x (IPOvhd + FrameOvhdn)
NSegments = MessageSize 65495
NSegments = NDatagrams
TCP conosce la MTU della rete locale TCP ignora la MTU della rete locale
(stima approssimata)
Esercizio - testo
FDDI T.R.
100 Mbps
MTU: 4472 bytes
• Il client effettua delle richieste al server al ritmo di 3 transazioni al minuto (0.05 tps), con una lunghezza media dei messaggi di 400 byte. L’80% delle risposte sono lunghe 8092 byte e il 20% 100.000 byte. Assumendo che non c’è frammentazione e che il livello TCP non conosce la MTU della rete, calcolare il tempo medio di servizio delle richieste e delle risposte per ciascuna delle tre reti.
router1 router2
Client DB server
Ethernet 10 Mbps
MTU: 1518 bytes
Token RingI 16 Mbps
MTU: 4444 bytes
Esercizio - soluzione
• Usando la NDatagrams =
MessageSize + Nsegment x TCPOvhd
minn MTUn - IPOvhd
Possiamo calcolare il numero dei datagramma necessari nei tre casi (richiesta, risposta breve e risposta lunga):
(400+20)/(1500-20) = 1 per la richiesta (8092+20)/(1500-20) = 6 per la risposta breve (100000+40)/(1500-20) = 68 per la risposta lunga
Esercizio - soluzione
• Usando la
Possiamo calcolare l’overhead per le reti (solo caso della ethernet) OverheadEth = 20 + 1 (20 + 18) = 58 per la richiesta
OverheadEth = 20 + 6 (20 + 18) = 248 per la risposta breve OverheadEth = 20 + 68 (20 + 18) = 2604 per l arisposta lunga
Overheadn = TCPOvhd+Ndatagrams x (IPOvhd + FrameOvhdn)
• Usando la
Possiamo calcolare il Service Time (solo caso della ethernet) OverheadEth = 8 x (400 + 58) / 10.000.000 = 0.366 msec per la richiesta OverheadEth = 8 x (8092 + 248) / 10.000.000 = 6.67 msec per la risposta breve OverheadEth = 8 x (100.000 + 2604) / 10.000.000 = 82.1 msec per l arisposta lunga
ServiceTimen = 8 x (MessageSize + Overheadn ) 106 x Bandwidth
Calcolo tempi di servizio
Router di rete
Router queues
Tempi di Servizio nei Router di rete
Router latency (sec per packet): tempo impiegato dal router per processare un datagramma, fornito dal costruttore.
RouterServiceTime: Ndatagrams * RouterLatency In cui
NDatagrams =
MessageSize + TCPOvhd
minn MTUn - IPOvhd
Esercizio
• I router 1 e 2 processano 400,000 pacchetti/sec
Service time: 2.5 sec (=1/400,000)
Service demand al router
FDDI T.R.
100 Mbps
MTU: 4472 bytes
router1 router2
Client DB server
Ethernet 10 Mbps
MTU: 1518 bytes
Token RingI 16 Mbps
MTU: 4444 bytes
Client Request Short Reply Long Request
1 x 2.5 = 2.5 sec 6 x 2.5 = 15 sec 68 x 2.5 = 170 sec