115
Reti (già “Reti di Calcolatori”) Il livello Trasporto: UDP e TCP Renato Lo Cigno http://disi.unitn.it/locigno/index.php/teaching-duties/computer-networks

Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Reti(già “Reti diCalcolatori”)

Illivello Trasporto:UDPeTCP

RenatoLoCigno

http://disi.unitn.it/locigno/index.php/teaching-duties/computer-networks

Page 2: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Copyright

Reti- [email protected] LivelloTrasporto 2

Quest’operaèprotettadallalicenza:

CreativeCommonsAttribuzione-Noncommerciale-Nonoperederivate2.5ItaliaLicense

Peridettagli,consultarehttp://creativecommons.org/licenses/by-nc-nd/2.5/it/

Page 3: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Servizi e protocolli di trasporto

r Fornisconolacomunicazionelogicatraprocessiapplicatividihost differenti

r Eseguononeisistemiterminalimlatoinvio:organizzaimessaggiinsegmenti elipassaallivellodirete

mlatoricezione:riassembla isegmentiinmessaggielipassaallivellodiapplicazione

Applicazione

trasportoretecollegamentofisico

Applicazione

trasportoretecollegamentofisico

Reti- [email protected] LivelloTrasporto 3

Page 4: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Livello trasporto in Internet

• Dueprotocolliditrasportodibasealternativi:TCPeUDP• Modellidiserviziodiversi

o TCPorientatoallaconnessione,affidabile,controllodiflussoecongestione,mantienelostatodellaconnessione

o UDPnonconnesso,non-affidabile,senzastato• Caratteristichecomuni:

o multiplazioneedemultiplazionemedianteleporteo rilevazione(noncorrezione)errorisuheader

• Altriprotocollisonoinfasedidefinizione/deployment:o SCTP(Stream ControlTransmission Protocol)o DCCP(Datagram CongestionControlProtocol)o ...

Reti- [email protected] LivelloTrasporto 4

Page 5: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Posizionamento e visione

• Illivellotrasporto,comequellodiapplicazione,nonhavisibilità dei dettagli della rete

• Lasemantica delprotocollo è end-to-endelaretevienetrattata comeuna scatola nera

• Loscopo “generale”delprotocollo è fornire unaastrazione dicomunicazione ai protocolli dilivelloapplicativo– attraversoserviziastrattidedicati(SAP– ServiceAccessPoint)– chiamatisocket ingergoInternet

Reti- [email protected] LivelloTrasporto 5

Page 6: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Reti - [email protected] - Livello Trasporto 6

Visioned’insieme

Applicaz.

TCP/UDP

IP

L1

L2

IP

L1

L2

L1

L2

IP

L1

L2

L1

L2

Applicaz.

TCP/UDP

IP

L1

L2

datiapplicaz. datiapplicaz.gestioneend-to-enddellaconnessione

datiapplicaz.TCP

dati.TCPIP

L2 datiTCPIPL2 datiTCPIPL2 datiTCPIP

datiapplicaz.TCP

datiTCPIP datiTCPIP

datiTCPIP

Page 7: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

UD

PTC

P

Livelloditrasporto

• Fornisceuncanaleditrasportoend-to-end“astratto”tradueutenti,indipendentementedallarete

• Percompierequestoobiettivo,cometuttiilivelli,illivelloditrasportooffre,attraversodelleprimitive,deiserviziallivellosuperioreesvolgeunaseriedifunzioni

• Servizioffertiallivelloapplicativo:– connection-oriented affidabile

• periltrasferimentodeidativieneattivataunaconnessione• ognipacchetto(à segmento) inviatoviene“riscontrato”inmodoindividuale

– connectionless nonaffidabile• nonvieneattivatanessunaconnessione• inviodelletramesenzaattenderealcunfeedbackdalladestinazionesullacorrettaricezione

– seunatramavienepersanoncisono tentativiperrecuperarla

Reti- [email protected] LivelloTrasporto 7

Page 8: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Funzioni svolte dal livello di trasporto

• Indirizzamentoalivelloapplicativo/multiplazione/demultiplazione– multiplazioneeindirizamentoalivelloapplicativo– scartoPDUmalformateoconerrorinell’header

• Instaurazione,gestioneerilasciodelleconnessioni– sipreoccupadigestirelaconnessione,ovveroloscambiodi

informazioninecessarieperconcordarel’attivazionediuncanaledicomunicazione

• Recuperodeglierrori(suidati)– politicheimplementateeazionidasvolgereincasodierroreo

perditadisegmenti• Consegnaordinatadeisegmenti• Controllodiflusso

– azionepreventivafinalizzataalimitarel’immissionedidatiinreteasecondadellacapacitàend-to-enddiquesta

• Controllodellacongestione– azionidaintraprenderecomereazioneallacongestionedirete

TCP

UDP

Reti- [email protected] LivelloTrasporto 8

Page 9: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Generalità

• GliindirizzidilivelloIPvengonoutilizzatiperl’instradamentodeipacchettiall’internodellareteeidentificanounivocamenteglihost sorgenteedestinazione

• Quandoilpacchettogiungealladestinazioneevienepassatoallivelloditrasportonasceunulterioreproblema:– poichésullivelloditrasportosi

appoggianopiùapplicazioni,com’èpossibiledistinguerel’unadall’altra?

• Siintroduceilconcettodiporta,chenonèaltrocheuncodicecheidentifical’applicazione

Livello 1

Livello 2

IP

Trasporto: TCP - UDP

Appl.1 Appl.2 Appl.3

Reti- [email protected] LivelloTrasporto 9

Page 10: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Indirizzamento: mux/demux

• Ildestinatariofinaledeidatinonèunhostmaunprocessoinesecuzionesull’host

• L’interfacciatraprocessiapplicativiestratotrasportoèrappresentatadauna“porta”o numerointerosu16bito associazionetraporteeprocessio processiserverstandarde“pubblici”sonoassociatiaporta“bennota”,inferiorea1024(es:80perWWW,25peremail)

o processiclienteservernonstandardo“nascosti”usanounaportasuperiorea1024,nelcasodeiclient assegnatadinamicamentedalsistemaoperativo

Reti- [email protected] LivelloTrasporto 10

Page 11: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

• Ilnumerodiportapuòessere– statico(well known port)

• identificativiassociatiadapplicazionistandard(postaelettronica,web,ftp,dns,...)

– dinamico(emphemeral)• identificativiassegnatidirettamentedalsistemaoperativoalmomentodell’aperturadellaconnessione

• Laportasorgenteelaportadestinazionenonsonouguali• L’utilizzodelleporte,insiemeagliindirizziIPsorgentee

destinazione servonoperilmux/demx deidati• Flussooconnessione

– datidiunasingolacomunicazionelogica– unaapplicazionepuò usare più flussi

Indirizzamento: mux/demux

Reti- [email protected] LivelloTrasporto 11

Page 12: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Reti - [email protected] - Livello Trasporto 12

Indentificareunflusso

TCP/UDPIP

Destination portSource port

dati applicaz.

Vers IHL Total lengthFrag. Identification Flags Frag. Offset

Source address

TOS

TTL Protocol Header Checksum

Destination address

Options & Padding:

5-uplacheidentificala

connessione(eilconseguenteflusso)tradueapplicazioni

La5-upla{S-IP,D-IP,PROT,S-Port,D-Port}identificainmodo univocounflussoinqualsiasipuntodellarete...equindiancheall’interfacciatraprotocolloapplicativoeprotocollodi

trasportoinunhost

Page 13: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Formato dei segmenti UDP

• SourcePorteDestination Port[16bit]:identificanoiprocessisorgenteedestinazionedeidati

• Length [16bit]:lunghezzatotale(espressainbyte)deldatagramma,compresol’headerUDP

• Checksum [16bit]:campodicontrollocheservepersapereseildatagrammacorrentecontieneerrori

Destination portSource port

0 8 15 16 24 31

ChecksumLength

DATA

Reti- [email protected] LivelloTrasporto 13

Page 14: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

UserDatagramProtocol

