Determinazione del tempo di servizio (trasferimento) di un messaggio trasmesso su LAN tramite protocollo TCP Tempi di Servizio nei Router di rete Prof. Bruno Ciciani Facoltà di Ingegneria Università di Roma La Sapienza STRATIFICAZIONE DEL PROTOCOLLO TCP/IP HTTP transport layer network layer data link layer FTP NFS RPC TELNET TCP DNS UDP IP SNMP 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 TCP Host B IP TCP IP IP Network layer Network layer Data layer router 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. Strato n Strato n Strato n -1 Strato n -1 network Al momento del trasferimento dei dati ogni strato aggiunge una intestazione (header) Dati strato n -1 header strato n -1 header strato n Dati strato n PROTOCOLLI DI RETE Protocol TCP UDP IPv4 IPv6 ATM Ethernet Ieee 802.3 Ieee 802.5 TR FDDI PDU name Segment Datagram Datagram Datagram Cell Frame Frame Frame Frame Max PDU Overhead Max data size area 65535 Ltd by IP 65535 65535 53 1518 1518 4472 4500 20 8 20 40 5 18 21 28 28 65515 Ltd by IP 65515 65495 48 1500 1497 4444 4472 TCP • TCP fornisce un servizio orientato alla connessione, affidabile, con controllo di flusso, di tipo end-toend 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 Host B Host A syn syn ack data data fin ack data fin ack • 4 segmenti sono necessari per terminarla in entrambe le direzioni 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 300 20 300 client Server TCP TCP IP IP Network layer Network layer 20 20 300 20 300 20 20 300 T.R. 18 20 20 300 28 20 20 300 ethernet FDDI router2 router1 28 20 20 300 300 Tempi di Servizio delle Lan Messaggio di 300 byte inviato da un Client a un Server 28 20 20 4404 Service Time Eth = 10.000.000 358 x 8 = = 10.000.000 368 x 8 28 20 20 300 Service Time FDDI = 100.000.000 = 16.000.000 0.00002944 sec. = 100.000.000 368 x 8 28 20 20 300 Service Time TR = 0.000286 sec. = = 16.000.000 0.000184 sec. Esempio CON frammentazione Il Server invia una risposta di 10.000 byte al Client Ipotesi di livello TCP che ignora la MTU della rete locale client Server TCP TCP IP IP Network layer Network layer 10000 20 4404 4424 1172 20 20 4404 20 4424 20 1172 28 20 20 4404 T.R. 28 20 4424 ethernet 28 20 1172 FDDI 28 20 20 4404 28 20 4424 28 20 1172 - 28 - 28 - 28 FDDI =20 4424 =20 4424 = 1192 ET data 18 1192 FDDI TR ET IP data 18 20 1480 18 20 1480 18 20 1464 28 20 20 4404 28 20 4424 28 20 1172 - 28 28 28 + + + 28 28 28 Tempi di Servizio delle Lan 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 ( 28 20 20 4404 + 28 20 4424 + 28 20 1172 Service Time = 16.000.000 (4472+4472+1220) x 8 Service Time = = 0.005082 sec. 16.000.000 ) x8 Esempio CON frammentazione Il Server invia una risposta di 10.000 byte al Client Ipotesi di livello TCP che conosce la MTU della rete locale client Server TCP TCP IP IP Network layer Network layer 10000 20 4404 20 4404 20 1192 20 20 4404 20 20 4404 20 20 1192 28 20 20 4404 T.R. 28 20 20 4404 ethernet 28 20 20 1192 FDDI - 28 28 20 20 4404 - 28 28 20 20 1192 - 28 28 20 20 4404 FDDI = 20 4424 = 20 4424 = 1232 ET data 18 1232 FDDI TR ET IP TCP data 18 20 20 1460 18 20 1480 18 20 1464 28 20 20 4404 28 20 20 4404 28 20 20 1192 - 28 28 28 + + + 28 28 28 Tempi di Servizio delle Lan 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 ( 28 20 20 4404 + 28 20 20 4404 + 28 20 20 1192 ) Service Time = 16.000.000 (4472+4472+1260) x 8 Service Time = = 0.005102 sec. 16.000.000 0.005102 sec. 0.005082 sec. 20 msec di differenza x8 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 TCP ignora la MTU della rete locale TCP conosce la MTU della rete locale MessageSize NSegments = NSegments = NDatagrams 65495 MessageSize + NSegments x TCPOvhd NDatagrams = (stima approssimata) minn MTUn IPOvhd Overheadn = NSegments x TCPOvhd + Ndatagrams x (IPOvhd + FrameOvhdn) ServiceTimen = 8 x (MessageSize + Overheadn ) 106 x Bandwidth Esercizio - testo Client Ethernet 10 Mbps MTU: 1518 bytes • DB server router1 FDDI 100 Mbps MTU: 4472 bytes T.R. router2 Token RingI 16 Mbps MTU: 4444 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. Esercizio - soluzione MessageSize + Nsegment x TCPOvhd • Usando la NDatagrams = 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 Overheadn = TCPOvhd+Ndatagrams x (IPOvhd + FrameOvhdn) 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 • Usando la ServiceTimen = 8 x (MessageSize + Overheadn ) 106 x Bandwidth 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 Calcolo tempi di servizio Eth FDDI TR Router Ndatagrams Overhead (byte) ServiceTime(msec) Ndatagrams Overhead (byte) ServiceTime(msec) Ndatagrams Overhead (byte) ServiceTime(msec) Latency (134 usec/packet) Request Short reply Long reply 1 58 0.366 1 68 0.0374 1 68 0.234 134 6 248 6.67 6 308 0.672 6 08 4.2 804 68 2604 82.1 68 3284 8.26 68 3284 51.6 9.112 Router di rete Router queues Tempi di Servizio nei Router di rete Router latency (msec per packet): tempo impiegato dal router per processare un datagramma, fornito dal costruttore. RouterServiceTime: Ndatagrams * RouterLatency In cui MessageSize + TCPOvhd NDatagrams = minn MTUn IPOvhd Esercizio Client Ethernet 10 Mbps MTU: 1518 bytes • DB server router1 FDDI 100 Mbps MTU: 4472 bytes T.R. router2 Token RingI 16 Mbps MTU: 4444 bytes I router 1 e 2 processano 400,000 pacchetti/sec Service time: 2.5 msec (=1/400,000) Service demand al router Client Request Short Reply Long Request 1 x 2.5 = 2.5 msec 6 x 2.5 = 15 msec 68 x 2.5 = 170 msec