Documente Academic
Documente Profesional
Documente Cultură
8.105 10101011 09000010 ——> 171.2 0000111 1010 ——> 14.10 A5aS8i08 00000000 00010001 ——* 0 and 17 171.2.14.10 99000000 00001111 ——+ 15 7 0000100 00111111 ——> 108° AME Gs |e 13 99090900 90001101 ——» 13 1087 13 99000900 99002113, ——=» tects) 00001 9 —> oe ecksum 15 All 0s 01010100 01000101 ——> T an: OrooOTT Oloro100 ——> § and 91001001 01001110 ——* Land N 01000111 00000000 ———+ G and 0 (padding) 10010110 11101011 ——+ Sum 01101001 00010100 ———> Checksum ‘Transport protocols S UDP Esempio di trasferimento dati Daytime Daytime client server Tranepor protocols 16UDP Esempio di trasferimento dati my w oy IP header 193.19.26.7 ‘Transpo protocols 7 Protocoili di trasporto TCP Application layer Transport Sayer Network layer Data tink layer Underlying LAN or WAN technology Physical layer Transport profocals 18Protocolli TELNET (Client) Transport protocols 19 TCP Formato del segmento 32 bit ‘Transport protocols 20TCP Formato def segmento ™ Unico formato di pacchetto per tutte le PDU del TCP. = TCP header * Porta sorgente/porta destinazione: processi sorgente e destinazione il cui indirizzo IP @ contenuto nel pacchetto IP + Alcuni numert di porta sono predefiniti (well-known ports) « Numero di sequenza (32 bit) utilizzato per ack end-to-end + Indica il numero progressivo del primo byte del campo dati * Numero iniziale di sequenza definito per ogni direzione « Numero di riscontro: x = successivo byte atteso. (si possono inviare ACK cumuiativi} « Finestra: implementa una finestra ad apertura variabile + Valore del credito di trasmissione y (numero di bytes) assegnato al TCP remoto dopo l’ACK corrente (da x a x+y-1) ‘Transport protocols 21 TCP Formato del segmento = TGP header (cont) + Cade bits + URG: sono presenti dati urgenti, come specificato dat puntatore URG * ACK: numero di ack valido (ACK=1) o ignora numero di ack (ACK=0) + PSH: ordine al TCP remoto di consegnare i dati TCP memorizzati senza tenere conto deffo stato det buffer di ricezione RST: indicazione dj resettare la connessione o Indicazione di messaggio REJ con numero di ack che indica il messaggio rigettato ‘SYN: utilizzato per instaurare una connessione; insieme al bit ACK distingue tra Connection request (ACK=0) e Connection accepted (ACK=1) + FIN: usato per richiedere Ia fine di una connessione TCP Transport proforots 22TCP Formato de! segmento = TCP header (cont.) + Checksum * Protege da consegna errata da parte di IP * Verifica TCP header + TCP data + pseudoheader (IP source, IP destination, TCP prot. number, byte count for TCP segment) ‘+ Urgent pointer: offset (bytes) dal numero di sequenza corrente dove terminano i dati urgenti + Options: si pus specificare la dimensione massima del segmento + Padding: garantisce che il TCP header & multiplo di 32 bit Transport protoco's TCP Pseudoheader ‘32-bit source TP address 32-bit destination IP address ito [PRET 6 i TCP otal eng Source pot Destination pr 7 ‘Sequence number a) Aeknomkdgnen arte 7 HLEN | Reserved Control Window size ‘Urgent pointer Checksum Data and Option re et ee eee eee) 28 Transport protocolsTCP Encapsulation = Il messaggio dell’applicazione pud essere frammentato in pit segmenti TCP Transport protocols 2 TCP Frammentazione = Maximum Segment Size (MSS) Quantita massima di dati che trova posto in un segmento TCP. « Dipende dall’implementazione TCP * Tipici vatori di configurazione: 1500 byte, 536 byte, 512 byte = Numero di sequenza di un segmento: numero del primo byte nel segmento m= Esempio di trasferimento di 500 000 byte con MSS=1800 byte File ve Dati peril primosegmento Dati per il seconde segmento | —__1_____, J — 1.—— 1 | [ 4 Se eof O00: )eeas |e 1999; A 499.999 ‘Transport protocols 28TCP Gestione della connessione = Connessione TCP identificata univocamente da 4 numeri (2 socket) + 2numeri di porta TCP * 2indirizzi IP = Connessione TCP instaurata per mezzo del “three-way handshake” + Sipossono verificare collisioni (full duplex operation) * Siinstaura una sola connessione se gli end-point sono gli stessi II rilascio pud essere iniziato da una qualunque delle due entita TCP + Attuato mediante two-way handshake iniziato da entrambe le estremita + Bit FIN bit alto in una direzione e bit ACK alto nell'altra direzione e viceversa “Transpon protocols a TCP Gestione della connessione B SYN, ACK, SNe=y, AN=X+1 A B SNex+1, ANey+1 om sn-x El SYN SN=y SYN, ACK ‘SN=y, AN=x+1 20 ‘Transport protocolsGestione detla connessione Esempio Sender Receiver Segment 1: SYN Segment 3: ACK 89: 1201, ack: 4801 + Time ‘Time “Tranepon proeook 29 Gestione della connessione Esempio ‘Sender Receiver Time ‘Time Transpor protacols xTCP Sequenza di stati tato server L'applicazione del server i er at di ascol Riceve ACK, non. £2 un sock scolto invia alcun oggetto LAST _ACK 4 TEN” ast) EISTEN | - Riceve SYN Invia FIN invia SYN & AK Riceve FIN, invia ACK Riceve ACK, non invia alcun oggetto Transport protocols a TCP Sequenza di stati lato client plicazione dient inizia una connessione TCP Attende 30 secondi Invia SYN TIME_WAIT. Riceve FIN, Riceve SYN & ACK, invia ACK invia ACK Sin wart 2 LISHED Invia FIN Riceve ACK, arene non invia alcun FO_WAIT.1 Tapplicazione client oagetto inizia a chiudere la connessione Transport pratocols 32TCP Esempio con applicazione Telnet Host A Host B Lutente digita "c ACK del'host per ricevuta giver di torn T Tempo “Transport protocols TCP Esempio Host A mp Host B m= Riscontro perso eB a Seg=92 : ee Timeout 3 : ipereoh : Se, : 4 92 7 8 i Pete aaey i pceen08 ¥ + Tempo Tempo ‘Transport protocols,TCP Esempio Host A Host 6 = Il segmento 100 non viene ritrasmesso peq92 timeout interval sequs2 timeout interval “Transport protocols 35 Il riscontro cumulativo evita la ritrasmissione del primo segmento Seq-92 timeout interval ‘Transport protocols 36.TCP Nomenclatura m Dal livello di collegamento dati al livello di trasporto + Trama— segmento * Tempo di propagazione 2t —> Round trip time (RTT) * Errore di trama — perdita di segmento/riscontro * Numerazione trame + numerazione byte del segmento m= Natura del protocollo TCP + Ritrasmissione basata su scadenza del timeout * Riscontri (positivi) umulativi come nel Go-back-N + Segmenti ricevuti fuori sequenza possono essere memorizzati e non scartati, come nel Selective Repeat + Proposta modifica (RFC2881) che prevede it riscontro selettivo anche fuori sequenza = Misto dei due protocolli GBN e SR Transport protocols 37 TCP Stima di RTT a RTT deve essere stimato per impostare il timeout RTT misurato per un segmento (RTT,,,,) al ricevimento det rispettive riscontro con frequenza uguale a RTT stesso « Nonsi valuta RTT per i segmenti che vengono ritrasmessi = Stima corrente data da RTT sp = (1 @)RTT es + &- RITigse = Stima della variabilita di RTT RIT gop = (1- BRT Tey + B-|RTTiast ~ RTTest| Valore tipico o=0.125, B=0.25 Timeout Teury = RTTo51 + 4-RTT dey “Transpon protocots 98TCP Stima di RTT 350 € oso RTT campionato 3 = E 2 \ RTT stimato 150 9,0} py 1 8 15 22 29 36 43 50 57 64 71 78 85 92 98 106 Tempo (secondi) “Transport protocots 29 TCP Caratteristiche = Timeout utilizzato come meccanismo di controllo di congestione + Raddoppiato ad ogni ritrasmissione algoritmo di Karn) + Resettato al valore TO,.,,alla ricezione del riscontro positive & Modifica rispetto ai protocolli di linea: ritrasmissione veloce + Ritrasmissione di un segmento alla ricezione di ack duplicati senza attendere la scadenza del timeout * 3.ack duplicati sono interpretati come perdita di un segmento (NACK implicito) ‘Transport protocolsTCP Controllo di flusso I ricevitore controlla il fiusso mediante la finestra di ricezione + Condizione di non-saturazione LastByteRevd — Lastbyte Read < RevBuffer « Valore corrente della finestra di ricezione RevWindow = RevBuffer —(LastByteRcvd — LastByteRead) « Condizione rispettata in trasmissione LastByteSent ~ LastByteAcked < RevWindow Receiver buffer FromIP > i aaa A Receiver window “Transport protoco’s TCP Controlio della congestione m= End-to-end + Larete non fomisce alcun contributo + Derivato dall’osservazione del flusso di pacchetti = Assistito dalla rete + | router forniscono informazioni esplicite sullo stato dei buffer Host 8 oe Host A. Si Feedback di rete via receiver Feedback diretto dalla rete wat, 3st TransportTCP Controllo della congestione ™ Variabile che consente il controlic della congestione: Finestra di congestione=massima quantita di dati inviati ma non ancora riscontrati m= = Meccanismo LastByteSent — LastByteAcked < min(CongWin, RevWindow) m= CongWin determinate in base a © Ack duplicato (3 volte) « Timeout = Algoritmo di controllo di congestione basato su + Incremento additivo + Per ogni ack ricevuto CongWin aumenta di un MSS ogni tempo di RTT + Decremento mottiplicativo + CongWin dimezzato ad ogni perdita di pacchetto per ack duplicato « Reazione a eventi di timeout * CongWin resetiata al valore iniziale Transport protocols 3 TCP Controlio della congestione m= SSThreshold separa le regione di slow start e di congestion avoidance + SSThreshoid iniziale= 65 KByte + Dopo una perdita: SSThreshold=max(2,CongWin/2) m= Slow start: aumento esponenziale + All‘inizio della connessione CongWin=MSS = velocita = MSS/RTT * GongWin raddoppia ogni RTT (+1 MSS per ogni ack ricevuto) fino alla prima perdita m= Congestion avoidance: aumento lineare « CongWin aumenta di 1 MSS alla ricezione degli ack sull'intera CongWin inviata m Reazione a un evento di timeout + Sjattua slow start con con CongWin=MSS- m Reazione a un ack duplicato ricevuto 3 volte + TCP Tahoe: Slow start con CongWin=MSS + TCP Reno (oggi pitt utilizzato) + CongWin é dimezzata + Aumento lineare Transport protocols “6TCP Controllo della congestione 14 ao nee TCP serie 2 Reno e 124-—— fe S Ber Oe Soglia Po Se ge 8 & 3 8 64 fh __-_ x gs By a © iz 24 OTT ITT TT 012 3 45 6 7 8 9 10 11 12 13 14 15 Numero di trasmissioni “Traneport protools va TCP Esempio ge 45 = 5 % 40 2 35 8 o_ 30 Bg 20 315 & g ' 2 5 = ao 0 2 4 6 B 10 12 14 16 18 20 22 24 26 Ciclo di trasmissione “ranspon protools 46TCP Gestione finestra Sender Receiver 54: 1001, 4000 byes 4000 Baler 10003000 ] | a TD — Tie Segment 2 v ¥ Time ine ‘Transport protocols a TCP Segmento perso senior Receiver ‘Segment 3 OR Seyment 3. eransmitted Timeout Ok Time Tine Transport protocols 48TCP Segmento perso Segment 1 8295 1301, 200 bes Segment 2 3°95 1401, 200 bytes Seginen rf $89: 1601. 200 byacx ‘OK OK vile ios ‘Time-out $29: 1601, 200 bytes OK ‘Transport protocols ° TCP Riscontro perso . Receiver 1401, 200 bytes ly : \cknowledgment lost a OK OK OK ‘Time ™ Transport protocols .YY APG 15 | bt intano TEL-PX OR LEGSER2