Telematica di Base. IL Livello di Trasporto TCP

Размер: px
Начинать показ со страницы:

Download "Telematica di Base. IL Livello di Trasporto TCP"

Транскрипт

1 Telematica di Base IL Livello di Trasporto TCP

2 TCP RFCs: 793, 1122, 1323, 2018, 2581 point-to-point: Un sender, un receiver affidabile protocollo di tipo pipeline: Meccanismi per evitare la congestione, controlflow buffers full duplex: Canali di trasmissione bidirezionali MSS: maximum segment size connection-oriented: handshaking iniziale flow controlled 05/04/06 2

3 TCP s o c k e t d o o r a p p l i c a t i o n w r i t e s d a t a T C P s e n d b u f f e r s e g m e n t a p p l i c a t i o n r e a d s d a t a T C P r e c e i v e b u f f e r s o c k e t d o o r 05/04/06 3

4 Il segmento TCP Connessione: (SrcPort, SrcIPAddr, DsrPort, DstIPAddr) window + flow control acknowledgment, SequenceNum, RcvdWindow Data (SequenceNum) Sender Receiver Flags SYN, FIN, RESET, PUSH, URG, ACK Checksum TCP header + data Acknowledgment + RcvdWindow 05/04/06 4

5 URG: urgent data (generally not used) ACK: ACK # valid PSH: push data now (generally not used) RST, SYN, FIN: connection estab (setup, teardown commands) Internet checksum (as in UDP) 32 bits source port # dest port # head len sequence number acknowledgement number not used UAP R S F checksum rcvr window size application data (variable length) ptr urgent data Options (variable length) counting by bytes of data (not segments!) # bytes rcvr willing to accept 05/04/06 5

6 TCP: seq number & ACK Sequence Number: ACK: l indirizzo del primo byte del segmento dei dati seq # del byte che si aspetta di ricevere User types C host ACKs receipt of echoed C Host A Seq=42, ACK=79, data = C Host B Seq=42, ACK=79, data='c' Seq=79, ACK=43, data='c' Seq=43, ACK=80, data='c' host ACKs receipt of C, echoes back C simple telnet scenario time 05/04/06 6

7 TCP: Trasferimento wait for event Affidabile event: data received from application above create, send segment event: timeout for segment with seq # y retransmit segment Versione Semplificata Trasferimento unidirezionale Nessun meccanismo per il controllo del flusso e della congestione event: ACK received, with ACK # y ACK processing 05/04/06 7