• Protocolloditrasportoconnectionlessnonaffidabile• Svolgesolofunzionediindirizzamentodelleapplicazioni(porte)• NONgestisce:

– connessioni;controllodiflusso– recuperodeglierrori(solorilevamento)– controllodellacongestione;riordinodeipacchetti

• Supportoditransazionisemplicitraapplicativieapplicazionireal-timechetolleranoperdite

• Un’applicazione che usa UDPdeve risolvere problemi diaffidabilità,perdita dipacchetti,duplicazione,controllodisequenza,controllodiflusso,controllodicongestione

• StandardizzatoinRFC768

Reti- [email protected] LivelloTrasporto 14

Page 15: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

ChecksumUDP

Mittente:r Trattailcontenutodel

segmentocomeunasequenzadiinterida16bit

r checksum:somma(complementoa1)icontenutidelsegmento

r Ilmittenteponeilvaloredellachecksum nelcampochecksumdelsegmentoUDP

Ricevente:r calcolalachecksumdelsegmento

ricevutor controllaselachecksumcalcolata

èugualealvaloredelcampochecksum:m No- errorerilevatom Sì- nessunerrorerilevatom Particolaripatterndierrori

possonosfuggire

Obiettivo: rilevaregli“errori”(bitalterati)nelsegmentotrasmesso

Reti- [email protected] LivelloTrasporto 15

Page 16: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Esempio dichecksumUDP

r NotamQuandosisommanoinumeri,unriportodalbitpiùsignificativodeveesseresommatoalrisultato

r Esempio:sommaredueinterida16bit

1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 01 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1

1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 01 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1

a capo

sommachecksum

Reti- [email protected] LivelloTrasporto 16

Page 17: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Tecniche ARQ e protocolli a finestra

• Perottenereaffidabilitàsiusanotecnichediritrasmissioneautomaticadelleinformazionicorrotteoperse– ARQ– Automatic Retransmission reQuest

• Ladecisione(automatica)seritrasmetterel’informazionevienepresainbaseaprotocollichesfruttanofinestreditrasmissioneericezione– stopandwait (finestrapariaunaunitàdati– PDU)– finestredidimensionefissa– finestrecondimensionevariabile

• Servonotecnicheper– rilevarelePDUerrate– rilevarelePDUmancanti

Reti- [email protected] LivelloTrasporto 17

Page 18: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Protezione dagli errori

• bitdiparità(riconosceerroriinnumerodispari)

• codicearipetizione(decisioneamaggioranza:permettedicorreggereerrori)

0 1 1 0 1 0 1 0 00 1 0 0 1 0 1 0 1

0 1 1 0 1 0 1 00 1 1 0 1 0 1 00 1 1 0 1 0 1 0

Reti- [email protected] LivelloTrasporto 18

Page 19: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

• paritàdirigaecolonna(consentelacorrezionedierrorisingoli)

0 1 1 0 1 0 1 00 1 0 0 1 0 0 00 0 0 1 0 1 0 11 1 0 0 0 0 0 11 1 1 0 1 1 0 10 0 0 0 1 1 0 00 1 1 0 0 1 0 10 1 0 0 0 0 0 00 0 1 1 0 1 1 0

Protezione dagli errori

Reti- [email protected] LivelloTrasporto 19

Page 20: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Stopandwait

• Iltrasmettitore:– inviaunaPDUdopoavernefattaunacopia– attivaunorologio(tempoditimeout)– siponeinattesadellaconfermadiricezione(acknowledgment- ACK)

– sescadeiltimeout primadell’arrivodellaconferma,ripetelatrasmissione

• Iltrasmettitore,quandoriceveunACK:– controllalacorrettezzadell’ACK– controllailnumerodisequenza– sel’ACKèrelativoall’ultimaPDUtrasmessaabilitalatrasmissionedellaprossimaPDU

Reti- [email protected] LivelloTrasporto 20

Page 21: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Stop and wait

• Ilricevitore,quandoriceveunaPDU:– controllalacorrettezzadellaPDU– controllailnumerodisequenza– selaPDUècorrettainvialaconfermadiricezione(ACK)– selaPDUèquellaattesa,essavieneconsegnataailivellisuperiori

Reti- [email protected] LivelloTrasporto 21

Page 22: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Stopandwait

Primobitdelpacchettotrasmesso,t=0Mittente Ricevitore

RTT

Ultimobitdelpacchettotrasmesso,t=L/R

ArrivailprimobitArrival’ultimobit,inviaACK

ArrivaACK,invia il prossimopacchetto,t=RTT+L/R

efficienza=L/R

RTT+L/RL=lunghezza delpacchetto (bit)R=capacità della rete(bit/s)

Reti- [email protected] LivelloTrasporto 22

Page 23: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Finestre multi-PDU

• IlprotocolloStopandWait èpocoefficienteperchédopolatrasmissionediognisingolopacchettobisognaattenderelasuaconferma

• PermetterelatrasmissionedipiùdiunaPDUprimadifermarsiinattesadelleconfermemiglioraleprestazioni– TrasmissioneericezioneACKavvengonoin“pipeline”

• DevopoterriconoscerelePDUtrasmesse

Reti- [email protected] LivelloTrasporto 23

Page 24: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Finestra di trasmissione

• LafinestraditrasmissioneWT è“laquantitàmassimadiPDUinsequenzacheiltrasmettitoreèautorizzatoadinviareinretesenzaavernericevutoriscontro(ACK)”

• Ladimensionedellafinestraèlimitatadallaquantitàdimemoriaallocataintrasmissione

• WT rappresentaancheilmassimonumerodiPDUcontemporaneamentepresentisulcanaleoinrete

Reti- [email protected] LivelloTrasporto 24

Page 25: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Finestra di ricezione

• LafinestradiricezioneWR è”lasequenzadiPDUcheilricevitoreèdispostoadaccettareememorizzare”

• Ladimensionedellafinestraèlimitatadallaquantitàdimemoriaallocatainricezione

Reti - [email protected] - Livello Trasporto 25

Page 26: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Finestra di trasmissione

n

pacchetticonfermati

pacchettitxeinattesadiconferma

pacchettichepossono

esseretrasmessi

pacchettichenonpossonoancoraesseretrasmessi

WT

Reti- [email protected] LivelloTrasporto 26

Page 27: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Finestradiricezioneunitaria

n

pacchetticonfermati

pacchettoatteso

pacchettifuorisequenzachenonpossonoessereaccettati

WR

Reti- [email protected] LivelloTrasporto 27

Page 28: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Go Back NGo Back N

• IltrasmettitoreconfinestraN:– inviafinoadN =WT PDU,facendodiognunaunacopia– attivaunsoloorologio(timeout)perleN PDU– siponeinattesadelleconfermediricezione(ACK)– sescadeiltimeout primadellaconfermadiricezioneripetelatrasmissionedituttelePDUnonancoraconfermate

Reti- [email protected] LivelloTrasporto 28

Page 29: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Go Back NGo Back N

• Ilricevitore,quandoriceveunaPDU:– controllalacorrettezzadellaPDU– controllailnumerodisequenza– selaPDUècorrettainvialaconfermadiricezione– selaPDUcontieneilprimonumerodisequenzanonancoraricevuto,vieneconsegnataailivellisuperiori

Reti- [email protected] LivelloTrasporto 29

Page 30: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Selective RepeatSelective Repeat

• NelprotocolloGobackN ilricevitoreaccettasoloPDUinsequenza

• AccettarePDUcorrette,mafuorisequenza,miglioraleprestazioni:Selective repeat

• IlprotocolloSelectiveRepeat usafinestraditrasmissioneefinestradiricezionedidimensionimaggioridi1(disolitodiparidimensione)

