reti - disi, university of...
TRANSCRIPT
![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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/1.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/2.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/3.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/4.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/5.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/6.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/7.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/8.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/9.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/10.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/11.jpg)
• 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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/12.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/13.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/14.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/15.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/16.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/17.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/18.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/19.jpg)
• 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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/20.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/21.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/22.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/23.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/24.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/25.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/26.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/27.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/28.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/29.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/30.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/31.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/32.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/33.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/34.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/35.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/36.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/37.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/38.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/39.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/40.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/41.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/42.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/43.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/44.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/45.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/46.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/47.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/48.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/49.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/50.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/51.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/52.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/53.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/54.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/55.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/56.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/57.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/58.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/59.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/60.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/61.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/62.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/63.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/64.jpg)
• 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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/65.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/66.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/67.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/68.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/69.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/70.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/71.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/72.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/73.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/74.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/75.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/76.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/77.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/78.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/79.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/80.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/81.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/82.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/83.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/84.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/85.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/86.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/87.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/88.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/89.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/90.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/91.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/92.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/93.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/94.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/95.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/96.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/97.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/98.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/99.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/100.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/101.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/102.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/103.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/104.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/105.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/106.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/107.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/108.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/109.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/110.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/111.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/112.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/113.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/114.jpg)
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:](https://reader034.vdocuments.pub/reader034/viewer/2022043017/5f3999bcba8cec08014162bb/html5/thumbnails/115.jpg)
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