8 00 sendbase = initial_sequence number 01 nextseqnum = initial_sequence number loop (forever) { 04 switch(event) 05 event: data received from application above 06 create TCP segment with sequence number nextseqnum 07 start timer for segment nextseqnum 08 pass segment to IP 09 nextseqnum = nextseqnum + length(data) 10 event: timer timeout for segment with sequence number y 11 retransmit segment with sequence number y 12 compute new timeout interval for segment y 13 restart timer for sequence number y 14 event: ACK received, with ACK field value of y 15 if (y > sendbase) { /* cumulative ACK of all data up to y */ 16 cancel all timers for segments with sequence numbers < y 17 sendbase = y 18 } 19 else { /* a duplicate ACK for already ACKed segment */ 20 increment number of duplicate ACKs received for y 21 if (number of duplicate ACKS received for y == 3) { 22 /* TCP fast retransmit */ 23 resend segment with sequence number y 24 restart timer for segment y 25 } 05/04/06 26 } /* end of loop forever */ 8 TCP: Sender Pseudo Codice

9 TCP: esempi di trasmissione Host A Host B Host A Host B timeout X loss Seq=92, 8 bytes data ACK=100 Seq=92, 8 bytes data Seq=100 timeout Seq=92 timeout Seq=92, 8 bytes data Seq=100, 20 bytes data ACK=100 ACK=120 Seq=92, 8 bytes data ACK=100 ACK=120 Perdita di un ACK ACK cumulativo 05/04/06 9

10 Host A Host B Seq=92, 8 bytes data timeout X loss ACK=100 Seq=100, 20 bytes data ACK=120 ACK cumulativo 05/04/06 10

11 Commenti ACK cumulativo Sender Sendbase = più piccolo numero di sequenza dei segmenti trasmessi ma di cui non si è ancora ricevuto ACK Nextseqnum = numero di sequenza del prossimo dato da inviare 05/04/06 11

12 TCP Timeout Problema: come definire il valore del timeout? Maggiore del RTT TO = RTT + Delay Delay piccolo: Trasmissioni non necessarie Delay grande: problemi con la perdita di segmenti Problema: come si determina il valore per RTT? SampleRTT: definisce la misura del tempo che occorre tra la trasmissione di un segmento e la ricezione dell' ACK SampleRTT varia dinamicamente (congestione, traffico della rete) 05/04/06 12

13 TCP: gestione della connessione Sender e receiver definiscono la connessione: inizializzazione dei seq. #s buffers flow control (RcvWindow) 05/04/06 13

14 Three way handshake: Step 1: client invia al server TCP SYN (segmento di controllo) Definisce il valore iniziale seq # Step 2: server riceve SYN, ed invia un segmento di controllo SYNACK ACK del SYN Allocazione dei buffers Definisce receiver seq. # iniziale 05/04/06 14

15 Gestione della connessione Step 3: Cliente riceve SYNACK: Allocazione dei buffers Invio al server di un segmento di controllo SYN = 0 ACK = server_isn+1 05/04/06 15

16 Gestione della connessione Active participant (client) Passive participant (server) SYN, SequenceNum = x SYN + ACK, SequenceNum = y Acknowledgment = x + 1 ACK, Acknowledgment = y /04/06 16

17 Host A Host B SYN=1, seq=client_isn SYN=1, seq=server_isn SYN=0, seq=client_isn+1 05/04/06 17

18 Chiusura della connessione client server Step 1: client invia al server TCP FIN (segmento di controllo) (FIN = 1) close FIN ACK FIN close Step 2: server riceve FIN, ed invia un ACK. Poi invia un segmento FIN per chiudere la connessione (close) timed wait closed ACK 05/04/06 18

19 Chiusura di una connessione Step 3: client riceve FIN, ed invia un ACK. closing client FIN server Attiva un timeout Step 4: server riceve ACK. ACK FIN closing timed wait closed ACK closed 05/04/06 19

20 TCP Connection Management TCP server lifecycle TCP client lifecycle 05/04/06 20

Livello di trasporto: meccanismi trasferimento dati affidabile, TCP

Livello di trasporto: meccanismi trasferimento dati affidabile, TCP Livello di trasporto: meccanismi trasferimento dati affidabile, TCP Gaia Maselli Queste slide sono un adattamento delle slide fornite dal libro di testo e pertanto protette da copyright. - Copyright 2013

Подробнее

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori I

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori I Corso di Laurea in Ingegneria Informatica Corso di Reti di Calcolatori I Roberto Canonico ([email protected]) Giorgio Ventre ([email protected]) Il protocollo TCP I lucidi presentati al corso

Подробнее

Livello di trasporto e TSAP

Livello di trasporto e TSAP Reti di Telecomunicazioni R. Bolla, L. Caviglione, F. Davoli Livello di trasporto e TSAP Three-way handshake Incarnation numbers TCP e UDP 39.2 Sessione T_CONNECT, T_DISCONNECT T_DATA, T_EXP_DATA T_UNITDATA

Подробнее

Strato di trasporto. Livello di applicazione SAP. Livello di trasporto. Livello di rete SAP

Strato di trasporto. Livello di applicazione SAP. Livello di trasporto. Livello di rete SAP Strato di trasporto Lo strato di trasporto si colloca al livello 4 dello strato ISO-OSI e svolge il compito di mettere in comunicazione diversi processi software. La comunicazione tra applicazioni avviene

Подробнее

TCP: trasmissione Source port [16 bit] - Identifica il numero di porta sull'host mittente associato alla connessione TCP. Destination port [16 bit] - Identifica il numero di porta sull'host destinatario

Подробнее

I protocolli UDP e TCP

I protocolli UDP e TCP I protocolli UDP e TCP Corso di Reti di Telecomunicazione a.a. 2013/14 - Ingegneria Elettronica e delle Telecomunicazioni - Ingegneria Informatica e dell Automazione - - Ing. G. Boggia Protocolli di trasporto:

Подробнее

TCP. Servizio di Trasporto Affidabile. Transmission Control Protocol. Caratteristiche di TCP 1

TCP. Servizio di Trasporto Affidabile. Transmission Control Protocol. Caratteristiche di TCP 1 TCP a.a. 2002/03 Prof. Vincenzo Auletta [email protected] http://www.dia.unisa.it/~auletta/ Servizio di Trasporto Affidabile Il livello di trasporto deve fornire un servizio di consegna orientato alla

Подробнее

IL LIVELLO TRASPORTO Protocolli TCP e UDP

IL LIVELLO TRASPORTO Protocolli TCP e UDP Reti di Calcolatori ed Internet IL LIVELLO TRASPORTO Protocolli TCP e UDP 5-1 Il Livello Trasporto I servizi del livello Trasporto Le primitive di Trasporto Indirizzamento Protocolli di Trasporto Livello

Подробнее

IL LIVELLO TRASPORTO Protocolli TCP e UDP

IL LIVELLO TRASPORTO Protocolli TCP e UDP Reti di Calcolatori IL LIVELLO TRASPORTO Protocolli TCP e UDP D. Talia RETI DI CALCOLATORI - UNICAL 5-1 Il Livello Trasporto I servizi del livello Trasporto Le primitive di Trasporto Indirizzamento Protocolli

Подробнее

Introduzione (parte III)

Introduzione (parte III) Introduzione (parte III) Argomenti della lezione Ripasso degli argomenti del primo corso: il livello di trasporto, il meccanismo di controllo delle congestioni e le applicazioni Il livello di trasporto

Подробнее

Reti di calcolatori TCP/IP. Slide a cura di Simon Pietro Romano

Reti di calcolatori TCP/IP. Slide a cura di Simon Pietro Romano Reti di calcolatori TCP/IP Slide a cura di Simon Pietro Romano [email protected] Il livello rete Stack ISO/OSI Applicazione Presentazione Sessione Trasporto Rete Data Link Fisico Corso di Tecnologie dei

Подробнее

Lezione n.3 LIVELLO TRASPORTO

Lezione n.3 LIVELLO TRASPORTO Università degli Studi di Pisa Lezione n.3 SSIS INFORMATICA LIVELLO TRASPORTO 30/11/2007 Laura Ricci Laura Ricci 1 LIVELLO TRASPORTO realizza un supporto per la comunicazione logica tra processi distribuiti

Подробнее

Application Layer DNS, TELNET

Application Layer DNS, TELNET Application Layer DNS, TELNET DNS: Domain Name System The Domain Name System is a hierarchical distributed database. It stores information for mapping Internet host names to IP addresses and vice versa,

Подробнее

4 - Il livello di trasporto

4 - Il livello di trasporto Università di Bergamo Dipartimento di Ingegneria Gestionale e dell Informazione 4 - Il livello di trasporto Architetture e Protocolli per Internet Servizio di trasporto il livello di trasporto ha il compito

Подробнее

Il livello trasporto Protocolli TCP e UDP

Il livello trasporto Protocolli TCP e UDP Il livello trasporto Protocolli TCP e UDP Standard: OSi vs TCP/IP Application Presentation Session NFS XDR RPC Telnet, FTP SMTP, HTTP SNMP, DNS RTP,... Protocolli per la comunicazione tra applicativi:

Подробнее

API Socket di Berkeley

API Socket di Berkeley Laboratorio Reti di Calcolatori (A.A. 2008-2009) Programmazione di rete ed interfaccia API socket di Berkeley Delfina Malandrino [email protected] http://www.dia.unisa.it/professori/delmal/ API Socket

Подробнее

Soluzione dell esercizio 2 (TCP) dell esame del 16 giugno 2015

Soluzione dell esercizio 2 (TCP) dell esame del 16 giugno 2015 Soluzione dell esercizio 2 (TCP) dell esame del 16 giugno 2015 La soluzione di questo esercizio per quanto riguarda la parte di perdita di pacchetti è data assumendo l'algoritmo di FAST RECOVERY, ossia

Подробнее

J+... J+3 J+2 J+1 K+1 K+2 K+3 K+...

J+... J+3 J+2 J+1 K+1 K+2 K+3 K+... Setup delle ConnessioniTCP Una connessione TCP viene instaurata con le seguenti fasi, che formano il Three-Way Handshake (perchè formato da almeno 3 pacchetti trasmessi): 1) il server si predispone ad