• E`necessariocheiltrasmettitoreassociundiversotimeout aciascunaPDUinviataoppurecheilricevitorerichiedaespressamentelaritrasmissionedella/ePDUmancanti

Reti- [email protected] LivelloTrasporto 30

Page 31: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

SemanticadeipacchettidiriscontroSemanticadeipacchettidiriscontro

• Lasemanticaassociataalpacchettodiriscontropuòessere:

– ACKindividuale(oselettivo):sinotificalacorrettaricezionediunpacchettoparticolare.ACK(n)significa“horicevutoilpacchetton”

– ACKcumulativo:sinotificalacorrettaricezionedituttiipacchetticonnumerodisequenzainferioreaquellospecificatonell’ACK.ACK(n)significa“horicevutotuttofinoadn escluso”

– ACKnegativo(NAK):sinotificalarichiestadiritrasmissionediunsingolopacchetto.NAK(n)significa“ritrasmettiilpacchetton”

• TrasmettitoreeRicevitoresidevonoaccordarepreventivamentesullasemanticadegliACK

Reti- [email protected] LivelloTrasporto 31

Page 32: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Piggybacking

• Nelcasodiflussidiinformazionebidirezionali,èsoventepossibilescriverel’informazionediriscontro(ACK)nellaintestazionediPDUdiinformazionecheviaggianonelladirezioneopposta

• Sirisparmialatrasmissionediunpacchettoalivellorete

Reti- [email protected] LivelloTrasporto 32

Page 33: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Finestra di ricezione > di 1Finestra di ricezione > di 1

nPDU

confermateeconsegnate

allivellosuperiore PDUattese

PDUfuorisequenzachenonpossonoessereaccettate

WR

PDUdaconsegnare

allivellosuperiore

Reti- [email protected] LivelloTrasporto 33

Page 34: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

NumerazionePDU

• LanumerazionedellePDUèciclica:– kbitdinumerazione– numerazionemodulo2k

– WT +WR <2k

0

1

2

34

5

6

7WT

WR

3bitdinumerazione

W

WR

T

=

=

1

3Reti- [email protected] LivelloTrasporto 34

Page 35: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Selective RepeatSelective Repeat

• Iltrasmettitore:– trasmettefinoadN =WT PDUsenzaricevereACK– perciascunainizializzauntimeout– quandoriceveunACKrelativoadunaPDUlatogliedallafinestraditrasmissioneetrasmetteunanuovaPDU

– sescadeuntimeout ritrasmetteselettivamentelaPDUrelativaall’ACK(ere-inizializzailtimeout)

– quandoritrasmetteunaPDUpuò• fermarsifinoaquandoharicevutol’ACKdiquestaPDU• continuareatrasmetterePDUnuoveseladinamicadellafinestraedegliACKrelativiallealtrePDUloconsente

Reti- [email protected] LivelloTrasporto 35

Page 36: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Selective RepeatSelective Repeat

• Ilricevitore:– riceveunaPDU– controllalacorrettezzadellaPDU– controllailnumerodisequenza– selaPDUècorrettaedinsequenzalaconsegnaallivellosuperiore

– selaPDUècorrettamanoninsequenza:• seèentrolafinestradiricezionelamemorizza• seèfuoridallafinestradiricezionelascarta

– inviaunACK• relativoallaPDUricevuta(ACKselettivi)• relativoall’ultimaPDUricevutainsequenza(ACKcumulativi)

Reti- [email protected] LivelloTrasporto 36

Page 37: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Prestazioni protocolli a finestra

esempio:collegamentoda1Gbps,ritardodipropagazione15ms,pacchettida1kbit:

Ttrasm= 8 kb/pacc109 b/sec = 8 microsec

Ø Umitt :utilizzo èlafrazioneditempoincuiilmittenteèoccupatonell’inviodibit

Ø Unpacchettoda1KBogni30msec ->throughput di33kB/secinuncollegamentoda1Gbps

Ø Ilprotocolloditrasportolimital’usodellerisorsefisiche!

Umitt =

0,008

30,008= 0,00027

L / RRTT + L / R

=

L (lunghezza del pacchetto in bit)R (tasso trasmissivo, bps) =

Reti- [email protected] LivelloTrasporto 37

Page 38: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

stop-and-wait

Primo bit del pacchetto trasmesso, t = 0

Mittente Ricevente

RTT

Ultimo bit delpacchetto trasmesso, t = L / R

Arriva il primo bitArriva l’ultimo bit, invia ACK

Arriva ACK, invia il prossimo pacchetto, t = RTT + L / R

Umitt =

0,008

30,008= 0,00027

L / RRTT + L / R

=

Reti- [email protected] LivelloTrasporto 38

Page 39: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Finestra > 1 à Pipelining

Pipelining: ilmittenteammettepiùpacchettiintransito,ancoradanotificarem bufferingdeipacchettipressoilmittenteericeventeper

ritrasmissioni

Reti- [email protected] LivelloTrasporto 39

Page 40: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Pipelining: aumento dell’utilizzo

Mittente Ricevente

RTT

Ultimo bit del primopacchetto trasmesso, t = L / R

Arriva il primo bit del primo pacchetto

Arriva l’ultimo bit del primo pacchetto,invia ACK

Arriva ACK, invia il prossimo pacchetto, t = RTT + L / R

Arriva l’ultimo bit del secondo pacchetto,invia ACKArriva l’ultimo bit del terzo pacchetto,invia ACK

Umitt =0,024

30,008= 0,0008

3 * L / RRTT + L / R

=

Aumento l’utilizzodiunfattoreWT

Primo bit del primopacchetto trasmesso, t = 0

WT =3;

WT >3trasmetto3pacchetti primadifermarmi

Reti- [email protected] LivelloTrasporto 40

Page 41: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

TCP...finalmente

• Il“Transmission ControlProtocol”èunprotocolloafinestraconACKcumulativieritrasmissioniselettive

• Lafinestradiricezioneetrasmissionepossonoesserevariatedinamicamentedurantelacomunicazione– versioniepatchsuccessivelohannoresounodeiprotocollipiùcomplessidellasuitediInternet

• TCPèorientatoallaconnessione• Affidabile• Implementacontrollodiflusso• Cercadicontrollareiltrafficoiniettatoinfunzionedella

congestionenellarete

Reti- [email protected] LivelloTrasporto 41

Page 42: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

TCP: riferimenti bibliografici

• RichardStevens:TCPIllustrated,vol.1-2-3• RFC793(1981) :Transmission ControlProtocol• RFC1122/1123 (1989) :Requirements forInternetHosts• RFC1323(1992) :TCPExtensionsforHighPerformance• RFC2018(1996) TCPSelective Acknowledgment Options • RFC2581:TCPCongestionControl• RFC2582:TheNewReno Modification toTCP's FastRecovery

Algorithm• RFC2883:AnExtensiontotheSelectiveAcknowledgement(SACK)

OptionforTCP• RFC2988: ComputingTCP's Retransmission Timer• ...• ...

Reti- [email protected] LivelloTrasporto 42

Page 43: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

TCP: compiti

• Fornisceporteper(de)multiplazione• UnaentitàTCPdiunhost,quandodevecomunicareconun’entità

TCPdiunaltrohost,creaunaconnessionefornendounserviziosimileaduncircuitovirtualeo bidirezionale(fullduplex) o concontrollodierroreedisequenza

• Mantieneinformazionidistatoneglihost perogniconnessione• TCPsegmentaeriassembla idatisecondolesuenecessità:

• trattastream didati(byte)nonstrutturatidailivellisuperiori• nongarantiscenessunarelazionetrailnumerodiread equellodiwrite (buffertraTCPelivelloapplicazione)

Reti- [email protected] LivelloTrasporto 43

Page 44: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Identificazione di connessioni

• UnaconnessioneTCPtradueprocessièdefinitadaisuoiendpoints(puntiterminali),univocamenteidentificatidaunsocket:o IndirizziIPhost sorgenteehostdestinazione

o NumeridiportaTCPhostsorgenteehost destinazione

• Nota:TCPoUDPusanoporteindipendenti

• Esempio:connessioneTCPtraporta15320host 130.192.24.5eporta80host 193.45.3.10

Destination portSource port

Vers IHL Total length

Frag. Identification Flags Frag. Offset

Source address

TOS

TTL Protocol Header Checksum

Destination address

Options & Padding:

Reti- [email protected] LivelloTrasporto 44

Page 45: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Trasmettitore TCP

• Suddivideidatidell’applicazioneinsegmenti• UsaprotocolloafinestraconWT ≥ 1• Attivatimerquandoinviaisegmenti:

o segmentinonconfermatialloscaderedeltimer(Retransmission TimeOut - RTO)provocanoritrasmissioni

• StimaRTTperimpostareRTO• Calcolaetrasmettechecksum obbligatoriosuheader edati• Regolavelocitàcondimensionefinestra

o controllodiflussoecongestione

Reti- [email protected] LivelloTrasporto 45

Page 46: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Ricevitore TCP

• Riordinasegmentifuorisequenzaescartasegmentierratio consegnastream ordinatoecorrettoaprocessoapplicativo

• InviaACKcumulativi• AnnuncianegliACKlospazioliberonelbufferdiricezioneper

controllarevelocitàtrasmettitore(controllodiflusso)

Reti- [email protected] LivelloTrasporto 46

Page 47: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Ricevitore TCP

• Segmentocorrettoedinsequenza• Memorizza(edeventualmenteconsegnaallivellosuperiore)edinviaACKcumulativo

• Segmentoduplicato• ScartaedinviaACKrelativoall’ultimosegmentoricevutoinsequenza

• Segmentoconchecksum errato• ScartasenzainviareACK

• Segmentofuorisequenza• MemorizzaedinviaACKrelativoall’ultimosegmentoricevutoinsequenza(ACKduplicato)

Reti- [email protected] LivelloTrasporto 47

Page 48: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

TCP: generazione ACK

Eventi

arrivo segmento in ordine, inviato ACK correttamente per tutti segmenti precedenti

arrivo segmento fuori sequenzacon numero maggiore di quello atteso: vuoto rilevato

arrivo di segmento che riempie vuoti parzialmente o completamente

Azioni ricevitore TCP

invia ACK

invia ACK duplicato, indicando come numero di sequenza il prossimo byte che si attendedi ricevere

ACK immediato, indicando come numero di sequenza il prossimo byte che si attendedi ricevere

Reti- [email protected] LivelloTrasporto 48

Page 49: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Throughput ottenibile

• Generico protocollo afinestra:lavelocità ditrasmissione inassenza dierrori è

o Connessioni “corte”ottengonobandamaggiore aparità difinestra

• Perregolare velocità ditrasmissione posso agire suo roundtriptimeo dimensione finestra

time tripRoundione trasmissdi Finestra

Reti- [email protected] LivelloTrasporto 49

Page 50: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Controllo di flusso

• TCPimpiegauncontrolloend-to-endbasatosucontrollodelladimensionedellafinestradeltrasmettitore:o evita che unhostveloce saturi unricevitore lentoo ilricevitoreimponeladimensionemassimadellafinestradeltrasmettitore,indicandonegliACKlafinestradiricezionedisponibile

o valoredinamicochedipendedall’allocazionedelsistemaoperativoedallaquantità didati ricevuti enonancora lettidall’applicazione

Reti- [email protected] LivelloTrasporto 50

Page 51: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Controllo di congestione

• Deveevitarecheglihost nelloroinsiemesianotroppoaggressivisaturandolarete

• Nonpossotrasmetteresempreallavelocitàmassimaconsentitadalricevitore

• Selafinestraditrasmissioneè maggiore del valorepercuiilbitrateintrasmissionesuperacapacitàdelcollodibottigliao simemorizzanodatineibufferlungoilpercorso,ecresceroundtriptime

o siperdonodatineibufferdeinodiintermedi

Reti- [email protected] LivelloTrasporto 51

Page 52: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

LaPDUTCP

• LaPDUdiTCPèdettasegmento• Ladimensionedeisegmentipuòvariaredalsoloheader

(ACK,20byte)finoadunvaloremassimoMSSconcordatoconilricevitoreedipendentedallaMTUIP

• Ladimensionedelsingolosegmentodipendedallostreamdeilivellisuperiori

HEADER 20 B

VARIABLEDATA

LENGTH (0 - MSS)

Reti- [email protected] LivelloTrasporto 52

Page 53: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

0 4 8 16 19 24 32

Source Port Destination Port

Sequence Number

Acknowledgment Number

Checksum

Options

Window

Urgent Pointer

HLEN Resv Control flag

Padding

TCP header

Reti- [email protected] LivelloTrasporto 53

Page 54: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

TCP header

Sequence Number

Acknowledgment Number

0 15 31

HLEN Resv. Receiver window

checksum Urgent Pointer

flags

Source Port Number Dest Port Number

Identificanol’applicazionechestainviandoericevendodati.CombinaticonirispettiviindirizziIP,identificanoinmodounivocounaconnessione

Reti- [email protected] LivelloTrasporto 54

Page 55: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

TCP header

• Identifica,nellostream didati,laposizionedelprimobytedelpayload delsegmento

• Numerazioneciclicasu32bit• Ognidirezionedella

connessioneprocedeconnumeridisequenzadiversieindipendenti

Acknowledgment Number

0 15 31

HLEN Resv. Receiver window

checksum Urgent Pointer

flags

Source Port Number Dest Port Number

Sequence Number

Reti- [email protected] LivelloTrasporto 55

Page 56: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

0 15 31

HLEN Resv. Receiver window

checksum Urgent Pointer

Source Port Number Dest Port Number

Sequence Number

Acknowledgment Number

flags

Numero di sequenza più 1 dell’ultimo byte di dati ricevuto correttamente e in sequenza

Ovvero il prossimo byte che il ricevitore si aspetta di ricevere

Valido solo con ACK flagsettato

TCP header

Reti- [email protected] LivelloTrasporto 56

Page 57: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Numeri di sequenza e di ack

Host A Host B

Utente preme tasto

‘C’

host confermaricezionedell’eco

‘C’

hostconferma ricezionedi ‘C’, ed invia echo

tempoEsempio di sessione telnet

Reti- [email protected] LivelloTrasporto 57

Page 58: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

0 15 31

checksum Urgent Pointer

flags

Source Port Number Dest Port Number

Sequence Number Lunghezza dell’header in parole di 32 bit

Acknowledgment Number

HLEN Resv. Receiver window

TCP header

Reti- [email protected] LivelloTrasporto 58

Page 59: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

0 15 31

checksum Urgent Pointer

flags

Source Port Number Dest Port Number

Sequence Number

RiservatI per usi futuri(es. ECN – ExplicitCongestion Notification)

Acknowledgment Number

HLEN Resv. Receiver window

TCP header

Reti- [email protected] LivelloTrasporto 59

Page 60: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Gestioneconnessione • Seibitdiflag,unoopiùpossonoesseresettatiinsieme:o URG:urgentpointervalidoo ACK:numerodiackvalidoo PSH:forzapassaggiodatiapplicazione

o RST:resetconnessioneo SYN:synchronizeseq.No.Aperturaconnessione

o FIN:chiusuraconnessione

0 15 31

checksum Urgent Pointer

Source Port Number Dest Port Number

Sequence Number

Acknowledgment Number

HLEN Resv. Receiver windowflags

TCP header

Reti- [email protected] LivelloTrasporto 60

Page 61: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

0 15 31

checksum Urgent Pointer

flags

Source Port Number Dest Port Number

Sequence Number

Numero di byte, a partire da quello nel campo di ACK, che il ricevitore è disposto ad accettare per controllo di flussoValore massimo rwnd65535 byte se non si usa l’opzione “window scale”

Acknowledgment Number

HLEN Resv. Receiver window

TCP header

Reti- [email protected] LivelloTrasporto 61

Page 62: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Finestra e Throughput

• MassimaquantitàdidatiintransitoperRTT:o 16-bitrwnd = 64KBmax

• RTT=100msProdotto banda xritardo dato

BandaT1 (1.5Mbps) Ethernet (10Mbps) T3 (45Mbps) FastEthernet (100Mbps) STS-3 (155Mbps) STS-12 (622Mbps) STS-48 (2.5Gbps)

banda x ritardo18KB

122KB549KB1.2MB1.8MB7.4MB

29.6MB

Reti- [email protected] LivelloTrasporto 62

Page 63: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

0 15 31

flags

Source Port Number Dest Port Number

Sequence Number

Checksum obbligatorio su header e dati, più pseudo-header che include indirizzi IP e tipo di protocollo (violazione del principio di stratificazione OSI)

Acknowledgment Number

HLEN Resv. Receiver window

checksum Urgent Pointer

TCP header

Reti- [email protected] LivelloTrasporto 63

Page 64: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

• Algoritmodichecksumo allineamentodiheader,datie

pseudo-header su16bito sommaincomplementoa1di

ognirigao siottienenumeroa32bit,che

sidivideinduepartidi16bito sommaincomplementoa1

delledueparti,inclusoilriporto

o inserisconell’header i16bitrisultanti

0 15 31

flags

Source Port Number Dest Port Number

Sequence Number

Acknowledgment Number

HLEN Resv. Receiver window

checksum Urgent Pointer

TCP header

Reti- [email protected] LivelloTrasporto 64

Page 65: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

0 15 31

flags

Source Port Number Dest Port Number

Sequence Number

Acknowledgment Number

HLEN Resv. Receiver window

checksum Urgent Pointer

Puntatore a “dati urgenti” nelcampo dati (es. ctrl-C in unasessione telnet).Offset rispetto al num. di seq.

Valido solo se flag URG èsettato

TCP header

Reti- [email protected] LivelloTrasporto 65

Page 66: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Instraurazione della connessione

• L’instaurazionedellaconnessioneavvienesecondolaproceduradettadi“three-wayhandshake”

• lastazionecherichiedelaconnessione(A)inviaunsegmentodiSYN

• parametrispecificati:numerodiportadell’applicazionecuisiintendeaccedereeInitial SequenceNumber (ISN-A)

• lastazionechericevelarichiesta(B)rispondeconunsegmentoSYN

• parametrispecificati:ISN-Beriscontro(ACK)ISN-A

• lastazioneAriscontrailsegmentoSYNdellastazioneB(ISN-B)

Reti- [email protected] LivelloTrasporto 66

time

A B

SYN(PortA,PortB,ISN-A)=x

SYNACK(PortB,PortA, ISN-B=Y,ACK=x+1)

ACK(PortA, PortB,ACK=y+1

Page 67: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Come si calcola MSS

• MSSdipendedallaMTU(MaximumTransferUnit)dellivelloIP,cheasuavoltadipendedallivelloData-LinkdelcollegamentoconMTUpiùpiccolalungoilpercorso

• PurtroppononesistonomeccanismidisegnalazionepercomunicareMSS

• TCPpuòcercaredistimarelaMTUminimaconunmeccanismodi“trialanderror”

• Provasegmentisemprepiùgrossifinoaquandounovienescartatoperdimensioneeccessivaeildispositivochel’hascartatomandaunmessaggioICMP(v.livellorete)almittente

• ...purtropponontuttiidispositivirispondono...• Default:MSS=1460(1500tramaethernet– 40bytes diheaders)• Default“minimo”:MSS=536

Reti- [email protected] LivelloTrasporto 67

Page 68: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

TerminazionedellaConnessione

• Poichélaconnessioneèbidirezionale,laterminazionedeveavvenireinentrambeledirezioni

• Proceduraditerminazione“gentle”– lastazionechenonhapiùdatidatrasmettereedecidedichiuderelaconnessioneinviaunsegmentoFIN(segmentoconilcampoFINpostoa1eilcampodativuoto)

– lastazionechericeveilsegmentoFINinviaunACKeindicaall’applicazionechelacomunicazioneèstatachiusanelladirezioneentrante

• Sequestaproceduraavvienesoloinunadirezione(half close),nell’altrailtrasferimentodatipuòcontinuare(gliACKnonsonoconsideraticometrafficooriginato,macomerispostaaltraffico)

– perchiuderecompletamentelaconnessione,laproceduradihalf close deveavvenireanchenell’altradirezione

Reti- [email protected] LivelloTrasporto 68

Page 69: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

TerminazionedellaConnessione

Reti- [email protected] LivelloTrasporto 69

time

A B

FIN(PortA,PortB)

FINACK(PortB,PortA)

DATA()

ACK()DATA()

ACK()

FIN(PortB,PortA)

FINACK(PortA,PortB)

Page 70: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

TerminazioneconRST

• Laterminazione“gentle”è moltolenta ecomplessa,esi presta aattacchi DoS

• Lamaggior partedelle applicazionimoderne (soprattutto i grandiwebserver)terminano laconnessione conunsingolo RST

• RSTnasce come“disasterrecovery”perliberare lerisorse logicheincaso diimpossibilitàdicomunicazione

• Sel’altroend-pointdellaconnessionericeveRSTliberaancheluilerisorselogiche

Reti- [email protected] LivelloTrasporto 70

time

A B

RST(PortA,PortB)

Page 71: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Gestione del timeout

• Iltimeout (RTOà RetransimissionTimeOut)indicailtempoentroilqualelasorgentesiaspettadiricevereilriscontro(ack)– nelcasoincuiilriscontrononarrivi,lasorgenteprocedeallaritrasmissione

• RTOnonpuòessereunvalorestaticopredefinito– iltempodipercorrenzasperimentatodaisegmentièvariabileedipende

• dalladistanzatrasorgenteedestinazione• dallecondizionidellarete• dalladisponibilitàdelladestinazione

– esempio:fattorinochedeveconsegnareunpaccoincittà• RTOdevedunqueesserecalcolatodinamicamentedivoltainvolta

– durantelafasediinstaurazionedellaconnessione– durantelatrasmissionedeidati

• IlcalcolodiRTOsibasasullamisuradelRTT(RoundTripTime)– RTT:intervalloditempotral’inviodiunsegmentoelaricezionedel

riscontrodiquelsegmento

Reti- [email protected] LivelloTrasporto 71

Page 72: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Stima del Round Trip Time

• PoichéRTTpuòvariareanchemoltoinbaseallecondizionidellarete,ilvalorediRTT(SRTT,Smoothed RTT)utilizzatoperilcalcolodiRTOrisultaunastimadelvalormediodiRTTsperimentatodaidiversisegmenti

• Ilparametroαèregolabilee,asecondadeivaloriassunti,rendeilpesodellamisuradiRTTistantaneopiùomenoincisivo– seαà 0ilSRTTstimatorisultaabbastanzastabileenonviene

influenzatodasingolisegmentichesperimentanoRTTmoltodiversi– seαà 1ilSRTTstimatodipendefortementedallamisurapuntualedei

singoliRTTistantanei– tipicamenteα=0.125=(1/8)

SRTT = (1- α) SRTT + α RTT

RTT = valore del campione attuale di RTT SRTT = stima smoothed di RTT

Reti- [email protected] LivelloTrasporto 72

Page 73: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Stima del Round Trip Time

• Tipicamenteb=0.25=(1/4)• LaRTTVARpuòancheesseremoltomaggiorediSRTT• Lasuastimausaunfiltromenostretto,percuilastimaèpiù

“reattiva”• ConosceremediaevarianzadiRTTserveaimpostare

correttamenteiltimeout diritrasmissione

RTTVAR = (1- b) RTTVAR + b |SRTT – RTT|

RTTVAR = stima smoothed della varianza di RTT

Reti- [email protected] LivelloTrasporto 73

Page 74: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Stima di RTO

• RTO=SRTT+4RTTVAR

• LasorgenteattendeilRTTmedio(SRTT)piùquattro voltelasua varianza (RTTVAR)primadiconsiderareilsegmentopersoeritrasmetterlo

• Incasodiritrasmissione,ilRTOperquelsegmentovienericalcolatoinbaseadunprocessodiexponential backoff– seèscadutoilRTO,probabilmentec’è

congestione,quindimeglioaumentareilRTOperquelsegmento

– RTO-retransmission=2*RTO• RTOvieneriportatoalsuovalore“calcolato”senza

backoff dopolatrasmissionecorrettadiunsegmentonuovo

A Bsegm. X

ACKRTT

RTO

RTO’

segm. X+1

segm. X+1

ACK

segm. X+3

RTO

segm. X+3ACK

segm. X+2

ACK

RTO

segm. X+4

segm. X+4

ACK

ACK

segm. X+3

Reti- [email protected] LivelloTrasporto 74

Page 75: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Esempio di stima di RTT:

RTT: gaia.cs.umass.edu e fantasia.eurecom.fr

100

150

200

250

300

350

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106

tempo (secondi)

RTT

(mill

isec

ondi

)

Campione RTT Stime di RTT

Reti- [email protected] LivelloTrasporto 75

Page 76: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Stima di RTT e RTO

• RTOhaunvaloreminimo(normalmenteintornoa200ms)eunomassimo(normalmente60seoltre)

• Implementazionimoderneusanol’opzione“timestamp”perilcalcolodiRTT,maiprincipibasediadattamentoallecondizionidellareterimanelostesso:– vienestimatounvaloremedioeunadeviazionemediadiRTT– RTOvienecalcolatoinbaseaquestivalorimedi

• Nelleimplementazioni,inoltre,sitienecontodialtrifattorichepossonoinfluenzareilcalcolodiRTTediRTO:– esempio:ilRTTdeisegmentiritrasmessidovrebbeinfluenzareilSRTTequindiilRTO?

Reti- [email protected] LivelloTrasporto 76

Page 77: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Congestione: generalità

• Incasodicongestionedellarete,acausadeibufferlimitatidegliapparatidirete,alcunisegmentipotrebberovenirepersi

• Laperditadeisegmentieilrelativoscaderedeltimeout diritrasmissioneèconsideratounsintomodicongestione– ilTCPnonhaaltrimezziperconoscerelostatodellarete

• Lasorgentedovrebbeessereingradodireagirediminuendoiltassodiimmissionedeinuovisegmenti

• Questareazionevienedetta“controllodellacongestione”– sidifferenziadalcontrollodiflussocheinvecedefiniscetecnicheperevitareilsovraccaricodelricevitore

Reti- [email protected] LivelloTrasporto 77

Page 78: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Congestione:cause

• Leritrasmissioni rischiano diessere inutili nel caso incuiipacchetti vengono buttati viapermancanza dirisorse

• Cos’è lacongestioneecomesi genera?• Congestione:lostato diuna reteincuiil traffico offerto η è

maggiore della capacità delal reteC– normalizzando ρ =η/Callora ρ >=1significa congestione

• Esempio disingolo collo dibottiglia

100 Mbit/sS2

S3

S50

S1

...ricevitori

Reti- [email protected] LivelloTrasporto 78

Page 79: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Cause/costi della congestione:1

r duemittenti,duedestinatari

r unrouterconbufferillimitati

r nessunaritrasmissione

• throughputmassimo

• ritardo“infinito”

Reti- [email protected] LivelloTrasporto 79

Page 80: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Cause/costi della congestione: 2

r unrouter,bufferfinitir ilmittenteritrasmetteilpacchettoperduto

Buffer finiti e condivisi per i collegamenti in uscita

Host A λin : dati originari

Host B

λout

λ'in : dati originaripiù dati ritrasmessi

Reti- [email protected] LivelloTrasporto 80

Page 81: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Cause/costi della congestione: 3

r Quattromittentir Percorsimultihopr timeout/ritrasmissione

λinD: Che cosa accade quando

e aumentano?λin

Host Aλin : dati originari

Host B

λout

λ'in : dati originaripiù dati ritrasmessi

Buffer finiti e condivisi per i collegamenti in uscita

Reti- [email protected] LivelloTrasporto 81

Page 82: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Cause/costi della congestione: 3

Unaltro“costo”dellacongestione:r Quandoilpacchettovienescartato,lacapacitàtrasmissiva

utilizzatasuicollegamentidiupstream perinstradareilpacchettorisultasprecata!

Host A

Host B

λout

Reti- [email protected] LivelloTrasporto 82

Page 83: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Approcci al controllo della congestione

Controllodicongestioneend-to-end:r nessunsupportoesplicito

dallareter lacongestioneèdedotta

osservandoleperditeeiritardineisistemiterminali

r metodoadottatodaTCP

Controllodicongestioneassistitodallarete:r irouterfornisconoun

feedbackaisistemiterminalim unsingolobitperindicarela

congestione(SNA,DECbit,TCP/IPECN,ATM)

m comunicareinmodoesplicitoalmittentelafrequenzatrasmissiva

Reti- [email protected] LivelloTrasporto 83

Page 84: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Congestion Window

• Incasodicongestioneilcontrollodiflussorallentalasorgente– selareteècongestionata,arriverannomenoriscontriequindiiltassodiimmissionediminuisceautomaticamente

• Ladimensionedellafinestraè ottimale?No!

• Soluzioneperilcontrollodellacongestioneà variaredinamicamenteladimensionedellafinestraditrasmissione– ladimensionedellafinestranonèdecisaaprioriestatica,masiadattaallesituazioni(stimate)dicarico

– talefinestrascorrevoleevariabilevienedenominata“congestionwindow”(CWND)

Reti- [email protected] LivelloTrasporto 84

Page 85: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Esempio

A B56

789

10

111213141516

17

5 6 7 8 9 10 11 12 13 144 15 16 17 18

5 6 7 8 9 10 11 12 13 144 15 16 17 18

5 6 7 8 9 10 11 12 13 144 15 16 17 18

5 6 7 8 9 10 11 12 13 144 15 16 17 18

5 6 7 8 9 10 11 12 13 144 15 16 17 18

1213

RTO

Reti- [email protected] LivelloTrasporto 85

Page 86: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Algoritmi di controllo della congestione

• Esistonodiversialgoritmicheregolanoladimensionedellafinestra(CWND)alvariaredellecondizionidirete

• Iduealgoritmibasesono:– SlowStart– CongestionAvoidance

• Altrialgoritmisonostatidefinitiperaumentarel’efficienzadelTCPincasodiperdita(alpostodelRTO)– FastRetransmit– FastRecovery– SACK

Reti- [email protected] LivelloTrasporto 86

Page 87: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Slow Start e Congestion Avoidance

• Sonoduediversialgoritmicheregolanoladimensionedellafinestra(l’utilizzodiunoescludel’utilizzodell’altro)

• SlowStart– perciascunriscontroricevutolaCWNDpuòaumentarediunsegmento– questoimplicache,quandosiriceveunriscontro,sitrasmettonoduenuovi

segmenti(enonunosolocomenelcasoincuilaCWNDrimanefissa)– l’evoluzionedellaCWNDhaunandamentoesponenziale

• alprimoRTTlaCWND=1,ricevutoilriscontroCWND=2,ricevutiidueriscontriCWND=4,...

• Congestion avoidance– perciascunriscontroricevuto,lafinestraaumentodi1/CWND(CWNDè

espressainnumerodisegmenti)– questoimplicacheadogniRTT,incuisiricevonounnumerodiriscontripari

allaCWND,laCWNDaumentadiunsegmento– l’evoluzionedellaCWNDhaunandamentolineare

Reti- [email protected] LivelloTrasporto 87

Page 88: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Slow Start e Congestion Avoidance

• Durantelafase SSalla ricezione diogni ACKvalido enonduplicato

CWND=CWND+MSS

• Durantelafase CAalla ricezione diogni ACKvalido enonduplicato

CWND=CWND+MSS/CWND

Reti- [email protected] LivelloTrasporto 88

Page 89: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Esempio: Slow Start

CWND

tempoRTT

2

4

6

8

5 6 7 8 9 10 11 12 13 144 15 16 17 18 18

5 6 7 8 9 10 11 12 13 144 15 16 17 18 18

5 6 7 8 9 10 11 12 13 144 15 16 17 18 18

5 6 7 8 9 10 11 12 13 144 15 16 17 18 18

A B4

56

7...10

11......18

NOTA: per semplificare la rappresentazione grafica, si assume che i segmenti vengano generati e trasmessi tutti nello stesso istante e i corrispettivi riscontri vengano ricevuti di conseguenza tutti insieme dopo un tempo pari a RTT (supposto costante)

Reti- [email protected] LivelloTrasporto 89

Page 90: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Esempio: Congestion Avoidance

5 6 7 8 9 10 11 12 13 144 15 16 17 18 18

A B567

89

1011

1213141516

5 6 7 8 9 10 11 12 13 144 15 16 17 18 18

5 6 7 8 9 10 11 12 13 144 15 16 17 18 18

CWND

tempoRTT

2

4

6

8

Reti- [email protected] LivelloTrasporto 90

Page 91: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Evoluzione della CWND

• CongestionWindow(CWND)– dimensionedellafinestra(espressainbyteoinnumerodisegmenti)di

trasmissione• Receive Window(RECWND)

– dimensionedellafinestradiricezione(espressainbyteoinnumerodisegmenti)annunciatadalladestinazione;èillimitemassimochelaCWNDpuòassumere

• SlowStartThreshold (SSTHRESH)– dimensionedellafinestra(espressainbyteoinnumerodisegmenti)

raggiuntalaquale,invecediseguirel’algoritmodiSlowStart,siseguel’algoritmodiCongestionAvoidance

• RTT:tempotrascorsotral’inviodiunsegmentoelaricezionedelriscontro;incondizionidistabilitàdellareteedelcarico,RTTrimanepressochécostante

• RTO:tempochelasorgenteaspettaprimadiritrasmettereunsegmentononriscontrato

Reti- [email protected] LivelloTrasporto 91

Page 92: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Evoluzione della CWND

• L’algoritmocheregolaladimensionedellaCWNDèilseguente:– all’iniziodellatrasmissionesipone

• CWND=1segmento(ovverounnumerodibytepariaMSS)• SSTHRESH=RCVWNDoppureSSTHRESH=RCVWND/2(dipendedalleimplementazioni)

– laCWNDevolvesecondol’algoritmodiSlowStartfinoalraggiungimentodellaSSTHRESH

– raggiuntalasogliaSSTHRESH,ladimensionediCWNDèregolatadall’algoritmodiCongestionAvoidance

– lafinestracrescefinoalraggiungimentodiRCVWND

Reti- [email protected] LivelloTrasporto 92

Page 93: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Evoluzione CWND senza perdite

• SlowStart+CongestionAvoidance+RCWND

Reti- [email protected] LivelloTrasporto 93

t[RTT]

CWND[#se

g.]

2

4

8

RCWND=12

SSHRT=RCWND/2=6

Page 94: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Throughput

• Abbiamovistocheilthroughputdiunprotocolloafinestra(fissa)èdatodallaformula Thr[bit/s]=DF[byte]*8/T[s]

• doveTèladuratadellatrasmissioneeDFladimensionedellafinestra

• Eperunprotocolloafinestravariabile?• Dipenderàdallafinestraistanteperistanteequindinellungoperiodo

dall’integraledellafinestraneltempo

Thr [bit/s]= ⎰DF(t)dt

Reti - [email protected] - Livello Trasporto 94

T

Page 95: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Throughput

• PeraverebuoneprestazionièfondamentalecheTCPmantengalagiustadimensionedellafinestra

• SeRCVWNDètroppograndeipacchettisiaccumulanoneibufferdellareteaumentandoRTT...equindiladuratadellaconnessionepertrasferireunadataquantitàdidati

• Questaèunaformadicongestioncontrol• Funzionamoltobenequandoilcollodibottigliaèillinkal

trasmettitore:ipacchettisiaccumulanonelSOdell’hostcherappresentaunbuffermoltogrande

• RCVWNDèilmassimo,macosaaccadeincasodicongestioneeperdite?

Reti - [email protected] - Livello Trasporto 95

Page 96: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Recupero delle perdite

• TCPrecuperaleperditeconduemeccanismi• ScadenzaRTO• Ricezionedi3ACKduplicati(4ACKuguali)-->FastRetransmit• InognicasoTCPritrasmetteilpacchettoperso(ilprimodellafinestra

percostruzione)egliACKcumulativigarantisconocheilmeccanismosiaditiposelective-repeat.

• SescadeRTOTCP“ricominciadacapo”• SesiusaFastRetransmit TCPloabbinaaunmeccanismochesi

chiamaFastRecovery ilcuiscopoèdimezzarelafinestraalmomentodellaperditaeentrareincongestionavoidance

• Vediamoidiversicasiindettaglio...

Reti - [email protected] - Livello Trasporto 96

Page 97: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Recupero con RTO

AllascadenzadiRTOTCP:1. RTO=RTO*2;SSHTHR=CNGWND/22. CNGWND=MSS(1segmento)3. Ritrasmetteilprimosegmentodellafinestra4. Attendediriceverel’ACK5. Quando(ese)riceveACK:WLow =(ACKNumber)6. Se(ACKNumber)>WUp

ricominciafunzionamentonormaleAltrimenti

ritrasmetteunsegmentoricominciandodalpunto37. SescadeRTOricominciadalpunto1.per10volte;eperulteriori

6voltesenzaincrementareRTO...poisiarrende

Reti - [email protected] - Livello Trasporto 97

Page 98: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

RecuperoconRTO

Reti- [email protected] LivelloTrasporto 98

A B1011121314

15

ignoreIgnoreignore

RagioniamoasegmentiWLow =10;CNGWND=5;WUp =14FaseCongestion AvoidanceSegmentopersoNo.11

XA11

A11 DupACKA11 DupACKA11 DupACK

A11 DupACK

ignore

LafinestraNONcresceperchénonsonostatiricevutiCNGWNDACK

~~ ~~RTO Expires Ret 11

RTO = RTO*2A16

Fine recupero 16

WLow =16;CNGWND=1;WUp =16SSTHR=5*MSS/2Riparteinslowstart

Page 99: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

RecuperoconRTO

Reti- [email protected] LivelloTrasporto 99

Dinamicadellafinestra:RTT=20ms;RTO=200ms;RCWND=40segmenti(~64K)

Lafinestrainquestasliderappresentailnumeroeffettivodisegmenti inviatinelRTT

t[RTT]

CWND[#se

g.]

2

4

8

SSHRT=2.5

121218

RTO=10RTT

Civogliono 18RTTperchéCNGWNDritornialvaloredi5segmentiSelafinestraèpiùgrandeeilrapportoRTO/RTTmaggiore ...lecosevannoancorapeggio

segmentoritrasmesso

Page 100: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

RecuperoconRTOperditemultiple

Reti- [email protected] LivelloTrasporto 100

Dinamicadellafinestra:RTT=20ms;RTO=200ms;RCWND=40segmenti(~64K)SecondaperditaquantoCNGWNDharaggiunto8segmentiLafinestrainquestasliderappresentailnumeroeffettivodisegmenti inviatinelRTT

t[RTT]

CWND[#se

g.]

2

4

8

SSHRT=2.5

121218

RTO=10RTT

SSHRT=4

RTO=10RTT

Inpresenzadiperditeilfunzionamento èunasequenzaditrasmissioni“burst”seguitedailunghi silenzidell’RTO

Page 101: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Recupero con Fast Retransmit

Quandovengonoricevuti3ACKduplicati:1. SSHTHR=CNGWND/22. CNGWND=MSS(1segmento)3. Ritrasmetteilprimosegmentodellafinestra4. Attendeescarta(ignora)tuttiiDupACK successivi5. Quando(ese)riceveACKnonduplicato:WLow =(ACKNumber);

WUp =WLow +CNGWND6. Se(ACKNumber)>WUp

ricominciafunzionamentonormaleAltrimenti

ritrasmetteunsegmentoricominciandodalpunto37. SescadeRTO(es.perditasegmentoritrasmesso)sicomporta

comeconrecuperoconRTOReti - [email protected] - Livello Trasporto 101

Page 102: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

RecuperoconFastRetransmit

Reti- [email protected] LivelloTrasporto 102

A B1011121314

15

Dup ACK 1Dup ACK 2Dup ACK 3

RagioniamoasegmentiWLow =10;CNGWND=5;WUp =14FaseCongestion AvoidanceSegmentopersoNo.11

XA11

A11 DupACKA11 DupACKA11 DupACK

A11 DupACK

ignore

LafinestraNONcresceperchénonsonostatiricevutiCNGWNDACK

Ret 11

A16

Fine recupero16

WLow =16;CNGWND=1;WUp =16SSTHR=5*MSS/2Riparteinslowstart

Page 103: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

RecuperoconFastRetransmit

Reti- [email protected] LivelloTrasporto 103

Dinamicadellafinestra:RTT=20ms;RTO=200ms;RCWND=40segmenti(~64K)

Lafinestrainquestasliderappresentailnumeroeffettivodisegmenti inviatinelRTT

t[RTT]

CWND[#se

g.]

2

4

8

SSHRT=2.5

128

CNGWNDritornaalvaloredi5segmentiin“soli”8RTT.Seleperditesonocasuali,comunque TCPnon riesceamantenereunafinestraeunthroughput elevati

segmentoritrasmesso.I 3dupACKimpieganomeno diunRTT(perdefinizione)

Page 104: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Reti- [email protected] LivelloTrasporto 104

Dinamicadellafinestra:RTT=20ms;RTO=200ms;RCWND=40segmenti(~64K)SecondaperditaquantoCNGWNDharaggiunto8segmentiLafinestrainquestasliderappresentailnumeroeffettivodisegmenti inviatinelRTT

t[RTT]

CWND[#se

g.]

2

4

8

SSHRT=2.5

121015

SSHRT=4

Inpresenzadiperditeilfunzionamento èunasequenzadifasidicrescitadellafinestraseguitedaunacadutaa“zero”

Page 105: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Recupero con Fast Retransmit / RTO

• UsandoisemplicimeccanismidiRTOeFastRetransmit TCPimplementaritrasmissioneselettiva

• PuòrecuperareunsegmentopersociascunRTT• RTOèmoltoinefficiente• FastRetransmitmiglioraefficienza,mailfunzionamentocontinuaad

essere“asinghiozzo”• Idea:anziché“ricominciaredacapo”sipuòentraredirettamentein

congestionavoidancemettendoCNGWND=SSTHR• Peròsenzaaltriaccorgimentisirischiadiritrasmetteresegmentigià

ricevuti

Reti - [email protected] - Livello Trasporto 105

Page 106: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Fast Recovery

• L’ideadibaseèquelladiottenereuna“oscillazione”diCNGWND“adentedisega”dimezzandolafinestraincasodiperditeeincrementandolalinearmentequandononcisonoperdite

Reti - [email protected] - Livello Trasporto 106

• Bisognaevitareritrasmissioni• Bisognaevitaretimeout• Sarebbemeglioevitarel’attesadiunRTTsesicontinuanoaricevere

ACKduplicati

t[RTT]

CWND[#se

g.]

4

8

16

perdite

Page 107: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Recupero con Fast Recovery

Quandovengonoricevuti3ACKduplicati:1. SSHTHR=CNGWND/22. Ritrasmetteilprimosegmentodellafinestra3. CNGWND=SSHTHR+3MSS(3Dup ACKricevuti);selafinestralo

consenteinvianuovisegmenti4. PerogninuovoDup ACKCNGWND=CNGWND+MSSeinviaun

nuovosegmentoselafinestraloconsente5. Quando(ese)riceveACKnonduplicato:WLow =(ACKNumber)

Reti - [email protected] - Livello Trasporto 107

Page 108: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Recupero con Fast Reovery

1. Se(ACKNumber)>WUpCNGWND=SSHTHRricominciafunzionamentonormaleincongestionavoidance

AltrimentiritrasmetteunsegmentorimaneinFastRecoveryriprendendodalpunto4,aquestopuntogliACKduplicatisiriferisconoalsecondosegmentoritrasmesso

2. SescadeRTO(es.perditasegmentoritrasmesso)sicomportacomeconrecuperoconRTO

Reti - [email protected] - Livello Trasporto 108

Page 109: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

RecuperoconFastRecovery

Reti- [email protected] LivelloTrasporto 109

A B1011121314

15

Dup ACK 1Dup ACK 2Dup ACK 3

RagioniamoasegmentiWLow =10;CNGWND=5;WUp =14FaseCongestion AvoidanceSegmentopersoNo.11

XA11

A11 DupACKA11 DupACKA11 DupACK

A11 DupACK

16

LafinestraNONcresceperchénonsonostatiricevutiCNGWNDACK

Ret 11

A16

CNGWND=CNGWND+1trasmettenuovo segmento

WLow =10;WUp =16SSTHR=5*MSS/2CNGWND=SSHTR+3Nonpuòtrasmetterenuovi segmenti Fine recupero

CNGWND=SSTHRtrasmettenuovo segmentoCNGWND=CNGWND+MSS/2=3trasmette2nuovi segmenti

17

1819

2021

A17

A18

A19A20

A21A22

Page 110: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

RecuperoconFastRecovery

Reti- [email protected] LivelloTrasporto 110

Dinamicadellafinestra:RTT=20ms;RTO=200ms;RCWND=40segmenti(~64K)

Lafinestrainquestasliderappresentailnumeroeffettivodisegmenti inviatinelRTT

t[RTT]

CWND[#se

g.]

2

4

8

SSHRT=2.5

128

CNGWNDritornaalvaloredi5segmentisemprein8RTT,maconFastRecoveryhatrasmesso3segmentiinpiùnello stessotempo

segmentoritrasmesso

CNGWND=SSTHR+3=5nonconsentediinviarenuovi segmenti

NuovoDupACKricevutoCNGWND=CNGWND+1inviaunnuovosegmento (17)

Page 111: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Recupero perdite: riassunto

• RTOimplementaritrasmissioniselettive,funzionasempre,masprecamoltissimerisorse(tempo)

• FastRetransmit abbatteiltempodirecupero,consentedirecuperareunsegmentoperRTT(anzichéRTO),maèancorapiuttostoinefficiente

• FastRecovery èmoltocomplessoecisonocasiincui...siinceppaàRTO

• QuandofunzionacorrettamenteFastRecoverysostienelatrasmissionedinuovipacchettimentrerecuperaquellipersi.

Reti - [email protected] - Livello Trasporto 111

Page 112: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Crescita finestra

• LostandardprevedechelafinestrainCAcrescalinearmenteconRTT• Diverseimplementazioninonrispettanoquestaindicazione• Linuxà TCPCubic• Windowsà TCPCompound• Ilrisultatoè...unpo’dicaosinrete(ancora?!?!)

• TCPdovrebbecontrollarelacongestioneedessereancheequo• AbbiamogiàvistocheinrealtàdipendedaRTT• Condiverse“logichedicrescitadellafinestraèancorapeggio

Reti - [email protected] - Livello Trasporto 112

Page 113: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

Implementazioninonstandard

• TCPCUBIC(Linux)

• TCPCompound(MSWindows)

Page 114: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

3-114

Equità: seKsessioniTCPcondividonolostessocollegamentoconampiezzadibandaR,cheèuncollodibottigliaperilsistema,ognisessionedovràavereunafrequenzatrasmissivamediapariaR/K.

ConnessioneTCP 1

Capacità delrouter R,il collo di bottigliaConnessione

TCP 2

Equità diTCP

Page 115: Reti - DISI, University of Trentodisi.unitn.it/locigno/didattica/reti/15-16/04_Transport-Layer.pdf · Livello trasporto in Internet • Due protocolli di trasporto di base alternativi:

TCPè equo?Dueconnessioniinconcorrenzatraloro:r L’incrementoadditivodeterminaunapendenzaparia1,all’aumentaredel

throughoutr Ildecrementomoltiplicativoriduceilthroughput inmodoproporzionale

R

R

Condivisione della stessaampiezza di banda

Throughput della connessione 1

congestion avoidance: incremento additivoperdita: riduce la finestra di un fattore 2

congestion avoidance: incremento additivoperdita: riduce la finestra di un fattore 2