Подробнее

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 7 Febbraio 2005, ore 15.00

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 7 Febbraio 2005, ore 15.00 Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 7 Febbraio 2005, ore 15.00 NB: alcune domande hanno risposta multipla: si richiede di identificare TUTTE le risposte corrette. Cognome: Nome:

Подробнее

4 - Il livello di trasporto

4 - Il livello di trasporto Università di Bergamo Dipartimento di Ingegneria dell Informazione e Metodi Matematici 4 - Il livello di trasporto Architetture e Protocolli per Internet 1 Servizio di trasporto il livello di trasporto

Подробнее

Funzioni del protocollo TCP

Funzioni del protocollo TCP Funzioni del protocollo TCP Prof. Ing. Carla Raffaelli Anno accademico 2004-2005 Il TCP Il TCP e un protocollo orientato alla connessione utilizzato per gestire il trasferimento end-to-end di informazioni

Подробнее

TCP/IP: summary. Lorenzo Cavallaro, Andrea Lanzi

TCP/IP: summary. Lorenzo Cavallaro, Andrea Lanzi Università degli Studi di Milano Facoltà di Scienze Matematiche, Fisiche e Naturali Corso di Laurea in Informatica December 7, 2004 Sommario 1 La suite di protocolli TCP/IP Layer 2 3 4 5 6 Sommario 1 La

Подробнее

Transmission Control Protocol

Transmission Control Protocol Transmission Control Protocol Franco Callegati Franco Callegati IC3N 2000 N. 1 Transmission Control Protocol - RFC 793 Protocollo di tipo connection-oriented Ha lo scopo di realizzare una comunicazione

Подробнее

Capitolo 3 Livello di trasporto

Capitolo 3 Livello di trasporto Capitolo 3 Livello di trasporto Nota per l utilizzo: Abbiamo preparato queste slide con l intenzione di renderle disponibili a tutti (professori, studenti, lettori). Sono in formato PowerPoint in modo

Подробнее

Livello trasporto in Internet

Livello trasporto in Internet Livello trasporto in Internet Livello trasporto in Internet Due protocolli di trasporto alternativi: TCP e UDP Modelli di servizio diversi TCP orientato alla connessione, affidabile, controllo di flusso

Подробнее

Transmission Control Protocol (TCP) Andrea Detti

Transmission Control Protocol (TCP) Andrea Detti Transmission Control Protocol (TCP) Andrea Detti Transmission Control Protocol (TCP) Trasferisce un flusso informativo bi-direzionale non strutturato tra due host ed effettua operazioni di multiplazione

Подробнее

Livello trasporto. Servizi del livello trasporto

Livello trasporto. Servizi del livello trasporto ivello trasporto Servizi Multiplexing e demultiplexing Trasporto senza connessione: UDP Principi di trasferimento affidabile Trasporto orientato alla connessione: TCP Struttura del segmento Trasferimento

Подробнее

CORSO DI RETI SSIS. Lezione n.3 9 novembre 2005 Laura Ricci

CORSO DI RETI SSIS. Lezione n.3 9 novembre 2005 Laura Ricci CORSO DI RETI SSIS Lezione n.3 9 novembre 2005 Laura Ricci IL LIVELLO TRASPORTO realizza un supporto per la comunicazione logica tra processi distribuiti comunicazione logica = astrazione che consente

Подробнее