i s e r o d a u capítulo 3 m o c e camada de transporte d s e d e...

97
Redes de Computadores I 2017 Área de Telecomunicações 1 Capítulo 3 Camada de transporte © 2014 Pearson. Todos os direitos reservados. slide 1

Upload: others

Post on 02-Mar-2021

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 1

Capiacutetulo 3

Camada de transporte

copy 2014 Pearson Todos os direitos reservadosslide 1

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 2

A camada de transporte fornece comunicaccedilatildeo loacutegica (e natildeo fiacutesica) diretamente entre processos de aplicaccedilotildees

Comunicaccedilatildeo loacutegica tudo se passa como se os processos dos hospedeiros estivessem conectados diretamente

Introduccedilatildeo e serviccedilos de camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 3

bull Um protocolo de camada de transporte fornece comunicaccedilatildeo loacutegica entre processos que rodam em hospedeiros diferentes Segmentos da camada de transporte

bull Um protocolo de camada de rede fornece comunicaccedilatildeo loacutegica entre hospedeiros Datagrama da camada de rede

bull Uma rede de computadores pode disponibilizar vaacuterios protocolos de transporte

bull Os serviccedilos que um protocolo de transporte pode fornecer satildeo muitas vezes limitados pelo modelo de serviccedilo do protocolo subjacente da camada de rede

Relaccedilatildeo entre as camadas de transporte e de rede

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 4

bull A responsabilidade fundamental do UDP e do TCP eacute ampliar o serviccedilo de entrega IP entre dois sistemas finais para um serviccedilo de entrega entre dois processos que rodam nos sistemas finais

bull A ampliaccedilatildeo da entrega hospedeiro a hospedeiro para entrega processo a processo eacute denominada multiplexaccedilatildeodemultiplexaccedilatildeo de camada de transporte

bull O UDP e o TCP tambeacutem fornecem verificaccedilatildeo de integridade ao incluir campos de detecccedilatildeo de erros nos cabeccedilalhos de seus segmentos

Visatildeo geral da camada de transporte na Internet

Transport Layer 3-6

Multiplexingdemultiplexing

process

socket

use header info to deliverreceived segments tocorrect socket

demultiplexing at receiverhandle data from multiplesockets add transport header (later used for demultiplexing)

multiplexing at sender

transport

application

physical

link

network

P2P1

transport

application

physical

link

network

P4

transport

application

physical

link

network

P3

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 7

bull A tarefa de entregar os dados contidos em um segmento da camada de transporte ao socket correto eacute denominada demultiplexaccedilatildeo

bull O trabalho de reunir no hospedeiro de origem partes de dados provenientes de diferentes sockets encapsular cada parte de dados com informaccedilotildees de cabeccedilalho para criar segmentos e passar esses segmentos para a camada de rede eacute denominada multiplexaccedilatildeo

Multiplexaccedilatildeo e demultiplexaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 8

bull Campos de nuacutemero de porta de origem e de destino em um segmento de camada de transporte

Multiplexaccedilatildeo e demultiplexaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 9

Demultiplexaccedilatildeo natildeo orientada para conexatildeo

cria sockets com nuacutemero de porta automaacutetico

clietSocket = socket(AF_INET SOCK_DGRAM)

Alternativamente podemos fixar a porta acrescentando

clientSocketbind(( 12535))

socket UDP identificado por tupla de dois elementos

(endereccedilo IP destino nuacutemero porta destino)

quando hospedeiro recebe segmento UDPndash verifica nuacutemero de porta

de destino no segmentondash direciona segmento UDP

para socket com esse nuacutemero de porta

datagramas IP com diferentes endereccedilos IP de origem eou nuacutemeros de porta de origem direcionados para o mesmo socket

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 10

Demultiplexaccedilatildeo natildeo orientada para conexatildeo

socket UDP identificado por tupla de dois elementos

(endereccedilo IP destino nuacutemero porta destino)

ClienteIPB

P2

cliente IP A

P1P1P3

servidorIP C

DP 9157

DP 6428

DP 5775

DP 6428

SP 6428

D-IP A

D-IP C

D-IP B

SP 6428

SP 5775

D-IP C

SP oferece ldquoendereccedilo de retornordquo caso necessaacuterio

SP 9157

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 11

Demultiplexaccedilatildeo orientada para conexatildeo

socket TCP identificado por tupla de 4 elementos ndash endereccedilo IP de origemndash nuacutemero de porta de origemndash endereccedilo IP de destinondash nuacutemero de porta de destino

hospedeiro destinataacuterio usa todos os quatro valores para direcionar segmento ao socket apropriado

hospedeiro servidor pode admitir muitos sockets TCP simultacircneosndash cada socket identificado

por sua proacutepria tupla de 4 servidores Web tecircm

diferentes sockets para cada cliente conectandondash HTTP natildeo persistente teraacute

diferentes sockets para cada requisiccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 12

Demultiplexaccedilatildeo orientada para conexatildeo

clienteIPB

P1

cliente IP A

P1P2P4

servidorIP C

SP 9157DP 80

SP 9157DP 80

P5 P6 P3

D-IPCS-IP AD-IPC

S-IP B

SP 5775DP 80

D-IPCS-IP B

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 13

bull O UDP definido no [RFC 768] faz apenas quase tatildeo pouco quanto um protocolo de transporte pode fazer

bull Agrave parte sua funccedilatildeo de multiplexaccedilatildeodemultiplexaccedilatildeo e de alguma verificaccedilatildeo de erros simples ele nada adiciona ao IP

bull Se o desenvolvedor de aplicaccedilatildeo escolher o UDP em vez do TCP a aplicaccedilatildeo estaraacute ldquofalandordquo quase diretamente com o IP

bull O UDP eacute natildeo orientado para conexatildeo Natildeo haacute a apresentaccedilatildeo entre as entidades remetentes e destinataacuterias

Transporte natildeo orientado para conexatildeo UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 14

bull Melhor controle no niacutevel de aplicaccedilatildeo sobre quais dados satildeo enviados e quando menor atraso

bull Natildeo haacute estabelecimento de conexatildeo menor atrasobull Natildeo haacute estados de conexatildeo buffers paracircmetros de

controle de congestionamento nuacutemero de sequecircncia Menor ldquocustordquo

bull Pequeno excesso de cabeccedilalho de pacotes 8 bytes de excesso TCP 20 bytes Menor ldquocustordquo

bull Sem controle de congestionamento do TCP ==gt isso pode implicar em ldquocolapsordquo na rede

bull Eacute possiacutevel uma aplicaccedilatildeo ter transferecircncia confiaacutevel de dados usando UDP

Por que usa-se UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 15

bull Aplicaccedilotildees populares da Internet e seus protocolos de transporte subjacentes

Transporte natildeo orientado para conexatildeo UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 16

bull Estrutura do segmento UDP

Estrutura do segmento UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 17

bull A soma de verificaccedilatildeo UDP serve para detectar erros em todo o segmento

bull Suponha que tenhamos as seguintes trecircs palavras de 16 bits

bull A soma das duas primeiras eacute

bull Adicionando a terceira palavra agrave soma anterior temos

Soma de verificaccedilatildeo UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 18

bull Note que a uacuteltima adiccedilatildeo teve um ldquovai umrdquo no bit mais significativo que foi somado ao bit menos significativo

bull Complemento de 1 0 ==gt 1 1 ==gt 0bull Fazendo o complemento de 1 da soma final

1011010100111101 Esta eacute a soma de verificaccedilatildeobull No destinataacuterio todas as 4 palavras recebidas de 16 bits satildeo

somadas 1111 ==gt Pacote correto algum bit em 0 ==gt algum erro foi introduzido no pacote

bull Por que soma de verificaccedilatildeo no UDPbull Algumas camadas de enlace por exemplo Ethernet fornecem

soma de verificaccedilatildeobull mas nem todas e aleacutem disso um roteador poderia introduzir

algum errobull UDP verifica erros fim a fim

Soma de verificaccedilatildeo UDP

Transport Layer 3-19

Principles of reliable data transfer important in application transport link layers

top-10 list of important networking topics

characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)

Transport Layer 3-20

characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)

Principles of reliable data transfer important in application transport link layers

top-10 list of important networking topics

Transport Layer 3-21

characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)

important in application transport link layers top-10 list of important networking topics

Principles of reliable data transfer

Transport Layer 3-22

sendside

receiveside

rdt_send() called from above (eg by app) Passed data to deliver to receiver upper layer

udt_send() called by rdtto transfer packet over unreliable channel to receiver

rdt_rcv() called when packet arrives on rcv-side of channel

deliver_data() called by rdt to deliver data to upper

Principles of reliable data transfer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 23

vamos desenvolver de forma incremental os lados remetente e destinataacuterio do

protocolo de transferecircncia confiaacutevel de dados (rdt) considerar apenas a transf de dados unidirecional Bidirecional eacute soacute

duplicar a estruturandash mas informaccedilotildees de controle fluiratildeo nas duas direccedilotildees

usar maacutequinas de estado finito (FSM) para especificar remetente e destinataacuterio

estado1

estado2

evento causando transiccedilatildeo de estadoaccedilotildees tomadas sobre transiccedilatildeo de estado

estado quando neste ldquoestadordquo proacuteximo

estado determinadoexclusivamente pelo

proacuteximo evento

eventoaccedilotildees

Transferecircncia confiaacutevel de dados introduccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 24

bull rdt10 ndash Um protocolo para um canal completamente confiaacutevel

Transferecircncia confiaacutevel de dados sobre um canal perfeitamente confiaacutevel rdt10

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 25

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt20

rdt20 ndash Um protocolo para um canal com erros de bits Base dos protocolos ARQ (Automatic Repeat Request)

Detecccedilatildeo de erros (mecanismo do UDP)

Realimentaccedilatildeo do destinataacuterio (ACK ou NACK)

Retransmissatildeobull Pare e espere

Transport Layer 3-26

rdt20 FSM specification

Wait for call from above

sndpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from belowsender

receiverrdt_send(data)

Transport Layer 3-27

rdt20 operation with no errors

Wait for call from above

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from below

rdt_send(data)

Transport Layer 3-28

rdt20 error scenario

Wait for call from above

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from below

rdt_send(data)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 29

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt20

bull O que acontece se o pacote ACK ou NAK estiver corrompido

bull Vamos considerar trecircs possibilidade para ACKs ou NAKs corrompidos1 Ser humano -- A ldquoditadordquo B ldquoOKrdquo ou ldquoRepita por favorrdquo ==gt

A natildeo entende ldquoO que foi que vocecirc disserdquo infinito Peacutessimo2 Bits de soma de verificaccedilatildeo de tal modo que permita ao remetente a

recuperaccedilatildeo de erros de bits Muito bom mas serve somente para canais com erro de bits e natildeo perda de pacotes

3 O Remetente reenvia o pacote de dados corrente quando receber um pacote ACK ou NAK truncado ==gt pode gerar pacotes duplicados Como o destinataacuterio sabe se o pacote conteacutem novos dados ou eacute uma retransmissatildeo ==gt nuacutemero de sequecircncia

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 30

bull rdt21 remetente

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 31

bull rdt21 destinataacuterio

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 32

bull O protocolo rdt21 usa tanto o reconhecimento positivo como negativo do remetente ao destinataacuterio pacote fora de ordem ==gt ACK pacote corrompido ==gt NAK

bull Podemos conseguir o mesmo efeito se ao inveacutes de enviarmos um NAK enviarmos um ACK do uacuteltimo corretamente recebido Ou seja ACK tambeacutem numerado

bull ACKs duplicados indicam ao remetente que o destinataacuterio natildeo recebeu corretamente o pacote seguinte agravequele do ACK duplo

bull rdt22 deve enviar o nuacutemero de sequecircncia no ACK

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21-2

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 33

bull rdt22 remetente

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt22

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 34

bull rdt22 destinataacuterio

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt22

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 35

bull Duas preocupaccedilotildees adicionais devem ser tratadas pelo protocolo1 Como detectar perda de pacotes2 O que fazer quando haacute perdas

bull As teacutecnicas jaacute discutidas atendem a segunda questatildeobull E para a primeira questatildeobull Suponha que o remetente transmita um pacote e que esse

pacote ou seu ACK seja perdido Nenhuma resposta chegaraacute ao remetente Se o remetente natildeo quiser esperar ==gt retransmite o pacote

bull Mas quanto o remetente precisa esperar para ter certeza que algo foi perdido Esperar um RTT Eacute muito difiacutecil estimar o RTT quanto mais ter certeza

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 36

bull Aleacutem disso o ideal seria que o protocolo se recuperasse da perda assim que possiacutevel

bull Na praacutetica O remetente faz uma escolha ponderada de um RTT provaacutevel mas natildeo

garantido que a perda tivesse acontecido Se natildeo receber um ACK nesse periacuteodo retransmite o pacote

bull Se o pacote sofrer um atraso longo pode haver retransmissatildeo mesmo que o pacote ou ACK natildeo tenham sido perdidos Possibilidade de pacotes de dados duplicados

bull Para implementar um mecanismo de retransmissatildeo com base no tempo eacute necessaacuterio um temporizador de contagem regressiva Accedilotildees iniciar atender parar

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 37

bull rdt30 remetente

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Transport Layer 3-38

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

pkt1

ack1

ack0

ack0

(a) no loss

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(b) packet loss

pkt1X

loss

pkt1timeout

resend pkt1

rdt30 in action

Transport Layer 3-39

rdt30 in action

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(c) ACK loss

ack1X

loss

pkt1timeout

resend pkt1

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

send ack0rcv ack0

send pkt1

send pkt0rcv pkt0

pkt0

ack0

(d) premature timeout delayed ACK

pkt1timeout

resend pkt1

ack1

send ack1

send pkt0rcv ack1

pkt0

ack1

ack0

send pkt0rcv ack1 pkt0

rcv pkt0send ack0ack0

rcv pkt0

send ack0(detect duplicate)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 42

bull No coraccedilatildeo do problema do desempenho do rdt30 estaacute o fato de ele ser um protocolo do tipo pare e espere

bull Um protocolo pare e espere em operaccedilatildeo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 43

U remet =

0008

30008 = 000027

microseconds

L R RTT + L R

=

Desempenho do rdt30

rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso pacote 8000 bits

U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando

Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps protocolo de rede limita uso de recursos fiacutesicos Soluccedilatildeo

ndosmicrosseguR

Ldtrans 8

bps10

bits80009

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 44

Um protocolo com paralelismo em operaccedilatildeo

bull O ACK recebido eacute de que pacote

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 45

bull Envio com pare e espere

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 46

bull Envio com paralelismo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Aumento de utilizaccedilatildeopor fator de 3

U remet =

0024 30008

= 00008 microseconds

3 L R RTT + L R

=

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 47

bull Em um protocolo Go-Back-N (GBN) o remetente eacute autorizado a transmitir muacuteltiplos pacotes sem esperar por um reconhecimento

bull Poreacutem fica limitado a ter natildeo mais do que algum nuacutemero maacuteximo permitido N (tamanho da janela) de pacotes natildeo reconhecidos na ldquotubulaccedilatildeordquo

bull Visatildeo do remetente para os nuacutemeros de sequecircncia no protocolo Go-Back-N

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 48

bull Descriccedilatildeo da FSM estendida do remetente GBNbull Quem consegue descrever o funcionamento

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 49

bull Descriccedilatildeo da FSM estendida do destinataacuterio GBN

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 50

Go-Back-N (GBN) em operaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 51

bull Protocolos de repeticcedilatildeo seletiva (SR) evitam retransmissotildees desnecessaacuterias

bull Eles fazem o remetente retransmitir apenas os pacotes suspeitos de terem sido recebidos com erro no destinataacuterio

bull Essa retransmissatildeo individual soacute quando necessaacuteria exige que o destinataacuterio reconheccedila individualmente os pacotes recebidos de modo correto

Repeticcedilatildeo seletiva (SR)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 52

Repeticcedilatildeo seletiva (SR)

Transport Layer 3-53

Selective repeatdilemma

example seq rsquos 0 1 2 3 window size=3

receiver window(after receipt)

sender window(after receipt)

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2 pkt0

timeoutretransmit pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2XXX

will accept packetwith seq number 0

(b) oops

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

X

will accept packetwith seq number 0

0 1 2 3 0 1 2 pkt3

(a) no problem

receiver canrsquot see sender sidereceiver behavior identical in both casessomethingrsquos (very) wrong

receiver sees no difference in two scenarios

duplicate data accepted as new in (b)

Q what relationship between seq size and window size to avoid problem in (b)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 54

Resumo de mecanismos de transferecircncia confiaacutevel de dados e sua utilizaccedilatildeo

bull Soma de verificaccedilatildeo - Usada para detectar erros de bits em um pacote transmitido

bull Temporizador - Usado para controlar a temporizaccedilatildeoretransmissatildeo de um pacote possivelmente porque o pacote (ou seu ACK) foi perdido dentro do canal

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 55

bull Nuacutemero de sequecircncia - Usado para numeraccedilatildeo sequencial de segmentos de dados que transitam do remetente ao destinataacuterio Ou seja pode-se ter vaacuterios segmentos transitando simultaneamente no canal de comunicaccedilatildeo maximizando assim o uso desse canal

bull Reconhecimento - Usado pelo destinataacuterio para avisar o remetente que um pacote ou conjunto de pacotes foi recebido corretamente

bull Janela paralelismo - O remetente pode ficar restrito a enviar somente pacotes com nuacutemeros de sequecircncia que caiam dentro de uma determinada faixa

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 56

bull Uma conexatildeo TCP provecirc um serviccedilo full-duplex

bull A conexatildeo TCP eacute sempre ponto a ponto

bull Uma vez estabelecida uma conexatildeo TCP dois processos de aplicaccedilatildeo podem enviar dados um para o outro 3-way handshake jaacute estabelecendo o MSS

bull O TCP combina cada porccedilatildeo de dados do cliente com um cabeccedilalho TCP formando assim segmentos TCP

A conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 57

Estrutura do segmento TCPURG dados urgentes

(quase natildeo usado)

ACK ACKvaacutelido

PSH empurrar dados agora

RST SYN FINestab conexatildeo

soma de verificaccedilatildeo

da Internet ndash todo o segmento(como em UDP)

bytes destinataacuteriopode aceitar

contagem porbytes de dados(natildeo segmentos)

Opcional e de comprimentovariaacutevel utilizado paranegociar o MSS ou fatorde escala em redes dealta velocidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 58

TCP Estabelecendo e fechando conexotildees

3-way handshakeFinalizando

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 59

s sequecircncia e ACKs do TCP

Cenaacuterio preestabelecido telnet simples

rsquos de sequecircnciandash ldquonuacutemerordquo na cadeia de

bytes do 1o byte nos dados do segmento

ACKsndash seq do proacuteximo byte

esperado do outro ladondash ACK cumulativo

P como o destinataacuterio trata segmentos fora de ordem

ndash R TCP natildeo diz ndash a criteacuterio do implementador

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 60

Tempo de ida e volta e timeout do TCP

P Como definir o valor de timeout do TCP

maior que RTTndash mas RTT varia

muito curto timeout prematurondash retransmissotildees

desnecessaacuterias muito longo baixa

reaccedilatildeo a perda de segmento

P Como estimar o RTT SampleRTT tempo medido

da transmissatildeo do segmento ateacute receber o ACKndash ignora retransmissotildees

SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquondash meacutedia de vaacuterias mediccedilotildees

recentes natildeo apenas SampleRTT atual

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 61

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui exponencialmente

raacutepido valor tiacutepico = 0125

Tempo de ida e volta e timeout do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 62

Amostras de RTTs estimados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 63

definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(geralmente = 025)

depois definir intervalo de timeout

Tempo de ida e volta e timeout do TCP

TimeoutIntervalinicial

= 1 sldquomargem de seguranccedilardquo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 64

TCP cenaacuterios de retransmissatildeo

Hosp A

Seq = 100 20 bytes dados

ACK = 100

tempoTimeout prematuro

Hosp B

Seq = 92 8 bytes dados

ACK = 120

Seq = 92 8 bytes dados

Seq

= 9

2 tim

eout

ACK = 120

Hosp A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio de ACK perdido

Hosp B

X

Seq = 92 8 bytes dados

ACK = 100

tempoS

eq =

92

timeo

ut

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 65

TCP cenaacuterios de retransmissatildeo

Host A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio ACK cumulativo

Host B

X

Seq = 100 20 bytes dados

ACK = 120

tempo

Transport Layer 3-66

TCP fast retransmit time-out period

often relatively long long delay before

resending lost packet detect lost

segments via duplicate ACKs sender often sends

many segments back-to-back

if segment is lost there will likely be many duplicate ACKs

if sender receives 3 ACKs for same data(ldquotriple duplicate ACKsrdquo) resend unacked segment with smallest seq

likely that unacked segment lost so donrsquot wait for timeout

TCP fast retransmit

Transport Layer 3-67

X

fast retransmit after sender receipt of triple duplicate ACK

Host BHost A

Seq=92 8 bytes of data

ACK=100

timeo

ut ACK=100

ACK=100

ACK=100

TCP fast retransmit

Seq=100 20 bytes of data

Seq=100 20 bytes of data

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 69

bull O nuacutemero de sequecircncia para um segmento eacute o nuacutemero do primeiro byte do segmento

bull O nuacutemero de reconhecimento que o hospedeiro A atribui a seu segmento eacute o nuacutemero de sequecircncia do proacuteximo byte que ele estiver aguardando do hospedeiro B

bull Como o TCP somente reconhece bytes ateacute o primeiro byte que estiver faltando na cadeia dizemos que o TCP provecirc reconhecimentos cumulativos

Nuacutemeros de sequecircncia e nuacutemeros de reconhecimento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 70

bull O TCP cria um serviccedilo de transferecircncia confiaacutevel de dados sobre o serviccedilo de melhor esforccedilo do IP

bull O serviccedilo de transferecircncia garante que a cadeia de bytes eacute idecircntica agrave cadeia de bytes enviada pelo sistema final que estaacute do outro lado da conexatildeo

bull Os procedimentos recomendados no [RFC 6298] para gerenciamento de temporizadores TCP utilizam apenas um uacutenico temporizador de retransmissatildeo

Transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 71

bull O TCP provecirc um serviccedilo de controle de fluxo agraves suas aplicaccedilotildees para eliminar a possibilidade de o remetente estourar o buffer do destinataacuterio

bull Controle de fluxo eacute um serviccedilo de compatibilizaccedilatildeo de velocidades

bull O TCP oferece serviccedilo de controle de fluxo fazendo que o remetente mantenha uma variaacutevel denominada janela de recepccedilatildeo

Controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 72

Regulaccedilatildeo da taxa de envio

Uma rede de transmissatildeo raacutepida eum receptor de baixa capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 73

Controle de fluxo TCP

lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo

serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora

processo da aplicaccedilatildeo pode ser lento na leitura do buffer

remetente natildeo estouraraacute buffer do destinataacuterio transmitindo muitos dados muito rapidamente

controle de fluxo

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 74

Controle de fluxo TCP como funciona

(suponha que destinataacuterio TCP descarte segmentos fora de ordem)

espaccedilo de buffer natildeo usado = rwnd (slide 48) = RcvBuffer-[LastByteRcvd -

LastByteRead]

destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento

remetente limita de bytes com ACK a rwndndash garante que buffer do

destinataacuterio natildeo estoura

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

rwndRcvBuffer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 75

Gerenciamento da conexatildeo TCP

lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados

inicializa variaacuteveis TCPndash s seqndash buffers informaccedilatildeo de

controle de fluxo (p e RcvWindow)

cliente inicia a conexatildeo Socket clientSocket = new

Socket(hostnameport ) servidor contactado pelo

cliente Socket connectionSocket =

welcomeSocketaccept()

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 76

Gerenciamento da conexatildeo TCP

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 77

fechando uma conexatildeo

cliente fecha socket clientSocketclose()

etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor

etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN

cliente

FIN

servidor

ACK

ACK

FIN

fecha

fecha

fechado

espe

ra

tem

poriz

ada

Gerenciamento da conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 79

Controle de congestionamento

Uma rede de transmissatildeo lenta eum receptor de alta capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 80

bull As causas e os custos do congestionamento

Cenaacuterio de congestionamento 1 duas conexotildees compartilhando um uacutenico roteador com nuacutemero infinito de buffers

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 81

bull As causas e os custos do congestionamentoCenaacuterio de congestionamento 1 vazatildeo e atraso em funccedilatildeo da taxa de envio do hospedeiro

ldquocustosrdquo do congestionamento Aumento de atrasos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 82

bull As causas e os custos do congestionamento

Cenaacuterio 2 dois hospedeiros (com retransmissotildees) e um roteador com buffers finitos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 83

a) Caso ideal (vazatildeo)

b) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda

c) retransmissatildeo do pacote adiado (natildeo perdido) torna maior (que

o caso perfeito ) para o mesmo

in

out

=

in

out

gt

in

out

ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do

pacote

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 84

bull As causas e os custos do congestionamento

Cenaacuterio 3 quatro remetentesroteadores com buffers finitos e trajetos com muacuteltiplos roteadores

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 85

outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer capacidade

de transmissatildeo anterior usada para esse pacote foi desperdiccedilada

Host A

Host B

o

u

t

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 86

Controle de congestionamento fim a fim

bull A camada de rede natildeo fornece nenhum suporte expliacutecito agrave camada de transporte com a finalidade de controle de congestionamento

Controle de congestionamento assistido pela rede

bull Os componentes da camada de rede (isto eacute roteadores) fornecem retroalimentaccedilatildeo especiacutefica de informaccedilotildees ao remetente a respeito do estado de congestionamento na rede Natildeo usual

Mecanismos de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 87

bull A abordagem adotada pelo TCP eacute obrigar cada remetente a limitar a taxa agrave qual enviam traacutefego para sua conexatildeo como uma funccedilatildeo do congestionamento de rede percebido

Se um remetente TCP perceber que haacute pouco congestionamento no caminho entre ele e o destinataacuterio aumentaraacute sua taxa de envio

Se perceber que haacute congestionamento reduziraacute sua taxa de

envio

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 88

bull Mas essa abordagem levanta trecircs questotildees

1 Como um remetente TCP limita a taxa pela qual envia traacutefego para sua conexatildeo

2 Como um remetente TCP percebe que haacute congestionamento entre ele e o destinataacuterio

3 Que algoritmo o remetente deve utilizar para modificar sua taxa de envio como uma funccedilatildeo do congestionamento fim a fim percebido

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 89

bull Partida lenta TCP

Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 90

1) Cwnd = 1 MSS inicialmente

2) Partida lenta a cada rodada redefine cwnd = cwnd 2

3) Perda de pacotes (esgotamento de temporizaccedilatildeo ndash problema grave) ==gt cwnd = 1 (Tahoe ou Reno)

4) Prevenccedilatildeo de congestionamento apoacutes atingir sstresh cwnd = cwnd + 1

5) Trecircs acks duplicados (buraco no ldquofluxordquo ndash problema brando) entra no estado prevenccedilatildeo de congestionamento e redefine cwnd = 1 (Tahoe) ou cwnd = sstresh (Reno)

6) Sstresh = cwnd2 quando satildeo detectados problemas

Quantidade de dados natildeo reconhecidas no TCP = min(CongWin RecWin)

Controle de congestionamento TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 91

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 93

bull Evoluccedilatildeo da janela de congestionamento do TCP (Tahoe e Reno ndash mais usual)

Recuperaccedilatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 94

Controle de congestionamento TCP

Partida lenta seguida por aumento aditivo no TCP Tahoe

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 95

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 96

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 97

bull O controle de congestionamento AIMD (Additive-increase Multiplicative-Decrease) faz surgir o comportamento semelhante a ldquodentes de serrardquo

bull httpsmediapearsoncmgcomawecs_kurose_compnetwork_7cwcontentinteractiveanimationstcp-congestionindexhtml

Controle de congestionamento no TCP retrospectiva

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 98

O que eacute throughput meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughput meacutedio 075 WRTT (75 WRTT)

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 99

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (Probabilidade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 100

bull Duas conexotildees TCP compartilhando um uacutenico enlace congestionado

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 101

bull Vazatildeo alcanccedilada pelas conexotildees TCP 1 e TCP 2bull Ambas conexotildees em algum momento estatildeo com vazatildeo Abull Ambas vatildeo aumentando a vazatildeo ateacute ocorrer perda ndash Bbull Sstresh cai pela metade e ambas migram para Chellip

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 102

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

ndash Consequecircncia

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Nova aplicaccedilatildeo pede 1 TCP obteacutem taxa de R10 Nova aplicaccedilatildeo pede 11 TCPs obteacutem R2

Equidade

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Multiplexingdemultiplexing
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Principles of reliable data transfer
  • Slide 20
  • Slide 21
  • Reliable data transfer getting started
  • Slide 23
  • Slide 24
  • Slide 25
  • rdt20 FSM specification
  • rdt20 operation with no errors
  • rdt20 error scenario
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • rdt30 in action
  • Slide 39
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Selective repeat dilemma
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • TCP fast retransmit
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
Page 2: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 2

A camada de transporte fornece comunicaccedilatildeo loacutegica (e natildeo fiacutesica) diretamente entre processos de aplicaccedilotildees

Comunicaccedilatildeo loacutegica tudo se passa como se os processos dos hospedeiros estivessem conectados diretamente

Introduccedilatildeo e serviccedilos de camada de transporte

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 3

bull Um protocolo de camada de transporte fornece comunicaccedilatildeo loacutegica entre processos que rodam em hospedeiros diferentes Segmentos da camada de transporte

bull Um protocolo de camada de rede fornece comunicaccedilatildeo loacutegica entre hospedeiros Datagrama da camada de rede

bull Uma rede de computadores pode disponibilizar vaacuterios protocolos de transporte

bull Os serviccedilos que um protocolo de transporte pode fornecer satildeo muitas vezes limitados pelo modelo de serviccedilo do protocolo subjacente da camada de rede

Relaccedilatildeo entre as camadas de transporte e de rede

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 4

bull A responsabilidade fundamental do UDP e do TCP eacute ampliar o serviccedilo de entrega IP entre dois sistemas finais para um serviccedilo de entrega entre dois processos que rodam nos sistemas finais

bull A ampliaccedilatildeo da entrega hospedeiro a hospedeiro para entrega processo a processo eacute denominada multiplexaccedilatildeodemultiplexaccedilatildeo de camada de transporte

bull O UDP e o TCP tambeacutem fornecem verificaccedilatildeo de integridade ao incluir campos de detecccedilatildeo de erros nos cabeccedilalhos de seus segmentos

Visatildeo geral da camada de transporte na Internet

Transport Layer 3-6

Multiplexingdemultiplexing

process

socket

use header info to deliverreceived segments tocorrect socket

demultiplexing at receiverhandle data from multiplesockets add transport header (later used for demultiplexing)

multiplexing at sender

transport

application

physical

link

network

P2P1

transport

application

physical

link

network

P4

transport

application

physical

link

network

P3

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 7

bull A tarefa de entregar os dados contidos em um segmento da camada de transporte ao socket correto eacute denominada demultiplexaccedilatildeo

bull O trabalho de reunir no hospedeiro de origem partes de dados provenientes de diferentes sockets encapsular cada parte de dados com informaccedilotildees de cabeccedilalho para criar segmentos e passar esses segmentos para a camada de rede eacute denominada multiplexaccedilatildeo

Multiplexaccedilatildeo e demultiplexaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 8

bull Campos de nuacutemero de porta de origem e de destino em um segmento de camada de transporte

Multiplexaccedilatildeo e demultiplexaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 9

Demultiplexaccedilatildeo natildeo orientada para conexatildeo

cria sockets com nuacutemero de porta automaacutetico

clietSocket = socket(AF_INET SOCK_DGRAM)

Alternativamente podemos fixar a porta acrescentando

clientSocketbind(( 12535))

socket UDP identificado por tupla de dois elementos

(endereccedilo IP destino nuacutemero porta destino)

quando hospedeiro recebe segmento UDPndash verifica nuacutemero de porta

de destino no segmentondash direciona segmento UDP

para socket com esse nuacutemero de porta

datagramas IP com diferentes endereccedilos IP de origem eou nuacutemeros de porta de origem direcionados para o mesmo socket

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 10

Demultiplexaccedilatildeo natildeo orientada para conexatildeo

socket UDP identificado por tupla de dois elementos

(endereccedilo IP destino nuacutemero porta destino)

ClienteIPB

P2

cliente IP A

P1P1P3

servidorIP C

DP 9157

DP 6428

DP 5775

DP 6428

SP 6428

D-IP A

D-IP C

D-IP B

SP 6428

SP 5775

D-IP C

SP oferece ldquoendereccedilo de retornordquo caso necessaacuterio

SP 9157

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 11

Demultiplexaccedilatildeo orientada para conexatildeo

socket TCP identificado por tupla de 4 elementos ndash endereccedilo IP de origemndash nuacutemero de porta de origemndash endereccedilo IP de destinondash nuacutemero de porta de destino

hospedeiro destinataacuterio usa todos os quatro valores para direcionar segmento ao socket apropriado

hospedeiro servidor pode admitir muitos sockets TCP simultacircneosndash cada socket identificado

por sua proacutepria tupla de 4 servidores Web tecircm

diferentes sockets para cada cliente conectandondash HTTP natildeo persistente teraacute

diferentes sockets para cada requisiccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 12

Demultiplexaccedilatildeo orientada para conexatildeo

clienteIPB

P1

cliente IP A

P1P2P4

servidorIP C

SP 9157DP 80

SP 9157DP 80

P5 P6 P3

D-IPCS-IP AD-IPC

S-IP B

SP 5775DP 80

D-IPCS-IP B

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 13

bull O UDP definido no [RFC 768] faz apenas quase tatildeo pouco quanto um protocolo de transporte pode fazer

bull Agrave parte sua funccedilatildeo de multiplexaccedilatildeodemultiplexaccedilatildeo e de alguma verificaccedilatildeo de erros simples ele nada adiciona ao IP

bull Se o desenvolvedor de aplicaccedilatildeo escolher o UDP em vez do TCP a aplicaccedilatildeo estaraacute ldquofalandordquo quase diretamente com o IP

bull O UDP eacute natildeo orientado para conexatildeo Natildeo haacute a apresentaccedilatildeo entre as entidades remetentes e destinataacuterias

Transporte natildeo orientado para conexatildeo UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 14

bull Melhor controle no niacutevel de aplicaccedilatildeo sobre quais dados satildeo enviados e quando menor atraso

bull Natildeo haacute estabelecimento de conexatildeo menor atrasobull Natildeo haacute estados de conexatildeo buffers paracircmetros de

controle de congestionamento nuacutemero de sequecircncia Menor ldquocustordquo

bull Pequeno excesso de cabeccedilalho de pacotes 8 bytes de excesso TCP 20 bytes Menor ldquocustordquo

bull Sem controle de congestionamento do TCP ==gt isso pode implicar em ldquocolapsordquo na rede

bull Eacute possiacutevel uma aplicaccedilatildeo ter transferecircncia confiaacutevel de dados usando UDP

Por que usa-se UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 15

bull Aplicaccedilotildees populares da Internet e seus protocolos de transporte subjacentes

Transporte natildeo orientado para conexatildeo UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 16

bull Estrutura do segmento UDP

Estrutura do segmento UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 17

bull A soma de verificaccedilatildeo UDP serve para detectar erros em todo o segmento

bull Suponha que tenhamos as seguintes trecircs palavras de 16 bits

bull A soma das duas primeiras eacute

bull Adicionando a terceira palavra agrave soma anterior temos

Soma de verificaccedilatildeo UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 18

bull Note que a uacuteltima adiccedilatildeo teve um ldquovai umrdquo no bit mais significativo que foi somado ao bit menos significativo

bull Complemento de 1 0 ==gt 1 1 ==gt 0bull Fazendo o complemento de 1 da soma final

1011010100111101 Esta eacute a soma de verificaccedilatildeobull No destinataacuterio todas as 4 palavras recebidas de 16 bits satildeo

somadas 1111 ==gt Pacote correto algum bit em 0 ==gt algum erro foi introduzido no pacote

bull Por que soma de verificaccedilatildeo no UDPbull Algumas camadas de enlace por exemplo Ethernet fornecem

soma de verificaccedilatildeobull mas nem todas e aleacutem disso um roteador poderia introduzir

algum errobull UDP verifica erros fim a fim

Soma de verificaccedilatildeo UDP

Transport Layer 3-19

Principles of reliable data transfer important in application transport link layers

top-10 list of important networking topics

characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)

Transport Layer 3-20

characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)

Principles of reliable data transfer important in application transport link layers

top-10 list of important networking topics

Transport Layer 3-21

characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)

important in application transport link layers top-10 list of important networking topics

Principles of reliable data transfer

Transport Layer 3-22

sendside

receiveside

rdt_send() called from above (eg by app) Passed data to deliver to receiver upper layer

udt_send() called by rdtto transfer packet over unreliable channel to receiver

rdt_rcv() called when packet arrives on rcv-side of channel

deliver_data() called by rdt to deliver data to upper

Principles of reliable data transfer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 23

vamos desenvolver de forma incremental os lados remetente e destinataacuterio do

protocolo de transferecircncia confiaacutevel de dados (rdt) considerar apenas a transf de dados unidirecional Bidirecional eacute soacute

duplicar a estruturandash mas informaccedilotildees de controle fluiratildeo nas duas direccedilotildees

usar maacutequinas de estado finito (FSM) para especificar remetente e destinataacuterio

estado1

estado2

evento causando transiccedilatildeo de estadoaccedilotildees tomadas sobre transiccedilatildeo de estado

estado quando neste ldquoestadordquo proacuteximo

estado determinadoexclusivamente pelo

proacuteximo evento

eventoaccedilotildees

Transferecircncia confiaacutevel de dados introduccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 24

bull rdt10 ndash Um protocolo para um canal completamente confiaacutevel

Transferecircncia confiaacutevel de dados sobre um canal perfeitamente confiaacutevel rdt10

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 25

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt20

rdt20 ndash Um protocolo para um canal com erros de bits Base dos protocolos ARQ (Automatic Repeat Request)

Detecccedilatildeo de erros (mecanismo do UDP)

Realimentaccedilatildeo do destinataacuterio (ACK ou NACK)

Retransmissatildeobull Pare e espere

Transport Layer 3-26

rdt20 FSM specification

Wait for call from above

sndpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from belowsender

receiverrdt_send(data)

Transport Layer 3-27

rdt20 operation with no errors

Wait for call from above

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from below

rdt_send(data)

Transport Layer 3-28

rdt20 error scenario

Wait for call from above

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from below

rdt_send(data)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 29

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt20

bull O que acontece se o pacote ACK ou NAK estiver corrompido

bull Vamos considerar trecircs possibilidade para ACKs ou NAKs corrompidos1 Ser humano -- A ldquoditadordquo B ldquoOKrdquo ou ldquoRepita por favorrdquo ==gt

A natildeo entende ldquoO que foi que vocecirc disserdquo infinito Peacutessimo2 Bits de soma de verificaccedilatildeo de tal modo que permita ao remetente a

recuperaccedilatildeo de erros de bits Muito bom mas serve somente para canais com erro de bits e natildeo perda de pacotes

3 O Remetente reenvia o pacote de dados corrente quando receber um pacote ACK ou NAK truncado ==gt pode gerar pacotes duplicados Como o destinataacuterio sabe se o pacote conteacutem novos dados ou eacute uma retransmissatildeo ==gt nuacutemero de sequecircncia

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 30

bull rdt21 remetente

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 31

bull rdt21 destinataacuterio

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 32

bull O protocolo rdt21 usa tanto o reconhecimento positivo como negativo do remetente ao destinataacuterio pacote fora de ordem ==gt ACK pacote corrompido ==gt NAK

bull Podemos conseguir o mesmo efeito se ao inveacutes de enviarmos um NAK enviarmos um ACK do uacuteltimo corretamente recebido Ou seja ACK tambeacutem numerado

bull ACKs duplicados indicam ao remetente que o destinataacuterio natildeo recebeu corretamente o pacote seguinte agravequele do ACK duplo

bull rdt22 deve enviar o nuacutemero de sequecircncia no ACK

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21-2

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 33

bull rdt22 remetente

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt22

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 34

bull rdt22 destinataacuterio

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt22

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 35

bull Duas preocupaccedilotildees adicionais devem ser tratadas pelo protocolo1 Como detectar perda de pacotes2 O que fazer quando haacute perdas

bull As teacutecnicas jaacute discutidas atendem a segunda questatildeobull E para a primeira questatildeobull Suponha que o remetente transmita um pacote e que esse

pacote ou seu ACK seja perdido Nenhuma resposta chegaraacute ao remetente Se o remetente natildeo quiser esperar ==gt retransmite o pacote

bull Mas quanto o remetente precisa esperar para ter certeza que algo foi perdido Esperar um RTT Eacute muito difiacutecil estimar o RTT quanto mais ter certeza

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 36

bull Aleacutem disso o ideal seria que o protocolo se recuperasse da perda assim que possiacutevel

bull Na praacutetica O remetente faz uma escolha ponderada de um RTT provaacutevel mas natildeo

garantido que a perda tivesse acontecido Se natildeo receber um ACK nesse periacuteodo retransmite o pacote

bull Se o pacote sofrer um atraso longo pode haver retransmissatildeo mesmo que o pacote ou ACK natildeo tenham sido perdidos Possibilidade de pacotes de dados duplicados

bull Para implementar um mecanismo de retransmissatildeo com base no tempo eacute necessaacuterio um temporizador de contagem regressiva Accedilotildees iniciar atender parar

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 37

bull rdt30 remetente

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Transport Layer 3-38

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

pkt1

ack1

ack0

ack0

(a) no loss

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(b) packet loss

pkt1X

loss

pkt1timeout

resend pkt1

rdt30 in action

Transport Layer 3-39

rdt30 in action

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(c) ACK loss

ack1X

loss

pkt1timeout

resend pkt1

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

send ack0rcv ack0

send pkt1

send pkt0rcv pkt0

pkt0

ack0

(d) premature timeout delayed ACK

pkt1timeout

resend pkt1

ack1

send ack1

send pkt0rcv ack1

pkt0

ack1

ack0

send pkt0rcv ack1 pkt0

rcv pkt0send ack0ack0

rcv pkt0

send ack0(detect duplicate)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 42

bull No coraccedilatildeo do problema do desempenho do rdt30 estaacute o fato de ele ser um protocolo do tipo pare e espere

bull Um protocolo pare e espere em operaccedilatildeo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 43

U remet =

0008

30008 = 000027

microseconds

L R RTT + L R

=

Desempenho do rdt30

rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso pacote 8000 bits

U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando

Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps protocolo de rede limita uso de recursos fiacutesicos Soluccedilatildeo

ndosmicrosseguR

Ldtrans 8

bps10

bits80009

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 44

Um protocolo com paralelismo em operaccedilatildeo

bull O ACK recebido eacute de que pacote

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 45

bull Envio com pare e espere

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 46

bull Envio com paralelismo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Aumento de utilizaccedilatildeopor fator de 3

U remet =

0024 30008

= 00008 microseconds

3 L R RTT + L R

=

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 47

bull Em um protocolo Go-Back-N (GBN) o remetente eacute autorizado a transmitir muacuteltiplos pacotes sem esperar por um reconhecimento

bull Poreacutem fica limitado a ter natildeo mais do que algum nuacutemero maacuteximo permitido N (tamanho da janela) de pacotes natildeo reconhecidos na ldquotubulaccedilatildeordquo

bull Visatildeo do remetente para os nuacutemeros de sequecircncia no protocolo Go-Back-N

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 48

bull Descriccedilatildeo da FSM estendida do remetente GBNbull Quem consegue descrever o funcionamento

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 49

bull Descriccedilatildeo da FSM estendida do destinataacuterio GBN

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 50

Go-Back-N (GBN) em operaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 51

bull Protocolos de repeticcedilatildeo seletiva (SR) evitam retransmissotildees desnecessaacuterias

bull Eles fazem o remetente retransmitir apenas os pacotes suspeitos de terem sido recebidos com erro no destinataacuterio

bull Essa retransmissatildeo individual soacute quando necessaacuteria exige que o destinataacuterio reconheccedila individualmente os pacotes recebidos de modo correto

Repeticcedilatildeo seletiva (SR)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 52

Repeticcedilatildeo seletiva (SR)

Transport Layer 3-53

Selective repeatdilemma

example seq rsquos 0 1 2 3 window size=3

receiver window(after receipt)

sender window(after receipt)

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2 pkt0

timeoutretransmit pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2XXX

will accept packetwith seq number 0

(b) oops

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

X

will accept packetwith seq number 0

0 1 2 3 0 1 2 pkt3

(a) no problem

receiver canrsquot see sender sidereceiver behavior identical in both casessomethingrsquos (very) wrong

receiver sees no difference in two scenarios

duplicate data accepted as new in (b)

Q what relationship between seq size and window size to avoid problem in (b)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 54

Resumo de mecanismos de transferecircncia confiaacutevel de dados e sua utilizaccedilatildeo

bull Soma de verificaccedilatildeo - Usada para detectar erros de bits em um pacote transmitido

bull Temporizador - Usado para controlar a temporizaccedilatildeoretransmissatildeo de um pacote possivelmente porque o pacote (ou seu ACK) foi perdido dentro do canal

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 55

bull Nuacutemero de sequecircncia - Usado para numeraccedilatildeo sequencial de segmentos de dados que transitam do remetente ao destinataacuterio Ou seja pode-se ter vaacuterios segmentos transitando simultaneamente no canal de comunicaccedilatildeo maximizando assim o uso desse canal

bull Reconhecimento - Usado pelo destinataacuterio para avisar o remetente que um pacote ou conjunto de pacotes foi recebido corretamente

bull Janela paralelismo - O remetente pode ficar restrito a enviar somente pacotes com nuacutemeros de sequecircncia que caiam dentro de uma determinada faixa

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 56

bull Uma conexatildeo TCP provecirc um serviccedilo full-duplex

bull A conexatildeo TCP eacute sempre ponto a ponto

bull Uma vez estabelecida uma conexatildeo TCP dois processos de aplicaccedilatildeo podem enviar dados um para o outro 3-way handshake jaacute estabelecendo o MSS

bull O TCP combina cada porccedilatildeo de dados do cliente com um cabeccedilalho TCP formando assim segmentos TCP

A conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 57

Estrutura do segmento TCPURG dados urgentes

(quase natildeo usado)

ACK ACKvaacutelido

PSH empurrar dados agora

RST SYN FINestab conexatildeo

soma de verificaccedilatildeo

da Internet ndash todo o segmento(como em UDP)

bytes destinataacuteriopode aceitar

contagem porbytes de dados(natildeo segmentos)

Opcional e de comprimentovariaacutevel utilizado paranegociar o MSS ou fatorde escala em redes dealta velocidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 58

TCP Estabelecendo e fechando conexotildees

3-way handshakeFinalizando

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 59

s sequecircncia e ACKs do TCP

Cenaacuterio preestabelecido telnet simples

rsquos de sequecircnciandash ldquonuacutemerordquo na cadeia de

bytes do 1o byte nos dados do segmento

ACKsndash seq do proacuteximo byte

esperado do outro ladondash ACK cumulativo

P como o destinataacuterio trata segmentos fora de ordem

ndash R TCP natildeo diz ndash a criteacuterio do implementador

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 60

Tempo de ida e volta e timeout do TCP

P Como definir o valor de timeout do TCP

maior que RTTndash mas RTT varia

muito curto timeout prematurondash retransmissotildees

desnecessaacuterias muito longo baixa

reaccedilatildeo a perda de segmento

P Como estimar o RTT SampleRTT tempo medido

da transmissatildeo do segmento ateacute receber o ACKndash ignora retransmissotildees

SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquondash meacutedia de vaacuterias mediccedilotildees

recentes natildeo apenas SampleRTT atual

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 61

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui exponencialmente

raacutepido valor tiacutepico = 0125

Tempo de ida e volta e timeout do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 62

Amostras de RTTs estimados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 63

definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(geralmente = 025)

depois definir intervalo de timeout

Tempo de ida e volta e timeout do TCP

TimeoutIntervalinicial

= 1 sldquomargem de seguranccedilardquo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 64

TCP cenaacuterios de retransmissatildeo

Hosp A

Seq = 100 20 bytes dados

ACK = 100

tempoTimeout prematuro

Hosp B

Seq = 92 8 bytes dados

ACK = 120

Seq = 92 8 bytes dados

Seq

= 9

2 tim

eout

ACK = 120

Hosp A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio de ACK perdido

Hosp B

X

Seq = 92 8 bytes dados

ACK = 100

tempoS

eq =

92

timeo

ut

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 65

TCP cenaacuterios de retransmissatildeo

Host A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio ACK cumulativo

Host B

X

Seq = 100 20 bytes dados

ACK = 120

tempo

Transport Layer 3-66

TCP fast retransmit time-out period

often relatively long long delay before

resending lost packet detect lost

segments via duplicate ACKs sender often sends

many segments back-to-back

if segment is lost there will likely be many duplicate ACKs

if sender receives 3 ACKs for same data(ldquotriple duplicate ACKsrdquo) resend unacked segment with smallest seq

likely that unacked segment lost so donrsquot wait for timeout

TCP fast retransmit

Transport Layer 3-67

X

fast retransmit after sender receipt of triple duplicate ACK

Host BHost A

Seq=92 8 bytes of data

ACK=100

timeo

ut ACK=100

ACK=100

ACK=100

TCP fast retransmit

Seq=100 20 bytes of data

Seq=100 20 bytes of data

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 69

bull O nuacutemero de sequecircncia para um segmento eacute o nuacutemero do primeiro byte do segmento

bull O nuacutemero de reconhecimento que o hospedeiro A atribui a seu segmento eacute o nuacutemero de sequecircncia do proacuteximo byte que ele estiver aguardando do hospedeiro B

bull Como o TCP somente reconhece bytes ateacute o primeiro byte que estiver faltando na cadeia dizemos que o TCP provecirc reconhecimentos cumulativos

Nuacutemeros de sequecircncia e nuacutemeros de reconhecimento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 70

bull O TCP cria um serviccedilo de transferecircncia confiaacutevel de dados sobre o serviccedilo de melhor esforccedilo do IP

bull O serviccedilo de transferecircncia garante que a cadeia de bytes eacute idecircntica agrave cadeia de bytes enviada pelo sistema final que estaacute do outro lado da conexatildeo

bull Os procedimentos recomendados no [RFC 6298] para gerenciamento de temporizadores TCP utilizam apenas um uacutenico temporizador de retransmissatildeo

Transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 71

bull O TCP provecirc um serviccedilo de controle de fluxo agraves suas aplicaccedilotildees para eliminar a possibilidade de o remetente estourar o buffer do destinataacuterio

bull Controle de fluxo eacute um serviccedilo de compatibilizaccedilatildeo de velocidades

bull O TCP oferece serviccedilo de controle de fluxo fazendo que o remetente mantenha uma variaacutevel denominada janela de recepccedilatildeo

Controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 72

Regulaccedilatildeo da taxa de envio

Uma rede de transmissatildeo raacutepida eum receptor de baixa capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 73

Controle de fluxo TCP

lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo

serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora

processo da aplicaccedilatildeo pode ser lento na leitura do buffer

remetente natildeo estouraraacute buffer do destinataacuterio transmitindo muitos dados muito rapidamente

controle de fluxo

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 74

Controle de fluxo TCP como funciona

(suponha que destinataacuterio TCP descarte segmentos fora de ordem)

espaccedilo de buffer natildeo usado = rwnd (slide 48) = RcvBuffer-[LastByteRcvd -

LastByteRead]

destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento

remetente limita de bytes com ACK a rwndndash garante que buffer do

destinataacuterio natildeo estoura

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

rwndRcvBuffer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 75

Gerenciamento da conexatildeo TCP

lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados

inicializa variaacuteveis TCPndash s seqndash buffers informaccedilatildeo de

controle de fluxo (p e RcvWindow)

cliente inicia a conexatildeo Socket clientSocket = new

Socket(hostnameport ) servidor contactado pelo

cliente Socket connectionSocket =

welcomeSocketaccept()

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 76

Gerenciamento da conexatildeo TCP

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 77

fechando uma conexatildeo

cliente fecha socket clientSocketclose()

etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor

etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN

cliente

FIN

servidor

ACK

ACK

FIN

fecha

fecha

fechado

espe

ra

tem

poriz

ada

Gerenciamento da conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 79

Controle de congestionamento

Uma rede de transmissatildeo lenta eum receptor de alta capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 80

bull As causas e os custos do congestionamento

Cenaacuterio de congestionamento 1 duas conexotildees compartilhando um uacutenico roteador com nuacutemero infinito de buffers

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 81

bull As causas e os custos do congestionamentoCenaacuterio de congestionamento 1 vazatildeo e atraso em funccedilatildeo da taxa de envio do hospedeiro

ldquocustosrdquo do congestionamento Aumento de atrasos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 82

bull As causas e os custos do congestionamento

Cenaacuterio 2 dois hospedeiros (com retransmissotildees) e um roteador com buffers finitos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 83

a) Caso ideal (vazatildeo)

b) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda

c) retransmissatildeo do pacote adiado (natildeo perdido) torna maior (que

o caso perfeito ) para o mesmo

in

out

=

in

out

gt

in

out

ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do

pacote

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 84

bull As causas e os custos do congestionamento

Cenaacuterio 3 quatro remetentesroteadores com buffers finitos e trajetos com muacuteltiplos roteadores

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 85

outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer capacidade

de transmissatildeo anterior usada para esse pacote foi desperdiccedilada

Host A

Host B

o

u

t

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 86

Controle de congestionamento fim a fim

bull A camada de rede natildeo fornece nenhum suporte expliacutecito agrave camada de transporte com a finalidade de controle de congestionamento

Controle de congestionamento assistido pela rede

bull Os componentes da camada de rede (isto eacute roteadores) fornecem retroalimentaccedilatildeo especiacutefica de informaccedilotildees ao remetente a respeito do estado de congestionamento na rede Natildeo usual

Mecanismos de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 87

bull A abordagem adotada pelo TCP eacute obrigar cada remetente a limitar a taxa agrave qual enviam traacutefego para sua conexatildeo como uma funccedilatildeo do congestionamento de rede percebido

Se um remetente TCP perceber que haacute pouco congestionamento no caminho entre ele e o destinataacuterio aumentaraacute sua taxa de envio

Se perceber que haacute congestionamento reduziraacute sua taxa de

envio

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 88

bull Mas essa abordagem levanta trecircs questotildees

1 Como um remetente TCP limita a taxa pela qual envia traacutefego para sua conexatildeo

2 Como um remetente TCP percebe que haacute congestionamento entre ele e o destinataacuterio

3 Que algoritmo o remetente deve utilizar para modificar sua taxa de envio como uma funccedilatildeo do congestionamento fim a fim percebido

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 89

bull Partida lenta TCP

Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 90

1) Cwnd = 1 MSS inicialmente

2) Partida lenta a cada rodada redefine cwnd = cwnd 2

3) Perda de pacotes (esgotamento de temporizaccedilatildeo ndash problema grave) ==gt cwnd = 1 (Tahoe ou Reno)

4) Prevenccedilatildeo de congestionamento apoacutes atingir sstresh cwnd = cwnd + 1

5) Trecircs acks duplicados (buraco no ldquofluxordquo ndash problema brando) entra no estado prevenccedilatildeo de congestionamento e redefine cwnd = 1 (Tahoe) ou cwnd = sstresh (Reno)

6) Sstresh = cwnd2 quando satildeo detectados problemas

Quantidade de dados natildeo reconhecidas no TCP = min(CongWin RecWin)

Controle de congestionamento TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 91

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 93

bull Evoluccedilatildeo da janela de congestionamento do TCP (Tahoe e Reno ndash mais usual)

Recuperaccedilatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 94

Controle de congestionamento TCP

Partida lenta seguida por aumento aditivo no TCP Tahoe

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 95

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 96

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 97

bull O controle de congestionamento AIMD (Additive-increase Multiplicative-Decrease) faz surgir o comportamento semelhante a ldquodentes de serrardquo

bull httpsmediapearsoncmgcomawecs_kurose_compnetwork_7cwcontentinteractiveanimationstcp-congestionindexhtml

Controle de congestionamento no TCP retrospectiva

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 98

O que eacute throughput meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughput meacutedio 075 WRTT (75 WRTT)

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 99

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (Probabilidade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 100

bull Duas conexotildees TCP compartilhando um uacutenico enlace congestionado

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 101

bull Vazatildeo alcanccedilada pelas conexotildees TCP 1 e TCP 2bull Ambas conexotildees em algum momento estatildeo com vazatildeo Abull Ambas vatildeo aumentando a vazatildeo ateacute ocorrer perda ndash Bbull Sstresh cai pela metade e ambas migram para Chellip

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 102

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

ndash Consequecircncia

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Nova aplicaccedilatildeo pede 1 TCP obteacutem taxa de R10 Nova aplicaccedilatildeo pede 11 TCPs obteacutem R2

Equidade

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Multiplexingdemultiplexing
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Principles of reliable data transfer
  • Slide 20
  • Slide 21
  • Reliable data transfer getting started
  • Slide 23
  • Slide 24
  • Slide 25
  • rdt20 FSM specification
  • rdt20 operation with no errors
  • rdt20 error scenario
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • rdt30 in action
  • Slide 39
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Selective repeat dilemma
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • TCP fast retransmit
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
Page 3: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 3

bull Um protocolo de camada de transporte fornece comunicaccedilatildeo loacutegica entre processos que rodam em hospedeiros diferentes Segmentos da camada de transporte

bull Um protocolo de camada de rede fornece comunicaccedilatildeo loacutegica entre hospedeiros Datagrama da camada de rede

bull Uma rede de computadores pode disponibilizar vaacuterios protocolos de transporte

bull Os serviccedilos que um protocolo de transporte pode fornecer satildeo muitas vezes limitados pelo modelo de serviccedilo do protocolo subjacente da camada de rede

Relaccedilatildeo entre as camadas de transporte e de rede

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 4

bull A responsabilidade fundamental do UDP e do TCP eacute ampliar o serviccedilo de entrega IP entre dois sistemas finais para um serviccedilo de entrega entre dois processos que rodam nos sistemas finais

bull A ampliaccedilatildeo da entrega hospedeiro a hospedeiro para entrega processo a processo eacute denominada multiplexaccedilatildeodemultiplexaccedilatildeo de camada de transporte

bull O UDP e o TCP tambeacutem fornecem verificaccedilatildeo de integridade ao incluir campos de detecccedilatildeo de erros nos cabeccedilalhos de seus segmentos

Visatildeo geral da camada de transporte na Internet

Transport Layer 3-6

Multiplexingdemultiplexing

process

socket

use header info to deliverreceived segments tocorrect socket

demultiplexing at receiverhandle data from multiplesockets add transport header (later used for demultiplexing)

multiplexing at sender

transport

application

physical

link

network

P2P1

transport

application

physical

link

network

P4

transport

application

physical

link

network

P3

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 7

bull A tarefa de entregar os dados contidos em um segmento da camada de transporte ao socket correto eacute denominada demultiplexaccedilatildeo

bull O trabalho de reunir no hospedeiro de origem partes de dados provenientes de diferentes sockets encapsular cada parte de dados com informaccedilotildees de cabeccedilalho para criar segmentos e passar esses segmentos para a camada de rede eacute denominada multiplexaccedilatildeo

Multiplexaccedilatildeo e demultiplexaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 8

bull Campos de nuacutemero de porta de origem e de destino em um segmento de camada de transporte

Multiplexaccedilatildeo e demultiplexaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 9

Demultiplexaccedilatildeo natildeo orientada para conexatildeo

cria sockets com nuacutemero de porta automaacutetico

clietSocket = socket(AF_INET SOCK_DGRAM)

Alternativamente podemos fixar a porta acrescentando

clientSocketbind(( 12535))

socket UDP identificado por tupla de dois elementos

(endereccedilo IP destino nuacutemero porta destino)

quando hospedeiro recebe segmento UDPndash verifica nuacutemero de porta

de destino no segmentondash direciona segmento UDP

para socket com esse nuacutemero de porta

datagramas IP com diferentes endereccedilos IP de origem eou nuacutemeros de porta de origem direcionados para o mesmo socket

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 10

Demultiplexaccedilatildeo natildeo orientada para conexatildeo

socket UDP identificado por tupla de dois elementos

(endereccedilo IP destino nuacutemero porta destino)

ClienteIPB

P2

cliente IP A

P1P1P3

servidorIP C

DP 9157

DP 6428

DP 5775

DP 6428

SP 6428

D-IP A

D-IP C

D-IP B

SP 6428

SP 5775

D-IP C

SP oferece ldquoendereccedilo de retornordquo caso necessaacuterio

SP 9157

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 11

Demultiplexaccedilatildeo orientada para conexatildeo

socket TCP identificado por tupla de 4 elementos ndash endereccedilo IP de origemndash nuacutemero de porta de origemndash endereccedilo IP de destinondash nuacutemero de porta de destino

hospedeiro destinataacuterio usa todos os quatro valores para direcionar segmento ao socket apropriado

hospedeiro servidor pode admitir muitos sockets TCP simultacircneosndash cada socket identificado

por sua proacutepria tupla de 4 servidores Web tecircm

diferentes sockets para cada cliente conectandondash HTTP natildeo persistente teraacute

diferentes sockets para cada requisiccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 12

Demultiplexaccedilatildeo orientada para conexatildeo

clienteIPB

P1

cliente IP A

P1P2P4

servidorIP C

SP 9157DP 80

SP 9157DP 80

P5 P6 P3

D-IPCS-IP AD-IPC

S-IP B

SP 5775DP 80

D-IPCS-IP B

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 13

bull O UDP definido no [RFC 768] faz apenas quase tatildeo pouco quanto um protocolo de transporte pode fazer

bull Agrave parte sua funccedilatildeo de multiplexaccedilatildeodemultiplexaccedilatildeo e de alguma verificaccedilatildeo de erros simples ele nada adiciona ao IP

bull Se o desenvolvedor de aplicaccedilatildeo escolher o UDP em vez do TCP a aplicaccedilatildeo estaraacute ldquofalandordquo quase diretamente com o IP

bull O UDP eacute natildeo orientado para conexatildeo Natildeo haacute a apresentaccedilatildeo entre as entidades remetentes e destinataacuterias

Transporte natildeo orientado para conexatildeo UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 14

bull Melhor controle no niacutevel de aplicaccedilatildeo sobre quais dados satildeo enviados e quando menor atraso

bull Natildeo haacute estabelecimento de conexatildeo menor atrasobull Natildeo haacute estados de conexatildeo buffers paracircmetros de

controle de congestionamento nuacutemero de sequecircncia Menor ldquocustordquo

bull Pequeno excesso de cabeccedilalho de pacotes 8 bytes de excesso TCP 20 bytes Menor ldquocustordquo

bull Sem controle de congestionamento do TCP ==gt isso pode implicar em ldquocolapsordquo na rede

bull Eacute possiacutevel uma aplicaccedilatildeo ter transferecircncia confiaacutevel de dados usando UDP

Por que usa-se UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 15

bull Aplicaccedilotildees populares da Internet e seus protocolos de transporte subjacentes

Transporte natildeo orientado para conexatildeo UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 16

bull Estrutura do segmento UDP

Estrutura do segmento UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 17

bull A soma de verificaccedilatildeo UDP serve para detectar erros em todo o segmento

bull Suponha que tenhamos as seguintes trecircs palavras de 16 bits

bull A soma das duas primeiras eacute

bull Adicionando a terceira palavra agrave soma anterior temos

Soma de verificaccedilatildeo UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 18

bull Note que a uacuteltima adiccedilatildeo teve um ldquovai umrdquo no bit mais significativo que foi somado ao bit menos significativo

bull Complemento de 1 0 ==gt 1 1 ==gt 0bull Fazendo o complemento de 1 da soma final

1011010100111101 Esta eacute a soma de verificaccedilatildeobull No destinataacuterio todas as 4 palavras recebidas de 16 bits satildeo

somadas 1111 ==gt Pacote correto algum bit em 0 ==gt algum erro foi introduzido no pacote

bull Por que soma de verificaccedilatildeo no UDPbull Algumas camadas de enlace por exemplo Ethernet fornecem

soma de verificaccedilatildeobull mas nem todas e aleacutem disso um roteador poderia introduzir

algum errobull UDP verifica erros fim a fim

Soma de verificaccedilatildeo UDP

Transport Layer 3-19

Principles of reliable data transfer important in application transport link layers

top-10 list of important networking topics

characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)

Transport Layer 3-20

characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)

Principles of reliable data transfer important in application transport link layers

top-10 list of important networking topics

Transport Layer 3-21

characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)

important in application transport link layers top-10 list of important networking topics

Principles of reliable data transfer

Transport Layer 3-22

sendside

receiveside

rdt_send() called from above (eg by app) Passed data to deliver to receiver upper layer

udt_send() called by rdtto transfer packet over unreliable channel to receiver

rdt_rcv() called when packet arrives on rcv-side of channel

deliver_data() called by rdt to deliver data to upper

Principles of reliable data transfer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 23

vamos desenvolver de forma incremental os lados remetente e destinataacuterio do

protocolo de transferecircncia confiaacutevel de dados (rdt) considerar apenas a transf de dados unidirecional Bidirecional eacute soacute

duplicar a estruturandash mas informaccedilotildees de controle fluiratildeo nas duas direccedilotildees

usar maacutequinas de estado finito (FSM) para especificar remetente e destinataacuterio

estado1

estado2

evento causando transiccedilatildeo de estadoaccedilotildees tomadas sobre transiccedilatildeo de estado

estado quando neste ldquoestadordquo proacuteximo

estado determinadoexclusivamente pelo

proacuteximo evento

eventoaccedilotildees

Transferecircncia confiaacutevel de dados introduccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 24

bull rdt10 ndash Um protocolo para um canal completamente confiaacutevel

Transferecircncia confiaacutevel de dados sobre um canal perfeitamente confiaacutevel rdt10

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 25

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt20

rdt20 ndash Um protocolo para um canal com erros de bits Base dos protocolos ARQ (Automatic Repeat Request)

Detecccedilatildeo de erros (mecanismo do UDP)

Realimentaccedilatildeo do destinataacuterio (ACK ou NACK)

Retransmissatildeobull Pare e espere

Transport Layer 3-26

rdt20 FSM specification

Wait for call from above

sndpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from belowsender

receiverrdt_send(data)

Transport Layer 3-27

rdt20 operation with no errors

Wait for call from above

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from below

rdt_send(data)

Transport Layer 3-28

rdt20 error scenario

Wait for call from above

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from below

rdt_send(data)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 29

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt20

bull O que acontece se o pacote ACK ou NAK estiver corrompido

bull Vamos considerar trecircs possibilidade para ACKs ou NAKs corrompidos1 Ser humano -- A ldquoditadordquo B ldquoOKrdquo ou ldquoRepita por favorrdquo ==gt

A natildeo entende ldquoO que foi que vocecirc disserdquo infinito Peacutessimo2 Bits de soma de verificaccedilatildeo de tal modo que permita ao remetente a

recuperaccedilatildeo de erros de bits Muito bom mas serve somente para canais com erro de bits e natildeo perda de pacotes

3 O Remetente reenvia o pacote de dados corrente quando receber um pacote ACK ou NAK truncado ==gt pode gerar pacotes duplicados Como o destinataacuterio sabe se o pacote conteacutem novos dados ou eacute uma retransmissatildeo ==gt nuacutemero de sequecircncia

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 30

bull rdt21 remetente

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 31

bull rdt21 destinataacuterio

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 32

bull O protocolo rdt21 usa tanto o reconhecimento positivo como negativo do remetente ao destinataacuterio pacote fora de ordem ==gt ACK pacote corrompido ==gt NAK

bull Podemos conseguir o mesmo efeito se ao inveacutes de enviarmos um NAK enviarmos um ACK do uacuteltimo corretamente recebido Ou seja ACK tambeacutem numerado

bull ACKs duplicados indicam ao remetente que o destinataacuterio natildeo recebeu corretamente o pacote seguinte agravequele do ACK duplo

bull rdt22 deve enviar o nuacutemero de sequecircncia no ACK

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21-2

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 33

bull rdt22 remetente

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt22

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 34

bull rdt22 destinataacuterio

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt22

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 35

bull Duas preocupaccedilotildees adicionais devem ser tratadas pelo protocolo1 Como detectar perda de pacotes2 O que fazer quando haacute perdas

bull As teacutecnicas jaacute discutidas atendem a segunda questatildeobull E para a primeira questatildeobull Suponha que o remetente transmita um pacote e que esse

pacote ou seu ACK seja perdido Nenhuma resposta chegaraacute ao remetente Se o remetente natildeo quiser esperar ==gt retransmite o pacote

bull Mas quanto o remetente precisa esperar para ter certeza que algo foi perdido Esperar um RTT Eacute muito difiacutecil estimar o RTT quanto mais ter certeza

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 36

bull Aleacutem disso o ideal seria que o protocolo se recuperasse da perda assim que possiacutevel

bull Na praacutetica O remetente faz uma escolha ponderada de um RTT provaacutevel mas natildeo

garantido que a perda tivesse acontecido Se natildeo receber um ACK nesse periacuteodo retransmite o pacote

bull Se o pacote sofrer um atraso longo pode haver retransmissatildeo mesmo que o pacote ou ACK natildeo tenham sido perdidos Possibilidade de pacotes de dados duplicados

bull Para implementar um mecanismo de retransmissatildeo com base no tempo eacute necessaacuterio um temporizador de contagem regressiva Accedilotildees iniciar atender parar

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 37

bull rdt30 remetente

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Transport Layer 3-38

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

pkt1

ack1

ack0

ack0

(a) no loss

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(b) packet loss

pkt1X

loss

pkt1timeout

resend pkt1

rdt30 in action

Transport Layer 3-39

rdt30 in action

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(c) ACK loss

ack1X

loss

pkt1timeout

resend pkt1

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

send ack0rcv ack0

send pkt1

send pkt0rcv pkt0

pkt0

ack0

(d) premature timeout delayed ACK

pkt1timeout

resend pkt1

ack1

send ack1

send pkt0rcv ack1

pkt0

ack1

ack0

send pkt0rcv ack1 pkt0

rcv pkt0send ack0ack0

rcv pkt0

send ack0(detect duplicate)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 42

bull No coraccedilatildeo do problema do desempenho do rdt30 estaacute o fato de ele ser um protocolo do tipo pare e espere

bull Um protocolo pare e espere em operaccedilatildeo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 43

U remet =

0008

30008 = 000027

microseconds

L R RTT + L R

=

Desempenho do rdt30

rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso pacote 8000 bits

U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando

Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps protocolo de rede limita uso de recursos fiacutesicos Soluccedilatildeo

ndosmicrosseguR

Ldtrans 8

bps10

bits80009

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 44

Um protocolo com paralelismo em operaccedilatildeo

bull O ACK recebido eacute de que pacote

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 45

bull Envio com pare e espere

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 46

bull Envio com paralelismo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Aumento de utilizaccedilatildeopor fator de 3

U remet =

0024 30008

= 00008 microseconds

3 L R RTT + L R

=

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 47

bull Em um protocolo Go-Back-N (GBN) o remetente eacute autorizado a transmitir muacuteltiplos pacotes sem esperar por um reconhecimento

bull Poreacutem fica limitado a ter natildeo mais do que algum nuacutemero maacuteximo permitido N (tamanho da janela) de pacotes natildeo reconhecidos na ldquotubulaccedilatildeordquo

bull Visatildeo do remetente para os nuacutemeros de sequecircncia no protocolo Go-Back-N

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 48

bull Descriccedilatildeo da FSM estendida do remetente GBNbull Quem consegue descrever o funcionamento

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 49

bull Descriccedilatildeo da FSM estendida do destinataacuterio GBN

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 50

Go-Back-N (GBN) em operaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 51

bull Protocolos de repeticcedilatildeo seletiva (SR) evitam retransmissotildees desnecessaacuterias

bull Eles fazem o remetente retransmitir apenas os pacotes suspeitos de terem sido recebidos com erro no destinataacuterio

bull Essa retransmissatildeo individual soacute quando necessaacuteria exige que o destinataacuterio reconheccedila individualmente os pacotes recebidos de modo correto

Repeticcedilatildeo seletiva (SR)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 52

Repeticcedilatildeo seletiva (SR)

Transport Layer 3-53

Selective repeatdilemma

example seq rsquos 0 1 2 3 window size=3

receiver window(after receipt)

sender window(after receipt)

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2 pkt0

timeoutretransmit pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2XXX

will accept packetwith seq number 0

(b) oops

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

X

will accept packetwith seq number 0

0 1 2 3 0 1 2 pkt3

(a) no problem

receiver canrsquot see sender sidereceiver behavior identical in both casessomethingrsquos (very) wrong

receiver sees no difference in two scenarios

duplicate data accepted as new in (b)

Q what relationship between seq size and window size to avoid problem in (b)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 54

Resumo de mecanismos de transferecircncia confiaacutevel de dados e sua utilizaccedilatildeo

bull Soma de verificaccedilatildeo - Usada para detectar erros de bits em um pacote transmitido

bull Temporizador - Usado para controlar a temporizaccedilatildeoretransmissatildeo de um pacote possivelmente porque o pacote (ou seu ACK) foi perdido dentro do canal

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 55

bull Nuacutemero de sequecircncia - Usado para numeraccedilatildeo sequencial de segmentos de dados que transitam do remetente ao destinataacuterio Ou seja pode-se ter vaacuterios segmentos transitando simultaneamente no canal de comunicaccedilatildeo maximizando assim o uso desse canal

bull Reconhecimento - Usado pelo destinataacuterio para avisar o remetente que um pacote ou conjunto de pacotes foi recebido corretamente

bull Janela paralelismo - O remetente pode ficar restrito a enviar somente pacotes com nuacutemeros de sequecircncia que caiam dentro de uma determinada faixa

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 56

bull Uma conexatildeo TCP provecirc um serviccedilo full-duplex

bull A conexatildeo TCP eacute sempre ponto a ponto

bull Uma vez estabelecida uma conexatildeo TCP dois processos de aplicaccedilatildeo podem enviar dados um para o outro 3-way handshake jaacute estabelecendo o MSS

bull O TCP combina cada porccedilatildeo de dados do cliente com um cabeccedilalho TCP formando assim segmentos TCP

A conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 57

Estrutura do segmento TCPURG dados urgentes

(quase natildeo usado)

ACK ACKvaacutelido

PSH empurrar dados agora

RST SYN FINestab conexatildeo

soma de verificaccedilatildeo

da Internet ndash todo o segmento(como em UDP)

bytes destinataacuteriopode aceitar

contagem porbytes de dados(natildeo segmentos)

Opcional e de comprimentovariaacutevel utilizado paranegociar o MSS ou fatorde escala em redes dealta velocidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 58

TCP Estabelecendo e fechando conexotildees

3-way handshakeFinalizando

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 59

s sequecircncia e ACKs do TCP

Cenaacuterio preestabelecido telnet simples

rsquos de sequecircnciandash ldquonuacutemerordquo na cadeia de

bytes do 1o byte nos dados do segmento

ACKsndash seq do proacuteximo byte

esperado do outro ladondash ACK cumulativo

P como o destinataacuterio trata segmentos fora de ordem

ndash R TCP natildeo diz ndash a criteacuterio do implementador

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 60

Tempo de ida e volta e timeout do TCP

P Como definir o valor de timeout do TCP

maior que RTTndash mas RTT varia

muito curto timeout prematurondash retransmissotildees

desnecessaacuterias muito longo baixa

reaccedilatildeo a perda de segmento

P Como estimar o RTT SampleRTT tempo medido

da transmissatildeo do segmento ateacute receber o ACKndash ignora retransmissotildees

SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquondash meacutedia de vaacuterias mediccedilotildees

recentes natildeo apenas SampleRTT atual

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 61

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui exponencialmente

raacutepido valor tiacutepico = 0125

Tempo de ida e volta e timeout do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 62

Amostras de RTTs estimados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 63

definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(geralmente = 025)

depois definir intervalo de timeout

Tempo de ida e volta e timeout do TCP

TimeoutIntervalinicial

= 1 sldquomargem de seguranccedilardquo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 64

TCP cenaacuterios de retransmissatildeo

Hosp A

Seq = 100 20 bytes dados

ACK = 100

tempoTimeout prematuro

Hosp B

Seq = 92 8 bytes dados

ACK = 120

Seq = 92 8 bytes dados

Seq

= 9

2 tim

eout

ACK = 120

Hosp A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio de ACK perdido

Hosp B

X

Seq = 92 8 bytes dados

ACK = 100

tempoS

eq =

92

timeo

ut

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 65

TCP cenaacuterios de retransmissatildeo

Host A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio ACK cumulativo

Host B

X

Seq = 100 20 bytes dados

ACK = 120

tempo

Transport Layer 3-66

TCP fast retransmit time-out period

often relatively long long delay before

resending lost packet detect lost

segments via duplicate ACKs sender often sends

many segments back-to-back

if segment is lost there will likely be many duplicate ACKs

if sender receives 3 ACKs for same data(ldquotriple duplicate ACKsrdquo) resend unacked segment with smallest seq

likely that unacked segment lost so donrsquot wait for timeout

TCP fast retransmit

Transport Layer 3-67

X

fast retransmit after sender receipt of triple duplicate ACK

Host BHost A

Seq=92 8 bytes of data

ACK=100

timeo

ut ACK=100

ACK=100

ACK=100

TCP fast retransmit

Seq=100 20 bytes of data

Seq=100 20 bytes of data

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 69

bull O nuacutemero de sequecircncia para um segmento eacute o nuacutemero do primeiro byte do segmento

bull O nuacutemero de reconhecimento que o hospedeiro A atribui a seu segmento eacute o nuacutemero de sequecircncia do proacuteximo byte que ele estiver aguardando do hospedeiro B

bull Como o TCP somente reconhece bytes ateacute o primeiro byte que estiver faltando na cadeia dizemos que o TCP provecirc reconhecimentos cumulativos

Nuacutemeros de sequecircncia e nuacutemeros de reconhecimento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 70

bull O TCP cria um serviccedilo de transferecircncia confiaacutevel de dados sobre o serviccedilo de melhor esforccedilo do IP

bull O serviccedilo de transferecircncia garante que a cadeia de bytes eacute idecircntica agrave cadeia de bytes enviada pelo sistema final que estaacute do outro lado da conexatildeo

bull Os procedimentos recomendados no [RFC 6298] para gerenciamento de temporizadores TCP utilizam apenas um uacutenico temporizador de retransmissatildeo

Transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 71

bull O TCP provecirc um serviccedilo de controle de fluxo agraves suas aplicaccedilotildees para eliminar a possibilidade de o remetente estourar o buffer do destinataacuterio

bull Controle de fluxo eacute um serviccedilo de compatibilizaccedilatildeo de velocidades

bull O TCP oferece serviccedilo de controle de fluxo fazendo que o remetente mantenha uma variaacutevel denominada janela de recepccedilatildeo

Controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 72

Regulaccedilatildeo da taxa de envio

Uma rede de transmissatildeo raacutepida eum receptor de baixa capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 73

Controle de fluxo TCP

lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo

serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora

processo da aplicaccedilatildeo pode ser lento na leitura do buffer

remetente natildeo estouraraacute buffer do destinataacuterio transmitindo muitos dados muito rapidamente

controle de fluxo

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 74

Controle de fluxo TCP como funciona

(suponha que destinataacuterio TCP descarte segmentos fora de ordem)

espaccedilo de buffer natildeo usado = rwnd (slide 48) = RcvBuffer-[LastByteRcvd -

LastByteRead]

destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento

remetente limita de bytes com ACK a rwndndash garante que buffer do

destinataacuterio natildeo estoura

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

rwndRcvBuffer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 75

Gerenciamento da conexatildeo TCP

lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados

inicializa variaacuteveis TCPndash s seqndash buffers informaccedilatildeo de

controle de fluxo (p e RcvWindow)

cliente inicia a conexatildeo Socket clientSocket = new

Socket(hostnameport ) servidor contactado pelo

cliente Socket connectionSocket =

welcomeSocketaccept()

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 76

Gerenciamento da conexatildeo TCP

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 77

fechando uma conexatildeo

cliente fecha socket clientSocketclose()

etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor

etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN

cliente

FIN

servidor

ACK

ACK

FIN

fecha

fecha

fechado

espe

ra

tem

poriz

ada

Gerenciamento da conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 79

Controle de congestionamento

Uma rede de transmissatildeo lenta eum receptor de alta capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 80

bull As causas e os custos do congestionamento

Cenaacuterio de congestionamento 1 duas conexotildees compartilhando um uacutenico roteador com nuacutemero infinito de buffers

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 81

bull As causas e os custos do congestionamentoCenaacuterio de congestionamento 1 vazatildeo e atraso em funccedilatildeo da taxa de envio do hospedeiro

ldquocustosrdquo do congestionamento Aumento de atrasos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 82

bull As causas e os custos do congestionamento

Cenaacuterio 2 dois hospedeiros (com retransmissotildees) e um roteador com buffers finitos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 83

a) Caso ideal (vazatildeo)

b) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda

c) retransmissatildeo do pacote adiado (natildeo perdido) torna maior (que

o caso perfeito ) para o mesmo

in

out

=

in

out

gt

in

out

ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do

pacote

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 84

bull As causas e os custos do congestionamento

Cenaacuterio 3 quatro remetentesroteadores com buffers finitos e trajetos com muacuteltiplos roteadores

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 85

outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer capacidade

de transmissatildeo anterior usada para esse pacote foi desperdiccedilada

Host A

Host B

o

u

t

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 86

Controle de congestionamento fim a fim

bull A camada de rede natildeo fornece nenhum suporte expliacutecito agrave camada de transporte com a finalidade de controle de congestionamento

Controle de congestionamento assistido pela rede

bull Os componentes da camada de rede (isto eacute roteadores) fornecem retroalimentaccedilatildeo especiacutefica de informaccedilotildees ao remetente a respeito do estado de congestionamento na rede Natildeo usual

Mecanismos de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 87

bull A abordagem adotada pelo TCP eacute obrigar cada remetente a limitar a taxa agrave qual enviam traacutefego para sua conexatildeo como uma funccedilatildeo do congestionamento de rede percebido

Se um remetente TCP perceber que haacute pouco congestionamento no caminho entre ele e o destinataacuterio aumentaraacute sua taxa de envio

Se perceber que haacute congestionamento reduziraacute sua taxa de

envio

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 88

bull Mas essa abordagem levanta trecircs questotildees

1 Como um remetente TCP limita a taxa pela qual envia traacutefego para sua conexatildeo

2 Como um remetente TCP percebe que haacute congestionamento entre ele e o destinataacuterio

3 Que algoritmo o remetente deve utilizar para modificar sua taxa de envio como uma funccedilatildeo do congestionamento fim a fim percebido

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 89

bull Partida lenta TCP

Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 90

1) Cwnd = 1 MSS inicialmente

2) Partida lenta a cada rodada redefine cwnd = cwnd 2

3) Perda de pacotes (esgotamento de temporizaccedilatildeo ndash problema grave) ==gt cwnd = 1 (Tahoe ou Reno)

4) Prevenccedilatildeo de congestionamento apoacutes atingir sstresh cwnd = cwnd + 1

5) Trecircs acks duplicados (buraco no ldquofluxordquo ndash problema brando) entra no estado prevenccedilatildeo de congestionamento e redefine cwnd = 1 (Tahoe) ou cwnd = sstresh (Reno)

6) Sstresh = cwnd2 quando satildeo detectados problemas

Quantidade de dados natildeo reconhecidas no TCP = min(CongWin RecWin)

Controle de congestionamento TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 91

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 93

bull Evoluccedilatildeo da janela de congestionamento do TCP (Tahoe e Reno ndash mais usual)

Recuperaccedilatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 94

Controle de congestionamento TCP

Partida lenta seguida por aumento aditivo no TCP Tahoe

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 95

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 96

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 97

bull O controle de congestionamento AIMD (Additive-increase Multiplicative-Decrease) faz surgir o comportamento semelhante a ldquodentes de serrardquo

bull httpsmediapearsoncmgcomawecs_kurose_compnetwork_7cwcontentinteractiveanimationstcp-congestionindexhtml

Controle de congestionamento no TCP retrospectiva

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 98

O que eacute throughput meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughput meacutedio 075 WRTT (75 WRTT)

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 99

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (Probabilidade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 100

bull Duas conexotildees TCP compartilhando um uacutenico enlace congestionado

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 101

bull Vazatildeo alcanccedilada pelas conexotildees TCP 1 e TCP 2bull Ambas conexotildees em algum momento estatildeo com vazatildeo Abull Ambas vatildeo aumentando a vazatildeo ateacute ocorrer perda ndash Bbull Sstresh cai pela metade e ambas migram para Chellip

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 102

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

ndash Consequecircncia

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Nova aplicaccedilatildeo pede 1 TCP obteacutem taxa de R10 Nova aplicaccedilatildeo pede 11 TCPs obteacutem R2

Equidade

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Multiplexingdemultiplexing
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Principles of reliable data transfer
  • Slide 20
  • Slide 21
  • Reliable data transfer getting started
  • Slide 23
  • Slide 24
  • Slide 25
  • rdt20 FSM specification
  • rdt20 operation with no errors
  • rdt20 error scenario
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • rdt30 in action
  • Slide 39
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Selective repeat dilemma
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • TCP fast retransmit
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
Page 4: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 4

bull A responsabilidade fundamental do UDP e do TCP eacute ampliar o serviccedilo de entrega IP entre dois sistemas finais para um serviccedilo de entrega entre dois processos que rodam nos sistemas finais

bull A ampliaccedilatildeo da entrega hospedeiro a hospedeiro para entrega processo a processo eacute denominada multiplexaccedilatildeodemultiplexaccedilatildeo de camada de transporte

bull O UDP e o TCP tambeacutem fornecem verificaccedilatildeo de integridade ao incluir campos de detecccedilatildeo de erros nos cabeccedilalhos de seus segmentos

Visatildeo geral da camada de transporte na Internet

Transport Layer 3-6

Multiplexingdemultiplexing

process

socket

use header info to deliverreceived segments tocorrect socket

demultiplexing at receiverhandle data from multiplesockets add transport header (later used for demultiplexing)

multiplexing at sender

transport

application

physical

link

network

P2P1

transport

application

physical

link

network

P4

transport

application

physical

link

network

P3

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 7

bull A tarefa de entregar os dados contidos em um segmento da camada de transporte ao socket correto eacute denominada demultiplexaccedilatildeo

bull O trabalho de reunir no hospedeiro de origem partes de dados provenientes de diferentes sockets encapsular cada parte de dados com informaccedilotildees de cabeccedilalho para criar segmentos e passar esses segmentos para a camada de rede eacute denominada multiplexaccedilatildeo

Multiplexaccedilatildeo e demultiplexaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 8

bull Campos de nuacutemero de porta de origem e de destino em um segmento de camada de transporte

Multiplexaccedilatildeo e demultiplexaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 9

Demultiplexaccedilatildeo natildeo orientada para conexatildeo

cria sockets com nuacutemero de porta automaacutetico

clietSocket = socket(AF_INET SOCK_DGRAM)

Alternativamente podemos fixar a porta acrescentando

clientSocketbind(( 12535))

socket UDP identificado por tupla de dois elementos

(endereccedilo IP destino nuacutemero porta destino)

quando hospedeiro recebe segmento UDPndash verifica nuacutemero de porta

de destino no segmentondash direciona segmento UDP

para socket com esse nuacutemero de porta

datagramas IP com diferentes endereccedilos IP de origem eou nuacutemeros de porta de origem direcionados para o mesmo socket

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 10

Demultiplexaccedilatildeo natildeo orientada para conexatildeo

socket UDP identificado por tupla de dois elementos

(endereccedilo IP destino nuacutemero porta destino)

ClienteIPB

P2

cliente IP A

P1P1P3

servidorIP C

DP 9157

DP 6428

DP 5775

DP 6428

SP 6428

D-IP A

D-IP C

D-IP B

SP 6428

SP 5775

D-IP C

SP oferece ldquoendereccedilo de retornordquo caso necessaacuterio

SP 9157

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 11

Demultiplexaccedilatildeo orientada para conexatildeo

socket TCP identificado por tupla de 4 elementos ndash endereccedilo IP de origemndash nuacutemero de porta de origemndash endereccedilo IP de destinondash nuacutemero de porta de destino

hospedeiro destinataacuterio usa todos os quatro valores para direcionar segmento ao socket apropriado

hospedeiro servidor pode admitir muitos sockets TCP simultacircneosndash cada socket identificado

por sua proacutepria tupla de 4 servidores Web tecircm

diferentes sockets para cada cliente conectandondash HTTP natildeo persistente teraacute

diferentes sockets para cada requisiccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 12

Demultiplexaccedilatildeo orientada para conexatildeo

clienteIPB

P1

cliente IP A

P1P2P4

servidorIP C

SP 9157DP 80

SP 9157DP 80

P5 P6 P3

D-IPCS-IP AD-IPC

S-IP B

SP 5775DP 80

D-IPCS-IP B

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 13

bull O UDP definido no [RFC 768] faz apenas quase tatildeo pouco quanto um protocolo de transporte pode fazer

bull Agrave parte sua funccedilatildeo de multiplexaccedilatildeodemultiplexaccedilatildeo e de alguma verificaccedilatildeo de erros simples ele nada adiciona ao IP

bull Se o desenvolvedor de aplicaccedilatildeo escolher o UDP em vez do TCP a aplicaccedilatildeo estaraacute ldquofalandordquo quase diretamente com o IP

bull O UDP eacute natildeo orientado para conexatildeo Natildeo haacute a apresentaccedilatildeo entre as entidades remetentes e destinataacuterias

Transporte natildeo orientado para conexatildeo UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 14

bull Melhor controle no niacutevel de aplicaccedilatildeo sobre quais dados satildeo enviados e quando menor atraso

bull Natildeo haacute estabelecimento de conexatildeo menor atrasobull Natildeo haacute estados de conexatildeo buffers paracircmetros de

controle de congestionamento nuacutemero de sequecircncia Menor ldquocustordquo

bull Pequeno excesso de cabeccedilalho de pacotes 8 bytes de excesso TCP 20 bytes Menor ldquocustordquo

bull Sem controle de congestionamento do TCP ==gt isso pode implicar em ldquocolapsordquo na rede

bull Eacute possiacutevel uma aplicaccedilatildeo ter transferecircncia confiaacutevel de dados usando UDP

Por que usa-se UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 15

bull Aplicaccedilotildees populares da Internet e seus protocolos de transporte subjacentes

Transporte natildeo orientado para conexatildeo UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 16

bull Estrutura do segmento UDP

Estrutura do segmento UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 17

bull A soma de verificaccedilatildeo UDP serve para detectar erros em todo o segmento

bull Suponha que tenhamos as seguintes trecircs palavras de 16 bits

bull A soma das duas primeiras eacute

bull Adicionando a terceira palavra agrave soma anterior temos

Soma de verificaccedilatildeo UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 18

bull Note que a uacuteltima adiccedilatildeo teve um ldquovai umrdquo no bit mais significativo que foi somado ao bit menos significativo

bull Complemento de 1 0 ==gt 1 1 ==gt 0bull Fazendo o complemento de 1 da soma final

1011010100111101 Esta eacute a soma de verificaccedilatildeobull No destinataacuterio todas as 4 palavras recebidas de 16 bits satildeo

somadas 1111 ==gt Pacote correto algum bit em 0 ==gt algum erro foi introduzido no pacote

bull Por que soma de verificaccedilatildeo no UDPbull Algumas camadas de enlace por exemplo Ethernet fornecem

soma de verificaccedilatildeobull mas nem todas e aleacutem disso um roteador poderia introduzir

algum errobull UDP verifica erros fim a fim

Soma de verificaccedilatildeo UDP

Transport Layer 3-19

Principles of reliable data transfer important in application transport link layers

top-10 list of important networking topics

characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)

Transport Layer 3-20

characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)

Principles of reliable data transfer important in application transport link layers

top-10 list of important networking topics

Transport Layer 3-21

characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)

important in application transport link layers top-10 list of important networking topics

Principles of reliable data transfer

Transport Layer 3-22

sendside

receiveside

rdt_send() called from above (eg by app) Passed data to deliver to receiver upper layer

udt_send() called by rdtto transfer packet over unreliable channel to receiver

rdt_rcv() called when packet arrives on rcv-side of channel

deliver_data() called by rdt to deliver data to upper

Principles of reliable data transfer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 23

vamos desenvolver de forma incremental os lados remetente e destinataacuterio do

protocolo de transferecircncia confiaacutevel de dados (rdt) considerar apenas a transf de dados unidirecional Bidirecional eacute soacute

duplicar a estruturandash mas informaccedilotildees de controle fluiratildeo nas duas direccedilotildees

usar maacutequinas de estado finito (FSM) para especificar remetente e destinataacuterio

estado1

estado2

evento causando transiccedilatildeo de estadoaccedilotildees tomadas sobre transiccedilatildeo de estado

estado quando neste ldquoestadordquo proacuteximo

estado determinadoexclusivamente pelo

proacuteximo evento

eventoaccedilotildees

Transferecircncia confiaacutevel de dados introduccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 24

bull rdt10 ndash Um protocolo para um canal completamente confiaacutevel

Transferecircncia confiaacutevel de dados sobre um canal perfeitamente confiaacutevel rdt10

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 25

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt20

rdt20 ndash Um protocolo para um canal com erros de bits Base dos protocolos ARQ (Automatic Repeat Request)

Detecccedilatildeo de erros (mecanismo do UDP)

Realimentaccedilatildeo do destinataacuterio (ACK ou NACK)

Retransmissatildeobull Pare e espere

Transport Layer 3-26

rdt20 FSM specification

Wait for call from above

sndpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from belowsender

receiverrdt_send(data)

Transport Layer 3-27

rdt20 operation with no errors

Wait for call from above

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from below

rdt_send(data)

Transport Layer 3-28

rdt20 error scenario

Wait for call from above

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from below

rdt_send(data)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 29

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt20

bull O que acontece se o pacote ACK ou NAK estiver corrompido

bull Vamos considerar trecircs possibilidade para ACKs ou NAKs corrompidos1 Ser humano -- A ldquoditadordquo B ldquoOKrdquo ou ldquoRepita por favorrdquo ==gt

A natildeo entende ldquoO que foi que vocecirc disserdquo infinito Peacutessimo2 Bits de soma de verificaccedilatildeo de tal modo que permita ao remetente a

recuperaccedilatildeo de erros de bits Muito bom mas serve somente para canais com erro de bits e natildeo perda de pacotes

3 O Remetente reenvia o pacote de dados corrente quando receber um pacote ACK ou NAK truncado ==gt pode gerar pacotes duplicados Como o destinataacuterio sabe se o pacote conteacutem novos dados ou eacute uma retransmissatildeo ==gt nuacutemero de sequecircncia

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 30

bull rdt21 remetente

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 31

bull rdt21 destinataacuterio

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 32

bull O protocolo rdt21 usa tanto o reconhecimento positivo como negativo do remetente ao destinataacuterio pacote fora de ordem ==gt ACK pacote corrompido ==gt NAK

bull Podemos conseguir o mesmo efeito se ao inveacutes de enviarmos um NAK enviarmos um ACK do uacuteltimo corretamente recebido Ou seja ACK tambeacutem numerado

bull ACKs duplicados indicam ao remetente que o destinataacuterio natildeo recebeu corretamente o pacote seguinte agravequele do ACK duplo

bull rdt22 deve enviar o nuacutemero de sequecircncia no ACK

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21-2

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 33

bull rdt22 remetente

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt22

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 34

bull rdt22 destinataacuterio

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt22

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 35

bull Duas preocupaccedilotildees adicionais devem ser tratadas pelo protocolo1 Como detectar perda de pacotes2 O que fazer quando haacute perdas

bull As teacutecnicas jaacute discutidas atendem a segunda questatildeobull E para a primeira questatildeobull Suponha que o remetente transmita um pacote e que esse

pacote ou seu ACK seja perdido Nenhuma resposta chegaraacute ao remetente Se o remetente natildeo quiser esperar ==gt retransmite o pacote

bull Mas quanto o remetente precisa esperar para ter certeza que algo foi perdido Esperar um RTT Eacute muito difiacutecil estimar o RTT quanto mais ter certeza

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 36

bull Aleacutem disso o ideal seria que o protocolo se recuperasse da perda assim que possiacutevel

bull Na praacutetica O remetente faz uma escolha ponderada de um RTT provaacutevel mas natildeo

garantido que a perda tivesse acontecido Se natildeo receber um ACK nesse periacuteodo retransmite o pacote

bull Se o pacote sofrer um atraso longo pode haver retransmissatildeo mesmo que o pacote ou ACK natildeo tenham sido perdidos Possibilidade de pacotes de dados duplicados

bull Para implementar um mecanismo de retransmissatildeo com base no tempo eacute necessaacuterio um temporizador de contagem regressiva Accedilotildees iniciar atender parar

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 37

bull rdt30 remetente

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Transport Layer 3-38

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

pkt1

ack1

ack0

ack0

(a) no loss

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(b) packet loss

pkt1X

loss

pkt1timeout

resend pkt1

rdt30 in action

Transport Layer 3-39

rdt30 in action

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(c) ACK loss

ack1X

loss

pkt1timeout

resend pkt1

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

send ack0rcv ack0

send pkt1

send pkt0rcv pkt0

pkt0

ack0

(d) premature timeout delayed ACK

pkt1timeout

resend pkt1

ack1

send ack1

send pkt0rcv ack1

pkt0

ack1

ack0

send pkt0rcv ack1 pkt0

rcv pkt0send ack0ack0

rcv pkt0

send ack0(detect duplicate)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 42

bull No coraccedilatildeo do problema do desempenho do rdt30 estaacute o fato de ele ser um protocolo do tipo pare e espere

bull Um protocolo pare e espere em operaccedilatildeo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 43

U remet =

0008

30008 = 000027

microseconds

L R RTT + L R

=

Desempenho do rdt30

rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso pacote 8000 bits

U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando

Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps protocolo de rede limita uso de recursos fiacutesicos Soluccedilatildeo

ndosmicrosseguR

Ldtrans 8

bps10

bits80009

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 44

Um protocolo com paralelismo em operaccedilatildeo

bull O ACK recebido eacute de que pacote

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 45

bull Envio com pare e espere

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 46

bull Envio com paralelismo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Aumento de utilizaccedilatildeopor fator de 3

U remet =

0024 30008

= 00008 microseconds

3 L R RTT + L R

=

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 47

bull Em um protocolo Go-Back-N (GBN) o remetente eacute autorizado a transmitir muacuteltiplos pacotes sem esperar por um reconhecimento

bull Poreacutem fica limitado a ter natildeo mais do que algum nuacutemero maacuteximo permitido N (tamanho da janela) de pacotes natildeo reconhecidos na ldquotubulaccedilatildeordquo

bull Visatildeo do remetente para os nuacutemeros de sequecircncia no protocolo Go-Back-N

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 48

bull Descriccedilatildeo da FSM estendida do remetente GBNbull Quem consegue descrever o funcionamento

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 49

bull Descriccedilatildeo da FSM estendida do destinataacuterio GBN

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 50

Go-Back-N (GBN) em operaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 51

bull Protocolos de repeticcedilatildeo seletiva (SR) evitam retransmissotildees desnecessaacuterias

bull Eles fazem o remetente retransmitir apenas os pacotes suspeitos de terem sido recebidos com erro no destinataacuterio

bull Essa retransmissatildeo individual soacute quando necessaacuteria exige que o destinataacuterio reconheccedila individualmente os pacotes recebidos de modo correto

Repeticcedilatildeo seletiva (SR)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 52

Repeticcedilatildeo seletiva (SR)

Transport Layer 3-53

Selective repeatdilemma

example seq rsquos 0 1 2 3 window size=3

receiver window(after receipt)

sender window(after receipt)

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2 pkt0

timeoutretransmit pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2XXX

will accept packetwith seq number 0

(b) oops

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

X

will accept packetwith seq number 0

0 1 2 3 0 1 2 pkt3

(a) no problem

receiver canrsquot see sender sidereceiver behavior identical in both casessomethingrsquos (very) wrong

receiver sees no difference in two scenarios

duplicate data accepted as new in (b)

Q what relationship between seq size and window size to avoid problem in (b)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 54

Resumo de mecanismos de transferecircncia confiaacutevel de dados e sua utilizaccedilatildeo

bull Soma de verificaccedilatildeo - Usada para detectar erros de bits em um pacote transmitido

bull Temporizador - Usado para controlar a temporizaccedilatildeoretransmissatildeo de um pacote possivelmente porque o pacote (ou seu ACK) foi perdido dentro do canal

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 55

bull Nuacutemero de sequecircncia - Usado para numeraccedilatildeo sequencial de segmentos de dados que transitam do remetente ao destinataacuterio Ou seja pode-se ter vaacuterios segmentos transitando simultaneamente no canal de comunicaccedilatildeo maximizando assim o uso desse canal

bull Reconhecimento - Usado pelo destinataacuterio para avisar o remetente que um pacote ou conjunto de pacotes foi recebido corretamente

bull Janela paralelismo - O remetente pode ficar restrito a enviar somente pacotes com nuacutemeros de sequecircncia que caiam dentro de uma determinada faixa

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 56

bull Uma conexatildeo TCP provecirc um serviccedilo full-duplex

bull A conexatildeo TCP eacute sempre ponto a ponto

bull Uma vez estabelecida uma conexatildeo TCP dois processos de aplicaccedilatildeo podem enviar dados um para o outro 3-way handshake jaacute estabelecendo o MSS

bull O TCP combina cada porccedilatildeo de dados do cliente com um cabeccedilalho TCP formando assim segmentos TCP

A conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 57

Estrutura do segmento TCPURG dados urgentes

(quase natildeo usado)

ACK ACKvaacutelido

PSH empurrar dados agora

RST SYN FINestab conexatildeo

soma de verificaccedilatildeo

da Internet ndash todo o segmento(como em UDP)

bytes destinataacuteriopode aceitar

contagem porbytes de dados(natildeo segmentos)

Opcional e de comprimentovariaacutevel utilizado paranegociar o MSS ou fatorde escala em redes dealta velocidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 58

TCP Estabelecendo e fechando conexotildees

3-way handshakeFinalizando

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 59

s sequecircncia e ACKs do TCP

Cenaacuterio preestabelecido telnet simples

rsquos de sequecircnciandash ldquonuacutemerordquo na cadeia de

bytes do 1o byte nos dados do segmento

ACKsndash seq do proacuteximo byte

esperado do outro ladondash ACK cumulativo

P como o destinataacuterio trata segmentos fora de ordem

ndash R TCP natildeo diz ndash a criteacuterio do implementador

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 60

Tempo de ida e volta e timeout do TCP

P Como definir o valor de timeout do TCP

maior que RTTndash mas RTT varia

muito curto timeout prematurondash retransmissotildees

desnecessaacuterias muito longo baixa

reaccedilatildeo a perda de segmento

P Como estimar o RTT SampleRTT tempo medido

da transmissatildeo do segmento ateacute receber o ACKndash ignora retransmissotildees

SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquondash meacutedia de vaacuterias mediccedilotildees

recentes natildeo apenas SampleRTT atual

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 61

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui exponencialmente

raacutepido valor tiacutepico = 0125

Tempo de ida e volta e timeout do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 62

Amostras de RTTs estimados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 63

definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(geralmente = 025)

depois definir intervalo de timeout

Tempo de ida e volta e timeout do TCP

TimeoutIntervalinicial

= 1 sldquomargem de seguranccedilardquo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 64

TCP cenaacuterios de retransmissatildeo

Hosp A

Seq = 100 20 bytes dados

ACK = 100

tempoTimeout prematuro

Hosp B

Seq = 92 8 bytes dados

ACK = 120

Seq = 92 8 bytes dados

Seq

= 9

2 tim

eout

ACK = 120

Hosp A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio de ACK perdido

Hosp B

X

Seq = 92 8 bytes dados

ACK = 100

tempoS

eq =

92

timeo

ut

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 65

TCP cenaacuterios de retransmissatildeo

Host A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio ACK cumulativo

Host B

X

Seq = 100 20 bytes dados

ACK = 120

tempo

Transport Layer 3-66

TCP fast retransmit time-out period

often relatively long long delay before

resending lost packet detect lost

segments via duplicate ACKs sender often sends

many segments back-to-back

if segment is lost there will likely be many duplicate ACKs

if sender receives 3 ACKs for same data(ldquotriple duplicate ACKsrdquo) resend unacked segment with smallest seq

likely that unacked segment lost so donrsquot wait for timeout

TCP fast retransmit

Transport Layer 3-67

X

fast retransmit after sender receipt of triple duplicate ACK

Host BHost A

Seq=92 8 bytes of data

ACK=100

timeo

ut ACK=100

ACK=100

ACK=100

TCP fast retransmit

Seq=100 20 bytes of data

Seq=100 20 bytes of data

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 69

bull O nuacutemero de sequecircncia para um segmento eacute o nuacutemero do primeiro byte do segmento

bull O nuacutemero de reconhecimento que o hospedeiro A atribui a seu segmento eacute o nuacutemero de sequecircncia do proacuteximo byte que ele estiver aguardando do hospedeiro B

bull Como o TCP somente reconhece bytes ateacute o primeiro byte que estiver faltando na cadeia dizemos que o TCP provecirc reconhecimentos cumulativos

Nuacutemeros de sequecircncia e nuacutemeros de reconhecimento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 70

bull O TCP cria um serviccedilo de transferecircncia confiaacutevel de dados sobre o serviccedilo de melhor esforccedilo do IP

bull O serviccedilo de transferecircncia garante que a cadeia de bytes eacute idecircntica agrave cadeia de bytes enviada pelo sistema final que estaacute do outro lado da conexatildeo

bull Os procedimentos recomendados no [RFC 6298] para gerenciamento de temporizadores TCP utilizam apenas um uacutenico temporizador de retransmissatildeo

Transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 71

bull O TCP provecirc um serviccedilo de controle de fluxo agraves suas aplicaccedilotildees para eliminar a possibilidade de o remetente estourar o buffer do destinataacuterio

bull Controle de fluxo eacute um serviccedilo de compatibilizaccedilatildeo de velocidades

bull O TCP oferece serviccedilo de controle de fluxo fazendo que o remetente mantenha uma variaacutevel denominada janela de recepccedilatildeo

Controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 72

Regulaccedilatildeo da taxa de envio

Uma rede de transmissatildeo raacutepida eum receptor de baixa capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 73

Controle de fluxo TCP

lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo

serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora

processo da aplicaccedilatildeo pode ser lento na leitura do buffer

remetente natildeo estouraraacute buffer do destinataacuterio transmitindo muitos dados muito rapidamente

controle de fluxo

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 74

Controle de fluxo TCP como funciona

(suponha que destinataacuterio TCP descarte segmentos fora de ordem)

espaccedilo de buffer natildeo usado = rwnd (slide 48) = RcvBuffer-[LastByteRcvd -

LastByteRead]

destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento

remetente limita de bytes com ACK a rwndndash garante que buffer do

destinataacuterio natildeo estoura

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

rwndRcvBuffer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 75

Gerenciamento da conexatildeo TCP

lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados

inicializa variaacuteveis TCPndash s seqndash buffers informaccedilatildeo de

controle de fluxo (p e RcvWindow)

cliente inicia a conexatildeo Socket clientSocket = new

Socket(hostnameport ) servidor contactado pelo

cliente Socket connectionSocket =

welcomeSocketaccept()

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 76

Gerenciamento da conexatildeo TCP

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 77

fechando uma conexatildeo

cliente fecha socket clientSocketclose()

etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor

etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN

cliente

FIN

servidor

ACK

ACK

FIN

fecha

fecha

fechado

espe

ra

tem

poriz

ada

Gerenciamento da conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 79

Controle de congestionamento

Uma rede de transmissatildeo lenta eum receptor de alta capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 80

bull As causas e os custos do congestionamento

Cenaacuterio de congestionamento 1 duas conexotildees compartilhando um uacutenico roteador com nuacutemero infinito de buffers

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 81

bull As causas e os custos do congestionamentoCenaacuterio de congestionamento 1 vazatildeo e atraso em funccedilatildeo da taxa de envio do hospedeiro

ldquocustosrdquo do congestionamento Aumento de atrasos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 82

bull As causas e os custos do congestionamento

Cenaacuterio 2 dois hospedeiros (com retransmissotildees) e um roteador com buffers finitos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 83

a) Caso ideal (vazatildeo)

b) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda

c) retransmissatildeo do pacote adiado (natildeo perdido) torna maior (que

o caso perfeito ) para o mesmo

in

out

=

in

out

gt

in

out

ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do

pacote

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 84

bull As causas e os custos do congestionamento

Cenaacuterio 3 quatro remetentesroteadores com buffers finitos e trajetos com muacuteltiplos roteadores

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 85

outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer capacidade

de transmissatildeo anterior usada para esse pacote foi desperdiccedilada

Host A

Host B

o

u

t

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 86

Controle de congestionamento fim a fim

bull A camada de rede natildeo fornece nenhum suporte expliacutecito agrave camada de transporte com a finalidade de controle de congestionamento

Controle de congestionamento assistido pela rede

bull Os componentes da camada de rede (isto eacute roteadores) fornecem retroalimentaccedilatildeo especiacutefica de informaccedilotildees ao remetente a respeito do estado de congestionamento na rede Natildeo usual

Mecanismos de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 87

bull A abordagem adotada pelo TCP eacute obrigar cada remetente a limitar a taxa agrave qual enviam traacutefego para sua conexatildeo como uma funccedilatildeo do congestionamento de rede percebido

Se um remetente TCP perceber que haacute pouco congestionamento no caminho entre ele e o destinataacuterio aumentaraacute sua taxa de envio

Se perceber que haacute congestionamento reduziraacute sua taxa de

envio

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 88

bull Mas essa abordagem levanta trecircs questotildees

1 Como um remetente TCP limita a taxa pela qual envia traacutefego para sua conexatildeo

2 Como um remetente TCP percebe que haacute congestionamento entre ele e o destinataacuterio

3 Que algoritmo o remetente deve utilizar para modificar sua taxa de envio como uma funccedilatildeo do congestionamento fim a fim percebido

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 89

bull Partida lenta TCP

Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 90

1) Cwnd = 1 MSS inicialmente

2) Partida lenta a cada rodada redefine cwnd = cwnd 2

3) Perda de pacotes (esgotamento de temporizaccedilatildeo ndash problema grave) ==gt cwnd = 1 (Tahoe ou Reno)

4) Prevenccedilatildeo de congestionamento apoacutes atingir sstresh cwnd = cwnd + 1

5) Trecircs acks duplicados (buraco no ldquofluxordquo ndash problema brando) entra no estado prevenccedilatildeo de congestionamento e redefine cwnd = 1 (Tahoe) ou cwnd = sstresh (Reno)

6) Sstresh = cwnd2 quando satildeo detectados problemas

Quantidade de dados natildeo reconhecidas no TCP = min(CongWin RecWin)

Controle de congestionamento TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 91

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 93

bull Evoluccedilatildeo da janela de congestionamento do TCP (Tahoe e Reno ndash mais usual)

Recuperaccedilatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 94

Controle de congestionamento TCP

Partida lenta seguida por aumento aditivo no TCP Tahoe

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 95

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 96

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 97

bull O controle de congestionamento AIMD (Additive-increase Multiplicative-Decrease) faz surgir o comportamento semelhante a ldquodentes de serrardquo

bull httpsmediapearsoncmgcomawecs_kurose_compnetwork_7cwcontentinteractiveanimationstcp-congestionindexhtml

Controle de congestionamento no TCP retrospectiva

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 98

O que eacute throughput meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughput meacutedio 075 WRTT (75 WRTT)

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 99

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (Probabilidade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 100

bull Duas conexotildees TCP compartilhando um uacutenico enlace congestionado

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 101

bull Vazatildeo alcanccedilada pelas conexotildees TCP 1 e TCP 2bull Ambas conexotildees em algum momento estatildeo com vazatildeo Abull Ambas vatildeo aumentando a vazatildeo ateacute ocorrer perda ndash Bbull Sstresh cai pela metade e ambas migram para Chellip

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 102

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

ndash Consequecircncia

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Nova aplicaccedilatildeo pede 1 TCP obteacutem taxa de R10 Nova aplicaccedilatildeo pede 11 TCPs obteacutem R2

Equidade

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Multiplexingdemultiplexing
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Principles of reliable data transfer
  • Slide 20
  • Slide 21
  • Reliable data transfer getting started
  • Slide 23
  • Slide 24
  • Slide 25
  • rdt20 FSM specification
  • rdt20 operation with no errors
  • rdt20 error scenario
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • rdt30 in action
  • Slide 39
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Selective repeat dilemma
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • TCP fast retransmit
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
Page 5: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a

Transport Layer 3-6

Multiplexingdemultiplexing

process

socket

use header info to deliverreceived segments tocorrect socket

demultiplexing at receiverhandle data from multiplesockets add transport header (later used for demultiplexing)

multiplexing at sender

transport

application

physical

link

network

P2P1

transport

application

physical

link

network

P4

transport

application

physical

link

network

P3

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 7

bull A tarefa de entregar os dados contidos em um segmento da camada de transporte ao socket correto eacute denominada demultiplexaccedilatildeo

bull O trabalho de reunir no hospedeiro de origem partes de dados provenientes de diferentes sockets encapsular cada parte de dados com informaccedilotildees de cabeccedilalho para criar segmentos e passar esses segmentos para a camada de rede eacute denominada multiplexaccedilatildeo

Multiplexaccedilatildeo e demultiplexaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 8

bull Campos de nuacutemero de porta de origem e de destino em um segmento de camada de transporte

Multiplexaccedilatildeo e demultiplexaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 9

Demultiplexaccedilatildeo natildeo orientada para conexatildeo

cria sockets com nuacutemero de porta automaacutetico

clietSocket = socket(AF_INET SOCK_DGRAM)

Alternativamente podemos fixar a porta acrescentando

clientSocketbind(( 12535))

socket UDP identificado por tupla de dois elementos

(endereccedilo IP destino nuacutemero porta destino)

quando hospedeiro recebe segmento UDPndash verifica nuacutemero de porta

de destino no segmentondash direciona segmento UDP

para socket com esse nuacutemero de porta

datagramas IP com diferentes endereccedilos IP de origem eou nuacutemeros de porta de origem direcionados para o mesmo socket

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 10

Demultiplexaccedilatildeo natildeo orientada para conexatildeo

socket UDP identificado por tupla de dois elementos

(endereccedilo IP destino nuacutemero porta destino)

ClienteIPB

P2

cliente IP A

P1P1P3

servidorIP C

DP 9157

DP 6428

DP 5775

DP 6428

SP 6428

D-IP A

D-IP C

D-IP B

SP 6428

SP 5775

D-IP C

SP oferece ldquoendereccedilo de retornordquo caso necessaacuterio

SP 9157

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 11

Demultiplexaccedilatildeo orientada para conexatildeo

socket TCP identificado por tupla de 4 elementos ndash endereccedilo IP de origemndash nuacutemero de porta de origemndash endereccedilo IP de destinondash nuacutemero de porta de destino

hospedeiro destinataacuterio usa todos os quatro valores para direcionar segmento ao socket apropriado

hospedeiro servidor pode admitir muitos sockets TCP simultacircneosndash cada socket identificado

por sua proacutepria tupla de 4 servidores Web tecircm

diferentes sockets para cada cliente conectandondash HTTP natildeo persistente teraacute

diferentes sockets para cada requisiccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 12

Demultiplexaccedilatildeo orientada para conexatildeo

clienteIPB

P1

cliente IP A

P1P2P4

servidorIP C

SP 9157DP 80

SP 9157DP 80

P5 P6 P3

D-IPCS-IP AD-IPC

S-IP B

SP 5775DP 80

D-IPCS-IP B

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 13

bull O UDP definido no [RFC 768] faz apenas quase tatildeo pouco quanto um protocolo de transporte pode fazer

bull Agrave parte sua funccedilatildeo de multiplexaccedilatildeodemultiplexaccedilatildeo e de alguma verificaccedilatildeo de erros simples ele nada adiciona ao IP

bull Se o desenvolvedor de aplicaccedilatildeo escolher o UDP em vez do TCP a aplicaccedilatildeo estaraacute ldquofalandordquo quase diretamente com o IP

bull O UDP eacute natildeo orientado para conexatildeo Natildeo haacute a apresentaccedilatildeo entre as entidades remetentes e destinataacuterias

Transporte natildeo orientado para conexatildeo UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 14

bull Melhor controle no niacutevel de aplicaccedilatildeo sobre quais dados satildeo enviados e quando menor atraso

bull Natildeo haacute estabelecimento de conexatildeo menor atrasobull Natildeo haacute estados de conexatildeo buffers paracircmetros de

controle de congestionamento nuacutemero de sequecircncia Menor ldquocustordquo

bull Pequeno excesso de cabeccedilalho de pacotes 8 bytes de excesso TCP 20 bytes Menor ldquocustordquo

bull Sem controle de congestionamento do TCP ==gt isso pode implicar em ldquocolapsordquo na rede

bull Eacute possiacutevel uma aplicaccedilatildeo ter transferecircncia confiaacutevel de dados usando UDP

Por que usa-se UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 15

bull Aplicaccedilotildees populares da Internet e seus protocolos de transporte subjacentes

Transporte natildeo orientado para conexatildeo UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 16

bull Estrutura do segmento UDP

Estrutura do segmento UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 17

bull A soma de verificaccedilatildeo UDP serve para detectar erros em todo o segmento

bull Suponha que tenhamos as seguintes trecircs palavras de 16 bits

bull A soma das duas primeiras eacute

bull Adicionando a terceira palavra agrave soma anterior temos

Soma de verificaccedilatildeo UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 18

bull Note que a uacuteltima adiccedilatildeo teve um ldquovai umrdquo no bit mais significativo que foi somado ao bit menos significativo

bull Complemento de 1 0 ==gt 1 1 ==gt 0bull Fazendo o complemento de 1 da soma final

1011010100111101 Esta eacute a soma de verificaccedilatildeobull No destinataacuterio todas as 4 palavras recebidas de 16 bits satildeo

somadas 1111 ==gt Pacote correto algum bit em 0 ==gt algum erro foi introduzido no pacote

bull Por que soma de verificaccedilatildeo no UDPbull Algumas camadas de enlace por exemplo Ethernet fornecem

soma de verificaccedilatildeobull mas nem todas e aleacutem disso um roteador poderia introduzir

algum errobull UDP verifica erros fim a fim

Soma de verificaccedilatildeo UDP

Transport Layer 3-19

Principles of reliable data transfer important in application transport link layers

top-10 list of important networking topics

characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)

Transport Layer 3-20

characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)

Principles of reliable data transfer important in application transport link layers

top-10 list of important networking topics

Transport Layer 3-21

characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)

important in application transport link layers top-10 list of important networking topics

Principles of reliable data transfer

Transport Layer 3-22

sendside

receiveside

rdt_send() called from above (eg by app) Passed data to deliver to receiver upper layer

udt_send() called by rdtto transfer packet over unreliable channel to receiver

rdt_rcv() called when packet arrives on rcv-side of channel

deliver_data() called by rdt to deliver data to upper

Principles of reliable data transfer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 23

vamos desenvolver de forma incremental os lados remetente e destinataacuterio do

protocolo de transferecircncia confiaacutevel de dados (rdt) considerar apenas a transf de dados unidirecional Bidirecional eacute soacute

duplicar a estruturandash mas informaccedilotildees de controle fluiratildeo nas duas direccedilotildees

usar maacutequinas de estado finito (FSM) para especificar remetente e destinataacuterio

estado1

estado2

evento causando transiccedilatildeo de estadoaccedilotildees tomadas sobre transiccedilatildeo de estado

estado quando neste ldquoestadordquo proacuteximo

estado determinadoexclusivamente pelo

proacuteximo evento

eventoaccedilotildees

Transferecircncia confiaacutevel de dados introduccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 24

bull rdt10 ndash Um protocolo para um canal completamente confiaacutevel

Transferecircncia confiaacutevel de dados sobre um canal perfeitamente confiaacutevel rdt10

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 25

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt20

rdt20 ndash Um protocolo para um canal com erros de bits Base dos protocolos ARQ (Automatic Repeat Request)

Detecccedilatildeo de erros (mecanismo do UDP)

Realimentaccedilatildeo do destinataacuterio (ACK ou NACK)

Retransmissatildeobull Pare e espere

Transport Layer 3-26

rdt20 FSM specification

Wait for call from above

sndpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from belowsender

receiverrdt_send(data)

Transport Layer 3-27

rdt20 operation with no errors

Wait for call from above

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from below

rdt_send(data)

Transport Layer 3-28

rdt20 error scenario

Wait for call from above

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from below

rdt_send(data)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 29

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt20

bull O que acontece se o pacote ACK ou NAK estiver corrompido

bull Vamos considerar trecircs possibilidade para ACKs ou NAKs corrompidos1 Ser humano -- A ldquoditadordquo B ldquoOKrdquo ou ldquoRepita por favorrdquo ==gt

A natildeo entende ldquoO que foi que vocecirc disserdquo infinito Peacutessimo2 Bits de soma de verificaccedilatildeo de tal modo que permita ao remetente a

recuperaccedilatildeo de erros de bits Muito bom mas serve somente para canais com erro de bits e natildeo perda de pacotes

3 O Remetente reenvia o pacote de dados corrente quando receber um pacote ACK ou NAK truncado ==gt pode gerar pacotes duplicados Como o destinataacuterio sabe se o pacote conteacutem novos dados ou eacute uma retransmissatildeo ==gt nuacutemero de sequecircncia

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 30

bull rdt21 remetente

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 31

bull rdt21 destinataacuterio

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 32

bull O protocolo rdt21 usa tanto o reconhecimento positivo como negativo do remetente ao destinataacuterio pacote fora de ordem ==gt ACK pacote corrompido ==gt NAK

bull Podemos conseguir o mesmo efeito se ao inveacutes de enviarmos um NAK enviarmos um ACK do uacuteltimo corretamente recebido Ou seja ACK tambeacutem numerado

bull ACKs duplicados indicam ao remetente que o destinataacuterio natildeo recebeu corretamente o pacote seguinte agravequele do ACK duplo

bull rdt22 deve enviar o nuacutemero de sequecircncia no ACK

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21-2

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 33

bull rdt22 remetente

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt22

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 34

bull rdt22 destinataacuterio

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt22

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 35

bull Duas preocupaccedilotildees adicionais devem ser tratadas pelo protocolo1 Como detectar perda de pacotes2 O que fazer quando haacute perdas

bull As teacutecnicas jaacute discutidas atendem a segunda questatildeobull E para a primeira questatildeobull Suponha que o remetente transmita um pacote e que esse

pacote ou seu ACK seja perdido Nenhuma resposta chegaraacute ao remetente Se o remetente natildeo quiser esperar ==gt retransmite o pacote

bull Mas quanto o remetente precisa esperar para ter certeza que algo foi perdido Esperar um RTT Eacute muito difiacutecil estimar o RTT quanto mais ter certeza

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 36

bull Aleacutem disso o ideal seria que o protocolo se recuperasse da perda assim que possiacutevel

bull Na praacutetica O remetente faz uma escolha ponderada de um RTT provaacutevel mas natildeo

garantido que a perda tivesse acontecido Se natildeo receber um ACK nesse periacuteodo retransmite o pacote

bull Se o pacote sofrer um atraso longo pode haver retransmissatildeo mesmo que o pacote ou ACK natildeo tenham sido perdidos Possibilidade de pacotes de dados duplicados

bull Para implementar um mecanismo de retransmissatildeo com base no tempo eacute necessaacuterio um temporizador de contagem regressiva Accedilotildees iniciar atender parar

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 37

bull rdt30 remetente

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Transport Layer 3-38

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

pkt1

ack1

ack0

ack0

(a) no loss

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(b) packet loss

pkt1X

loss

pkt1timeout

resend pkt1

rdt30 in action

Transport Layer 3-39

rdt30 in action

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(c) ACK loss

ack1X

loss

pkt1timeout

resend pkt1

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

send ack0rcv ack0

send pkt1

send pkt0rcv pkt0

pkt0

ack0

(d) premature timeout delayed ACK

pkt1timeout

resend pkt1

ack1

send ack1

send pkt0rcv ack1

pkt0

ack1

ack0

send pkt0rcv ack1 pkt0

rcv pkt0send ack0ack0

rcv pkt0

send ack0(detect duplicate)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 42

bull No coraccedilatildeo do problema do desempenho do rdt30 estaacute o fato de ele ser um protocolo do tipo pare e espere

bull Um protocolo pare e espere em operaccedilatildeo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 43

U remet =

0008

30008 = 000027

microseconds

L R RTT + L R

=

Desempenho do rdt30

rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso pacote 8000 bits

U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando

Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps protocolo de rede limita uso de recursos fiacutesicos Soluccedilatildeo

ndosmicrosseguR

Ldtrans 8

bps10

bits80009

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 44

Um protocolo com paralelismo em operaccedilatildeo

bull O ACK recebido eacute de que pacote

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 45

bull Envio com pare e espere

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 46

bull Envio com paralelismo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Aumento de utilizaccedilatildeopor fator de 3

U remet =

0024 30008

= 00008 microseconds

3 L R RTT + L R

=

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 47

bull Em um protocolo Go-Back-N (GBN) o remetente eacute autorizado a transmitir muacuteltiplos pacotes sem esperar por um reconhecimento

bull Poreacutem fica limitado a ter natildeo mais do que algum nuacutemero maacuteximo permitido N (tamanho da janela) de pacotes natildeo reconhecidos na ldquotubulaccedilatildeordquo

bull Visatildeo do remetente para os nuacutemeros de sequecircncia no protocolo Go-Back-N

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 48

bull Descriccedilatildeo da FSM estendida do remetente GBNbull Quem consegue descrever o funcionamento

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 49

bull Descriccedilatildeo da FSM estendida do destinataacuterio GBN

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 50

Go-Back-N (GBN) em operaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 51

bull Protocolos de repeticcedilatildeo seletiva (SR) evitam retransmissotildees desnecessaacuterias

bull Eles fazem o remetente retransmitir apenas os pacotes suspeitos de terem sido recebidos com erro no destinataacuterio

bull Essa retransmissatildeo individual soacute quando necessaacuteria exige que o destinataacuterio reconheccedila individualmente os pacotes recebidos de modo correto

Repeticcedilatildeo seletiva (SR)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 52

Repeticcedilatildeo seletiva (SR)

Transport Layer 3-53

Selective repeatdilemma

example seq rsquos 0 1 2 3 window size=3

receiver window(after receipt)

sender window(after receipt)

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2 pkt0

timeoutretransmit pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2XXX

will accept packetwith seq number 0

(b) oops

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

X

will accept packetwith seq number 0

0 1 2 3 0 1 2 pkt3

(a) no problem

receiver canrsquot see sender sidereceiver behavior identical in both casessomethingrsquos (very) wrong

receiver sees no difference in two scenarios

duplicate data accepted as new in (b)

Q what relationship between seq size and window size to avoid problem in (b)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 54

Resumo de mecanismos de transferecircncia confiaacutevel de dados e sua utilizaccedilatildeo

bull Soma de verificaccedilatildeo - Usada para detectar erros de bits em um pacote transmitido

bull Temporizador - Usado para controlar a temporizaccedilatildeoretransmissatildeo de um pacote possivelmente porque o pacote (ou seu ACK) foi perdido dentro do canal

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 55

bull Nuacutemero de sequecircncia - Usado para numeraccedilatildeo sequencial de segmentos de dados que transitam do remetente ao destinataacuterio Ou seja pode-se ter vaacuterios segmentos transitando simultaneamente no canal de comunicaccedilatildeo maximizando assim o uso desse canal

bull Reconhecimento - Usado pelo destinataacuterio para avisar o remetente que um pacote ou conjunto de pacotes foi recebido corretamente

bull Janela paralelismo - O remetente pode ficar restrito a enviar somente pacotes com nuacutemeros de sequecircncia que caiam dentro de uma determinada faixa

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 56

bull Uma conexatildeo TCP provecirc um serviccedilo full-duplex

bull A conexatildeo TCP eacute sempre ponto a ponto

bull Uma vez estabelecida uma conexatildeo TCP dois processos de aplicaccedilatildeo podem enviar dados um para o outro 3-way handshake jaacute estabelecendo o MSS

bull O TCP combina cada porccedilatildeo de dados do cliente com um cabeccedilalho TCP formando assim segmentos TCP

A conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 57

Estrutura do segmento TCPURG dados urgentes

(quase natildeo usado)

ACK ACKvaacutelido

PSH empurrar dados agora

RST SYN FINestab conexatildeo

soma de verificaccedilatildeo

da Internet ndash todo o segmento(como em UDP)

bytes destinataacuteriopode aceitar

contagem porbytes de dados(natildeo segmentos)

Opcional e de comprimentovariaacutevel utilizado paranegociar o MSS ou fatorde escala em redes dealta velocidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 58

TCP Estabelecendo e fechando conexotildees

3-way handshakeFinalizando

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 59

s sequecircncia e ACKs do TCP

Cenaacuterio preestabelecido telnet simples

rsquos de sequecircnciandash ldquonuacutemerordquo na cadeia de

bytes do 1o byte nos dados do segmento

ACKsndash seq do proacuteximo byte

esperado do outro ladondash ACK cumulativo

P como o destinataacuterio trata segmentos fora de ordem

ndash R TCP natildeo diz ndash a criteacuterio do implementador

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 60

Tempo de ida e volta e timeout do TCP

P Como definir o valor de timeout do TCP

maior que RTTndash mas RTT varia

muito curto timeout prematurondash retransmissotildees

desnecessaacuterias muito longo baixa

reaccedilatildeo a perda de segmento

P Como estimar o RTT SampleRTT tempo medido

da transmissatildeo do segmento ateacute receber o ACKndash ignora retransmissotildees

SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquondash meacutedia de vaacuterias mediccedilotildees

recentes natildeo apenas SampleRTT atual

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 61

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui exponencialmente

raacutepido valor tiacutepico = 0125

Tempo de ida e volta e timeout do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 62

Amostras de RTTs estimados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 63

definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(geralmente = 025)

depois definir intervalo de timeout

Tempo de ida e volta e timeout do TCP

TimeoutIntervalinicial

= 1 sldquomargem de seguranccedilardquo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 64

TCP cenaacuterios de retransmissatildeo

Hosp A

Seq = 100 20 bytes dados

ACK = 100

tempoTimeout prematuro

Hosp B

Seq = 92 8 bytes dados

ACK = 120

Seq = 92 8 bytes dados

Seq

= 9

2 tim

eout

ACK = 120

Hosp A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio de ACK perdido

Hosp B

X

Seq = 92 8 bytes dados

ACK = 100

tempoS

eq =

92

timeo

ut

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 65

TCP cenaacuterios de retransmissatildeo

Host A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio ACK cumulativo

Host B

X

Seq = 100 20 bytes dados

ACK = 120

tempo

Transport Layer 3-66

TCP fast retransmit time-out period

often relatively long long delay before

resending lost packet detect lost

segments via duplicate ACKs sender often sends

many segments back-to-back

if segment is lost there will likely be many duplicate ACKs

if sender receives 3 ACKs for same data(ldquotriple duplicate ACKsrdquo) resend unacked segment with smallest seq

likely that unacked segment lost so donrsquot wait for timeout

TCP fast retransmit

Transport Layer 3-67

X

fast retransmit after sender receipt of triple duplicate ACK

Host BHost A

Seq=92 8 bytes of data

ACK=100

timeo

ut ACK=100

ACK=100

ACK=100

TCP fast retransmit

Seq=100 20 bytes of data

Seq=100 20 bytes of data

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 69

bull O nuacutemero de sequecircncia para um segmento eacute o nuacutemero do primeiro byte do segmento

bull O nuacutemero de reconhecimento que o hospedeiro A atribui a seu segmento eacute o nuacutemero de sequecircncia do proacuteximo byte que ele estiver aguardando do hospedeiro B

bull Como o TCP somente reconhece bytes ateacute o primeiro byte que estiver faltando na cadeia dizemos que o TCP provecirc reconhecimentos cumulativos

Nuacutemeros de sequecircncia e nuacutemeros de reconhecimento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 70

bull O TCP cria um serviccedilo de transferecircncia confiaacutevel de dados sobre o serviccedilo de melhor esforccedilo do IP

bull O serviccedilo de transferecircncia garante que a cadeia de bytes eacute idecircntica agrave cadeia de bytes enviada pelo sistema final que estaacute do outro lado da conexatildeo

bull Os procedimentos recomendados no [RFC 6298] para gerenciamento de temporizadores TCP utilizam apenas um uacutenico temporizador de retransmissatildeo

Transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 71

bull O TCP provecirc um serviccedilo de controle de fluxo agraves suas aplicaccedilotildees para eliminar a possibilidade de o remetente estourar o buffer do destinataacuterio

bull Controle de fluxo eacute um serviccedilo de compatibilizaccedilatildeo de velocidades

bull O TCP oferece serviccedilo de controle de fluxo fazendo que o remetente mantenha uma variaacutevel denominada janela de recepccedilatildeo

Controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 72

Regulaccedilatildeo da taxa de envio

Uma rede de transmissatildeo raacutepida eum receptor de baixa capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 73

Controle de fluxo TCP

lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo

serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora

processo da aplicaccedilatildeo pode ser lento na leitura do buffer

remetente natildeo estouraraacute buffer do destinataacuterio transmitindo muitos dados muito rapidamente

controle de fluxo

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 74

Controle de fluxo TCP como funciona

(suponha que destinataacuterio TCP descarte segmentos fora de ordem)

espaccedilo de buffer natildeo usado = rwnd (slide 48) = RcvBuffer-[LastByteRcvd -

LastByteRead]

destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento

remetente limita de bytes com ACK a rwndndash garante que buffer do

destinataacuterio natildeo estoura

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

rwndRcvBuffer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 75

Gerenciamento da conexatildeo TCP

lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados

inicializa variaacuteveis TCPndash s seqndash buffers informaccedilatildeo de

controle de fluxo (p e RcvWindow)

cliente inicia a conexatildeo Socket clientSocket = new

Socket(hostnameport ) servidor contactado pelo

cliente Socket connectionSocket =

welcomeSocketaccept()

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 76

Gerenciamento da conexatildeo TCP

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 77

fechando uma conexatildeo

cliente fecha socket clientSocketclose()

etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor

etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN

cliente

FIN

servidor

ACK

ACK

FIN

fecha

fecha

fechado

espe

ra

tem

poriz

ada

Gerenciamento da conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 79

Controle de congestionamento

Uma rede de transmissatildeo lenta eum receptor de alta capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 80

bull As causas e os custos do congestionamento

Cenaacuterio de congestionamento 1 duas conexotildees compartilhando um uacutenico roteador com nuacutemero infinito de buffers

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 81

bull As causas e os custos do congestionamentoCenaacuterio de congestionamento 1 vazatildeo e atraso em funccedilatildeo da taxa de envio do hospedeiro

ldquocustosrdquo do congestionamento Aumento de atrasos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 82

bull As causas e os custos do congestionamento

Cenaacuterio 2 dois hospedeiros (com retransmissotildees) e um roteador com buffers finitos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 83

a) Caso ideal (vazatildeo)

b) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda

c) retransmissatildeo do pacote adiado (natildeo perdido) torna maior (que

o caso perfeito ) para o mesmo

in

out

=

in

out

gt

in

out

ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do

pacote

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 84

bull As causas e os custos do congestionamento

Cenaacuterio 3 quatro remetentesroteadores com buffers finitos e trajetos com muacuteltiplos roteadores

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 85

outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer capacidade

de transmissatildeo anterior usada para esse pacote foi desperdiccedilada

Host A

Host B

o

u

t

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 86

Controle de congestionamento fim a fim

bull A camada de rede natildeo fornece nenhum suporte expliacutecito agrave camada de transporte com a finalidade de controle de congestionamento

Controle de congestionamento assistido pela rede

bull Os componentes da camada de rede (isto eacute roteadores) fornecem retroalimentaccedilatildeo especiacutefica de informaccedilotildees ao remetente a respeito do estado de congestionamento na rede Natildeo usual

Mecanismos de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 87

bull A abordagem adotada pelo TCP eacute obrigar cada remetente a limitar a taxa agrave qual enviam traacutefego para sua conexatildeo como uma funccedilatildeo do congestionamento de rede percebido

Se um remetente TCP perceber que haacute pouco congestionamento no caminho entre ele e o destinataacuterio aumentaraacute sua taxa de envio

Se perceber que haacute congestionamento reduziraacute sua taxa de

envio

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 88

bull Mas essa abordagem levanta trecircs questotildees

1 Como um remetente TCP limita a taxa pela qual envia traacutefego para sua conexatildeo

2 Como um remetente TCP percebe que haacute congestionamento entre ele e o destinataacuterio

3 Que algoritmo o remetente deve utilizar para modificar sua taxa de envio como uma funccedilatildeo do congestionamento fim a fim percebido

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 89

bull Partida lenta TCP

Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 90

1) Cwnd = 1 MSS inicialmente

2) Partida lenta a cada rodada redefine cwnd = cwnd 2

3) Perda de pacotes (esgotamento de temporizaccedilatildeo ndash problema grave) ==gt cwnd = 1 (Tahoe ou Reno)

4) Prevenccedilatildeo de congestionamento apoacutes atingir sstresh cwnd = cwnd + 1

5) Trecircs acks duplicados (buraco no ldquofluxordquo ndash problema brando) entra no estado prevenccedilatildeo de congestionamento e redefine cwnd = 1 (Tahoe) ou cwnd = sstresh (Reno)

6) Sstresh = cwnd2 quando satildeo detectados problemas

Quantidade de dados natildeo reconhecidas no TCP = min(CongWin RecWin)

Controle de congestionamento TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 91

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 93

bull Evoluccedilatildeo da janela de congestionamento do TCP (Tahoe e Reno ndash mais usual)

Recuperaccedilatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 94

Controle de congestionamento TCP

Partida lenta seguida por aumento aditivo no TCP Tahoe

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 95

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 96

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 97

bull O controle de congestionamento AIMD (Additive-increase Multiplicative-Decrease) faz surgir o comportamento semelhante a ldquodentes de serrardquo

bull httpsmediapearsoncmgcomawecs_kurose_compnetwork_7cwcontentinteractiveanimationstcp-congestionindexhtml

Controle de congestionamento no TCP retrospectiva

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 98

O que eacute throughput meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughput meacutedio 075 WRTT (75 WRTT)

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 99

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (Probabilidade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 100

bull Duas conexotildees TCP compartilhando um uacutenico enlace congestionado

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 101

bull Vazatildeo alcanccedilada pelas conexotildees TCP 1 e TCP 2bull Ambas conexotildees em algum momento estatildeo com vazatildeo Abull Ambas vatildeo aumentando a vazatildeo ateacute ocorrer perda ndash Bbull Sstresh cai pela metade e ambas migram para Chellip

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 102

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

ndash Consequecircncia

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Nova aplicaccedilatildeo pede 1 TCP obteacutem taxa de R10 Nova aplicaccedilatildeo pede 11 TCPs obteacutem R2

Equidade

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Multiplexingdemultiplexing
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Principles of reliable data transfer
  • Slide 20
  • Slide 21
  • Reliable data transfer getting started
  • Slide 23
  • Slide 24
  • Slide 25
  • rdt20 FSM specification
  • rdt20 operation with no errors
  • rdt20 error scenario
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • rdt30 in action
  • Slide 39
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Selective repeat dilemma
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • TCP fast retransmit
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
Page 6: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 7

bull A tarefa de entregar os dados contidos em um segmento da camada de transporte ao socket correto eacute denominada demultiplexaccedilatildeo

bull O trabalho de reunir no hospedeiro de origem partes de dados provenientes de diferentes sockets encapsular cada parte de dados com informaccedilotildees de cabeccedilalho para criar segmentos e passar esses segmentos para a camada de rede eacute denominada multiplexaccedilatildeo

Multiplexaccedilatildeo e demultiplexaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 8

bull Campos de nuacutemero de porta de origem e de destino em um segmento de camada de transporte

Multiplexaccedilatildeo e demultiplexaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 9

Demultiplexaccedilatildeo natildeo orientada para conexatildeo

cria sockets com nuacutemero de porta automaacutetico

clietSocket = socket(AF_INET SOCK_DGRAM)

Alternativamente podemos fixar a porta acrescentando

clientSocketbind(( 12535))

socket UDP identificado por tupla de dois elementos

(endereccedilo IP destino nuacutemero porta destino)

quando hospedeiro recebe segmento UDPndash verifica nuacutemero de porta

de destino no segmentondash direciona segmento UDP

para socket com esse nuacutemero de porta

datagramas IP com diferentes endereccedilos IP de origem eou nuacutemeros de porta de origem direcionados para o mesmo socket

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 10

Demultiplexaccedilatildeo natildeo orientada para conexatildeo

socket UDP identificado por tupla de dois elementos

(endereccedilo IP destino nuacutemero porta destino)

ClienteIPB

P2

cliente IP A

P1P1P3

servidorIP C

DP 9157

DP 6428

DP 5775

DP 6428

SP 6428

D-IP A

D-IP C

D-IP B

SP 6428

SP 5775

D-IP C

SP oferece ldquoendereccedilo de retornordquo caso necessaacuterio

SP 9157

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 11

Demultiplexaccedilatildeo orientada para conexatildeo

socket TCP identificado por tupla de 4 elementos ndash endereccedilo IP de origemndash nuacutemero de porta de origemndash endereccedilo IP de destinondash nuacutemero de porta de destino

hospedeiro destinataacuterio usa todos os quatro valores para direcionar segmento ao socket apropriado

hospedeiro servidor pode admitir muitos sockets TCP simultacircneosndash cada socket identificado

por sua proacutepria tupla de 4 servidores Web tecircm

diferentes sockets para cada cliente conectandondash HTTP natildeo persistente teraacute

diferentes sockets para cada requisiccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 12

Demultiplexaccedilatildeo orientada para conexatildeo

clienteIPB

P1

cliente IP A

P1P2P4

servidorIP C

SP 9157DP 80

SP 9157DP 80

P5 P6 P3

D-IPCS-IP AD-IPC

S-IP B

SP 5775DP 80

D-IPCS-IP B

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 13

bull O UDP definido no [RFC 768] faz apenas quase tatildeo pouco quanto um protocolo de transporte pode fazer

bull Agrave parte sua funccedilatildeo de multiplexaccedilatildeodemultiplexaccedilatildeo e de alguma verificaccedilatildeo de erros simples ele nada adiciona ao IP

bull Se o desenvolvedor de aplicaccedilatildeo escolher o UDP em vez do TCP a aplicaccedilatildeo estaraacute ldquofalandordquo quase diretamente com o IP

bull O UDP eacute natildeo orientado para conexatildeo Natildeo haacute a apresentaccedilatildeo entre as entidades remetentes e destinataacuterias

Transporte natildeo orientado para conexatildeo UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 14

bull Melhor controle no niacutevel de aplicaccedilatildeo sobre quais dados satildeo enviados e quando menor atraso

bull Natildeo haacute estabelecimento de conexatildeo menor atrasobull Natildeo haacute estados de conexatildeo buffers paracircmetros de

controle de congestionamento nuacutemero de sequecircncia Menor ldquocustordquo

bull Pequeno excesso de cabeccedilalho de pacotes 8 bytes de excesso TCP 20 bytes Menor ldquocustordquo

bull Sem controle de congestionamento do TCP ==gt isso pode implicar em ldquocolapsordquo na rede

bull Eacute possiacutevel uma aplicaccedilatildeo ter transferecircncia confiaacutevel de dados usando UDP

Por que usa-se UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 15

bull Aplicaccedilotildees populares da Internet e seus protocolos de transporte subjacentes

Transporte natildeo orientado para conexatildeo UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 16

bull Estrutura do segmento UDP

Estrutura do segmento UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 17

bull A soma de verificaccedilatildeo UDP serve para detectar erros em todo o segmento

bull Suponha que tenhamos as seguintes trecircs palavras de 16 bits

bull A soma das duas primeiras eacute

bull Adicionando a terceira palavra agrave soma anterior temos

Soma de verificaccedilatildeo UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 18

bull Note que a uacuteltima adiccedilatildeo teve um ldquovai umrdquo no bit mais significativo que foi somado ao bit menos significativo

bull Complemento de 1 0 ==gt 1 1 ==gt 0bull Fazendo o complemento de 1 da soma final

1011010100111101 Esta eacute a soma de verificaccedilatildeobull No destinataacuterio todas as 4 palavras recebidas de 16 bits satildeo

somadas 1111 ==gt Pacote correto algum bit em 0 ==gt algum erro foi introduzido no pacote

bull Por que soma de verificaccedilatildeo no UDPbull Algumas camadas de enlace por exemplo Ethernet fornecem

soma de verificaccedilatildeobull mas nem todas e aleacutem disso um roteador poderia introduzir

algum errobull UDP verifica erros fim a fim

Soma de verificaccedilatildeo UDP

Transport Layer 3-19

Principles of reliable data transfer important in application transport link layers

top-10 list of important networking topics

characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)

Transport Layer 3-20

characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)

Principles of reliable data transfer important in application transport link layers

top-10 list of important networking topics

Transport Layer 3-21

characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)

important in application transport link layers top-10 list of important networking topics

Principles of reliable data transfer

Transport Layer 3-22

sendside

receiveside

rdt_send() called from above (eg by app) Passed data to deliver to receiver upper layer

udt_send() called by rdtto transfer packet over unreliable channel to receiver

rdt_rcv() called when packet arrives on rcv-side of channel

deliver_data() called by rdt to deliver data to upper

Principles of reliable data transfer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 23

vamos desenvolver de forma incremental os lados remetente e destinataacuterio do

protocolo de transferecircncia confiaacutevel de dados (rdt) considerar apenas a transf de dados unidirecional Bidirecional eacute soacute

duplicar a estruturandash mas informaccedilotildees de controle fluiratildeo nas duas direccedilotildees

usar maacutequinas de estado finito (FSM) para especificar remetente e destinataacuterio

estado1

estado2

evento causando transiccedilatildeo de estadoaccedilotildees tomadas sobre transiccedilatildeo de estado

estado quando neste ldquoestadordquo proacuteximo

estado determinadoexclusivamente pelo

proacuteximo evento

eventoaccedilotildees

Transferecircncia confiaacutevel de dados introduccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 24

bull rdt10 ndash Um protocolo para um canal completamente confiaacutevel

Transferecircncia confiaacutevel de dados sobre um canal perfeitamente confiaacutevel rdt10

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 25

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt20

rdt20 ndash Um protocolo para um canal com erros de bits Base dos protocolos ARQ (Automatic Repeat Request)

Detecccedilatildeo de erros (mecanismo do UDP)

Realimentaccedilatildeo do destinataacuterio (ACK ou NACK)

Retransmissatildeobull Pare e espere

Transport Layer 3-26

rdt20 FSM specification

Wait for call from above

sndpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from belowsender

receiverrdt_send(data)

Transport Layer 3-27

rdt20 operation with no errors

Wait for call from above

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from below

rdt_send(data)

Transport Layer 3-28

rdt20 error scenario

Wait for call from above

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from below

rdt_send(data)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 29

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt20

bull O que acontece se o pacote ACK ou NAK estiver corrompido

bull Vamos considerar trecircs possibilidade para ACKs ou NAKs corrompidos1 Ser humano -- A ldquoditadordquo B ldquoOKrdquo ou ldquoRepita por favorrdquo ==gt

A natildeo entende ldquoO que foi que vocecirc disserdquo infinito Peacutessimo2 Bits de soma de verificaccedilatildeo de tal modo que permita ao remetente a

recuperaccedilatildeo de erros de bits Muito bom mas serve somente para canais com erro de bits e natildeo perda de pacotes

3 O Remetente reenvia o pacote de dados corrente quando receber um pacote ACK ou NAK truncado ==gt pode gerar pacotes duplicados Como o destinataacuterio sabe se o pacote conteacutem novos dados ou eacute uma retransmissatildeo ==gt nuacutemero de sequecircncia

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 30

bull rdt21 remetente

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 31

bull rdt21 destinataacuterio

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 32

bull O protocolo rdt21 usa tanto o reconhecimento positivo como negativo do remetente ao destinataacuterio pacote fora de ordem ==gt ACK pacote corrompido ==gt NAK

bull Podemos conseguir o mesmo efeito se ao inveacutes de enviarmos um NAK enviarmos um ACK do uacuteltimo corretamente recebido Ou seja ACK tambeacutem numerado

bull ACKs duplicados indicam ao remetente que o destinataacuterio natildeo recebeu corretamente o pacote seguinte agravequele do ACK duplo

bull rdt22 deve enviar o nuacutemero de sequecircncia no ACK

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21-2

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 33

bull rdt22 remetente

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt22

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 34

bull rdt22 destinataacuterio

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt22

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 35

bull Duas preocupaccedilotildees adicionais devem ser tratadas pelo protocolo1 Como detectar perda de pacotes2 O que fazer quando haacute perdas

bull As teacutecnicas jaacute discutidas atendem a segunda questatildeobull E para a primeira questatildeobull Suponha que o remetente transmita um pacote e que esse

pacote ou seu ACK seja perdido Nenhuma resposta chegaraacute ao remetente Se o remetente natildeo quiser esperar ==gt retransmite o pacote

bull Mas quanto o remetente precisa esperar para ter certeza que algo foi perdido Esperar um RTT Eacute muito difiacutecil estimar o RTT quanto mais ter certeza

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 36

bull Aleacutem disso o ideal seria que o protocolo se recuperasse da perda assim que possiacutevel

bull Na praacutetica O remetente faz uma escolha ponderada de um RTT provaacutevel mas natildeo

garantido que a perda tivesse acontecido Se natildeo receber um ACK nesse periacuteodo retransmite o pacote

bull Se o pacote sofrer um atraso longo pode haver retransmissatildeo mesmo que o pacote ou ACK natildeo tenham sido perdidos Possibilidade de pacotes de dados duplicados

bull Para implementar um mecanismo de retransmissatildeo com base no tempo eacute necessaacuterio um temporizador de contagem regressiva Accedilotildees iniciar atender parar

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 37

bull rdt30 remetente

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Transport Layer 3-38

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

pkt1

ack1

ack0

ack0

(a) no loss

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(b) packet loss

pkt1X

loss

pkt1timeout

resend pkt1

rdt30 in action

Transport Layer 3-39

rdt30 in action

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(c) ACK loss

ack1X

loss

pkt1timeout

resend pkt1

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

send ack0rcv ack0

send pkt1

send pkt0rcv pkt0

pkt0

ack0

(d) premature timeout delayed ACK

pkt1timeout

resend pkt1

ack1

send ack1

send pkt0rcv ack1

pkt0

ack1

ack0

send pkt0rcv ack1 pkt0

rcv pkt0send ack0ack0

rcv pkt0

send ack0(detect duplicate)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 42

bull No coraccedilatildeo do problema do desempenho do rdt30 estaacute o fato de ele ser um protocolo do tipo pare e espere

bull Um protocolo pare e espere em operaccedilatildeo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 43

U remet =

0008

30008 = 000027

microseconds

L R RTT + L R

=

Desempenho do rdt30

rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso pacote 8000 bits

U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando

Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps protocolo de rede limita uso de recursos fiacutesicos Soluccedilatildeo

ndosmicrosseguR

Ldtrans 8

bps10

bits80009

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 44

Um protocolo com paralelismo em operaccedilatildeo

bull O ACK recebido eacute de que pacote

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 45

bull Envio com pare e espere

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 46

bull Envio com paralelismo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Aumento de utilizaccedilatildeopor fator de 3

U remet =

0024 30008

= 00008 microseconds

3 L R RTT + L R

=

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 47

bull Em um protocolo Go-Back-N (GBN) o remetente eacute autorizado a transmitir muacuteltiplos pacotes sem esperar por um reconhecimento

bull Poreacutem fica limitado a ter natildeo mais do que algum nuacutemero maacuteximo permitido N (tamanho da janela) de pacotes natildeo reconhecidos na ldquotubulaccedilatildeordquo

bull Visatildeo do remetente para os nuacutemeros de sequecircncia no protocolo Go-Back-N

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 48

bull Descriccedilatildeo da FSM estendida do remetente GBNbull Quem consegue descrever o funcionamento

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 49

bull Descriccedilatildeo da FSM estendida do destinataacuterio GBN

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 50

Go-Back-N (GBN) em operaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 51

bull Protocolos de repeticcedilatildeo seletiva (SR) evitam retransmissotildees desnecessaacuterias

bull Eles fazem o remetente retransmitir apenas os pacotes suspeitos de terem sido recebidos com erro no destinataacuterio

bull Essa retransmissatildeo individual soacute quando necessaacuteria exige que o destinataacuterio reconheccedila individualmente os pacotes recebidos de modo correto

Repeticcedilatildeo seletiva (SR)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 52

Repeticcedilatildeo seletiva (SR)

Transport Layer 3-53

Selective repeatdilemma

example seq rsquos 0 1 2 3 window size=3

receiver window(after receipt)

sender window(after receipt)

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2 pkt0

timeoutretransmit pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2XXX

will accept packetwith seq number 0

(b) oops

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

X

will accept packetwith seq number 0

0 1 2 3 0 1 2 pkt3

(a) no problem

receiver canrsquot see sender sidereceiver behavior identical in both casessomethingrsquos (very) wrong

receiver sees no difference in two scenarios

duplicate data accepted as new in (b)

Q what relationship between seq size and window size to avoid problem in (b)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 54

Resumo de mecanismos de transferecircncia confiaacutevel de dados e sua utilizaccedilatildeo

bull Soma de verificaccedilatildeo - Usada para detectar erros de bits em um pacote transmitido

bull Temporizador - Usado para controlar a temporizaccedilatildeoretransmissatildeo de um pacote possivelmente porque o pacote (ou seu ACK) foi perdido dentro do canal

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 55

bull Nuacutemero de sequecircncia - Usado para numeraccedilatildeo sequencial de segmentos de dados que transitam do remetente ao destinataacuterio Ou seja pode-se ter vaacuterios segmentos transitando simultaneamente no canal de comunicaccedilatildeo maximizando assim o uso desse canal

bull Reconhecimento - Usado pelo destinataacuterio para avisar o remetente que um pacote ou conjunto de pacotes foi recebido corretamente

bull Janela paralelismo - O remetente pode ficar restrito a enviar somente pacotes com nuacutemeros de sequecircncia que caiam dentro de uma determinada faixa

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 56

bull Uma conexatildeo TCP provecirc um serviccedilo full-duplex

bull A conexatildeo TCP eacute sempre ponto a ponto

bull Uma vez estabelecida uma conexatildeo TCP dois processos de aplicaccedilatildeo podem enviar dados um para o outro 3-way handshake jaacute estabelecendo o MSS

bull O TCP combina cada porccedilatildeo de dados do cliente com um cabeccedilalho TCP formando assim segmentos TCP

A conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 57

Estrutura do segmento TCPURG dados urgentes

(quase natildeo usado)

ACK ACKvaacutelido

PSH empurrar dados agora

RST SYN FINestab conexatildeo

soma de verificaccedilatildeo

da Internet ndash todo o segmento(como em UDP)

bytes destinataacuteriopode aceitar

contagem porbytes de dados(natildeo segmentos)

Opcional e de comprimentovariaacutevel utilizado paranegociar o MSS ou fatorde escala em redes dealta velocidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 58

TCP Estabelecendo e fechando conexotildees

3-way handshakeFinalizando

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 59

s sequecircncia e ACKs do TCP

Cenaacuterio preestabelecido telnet simples

rsquos de sequecircnciandash ldquonuacutemerordquo na cadeia de

bytes do 1o byte nos dados do segmento

ACKsndash seq do proacuteximo byte

esperado do outro ladondash ACK cumulativo

P como o destinataacuterio trata segmentos fora de ordem

ndash R TCP natildeo diz ndash a criteacuterio do implementador

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 60

Tempo de ida e volta e timeout do TCP

P Como definir o valor de timeout do TCP

maior que RTTndash mas RTT varia

muito curto timeout prematurondash retransmissotildees

desnecessaacuterias muito longo baixa

reaccedilatildeo a perda de segmento

P Como estimar o RTT SampleRTT tempo medido

da transmissatildeo do segmento ateacute receber o ACKndash ignora retransmissotildees

SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquondash meacutedia de vaacuterias mediccedilotildees

recentes natildeo apenas SampleRTT atual

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 61

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui exponencialmente

raacutepido valor tiacutepico = 0125

Tempo de ida e volta e timeout do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 62

Amostras de RTTs estimados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 63

definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(geralmente = 025)

depois definir intervalo de timeout

Tempo de ida e volta e timeout do TCP

TimeoutIntervalinicial

= 1 sldquomargem de seguranccedilardquo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 64

TCP cenaacuterios de retransmissatildeo

Hosp A

Seq = 100 20 bytes dados

ACK = 100

tempoTimeout prematuro

Hosp B

Seq = 92 8 bytes dados

ACK = 120

Seq = 92 8 bytes dados

Seq

= 9

2 tim

eout

ACK = 120

Hosp A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio de ACK perdido

Hosp B

X

Seq = 92 8 bytes dados

ACK = 100

tempoS

eq =

92

timeo

ut

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 65

TCP cenaacuterios de retransmissatildeo

Host A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio ACK cumulativo

Host B

X

Seq = 100 20 bytes dados

ACK = 120

tempo

Transport Layer 3-66

TCP fast retransmit time-out period

often relatively long long delay before

resending lost packet detect lost

segments via duplicate ACKs sender often sends

many segments back-to-back

if segment is lost there will likely be many duplicate ACKs

if sender receives 3 ACKs for same data(ldquotriple duplicate ACKsrdquo) resend unacked segment with smallest seq

likely that unacked segment lost so donrsquot wait for timeout

TCP fast retransmit

Transport Layer 3-67

X

fast retransmit after sender receipt of triple duplicate ACK

Host BHost A

Seq=92 8 bytes of data

ACK=100

timeo

ut ACK=100

ACK=100

ACK=100

TCP fast retransmit

Seq=100 20 bytes of data

Seq=100 20 bytes of data

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 69

bull O nuacutemero de sequecircncia para um segmento eacute o nuacutemero do primeiro byte do segmento

bull O nuacutemero de reconhecimento que o hospedeiro A atribui a seu segmento eacute o nuacutemero de sequecircncia do proacuteximo byte que ele estiver aguardando do hospedeiro B

bull Como o TCP somente reconhece bytes ateacute o primeiro byte que estiver faltando na cadeia dizemos que o TCP provecirc reconhecimentos cumulativos

Nuacutemeros de sequecircncia e nuacutemeros de reconhecimento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 70

bull O TCP cria um serviccedilo de transferecircncia confiaacutevel de dados sobre o serviccedilo de melhor esforccedilo do IP

bull O serviccedilo de transferecircncia garante que a cadeia de bytes eacute idecircntica agrave cadeia de bytes enviada pelo sistema final que estaacute do outro lado da conexatildeo

bull Os procedimentos recomendados no [RFC 6298] para gerenciamento de temporizadores TCP utilizam apenas um uacutenico temporizador de retransmissatildeo

Transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 71

bull O TCP provecirc um serviccedilo de controle de fluxo agraves suas aplicaccedilotildees para eliminar a possibilidade de o remetente estourar o buffer do destinataacuterio

bull Controle de fluxo eacute um serviccedilo de compatibilizaccedilatildeo de velocidades

bull O TCP oferece serviccedilo de controle de fluxo fazendo que o remetente mantenha uma variaacutevel denominada janela de recepccedilatildeo

Controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 72

Regulaccedilatildeo da taxa de envio

Uma rede de transmissatildeo raacutepida eum receptor de baixa capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 73

Controle de fluxo TCP

lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo

serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora

processo da aplicaccedilatildeo pode ser lento na leitura do buffer

remetente natildeo estouraraacute buffer do destinataacuterio transmitindo muitos dados muito rapidamente

controle de fluxo

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 74

Controle de fluxo TCP como funciona

(suponha que destinataacuterio TCP descarte segmentos fora de ordem)

espaccedilo de buffer natildeo usado = rwnd (slide 48) = RcvBuffer-[LastByteRcvd -

LastByteRead]

destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento

remetente limita de bytes com ACK a rwndndash garante que buffer do

destinataacuterio natildeo estoura

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

rwndRcvBuffer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 75

Gerenciamento da conexatildeo TCP

lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados

inicializa variaacuteveis TCPndash s seqndash buffers informaccedilatildeo de

controle de fluxo (p e RcvWindow)

cliente inicia a conexatildeo Socket clientSocket = new

Socket(hostnameport ) servidor contactado pelo

cliente Socket connectionSocket =

welcomeSocketaccept()

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 76

Gerenciamento da conexatildeo TCP

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 77

fechando uma conexatildeo

cliente fecha socket clientSocketclose()

etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor

etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN

cliente

FIN

servidor

ACK

ACK

FIN

fecha

fecha

fechado

espe

ra

tem

poriz

ada

Gerenciamento da conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 79

Controle de congestionamento

Uma rede de transmissatildeo lenta eum receptor de alta capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 80

bull As causas e os custos do congestionamento

Cenaacuterio de congestionamento 1 duas conexotildees compartilhando um uacutenico roteador com nuacutemero infinito de buffers

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 81

bull As causas e os custos do congestionamentoCenaacuterio de congestionamento 1 vazatildeo e atraso em funccedilatildeo da taxa de envio do hospedeiro

ldquocustosrdquo do congestionamento Aumento de atrasos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 82

bull As causas e os custos do congestionamento

Cenaacuterio 2 dois hospedeiros (com retransmissotildees) e um roteador com buffers finitos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 83

a) Caso ideal (vazatildeo)

b) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda

c) retransmissatildeo do pacote adiado (natildeo perdido) torna maior (que

o caso perfeito ) para o mesmo

in

out

=

in

out

gt

in

out

ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do

pacote

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 84

bull As causas e os custos do congestionamento

Cenaacuterio 3 quatro remetentesroteadores com buffers finitos e trajetos com muacuteltiplos roteadores

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 85

outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer capacidade

de transmissatildeo anterior usada para esse pacote foi desperdiccedilada

Host A

Host B

o

u

t

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 86

Controle de congestionamento fim a fim

bull A camada de rede natildeo fornece nenhum suporte expliacutecito agrave camada de transporte com a finalidade de controle de congestionamento

Controle de congestionamento assistido pela rede

bull Os componentes da camada de rede (isto eacute roteadores) fornecem retroalimentaccedilatildeo especiacutefica de informaccedilotildees ao remetente a respeito do estado de congestionamento na rede Natildeo usual

Mecanismos de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 87

bull A abordagem adotada pelo TCP eacute obrigar cada remetente a limitar a taxa agrave qual enviam traacutefego para sua conexatildeo como uma funccedilatildeo do congestionamento de rede percebido

Se um remetente TCP perceber que haacute pouco congestionamento no caminho entre ele e o destinataacuterio aumentaraacute sua taxa de envio

Se perceber que haacute congestionamento reduziraacute sua taxa de

envio

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 88

bull Mas essa abordagem levanta trecircs questotildees

1 Como um remetente TCP limita a taxa pela qual envia traacutefego para sua conexatildeo

2 Como um remetente TCP percebe que haacute congestionamento entre ele e o destinataacuterio

3 Que algoritmo o remetente deve utilizar para modificar sua taxa de envio como uma funccedilatildeo do congestionamento fim a fim percebido

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 89

bull Partida lenta TCP

Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 90

1) Cwnd = 1 MSS inicialmente

2) Partida lenta a cada rodada redefine cwnd = cwnd 2

3) Perda de pacotes (esgotamento de temporizaccedilatildeo ndash problema grave) ==gt cwnd = 1 (Tahoe ou Reno)

4) Prevenccedilatildeo de congestionamento apoacutes atingir sstresh cwnd = cwnd + 1

5) Trecircs acks duplicados (buraco no ldquofluxordquo ndash problema brando) entra no estado prevenccedilatildeo de congestionamento e redefine cwnd = 1 (Tahoe) ou cwnd = sstresh (Reno)

6) Sstresh = cwnd2 quando satildeo detectados problemas

Quantidade de dados natildeo reconhecidas no TCP = min(CongWin RecWin)

Controle de congestionamento TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 91

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 93

bull Evoluccedilatildeo da janela de congestionamento do TCP (Tahoe e Reno ndash mais usual)

Recuperaccedilatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 94

Controle de congestionamento TCP

Partida lenta seguida por aumento aditivo no TCP Tahoe

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 95

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 96

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 97

bull O controle de congestionamento AIMD (Additive-increase Multiplicative-Decrease) faz surgir o comportamento semelhante a ldquodentes de serrardquo

bull httpsmediapearsoncmgcomawecs_kurose_compnetwork_7cwcontentinteractiveanimationstcp-congestionindexhtml

Controle de congestionamento no TCP retrospectiva

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 98

O que eacute throughput meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughput meacutedio 075 WRTT (75 WRTT)

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 99

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (Probabilidade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 100

bull Duas conexotildees TCP compartilhando um uacutenico enlace congestionado

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 101

bull Vazatildeo alcanccedilada pelas conexotildees TCP 1 e TCP 2bull Ambas conexotildees em algum momento estatildeo com vazatildeo Abull Ambas vatildeo aumentando a vazatildeo ateacute ocorrer perda ndash Bbull Sstresh cai pela metade e ambas migram para Chellip

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 102

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

ndash Consequecircncia

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Nova aplicaccedilatildeo pede 1 TCP obteacutem taxa de R10 Nova aplicaccedilatildeo pede 11 TCPs obteacutem R2

Equidade

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Multiplexingdemultiplexing
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Principles of reliable data transfer
  • Slide 20
  • Slide 21
  • Reliable data transfer getting started
  • Slide 23
  • Slide 24
  • Slide 25
  • rdt20 FSM specification
  • rdt20 operation with no errors
  • rdt20 error scenario
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • rdt30 in action
  • Slide 39
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Selective repeat dilemma
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • TCP fast retransmit
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
Page 7: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 8

bull Campos de nuacutemero de porta de origem e de destino em um segmento de camada de transporte

Multiplexaccedilatildeo e demultiplexaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 9

Demultiplexaccedilatildeo natildeo orientada para conexatildeo

cria sockets com nuacutemero de porta automaacutetico

clietSocket = socket(AF_INET SOCK_DGRAM)

Alternativamente podemos fixar a porta acrescentando

clientSocketbind(( 12535))

socket UDP identificado por tupla de dois elementos

(endereccedilo IP destino nuacutemero porta destino)

quando hospedeiro recebe segmento UDPndash verifica nuacutemero de porta

de destino no segmentondash direciona segmento UDP

para socket com esse nuacutemero de porta

datagramas IP com diferentes endereccedilos IP de origem eou nuacutemeros de porta de origem direcionados para o mesmo socket

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 10

Demultiplexaccedilatildeo natildeo orientada para conexatildeo

socket UDP identificado por tupla de dois elementos

(endereccedilo IP destino nuacutemero porta destino)

ClienteIPB

P2

cliente IP A

P1P1P3

servidorIP C

DP 9157

DP 6428

DP 5775

DP 6428

SP 6428

D-IP A

D-IP C

D-IP B

SP 6428

SP 5775

D-IP C

SP oferece ldquoendereccedilo de retornordquo caso necessaacuterio

SP 9157

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 11

Demultiplexaccedilatildeo orientada para conexatildeo

socket TCP identificado por tupla de 4 elementos ndash endereccedilo IP de origemndash nuacutemero de porta de origemndash endereccedilo IP de destinondash nuacutemero de porta de destino

hospedeiro destinataacuterio usa todos os quatro valores para direcionar segmento ao socket apropriado

hospedeiro servidor pode admitir muitos sockets TCP simultacircneosndash cada socket identificado

por sua proacutepria tupla de 4 servidores Web tecircm

diferentes sockets para cada cliente conectandondash HTTP natildeo persistente teraacute

diferentes sockets para cada requisiccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 12

Demultiplexaccedilatildeo orientada para conexatildeo

clienteIPB

P1

cliente IP A

P1P2P4

servidorIP C

SP 9157DP 80

SP 9157DP 80

P5 P6 P3

D-IPCS-IP AD-IPC

S-IP B

SP 5775DP 80

D-IPCS-IP B

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 13

bull O UDP definido no [RFC 768] faz apenas quase tatildeo pouco quanto um protocolo de transporte pode fazer

bull Agrave parte sua funccedilatildeo de multiplexaccedilatildeodemultiplexaccedilatildeo e de alguma verificaccedilatildeo de erros simples ele nada adiciona ao IP

bull Se o desenvolvedor de aplicaccedilatildeo escolher o UDP em vez do TCP a aplicaccedilatildeo estaraacute ldquofalandordquo quase diretamente com o IP

bull O UDP eacute natildeo orientado para conexatildeo Natildeo haacute a apresentaccedilatildeo entre as entidades remetentes e destinataacuterias

Transporte natildeo orientado para conexatildeo UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 14

bull Melhor controle no niacutevel de aplicaccedilatildeo sobre quais dados satildeo enviados e quando menor atraso

bull Natildeo haacute estabelecimento de conexatildeo menor atrasobull Natildeo haacute estados de conexatildeo buffers paracircmetros de

controle de congestionamento nuacutemero de sequecircncia Menor ldquocustordquo

bull Pequeno excesso de cabeccedilalho de pacotes 8 bytes de excesso TCP 20 bytes Menor ldquocustordquo

bull Sem controle de congestionamento do TCP ==gt isso pode implicar em ldquocolapsordquo na rede

bull Eacute possiacutevel uma aplicaccedilatildeo ter transferecircncia confiaacutevel de dados usando UDP

Por que usa-se UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 15

bull Aplicaccedilotildees populares da Internet e seus protocolos de transporte subjacentes

Transporte natildeo orientado para conexatildeo UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 16

bull Estrutura do segmento UDP

Estrutura do segmento UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 17

bull A soma de verificaccedilatildeo UDP serve para detectar erros em todo o segmento

bull Suponha que tenhamos as seguintes trecircs palavras de 16 bits

bull A soma das duas primeiras eacute

bull Adicionando a terceira palavra agrave soma anterior temos

Soma de verificaccedilatildeo UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 18

bull Note que a uacuteltima adiccedilatildeo teve um ldquovai umrdquo no bit mais significativo que foi somado ao bit menos significativo

bull Complemento de 1 0 ==gt 1 1 ==gt 0bull Fazendo o complemento de 1 da soma final

1011010100111101 Esta eacute a soma de verificaccedilatildeobull No destinataacuterio todas as 4 palavras recebidas de 16 bits satildeo

somadas 1111 ==gt Pacote correto algum bit em 0 ==gt algum erro foi introduzido no pacote

bull Por que soma de verificaccedilatildeo no UDPbull Algumas camadas de enlace por exemplo Ethernet fornecem

soma de verificaccedilatildeobull mas nem todas e aleacutem disso um roteador poderia introduzir

algum errobull UDP verifica erros fim a fim

Soma de verificaccedilatildeo UDP

Transport Layer 3-19

Principles of reliable data transfer important in application transport link layers

top-10 list of important networking topics

characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)

Transport Layer 3-20

characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)

Principles of reliable data transfer important in application transport link layers

top-10 list of important networking topics

Transport Layer 3-21

characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)

important in application transport link layers top-10 list of important networking topics

Principles of reliable data transfer

Transport Layer 3-22

sendside

receiveside

rdt_send() called from above (eg by app) Passed data to deliver to receiver upper layer

udt_send() called by rdtto transfer packet over unreliable channel to receiver

rdt_rcv() called when packet arrives on rcv-side of channel

deliver_data() called by rdt to deliver data to upper

Principles of reliable data transfer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 23

vamos desenvolver de forma incremental os lados remetente e destinataacuterio do

protocolo de transferecircncia confiaacutevel de dados (rdt) considerar apenas a transf de dados unidirecional Bidirecional eacute soacute

duplicar a estruturandash mas informaccedilotildees de controle fluiratildeo nas duas direccedilotildees

usar maacutequinas de estado finito (FSM) para especificar remetente e destinataacuterio

estado1

estado2

evento causando transiccedilatildeo de estadoaccedilotildees tomadas sobre transiccedilatildeo de estado

estado quando neste ldquoestadordquo proacuteximo

estado determinadoexclusivamente pelo

proacuteximo evento

eventoaccedilotildees

Transferecircncia confiaacutevel de dados introduccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 24

bull rdt10 ndash Um protocolo para um canal completamente confiaacutevel

Transferecircncia confiaacutevel de dados sobre um canal perfeitamente confiaacutevel rdt10

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 25

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt20

rdt20 ndash Um protocolo para um canal com erros de bits Base dos protocolos ARQ (Automatic Repeat Request)

Detecccedilatildeo de erros (mecanismo do UDP)

Realimentaccedilatildeo do destinataacuterio (ACK ou NACK)

Retransmissatildeobull Pare e espere

Transport Layer 3-26

rdt20 FSM specification

Wait for call from above

sndpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from belowsender

receiverrdt_send(data)

Transport Layer 3-27

rdt20 operation with no errors

Wait for call from above

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from below

rdt_send(data)

Transport Layer 3-28

rdt20 error scenario

Wait for call from above

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from below

rdt_send(data)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 29

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt20

bull O que acontece se o pacote ACK ou NAK estiver corrompido

bull Vamos considerar trecircs possibilidade para ACKs ou NAKs corrompidos1 Ser humano -- A ldquoditadordquo B ldquoOKrdquo ou ldquoRepita por favorrdquo ==gt

A natildeo entende ldquoO que foi que vocecirc disserdquo infinito Peacutessimo2 Bits de soma de verificaccedilatildeo de tal modo que permita ao remetente a

recuperaccedilatildeo de erros de bits Muito bom mas serve somente para canais com erro de bits e natildeo perda de pacotes

3 O Remetente reenvia o pacote de dados corrente quando receber um pacote ACK ou NAK truncado ==gt pode gerar pacotes duplicados Como o destinataacuterio sabe se o pacote conteacutem novos dados ou eacute uma retransmissatildeo ==gt nuacutemero de sequecircncia

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 30

bull rdt21 remetente

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 31

bull rdt21 destinataacuterio

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 32

bull O protocolo rdt21 usa tanto o reconhecimento positivo como negativo do remetente ao destinataacuterio pacote fora de ordem ==gt ACK pacote corrompido ==gt NAK

bull Podemos conseguir o mesmo efeito se ao inveacutes de enviarmos um NAK enviarmos um ACK do uacuteltimo corretamente recebido Ou seja ACK tambeacutem numerado

bull ACKs duplicados indicam ao remetente que o destinataacuterio natildeo recebeu corretamente o pacote seguinte agravequele do ACK duplo

bull rdt22 deve enviar o nuacutemero de sequecircncia no ACK

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21-2

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 33

bull rdt22 remetente

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt22

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 34

bull rdt22 destinataacuterio

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt22

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 35

bull Duas preocupaccedilotildees adicionais devem ser tratadas pelo protocolo1 Como detectar perda de pacotes2 O que fazer quando haacute perdas

bull As teacutecnicas jaacute discutidas atendem a segunda questatildeobull E para a primeira questatildeobull Suponha que o remetente transmita um pacote e que esse

pacote ou seu ACK seja perdido Nenhuma resposta chegaraacute ao remetente Se o remetente natildeo quiser esperar ==gt retransmite o pacote

bull Mas quanto o remetente precisa esperar para ter certeza que algo foi perdido Esperar um RTT Eacute muito difiacutecil estimar o RTT quanto mais ter certeza

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 36

bull Aleacutem disso o ideal seria que o protocolo se recuperasse da perda assim que possiacutevel

bull Na praacutetica O remetente faz uma escolha ponderada de um RTT provaacutevel mas natildeo

garantido que a perda tivesse acontecido Se natildeo receber um ACK nesse periacuteodo retransmite o pacote

bull Se o pacote sofrer um atraso longo pode haver retransmissatildeo mesmo que o pacote ou ACK natildeo tenham sido perdidos Possibilidade de pacotes de dados duplicados

bull Para implementar um mecanismo de retransmissatildeo com base no tempo eacute necessaacuterio um temporizador de contagem regressiva Accedilotildees iniciar atender parar

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 37

bull rdt30 remetente

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Transport Layer 3-38

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

pkt1

ack1

ack0

ack0

(a) no loss

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(b) packet loss

pkt1X

loss

pkt1timeout

resend pkt1

rdt30 in action

Transport Layer 3-39

rdt30 in action

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(c) ACK loss

ack1X

loss

pkt1timeout

resend pkt1

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

send ack0rcv ack0

send pkt1

send pkt0rcv pkt0

pkt0

ack0

(d) premature timeout delayed ACK

pkt1timeout

resend pkt1

ack1

send ack1

send pkt0rcv ack1

pkt0

ack1

ack0

send pkt0rcv ack1 pkt0

rcv pkt0send ack0ack0

rcv pkt0

send ack0(detect duplicate)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 42

bull No coraccedilatildeo do problema do desempenho do rdt30 estaacute o fato de ele ser um protocolo do tipo pare e espere

bull Um protocolo pare e espere em operaccedilatildeo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 43

U remet =

0008

30008 = 000027

microseconds

L R RTT + L R

=

Desempenho do rdt30

rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso pacote 8000 bits

U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando

Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps protocolo de rede limita uso de recursos fiacutesicos Soluccedilatildeo

ndosmicrosseguR

Ldtrans 8

bps10

bits80009

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 44

Um protocolo com paralelismo em operaccedilatildeo

bull O ACK recebido eacute de que pacote

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 45

bull Envio com pare e espere

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 46

bull Envio com paralelismo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Aumento de utilizaccedilatildeopor fator de 3

U remet =

0024 30008

= 00008 microseconds

3 L R RTT + L R

=

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 47

bull Em um protocolo Go-Back-N (GBN) o remetente eacute autorizado a transmitir muacuteltiplos pacotes sem esperar por um reconhecimento

bull Poreacutem fica limitado a ter natildeo mais do que algum nuacutemero maacuteximo permitido N (tamanho da janela) de pacotes natildeo reconhecidos na ldquotubulaccedilatildeordquo

bull Visatildeo do remetente para os nuacutemeros de sequecircncia no protocolo Go-Back-N

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 48

bull Descriccedilatildeo da FSM estendida do remetente GBNbull Quem consegue descrever o funcionamento

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 49

bull Descriccedilatildeo da FSM estendida do destinataacuterio GBN

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 50

Go-Back-N (GBN) em operaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 51

bull Protocolos de repeticcedilatildeo seletiva (SR) evitam retransmissotildees desnecessaacuterias

bull Eles fazem o remetente retransmitir apenas os pacotes suspeitos de terem sido recebidos com erro no destinataacuterio

bull Essa retransmissatildeo individual soacute quando necessaacuteria exige que o destinataacuterio reconheccedila individualmente os pacotes recebidos de modo correto

Repeticcedilatildeo seletiva (SR)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 52

Repeticcedilatildeo seletiva (SR)

Transport Layer 3-53

Selective repeatdilemma

example seq rsquos 0 1 2 3 window size=3

receiver window(after receipt)

sender window(after receipt)

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2 pkt0

timeoutretransmit pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2XXX

will accept packetwith seq number 0

(b) oops

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

X

will accept packetwith seq number 0

0 1 2 3 0 1 2 pkt3

(a) no problem

receiver canrsquot see sender sidereceiver behavior identical in both casessomethingrsquos (very) wrong

receiver sees no difference in two scenarios

duplicate data accepted as new in (b)

Q what relationship between seq size and window size to avoid problem in (b)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 54

Resumo de mecanismos de transferecircncia confiaacutevel de dados e sua utilizaccedilatildeo

bull Soma de verificaccedilatildeo - Usada para detectar erros de bits em um pacote transmitido

bull Temporizador - Usado para controlar a temporizaccedilatildeoretransmissatildeo de um pacote possivelmente porque o pacote (ou seu ACK) foi perdido dentro do canal

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 55

bull Nuacutemero de sequecircncia - Usado para numeraccedilatildeo sequencial de segmentos de dados que transitam do remetente ao destinataacuterio Ou seja pode-se ter vaacuterios segmentos transitando simultaneamente no canal de comunicaccedilatildeo maximizando assim o uso desse canal

bull Reconhecimento - Usado pelo destinataacuterio para avisar o remetente que um pacote ou conjunto de pacotes foi recebido corretamente

bull Janela paralelismo - O remetente pode ficar restrito a enviar somente pacotes com nuacutemeros de sequecircncia que caiam dentro de uma determinada faixa

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 56

bull Uma conexatildeo TCP provecirc um serviccedilo full-duplex

bull A conexatildeo TCP eacute sempre ponto a ponto

bull Uma vez estabelecida uma conexatildeo TCP dois processos de aplicaccedilatildeo podem enviar dados um para o outro 3-way handshake jaacute estabelecendo o MSS

bull O TCP combina cada porccedilatildeo de dados do cliente com um cabeccedilalho TCP formando assim segmentos TCP

A conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 57

Estrutura do segmento TCPURG dados urgentes

(quase natildeo usado)

ACK ACKvaacutelido

PSH empurrar dados agora

RST SYN FINestab conexatildeo

soma de verificaccedilatildeo

da Internet ndash todo o segmento(como em UDP)

bytes destinataacuteriopode aceitar

contagem porbytes de dados(natildeo segmentos)

Opcional e de comprimentovariaacutevel utilizado paranegociar o MSS ou fatorde escala em redes dealta velocidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 58

TCP Estabelecendo e fechando conexotildees

3-way handshakeFinalizando

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 59

s sequecircncia e ACKs do TCP

Cenaacuterio preestabelecido telnet simples

rsquos de sequecircnciandash ldquonuacutemerordquo na cadeia de

bytes do 1o byte nos dados do segmento

ACKsndash seq do proacuteximo byte

esperado do outro ladondash ACK cumulativo

P como o destinataacuterio trata segmentos fora de ordem

ndash R TCP natildeo diz ndash a criteacuterio do implementador

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 60

Tempo de ida e volta e timeout do TCP

P Como definir o valor de timeout do TCP

maior que RTTndash mas RTT varia

muito curto timeout prematurondash retransmissotildees

desnecessaacuterias muito longo baixa

reaccedilatildeo a perda de segmento

P Como estimar o RTT SampleRTT tempo medido

da transmissatildeo do segmento ateacute receber o ACKndash ignora retransmissotildees

SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquondash meacutedia de vaacuterias mediccedilotildees

recentes natildeo apenas SampleRTT atual

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 61

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui exponencialmente

raacutepido valor tiacutepico = 0125

Tempo de ida e volta e timeout do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 62

Amostras de RTTs estimados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 63

definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(geralmente = 025)

depois definir intervalo de timeout

Tempo de ida e volta e timeout do TCP

TimeoutIntervalinicial

= 1 sldquomargem de seguranccedilardquo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 64

TCP cenaacuterios de retransmissatildeo

Hosp A

Seq = 100 20 bytes dados

ACK = 100

tempoTimeout prematuro

Hosp B

Seq = 92 8 bytes dados

ACK = 120

Seq = 92 8 bytes dados

Seq

= 9

2 tim

eout

ACK = 120

Hosp A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio de ACK perdido

Hosp B

X

Seq = 92 8 bytes dados

ACK = 100

tempoS

eq =

92

timeo

ut

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 65

TCP cenaacuterios de retransmissatildeo

Host A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio ACK cumulativo

Host B

X

Seq = 100 20 bytes dados

ACK = 120

tempo

Transport Layer 3-66

TCP fast retransmit time-out period

often relatively long long delay before

resending lost packet detect lost

segments via duplicate ACKs sender often sends

many segments back-to-back

if segment is lost there will likely be many duplicate ACKs

if sender receives 3 ACKs for same data(ldquotriple duplicate ACKsrdquo) resend unacked segment with smallest seq

likely that unacked segment lost so donrsquot wait for timeout

TCP fast retransmit

Transport Layer 3-67

X

fast retransmit after sender receipt of triple duplicate ACK

Host BHost A

Seq=92 8 bytes of data

ACK=100

timeo

ut ACK=100

ACK=100

ACK=100

TCP fast retransmit

Seq=100 20 bytes of data

Seq=100 20 bytes of data

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 69

bull O nuacutemero de sequecircncia para um segmento eacute o nuacutemero do primeiro byte do segmento

bull O nuacutemero de reconhecimento que o hospedeiro A atribui a seu segmento eacute o nuacutemero de sequecircncia do proacuteximo byte que ele estiver aguardando do hospedeiro B

bull Como o TCP somente reconhece bytes ateacute o primeiro byte que estiver faltando na cadeia dizemos que o TCP provecirc reconhecimentos cumulativos

Nuacutemeros de sequecircncia e nuacutemeros de reconhecimento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 70

bull O TCP cria um serviccedilo de transferecircncia confiaacutevel de dados sobre o serviccedilo de melhor esforccedilo do IP

bull O serviccedilo de transferecircncia garante que a cadeia de bytes eacute idecircntica agrave cadeia de bytes enviada pelo sistema final que estaacute do outro lado da conexatildeo

bull Os procedimentos recomendados no [RFC 6298] para gerenciamento de temporizadores TCP utilizam apenas um uacutenico temporizador de retransmissatildeo

Transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 71

bull O TCP provecirc um serviccedilo de controle de fluxo agraves suas aplicaccedilotildees para eliminar a possibilidade de o remetente estourar o buffer do destinataacuterio

bull Controle de fluxo eacute um serviccedilo de compatibilizaccedilatildeo de velocidades

bull O TCP oferece serviccedilo de controle de fluxo fazendo que o remetente mantenha uma variaacutevel denominada janela de recepccedilatildeo

Controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 72

Regulaccedilatildeo da taxa de envio

Uma rede de transmissatildeo raacutepida eum receptor de baixa capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 73

Controle de fluxo TCP

lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo

serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora

processo da aplicaccedilatildeo pode ser lento na leitura do buffer

remetente natildeo estouraraacute buffer do destinataacuterio transmitindo muitos dados muito rapidamente

controle de fluxo

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 74

Controle de fluxo TCP como funciona

(suponha que destinataacuterio TCP descarte segmentos fora de ordem)

espaccedilo de buffer natildeo usado = rwnd (slide 48) = RcvBuffer-[LastByteRcvd -

LastByteRead]

destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento

remetente limita de bytes com ACK a rwndndash garante que buffer do

destinataacuterio natildeo estoura

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

rwndRcvBuffer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 75

Gerenciamento da conexatildeo TCP

lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados

inicializa variaacuteveis TCPndash s seqndash buffers informaccedilatildeo de

controle de fluxo (p e RcvWindow)

cliente inicia a conexatildeo Socket clientSocket = new

Socket(hostnameport ) servidor contactado pelo

cliente Socket connectionSocket =

welcomeSocketaccept()

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 76

Gerenciamento da conexatildeo TCP

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 77

fechando uma conexatildeo

cliente fecha socket clientSocketclose()

etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor

etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN

cliente

FIN

servidor

ACK

ACK

FIN

fecha

fecha

fechado

espe

ra

tem

poriz

ada

Gerenciamento da conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 79

Controle de congestionamento

Uma rede de transmissatildeo lenta eum receptor de alta capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 80

bull As causas e os custos do congestionamento

Cenaacuterio de congestionamento 1 duas conexotildees compartilhando um uacutenico roteador com nuacutemero infinito de buffers

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 81

bull As causas e os custos do congestionamentoCenaacuterio de congestionamento 1 vazatildeo e atraso em funccedilatildeo da taxa de envio do hospedeiro

ldquocustosrdquo do congestionamento Aumento de atrasos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 82

bull As causas e os custos do congestionamento

Cenaacuterio 2 dois hospedeiros (com retransmissotildees) e um roteador com buffers finitos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 83

a) Caso ideal (vazatildeo)

b) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda

c) retransmissatildeo do pacote adiado (natildeo perdido) torna maior (que

o caso perfeito ) para o mesmo

in

out

=

in

out

gt

in

out

ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do

pacote

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 84

bull As causas e os custos do congestionamento

Cenaacuterio 3 quatro remetentesroteadores com buffers finitos e trajetos com muacuteltiplos roteadores

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 85

outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer capacidade

de transmissatildeo anterior usada para esse pacote foi desperdiccedilada

Host A

Host B

o

u

t

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 86

Controle de congestionamento fim a fim

bull A camada de rede natildeo fornece nenhum suporte expliacutecito agrave camada de transporte com a finalidade de controle de congestionamento

Controle de congestionamento assistido pela rede

bull Os componentes da camada de rede (isto eacute roteadores) fornecem retroalimentaccedilatildeo especiacutefica de informaccedilotildees ao remetente a respeito do estado de congestionamento na rede Natildeo usual

Mecanismos de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 87

bull A abordagem adotada pelo TCP eacute obrigar cada remetente a limitar a taxa agrave qual enviam traacutefego para sua conexatildeo como uma funccedilatildeo do congestionamento de rede percebido

Se um remetente TCP perceber que haacute pouco congestionamento no caminho entre ele e o destinataacuterio aumentaraacute sua taxa de envio

Se perceber que haacute congestionamento reduziraacute sua taxa de

envio

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 88

bull Mas essa abordagem levanta trecircs questotildees

1 Como um remetente TCP limita a taxa pela qual envia traacutefego para sua conexatildeo

2 Como um remetente TCP percebe que haacute congestionamento entre ele e o destinataacuterio

3 Que algoritmo o remetente deve utilizar para modificar sua taxa de envio como uma funccedilatildeo do congestionamento fim a fim percebido

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 89

bull Partida lenta TCP

Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 90

1) Cwnd = 1 MSS inicialmente

2) Partida lenta a cada rodada redefine cwnd = cwnd 2

3) Perda de pacotes (esgotamento de temporizaccedilatildeo ndash problema grave) ==gt cwnd = 1 (Tahoe ou Reno)

4) Prevenccedilatildeo de congestionamento apoacutes atingir sstresh cwnd = cwnd + 1

5) Trecircs acks duplicados (buraco no ldquofluxordquo ndash problema brando) entra no estado prevenccedilatildeo de congestionamento e redefine cwnd = 1 (Tahoe) ou cwnd = sstresh (Reno)

6) Sstresh = cwnd2 quando satildeo detectados problemas

Quantidade de dados natildeo reconhecidas no TCP = min(CongWin RecWin)

Controle de congestionamento TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 91

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 93

bull Evoluccedilatildeo da janela de congestionamento do TCP (Tahoe e Reno ndash mais usual)

Recuperaccedilatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 94

Controle de congestionamento TCP

Partida lenta seguida por aumento aditivo no TCP Tahoe

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 95

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 96

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 97

bull O controle de congestionamento AIMD (Additive-increase Multiplicative-Decrease) faz surgir o comportamento semelhante a ldquodentes de serrardquo

bull httpsmediapearsoncmgcomawecs_kurose_compnetwork_7cwcontentinteractiveanimationstcp-congestionindexhtml

Controle de congestionamento no TCP retrospectiva

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 98

O que eacute throughput meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughput meacutedio 075 WRTT (75 WRTT)

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 99

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (Probabilidade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 100

bull Duas conexotildees TCP compartilhando um uacutenico enlace congestionado

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 101

bull Vazatildeo alcanccedilada pelas conexotildees TCP 1 e TCP 2bull Ambas conexotildees em algum momento estatildeo com vazatildeo Abull Ambas vatildeo aumentando a vazatildeo ateacute ocorrer perda ndash Bbull Sstresh cai pela metade e ambas migram para Chellip

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 102

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

ndash Consequecircncia

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Nova aplicaccedilatildeo pede 1 TCP obteacutem taxa de R10 Nova aplicaccedilatildeo pede 11 TCPs obteacutem R2

Equidade

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Multiplexingdemultiplexing
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Principles of reliable data transfer
  • Slide 20
  • Slide 21
  • Reliable data transfer getting started
  • Slide 23
  • Slide 24
  • Slide 25
  • rdt20 FSM specification
  • rdt20 operation with no errors
  • rdt20 error scenario
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • rdt30 in action
  • Slide 39
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Selective repeat dilemma
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • TCP fast retransmit
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
Page 8: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 9

Demultiplexaccedilatildeo natildeo orientada para conexatildeo

cria sockets com nuacutemero de porta automaacutetico

clietSocket = socket(AF_INET SOCK_DGRAM)

Alternativamente podemos fixar a porta acrescentando

clientSocketbind(( 12535))

socket UDP identificado por tupla de dois elementos

(endereccedilo IP destino nuacutemero porta destino)

quando hospedeiro recebe segmento UDPndash verifica nuacutemero de porta

de destino no segmentondash direciona segmento UDP

para socket com esse nuacutemero de porta

datagramas IP com diferentes endereccedilos IP de origem eou nuacutemeros de porta de origem direcionados para o mesmo socket

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 10

Demultiplexaccedilatildeo natildeo orientada para conexatildeo

socket UDP identificado por tupla de dois elementos

(endereccedilo IP destino nuacutemero porta destino)

ClienteIPB

P2

cliente IP A

P1P1P3

servidorIP C

DP 9157

DP 6428

DP 5775

DP 6428

SP 6428

D-IP A

D-IP C

D-IP B

SP 6428

SP 5775

D-IP C

SP oferece ldquoendereccedilo de retornordquo caso necessaacuterio

SP 9157

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 11

Demultiplexaccedilatildeo orientada para conexatildeo

socket TCP identificado por tupla de 4 elementos ndash endereccedilo IP de origemndash nuacutemero de porta de origemndash endereccedilo IP de destinondash nuacutemero de porta de destino

hospedeiro destinataacuterio usa todos os quatro valores para direcionar segmento ao socket apropriado

hospedeiro servidor pode admitir muitos sockets TCP simultacircneosndash cada socket identificado

por sua proacutepria tupla de 4 servidores Web tecircm

diferentes sockets para cada cliente conectandondash HTTP natildeo persistente teraacute

diferentes sockets para cada requisiccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 12

Demultiplexaccedilatildeo orientada para conexatildeo

clienteIPB

P1

cliente IP A

P1P2P4

servidorIP C

SP 9157DP 80

SP 9157DP 80

P5 P6 P3

D-IPCS-IP AD-IPC

S-IP B

SP 5775DP 80

D-IPCS-IP B

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 13

bull O UDP definido no [RFC 768] faz apenas quase tatildeo pouco quanto um protocolo de transporte pode fazer

bull Agrave parte sua funccedilatildeo de multiplexaccedilatildeodemultiplexaccedilatildeo e de alguma verificaccedilatildeo de erros simples ele nada adiciona ao IP

bull Se o desenvolvedor de aplicaccedilatildeo escolher o UDP em vez do TCP a aplicaccedilatildeo estaraacute ldquofalandordquo quase diretamente com o IP

bull O UDP eacute natildeo orientado para conexatildeo Natildeo haacute a apresentaccedilatildeo entre as entidades remetentes e destinataacuterias

Transporte natildeo orientado para conexatildeo UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 14

bull Melhor controle no niacutevel de aplicaccedilatildeo sobre quais dados satildeo enviados e quando menor atraso

bull Natildeo haacute estabelecimento de conexatildeo menor atrasobull Natildeo haacute estados de conexatildeo buffers paracircmetros de

controle de congestionamento nuacutemero de sequecircncia Menor ldquocustordquo

bull Pequeno excesso de cabeccedilalho de pacotes 8 bytes de excesso TCP 20 bytes Menor ldquocustordquo

bull Sem controle de congestionamento do TCP ==gt isso pode implicar em ldquocolapsordquo na rede

bull Eacute possiacutevel uma aplicaccedilatildeo ter transferecircncia confiaacutevel de dados usando UDP

Por que usa-se UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 15

bull Aplicaccedilotildees populares da Internet e seus protocolos de transporte subjacentes

Transporte natildeo orientado para conexatildeo UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 16

bull Estrutura do segmento UDP

Estrutura do segmento UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 17

bull A soma de verificaccedilatildeo UDP serve para detectar erros em todo o segmento

bull Suponha que tenhamos as seguintes trecircs palavras de 16 bits

bull A soma das duas primeiras eacute

bull Adicionando a terceira palavra agrave soma anterior temos

Soma de verificaccedilatildeo UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 18

bull Note que a uacuteltima adiccedilatildeo teve um ldquovai umrdquo no bit mais significativo que foi somado ao bit menos significativo

bull Complemento de 1 0 ==gt 1 1 ==gt 0bull Fazendo o complemento de 1 da soma final

1011010100111101 Esta eacute a soma de verificaccedilatildeobull No destinataacuterio todas as 4 palavras recebidas de 16 bits satildeo

somadas 1111 ==gt Pacote correto algum bit em 0 ==gt algum erro foi introduzido no pacote

bull Por que soma de verificaccedilatildeo no UDPbull Algumas camadas de enlace por exemplo Ethernet fornecem

soma de verificaccedilatildeobull mas nem todas e aleacutem disso um roteador poderia introduzir

algum errobull UDP verifica erros fim a fim

Soma de verificaccedilatildeo UDP

Transport Layer 3-19

Principles of reliable data transfer important in application transport link layers

top-10 list of important networking topics

characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)

Transport Layer 3-20

characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)

Principles of reliable data transfer important in application transport link layers

top-10 list of important networking topics

Transport Layer 3-21

characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)

important in application transport link layers top-10 list of important networking topics

Principles of reliable data transfer

Transport Layer 3-22

sendside

receiveside

rdt_send() called from above (eg by app) Passed data to deliver to receiver upper layer

udt_send() called by rdtto transfer packet over unreliable channel to receiver

rdt_rcv() called when packet arrives on rcv-side of channel

deliver_data() called by rdt to deliver data to upper

Principles of reliable data transfer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 23

vamos desenvolver de forma incremental os lados remetente e destinataacuterio do

protocolo de transferecircncia confiaacutevel de dados (rdt) considerar apenas a transf de dados unidirecional Bidirecional eacute soacute

duplicar a estruturandash mas informaccedilotildees de controle fluiratildeo nas duas direccedilotildees

usar maacutequinas de estado finito (FSM) para especificar remetente e destinataacuterio

estado1

estado2

evento causando transiccedilatildeo de estadoaccedilotildees tomadas sobre transiccedilatildeo de estado

estado quando neste ldquoestadordquo proacuteximo

estado determinadoexclusivamente pelo

proacuteximo evento

eventoaccedilotildees

Transferecircncia confiaacutevel de dados introduccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 24

bull rdt10 ndash Um protocolo para um canal completamente confiaacutevel

Transferecircncia confiaacutevel de dados sobre um canal perfeitamente confiaacutevel rdt10

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 25

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt20

rdt20 ndash Um protocolo para um canal com erros de bits Base dos protocolos ARQ (Automatic Repeat Request)

Detecccedilatildeo de erros (mecanismo do UDP)

Realimentaccedilatildeo do destinataacuterio (ACK ou NACK)

Retransmissatildeobull Pare e espere

Transport Layer 3-26

rdt20 FSM specification

Wait for call from above

sndpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from belowsender

receiverrdt_send(data)

Transport Layer 3-27

rdt20 operation with no errors

Wait for call from above

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from below

rdt_send(data)

Transport Layer 3-28

rdt20 error scenario

Wait for call from above

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from below

rdt_send(data)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 29

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt20

bull O que acontece se o pacote ACK ou NAK estiver corrompido

bull Vamos considerar trecircs possibilidade para ACKs ou NAKs corrompidos1 Ser humano -- A ldquoditadordquo B ldquoOKrdquo ou ldquoRepita por favorrdquo ==gt

A natildeo entende ldquoO que foi que vocecirc disserdquo infinito Peacutessimo2 Bits de soma de verificaccedilatildeo de tal modo que permita ao remetente a

recuperaccedilatildeo de erros de bits Muito bom mas serve somente para canais com erro de bits e natildeo perda de pacotes

3 O Remetente reenvia o pacote de dados corrente quando receber um pacote ACK ou NAK truncado ==gt pode gerar pacotes duplicados Como o destinataacuterio sabe se o pacote conteacutem novos dados ou eacute uma retransmissatildeo ==gt nuacutemero de sequecircncia

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 30

bull rdt21 remetente

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 31

bull rdt21 destinataacuterio

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 32

bull O protocolo rdt21 usa tanto o reconhecimento positivo como negativo do remetente ao destinataacuterio pacote fora de ordem ==gt ACK pacote corrompido ==gt NAK

bull Podemos conseguir o mesmo efeito se ao inveacutes de enviarmos um NAK enviarmos um ACK do uacuteltimo corretamente recebido Ou seja ACK tambeacutem numerado

bull ACKs duplicados indicam ao remetente que o destinataacuterio natildeo recebeu corretamente o pacote seguinte agravequele do ACK duplo

bull rdt22 deve enviar o nuacutemero de sequecircncia no ACK

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21-2

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 33

bull rdt22 remetente

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt22

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 34

bull rdt22 destinataacuterio

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt22

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 35

bull Duas preocupaccedilotildees adicionais devem ser tratadas pelo protocolo1 Como detectar perda de pacotes2 O que fazer quando haacute perdas

bull As teacutecnicas jaacute discutidas atendem a segunda questatildeobull E para a primeira questatildeobull Suponha que o remetente transmita um pacote e que esse

pacote ou seu ACK seja perdido Nenhuma resposta chegaraacute ao remetente Se o remetente natildeo quiser esperar ==gt retransmite o pacote

bull Mas quanto o remetente precisa esperar para ter certeza que algo foi perdido Esperar um RTT Eacute muito difiacutecil estimar o RTT quanto mais ter certeza

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 36

bull Aleacutem disso o ideal seria que o protocolo se recuperasse da perda assim que possiacutevel

bull Na praacutetica O remetente faz uma escolha ponderada de um RTT provaacutevel mas natildeo

garantido que a perda tivesse acontecido Se natildeo receber um ACK nesse periacuteodo retransmite o pacote

bull Se o pacote sofrer um atraso longo pode haver retransmissatildeo mesmo que o pacote ou ACK natildeo tenham sido perdidos Possibilidade de pacotes de dados duplicados

bull Para implementar um mecanismo de retransmissatildeo com base no tempo eacute necessaacuterio um temporizador de contagem regressiva Accedilotildees iniciar atender parar

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 37

bull rdt30 remetente

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Transport Layer 3-38

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

pkt1

ack1

ack0

ack0

(a) no loss

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(b) packet loss

pkt1X

loss

pkt1timeout

resend pkt1

rdt30 in action

Transport Layer 3-39

rdt30 in action

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(c) ACK loss

ack1X

loss

pkt1timeout

resend pkt1

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

send ack0rcv ack0

send pkt1

send pkt0rcv pkt0

pkt0

ack0

(d) premature timeout delayed ACK

pkt1timeout

resend pkt1

ack1

send ack1

send pkt0rcv ack1

pkt0

ack1

ack0

send pkt0rcv ack1 pkt0

rcv pkt0send ack0ack0

rcv pkt0

send ack0(detect duplicate)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 42

bull No coraccedilatildeo do problema do desempenho do rdt30 estaacute o fato de ele ser um protocolo do tipo pare e espere

bull Um protocolo pare e espere em operaccedilatildeo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 43

U remet =

0008

30008 = 000027

microseconds

L R RTT + L R

=

Desempenho do rdt30

rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso pacote 8000 bits

U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando

Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps protocolo de rede limita uso de recursos fiacutesicos Soluccedilatildeo

ndosmicrosseguR

Ldtrans 8

bps10

bits80009

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 44

Um protocolo com paralelismo em operaccedilatildeo

bull O ACK recebido eacute de que pacote

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 45

bull Envio com pare e espere

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 46

bull Envio com paralelismo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Aumento de utilizaccedilatildeopor fator de 3

U remet =

0024 30008

= 00008 microseconds

3 L R RTT + L R

=

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 47

bull Em um protocolo Go-Back-N (GBN) o remetente eacute autorizado a transmitir muacuteltiplos pacotes sem esperar por um reconhecimento

bull Poreacutem fica limitado a ter natildeo mais do que algum nuacutemero maacuteximo permitido N (tamanho da janela) de pacotes natildeo reconhecidos na ldquotubulaccedilatildeordquo

bull Visatildeo do remetente para os nuacutemeros de sequecircncia no protocolo Go-Back-N

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 48

bull Descriccedilatildeo da FSM estendida do remetente GBNbull Quem consegue descrever o funcionamento

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 49

bull Descriccedilatildeo da FSM estendida do destinataacuterio GBN

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 50

Go-Back-N (GBN) em operaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 51

bull Protocolos de repeticcedilatildeo seletiva (SR) evitam retransmissotildees desnecessaacuterias

bull Eles fazem o remetente retransmitir apenas os pacotes suspeitos de terem sido recebidos com erro no destinataacuterio

bull Essa retransmissatildeo individual soacute quando necessaacuteria exige que o destinataacuterio reconheccedila individualmente os pacotes recebidos de modo correto

Repeticcedilatildeo seletiva (SR)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 52

Repeticcedilatildeo seletiva (SR)

Transport Layer 3-53

Selective repeatdilemma

example seq rsquos 0 1 2 3 window size=3

receiver window(after receipt)

sender window(after receipt)

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2 pkt0

timeoutretransmit pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2XXX

will accept packetwith seq number 0

(b) oops

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

X

will accept packetwith seq number 0

0 1 2 3 0 1 2 pkt3

(a) no problem

receiver canrsquot see sender sidereceiver behavior identical in both casessomethingrsquos (very) wrong

receiver sees no difference in two scenarios

duplicate data accepted as new in (b)

Q what relationship between seq size and window size to avoid problem in (b)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 54

Resumo de mecanismos de transferecircncia confiaacutevel de dados e sua utilizaccedilatildeo

bull Soma de verificaccedilatildeo - Usada para detectar erros de bits em um pacote transmitido

bull Temporizador - Usado para controlar a temporizaccedilatildeoretransmissatildeo de um pacote possivelmente porque o pacote (ou seu ACK) foi perdido dentro do canal

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 55

bull Nuacutemero de sequecircncia - Usado para numeraccedilatildeo sequencial de segmentos de dados que transitam do remetente ao destinataacuterio Ou seja pode-se ter vaacuterios segmentos transitando simultaneamente no canal de comunicaccedilatildeo maximizando assim o uso desse canal

bull Reconhecimento - Usado pelo destinataacuterio para avisar o remetente que um pacote ou conjunto de pacotes foi recebido corretamente

bull Janela paralelismo - O remetente pode ficar restrito a enviar somente pacotes com nuacutemeros de sequecircncia que caiam dentro de uma determinada faixa

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 56

bull Uma conexatildeo TCP provecirc um serviccedilo full-duplex

bull A conexatildeo TCP eacute sempre ponto a ponto

bull Uma vez estabelecida uma conexatildeo TCP dois processos de aplicaccedilatildeo podem enviar dados um para o outro 3-way handshake jaacute estabelecendo o MSS

bull O TCP combina cada porccedilatildeo de dados do cliente com um cabeccedilalho TCP formando assim segmentos TCP

A conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 57

Estrutura do segmento TCPURG dados urgentes

(quase natildeo usado)

ACK ACKvaacutelido

PSH empurrar dados agora

RST SYN FINestab conexatildeo

soma de verificaccedilatildeo

da Internet ndash todo o segmento(como em UDP)

bytes destinataacuteriopode aceitar

contagem porbytes de dados(natildeo segmentos)

Opcional e de comprimentovariaacutevel utilizado paranegociar o MSS ou fatorde escala em redes dealta velocidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 58

TCP Estabelecendo e fechando conexotildees

3-way handshakeFinalizando

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 59

s sequecircncia e ACKs do TCP

Cenaacuterio preestabelecido telnet simples

rsquos de sequecircnciandash ldquonuacutemerordquo na cadeia de

bytes do 1o byte nos dados do segmento

ACKsndash seq do proacuteximo byte

esperado do outro ladondash ACK cumulativo

P como o destinataacuterio trata segmentos fora de ordem

ndash R TCP natildeo diz ndash a criteacuterio do implementador

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 60

Tempo de ida e volta e timeout do TCP

P Como definir o valor de timeout do TCP

maior que RTTndash mas RTT varia

muito curto timeout prematurondash retransmissotildees

desnecessaacuterias muito longo baixa

reaccedilatildeo a perda de segmento

P Como estimar o RTT SampleRTT tempo medido

da transmissatildeo do segmento ateacute receber o ACKndash ignora retransmissotildees

SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquondash meacutedia de vaacuterias mediccedilotildees

recentes natildeo apenas SampleRTT atual

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 61

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui exponencialmente

raacutepido valor tiacutepico = 0125

Tempo de ida e volta e timeout do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 62

Amostras de RTTs estimados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 63

definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(geralmente = 025)

depois definir intervalo de timeout

Tempo de ida e volta e timeout do TCP

TimeoutIntervalinicial

= 1 sldquomargem de seguranccedilardquo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 64

TCP cenaacuterios de retransmissatildeo

Hosp A

Seq = 100 20 bytes dados

ACK = 100

tempoTimeout prematuro

Hosp B

Seq = 92 8 bytes dados

ACK = 120

Seq = 92 8 bytes dados

Seq

= 9

2 tim

eout

ACK = 120

Hosp A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio de ACK perdido

Hosp B

X

Seq = 92 8 bytes dados

ACK = 100

tempoS

eq =

92

timeo

ut

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 65

TCP cenaacuterios de retransmissatildeo

Host A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio ACK cumulativo

Host B

X

Seq = 100 20 bytes dados

ACK = 120

tempo

Transport Layer 3-66

TCP fast retransmit time-out period

often relatively long long delay before

resending lost packet detect lost

segments via duplicate ACKs sender often sends

many segments back-to-back

if segment is lost there will likely be many duplicate ACKs

if sender receives 3 ACKs for same data(ldquotriple duplicate ACKsrdquo) resend unacked segment with smallest seq

likely that unacked segment lost so donrsquot wait for timeout

TCP fast retransmit

Transport Layer 3-67

X

fast retransmit after sender receipt of triple duplicate ACK

Host BHost A

Seq=92 8 bytes of data

ACK=100

timeo

ut ACK=100

ACK=100

ACK=100

TCP fast retransmit

Seq=100 20 bytes of data

Seq=100 20 bytes of data

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 69

bull O nuacutemero de sequecircncia para um segmento eacute o nuacutemero do primeiro byte do segmento

bull O nuacutemero de reconhecimento que o hospedeiro A atribui a seu segmento eacute o nuacutemero de sequecircncia do proacuteximo byte que ele estiver aguardando do hospedeiro B

bull Como o TCP somente reconhece bytes ateacute o primeiro byte que estiver faltando na cadeia dizemos que o TCP provecirc reconhecimentos cumulativos

Nuacutemeros de sequecircncia e nuacutemeros de reconhecimento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 70

bull O TCP cria um serviccedilo de transferecircncia confiaacutevel de dados sobre o serviccedilo de melhor esforccedilo do IP

bull O serviccedilo de transferecircncia garante que a cadeia de bytes eacute idecircntica agrave cadeia de bytes enviada pelo sistema final que estaacute do outro lado da conexatildeo

bull Os procedimentos recomendados no [RFC 6298] para gerenciamento de temporizadores TCP utilizam apenas um uacutenico temporizador de retransmissatildeo

Transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 71

bull O TCP provecirc um serviccedilo de controle de fluxo agraves suas aplicaccedilotildees para eliminar a possibilidade de o remetente estourar o buffer do destinataacuterio

bull Controle de fluxo eacute um serviccedilo de compatibilizaccedilatildeo de velocidades

bull O TCP oferece serviccedilo de controle de fluxo fazendo que o remetente mantenha uma variaacutevel denominada janela de recepccedilatildeo

Controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 72

Regulaccedilatildeo da taxa de envio

Uma rede de transmissatildeo raacutepida eum receptor de baixa capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 73

Controle de fluxo TCP

lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo

serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora

processo da aplicaccedilatildeo pode ser lento na leitura do buffer

remetente natildeo estouraraacute buffer do destinataacuterio transmitindo muitos dados muito rapidamente

controle de fluxo

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 74

Controle de fluxo TCP como funciona

(suponha que destinataacuterio TCP descarte segmentos fora de ordem)

espaccedilo de buffer natildeo usado = rwnd (slide 48) = RcvBuffer-[LastByteRcvd -

LastByteRead]

destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento

remetente limita de bytes com ACK a rwndndash garante que buffer do

destinataacuterio natildeo estoura

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

rwndRcvBuffer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 75

Gerenciamento da conexatildeo TCP

lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados

inicializa variaacuteveis TCPndash s seqndash buffers informaccedilatildeo de

controle de fluxo (p e RcvWindow)

cliente inicia a conexatildeo Socket clientSocket = new

Socket(hostnameport ) servidor contactado pelo

cliente Socket connectionSocket =

welcomeSocketaccept()

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 76

Gerenciamento da conexatildeo TCP

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 77

fechando uma conexatildeo

cliente fecha socket clientSocketclose()

etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor

etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN

cliente

FIN

servidor

ACK

ACK

FIN

fecha

fecha

fechado

espe

ra

tem

poriz

ada

Gerenciamento da conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 79

Controle de congestionamento

Uma rede de transmissatildeo lenta eum receptor de alta capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 80

bull As causas e os custos do congestionamento

Cenaacuterio de congestionamento 1 duas conexotildees compartilhando um uacutenico roteador com nuacutemero infinito de buffers

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 81

bull As causas e os custos do congestionamentoCenaacuterio de congestionamento 1 vazatildeo e atraso em funccedilatildeo da taxa de envio do hospedeiro

ldquocustosrdquo do congestionamento Aumento de atrasos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 82

bull As causas e os custos do congestionamento

Cenaacuterio 2 dois hospedeiros (com retransmissotildees) e um roteador com buffers finitos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 83

a) Caso ideal (vazatildeo)

b) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda

c) retransmissatildeo do pacote adiado (natildeo perdido) torna maior (que

o caso perfeito ) para o mesmo

in

out

=

in

out

gt

in

out

ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do

pacote

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 84

bull As causas e os custos do congestionamento

Cenaacuterio 3 quatro remetentesroteadores com buffers finitos e trajetos com muacuteltiplos roteadores

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 85

outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer capacidade

de transmissatildeo anterior usada para esse pacote foi desperdiccedilada

Host A

Host B

o

u

t

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 86

Controle de congestionamento fim a fim

bull A camada de rede natildeo fornece nenhum suporte expliacutecito agrave camada de transporte com a finalidade de controle de congestionamento

Controle de congestionamento assistido pela rede

bull Os componentes da camada de rede (isto eacute roteadores) fornecem retroalimentaccedilatildeo especiacutefica de informaccedilotildees ao remetente a respeito do estado de congestionamento na rede Natildeo usual

Mecanismos de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 87

bull A abordagem adotada pelo TCP eacute obrigar cada remetente a limitar a taxa agrave qual enviam traacutefego para sua conexatildeo como uma funccedilatildeo do congestionamento de rede percebido

Se um remetente TCP perceber que haacute pouco congestionamento no caminho entre ele e o destinataacuterio aumentaraacute sua taxa de envio

Se perceber que haacute congestionamento reduziraacute sua taxa de

envio

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 88

bull Mas essa abordagem levanta trecircs questotildees

1 Como um remetente TCP limita a taxa pela qual envia traacutefego para sua conexatildeo

2 Como um remetente TCP percebe que haacute congestionamento entre ele e o destinataacuterio

3 Que algoritmo o remetente deve utilizar para modificar sua taxa de envio como uma funccedilatildeo do congestionamento fim a fim percebido

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 89

bull Partida lenta TCP

Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 90

1) Cwnd = 1 MSS inicialmente

2) Partida lenta a cada rodada redefine cwnd = cwnd 2

3) Perda de pacotes (esgotamento de temporizaccedilatildeo ndash problema grave) ==gt cwnd = 1 (Tahoe ou Reno)

4) Prevenccedilatildeo de congestionamento apoacutes atingir sstresh cwnd = cwnd + 1

5) Trecircs acks duplicados (buraco no ldquofluxordquo ndash problema brando) entra no estado prevenccedilatildeo de congestionamento e redefine cwnd = 1 (Tahoe) ou cwnd = sstresh (Reno)

6) Sstresh = cwnd2 quando satildeo detectados problemas

Quantidade de dados natildeo reconhecidas no TCP = min(CongWin RecWin)

Controle de congestionamento TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 91

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 93

bull Evoluccedilatildeo da janela de congestionamento do TCP (Tahoe e Reno ndash mais usual)

Recuperaccedilatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 94

Controle de congestionamento TCP

Partida lenta seguida por aumento aditivo no TCP Tahoe

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 95

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 96

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 97

bull O controle de congestionamento AIMD (Additive-increase Multiplicative-Decrease) faz surgir o comportamento semelhante a ldquodentes de serrardquo

bull httpsmediapearsoncmgcomawecs_kurose_compnetwork_7cwcontentinteractiveanimationstcp-congestionindexhtml

Controle de congestionamento no TCP retrospectiva

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 98

O que eacute throughput meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughput meacutedio 075 WRTT (75 WRTT)

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 99

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (Probabilidade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 100

bull Duas conexotildees TCP compartilhando um uacutenico enlace congestionado

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 101

bull Vazatildeo alcanccedilada pelas conexotildees TCP 1 e TCP 2bull Ambas conexotildees em algum momento estatildeo com vazatildeo Abull Ambas vatildeo aumentando a vazatildeo ateacute ocorrer perda ndash Bbull Sstresh cai pela metade e ambas migram para Chellip

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 102

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

ndash Consequecircncia

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Nova aplicaccedilatildeo pede 1 TCP obteacutem taxa de R10 Nova aplicaccedilatildeo pede 11 TCPs obteacutem R2

Equidade

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Multiplexingdemultiplexing
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Principles of reliable data transfer
  • Slide 20
  • Slide 21
  • Reliable data transfer getting started
  • Slide 23
  • Slide 24
  • Slide 25
  • rdt20 FSM specification
  • rdt20 operation with no errors
  • rdt20 error scenario
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • rdt30 in action
  • Slide 39
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Selective repeat dilemma
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • TCP fast retransmit
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
Page 9: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 10

Demultiplexaccedilatildeo natildeo orientada para conexatildeo

socket UDP identificado por tupla de dois elementos

(endereccedilo IP destino nuacutemero porta destino)

ClienteIPB

P2

cliente IP A

P1P1P3

servidorIP C

DP 9157

DP 6428

DP 5775

DP 6428

SP 6428

D-IP A

D-IP C

D-IP B

SP 6428

SP 5775

D-IP C

SP oferece ldquoendereccedilo de retornordquo caso necessaacuterio

SP 9157

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 11

Demultiplexaccedilatildeo orientada para conexatildeo

socket TCP identificado por tupla de 4 elementos ndash endereccedilo IP de origemndash nuacutemero de porta de origemndash endereccedilo IP de destinondash nuacutemero de porta de destino

hospedeiro destinataacuterio usa todos os quatro valores para direcionar segmento ao socket apropriado

hospedeiro servidor pode admitir muitos sockets TCP simultacircneosndash cada socket identificado

por sua proacutepria tupla de 4 servidores Web tecircm

diferentes sockets para cada cliente conectandondash HTTP natildeo persistente teraacute

diferentes sockets para cada requisiccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 12

Demultiplexaccedilatildeo orientada para conexatildeo

clienteIPB

P1

cliente IP A

P1P2P4

servidorIP C

SP 9157DP 80

SP 9157DP 80

P5 P6 P3

D-IPCS-IP AD-IPC

S-IP B

SP 5775DP 80

D-IPCS-IP B

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 13

bull O UDP definido no [RFC 768] faz apenas quase tatildeo pouco quanto um protocolo de transporte pode fazer

bull Agrave parte sua funccedilatildeo de multiplexaccedilatildeodemultiplexaccedilatildeo e de alguma verificaccedilatildeo de erros simples ele nada adiciona ao IP

bull Se o desenvolvedor de aplicaccedilatildeo escolher o UDP em vez do TCP a aplicaccedilatildeo estaraacute ldquofalandordquo quase diretamente com o IP

bull O UDP eacute natildeo orientado para conexatildeo Natildeo haacute a apresentaccedilatildeo entre as entidades remetentes e destinataacuterias

Transporte natildeo orientado para conexatildeo UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 14

bull Melhor controle no niacutevel de aplicaccedilatildeo sobre quais dados satildeo enviados e quando menor atraso

bull Natildeo haacute estabelecimento de conexatildeo menor atrasobull Natildeo haacute estados de conexatildeo buffers paracircmetros de

controle de congestionamento nuacutemero de sequecircncia Menor ldquocustordquo

bull Pequeno excesso de cabeccedilalho de pacotes 8 bytes de excesso TCP 20 bytes Menor ldquocustordquo

bull Sem controle de congestionamento do TCP ==gt isso pode implicar em ldquocolapsordquo na rede

bull Eacute possiacutevel uma aplicaccedilatildeo ter transferecircncia confiaacutevel de dados usando UDP

Por que usa-se UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 15

bull Aplicaccedilotildees populares da Internet e seus protocolos de transporte subjacentes

Transporte natildeo orientado para conexatildeo UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 16

bull Estrutura do segmento UDP

Estrutura do segmento UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 17

bull A soma de verificaccedilatildeo UDP serve para detectar erros em todo o segmento

bull Suponha que tenhamos as seguintes trecircs palavras de 16 bits

bull A soma das duas primeiras eacute

bull Adicionando a terceira palavra agrave soma anterior temos

Soma de verificaccedilatildeo UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 18

bull Note que a uacuteltima adiccedilatildeo teve um ldquovai umrdquo no bit mais significativo que foi somado ao bit menos significativo

bull Complemento de 1 0 ==gt 1 1 ==gt 0bull Fazendo o complemento de 1 da soma final

1011010100111101 Esta eacute a soma de verificaccedilatildeobull No destinataacuterio todas as 4 palavras recebidas de 16 bits satildeo

somadas 1111 ==gt Pacote correto algum bit em 0 ==gt algum erro foi introduzido no pacote

bull Por que soma de verificaccedilatildeo no UDPbull Algumas camadas de enlace por exemplo Ethernet fornecem

soma de verificaccedilatildeobull mas nem todas e aleacutem disso um roteador poderia introduzir

algum errobull UDP verifica erros fim a fim

Soma de verificaccedilatildeo UDP

Transport Layer 3-19

Principles of reliable data transfer important in application transport link layers

top-10 list of important networking topics

characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)

Transport Layer 3-20

characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)

Principles of reliable data transfer important in application transport link layers

top-10 list of important networking topics

Transport Layer 3-21

characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)

important in application transport link layers top-10 list of important networking topics

Principles of reliable data transfer

Transport Layer 3-22

sendside

receiveside

rdt_send() called from above (eg by app) Passed data to deliver to receiver upper layer

udt_send() called by rdtto transfer packet over unreliable channel to receiver

rdt_rcv() called when packet arrives on rcv-side of channel

deliver_data() called by rdt to deliver data to upper

Principles of reliable data transfer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 23

vamos desenvolver de forma incremental os lados remetente e destinataacuterio do

protocolo de transferecircncia confiaacutevel de dados (rdt) considerar apenas a transf de dados unidirecional Bidirecional eacute soacute

duplicar a estruturandash mas informaccedilotildees de controle fluiratildeo nas duas direccedilotildees

usar maacutequinas de estado finito (FSM) para especificar remetente e destinataacuterio

estado1

estado2

evento causando transiccedilatildeo de estadoaccedilotildees tomadas sobre transiccedilatildeo de estado

estado quando neste ldquoestadordquo proacuteximo

estado determinadoexclusivamente pelo

proacuteximo evento

eventoaccedilotildees

Transferecircncia confiaacutevel de dados introduccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 24

bull rdt10 ndash Um protocolo para um canal completamente confiaacutevel

Transferecircncia confiaacutevel de dados sobre um canal perfeitamente confiaacutevel rdt10

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 25

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt20

rdt20 ndash Um protocolo para um canal com erros de bits Base dos protocolos ARQ (Automatic Repeat Request)

Detecccedilatildeo de erros (mecanismo do UDP)

Realimentaccedilatildeo do destinataacuterio (ACK ou NACK)

Retransmissatildeobull Pare e espere

Transport Layer 3-26

rdt20 FSM specification

Wait for call from above

sndpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from belowsender

receiverrdt_send(data)

Transport Layer 3-27

rdt20 operation with no errors

Wait for call from above

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from below

rdt_send(data)

Transport Layer 3-28

rdt20 error scenario

Wait for call from above

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from below

rdt_send(data)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 29

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt20

bull O que acontece se o pacote ACK ou NAK estiver corrompido

bull Vamos considerar trecircs possibilidade para ACKs ou NAKs corrompidos1 Ser humano -- A ldquoditadordquo B ldquoOKrdquo ou ldquoRepita por favorrdquo ==gt

A natildeo entende ldquoO que foi que vocecirc disserdquo infinito Peacutessimo2 Bits de soma de verificaccedilatildeo de tal modo que permita ao remetente a

recuperaccedilatildeo de erros de bits Muito bom mas serve somente para canais com erro de bits e natildeo perda de pacotes

3 O Remetente reenvia o pacote de dados corrente quando receber um pacote ACK ou NAK truncado ==gt pode gerar pacotes duplicados Como o destinataacuterio sabe se o pacote conteacutem novos dados ou eacute uma retransmissatildeo ==gt nuacutemero de sequecircncia

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 30

bull rdt21 remetente

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 31

bull rdt21 destinataacuterio

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 32

bull O protocolo rdt21 usa tanto o reconhecimento positivo como negativo do remetente ao destinataacuterio pacote fora de ordem ==gt ACK pacote corrompido ==gt NAK

bull Podemos conseguir o mesmo efeito se ao inveacutes de enviarmos um NAK enviarmos um ACK do uacuteltimo corretamente recebido Ou seja ACK tambeacutem numerado

bull ACKs duplicados indicam ao remetente que o destinataacuterio natildeo recebeu corretamente o pacote seguinte agravequele do ACK duplo

bull rdt22 deve enviar o nuacutemero de sequecircncia no ACK

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21-2

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 33

bull rdt22 remetente

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt22

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 34

bull rdt22 destinataacuterio

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt22

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 35

bull Duas preocupaccedilotildees adicionais devem ser tratadas pelo protocolo1 Como detectar perda de pacotes2 O que fazer quando haacute perdas

bull As teacutecnicas jaacute discutidas atendem a segunda questatildeobull E para a primeira questatildeobull Suponha que o remetente transmita um pacote e que esse

pacote ou seu ACK seja perdido Nenhuma resposta chegaraacute ao remetente Se o remetente natildeo quiser esperar ==gt retransmite o pacote

bull Mas quanto o remetente precisa esperar para ter certeza que algo foi perdido Esperar um RTT Eacute muito difiacutecil estimar o RTT quanto mais ter certeza

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 36

bull Aleacutem disso o ideal seria que o protocolo se recuperasse da perda assim que possiacutevel

bull Na praacutetica O remetente faz uma escolha ponderada de um RTT provaacutevel mas natildeo

garantido que a perda tivesse acontecido Se natildeo receber um ACK nesse periacuteodo retransmite o pacote

bull Se o pacote sofrer um atraso longo pode haver retransmissatildeo mesmo que o pacote ou ACK natildeo tenham sido perdidos Possibilidade de pacotes de dados duplicados

bull Para implementar um mecanismo de retransmissatildeo com base no tempo eacute necessaacuterio um temporizador de contagem regressiva Accedilotildees iniciar atender parar

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 37

bull rdt30 remetente

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Transport Layer 3-38

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

pkt1

ack1

ack0

ack0

(a) no loss

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(b) packet loss

pkt1X

loss

pkt1timeout

resend pkt1

rdt30 in action

Transport Layer 3-39

rdt30 in action

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(c) ACK loss

ack1X

loss

pkt1timeout

resend pkt1

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

send ack0rcv ack0

send pkt1

send pkt0rcv pkt0

pkt0

ack0

(d) premature timeout delayed ACK

pkt1timeout

resend pkt1

ack1

send ack1

send pkt0rcv ack1

pkt0

ack1

ack0

send pkt0rcv ack1 pkt0

rcv pkt0send ack0ack0

rcv pkt0

send ack0(detect duplicate)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 42

bull No coraccedilatildeo do problema do desempenho do rdt30 estaacute o fato de ele ser um protocolo do tipo pare e espere

bull Um protocolo pare e espere em operaccedilatildeo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 43

U remet =

0008

30008 = 000027

microseconds

L R RTT + L R

=

Desempenho do rdt30

rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso pacote 8000 bits

U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando

Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps protocolo de rede limita uso de recursos fiacutesicos Soluccedilatildeo

ndosmicrosseguR

Ldtrans 8

bps10

bits80009

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 44

Um protocolo com paralelismo em operaccedilatildeo

bull O ACK recebido eacute de que pacote

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 45

bull Envio com pare e espere

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 46

bull Envio com paralelismo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Aumento de utilizaccedilatildeopor fator de 3

U remet =

0024 30008

= 00008 microseconds

3 L R RTT + L R

=

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 47

bull Em um protocolo Go-Back-N (GBN) o remetente eacute autorizado a transmitir muacuteltiplos pacotes sem esperar por um reconhecimento

bull Poreacutem fica limitado a ter natildeo mais do que algum nuacutemero maacuteximo permitido N (tamanho da janela) de pacotes natildeo reconhecidos na ldquotubulaccedilatildeordquo

bull Visatildeo do remetente para os nuacutemeros de sequecircncia no protocolo Go-Back-N

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 48

bull Descriccedilatildeo da FSM estendida do remetente GBNbull Quem consegue descrever o funcionamento

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 49

bull Descriccedilatildeo da FSM estendida do destinataacuterio GBN

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 50

Go-Back-N (GBN) em operaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 51

bull Protocolos de repeticcedilatildeo seletiva (SR) evitam retransmissotildees desnecessaacuterias

bull Eles fazem o remetente retransmitir apenas os pacotes suspeitos de terem sido recebidos com erro no destinataacuterio

bull Essa retransmissatildeo individual soacute quando necessaacuteria exige que o destinataacuterio reconheccedila individualmente os pacotes recebidos de modo correto

Repeticcedilatildeo seletiva (SR)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 52

Repeticcedilatildeo seletiva (SR)

Transport Layer 3-53

Selective repeatdilemma

example seq rsquos 0 1 2 3 window size=3

receiver window(after receipt)

sender window(after receipt)

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2 pkt0

timeoutretransmit pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2XXX

will accept packetwith seq number 0

(b) oops

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

X

will accept packetwith seq number 0

0 1 2 3 0 1 2 pkt3

(a) no problem

receiver canrsquot see sender sidereceiver behavior identical in both casessomethingrsquos (very) wrong

receiver sees no difference in two scenarios

duplicate data accepted as new in (b)

Q what relationship between seq size and window size to avoid problem in (b)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 54

Resumo de mecanismos de transferecircncia confiaacutevel de dados e sua utilizaccedilatildeo

bull Soma de verificaccedilatildeo - Usada para detectar erros de bits em um pacote transmitido

bull Temporizador - Usado para controlar a temporizaccedilatildeoretransmissatildeo de um pacote possivelmente porque o pacote (ou seu ACK) foi perdido dentro do canal

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 55

bull Nuacutemero de sequecircncia - Usado para numeraccedilatildeo sequencial de segmentos de dados que transitam do remetente ao destinataacuterio Ou seja pode-se ter vaacuterios segmentos transitando simultaneamente no canal de comunicaccedilatildeo maximizando assim o uso desse canal

bull Reconhecimento - Usado pelo destinataacuterio para avisar o remetente que um pacote ou conjunto de pacotes foi recebido corretamente

bull Janela paralelismo - O remetente pode ficar restrito a enviar somente pacotes com nuacutemeros de sequecircncia que caiam dentro de uma determinada faixa

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 56

bull Uma conexatildeo TCP provecirc um serviccedilo full-duplex

bull A conexatildeo TCP eacute sempre ponto a ponto

bull Uma vez estabelecida uma conexatildeo TCP dois processos de aplicaccedilatildeo podem enviar dados um para o outro 3-way handshake jaacute estabelecendo o MSS

bull O TCP combina cada porccedilatildeo de dados do cliente com um cabeccedilalho TCP formando assim segmentos TCP

A conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 57

Estrutura do segmento TCPURG dados urgentes

(quase natildeo usado)

ACK ACKvaacutelido

PSH empurrar dados agora

RST SYN FINestab conexatildeo

soma de verificaccedilatildeo

da Internet ndash todo o segmento(como em UDP)

bytes destinataacuteriopode aceitar

contagem porbytes de dados(natildeo segmentos)

Opcional e de comprimentovariaacutevel utilizado paranegociar o MSS ou fatorde escala em redes dealta velocidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 58

TCP Estabelecendo e fechando conexotildees

3-way handshakeFinalizando

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 59

s sequecircncia e ACKs do TCP

Cenaacuterio preestabelecido telnet simples

rsquos de sequecircnciandash ldquonuacutemerordquo na cadeia de

bytes do 1o byte nos dados do segmento

ACKsndash seq do proacuteximo byte

esperado do outro ladondash ACK cumulativo

P como o destinataacuterio trata segmentos fora de ordem

ndash R TCP natildeo diz ndash a criteacuterio do implementador

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 60

Tempo de ida e volta e timeout do TCP

P Como definir o valor de timeout do TCP

maior que RTTndash mas RTT varia

muito curto timeout prematurondash retransmissotildees

desnecessaacuterias muito longo baixa

reaccedilatildeo a perda de segmento

P Como estimar o RTT SampleRTT tempo medido

da transmissatildeo do segmento ateacute receber o ACKndash ignora retransmissotildees

SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquondash meacutedia de vaacuterias mediccedilotildees

recentes natildeo apenas SampleRTT atual

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 61

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui exponencialmente

raacutepido valor tiacutepico = 0125

Tempo de ida e volta e timeout do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 62

Amostras de RTTs estimados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 63

definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(geralmente = 025)

depois definir intervalo de timeout

Tempo de ida e volta e timeout do TCP

TimeoutIntervalinicial

= 1 sldquomargem de seguranccedilardquo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 64

TCP cenaacuterios de retransmissatildeo

Hosp A

Seq = 100 20 bytes dados

ACK = 100

tempoTimeout prematuro

Hosp B

Seq = 92 8 bytes dados

ACK = 120

Seq = 92 8 bytes dados

Seq

= 9

2 tim

eout

ACK = 120

Hosp A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio de ACK perdido

Hosp B

X

Seq = 92 8 bytes dados

ACK = 100

tempoS

eq =

92

timeo

ut

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 65

TCP cenaacuterios de retransmissatildeo

Host A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio ACK cumulativo

Host B

X

Seq = 100 20 bytes dados

ACK = 120

tempo

Transport Layer 3-66

TCP fast retransmit time-out period

often relatively long long delay before

resending lost packet detect lost

segments via duplicate ACKs sender often sends

many segments back-to-back

if segment is lost there will likely be many duplicate ACKs

if sender receives 3 ACKs for same data(ldquotriple duplicate ACKsrdquo) resend unacked segment with smallest seq

likely that unacked segment lost so donrsquot wait for timeout

TCP fast retransmit

Transport Layer 3-67

X

fast retransmit after sender receipt of triple duplicate ACK

Host BHost A

Seq=92 8 bytes of data

ACK=100

timeo

ut ACK=100

ACK=100

ACK=100

TCP fast retransmit

Seq=100 20 bytes of data

Seq=100 20 bytes of data

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 69

bull O nuacutemero de sequecircncia para um segmento eacute o nuacutemero do primeiro byte do segmento

bull O nuacutemero de reconhecimento que o hospedeiro A atribui a seu segmento eacute o nuacutemero de sequecircncia do proacuteximo byte que ele estiver aguardando do hospedeiro B

bull Como o TCP somente reconhece bytes ateacute o primeiro byte que estiver faltando na cadeia dizemos que o TCP provecirc reconhecimentos cumulativos

Nuacutemeros de sequecircncia e nuacutemeros de reconhecimento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 70

bull O TCP cria um serviccedilo de transferecircncia confiaacutevel de dados sobre o serviccedilo de melhor esforccedilo do IP

bull O serviccedilo de transferecircncia garante que a cadeia de bytes eacute idecircntica agrave cadeia de bytes enviada pelo sistema final que estaacute do outro lado da conexatildeo

bull Os procedimentos recomendados no [RFC 6298] para gerenciamento de temporizadores TCP utilizam apenas um uacutenico temporizador de retransmissatildeo

Transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 71

bull O TCP provecirc um serviccedilo de controle de fluxo agraves suas aplicaccedilotildees para eliminar a possibilidade de o remetente estourar o buffer do destinataacuterio

bull Controle de fluxo eacute um serviccedilo de compatibilizaccedilatildeo de velocidades

bull O TCP oferece serviccedilo de controle de fluxo fazendo que o remetente mantenha uma variaacutevel denominada janela de recepccedilatildeo

Controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 72

Regulaccedilatildeo da taxa de envio

Uma rede de transmissatildeo raacutepida eum receptor de baixa capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 73

Controle de fluxo TCP

lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo

serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora

processo da aplicaccedilatildeo pode ser lento na leitura do buffer

remetente natildeo estouraraacute buffer do destinataacuterio transmitindo muitos dados muito rapidamente

controle de fluxo

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 74

Controle de fluxo TCP como funciona

(suponha que destinataacuterio TCP descarte segmentos fora de ordem)

espaccedilo de buffer natildeo usado = rwnd (slide 48) = RcvBuffer-[LastByteRcvd -

LastByteRead]

destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento

remetente limita de bytes com ACK a rwndndash garante que buffer do

destinataacuterio natildeo estoura

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

rwndRcvBuffer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 75

Gerenciamento da conexatildeo TCP

lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados

inicializa variaacuteveis TCPndash s seqndash buffers informaccedilatildeo de

controle de fluxo (p e RcvWindow)

cliente inicia a conexatildeo Socket clientSocket = new

Socket(hostnameport ) servidor contactado pelo

cliente Socket connectionSocket =

welcomeSocketaccept()

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 76

Gerenciamento da conexatildeo TCP

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 77

fechando uma conexatildeo

cliente fecha socket clientSocketclose()

etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor

etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN

cliente

FIN

servidor

ACK

ACK

FIN

fecha

fecha

fechado

espe

ra

tem

poriz

ada

Gerenciamento da conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 79

Controle de congestionamento

Uma rede de transmissatildeo lenta eum receptor de alta capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 80

bull As causas e os custos do congestionamento

Cenaacuterio de congestionamento 1 duas conexotildees compartilhando um uacutenico roteador com nuacutemero infinito de buffers

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 81

bull As causas e os custos do congestionamentoCenaacuterio de congestionamento 1 vazatildeo e atraso em funccedilatildeo da taxa de envio do hospedeiro

ldquocustosrdquo do congestionamento Aumento de atrasos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 82

bull As causas e os custos do congestionamento

Cenaacuterio 2 dois hospedeiros (com retransmissotildees) e um roteador com buffers finitos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 83

a) Caso ideal (vazatildeo)

b) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda

c) retransmissatildeo do pacote adiado (natildeo perdido) torna maior (que

o caso perfeito ) para o mesmo

in

out

=

in

out

gt

in

out

ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do

pacote

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 84

bull As causas e os custos do congestionamento

Cenaacuterio 3 quatro remetentesroteadores com buffers finitos e trajetos com muacuteltiplos roteadores

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 85

outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer capacidade

de transmissatildeo anterior usada para esse pacote foi desperdiccedilada

Host A

Host B

o

u

t

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 86

Controle de congestionamento fim a fim

bull A camada de rede natildeo fornece nenhum suporte expliacutecito agrave camada de transporte com a finalidade de controle de congestionamento

Controle de congestionamento assistido pela rede

bull Os componentes da camada de rede (isto eacute roteadores) fornecem retroalimentaccedilatildeo especiacutefica de informaccedilotildees ao remetente a respeito do estado de congestionamento na rede Natildeo usual

Mecanismos de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 87

bull A abordagem adotada pelo TCP eacute obrigar cada remetente a limitar a taxa agrave qual enviam traacutefego para sua conexatildeo como uma funccedilatildeo do congestionamento de rede percebido

Se um remetente TCP perceber que haacute pouco congestionamento no caminho entre ele e o destinataacuterio aumentaraacute sua taxa de envio

Se perceber que haacute congestionamento reduziraacute sua taxa de

envio

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 88

bull Mas essa abordagem levanta trecircs questotildees

1 Como um remetente TCP limita a taxa pela qual envia traacutefego para sua conexatildeo

2 Como um remetente TCP percebe que haacute congestionamento entre ele e o destinataacuterio

3 Que algoritmo o remetente deve utilizar para modificar sua taxa de envio como uma funccedilatildeo do congestionamento fim a fim percebido

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 89

bull Partida lenta TCP

Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 90

1) Cwnd = 1 MSS inicialmente

2) Partida lenta a cada rodada redefine cwnd = cwnd 2

3) Perda de pacotes (esgotamento de temporizaccedilatildeo ndash problema grave) ==gt cwnd = 1 (Tahoe ou Reno)

4) Prevenccedilatildeo de congestionamento apoacutes atingir sstresh cwnd = cwnd + 1

5) Trecircs acks duplicados (buraco no ldquofluxordquo ndash problema brando) entra no estado prevenccedilatildeo de congestionamento e redefine cwnd = 1 (Tahoe) ou cwnd = sstresh (Reno)

6) Sstresh = cwnd2 quando satildeo detectados problemas

Quantidade de dados natildeo reconhecidas no TCP = min(CongWin RecWin)

Controle de congestionamento TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 91

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 93

bull Evoluccedilatildeo da janela de congestionamento do TCP (Tahoe e Reno ndash mais usual)

Recuperaccedilatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 94

Controle de congestionamento TCP

Partida lenta seguida por aumento aditivo no TCP Tahoe

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 95

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 96

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 97

bull O controle de congestionamento AIMD (Additive-increase Multiplicative-Decrease) faz surgir o comportamento semelhante a ldquodentes de serrardquo

bull httpsmediapearsoncmgcomawecs_kurose_compnetwork_7cwcontentinteractiveanimationstcp-congestionindexhtml

Controle de congestionamento no TCP retrospectiva

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 98

O que eacute throughput meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughput meacutedio 075 WRTT (75 WRTT)

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 99

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (Probabilidade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 100

bull Duas conexotildees TCP compartilhando um uacutenico enlace congestionado

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 101

bull Vazatildeo alcanccedilada pelas conexotildees TCP 1 e TCP 2bull Ambas conexotildees em algum momento estatildeo com vazatildeo Abull Ambas vatildeo aumentando a vazatildeo ateacute ocorrer perda ndash Bbull Sstresh cai pela metade e ambas migram para Chellip

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 102

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

ndash Consequecircncia

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Nova aplicaccedilatildeo pede 1 TCP obteacutem taxa de R10 Nova aplicaccedilatildeo pede 11 TCPs obteacutem R2

Equidade

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Multiplexingdemultiplexing
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Principles of reliable data transfer
  • Slide 20
  • Slide 21
  • Reliable data transfer getting started
  • Slide 23
  • Slide 24
  • Slide 25
  • rdt20 FSM specification
  • rdt20 operation with no errors
  • rdt20 error scenario
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • rdt30 in action
  • Slide 39
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Selective repeat dilemma
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • TCP fast retransmit
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
Page 10: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 11

Demultiplexaccedilatildeo orientada para conexatildeo

socket TCP identificado por tupla de 4 elementos ndash endereccedilo IP de origemndash nuacutemero de porta de origemndash endereccedilo IP de destinondash nuacutemero de porta de destino

hospedeiro destinataacuterio usa todos os quatro valores para direcionar segmento ao socket apropriado

hospedeiro servidor pode admitir muitos sockets TCP simultacircneosndash cada socket identificado

por sua proacutepria tupla de 4 servidores Web tecircm

diferentes sockets para cada cliente conectandondash HTTP natildeo persistente teraacute

diferentes sockets para cada requisiccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 12

Demultiplexaccedilatildeo orientada para conexatildeo

clienteIPB

P1

cliente IP A

P1P2P4

servidorIP C

SP 9157DP 80

SP 9157DP 80

P5 P6 P3

D-IPCS-IP AD-IPC

S-IP B

SP 5775DP 80

D-IPCS-IP B

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 13

bull O UDP definido no [RFC 768] faz apenas quase tatildeo pouco quanto um protocolo de transporte pode fazer

bull Agrave parte sua funccedilatildeo de multiplexaccedilatildeodemultiplexaccedilatildeo e de alguma verificaccedilatildeo de erros simples ele nada adiciona ao IP

bull Se o desenvolvedor de aplicaccedilatildeo escolher o UDP em vez do TCP a aplicaccedilatildeo estaraacute ldquofalandordquo quase diretamente com o IP

bull O UDP eacute natildeo orientado para conexatildeo Natildeo haacute a apresentaccedilatildeo entre as entidades remetentes e destinataacuterias

Transporte natildeo orientado para conexatildeo UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 14

bull Melhor controle no niacutevel de aplicaccedilatildeo sobre quais dados satildeo enviados e quando menor atraso

bull Natildeo haacute estabelecimento de conexatildeo menor atrasobull Natildeo haacute estados de conexatildeo buffers paracircmetros de

controle de congestionamento nuacutemero de sequecircncia Menor ldquocustordquo

bull Pequeno excesso de cabeccedilalho de pacotes 8 bytes de excesso TCP 20 bytes Menor ldquocustordquo

bull Sem controle de congestionamento do TCP ==gt isso pode implicar em ldquocolapsordquo na rede

bull Eacute possiacutevel uma aplicaccedilatildeo ter transferecircncia confiaacutevel de dados usando UDP

Por que usa-se UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 15

bull Aplicaccedilotildees populares da Internet e seus protocolos de transporte subjacentes

Transporte natildeo orientado para conexatildeo UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 16

bull Estrutura do segmento UDP

Estrutura do segmento UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 17

bull A soma de verificaccedilatildeo UDP serve para detectar erros em todo o segmento

bull Suponha que tenhamos as seguintes trecircs palavras de 16 bits

bull A soma das duas primeiras eacute

bull Adicionando a terceira palavra agrave soma anterior temos

Soma de verificaccedilatildeo UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 18

bull Note que a uacuteltima adiccedilatildeo teve um ldquovai umrdquo no bit mais significativo que foi somado ao bit menos significativo

bull Complemento de 1 0 ==gt 1 1 ==gt 0bull Fazendo o complemento de 1 da soma final

1011010100111101 Esta eacute a soma de verificaccedilatildeobull No destinataacuterio todas as 4 palavras recebidas de 16 bits satildeo

somadas 1111 ==gt Pacote correto algum bit em 0 ==gt algum erro foi introduzido no pacote

bull Por que soma de verificaccedilatildeo no UDPbull Algumas camadas de enlace por exemplo Ethernet fornecem

soma de verificaccedilatildeobull mas nem todas e aleacutem disso um roteador poderia introduzir

algum errobull UDP verifica erros fim a fim

Soma de verificaccedilatildeo UDP

Transport Layer 3-19

Principles of reliable data transfer important in application transport link layers

top-10 list of important networking topics

characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)

Transport Layer 3-20

characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)

Principles of reliable data transfer important in application transport link layers

top-10 list of important networking topics

Transport Layer 3-21

characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)

important in application transport link layers top-10 list of important networking topics

Principles of reliable data transfer

Transport Layer 3-22

sendside

receiveside

rdt_send() called from above (eg by app) Passed data to deliver to receiver upper layer

udt_send() called by rdtto transfer packet over unreliable channel to receiver

rdt_rcv() called when packet arrives on rcv-side of channel

deliver_data() called by rdt to deliver data to upper

Principles of reliable data transfer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 23

vamos desenvolver de forma incremental os lados remetente e destinataacuterio do

protocolo de transferecircncia confiaacutevel de dados (rdt) considerar apenas a transf de dados unidirecional Bidirecional eacute soacute

duplicar a estruturandash mas informaccedilotildees de controle fluiratildeo nas duas direccedilotildees

usar maacutequinas de estado finito (FSM) para especificar remetente e destinataacuterio

estado1

estado2

evento causando transiccedilatildeo de estadoaccedilotildees tomadas sobre transiccedilatildeo de estado

estado quando neste ldquoestadordquo proacuteximo

estado determinadoexclusivamente pelo

proacuteximo evento

eventoaccedilotildees

Transferecircncia confiaacutevel de dados introduccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 24

bull rdt10 ndash Um protocolo para um canal completamente confiaacutevel

Transferecircncia confiaacutevel de dados sobre um canal perfeitamente confiaacutevel rdt10

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 25

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt20

rdt20 ndash Um protocolo para um canal com erros de bits Base dos protocolos ARQ (Automatic Repeat Request)

Detecccedilatildeo de erros (mecanismo do UDP)

Realimentaccedilatildeo do destinataacuterio (ACK ou NACK)

Retransmissatildeobull Pare e espere

Transport Layer 3-26

rdt20 FSM specification

Wait for call from above

sndpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from belowsender

receiverrdt_send(data)

Transport Layer 3-27

rdt20 operation with no errors

Wait for call from above

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from below

rdt_send(data)

Transport Layer 3-28

rdt20 error scenario

Wait for call from above

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from below

rdt_send(data)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 29

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt20

bull O que acontece se o pacote ACK ou NAK estiver corrompido

bull Vamos considerar trecircs possibilidade para ACKs ou NAKs corrompidos1 Ser humano -- A ldquoditadordquo B ldquoOKrdquo ou ldquoRepita por favorrdquo ==gt

A natildeo entende ldquoO que foi que vocecirc disserdquo infinito Peacutessimo2 Bits de soma de verificaccedilatildeo de tal modo que permita ao remetente a

recuperaccedilatildeo de erros de bits Muito bom mas serve somente para canais com erro de bits e natildeo perda de pacotes

3 O Remetente reenvia o pacote de dados corrente quando receber um pacote ACK ou NAK truncado ==gt pode gerar pacotes duplicados Como o destinataacuterio sabe se o pacote conteacutem novos dados ou eacute uma retransmissatildeo ==gt nuacutemero de sequecircncia

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 30

bull rdt21 remetente

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 31

bull rdt21 destinataacuterio

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 32

bull O protocolo rdt21 usa tanto o reconhecimento positivo como negativo do remetente ao destinataacuterio pacote fora de ordem ==gt ACK pacote corrompido ==gt NAK

bull Podemos conseguir o mesmo efeito se ao inveacutes de enviarmos um NAK enviarmos um ACK do uacuteltimo corretamente recebido Ou seja ACK tambeacutem numerado

bull ACKs duplicados indicam ao remetente que o destinataacuterio natildeo recebeu corretamente o pacote seguinte agravequele do ACK duplo

bull rdt22 deve enviar o nuacutemero de sequecircncia no ACK

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21-2

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 33

bull rdt22 remetente

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt22

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 34

bull rdt22 destinataacuterio

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt22

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 35

bull Duas preocupaccedilotildees adicionais devem ser tratadas pelo protocolo1 Como detectar perda de pacotes2 O que fazer quando haacute perdas

bull As teacutecnicas jaacute discutidas atendem a segunda questatildeobull E para a primeira questatildeobull Suponha que o remetente transmita um pacote e que esse

pacote ou seu ACK seja perdido Nenhuma resposta chegaraacute ao remetente Se o remetente natildeo quiser esperar ==gt retransmite o pacote

bull Mas quanto o remetente precisa esperar para ter certeza que algo foi perdido Esperar um RTT Eacute muito difiacutecil estimar o RTT quanto mais ter certeza

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 36

bull Aleacutem disso o ideal seria que o protocolo se recuperasse da perda assim que possiacutevel

bull Na praacutetica O remetente faz uma escolha ponderada de um RTT provaacutevel mas natildeo

garantido que a perda tivesse acontecido Se natildeo receber um ACK nesse periacuteodo retransmite o pacote

bull Se o pacote sofrer um atraso longo pode haver retransmissatildeo mesmo que o pacote ou ACK natildeo tenham sido perdidos Possibilidade de pacotes de dados duplicados

bull Para implementar um mecanismo de retransmissatildeo com base no tempo eacute necessaacuterio um temporizador de contagem regressiva Accedilotildees iniciar atender parar

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 37

bull rdt30 remetente

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Transport Layer 3-38

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

pkt1

ack1

ack0

ack0

(a) no loss

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(b) packet loss

pkt1X

loss

pkt1timeout

resend pkt1

rdt30 in action

Transport Layer 3-39

rdt30 in action

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(c) ACK loss

ack1X

loss

pkt1timeout

resend pkt1

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

send ack0rcv ack0

send pkt1

send pkt0rcv pkt0

pkt0

ack0

(d) premature timeout delayed ACK

pkt1timeout

resend pkt1

ack1

send ack1

send pkt0rcv ack1

pkt0

ack1

ack0

send pkt0rcv ack1 pkt0

rcv pkt0send ack0ack0

rcv pkt0

send ack0(detect duplicate)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 42

bull No coraccedilatildeo do problema do desempenho do rdt30 estaacute o fato de ele ser um protocolo do tipo pare e espere

bull Um protocolo pare e espere em operaccedilatildeo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 43

U remet =

0008

30008 = 000027

microseconds

L R RTT + L R

=

Desempenho do rdt30

rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso pacote 8000 bits

U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando

Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps protocolo de rede limita uso de recursos fiacutesicos Soluccedilatildeo

ndosmicrosseguR

Ldtrans 8

bps10

bits80009

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 44

Um protocolo com paralelismo em operaccedilatildeo

bull O ACK recebido eacute de que pacote

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 45

bull Envio com pare e espere

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 46

bull Envio com paralelismo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Aumento de utilizaccedilatildeopor fator de 3

U remet =

0024 30008

= 00008 microseconds

3 L R RTT + L R

=

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 47

bull Em um protocolo Go-Back-N (GBN) o remetente eacute autorizado a transmitir muacuteltiplos pacotes sem esperar por um reconhecimento

bull Poreacutem fica limitado a ter natildeo mais do que algum nuacutemero maacuteximo permitido N (tamanho da janela) de pacotes natildeo reconhecidos na ldquotubulaccedilatildeordquo

bull Visatildeo do remetente para os nuacutemeros de sequecircncia no protocolo Go-Back-N

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 48

bull Descriccedilatildeo da FSM estendida do remetente GBNbull Quem consegue descrever o funcionamento

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 49

bull Descriccedilatildeo da FSM estendida do destinataacuterio GBN

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 50

Go-Back-N (GBN) em operaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 51

bull Protocolos de repeticcedilatildeo seletiva (SR) evitam retransmissotildees desnecessaacuterias

bull Eles fazem o remetente retransmitir apenas os pacotes suspeitos de terem sido recebidos com erro no destinataacuterio

bull Essa retransmissatildeo individual soacute quando necessaacuteria exige que o destinataacuterio reconheccedila individualmente os pacotes recebidos de modo correto

Repeticcedilatildeo seletiva (SR)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 52

Repeticcedilatildeo seletiva (SR)

Transport Layer 3-53

Selective repeatdilemma

example seq rsquos 0 1 2 3 window size=3

receiver window(after receipt)

sender window(after receipt)

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2 pkt0

timeoutretransmit pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2XXX

will accept packetwith seq number 0

(b) oops

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

X

will accept packetwith seq number 0

0 1 2 3 0 1 2 pkt3

(a) no problem

receiver canrsquot see sender sidereceiver behavior identical in both casessomethingrsquos (very) wrong

receiver sees no difference in two scenarios

duplicate data accepted as new in (b)

Q what relationship between seq size and window size to avoid problem in (b)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 54

Resumo de mecanismos de transferecircncia confiaacutevel de dados e sua utilizaccedilatildeo

bull Soma de verificaccedilatildeo - Usada para detectar erros de bits em um pacote transmitido

bull Temporizador - Usado para controlar a temporizaccedilatildeoretransmissatildeo de um pacote possivelmente porque o pacote (ou seu ACK) foi perdido dentro do canal

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 55

bull Nuacutemero de sequecircncia - Usado para numeraccedilatildeo sequencial de segmentos de dados que transitam do remetente ao destinataacuterio Ou seja pode-se ter vaacuterios segmentos transitando simultaneamente no canal de comunicaccedilatildeo maximizando assim o uso desse canal

bull Reconhecimento - Usado pelo destinataacuterio para avisar o remetente que um pacote ou conjunto de pacotes foi recebido corretamente

bull Janela paralelismo - O remetente pode ficar restrito a enviar somente pacotes com nuacutemeros de sequecircncia que caiam dentro de uma determinada faixa

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 56

bull Uma conexatildeo TCP provecirc um serviccedilo full-duplex

bull A conexatildeo TCP eacute sempre ponto a ponto

bull Uma vez estabelecida uma conexatildeo TCP dois processos de aplicaccedilatildeo podem enviar dados um para o outro 3-way handshake jaacute estabelecendo o MSS

bull O TCP combina cada porccedilatildeo de dados do cliente com um cabeccedilalho TCP formando assim segmentos TCP

A conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 57

Estrutura do segmento TCPURG dados urgentes

(quase natildeo usado)

ACK ACKvaacutelido

PSH empurrar dados agora

RST SYN FINestab conexatildeo

soma de verificaccedilatildeo

da Internet ndash todo o segmento(como em UDP)

bytes destinataacuteriopode aceitar

contagem porbytes de dados(natildeo segmentos)

Opcional e de comprimentovariaacutevel utilizado paranegociar o MSS ou fatorde escala em redes dealta velocidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 58

TCP Estabelecendo e fechando conexotildees

3-way handshakeFinalizando

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 59

s sequecircncia e ACKs do TCP

Cenaacuterio preestabelecido telnet simples

rsquos de sequecircnciandash ldquonuacutemerordquo na cadeia de

bytes do 1o byte nos dados do segmento

ACKsndash seq do proacuteximo byte

esperado do outro ladondash ACK cumulativo

P como o destinataacuterio trata segmentos fora de ordem

ndash R TCP natildeo diz ndash a criteacuterio do implementador

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 60

Tempo de ida e volta e timeout do TCP

P Como definir o valor de timeout do TCP

maior que RTTndash mas RTT varia

muito curto timeout prematurondash retransmissotildees

desnecessaacuterias muito longo baixa

reaccedilatildeo a perda de segmento

P Como estimar o RTT SampleRTT tempo medido

da transmissatildeo do segmento ateacute receber o ACKndash ignora retransmissotildees

SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquondash meacutedia de vaacuterias mediccedilotildees

recentes natildeo apenas SampleRTT atual

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 61

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui exponencialmente

raacutepido valor tiacutepico = 0125

Tempo de ida e volta e timeout do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 62

Amostras de RTTs estimados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 63

definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(geralmente = 025)

depois definir intervalo de timeout

Tempo de ida e volta e timeout do TCP

TimeoutIntervalinicial

= 1 sldquomargem de seguranccedilardquo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 64

TCP cenaacuterios de retransmissatildeo

Hosp A

Seq = 100 20 bytes dados

ACK = 100

tempoTimeout prematuro

Hosp B

Seq = 92 8 bytes dados

ACK = 120

Seq = 92 8 bytes dados

Seq

= 9

2 tim

eout

ACK = 120

Hosp A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio de ACK perdido

Hosp B

X

Seq = 92 8 bytes dados

ACK = 100

tempoS

eq =

92

timeo

ut

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 65

TCP cenaacuterios de retransmissatildeo

Host A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio ACK cumulativo

Host B

X

Seq = 100 20 bytes dados

ACK = 120

tempo

Transport Layer 3-66

TCP fast retransmit time-out period

often relatively long long delay before

resending lost packet detect lost

segments via duplicate ACKs sender often sends

many segments back-to-back

if segment is lost there will likely be many duplicate ACKs

if sender receives 3 ACKs for same data(ldquotriple duplicate ACKsrdquo) resend unacked segment with smallest seq

likely that unacked segment lost so donrsquot wait for timeout

TCP fast retransmit

Transport Layer 3-67

X

fast retransmit after sender receipt of triple duplicate ACK

Host BHost A

Seq=92 8 bytes of data

ACK=100

timeo

ut ACK=100

ACK=100

ACK=100

TCP fast retransmit

Seq=100 20 bytes of data

Seq=100 20 bytes of data

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 69

bull O nuacutemero de sequecircncia para um segmento eacute o nuacutemero do primeiro byte do segmento

bull O nuacutemero de reconhecimento que o hospedeiro A atribui a seu segmento eacute o nuacutemero de sequecircncia do proacuteximo byte que ele estiver aguardando do hospedeiro B

bull Como o TCP somente reconhece bytes ateacute o primeiro byte que estiver faltando na cadeia dizemos que o TCP provecirc reconhecimentos cumulativos

Nuacutemeros de sequecircncia e nuacutemeros de reconhecimento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 70

bull O TCP cria um serviccedilo de transferecircncia confiaacutevel de dados sobre o serviccedilo de melhor esforccedilo do IP

bull O serviccedilo de transferecircncia garante que a cadeia de bytes eacute idecircntica agrave cadeia de bytes enviada pelo sistema final que estaacute do outro lado da conexatildeo

bull Os procedimentos recomendados no [RFC 6298] para gerenciamento de temporizadores TCP utilizam apenas um uacutenico temporizador de retransmissatildeo

Transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 71

bull O TCP provecirc um serviccedilo de controle de fluxo agraves suas aplicaccedilotildees para eliminar a possibilidade de o remetente estourar o buffer do destinataacuterio

bull Controle de fluxo eacute um serviccedilo de compatibilizaccedilatildeo de velocidades

bull O TCP oferece serviccedilo de controle de fluxo fazendo que o remetente mantenha uma variaacutevel denominada janela de recepccedilatildeo

Controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 72

Regulaccedilatildeo da taxa de envio

Uma rede de transmissatildeo raacutepida eum receptor de baixa capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 73

Controle de fluxo TCP

lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo

serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora

processo da aplicaccedilatildeo pode ser lento na leitura do buffer

remetente natildeo estouraraacute buffer do destinataacuterio transmitindo muitos dados muito rapidamente

controle de fluxo

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 74

Controle de fluxo TCP como funciona

(suponha que destinataacuterio TCP descarte segmentos fora de ordem)

espaccedilo de buffer natildeo usado = rwnd (slide 48) = RcvBuffer-[LastByteRcvd -

LastByteRead]

destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento

remetente limita de bytes com ACK a rwndndash garante que buffer do

destinataacuterio natildeo estoura

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

rwndRcvBuffer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 75

Gerenciamento da conexatildeo TCP

lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados

inicializa variaacuteveis TCPndash s seqndash buffers informaccedilatildeo de

controle de fluxo (p e RcvWindow)

cliente inicia a conexatildeo Socket clientSocket = new

Socket(hostnameport ) servidor contactado pelo

cliente Socket connectionSocket =

welcomeSocketaccept()

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 76

Gerenciamento da conexatildeo TCP

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 77

fechando uma conexatildeo

cliente fecha socket clientSocketclose()

etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor

etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN

cliente

FIN

servidor

ACK

ACK

FIN

fecha

fecha

fechado

espe

ra

tem

poriz

ada

Gerenciamento da conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 79

Controle de congestionamento

Uma rede de transmissatildeo lenta eum receptor de alta capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 80

bull As causas e os custos do congestionamento

Cenaacuterio de congestionamento 1 duas conexotildees compartilhando um uacutenico roteador com nuacutemero infinito de buffers

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 81

bull As causas e os custos do congestionamentoCenaacuterio de congestionamento 1 vazatildeo e atraso em funccedilatildeo da taxa de envio do hospedeiro

ldquocustosrdquo do congestionamento Aumento de atrasos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 82

bull As causas e os custos do congestionamento

Cenaacuterio 2 dois hospedeiros (com retransmissotildees) e um roteador com buffers finitos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 83

a) Caso ideal (vazatildeo)

b) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda

c) retransmissatildeo do pacote adiado (natildeo perdido) torna maior (que

o caso perfeito ) para o mesmo

in

out

=

in

out

gt

in

out

ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do

pacote

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 84

bull As causas e os custos do congestionamento

Cenaacuterio 3 quatro remetentesroteadores com buffers finitos e trajetos com muacuteltiplos roteadores

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 85

outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer capacidade

de transmissatildeo anterior usada para esse pacote foi desperdiccedilada

Host A

Host B

o

u

t

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 86

Controle de congestionamento fim a fim

bull A camada de rede natildeo fornece nenhum suporte expliacutecito agrave camada de transporte com a finalidade de controle de congestionamento

Controle de congestionamento assistido pela rede

bull Os componentes da camada de rede (isto eacute roteadores) fornecem retroalimentaccedilatildeo especiacutefica de informaccedilotildees ao remetente a respeito do estado de congestionamento na rede Natildeo usual

Mecanismos de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 87

bull A abordagem adotada pelo TCP eacute obrigar cada remetente a limitar a taxa agrave qual enviam traacutefego para sua conexatildeo como uma funccedilatildeo do congestionamento de rede percebido

Se um remetente TCP perceber que haacute pouco congestionamento no caminho entre ele e o destinataacuterio aumentaraacute sua taxa de envio

Se perceber que haacute congestionamento reduziraacute sua taxa de

envio

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 88

bull Mas essa abordagem levanta trecircs questotildees

1 Como um remetente TCP limita a taxa pela qual envia traacutefego para sua conexatildeo

2 Como um remetente TCP percebe que haacute congestionamento entre ele e o destinataacuterio

3 Que algoritmo o remetente deve utilizar para modificar sua taxa de envio como uma funccedilatildeo do congestionamento fim a fim percebido

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 89

bull Partida lenta TCP

Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 90

1) Cwnd = 1 MSS inicialmente

2) Partida lenta a cada rodada redefine cwnd = cwnd 2

3) Perda de pacotes (esgotamento de temporizaccedilatildeo ndash problema grave) ==gt cwnd = 1 (Tahoe ou Reno)

4) Prevenccedilatildeo de congestionamento apoacutes atingir sstresh cwnd = cwnd + 1

5) Trecircs acks duplicados (buraco no ldquofluxordquo ndash problema brando) entra no estado prevenccedilatildeo de congestionamento e redefine cwnd = 1 (Tahoe) ou cwnd = sstresh (Reno)

6) Sstresh = cwnd2 quando satildeo detectados problemas

Quantidade de dados natildeo reconhecidas no TCP = min(CongWin RecWin)

Controle de congestionamento TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 91

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 93

bull Evoluccedilatildeo da janela de congestionamento do TCP (Tahoe e Reno ndash mais usual)

Recuperaccedilatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 94

Controle de congestionamento TCP

Partida lenta seguida por aumento aditivo no TCP Tahoe

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 95

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 96

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 97

bull O controle de congestionamento AIMD (Additive-increase Multiplicative-Decrease) faz surgir o comportamento semelhante a ldquodentes de serrardquo

bull httpsmediapearsoncmgcomawecs_kurose_compnetwork_7cwcontentinteractiveanimationstcp-congestionindexhtml

Controle de congestionamento no TCP retrospectiva

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 98

O que eacute throughput meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughput meacutedio 075 WRTT (75 WRTT)

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 99

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (Probabilidade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 100

bull Duas conexotildees TCP compartilhando um uacutenico enlace congestionado

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 101

bull Vazatildeo alcanccedilada pelas conexotildees TCP 1 e TCP 2bull Ambas conexotildees em algum momento estatildeo com vazatildeo Abull Ambas vatildeo aumentando a vazatildeo ateacute ocorrer perda ndash Bbull Sstresh cai pela metade e ambas migram para Chellip

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 102

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

ndash Consequecircncia

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Nova aplicaccedilatildeo pede 1 TCP obteacutem taxa de R10 Nova aplicaccedilatildeo pede 11 TCPs obteacutem R2

Equidade

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Multiplexingdemultiplexing
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Principles of reliable data transfer
  • Slide 20
  • Slide 21
  • Reliable data transfer getting started
  • Slide 23
  • Slide 24
  • Slide 25
  • rdt20 FSM specification
  • rdt20 operation with no errors
  • rdt20 error scenario
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • rdt30 in action
  • Slide 39
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Selective repeat dilemma
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • TCP fast retransmit
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
Page 11: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 12

Demultiplexaccedilatildeo orientada para conexatildeo

clienteIPB

P1

cliente IP A

P1P2P4

servidorIP C

SP 9157DP 80

SP 9157DP 80

P5 P6 P3

D-IPCS-IP AD-IPC

S-IP B

SP 5775DP 80

D-IPCS-IP B

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 13

bull O UDP definido no [RFC 768] faz apenas quase tatildeo pouco quanto um protocolo de transporte pode fazer

bull Agrave parte sua funccedilatildeo de multiplexaccedilatildeodemultiplexaccedilatildeo e de alguma verificaccedilatildeo de erros simples ele nada adiciona ao IP

bull Se o desenvolvedor de aplicaccedilatildeo escolher o UDP em vez do TCP a aplicaccedilatildeo estaraacute ldquofalandordquo quase diretamente com o IP

bull O UDP eacute natildeo orientado para conexatildeo Natildeo haacute a apresentaccedilatildeo entre as entidades remetentes e destinataacuterias

Transporte natildeo orientado para conexatildeo UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 14

bull Melhor controle no niacutevel de aplicaccedilatildeo sobre quais dados satildeo enviados e quando menor atraso

bull Natildeo haacute estabelecimento de conexatildeo menor atrasobull Natildeo haacute estados de conexatildeo buffers paracircmetros de

controle de congestionamento nuacutemero de sequecircncia Menor ldquocustordquo

bull Pequeno excesso de cabeccedilalho de pacotes 8 bytes de excesso TCP 20 bytes Menor ldquocustordquo

bull Sem controle de congestionamento do TCP ==gt isso pode implicar em ldquocolapsordquo na rede

bull Eacute possiacutevel uma aplicaccedilatildeo ter transferecircncia confiaacutevel de dados usando UDP

Por que usa-se UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 15

bull Aplicaccedilotildees populares da Internet e seus protocolos de transporte subjacentes

Transporte natildeo orientado para conexatildeo UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 16

bull Estrutura do segmento UDP

Estrutura do segmento UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 17

bull A soma de verificaccedilatildeo UDP serve para detectar erros em todo o segmento

bull Suponha que tenhamos as seguintes trecircs palavras de 16 bits

bull A soma das duas primeiras eacute

bull Adicionando a terceira palavra agrave soma anterior temos

Soma de verificaccedilatildeo UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 18

bull Note que a uacuteltima adiccedilatildeo teve um ldquovai umrdquo no bit mais significativo que foi somado ao bit menos significativo

bull Complemento de 1 0 ==gt 1 1 ==gt 0bull Fazendo o complemento de 1 da soma final

1011010100111101 Esta eacute a soma de verificaccedilatildeobull No destinataacuterio todas as 4 palavras recebidas de 16 bits satildeo

somadas 1111 ==gt Pacote correto algum bit em 0 ==gt algum erro foi introduzido no pacote

bull Por que soma de verificaccedilatildeo no UDPbull Algumas camadas de enlace por exemplo Ethernet fornecem

soma de verificaccedilatildeobull mas nem todas e aleacutem disso um roteador poderia introduzir

algum errobull UDP verifica erros fim a fim

Soma de verificaccedilatildeo UDP

Transport Layer 3-19

Principles of reliable data transfer important in application transport link layers

top-10 list of important networking topics

characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)

Transport Layer 3-20

characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)

Principles of reliable data transfer important in application transport link layers

top-10 list of important networking topics

Transport Layer 3-21

characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)

important in application transport link layers top-10 list of important networking topics

Principles of reliable data transfer

Transport Layer 3-22

sendside

receiveside

rdt_send() called from above (eg by app) Passed data to deliver to receiver upper layer

udt_send() called by rdtto transfer packet over unreliable channel to receiver

rdt_rcv() called when packet arrives on rcv-side of channel

deliver_data() called by rdt to deliver data to upper

Principles of reliable data transfer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 23

vamos desenvolver de forma incremental os lados remetente e destinataacuterio do

protocolo de transferecircncia confiaacutevel de dados (rdt) considerar apenas a transf de dados unidirecional Bidirecional eacute soacute

duplicar a estruturandash mas informaccedilotildees de controle fluiratildeo nas duas direccedilotildees

usar maacutequinas de estado finito (FSM) para especificar remetente e destinataacuterio

estado1

estado2

evento causando transiccedilatildeo de estadoaccedilotildees tomadas sobre transiccedilatildeo de estado

estado quando neste ldquoestadordquo proacuteximo

estado determinadoexclusivamente pelo

proacuteximo evento

eventoaccedilotildees

Transferecircncia confiaacutevel de dados introduccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 24

bull rdt10 ndash Um protocolo para um canal completamente confiaacutevel

Transferecircncia confiaacutevel de dados sobre um canal perfeitamente confiaacutevel rdt10

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 25

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt20

rdt20 ndash Um protocolo para um canal com erros de bits Base dos protocolos ARQ (Automatic Repeat Request)

Detecccedilatildeo de erros (mecanismo do UDP)

Realimentaccedilatildeo do destinataacuterio (ACK ou NACK)

Retransmissatildeobull Pare e espere

Transport Layer 3-26

rdt20 FSM specification

Wait for call from above

sndpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from belowsender

receiverrdt_send(data)

Transport Layer 3-27

rdt20 operation with no errors

Wait for call from above

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from below

rdt_send(data)

Transport Layer 3-28

rdt20 error scenario

Wait for call from above

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from below

rdt_send(data)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 29

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt20

bull O que acontece se o pacote ACK ou NAK estiver corrompido

bull Vamos considerar trecircs possibilidade para ACKs ou NAKs corrompidos1 Ser humano -- A ldquoditadordquo B ldquoOKrdquo ou ldquoRepita por favorrdquo ==gt

A natildeo entende ldquoO que foi que vocecirc disserdquo infinito Peacutessimo2 Bits de soma de verificaccedilatildeo de tal modo que permita ao remetente a

recuperaccedilatildeo de erros de bits Muito bom mas serve somente para canais com erro de bits e natildeo perda de pacotes

3 O Remetente reenvia o pacote de dados corrente quando receber um pacote ACK ou NAK truncado ==gt pode gerar pacotes duplicados Como o destinataacuterio sabe se o pacote conteacutem novos dados ou eacute uma retransmissatildeo ==gt nuacutemero de sequecircncia

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 30

bull rdt21 remetente

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 31

bull rdt21 destinataacuterio

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 32

bull O protocolo rdt21 usa tanto o reconhecimento positivo como negativo do remetente ao destinataacuterio pacote fora de ordem ==gt ACK pacote corrompido ==gt NAK

bull Podemos conseguir o mesmo efeito se ao inveacutes de enviarmos um NAK enviarmos um ACK do uacuteltimo corretamente recebido Ou seja ACK tambeacutem numerado

bull ACKs duplicados indicam ao remetente que o destinataacuterio natildeo recebeu corretamente o pacote seguinte agravequele do ACK duplo

bull rdt22 deve enviar o nuacutemero de sequecircncia no ACK

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21-2

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 33

bull rdt22 remetente

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt22

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 34

bull rdt22 destinataacuterio

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt22

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 35

bull Duas preocupaccedilotildees adicionais devem ser tratadas pelo protocolo1 Como detectar perda de pacotes2 O que fazer quando haacute perdas

bull As teacutecnicas jaacute discutidas atendem a segunda questatildeobull E para a primeira questatildeobull Suponha que o remetente transmita um pacote e que esse

pacote ou seu ACK seja perdido Nenhuma resposta chegaraacute ao remetente Se o remetente natildeo quiser esperar ==gt retransmite o pacote

bull Mas quanto o remetente precisa esperar para ter certeza que algo foi perdido Esperar um RTT Eacute muito difiacutecil estimar o RTT quanto mais ter certeza

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 36

bull Aleacutem disso o ideal seria que o protocolo se recuperasse da perda assim que possiacutevel

bull Na praacutetica O remetente faz uma escolha ponderada de um RTT provaacutevel mas natildeo

garantido que a perda tivesse acontecido Se natildeo receber um ACK nesse periacuteodo retransmite o pacote

bull Se o pacote sofrer um atraso longo pode haver retransmissatildeo mesmo que o pacote ou ACK natildeo tenham sido perdidos Possibilidade de pacotes de dados duplicados

bull Para implementar um mecanismo de retransmissatildeo com base no tempo eacute necessaacuterio um temporizador de contagem regressiva Accedilotildees iniciar atender parar

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 37

bull rdt30 remetente

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Transport Layer 3-38

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

pkt1

ack1

ack0

ack0

(a) no loss

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(b) packet loss

pkt1X

loss

pkt1timeout

resend pkt1

rdt30 in action

Transport Layer 3-39

rdt30 in action

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(c) ACK loss

ack1X

loss

pkt1timeout

resend pkt1

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

send ack0rcv ack0

send pkt1

send pkt0rcv pkt0

pkt0

ack0

(d) premature timeout delayed ACK

pkt1timeout

resend pkt1

ack1

send ack1

send pkt0rcv ack1

pkt0

ack1

ack0

send pkt0rcv ack1 pkt0

rcv pkt0send ack0ack0

rcv pkt0

send ack0(detect duplicate)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 42

bull No coraccedilatildeo do problema do desempenho do rdt30 estaacute o fato de ele ser um protocolo do tipo pare e espere

bull Um protocolo pare e espere em operaccedilatildeo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 43

U remet =

0008

30008 = 000027

microseconds

L R RTT + L R

=

Desempenho do rdt30

rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso pacote 8000 bits

U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando

Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps protocolo de rede limita uso de recursos fiacutesicos Soluccedilatildeo

ndosmicrosseguR

Ldtrans 8

bps10

bits80009

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 44

Um protocolo com paralelismo em operaccedilatildeo

bull O ACK recebido eacute de que pacote

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 45

bull Envio com pare e espere

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 46

bull Envio com paralelismo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Aumento de utilizaccedilatildeopor fator de 3

U remet =

0024 30008

= 00008 microseconds

3 L R RTT + L R

=

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 47

bull Em um protocolo Go-Back-N (GBN) o remetente eacute autorizado a transmitir muacuteltiplos pacotes sem esperar por um reconhecimento

bull Poreacutem fica limitado a ter natildeo mais do que algum nuacutemero maacuteximo permitido N (tamanho da janela) de pacotes natildeo reconhecidos na ldquotubulaccedilatildeordquo

bull Visatildeo do remetente para os nuacutemeros de sequecircncia no protocolo Go-Back-N

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 48

bull Descriccedilatildeo da FSM estendida do remetente GBNbull Quem consegue descrever o funcionamento

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 49

bull Descriccedilatildeo da FSM estendida do destinataacuterio GBN

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 50

Go-Back-N (GBN) em operaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 51

bull Protocolos de repeticcedilatildeo seletiva (SR) evitam retransmissotildees desnecessaacuterias

bull Eles fazem o remetente retransmitir apenas os pacotes suspeitos de terem sido recebidos com erro no destinataacuterio

bull Essa retransmissatildeo individual soacute quando necessaacuteria exige que o destinataacuterio reconheccedila individualmente os pacotes recebidos de modo correto

Repeticcedilatildeo seletiva (SR)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 52

Repeticcedilatildeo seletiva (SR)

Transport Layer 3-53

Selective repeatdilemma

example seq rsquos 0 1 2 3 window size=3

receiver window(after receipt)

sender window(after receipt)

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2 pkt0

timeoutretransmit pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2XXX

will accept packetwith seq number 0

(b) oops

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

X

will accept packetwith seq number 0

0 1 2 3 0 1 2 pkt3

(a) no problem

receiver canrsquot see sender sidereceiver behavior identical in both casessomethingrsquos (very) wrong

receiver sees no difference in two scenarios

duplicate data accepted as new in (b)

Q what relationship between seq size and window size to avoid problem in (b)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 54

Resumo de mecanismos de transferecircncia confiaacutevel de dados e sua utilizaccedilatildeo

bull Soma de verificaccedilatildeo - Usada para detectar erros de bits em um pacote transmitido

bull Temporizador - Usado para controlar a temporizaccedilatildeoretransmissatildeo de um pacote possivelmente porque o pacote (ou seu ACK) foi perdido dentro do canal

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 55

bull Nuacutemero de sequecircncia - Usado para numeraccedilatildeo sequencial de segmentos de dados que transitam do remetente ao destinataacuterio Ou seja pode-se ter vaacuterios segmentos transitando simultaneamente no canal de comunicaccedilatildeo maximizando assim o uso desse canal

bull Reconhecimento - Usado pelo destinataacuterio para avisar o remetente que um pacote ou conjunto de pacotes foi recebido corretamente

bull Janela paralelismo - O remetente pode ficar restrito a enviar somente pacotes com nuacutemeros de sequecircncia que caiam dentro de uma determinada faixa

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 56

bull Uma conexatildeo TCP provecirc um serviccedilo full-duplex

bull A conexatildeo TCP eacute sempre ponto a ponto

bull Uma vez estabelecida uma conexatildeo TCP dois processos de aplicaccedilatildeo podem enviar dados um para o outro 3-way handshake jaacute estabelecendo o MSS

bull O TCP combina cada porccedilatildeo de dados do cliente com um cabeccedilalho TCP formando assim segmentos TCP

A conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 57

Estrutura do segmento TCPURG dados urgentes

(quase natildeo usado)

ACK ACKvaacutelido

PSH empurrar dados agora

RST SYN FINestab conexatildeo

soma de verificaccedilatildeo

da Internet ndash todo o segmento(como em UDP)

bytes destinataacuteriopode aceitar

contagem porbytes de dados(natildeo segmentos)

Opcional e de comprimentovariaacutevel utilizado paranegociar o MSS ou fatorde escala em redes dealta velocidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 58

TCP Estabelecendo e fechando conexotildees

3-way handshakeFinalizando

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 59

s sequecircncia e ACKs do TCP

Cenaacuterio preestabelecido telnet simples

rsquos de sequecircnciandash ldquonuacutemerordquo na cadeia de

bytes do 1o byte nos dados do segmento

ACKsndash seq do proacuteximo byte

esperado do outro ladondash ACK cumulativo

P como o destinataacuterio trata segmentos fora de ordem

ndash R TCP natildeo diz ndash a criteacuterio do implementador

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 60

Tempo de ida e volta e timeout do TCP

P Como definir o valor de timeout do TCP

maior que RTTndash mas RTT varia

muito curto timeout prematurondash retransmissotildees

desnecessaacuterias muito longo baixa

reaccedilatildeo a perda de segmento

P Como estimar o RTT SampleRTT tempo medido

da transmissatildeo do segmento ateacute receber o ACKndash ignora retransmissotildees

SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquondash meacutedia de vaacuterias mediccedilotildees

recentes natildeo apenas SampleRTT atual

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 61

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui exponencialmente

raacutepido valor tiacutepico = 0125

Tempo de ida e volta e timeout do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 62

Amostras de RTTs estimados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 63

definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(geralmente = 025)

depois definir intervalo de timeout

Tempo de ida e volta e timeout do TCP

TimeoutIntervalinicial

= 1 sldquomargem de seguranccedilardquo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 64

TCP cenaacuterios de retransmissatildeo

Hosp A

Seq = 100 20 bytes dados

ACK = 100

tempoTimeout prematuro

Hosp B

Seq = 92 8 bytes dados

ACK = 120

Seq = 92 8 bytes dados

Seq

= 9

2 tim

eout

ACK = 120

Hosp A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio de ACK perdido

Hosp B

X

Seq = 92 8 bytes dados

ACK = 100

tempoS

eq =

92

timeo

ut

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 65

TCP cenaacuterios de retransmissatildeo

Host A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio ACK cumulativo

Host B

X

Seq = 100 20 bytes dados

ACK = 120

tempo

Transport Layer 3-66

TCP fast retransmit time-out period

often relatively long long delay before

resending lost packet detect lost

segments via duplicate ACKs sender often sends

many segments back-to-back

if segment is lost there will likely be many duplicate ACKs

if sender receives 3 ACKs for same data(ldquotriple duplicate ACKsrdquo) resend unacked segment with smallest seq

likely that unacked segment lost so donrsquot wait for timeout

TCP fast retransmit

Transport Layer 3-67

X

fast retransmit after sender receipt of triple duplicate ACK

Host BHost A

Seq=92 8 bytes of data

ACK=100

timeo

ut ACK=100

ACK=100

ACK=100

TCP fast retransmit

Seq=100 20 bytes of data

Seq=100 20 bytes of data

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 69

bull O nuacutemero de sequecircncia para um segmento eacute o nuacutemero do primeiro byte do segmento

bull O nuacutemero de reconhecimento que o hospedeiro A atribui a seu segmento eacute o nuacutemero de sequecircncia do proacuteximo byte que ele estiver aguardando do hospedeiro B

bull Como o TCP somente reconhece bytes ateacute o primeiro byte que estiver faltando na cadeia dizemos que o TCP provecirc reconhecimentos cumulativos

Nuacutemeros de sequecircncia e nuacutemeros de reconhecimento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 70

bull O TCP cria um serviccedilo de transferecircncia confiaacutevel de dados sobre o serviccedilo de melhor esforccedilo do IP

bull O serviccedilo de transferecircncia garante que a cadeia de bytes eacute idecircntica agrave cadeia de bytes enviada pelo sistema final que estaacute do outro lado da conexatildeo

bull Os procedimentos recomendados no [RFC 6298] para gerenciamento de temporizadores TCP utilizam apenas um uacutenico temporizador de retransmissatildeo

Transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 71

bull O TCP provecirc um serviccedilo de controle de fluxo agraves suas aplicaccedilotildees para eliminar a possibilidade de o remetente estourar o buffer do destinataacuterio

bull Controle de fluxo eacute um serviccedilo de compatibilizaccedilatildeo de velocidades

bull O TCP oferece serviccedilo de controle de fluxo fazendo que o remetente mantenha uma variaacutevel denominada janela de recepccedilatildeo

Controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 72

Regulaccedilatildeo da taxa de envio

Uma rede de transmissatildeo raacutepida eum receptor de baixa capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 73

Controle de fluxo TCP

lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo

serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora

processo da aplicaccedilatildeo pode ser lento na leitura do buffer

remetente natildeo estouraraacute buffer do destinataacuterio transmitindo muitos dados muito rapidamente

controle de fluxo

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 74

Controle de fluxo TCP como funciona

(suponha que destinataacuterio TCP descarte segmentos fora de ordem)

espaccedilo de buffer natildeo usado = rwnd (slide 48) = RcvBuffer-[LastByteRcvd -

LastByteRead]

destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento

remetente limita de bytes com ACK a rwndndash garante que buffer do

destinataacuterio natildeo estoura

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

rwndRcvBuffer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 75

Gerenciamento da conexatildeo TCP

lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados

inicializa variaacuteveis TCPndash s seqndash buffers informaccedilatildeo de

controle de fluxo (p e RcvWindow)

cliente inicia a conexatildeo Socket clientSocket = new

Socket(hostnameport ) servidor contactado pelo

cliente Socket connectionSocket =

welcomeSocketaccept()

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 76

Gerenciamento da conexatildeo TCP

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 77

fechando uma conexatildeo

cliente fecha socket clientSocketclose()

etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor

etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN

cliente

FIN

servidor

ACK

ACK

FIN

fecha

fecha

fechado

espe

ra

tem

poriz

ada

Gerenciamento da conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 79

Controle de congestionamento

Uma rede de transmissatildeo lenta eum receptor de alta capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 80

bull As causas e os custos do congestionamento

Cenaacuterio de congestionamento 1 duas conexotildees compartilhando um uacutenico roteador com nuacutemero infinito de buffers

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 81

bull As causas e os custos do congestionamentoCenaacuterio de congestionamento 1 vazatildeo e atraso em funccedilatildeo da taxa de envio do hospedeiro

ldquocustosrdquo do congestionamento Aumento de atrasos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 82

bull As causas e os custos do congestionamento

Cenaacuterio 2 dois hospedeiros (com retransmissotildees) e um roteador com buffers finitos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 83

a) Caso ideal (vazatildeo)

b) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda

c) retransmissatildeo do pacote adiado (natildeo perdido) torna maior (que

o caso perfeito ) para o mesmo

in

out

=

in

out

gt

in

out

ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do

pacote

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 84

bull As causas e os custos do congestionamento

Cenaacuterio 3 quatro remetentesroteadores com buffers finitos e trajetos com muacuteltiplos roteadores

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 85

outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer capacidade

de transmissatildeo anterior usada para esse pacote foi desperdiccedilada

Host A

Host B

o

u

t

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 86

Controle de congestionamento fim a fim

bull A camada de rede natildeo fornece nenhum suporte expliacutecito agrave camada de transporte com a finalidade de controle de congestionamento

Controle de congestionamento assistido pela rede

bull Os componentes da camada de rede (isto eacute roteadores) fornecem retroalimentaccedilatildeo especiacutefica de informaccedilotildees ao remetente a respeito do estado de congestionamento na rede Natildeo usual

Mecanismos de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 87

bull A abordagem adotada pelo TCP eacute obrigar cada remetente a limitar a taxa agrave qual enviam traacutefego para sua conexatildeo como uma funccedilatildeo do congestionamento de rede percebido

Se um remetente TCP perceber que haacute pouco congestionamento no caminho entre ele e o destinataacuterio aumentaraacute sua taxa de envio

Se perceber que haacute congestionamento reduziraacute sua taxa de

envio

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 88

bull Mas essa abordagem levanta trecircs questotildees

1 Como um remetente TCP limita a taxa pela qual envia traacutefego para sua conexatildeo

2 Como um remetente TCP percebe que haacute congestionamento entre ele e o destinataacuterio

3 Que algoritmo o remetente deve utilizar para modificar sua taxa de envio como uma funccedilatildeo do congestionamento fim a fim percebido

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 89

bull Partida lenta TCP

Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 90

1) Cwnd = 1 MSS inicialmente

2) Partida lenta a cada rodada redefine cwnd = cwnd 2

3) Perda de pacotes (esgotamento de temporizaccedilatildeo ndash problema grave) ==gt cwnd = 1 (Tahoe ou Reno)

4) Prevenccedilatildeo de congestionamento apoacutes atingir sstresh cwnd = cwnd + 1

5) Trecircs acks duplicados (buraco no ldquofluxordquo ndash problema brando) entra no estado prevenccedilatildeo de congestionamento e redefine cwnd = 1 (Tahoe) ou cwnd = sstresh (Reno)

6) Sstresh = cwnd2 quando satildeo detectados problemas

Quantidade de dados natildeo reconhecidas no TCP = min(CongWin RecWin)

Controle de congestionamento TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 91

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 93

bull Evoluccedilatildeo da janela de congestionamento do TCP (Tahoe e Reno ndash mais usual)

Recuperaccedilatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 94

Controle de congestionamento TCP

Partida lenta seguida por aumento aditivo no TCP Tahoe

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 95

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 96

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 97

bull O controle de congestionamento AIMD (Additive-increase Multiplicative-Decrease) faz surgir o comportamento semelhante a ldquodentes de serrardquo

bull httpsmediapearsoncmgcomawecs_kurose_compnetwork_7cwcontentinteractiveanimationstcp-congestionindexhtml

Controle de congestionamento no TCP retrospectiva

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 98

O que eacute throughput meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughput meacutedio 075 WRTT (75 WRTT)

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 99

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (Probabilidade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 100

bull Duas conexotildees TCP compartilhando um uacutenico enlace congestionado

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 101

bull Vazatildeo alcanccedilada pelas conexotildees TCP 1 e TCP 2bull Ambas conexotildees em algum momento estatildeo com vazatildeo Abull Ambas vatildeo aumentando a vazatildeo ateacute ocorrer perda ndash Bbull Sstresh cai pela metade e ambas migram para Chellip

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 102

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

ndash Consequecircncia

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Nova aplicaccedilatildeo pede 1 TCP obteacutem taxa de R10 Nova aplicaccedilatildeo pede 11 TCPs obteacutem R2

Equidade

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Multiplexingdemultiplexing
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Principles of reliable data transfer
  • Slide 20
  • Slide 21
  • Reliable data transfer getting started
  • Slide 23
  • Slide 24
  • Slide 25
  • rdt20 FSM specification
  • rdt20 operation with no errors
  • rdt20 error scenario
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • rdt30 in action
  • Slide 39
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Selective repeat dilemma
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • TCP fast retransmit
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
Page 12: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 13

bull O UDP definido no [RFC 768] faz apenas quase tatildeo pouco quanto um protocolo de transporte pode fazer

bull Agrave parte sua funccedilatildeo de multiplexaccedilatildeodemultiplexaccedilatildeo e de alguma verificaccedilatildeo de erros simples ele nada adiciona ao IP

bull Se o desenvolvedor de aplicaccedilatildeo escolher o UDP em vez do TCP a aplicaccedilatildeo estaraacute ldquofalandordquo quase diretamente com o IP

bull O UDP eacute natildeo orientado para conexatildeo Natildeo haacute a apresentaccedilatildeo entre as entidades remetentes e destinataacuterias

Transporte natildeo orientado para conexatildeo UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 14

bull Melhor controle no niacutevel de aplicaccedilatildeo sobre quais dados satildeo enviados e quando menor atraso

bull Natildeo haacute estabelecimento de conexatildeo menor atrasobull Natildeo haacute estados de conexatildeo buffers paracircmetros de

controle de congestionamento nuacutemero de sequecircncia Menor ldquocustordquo

bull Pequeno excesso de cabeccedilalho de pacotes 8 bytes de excesso TCP 20 bytes Menor ldquocustordquo

bull Sem controle de congestionamento do TCP ==gt isso pode implicar em ldquocolapsordquo na rede

bull Eacute possiacutevel uma aplicaccedilatildeo ter transferecircncia confiaacutevel de dados usando UDP

Por que usa-se UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 15

bull Aplicaccedilotildees populares da Internet e seus protocolos de transporte subjacentes

Transporte natildeo orientado para conexatildeo UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 16

bull Estrutura do segmento UDP

Estrutura do segmento UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 17

bull A soma de verificaccedilatildeo UDP serve para detectar erros em todo o segmento

bull Suponha que tenhamos as seguintes trecircs palavras de 16 bits

bull A soma das duas primeiras eacute

bull Adicionando a terceira palavra agrave soma anterior temos

Soma de verificaccedilatildeo UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 18

bull Note que a uacuteltima adiccedilatildeo teve um ldquovai umrdquo no bit mais significativo que foi somado ao bit menos significativo

bull Complemento de 1 0 ==gt 1 1 ==gt 0bull Fazendo o complemento de 1 da soma final

1011010100111101 Esta eacute a soma de verificaccedilatildeobull No destinataacuterio todas as 4 palavras recebidas de 16 bits satildeo

somadas 1111 ==gt Pacote correto algum bit em 0 ==gt algum erro foi introduzido no pacote

bull Por que soma de verificaccedilatildeo no UDPbull Algumas camadas de enlace por exemplo Ethernet fornecem

soma de verificaccedilatildeobull mas nem todas e aleacutem disso um roteador poderia introduzir

algum errobull UDP verifica erros fim a fim

Soma de verificaccedilatildeo UDP

Transport Layer 3-19

Principles of reliable data transfer important in application transport link layers

top-10 list of important networking topics

characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)

Transport Layer 3-20

characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)

Principles of reliable data transfer important in application transport link layers

top-10 list of important networking topics

Transport Layer 3-21

characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)

important in application transport link layers top-10 list of important networking topics

Principles of reliable data transfer

Transport Layer 3-22

sendside

receiveside

rdt_send() called from above (eg by app) Passed data to deliver to receiver upper layer

udt_send() called by rdtto transfer packet over unreliable channel to receiver

rdt_rcv() called when packet arrives on rcv-side of channel

deliver_data() called by rdt to deliver data to upper

Principles of reliable data transfer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 23

vamos desenvolver de forma incremental os lados remetente e destinataacuterio do

protocolo de transferecircncia confiaacutevel de dados (rdt) considerar apenas a transf de dados unidirecional Bidirecional eacute soacute

duplicar a estruturandash mas informaccedilotildees de controle fluiratildeo nas duas direccedilotildees

usar maacutequinas de estado finito (FSM) para especificar remetente e destinataacuterio

estado1

estado2

evento causando transiccedilatildeo de estadoaccedilotildees tomadas sobre transiccedilatildeo de estado

estado quando neste ldquoestadordquo proacuteximo

estado determinadoexclusivamente pelo

proacuteximo evento

eventoaccedilotildees

Transferecircncia confiaacutevel de dados introduccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 24

bull rdt10 ndash Um protocolo para um canal completamente confiaacutevel

Transferecircncia confiaacutevel de dados sobre um canal perfeitamente confiaacutevel rdt10

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 25

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt20

rdt20 ndash Um protocolo para um canal com erros de bits Base dos protocolos ARQ (Automatic Repeat Request)

Detecccedilatildeo de erros (mecanismo do UDP)

Realimentaccedilatildeo do destinataacuterio (ACK ou NACK)

Retransmissatildeobull Pare e espere

Transport Layer 3-26

rdt20 FSM specification

Wait for call from above

sndpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from belowsender

receiverrdt_send(data)

Transport Layer 3-27

rdt20 operation with no errors

Wait for call from above

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from below

rdt_send(data)

Transport Layer 3-28

rdt20 error scenario

Wait for call from above

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from below

rdt_send(data)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 29

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt20

bull O que acontece se o pacote ACK ou NAK estiver corrompido

bull Vamos considerar trecircs possibilidade para ACKs ou NAKs corrompidos1 Ser humano -- A ldquoditadordquo B ldquoOKrdquo ou ldquoRepita por favorrdquo ==gt

A natildeo entende ldquoO que foi que vocecirc disserdquo infinito Peacutessimo2 Bits de soma de verificaccedilatildeo de tal modo que permita ao remetente a

recuperaccedilatildeo de erros de bits Muito bom mas serve somente para canais com erro de bits e natildeo perda de pacotes

3 O Remetente reenvia o pacote de dados corrente quando receber um pacote ACK ou NAK truncado ==gt pode gerar pacotes duplicados Como o destinataacuterio sabe se o pacote conteacutem novos dados ou eacute uma retransmissatildeo ==gt nuacutemero de sequecircncia

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 30

bull rdt21 remetente

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 31

bull rdt21 destinataacuterio

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 32

bull O protocolo rdt21 usa tanto o reconhecimento positivo como negativo do remetente ao destinataacuterio pacote fora de ordem ==gt ACK pacote corrompido ==gt NAK

bull Podemos conseguir o mesmo efeito se ao inveacutes de enviarmos um NAK enviarmos um ACK do uacuteltimo corretamente recebido Ou seja ACK tambeacutem numerado

bull ACKs duplicados indicam ao remetente que o destinataacuterio natildeo recebeu corretamente o pacote seguinte agravequele do ACK duplo

bull rdt22 deve enviar o nuacutemero de sequecircncia no ACK

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21-2

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 33

bull rdt22 remetente

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt22

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 34

bull rdt22 destinataacuterio

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt22

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 35

bull Duas preocupaccedilotildees adicionais devem ser tratadas pelo protocolo1 Como detectar perda de pacotes2 O que fazer quando haacute perdas

bull As teacutecnicas jaacute discutidas atendem a segunda questatildeobull E para a primeira questatildeobull Suponha que o remetente transmita um pacote e que esse

pacote ou seu ACK seja perdido Nenhuma resposta chegaraacute ao remetente Se o remetente natildeo quiser esperar ==gt retransmite o pacote

bull Mas quanto o remetente precisa esperar para ter certeza que algo foi perdido Esperar um RTT Eacute muito difiacutecil estimar o RTT quanto mais ter certeza

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 36

bull Aleacutem disso o ideal seria que o protocolo se recuperasse da perda assim que possiacutevel

bull Na praacutetica O remetente faz uma escolha ponderada de um RTT provaacutevel mas natildeo

garantido que a perda tivesse acontecido Se natildeo receber um ACK nesse periacuteodo retransmite o pacote

bull Se o pacote sofrer um atraso longo pode haver retransmissatildeo mesmo que o pacote ou ACK natildeo tenham sido perdidos Possibilidade de pacotes de dados duplicados

bull Para implementar um mecanismo de retransmissatildeo com base no tempo eacute necessaacuterio um temporizador de contagem regressiva Accedilotildees iniciar atender parar

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 37

bull rdt30 remetente

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Transport Layer 3-38

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

pkt1

ack1

ack0

ack0

(a) no loss

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(b) packet loss

pkt1X

loss

pkt1timeout

resend pkt1

rdt30 in action

Transport Layer 3-39

rdt30 in action

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(c) ACK loss

ack1X

loss

pkt1timeout

resend pkt1

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

send ack0rcv ack0

send pkt1

send pkt0rcv pkt0

pkt0

ack0

(d) premature timeout delayed ACK

pkt1timeout

resend pkt1

ack1

send ack1

send pkt0rcv ack1

pkt0

ack1

ack0

send pkt0rcv ack1 pkt0

rcv pkt0send ack0ack0

rcv pkt0

send ack0(detect duplicate)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 42

bull No coraccedilatildeo do problema do desempenho do rdt30 estaacute o fato de ele ser um protocolo do tipo pare e espere

bull Um protocolo pare e espere em operaccedilatildeo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 43

U remet =

0008

30008 = 000027

microseconds

L R RTT + L R

=

Desempenho do rdt30

rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso pacote 8000 bits

U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando

Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps protocolo de rede limita uso de recursos fiacutesicos Soluccedilatildeo

ndosmicrosseguR

Ldtrans 8

bps10

bits80009

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 44

Um protocolo com paralelismo em operaccedilatildeo

bull O ACK recebido eacute de que pacote

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 45

bull Envio com pare e espere

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 46

bull Envio com paralelismo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Aumento de utilizaccedilatildeopor fator de 3

U remet =

0024 30008

= 00008 microseconds

3 L R RTT + L R

=

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 47

bull Em um protocolo Go-Back-N (GBN) o remetente eacute autorizado a transmitir muacuteltiplos pacotes sem esperar por um reconhecimento

bull Poreacutem fica limitado a ter natildeo mais do que algum nuacutemero maacuteximo permitido N (tamanho da janela) de pacotes natildeo reconhecidos na ldquotubulaccedilatildeordquo

bull Visatildeo do remetente para os nuacutemeros de sequecircncia no protocolo Go-Back-N

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 48

bull Descriccedilatildeo da FSM estendida do remetente GBNbull Quem consegue descrever o funcionamento

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 49

bull Descriccedilatildeo da FSM estendida do destinataacuterio GBN

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 50

Go-Back-N (GBN) em operaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 51

bull Protocolos de repeticcedilatildeo seletiva (SR) evitam retransmissotildees desnecessaacuterias

bull Eles fazem o remetente retransmitir apenas os pacotes suspeitos de terem sido recebidos com erro no destinataacuterio

bull Essa retransmissatildeo individual soacute quando necessaacuteria exige que o destinataacuterio reconheccedila individualmente os pacotes recebidos de modo correto

Repeticcedilatildeo seletiva (SR)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 52

Repeticcedilatildeo seletiva (SR)

Transport Layer 3-53

Selective repeatdilemma

example seq rsquos 0 1 2 3 window size=3

receiver window(after receipt)

sender window(after receipt)

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2 pkt0

timeoutretransmit pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2XXX

will accept packetwith seq number 0

(b) oops

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

X

will accept packetwith seq number 0

0 1 2 3 0 1 2 pkt3

(a) no problem

receiver canrsquot see sender sidereceiver behavior identical in both casessomethingrsquos (very) wrong

receiver sees no difference in two scenarios

duplicate data accepted as new in (b)

Q what relationship between seq size and window size to avoid problem in (b)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 54

Resumo de mecanismos de transferecircncia confiaacutevel de dados e sua utilizaccedilatildeo

bull Soma de verificaccedilatildeo - Usada para detectar erros de bits em um pacote transmitido

bull Temporizador - Usado para controlar a temporizaccedilatildeoretransmissatildeo de um pacote possivelmente porque o pacote (ou seu ACK) foi perdido dentro do canal

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 55

bull Nuacutemero de sequecircncia - Usado para numeraccedilatildeo sequencial de segmentos de dados que transitam do remetente ao destinataacuterio Ou seja pode-se ter vaacuterios segmentos transitando simultaneamente no canal de comunicaccedilatildeo maximizando assim o uso desse canal

bull Reconhecimento - Usado pelo destinataacuterio para avisar o remetente que um pacote ou conjunto de pacotes foi recebido corretamente

bull Janela paralelismo - O remetente pode ficar restrito a enviar somente pacotes com nuacutemeros de sequecircncia que caiam dentro de uma determinada faixa

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 56

bull Uma conexatildeo TCP provecirc um serviccedilo full-duplex

bull A conexatildeo TCP eacute sempre ponto a ponto

bull Uma vez estabelecida uma conexatildeo TCP dois processos de aplicaccedilatildeo podem enviar dados um para o outro 3-way handshake jaacute estabelecendo o MSS

bull O TCP combina cada porccedilatildeo de dados do cliente com um cabeccedilalho TCP formando assim segmentos TCP

A conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 57

Estrutura do segmento TCPURG dados urgentes

(quase natildeo usado)

ACK ACKvaacutelido

PSH empurrar dados agora

RST SYN FINestab conexatildeo

soma de verificaccedilatildeo

da Internet ndash todo o segmento(como em UDP)

bytes destinataacuteriopode aceitar

contagem porbytes de dados(natildeo segmentos)

Opcional e de comprimentovariaacutevel utilizado paranegociar o MSS ou fatorde escala em redes dealta velocidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 58

TCP Estabelecendo e fechando conexotildees

3-way handshakeFinalizando

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 59

s sequecircncia e ACKs do TCP

Cenaacuterio preestabelecido telnet simples

rsquos de sequecircnciandash ldquonuacutemerordquo na cadeia de

bytes do 1o byte nos dados do segmento

ACKsndash seq do proacuteximo byte

esperado do outro ladondash ACK cumulativo

P como o destinataacuterio trata segmentos fora de ordem

ndash R TCP natildeo diz ndash a criteacuterio do implementador

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 60

Tempo de ida e volta e timeout do TCP

P Como definir o valor de timeout do TCP

maior que RTTndash mas RTT varia

muito curto timeout prematurondash retransmissotildees

desnecessaacuterias muito longo baixa

reaccedilatildeo a perda de segmento

P Como estimar o RTT SampleRTT tempo medido

da transmissatildeo do segmento ateacute receber o ACKndash ignora retransmissotildees

SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquondash meacutedia de vaacuterias mediccedilotildees

recentes natildeo apenas SampleRTT atual

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 61

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui exponencialmente

raacutepido valor tiacutepico = 0125

Tempo de ida e volta e timeout do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 62

Amostras de RTTs estimados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 63

definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(geralmente = 025)

depois definir intervalo de timeout

Tempo de ida e volta e timeout do TCP

TimeoutIntervalinicial

= 1 sldquomargem de seguranccedilardquo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 64

TCP cenaacuterios de retransmissatildeo

Hosp A

Seq = 100 20 bytes dados

ACK = 100

tempoTimeout prematuro

Hosp B

Seq = 92 8 bytes dados

ACK = 120

Seq = 92 8 bytes dados

Seq

= 9

2 tim

eout

ACK = 120

Hosp A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio de ACK perdido

Hosp B

X

Seq = 92 8 bytes dados

ACK = 100

tempoS

eq =

92

timeo

ut

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 65

TCP cenaacuterios de retransmissatildeo

Host A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio ACK cumulativo

Host B

X

Seq = 100 20 bytes dados

ACK = 120

tempo

Transport Layer 3-66

TCP fast retransmit time-out period

often relatively long long delay before

resending lost packet detect lost

segments via duplicate ACKs sender often sends

many segments back-to-back

if segment is lost there will likely be many duplicate ACKs

if sender receives 3 ACKs for same data(ldquotriple duplicate ACKsrdquo) resend unacked segment with smallest seq

likely that unacked segment lost so donrsquot wait for timeout

TCP fast retransmit

Transport Layer 3-67

X

fast retransmit after sender receipt of triple duplicate ACK

Host BHost A

Seq=92 8 bytes of data

ACK=100

timeo

ut ACK=100

ACK=100

ACK=100

TCP fast retransmit

Seq=100 20 bytes of data

Seq=100 20 bytes of data

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 69

bull O nuacutemero de sequecircncia para um segmento eacute o nuacutemero do primeiro byte do segmento

bull O nuacutemero de reconhecimento que o hospedeiro A atribui a seu segmento eacute o nuacutemero de sequecircncia do proacuteximo byte que ele estiver aguardando do hospedeiro B

bull Como o TCP somente reconhece bytes ateacute o primeiro byte que estiver faltando na cadeia dizemos que o TCP provecirc reconhecimentos cumulativos

Nuacutemeros de sequecircncia e nuacutemeros de reconhecimento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 70

bull O TCP cria um serviccedilo de transferecircncia confiaacutevel de dados sobre o serviccedilo de melhor esforccedilo do IP

bull O serviccedilo de transferecircncia garante que a cadeia de bytes eacute idecircntica agrave cadeia de bytes enviada pelo sistema final que estaacute do outro lado da conexatildeo

bull Os procedimentos recomendados no [RFC 6298] para gerenciamento de temporizadores TCP utilizam apenas um uacutenico temporizador de retransmissatildeo

Transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 71

bull O TCP provecirc um serviccedilo de controle de fluxo agraves suas aplicaccedilotildees para eliminar a possibilidade de o remetente estourar o buffer do destinataacuterio

bull Controle de fluxo eacute um serviccedilo de compatibilizaccedilatildeo de velocidades

bull O TCP oferece serviccedilo de controle de fluxo fazendo que o remetente mantenha uma variaacutevel denominada janela de recepccedilatildeo

Controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 72

Regulaccedilatildeo da taxa de envio

Uma rede de transmissatildeo raacutepida eum receptor de baixa capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 73

Controle de fluxo TCP

lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo

serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora

processo da aplicaccedilatildeo pode ser lento na leitura do buffer

remetente natildeo estouraraacute buffer do destinataacuterio transmitindo muitos dados muito rapidamente

controle de fluxo

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 74

Controle de fluxo TCP como funciona

(suponha que destinataacuterio TCP descarte segmentos fora de ordem)

espaccedilo de buffer natildeo usado = rwnd (slide 48) = RcvBuffer-[LastByteRcvd -

LastByteRead]

destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento

remetente limita de bytes com ACK a rwndndash garante que buffer do

destinataacuterio natildeo estoura

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

rwndRcvBuffer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 75

Gerenciamento da conexatildeo TCP

lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados

inicializa variaacuteveis TCPndash s seqndash buffers informaccedilatildeo de

controle de fluxo (p e RcvWindow)

cliente inicia a conexatildeo Socket clientSocket = new

Socket(hostnameport ) servidor contactado pelo

cliente Socket connectionSocket =

welcomeSocketaccept()

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 76

Gerenciamento da conexatildeo TCP

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 77

fechando uma conexatildeo

cliente fecha socket clientSocketclose()

etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor

etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN

cliente

FIN

servidor

ACK

ACK

FIN

fecha

fecha

fechado

espe

ra

tem

poriz

ada

Gerenciamento da conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 79

Controle de congestionamento

Uma rede de transmissatildeo lenta eum receptor de alta capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 80

bull As causas e os custos do congestionamento

Cenaacuterio de congestionamento 1 duas conexotildees compartilhando um uacutenico roteador com nuacutemero infinito de buffers

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 81

bull As causas e os custos do congestionamentoCenaacuterio de congestionamento 1 vazatildeo e atraso em funccedilatildeo da taxa de envio do hospedeiro

ldquocustosrdquo do congestionamento Aumento de atrasos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 82

bull As causas e os custos do congestionamento

Cenaacuterio 2 dois hospedeiros (com retransmissotildees) e um roteador com buffers finitos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 83

a) Caso ideal (vazatildeo)

b) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda

c) retransmissatildeo do pacote adiado (natildeo perdido) torna maior (que

o caso perfeito ) para o mesmo

in

out

=

in

out

gt

in

out

ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do

pacote

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 84

bull As causas e os custos do congestionamento

Cenaacuterio 3 quatro remetentesroteadores com buffers finitos e trajetos com muacuteltiplos roteadores

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 85

outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer capacidade

de transmissatildeo anterior usada para esse pacote foi desperdiccedilada

Host A

Host B

o

u

t

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 86

Controle de congestionamento fim a fim

bull A camada de rede natildeo fornece nenhum suporte expliacutecito agrave camada de transporte com a finalidade de controle de congestionamento

Controle de congestionamento assistido pela rede

bull Os componentes da camada de rede (isto eacute roteadores) fornecem retroalimentaccedilatildeo especiacutefica de informaccedilotildees ao remetente a respeito do estado de congestionamento na rede Natildeo usual

Mecanismos de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 87

bull A abordagem adotada pelo TCP eacute obrigar cada remetente a limitar a taxa agrave qual enviam traacutefego para sua conexatildeo como uma funccedilatildeo do congestionamento de rede percebido

Se um remetente TCP perceber que haacute pouco congestionamento no caminho entre ele e o destinataacuterio aumentaraacute sua taxa de envio

Se perceber que haacute congestionamento reduziraacute sua taxa de

envio

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 88

bull Mas essa abordagem levanta trecircs questotildees

1 Como um remetente TCP limita a taxa pela qual envia traacutefego para sua conexatildeo

2 Como um remetente TCP percebe que haacute congestionamento entre ele e o destinataacuterio

3 Que algoritmo o remetente deve utilizar para modificar sua taxa de envio como uma funccedilatildeo do congestionamento fim a fim percebido

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 89

bull Partida lenta TCP

Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 90

1) Cwnd = 1 MSS inicialmente

2) Partida lenta a cada rodada redefine cwnd = cwnd 2

3) Perda de pacotes (esgotamento de temporizaccedilatildeo ndash problema grave) ==gt cwnd = 1 (Tahoe ou Reno)

4) Prevenccedilatildeo de congestionamento apoacutes atingir sstresh cwnd = cwnd + 1

5) Trecircs acks duplicados (buraco no ldquofluxordquo ndash problema brando) entra no estado prevenccedilatildeo de congestionamento e redefine cwnd = 1 (Tahoe) ou cwnd = sstresh (Reno)

6) Sstresh = cwnd2 quando satildeo detectados problemas

Quantidade de dados natildeo reconhecidas no TCP = min(CongWin RecWin)

Controle de congestionamento TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 91

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 93

bull Evoluccedilatildeo da janela de congestionamento do TCP (Tahoe e Reno ndash mais usual)

Recuperaccedilatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 94

Controle de congestionamento TCP

Partida lenta seguida por aumento aditivo no TCP Tahoe

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 95

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 96

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 97

bull O controle de congestionamento AIMD (Additive-increase Multiplicative-Decrease) faz surgir o comportamento semelhante a ldquodentes de serrardquo

bull httpsmediapearsoncmgcomawecs_kurose_compnetwork_7cwcontentinteractiveanimationstcp-congestionindexhtml

Controle de congestionamento no TCP retrospectiva

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 98

O que eacute throughput meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughput meacutedio 075 WRTT (75 WRTT)

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 99

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (Probabilidade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 100

bull Duas conexotildees TCP compartilhando um uacutenico enlace congestionado

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 101

bull Vazatildeo alcanccedilada pelas conexotildees TCP 1 e TCP 2bull Ambas conexotildees em algum momento estatildeo com vazatildeo Abull Ambas vatildeo aumentando a vazatildeo ateacute ocorrer perda ndash Bbull Sstresh cai pela metade e ambas migram para Chellip

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 102

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

ndash Consequecircncia

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Nova aplicaccedilatildeo pede 1 TCP obteacutem taxa de R10 Nova aplicaccedilatildeo pede 11 TCPs obteacutem R2

Equidade

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Multiplexingdemultiplexing
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Principles of reliable data transfer
  • Slide 20
  • Slide 21
  • Reliable data transfer getting started
  • Slide 23
  • Slide 24
  • Slide 25
  • rdt20 FSM specification
  • rdt20 operation with no errors
  • rdt20 error scenario
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • rdt30 in action
  • Slide 39
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Selective repeat dilemma
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • TCP fast retransmit
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
Page 13: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 14

bull Melhor controle no niacutevel de aplicaccedilatildeo sobre quais dados satildeo enviados e quando menor atraso

bull Natildeo haacute estabelecimento de conexatildeo menor atrasobull Natildeo haacute estados de conexatildeo buffers paracircmetros de

controle de congestionamento nuacutemero de sequecircncia Menor ldquocustordquo

bull Pequeno excesso de cabeccedilalho de pacotes 8 bytes de excesso TCP 20 bytes Menor ldquocustordquo

bull Sem controle de congestionamento do TCP ==gt isso pode implicar em ldquocolapsordquo na rede

bull Eacute possiacutevel uma aplicaccedilatildeo ter transferecircncia confiaacutevel de dados usando UDP

Por que usa-se UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 15

bull Aplicaccedilotildees populares da Internet e seus protocolos de transporte subjacentes

Transporte natildeo orientado para conexatildeo UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 16

bull Estrutura do segmento UDP

Estrutura do segmento UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 17

bull A soma de verificaccedilatildeo UDP serve para detectar erros em todo o segmento

bull Suponha que tenhamos as seguintes trecircs palavras de 16 bits

bull A soma das duas primeiras eacute

bull Adicionando a terceira palavra agrave soma anterior temos

Soma de verificaccedilatildeo UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 18

bull Note que a uacuteltima adiccedilatildeo teve um ldquovai umrdquo no bit mais significativo que foi somado ao bit menos significativo

bull Complemento de 1 0 ==gt 1 1 ==gt 0bull Fazendo o complemento de 1 da soma final

1011010100111101 Esta eacute a soma de verificaccedilatildeobull No destinataacuterio todas as 4 palavras recebidas de 16 bits satildeo

somadas 1111 ==gt Pacote correto algum bit em 0 ==gt algum erro foi introduzido no pacote

bull Por que soma de verificaccedilatildeo no UDPbull Algumas camadas de enlace por exemplo Ethernet fornecem

soma de verificaccedilatildeobull mas nem todas e aleacutem disso um roteador poderia introduzir

algum errobull UDP verifica erros fim a fim

Soma de verificaccedilatildeo UDP

Transport Layer 3-19

Principles of reliable data transfer important in application transport link layers

top-10 list of important networking topics

characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)

Transport Layer 3-20

characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)

Principles of reliable data transfer important in application transport link layers

top-10 list of important networking topics

Transport Layer 3-21

characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)

important in application transport link layers top-10 list of important networking topics

Principles of reliable data transfer

Transport Layer 3-22

sendside

receiveside

rdt_send() called from above (eg by app) Passed data to deliver to receiver upper layer

udt_send() called by rdtto transfer packet over unreliable channel to receiver

rdt_rcv() called when packet arrives on rcv-side of channel

deliver_data() called by rdt to deliver data to upper

Principles of reliable data transfer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 23

vamos desenvolver de forma incremental os lados remetente e destinataacuterio do

protocolo de transferecircncia confiaacutevel de dados (rdt) considerar apenas a transf de dados unidirecional Bidirecional eacute soacute

duplicar a estruturandash mas informaccedilotildees de controle fluiratildeo nas duas direccedilotildees

usar maacutequinas de estado finito (FSM) para especificar remetente e destinataacuterio

estado1

estado2

evento causando transiccedilatildeo de estadoaccedilotildees tomadas sobre transiccedilatildeo de estado

estado quando neste ldquoestadordquo proacuteximo

estado determinadoexclusivamente pelo

proacuteximo evento

eventoaccedilotildees

Transferecircncia confiaacutevel de dados introduccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 24

bull rdt10 ndash Um protocolo para um canal completamente confiaacutevel

Transferecircncia confiaacutevel de dados sobre um canal perfeitamente confiaacutevel rdt10

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 25

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt20

rdt20 ndash Um protocolo para um canal com erros de bits Base dos protocolos ARQ (Automatic Repeat Request)

Detecccedilatildeo de erros (mecanismo do UDP)

Realimentaccedilatildeo do destinataacuterio (ACK ou NACK)

Retransmissatildeobull Pare e espere

Transport Layer 3-26

rdt20 FSM specification

Wait for call from above

sndpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from belowsender

receiverrdt_send(data)

Transport Layer 3-27

rdt20 operation with no errors

Wait for call from above

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from below

rdt_send(data)

Transport Layer 3-28

rdt20 error scenario

Wait for call from above

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from below

rdt_send(data)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 29

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt20

bull O que acontece se o pacote ACK ou NAK estiver corrompido

bull Vamos considerar trecircs possibilidade para ACKs ou NAKs corrompidos1 Ser humano -- A ldquoditadordquo B ldquoOKrdquo ou ldquoRepita por favorrdquo ==gt

A natildeo entende ldquoO que foi que vocecirc disserdquo infinito Peacutessimo2 Bits de soma de verificaccedilatildeo de tal modo que permita ao remetente a

recuperaccedilatildeo de erros de bits Muito bom mas serve somente para canais com erro de bits e natildeo perda de pacotes

3 O Remetente reenvia o pacote de dados corrente quando receber um pacote ACK ou NAK truncado ==gt pode gerar pacotes duplicados Como o destinataacuterio sabe se o pacote conteacutem novos dados ou eacute uma retransmissatildeo ==gt nuacutemero de sequecircncia

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 30

bull rdt21 remetente

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 31

bull rdt21 destinataacuterio

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 32

bull O protocolo rdt21 usa tanto o reconhecimento positivo como negativo do remetente ao destinataacuterio pacote fora de ordem ==gt ACK pacote corrompido ==gt NAK

bull Podemos conseguir o mesmo efeito se ao inveacutes de enviarmos um NAK enviarmos um ACK do uacuteltimo corretamente recebido Ou seja ACK tambeacutem numerado

bull ACKs duplicados indicam ao remetente que o destinataacuterio natildeo recebeu corretamente o pacote seguinte agravequele do ACK duplo

bull rdt22 deve enviar o nuacutemero de sequecircncia no ACK

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21-2

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 33

bull rdt22 remetente

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt22

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 34

bull rdt22 destinataacuterio

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt22

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 35

bull Duas preocupaccedilotildees adicionais devem ser tratadas pelo protocolo1 Como detectar perda de pacotes2 O que fazer quando haacute perdas

bull As teacutecnicas jaacute discutidas atendem a segunda questatildeobull E para a primeira questatildeobull Suponha que o remetente transmita um pacote e que esse

pacote ou seu ACK seja perdido Nenhuma resposta chegaraacute ao remetente Se o remetente natildeo quiser esperar ==gt retransmite o pacote

bull Mas quanto o remetente precisa esperar para ter certeza que algo foi perdido Esperar um RTT Eacute muito difiacutecil estimar o RTT quanto mais ter certeza

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 36

bull Aleacutem disso o ideal seria que o protocolo se recuperasse da perda assim que possiacutevel

bull Na praacutetica O remetente faz uma escolha ponderada de um RTT provaacutevel mas natildeo

garantido que a perda tivesse acontecido Se natildeo receber um ACK nesse periacuteodo retransmite o pacote

bull Se o pacote sofrer um atraso longo pode haver retransmissatildeo mesmo que o pacote ou ACK natildeo tenham sido perdidos Possibilidade de pacotes de dados duplicados

bull Para implementar um mecanismo de retransmissatildeo com base no tempo eacute necessaacuterio um temporizador de contagem regressiva Accedilotildees iniciar atender parar

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 37

bull rdt30 remetente

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Transport Layer 3-38

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

pkt1

ack1

ack0

ack0

(a) no loss

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(b) packet loss

pkt1X

loss

pkt1timeout

resend pkt1

rdt30 in action

Transport Layer 3-39

rdt30 in action

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(c) ACK loss

ack1X

loss

pkt1timeout

resend pkt1

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

send ack0rcv ack0

send pkt1

send pkt0rcv pkt0

pkt0

ack0

(d) premature timeout delayed ACK

pkt1timeout

resend pkt1

ack1

send ack1

send pkt0rcv ack1

pkt0

ack1

ack0

send pkt0rcv ack1 pkt0

rcv pkt0send ack0ack0

rcv pkt0

send ack0(detect duplicate)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 42

bull No coraccedilatildeo do problema do desempenho do rdt30 estaacute o fato de ele ser um protocolo do tipo pare e espere

bull Um protocolo pare e espere em operaccedilatildeo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 43

U remet =

0008

30008 = 000027

microseconds

L R RTT + L R

=

Desempenho do rdt30

rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso pacote 8000 bits

U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando

Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps protocolo de rede limita uso de recursos fiacutesicos Soluccedilatildeo

ndosmicrosseguR

Ldtrans 8

bps10

bits80009

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 44

Um protocolo com paralelismo em operaccedilatildeo

bull O ACK recebido eacute de que pacote

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 45

bull Envio com pare e espere

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 46

bull Envio com paralelismo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Aumento de utilizaccedilatildeopor fator de 3

U remet =

0024 30008

= 00008 microseconds

3 L R RTT + L R

=

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 47

bull Em um protocolo Go-Back-N (GBN) o remetente eacute autorizado a transmitir muacuteltiplos pacotes sem esperar por um reconhecimento

bull Poreacutem fica limitado a ter natildeo mais do que algum nuacutemero maacuteximo permitido N (tamanho da janela) de pacotes natildeo reconhecidos na ldquotubulaccedilatildeordquo

bull Visatildeo do remetente para os nuacutemeros de sequecircncia no protocolo Go-Back-N

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 48

bull Descriccedilatildeo da FSM estendida do remetente GBNbull Quem consegue descrever o funcionamento

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 49

bull Descriccedilatildeo da FSM estendida do destinataacuterio GBN

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 50

Go-Back-N (GBN) em operaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 51

bull Protocolos de repeticcedilatildeo seletiva (SR) evitam retransmissotildees desnecessaacuterias

bull Eles fazem o remetente retransmitir apenas os pacotes suspeitos de terem sido recebidos com erro no destinataacuterio

bull Essa retransmissatildeo individual soacute quando necessaacuteria exige que o destinataacuterio reconheccedila individualmente os pacotes recebidos de modo correto

Repeticcedilatildeo seletiva (SR)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 52

Repeticcedilatildeo seletiva (SR)

Transport Layer 3-53

Selective repeatdilemma

example seq rsquos 0 1 2 3 window size=3

receiver window(after receipt)

sender window(after receipt)

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2 pkt0

timeoutretransmit pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2XXX

will accept packetwith seq number 0

(b) oops

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

X

will accept packetwith seq number 0

0 1 2 3 0 1 2 pkt3

(a) no problem

receiver canrsquot see sender sidereceiver behavior identical in both casessomethingrsquos (very) wrong

receiver sees no difference in two scenarios

duplicate data accepted as new in (b)

Q what relationship between seq size and window size to avoid problem in (b)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 54

Resumo de mecanismos de transferecircncia confiaacutevel de dados e sua utilizaccedilatildeo

bull Soma de verificaccedilatildeo - Usada para detectar erros de bits em um pacote transmitido

bull Temporizador - Usado para controlar a temporizaccedilatildeoretransmissatildeo de um pacote possivelmente porque o pacote (ou seu ACK) foi perdido dentro do canal

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 55

bull Nuacutemero de sequecircncia - Usado para numeraccedilatildeo sequencial de segmentos de dados que transitam do remetente ao destinataacuterio Ou seja pode-se ter vaacuterios segmentos transitando simultaneamente no canal de comunicaccedilatildeo maximizando assim o uso desse canal

bull Reconhecimento - Usado pelo destinataacuterio para avisar o remetente que um pacote ou conjunto de pacotes foi recebido corretamente

bull Janela paralelismo - O remetente pode ficar restrito a enviar somente pacotes com nuacutemeros de sequecircncia que caiam dentro de uma determinada faixa

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 56

bull Uma conexatildeo TCP provecirc um serviccedilo full-duplex

bull A conexatildeo TCP eacute sempre ponto a ponto

bull Uma vez estabelecida uma conexatildeo TCP dois processos de aplicaccedilatildeo podem enviar dados um para o outro 3-way handshake jaacute estabelecendo o MSS

bull O TCP combina cada porccedilatildeo de dados do cliente com um cabeccedilalho TCP formando assim segmentos TCP

A conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 57

Estrutura do segmento TCPURG dados urgentes

(quase natildeo usado)

ACK ACKvaacutelido

PSH empurrar dados agora

RST SYN FINestab conexatildeo

soma de verificaccedilatildeo

da Internet ndash todo o segmento(como em UDP)

bytes destinataacuteriopode aceitar

contagem porbytes de dados(natildeo segmentos)

Opcional e de comprimentovariaacutevel utilizado paranegociar o MSS ou fatorde escala em redes dealta velocidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 58

TCP Estabelecendo e fechando conexotildees

3-way handshakeFinalizando

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 59

s sequecircncia e ACKs do TCP

Cenaacuterio preestabelecido telnet simples

rsquos de sequecircnciandash ldquonuacutemerordquo na cadeia de

bytes do 1o byte nos dados do segmento

ACKsndash seq do proacuteximo byte

esperado do outro ladondash ACK cumulativo

P como o destinataacuterio trata segmentos fora de ordem

ndash R TCP natildeo diz ndash a criteacuterio do implementador

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 60

Tempo de ida e volta e timeout do TCP

P Como definir o valor de timeout do TCP

maior que RTTndash mas RTT varia

muito curto timeout prematurondash retransmissotildees

desnecessaacuterias muito longo baixa

reaccedilatildeo a perda de segmento

P Como estimar o RTT SampleRTT tempo medido

da transmissatildeo do segmento ateacute receber o ACKndash ignora retransmissotildees

SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquondash meacutedia de vaacuterias mediccedilotildees

recentes natildeo apenas SampleRTT atual

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 61

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui exponencialmente

raacutepido valor tiacutepico = 0125

Tempo de ida e volta e timeout do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 62

Amostras de RTTs estimados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 63

definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(geralmente = 025)

depois definir intervalo de timeout

Tempo de ida e volta e timeout do TCP

TimeoutIntervalinicial

= 1 sldquomargem de seguranccedilardquo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 64

TCP cenaacuterios de retransmissatildeo

Hosp A

Seq = 100 20 bytes dados

ACK = 100

tempoTimeout prematuro

Hosp B

Seq = 92 8 bytes dados

ACK = 120

Seq = 92 8 bytes dados

Seq

= 9

2 tim

eout

ACK = 120

Hosp A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio de ACK perdido

Hosp B

X

Seq = 92 8 bytes dados

ACK = 100

tempoS

eq =

92

timeo

ut

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 65

TCP cenaacuterios de retransmissatildeo

Host A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio ACK cumulativo

Host B

X

Seq = 100 20 bytes dados

ACK = 120

tempo

Transport Layer 3-66

TCP fast retransmit time-out period

often relatively long long delay before

resending lost packet detect lost

segments via duplicate ACKs sender often sends

many segments back-to-back

if segment is lost there will likely be many duplicate ACKs

if sender receives 3 ACKs for same data(ldquotriple duplicate ACKsrdquo) resend unacked segment with smallest seq

likely that unacked segment lost so donrsquot wait for timeout

TCP fast retransmit

Transport Layer 3-67

X

fast retransmit after sender receipt of triple duplicate ACK

Host BHost A

Seq=92 8 bytes of data

ACK=100

timeo

ut ACK=100

ACK=100

ACK=100

TCP fast retransmit

Seq=100 20 bytes of data

Seq=100 20 bytes of data

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 69

bull O nuacutemero de sequecircncia para um segmento eacute o nuacutemero do primeiro byte do segmento

bull O nuacutemero de reconhecimento que o hospedeiro A atribui a seu segmento eacute o nuacutemero de sequecircncia do proacuteximo byte que ele estiver aguardando do hospedeiro B

bull Como o TCP somente reconhece bytes ateacute o primeiro byte que estiver faltando na cadeia dizemos que o TCP provecirc reconhecimentos cumulativos

Nuacutemeros de sequecircncia e nuacutemeros de reconhecimento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 70

bull O TCP cria um serviccedilo de transferecircncia confiaacutevel de dados sobre o serviccedilo de melhor esforccedilo do IP

bull O serviccedilo de transferecircncia garante que a cadeia de bytes eacute idecircntica agrave cadeia de bytes enviada pelo sistema final que estaacute do outro lado da conexatildeo

bull Os procedimentos recomendados no [RFC 6298] para gerenciamento de temporizadores TCP utilizam apenas um uacutenico temporizador de retransmissatildeo

Transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 71

bull O TCP provecirc um serviccedilo de controle de fluxo agraves suas aplicaccedilotildees para eliminar a possibilidade de o remetente estourar o buffer do destinataacuterio

bull Controle de fluxo eacute um serviccedilo de compatibilizaccedilatildeo de velocidades

bull O TCP oferece serviccedilo de controle de fluxo fazendo que o remetente mantenha uma variaacutevel denominada janela de recepccedilatildeo

Controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 72

Regulaccedilatildeo da taxa de envio

Uma rede de transmissatildeo raacutepida eum receptor de baixa capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 73

Controle de fluxo TCP

lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo

serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora

processo da aplicaccedilatildeo pode ser lento na leitura do buffer

remetente natildeo estouraraacute buffer do destinataacuterio transmitindo muitos dados muito rapidamente

controle de fluxo

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 74

Controle de fluxo TCP como funciona

(suponha que destinataacuterio TCP descarte segmentos fora de ordem)

espaccedilo de buffer natildeo usado = rwnd (slide 48) = RcvBuffer-[LastByteRcvd -

LastByteRead]

destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento

remetente limita de bytes com ACK a rwndndash garante que buffer do

destinataacuterio natildeo estoura

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

rwndRcvBuffer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 75

Gerenciamento da conexatildeo TCP

lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados

inicializa variaacuteveis TCPndash s seqndash buffers informaccedilatildeo de

controle de fluxo (p e RcvWindow)

cliente inicia a conexatildeo Socket clientSocket = new

Socket(hostnameport ) servidor contactado pelo

cliente Socket connectionSocket =

welcomeSocketaccept()

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 76

Gerenciamento da conexatildeo TCP

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 77

fechando uma conexatildeo

cliente fecha socket clientSocketclose()

etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor

etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN

cliente

FIN

servidor

ACK

ACK

FIN

fecha

fecha

fechado

espe

ra

tem

poriz

ada

Gerenciamento da conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 79

Controle de congestionamento

Uma rede de transmissatildeo lenta eum receptor de alta capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 80

bull As causas e os custos do congestionamento

Cenaacuterio de congestionamento 1 duas conexotildees compartilhando um uacutenico roteador com nuacutemero infinito de buffers

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 81

bull As causas e os custos do congestionamentoCenaacuterio de congestionamento 1 vazatildeo e atraso em funccedilatildeo da taxa de envio do hospedeiro

ldquocustosrdquo do congestionamento Aumento de atrasos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 82

bull As causas e os custos do congestionamento

Cenaacuterio 2 dois hospedeiros (com retransmissotildees) e um roteador com buffers finitos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 83

a) Caso ideal (vazatildeo)

b) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda

c) retransmissatildeo do pacote adiado (natildeo perdido) torna maior (que

o caso perfeito ) para o mesmo

in

out

=

in

out

gt

in

out

ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do

pacote

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 84

bull As causas e os custos do congestionamento

Cenaacuterio 3 quatro remetentesroteadores com buffers finitos e trajetos com muacuteltiplos roteadores

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 85

outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer capacidade

de transmissatildeo anterior usada para esse pacote foi desperdiccedilada

Host A

Host B

o

u

t

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 86

Controle de congestionamento fim a fim

bull A camada de rede natildeo fornece nenhum suporte expliacutecito agrave camada de transporte com a finalidade de controle de congestionamento

Controle de congestionamento assistido pela rede

bull Os componentes da camada de rede (isto eacute roteadores) fornecem retroalimentaccedilatildeo especiacutefica de informaccedilotildees ao remetente a respeito do estado de congestionamento na rede Natildeo usual

Mecanismos de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 87

bull A abordagem adotada pelo TCP eacute obrigar cada remetente a limitar a taxa agrave qual enviam traacutefego para sua conexatildeo como uma funccedilatildeo do congestionamento de rede percebido

Se um remetente TCP perceber que haacute pouco congestionamento no caminho entre ele e o destinataacuterio aumentaraacute sua taxa de envio

Se perceber que haacute congestionamento reduziraacute sua taxa de

envio

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 88

bull Mas essa abordagem levanta trecircs questotildees

1 Como um remetente TCP limita a taxa pela qual envia traacutefego para sua conexatildeo

2 Como um remetente TCP percebe que haacute congestionamento entre ele e o destinataacuterio

3 Que algoritmo o remetente deve utilizar para modificar sua taxa de envio como uma funccedilatildeo do congestionamento fim a fim percebido

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 89

bull Partida lenta TCP

Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 90

1) Cwnd = 1 MSS inicialmente

2) Partida lenta a cada rodada redefine cwnd = cwnd 2

3) Perda de pacotes (esgotamento de temporizaccedilatildeo ndash problema grave) ==gt cwnd = 1 (Tahoe ou Reno)

4) Prevenccedilatildeo de congestionamento apoacutes atingir sstresh cwnd = cwnd + 1

5) Trecircs acks duplicados (buraco no ldquofluxordquo ndash problema brando) entra no estado prevenccedilatildeo de congestionamento e redefine cwnd = 1 (Tahoe) ou cwnd = sstresh (Reno)

6) Sstresh = cwnd2 quando satildeo detectados problemas

Quantidade de dados natildeo reconhecidas no TCP = min(CongWin RecWin)

Controle de congestionamento TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 91

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 93

bull Evoluccedilatildeo da janela de congestionamento do TCP (Tahoe e Reno ndash mais usual)

Recuperaccedilatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 94

Controle de congestionamento TCP

Partida lenta seguida por aumento aditivo no TCP Tahoe

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 95

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 96

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 97

bull O controle de congestionamento AIMD (Additive-increase Multiplicative-Decrease) faz surgir o comportamento semelhante a ldquodentes de serrardquo

bull httpsmediapearsoncmgcomawecs_kurose_compnetwork_7cwcontentinteractiveanimationstcp-congestionindexhtml

Controle de congestionamento no TCP retrospectiva

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 98

O que eacute throughput meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughput meacutedio 075 WRTT (75 WRTT)

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 99

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (Probabilidade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 100

bull Duas conexotildees TCP compartilhando um uacutenico enlace congestionado

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 101

bull Vazatildeo alcanccedilada pelas conexotildees TCP 1 e TCP 2bull Ambas conexotildees em algum momento estatildeo com vazatildeo Abull Ambas vatildeo aumentando a vazatildeo ateacute ocorrer perda ndash Bbull Sstresh cai pela metade e ambas migram para Chellip

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 102

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

ndash Consequecircncia

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Nova aplicaccedilatildeo pede 1 TCP obteacutem taxa de R10 Nova aplicaccedilatildeo pede 11 TCPs obteacutem R2

Equidade

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Multiplexingdemultiplexing
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Principles of reliable data transfer
  • Slide 20
  • Slide 21
  • Reliable data transfer getting started
  • Slide 23
  • Slide 24
  • Slide 25
  • rdt20 FSM specification
  • rdt20 operation with no errors
  • rdt20 error scenario
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • rdt30 in action
  • Slide 39
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Selective repeat dilemma
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • TCP fast retransmit
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
Page 14: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 15

bull Aplicaccedilotildees populares da Internet e seus protocolos de transporte subjacentes

Transporte natildeo orientado para conexatildeo UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 16

bull Estrutura do segmento UDP

Estrutura do segmento UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 17

bull A soma de verificaccedilatildeo UDP serve para detectar erros em todo o segmento

bull Suponha que tenhamos as seguintes trecircs palavras de 16 bits

bull A soma das duas primeiras eacute

bull Adicionando a terceira palavra agrave soma anterior temos

Soma de verificaccedilatildeo UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 18

bull Note que a uacuteltima adiccedilatildeo teve um ldquovai umrdquo no bit mais significativo que foi somado ao bit menos significativo

bull Complemento de 1 0 ==gt 1 1 ==gt 0bull Fazendo o complemento de 1 da soma final

1011010100111101 Esta eacute a soma de verificaccedilatildeobull No destinataacuterio todas as 4 palavras recebidas de 16 bits satildeo

somadas 1111 ==gt Pacote correto algum bit em 0 ==gt algum erro foi introduzido no pacote

bull Por que soma de verificaccedilatildeo no UDPbull Algumas camadas de enlace por exemplo Ethernet fornecem

soma de verificaccedilatildeobull mas nem todas e aleacutem disso um roteador poderia introduzir

algum errobull UDP verifica erros fim a fim

Soma de verificaccedilatildeo UDP

Transport Layer 3-19

Principles of reliable data transfer important in application transport link layers

top-10 list of important networking topics

characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)

Transport Layer 3-20

characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)

Principles of reliable data transfer important in application transport link layers

top-10 list of important networking topics

Transport Layer 3-21

characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)

important in application transport link layers top-10 list of important networking topics

Principles of reliable data transfer

Transport Layer 3-22

sendside

receiveside

rdt_send() called from above (eg by app) Passed data to deliver to receiver upper layer

udt_send() called by rdtto transfer packet over unreliable channel to receiver

rdt_rcv() called when packet arrives on rcv-side of channel

deliver_data() called by rdt to deliver data to upper

Principles of reliable data transfer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 23

vamos desenvolver de forma incremental os lados remetente e destinataacuterio do

protocolo de transferecircncia confiaacutevel de dados (rdt) considerar apenas a transf de dados unidirecional Bidirecional eacute soacute

duplicar a estruturandash mas informaccedilotildees de controle fluiratildeo nas duas direccedilotildees

usar maacutequinas de estado finito (FSM) para especificar remetente e destinataacuterio

estado1

estado2

evento causando transiccedilatildeo de estadoaccedilotildees tomadas sobre transiccedilatildeo de estado

estado quando neste ldquoestadordquo proacuteximo

estado determinadoexclusivamente pelo

proacuteximo evento

eventoaccedilotildees

Transferecircncia confiaacutevel de dados introduccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 24

bull rdt10 ndash Um protocolo para um canal completamente confiaacutevel

Transferecircncia confiaacutevel de dados sobre um canal perfeitamente confiaacutevel rdt10

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 25

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt20

rdt20 ndash Um protocolo para um canal com erros de bits Base dos protocolos ARQ (Automatic Repeat Request)

Detecccedilatildeo de erros (mecanismo do UDP)

Realimentaccedilatildeo do destinataacuterio (ACK ou NACK)

Retransmissatildeobull Pare e espere

Transport Layer 3-26

rdt20 FSM specification

Wait for call from above

sndpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from belowsender

receiverrdt_send(data)

Transport Layer 3-27

rdt20 operation with no errors

Wait for call from above

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from below

rdt_send(data)

Transport Layer 3-28

rdt20 error scenario

Wait for call from above

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from below

rdt_send(data)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 29

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt20

bull O que acontece se o pacote ACK ou NAK estiver corrompido

bull Vamos considerar trecircs possibilidade para ACKs ou NAKs corrompidos1 Ser humano -- A ldquoditadordquo B ldquoOKrdquo ou ldquoRepita por favorrdquo ==gt

A natildeo entende ldquoO que foi que vocecirc disserdquo infinito Peacutessimo2 Bits de soma de verificaccedilatildeo de tal modo que permita ao remetente a

recuperaccedilatildeo de erros de bits Muito bom mas serve somente para canais com erro de bits e natildeo perda de pacotes

3 O Remetente reenvia o pacote de dados corrente quando receber um pacote ACK ou NAK truncado ==gt pode gerar pacotes duplicados Como o destinataacuterio sabe se o pacote conteacutem novos dados ou eacute uma retransmissatildeo ==gt nuacutemero de sequecircncia

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 30

bull rdt21 remetente

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 31

bull rdt21 destinataacuterio

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 32

bull O protocolo rdt21 usa tanto o reconhecimento positivo como negativo do remetente ao destinataacuterio pacote fora de ordem ==gt ACK pacote corrompido ==gt NAK

bull Podemos conseguir o mesmo efeito se ao inveacutes de enviarmos um NAK enviarmos um ACK do uacuteltimo corretamente recebido Ou seja ACK tambeacutem numerado

bull ACKs duplicados indicam ao remetente que o destinataacuterio natildeo recebeu corretamente o pacote seguinte agravequele do ACK duplo

bull rdt22 deve enviar o nuacutemero de sequecircncia no ACK

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21-2

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 33

bull rdt22 remetente

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt22

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 34

bull rdt22 destinataacuterio

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt22

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 35

bull Duas preocupaccedilotildees adicionais devem ser tratadas pelo protocolo1 Como detectar perda de pacotes2 O que fazer quando haacute perdas

bull As teacutecnicas jaacute discutidas atendem a segunda questatildeobull E para a primeira questatildeobull Suponha que o remetente transmita um pacote e que esse

pacote ou seu ACK seja perdido Nenhuma resposta chegaraacute ao remetente Se o remetente natildeo quiser esperar ==gt retransmite o pacote

bull Mas quanto o remetente precisa esperar para ter certeza que algo foi perdido Esperar um RTT Eacute muito difiacutecil estimar o RTT quanto mais ter certeza

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 36

bull Aleacutem disso o ideal seria que o protocolo se recuperasse da perda assim que possiacutevel

bull Na praacutetica O remetente faz uma escolha ponderada de um RTT provaacutevel mas natildeo

garantido que a perda tivesse acontecido Se natildeo receber um ACK nesse periacuteodo retransmite o pacote

bull Se o pacote sofrer um atraso longo pode haver retransmissatildeo mesmo que o pacote ou ACK natildeo tenham sido perdidos Possibilidade de pacotes de dados duplicados

bull Para implementar um mecanismo de retransmissatildeo com base no tempo eacute necessaacuterio um temporizador de contagem regressiva Accedilotildees iniciar atender parar

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 37

bull rdt30 remetente

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Transport Layer 3-38

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

pkt1

ack1

ack0

ack0

(a) no loss

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(b) packet loss

pkt1X

loss

pkt1timeout

resend pkt1

rdt30 in action

Transport Layer 3-39

rdt30 in action

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(c) ACK loss

ack1X

loss

pkt1timeout

resend pkt1

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

send ack0rcv ack0

send pkt1

send pkt0rcv pkt0

pkt0

ack0

(d) premature timeout delayed ACK

pkt1timeout

resend pkt1

ack1

send ack1

send pkt0rcv ack1

pkt0

ack1

ack0

send pkt0rcv ack1 pkt0

rcv pkt0send ack0ack0

rcv pkt0

send ack0(detect duplicate)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 42

bull No coraccedilatildeo do problema do desempenho do rdt30 estaacute o fato de ele ser um protocolo do tipo pare e espere

bull Um protocolo pare e espere em operaccedilatildeo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 43

U remet =

0008

30008 = 000027

microseconds

L R RTT + L R

=

Desempenho do rdt30

rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso pacote 8000 bits

U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando

Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps protocolo de rede limita uso de recursos fiacutesicos Soluccedilatildeo

ndosmicrosseguR

Ldtrans 8

bps10

bits80009

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 44

Um protocolo com paralelismo em operaccedilatildeo

bull O ACK recebido eacute de que pacote

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 45

bull Envio com pare e espere

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 46

bull Envio com paralelismo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Aumento de utilizaccedilatildeopor fator de 3

U remet =

0024 30008

= 00008 microseconds

3 L R RTT + L R

=

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 47

bull Em um protocolo Go-Back-N (GBN) o remetente eacute autorizado a transmitir muacuteltiplos pacotes sem esperar por um reconhecimento

bull Poreacutem fica limitado a ter natildeo mais do que algum nuacutemero maacuteximo permitido N (tamanho da janela) de pacotes natildeo reconhecidos na ldquotubulaccedilatildeordquo

bull Visatildeo do remetente para os nuacutemeros de sequecircncia no protocolo Go-Back-N

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 48

bull Descriccedilatildeo da FSM estendida do remetente GBNbull Quem consegue descrever o funcionamento

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 49

bull Descriccedilatildeo da FSM estendida do destinataacuterio GBN

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 50

Go-Back-N (GBN) em operaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 51

bull Protocolos de repeticcedilatildeo seletiva (SR) evitam retransmissotildees desnecessaacuterias

bull Eles fazem o remetente retransmitir apenas os pacotes suspeitos de terem sido recebidos com erro no destinataacuterio

bull Essa retransmissatildeo individual soacute quando necessaacuteria exige que o destinataacuterio reconheccedila individualmente os pacotes recebidos de modo correto

Repeticcedilatildeo seletiva (SR)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 52

Repeticcedilatildeo seletiva (SR)

Transport Layer 3-53

Selective repeatdilemma

example seq rsquos 0 1 2 3 window size=3

receiver window(after receipt)

sender window(after receipt)

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2 pkt0

timeoutretransmit pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2XXX

will accept packetwith seq number 0

(b) oops

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

X

will accept packetwith seq number 0

0 1 2 3 0 1 2 pkt3

(a) no problem

receiver canrsquot see sender sidereceiver behavior identical in both casessomethingrsquos (very) wrong

receiver sees no difference in two scenarios

duplicate data accepted as new in (b)

Q what relationship between seq size and window size to avoid problem in (b)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 54

Resumo de mecanismos de transferecircncia confiaacutevel de dados e sua utilizaccedilatildeo

bull Soma de verificaccedilatildeo - Usada para detectar erros de bits em um pacote transmitido

bull Temporizador - Usado para controlar a temporizaccedilatildeoretransmissatildeo de um pacote possivelmente porque o pacote (ou seu ACK) foi perdido dentro do canal

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 55

bull Nuacutemero de sequecircncia - Usado para numeraccedilatildeo sequencial de segmentos de dados que transitam do remetente ao destinataacuterio Ou seja pode-se ter vaacuterios segmentos transitando simultaneamente no canal de comunicaccedilatildeo maximizando assim o uso desse canal

bull Reconhecimento - Usado pelo destinataacuterio para avisar o remetente que um pacote ou conjunto de pacotes foi recebido corretamente

bull Janela paralelismo - O remetente pode ficar restrito a enviar somente pacotes com nuacutemeros de sequecircncia que caiam dentro de uma determinada faixa

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 56

bull Uma conexatildeo TCP provecirc um serviccedilo full-duplex

bull A conexatildeo TCP eacute sempre ponto a ponto

bull Uma vez estabelecida uma conexatildeo TCP dois processos de aplicaccedilatildeo podem enviar dados um para o outro 3-way handshake jaacute estabelecendo o MSS

bull O TCP combina cada porccedilatildeo de dados do cliente com um cabeccedilalho TCP formando assim segmentos TCP

A conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 57

Estrutura do segmento TCPURG dados urgentes

(quase natildeo usado)

ACK ACKvaacutelido

PSH empurrar dados agora

RST SYN FINestab conexatildeo

soma de verificaccedilatildeo

da Internet ndash todo o segmento(como em UDP)

bytes destinataacuteriopode aceitar

contagem porbytes de dados(natildeo segmentos)

Opcional e de comprimentovariaacutevel utilizado paranegociar o MSS ou fatorde escala em redes dealta velocidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 58

TCP Estabelecendo e fechando conexotildees

3-way handshakeFinalizando

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 59

s sequecircncia e ACKs do TCP

Cenaacuterio preestabelecido telnet simples

rsquos de sequecircnciandash ldquonuacutemerordquo na cadeia de

bytes do 1o byte nos dados do segmento

ACKsndash seq do proacuteximo byte

esperado do outro ladondash ACK cumulativo

P como o destinataacuterio trata segmentos fora de ordem

ndash R TCP natildeo diz ndash a criteacuterio do implementador

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 60

Tempo de ida e volta e timeout do TCP

P Como definir o valor de timeout do TCP

maior que RTTndash mas RTT varia

muito curto timeout prematurondash retransmissotildees

desnecessaacuterias muito longo baixa

reaccedilatildeo a perda de segmento

P Como estimar o RTT SampleRTT tempo medido

da transmissatildeo do segmento ateacute receber o ACKndash ignora retransmissotildees

SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquondash meacutedia de vaacuterias mediccedilotildees

recentes natildeo apenas SampleRTT atual

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 61

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui exponencialmente

raacutepido valor tiacutepico = 0125

Tempo de ida e volta e timeout do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 62

Amostras de RTTs estimados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 63

definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(geralmente = 025)

depois definir intervalo de timeout

Tempo de ida e volta e timeout do TCP

TimeoutIntervalinicial

= 1 sldquomargem de seguranccedilardquo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 64

TCP cenaacuterios de retransmissatildeo

Hosp A

Seq = 100 20 bytes dados

ACK = 100

tempoTimeout prematuro

Hosp B

Seq = 92 8 bytes dados

ACK = 120

Seq = 92 8 bytes dados

Seq

= 9

2 tim

eout

ACK = 120

Hosp A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio de ACK perdido

Hosp B

X

Seq = 92 8 bytes dados

ACK = 100

tempoS

eq =

92

timeo

ut

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 65

TCP cenaacuterios de retransmissatildeo

Host A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio ACK cumulativo

Host B

X

Seq = 100 20 bytes dados

ACK = 120

tempo

Transport Layer 3-66

TCP fast retransmit time-out period

often relatively long long delay before

resending lost packet detect lost

segments via duplicate ACKs sender often sends

many segments back-to-back

if segment is lost there will likely be many duplicate ACKs

if sender receives 3 ACKs for same data(ldquotriple duplicate ACKsrdquo) resend unacked segment with smallest seq

likely that unacked segment lost so donrsquot wait for timeout

TCP fast retransmit

Transport Layer 3-67

X

fast retransmit after sender receipt of triple duplicate ACK

Host BHost A

Seq=92 8 bytes of data

ACK=100

timeo

ut ACK=100

ACK=100

ACK=100

TCP fast retransmit

Seq=100 20 bytes of data

Seq=100 20 bytes of data

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 69

bull O nuacutemero de sequecircncia para um segmento eacute o nuacutemero do primeiro byte do segmento

bull O nuacutemero de reconhecimento que o hospedeiro A atribui a seu segmento eacute o nuacutemero de sequecircncia do proacuteximo byte que ele estiver aguardando do hospedeiro B

bull Como o TCP somente reconhece bytes ateacute o primeiro byte que estiver faltando na cadeia dizemos que o TCP provecirc reconhecimentos cumulativos

Nuacutemeros de sequecircncia e nuacutemeros de reconhecimento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 70

bull O TCP cria um serviccedilo de transferecircncia confiaacutevel de dados sobre o serviccedilo de melhor esforccedilo do IP

bull O serviccedilo de transferecircncia garante que a cadeia de bytes eacute idecircntica agrave cadeia de bytes enviada pelo sistema final que estaacute do outro lado da conexatildeo

bull Os procedimentos recomendados no [RFC 6298] para gerenciamento de temporizadores TCP utilizam apenas um uacutenico temporizador de retransmissatildeo

Transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 71

bull O TCP provecirc um serviccedilo de controle de fluxo agraves suas aplicaccedilotildees para eliminar a possibilidade de o remetente estourar o buffer do destinataacuterio

bull Controle de fluxo eacute um serviccedilo de compatibilizaccedilatildeo de velocidades

bull O TCP oferece serviccedilo de controle de fluxo fazendo que o remetente mantenha uma variaacutevel denominada janela de recepccedilatildeo

Controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 72

Regulaccedilatildeo da taxa de envio

Uma rede de transmissatildeo raacutepida eum receptor de baixa capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 73

Controle de fluxo TCP

lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo

serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora

processo da aplicaccedilatildeo pode ser lento na leitura do buffer

remetente natildeo estouraraacute buffer do destinataacuterio transmitindo muitos dados muito rapidamente

controle de fluxo

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 74

Controle de fluxo TCP como funciona

(suponha que destinataacuterio TCP descarte segmentos fora de ordem)

espaccedilo de buffer natildeo usado = rwnd (slide 48) = RcvBuffer-[LastByteRcvd -

LastByteRead]

destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento

remetente limita de bytes com ACK a rwndndash garante que buffer do

destinataacuterio natildeo estoura

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

rwndRcvBuffer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 75

Gerenciamento da conexatildeo TCP

lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados

inicializa variaacuteveis TCPndash s seqndash buffers informaccedilatildeo de

controle de fluxo (p e RcvWindow)

cliente inicia a conexatildeo Socket clientSocket = new

Socket(hostnameport ) servidor contactado pelo

cliente Socket connectionSocket =

welcomeSocketaccept()

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 76

Gerenciamento da conexatildeo TCP

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 77

fechando uma conexatildeo

cliente fecha socket clientSocketclose()

etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor

etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN

cliente

FIN

servidor

ACK

ACK

FIN

fecha

fecha

fechado

espe

ra

tem

poriz

ada

Gerenciamento da conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 79

Controle de congestionamento

Uma rede de transmissatildeo lenta eum receptor de alta capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 80

bull As causas e os custos do congestionamento

Cenaacuterio de congestionamento 1 duas conexotildees compartilhando um uacutenico roteador com nuacutemero infinito de buffers

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 81

bull As causas e os custos do congestionamentoCenaacuterio de congestionamento 1 vazatildeo e atraso em funccedilatildeo da taxa de envio do hospedeiro

ldquocustosrdquo do congestionamento Aumento de atrasos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 82

bull As causas e os custos do congestionamento

Cenaacuterio 2 dois hospedeiros (com retransmissotildees) e um roteador com buffers finitos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 83

a) Caso ideal (vazatildeo)

b) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda

c) retransmissatildeo do pacote adiado (natildeo perdido) torna maior (que

o caso perfeito ) para o mesmo

in

out

=

in

out

gt

in

out

ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do

pacote

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 84

bull As causas e os custos do congestionamento

Cenaacuterio 3 quatro remetentesroteadores com buffers finitos e trajetos com muacuteltiplos roteadores

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 85

outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer capacidade

de transmissatildeo anterior usada para esse pacote foi desperdiccedilada

Host A

Host B

o

u

t

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 86

Controle de congestionamento fim a fim

bull A camada de rede natildeo fornece nenhum suporte expliacutecito agrave camada de transporte com a finalidade de controle de congestionamento

Controle de congestionamento assistido pela rede

bull Os componentes da camada de rede (isto eacute roteadores) fornecem retroalimentaccedilatildeo especiacutefica de informaccedilotildees ao remetente a respeito do estado de congestionamento na rede Natildeo usual

Mecanismos de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 87

bull A abordagem adotada pelo TCP eacute obrigar cada remetente a limitar a taxa agrave qual enviam traacutefego para sua conexatildeo como uma funccedilatildeo do congestionamento de rede percebido

Se um remetente TCP perceber que haacute pouco congestionamento no caminho entre ele e o destinataacuterio aumentaraacute sua taxa de envio

Se perceber que haacute congestionamento reduziraacute sua taxa de

envio

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 88

bull Mas essa abordagem levanta trecircs questotildees

1 Como um remetente TCP limita a taxa pela qual envia traacutefego para sua conexatildeo

2 Como um remetente TCP percebe que haacute congestionamento entre ele e o destinataacuterio

3 Que algoritmo o remetente deve utilizar para modificar sua taxa de envio como uma funccedilatildeo do congestionamento fim a fim percebido

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 89

bull Partida lenta TCP

Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 90

1) Cwnd = 1 MSS inicialmente

2) Partida lenta a cada rodada redefine cwnd = cwnd 2

3) Perda de pacotes (esgotamento de temporizaccedilatildeo ndash problema grave) ==gt cwnd = 1 (Tahoe ou Reno)

4) Prevenccedilatildeo de congestionamento apoacutes atingir sstresh cwnd = cwnd + 1

5) Trecircs acks duplicados (buraco no ldquofluxordquo ndash problema brando) entra no estado prevenccedilatildeo de congestionamento e redefine cwnd = 1 (Tahoe) ou cwnd = sstresh (Reno)

6) Sstresh = cwnd2 quando satildeo detectados problemas

Quantidade de dados natildeo reconhecidas no TCP = min(CongWin RecWin)

Controle de congestionamento TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 91

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 93

bull Evoluccedilatildeo da janela de congestionamento do TCP (Tahoe e Reno ndash mais usual)

Recuperaccedilatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 94

Controle de congestionamento TCP

Partida lenta seguida por aumento aditivo no TCP Tahoe

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 95

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 96

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 97

bull O controle de congestionamento AIMD (Additive-increase Multiplicative-Decrease) faz surgir o comportamento semelhante a ldquodentes de serrardquo

bull httpsmediapearsoncmgcomawecs_kurose_compnetwork_7cwcontentinteractiveanimationstcp-congestionindexhtml

Controle de congestionamento no TCP retrospectiva

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 98

O que eacute throughput meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughput meacutedio 075 WRTT (75 WRTT)

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 99

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (Probabilidade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 100

bull Duas conexotildees TCP compartilhando um uacutenico enlace congestionado

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 101

bull Vazatildeo alcanccedilada pelas conexotildees TCP 1 e TCP 2bull Ambas conexotildees em algum momento estatildeo com vazatildeo Abull Ambas vatildeo aumentando a vazatildeo ateacute ocorrer perda ndash Bbull Sstresh cai pela metade e ambas migram para Chellip

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 102

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

ndash Consequecircncia

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Nova aplicaccedilatildeo pede 1 TCP obteacutem taxa de R10 Nova aplicaccedilatildeo pede 11 TCPs obteacutem R2

Equidade

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Multiplexingdemultiplexing
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Principles of reliable data transfer
  • Slide 20
  • Slide 21
  • Reliable data transfer getting started
  • Slide 23
  • Slide 24
  • Slide 25
  • rdt20 FSM specification
  • rdt20 operation with no errors
  • rdt20 error scenario
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • rdt30 in action
  • Slide 39
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Selective repeat dilemma
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • TCP fast retransmit
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
Page 15: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 16

bull Estrutura do segmento UDP

Estrutura do segmento UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 17

bull A soma de verificaccedilatildeo UDP serve para detectar erros em todo o segmento

bull Suponha que tenhamos as seguintes trecircs palavras de 16 bits

bull A soma das duas primeiras eacute

bull Adicionando a terceira palavra agrave soma anterior temos

Soma de verificaccedilatildeo UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 18

bull Note que a uacuteltima adiccedilatildeo teve um ldquovai umrdquo no bit mais significativo que foi somado ao bit menos significativo

bull Complemento de 1 0 ==gt 1 1 ==gt 0bull Fazendo o complemento de 1 da soma final

1011010100111101 Esta eacute a soma de verificaccedilatildeobull No destinataacuterio todas as 4 palavras recebidas de 16 bits satildeo

somadas 1111 ==gt Pacote correto algum bit em 0 ==gt algum erro foi introduzido no pacote

bull Por que soma de verificaccedilatildeo no UDPbull Algumas camadas de enlace por exemplo Ethernet fornecem

soma de verificaccedilatildeobull mas nem todas e aleacutem disso um roteador poderia introduzir

algum errobull UDP verifica erros fim a fim

Soma de verificaccedilatildeo UDP

Transport Layer 3-19

Principles of reliable data transfer important in application transport link layers

top-10 list of important networking topics

characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)

Transport Layer 3-20

characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)

Principles of reliable data transfer important in application transport link layers

top-10 list of important networking topics

Transport Layer 3-21

characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)

important in application transport link layers top-10 list of important networking topics

Principles of reliable data transfer

Transport Layer 3-22

sendside

receiveside

rdt_send() called from above (eg by app) Passed data to deliver to receiver upper layer

udt_send() called by rdtto transfer packet over unreliable channel to receiver

rdt_rcv() called when packet arrives on rcv-side of channel

deliver_data() called by rdt to deliver data to upper

Principles of reliable data transfer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 23

vamos desenvolver de forma incremental os lados remetente e destinataacuterio do

protocolo de transferecircncia confiaacutevel de dados (rdt) considerar apenas a transf de dados unidirecional Bidirecional eacute soacute

duplicar a estruturandash mas informaccedilotildees de controle fluiratildeo nas duas direccedilotildees

usar maacutequinas de estado finito (FSM) para especificar remetente e destinataacuterio

estado1

estado2

evento causando transiccedilatildeo de estadoaccedilotildees tomadas sobre transiccedilatildeo de estado

estado quando neste ldquoestadordquo proacuteximo

estado determinadoexclusivamente pelo

proacuteximo evento

eventoaccedilotildees

Transferecircncia confiaacutevel de dados introduccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 24

bull rdt10 ndash Um protocolo para um canal completamente confiaacutevel

Transferecircncia confiaacutevel de dados sobre um canal perfeitamente confiaacutevel rdt10

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 25

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt20

rdt20 ndash Um protocolo para um canal com erros de bits Base dos protocolos ARQ (Automatic Repeat Request)

Detecccedilatildeo de erros (mecanismo do UDP)

Realimentaccedilatildeo do destinataacuterio (ACK ou NACK)

Retransmissatildeobull Pare e espere

Transport Layer 3-26

rdt20 FSM specification

Wait for call from above

sndpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from belowsender

receiverrdt_send(data)

Transport Layer 3-27

rdt20 operation with no errors

Wait for call from above

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from below

rdt_send(data)

Transport Layer 3-28

rdt20 error scenario

Wait for call from above

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from below

rdt_send(data)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 29

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt20

bull O que acontece se o pacote ACK ou NAK estiver corrompido

bull Vamos considerar trecircs possibilidade para ACKs ou NAKs corrompidos1 Ser humano -- A ldquoditadordquo B ldquoOKrdquo ou ldquoRepita por favorrdquo ==gt

A natildeo entende ldquoO que foi que vocecirc disserdquo infinito Peacutessimo2 Bits de soma de verificaccedilatildeo de tal modo que permita ao remetente a

recuperaccedilatildeo de erros de bits Muito bom mas serve somente para canais com erro de bits e natildeo perda de pacotes

3 O Remetente reenvia o pacote de dados corrente quando receber um pacote ACK ou NAK truncado ==gt pode gerar pacotes duplicados Como o destinataacuterio sabe se o pacote conteacutem novos dados ou eacute uma retransmissatildeo ==gt nuacutemero de sequecircncia

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 30

bull rdt21 remetente

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 31

bull rdt21 destinataacuterio

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 32

bull O protocolo rdt21 usa tanto o reconhecimento positivo como negativo do remetente ao destinataacuterio pacote fora de ordem ==gt ACK pacote corrompido ==gt NAK

bull Podemos conseguir o mesmo efeito se ao inveacutes de enviarmos um NAK enviarmos um ACK do uacuteltimo corretamente recebido Ou seja ACK tambeacutem numerado

bull ACKs duplicados indicam ao remetente que o destinataacuterio natildeo recebeu corretamente o pacote seguinte agravequele do ACK duplo

bull rdt22 deve enviar o nuacutemero de sequecircncia no ACK

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21-2

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 33

bull rdt22 remetente

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt22

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 34

bull rdt22 destinataacuterio

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt22

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 35

bull Duas preocupaccedilotildees adicionais devem ser tratadas pelo protocolo1 Como detectar perda de pacotes2 O que fazer quando haacute perdas

bull As teacutecnicas jaacute discutidas atendem a segunda questatildeobull E para a primeira questatildeobull Suponha que o remetente transmita um pacote e que esse

pacote ou seu ACK seja perdido Nenhuma resposta chegaraacute ao remetente Se o remetente natildeo quiser esperar ==gt retransmite o pacote

bull Mas quanto o remetente precisa esperar para ter certeza que algo foi perdido Esperar um RTT Eacute muito difiacutecil estimar o RTT quanto mais ter certeza

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 36

bull Aleacutem disso o ideal seria que o protocolo se recuperasse da perda assim que possiacutevel

bull Na praacutetica O remetente faz uma escolha ponderada de um RTT provaacutevel mas natildeo

garantido que a perda tivesse acontecido Se natildeo receber um ACK nesse periacuteodo retransmite o pacote

bull Se o pacote sofrer um atraso longo pode haver retransmissatildeo mesmo que o pacote ou ACK natildeo tenham sido perdidos Possibilidade de pacotes de dados duplicados

bull Para implementar um mecanismo de retransmissatildeo com base no tempo eacute necessaacuterio um temporizador de contagem regressiva Accedilotildees iniciar atender parar

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 37

bull rdt30 remetente

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Transport Layer 3-38

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

pkt1

ack1

ack0

ack0

(a) no loss

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(b) packet loss

pkt1X

loss

pkt1timeout

resend pkt1

rdt30 in action

Transport Layer 3-39

rdt30 in action

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(c) ACK loss

ack1X

loss

pkt1timeout

resend pkt1

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

send ack0rcv ack0

send pkt1

send pkt0rcv pkt0

pkt0

ack0

(d) premature timeout delayed ACK

pkt1timeout

resend pkt1

ack1

send ack1

send pkt0rcv ack1

pkt0

ack1

ack0

send pkt0rcv ack1 pkt0

rcv pkt0send ack0ack0

rcv pkt0

send ack0(detect duplicate)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 42

bull No coraccedilatildeo do problema do desempenho do rdt30 estaacute o fato de ele ser um protocolo do tipo pare e espere

bull Um protocolo pare e espere em operaccedilatildeo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 43

U remet =

0008

30008 = 000027

microseconds

L R RTT + L R

=

Desempenho do rdt30

rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso pacote 8000 bits

U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando

Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps protocolo de rede limita uso de recursos fiacutesicos Soluccedilatildeo

ndosmicrosseguR

Ldtrans 8

bps10

bits80009

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 44

Um protocolo com paralelismo em operaccedilatildeo

bull O ACK recebido eacute de que pacote

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 45

bull Envio com pare e espere

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 46

bull Envio com paralelismo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Aumento de utilizaccedilatildeopor fator de 3

U remet =

0024 30008

= 00008 microseconds

3 L R RTT + L R

=

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 47

bull Em um protocolo Go-Back-N (GBN) o remetente eacute autorizado a transmitir muacuteltiplos pacotes sem esperar por um reconhecimento

bull Poreacutem fica limitado a ter natildeo mais do que algum nuacutemero maacuteximo permitido N (tamanho da janela) de pacotes natildeo reconhecidos na ldquotubulaccedilatildeordquo

bull Visatildeo do remetente para os nuacutemeros de sequecircncia no protocolo Go-Back-N

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 48

bull Descriccedilatildeo da FSM estendida do remetente GBNbull Quem consegue descrever o funcionamento

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 49

bull Descriccedilatildeo da FSM estendida do destinataacuterio GBN

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 50

Go-Back-N (GBN) em operaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 51

bull Protocolos de repeticcedilatildeo seletiva (SR) evitam retransmissotildees desnecessaacuterias

bull Eles fazem o remetente retransmitir apenas os pacotes suspeitos de terem sido recebidos com erro no destinataacuterio

bull Essa retransmissatildeo individual soacute quando necessaacuteria exige que o destinataacuterio reconheccedila individualmente os pacotes recebidos de modo correto

Repeticcedilatildeo seletiva (SR)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 52

Repeticcedilatildeo seletiva (SR)

Transport Layer 3-53

Selective repeatdilemma

example seq rsquos 0 1 2 3 window size=3

receiver window(after receipt)

sender window(after receipt)

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2 pkt0

timeoutretransmit pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2XXX

will accept packetwith seq number 0

(b) oops

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

X

will accept packetwith seq number 0

0 1 2 3 0 1 2 pkt3

(a) no problem

receiver canrsquot see sender sidereceiver behavior identical in both casessomethingrsquos (very) wrong

receiver sees no difference in two scenarios

duplicate data accepted as new in (b)

Q what relationship between seq size and window size to avoid problem in (b)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 54

Resumo de mecanismos de transferecircncia confiaacutevel de dados e sua utilizaccedilatildeo

bull Soma de verificaccedilatildeo - Usada para detectar erros de bits em um pacote transmitido

bull Temporizador - Usado para controlar a temporizaccedilatildeoretransmissatildeo de um pacote possivelmente porque o pacote (ou seu ACK) foi perdido dentro do canal

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 55

bull Nuacutemero de sequecircncia - Usado para numeraccedilatildeo sequencial de segmentos de dados que transitam do remetente ao destinataacuterio Ou seja pode-se ter vaacuterios segmentos transitando simultaneamente no canal de comunicaccedilatildeo maximizando assim o uso desse canal

bull Reconhecimento - Usado pelo destinataacuterio para avisar o remetente que um pacote ou conjunto de pacotes foi recebido corretamente

bull Janela paralelismo - O remetente pode ficar restrito a enviar somente pacotes com nuacutemeros de sequecircncia que caiam dentro de uma determinada faixa

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 56

bull Uma conexatildeo TCP provecirc um serviccedilo full-duplex

bull A conexatildeo TCP eacute sempre ponto a ponto

bull Uma vez estabelecida uma conexatildeo TCP dois processos de aplicaccedilatildeo podem enviar dados um para o outro 3-way handshake jaacute estabelecendo o MSS

bull O TCP combina cada porccedilatildeo de dados do cliente com um cabeccedilalho TCP formando assim segmentos TCP

A conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 57

Estrutura do segmento TCPURG dados urgentes

(quase natildeo usado)

ACK ACKvaacutelido

PSH empurrar dados agora

RST SYN FINestab conexatildeo

soma de verificaccedilatildeo

da Internet ndash todo o segmento(como em UDP)

bytes destinataacuteriopode aceitar

contagem porbytes de dados(natildeo segmentos)

Opcional e de comprimentovariaacutevel utilizado paranegociar o MSS ou fatorde escala em redes dealta velocidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 58

TCP Estabelecendo e fechando conexotildees

3-way handshakeFinalizando

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 59

s sequecircncia e ACKs do TCP

Cenaacuterio preestabelecido telnet simples

rsquos de sequecircnciandash ldquonuacutemerordquo na cadeia de

bytes do 1o byte nos dados do segmento

ACKsndash seq do proacuteximo byte

esperado do outro ladondash ACK cumulativo

P como o destinataacuterio trata segmentos fora de ordem

ndash R TCP natildeo diz ndash a criteacuterio do implementador

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 60

Tempo de ida e volta e timeout do TCP

P Como definir o valor de timeout do TCP

maior que RTTndash mas RTT varia

muito curto timeout prematurondash retransmissotildees

desnecessaacuterias muito longo baixa

reaccedilatildeo a perda de segmento

P Como estimar o RTT SampleRTT tempo medido

da transmissatildeo do segmento ateacute receber o ACKndash ignora retransmissotildees

SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquondash meacutedia de vaacuterias mediccedilotildees

recentes natildeo apenas SampleRTT atual

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 61

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui exponencialmente

raacutepido valor tiacutepico = 0125

Tempo de ida e volta e timeout do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 62

Amostras de RTTs estimados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 63

definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(geralmente = 025)

depois definir intervalo de timeout

Tempo de ida e volta e timeout do TCP

TimeoutIntervalinicial

= 1 sldquomargem de seguranccedilardquo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 64

TCP cenaacuterios de retransmissatildeo

Hosp A

Seq = 100 20 bytes dados

ACK = 100

tempoTimeout prematuro

Hosp B

Seq = 92 8 bytes dados

ACK = 120

Seq = 92 8 bytes dados

Seq

= 9

2 tim

eout

ACK = 120

Hosp A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio de ACK perdido

Hosp B

X

Seq = 92 8 bytes dados

ACK = 100

tempoS

eq =

92

timeo

ut

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 65

TCP cenaacuterios de retransmissatildeo

Host A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio ACK cumulativo

Host B

X

Seq = 100 20 bytes dados

ACK = 120

tempo

Transport Layer 3-66

TCP fast retransmit time-out period

often relatively long long delay before

resending lost packet detect lost

segments via duplicate ACKs sender often sends

many segments back-to-back

if segment is lost there will likely be many duplicate ACKs

if sender receives 3 ACKs for same data(ldquotriple duplicate ACKsrdquo) resend unacked segment with smallest seq

likely that unacked segment lost so donrsquot wait for timeout

TCP fast retransmit

Transport Layer 3-67

X

fast retransmit after sender receipt of triple duplicate ACK

Host BHost A

Seq=92 8 bytes of data

ACK=100

timeo

ut ACK=100

ACK=100

ACK=100

TCP fast retransmit

Seq=100 20 bytes of data

Seq=100 20 bytes of data

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 69

bull O nuacutemero de sequecircncia para um segmento eacute o nuacutemero do primeiro byte do segmento

bull O nuacutemero de reconhecimento que o hospedeiro A atribui a seu segmento eacute o nuacutemero de sequecircncia do proacuteximo byte que ele estiver aguardando do hospedeiro B

bull Como o TCP somente reconhece bytes ateacute o primeiro byte que estiver faltando na cadeia dizemos que o TCP provecirc reconhecimentos cumulativos

Nuacutemeros de sequecircncia e nuacutemeros de reconhecimento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 70

bull O TCP cria um serviccedilo de transferecircncia confiaacutevel de dados sobre o serviccedilo de melhor esforccedilo do IP

bull O serviccedilo de transferecircncia garante que a cadeia de bytes eacute idecircntica agrave cadeia de bytes enviada pelo sistema final que estaacute do outro lado da conexatildeo

bull Os procedimentos recomendados no [RFC 6298] para gerenciamento de temporizadores TCP utilizam apenas um uacutenico temporizador de retransmissatildeo

Transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 71

bull O TCP provecirc um serviccedilo de controle de fluxo agraves suas aplicaccedilotildees para eliminar a possibilidade de o remetente estourar o buffer do destinataacuterio

bull Controle de fluxo eacute um serviccedilo de compatibilizaccedilatildeo de velocidades

bull O TCP oferece serviccedilo de controle de fluxo fazendo que o remetente mantenha uma variaacutevel denominada janela de recepccedilatildeo

Controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 72

Regulaccedilatildeo da taxa de envio

Uma rede de transmissatildeo raacutepida eum receptor de baixa capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 73

Controle de fluxo TCP

lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo

serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora

processo da aplicaccedilatildeo pode ser lento na leitura do buffer

remetente natildeo estouraraacute buffer do destinataacuterio transmitindo muitos dados muito rapidamente

controle de fluxo

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 74

Controle de fluxo TCP como funciona

(suponha que destinataacuterio TCP descarte segmentos fora de ordem)

espaccedilo de buffer natildeo usado = rwnd (slide 48) = RcvBuffer-[LastByteRcvd -

LastByteRead]

destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento

remetente limita de bytes com ACK a rwndndash garante que buffer do

destinataacuterio natildeo estoura

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

rwndRcvBuffer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 75

Gerenciamento da conexatildeo TCP

lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados

inicializa variaacuteveis TCPndash s seqndash buffers informaccedilatildeo de

controle de fluxo (p e RcvWindow)

cliente inicia a conexatildeo Socket clientSocket = new

Socket(hostnameport ) servidor contactado pelo

cliente Socket connectionSocket =

welcomeSocketaccept()

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 76

Gerenciamento da conexatildeo TCP

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 77

fechando uma conexatildeo

cliente fecha socket clientSocketclose()

etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor

etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN

cliente

FIN

servidor

ACK

ACK

FIN

fecha

fecha

fechado

espe

ra

tem

poriz

ada

Gerenciamento da conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 79

Controle de congestionamento

Uma rede de transmissatildeo lenta eum receptor de alta capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 80

bull As causas e os custos do congestionamento

Cenaacuterio de congestionamento 1 duas conexotildees compartilhando um uacutenico roteador com nuacutemero infinito de buffers

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 81

bull As causas e os custos do congestionamentoCenaacuterio de congestionamento 1 vazatildeo e atraso em funccedilatildeo da taxa de envio do hospedeiro

ldquocustosrdquo do congestionamento Aumento de atrasos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 82

bull As causas e os custos do congestionamento

Cenaacuterio 2 dois hospedeiros (com retransmissotildees) e um roteador com buffers finitos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 83

a) Caso ideal (vazatildeo)

b) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda

c) retransmissatildeo do pacote adiado (natildeo perdido) torna maior (que

o caso perfeito ) para o mesmo

in

out

=

in

out

gt

in

out

ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do

pacote

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 84

bull As causas e os custos do congestionamento

Cenaacuterio 3 quatro remetentesroteadores com buffers finitos e trajetos com muacuteltiplos roteadores

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 85

outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer capacidade

de transmissatildeo anterior usada para esse pacote foi desperdiccedilada

Host A

Host B

o

u

t

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 86

Controle de congestionamento fim a fim

bull A camada de rede natildeo fornece nenhum suporte expliacutecito agrave camada de transporte com a finalidade de controle de congestionamento

Controle de congestionamento assistido pela rede

bull Os componentes da camada de rede (isto eacute roteadores) fornecem retroalimentaccedilatildeo especiacutefica de informaccedilotildees ao remetente a respeito do estado de congestionamento na rede Natildeo usual

Mecanismos de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 87

bull A abordagem adotada pelo TCP eacute obrigar cada remetente a limitar a taxa agrave qual enviam traacutefego para sua conexatildeo como uma funccedilatildeo do congestionamento de rede percebido

Se um remetente TCP perceber que haacute pouco congestionamento no caminho entre ele e o destinataacuterio aumentaraacute sua taxa de envio

Se perceber que haacute congestionamento reduziraacute sua taxa de

envio

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 88

bull Mas essa abordagem levanta trecircs questotildees

1 Como um remetente TCP limita a taxa pela qual envia traacutefego para sua conexatildeo

2 Como um remetente TCP percebe que haacute congestionamento entre ele e o destinataacuterio

3 Que algoritmo o remetente deve utilizar para modificar sua taxa de envio como uma funccedilatildeo do congestionamento fim a fim percebido

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 89

bull Partida lenta TCP

Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 90

1) Cwnd = 1 MSS inicialmente

2) Partida lenta a cada rodada redefine cwnd = cwnd 2

3) Perda de pacotes (esgotamento de temporizaccedilatildeo ndash problema grave) ==gt cwnd = 1 (Tahoe ou Reno)

4) Prevenccedilatildeo de congestionamento apoacutes atingir sstresh cwnd = cwnd + 1

5) Trecircs acks duplicados (buraco no ldquofluxordquo ndash problema brando) entra no estado prevenccedilatildeo de congestionamento e redefine cwnd = 1 (Tahoe) ou cwnd = sstresh (Reno)

6) Sstresh = cwnd2 quando satildeo detectados problemas

Quantidade de dados natildeo reconhecidas no TCP = min(CongWin RecWin)

Controle de congestionamento TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 91

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 93

bull Evoluccedilatildeo da janela de congestionamento do TCP (Tahoe e Reno ndash mais usual)

Recuperaccedilatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 94

Controle de congestionamento TCP

Partida lenta seguida por aumento aditivo no TCP Tahoe

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 95

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 96

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 97

bull O controle de congestionamento AIMD (Additive-increase Multiplicative-Decrease) faz surgir o comportamento semelhante a ldquodentes de serrardquo

bull httpsmediapearsoncmgcomawecs_kurose_compnetwork_7cwcontentinteractiveanimationstcp-congestionindexhtml

Controle de congestionamento no TCP retrospectiva

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 98

O que eacute throughput meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughput meacutedio 075 WRTT (75 WRTT)

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 99

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (Probabilidade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 100

bull Duas conexotildees TCP compartilhando um uacutenico enlace congestionado

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 101

bull Vazatildeo alcanccedilada pelas conexotildees TCP 1 e TCP 2bull Ambas conexotildees em algum momento estatildeo com vazatildeo Abull Ambas vatildeo aumentando a vazatildeo ateacute ocorrer perda ndash Bbull Sstresh cai pela metade e ambas migram para Chellip

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 102

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

ndash Consequecircncia

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Nova aplicaccedilatildeo pede 1 TCP obteacutem taxa de R10 Nova aplicaccedilatildeo pede 11 TCPs obteacutem R2

Equidade

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Multiplexingdemultiplexing
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Principles of reliable data transfer
  • Slide 20
  • Slide 21
  • Reliable data transfer getting started
  • Slide 23
  • Slide 24
  • Slide 25
  • rdt20 FSM specification
  • rdt20 operation with no errors
  • rdt20 error scenario
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • rdt30 in action
  • Slide 39
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Selective repeat dilemma
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • TCP fast retransmit
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
Page 16: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 17

bull A soma de verificaccedilatildeo UDP serve para detectar erros em todo o segmento

bull Suponha que tenhamos as seguintes trecircs palavras de 16 bits

bull A soma das duas primeiras eacute

bull Adicionando a terceira palavra agrave soma anterior temos

Soma de verificaccedilatildeo UDP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 18

bull Note que a uacuteltima adiccedilatildeo teve um ldquovai umrdquo no bit mais significativo que foi somado ao bit menos significativo

bull Complemento de 1 0 ==gt 1 1 ==gt 0bull Fazendo o complemento de 1 da soma final

1011010100111101 Esta eacute a soma de verificaccedilatildeobull No destinataacuterio todas as 4 palavras recebidas de 16 bits satildeo

somadas 1111 ==gt Pacote correto algum bit em 0 ==gt algum erro foi introduzido no pacote

bull Por que soma de verificaccedilatildeo no UDPbull Algumas camadas de enlace por exemplo Ethernet fornecem

soma de verificaccedilatildeobull mas nem todas e aleacutem disso um roteador poderia introduzir

algum errobull UDP verifica erros fim a fim

Soma de verificaccedilatildeo UDP

Transport Layer 3-19

Principles of reliable data transfer important in application transport link layers

top-10 list of important networking topics

characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)

Transport Layer 3-20

characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)

Principles of reliable data transfer important in application transport link layers

top-10 list of important networking topics

Transport Layer 3-21

characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)

important in application transport link layers top-10 list of important networking topics

Principles of reliable data transfer

Transport Layer 3-22

sendside

receiveside

rdt_send() called from above (eg by app) Passed data to deliver to receiver upper layer

udt_send() called by rdtto transfer packet over unreliable channel to receiver

rdt_rcv() called when packet arrives on rcv-side of channel

deliver_data() called by rdt to deliver data to upper

Principles of reliable data transfer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 23

vamos desenvolver de forma incremental os lados remetente e destinataacuterio do

protocolo de transferecircncia confiaacutevel de dados (rdt) considerar apenas a transf de dados unidirecional Bidirecional eacute soacute

duplicar a estruturandash mas informaccedilotildees de controle fluiratildeo nas duas direccedilotildees

usar maacutequinas de estado finito (FSM) para especificar remetente e destinataacuterio

estado1

estado2

evento causando transiccedilatildeo de estadoaccedilotildees tomadas sobre transiccedilatildeo de estado

estado quando neste ldquoestadordquo proacuteximo

estado determinadoexclusivamente pelo

proacuteximo evento

eventoaccedilotildees

Transferecircncia confiaacutevel de dados introduccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 24

bull rdt10 ndash Um protocolo para um canal completamente confiaacutevel

Transferecircncia confiaacutevel de dados sobre um canal perfeitamente confiaacutevel rdt10

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 25

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt20

rdt20 ndash Um protocolo para um canal com erros de bits Base dos protocolos ARQ (Automatic Repeat Request)

Detecccedilatildeo de erros (mecanismo do UDP)

Realimentaccedilatildeo do destinataacuterio (ACK ou NACK)

Retransmissatildeobull Pare e espere

Transport Layer 3-26

rdt20 FSM specification

Wait for call from above

sndpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from belowsender

receiverrdt_send(data)

Transport Layer 3-27

rdt20 operation with no errors

Wait for call from above

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from below

rdt_send(data)

Transport Layer 3-28

rdt20 error scenario

Wait for call from above

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from below

rdt_send(data)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 29

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt20

bull O que acontece se o pacote ACK ou NAK estiver corrompido

bull Vamos considerar trecircs possibilidade para ACKs ou NAKs corrompidos1 Ser humano -- A ldquoditadordquo B ldquoOKrdquo ou ldquoRepita por favorrdquo ==gt

A natildeo entende ldquoO que foi que vocecirc disserdquo infinito Peacutessimo2 Bits de soma de verificaccedilatildeo de tal modo que permita ao remetente a

recuperaccedilatildeo de erros de bits Muito bom mas serve somente para canais com erro de bits e natildeo perda de pacotes

3 O Remetente reenvia o pacote de dados corrente quando receber um pacote ACK ou NAK truncado ==gt pode gerar pacotes duplicados Como o destinataacuterio sabe se o pacote conteacutem novos dados ou eacute uma retransmissatildeo ==gt nuacutemero de sequecircncia

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 30

bull rdt21 remetente

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 31

bull rdt21 destinataacuterio

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 32

bull O protocolo rdt21 usa tanto o reconhecimento positivo como negativo do remetente ao destinataacuterio pacote fora de ordem ==gt ACK pacote corrompido ==gt NAK

bull Podemos conseguir o mesmo efeito se ao inveacutes de enviarmos um NAK enviarmos um ACK do uacuteltimo corretamente recebido Ou seja ACK tambeacutem numerado

bull ACKs duplicados indicam ao remetente que o destinataacuterio natildeo recebeu corretamente o pacote seguinte agravequele do ACK duplo

bull rdt22 deve enviar o nuacutemero de sequecircncia no ACK

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21-2

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 33

bull rdt22 remetente

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt22

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 34

bull rdt22 destinataacuterio

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt22

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 35

bull Duas preocupaccedilotildees adicionais devem ser tratadas pelo protocolo1 Como detectar perda de pacotes2 O que fazer quando haacute perdas

bull As teacutecnicas jaacute discutidas atendem a segunda questatildeobull E para a primeira questatildeobull Suponha que o remetente transmita um pacote e que esse

pacote ou seu ACK seja perdido Nenhuma resposta chegaraacute ao remetente Se o remetente natildeo quiser esperar ==gt retransmite o pacote

bull Mas quanto o remetente precisa esperar para ter certeza que algo foi perdido Esperar um RTT Eacute muito difiacutecil estimar o RTT quanto mais ter certeza

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 36

bull Aleacutem disso o ideal seria que o protocolo se recuperasse da perda assim que possiacutevel

bull Na praacutetica O remetente faz uma escolha ponderada de um RTT provaacutevel mas natildeo

garantido que a perda tivesse acontecido Se natildeo receber um ACK nesse periacuteodo retransmite o pacote

bull Se o pacote sofrer um atraso longo pode haver retransmissatildeo mesmo que o pacote ou ACK natildeo tenham sido perdidos Possibilidade de pacotes de dados duplicados

bull Para implementar um mecanismo de retransmissatildeo com base no tempo eacute necessaacuterio um temporizador de contagem regressiva Accedilotildees iniciar atender parar

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 37

bull rdt30 remetente

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Transport Layer 3-38

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

pkt1

ack1

ack0

ack0

(a) no loss

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(b) packet loss

pkt1X

loss

pkt1timeout

resend pkt1

rdt30 in action

Transport Layer 3-39

rdt30 in action

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(c) ACK loss

ack1X

loss

pkt1timeout

resend pkt1

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

send ack0rcv ack0

send pkt1

send pkt0rcv pkt0

pkt0

ack0

(d) premature timeout delayed ACK

pkt1timeout

resend pkt1

ack1

send ack1

send pkt0rcv ack1

pkt0

ack1

ack0

send pkt0rcv ack1 pkt0

rcv pkt0send ack0ack0

rcv pkt0

send ack0(detect duplicate)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 42

bull No coraccedilatildeo do problema do desempenho do rdt30 estaacute o fato de ele ser um protocolo do tipo pare e espere

bull Um protocolo pare e espere em operaccedilatildeo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 43

U remet =

0008

30008 = 000027

microseconds

L R RTT + L R

=

Desempenho do rdt30

rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso pacote 8000 bits

U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando

Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps protocolo de rede limita uso de recursos fiacutesicos Soluccedilatildeo

ndosmicrosseguR

Ldtrans 8

bps10

bits80009

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 44

Um protocolo com paralelismo em operaccedilatildeo

bull O ACK recebido eacute de que pacote

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 45

bull Envio com pare e espere

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 46

bull Envio com paralelismo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Aumento de utilizaccedilatildeopor fator de 3

U remet =

0024 30008

= 00008 microseconds

3 L R RTT + L R

=

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 47

bull Em um protocolo Go-Back-N (GBN) o remetente eacute autorizado a transmitir muacuteltiplos pacotes sem esperar por um reconhecimento

bull Poreacutem fica limitado a ter natildeo mais do que algum nuacutemero maacuteximo permitido N (tamanho da janela) de pacotes natildeo reconhecidos na ldquotubulaccedilatildeordquo

bull Visatildeo do remetente para os nuacutemeros de sequecircncia no protocolo Go-Back-N

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 48

bull Descriccedilatildeo da FSM estendida do remetente GBNbull Quem consegue descrever o funcionamento

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 49

bull Descriccedilatildeo da FSM estendida do destinataacuterio GBN

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 50

Go-Back-N (GBN) em operaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 51

bull Protocolos de repeticcedilatildeo seletiva (SR) evitam retransmissotildees desnecessaacuterias

bull Eles fazem o remetente retransmitir apenas os pacotes suspeitos de terem sido recebidos com erro no destinataacuterio

bull Essa retransmissatildeo individual soacute quando necessaacuteria exige que o destinataacuterio reconheccedila individualmente os pacotes recebidos de modo correto

Repeticcedilatildeo seletiva (SR)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 52

Repeticcedilatildeo seletiva (SR)

Transport Layer 3-53

Selective repeatdilemma

example seq rsquos 0 1 2 3 window size=3

receiver window(after receipt)

sender window(after receipt)

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2 pkt0

timeoutretransmit pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2XXX

will accept packetwith seq number 0

(b) oops

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

X

will accept packetwith seq number 0

0 1 2 3 0 1 2 pkt3

(a) no problem

receiver canrsquot see sender sidereceiver behavior identical in both casessomethingrsquos (very) wrong

receiver sees no difference in two scenarios

duplicate data accepted as new in (b)

Q what relationship between seq size and window size to avoid problem in (b)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 54

Resumo de mecanismos de transferecircncia confiaacutevel de dados e sua utilizaccedilatildeo

bull Soma de verificaccedilatildeo - Usada para detectar erros de bits em um pacote transmitido

bull Temporizador - Usado para controlar a temporizaccedilatildeoretransmissatildeo de um pacote possivelmente porque o pacote (ou seu ACK) foi perdido dentro do canal

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 55

bull Nuacutemero de sequecircncia - Usado para numeraccedilatildeo sequencial de segmentos de dados que transitam do remetente ao destinataacuterio Ou seja pode-se ter vaacuterios segmentos transitando simultaneamente no canal de comunicaccedilatildeo maximizando assim o uso desse canal

bull Reconhecimento - Usado pelo destinataacuterio para avisar o remetente que um pacote ou conjunto de pacotes foi recebido corretamente

bull Janela paralelismo - O remetente pode ficar restrito a enviar somente pacotes com nuacutemeros de sequecircncia que caiam dentro de uma determinada faixa

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 56

bull Uma conexatildeo TCP provecirc um serviccedilo full-duplex

bull A conexatildeo TCP eacute sempre ponto a ponto

bull Uma vez estabelecida uma conexatildeo TCP dois processos de aplicaccedilatildeo podem enviar dados um para o outro 3-way handshake jaacute estabelecendo o MSS

bull O TCP combina cada porccedilatildeo de dados do cliente com um cabeccedilalho TCP formando assim segmentos TCP

A conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 57

Estrutura do segmento TCPURG dados urgentes

(quase natildeo usado)

ACK ACKvaacutelido

PSH empurrar dados agora

RST SYN FINestab conexatildeo

soma de verificaccedilatildeo

da Internet ndash todo o segmento(como em UDP)

bytes destinataacuteriopode aceitar

contagem porbytes de dados(natildeo segmentos)

Opcional e de comprimentovariaacutevel utilizado paranegociar o MSS ou fatorde escala em redes dealta velocidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 58

TCP Estabelecendo e fechando conexotildees

3-way handshakeFinalizando

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 59

s sequecircncia e ACKs do TCP

Cenaacuterio preestabelecido telnet simples

rsquos de sequecircnciandash ldquonuacutemerordquo na cadeia de

bytes do 1o byte nos dados do segmento

ACKsndash seq do proacuteximo byte

esperado do outro ladondash ACK cumulativo

P como o destinataacuterio trata segmentos fora de ordem

ndash R TCP natildeo diz ndash a criteacuterio do implementador

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 60

Tempo de ida e volta e timeout do TCP

P Como definir o valor de timeout do TCP

maior que RTTndash mas RTT varia

muito curto timeout prematurondash retransmissotildees

desnecessaacuterias muito longo baixa

reaccedilatildeo a perda de segmento

P Como estimar o RTT SampleRTT tempo medido

da transmissatildeo do segmento ateacute receber o ACKndash ignora retransmissotildees

SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquondash meacutedia de vaacuterias mediccedilotildees

recentes natildeo apenas SampleRTT atual

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 61

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui exponencialmente

raacutepido valor tiacutepico = 0125

Tempo de ida e volta e timeout do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 62

Amostras de RTTs estimados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 63

definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(geralmente = 025)

depois definir intervalo de timeout

Tempo de ida e volta e timeout do TCP

TimeoutIntervalinicial

= 1 sldquomargem de seguranccedilardquo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 64

TCP cenaacuterios de retransmissatildeo

Hosp A

Seq = 100 20 bytes dados

ACK = 100

tempoTimeout prematuro

Hosp B

Seq = 92 8 bytes dados

ACK = 120

Seq = 92 8 bytes dados

Seq

= 9

2 tim

eout

ACK = 120

Hosp A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio de ACK perdido

Hosp B

X

Seq = 92 8 bytes dados

ACK = 100

tempoS

eq =

92

timeo

ut

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 65

TCP cenaacuterios de retransmissatildeo

Host A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio ACK cumulativo

Host B

X

Seq = 100 20 bytes dados

ACK = 120

tempo

Transport Layer 3-66

TCP fast retransmit time-out period

often relatively long long delay before

resending lost packet detect lost

segments via duplicate ACKs sender often sends

many segments back-to-back

if segment is lost there will likely be many duplicate ACKs

if sender receives 3 ACKs for same data(ldquotriple duplicate ACKsrdquo) resend unacked segment with smallest seq

likely that unacked segment lost so donrsquot wait for timeout

TCP fast retransmit

Transport Layer 3-67

X

fast retransmit after sender receipt of triple duplicate ACK

Host BHost A

Seq=92 8 bytes of data

ACK=100

timeo

ut ACK=100

ACK=100

ACK=100

TCP fast retransmit

Seq=100 20 bytes of data

Seq=100 20 bytes of data

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 69

bull O nuacutemero de sequecircncia para um segmento eacute o nuacutemero do primeiro byte do segmento

bull O nuacutemero de reconhecimento que o hospedeiro A atribui a seu segmento eacute o nuacutemero de sequecircncia do proacuteximo byte que ele estiver aguardando do hospedeiro B

bull Como o TCP somente reconhece bytes ateacute o primeiro byte que estiver faltando na cadeia dizemos que o TCP provecirc reconhecimentos cumulativos

Nuacutemeros de sequecircncia e nuacutemeros de reconhecimento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 70

bull O TCP cria um serviccedilo de transferecircncia confiaacutevel de dados sobre o serviccedilo de melhor esforccedilo do IP

bull O serviccedilo de transferecircncia garante que a cadeia de bytes eacute idecircntica agrave cadeia de bytes enviada pelo sistema final que estaacute do outro lado da conexatildeo

bull Os procedimentos recomendados no [RFC 6298] para gerenciamento de temporizadores TCP utilizam apenas um uacutenico temporizador de retransmissatildeo

Transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 71

bull O TCP provecirc um serviccedilo de controle de fluxo agraves suas aplicaccedilotildees para eliminar a possibilidade de o remetente estourar o buffer do destinataacuterio

bull Controle de fluxo eacute um serviccedilo de compatibilizaccedilatildeo de velocidades

bull O TCP oferece serviccedilo de controle de fluxo fazendo que o remetente mantenha uma variaacutevel denominada janela de recepccedilatildeo

Controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 72

Regulaccedilatildeo da taxa de envio

Uma rede de transmissatildeo raacutepida eum receptor de baixa capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 73

Controle de fluxo TCP

lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo

serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora

processo da aplicaccedilatildeo pode ser lento na leitura do buffer

remetente natildeo estouraraacute buffer do destinataacuterio transmitindo muitos dados muito rapidamente

controle de fluxo

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 74

Controle de fluxo TCP como funciona

(suponha que destinataacuterio TCP descarte segmentos fora de ordem)

espaccedilo de buffer natildeo usado = rwnd (slide 48) = RcvBuffer-[LastByteRcvd -

LastByteRead]

destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento

remetente limita de bytes com ACK a rwndndash garante que buffer do

destinataacuterio natildeo estoura

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

rwndRcvBuffer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 75

Gerenciamento da conexatildeo TCP

lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados

inicializa variaacuteveis TCPndash s seqndash buffers informaccedilatildeo de

controle de fluxo (p e RcvWindow)

cliente inicia a conexatildeo Socket clientSocket = new

Socket(hostnameport ) servidor contactado pelo

cliente Socket connectionSocket =

welcomeSocketaccept()

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 76

Gerenciamento da conexatildeo TCP

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 77

fechando uma conexatildeo

cliente fecha socket clientSocketclose()

etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor

etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN

cliente

FIN

servidor

ACK

ACK

FIN

fecha

fecha

fechado

espe

ra

tem

poriz

ada

Gerenciamento da conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 79

Controle de congestionamento

Uma rede de transmissatildeo lenta eum receptor de alta capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 80

bull As causas e os custos do congestionamento

Cenaacuterio de congestionamento 1 duas conexotildees compartilhando um uacutenico roteador com nuacutemero infinito de buffers

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 81

bull As causas e os custos do congestionamentoCenaacuterio de congestionamento 1 vazatildeo e atraso em funccedilatildeo da taxa de envio do hospedeiro

ldquocustosrdquo do congestionamento Aumento de atrasos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 82

bull As causas e os custos do congestionamento

Cenaacuterio 2 dois hospedeiros (com retransmissotildees) e um roteador com buffers finitos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 83

a) Caso ideal (vazatildeo)

b) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda

c) retransmissatildeo do pacote adiado (natildeo perdido) torna maior (que

o caso perfeito ) para o mesmo

in

out

=

in

out

gt

in

out

ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do

pacote

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 84

bull As causas e os custos do congestionamento

Cenaacuterio 3 quatro remetentesroteadores com buffers finitos e trajetos com muacuteltiplos roteadores

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 85

outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer capacidade

de transmissatildeo anterior usada para esse pacote foi desperdiccedilada

Host A

Host B

o

u

t

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 86

Controle de congestionamento fim a fim

bull A camada de rede natildeo fornece nenhum suporte expliacutecito agrave camada de transporte com a finalidade de controle de congestionamento

Controle de congestionamento assistido pela rede

bull Os componentes da camada de rede (isto eacute roteadores) fornecem retroalimentaccedilatildeo especiacutefica de informaccedilotildees ao remetente a respeito do estado de congestionamento na rede Natildeo usual

Mecanismos de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 87

bull A abordagem adotada pelo TCP eacute obrigar cada remetente a limitar a taxa agrave qual enviam traacutefego para sua conexatildeo como uma funccedilatildeo do congestionamento de rede percebido

Se um remetente TCP perceber que haacute pouco congestionamento no caminho entre ele e o destinataacuterio aumentaraacute sua taxa de envio

Se perceber que haacute congestionamento reduziraacute sua taxa de

envio

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 88

bull Mas essa abordagem levanta trecircs questotildees

1 Como um remetente TCP limita a taxa pela qual envia traacutefego para sua conexatildeo

2 Como um remetente TCP percebe que haacute congestionamento entre ele e o destinataacuterio

3 Que algoritmo o remetente deve utilizar para modificar sua taxa de envio como uma funccedilatildeo do congestionamento fim a fim percebido

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 89

bull Partida lenta TCP

Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 90

1) Cwnd = 1 MSS inicialmente

2) Partida lenta a cada rodada redefine cwnd = cwnd 2

3) Perda de pacotes (esgotamento de temporizaccedilatildeo ndash problema grave) ==gt cwnd = 1 (Tahoe ou Reno)

4) Prevenccedilatildeo de congestionamento apoacutes atingir sstresh cwnd = cwnd + 1

5) Trecircs acks duplicados (buraco no ldquofluxordquo ndash problema brando) entra no estado prevenccedilatildeo de congestionamento e redefine cwnd = 1 (Tahoe) ou cwnd = sstresh (Reno)

6) Sstresh = cwnd2 quando satildeo detectados problemas

Quantidade de dados natildeo reconhecidas no TCP = min(CongWin RecWin)

Controle de congestionamento TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 91

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 93

bull Evoluccedilatildeo da janela de congestionamento do TCP (Tahoe e Reno ndash mais usual)

Recuperaccedilatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 94

Controle de congestionamento TCP

Partida lenta seguida por aumento aditivo no TCP Tahoe

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 95

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 96

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 97

bull O controle de congestionamento AIMD (Additive-increase Multiplicative-Decrease) faz surgir o comportamento semelhante a ldquodentes de serrardquo

bull httpsmediapearsoncmgcomawecs_kurose_compnetwork_7cwcontentinteractiveanimationstcp-congestionindexhtml

Controle de congestionamento no TCP retrospectiva

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 98

O que eacute throughput meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughput meacutedio 075 WRTT (75 WRTT)

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 99

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (Probabilidade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 100

bull Duas conexotildees TCP compartilhando um uacutenico enlace congestionado

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 101

bull Vazatildeo alcanccedilada pelas conexotildees TCP 1 e TCP 2bull Ambas conexotildees em algum momento estatildeo com vazatildeo Abull Ambas vatildeo aumentando a vazatildeo ateacute ocorrer perda ndash Bbull Sstresh cai pela metade e ambas migram para Chellip

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 102

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

ndash Consequecircncia

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Nova aplicaccedilatildeo pede 1 TCP obteacutem taxa de R10 Nova aplicaccedilatildeo pede 11 TCPs obteacutem R2

Equidade

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Multiplexingdemultiplexing
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Principles of reliable data transfer
  • Slide 20
  • Slide 21
  • Reliable data transfer getting started
  • Slide 23
  • Slide 24
  • Slide 25
  • rdt20 FSM specification
  • rdt20 operation with no errors
  • rdt20 error scenario
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • rdt30 in action
  • Slide 39
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Selective repeat dilemma
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • TCP fast retransmit
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
Page 17: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 18

bull Note que a uacuteltima adiccedilatildeo teve um ldquovai umrdquo no bit mais significativo que foi somado ao bit menos significativo

bull Complemento de 1 0 ==gt 1 1 ==gt 0bull Fazendo o complemento de 1 da soma final

1011010100111101 Esta eacute a soma de verificaccedilatildeobull No destinataacuterio todas as 4 palavras recebidas de 16 bits satildeo

somadas 1111 ==gt Pacote correto algum bit em 0 ==gt algum erro foi introduzido no pacote

bull Por que soma de verificaccedilatildeo no UDPbull Algumas camadas de enlace por exemplo Ethernet fornecem

soma de verificaccedilatildeobull mas nem todas e aleacutem disso um roteador poderia introduzir

algum errobull UDP verifica erros fim a fim

Soma de verificaccedilatildeo UDP

Transport Layer 3-19

Principles of reliable data transfer important in application transport link layers

top-10 list of important networking topics

characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)

Transport Layer 3-20

characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)

Principles of reliable data transfer important in application transport link layers

top-10 list of important networking topics

Transport Layer 3-21

characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)

important in application transport link layers top-10 list of important networking topics

Principles of reliable data transfer

Transport Layer 3-22

sendside

receiveside

rdt_send() called from above (eg by app) Passed data to deliver to receiver upper layer

udt_send() called by rdtto transfer packet over unreliable channel to receiver

rdt_rcv() called when packet arrives on rcv-side of channel

deliver_data() called by rdt to deliver data to upper

Principles of reliable data transfer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 23

vamos desenvolver de forma incremental os lados remetente e destinataacuterio do

protocolo de transferecircncia confiaacutevel de dados (rdt) considerar apenas a transf de dados unidirecional Bidirecional eacute soacute

duplicar a estruturandash mas informaccedilotildees de controle fluiratildeo nas duas direccedilotildees

usar maacutequinas de estado finito (FSM) para especificar remetente e destinataacuterio

estado1

estado2

evento causando transiccedilatildeo de estadoaccedilotildees tomadas sobre transiccedilatildeo de estado

estado quando neste ldquoestadordquo proacuteximo

estado determinadoexclusivamente pelo

proacuteximo evento

eventoaccedilotildees

Transferecircncia confiaacutevel de dados introduccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 24

bull rdt10 ndash Um protocolo para um canal completamente confiaacutevel

Transferecircncia confiaacutevel de dados sobre um canal perfeitamente confiaacutevel rdt10

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 25

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt20

rdt20 ndash Um protocolo para um canal com erros de bits Base dos protocolos ARQ (Automatic Repeat Request)

Detecccedilatildeo de erros (mecanismo do UDP)

Realimentaccedilatildeo do destinataacuterio (ACK ou NACK)

Retransmissatildeobull Pare e espere

Transport Layer 3-26

rdt20 FSM specification

Wait for call from above

sndpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from belowsender

receiverrdt_send(data)

Transport Layer 3-27

rdt20 operation with no errors

Wait for call from above

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from below

rdt_send(data)

Transport Layer 3-28

rdt20 error scenario

Wait for call from above

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from below

rdt_send(data)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 29

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt20

bull O que acontece se o pacote ACK ou NAK estiver corrompido

bull Vamos considerar trecircs possibilidade para ACKs ou NAKs corrompidos1 Ser humano -- A ldquoditadordquo B ldquoOKrdquo ou ldquoRepita por favorrdquo ==gt

A natildeo entende ldquoO que foi que vocecirc disserdquo infinito Peacutessimo2 Bits de soma de verificaccedilatildeo de tal modo que permita ao remetente a

recuperaccedilatildeo de erros de bits Muito bom mas serve somente para canais com erro de bits e natildeo perda de pacotes

3 O Remetente reenvia o pacote de dados corrente quando receber um pacote ACK ou NAK truncado ==gt pode gerar pacotes duplicados Como o destinataacuterio sabe se o pacote conteacutem novos dados ou eacute uma retransmissatildeo ==gt nuacutemero de sequecircncia

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 30

bull rdt21 remetente

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 31

bull rdt21 destinataacuterio

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 32

bull O protocolo rdt21 usa tanto o reconhecimento positivo como negativo do remetente ao destinataacuterio pacote fora de ordem ==gt ACK pacote corrompido ==gt NAK

bull Podemos conseguir o mesmo efeito se ao inveacutes de enviarmos um NAK enviarmos um ACK do uacuteltimo corretamente recebido Ou seja ACK tambeacutem numerado

bull ACKs duplicados indicam ao remetente que o destinataacuterio natildeo recebeu corretamente o pacote seguinte agravequele do ACK duplo

bull rdt22 deve enviar o nuacutemero de sequecircncia no ACK

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21-2

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 33

bull rdt22 remetente

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt22

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 34

bull rdt22 destinataacuterio

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt22

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 35

bull Duas preocupaccedilotildees adicionais devem ser tratadas pelo protocolo1 Como detectar perda de pacotes2 O que fazer quando haacute perdas

bull As teacutecnicas jaacute discutidas atendem a segunda questatildeobull E para a primeira questatildeobull Suponha que o remetente transmita um pacote e que esse

pacote ou seu ACK seja perdido Nenhuma resposta chegaraacute ao remetente Se o remetente natildeo quiser esperar ==gt retransmite o pacote

bull Mas quanto o remetente precisa esperar para ter certeza que algo foi perdido Esperar um RTT Eacute muito difiacutecil estimar o RTT quanto mais ter certeza

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 36

bull Aleacutem disso o ideal seria que o protocolo se recuperasse da perda assim que possiacutevel

bull Na praacutetica O remetente faz uma escolha ponderada de um RTT provaacutevel mas natildeo

garantido que a perda tivesse acontecido Se natildeo receber um ACK nesse periacuteodo retransmite o pacote

bull Se o pacote sofrer um atraso longo pode haver retransmissatildeo mesmo que o pacote ou ACK natildeo tenham sido perdidos Possibilidade de pacotes de dados duplicados

bull Para implementar um mecanismo de retransmissatildeo com base no tempo eacute necessaacuterio um temporizador de contagem regressiva Accedilotildees iniciar atender parar

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 37

bull rdt30 remetente

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Transport Layer 3-38

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

pkt1

ack1

ack0

ack0

(a) no loss

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(b) packet loss

pkt1X

loss

pkt1timeout

resend pkt1

rdt30 in action

Transport Layer 3-39

rdt30 in action

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(c) ACK loss

ack1X

loss

pkt1timeout

resend pkt1

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

send ack0rcv ack0

send pkt1

send pkt0rcv pkt0

pkt0

ack0

(d) premature timeout delayed ACK

pkt1timeout

resend pkt1

ack1

send ack1

send pkt0rcv ack1

pkt0

ack1

ack0

send pkt0rcv ack1 pkt0

rcv pkt0send ack0ack0

rcv pkt0

send ack0(detect duplicate)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 42

bull No coraccedilatildeo do problema do desempenho do rdt30 estaacute o fato de ele ser um protocolo do tipo pare e espere

bull Um protocolo pare e espere em operaccedilatildeo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 43

U remet =

0008

30008 = 000027

microseconds

L R RTT + L R

=

Desempenho do rdt30

rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso pacote 8000 bits

U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando

Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps protocolo de rede limita uso de recursos fiacutesicos Soluccedilatildeo

ndosmicrosseguR

Ldtrans 8

bps10

bits80009

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 44

Um protocolo com paralelismo em operaccedilatildeo

bull O ACK recebido eacute de que pacote

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 45

bull Envio com pare e espere

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 46

bull Envio com paralelismo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Aumento de utilizaccedilatildeopor fator de 3

U remet =

0024 30008

= 00008 microseconds

3 L R RTT + L R

=

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 47

bull Em um protocolo Go-Back-N (GBN) o remetente eacute autorizado a transmitir muacuteltiplos pacotes sem esperar por um reconhecimento

bull Poreacutem fica limitado a ter natildeo mais do que algum nuacutemero maacuteximo permitido N (tamanho da janela) de pacotes natildeo reconhecidos na ldquotubulaccedilatildeordquo

bull Visatildeo do remetente para os nuacutemeros de sequecircncia no protocolo Go-Back-N

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 48

bull Descriccedilatildeo da FSM estendida do remetente GBNbull Quem consegue descrever o funcionamento

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 49

bull Descriccedilatildeo da FSM estendida do destinataacuterio GBN

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 50

Go-Back-N (GBN) em operaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 51

bull Protocolos de repeticcedilatildeo seletiva (SR) evitam retransmissotildees desnecessaacuterias

bull Eles fazem o remetente retransmitir apenas os pacotes suspeitos de terem sido recebidos com erro no destinataacuterio

bull Essa retransmissatildeo individual soacute quando necessaacuteria exige que o destinataacuterio reconheccedila individualmente os pacotes recebidos de modo correto

Repeticcedilatildeo seletiva (SR)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 52

Repeticcedilatildeo seletiva (SR)

Transport Layer 3-53

Selective repeatdilemma

example seq rsquos 0 1 2 3 window size=3

receiver window(after receipt)

sender window(after receipt)

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2 pkt0

timeoutretransmit pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2XXX

will accept packetwith seq number 0

(b) oops

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

X

will accept packetwith seq number 0

0 1 2 3 0 1 2 pkt3

(a) no problem

receiver canrsquot see sender sidereceiver behavior identical in both casessomethingrsquos (very) wrong

receiver sees no difference in two scenarios

duplicate data accepted as new in (b)

Q what relationship between seq size and window size to avoid problem in (b)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 54

Resumo de mecanismos de transferecircncia confiaacutevel de dados e sua utilizaccedilatildeo

bull Soma de verificaccedilatildeo - Usada para detectar erros de bits em um pacote transmitido

bull Temporizador - Usado para controlar a temporizaccedilatildeoretransmissatildeo de um pacote possivelmente porque o pacote (ou seu ACK) foi perdido dentro do canal

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 55

bull Nuacutemero de sequecircncia - Usado para numeraccedilatildeo sequencial de segmentos de dados que transitam do remetente ao destinataacuterio Ou seja pode-se ter vaacuterios segmentos transitando simultaneamente no canal de comunicaccedilatildeo maximizando assim o uso desse canal

bull Reconhecimento - Usado pelo destinataacuterio para avisar o remetente que um pacote ou conjunto de pacotes foi recebido corretamente

bull Janela paralelismo - O remetente pode ficar restrito a enviar somente pacotes com nuacutemeros de sequecircncia que caiam dentro de uma determinada faixa

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 56

bull Uma conexatildeo TCP provecirc um serviccedilo full-duplex

bull A conexatildeo TCP eacute sempre ponto a ponto

bull Uma vez estabelecida uma conexatildeo TCP dois processos de aplicaccedilatildeo podem enviar dados um para o outro 3-way handshake jaacute estabelecendo o MSS

bull O TCP combina cada porccedilatildeo de dados do cliente com um cabeccedilalho TCP formando assim segmentos TCP

A conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 57

Estrutura do segmento TCPURG dados urgentes

(quase natildeo usado)

ACK ACKvaacutelido

PSH empurrar dados agora

RST SYN FINestab conexatildeo

soma de verificaccedilatildeo

da Internet ndash todo o segmento(como em UDP)

bytes destinataacuteriopode aceitar

contagem porbytes de dados(natildeo segmentos)

Opcional e de comprimentovariaacutevel utilizado paranegociar o MSS ou fatorde escala em redes dealta velocidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 58

TCP Estabelecendo e fechando conexotildees

3-way handshakeFinalizando

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 59

s sequecircncia e ACKs do TCP

Cenaacuterio preestabelecido telnet simples

rsquos de sequecircnciandash ldquonuacutemerordquo na cadeia de

bytes do 1o byte nos dados do segmento

ACKsndash seq do proacuteximo byte

esperado do outro ladondash ACK cumulativo

P como o destinataacuterio trata segmentos fora de ordem

ndash R TCP natildeo diz ndash a criteacuterio do implementador

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 60

Tempo de ida e volta e timeout do TCP

P Como definir o valor de timeout do TCP

maior que RTTndash mas RTT varia

muito curto timeout prematurondash retransmissotildees

desnecessaacuterias muito longo baixa

reaccedilatildeo a perda de segmento

P Como estimar o RTT SampleRTT tempo medido

da transmissatildeo do segmento ateacute receber o ACKndash ignora retransmissotildees

SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquondash meacutedia de vaacuterias mediccedilotildees

recentes natildeo apenas SampleRTT atual

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 61

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui exponencialmente

raacutepido valor tiacutepico = 0125

Tempo de ida e volta e timeout do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 62

Amostras de RTTs estimados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 63

definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(geralmente = 025)

depois definir intervalo de timeout

Tempo de ida e volta e timeout do TCP

TimeoutIntervalinicial

= 1 sldquomargem de seguranccedilardquo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 64

TCP cenaacuterios de retransmissatildeo

Hosp A

Seq = 100 20 bytes dados

ACK = 100

tempoTimeout prematuro

Hosp B

Seq = 92 8 bytes dados

ACK = 120

Seq = 92 8 bytes dados

Seq

= 9

2 tim

eout

ACK = 120

Hosp A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio de ACK perdido

Hosp B

X

Seq = 92 8 bytes dados

ACK = 100

tempoS

eq =

92

timeo

ut

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 65

TCP cenaacuterios de retransmissatildeo

Host A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio ACK cumulativo

Host B

X

Seq = 100 20 bytes dados

ACK = 120

tempo

Transport Layer 3-66

TCP fast retransmit time-out period

often relatively long long delay before

resending lost packet detect lost

segments via duplicate ACKs sender often sends

many segments back-to-back

if segment is lost there will likely be many duplicate ACKs

if sender receives 3 ACKs for same data(ldquotriple duplicate ACKsrdquo) resend unacked segment with smallest seq

likely that unacked segment lost so donrsquot wait for timeout

TCP fast retransmit

Transport Layer 3-67

X

fast retransmit after sender receipt of triple duplicate ACK

Host BHost A

Seq=92 8 bytes of data

ACK=100

timeo

ut ACK=100

ACK=100

ACK=100

TCP fast retransmit

Seq=100 20 bytes of data

Seq=100 20 bytes of data

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 69

bull O nuacutemero de sequecircncia para um segmento eacute o nuacutemero do primeiro byte do segmento

bull O nuacutemero de reconhecimento que o hospedeiro A atribui a seu segmento eacute o nuacutemero de sequecircncia do proacuteximo byte que ele estiver aguardando do hospedeiro B

bull Como o TCP somente reconhece bytes ateacute o primeiro byte que estiver faltando na cadeia dizemos que o TCP provecirc reconhecimentos cumulativos

Nuacutemeros de sequecircncia e nuacutemeros de reconhecimento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 70

bull O TCP cria um serviccedilo de transferecircncia confiaacutevel de dados sobre o serviccedilo de melhor esforccedilo do IP

bull O serviccedilo de transferecircncia garante que a cadeia de bytes eacute idecircntica agrave cadeia de bytes enviada pelo sistema final que estaacute do outro lado da conexatildeo

bull Os procedimentos recomendados no [RFC 6298] para gerenciamento de temporizadores TCP utilizam apenas um uacutenico temporizador de retransmissatildeo

Transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 71

bull O TCP provecirc um serviccedilo de controle de fluxo agraves suas aplicaccedilotildees para eliminar a possibilidade de o remetente estourar o buffer do destinataacuterio

bull Controle de fluxo eacute um serviccedilo de compatibilizaccedilatildeo de velocidades

bull O TCP oferece serviccedilo de controle de fluxo fazendo que o remetente mantenha uma variaacutevel denominada janela de recepccedilatildeo

Controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 72

Regulaccedilatildeo da taxa de envio

Uma rede de transmissatildeo raacutepida eum receptor de baixa capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 73

Controle de fluxo TCP

lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo

serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora

processo da aplicaccedilatildeo pode ser lento na leitura do buffer

remetente natildeo estouraraacute buffer do destinataacuterio transmitindo muitos dados muito rapidamente

controle de fluxo

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 74

Controle de fluxo TCP como funciona

(suponha que destinataacuterio TCP descarte segmentos fora de ordem)

espaccedilo de buffer natildeo usado = rwnd (slide 48) = RcvBuffer-[LastByteRcvd -

LastByteRead]

destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento

remetente limita de bytes com ACK a rwndndash garante que buffer do

destinataacuterio natildeo estoura

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

rwndRcvBuffer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 75

Gerenciamento da conexatildeo TCP

lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados

inicializa variaacuteveis TCPndash s seqndash buffers informaccedilatildeo de

controle de fluxo (p e RcvWindow)

cliente inicia a conexatildeo Socket clientSocket = new

Socket(hostnameport ) servidor contactado pelo

cliente Socket connectionSocket =

welcomeSocketaccept()

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 76

Gerenciamento da conexatildeo TCP

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 77

fechando uma conexatildeo

cliente fecha socket clientSocketclose()

etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor

etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN

cliente

FIN

servidor

ACK

ACK

FIN

fecha

fecha

fechado

espe

ra

tem

poriz

ada

Gerenciamento da conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 79

Controle de congestionamento

Uma rede de transmissatildeo lenta eum receptor de alta capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 80

bull As causas e os custos do congestionamento

Cenaacuterio de congestionamento 1 duas conexotildees compartilhando um uacutenico roteador com nuacutemero infinito de buffers

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 81

bull As causas e os custos do congestionamentoCenaacuterio de congestionamento 1 vazatildeo e atraso em funccedilatildeo da taxa de envio do hospedeiro

ldquocustosrdquo do congestionamento Aumento de atrasos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 82

bull As causas e os custos do congestionamento

Cenaacuterio 2 dois hospedeiros (com retransmissotildees) e um roteador com buffers finitos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 83

a) Caso ideal (vazatildeo)

b) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda

c) retransmissatildeo do pacote adiado (natildeo perdido) torna maior (que

o caso perfeito ) para o mesmo

in

out

=

in

out

gt

in

out

ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do

pacote

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 84

bull As causas e os custos do congestionamento

Cenaacuterio 3 quatro remetentesroteadores com buffers finitos e trajetos com muacuteltiplos roteadores

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 85

outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer capacidade

de transmissatildeo anterior usada para esse pacote foi desperdiccedilada

Host A

Host B

o

u

t

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 86

Controle de congestionamento fim a fim

bull A camada de rede natildeo fornece nenhum suporte expliacutecito agrave camada de transporte com a finalidade de controle de congestionamento

Controle de congestionamento assistido pela rede

bull Os componentes da camada de rede (isto eacute roteadores) fornecem retroalimentaccedilatildeo especiacutefica de informaccedilotildees ao remetente a respeito do estado de congestionamento na rede Natildeo usual

Mecanismos de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 87

bull A abordagem adotada pelo TCP eacute obrigar cada remetente a limitar a taxa agrave qual enviam traacutefego para sua conexatildeo como uma funccedilatildeo do congestionamento de rede percebido

Se um remetente TCP perceber que haacute pouco congestionamento no caminho entre ele e o destinataacuterio aumentaraacute sua taxa de envio

Se perceber que haacute congestionamento reduziraacute sua taxa de

envio

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 88

bull Mas essa abordagem levanta trecircs questotildees

1 Como um remetente TCP limita a taxa pela qual envia traacutefego para sua conexatildeo

2 Como um remetente TCP percebe que haacute congestionamento entre ele e o destinataacuterio

3 Que algoritmo o remetente deve utilizar para modificar sua taxa de envio como uma funccedilatildeo do congestionamento fim a fim percebido

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 89

bull Partida lenta TCP

Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 90

1) Cwnd = 1 MSS inicialmente

2) Partida lenta a cada rodada redefine cwnd = cwnd 2

3) Perda de pacotes (esgotamento de temporizaccedilatildeo ndash problema grave) ==gt cwnd = 1 (Tahoe ou Reno)

4) Prevenccedilatildeo de congestionamento apoacutes atingir sstresh cwnd = cwnd + 1

5) Trecircs acks duplicados (buraco no ldquofluxordquo ndash problema brando) entra no estado prevenccedilatildeo de congestionamento e redefine cwnd = 1 (Tahoe) ou cwnd = sstresh (Reno)

6) Sstresh = cwnd2 quando satildeo detectados problemas

Quantidade de dados natildeo reconhecidas no TCP = min(CongWin RecWin)

Controle de congestionamento TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 91

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 93

bull Evoluccedilatildeo da janela de congestionamento do TCP (Tahoe e Reno ndash mais usual)

Recuperaccedilatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 94

Controle de congestionamento TCP

Partida lenta seguida por aumento aditivo no TCP Tahoe

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 95

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 96

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 97

bull O controle de congestionamento AIMD (Additive-increase Multiplicative-Decrease) faz surgir o comportamento semelhante a ldquodentes de serrardquo

bull httpsmediapearsoncmgcomawecs_kurose_compnetwork_7cwcontentinteractiveanimationstcp-congestionindexhtml

Controle de congestionamento no TCP retrospectiva

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 98

O que eacute throughput meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughput meacutedio 075 WRTT (75 WRTT)

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 99

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (Probabilidade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 100

bull Duas conexotildees TCP compartilhando um uacutenico enlace congestionado

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 101

bull Vazatildeo alcanccedilada pelas conexotildees TCP 1 e TCP 2bull Ambas conexotildees em algum momento estatildeo com vazatildeo Abull Ambas vatildeo aumentando a vazatildeo ateacute ocorrer perda ndash Bbull Sstresh cai pela metade e ambas migram para Chellip

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 102

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

ndash Consequecircncia

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Nova aplicaccedilatildeo pede 1 TCP obteacutem taxa de R10 Nova aplicaccedilatildeo pede 11 TCPs obteacutem R2

Equidade

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Multiplexingdemultiplexing
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Principles of reliable data transfer
  • Slide 20
  • Slide 21
  • Reliable data transfer getting started
  • Slide 23
  • Slide 24
  • Slide 25
  • rdt20 FSM specification
  • rdt20 operation with no errors
  • rdt20 error scenario
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • rdt30 in action
  • Slide 39
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Selective repeat dilemma
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • TCP fast retransmit
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
Page 18: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a

Transport Layer 3-19

Principles of reliable data transfer important in application transport link layers

top-10 list of important networking topics

characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)

Transport Layer 3-20

characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)

Principles of reliable data transfer important in application transport link layers

top-10 list of important networking topics

Transport Layer 3-21

characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)

important in application transport link layers top-10 list of important networking topics

Principles of reliable data transfer

Transport Layer 3-22

sendside

receiveside

rdt_send() called from above (eg by app) Passed data to deliver to receiver upper layer

udt_send() called by rdtto transfer packet over unreliable channel to receiver

rdt_rcv() called when packet arrives on rcv-side of channel

deliver_data() called by rdt to deliver data to upper

Principles of reliable data transfer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 23

vamos desenvolver de forma incremental os lados remetente e destinataacuterio do

protocolo de transferecircncia confiaacutevel de dados (rdt) considerar apenas a transf de dados unidirecional Bidirecional eacute soacute

duplicar a estruturandash mas informaccedilotildees de controle fluiratildeo nas duas direccedilotildees

usar maacutequinas de estado finito (FSM) para especificar remetente e destinataacuterio

estado1

estado2

evento causando transiccedilatildeo de estadoaccedilotildees tomadas sobre transiccedilatildeo de estado

estado quando neste ldquoestadordquo proacuteximo

estado determinadoexclusivamente pelo

proacuteximo evento

eventoaccedilotildees

Transferecircncia confiaacutevel de dados introduccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 24

bull rdt10 ndash Um protocolo para um canal completamente confiaacutevel

Transferecircncia confiaacutevel de dados sobre um canal perfeitamente confiaacutevel rdt10

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 25

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt20

rdt20 ndash Um protocolo para um canal com erros de bits Base dos protocolos ARQ (Automatic Repeat Request)

Detecccedilatildeo de erros (mecanismo do UDP)

Realimentaccedilatildeo do destinataacuterio (ACK ou NACK)

Retransmissatildeobull Pare e espere

Transport Layer 3-26

rdt20 FSM specification

Wait for call from above

sndpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from belowsender

receiverrdt_send(data)

Transport Layer 3-27

rdt20 operation with no errors

Wait for call from above

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from below

rdt_send(data)

Transport Layer 3-28

rdt20 error scenario

Wait for call from above

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from below

rdt_send(data)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 29

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt20

bull O que acontece se o pacote ACK ou NAK estiver corrompido

bull Vamos considerar trecircs possibilidade para ACKs ou NAKs corrompidos1 Ser humano -- A ldquoditadordquo B ldquoOKrdquo ou ldquoRepita por favorrdquo ==gt

A natildeo entende ldquoO que foi que vocecirc disserdquo infinito Peacutessimo2 Bits de soma de verificaccedilatildeo de tal modo que permita ao remetente a

recuperaccedilatildeo de erros de bits Muito bom mas serve somente para canais com erro de bits e natildeo perda de pacotes

3 O Remetente reenvia o pacote de dados corrente quando receber um pacote ACK ou NAK truncado ==gt pode gerar pacotes duplicados Como o destinataacuterio sabe se o pacote conteacutem novos dados ou eacute uma retransmissatildeo ==gt nuacutemero de sequecircncia

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 30

bull rdt21 remetente

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 31

bull rdt21 destinataacuterio

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 32

bull O protocolo rdt21 usa tanto o reconhecimento positivo como negativo do remetente ao destinataacuterio pacote fora de ordem ==gt ACK pacote corrompido ==gt NAK

bull Podemos conseguir o mesmo efeito se ao inveacutes de enviarmos um NAK enviarmos um ACK do uacuteltimo corretamente recebido Ou seja ACK tambeacutem numerado

bull ACKs duplicados indicam ao remetente que o destinataacuterio natildeo recebeu corretamente o pacote seguinte agravequele do ACK duplo

bull rdt22 deve enviar o nuacutemero de sequecircncia no ACK

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21-2

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 33

bull rdt22 remetente

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt22

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 34

bull rdt22 destinataacuterio

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt22

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 35

bull Duas preocupaccedilotildees adicionais devem ser tratadas pelo protocolo1 Como detectar perda de pacotes2 O que fazer quando haacute perdas

bull As teacutecnicas jaacute discutidas atendem a segunda questatildeobull E para a primeira questatildeobull Suponha que o remetente transmita um pacote e que esse

pacote ou seu ACK seja perdido Nenhuma resposta chegaraacute ao remetente Se o remetente natildeo quiser esperar ==gt retransmite o pacote

bull Mas quanto o remetente precisa esperar para ter certeza que algo foi perdido Esperar um RTT Eacute muito difiacutecil estimar o RTT quanto mais ter certeza

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 36

bull Aleacutem disso o ideal seria que o protocolo se recuperasse da perda assim que possiacutevel

bull Na praacutetica O remetente faz uma escolha ponderada de um RTT provaacutevel mas natildeo

garantido que a perda tivesse acontecido Se natildeo receber um ACK nesse periacuteodo retransmite o pacote

bull Se o pacote sofrer um atraso longo pode haver retransmissatildeo mesmo que o pacote ou ACK natildeo tenham sido perdidos Possibilidade de pacotes de dados duplicados

bull Para implementar um mecanismo de retransmissatildeo com base no tempo eacute necessaacuterio um temporizador de contagem regressiva Accedilotildees iniciar atender parar

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 37

bull rdt30 remetente

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Transport Layer 3-38

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

pkt1

ack1

ack0

ack0

(a) no loss

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(b) packet loss

pkt1X

loss

pkt1timeout

resend pkt1

rdt30 in action

Transport Layer 3-39

rdt30 in action

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(c) ACK loss

ack1X

loss

pkt1timeout

resend pkt1

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

send ack0rcv ack0

send pkt1

send pkt0rcv pkt0

pkt0

ack0

(d) premature timeout delayed ACK

pkt1timeout

resend pkt1

ack1

send ack1

send pkt0rcv ack1

pkt0

ack1

ack0

send pkt0rcv ack1 pkt0

rcv pkt0send ack0ack0

rcv pkt0

send ack0(detect duplicate)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 42

bull No coraccedilatildeo do problema do desempenho do rdt30 estaacute o fato de ele ser um protocolo do tipo pare e espere

bull Um protocolo pare e espere em operaccedilatildeo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 43

U remet =

0008

30008 = 000027

microseconds

L R RTT + L R

=

Desempenho do rdt30

rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso pacote 8000 bits

U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando

Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps protocolo de rede limita uso de recursos fiacutesicos Soluccedilatildeo

ndosmicrosseguR

Ldtrans 8

bps10

bits80009

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 44

Um protocolo com paralelismo em operaccedilatildeo

bull O ACK recebido eacute de que pacote

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 45

bull Envio com pare e espere

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 46

bull Envio com paralelismo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Aumento de utilizaccedilatildeopor fator de 3

U remet =

0024 30008

= 00008 microseconds

3 L R RTT + L R

=

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 47

bull Em um protocolo Go-Back-N (GBN) o remetente eacute autorizado a transmitir muacuteltiplos pacotes sem esperar por um reconhecimento

bull Poreacutem fica limitado a ter natildeo mais do que algum nuacutemero maacuteximo permitido N (tamanho da janela) de pacotes natildeo reconhecidos na ldquotubulaccedilatildeordquo

bull Visatildeo do remetente para os nuacutemeros de sequecircncia no protocolo Go-Back-N

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 48

bull Descriccedilatildeo da FSM estendida do remetente GBNbull Quem consegue descrever o funcionamento

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 49

bull Descriccedilatildeo da FSM estendida do destinataacuterio GBN

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 50

Go-Back-N (GBN) em operaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 51

bull Protocolos de repeticcedilatildeo seletiva (SR) evitam retransmissotildees desnecessaacuterias

bull Eles fazem o remetente retransmitir apenas os pacotes suspeitos de terem sido recebidos com erro no destinataacuterio

bull Essa retransmissatildeo individual soacute quando necessaacuteria exige que o destinataacuterio reconheccedila individualmente os pacotes recebidos de modo correto

Repeticcedilatildeo seletiva (SR)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 52

Repeticcedilatildeo seletiva (SR)

Transport Layer 3-53

Selective repeatdilemma

example seq rsquos 0 1 2 3 window size=3

receiver window(after receipt)

sender window(after receipt)

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2 pkt0

timeoutretransmit pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2XXX

will accept packetwith seq number 0

(b) oops

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

X

will accept packetwith seq number 0

0 1 2 3 0 1 2 pkt3

(a) no problem

receiver canrsquot see sender sidereceiver behavior identical in both casessomethingrsquos (very) wrong

receiver sees no difference in two scenarios

duplicate data accepted as new in (b)

Q what relationship between seq size and window size to avoid problem in (b)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 54

Resumo de mecanismos de transferecircncia confiaacutevel de dados e sua utilizaccedilatildeo

bull Soma de verificaccedilatildeo - Usada para detectar erros de bits em um pacote transmitido

bull Temporizador - Usado para controlar a temporizaccedilatildeoretransmissatildeo de um pacote possivelmente porque o pacote (ou seu ACK) foi perdido dentro do canal

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 55

bull Nuacutemero de sequecircncia - Usado para numeraccedilatildeo sequencial de segmentos de dados que transitam do remetente ao destinataacuterio Ou seja pode-se ter vaacuterios segmentos transitando simultaneamente no canal de comunicaccedilatildeo maximizando assim o uso desse canal

bull Reconhecimento - Usado pelo destinataacuterio para avisar o remetente que um pacote ou conjunto de pacotes foi recebido corretamente

bull Janela paralelismo - O remetente pode ficar restrito a enviar somente pacotes com nuacutemeros de sequecircncia que caiam dentro de uma determinada faixa

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 56

bull Uma conexatildeo TCP provecirc um serviccedilo full-duplex

bull A conexatildeo TCP eacute sempre ponto a ponto

bull Uma vez estabelecida uma conexatildeo TCP dois processos de aplicaccedilatildeo podem enviar dados um para o outro 3-way handshake jaacute estabelecendo o MSS

bull O TCP combina cada porccedilatildeo de dados do cliente com um cabeccedilalho TCP formando assim segmentos TCP

A conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 57

Estrutura do segmento TCPURG dados urgentes

(quase natildeo usado)

ACK ACKvaacutelido

PSH empurrar dados agora

RST SYN FINestab conexatildeo

soma de verificaccedilatildeo

da Internet ndash todo o segmento(como em UDP)

bytes destinataacuteriopode aceitar

contagem porbytes de dados(natildeo segmentos)

Opcional e de comprimentovariaacutevel utilizado paranegociar o MSS ou fatorde escala em redes dealta velocidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 58

TCP Estabelecendo e fechando conexotildees

3-way handshakeFinalizando

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 59

s sequecircncia e ACKs do TCP

Cenaacuterio preestabelecido telnet simples

rsquos de sequecircnciandash ldquonuacutemerordquo na cadeia de

bytes do 1o byte nos dados do segmento

ACKsndash seq do proacuteximo byte

esperado do outro ladondash ACK cumulativo

P como o destinataacuterio trata segmentos fora de ordem

ndash R TCP natildeo diz ndash a criteacuterio do implementador

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 60

Tempo de ida e volta e timeout do TCP

P Como definir o valor de timeout do TCP

maior que RTTndash mas RTT varia

muito curto timeout prematurondash retransmissotildees

desnecessaacuterias muito longo baixa

reaccedilatildeo a perda de segmento

P Como estimar o RTT SampleRTT tempo medido

da transmissatildeo do segmento ateacute receber o ACKndash ignora retransmissotildees

SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquondash meacutedia de vaacuterias mediccedilotildees

recentes natildeo apenas SampleRTT atual

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 61

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui exponencialmente

raacutepido valor tiacutepico = 0125

Tempo de ida e volta e timeout do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 62

Amostras de RTTs estimados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 63

definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(geralmente = 025)

depois definir intervalo de timeout

Tempo de ida e volta e timeout do TCP

TimeoutIntervalinicial

= 1 sldquomargem de seguranccedilardquo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 64

TCP cenaacuterios de retransmissatildeo

Hosp A

Seq = 100 20 bytes dados

ACK = 100

tempoTimeout prematuro

Hosp B

Seq = 92 8 bytes dados

ACK = 120

Seq = 92 8 bytes dados

Seq

= 9

2 tim

eout

ACK = 120

Hosp A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio de ACK perdido

Hosp B

X

Seq = 92 8 bytes dados

ACK = 100

tempoS

eq =

92

timeo

ut

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 65

TCP cenaacuterios de retransmissatildeo

Host A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio ACK cumulativo

Host B

X

Seq = 100 20 bytes dados

ACK = 120

tempo

Transport Layer 3-66

TCP fast retransmit time-out period

often relatively long long delay before

resending lost packet detect lost

segments via duplicate ACKs sender often sends

many segments back-to-back

if segment is lost there will likely be many duplicate ACKs

if sender receives 3 ACKs for same data(ldquotriple duplicate ACKsrdquo) resend unacked segment with smallest seq

likely that unacked segment lost so donrsquot wait for timeout

TCP fast retransmit

Transport Layer 3-67

X

fast retransmit after sender receipt of triple duplicate ACK

Host BHost A

Seq=92 8 bytes of data

ACK=100

timeo

ut ACK=100

ACK=100

ACK=100

TCP fast retransmit

Seq=100 20 bytes of data

Seq=100 20 bytes of data

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 69

bull O nuacutemero de sequecircncia para um segmento eacute o nuacutemero do primeiro byte do segmento

bull O nuacutemero de reconhecimento que o hospedeiro A atribui a seu segmento eacute o nuacutemero de sequecircncia do proacuteximo byte que ele estiver aguardando do hospedeiro B

bull Como o TCP somente reconhece bytes ateacute o primeiro byte que estiver faltando na cadeia dizemos que o TCP provecirc reconhecimentos cumulativos

Nuacutemeros de sequecircncia e nuacutemeros de reconhecimento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 70

bull O TCP cria um serviccedilo de transferecircncia confiaacutevel de dados sobre o serviccedilo de melhor esforccedilo do IP

bull O serviccedilo de transferecircncia garante que a cadeia de bytes eacute idecircntica agrave cadeia de bytes enviada pelo sistema final que estaacute do outro lado da conexatildeo

bull Os procedimentos recomendados no [RFC 6298] para gerenciamento de temporizadores TCP utilizam apenas um uacutenico temporizador de retransmissatildeo

Transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 71

bull O TCP provecirc um serviccedilo de controle de fluxo agraves suas aplicaccedilotildees para eliminar a possibilidade de o remetente estourar o buffer do destinataacuterio

bull Controle de fluxo eacute um serviccedilo de compatibilizaccedilatildeo de velocidades

bull O TCP oferece serviccedilo de controle de fluxo fazendo que o remetente mantenha uma variaacutevel denominada janela de recepccedilatildeo

Controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 72

Regulaccedilatildeo da taxa de envio

Uma rede de transmissatildeo raacutepida eum receptor de baixa capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 73

Controle de fluxo TCP

lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo

serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora

processo da aplicaccedilatildeo pode ser lento na leitura do buffer

remetente natildeo estouraraacute buffer do destinataacuterio transmitindo muitos dados muito rapidamente

controle de fluxo

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 74

Controle de fluxo TCP como funciona

(suponha que destinataacuterio TCP descarte segmentos fora de ordem)

espaccedilo de buffer natildeo usado = rwnd (slide 48) = RcvBuffer-[LastByteRcvd -

LastByteRead]

destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento

remetente limita de bytes com ACK a rwndndash garante que buffer do

destinataacuterio natildeo estoura

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

rwndRcvBuffer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 75

Gerenciamento da conexatildeo TCP

lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados

inicializa variaacuteveis TCPndash s seqndash buffers informaccedilatildeo de

controle de fluxo (p e RcvWindow)

cliente inicia a conexatildeo Socket clientSocket = new

Socket(hostnameport ) servidor contactado pelo

cliente Socket connectionSocket =

welcomeSocketaccept()

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 76

Gerenciamento da conexatildeo TCP

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 77

fechando uma conexatildeo

cliente fecha socket clientSocketclose()

etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor

etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN

cliente

FIN

servidor

ACK

ACK

FIN

fecha

fecha

fechado

espe

ra

tem

poriz

ada

Gerenciamento da conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 79

Controle de congestionamento

Uma rede de transmissatildeo lenta eum receptor de alta capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 80

bull As causas e os custos do congestionamento

Cenaacuterio de congestionamento 1 duas conexotildees compartilhando um uacutenico roteador com nuacutemero infinito de buffers

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 81

bull As causas e os custos do congestionamentoCenaacuterio de congestionamento 1 vazatildeo e atraso em funccedilatildeo da taxa de envio do hospedeiro

ldquocustosrdquo do congestionamento Aumento de atrasos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 82

bull As causas e os custos do congestionamento

Cenaacuterio 2 dois hospedeiros (com retransmissotildees) e um roteador com buffers finitos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 83

a) Caso ideal (vazatildeo)

b) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda

c) retransmissatildeo do pacote adiado (natildeo perdido) torna maior (que

o caso perfeito ) para o mesmo

in

out

=

in

out

gt

in

out

ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do

pacote

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 84

bull As causas e os custos do congestionamento

Cenaacuterio 3 quatro remetentesroteadores com buffers finitos e trajetos com muacuteltiplos roteadores

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 85

outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer capacidade

de transmissatildeo anterior usada para esse pacote foi desperdiccedilada

Host A

Host B

o

u

t

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 86

Controle de congestionamento fim a fim

bull A camada de rede natildeo fornece nenhum suporte expliacutecito agrave camada de transporte com a finalidade de controle de congestionamento

Controle de congestionamento assistido pela rede

bull Os componentes da camada de rede (isto eacute roteadores) fornecem retroalimentaccedilatildeo especiacutefica de informaccedilotildees ao remetente a respeito do estado de congestionamento na rede Natildeo usual

Mecanismos de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 87

bull A abordagem adotada pelo TCP eacute obrigar cada remetente a limitar a taxa agrave qual enviam traacutefego para sua conexatildeo como uma funccedilatildeo do congestionamento de rede percebido

Se um remetente TCP perceber que haacute pouco congestionamento no caminho entre ele e o destinataacuterio aumentaraacute sua taxa de envio

Se perceber que haacute congestionamento reduziraacute sua taxa de

envio

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 88

bull Mas essa abordagem levanta trecircs questotildees

1 Como um remetente TCP limita a taxa pela qual envia traacutefego para sua conexatildeo

2 Como um remetente TCP percebe que haacute congestionamento entre ele e o destinataacuterio

3 Que algoritmo o remetente deve utilizar para modificar sua taxa de envio como uma funccedilatildeo do congestionamento fim a fim percebido

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 89

bull Partida lenta TCP

Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 90

1) Cwnd = 1 MSS inicialmente

2) Partida lenta a cada rodada redefine cwnd = cwnd 2

3) Perda de pacotes (esgotamento de temporizaccedilatildeo ndash problema grave) ==gt cwnd = 1 (Tahoe ou Reno)

4) Prevenccedilatildeo de congestionamento apoacutes atingir sstresh cwnd = cwnd + 1

5) Trecircs acks duplicados (buraco no ldquofluxordquo ndash problema brando) entra no estado prevenccedilatildeo de congestionamento e redefine cwnd = 1 (Tahoe) ou cwnd = sstresh (Reno)

6) Sstresh = cwnd2 quando satildeo detectados problemas

Quantidade de dados natildeo reconhecidas no TCP = min(CongWin RecWin)

Controle de congestionamento TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 91

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 93

bull Evoluccedilatildeo da janela de congestionamento do TCP (Tahoe e Reno ndash mais usual)

Recuperaccedilatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 94

Controle de congestionamento TCP

Partida lenta seguida por aumento aditivo no TCP Tahoe

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 95

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 96

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 97

bull O controle de congestionamento AIMD (Additive-increase Multiplicative-Decrease) faz surgir o comportamento semelhante a ldquodentes de serrardquo

bull httpsmediapearsoncmgcomawecs_kurose_compnetwork_7cwcontentinteractiveanimationstcp-congestionindexhtml

Controle de congestionamento no TCP retrospectiva

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 98

O que eacute throughput meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughput meacutedio 075 WRTT (75 WRTT)

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 99

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (Probabilidade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 100

bull Duas conexotildees TCP compartilhando um uacutenico enlace congestionado

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 101

bull Vazatildeo alcanccedilada pelas conexotildees TCP 1 e TCP 2bull Ambas conexotildees em algum momento estatildeo com vazatildeo Abull Ambas vatildeo aumentando a vazatildeo ateacute ocorrer perda ndash Bbull Sstresh cai pela metade e ambas migram para Chellip

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 102

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

ndash Consequecircncia

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Nova aplicaccedilatildeo pede 1 TCP obteacutem taxa de R10 Nova aplicaccedilatildeo pede 11 TCPs obteacutem R2

Equidade

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Multiplexingdemultiplexing
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Principles of reliable data transfer
  • Slide 20
  • Slide 21
  • Reliable data transfer getting started
  • Slide 23
  • Slide 24
  • Slide 25
  • rdt20 FSM specification
  • rdt20 operation with no errors
  • rdt20 error scenario
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • rdt30 in action
  • Slide 39
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Selective repeat dilemma
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • TCP fast retransmit
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
Page 19: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a

Transport Layer 3-20

characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)

Principles of reliable data transfer important in application transport link layers

top-10 list of important networking topics

Transport Layer 3-21

characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)

important in application transport link layers top-10 list of important networking topics

Principles of reliable data transfer

Transport Layer 3-22

sendside

receiveside

rdt_send() called from above (eg by app) Passed data to deliver to receiver upper layer

udt_send() called by rdtto transfer packet over unreliable channel to receiver

rdt_rcv() called when packet arrives on rcv-side of channel

deliver_data() called by rdt to deliver data to upper

Principles of reliable data transfer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 23

vamos desenvolver de forma incremental os lados remetente e destinataacuterio do

protocolo de transferecircncia confiaacutevel de dados (rdt) considerar apenas a transf de dados unidirecional Bidirecional eacute soacute

duplicar a estruturandash mas informaccedilotildees de controle fluiratildeo nas duas direccedilotildees

usar maacutequinas de estado finito (FSM) para especificar remetente e destinataacuterio

estado1

estado2

evento causando transiccedilatildeo de estadoaccedilotildees tomadas sobre transiccedilatildeo de estado

estado quando neste ldquoestadordquo proacuteximo

estado determinadoexclusivamente pelo

proacuteximo evento

eventoaccedilotildees

Transferecircncia confiaacutevel de dados introduccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 24

bull rdt10 ndash Um protocolo para um canal completamente confiaacutevel

Transferecircncia confiaacutevel de dados sobre um canal perfeitamente confiaacutevel rdt10

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 25

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt20

rdt20 ndash Um protocolo para um canal com erros de bits Base dos protocolos ARQ (Automatic Repeat Request)

Detecccedilatildeo de erros (mecanismo do UDP)

Realimentaccedilatildeo do destinataacuterio (ACK ou NACK)

Retransmissatildeobull Pare e espere

Transport Layer 3-26

rdt20 FSM specification

Wait for call from above

sndpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from belowsender

receiverrdt_send(data)

Transport Layer 3-27

rdt20 operation with no errors

Wait for call from above

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from below

rdt_send(data)

Transport Layer 3-28

rdt20 error scenario

Wait for call from above

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from below

rdt_send(data)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 29

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt20

bull O que acontece se o pacote ACK ou NAK estiver corrompido

bull Vamos considerar trecircs possibilidade para ACKs ou NAKs corrompidos1 Ser humano -- A ldquoditadordquo B ldquoOKrdquo ou ldquoRepita por favorrdquo ==gt

A natildeo entende ldquoO que foi que vocecirc disserdquo infinito Peacutessimo2 Bits de soma de verificaccedilatildeo de tal modo que permita ao remetente a

recuperaccedilatildeo de erros de bits Muito bom mas serve somente para canais com erro de bits e natildeo perda de pacotes

3 O Remetente reenvia o pacote de dados corrente quando receber um pacote ACK ou NAK truncado ==gt pode gerar pacotes duplicados Como o destinataacuterio sabe se o pacote conteacutem novos dados ou eacute uma retransmissatildeo ==gt nuacutemero de sequecircncia

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 30

bull rdt21 remetente

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 31

bull rdt21 destinataacuterio

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 32

bull O protocolo rdt21 usa tanto o reconhecimento positivo como negativo do remetente ao destinataacuterio pacote fora de ordem ==gt ACK pacote corrompido ==gt NAK

bull Podemos conseguir o mesmo efeito se ao inveacutes de enviarmos um NAK enviarmos um ACK do uacuteltimo corretamente recebido Ou seja ACK tambeacutem numerado

bull ACKs duplicados indicam ao remetente que o destinataacuterio natildeo recebeu corretamente o pacote seguinte agravequele do ACK duplo

bull rdt22 deve enviar o nuacutemero de sequecircncia no ACK

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21-2

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 33

bull rdt22 remetente

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt22

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 34

bull rdt22 destinataacuterio

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt22

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 35

bull Duas preocupaccedilotildees adicionais devem ser tratadas pelo protocolo1 Como detectar perda de pacotes2 O que fazer quando haacute perdas

bull As teacutecnicas jaacute discutidas atendem a segunda questatildeobull E para a primeira questatildeobull Suponha que o remetente transmita um pacote e que esse

pacote ou seu ACK seja perdido Nenhuma resposta chegaraacute ao remetente Se o remetente natildeo quiser esperar ==gt retransmite o pacote

bull Mas quanto o remetente precisa esperar para ter certeza que algo foi perdido Esperar um RTT Eacute muito difiacutecil estimar o RTT quanto mais ter certeza

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 36

bull Aleacutem disso o ideal seria que o protocolo se recuperasse da perda assim que possiacutevel

bull Na praacutetica O remetente faz uma escolha ponderada de um RTT provaacutevel mas natildeo

garantido que a perda tivesse acontecido Se natildeo receber um ACK nesse periacuteodo retransmite o pacote

bull Se o pacote sofrer um atraso longo pode haver retransmissatildeo mesmo que o pacote ou ACK natildeo tenham sido perdidos Possibilidade de pacotes de dados duplicados

bull Para implementar um mecanismo de retransmissatildeo com base no tempo eacute necessaacuterio um temporizador de contagem regressiva Accedilotildees iniciar atender parar

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 37

bull rdt30 remetente

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Transport Layer 3-38

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

pkt1

ack1

ack0

ack0

(a) no loss

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(b) packet loss

pkt1X

loss

pkt1timeout

resend pkt1

rdt30 in action

Transport Layer 3-39

rdt30 in action

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(c) ACK loss

ack1X

loss

pkt1timeout

resend pkt1

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

send ack0rcv ack0

send pkt1

send pkt0rcv pkt0

pkt0

ack0

(d) premature timeout delayed ACK

pkt1timeout

resend pkt1

ack1

send ack1

send pkt0rcv ack1

pkt0

ack1

ack0

send pkt0rcv ack1 pkt0

rcv pkt0send ack0ack0

rcv pkt0

send ack0(detect duplicate)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 42

bull No coraccedilatildeo do problema do desempenho do rdt30 estaacute o fato de ele ser um protocolo do tipo pare e espere

bull Um protocolo pare e espere em operaccedilatildeo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 43

U remet =

0008

30008 = 000027

microseconds

L R RTT + L R

=

Desempenho do rdt30

rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso pacote 8000 bits

U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando

Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps protocolo de rede limita uso de recursos fiacutesicos Soluccedilatildeo

ndosmicrosseguR

Ldtrans 8

bps10

bits80009

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 44

Um protocolo com paralelismo em operaccedilatildeo

bull O ACK recebido eacute de que pacote

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 45

bull Envio com pare e espere

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 46

bull Envio com paralelismo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Aumento de utilizaccedilatildeopor fator de 3

U remet =

0024 30008

= 00008 microseconds

3 L R RTT + L R

=

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 47

bull Em um protocolo Go-Back-N (GBN) o remetente eacute autorizado a transmitir muacuteltiplos pacotes sem esperar por um reconhecimento

bull Poreacutem fica limitado a ter natildeo mais do que algum nuacutemero maacuteximo permitido N (tamanho da janela) de pacotes natildeo reconhecidos na ldquotubulaccedilatildeordquo

bull Visatildeo do remetente para os nuacutemeros de sequecircncia no protocolo Go-Back-N

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 48

bull Descriccedilatildeo da FSM estendida do remetente GBNbull Quem consegue descrever o funcionamento

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 49

bull Descriccedilatildeo da FSM estendida do destinataacuterio GBN

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 50

Go-Back-N (GBN) em operaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 51

bull Protocolos de repeticcedilatildeo seletiva (SR) evitam retransmissotildees desnecessaacuterias

bull Eles fazem o remetente retransmitir apenas os pacotes suspeitos de terem sido recebidos com erro no destinataacuterio

bull Essa retransmissatildeo individual soacute quando necessaacuteria exige que o destinataacuterio reconheccedila individualmente os pacotes recebidos de modo correto

Repeticcedilatildeo seletiva (SR)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 52

Repeticcedilatildeo seletiva (SR)

Transport Layer 3-53

Selective repeatdilemma

example seq rsquos 0 1 2 3 window size=3

receiver window(after receipt)

sender window(after receipt)

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2 pkt0

timeoutretransmit pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2XXX

will accept packetwith seq number 0

(b) oops

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

X

will accept packetwith seq number 0

0 1 2 3 0 1 2 pkt3

(a) no problem

receiver canrsquot see sender sidereceiver behavior identical in both casessomethingrsquos (very) wrong

receiver sees no difference in two scenarios

duplicate data accepted as new in (b)

Q what relationship between seq size and window size to avoid problem in (b)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 54

Resumo de mecanismos de transferecircncia confiaacutevel de dados e sua utilizaccedilatildeo

bull Soma de verificaccedilatildeo - Usada para detectar erros de bits em um pacote transmitido

bull Temporizador - Usado para controlar a temporizaccedilatildeoretransmissatildeo de um pacote possivelmente porque o pacote (ou seu ACK) foi perdido dentro do canal

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 55

bull Nuacutemero de sequecircncia - Usado para numeraccedilatildeo sequencial de segmentos de dados que transitam do remetente ao destinataacuterio Ou seja pode-se ter vaacuterios segmentos transitando simultaneamente no canal de comunicaccedilatildeo maximizando assim o uso desse canal

bull Reconhecimento - Usado pelo destinataacuterio para avisar o remetente que um pacote ou conjunto de pacotes foi recebido corretamente

bull Janela paralelismo - O remetente pode ficar restrito a enviar somente pacotes com nuacutemeros de sequecircncia que caiam dentro de uma determinada faixa

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 56

bull Uma conexatildeo TCP provecirc um serviccedilo full-duplex

bull A conexatildeo TCP eacute sempre ponto a ponto

bull Uma vez estabelecida uma conexatildeo TCP dois processos de aplicaccedilatildeo podem enviar dados um para o outro 3-way handshake jaacute estabelecendo o MSS

bull O TCP combina cada porccedilatildeo de dados do cliente com um cabeccedilalho TCP formando assim segmentos TCP

A conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 57

Estrutura do segmento TCPURG dados urgentes

(quase natildeo usado)

ACK ACKvaacutelido

PSH empurrar dados agora

RST SYN FINestab conexatildeo

soma de verificaccedilatildeo

da Internet ndash todo o segmento(como em UDP)

bytes destinataacuteriopode aceitar

contagem porbytes de dados(natildeo segmentos)

Opcional e de comprimentovariaacutevel utilizado paranegociar o MSS ou fatorde escala em redes dealta velocidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 58

TCP Estabelecendo e fechando conexotildees

3-way handshakeFinalizando

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 59

s sequecircncia e ACKs do TCP

Cenaacuterio preestabelecido telnet simples

rsquos de sequecircnciandash ldquonuacutemerordquo na cadeia de

bytes do 1o byte nos dados do segmento

ACKsndash seq do proacuteximo byte

esperado do outro ladondash ACK cumulativo

P como o destinataacuterio trata segmentos fora de ordem

ndash R TCP natildeo diz ndash a criteacuterio do implementador

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 60

Tempo de ida e volta e timeout do TCP

P Como definir o valor de timeout do TCP

maior que RTTndash mas RTT varia

muito curto timeout prematurondash retransmissotildees

desnecessaacuterias muito longo baixa

reaccedilatildeo a perda de segmento

P Como estimar o RTT SampleRTT tempo medido

da transmissatildeo do segmento ateacute receber o ACKndash ignora retransmissotildees

SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquondash meacutedia de vaacuterias mediccedilotildees

recentes natildeo apenas SampleRTT atual

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 61

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui exponencialmente

raacutepido valor tiacutepico = 0125

Tempo de ida e volta e timeout do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 62

Amostras de RTTs estimados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 63

definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(geralmente = 025)

depois definir intervalo de timeout

Tempo de ida e volta e timeout do TCP

TimeoutIntervalinicial

= 1 sldquomargem de seguranccedilardquo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 64

TCP cenaacuterios de retransmissatildeo

Hosp A

Seq = 100 20 bytes dados

ACK = 100

tempoTimeout prematuro

Hosp B

Seq = 92 8 bytes dados

ACK = 120

Seq = 92 8 bytes dados

Seq

= 9

2 tim

eout

ACK = 120

Hosp A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio de ACK perdido

Hosp B

X

Seq = 92 8 bytes dados

ACK = 100

tempoS

eq =

92

timeo

ut

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 65

TCP cenaacuterios de retransmissatildeo

Host A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio ACK cumulativo

Host B

X

Seq = 100 20 bytes dados

ACK = 120

tempo

Transport Layer 3-66

TCP fast retransmit time-out period

often relatively long long delay before

resending lost packet detect lost

segments via duplicate ACKs sender often sends

many segments back-to-back

if segment is lost there will likely be many duplicate ACKs

if sender receives 3 ACKs for same data(ldquotriple duplicate ACKsrdquo) resend unacked segment with smallest seq

likely that unacked segment lost so donrsquot wait for timeout

TCP fast retransmit

Transport Layer 3-67

X

fast retransmit after sender receipt of triple duplicate ACK

Host BHost A

Seq=92 8 bytes of data

ACK=100

timeo

ut ACK=100

ACK=100

ACK=100

TCP fast retransmit

Seq=100 20 bytes of data

Seq=100 20 bytes of data

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 69

bull O nuacutemero de sequecircncia para um segmento eacute o nuacutemero do primeiro byte do segmento

bull O nuacutemero de reconhecimento que o hospedeiro A atribui a seu segmento eacute o nuacutemero de sequecircncia do proacuteximo byte que ele estiver aguardando do hospedeiro B

bull Como o TCP somente reconhece bytes ateacute o primeiro byte que estiver faltando na cadeia dizemos que o TCP provecirc reconhecimentos cumulativos

Nuacutemeros de sequecircncia e nuacutemeros de reconhecimento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 70

bull O TCP cria um serviccedilo de transferecircncia confiaacutevel de dados sobre o serviccedilo de melhor esforccedilo do IP

bull O serviccedilo de transferecircncia garante que a cadeia de bytes eacute idecircntica agrave cadeia de bytes enviada pelo sistema final que estaacute do outro lado da conexatildeo

bull Os procedimentos recomendados no [RFC 6298] para gerenciamento de temporizadores TCP utilizam apenas um uacutenico temporizador de retransmissatildeo

Transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 71

bull O TCP provecirc um serviccedilo de controle de fluxo agraves suas aplicaccedilotildees para eliminar a possibilidade de o remetente estourar o buffer do destinataacuterio

bull Controle de fluxo eacute um serviccedilo de compatibilizaccedilatildeo de velocidades

bull O TCP oferece serviccedilo de controle de fluxo fazendo que o remetente mantenha uma variaacutevel denominada janela de recepccedilatildeo

Controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 72

Regulaccedilatildeo da taxa de envio

Uma rede de transmissatildeo raacutepida eum receptor de baixa capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 73

Controle de fluxo TCP

lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo

serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora

processo da aplicaccedilatildeo pode ser lento na leitura do buffer

remetente natildeo estouraraacute buffer do destinataacuterio transmitindo muitos dados muito rapidamente

controle de fluxo

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 74

Controle de fluxo TCP como funciona

(suponha que destinataacuterio TCP descarte segmentos fora de ordem)

espaccedilo de buffer natildeo usado = rwnd (slide 48) = RcvBuffer-[LastByteRcvd -

LastByteRead]

destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento

remetente limita de bytes com ACK a rwndndash garante que buffer do

destinataacuterio natildeo estoura

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

rwndRcvBuffer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 75

Gerenciamento da conexatildeo TCP

lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados

inicializa variaacuteveis TCPndash s seqndash buffers informaccedilatildeo de

controle de fluxo (p e RcvWindow)

cliente inicia a conexatildeo Socket clientSocket = new

Socket(hostnameport ) servidor contactado pelo

cliente Socket connectionSocket =

welcomeSocketaccept()

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 76

Gerenciamento da conexatildeo TCP

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 77

fechando uma conexatildeo

cliente fecha socket clientSocketclose()

etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor

etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN

cliente

FIN

servidor

ACK

ACK

FIN

fecha

fecha

fechado

espe

ra

tem

poriz

ada

Gerenciamento da conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 79

Controle de congestionamento

Uma rede de transmissatildeo lenta eum receptor de alta capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 80

bull As causas e os custos do congestionamento

Cenaacuterio de congestionamento 1 duas conexotildees compartilhando um uacutenico roteador com nuacutemero infinito de buffers

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 81

bull As causas e os custos do congestionamentoCenaacuterio de congestionamento 1 vazatildeo e atraso em funccedilatildeo da taxa de envio do hospedeiro

ldquocustosrdquo do congestionamento Aumento de atrasos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 82

bull As causas e os custos do congestionamento

Cenaacuterio 2 dois hospedeiros (com retransmissotildees) e um roteador com buffers finitos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 83

a) Caso ideal (vazatildeo)

b) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda

c) retransmissatildeo do pacote adiado (natildeo perdido) torna maior (que

o caso perfeito ) para o mesmo

in

out

=

in

out

gt

in

out

ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do

pacote

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 84

bull As causas e os custos do congestionamento

Cenaacuterio 3 quatro remetentesroteadores com buffers finitos e trajetos com muacuteltiplos roteadores

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 85

outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer capacidade

de transmissatildeo anterior usada para esse pacote foi desperdiccedilada

Host A

Host B

o

u

t

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 86

Controle de congestionamento fim a fim

bull A camada de rede natildeo fornece nenhum suporte expliacutecito agrave camada de transporte com a finalidade de controle de congestionamento

Controle de congestionamento assistido pela rede

bull Os componentes da camada de rede (isto eacute roteadores) fornecem retroalimentaccedilatildeo especiacutefica de informaccedilotildees ao remetente a respeito do estado de congestionamento na rede Natildeo usual

Mecanismos de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 87

bull A abordagem adotada pelo TCP eacute obrigar cada remetente a limitar a taxa agrave qual enviam traacutefego para sua conexatildeo como uma funccedilatildeo do congestionamento de rede percebido

Se um remetente TCP perceber que haacute pouco congestionamento no caminho entre ele e o destinataacuterio aumentaraacute sua taxa de envio

Se perceber que haacute congestionamento reduziraacute sua taxa de

envio

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 88

bull Mas essa abordagem levanta trecircs questotildees

1 Como um remetente TCP limita a taxa pela qual envia traacutefego para sua conexatildeo

2 Como um remetente TCP percebe que haacute congestionamento entre ele e o destinataacuterio

3 Que algoritmo o remetente deve utilizar para modificar sua taxa de envio como uma funccedilatildeo do congestionamento fim a fim percebido

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 89

bull Partida lenta TCP

Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 90

1) Cwnd = 1 MSS inicialmente

2) Partida lenta a cada rodada redefine cwnd = cwnd 2

3) Perda de pacotes (esgotamento de temporizaccedilatildeo ndash problema grave) ==gt cwnd = 1 (Tahoe ou Reno)

4) Prevenccedilatildeo de congestionamento apoacutes atingir sstresh cwnd = cwnd + 1

5) Trecircs acks duplicados (buraco no ldquofluxordquo ndash problema brando) entra no estado prevenccedilatildeo de congestionamento e redefine cwnd = 1 (Tahoe) ou cwnd = sstresh (Reno)

6) Sstresh = cwnd2 quando satildeo detectados problemas

Quantidade de dados natildeo reconhecidas no TCP = min(CongWin RecWin)

Controle de congestionamento TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 91

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 93

bull Evoluccedilatildeo da janela de congestionamento do TCP (Tahoe e Reno ndash mais usual)

Recuperaccedilatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 94

Controle de congestionamento TCP

Partida lenta seguida por aumento aditivo no TCP Tahoe

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 95

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 96

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 97

bull O controle de congestionamento AIMD (Additive-increase Multiplicative-Decrease) faz surgir o comportamento semelhante a ldquodentes de serrardquo

bull httpsmediapearsoncmgcomawecs_kurose_compnetwork_7cwcontentinteractiveanimationstcp-congestionindexhtml

Controle de congestionamento no TCP retrospectiva

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 98

O que eacute throughput meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughput meacutedio 075 WRTT (75 WRTT)

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 99

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (Probabilidade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 100

bull Duas conexotildees TCP compartilhando um uacutenico enlace congestionado

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 101

bull Vazatildeo alcanccedilada pelas conexotildees TCP 1 e TCP 2bull Ambas conexotildees em algum momento estatildeo com vazatildeo Abull Ambas vatildeo aumentando a vazatildeo ateacute ocorrer perda ndash Bbull Sstresh cai pela metade e ambas migram para Chellip

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 102

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

ndash Consequecircncia

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Nova aplicaccedilatildeo pede 1 TCP obteacutem taxa de R10 Nova aplicaccedilatildeo pede 11 TCPs obteacutem R2

Equidade

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Multiplexingdemultiplexing
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Principles of reliable data transfer
  • Slide 20
  • Slide 21
  • Reliable data transfer getting started
  • Slide 23
  • Slide 24
  • Slide 25
  • rdt20 FSM specification
  • rdt20 operation with no errors
  • rdt20 error scenario
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • rdt30 in action
  • Slide 39
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Selective repeat dilemma
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • TCP fast retransmit
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
Page 20: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a

Transport Layer 3-21

characteristics of unreliable channel will determine complexity of reliable data transfer protocol (rdt)

important in application transport link layers top-10 list of important networking topics

Principles of reliable data transfer

Transport Layer 3-22

sendside

receiveside

rdt_send() called from above (eg by app) Passed data to deliver to receiver upper layer

udt_send() called by rdtto transfer packet over unreliable channel to receiver

rdt_rcv() called when packet arrives on rcv-side of channel

deliver_data() called by rdt to deliver data to upper

Principles of reliable data transfer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 23

vamos desenvolver de forma incremental os lados remetente e destinataacuterio do

protocolo de transferecircncia confiaacutevel de dados (rdt) considerar apenas a transf de dados unidirecional Bidirecional eacute soacute

duplicar a estruturandash mas informaccedilotildees de controle fluiratildeo nas duas direccedilotildees

usar maacutequinas de estado finito (FSM) para especificar remetente e destinataacuterio

estado1

estado2

evento causando transiccedilatildeo de estadoaccedilotildees tomadas sobre transiccedilatildeo de estado

estado quando neste ldquoestadordquo proacuteximo

estado determinadoexclusivamente pelo

proacuteximo evento

eventoaccedilotildees

Transferecircncia confiaacutevel de dados introduccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 24

bull rdt10 ndash Um protocolo para um canal completamente confiaacutevel

Transferecircncia confiaacutevel de dados sobre um canal perfeitamente confiaacutevel rdt10

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 25

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt20

rdt20 ndash Um protocolo para um canal com erros de bits Base dos protocolos ARQ (Automatic Repeat Request)

Detecccedilatildeo de erros (mecanismo do UDP)

Realimentaccedilatildeo do destinataacuterio (ACK ou NACK)

Retransmissatildeobull Pare e espere

Transport Layer 3-26

rdt20 FSM specification

Wait for call from above

sndpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from belowsender

receiverrdt_send(data)

Transport Layer 3-27

rdt20 operation with no errors

Wait for call from above

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from below

rdt_send(data)

Transport Layer 3-28

rdt20 error scenario

Wait for call from above

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from below

rdt_send(data)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 29

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt20

bull O que acontece se o pacote ACK ou NAK estiver corrompido

bull Vamos considerar trecircs possibilidade para ACKs ou NAKs corrompidos1 Ser humano -- A ldquoditadordquo B ldquoOKrdquo ou ldquoRepita por favorrdquo ==gt

A natildeo entende ldquoO que foi que vocecirc disserdquo infinito Peacutessimo2 Bits de soma de verificaccedilatildeo de tal modo que permita ao remetente a

recuperaccedilatildeo de erros de bits Muito bom mas serve somente para canais com erro de bits e natildeo perda de pacotes

3 O Remetente reenvia o pacote de dados corrente quando receber um pacote ACK ou NAK truncado ==gt pode gerar pacotes duplicados Como o destinataacuterio sabe se o pacote conteacutem novos dados ou eacute uma retransmissatildeo ==gt nuacutemero de sequecircncia

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 30

bull rdt21 remetente

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 31

bull rdt21 destinataacuterio

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 32

bull O protocolo rdt21 usa tanto o reconhecimento positivo como negativo do remetente ao destinataacuterio pacote fora de ordem ==gt ACK pacote corrompido ==gt NAK

bull Podemos conseguir o mesmo efeito se ao inveacutes de enviarmos um NAK enviarmos um ACK do uacuteltimo corretamente recebido Ou seja ACK tambeacutem numerado

bull ACKs duplicados indicam ao remetente que o destinataacuterio natildeo recebeu corretamente o pacote seguinte agravequele do ACK duplo

bull rdt22 deve enviar o nuacutemero de sequecircncia no ACK

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21-2

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 33

bull rdt22 remetente

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt22

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 34

bull rdt22 destinataacuterio

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt22

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 35

bull Duas preocupaccedilotildees adicionais devem ser tratadas pelo protocolo1 Como detectar perda de pacotes2 O que fazer quando haacute perdas

bull As teacutecnicas jaacute discutidas atendem a segunda questatildeobull E para a primeira questatildeobull Suponha que o remetente transmita um pacote e que esse

pacote ou seu ACK seja perdido Nenhuma resposta chegaraacute ao remetente Se o remetente natildeo quiser esperar ==gt retransmite o pacote

bull Mas quanto o remetente precisa esperar para ter certeza que algo foi perdido Esperar um RTT Eacute muito difiacutecil estimar o RTT quanto mais ter certeza

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 36

bull Aleacutem disso o ideal seria que o protocolo se recuperasse da perda assim que possiacutevel

bull Na praacutetica O remetente faz uma escolha ponderada de um RTT provaacutevel mas natildeo

garantido que a perda tivesse acontecido Se natildeo receber um ACK nesse periacuteodo retransmite o pacote

bull Se o pacote sofrer um atraso longo pode haver retransmissatildeo mesmo que o pacote ou ACK natildeo tenham sido perdidos Possibilidade de pacotes de dados duplicados

bull Para implementar um mecanismo de retransmissatildeo com base no tempo eacute necessaacuterio um temporizador de contagem regressiva Accedilotildees iniciar atender parar

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 37

bull rdt30 remetente

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Transport Layer 3-38

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

pkt1

ack1

ack0

ack0

(a) no loss

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(b) packet loss

pkt1X

loss

pkt1timeout

resend pkt1

rdt30 in action

Transport Layer 3-39

rdt30 in action

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(c) ACK loss

ack1X

loss

pkt1timeout

resend pkt1

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

send ack0rcv ack0

send pkt1

send pkt0rcv pkt0

pkt0

ack0

(d) premature timeout delayed ACK

pkt1timeout

resend pkt1

ack1

send ack1

send pkt0rcv ack1

pkt0

ack1

ack0

send pkt0rcv ack1 pkt0

rcv pkt0send ack0ack0

rcv pkt0

send ack0(detect duplicate)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 42

bull No coraccedilatildeo do problema do desempenho do rdt30 estaacute o fato de ele ser um protocolo do tipo pare e espere

bull Um protocolo pare e espere em operaccedilatildeo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 43

U remet =

0008

30008 = 000027

microseconds

L R RTT + L R

=

Desempenho do rdt30

rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso pacote 8000 bits

U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando

Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps protocolo de rede limita uso de recursos fiacutesicos Soluccedilatildeo

ndosmicrosseguR

Ldtrans 8

bps10

bits80009

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 44

Um protocolo com paralelismo em operaccedilatildeo

bull O ACK recebido eacute de que pacote

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 45

bull Envio com pare e espere

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 46

bull Envio com paralelismo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Aumento de utilizaccedilatildeopor fator de 3

U remet =

0024 30008

= 00008 microseconds

3 L R RTT + L R

=

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 47

bull Em um protocolo Go-Back-N (GBN) o remetente eacute autorizado a transmitir muacuteltiplos pacotes sem esperar por um reconhecimento

bull Poreacutem fica limitado a ter natildeo mais do que algum nuacutemero maacuteximo permitido N (tamanho da janela) de pacotes natildeo reconhecidos na ldquotubulaccedilatildeordquo

bull Visatildeo do remetente para os nuacutemeros de sequecircncia no protocolo Go-Back-N

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 48

bull Descriccedilatildeo da FSM estendida do remetente GBNbull Quem consegue descrever o funcionamento

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 49

bull Descriccedilatildeo da FSM estendida do destinataacuterio GBN

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 50

Go-Back-N (GBN) em operaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 51

bull Protocolos de repeticcedilatildeo seletiva (SR) evitam retransmissotildees desnecessaacuterias

bull Eles fazem o remetente retransmitir apenas os pacotes suspeitos de terem sido recebidos com erro no destinataacuterio

bull Essa retransmissatildeo individual soacute quando necessaacuteria exige que o destinataacuterio reconheccedila individualmente os pacotes recebidos de modo correto

Repeticcedilatildeo seletiva (SR)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 52

Repeticcedilatildeo seletiva (SR)

Transport Layer 3-53

Selective repeatdilemma

example seq rsquos 0 1 2 3 window size=3

receiver window(after receipt)

sender window(after receipt)

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2 pkt0

timeoutretransmit pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2XXX

will accept packetwith seq number 0

(b) oops

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

X

will accept packetwith seq number 0

0 1 2 3 0 1 2 pkt3

(a) no problem

receiver canrsquot see sender sidereceiver behavior identical in both casessomethingrsquos (very) wrong

receiver sees no difference in two scenarios

duplicate data accepted as new in (b)

Q what relationship between seq size and window size to avoid problem in (b)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 54

Resumo de mecanismos de transferecircncia confiaacutevel de dados e sua utilizaccedilatildeo

bull Soma de verificaccedilatildeo - Usada para detectar erros de bits em um pacote transmitido

bull Temporizador - Usado para controlar a temporizaccedilatildeoretransmissatildeo de um pacote possivelmente porque o pacote (ou seu ACK) foi perdido dentro do canal

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 55

bull Nuacutemero de sequecircncia - Usado para numeraccedilatildeo sequencial de segmentos de dados que transitam do remetente ao destinataacuterio Ou seja pode-se ter vaacuterios segmentos transitando simultaneamente no canal de comunicaccedilatildeo maximizando assim o uso desse canal

bull Reconhecimento - Usado pelo destinataacuterio para avisar o remetente que um pacote ou conjunto de pacotes foi recebido corretamente

bull Janela paralelismo - O remetente pode ficar restrito a enviar somente pacotes com nuacutemeros de sequecircncia que caiam dentro de uma determinada faixa

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 56

bull Uma conexatildeo TCP provecirc um serviccedilo full-duplex

bull A conexatildeo TCP eacute sempre ponto a ponto

bull Uma vez estabelecida uma conexatildeo TCP dois processos de aplicaccedilatildeo podem enviar dados um para o outro 3-way handshake jaacute estabelecendo o MSS

bull O TCP combina cada porccedilatildeo de dados do cliente com um cabeccedilalho TCP formando assim segmentos TCP

A conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 57

Estrutura do segmento TCPURG dados urgentes

(quase natildeo usado)

ACK ACKvaacutelido

PSH empurrar dados agora

RST SYN FINestab conexatildeo

soma de verificaccedilatildeo

da Internet ndash todo o segmento(como em UDP)

bytes destinataacuteriopode aceitar

contagem porbytes de dados(natildeo segmentos)

Opcional e de comprimentovariaacutevel utilizado paranegociar o MSS ou fatorde escala em redes dealta velocidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 58

TCP Estabelecendo e fechando conexotildees

3-way handshakeFinalizando

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 59

s sequecircncia e ACKs do TCP

Cenaacuterio preestabelecido telnet simples

rsquos de sequecircnciandash ldquonuacutemerordquo na cadeia de

bytes do 1o byte nos dados do segmento

ACKsndash seq do proacuteximo byte

esperado do outro ladondash ACK cumulativo

P como o destinataacuterio trata segmentos fora de ordem

ndash R TCP natildeo diz ndash a criteacuterio do implementador

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 60

Tempo de ida e volta e timeout do TCP

P Como definir o valor de timeout do TCP

maior que RTTndash mas RTT varia

muito curto timeout prematurondash retransmissotildees

desnecessaacuterias muito longo baixa

reaccedilatildeo a perda de segmento

P Como estimar o RTT SampleRTT tempo medido

da transmissatildeo do segmento ateacute receber o ACKndash ignora retransmissotildees

SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquondash meacutedia de vaacuterias mediccedilotildees

recentes natildeo apenas SampleRTT atual

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 61

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui exponencialmente

raacutepido valor tiacutepico = 0125

Tempo de ida e volta e timeout do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 62

Amostras de RTTs estimados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 63

definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(geralmente = 025)

depois definir intervalo de timeout

Tempo de ida e volta e timeout do TCP

TimeoutIntervalinicial

= 1 sldquomargem de seguranccedilardquo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 64

TCP cenaacuterios de retransmissatildeo

Hosp A

Seq = 100 20 bytes dados

ACK = 100

tempoTimeout prematuro

Hosp B

Seq = 92 8 bytes dados

ACK = 120

Seq = 92 8 bytes dados

Seq

= 9

2 tim

eout

ACK = 120

Hosp A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio de ACK perdido

Hosp B

X

Seq = 92 8 bytes dados

ACK = 100

tempoS

eq =

92

timeo

ut

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 65

TCP cenaacuterios de retransmissatildeo

Host A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio ACK cumulativo

Host B

X

Seq = 100 20 bytes dados

ACK = 120

tempo

Transport Layer 3-66

TCP fast retransmit time-out period

often relatively long long delay before

resending lost packet detect lost

segments via duplicate ACKs sender often sends

many segments back-to-back

if segment is lost there will likely be many duplicate ACKs

if sender receives 3 ACKs for same data(ldquotriple duplicate ACKsrdquo) resend unacked segment with smallest seq

likely that unacked segment lost so donrsquot wait for timeout

TCP fast retransmit

Transport Layer 3-67

X

fast retransmit after sender receipt of triple duplicate ACK

Host BHost A

Seq=92 8 bytes of data

ACK=100

timeo

ut ACK=100

ACK=100

ACK=100

TCP fast retransmit

Seq=100 20 bytes of data

Seq=100 20 bytes of data

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 69

bull O nuacutemero de sequecircncia para um segmento eacute o nuacutemero do primeiro byte do segmento

bull O nuacutemero de reconhecimento que o hospedeiro A atribui a seu segmento eacute o nuacutemero de sequecircncia do proacuteximo byte que ele estiver aguardando do hospedeiro B

bull Como o TCP somente reconhece bytes ateacute o primeiro byte que estiver faltando na cadeia dizemos que o TCP provecirc reconhecimentos cumulativos

Nuacutemeros de sequecircncia e nuacutemeros de reconhecimento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 70

bull O TCP cria um serviccedilo de transferecircncia confiaacutevel de dados sobre o serviccedilo de melhor esforccedilo do IP

bull O serviccedilo de transferecircncia garante que a cadeia de bytes eacute idecircntica agrave cadeia de bytes enviada pelo sistema final que estaacute do outro lado da conexatildeo

bull Os procedimentos recomendados no [RFC 6298] para gerenciamento de temporizadores TCP utilizam apenas um uacutenico temporizador de retransmissatildeo

Transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 71

bull O TCP provecirc um serviccedilo de controle de fluxo agraves suas aplicaccedilotildees para eliminar a possibilidade de o remetente estourar o buffer do destinataacuterio

bull Controle de fluxo eacute um serviccedilo de compatibilizaccedilatildeo de velocidades

bull O TCP oferece serviccedilo de controle de fluxo fazendo que o remetente mantenha uma variaacutevel denominada janela de recepccedilatildeo

Controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 72

Regulaccedilatildeo da taxa de envio

Uma rede de transmissatildeo raacutepida eum receptor de baixa capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 73

Controle de fluxo TCP

lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo

serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora

processo da aplicaccedilatildeo pode ser lento na leitura do buffer

remetente natildeo estouraraacute buffer do destinataacuterio transmitindo muitos dados muito rapidamente

controle de fluxo

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 74

Controle de fluxo TCP como funciona

(suponha que destinataacuterio TCP descarte segmentos fora de ordem)

espaccedilo de buffer natildeo usado = rwnd (slide 48) = RcvBuffer-[LastByteRcvd -

LastByteRead]

destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento

remetente limita de bytes com ACK a rwndndash garante que buffer do

destinataacuterio natildeo estoura

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

rwndRcvBuffer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 75

Gerenciamento da conexatildeo TCP

lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados

inicializa variaacuteveis TCPndash s seqndash buffers informaccedilatildeo de

controle de fluxo (p e RcvWindow)

cliente inicia a conexatildeo Socket clientSocket = new

Socket(hostnameport ) servidor contactado pelo

cliente Socket connectionSocket =

welcomeSocketaccept()

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 76

Gerenciamento da conexatildeo TCP

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 77

fechando uma conexatildeo

cliente fecha socket clientSocketclose()

etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor

etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN

cliente

FIN

servidor

ACK

ACK

FIN

fecha

fecha

fechado

espe

ra

tem

poriz

ada

Gerenciamento da conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 79

Controle de congestionamento

Uma rede de transmissatildeo lenta eum receptor de alta capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 80

bull As causas e os custos do congestionamento

Cenaacuterio de congestionamento 1 duas conexotildees compartilhando um uacutenico roteador com nuacutemero infinito de buffers

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 81

bull As causas e os custos do congestionamentoCenaacuterio de congestionamento 1 vazatildeo e atraso em funccedilatildeo da taxa de envio do hospedeiro

ldquocustosrdquo do congestionamento Aumento de atrasos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 82

bull As causas e os custos do congestionamento

Cenaacuterio 2 dois hospedeiros (com retransmissotildees) e um roteador com buffers finitos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 83

a) Caso ideal (vazatildeo)

b) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda

c) retransmissatildeo do pacote adiado (natildeo perdido) torna maior (que

o caso perfeito ) para o mesmo

in

out

=

in

out

gt

in

out

ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do

pacote

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 84

bull As causas e os custos do congestionamento

Cenaacuterio 3 quatro remetentesroteadores com buffers finitos e trajetos com muacuteltiplos roteadores

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 85

outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer capacidade

de transmissatildeo anterior usada para esse pacote foi desperdiccedilada

Host A

Host B

o

u

t

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 86

Controle de congestionamento fim a fim

bull A camada de rede natildeo fornece nenhum suporte expliacutecito agrave camada de transporte com a finalidade de controle de congestionamento

Controle de congestionamento assistido pela rede

bull Os componentes da camada de rede (isto eacute roteadores) fornecem retroalimentaccedilatildeo especiacutefica de informaccedilotildees ao remetente a respeito do estado de congestionamento na rede Natildeo usual

Mecanismos de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 87

bull A abordagem adotada pelo TCP eacute obrigar cada remetente a limitar a taxa agrave qual enviam traacutefego para sua conexatildeo como uma funccedilatildeo do congestionamento de rede percebido

Se um remetente TCP perceber que haacute pouco congestionamento no caminho entre ele e o destinataacuterio aumentaraacute sua taxa de envio

Se perceber que haacute congestionamento reduziraacute sua taxa de

envio

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 88

bull Mas essa abordagem levanta trecircs questotildees

1 Como um remetente TCP limita a taxa pela qual envia traacutefego para sua conexatildeo

2 Como um remetente TCP percebe que haacute congestionamento entre ele e o destinataacuterio

3 Que algoritmo o remetente deve utilizar para modificar sua taxa de envio como uma funccedilatildeo do congestionamento fim a fim percebido

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 89

bull Partida lenta TCP

Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 90

1) Cwnd = 1 MSS inicialmente

2) Partida lenta a cada rodada redefine cwnd = cwnd 2

3) Perda de pacotes (esgotamento de temporizaccedilatildeo ndash problema grave) ==gt cwnd = 1 (Tahoe ou Reno)

4) Prevenccedilatildeo de congestionamento apoacutes atingir sstresh cwnd = cwnd + 1

5) Trecircs acks duplicados (buraco no ldquofluxordquo ndash problema brando) entra no estado prevenccedilatildeo de congestionamento e redefine cwnd = 1 (Tahoe) ou cwnd = sstresh (Reno)

6) Sstresh = cwnd2 quando satildeo detectados problemas

Quantidade de dados natildeo reconhecidas no TCP = min(CongWin RecWin)

Controle de congestionamento TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 91

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 93

bull Evoluccedilatildeo da janela de congestionamento do TCP (Tahoe e Reno ndash mais usual)

Recuperaccedilatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 94

Controle de congestionamento TCP

Partida lenta seguida por aumento aditivo no TCP Tahoe

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 95

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 96

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 97

bull O controle de congestionamento AIMD (Additive-increase Multiplicative-Decrease) faz surgir o comportamento semelhante a ldquodentes de serrardquo

bull httpsmediapearsoncmgcomawecs_kurose_compnetwork_7cwcontentinteractiveanimationstcp-congestionindexhtml

Controle de congestionamento no TCP retrospectiva

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 98

O que eacute throughput meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughput meacutedio 075 WRTT (75 WRTT)

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 99

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (Probabilidade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 100

bull Duas conexotildees TCP compartilhando um uacutenico enlace congestionado

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 101

bull Vazatildeo alcanccedilada pelas conexotildees TCP 1 e TCP 2bull Ambas conexotildees em algum momento estatildeo com vazatildeo Abull Ambas vatildeo aumentando a vazatildeo ateacute ocorrer perda ndash Bbull Sstresh cai pela metade e ambas migram para Chellip

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 102

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

ndash Consequecircncia

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Nova aplicaccedilatildeo pede 1 TCP obteacutem taxa de R10 Nova aplicaccedilatildeo pede 11 TCPs obteacutem R2

Equidade

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Multiplexingdemultiplexing
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Principles of reliable data transfer
  • Slide 20
  • Slide 21
  • Reliable data transfer getting started
  • Slide 23
  • Slide 24
  • Slide 25
  • rdt20 FSM specification
  • rdt20 operation with no errors
  • rdt20 error scenario
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • rdt30 in action
  • Slide 39
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Selective repeat dilemma
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • TCP fast retransmit
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
Page 21: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a

Transport Layer 3-22

sendside

receiveside

rdt_send() called from above (eg by app) Passed data to deliver to receiver upper layer

udt_send() called by rdtto transfer packet over unreliable channel to receiver

rdt_rcv() called when packet arrives on rcv-side of channel

deliver_data() called by rdt to deliver data to upper

Principles of reliable data transfer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 23

vamos desenvolver de forma incremental os lados remetente e destinataacuterio do

protocolo de transferecircncia confiaacutevel de dados (rdt) considerar apenas a transf de dados unidirecional Bidirecional eacute soacute

duplicar a estruturandash mas informaccedilotildees de controle fluiratildeo nas duas direccedilotildees

usar maacutequinas de estado finito (FSM) para especificar remetente e destinataacuterio

estado1

estado2

evento causando transiccedilatildeo de estadoaccedilotildees tomadas sobre transiccedilatildeo de estado

estado quando neste ldquoestadordquo proacuteximo

estado determinadoexclusivamente pelo

proacuteximo evento

eventoaccedilotildees

Transferecircncia confiaacutevel de dados introduccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 24

bull rdt10 ndash Um protocolo para um canal completamente confiaacutevel

Transferecircncia confiaacutevel de dados sobre um canal perfeitamente confiaacutevel rdt10

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 25

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt20

rdt20 ndash Um protocolo para um canal com erros de bits Base dos protocolos ARQ (Automatic Repeat Request)

Detecccedilatildeo de erros (mecanismo do UDP)

Realimentaccedilatildeo do destinataacuterio (ACK ou NACK)

Retransmissatildeobull Pare e espere

Transport Layer 3-26

rdt20 FSM specification

Wait for call from above

sndpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from belowsender

receiverrdt_send(data)

Transport Layer 3-27

rdt20 operation with no errors

Wait for call from above

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from below

rdt_send(data)

Transport Layer 3-28

rdt20 error scenario

Wait for call from above

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from below

rdt_send(data)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 29

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt20

bull O que acontece se o pacote ACK ou NAK estiver corrompido

bull Vamos considerar trecircs possibilidade para ACKs ou NAKs corrompidos1 Ser humano -- A ldquoditadordquo B ldquoOKrdquo ou ldquoRepita por favorrdquo ==gt

A natildeo entende ldquoO que foi que vocecirc disserdquo infinito Peacutessimo2 Bits de soma de verificaccedilatildeo de tal modo que permita ao remetente a

recuperaccedilatildeo de erros de bits Muito bom mas serve somente para canais com erro de bits e natildeo perda de pacotes

3 O Remetente reenvia o pacote de dados corrente quando receber um pacote ACK ou NAK truncado ==gt pode gerar pacotes duplicados Como o destinataacuterio sabe se o pacote conteacutem novos dados ou eacute uma retransmissatildeo ==gt nuacutemero de sequecircncia

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 30

bull rdt21 remetente

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 31

bull rdt21 destinataacuterio

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 32

bull O protocolo rdt21 usa tanto o reconhecimento positivo como negativo do remetente ao destinataacuterio pacote fora de ordem ==gt ACK pacote corrompido ==gt NAK

bull Podemos conseguir o mesmo efeito se ao inveacutes de enviarmos um NAK enviarmos um ACK do uacuteltimo corretamente recebido Ou seja ACK tambeacutem numerado

bull ACKs duplicados indicam ao remetente que o destinataacuterio natildeo recebeu corretamente o pacote seguinte agravequele do ACK duplo

bull rdt22 deve enviar o nuacutemero de sequecircncia no ACK

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21-2

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 33

bull rdt22 remetente

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt22

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 34

bull rdt22 destinataacuterio

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt22

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 35

bull Duas preocupaccedilotildees adicionais devem ser tratadas pelo protocolo1 Como detectar perda de pacotes2 O que fazer quando haacute perdas

bull As teacutecnicas jaacute discutidas atendem a segunda questatildeobull E para a primeira questatildeobull Suponha que o remetente transmita um pacote e que esse

pacote ou seu ACK seja perdido Nenhuma resposta chegaraacute ao remetente Se o remetente natildeo quiser esperar ==gt retransmite o pacote

bull Mas quanto o remetente precisa esperar para ter certeza que algo foi perdido Esperar um RTT Eacute muito difiacutecil estimar o RTT quanto mais ter certeza

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 36

bull Aleacutem disso o ideal seria que o protocolo se recuperasse da perda assim que possiacutevel

bull Na praacutetica O remetente faz uma escolha ponderada de um RTT provaacutevel mas natildeo

garantido que a perda tivesse acontecido Se natildeo receber um ACK nesse periacuteodo retransmite o pacote

bull Se o pacote sofrer um atraso longo pode haver retransmissatildeo mesmo que o pacote ou ACK natildeo tenham sido perdidos Possibilidade de pacotes de dados duplicados

bull Para implementar um mecanismo de retransmissatildeo com base no tempo eacute necessaacuterio um temporizador de contagem regressiva Accedilotildees iniciar atender parar

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 37

bull rdt30 remetente

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Transport Layer 3-38

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

pkt1

ack1

ack0

ack0

(a) no loss

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(b) packet loss

pkt1X

loss

pkt1timeout

resend pkt1

rdt30 in action

Transport Layer 3-39

rdt30 in action

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(c) ACK loss

ack1X

loss

pkt1timeout

resend pkt1

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

send ack0rcv ack0

send pkt1

send pkt0rcv pkt0

pkt0

ack0

(d) premature timeout delayed ACK

pkt1timeout

resend pkt1

ack1

send ack1

send pkt0rcv ack1

pkt0

ack1

ack0

send pkt0rcv ack1 pkt0

rcv pkt0send ack0ack0

rcv pkt0

send ack0(detect duplicate)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 42

bull No coraccedilatildeo do problema do desempenho do rdt30 estaacute o fato de ele ser um protocolo do tipo pare e espere

bull Um protocolo pare e espere em operaccedilatildeo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 43

U remet =

0008

30008 = 000027

microseconds

L R RTT + L R

=

Desempenho do rdt30

rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso pacote 8000 bits

U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando

Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps protocolo de rede limita uso de recursos fiacutesicos Soluccedilatildeo

ndosmicrosseguR

Ldtrans 8

bps10

bits80009

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 44

Um protocolo com paralelismo em operaccedilatildeo

bull O ACK recebido eacute de que pacote

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 45

bull Envio com pare e espere

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 46

bull Envio com paralelismo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Aumento de utilizaccedilatildeopor fator de 3

U remet =

0024 30008

= 00008 microseconds

3 L R RTT + L R

=

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 47

bull Em um protocolo Go-Back-N (GBN) o remetente eacute autorizado a transmitir muacuteltiplos pacotes sem esperar por um reconhecimento

bull Poreacutem fica limitado a ter natildeo mais do que algum nuacutemero maacuteximo permitido N (tamanho da janela) de pacotes natildeo reconhecidos na ldquotubulaccedilatildeordquo

bull Visatildeo do remetente para os nuacutemeros de sequecircncia no protocolo Go-Back-N

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 48

bull Descriccedilatildeo da FSM estendida do remetente GBNbull Quem consegue descrever o funcionamento

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 49

bull Descriccedilatildeo da FSM estendida do destinataacuterio GBN

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 50

Go-Back-N (GBN) em operaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 51

bull Protocolos de repeticcedilatildeo seletiva (SR) evitam retransmissotildees desnecessaacuterias

bull Eles fazem o remetente retransmitir apenas os pacotes suspeitos de terem sido recebidos com erro no destinataacuterio

bull Essa retransmissatildeo individual soacute quando necessaacuteria exige que o destinataacuterio reconheccedila individualmente os pacotes recebidos de modo correto

Repeticcedilatildeo seletiva (SR)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 52

Repeticcedilatildeo seletiva (SR)

Transport Layer 3-53

Selective repeatdilemma

example seq rsquos 0 1 2 3 window size=3

receiver window(after receipt)

sender window(after receipt)

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2 pkt0

timeoutretransmit pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2XXX

will accept packetwith seq number 0

(b) oops

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

X

will accept packetwith seq number 0

0 1 2 3 0 1 2 pkt3

(a) no problem

receiver canrsquot see sender sidereceiver behavior identical in both casessomethingrsquos (very) wrong

receiver sees no difference in two scenarios

duplicate data accepted as new in (b)

Q what relationship between seq size and window size to avoid problem in (b)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 54

Resumo de mecanismos de transferecircncia confiaacutevel de dados e sua utilizaccedilatildeo

bull Soma de verificaccedilatildeo - Usada para detectar erros de bits em um pacote transmitido

bull Temporizador - Usado para controlar a temporizaccedilatildeoretransmissatildeo de um pacote possivelmente porque o pacote (ou seu ACK) foi perdido dentro do canal

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 55

bull Nuacutemero de sequecircncia - Usado para numeraccedilatildeo sequencial de segmentos de dados que transitam do remetente ao destinataacuterio Ou seja pode-se ter vaacuterios segmentos transitando simultaneamente no canal de comunicaccedilatildeo maximizando assim o uso desse canal

bull Reconhecimento - Usado pelo destinataacuterio para avisar o remetente que um pacote ou conjunto de pacotes foi recebido corretamente

bull Janela paralelismo - O remetente pode ficar restrito a enviar somente pacotes com nuacutemeros de sequecircncia que caiam dentro de uma determinada faixa

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 56

bull Uma conexatildeo TCP provecirc um serviccedilo full-duplex

bull A conexatildeo TCP eacute sempre ponto a ponto

bull Uma vez estabelecida uma conexatildeo TCP dois processos de aplicaccedilatildeo podem enviar dados um para o outro 3-way handshake jaacute estabelecendo o MSS

bull O TCP combina cada porccedilatildeo de dados do cliente com um cabeccedilalho TCP formando assim segmentos TCP

A conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 57

Estrutura do segmento TCPURG dados urgentes

(quase natildeo usado)

ACK ACKvaacutelido

PSH empurrar dados agora

RST SYN FINestab conexatildeo

soma de verificaccedilatildeo

da Internet ndash todo o segmento(como em UDP)

bytes destinataacuteriopode aceitar

contagem porbytes de dados(natildeo segmentos)

Opcional e de comprimentovariaacutevel utilizado paranegociar o MSS ou fatorde escala em redes dealta velocidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 58

TCP Estabelecendo e fechando conexotildees

3-way handshakeFinalizando

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 59

s sequecircncia e ACKs do TCP

Cenaacuterio preestabelecido telnet simples

rsquos de sequecircnciandash ldquonuacutemerordquo na cadeia de

bytes do 1o byte nos dados do segmento

ACKsndash seq do proacuteximo byte

esperado do outro ladondash ACK cumulativo

P como o destinataacuterio trata segmentos fora de ordem

ndash R TCP natildeo diz ndash a criteacuterio do implementador

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 60

Tempo de ida e volta e timeout do TCP

P Como definir o valor de timeout do TCP

maior que RTTndash mas RTT varia

muito curto timeout prematurondash retransmissotildees

desnecessaacuterias muito longo baixa

reaccedilatildeo a perda de segmento

P Como estimar o RTT SampleRTT tempo medido

da transmissatildeo do segmento ateacute receber o ACKndash ignora retransmissotildees

SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquondash meacutedia de vaacuterias mediccedilotildees

recentes natildeo apenas SampleRTT atual

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 61

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui exponencialmente

raacutepido valor tiacutepico = 0125

Tempo de ida e volta e timeout do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 62

Amostras de RTTs estimados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 63

definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(geralmente = 025)

depois definir intervalo de timeout

Tempo de ida e volta e timeout do TCP

TimeoutIntervalinicial

= 1 sldquomargem de seguranccedilardquo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 64

TCP cenaacuterios de retransmissatildeo

Hosp A

Seq = 100 20 bytes dados

ACK = 100

tempoTimeout prematuro

Hosp B

Seq = 92 8 bytes dados

ACK = 120

Seq = 92 8 bytes dados

Seq

= 9

2 tim

eout

ACK = 120

Hosp A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio de ACK perdido

Hosp B

X

Seq = 92 8 bytes dados

ACK = 100

tempoS

eq =

92

timeo

ut

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 65

TCP cenaacuterios de retransmissatildeo

Host A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio ACK cumulativo

Host B

X

Seq = 100 20 bytes dados

ACK = 120

tempo

Transport Layer 3-66

TCP fast retransmit time-out period

often relatively long long delay before

resending lost packet detect lost

segments via duplicate ACKs sender often sends

many segments back-to-back

if segment is lost there will likely be many duplicate ACKs

if sender receives 3 ACKs for same data(ldquotriple duplicate ACKsrdquo) resend unacked segment with smallest seq

likely that unacked segment lost so donrsquot wait for timeout

TCP fast retransmit

Transport Layer 3-67

X

fast retransmit after sender receipt of triple duplicate ACK

Host BHost A

Seq=92 8 bytes of data

ACK=100

timeo

ut ACK=100

ACK=100

ACK=100

TCP fast retransmit

Seq=100 20 bytes of data

Seq=100 20 bytes of data

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 69

bull O nuacutemero de sequecircncia para um segmento eacute o nuacutemero do primeiro byte do segmento

bull O nuacutemero de reconhecimento que o hospedeiro A atribui a seu segmento eacute o nuacutemero de sequecircncia do proacuteximo byte que ele estiver aguardando do hospedeiro B

bull Como o TCP somente reconhece bytes ateacute o primeiro byte que estiver faltando na cadeia dizemos que o TCP provecirc reconhecimentos cumulativos

Nuacutemeros de sequecircncia e nuacutemeros de reconhecimento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 70

bull O TCP cria um serviccedilo de transferecircncia confiaacutevel de dados sobre o serviccedilo de melhor esforccedilo do IP

bull O serviccedilo de transferecircncia garante que a cadeia de bytes eacute idecircntica agrave cadeia de bytes enviada pelo sistema final que estaacute do outro lado da conexatildeo

bull Os procedimentos recomendados no [RFC 6298] para gerenciamento de temporizadores TCP utilizam apenas um uacutenico temporizador de retransmissatildeo

Transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 71

bull O TCP provecirc um serviccedilo de controle de fluxo agraves suas aplicaccedilotildees para eliminar a possibilidade de o remetente estourar o buffer do destinataacuterio

bull Controle de fluxo eacute um serviccedilo de compatibilizaccedilatildeo de velocidades

bull O TCP oferece serviccedilo de controle de fluxo fazendo que o remetente mantenha uma variaacutevel denominada janela de recepccedilatildeo

Controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 72

Regulaccedilatildeo da taxa de envio

Uma rede de transmissatildeo raacutepida eum receptor de baixa capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 73

Controle de fluxo TCP

lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo

serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora

processo da aplicaccedilatildeo pode ser lento na leitura do buffer

remetente natildeo estouraraacute buffer do destinataacuterio transmitindo muitos dados muito rapidamente

controle de fluxo

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 74

Controle de fluxo TCP como funciona

(suponha que destinataacuterio TCP descarte segmentos fora de ordem)

espaccedilo de buffer natildeo usado = rwnd (slide 48) = RcvBuffer-[LastByteRcvd -

LastByteRead]

destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento

remetente limita de bytes com ACK a rwndndash garante que buffer do

destinataacuterio natildeo estoura

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

rwndRcvBuffer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 75

Gerenciamento da conexatildeo TCP

lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados

inicializa variaacuteveis TCPndash s seqndash buffers informaccedilatildeo de

controle de fluxo (p e RcvWindow)

cliente inicia a conexatildeo Socket clientSocket = new

Socket(hostnameport ) servidor contactado pelo

cliente Socket connectionSocket =

welcomeSocketaccept()

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 76

Gerenciamento da conexatildeo TCP

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 77

fechando uma conexatildeo

cliente fecha socket clientSocketclose()

etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor

etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN

cliente

FIN

servidor

ACK

ACK

FIN

fecha

fecha

fechado

espe

ra

tem

poriz

ada

Gerenciamento da conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 79

Controle de congestionamento

Uma rede de transmissatildeo lenta eum receptor de alta capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 80

bull As causas e os custos do congestionamento

Cenaacuterio de congestionamento 1 duas conexotildees compartilhando um uacutenico roteador com nuacutemero infinito de buffers

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 81

bull As causas e os custos do congestionamentoCenaacuterio de congestionamento 1 vazatildeo e atraso em funccedilatildeo da taxa de envio do hospedeiro

ldquocustosrdquo do congestionamento Aumento de atrasos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 82

bull As causas e os custos do congestionamento

Cenaacuterio 2 dois hospedeiros (com retransmissotildees) e um roteador com buffers finitos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 83

a) Caso ideal (vazatildeo)

b) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda

c) retransmissatildeo do pacote adiado (natildeo perdido) torna maior (que

o caso perfeito ) para o mesmo

in

out

=

in

out

gt

in

out

ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do

pacote

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 84

bull As causas e os custos do congestionamento

Cenaacuterio 3 quatro remetentesroteadores com buffers finitos e trajetos com muacuteltiplos roteadores

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 85

outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer capacidade

de transmissatildeo anterior usada para esse pacote foi desperdiccedilada

Host A

Host B

o

u

t

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 86

Controle de congestionamento fim a fim

bull A camada de rede natildeo fornece nenhum suporte expliacutecito agrave camada de transporte com a finalidade de controle de congestionamento

Controle de congestionamento assistido pela rede

bull Os componentes da camada de rede (isto eacute roteadores) fornecem retroalimentaccedilatildeo especiacutefica de informaccedilotildees ao remetente a respeito do estado de congestionamento na rede Natildeo usual

Mecanismos de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 87

bull A abordagem adotada pelo TCP eacute obrigar cada remetente a limitar a taxa agrave qual enviam traacutefego para sua conexatildeo como uma funccedilatildeo do congestionamento de rede percebido

Se um remetente TCP perceber que haacute pouco congestionamento no caminho entre ele e o destinataacuterio aumentaraacute sua taxa de envio

Se perceber que haacute congestionamento reduziraacute sua taxa de

envio

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 88

bull Mas essa abordagem levanta trecircs questotildees

1 Como um remetente TCP limita a taxa pela qual envia traacutefego para sua conexatildeo

2 Como um remetente TCP percebe que haacute congestionamento entre ele e o destinataacuterio

3 Que algoritmo o remetente deve utilizar para modificar sua taxa de envio como uma funccedilatildeo do congestionamento fim a fim percebido

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 89

bull Partida lenta TCP

Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 90

1) Cwnd = 1 MSS inicialmente

2) Partida lenta a cada rodada redefine cwnd = cwnd 2

3) Perda de pacotes (esgotamento de temporizaccedilatildeo ndash problema grave) ==gt cwnd = 1 (Tahoe ou Reno)

4) Prevenccedilatildeo de congestionamento apoacutes atingir sstresh cwnd = cwnd + 1

5) Trecircs acks duplicados (buraco no ldquofluxordquo ndash problema brando) entra no estado prevenccedilatildeo de congestionamento e redefine cwnd = 1 (Tahoe) ou cwnd = sstresh (Reno)

6) Sstresh = cwnd2 quando satildeo detectados problemas

Quantidade de dados natildeo reconhecidas no TCP = min(CongWin RecWin)

Controle de congestionamento TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 91

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 93

bull Evoluccedilatildeo da janela de congestionamento do TCP (Tahoe e Reno ndash mais usual)

Recuperaccedilatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 94

Controle de congestionamento TCP

Partida lenta seguida por aumento aditivo no TCP Tahoe

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 95

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 96

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 97

bull O controle de congestionamento AIMD (Additive-increase Multiplicative-Decrease) faz surgir o comportamento semelhante a ldquodentes de serrardquo

bull httpsmediapearsoncmgcomawecs_kurose_compnetwork_7cwcontentinteractiveanimationstcp-congestionindexhtml

Controle de congestionamento no TCP retrospectiva

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 98

O que eacute throughput meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughput meacutedio 075 WRTT (75 WRTT)

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 99

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (Probabilidade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 100

bull Duas conexotildees TCP compartilhando um uacutenico enlace congestionado

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 101

bull Vazatildeo alcanccedilada pelas conexotildees TCP 1 e TCP 2bull Ambas conexotildees em algum momento estatildeo com vazatildeo Abull Ambas vatildeo aumentando a vazatildeo ateacute ocorrer perda ndash Bbull Sstresh cai pela metade e ambas migram para Chellip

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 102

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

ndash Consequecircncia

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Nova aplicaccedilatildeo pede 1 TCP obteacutem taxa de R10 Nova aplicaccedilatildeo pede 11 TCPs obteacutem R2

Equidade

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Multiplexingdemultiplexing
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Principles of reliable data transfer
  • Slide 20
  • Slide 21
  • Reliable data transfer getting started
  • Slide 23
  • Slide 24
  • Slide 25
  • rdt20 FSM specification
  • rdt20 operation with no errors
  • rdt20 error scenario
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • rdt30 in action
  • Slide 39
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Selective repeat dilemma
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • TCP fast retransmit
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
Page 22: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 23

vamos desenvolver de forma incremental os lados remetente e destinataacuterio do

protocolo de transferecircncia confiaacutevel de dados (rdt) considerar apenas a transf de dados unidirecional Bidirecional eacute soacute

duplicar a estruturandash mas informaccedilotildees de controle fluiratildeo nas duas direccedilotildees

usar maacutequinas de estado finito (FSM) para especificar remetente e destinataacuterio

estado1

estado2

evento causando transiccedilatildeo de estadoaccedilotildees tomadas sobre transiccedilatildeo de estado

estado quando neste ldquoestadordquo proacuteximo

estado determinadoexclusivamente pelo

proacuteximo evento

eventoaccedilotildees

Transferecircncia confiaacutevel de dados introduccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 24

bull rdt10 ndash Um protocolo para um canal completamente confiaacutevel

Transferecircncia confiaacutevel de dados sobre um canal perfeitamente confiaacutevel rdt10

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 25

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt20

rdt20 ndash Um protocolo para um canal com erros de bits Base dos protocolos ARQ (Automatic Repeat Request)

Detecccedilatildeo de erros (mecanismo do UDP)

Realimentaccedilatildeo do destinataacuterio (ACK ou NACK)

Retransmissatildeobull Pare e espere

Transport Layer 3-26

rdt20 FSM specification

Wait for call from above

sndpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from belowsender

receiverrdt_send(data)

Transport Layer 3-27

rdt20 operation with no errors

Wait for call from above

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from below

rdt_send(data)

Transport Layer 3-28

rdt20 error scenario

Wait for call from above

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from below

rdt_send(data)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 29

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt20

bull O que acontece se o pacote ACK ou NAK estiver corrompido

bull Vamos considerar trecircs possibilidade para ACKs ou NAKs corrompidos1 Ser humano -- A ldquoditadordquo B ldquoOKrdquo ou ldquoRepita por favorrdquo ==gt

A natildeo entende ldquoO que foi que vocecirc disserdquo infinito Peacutessimo2 Bits de soma de verificaccedilatildeo de tal modo que permita ao remetente a

recuperaccedilatildeo de erros de bits Muito bom mas serve somente para canais com erro de bits e natildeo perda de pacotes

3 O Remetente reenvia o pacote de dados corrente quando receber um pacote ACK ou NAK truncado ==gt pode gerar pacotes duplicados Como o destinataacuterio sabe se o pacote conteacutem novos dados ou eacute uma retransmissatildeo ==gt nuacutemero de sequecircncia

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 30

bull rdt21 remetente

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 31

bull rdt21 destinataacuterio

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 32

bull O protocolo rdt21 usa tanto o reconhecimento positivo como negativo do remetente ao destinataacuterio pacote fora de ordem ==gt ACK pacote corrompido ==gt NAK

bull Podemos conseguir o mesmo efeito se ao inveacutes de enviarmos um NAK enviarmos um ACK do uacuteltimo corretamente recebido Ou seja ACK tambeacutem numerado

bull ACKs duplicados indicam ao remetente que o destinataacuterio natildeo recebeu corretamente o pacote seguinte agravequele do ACK duplo

bull rdt22 deve enviar o nuacutemero de sequecircncia no ACK

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21-2

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 33

bull rdt22 remetente

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt22

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 34

bull rdt22 destinataacuterio

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt22

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 35

bull Duas preocupaccedilotildees adicionais devem ser tratadas pelo protocolo1 Como detectar perda de pacotes2 O que fazer quando haacute perdas

bull As teacutecnicas jaacute discutidas atendem a segunda questatildeobull E para a primeira questatildeobull Suponha que o remetente transmita um pacote e que esse

pacote ou seu ACK seja perdido Nenhuma resposta chegaraacute ao remetente Se o remetente natildeo quiser esperar ==gt retransmite o pacote

bull Mas quanto o remetente precisa esperar para ter certeza que algo foi perdido Esperar um RTT Eacute muito difiacutecil estimar o RTT quanto mais ter certeza

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 36

bull Aleacutem disso o ideal seria que o protocolo se recuperasse da perda assim que possiacutevel

bull Na praacutetica O remetente faz uma escolha ponderada de um RTT provaacutevel mas natildeo

garantido que a perda tivesse acontecido Se natildeo receber um ACK nesse periacuteodo retransmite o pacote

bull Se o pacote sofrer um atraso longo pode haver retransmissatildeo mesmo que o pacote ou ACK natildeo tenham sido perdidos Possibilidade de pacotes de dados duplicados

bull Para implementar um mecanismo de retransmissatildeo com base no tempo eacute necessaacuterio um temporizador de contagem regressiva Accedilotildees iniciar atender parar

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 37

bull rdt30 remetente

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Transport Layer 3-38

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

pkt1

ack1

ack0

ack0

(a) no loss

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(b) packet loss

pkt1X

loss

pkt1timeout

resend pkt1

rdt30 in action

Transport Layer 3-39

rdt30 in action

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(c) ACK loss

ack1X

loss

pkt1timeout

resend pkt1

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

send ack0rcv ack0

send pkt1

send pkt0rcv pkt0

pkt0

ack0

(d) premature timeout delayed ACK

pkt1timeout

resend pkt1

ack1

send ack1

send pkt0rcv ack1

pkt0

ack1

ack0

send pkt0rcv ack1 pkt0

rcv pkt0send ack0ack0

rcv pkt0

send ack0(detect duplicate)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 42

bull No coraccedilatildeo do problema do desempenho do rdt30 estaacute o fato de ele ser um protocolo do tipo pare e espere

bull Um protocolo pare e espere em operaccedilatildeo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 43

U remet =

0008

30008 = 000027

microseconds

L R RTT + L R

=

Desempenho do rdt30

rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso pacote 8000 bits

U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando

Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps protocolo de rede limita uso de recursos fiacutesicos Soluccedilatildeo

ndosmicrosseguR

Ldtrans 8

bps10

bits80009

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 44

Um protocolo com paralelismo em operaccedilatildeo

bull O ACK recebido eacute de que pacote

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 45

bull Envio com pare e espere

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 46

bull Envio com paralelismo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Aumento de utilizaccedilatildeopor fator de 3

U remet =

0024 30008

= 00008 microseconds

3 L R RTT + L R

=

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 47

bull Em um protocolo Go-Back-N (GBN) o remetente eacute autorizado a transmitir muacuteltiplos pacotes sem esperar por um reconhecimento

bull Poreacutem fica limitado a ter natildeo mais do que algum nuacutemero maacuteximo permitido N (tamanho da janela) de pacotes natildeo reconhecidos na ldquotubulaccedilatildeordquo

bull Visatildeo do remetente para os nuacutemeros de sequecircncia no protocolo Go-Back-N

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 48

bull Descriccedilatildeo da FSM estendida do remetente GBNbull Quem consegue descrever o funcionamento

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 49

bull Descriccedilatildeo da FSM estendida do destinataacuterio GBN

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 50

Go-Back-N (GBN) em operaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 51

bull Protocolos de repeticcedilatildeo seletiva (SR) evitam retransmissotildees desnecessaacuterias

bull Eles fazem o remetente retransmitir apenas os pacotes suspeitos de terem sido recebidos com erro no destinataacuterio

bull Essa retransmissatildeo individual soacute quando necessaacuteria exige que o destinataacuterio reconheccedila individualmente os pacotes recebidos de modo correto

Repeticcedilatildeo seletiva (SR)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 52

Repeticcedilatildeo seletiva (SR)

Transport Layer 3-53

Selective repeatdilemma

example seq rsquos 0 1 2 3 window size=3

receiver window(after receipt)

sender window(after receipt)

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2 pkt0

timeoutretransmit pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2XXX

will accept packetwith seq number 0

(b) oops

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

X

will accept packetwith seq number 0

0 1 2 3 0 1 2 pkt3

(a) no problem

receiver canrsquot see sender sidereceiver behavior identical in both casessomethingrsquos (very) wrong

receiver sees no difference in two scenarios

duplicate data accepted as new in (b)

Q what relationship between seq size and window size to avoid problem in (b)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 54

Resumo de mecanismos de transferecircncia confiaacutevel de dados e sua utilizaccedilatildeo

bull Soma de verificaccedilatildeo - Usada para detectar erros de bits em um pacote transmitido

bull Temporizador - Usado para controlar a temporizaccedilatildeoretransmissatildeo de um pacote possivelmente porque o pacote (ou seu ACK) foi perdido dentro do canal

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 55

bull Nuacutemero de sequecircncia - Usado para numeraccedilatildeo sequencial de segmentos de dados que transitam do remetente ao destinataacuterio Ou seja pode-se ter vaacuterios segmentos transitando simultaneamente no canal de comunicaccedilatildeo maximizando assim o uso desse canal

bull Reconhecimento - Usado pelo destinataacuterio para avisar o remetente que um pacote ou conjunto de pacotes foi recebido corretamente

bull Janela paralelismo - O remetente pode ficar restrito a enviar somente pacotes com nuacutemeros de sequecircncia que caiam dentro de uma determinada faixa

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 56

bull Uma conexatildeo TCP provecirc um serviccedilo full-duplex

bull A conexatildeo TCP eacute sempre ponto a ponto

bull Uma vez estabelecida uma conexatildeo TCP dois processos de aplicaccedilatildeo podem enviar dados um para o outro 3-way handshake jaacute estabelecendo o MSS

bull O TCP combina cada porccedilatildeo de dados do cliente com um cabeccedilalho TCP formando assim segmentos TCP

A conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 57

Estrutura do segmento TCPURG dados urgentes

(quase natildeo usado)

ACK ACKvaacutelido

PSH empurrar dados agora

RST SYN FINestab conexatildeo

soma de verificaccedilatildeo

da Internet ndash todo o segmento(como em UDP)

bytes destinataacuteriopode aceitar

contagem porbytes de dados(natildeo segmentos)

Opcional e de comprimentovariaacutevel utilizado paranegociar o MSS ou fatorde escala em redes dealta velocidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 58

TCP Estabelecendo e fechando conexotildees

3-way handshakeFinalizando

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 59

s sequecircncia e ACKs do TCP

Cenaacuterio preestabelecido telnet simples

rsquos de sequecircnciandash ldquonuacutemerordquo na cadeia de

bytes do 1o byte nos dados do segmento

ACKsndash seq do proacuteximo byte

esperado do outro ladondash ACK cumulativo

P como o destinataacuterio trata segmentos fora de ordem

ndash R TCP natildeo diz ndash a criteacuterio do implementador

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 60

Tempo de ida e volta e timeout do TCP

P Como definir o valor de timeout do TCP

maior que RTTndash mas RTT varia

muito curto timeout prematurondash retransmissotildees

desnecessaacuterias muito longo baixa

reaccedilatildeo a perda de segmento

P Como estimar o RTT SampleRTT tempo medido

da transmissatildeo do segmento ateacute receber o ACKndash ignora retransmissotildees

SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquondash meacutedia de vaacuterias mediccedilotildees

recentes natildeo apenas SampleRTT atual

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 61

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui exponencialmente

raacutepido valor tiacutepico = 0125

Tempo de ida e volta e timeout do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 62

Amostras de RTTs estimados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 63

definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(geralmente = 025)

depois definir intervalo de timeout

Tempo de ida e volta e timeout do TCP

TimeoutIntervalinicial

= 1 sldquomargem de seguranccedilardquo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 64

TCP cenaacuterios de retransmissatildeo

Hosp A

Seq = 100 20 bytes dados

ACK = 100

tempoTimeout prematuro

Hosp B

Seq = 92 8 bytes dados

ACK = 120

Seq = 92 8 bytes dados

Seq

= 9

2 tim

eout

ACK = 120

Hosp A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio de ACK perdido

Hosp B

X

Seq = 92 8 bytes dados

ACK = 100

tempoS

eq =

92

timeo

ut

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 65

TCP cenaacuterios de retransmissatildeo

Host A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio ACK cumulativo

Host B

X

Seq = 100 20 bytes dados

ACK = 120

tempo

Transport Layer 3-66

TCP fast retransmit time-out period

often relatively long long delay before

resending lost packet detect lost

segments via duplicate ACKs sender often sends

many segments back-to-back

if segment is lost there will likely be many duplicate ACKs

if sender receives 3 ACKs for same data(ldquotriple duplicate ACKsrdquo) resend unacked segment with smallest seq

likely that unacked segment lost so donrsquot wait for timeout

TCP fast retransmit

Transport Layer 3-67

X

fast retransmit after sender receipt of triple duplicate ACK

Host BHost A

Seq=92 8 bytes of data

ACK=100

timeo

ut ACK=100

ACK=100

ACK=100

TCP fast retransmit

Seq=100 20 bytes of data

Seq=100 20 bytes of data

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 69

bull O nuacutemero de sequecircncia para um segmento eacute o nuacutemero do primeiro byte do segmento

bull O nuacutemero de reconhecimento que o hospedeiro A atribui a seu segmento eacute o nuacutemero de sequecircncia do proacuteximo byte que ele estiver aguardando do hospedeiro B

bull Como o TCP somente reconhece bytes ateacute o primeiro byte que estiver faltando na cadeia dizemos que o TCP provecirc reconhecimentos cumulativos

Nuacutemeros de sequecircncia e nuacutemeros de reconhecimento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 70

bull O TCP cria um serviccedilo de transferecircncia confiaacutevel de dados sobre o serviccedilo de melhor esforccedilo do IP

bull O serviccedilo de transferecircncia garante que a cadeia de bytes eacute idecircntica agrave cadeia de bytes enviada pelo sistema final que estaacute do outro lado da conexatildeo

bull Os procedimentos recomendados no [RFC 6298] para gerenciamento de temporizadores TCP utilizam apenas um uacutenico temporizador de retransmissatildeo

Transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 71

bull O TCP provecirc um serviccedilo de controle de fluxo agraves suas aplicaccedilotildees para eliminar a possibilidade de o remetente estourar o buffer do destinataacuterio

bull Controle de fluxo eacute um serviccedilo de compatibilizaccedilatildeo de velocidades

bull O TCP oferece serviccedilo de controle de fluxo fazendo que o remetente mantenha uma variaacutevel denominada janela de recepccedilatildeo

Controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 72

Regulaccedilatildeo da taxa de envio

Uma rede de transmissatildeo raacutepida eum receptor de baixa capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 73

Controle de fluxo TCP

lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo

serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora

processo da aplicaccedilatildeo pode ser lento na leitura do buffer

remetente natildeo estouraraacute buffer do destinataacuterio transmitindo muitos dados muito rapidamente

controle de fluxo

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 74

Controle de fluxo TCP como funciona

(suponha que destinataacuterio TCP descarte segmentos fora de ordem)

espaccedilo de buffer natildeo usado = rwnd (slide 48) = RcvBuffer-[LastByteRcvd -

LastByteRead]

destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento

remetente limita de bytes com ACK a rwndndash garante que buffer do

destinataacuterio natildeo estoura

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

rwndRcvBuffer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 75

Gerenciamento da conexatildeo TCP

lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados

inicializa variaacuteveis TCPndash s seqndash buffers informaccedilatildeo de

controle de fluxo (p e RcvWindow)

cliente inicia a conexatildeo Socket clientSocket = new

Socket(hostnameport ) servidor contactado pelo

cliente Socket connectionSocket =

welcomeSocketaccept()

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 76

Gerenciamento da conexatildeo TCP

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 77

fechando uma conexatildeo

cliente fecha socket clientSocketclose()

etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor

etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN

cliente

FIN

servidor

ACK

ACK

FIN

fecha

fecha

fechado

espe

ra

tem

poriz

ada

Gerenciamento da conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 79

Controle de congestionamento

Uma rede de transmissatildeo lenta eum receptor de alta capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 80

bull As causas e os custos do congestionamento

Cenaacuterio de congestionamento 1 duas conexotildees compartilhando um uacutenico roteador com nuacutemero infinito de buffers

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 81

bull As causas e os custos do congestionamentoCenaacuterio de congestionamento 1 vazatildeo e atraso em funccedilatildeo da taxa de envio do hospedeiro

ldquocustosrdquo do congestionamento Aumento de atrasos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 82

bull As causas e os custos do congestionamento

Cenaacuterio 2 dois hospedeiros (com retransmissotildees) e um roteador com buffers finitos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 83

a) Caso ideal (vazatildeo)

b) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda

c) retransmissatildeo do pacote adiado (natildeo perdido) torna maior (que

o caso perfeito ) para o mesmo

in

out

=

in

out

gt

in

out

ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do

pacote

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 84

bull As causas e os custos do congestionamento

Cenaacuterio 3 quatro remetentesroteadores com buffers finitos e trajetos com muacuteltiplos roteadores

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 85

outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer capacidade

de transmissatildeo anterior usada para esse pacote foi desperdiccedilada

Host A

Host B

o

u

t

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 86

Controle de congestionamento fim a fim

bull A camada de rede natildeo fornece nenhum suporte expliacutecito agrave camada de transporte com a finalidade de controle de congestionamento

Controle de congestionamento assistido pela rede

bull Os componentes da camada de rede (isto eacute roteadores) fornecem retroalimentaccedilatildeo especiacutefica de informaccedilotildees ao remetente a respeito do estado de congestionamento na rede Natildeo usual

Mecanismos de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 87

bull A abordagem adotada pelo TCP eacute obrigar cada remetente a limitar a taxa agrave qual enviam traacutefego para sua conexatildeo como uma funccedilatildeo do congestionamento de rede percebido

Se um remetente TCP perceber que haacute pouco congestionamento no caminho entre ele e o destinataacuterio aumentaraacute sua taxa de envio

Se perceber que haacute congestionamento reduziraacute sua taxa de

envio

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 88

bull Mas essa abordagem levanta trecircs questotildees

1 Como um remetente TCP limita a taxa pela qual envia traacutefego para sua conexatildeo

2 Como um remetente TCP percebe que haacute congestionamento entre ele e o destinataacuterio

3 Que algoritmo o remetente deve utilizar para modificar sua taxa de envio como uma funccedilatildeo do congestionamento fim a fim percebido

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 89

bull Partida lenta TCP

Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 90

1) Cwnd = 1 MSS inicialmente

2) Partida lenta a cada rodada redefine cwnd = cwnd 2

3) Perda de pacotes (esgotamento de temporizaccedilatildeo ndash problema grave) ==gt cwnd = 1 (Tahoe ou Reno)

4) Prevenccedilatildeo de congestionamento apoacutes atingir sstresh cwnd = cwnd + 1

5) Trecircs acks duplicados (buraco no ldquofluxordquo ndash problema brando) entra no estado prevenccedilatildeo de congestionamento e redefine cwnd = 1 (Tahoe) ou cwnd = sstresh (Reno)

6) Sstresh = cwnd2 quando satildeo detectados problemas

Quantidade de dados natildeo reconhecidas no TCP = min(CongWin RecWin)

Controle de congestionamento TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 91

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 93

bull Evoluccedilatildeo da janela de congestionamento do TCP (Tahoe e Reno ndash mais usual)

Recuperaccedilatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 94

Controle de congestionamento TCP

Partida lenta seguida por aumento aditivo no TCP Tahoe

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 95

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 96

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 97

bull O controle de congestionamento AIMD (Additive-increase Multiplicative-Decrease) faz surgir o comportamento semelhante a ldquodentes de serrardquo

bull httpsmediapearsoncmgcomawecs_kurose_compnetwork_7cwcontentinteractiveanimationstcp-congestionindexhtml

Controle de congestionamento no TCP retrospectiva

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 98

O que eacute throughput meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughput meacutedio 075 WRTT (75 WRTT)

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 99

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (Probabilidade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 100

bull Duas conexotildees TCP compartilhando um uacutenico enlace congestionado

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 101

bull Vazatildeo alcanccedilada pelas conexotildees TCP 1 e TCP 2bull Ambas conexotildees em algum momento estatildeo com vazatildeo Abull Ambas vatildeo aumentando a vazatildeo ateacute ocorrer perda ndash Bbull Sstresh cai pela metade e ambas migram para Chellip

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 102

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

ndash Consequecircncia

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Nova aplicaccedilatildeo pede 1 TCP obteacutem taxa de R10 Nova aplicaccedilatildeo pede 11 TCPs obteacutem R2

Equidade

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Multiplexingdemultiplexing
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Principles of reliable data transfer
  • Slide 20
  • Slide 21
  • Reliable data transfer getting started
  • Slide 23
  • Slide 24
  • Slide 25
  • rdt20 FSM specification
  • rdt20 operation with no errors
  • rdt20 error scenario
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • rdt30 in action
  • Slide 39
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Selective repeat dilemma
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • TCP fast retransmit
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
Page 23: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 24

bull rdt10 ndash Um protocolo para um canal completamente confiaacutevel

Transferecircncia confiaacutevel de dados sobre um canal perfeitamente confiaacutevel rdt10

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 25

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt20

rdt20 ndash Um protocolo para um canal com erros de bits Base dos protocolos ARQ (Automatic Repeat Request)

Detecccedilatildeo de erros (mecanismo do UDP)

Realimentaccedilatildeo do destinataacuterio (ACK ou NACK)

Retransmissatildeobull Pare e espere

Transport Layer 3-26

rdt20 FSM specification

Wait for call from above

sndpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from belowsender

receiverrdt_send(data)

Transport Layer 3-27

rdt20 operation with no errors

Wait for call from above

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from below

rdt_send(data)

Transport Layer 3-28

rdt20 error scenario

Wait for call from above

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from below

rdt_send(data)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 29

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt20

bull O que acontece se o pacote ACK ou NAK estiver corrompido

bull Vamos considerar trecircs possibilidade para ACKs ou NAKs corrompidos1 Ser humano -- A ldquoditadordquo B ldquoOKrdquo ou ldquoRepita por favorrdquo ==gt

A natildeo entende ldquoO que foi que vocecirc disserdquo infinito Peacutessimo2 Bits de soma de verificaccedilatildeo de tal modo que permita ao remetente a

recuperaccedilatildeo de erros de bits Muito bom mas serve somente para canais com erro de bits e natildeo perda de pacotes

3 O Remetente reenvia o pacote de dados corrente quando receber um pacote ACK ou NAK truncado ==gt pode gerar pacotes duplicados Como o destinataacuterio sabe se o pacote conteacutem novos dados ou eacute uma retransmissatildeo ==gt nuacutemero de sequecircncia

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 30

bull rdt21 remetente

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 31

bull rdt21 destinataacuterio

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 32

bull O protocolo rdt21 usa tanto o reconhecimento positivo como negativo do remetente ao destinataacuterio pacote fora de ordem ==gt ACK pacote corrompido ==gt NAK

bull Podemos conseguir o mesmo efeito se ao inveacutes de enviarmos um NAK enviarmos um ACK do uacuteltimo corretamente recebido Ou seja ACK tambeacutem numerado

bull ACKs duplicados indicam ao remetente que o destinataacuterio natildeo recebeu corretamente o pacote seguinte agravequele do ACK duplo

bull rdt22 deve enviar o nuacutemero de sequecircncia no ACK

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21-2

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 33

bull rdt22 remetente

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt22

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 34

bull rdt22 destinataacuterio

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt22

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 35

bull Duas preocupaccedilotildees adicionais devem ser tratadas pelo protocolo1 Como detectar perda de pacotes2 O que fazer quando haacute perdas

bull As teacutecnicas jaacute discutidas atendem a segunda questatildeobull E para a primeira questatildeobull Suponha que o remetente transmita um pacote e que esse

pacote ou seu ACK seja perdido Nenhuma resposta chegaraacute ao remetente Se o remetente natildeo quiser esperar ==gt retransmite o pacote

bull Mas quanto o remetente precisa esperar para ter certeza que algo foi perdido Esperar um RTT Eacute muito difiacutecil estimar o RTT quanto mais ter certeza

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 36

bull Aleacutem disso o ideal seria que o protocolo se recuperasse da perda assim que possiacutevel

bull Na praacutetica O remetente faz uma escolha ponderada de um RTT provaacutevel mas natildeo

garantido que a perda tivesse acontecido Se natildeo receber um ACK nesse periacuteodo retransmite o pacote

bull Se o pacote sofrer um atraso longo pode haver retransmissatildeo mesmo que o pacote ou ACK natildeo tenham sido perdidos Possibilidade de pacotes de dados duplicados

bull Para implementar um mecanismo de retransmissatildeo com base no tempo eacute necessaacuterio um temporizador de contagem regressiva Accedilotildees iniciar atender parar

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 37

bull rdt30 remetente

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Transport Layer 3-38

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

pkt1

ack1

ack0

ack0

(a) no loss

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(b) packet loss

pkt1X

loss

pkt1timeout

resend pkt1

rdt30 in action

Transport Layer 3-39

rdt30 in action

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(c) ACK loss

ack1X

loss

pkt1timeout

resend pkt1

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

send ack0rcv ack0

send pkt1

send pkt0rcv pkt0

pkt0

ack0

(d) premature timeout delayed ACK

pkt1timeout

resend pkt1

ack1

send ack1

send pkt0rcv ack1

pkt0

ack1

ack0

send pkt0rcv ack1 pkt0

rcv pkt0send ack0ack0

rcv pkt0

send ack0(detect duplicate)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 42

bull No coraccedilatildeo do problema do desempenho do rdt30 estaacute o fato de ele ser um protocolo do tipo pare e espere

bull Um protocolo pare e espere em operaccedilatildeo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 43

U remet =

0008

30008 = 000027

microseconds

L R RTT + L R

=

Desempenho do rdt30

rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso pacote 8000 bits

U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando

Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps protocolo de rede limita uso de recursos fiacutesicos Soluccedilatildeo

ndosmicrosseguR

Ldtrans 8

bps10

bits80009

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 44

Um protocolo com paralelismo em operaccedilatildeo

bull O ACK recebido eacute de que pacote

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 45

bull Envio com pare e espere

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 46

bull Envio com paralelismo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Aumento de utilizaccedilatildeopor fator de 3

U remet =

0024 30008

= 00008 microseconds

3 L R RTT + L R

=

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 47

bull Em um protocolo Go-Back-N (GBN) o remetente eacute autorizado a transmitir muacuteltiplos pacotes sem esperar por um reconhecimento

bull Poreacutem fica limitado a ter natildeo mais do que algum nuacutemero maacuteximo permitido N (tamanho da janela) de pacotes natildeo reconhecidos na ldquotubulaccedilatildeordquo

bull Visatildeo do remetente para os nuacutemeros de sequecircncia no protocolo Go-Back-N

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 48

bull Descriccedilatildeo da FSM estendida do remetente GBNbull Quem consegue descrever o funcionamento

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 49

bull Descriccedilatildeo da FSM estendida do destinataacuterio GBN

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 50

Go-Back-N (GBN) em operaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 51

bull Protocolos de repeticcedilatildeo seletiva (SR) evitam retransmissotildees desnecessaacuterias

bull Eles fazem o remetente retransmitir apenas os pacotes suspeitos de terem sido recebidos com erro no destinataacuterio

bull Essa retransmissatildeo individual soacute quando necessaacuteria exige que o destinataacuterio reconheccedila individualmente os pacotes recebidos de modo correto

Repeticcedilatildeo seletiva (SR)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 52

Repeticcedilatildeo seletiva (SR)

Transport Layer 3-53

Selective repeatdilemma

example seq rsquos 0 1 2 3 window size=3

receiver window(after receipt)

sender window(after receipt)

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2 pkt0

timeoutretransmit pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2XXX

will accept packetwith seq number 0

(b) oops

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

X

will accept packetwith seq number 0

0 1 2 3 0 1 2 pkt3

(a) no problem

receiver canrsquot see sender sidereceiver behavior identical in both casessomethingrsquos (very) wrong

receiver sees no difference in two scenarios

duplicate data accepted as new in (b)

Q what relationship between seq size and window size to avoid problem in (b)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 54

Resumo de mecanismos de transferecircncia confiaacutevel de dados e sua utilizaccedilatildeo

bull Soma de verificaccedilatildeo - Usada para detectar erros de bits em um pacote transmitido

bull Temporizador - Usado para controlar a temporizaccedilatildeoretransmissatildeo de um pacote possivelmente porque o pacote (ou seu ACK) foi perdido dentro do canal

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 55

bull Nuacutemero de sequecircncia - Usado para numeraccedilatildeo sequencial de segmentos de dados que transitam do remetente ao destinataacuterio Ou seja pode-se ter vaacuterios segmentos transitando simultaneamente no canal de comunicaccedilatildeo maximizando assim o uso desse canal

bull Reconhecimento - Usado pelo destinataacuterio para avisar o remetente que um pacote ou conjunto de pacotes foi recebido corretamente

bull Janela paralelismo - O remetente pode ficar restrito a enviar somente pacotes com nuacutemeros de sequecircncia que caiam dentro de uma determinada faixa

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 56

bull Uma conexatildeo TCP provecirc um serviccedilo full-duplex

bull A conexatildeo TCP eacute sempre ponto a ponto

bull Uma vez estabelecida uma conexatildeo TCP dois processos de aplicaccedilatildeo podem enviar dados um para o outro 3-way handshake jaacute estabelecendo o MSS

bull O TCP combina cada porccedilatildeo de dados do cliente com um cabeccedilalho TCP formando assim segmentos TCP

A conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 57

Estrutura do segmento TCPURG dados urgentes

(quase natildeo usado)

ACK ACKvaacutelido

PSH empurrar dados agora

RST SYN FINestab conexatildeo

soma de verificaccedilatildeo

da Internet ndash todo o segmento(como em UDP)

bytes destinataacuteriopode aceitar

contagem porbytes de dados(natildeo segmentos)

Opcional e de comprimentovariaacutevel utilizado paranegociar o MSS ou fatorde escala em redes dealta velocidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 58

TCP Estabelecendo e fechando conexotildees

3-way handshakeFinalizando

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 59

s sequecircncia e ACKs do TCP

Cenaacuterio preestabelecido telnet simples

rsquos de sequecircnciandash ldquonuacutemerordquo na cadeia de

bytes do 1o byte nos dados do segmento

ACKsndash seq do proacuteximo byte

esperado do outro ladondash ACK cumulativo

P como o destinataacuterio trata segmentos fora de ordem

ndash R TCP natildeo diz ndash a criteacuterio do implementador

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 60

Tempo de ida e volta e timeout do TCP

P Como definir o valor de timeout do TCP

maior que RTTndash mas RTT varia

muito curto timeout prematurondash retransmissotildees

desnecessaacuterias muito longo baixa

reaccedilatildeo a perda de segmento

P Como estimar o RTT SampleRTT tempo medido

da transmissatildeo do segmento ateacute receber o ACKndash ignora retransmissotildees

SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquondash meacutedia de vaacuterias mediccedilotildees

recentes natildeo apenas SampleRTT atual

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 61

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui exponencialmente

raacutepido valor tiacutepico = 0125

Tempo de ida e volta e timeout do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 62

Amostras de RTTs estimados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 63

definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(geralmente = 025)

depois definir intervalo de timeout

Tempo de ida e volta e timeout do TCP

TimeoutIntervalinicial

= 1 sldquomargem de seguranccedilardquo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 64

TCP cenaacuterios de retransmissatildeo

Hosp A

Seq = 100 20 bytes dados

ACK = 100

tempoTimeout prematuro

Hosp B

Seq = 92 8 bytes dados

ACK = 120

Seq = 92 8 bytes dados

Seq

= 9

2 tim

eout

ACK = 120

Hosp A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio de ACK perdido

Hosp B

X

Seq = 92 8 bytes dados

ACK = 100

tempoS

eq =

92

timeo

ut

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 65

TCP cenaacuterios de retransmissatildeo

Host A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio ACK cumulativo

Host B

X

Seq = 100 20 bytes dados

ACK = 120

tempo

Transport Layer 3-66

TCP fast retransmit time-out period

often relatively long long delay before

resending lost packet detect lost

segments via duplicate ACKs sender often sends

many segments back-to-back

if segment is lost there will likely be many duplicate ACKs

if sender receives 3 ACKs for same data(ldquotriple duplicate ACKsrdquo) resend unacked segment with smallest seq

likely that unacked segment lost so donrsquot wait for timeout

TCP fast retransmit

Transport Layer 3-67

X

fast retransmit after sender receipt of triple duplicate ACK

Host BHost A

Seq=92 8 bytes of data

ACK=100

timeo

ut ACK=100

ACK=100

ACK=100

TCP fast retransmit

Seq=100 20 bytes of data

Seq=100 20 bytes of data

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 69

bull O nuacutemero de sequecircncia para um segmento eacute o nuacutemero do primeiro byte do segmento

bull O nuacutemero de reconhecimento que o hospedeiro A atribui a seu segmento eacute o nuacutemero de sequecircncia do proacuteximo byte que ele estiver aguardando do hospedeiro B

bull Como o TCP somente reconhece bytes ateacute o primeiro byte que estiver faltando na cadeia dizemos que o TCP provecirc reconhecimentos cumulativos

Nuacutemeros de sequecircncia e nuacutemeros de reconhecimento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 70

bull O TCP cria um serviccedilo de transferecircncia confiaacutevel de dados sobre o serviccedilo de melhor esforccedilo do IP

bull O serviccedilo de transferecircncia garante que a cadeia de bytes eacute idecircntica agrave cadeia de bytes enviada pelo sistema final que estaacute do outro lado da conexatildeo

bull Os procedimentos recomendados no [RFC 6298] para gerenciamento de temporizadores TCP utilizam apenas um uacutenico temporizador de retransmissatildeo

Transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 71

bull O TCP provecirc um serviccedilo de controle de fluxo agraves suas aplicaccedilotildees para eliminar a possibilidade de o remetente estourar o buffer do destinataacuterio

bull Controle de fluxo eacute um serviccedilo de compatibilizaccedilatildeo de velocidades

bull O TCP oferece serviccedilo de controle de fluxo fazendo que o remetente mantenha uma variaacutevel denominada janela de recepccedilatildeo

Controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 72

Regulaccedilatildeo da taxa de envio

Uma rede de transmissatildeo raacutepida eum receptor de baixa capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 73

Controle de fluxo TCP

lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo

serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora

processo da aplicaccedilatildeo pode ser lento na leitura do buffer

remetente natildeo estouraraacute buffer do destinataacuterio transmitindo muitos dados muito rapidamente

controle de fluxo

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 74

Controle de fluxo TCP como funciona

(suponha que destinataacuterio TCP descarte segmentos fora de ordem)

espaccedilo de buffer natildeo usado = rwnd (slide 48) = RcvBuffer-[LastByteRcvd -

LastByteRead]

destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento

remetente limita de bytes com ACK a rwndndash garante que buffer do

destinataacuterio natildeo estoura

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

rwndRcvBuffer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 75

Gerenciamento da conexatildeo TCP

lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados

inicializa variaacuteveis TCPndash s seqndash buffers informaccedilatildeo de

controle de fluxo (p e RcvWindow)

cliente inicia a conexatildeo Socket clientSocket = new

Socket(hostnameport ) servidor contactado pelo

cliente Socket connectionSocket =

welcomeSocketaccept()

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 76

Gerenciamento da conexatildeo TCP

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 77

fechando uma conexatildeo

cliente fecha socket clientSocketclose()

etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor

etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN

cliente

FIN

servidor

ACK

ACK

FIN

fecha

fecha

fechado

espe

ra

tem

poriz

ada

Gerenciamento da conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 79

Controle de congestionamento

Uma rede de transmissatildeo lenta eum receptor de alta capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 80

bull As causas e os custos do congestionamento

Cenaacuterio de congestionamento 1 duas conexotildees compartilhando um uacutenico roteador com nuacutemero infinito de buffers

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 81

bull As causas e os custos do congestionamentoCenaacuterio de congestionamento 1 vazatildeo e atraso em funccedilatildeo da taxa de envio do hospedeiro

ldquocustosrdquo do congestionamento Aumento de atrasos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 82

bull As causas e os custos do congestionamento

Cenaacuterio 2 dois hospedeiros (com retransmissotildees) e um roteador com buffers finitos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 83

a) Caso ideal (vazatildeo)

b) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda

c) retransmissatildeo do pacote adiado (natildeo perdido) torna maior (que

o caso perfeito ) para o mesmo

in

out

=

in

out

gt

in

out

ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do

pacote

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 84

bull As causas e os custos do congestionamento

Cenaacuterio 3 quatro remetentesroteadores com buffers finitos e trajetos com muacuteltiplos roteadores

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 85

outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer capacidade

de transmissatildeo anterior usada para esse pacote foi desperdiccedilada

Host A

Host B

o

u

t

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 86

Controle de congestionamento fim a fim

bull A camada de rede natildeo fornece nenhum suporte expliacutecito agrave camada de transporte com a finalidade de controle de congestionamento

Controle de congestionamento assistido pela rede

bull Os componentes da camada de rede (isto eacute roteadores) fornecem retroalimentaccedilatildeo especiacutefica de informaccedilotildees ao remetente a respeito do estado de congestionamento na rede Natildeo usual

Mecanismos de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 87

bull A abordagem adotada pelo TCP eacute obrigar cada remetente a limitar a taxa agrave qual enviam traacutefego para sua conexatildeo como uma funccedilatildeo do congestionamento de rede percebido

Se um remetente TCP perceber que haacute pouco congestionamento no caminho entre ele e o destinataacuterio aumentaraacute sua taxa de envio

Se perceber que haacute congestionamento reduziraacute sua taxa de

envio

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 88

bull Mas essa abordagem levanta trecircs questotildees

1 Como um remetente TCP limita a taxa pela qual envia traacutefego para sua conexatildeo

2 Como um remetente TCP percebe que haacute congestionamento entre ele e o destinataacuterio

3 Que algoritmo o remetente deve utilizar para modificar sua taxa de envio como uma funccedilatildeo do congestionamento fim a fim percebido

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 89

bull Partida lenta TCP

Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 90

1) Cwnd = 1 MSS inicialmente

2) Partida lenta a cada rodada redefine cwnd = cwnd 2

3) Perda de pacotes (esgotamento de temporizaccedilatildeo ndash problema grave) ==gt cwnd = 1 (Tahoe ou Reno)

4) Prevenccedilatildeo de congestionamento apoacutes atingir sstresh cwnd = cwnd + 1

5) Trecircs acks duplicados (buraco no ldquofluxordquo ndash problema brando) entra no estado prevenccedilatildeo de congestionamento e redefine cwnd = 1 (Tahoe) ou cwnd = sstresh (Reno)

6) Sstresh = cwnd2 quando satildeo detectados problemas

Quantidade de dados natildeo reconhecidas no TCP = min(CongWin RecWin)

Controle de congestionamento TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 91

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 93

bull Evoluccedilatildeo da janela de congestionamento do TCP (Tahoe e Reno ndash mais usual)

Recuperaccedilatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 94

Controle de congestionamento TCP

Partida lenta seguida por aumento aditivo no TCP Tahoe

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 95

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 96

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 97

bull O controle de congestionamento AIMD (Additive-increase Multiplicative-Decrease) faz surgir o comportamento semelhante a ldquodentes de serrardquo

bull httpsmediapearsoncmgcomawecs_kurose_compnetwork_7cwcontentinteractiveanimationstcp-congestionindexhtml

Controle de congestionamento no TCP retrospectiva

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 98

O que eacute throughput meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughput meacutedio 075 WRTT (75 WRTT)

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 99

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (Probabilidade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 100

bull Duas conexotildees TCP compartilhando um uacutenico enlace congestionado

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 101

bull Vazatildeo alcanccedilada pelas conexotildees TCP 1 e TCP 2bull Ambas conexotildees em algum momento estatildeo com vazatildeo Abull Ambas vatildeo aumentando a vazatildeo ateacute ocorrer perda ndash Bbull Sstresh cai pela metade e ambas migram para Chellip

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 102

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

ndash Consequecircncia

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Nova aplicaccedilatildeo pede 1 TCP obteacutem taxa de R10 Nova aplicaccedilatildeo pede 11 TCPs obteacutem R2

Equidade

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Multiplexingdemultiplexing
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Principles of reliable data transfer
  • Slide 20
  • Slide 21
  • Reliable data transfer getting started
  • Slide 23
  • Slide 24
  • Slide 25
  • rdt20 FSM specification
  • rdt20 operation with no errors
  • rdt20 error scenario
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • rdt30 in action
  • Slide 39
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Selective repeat dilemma
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • TCP fast retransmit
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
Page 24: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 25

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt20

rdt20 ndash Um protocolo para um canal com erros de bits Base dos protocolos ARQ (Automatic Repeat Request)

Detecccedilatildeo de erros (mecanismo do UDP)

Realimentaccedilatildeo do destinataacuterio (ACK ou NACK)

Retransmissatildeobull Pare e espere

Transport Layer 3-26

rdt20 FSM specification

Wait for call from above

sndpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from belowsender

receiverrdt_send(data)

Transport Layer 3-27

rdt20 operation with no errors

Wait for call from above

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from below

rdt_send(data)

Transport Layer 3-28

rdt20 error scenario

Wait for call from above

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from below

rdt_send(data)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 29

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt20

bull O que acontece se o pacote ACK ou NAK estiver corrompido

bull Vamos considerar trecircs possibilidade para ACKs ou NAKs corrompidos1 Ser humano -- A ldquoditadordquo B ldquoOKrdquo ou ldquoRepita por favorrdquo ==gt

A natildeo entende ldquoO que foi que vocecirc disserdquo infinito Peacutessimo2 Bits de soma de verificaccedilatildeo de tal modo que permita ao remetente a

recuperaccedilatildeo de erros de bits Muito bom mas serve somente para canais com erro de bits e natildeo perda de pacotes

3 O Remetente reenvia o pacote de dados corrente quando receber um pacote ACK ou NAK truncado ==gt pode gerar pacotes duplicados Como o destinataacuterio sabe se o pacote conteacutem novos dados ou eacute uma retransmissatildeo ==gt nuacutemero de sequecircncia

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 30

bull rdt21 remetente

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 31

bull rdt21 destinataacuterio

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 32

bull O protocolo rdt21 usa tanto o reconhecimento positivo como negativo do remetente ao destinataacuterio pacote fora de ordem ==gt ACK pacote corrompido ==gt NAK

bull Podemos conseguir o mesmo efeito se ao inveacutes de enviarmos um NAK enviarmos um ACK do uacuteltimo corretamente recebido Ou seja ACK tambeacutem numerado

bull ACKs duplicados indicam ao remetente que o destinataacuterio natildeo recebeu corretamente o pacote seguinte agravequele do ACK duplo

bull rdt22 deve enviar o nuacutemero de sequecircncia no ACK

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21-2

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 33

bull rdt22 remetente

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt22

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 34

bull rdt22 destinataacuterio

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt22

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 35

bull Duas preocupaccedilotildees adicionais devem ser tratadas pelo protocolo1 Como detectar perda de pacotes2 O que fazer quando haacute perdas

bull As teacutecnicas jaacute discutidas atendem a segunda questatildeobull E para a primeira questatildeobull Suponha que o remetente transmita um pacote e que esse

pacote ou seu ACK seja perdido Nenhuma resposta chegaraacute ao remetente Se o remetente natildeo quiser esperar ==gt retransmite o pacote

bull Mas quanto o remetente precisa esperar para ter certeza que algo foi perdido Esperar um RTT Eacute muito difiacutecil estimar o RTT quanto mais ter certeza

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 36

bull Aleacutem disso o ideal seria que o protocolo se recuperasse da perda assim que possiacutevel

bull Na praacutetica O remetente faz uma escolha ponderada de um RTT provaacutevel mas natildeo

garantido que a perda tivesse acontecido Se natildeo receber um ACK nesse periacuteodo retransmite o pacote

bull Se o pacote sofrer um atraso longo pode haver retransmissatildeo mesmo que o pacote ou ACK natildeo tenham sido perdidos Possibilidade de pacotes de dados duplicados

bull Para implementar um mecanismo de retransmissatildeo com base no tempo eacute necessaacuterio um temporizador de contagem regressiva Accedilotildees iniciar atender parar

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 37

bull rdt30 remetente

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Transport Layer 3-38

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

pkt1

ack1

ack0

ack0

(a) no loss

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(b) packet loss

pkt1X

loss

pkt1timeout

resend pkt1

rdt30 in action

Transport Layer 3-39

rdt30 in action

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(c) ACK loss

ack1X

loss

pkt1timeout

resend pkt1

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

send ack0rcv ack0

send pkt1

send pkt0rcv pkt0

pkt0

ack0

(d) premature timeout delayed ACK

pkt1timeout

resend pkt1

ack1

send ack1

send pkt0rcv ack1

pkt0

ack1

ack0

send pkt0rcv ack1 pkt0

rcv pkt0send ack0ack0

rcv pkt0

send ack0(detect duplicate)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 42

bull No coraccedilatildeo do problema do desempenho do rdt30 estaacute o fato de ele ser um protocolo do tipo pare e espere

bull Um protocolo pare e espere em operaccedilatildeo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 43

U remet =

0008

30008 = 000027

microseconds

L R RTT + L R

=

Desempenho do rdt30

rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso pacote 8000 bits

U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando

Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps protocolo de rede limita uso de recursos fiacutesicos Soluccedilatildeo

ndosmicrosseguR

Ldtrans 8

bps10

bits80009

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 44

Um protocolo com paralelismo em operaccedilatildeo

bull O ACK recebido eacute de que pacote

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 45

bull Envio com pare e espere

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 46

bull Envio com paralelismo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Aumento de utilizaccedilatildeopor fator de 3

U remet =

0024 30008

= 00008 microseconds

3 L R RTT + L R

=

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 47

bull Em um protocolo Go-Back-N (GBN) o remetente eacute autorizado a transmitir muacuteltiplos pacotes sem esperar por um reconhecimento

bull Poreacutem fica limitado a ter natildeo mais do que algum nuacutemero maacuteximo permitido N (tamanho da janela) de pacotes natildeo reconhecidos na ldquotubulaccedilatildeordquo

bull Visatildeo do remetente para os nuacutemeros de sequecircncia no protocolo Go-Back-N

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 48

bull Descriccedilatildeo da FSM estendida do remetente GBNbull Quem consegue descrever o funcionamento

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 49

bull Descriccedilatildeo da FSM estendida do destinataacuterio GBN

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 50

Go-Back-N (GBN) em operaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 51

bull Protocolos de repeticcedilatildeo seletiva (SR) evitam retransmissotildees desnecessaacuterias

bull Eles fazem o remetente retransmitir apenas os pacotes suspeitos de terem sido recebidos com erro no destinataacuterio

bull Essa retransmissatildeo individual soacute quando necessaacuteria exige que o destinataacuterio reconheccedila individualmente os pacotes recebidos de modo correto

Repeticcedilatildeo seletiva (SR)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 52

Repeticcedilatildeo seletiva (SR)

Transport Layer 3-53

Selective repeatdilemma

example seq rsquos 0 1 2 3 window size=3

receiver window(after receipt)

sender window(after receipt)

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2 pkt0

timeoutretransmit pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2XXX

will accept packetwith seq number 0

(b) oops

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

X

will accept packetwith seq number 0

0 1 2 3 0 1 2 pkt3

(a) no problem

receiver canrsquot see sender sidereceiver behavior identical in both casessomethingrsquos (very) wrong

receiver sees no difference in two scenarios

duplicate data accepted as new in (b)

Q what relationship between seq size and window size to avoid problem in (b)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 54

Resumo de mecanismos de transferecircncia confiaacutevel de dados e sua utilizaccedilatildeo

bull Soma de verificaccedilatildeo - Usada para detectar erros de bits em um pacote transmitido

bull Temporizador - Usado para controlar a temporizaccedilatildeoretransmissatildeo de um pacote possivelmente porque o pacote (ou seu ACK) foi perdido dentro do canal

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 55

bull Nuacutemero de sequecircncia - Usado para numeraccedilatildeo sequencial de segmentos de dados que transitam do remetente ao destinataacuterio Ou seja pode-se ter vaacuterios segmentos transitando simultaneamente no canal de comunicaccedilatildeo maximizando assim o uso desse canal

bull Reconhecimento - Usado pelo destinataacuterio para avisar o remetente que um pacote ou conjunto de pacotes foi recebido corretamente

bull Janela paralelismo - O remetente pode ficar restrito a enviar somente pacotes com nuacutemeros de sequecircncia que caiam dentro de uma determinada faixa

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 56

bull Uma conexatildeo TCP provecirc um serviccedilo full-duplex

bull A conexatildeo TCP eacute sempre ponto a ponto

bull Uma vez estabelecida uma conexatildeo TCP dois processos de aplicaccedilatildeo podem enviar dados um para o outro 3-way handshake jaacute estabelecendo o MSS

bull O TCP combina cada porccedilatildeo de dados do cliente com um cabeccedilalho TCP formando assim segmentos TCP

A conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 57

Estrutura do segmento TCPURG dados urgentes

(quase natildeo usado)

ACK ACKvaacutelido

PSH empurrar dados agora

RST SYN FINestab conexatildeo

soma de verificaccedilatildeo

da Internet ndash todo o segmento(como em UDP)

bytes destinataacuteriopode aceitar

contagem porbytes de dados(natildeo segmentos)

Opcional e de comprimentovariaacutevel utilizado paranegociar o MSS ou fatorde escala em redes dealta velocidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 58

TCP Estabelecendo e fechando conexotildees

3-way handshakeFinalizando

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 59

s sequecircncia e ACKs do TCP

Cenaacuterio preestabelecido telnet simples

rsquos de sequecircnciandash ldquonuacutemerordquo na cadeia de

bytes do 1o byte nos dados do segmento

ACKsndash seq do proacuteximo byte

esperado do outro ladondash ACK cumulativo

P como o destinataacuterio trata segmentos fora de ordem

ndash R TCP natildeo diz ndash a criteacuterio do implementador

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 60

Tempo de ida e volta e timeout do TCP

P Como definir o valor de timeout do TCP

maior que RTTndash mas RTT varia

muito curto timeout prematurondash retransmissotildees

desnecessaacuterias muito longo baixa

reaccedilatildeo a perda de segmento

P Como estimar o RTT SampleRTT tempo medido

da transmissatildeo do segmento ateacute receber o ACKndash ignora retransmissotildees

SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquondash meacutedia de vaacuterias mediccedilotildees

recentes natildeo apenas SampleRTT atual

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 61

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui exponencialmente

raacutepido valor tiacutepico = 0125

Tempo de ida e volta e timeout do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 62

Amostras de RTTs estimados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 63

definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(geralmente = 025)

depois definir intervalo de timeout

Tempo de ida e volta e timeout do TCP

TimeoutIntervalinicial

= 1 sldquomargem de seguranccedilardquo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 64

TCP cenaacuterios de retransmissatildeo

Hosp A

Seq = 100 20 bytes dados

ACK = 100

tempoTimeout prematuro

Hosp B

Seq = 92 8 bytes dados

ACK = 120

Seq = 92 8 bytes dados

Seq

= 9

2 tim

eout

ACK = 120

Hosp A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio de ACK perdido

Hosp B

X

Seq = 92 8 bytes dados

ACK = 100

tempoS

eq =

92

timeo

ut

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 65

TCP cenaacuterios de retransmissatildeo

Host A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio ACK cumulativo

Host B

X

Seq = 100 20 bytes dados

ACK = 120

tempo

Transport Layer 3-66

TCP fast retransmit time-out period

often relatively long long delay before

resending lost packet detect lost

segments via duplicate ACKs sender often sends

many segments back-to-back

if segment is lost there will likely be many duplicate ACKs

if sender receives 3 ACKs for same data(ldquotriple duplicate ACKsrdquo) resend unacked segment with smallest seq

likely that unacked segment lost so donrsquot wait for timeout

TCP fast retransmit

Transport Layer 3-67

X

fast retransmit after sender receipt of triple duplicate ACK

Host BHost A

Seq=92 8 bytes of data

ACK=100

timeo

ut ACK=100

ACK=100

ACK=100

TCP fast retransmit

Seq=100 20 bytes of data

Seq=100 20 bytes of data

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 69

bull O nuacutemero de sequecircncia para um segmento eacute o nuacutemero do primeiro byte do segmento

bull O nuacutemero de reconhecimento que o hospedeiro A atribui a seu segmento eacute o nuacutemero de sequecircncia do proacuteximo byte que ele estiver aguardando do hospedeiro B

bull Como o TCP somente reconhece bytes ateacute o primeiro byte que estiver faltando na cadeia dizemos que o TCP provecirc reconhecimentos cumulativos

Nuacutemeros de sequecircncia e nuacutemeros de reconhecimento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 70

bull O TCP cria um serviccedilo de transferecircncia confiaacutevel de dados sobre o serviccedilo de melhor esforccedilo do IP

bull O serviccedilo de transferecircncia garante que a cadeia de bytes eacute idecircntica agrave cadeia de bytes enviada pelo sistema final que estaacute do outro lado da conexatildeo

bull Os procedimentos recomendados no [RFC 6298] para gerenciamento de temporizadores TCP utilizam apenas um uacutenico temporizador de retransmissatildeo

Transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 71

bull O TCP provecirc um serviccedilo de controle de fluxo agraves suas aplicaccedilotildees para eliminar a possibilidade de o remetente estourar o buffer do destinataacuterio

bull Controle de fluxo eacute um serviccedilo de compatibilizaccedilatildeo de velocidades

bull O TCP oferece serviccedilo de controle de fluxo fazendo que o remetente mantenha uma variaacutevel denominada janela de recepccedilatildeo

Controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 72

Regulaccedilatildeo da taxa de envio

Uma rede de transmissatildeo raacutepida eum receptor de baixa capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 73

Controle de fluxo TCP

lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo

serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora

processo da aplicaccedilatildeo pode ser lento na leitura do buffer

remetente natildeo estouraraacute buffer do destinataacuterio transmitindo muitos dados muito rapidamente

controle de fluxo

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 74

Controle de fluxo TCP como funciona

(suponha que destinataacuterio TCP descarte segmentos fora de ordem)

espaccedilo de buffer natildeo usado = rwnd (slide 48) = RcvBuffer-[LastByteRcvd -

LastByteRead]

destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento

remetente limita de bytes com ACK a rwndndash garante que buffer do

destinataacuterio natildeo estoura

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

rwndRcvBuffer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 75

Gerenciamento da conexatildeo TCP

lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados

inicializa variaacuteveis TCPndash s seqndash buffers informaccedilatildeo de

controle de fluxo (p e RcvWindow)

cliente inicia a conexatildeo Socket clientSocket = new

Socket(hostnameport ) servidor contactado pelo

cliente Socket connectionSocket =

welcomeSocketaccept()

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 76

Gerenciamento da conexatildeo TCP

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 77

fechando uma conexatildeo

cliente fecha socket clientSocketclose()

etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor

etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN

cliente

FIN

servidor

ACK

ACK

FIN

fecha

fecha

fechado

espe

ra

tem

poriz

ada

Gerenciamento da conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 79

Controle de congestionamento

Uma rede de transmissatildeo lenta eum receptor de alta capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 80

bull As causas e os custos do congestionamento

Cenaacuterio de congestionamento 1 duas conexotildees compartilhando um uacutenico roteador com nuacutemero infinito de buffers

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 81

bull As causas e os custos do congestionamentoCenaacuterio de congestionamento 1 vazatildeo e atraso em funccedilatildeo da taxa de envio do hospedeiro

ldquocustosrdquo do congestionamento Aumento de atrasos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 82

bull As causas e os custos do congestionamento

Cenaacuterio 2 dois hospedeiros (com retransmissotildees) e um roteador com buffers finitos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 83

a) Caso ideal (vazatildeo)

b) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda

c) retransmissatildeo do pacote adiado (natildeo perdido) torna maior (que

o caso perfeito ) para o mesmo

in

out

=

in

out

gt

in

out

ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do

pacote

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 84

bull As causas e os custos do congestionamento

Cenaacuterio 3 quatro remetentesroteadores com buffers finitos e trajetos com muacuteltiplos roteadores

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 85

outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer capacidade

de transmissatildeo anterior usada para esse pacote foi desperdiccedilada

Host A

Host B

o

u

t

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 86

Controle de congestionamento fim a fim

bull A camada de rede natildeo fornece nenhum suporte expliacutecito agrave camada de transporte com a finalidade de controle de congestionamento

Controle de congestionamento assistido pela rede

bull Os componentes da camada de rede (isto eacute roteadores) fornecem retroalimentaccedilatildeo especiacutefica de informaccedilotildees ao remetente a respeito do estado de congestionamento na rede Natildeo usual

Mecanismos de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 87

bull A abordagem adotada pelo TCP eacute obrigar cada remetente a limitar a taxa agrave qual enviam traacutefego para sua conexatildeo como uma funccedilatildeo do congestionamento de rede percebido

Se um remetente TCP perceber que haacute pouco congestionamento no caminho entre ele e o destinataacuterio aumentaraacute sua taxa de envio

Se perceber que haacute congestionamento reduziraacute sua taxa de

envio

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 88

bull Mas essa abordagem levanta trecircs questotildees

1 Como um remetente TCP limita a taxa pela qual envia traacutefego para sua conexatildeo

2 Como um remetente TCP percebe que haacute congestionamento entre ele e o destinataacuterio

3 Que algoritmo o remetente deve utilizar para modificar sua taxa de envio como uma funccedilatildeo do congestionamento fim a fim percebido

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 89

bull Partida lenta TCP

Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 90

1) Cwnd = 1 MSS inicialmente

2) Partida lenta a cada rodada redefine cwnd = cwnd 2

3) Perda de pacotes (esgotamento de temporizaccedilatildeo ndash problema grave) ==gt cwnd = 1 (Tahoe ou Reno)

4) Prevenccedilatildeo de congestionamento apoacutes atingir sstresh cwnd = cwnd + 1

5) Trecircs acks duplicados (buraco no ldquofluxordquo ndash problema brando) entra no estado prevenccedilatildeo de congestionamento e redefine cwnd = 1 (Tahoe) ou cwnd = sstresh (Reno)

6) Sstresh = cwnd2 quando satildeo detectados problemas

Quantidade de dados natildeo reconhecidas no TCP = min(CongWin RecWin)

Controle de congestionamento TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 91

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 93

bull Evoluccedilatildeo da janela de congestionamento do TCP (Tahoe e Reno ndash mais usual)

Recuperaccedilatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 94

Controle de congestionamento TCP

Partida lenta seguida por aumento aditivo no TCP Tahoe

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 95

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 96

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 97

bull O controle de congestionamento AIMD (Additive-increase Multiplicative-Decrease) faz surgir o comportamento semelhante a ldquodentes de serrardquo

bull httpsmediapearsoncmgcomawecs_kurose_compnetwork_7cwcontentinteractiveanimationstcp-congestionindexhtml

Controle de congestionamento no TCP retrospectiva

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 98

O que eacute throughput meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughput meacutedio 075 WRTT (75 WRTT)

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 99

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (Probabilidade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 100

bull Duas conexotildees TCP compartilhando um uacutenico enlace congestionado

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 101

bull Vazatildeo alcanccedilada pelas conexotildees TCP 1 e TCP 2bull Ambas conexotildees em algum momento estatildeo com vazatildeo Abull Ambas vatildeo aumentando a vazatildeo ateacute ocorrer perda ndash Bbull Sstresh cai pela metade e ambas migram para Chellip

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 102

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

ndash Consequecircncia

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Nova aplicaccedilatildeo pede 1 TCP obteacutem taxa de R10 Nova aplicaccedilatildeo pede 11 TCPs obteacutem R2

Equidade

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Multiplexingdemultiplexing
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Principles of reliable data transfer
  • Slide 20
  • Slide 21
  • Reliable data transfer getting started
  • Slide 23
  • Slide 24
  • Slide 25
  • rdt20 FSM specification
  • rdt20 operation with no errors
  • rdt20 error scenario
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • rdt30 in action
  • Slide 39
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Selective repeat dilemma
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • TCP fast retransmit
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
Page 25: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a

Transport Layer 3-26

rdt20 FSM specification

Wait for call from above

sndpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from belowsender

receiverrdt_send(data)

Transport Layer 3-27

rdt20 operation with no errors

Wait for call from above

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from below

rdt_send(data)

Transport Layer 3-28

rdt20 error scenario

Wait for call from above

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from below

rdt_send(data)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 29

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt20

bull O que acontece se o pacote ACK ou NAK estiver corrompido

bull Vamos considerar trecircs possibilidade para ACKs ou NAKs corrompidos1 Ser humano -- A ldquoditadordquo B ldquoOKrdquo ou ldquoRepita por favorrdquo ==gt

A natildeo entende ldquoO que foi que vocecirc disserdquo infinito Peacutessimo2 Bits de soma de verificaccedilatildeo de tal modo que permita ao remetente a

recuperaccedilatildeo de erros de bits Muito bom mas serve somente para canais com erro de bits e natildeo perda de pacotes

3 O Remetente reenvia o pacote de dados corrente quando receber um pacote ACK ou NAK truncado ==gt pode gerar pacotes duplicados Como o destinataacuterio sabe se o pacote conteacutem novos dados ou eacute uma retransmissatildeo ==gt nuacutemero de sequecircncia

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 30

bull rdt21 remetente

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 31

bull rdt21 destinataacuterio

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 32

bull O protocolo rdt21 usa tanto o reconhecimento positivo como negativo do remetente ao destinataacuterio pacote fora de ordem ==gt ACK pacote corrompido ==gt NAK

bull Podemos conseguir o mesmo efeito se ao inveacutes de enviarmos um NAK enviarmos um ACK do uacuteltimo corretamente recebido Ou seja ACK tambeacutem numerado

bull ACKs duplicados indicam ao remetente que o destinataacuterio natildeo recebeu corretamente o pacote seguinte agravequele do ACK duplo

bull rdt22 deve enviar o nuacutemero de sequecircncia no ACK

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21-2

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 33

bull rdt22 remetente

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt22

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 34

bull rdt22 destinataacuterio

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt22

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 35

bull Duas preocupaccedilotildees adicionais devem ser tratadas pelo protocolo1 Como detectar perda de pacotes2 O que fazer quando haacute perdas

bull As teacutecnicas jaacute discutidas atendem a segunda questatildeobull E para a primeira questatildeobull Suponha que o remetente transmita um pacote e que esse

pacote ou seu ACK seja perdido Nenhuma resposta chegaraacute ao remetente Se o remetente natildeo quiser esperar ==gt retransmite o pacote

bull Mas quanto o remetente precisa esperar para ter certeza que algo foi perdido Esperar um RTT Eacute muito difiacutecil estimar o RTT quanto mais ter certeza

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 36

bull Aleacutem disso o ideal seria que o protocolo se recuperasse da perda assim que possiacutevel

bull Na praacutetica O remetente faz uma escolha ponderada de um RTT provaacutevel mas natildeo

garantido que a perda tivesse acontecido Se natildeo receber um ACK nesse periacuteodo retransmite o pacote

bull Se o pacote sofrer um atraso longo pode haver retransmissatildeo mesmo que o pacote ou ACK natildeo tenham sido perdidos Possibilidade de pacotes de dados duplicados

bull Para implementar um mecanismo de retransmissatildeo com base no tempo eacute necessaacuterio um temporizador de contagem regressiva Accedilotildees iniciar atender parar

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 37

bull rdt30 remetente

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Transport Layer 3-38

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

pkt1

ack1

ack0

ack0

(a) no loss

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(b) packet loss

pkt1X

loss

pkt1timeout

resend pkt1

rdt30 in action

Transport Layer 3-39

rdt30 in action

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(c) ACK loss

ack1X

loss

pkt1timeout

resend pkt1

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

send ack0rcv ack0

send pkt1

send pkt0rcv pkt0

pkt0

ack0

(d) premature timeout delayed ACK

pkt1timeout

resend pkt1

ack1

send ack1

send pkt0rcv ack1

pkt0

ack1

ack0

send pkt0rcv ack1 pkt0

rcv pkt0send ack0ack0

rcv pkt0

send ack0(detect duplicate)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 42

bull No coraccedilatildeo do problema do desempenho do rdt30 estaacute o fato de ele ser um protocolo do tipo pare e espere

bull Um protocolo pare e espere em operaccedilatildeo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 43

U remet =

0008

30008 = 000027

microseconds

L R RTT + L R

=

Desempenho do rdt30

rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso pacote 8000 bits

U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando

Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps protocolo de rede limita uso de recursos fiacutesicos Soluccedilatildeo

ndosmicrosseguR

Ldtrans 8

bps10

bits80009

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 44

Um protocolo com paralelismo em operaccedilatildeo

bull O ACK recebido eacute de que pacote

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 45

bull Envio com pare e espere

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 46

bull Envio com paralelismo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Aumento de utilizaccedilatildeopor fator de 3

U remet =

0024 30008

= 00008 microseconds

3 L R RTT + L R

=

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 47

bull Em um protocolo Go-Back-N (GBN) o remetente eacute autorizado a transmitir muacuteltiplos pacotes sem esperar por um reconhecimento

bull Poreacutem fica limitado a ter natildeo mais do que algum nuacutemero maacuteximo permitido N (tamanho da janela) de pacotes natildeo reconhecidos na ldquotubulaccedilatildeordquo

bull Visatildeo do remetente para os nuacutemeros de sequecircncia no protocolo Go-Back-N

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 48

bull Descriccedilatildeo da FSM estendida do remetente GBNbull Quem consegue descrever o funcionamento

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 49

bull Descriccedilatildeo da FSM estendida do destinataacuterio GBN

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 50

Go-Back-N (GBN) em operaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 51

bull Protocolos de repeticcedilatildeo seletiva (SR) evitam retransmissotildees desnecessaacuterias

bull Eles fazem o remetente retransmitir apenas os pacotes suspeitos de terem sido recebidos com erro no destinataacuterio

bull Essa retransmissatildeo individual soacute quando necessaacuteria exige que o destinataacuterio reconheccedila individualmente os pacotes recebidos de modo correto

Repeticcedilatildeo seletiva (SR)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 52

Repeticcedilatildeo seletiva (SR)

Transport Layer 3-53

Selective repeatdilemma

example seq rsquos 0 1 2 3 window size=3

receiver window(after receipt)

sender window(after receipt)

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2 pkt0

timeoutretransmit pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2XXX

will accept packetwith seq number 0

(b) oops

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

X

will accept packetwith seq number 0

0 1 2 3 0 1 2 pkt3

(a) no problem

receiver canrsquot see sender sidereceiver behavior identical in both casessomethingrsquos (very) wrong

receiver sees no difference in two scenarios

duplicate data accepted as new in (b)

Q what relationship between seq size and window size to avoid problem in (b)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 54

Resumo de mecanismos de transferecircncia confiaacutevel de dados e sua utilizaccedilatildeo

bull Soma de verificaccedilatildeo - Usada para detectar erros de bits em um pacote transmitido

bull Temporizador - Usado para controlar a temporizaccedilatildeoretransmissatildeo de um pacote possivelmente porque o pacote (ou seu ACK) foi perdido dentro do canal

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 55

bull Nuacutemero de sequecircncia - Usado para numeraccedilatildeo sequencial de segmentos de dados que transitam do remetente ao destinataacuterio Ou seja pode-se ter vaacuterios segmentos transitando simultaneamente no canal de comunicaccedilatildeo maximizando assim o uso desse canal

bull Reconhecimento - Usado pelo destinataacuterio para avisar o remetente que um pacote ou conjunto de pacotes foi recebido corretamente

bull Janela paralelismo - O remetente pode ficar restrito a enviar somente pacotes com nuacutemeros de sequecircncia que caiam dentro de uma determinada faixa

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 56

bull Uma conexatildeo TCP provecirc um serviccedilo full-duplex

bull A conexatildeo TCP eacute sempre ponto a ponto

bull Uma vez estabelecida uma conexatildeo TCP dois processos de aplicaccedilatildeo podem enviar dados um para o outro 3-way handshake jaacute estabelecendo o MSS

bull O TCP combina cada porccedilatildeo de dados do cliente com um cabeccedilalho TCP formando assim segmentos TCP

A conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 57

Estrutura do segmento TCPURG dados urgentes

(quase natildeo usado)

ACK ACKvaacutelido

PSH empurrar dados agora

RST SYN FINestab conexatildeo

soma de verificaccedilatildeo

da Internet ndash todo o segmento(como em UDP)

bytes destinataacuteriopode aceitar

contagem porbytes de dados(natildeo segmentos)

Opcional e de comprimentovariaacutevel utilizado paranegociar o MSS ou fatorde escala em redes dealta velocidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 58

TCP Estabelecendo e fechando conexotildees

3-way handshakeFinalizando

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 59

s sequecircncia e ACKs do TCP

Cenaacuterio preestabelecido telnet simples

rsquos de sequecircnciandash ldquonuacutemerordquo na cadeia de

bytes do 1o byte nos dados do segmento

ACKsndash seq do proacuteximo byte

esperado do outro ladondash ACK cumulativo

P como o destinataacuterio trata segmentos fora de ordem

ndash R TCP natildeo diz ndash a criteacuterio do implementador

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 60

Tempo de ida e volta e timeout do TCP

P Como definir o valor de timeout do TCP

maior que RTTndash mas RTT varia

muito curto timeout prematurondash retransmissotildees

desnecessaacuterias muito longo baixa

reaccedilatildeo a perda de segmento

P Como estimar o RTT SampleRTT tempo medido

da transmissatildeo do segmento ateacute receber o ACKndash ignora retransmissotildees

SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquondash meacutedia de vaacuterias mediccedilotildees

recentes natildeo apenas SampleRTT atual

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 61

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui exponencialmente

raacutepido valor tiacutepico = 0125

Tempo de ida e volta e timeout do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 62

Amostras de RTTs estimados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 63

definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(geralmente = 025)

depois definir intervalo de timeout

Tempo de ida e volta e timeout do TCP

TimeoutIntervalinicial

= 1 sldquomargem de seguranccedilardquo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 64

TCP cenaacuterios de retransmissatildeo

Hosp A

Seq = 100 20 bytes dados

ACK = 100

tempoTimeout prematuro

Hosp B

Seq = 92 8 bytes dados

ACK = 120

Seq = 92 8 bytes dados

Seq

= 9

2 tim

eout

ACK = 120

Hosp A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio de ACK perdido

Hosp B

X

Seq = 92 8 bytes dados

ACK = 100

tempoS

eq =

92

timeo

ut

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 65

TCP cenaacuterios de retransmissatildeo

Host A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio ACK cumulativo

Host B

X

Seq = 100 20 bytes dados

ACK = 120

tempo

Transport Layer 3-66

TCP fast retransmit time-out period

often relatively long long delay before

resending lost packet detect lost

segments via duplicate ACKs sender often sends

many segments back-to-back

if segment is lost there will likely be many duplicate ACKs

if sender receives 3 ACKs for same data(ldquotriple duplicate ACKsrdquo) resend unacked segment with smallest seq

likely that unacked segment lost so donrsquot wait for timeout

TCP fast retransmit

Transport Layer 3-67

X

fast retransmit after sender receipt of triple duplicate ACK

Host BHost A

Seq=92 8 bytes of data

ACK=100

timeo

ut ACK=100

ACK=100

ACK=100

TCP fast retransmit

Seq=100 20 bytes of data

Seq=100 20 bytes of data

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 69

bull O nuacutemero de sequecircncia para um segmento eacute o nuacutemero do primeiro byte do segmento

bull O nuacutemero de reconhecimento que o hospedeiro A atribui a seu segmento eacute o nuacutemero de sequecircncia do proacuteximo byte que ele estiver aguardando do hospedeiro B

bull Como o TCP somente reconhece bytes ateacute o primeiro byte que estiver faltando na cadeia dizemos que o TCP provecirc reconhecimentos cumulativos

Nuacutemeros de sequecircncia e nuacutemeros de reconhecimento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 70

bull O TCP cria um serviccedilo de transferecircncia confiaacutevel de dados sobre o serviccedilo de melhor esforccedilo do IP

bull O serviccedilo de transferecircncia garante que a cadeia de bytes eacute idecircntica agrave cadeia de bytes enviada pelo sistema final que estaacute do outro lado da conexatildeo

bull Os procedimentos recomendados no [RFC 6298] para gerenciamento de temporizadores TCP utilizam apenas um uacutenico temporizador de retransmissatildeo

Transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 71

bull O TCP provecirc um serviccedilo de controle de fluxo agraves suas aplicaccedilotildees para eliminar a possibilidade de o remetente estourar o buffer do destinataacuterio

bull Controle de fluxo eacute um serviccedilo de compatibilizaccedilatildeo de velocidades

bull O TCP oferece serviccedilo de controle de fluxo fazendo que o remetente mantenha uma variaacutevel denominada janela de recepccedilatildeo

Controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 72

Regulaccedilatildeo da taxa de envio

Uma rede de transmissatildeo raacutepida eum receptor de baixa capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 73

Controle de fluxo TCP

lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo

serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora

processo da aplicaccedilatildeo pode ser lento na leitura do buffer

remetente natildeo estouraraacute buffer do destinataacuterio transmitindo muitos dados muito rapidamente

controle de fluxo

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 74

Controle de fluxo TCP como funciona

(suponha que destinataacuterio TCP descarte segmentos fora de ordem)

espaccedilo de buffer natildeo usado = rwnd (slide 48) = RcvBuffer-[LastByteRcvd -

LastByteRead]

destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento

remetente limita de bytes com ACK a rwndndash garante que buffer do

destinataacuterio natildeo estoura

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

rwndRcvBuffer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 75

Gerenciamento da conexatildeo TCP

lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados

inicializa variaacuteveis TCPndash s seqndash buffers informaccedilatildeo de

controle de fluxo (p e RcvWindow)

cliente inicia a conexatildeo Socket clientSocket = new

Socket(hostnameport ) servidor contactado pelo

cliente Socket connectionSocket =

welcomeSocketaccept()

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 76

Gerenciamento da conexatildeo TCP

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 77

fechando uma conexatildeo

cliente fecha socket clientSocketclose()

etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor

etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN

cliente

FIN

servidor

ACK

ACK

FIN

fecha

fecha

fechado

espe

ra

tem

poriz

ada

Gerenciamento da conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 79

Controle de congestionamento

Uma rede de transmissatildeo lenta eum receptor de alta capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 80

bull As causas e os custos do congestionamento

Cenaacuterio de congestionamento 1 duas conexotildees compartilhando um uacutenico roteador com nuacutemero infinito de buffers

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 81

bull As causas e os custos do congestionamentoCenaacuterio de congestionamento 1 vazatildeo e atraso em funccedilatildeo da taxa de envio do hospedeiro

ldquocustosrdquo do congestionamento Aumento de atrasos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 82

bull As causas e os custos do congestionamento

Cenaacuterio 2 dois hospedeiros (com retransmissotildees) e um roteador com buffers finitos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 83

a) Caso ideal (vazatildeo)

b) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda

c) retransmissatildeo do pacote adiado (natildeo perdido) torna maior (que

o caso perfeito ) para o mesmo

in

out

=

in

out

gt

in

out

ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do

pacote

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 84

bull As causas e os custos do congestionamento

Cenaacuterio 3 quatro remetentesroteadores com buffers finitos e trajetos com muacuteltiplos roteadores

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 85

outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer capacidade

de transmissatildeo anterior usada para esse pacote foi desperdiccedilada

Host A

Host B

o

u

t

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 86

Controle de congestionamento fim a fim

bull A camada de rede natildeo fornece nenhum suporte expliacutecito agrave camada de transporte com a finalidade de controle de congestionamento

Controle de congestionamento assistido pela rede

bull Os componentes da camada de rede (isto eacute roteadores) fornecem retroalimentaccedilatildeo especiacutefica de informaccedilotildees ao remetente a respeito do estado de congestionamento na rede Natildeo usual

Mecanismos de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 87

bull A abordagem adotada pelo TCP eacute obrigar cada remetente a limitar a taxa agrave qual enviam traacutefego para sua conexatildeo como uma funccedilatildeo do congestionamento de rede percebido

Se um remetente TCP perceber que haacute pouco congestionamento no caminho entre ele e o destinataacuterio aumentaraacute sua taxa de envio

Se perceber que haacute congestionamento reduziraacute sua taxa de

envio

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 88

bull Mas essa abordagem levanta trecircs questotildees

1 Como um remetente TCP limita a taxa pela qual envia traacutefego para sua conexatildeo

2 Como um remetente TCP percebe que haacute congestionamento entre ele e o destinataacuterio

3 Que algoritmo o remetente deve utilizar para modificar sua taxa de envio como uma funccedilatildeo do congestionamento fim a fim percebido

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 89

bull Partida lenta TCP

Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 90

1) Cwnd = 1 MSS inicialmente

2) Partida lenta a cada rodada redefine cwnd = cwnd 2

3) Perda de pacotes (esgotamento de temporizaccedilatildeo ndash problema grave) ==gt cwnd = 1 (Tahoe ou Reno)

4) Prevenccedilatildeo de congestionamento apoacutes atingir sstresh cwnd = cwnd + 1

5) Trecircs acks duplicados (buraco no ldquofluxordquo ndash problema brando) entra no estado prevenccedilatildeo de congestionamento e redefine cwnd = 1 (Tahoe) ou cwnd = sstresh (Reno)

6) Sstresh = cwnd2 quando satildeo detectados problemas

Quantidade de dados natildeo reconhecidas no TCP = min(CongWin RecWin)

Controle de congestionamento TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 91

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 93

bull Evoluccedilatildeo da janela de congestionamento do TCP (Tahoe e Reno ndash mais usual)

Recuperaccedilatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 94

Controle de congestionamento TCP

Partida lenta seguida por aumento aditivo no TCP Tahoe

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 95

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 96

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 97

bull O controle de congestionamento AIMD (Additive-increase Multiplicative-Decrease) faz surgir o comportamento semelhante a ldquodentes de serrardquo

bull httpsmediapearsoncmgcomawecs_kurose_compnetwork_7cwcontentinteractiveanimationstcp-congestionindexhtml

Controle de congestionamento no TCP retrospectiva

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 98

O que eacute throughput meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughput meacutedio 075 WRTT (75 WRTT)

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 99

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (Probabilidade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 100

bull Duas conexotildees TCP compartilhando um uacutenico enlace congestionado

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 101

bull Vazatildeo alcanccedilada pelas conexotildees TCP 1 e TCP 2bull Ambas conexotildees em algum momento estatildeo com vazatildeo Abull Ambas vatildeo aumentando a vazatildeo ateacute ocorrer perda ndash Bbull Sstresh cai pela metade e ambas migram para Chellip

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 102

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

ndash Consequecircncia

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Nova aplicaccedilatildeo pede 1 TCP obteacutem taxa de R10 Nova aplicaccedilatildeo pede 11 TCPs obteacutem R2

Equidade

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Multiplexingdemultiplexing
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Principles of reliable data transfer
  • Slide 20
  • Slide 21
  • Reliable data transfer getting started
  • Slide 23
  • Slide 24
  • Slide 25
  • rdt20 FSM specification
  • rdt20 operation with no errors
  • rdt20 error scenario
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • rdt30 in action
  • Slide 39
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Selective repeat dilemma
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • TCP fast retransmit
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
Page 26: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a

Transport Layer 3-27

rdt20 operation with no errors

Wait for call from above

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from below

rdt_send(data)

Transport Layer 3-28

rdt20 error scenario

Wait for call from above

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from below

rdt_send(data)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 29

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt20

bull O que acontece se o pacote ACK ou NAK estiver corrompido

bull Vamos considerar trecircs possibilidade para ACKs ou NAKs corrompidos1 Ser humano -- A ldquoditadordquo B ldquoOKrdquo ou ldquoRepita por favorrdquo ==gt

A natildeo entende ldquoO que foi que vocecirc disserdquo infinito Peacutessimo2 Bits de soma de verificaccedilatildeo de tal modo que permita ao remetente a

recuperaccedilatildeo de erros de bits Muito bom mas serve somente para canais com erro de bits e natildeo perda de pacotes

3 O Remetente reenvia o pacote de dados corrente quando receber um pacote ACK ou NAK truncado ==gt pode gerar pacotes duplicados Como o destinataacuterio sabe se o pacote conteacutem novos dados ou eacute uma retransmissatildeo ==gt nuacutemero de sequecircncia

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 30

bull rdt21 remetente

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 31

bull rdt21 destinataacuterio

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 32

bull O protocolo rdt21 usa tanto o reconhecimento positivo como negativo do remetente ao destinataacuterio pacote fora de ordem ==gt ACK pacote corrompido ==gt NAK

bull Podemos conseguir o mesmo efeito se ao inveacutes de enviarmos um NAK enviarmos um ACK do uacuteltimo corretamente recebido Ou seja ACK tambeacutem numerado

bull ACKs duplicados indicam ao remetente que o destinataacuterio natildeo recebeu corretamente o pacote seguinte agravequele do ACK duplo

bull rdt22 deve enviar o nuacutemero de sequecircncia no ACK

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21-2

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 33

bull rdt22 remetente

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt22

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 34

bull rdt22 destinataacuterio

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt22

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 35

bull Duas preocupaccedilotildees adicionais devem ser tratadas pelo protocolo1 Como detectar perda de pacotes2 O que fazer quando haacute perdas

bull As teacutecnicas jaacute discutidas atendem a segunda questatildeobull E para a primeira questatildeobull Suponha que o remetente transmita um pacote e que esse

pacote ou seu ACK seja perdido Nenhuma resposta chegaraacute ao remetente Se o remetente natildeo quiser esperar ==gt retransmite o pacote

bull Mas quanto o remetente precisa esperar para ter certeza que algo foi perdido Esperar um RTT Eacute muito difiacutecil estimar o RTT quanto mais ter certeza

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 36

bull Aleacutem disso o ideal seria que o protocolo se recuperasse da perda assim que possiacutevel

bull Na praacutetica O remetente faz uma escolha ponderada de um RTT provaacutevel mas natildeo

garantido que a perda tivesse acontecido Se natildeo receber um ACK nesse periacuteodo retransmite o pacote

bull Se o pacote sofrer um atraso longo pode haver retransmissatildeo mesmo que o pacote ou ACK natildeo tenham sido perdidos Possibilidade de pacotes de dados duplicados

bull Para implementar um mecanismo de retransmissatildeo com base no tempo eacute necessaacuterio um temporizador de contagem regressiva Accedilotildees iniciar atender parar

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 37

bull rdt30 remetente

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Transport Layer 3-38

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

pkt1

ack1

ack0

ack0

(a) no loss

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(b) packet loss

pkt1X

loss

pkt1timeout

resend pkt1

rdt30 in action

Transport Layer 3-39

rdt30 in action

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(c) ACK loss

ack1X

loss

pkt1timeout

resend pkt1

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

send ack0rcv ack0

send pkt1

send pkt0rcv pkt0

pkt0

ack0

(d) premature timeout delayed ACK

pkt1timeout

resend pkt1

ack1

send ack1

send pkt0rcv ack1

pkt0

ack1

ack0

send pkt0rcv ack1 pkt0

rcv pkt0send ack0ack0

rcv pkt0

send ack0(detect duplicate)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 42

bull No coraccedilatildeo do problema do desempenho do rdt30 estaacute o fato de ele ser um protocolo do tipo pare e espere

bull Um protocolo pare e espere em operaccedilatildeo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 43

U remet =

0008

30008 = 000027

microseconds

L R RTT + L R

=

Desempenho do rdt30

rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso pacote 8000 bits

U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando

Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps protocolo de rede limita uso de recursos fiacutesicos Soluccedilatildeo

ndosmicrosseguR

Ldtrans 8

bps10

bits80009

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 44

Um protocolo com paralelismo em operaccedilatildeo

bull O ACK recebido eacute de que pacote

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 45

bull Envio com pare e espere

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 46

bull Envio com paralelismo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Aumento de utilizaccedilatildeopor fator de 3

U remet =

0024 30008

= 00008 microseconds

3 L R RTT + L R

=

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 47

bull Em um protocolo Go-Back-N (GBN) o remetente eacute autorizado a transmitir muacuteltiplos pacotes sem esperar por um reconhecimento

bull Poreacutem fica limitado a ter natildeo mais do que algum nuacutemero maacuteximo permitido N (tamanho da janela) de pacotes natildeo reconhecidos na ldquotubulaccedilatildeordquo

bull Visatildeo do remetente para os nuacutemeros de sequecircncia no protocolo Go-Back-N

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 48

bull Descriccedilatildeo da FSM estendida do remetente GBNbull Quem consegue descrever o funcionamento

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 49

bull Descriccedilatildeo da FSM estendida do destinataacuterio GBN

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 50

Go-Back-N (GBN) em operaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 51

bull Protocolos de repeticcedilatildeo seletiva (SR) evitam retransmissotildees desnecessaacuterias

bull Eles fazem o remetente retransmitir apenas os pacotes suspeitos de terem sido recebidos com erro no destinataacuterio

bull Essa retransmissatildeo individual soacute quando necessaacuteria exige que o destinataacuterio reconheccedila individualmente os pacotes recebidos de modo correto

Repeticcedilatildeo seletiva (SR)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 52

Repeticcedilatildeo seletiva (SR)

Transport Layer 3-53

Selective repeatdilemma

example seq rsquos 0 1 2 3 window size=3

receiver window(after receipt)

sender window(after receipt)

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2 pkt0

timeoutretransmit pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2XXX

will accept packetwith seq number 0

(b) oops

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

X

will accept packetwith seq number 0

0 1 2 3 0 1 2 pkt3

(a) no problem

receiver canrsquot see sender sidereceiver behavior identical in both casessomethingrsquos (very) wrong

receiver sees no difference in two scenarios

duplicate data accepted as new in (b)

Q what relationship between seq size and window size to avoid problem in (b)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 54

Resumo de mecanismos de transferecircncia confiaacutevel de dados e sua utilizaccedilatildeo

bull Soma de verificaccedilatildeo - Usada para detectar erros de bits em um pacote transmitido

bull Temporizador - Usado para controlar a temporizaccedilatildeoretransmissatildeo de um pacote possivelmente porque o pacote (ou seu ACK) foi perdido dentro do canal

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 55

bull Nuacutemero de sequecircncia - Usado para numeraccedilatildeo sequencial de segmentos de dados que transitam do remetente ao destinataacuterio Ou seja pode-se ter vaacuterios segmentos transitando simultaneamente no canal de comunicaccedilatildeo maximizando assim o uso desse canal

bull Reconhecimento - Usado pelo destinataacuterio para avisar o remetente que um pacote ou conjunto de pacotes foi recebido corretamente

bull Janela paralelismo - O remetente pode ficar restrito a enviar somente pacotes com nuacutemeros de sequecircncia que caiam dentro de uma determinada faixa

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 56

bull Uma conexatildeo TCP provecirc um serviccedilo full-duplex

bull A conexatildeo TCP eacute sempre ponto a ponto

bull Uma vez estabelecida uma conexatildeo TCP dois processos de aplicaccedilatildeo podem enviar dados um para o outro 3-way handshake jaacute estabelecendo o MSS

bull O TCP combina cada porccedilatildeo de dados do cliente com um cabeccedilalho TCP formando assim segmentos TCP

A conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 57

Estrutura do segmento TCPURG dados urgentes

(quase natildeo usado)

ACK ACKvaacutelido

PSH empurrar dados agora

RST SYN FINestab conexatildeo

soma de verificaccedilatildeo

da Internet ndash todo o segmento(como em UDP)

bytes destinataacuteriopode aceitar

contagem porbytes de dados(natildeo segmentos)

Opcional e de comprimentovariaacutevel utilizado paranegociar o MSS ou fatorde escala em redes dealta velocidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 58

TCP Estabelecendo e fechando conexotildees

3-way handshakeFinalizando

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 59

s sequecircncia e ACKs do TCP

Cenaacuterio preestabelecido telnet simples

rsquos de sequecircnciandash ldquonuacutemerordquo na cadeia de

bytes do 1o byte nos dados do segmento

ACKsndash seq do proacuteximo byte

esperado do outro ladondash ACK cumulativo

P como o destinataacuterio trata segmentos fora de ordem

ndash R TCP natildeo diz ndash a criteacuterio do implementador

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 60

Tempo de ida e volta e timeout do TCP

P Como definir o valor de timeout do TCP

maior que RTTndash mas RTT varia

muito curto timeout prematurondash retransmissotildees

desnecessaacuterias muito longo baixa

reaccedilatildeo a perda de segmento

P Como estimar o RTT SampleRTT tempo medido

da transmissatildeo do segmento ateacute receber o ACKndash ignora retransmissotildees

SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquondash meacutedia de vaacuterias mediccedilotildees

recentes natildeo apenas SampleRTT atual

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 61

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui exponencialmente

raacutepido valor tiacutepico = 0125

Tempo de ida e volta e timeout do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 62

Amostras de RTTs estimados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 63

definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(geralmente = 025)

depois definir intervalo de timeout

Tempo de ida e volta e timeout do TCP

TimeoutIntervalinicial

= 1 sldquomargem de seguranccedilardquo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 64

TCP cenaacuterios de retransmissatildeo

Hosp A

Seq = 100 20 bytes dados

ACK = 100

tempoTimeout prematuro

Hosp B

Seq = 92 8 bytes dados

ACK = 120

Seq = 92 8 bytes dados

Seq

= 9

2 tim

eout

ACK = 120

Hosp A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio de ACK perdido

Hosp B

X

Seq = 92 8 bytes dados

ACK = 100

tempoS

eq =

92

timeo

ut

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 65

TCP cenaacuterios de retransmissatildeo

Host A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio ACK cumulativo

Host B

X

Seq = 100 20 bytes dados

ACK = 120

tempo

Transport Layer 3-66

TCP fast retransmit time-out period

often relatively long long delay before

resending lost packet detect lost

segments via duplicate ACKs sender often sends

many segments back-to-back

if segment is lost there will likely be many duplicate ACKs

if sender receives 3 ACKs for same data(ldquotriple duplicate ACKsrdquo) resend unacked segment with smallest seq

likely that unacked segment lost so donrsquot wait for timeout

TCP fast retransmit

Transport Layer 3-67

X

fast retransmit after sender receipt of triple duplicate ACK

Host BHost A

Seq=92 8 bytes of data

ACK=100

timeo

ut ACK=100

ACK=100

ACK=100

TCP fast retransmit

Seq=100 20 bytes of data

Seq=100 20 bytes of data

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 69

bull O nuacutemero de sequecircncia para um segmento eacute o nuacutemero do primeiro byte do segmento

bull O nuacutemero de reconhecimento que o hospedeiro A atribui a seu segmento eacute o nuacutemero de sequecircncia do proacuteximo byte que ele estiver aguardando do hospedeiro B

bull Como o TCP somente reconhece bytes ateacute o primeiro byte que estiver faltando na cadeia dizemos que o TCP provecirc reconhecimentos cumulativos

Nuacutemeros de sequecircncia e nuacutemeros de reconhecimento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 70

bull O TCP cria um serviccedilo de transferecircncia confiaacutevel de dados sobre o serviccedilo de melhor esforccedilo do IP

bull O serviccedilo de transferecircncia garante que a cadeia de bytes eacute idecircntica agrave cadeia de bytes enviada pelo sistema final que estaacute do outro lado da conexatildeo

bull Os procedimentos recomendados no [RFC 6298] para gerenciamento de temporizadores TCP utilizam apenas um uacutenico temporizador de retransmissatildeo

Transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 71

bull O TCP provecirc um serviccedilo de controle de fluxo agraves suas aplicaccedilotildees para eliminar a possibilidade de o remetente estourar o buffer do destinataacuterio

bull Controle de fluxo eacute um serviccedilo de compatibilizaccedilatildeo de velocidades

bull O TCP oferece serviccedilo de controle de fluxo fazendo que o remetente mantenha uma variaacutevel denominada janela de recepccedilatildeo

Controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 72

Regulaccedilatildeo da taxa de envio

Uma rede de transmissatildeo raacutepida eum receptor de baixa capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 73

Controle de fluxo TCP

lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo

serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora

processo da aplicaccedilatildeo pode ser lento na leitura do buffer

remetente natildeo estouraraacute buffer do destinataacuterio transmitindo muitos dados muito rapidamente

controle de fluxo

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 74

Controle de fluxo TCP como funciona

(suponha que destinataacuterio TCP descarte segmentos fora de ordem)

espaccedilo de buffer natildeo usado = rwnd (slide 48) = RcvBuffer-[LastByteRcvd -

LastByteRead]

destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento

remetente limita de bytes com ACK a rwndndash garante que buffer do

destinataacuterio natildeo estoura

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

rwndRcvBuffer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 75

Gerenciamento da conexatildeo TCP

lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados

inicializa variaacuteveis TCPndash s seqndash buffers informaccedilatildeo de

controle de fluxo (p e RcvWindow)

cliente inicia a conexatildeo Socket clientSocket = new

Socket(hostnameport ) servidor contactado pelo

cliente Socket connectionSocket =

welcomeSocketaccept()

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 76

Gerenciamento da conexatildeo TCP

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 77

fechando uma conexatildeo

cliente fecha socket clientSocketclose()

etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor

etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN

cliente

FIN

servidor

ACK

ACK

FIN

fecha

fecha

fechado

espe

ra

tem

poriz

ada

Gerenciamento da conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 79

Controle de congestionamento

Uma rede de transmissatildeo lenta eum receptor de alta capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 80

bull As causas e os custos do congestionamento

Cenaacuterio de congestionamento 1 duas conexotildees compartilhando um uacutenico roteador com nuacutemero infinito de buffers

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 81

bull As causas e os custos do congestionamentoCenaacuterio de congestionamento 1 vazatildeo e atraso em funccedilatildeo da taxa de envio do hospedeiro

ldquocustosrdquo do congestionamento Aumento de atrasos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 82

bull As causas e os custos do congestionamento

Cenaacuterio 2 dois hospedeiros (com retransmissotildees) e um roteador com buffers finitos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 83

a) Caso ideal (vazatildeo)

b) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda

c) retransmissatildeo do pacote adiado (natildeo perdido) torna maior (que

o caso perfeito ) para o mesmo

in

out

=

in

out

gt

in

out

ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do

pacote

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 84

bull As causas e os custos do congestionamento

Cenaacuterio 3 quatro remetentesroteadores com buffers finitos e trajetos com muacuteltiplos roteadores

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 85

outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer capacidade

de transmissatildeo anterior usada para esse pacote foi desperdiccedilada

Host A

Host B

o

u

t

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 86

Controle de congestionamento fim a fim

bull A camada de rede natildeo fornece nenhum suporte expliacutecito agrave camada de transporte com a finalidade de controle de congestionamento

Controle de congestionamento assistido pela rede

bull Os componentes da camada de rede (isto eacute roteadores) fornecem retroalimentaccedilatildeo especiacutefica de informaccedilotildees ao remetente a respeito do estado de congestionamento na rede Natildeo usual

Mecanismos de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 87

bull A abordagem adotada pelo TCP eacute obrigar cada remetente a limitar a taxa agrave qual enviam traacutefego para sua conexatildeo como uma funccedilatildeo do congestionamento de rede percebido

Se um remetente TCP perceber que haacute pouco congestionamento no caminho entre ele e o destinataacuterio aumentaraacute sua taxa de envio

Se perceber que haacute congestionamento reduziraacute sua taxa de

envio

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 88

bull Mas essa abordagem levanta trecircs questotildees

1 Como um remetente TCP limita a taxa pela qual envia traacutefego para sua conexatildeo

2 Como um remetente TCP percebe que haacute congestionamento entre ele e o destinataacuterio

3 Que algoritmo o remetente deve utilizar para modificar sua taxa de envio como uma funccedilatildeo do congestionamento fim a fim percebido

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 89

bull Partida lenta TCP

Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 90

1) Cwnd = 1 MSS inicialmente

2) Partida lenta a cada rodada redefine cwnd = cwnd 2

3) Perda de pacotes (esgotamento de temporizaccedilatildeo ndash problema grave) ==gt cwnd = 1 (Tahoe ou Reno)

4) Prevenccedilatildeo de congestionamento apoacutes atingir sstresh cwnd = cwnd + 1

5) Trecircs acks duplicados (buraco no ldquofluxordquo ndash problema brando) entra no estado prevenccedilatildeo de congestionamento e redefine cwnd = 1 (Tahoe) ou cwnd = sstresh (Reno)

6) Sstresh = cwnd2 quando satildeo detectados problemas

Quantidade de dados natildeo reconhecidas no TCP = min(CongWin RecWin)

Controle de congestionamento TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 91

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 93

bull Evoluccedilatildeo da janela de congestionamento do TCP (Tahoe e Reno ndash mais usual)

Recuperaccedilatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 94

Controle de congestionamento TCP

Partida lenta seguida por aumento aditivo no TCP Tahoe

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 95

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 96

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 97

bull O controle de congestionamento AIMD (Additive-increase Multiplicative-Decrease) faz surgir o comportamento semelhante a ldquodentes de serrardquo

bull httpsmediapearsoncmgcomawecs_kurose_compnetwork_7cwcontentinteractiveanimationstcp-congestionindexhtml

Controle de congestionamento no TCP retrospectiva

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 98

O que eacute throughput meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughput meacutedio 075 WRTT (75 WRTT)

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 99

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (Probabilidade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 100

bull Duas conexotildees TCP compartilhando um uacutenico enlace congestionado

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 101

bull Vazatildeo alcanccedilada pelas conexotildees TCP 1 e TCP 2bull Ambas conexotildees em algum momento estatildeo com vazatildeo Abull Ambas vatildeo aumentando a vazatildeo ateacute ocorrer perda ndash Bbull Sstresh cai pela metade e ambas migram para Chellip

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 102

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

ndash Consequecircncia

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Nova aplicaccedilatildeo pede 1 TCP obteacutem taxa de R10 Nova aplicaccedilatildeo pede 11 TCPs obteacutem R2

Equidade

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Multiplexingdemultiplexing
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Principles of reliable data transfer
  • Slide 20
  • Slide 21
  • Reliable data transfer getting started
  • Slide 23
  • Slide 24
  • Slide 25
  • rdt20 FSM specification
  • rdt20 operation with no errors
  • rdt20 error scenario
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • rdt30 in action
  • Slide 39
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Selective repeat dilemma
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • TCP fast retransmit
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
Page 27: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a

Transport Layer 3-28

rdt20 error scenario

Wait for call from above

snkpkt = make_pkt(data checksum)udt_send(sndpkt)

extract(rcvpktdata)deliver_data(data)udt_send(ACK)

rdt_rcv(rcvpkt) ampamp notcorrupt(rcvpkt)

rdt_rcv(rcvpkt) ampamp isACK(rcvpkt)

udt_send(sndpkt)

rdt_rcv(rcvpkt) ampamp isNAK(rcvpkt)

udt_send(NAK)

rdt_rcv(rcvpkt) ampamp corrupt(rcvpkt)

Wait for ACK or NAK

Wait for call from below

rdt_send(data)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 29

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt20

bull O que acontece se o pacote ACK ou NAK estiver corrompido

bull Vamos considerar trecircs possibilidade para ACKs ou NAKs corrompidos1 Ser humano -- A ldquoditadordquo B ldquoOKrdquo ou ldquoRepita por favorrdquo ==gt

A natildeo entende ldquoO que foi que vocecirc disserdquo infinito Peacutessimo2 Bits de soma de verificaccedilatildeo de tal modo que permita ao remetente a

recuperaccedilatildeo de erros de bits Muito bom mas serve somente para canais com erro de bits e natildeo perda de pacotes

3 O Remetente reenvia o pacote de dados corrente quando receber um pacote ACK ou NAK truncado ==gt pode gerar pacotes duplicados Como o destinataacuterio sabe se o pacote conteacutem novos dados ou eacute uma retransmissatildeo ==gt nuacutemero de sequecircncia

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 30

bull rdt21 remetente

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 31

bull rdt21 destinataacuterio

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 32

bull O protocolo rdt21 usa tanto o reconhecimento positivo como negativo do remetente ao destinataacuterio pacote fora de ordem ==gt ACK pacote corrompido ==gt NAK

bull Podemos conseguir o mesmo efeito se ao inveacutes de enviarmos um NAK enviarmos um ACK do uacuteltimo corretamente recebido Ou seja ACK tambeacutem numerado

bull ACKs duplicados indicam ao remetente que o destinataacuterio natildeo recebeu corretamente o pacote seguinte agravequele do ACK duplo

bull rdt22 deve enviar o nuacutemero de sequecircncia no ACK

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21-2

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 33

bull rdt22 remetente

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt22

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 34

bull rdt22 destinataacuterio

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt22

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 35

bull Duas preocupaccedilotildees adicionais devem ser tratadas pelo protocolo1 Como detectar perda de pacotes2 O que fazer quando haacute perdas

bull As teacutecnicas jaacute discutidas atendem a segunda questatildeobull E para a primeira questatildeobull Suponha que o remetente transmita um pacote e que esse

pacote ou seu ACK seja perdido Nenhuma resposta chegaraacute ao remetente Se o remetente natildeo quiser esperar ==gt retransmite o pacote

bull Mas quanto o remetente precisa esperar para ter certeza que algo foi perdido Esperar um RTT Eacute muito difiacutecil estimar o RTT quanto mais ter certeza

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 36

bull Aleacutem disso o ideal seria que o protocolo se recuperasse da perda assim que possiacutevel

bull Na praacutetica O remetente faz uma escolha ponderada de um RTT provaacutevel mas natildeo

garantido que a perda tivesse acontecido Se natildeo receber um ACK nesse periacuteodo retransmite o pacote

bull Se o pacote sofrer um atraso longo pode haver retransmissatildeo mesmo que o pacote ou ACK natildeo tenham sido perdidos Possibilidade de pacotes de dados duplicados

bull Para implementar um mecanismo de retransmissatildeo com base no tempo eacute necessaacuterio um temporizador de contagem regressiva Accedilotildees iniciar atender parar

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 37

bull rdt30 remetente

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Transport Layer 3-38

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

pkt1

ack1

ack0

ack0

(a) no loss

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(b) packet loss

pkt1X

loss

pkt1timeout

resend pkt1

rdt30 in action

Transport Layer 3-39

rdt30 in action

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(c) ACK loss

ack1X

loss

pkt1timeout

resend pkt1

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

send ack0rcv ack0

send pkt1

send pkt0rcv pkt0

pkt0

ack0

(d) premature timeout delayed ACK

pkt1timeout

resend pkt1

ack1

send ack1

send pkt0rcv ack1

pkt0

ack1

ack0

send pkt0rcv ack1 pkt0

rcv pkt0send ack0ack0

rcv pkt0

send ack0(detect duplicate)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 42

bull No coraccedilatildeo do problema do desempenho do rdt30 estaacute o fato de ele ser um protocolo do tipo pare e espere

bull Um protocolo pare e espere em operaccedilatildeo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 43

U remet =

0008

30008 = 000027

microseconds

L R RTT + L R

=

Desempenho do rdt30

rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso pacote 8000 bits

U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando

Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps protocolo de rede limita uso de recursos fiacutesicos Soluccedilatildeo

ndosmicrosseguR

Ldtrans 8

bps10

bits80009

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 44

Um protocolo com paralelismo em operaccedilatildeo

bull O ACK recebido eacute de que pacote

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 45

bull Envio com pare e espere

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 46

bull Envio com paralelismo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Aumento de utilizaccedilatildeopor fator de 3

U remet =

0024 30008

= 00008 microseconds

3 L R RTT + L R

=

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 47

bull Em um protocolo Go-Back-N (GBN) o remetente eacute autorizado a transmitir muacuteltiplos pacotes sem esperar por um reconhecimento

bull Poreacutem fica limitado a ter natildeo mais do que algum nuacutemero maacuteximo permitido N (tamanho da janela) de pacotes natildeo reconhecidos na ldquotubulaccedilatildeordquo

bull Visatildeo do remetente para os nuacutemeros de sequecircncia no protocolo Go-Back-N

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 48

bull Descriccedilatildeo da FSM estendida do remetente GBNbull Quem consegue descrever o funcionamento

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 49

bull Descriccedilatildeo da FSM estendida do destinataacuterio GBN

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 50

Go-Back-N (GBN) em operaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 51

bull Protocolos de repeticcedilatildeo seletiva (SR) evitam retransmissotildees desnecessaacuterias

bull Eles fazem o remetente retransmitir apenas os pacotes suspeitos de terem sido recebidos com erro no destinataacuterio

bull Essa retransmissatildeo individual soacute quando necessaacuteria exige que o destinataacuterio reconheccedila individualmente os pacotes recebidos de modo correto

Repeticcedilatildeo seletiva (SR)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 52

Repeticcedilatildeo seletiva (SR)

Transport Layer 3-53

Selective repeatdilemma

example seq rsquos 0 1 2 3 window size=3

receiver window(after receipt)

sender window(after receipt)

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2 pkt0

timeoutretransmit pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2XXX

will accept packetwith seq number 0

(b) oops

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

X

will accept packetwith seq number 0

0 1 2 3 0 1 2 pkt3

(a) no problem

receiver canrsquot see sender sidereceiver behavior identical in both casessomethingrsquos (very) wrong

receiver sees no difference in two scenarios

duplicate data accepted as new in (b)

Q what relationship between seq size and window size to avoid problem in (b)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 54

Resumo de mecanismos de transferecircncia confiaacutevel de dados e sua utilizaccedilatildeo

bull Soma de verificaccedilatildeo - Usada para detectar erros de bits em um pacote transmitido

bull Temporizador - Usado para controlar a temporizaccedilatildeoretransmissatildeo de um pacote possivelmente porque o pacote (ou seu ACK) foi perdido dentro do canal

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 55

bull Nuacutemero de sequecircncia - Usado para numeraccedilatildeo sequencial de segmentos de dados que transitam do remetente ao destinataacuterio Ou seja pode-se ter vaacuterios segmentos transitando simultaneamente no canal de comunicaccedilatildeo maximizando assim o uso desse canal

bull Reconhecimento - Usado pelo destinataacuterio para avisar o remetente que um pacote ou conjunto de pacotes foi recebido corretamente

bull Janela paralelismo - O remetente pode ficar restrito a enviar somente pacotes com nuacutemeros de sequecircncia que caiam dentro de uma determinada faixa

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 56

bull Uma conexatildeo TCP provecirc um serviccedilo full-duplex

bull A conexatildeo TCP eacute sempre ponto a ponto

bull Uma vez estabelecida uma conexatildeo TCP dois processos de aplicaccedilatildeo podem enviar dados um para o outro 3-way handshake jaacute estabelecendo o MSS

bull O TCP combina cada porccedilatildeo de dados do cliente com um cabeccedilalho TCP formando assim segmentos TCP

A conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 57

Estrutura do segmento TCPURG dados urgentes

(quase natildeo usado)

ACK ACKvaacutelido

PSH empurrar dados agora

RST SYN FINestab conexatildeo

soma de verificaccedilatildeo

da Internet ndash todo o segmento(como em UDP)

bytes destinataacuteriopode aceitar

contagem porbytes de dados(natildeo segmentos)

Opcional e de comprimentovariaacutevel utilizado paranegociar o MSS ou fatorde escala em redes dealta velocidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 58

TCP Estabelecendo e fechando conexotildees

3-way handshakeFinalizando

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 59

s sequecircncia e ACKs do TCP

Cenaacuterio preestabelecido telnet simples

rsquos de sequecircnciandash ldquonuacutemerordquo na cadeia de

bytes do 1o byte nos dados do segmento

ACKsndash seq do proacuteximo byte

esperado do outro ladondash ACK cumulativo

P como o destinataacuterio trata segmentos fora de ordem

ndash R TCP natildeo diz ndash a criteacuterio do implementador

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 60

Tempo de ida e volta e timeout do TCP

P Como definir o valor de timeout do TCP

maior que RTTndash mas RTT varia

muito curto timeout prematurondash retransmissotildees

desnecessaacuterias muito longo baixa

reaccedilatildeo a perda de segmento

P Como estimar o RTT SampleRTT tempo medido

da transmissatildeo do segmento ateacute receber o ACKndash ignora retransmissotildees

SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquondash meacutedia de vaacuterias mediccedilotildees

recentes natildeo apenas SampleRTT atual

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 61

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui exponencialmente

raacutepido valor tiacutepico = 0125

Tempo de ida e volta e timeout do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 62

Amostras de RTTs estimados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 63

definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(geralmente = 025)

depois definir intervalo de timeout

Tempo de ida e volta e timeout do TCP

TimeoutIntervalinicial

= 1 sldquomargem de seguranccedilardquo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 64

TCP cenaacuterios de retransmissatildeo

Hosp A

Seq = 100 20 bytes dados

ACK = 100

tempoTimeout prematuro

Hosp B

Seq = 92 8 bytes dados

ACK = 120

Seq = 92 8 bytes dados

Seq

= 9

2 tim

eout

ACK = 120

Hosp A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio de ACK perdido

Hosp B

X

Seq = 92 8 bytes dados

ACK = 100

tempoS

eq =

92

timeo

ut

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 65

TCP cenaacuterios de retransmissatildeo

Host A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio ACK cumulativo

Host B

X

Seq = 100 20 bytes dados

ACK = 120

tempo

Transport Layer 3-66

TCP fast retransmit time-out period

often relatively long long delay before

resending lost packet detect lost

segments via duplicate ACKs sender often sends

many segments back-to-back

if segment is lost there will likely be many duplicate ACKs

if sender receives 3 ACKs for same data(ldquotriple duplicate ACKsrdquo) resend unacked segment with smallest seq

likely that unacked segment lost so donrsquot wait for timeout

TCP fast retransmit

Transport Layer 3-67

X

fast retransmit after sender receipt of triple duplicate ACK

Host BHost A

Seq=92 8 bytes of data

ACK=100

timeo

ut ACK=100

ACK=100

ACK=100

TCP fast retransmit

Seq=100 20 bytes of data

Seq=100 20 bytes of data

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 69

bull O nuacutemero de sequecircncia para um segmento eacute o nuacutemero do primeiro byte do segmento

bull O nuacutemero de reconhecimento que o hospedeiro A atribui a seu segmento eacute o nuacutemero de sequecircncia do proacuteximo byte que ele estiver aguardando do hospedeiro B

bull Como o TCP somente reconhece bytes ateacute o primeiro byte que estiver faltando na cadeia dizemos que o TCP provecirc reconhecimentos cumulativos

Nuacutemeros de sequecircncia e nuacutemeros de reconhecimento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 70

bull O TCP cria um serviccedilo de transferecircncia confiaacutevel de dados sobre o serviccedilo de melhor esforccedilo do IP

bull O serviccedilo de transferecircncia garante que a cadeia de bytes eacute idecircntica agrave cadeia de bytes enviada pelo sistema final que estaacute do outro lado da conexatildeo

bull Os procedimentos recomendados no [RFC 6298] para gerenciamento de temporizadores TCP utilizam apenas um uacutenico temporizador de retransmissatildeo

Transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 71

bull O TCP provecirc um serviccedilo de controle de fluxo agraves suas aplicaccedilotildees para eliminar a possibilidade de o remetente estourar o buffer do destinataacuterio

bull Controle de fluxo eacute um serviccedilo de compatibilizaccedilatildeo de velocidades

bull O TCP oferece serviccedilo de controle de fluxo fazendo que o remetente mantenha uma variaacutevel denominada janela de recepccedilatildeo

Controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 72

Regulaccedilatildeo da taxa de envio

Uma rede de transmissatildeo raacutepida eum receptor de baixa capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 73

Controle de fluxo TCP

lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo

serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora

processo da aplicaccedilatildeo pode ser lento na leitura do buffer

remetente natildeo estouraraacute buffer do destinataacuterio transmitindo muitos dados muito rapidamente

controle de fluxo

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 74

Controle de fluxo TCP como funciona

(suponha que destinataacuterio TCP descarte segmentos fora de ordem)

espaccedilo de buffer natildeo usado = rwnd (slide 48) = RcvBuffer-[LastByteRcvd -

LastByteRead]

destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento

remetente limita de bytes com ACK a rwndndash garante que buffer do

destinataacuterio natildeo estoura

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

rwndRcvBuffer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 75

Gerenciamento da conexatildeo TCP

lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados

inicializa variaacuteveis TCPndash s seqndash buffers informaccedilatildeo de

controle de fluxo (p e RcvWindow)

cliente inicia a conexatildeo Socket clientSocket = new

Socket(hostnameport ) servidor contactado pelo

cliente Socket connectionSocket =

welcomeSocketaccept()

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 76

Gerenciamento da conexatildeo TCP

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 77

fechando uma conexatildeo

cliente fecha socket clientSocketclose()

etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor

etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN

cliente

FIN

servidor

ACK

ACK

FIN

fecha

fecha

fechado

espe

ra

tem

poriz

ada

Gerenciamento da conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 79

Controle de congestionamento

Uma rede de transmissatildeo lenta eum receptor de alta capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 80

bull As causas e os custos do congestionamento

Cenaacuterio de congestionamento 1 duas conexotildees compartilhando um uacutenico roteador com nuacutemero infinito de buffers

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 81

bull As causas e os custos do congestionamentoCenaacuterio de congestionamento 1 vazatildeo e atraso em funccedilatildeo da taxa de envio do hospedeiro

ldquocustosrdquo do congestionamento Aumento de atrasos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 82

bull As causas e os custos do congestionamento

Cenaacuterio 2 dois hospedeiros (com retransmissotildees) e um roteador com buffers finitos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 83

a) Caso ideal (vazatildeo)

b) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda

c) retransmissatildeo do pacote adiado (natildeo perdido) torna maior (que

o caso perfeito ) para o mesmo

in

out

=

in

out

gt

in

out

ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do

pacote

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 84

bull As causas e os custos do congestionamento

Cenaacuterio 3 quatro remetentesroteadores com buffers finitos e trajetos com muacuteltiplos roteadores

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 85

outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer capacidade

de transmissatildeo anterior usada para esse pacote foi desperdiccedilada

Host A

Host B

o

u

t

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 86

Controle de congestionamento fim a fim

bull A camada de rede natildeo fornece nenhum suporte expliacutecito agrave camada de transporte com a finalidade de controle de congestionamento

Controle de congestionamento assistido pela rede

bull Os componentes da camada de rede (isto eacute roteadores) fornecem retroalimentaccedilatildeo especiacutefica de informaccedilotildees ao remetente a respeito do estado de congestionamento na rede Natildeo usual

Mecanismos de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 87

bull A abordagem adotada pelo TCP eacute obrigar cada remetente a limitar a taxa agrave qual enviam traacutefego para sua conexatildeo como uma funccedilatildeo do congestionamento de rede percebido

Se um remetente TCP perceber que haacute pouco congestionamento no caminho entre ele e o destinataacuterio aumentaraacute sua taxa de envio

Se perceber que haacute congestionamento reduziraacute sua taxa de

envio

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 88

bull Mas essa abordagem levanta trecircs questotildees

1 Como um remetente TCP limita a taxa pela qual envia traacutefego para sua conexatildeo

2 Como um remetente TCP percebe que haacute congestionamento entre ele e o destinataacuterio

3 Que algoritmo o remetente deve utilizar para modificar sua taxa de envio como uma funccedilatildeo do congestionamento fim a fim percebido

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 89

bull Partida lenta TCP

Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 90

1) Cwnd = 1 MSS inicialmente

2) Partida lenta a cada rodada redefine cwnd = cwnd 2

3) Perda de pacotes (esgotamento de temporizaccedilatildeo ndash problema grave) ==gt cwnd = 1 (Tahoe ou Reno)

4) Prevenccedilatildeo de congestionamento apoacutes atingir sstresh cwnd = cwnd + 1

5) Trecircs acks duplicados (buraco no ldquofluxordquo ndash problema brando) entra no estado prevenccedilatildeo de congestionamento e redefine cwnd = 1 (Tahoe) ou cwnd = sstresh (Reno)

6) Sstresh = cwnd2 quando satildeo detectados problemas

Quantidade de dados natildeo reconhecidas no TCP = min(CongWin RecWin)

Controle de congestionamento TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 91

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 93

bull Evoluccedilatildeo da janela de congestionamento do TCP (Tahoe e Reno ndash mais usual)

Recuperaccedilatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 94

Controle de congestionamento TCP

Partida lenta seguida por aumento aditivo no TCP Tahoe

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 95

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 96

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 97

bull O controle de congestionamento AIMD (Additive-increase Multiplicative-Decrease) faz surgir o comportamento semelhante a ldquodentes de serrardquo

bull httpsmediapearsoncmgcomawecs_kurose_compnetwork_7cwcontentinteractiveanimationstcp-congestionindexhtml

Controle de congestionamento no TCP retrospectiva

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 98

O que eacute throughput meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughput meacutedio 075 WRTT (75 WRTT)

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 99

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (Probabilidade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 100

bull Duas conexotildees TCP compartilhando um uacutenico enlace congestionado

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 101

bull Vazatildeo alcanccedilada pelas conexotildees TCP 1 e TCP 2bull Ambas conexotildees em algum momento estatildeo com vazatildeo Abull Ambas vatildeo aumentando a vazatildeo ateacute ocorrer perda ndash Bbull Sstresh cai pela metade e ambas migram para Chellip

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 102

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

ndash Consequecircncia

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Nova aplicaccedilatildeo pede 1 TCP obteacutem taxa de R10 Nova aplicaccedilatildeo pede 11 TCPs obteacutem R2

Equidade

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Multiplexingdemultiplexing
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Principles of reliable data transfer
  • Slide 20
  • Slide 21
  • Reliable data transfer getting started
  • Slide 23
  • Slide 24
  • Slide 25
  • rdt20 FSM specification
  • rdt20 operation with no errors
  • rdt20 error scenario
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • rdt30 in action
  • Slide 39
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Selective repeat dilemma
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • TCP fast retransmit
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
Page 28: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 29

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt20

bull O que acontece se o pacote ACK ou NAK estiver corrompido

bull Vamos considerar trecircs possibilidade para ACKs ou NAKs corrompidos1 Ser humano -- A ldquoditadordquo B ldquoOKrdquo ou ldquoRepita por favorrdquo ==gt

A natildeo entende ldquoO que foi que vocecirc disserdquo infinito Peacutessimo2 Bits de soma de verificaccedilatildeo de tal modo que permita ao remetente a

recuperaccedilatildeo de erros de bits Muito bom mas serve somente para canais com erro de bits e natildeo perda de pacotes

3 O Remetente reenvia o pacote de dados corrente quando receber um pacote ACK ou NAK truncado ==gt pode gerar pacotes duplicados Como o destinataacuterio sabe se o pacote conteacutem novos dados ou eacute uma retransmissatildeo ==gt nuacutemero de sequecircncia

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 30

bull rdt21 remetente

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 31

bull rdt21 destinataacuterio

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 32

bull O protocolo rdt21 usa tanto o reconhecimento positivo como negativo do remetente ao destinataacuterio pacote fora de ordem ==gt ACK pacote corrompido ==gt NAK

bull Podemos conseguir o mesmo efeito se ao inveacutes de enviarmos um NAK enviarmos um ACK do uacuteltimo corretamente recebido Ou seja ACK tambeacutem numerado

bull ACKs duplicados indicam ao remetente que o destinataacuterio natildeo recebeu corretamente o pacote seguinte agravequele do ACK duplo

bull rdt22 deve enviar o nuacutemero de sequecircncia no ACK

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21-2

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 33

bull rdt22 remetente

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt22

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 34

bull rdt22 destinataacuterio

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt22

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 35

bull Duas preocupaccedilotildees adicionais devem ser tratadas pelo protocolo1 Como detectar perda de pacotes2 O que fazer quando haacute perdas

bull As teacutecnicas jaacute discutidas atendem a segunda questatildeobull E para a primeira questatildeobull Suponha que o remetente transmita um pacote e que esse

pacote ou seu ACK seja perdido Nenhuma resposta chegaraacute ao remetente Se o remetente natildeo quiser esperar ==gt retransmite o pacote

bull Mas quanto o remetente precisa esperar para ter certeza que algo foi perdido Esperar um RTT Eacute muito difiacutecil estimar o RTT quanto mais ter certeza

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 36

bull Aleacutem disso o ideal seria que o protocolo se recuperasse da perda assim que possiacutevel

bull Na praacutetica O remetente faz uma escolha ponderada de um RTT provaacutevel mas natildeo

garantido que a perda tivesse acontecido Se natildeo receber um ACK nesse periacuteodo retransmite o pacote

bull Se o pacote sofrer um atraso longo pode haver retransmissatildeo mesmo que o pacote ou ACK natildeo tenham sido perdidos Possibilidade de pacotes de dados duplicados

bull Para implementar um mecanismo de retransmissatildeo com base no tempo eacute necessaacuterio um temporizador de contagem regressiva Accedilotildees iniciar atender parar

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 37

bull rdt30 remetente

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Transport Layer 3-38

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

pkt1

ack1

ack0

ack0

(a) no loss

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(b) packet loss

pkt1X

loss

pkt1timeout

resend pkt1

rdt30 in action

Transport Layer 3-39

rdt30 in action

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(c) ACK loss

ack1X

loss

pkt1timeout

resend pkt1

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

send ack0rcv ack0

send pkt1

send pkt0rcv pkt0

pkt0

ack0

(d) premature timeout delayed ACK

pkt1timeout

resend pkt1

ack1

send ack1

send pkt0rcv ack1

pkt0

ack1

ack0

send pkt0rcv ack1 pkt0

rcv pkt0send ack0ack0

rcv pkt0

send ack0(detect duplicate)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 42

bull No coraccedilatildeo do problema do desempenho do rdt30 estaacute o fato de ele ser um protocolo do tipo pare e espere

bull Um protocolo pare e espere em operaccedilatildeo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 43

U remet =

0008

30008 = 000027

microseconds

L R RTT + L R

=

Desempenho do rdt30

rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso pacote 8000 bits

U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando

Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps protocolo de rede limita uso de recursos fiacutesicos Soluccedilatildeo

ndosmicrosseguR

Ldtrans 8

bps10

bits80009

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 44

Um protocolo com paralelismo em operaccedilatildeo

bull O ACK recebido eacute de que pacote

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 45

bull Envio com pare e espere

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 46

bull Envio com paralelismo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Aumento de utilizaccedilatildeopor fator de 3

U remet =

0024 30008

= 00008 microseconds

3 L R RTT + L R

=

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 47

bull Em um protocolo Go-Back-N (GBN) o remetente eacute autorizado a transmitir muacuteltiplos pacotes sem esperar por um reconhecimento

bull Poreacutem fica limitado a ter natildeo mais do que algum nuacutemero maacuteximo permitido N (tamanho da janela) de pacotes natildeo reconhecidos na ldquotubulaccedilatildeordquo

bull Visatildeo do remetente para os nuacutemeros de sequecircncia no protocolo Go-Back-N

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 48

bull Descriccedilatildeo da FSM estendida do remetente GBNbull Quem consegue descrever o funcionamento

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 49

bull Descriccedilatildeo da FSM estendida do destinataacuterio GBN

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 50

Go-Back-N (GBN) em operaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 51

bull Protocolos de repeticcedilatildeo seletiva (SR) evitam retransmissotildees desnecessaacuterias

bull Eles fazem o remetente retransmitir apenas os pacotes suspeitos de terem sido recebidos com erro no destinataacuterio

bull Essa retransmissatildeo individual soacute quando necessaacuteria exige que o destinataacuterio reconheccedila individualmente os pacotes recebidos de modo correto

Repeticcedilatildeo seletiva (SR)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 52

Repeticcedilatildeo seletiva (SR)

Transport Layer 3-53

Selective repeatdilemma

example seq rsquos 0 1 2 3 window size=3

receiver window(after receipt)

sender window(after receipt)

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2 pkt0

timeoutretransmit pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2XXX

will accept packetwith seq number 0

(b) oops

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

X

will accept packetwith seq number 0

0 1 2 3 0 1 2 pkt3

(a) no problem

receiver canrsquot see sender sidereceiver behavior identical in both casessomethingrsquos (very) wrong

receiver sees no difference in two scenarios

duplicate data accepted as new in (b)

Q what relationship between seq size and window size to avoid problem in (b)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 54

Resumo de mecanismos de transferecircncia confiaacutevel de dados e sua utilizaccedilatildeo

bull Soma de verificaccedilatildeo - Usada para detectar erros de bits em um pacote transmitido

bull Temporizador - Usado para controlar a temporizaccedilatildeoretransmissatildeo de um pacote possivelmente porque o pacote (ou seu ACK) foi perdido dentro do canal

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 55

bull Nuacutemero de sequecircncia - Usado para numeraccedilatildeo sequencial de segmentos de dados que transitam do remetente ao destinataacuterio Ou seja pode-se ter vaacuterios segmentos transitando simultaneamente no canal de comunicaccedilatildeo maximizando assim o uso desse canal

bull Reconhecimento - Usado pelo destinataacuterio para avisar o remetente que um pacote ou conjunto de pacotes foi recebido corretamente

bull Janela paralelismo - O remetente pode ficar restrito a enviar somente pacotes com nuacutemeros de sequecircncia que caiam dentro de uma determinada faixa

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 56

bull Uma conexatildeo TCP provecirc um serviccedilo full-duplex

bull A conexatildeo TCP eacute sempre ponto a ponto

bull Uma vez estabelecida uma conexatildeo TCP dois processos de aplicaccedilatildeo podem enviar dados um para o outro 3-way handshake jaacute estabelecendo o MSS

bull O TCP combina cada porccedilatildeo de dados do cliente com um cabeccedilalho TCP formando assim segmentos TCP

A conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 57

Estrutura do segmento TCPURG dados urgentes

(quase natildeo usado)

ACK ACKvaacutelido

PSH empurrar dados agora

RST SYN FINestab conexatildeo

soma de verificaccedilatildeo

da Internet ndash todo o segmento(como em UDP)

bytes destinataacuteriopode aceitar

contagem porbytes de dados(natildeo segmentos)

Opcional e de comprimentovariaacutevel utilizado paranegociar o MSS ou fatorde escala em redes dealta velocidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 58

TCP Estabelecendo e fechando conexotildees

3-way handshakeFinalizando

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 59

s sequecircncia e ACKs do TCP

Cenaacuterio preestabelecido telnet simples

rsquos de sequecircnciandash ldquonuacutemerordquo na cadeia de

bytes do 1o byte nos dados do segmento

ACKsndash seq do proacuteximo byte

esperado do outro ladondash ACK cumulativo

P como o destinataacuterio trata segmentos fora de ordem

ndash R TCP natildeo diz ndash a criteacuterio do implementador

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 60

Tempo de ida e volta e timeout do TCP

P Como definir o valor de timeout do TCP

maior que RTTndash mas RTT varia

muito curto timeout prematurondash retransmissotildees

desnecessaacuterias muito longo baixa

reaccedilatildeo a perda de segmento

P Como estimar o RTT SampleRTT tempo medido

da transmissatildeo do segmento ateacute receber o ACKndash ignora retransmissotildees

SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquondash meacutedia de vaacuterias mediccedilotildees

recentes natildeo apenas SampleRTT atual

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 61

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui exponencialmente

raacutepido valor tiacutepico = 0125

Tempo de ida e volta e timeout do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 62

Amostras de RTTs estimados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 63

definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(geralmente = 025)

depois definir intervalo de timeout

Tempo de ida e volta e timeout do TCP

TimeoutIntervalinicial

= 1 sldquomargem de seguranccedilardquo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 64

TCP cenaacuterios de retransmissatildeo

Hosp A

Seq = 100 20 bytes dados

ACK = 100

tempoTimeout prematuro

Hosp B

Seq = 92 8 bytes dados

ACK = 120

Seq = 92 8 bytes dados

Seq

= 9

2 tim

eout

ACK = 120

Hosp A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio de ACK perdido

Hosp B

X

Seq = 92 8 bytes dados

ACK = 100

tempoS

eq =

92

timeo

ut

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 65

TCP cenaacuterios de retransmissatildeo

Host A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio ACK cumulativo

Host B

X

Seq = 100 20 bytes dados

ACK = 120

tempo

Transport Layer 3-66

TCP fast retransmit time-out period

often relatively long long delay before

resending lost packet detect lost

segments via duplicate ACKs sender often sends

many segments back-to-back

if segment is lost there will likely be many duplicate ACKs

if sender receives 3 ACKs for same data(ldquotriple duplicate ACKsrdquo) resend unacked segment with smallest seq

likely that unacked segment lost so donrsquot wait for timeout

TCP fast retransmit

Transport Layer 3-67

X

fast retransmit after sender receipt of triple duplicate ACK

Host BHost A

Seq=92 8 bytes of data

ACK=100

timeo

ut ACK=100

ACK=100

ACK=100

TCP fast retransmit

Seq=100 20 bytes of data

Seq=100 20 bytes of data

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 69

bull O nuacutemero de sequecircncia para um segmento eacute o nuacutemero do primeiro byte do segmento

bull O nuacutemero de reconhecimento que o hospedeiro A atribui a seu segmento eacute o nuacutemero de sequecircncia do proacuteximo byte que ele estiver aguardando do hospedeiro B

bull Como o TCP somente reconhece bytes ateacute o primeiro byte que estiver faltando na cadeia dizemos que o TCP provecirc reconhecimentos cumulativos

Nuacutemeros de sequecircncia e nuacutemeros de reconhecimento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 70

bull O TCP cria um serviccedilo de transferecircncia confiaacutevel de dados sobre o serviccedilo de melhor esforccedilo do IP

bull O serviccedilo de transferecircncia garante que a cadeia de bytes eacute idecircntica agrave cadeia de bytes enviada pelo sistema final que estaacute do outro lado da conexatildeo

bull Os procedimentos recomendados no [RFC 6298] para gerenciamento de temporizadores TCP utilizam apenas um uacutenico temporizador de retransmissatildeo

Transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 71

bull O TCP provecirc um serviccedilo de controle de fluxo agraves suas aplicaccedilotildees para eliminar a possibilidade de o remetente estourar o buffer do destinataacuterio

bull Controle de fluxo eacute um serviccedilo de compatibilizaccedilatildeo de velocidades

bull O TCP oferece serviccedilo de controle de fluxo fazendo que o remetente mantenha uma variaacutevel denominada janela de recepccedilatildeo

Controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 72

Regulaccedilatildeo da taxa de envio

Uma rede de transmissatildeo raacutepida eum receptor de baixa capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 73

Controle de fluxo TCP

lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo

serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora

processo da aplicaccedilatildeo pode ser lento na leitura do buffer

remetente natildeo estouraraacute buffer do destinataacuterio transmitindo muitos dados muito rapidamente

controle de fluxo

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 74

Controle de fluxo TCP como funciona

(suponha que destinataacuterio TCP descarte segmentos fora de ordem)

espaccedilo de buffer natildeo usado = rwnd (slide 48) = RcvBuffer-[LastByteRcvd -

LastByteRead]

destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento

remetente limita de bytes com ACK a rwndndash garante que buffer do

destinataacuterio natildeo estoura

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

rwndRcvBuffer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 75

Gerenciamento da conexatildeo TCP

lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados

inicializa variaacuteveis TCPndash s seqndash buffers informaccedilatildeo de

controle de fluxo (p e RcvWindow)

cliente inicia a conexatildeo Socket clientSocket = new

Socket(hostnameport ) servidor contactado pelo

cliente Socket connectionSocket =

welcomeSocketaccept()

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 76

Gerenciamento da conexatildeo TCP

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 77

fechando uma conexatildeo

cliente fecha socket clientSocketclose()

etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor

etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN

cliente

FIN

servidor

ACK

ACK

FIN

fecha

fecha

fechado

espe

ra

tem

poriz

ada

Gerenciamento da conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 79

Controle de congestionamento

Uma rede de transmissatildeo lenta eum receptor de alta capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 80

bull As causas e os custos do congestionamento

Cenaacuterio de congestionamento 1 duas conexotildees compartilhando um uacutenico roteador com nuacutemero infinito de buffers

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 81

bull As causas e os custos do congestionamentoCenaacuterio de congestionamento 1 vazatildeo e atraso em funccedilatildeo da taxa de envio do hospedeiro

ldquocustosrdquo do congestionamento Aumento de atrasos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 82

bull As causas e os custos do congestionamento

Cenaacuterio 2 dois hospedeiros (com retransmissotildees) e um roteador com buffers finitos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 83

a) Caso ideal (vazatildeo)

b) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda

c) retransmissatildeo do pacote adiado (natildeo perdido) torna maior (que

o caso perfeito ) para o mesmo

in

out

=

in

out

gt

in

out

ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do

pacote

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 84

bull As causas e os custos do congestionamento

Cenaacuterio 3 quatro remetentesroteadores com buffers finitos e trajetos com muacuteltiplos roteadores

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 85

outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer capacidade

de transmissatildeo anterior usada para esse pacote foi desperdiccedilada

Host A

Host B

o

u

t

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 86

Controle de congestionamento fim a fim

bull A camada de rede natildeo fornece nenhum suporte expliacutecito agrave camada de transporte com a finalidade de controle de congestionamento

Controle de congestionamento assistido pela rede

bull Os componentes da camada de rede (isto eacute roteadores) fornecem retroalimentaccedilatildeo especiacutefica de informaccedilotildees ao remetente a respeito do estado de congestionamento na rede Natildeo usual

Mecanismos de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 87

bull A abordagem adotada pelo TCP eacute obrigar cada remetente a limitar a taxa agrave qual enviam traacutefego para sua conexatildeo como uma funccedilatildeo do congestionamento de rede percebido

Se um remetente TCP perceber que haacute pouco congestionamento no caminho entre ele e o destinataacuterio aumentaraacute sua taxa de envio

Se perceber que haacute congestionamento reduziraacute sua taxa de

envio

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 88

bull Mas essa abordagem levanta trecircs questotildees

1 Como um remetente TCP limita a taxa pela qual envia traacutefego para sua conexatildeo

2 Como um remetente TCP percebe que haacute congestionamento entre ele e o destinataacuterio

3 Que algoritmo o remetente deve utilizar para modificar sua taxa de envio como uma funccedilatildeo do congestionamento fim a fim percebido

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 89

bull Partida lenta TCP

Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 90

1) Cwnd = 1 MSS inicialmente

2) Partida lenta a cada rodada redefine cwnd = cwnd 2

3) Perda de pacotes (esgotamento de temporizaccedilatildeo ndash problema grave) ==gt cwnd = 1 (Tahoe ou Reno)

4) Prevenccedilatildeo de congestionamento apoacutes atingir sstresh cwnd = cwnd + 1

5) Trecircs acks duplicados (buraco no ldquofluxordquo ndash problema brando) entra no estado prevenccedilatildeo de congestionamento e redefine cwnd = 1 (Tahoe) ou cwnd = sstresh (Reno)

6) Sstresh = cwnd2 quando satildeo detectados problemas

Quantidade de dados natildeo reconhecidas no TCP = min(CongWin RecWin)

Controle de congestionamento TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 91

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 93

bull Evoluccedilatildeo da janela de congestionamento do TCP (Tahoe e Reno ndash mais usual)

Recuperaccedilatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 94

Controle de congestionamento TCP

Partida lenta seguida por aumento aditivo no TCP Tahoe

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 95

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 96

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 97

bull O controle de congestionamento AIMD (Additive-increase Multiplicative-Decrease) faz surgir o comportamento semelhante a ldquodentes de serrardquo

bull httpsmediapearsoncmgcomawecs_kurose_compnetwork_7cwcontentinteractiveanimationstcp-congestionindexhtml

Controle de congestionamento no TCP retrospectiva

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 98

O que eacute throughput meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughput meacutedio 075 WRTT (75 WRTT)

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 99

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (Probabilidade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 100

bull Duas conexotildees TCP compartilhando um uacutenico enlace congestionado

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 101

bull Vazatildeo alcanccedilada pelas conexotildees TCP 1 e TCP 2bull Ambas conexotildees em algum momento estatildeo com vazatildeo Abull Ambas vatildeo aumentando a vazatildeo ateacute ocorrer perda ndash Bbull Sstresh cai pela metade e ambas migram para Chellip

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 102

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

ndash Consequecircncia

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Nova aplicaccedilatildeo pede 1 TCP obteacutem taxa de R10 Nova aplicaccedilatildeo pede 11 TCPs obteacutem R2

Equidade

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Multiplexingdemultiplexing
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Principles of reliable data transfer
  • Slide 20
  • Slide 21
  • Reliable data transfer getting started
  • Slide 23
  • Slide 24
  • Slide 25
  • rdt20 FSM specification
  • rdt20 operation with no errors
  • rdt20 error scenario
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • rdt30 in action
  • Slide 39
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Selective repeat dilemma
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • TCP fast retransmit
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
Page 29: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 30

bull rdt21 remetente

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 31

bull rdt21 destinataacuterio

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 32

bull O protocolo rdt21 usa tanto o reconhecimento positivo como negativo do remetente ao destinataacuterio pacote fora de ordem ==gt ACK pacote corrompido ==gt NAK

bull Podemos conseguir o mesmo efeito se ao inveacutes de enviarmos um NAK enviarmos um ACK do uacuteltimo corretamente recebido Ou seja ACK tambeacutem numerado

bull ACKs duplicados indicam ao remetente que o destinataacuterio natildeo recebeu corretamente o pacote seguinte agravequele do ACK duplo

bull rdt22 deve enviar o nuacutemero de sequecircncia no ACK

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21-2

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 33

bull rdt22 remetente

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt22

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 34

bull rdt22 destinataacuterio

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt22

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 35

bull Duas preocupaccedilotildees adicionais devem ser tratadas pelo protocolo1 Como detectar perda de pacotes2 O que fazer quando haacute perdas

bull As teacutecnicas jaacute discutidas atendem a segunda questatildeobull E para a primeira questatildeobull Suponha que o remetente transmita um pacote e que esse

pacote ou seu ACK seja perdido Nenhuma resposta chegaraacute ao remetente Se o remetente natildeo quiser esperar ==gt retransmite o pacote

bull Mas quanto o remetente precisa esperar para ter certeza que algo foi perdido Esperar um RTT Eacute muito difiacutecil estimar o RTT quanto mais ter certeza

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 36

bull Aleacutem disso o ideal seria que o protocolo se recuperasse da perda assim que possiacutevel

bull Na praacutetica O remetente faz uma escolha ponderada de um RTT provaacutevel mas natildeo

garantido que a perda tivesse acontecido Se natildeo receber um ACK nesse periacuteodo retransmite o pacote

bull Se o pacote sofrer um atraso longo pode haver retransmissatildeo mesmo que o pacote ou ACK natildeo tenham sido perdidos Possibilidade de pacotes de dados duplicados

bull Para implementar um mecanismo de retransmissatildeo com base no tempo eacute necessaacuterio um temporizador de contagem regressiva Accedilotildees iniciar atender parar

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 37

bull rdt30 remetente

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Transport Layer 3-38

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

pkt1

ack1

ack0

ack0

(a) no loss

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(b) packet loss

pkt1X

loss

pkt1timeout

resend pkt1

rdt30 in action

Transport Layer 3-39

rdt30 in action

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(c) ACK loss

ack1X

loss

pkt1timeout

resend pkt1

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

send ack0rcv ack0

send pkt1

send pkt0rcv pkt0

pkt0

ack0

(d) premature timeout delayed ACK

pkt1timeout

resend pkt1

ack1

send ack1

send pkt0rcv ack1

pkt0

ack1

ack0

send pkt0rcv ack1 pkt0

rcv pkt0send ack0ack0

rcv pkt0

send ack0(detect duplicate)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 42

bull No coraccedilatildeo do problema do desempenho do rdt30 estaacute o fato de ele ser um protocolo do tipo pare e espere

bull Um protocolo pare e espere em operaccedilatildeo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 43

U remet =

0008

30008 = 000027

microseconds

L R RTT + L R

=

Desempenho do rdt30

rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso pacote 8000 bits

U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando

Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps protocolo de rede limita uso de recursos fiacutesicos Soluccedilatildeo

ndosmicrosseguR

Ldtrans 8

bps10

bits80009

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 44

Um protocolo com paralelismo em operaccedilatildeo

bull O ACK recebido eacute de que pacote

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 45

bull Envio com pare e espere

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 46

bull Envio com paralelismo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Aumento de utilizaccedilatildeopor fator de 3

U remet =

0024 30008

= 00008 microseconds

3 L R RTT + L R

=

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 47

bull Em um protocolo Go-Back-N (GBN) o remetente eacute autorizado a transmitir muacuteltiplos pacotes sem esperar por um reconhecimento

bull Poreacutem fica limitado a ter natildeo mais do que algum nuacutemero maacuteximo permitido N (tamanho da janela) de pacotes natildeo reconhecidos na ldquotubulaccedilatildeordquo

bull Visatildeo do remetente para os nuacutemeros de sequecircncia no protocolo Go-Back-N

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 48

bull Descriccedilatildeo da FSM estendida do remetente GBNbull Quem consegue descrever o funcionamento

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 49

bull Descriccedilatildeo da FSM estendida do destinataacuterio GBN

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 50

Go-Back-N (GBN) em operaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 51

bull Protocolos de repeticcedilatildeo seletiva (SR) evitam retransmissotildees desnecessaacuterias

bull Eles fazem o remetente retransmitir apenas os pacotes suspeitos de terem sido recebidos com erro no destinataacuterio

bull Essa retransmissatildeo individual soacute quando necessaacuteria exige que o destinataacuterio reconheccedila individualmente os pacotes recebidos de modo correto

Repeticcedilatildeo seletiva (SR)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 52

Repeticcedilatildeo seletiva (SR)

Transport Layer 3-53

Selective repeatdilemma

example seq rsquos 0 1 2 3 window size=3

receiver window(after receipt)

sender window(after receipt)

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2 pkt0

timeoutretransmit pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2XXX

will accept packetwith seq number 0

(b) oops

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

X

will accept packetwith seq number 0

0 1 2 3 0 1 2 pkt3

(a) no problem

receiver canrsquot see sender sidereceiver behavior identical in both casessomethingrsquos (very) wrong

receiver sees no difference in two scenarios

duplicate data accepted as new in (b)

Q what relationship between seq size and window size to avoid problem in (b)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 54

Resumo de mecanismos de transferecircncia confiaacutevel de dados e sua utilizaccedilatildeo

bull Soma de verificaccedilatildeo - Usada para detectar erros de bits em um pacote transmitido

bull Temporizador - Usado para controlar a temporizaccedilatildeoretransmissatildeo de um pacote possivelmente porque o pacote (ou seu ACK) foi perdido dentro do canal

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 55

bull Nuacutemero de sequecircncia - Usado para numeraccedilatildeo sequencial de segmentos de dados que transitam do remetente ao destinataacuterio Ou seja pode-se ter vaacuterios segmentos transitando simultaneamente no canal de comunicaccedilatildeo maximizando assim o uso desse canal

bull Reconhecimento - Usado pelo destinataacuterio para avisar o remetente que um pacote ou conjunto de pacotes foi recebido corretamente

bull Janela paralelismo - O remetente pode ficar restrito a enviar somente pacotes com nuacutemeros de sequecircncia que caiam dentro de uma determinada faixa

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 56

bull Uma conexatildeo TCP provecirc um serviccedilo full-duplex

bull A conexatildeo TCP eacute sempre ponto a ponto

bull Uma vez estabelecida uma conexatildeo TCP dois processos de aplicaccedilatildeo podem enviar dados um para o outro 3-way handshake jaacute estabelecendo o MSS

bull O TCP combina cada porccedilatildeo de dados do cliente com um cabeccedilalho TCP formando assim segmentos TCP

A conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 57

Estrutura do segmento TCPURG dados urgentes

(quase natildeo usado)

ACK ACKvaacutelido

PSH empurrar dados agora

RST SYN FINestab conexatildeo

soma de verificaccedilatildeo

da Internet ndash todo o segmento(como em UDP)

bytes destinataacuteriopode aceitar

contagem porbytes de dados(natildeo segmentos)

Opcional e de comprimentovariaacutevel utilizado paranegociar o MSS ou fatorde escala em redes dealta velocidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 58

TCP Estabelecendo e fechando conexotildees

3-way handshakeFinalizando

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 59

s sequecircncia e ACKs do TCP

Cenaacuterio preestabelecido telnet simples

rsquos de sequecircnciandash ldquonuacutemerordquo na cadeia de

bytes do 1o byte nos dados do segmento

ACKsndash seq do proacuteximo byte

esperado do outro ladondash ACK cumulativo

P como o destinataacuterio trata segmentos fora de ordem

ndash R TCP natildeo diz ndash a criteacuterio do implementador

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 60

Tempo de ida e volta e timeout do TCP

P Como definir o valor de timeout do TCP

maior que RTTndash mas RTT varia

muito curto timeout prematurondash retransmissotildees

desnecessaacuterias muito longo baixa

reaccedilatildeo a perda de segmento

P Como estimar o RTT SampleRTT tempo medido

da transmissatildeo do segmento ateacute receber o ACKndash ignora retransmissotildees

SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquondash meacutedia de vaacuterias mediccedilotildees

recentes natildeo apenas SampleRTT atual

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 61

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui exponencialmente

raacutepido valor tiacutepico = 0125

Tempo de ida e volta e timeout do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 62

Amostras de RTTs estimados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 63

definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(geralmente = 025)

depois definir intervalo de timeout

Tempo de ida e volta e timeout do TCP

TimeoutIntervalinicial

= 1 sldquomargem de seguranccedilardquo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 64

TCP cenaacuterios de retransmissatildeo

Hosp A

Seq = 100 20 bytes dados

ACK = 100

tempoTimeout prematuro

Hosp B

Seq = 92 8 bytes dados

ACK = 120

Seq = 92 8 bytes dados

Seq

= 9

2 tim

eout

ACK = 120

Hosp A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio de ACK perdido

Hosp B

X

Seq = 92 8 bytes dados

ACK = 100

tempoS

eq =

92

timeo

ut

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 65

TCP cenaacuterios de retransmissatildeo

Host A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio ACK cumulativo

Host B

X

Seq = 100 20 bytes dados

ACK = 120

tempo

Transport Layer 3-66

TCP fast retransmit time-out period

often relatively long long delay before

resending lost packet detect lost

segments via duplicate ACKs sender often sends

many segments back-to-back

if segment is lost there will likely be many duplicate ACKs

if sender receives 3 ACKs for same data(ldquotriple duplicate ACKsrdquo) resend unacked segment with smallest seq

likely that unacked segment lost so donrsquot wait for timeout

TCP fast retransmit

Transport Layer 3-67

X

fast retransmit after sender receipt of triple duplicate ACK

Host BHost A

Seq=92 8 bytes of data

ACK=100

timeo

ut ACK=100

ACK=100

ACK=100

TCP fast retransmit

Seq=100 20 bytes of data

Seq=100 20 bytes of data

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 69

bull O nuacutemero de sequecircncia para um segmento eacute o nuacutemero do primeiro byte do segmento

bull O nuacutemero de reconhecimento que o hospedeiro A atribui a seu segmento eacute o nuacutemero de sequecircncia do proacuteximo byte que ele estiver aguardando do hospedeiro B

bull Como o TCP somente reconhece bytes ateacute o primeiro byte que estiver faltando na cadeia dizemos que o TCP provecirc reconhecimentos cumulativos

Nuacutemeros de sequecircncia e nuacutemeros de reconhecimento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 70

bull O TCP cria um serviccedilo de transferecircncia confiaacutevel de dados sobre o serviccedilo de melhor esforccedilo do IP

bull O serviccedilo de transferecircncia garante que a cadeia de bytes eacute idecircntica agrave cadeia de bytes enviada pelo sistema final que estaacute do outro lado da conexatildeo

bull Os procedimentos recomendados no [RFC 6298] para gerenciamento de temporizadores TCP utilizam apenas um uacutenico temporizador de retransmissatildeo

Transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 71

bull O TCP provecirc um serviccedilo de controle de fluxo agraves suas aplicaccedilotildees para eliminar a possibilidade de o remetente estourar o buffer do destinataacuterio

bull Controle de fluxo eacute um serviccedilo de compatibilizaccedilatildeo de velocidades

bull O TCP oferece serviccedilo de controle de fluxo fazendo que o remetente mantenha uma variaacutevel denominada janela de recepccedilatildeo

Controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 72

Regulaccedilatildeo da taxa de envio

Uma rede de transmissatildeo raacutepida eum receptor de baixa capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 73

Controle de fluxo TCP

lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo

serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora

processo da aplicaccedilatildeo pode ser lento na leitura do buffer

remetente natildeo estouraraacute buffer do destinataacuterio transmitindo muitos dados muito rapidamente

controle de fluxo

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 74

Controle de fluxo TCP como funciona

(suponha que destinataacuterio TCP descarte segmentos fora de ordem)

espaccedilo de buffer natildeo usado = rwnd (slide 48) = RcvBuffer-[LastByteRcvd -

LastByteRead]

destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento

remetente limita de bytes com ACK a rwndndash garante que buffer do

destinataacuterio natildeo estoura

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

rwndRcvBuffer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 75

Gerenciamento da conexatildeo TCP

lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados

inicializa variaacuteveis TCPndash s seqndash buffers informaccedilatildeo de

controle de fluxo (p e RcvWindow)

cliente inicia a conexatildeo Socket clientSocket = new

Socket(hostnameport ) servidor contactado pelo

cliente Socket connectionSocket =

welcomeSocketaccept()

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 76

Gerenciamento da conexatildeo TCP

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 77

fechando uma conexatildeo

cliente fecha socket clientSocketclose()

etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor

etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN

cliente

FIN

servidor

ACK

ACK

FIN

fecha

fecha

fechado

espe

ra

tem

poriz

ada

Gerenciamento da conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 79

Controle de congestionamento

Uma rede de transmissatildeo lenta eum receptor de alta capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 80

bull As causas e os custos do congestionamento

Cenaacuterio de congestionamento 1 duas conexotildees compartilhando um uacutenico roteador com nuacutemero infinito de buffers

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 81

bull As causas e os custos do congestionamentoCenaacuterio de congestionamento 1 vazatildeo e atraso em funccedilatildeo da taxa de envio do hospedeiro

ldquocustosrdquo do congestionamento Aumento de atrasos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 82

bull As causas e os custos do congestionamento

Cenaacuterio 2 dois hospedeiros (com retransmissotildees) e um roteador com buffers finitos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 83

a) Caso ideal (vazatildeo)

b) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda

c) retransmissatildeo do pacote adiado (natildeo perdido) torna maior (que

o caso perfeito ) para o mesmo

in

out

=

in

out

gt

in

out

ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do

pacote

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 84

bull As causas e os custos do congestionamento

Cenaacuterio 3 quatro remetentesroteadores com buffers finitos e trajetos com muacuteltiplos roteadores

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 85

outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer capacidade

de transmissatildeo anterior usada para esse pacote foi desperdiccedilada

Host A

Host B

o

u

t

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 86

Controle de congestionamento fim a fim

bull A camada de rede natildeo fornece nenhum suporte expliacutecito agrave camada de transporte com a finalidade de controle de congestionamento

Controle de congestionamento assistido pela rede

bull Os componentes da camada de rede (isto eacute roteadores) fornecem retroalimentaccedilatildeo especiacutefica de informaccedilotildees ao remetente a respeito do estado de congestionamento na rede Natildeo usual

Mecanismos de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 87

bull A abordagem adotada pelo TCP eacute obrigar cada remetente a limitar a taxa agrave qual enviam traacutefego para sua conexatildeo como uma funccedilatildeo do congestionamento de rede percebido

Se um remetente TCP perceber que haacute pouco congestionamento no caminho entre ele e o destinataacuterio aumentaraacute sua taxa de envio

Se perceber que haacute congestionamento reduziraacute sua taxa de

envio

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 88

bull Mas essa abordagem levanta trecircs questotildees

1 Como um remetente TCP limita a taxa pela qual envia traacutefego para sua conexatildeo

2 Como um remetente TCP percebe que haacute congestionamento entre ele e o destinataacuterio

3 Que algoritmo o remetente deve utilizar para modificar sua taxa de envio como uma funccedilatildeo do congestionamento fim a fim percebido

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 89

bull Partida lenta TCP

Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 90

1) Cwnd = 1 MSS inicialmente

2) Partida lenta a cada rodada redefine cwnd = cwnd 2

3) Perda de pacotes (esgotamento de temporizaccedilatildeo ndash problema grave) ==gt cwnd = 1 (Tahoe ou Reno)

4) Prevenccedilatildeo de congestionamento apoacutes atingir sstresh cwnd = cwnd + 1

5) Trecircs acks duplicados (buraco no ldquofluxordquo ndash problema brando) entra no estado prevenccedilatildeo de congestionamento e redefine cwnd = 1 (Tahoe) ou cwnd = sstresh (Reno)

6) Sstresh = cwnd2 quando satildeo detectados problemas

Quantidade de dados natildeo reconhecidas no TCP = min(CongWin RecWin)

Controle de congestionamento TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 91

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 93

bull Evoluccedilatildeo da janela de congestionamento do TCP (Tahoe e Reno ndash mais usual)

Recuperaccedilatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 94

Controle de congestionamento TCP

Partida lenta seguida por aumento aditivo no TCP Tahoe

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 95

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 96

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 97

bull O controle de congestionamento AIMD (Additive-increase Multiplicative-Decrease) faz surgir o comportamento semelhante a ldquodentes de serrardquo

bull httpsmediapearsoncmgcomawecs_kurose_compnetwork_7cwcontentinteractiveanimationstcp-congestionindexhtml

Controle de congestionamento no TCP retrospectiva

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 98

O que eacute throughput meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughput meacutedio 075 WRTT (75 WRTT)

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 99

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (Probabilidade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 100

bull Duas conexotildees TCP compartilhando um uacutenico enlace congestionado

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 101

bull Vazatildeo alcanccedilada pelas conexotildees TCP 1 e TCP 2bull Ambas conexotildees em algum momento estatildeo com vazatildeo Abull Ambas vatildeo aumentando a vazatildeo ateacute ocorrer perda ndash Bbull Sstresh cai pela metade e ambas migram para Chellip

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 102

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

ndash Consequecircncia

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Nova aplicaccedilatildeo pede 1 TCP obteacutem taxa de R10 Nova aplicaccedilatildeo pede 11 TCPs obteacutem R2

Equidade

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Multiplexingdemultiplexing
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Principles of reliable data transfer
  • Slide 20
  • Slide 21
  • Reliable data transfer getting started
  • Slide 23
  • Slide 24
  • Slide 25
  • rdt20 FSM specification
  • rdt20 operation with no errors
  • rdt20 error scenario
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • rdt30 in action
  • Slide 39
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Selective repeat dilemma
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • TCP fast retransmit
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
Page 30: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 31

bull rdt21 destinataacuterio

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 32

bull O protocolo rdt21 usa tanto o reconhecimento positivo como negativo do remetente ao destinataacuterio pacote fora de ordem ==gt ACK pacote corrompido ==gt NAK

bull Podemos conseguir o mesmo efeito se ao inveacutes de enviarmos um NAK enviarmos um ACK do uacuteltimo corretamente recebido Ou seja ACK tambeacutem numerado

bull ACKs duplicados indicam ao remetente que o destinataacuterio natildeo recebeu corretamente o pacote seguinte agravequele do ACK duplo

bull rdt22 deve enviar o nuacutemero de sequecircncia no ACK

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21-2

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 33

bull rdt22 remetente

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt22

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 34

bull rdt22 destinataacuterio

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt22

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 35

bull Duas preocupaccedilotildees adicionais devem ser tratadas pelo protocolo1 Como detectar perda de pacotes2 O que fazer quando haacute perdas

bull As teacutecnicas jaacute discutidas atendem a segunda questatildeobull E para a primeira questatildeobull Suponha que o remetente transmita um pacote e que esse

pacote ou seu ACK seja perdido Nenhuma resposta chegaraacute ao remetente Se o remetente natildeo quiser esperar ==gt retransmite o pacote

bull Mas quanto o remetente precisa esperar para ter certeza que algo foi perdido Esperar um RTT Eacute muito difiacutecil estimar o RTT quanto mais ter certeza

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 36

bull Aleacutem disso o ideal seria que o protocolo se recuperasse da perda assim que possiacutevel

bull Na praacutetica O remetente faz uma escolha ponderada de um RTT provaacutevel mas natildeo

garantido que a perda tivesse acontecido Se natildeo receber um ACK nesse periacuteodo retransmite o pacote

bull Se o pacote sofrer um atraso longo pode haver retransmissatildeo mesmo que o pacote ou ACK natildeo tenham sido perdidos Possibilidade de pacotes de dados duplicados

bull Para implementar um mecanismo de retransmissatildeo com base no tempo eacute necessaacuterio um temporizador de contagem regressiva Accedilotildees iniciar atender parar

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 37

bull rdt30 remetente

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Transport Layer 3-38

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

pkt1

ack1

ack0

ack0

(a) no loss

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(b) packet loss

pkt1X

loss

pkt1timeout

resend pkt1

rdt30 in action

Transport Layer 3-39

rdt30 in action

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(c) ACK loss

ack1X

loss

pkt1timeout

resend pkt1

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

send ack0rcv ack0

send pkt1

send pkt0rcv pkt0

pkt0

ack0

(d) premature timeout delayed ACK

pkt1timeout

resend pkt1

ack1

send ack1

send pkt0rcv ack1

pkt0

ack1

ack0

send pkt0rcv ack1 pkt0

rcv pkt0send ack0ack0

rcv pkt0

send ack0(detect duplicate)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 42

bull No coraccedilatildeo do problema do desempenho do rdt30 estaacute o fato de ele ser um protocolo do tipo pare e espere

bull Um protocolo pare e espere em operaccedilatildeo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 43

U remet =

0008

30008 = 000027

microseconds

L R RTT + L R

=

Desempenho do rdt30

rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso pacote 8000 bits

U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando

Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps protocolo de rede limita uso de recursos fiacutesicos Soluccedilatildeo

ndosmicrosseguR

Ldtrans 8

bps10

bits80009

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 44

Um protocolo com paralelismo em operaccedilatildeo

bull O ACK recebido eacute de que pacote

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 45

bull Envio com pare e espere

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 46

bull Envio com paralelismo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Aumento de utilizaccedilatildeopor fator de 3

U remet =

0024 30008

= 00008 microseconds

3 L R RTT + L R

=

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 47

bull Em um protocolo Go-Back-N (GBN) o remetente eacute autorizado a transmitir muacuteltiplos pacotes sem esperar por um reconhecimento

bull Poreacutem fica limitado a ter natildeo mais do que algum nuacutemero maacuteximo permitido N (tamanho da janela) de pacotes natildeo reconhecidos na ldquotubulaccedilatildeordquo

bull Visatildeo do remetente para os nuacutemeros de sequecircncia no protocolo Go-Back-N

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 48

bull Descriccedilatildeo da FSM estendida do remetente GBNbull Quem consegue descrever o funcionamento

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 49

bull Descriccedilatildeo da FSM estendida do destinataacuterio GBN

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 50

Go-Back-N (GBN) em operaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 51

bull Protocolos de repeticcedilatildeo seletiva (SR) evitam retransmissotildees desnecessaacuterias

bull Eles fazem o remetente retransmitir apenas os pacotes suspeitos de terem sido recebidos com erro no destinataacuterio

bull Essa retransmissatildeo individual soacute quando necessaacuteria exige que o destinataacuterio reconheccedila individualmente os pacotes recebidos de modo correto

Repeticcedilatildeo seletiva (SR)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 52

Repeticcedilatildeo seletiva (SR)

Transport Layer 3-53

Selective repeatdilemma

example seq rsquos 0 1 2 3 window size=3

receiver window(after receipt)

sender window(after receipt)

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2 pkt0

timeoutretransmit pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2XXX

will accept packetwith seq number 0

(b) oops

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

X

will accept packetwith seq number 0

0 1 2 3 0 1 2 pkt3

(a) no problem

receiver canrsquot see sender sidereceiver behavior identical in both casessomethingrsquos (very) wrong

receiver sees no difference in two scenarios

duplicate data accepted as new in (b)

Q what relationship between seq size and window size to avoid problem in (b)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 54

Resumo de mecanismos de transferecircncia confiaacutevel de dados e sua utilizaccedilatildeo

bull Soma de verificaccedilatildeo - Usada para detectar erros de bits em um pacote transmitido

bull Temporizador - Usado para controlar a temporizaccedilatildeoretransmissatildeo de um pacote possivelmente porque o pacote (ou seu ACK) foi perdido dentro do canal

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 55

bull Nuacutemero de sequecircncia - Usado para numeraccedilatildeo sequencial de segmentos de dados que transitam do remetente ao destinataacuterio Ou seja pode-se ter vaacuterios segmentos transitando simultaneamente no canal de comunicaccedilatildeo maximizando assim o uso desse canal

bull Reconhecimento - Usado pelo destinataacuterio para avisar o remetente que um pacote ou conjunto de pacotes foi recebido corretamente

bull Janela paralelismo - O remetente pode ficar restrito a enviar somente pacotes com nuacutemeros de sequecircncia que caiam dentro de uma determinada faixa

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 56

bull Uma conexatildeo TCP provecirc um serviccedilo full-duplex

bull A conexatildeo TCP eacute sempre ponto a ponto

bull Uma vez estabelecida uma conexatildeo TCP dois processos de aplicaccedilatildeo podem enviar dados um para o outro 3-way handshake jaacute estabelecendo o MSS

bull O TCP combina cada porccedilatildeo de dados do cliente com um cabeccedilalho TCP formando assim segmentos TCP

A conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 57

Estrutura do segmento TCPURG dados urgentes

(quase natildeo usado)

ACK ACKvaacutelido

PSH empurrar dados agora

RST SYN FINestab conexatildeo

soma de verificaccedilatildeo

da Internet ndash todo o segmento(como em UDP)

bytes destinataacuteriopode aceitar

contagem porbytes de dados(natildeo segmentos)

Opcional e de comprimentovariaacutevel utilizado paranegociar o MSS ou fatorde escala em redes dealta velocidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 58

TCP Estabelecendo e fechando conexotildees

3-way handshakeFinalizando

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 59

s sequecircncia e ACKs do TCP

Cenaacuterio preestabelecido telnet simples

rsquos de sequecircnciandash ldquonuacutemerordquo na cadeia de

bytes do 1o byte nos dados do segmento

ACKsndash seq do proacuteximo byte

esperado do outro ladondash ACK cumulativo

P como o destinataacuterio trata segmentos fora de ordem

ndash R TCP natildeo diz ndash a criteacuterio do implementador

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 60

Tempo de ida e volta e timeout do TCP

P Como definir o valor de timeout do TCP

maior que RTTndash mas RTT varia

muito curto timeout prematurondash retransmissotildees

desnecessaacuterias muito longo baixa

reaccedilatildeo a perda de segmento

P Como estimar o RTT SampleRTT tempo medido

da transmissatildeo do segmento ateacute receber o ACKndash ignora retransmissotildees

SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquondash meacutedia de vaacuterias mediccedilotildees

recentes natildeo apenas SampleRTT atual

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 61

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui exponencialmente

raacutepido valor tiacutepico = 0125

Tempo de ida e volta e timeout do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 62

Amostras de RTTs estimados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 63

definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(geralmente = 025)

depois definir intervalo de timeout

Tempo de ida e volta e timeout do TCP

TimeoutIntervalinicial

= 1 sldquomargem de seguranccedilardquo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 64

TCP cenaacuterios de retransmissatildeo

Hosp A

Seq = 100 20 bytes dados

ACK = 100

tempoTimeout prematuro

Hosp B

Seq = 92 8 bytes dados

ACK = 120

Seq = 92 8 bytes dados

Seq

= 9

2 tim

eout

ACK = 120

Hosp A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio de ACK perdido

Hosp B

X

Seq = 92 8 bytes dados

ACK = 100

tempoS

eq =

92

timeo

ut

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 65

TCP cenaacuterios de retransmissatildeo

Host A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio ACK cumulativo

Host B

X

Seq = 100 20 bytes dados

ACK = 120

tempo

Transport Layer 3-66

TCP fast retransmit time-out period

often relatively long long delay before

resending lost packet detect lost

segments via duplicate ACKs sender often sends

many segments back-to-back

if segment is lost there will likely be many duplicate ACKs

if sender receives 3 ACKs for same data(ldquotriple duplicate ACKsrdquo) resend unacked segment with smallest seq

likely that unacked segment lost so donrsquot wait for timeout

TCP fast retransmit

Transport Layer 3-67

X

fast retransmit after sender receipt of triple duplicate ACK

Host BHost A

Seq=92 8 bytes of data

ACK=100

timeo

ut ACK=100

ACK=100

ACK=100

TCP fast retransmit

Seq=100 20 bytes of data

Seq=100 20 bytes of data

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 69

bull O nuacutemero de sequecircncia para um segmento eacute o nuacutemero do primeiro byte do segmento

bull O nuacutemero de reconhecimento que o hospedeiro A atribui a seu segmento eacute o nuacutemero de sequecircncia do proacuteximo byte que ele estiver aguardando do hospedeiro B

bull Como o TCP somente reconhece bytes ateacute o primeiro byte que estiver faltando na cadeia dizemos que o TCP provecirc reconhecimentos cumulativos

Nuacutemeros de sequecircncia e nuacutemeros de reconhecimento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 70

bull O TCP cria um serviccedilo de transferecircncia confiaacutevel de dados sobre o serviccedilo de melhor esforccedilo do IP

bull O serviccedilo de transferecircncia garante que a cadeia de bytes eacute idecircntica agrave cadeia de bytes enviada pelo sistema final que estaacute do outro lado da conexatildeo

bull Os procedimentos recomendados no [RFC 6298] para gerenciamento de temporizadores TCP utilizam apenas um uacutenico temporizador de retransmissatildeo

Transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 71

bull O TCP provecirc um serviccedilo de controle de fluxo agraves suas aplicaccedilotildees para eliminar a possibilidade de o remetente estourar o buffer do destinataacuterio

bull Controle de fluxo eacute um serviccedilo de compatibilizaccedilatildeo de velocidades

bull O TCP oferece serviccedilo de controle de fluxo fazendo que o remetente mantenha uma variaacutevel denominada janela de recepccedilatildeo

Controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 72

Regulaccedilatildeo da taxa de envio

Uma rede de transmissatildeo raacutepida eum receptor de baixa capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 73

Controle de fluxo TCP

lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo

serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora

processo da aplicaccedilatildeo pode ser lento na leitura do buffer

remetente natildeo estouraraacute buffer do destinataacuterio transmitindo muitos dados muito rapidamente

controle de fluxo

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 74

Controle de fluxo TCP como funciona

(suponha que destinataacuterio TCP descarte segmentos fora de ordem)

espaccedilo de buffer natildeo usado = rwnd (slide 48) = RcvBuffer-[LastByteRcvd -

LastByteRead]

destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento

remetente limita de bytes com ACK a rwndndash garante que buffer do

destinataacuterio natildeo estoura

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

rwndRcvBuffer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 75

Gerenciamento da conexatildeo TCP

lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados

inicializa variaacuteveis TCPndash s seqndash buffers informaccedilatildeo de

controle de fluxo (p e RcvWindow)

cliente inicia a conexatildeo Socket clientSocket = new

Socket(hostnameport ) servidor contactado pelo

cliente Socket connectionSocket =

welcomeSocketaccept()

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 76

Gerenciamento da conexatildeo TCP

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 77

fechando uma conexatildeo

cliente fecha socket clientSocketclose()

etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor

etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN

cliente

FIN

servidor

ACK

ACK

FIN

fecha

fecha

fechado

espe

ra

tem

poriz

ada

Gerenciamento da conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 79

Controle de congestionamento

Uma rede de transmissatildeo lenta eum receptor de alta capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 80

bull As causas e os custos do congestionamento

Cenaacuterio de congestionamento 1 duas conexotildees compartilhando um uacutenico roteador com nuacutemero infinito de buffers

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 81

bull As causas e os custos do congestionamentoCenaacuterio de congestionamento 1 vazatildeo e atraso em funccedilatildeo da taxa de envio do hospedeiro

ldquocustosrdquo do congestionamento Aumento de atrasos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 82

bull As causas e os custos do congestionamento

Cenaacuterio 2 dois hospedeiros (com retransmissotildees) e um roteador com buffers finitos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 83

a) Caso ideal (vazatildeo)

b) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda

c) retransmissatildeo do pacote adiado (natildeo perdido) torna maior (que

o caso perfeito ) para o mesmo

in

out

=

in

out

gt

in

out

ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do

pacote

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 84

bull As causas e os custos do congestionamento

Cenaacuterio 3 quatro remetentesroteadores com buffers finitos e trajetos com muacuteltiplos roteadores

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 85

outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer capacidade

de transmissatildeo anterior usada para esse pacote foi desperdiccedilada

Host A

Host B

o

u

t

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 86

Controle de congestionamento fim a fim

bull A camada de rede natildeo fornece nenhum suporte expliacutecito agrave camada de transporte com a finalidade de controle de congestionamento

Controle de congestionamento assistido pela rede

bull Os componentes da camada de rede (isto eacute roteadores) fornecem retroalimentaccedilatildeo especiacutefica de informaccedilotildees ao remetente a respeito do estado de congestionamento na rede Natildeo usual

Mecanismos de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 87

bull A abordagem adotada pelo TCP eacute obrigar cada remetente a limitar a taxa agrave qual enviam traacutefego para sua conexatildeo como uma funccedilatildeo do congestionamento de rede percebido

Se um remetente TCP perceber que haacute pouco congestionamento no caminho entre ele e o destinataacuterio aumentaraacute sua taxa de envio

Se perceber que haacute congestionamento reduziraacute sua taxa de

envio

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 88

bull Mas essa abordagem levanta trecircs questotildees

1 Como um remetente TCP limita a taxa pela qual envia traacutefego para sua conexatildeo

2 Como um remetente TCP percebe que haacute congestionamento entre ele e o destinataacuterio

3 Que algoritmo o remetente deve utilizar para modificar sua taxa de envio como uma funccedilatildeo do congestionamento fim a fim percebido

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 89

bull Partida lenta TCP

Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 90

1) Cwnd = 1 MSS inicialmente

2) Partida lenta a cada rodada redefine cwnd = cwnd 2

3) Perda de pacotes (esgotamento de temporizaccedilatildeo ndash problema grave) ==gt cwnd = 1 (Tahoe ou Reno)

4) Prevenccedilatildeo de congestionamento apoacutes atingir sstresh cwnd = cwnd + 1

5) Trecircs acks duplicados (buraco no ldquofluxordquo ndash problema brando) entra no estado prevenccedilatildeo de congestionamento e redefine cwnd = 1 (Tahoe) ou cwnd = sstresh (Reno)

6) Sstresh = cwnd2 quando satildeo detectados problemas

Quantidade de dados natildeo reconhecidas no TCP = min(CongWin RecWin)

Controle de congestionamento TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 91

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 93

bull Evoluccedilatildeo da janela de congestionamento do TCP (Tahoe e Reno ndash mais usual)

Recuperaccedilatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 94

Controle de congestionamento TCP

Partida lenta seguida por aumento aditivo no TCP Tahoe

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 95

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 96

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 97

bull O controle de congestionamento AIMD (Additive-increase Multiplicative-Decrease) faz surgir o comportamento semelhante a ldquodentes de serrardquo

bull httpsmediapearsoncmgcomawecs_kurose_compnetwork_7cwcontentinteractiveanimationstcp-congestionindexhtml

Controle de congestionamento no TCP retrospectiva

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 98

O que eacute throughput meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughput meacutedio 075 WRTT (75 WRTT)

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 99

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (Probabilidade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 100

bull Duas conexotildees TCP compartilhando um uacutenico enlace congestionado

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 101

bull Vazatildeo alcanccedilada pelas conexotildees TCP 1 e TCP 2bull Ambas conexotildees em algum momento estatildeo com vazatildeo Abull Ambas vatildeo aumentando a vazatildeo ateacute ocorrer perda ndash Bbull Sstresh cai pela metade e ambas migram para Chellip

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 102

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

ndash Consequecircncia

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Nova aplicaccedilatildeo pede 1 TCP obteacutem taxa de R10 Nova aplicaccedilatildeo pede 11 TCPs obteacutem R2

Equidade

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Multiplexingdemultiplexing
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Principles of reliable data transfer
  • Slide 20
  • Slide 21
  • Reliable data transfer getting started
  • Slide 23
  • Slide 24
  • Slide 25
  • rdt20 FSM specification
  • rdt20 operation with no errors
  • rdt20 error scenario
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • rdt30 in action
  • Slide 39
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Selective repeat dilemma
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • TCP fast retransmit
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
Page 31: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 32

bull O protocolo rdt21 usa tanto o reconhecimento positivo como negativo do remetente ao destinataacuterio pacote fora de ordem ==gt ACK pacote corrompido ==gt NAK

bull Podemos conseguir o mesmo efeito se ao inveacutes de enviarmos um NAK enviarmos um ACK do uacuteltimo corretamente recebido Ou seja ACK tambeacutem numerado

bull ACKs duplicados indicam ao remetente que o destinataacuterio natildeo recebeu corretamente o pacote seguinte agravequele do ACK duplo

bull rdt22 deve enviar o nuacutemero de sequecircncia no ACK

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt21-2

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 33

bull rdt22 remetente

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt22

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 34

bull rdt22 destinataacuterio

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt22

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 35

bull Duas preocupaccedilotildees adicionais devem ser tratadas pelo protocolo1 Como detectar perda de pacotes2 O que fazer quando haacute perdas

bull As teacutecnicas jaacute discutidas atendem a segunda questatildeobull E para a primeira questatildeobull Suponha que o remetente transmita um pacote e que esse

pacote ou seu ACK seja perdido Nenhuma resposta chegaraacute ao remetente Se o remetente natildeo quiser esperar ==gt retransmite o pacote

bull Mas quanto o remetente precisa esperar para ter certeza que algo foi perdido Esperar um RTT Eacute muito difiacutecil estimar o RTT quanto mais ter certeza

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 36

bull Aleacutem disso o ideal seria que o protocolo se recuperasse da perda assim que possiacutevel

bull Na praacutetica O remetente faz uma escolha ponderada de um RTT provaacutevel mas natildeo

garantido que a perda tivesse acontecido Se natildeo receber um ACK nesse periacuteodo retransmite o pacote

bull Se o pacote sofrer um atraso longo pode haver retransmissatildeo mesmo que o pacote ou ACK natildeo tenham sido perdidos Possibilidade de pacotes de dados duplicados

bull Para implementar um mecanismo de retransmissatildeo com base no tempo eacute necessaacuterio um temporizador de contagem regressiva Accedilotildees iniciar atender parar

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 37

bull rdt30 remetente

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Transport Layer 3-38

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

pkt1

ack1

ack0

ack0

(a) no loss

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(b) packet loss

pkt1X

loss

pkt1timeout

resend pkt1

rdt30 in action

Transport Layer 3-39

rdt30 in action

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(c) ACK loss

ack1X

loss

pkt1timeout

resend pkt1

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

send ack0rcv ack0

send pkt1

send pkt0rcv pkt0

pkt0

ack0

(d) premature timeout delayed ACK

pkt1timeout

resend pkt1

ack1

send ack1

send pkt0rcv ack1

pkt0

ack1

ack0

send pkt0rcv ack1 pkt0

rcv pkt0send ack0ack0

rcv pkt0

send ack0(detect duplicate)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 42

bull No coraccedilatildeo do problema do desempenho do rdt30 estaacute o fato de ele ser um protocolo do tipo pare e espere

bull Um protocolo pare e espere em operaccedilatildeo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 43

U remet =

0008

30008 = 000027

microseconds

L R RTT + L R

=

Desempenho do rdt30

rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso pacote 8000 bits

U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando

Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps protocolo de rede limita uso de recursos fiacutesicos Soluccedilatildeo

ndosmicrosseguR

Ldtrans 8

bps10

bits80009

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 44

Um protocolo com paralelismo em operaccedilatildeo

bull O ACK recebido eacute de que pacote

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 45

bull Envio com pare e espere

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 46

bull Envio com paralelismo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Aumento de utilizaccedilatildeopor fator de 3

U remet =

0024 30008

= 00008 microseconds

3 L R RTT + L R

=

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 47

bull Em um protocolo Go-Back-N (GBN) o remetente eacute autorizado a transmitir muacuteltiplos pacotes sem esperar por um reconhecimento

bull Poreacutem fica limitado a ter natildeo mais do que algum nuacutemero maacuteximo permitido N (tamanho da janela) de pacotes natildeo reconhecidos na ldquotubulaccedilatildeordquo

bull Visatildeo do remetente para os nuacutemeros de sequecircncia no protocolo Go-Back-N

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 48

bull Descriccedilatildeo da FSM estendida do remetente GBNbull Quem consegue descrever o funcionamento

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 49

bull Descriccedilatildeo da FSM estendida do destinataacuterio GBN

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 50

Go-Back-N (GBN) em operaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 51

bull Protocolos de repeticcedilatildeo seletiva (SR) evitam retransmissotildees desnecessaacuterias

bull Eles fazem o remetente retransmitir apenas os pacotes suspeitos de terem sido recebidos com erro no destinataacuterio

bull Essa retransmissatildeo individual soacute quando necessaacuteria exige que o destinataacuterio reconheccedila individualmente os pacotes recebidos de modo correto

Repeticcedilatildeo seletiva (SR)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 52

Repeticcedilatildeo seletiva (SR)

Transport Layer 3-53

Selective repeatdilemma

example seq rsquos 0 1 2 3 window size=3

receiver window(after receipt)

sender window(after receipt)

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2 pkt0

timeoutretransmit pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2XXX

will accept packetwith seq number 0

(b) oops

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

X

will accept packetwith seq number 0

0 1 2 3 0 1 2 pkt3

(a) no problem

receiver canrsquot see sender sidereceiver behavior identical in both casessomethingrsquos (very) wrong

receiver sees no difference in two scenarios

duplicate data accepted as new in (b)

Q what relationship between seq size and window size to avoid problem in (b)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 54

Resumo de mecanismos de transferecircncia confiaacutevel de dados e sua utilizaccedilatildeo

bull Soma de verificaccedilatildeo - Usada para detectar erros de bits em um pacote transmitido

bull Temporizador - Usado para controlar a temporizaccedilatildeoretransmissatildeo de um pacote possivelmente porque o pacote (ou seu ACK) foi perdido dentro do canal

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 55

bull Nuacutemero de sequecircncia - Usado para numeraccedilatildeo sequencial de segmentos de dados que transitam do remetente ao destinataacuterio Ou seja pode-se ter vaacuterios segmentos transitando simultaneamente no canal de comunicaccedilatildeo maximizando assim o uso desse canal

bull Reconhecimento - Usado pelo destinataacuterio para avisar o remetente que um pacote ou conjunto de pacotes foi recebido corretamente

bull Janela paralelismo - O remetente pode ficar restrito a enviar somente pacotes com nuacutemeros de sequecircncia que caiam dentro de uma determinada faixa

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 56

bull Uma conexatildeo TCP provecirc um serviccedilo full-duplex

bull A conexatildeo TCP eacute sempre ponto a ponto

bull Uma vez estabelecida uma conexatildeo TCP dois processos de aplicaccedilatildeo podem enviar dados um para o outro 3-way handshake jaacute estabelecendo o MSS

bull O TCP combina cada porccedilatildeo de dados do cliente com um cabeccedilalho TCP formando assim segmentos TCP

A conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 57

Estrutura do segmento TCPURG dados urgentes

(quase natildeo usado)

ACK ACKvaacutelido

PSH empurrar dados agora

RST SYN FINestab conexatildeo

soma de verificaccedilatildeo

da Internet ndash todo o segmento(como em UDP)

bytes destinataacuteriopode aceitar

contagem porbytes de dados(natildeo segmentos)

Opcional e de comprimentovariaacutevel utilizado paranegociar o MSS ou fatorde escala em redes dealta velocidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 58

TCP Estabelecendo e fechando conexotildees

3-way handshakeFinalizando

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 59

s sequecircncia e ACKs do TCP

Cenaacuterio preestabelecido telnet simples

rsquos de sequecircnciandash ldquonuacutemerordquo na cadeia de

bytes do 1o byte nos dados do segmento

ACKsndash seq do proacuteximo byte

esperado do outro ladondash ACK cumulativo

P como o destinataacuterio trata segmentos fora de ordem

ndash R TCP natildeo diz ndash a criteacuterio do implementador

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 60

Tempo de ida e volta e timeout do TCP

P Como definir o valor de timeout do TCP

maior que RTTndash mas RTT varia

muito curto timeout prematurondash retransmissotildees

desnecessaacuterias muito longo baixa

reaccedilatildeo a perda de segmento

P Como estimar o RTT SampleRTT tempo medido

da transmissatildeo do segmento ateacute receber o ACKndash ignora retransmissotildees

SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquondash meacutedia de vaacuterias mediccedilotildees

recentes natildeo apenas SampleRTT atual

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 61

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui exponencialmente

raacutepido valor tiacutepico = 0125

Tempo de ida e volta e timeout do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 62

Amostras de RTTs estimados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 63

definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(geralmente = 025)

depois definir intervalo de timeout

Tempo de ida e volta e timeout do TCP

TimeoutIntervalinicial

= 1 sldquomargem de seguranccedilardquo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 64

TCP cenaacuterios de retransmissatildeo

Hosp A

Seq = 100 20 bytes dados

ACK = 100

tempoTimeout prematuro

Hosp B

Seq = 92 8 bytes dados

ACK = 120

Seq = 92 8 bytes dados

Seq

= 9

2 tim

eout

ACK = 120

Hosp A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio de ACK perdido

Hosp B

X

Seq = 92 8 bytes dados

ACK = 100

tempoS

eq =

92

timeo

ut

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 65

TCP cenaacuterios de retransmissatildeo

Host A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio ACK cumulativo

Host B

X

Seq = 100 20 bytes dados

ACK = 120

tempo

Transport Layer 3-66

TCP fast retransmit time-out period

often relatively long long delay before

resending lost packet detect lost

segments via duplicate ACKs sender often sends

many segments back-to-back

if segment is lost there will likely be many duplicate ACKs

if sender receives 3 ACKs for same data(ldquotriple duplicate ACKsrdquo) resend unacked segment with smallest seq

likely that unacked segment lost so donrsquot wait for timeout

TCP fast retransmit

Transport Layer 3-67

X

fast retransmit after sender receipt of triple duplicate ACK

Host BHost A

Seq=92 8 bytes of data

ACK=100

timeo

ut ACK=100

ACK=100

ACK=100

TCP fast retransmit

Seq=100 20 bytes of data

Seq=100 20 bytes of data

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 69

bull O nuacutemero de sequecircncia para um segmento eacute o nuacutemero do primeiro byte do segmento

bull O nuacutemero de reconhecimento que o hospedeiro A atribui a seu segmento eacute o nuacutemero de sequecircncia do proacuteximo byte que ele estiver aguardando do hospedeiro B

bull Como o TCP somente reconhece bytes ateacute o primeiro byte que estiver faltando na cadeia dizemos que o TCP provecirc reconhecimentos cumulativos

Nuacutemeros de sequecircncia e nuacutemeros de reconhecimento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 70

bull O TCP cria um serviccedilo de transferecircncia confiaacutevel de dados sobre o serviccedilo de melhor esforccedilo do IP

bull O serviccedilo de transferecircncia garante que a cadeia de bytes eacute idecircntica agrave cadeia de bytes enviada pelo sistema final que estaacute do outro lado da conexatildeo

bull Os procedimentos recomendados no [RFC 6298] para gerenciamento de temporizadores TCP utilizam apenas um uacutenico temporizador de retransmissatildeo

Transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 71

bull O TCP provecirc um serviccedilo de controle de fluxo agraves suas aplicaccedilotildees para eliminar a possibilidade de o remetente estourar o buffer do destinataacuterio

bull Controle de fluxo eacute um serviccedilo de compatibilizaccedilatildeo de velocidades

bull O TCP oferece serviccedilo de controle de fluxo fazendo que o remetente mantenha uma variaacutevel denominada janela de recepccedilatildeo

Controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 72

Regulaccedilatildeo da taxa de envio

Uma rede de transmissatildeo raacutepida eum receptor de baixa capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 73

Controle de fluxo TCP

lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo

serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora

processo da aplicaccedilatildeo pode ser lento na leitura do buffer

remetente natildeo estouraraacute buffer do destinataacuterio transmitindo muitos dados muito rapidamente

controle de fluxo

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 74

Controle de fluxo TCP como funciona

(suponha que destinataacuterio TCP descarte segmentos fora de ordem)

espaccedilo de buffer natildeo usado = rwnd (slide 48) = RcvBuffer-[LastByteRcvd -

LastByteRead]

destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento

remetente limita de bytes com ACK a rwndndash garante que buffer do

destinataacuterio natildeo estoura

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

rwndRcvBuffer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 75

Gerenciamento da conexatildeo TCP

lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados

inicializa variaacuteveis TCPndash s seqndash buffers informaccedilatildeo de

controle de fluxo (p e RcvWindow)

cliente inicia a conexatildeo Socket clientSocket = new

Socket(hostnameport ) servidor contactado pelo

cliente Socket connectionSocket =

welcomeSocketaccept()

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 76

Gerenciamento da conexatildeo TCP

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 77

fechando uma conexatildeo

cliente fecha socket clientSocketclose()

etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor

etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN

cliente

FIN

servidor

ACK

ACK

FIN

fecha

fecha

fechado

espe

ra

tem

poriz

ada

Gerenciamento da conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 79

Controle de congestionamento

Uma rede de transmissatildeo lenta eum receptor de alta capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 80

bull As causas e os custos do congestionamento

Cenaacuterio de congestionamento 1 duas conexotildees compartilhando um uacutenico roteador com nuacutemero infinito de buffers

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 81

bull As causas e os custos do congestionamentoCenaacuterio de congestionamento 1 vazatildeo e atraso em funccedilatildeo da taxa de envio do hospedeiro

ldquocustosrdquo do congestionamento Aumento de atrasos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 82

bull As causas e os custos do congestionamento

Cenaacuterio 2 dois hospedeiros (com retransmissotildees) e um roteador com buffers finitos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 83

a) Caso ideal (vazatildeo)

b) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda

c) retransmissatildeo do pacote adiado (natildeo perdido) torna maior (que

o caso perfeito ) para o mesmo

in

out

=

in

out

gt

in

out

ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do

pacote

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 84

bull As causas e os custos do congestionamento

Cenaacuterio 3 quatro remetentesroteadores com buffers finitos e trajetos com muacuteltiplos roteadores

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 85

outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer capacidade

de transmissatildeo anterior usada para esse pacote foi desperdiccedilada

Host A

Host B

o

u

t

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 86

Controle de congestionamento fim a fim

bull A camada de rede natildeo fornece nenhum suporte expliacutecito agrave camada de transporte com a finalidade de controle de congestionamento

Controle de congestionamento assistido pela rede

bull Os componentes da camada de rede (isto eacute roteadores) fornecem retroalimentaccedilatildeo especiacutefica de informaccedilotildees ao remetente a respeito do estado de congestionamento na rede Natildeo usual

Mecanismos de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 87

bull A abordagem adotada pelo TCP eacute obrigar cada remetente a limitar a taxa agrave qual enviam traacutefego para sua conexatildeo como uma funccedilatildeo do congestionamento de rede percebido

Se um remetente TCP perceber que haacute pouco congestionamento no caminho entre ele e o destinataacuterio aumentaraacute sua taxa de envio

Se perceber que haacute congestionamento reduziraacute sua taxa de

envio

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 88

bull Mas essa abordagem levanta trecircs questotildees

1 Como um remetente TCP limita a taxa pela qual envia traacutefego para sua conexatildeo

2 Como um remetente TCP percebe que haacute congestionamento entre ele e o destinataacuterio

3 Que algoritmo o remetente deve utilizar para modificar sua taxa de envio como uma funccedilatildeo do congestionamento fim a fim percebido

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 89

bull Partida lenta TCP

Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 90

1) Cwnd = 1 MSS inicialmente

2) Partida lenta a cada rodada redefine cwnd = cwnd 2

3) Perda de pacotes (esgotamento de temporizaccedilatildeo ndash problema grave) ==gt cwnd = 1 (Tahoe ou Reno)

4) Prevenccedilatildeo de congestionamento apoacutes atingir sstresh cwnd = cwnd + 1

5) Trecircs acks duplicados (buraco no ldquofluxordquo ndash problema brando) entra no estado prevenccedilatildeo de congestionamento e redefine cwnd = 1 (Tahoe) ou cwnd = sstresh (Reno)

6) Sstresh = cwnd2 quando satildeo detectados problemas

Quantidade de dados natildeo reconhecidas no TCP = min(CongWin RecWin)

Controle de congestionamento TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 91

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 93

bull Evoluccedilatildeo da janela de congestionamento do TCP (Tahoe e Reno ndash mais usual)

Recuperaccedilatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 94

Controle de congestionamento TCP

Partida lenta seguida por aumento aditivo no TCP Tahoe

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 95

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 96

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 97

bull O controle de congestionamento AIMD (Additive-increase Multiplicative-Decrease) faz surgir o comportamento semelhante a ldquodentes de serrardquo

bull httpsmediapearsoncmgcomawecs_kurose_compnetwork_7cwcontentinteractiveanimationstcp-congestionindexhtml

Controle de congestionamento no TCP retrospectiva

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 98

O que eacute throughput meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughput meacutedio 075 WRTT (75 WRTT)

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 99

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (Probabilidade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 100

bull Duas conexotildees TCP compartilhando um uacutenico enlace congestionado

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 101

bull Vazatildeo alcanccedilada pelas conexotildees TCP 1 e TCP 2bull Ambas conexotildees em algum momento estatildeo com vazatildeo Abull Ambas vatildeo aumentando a vazatildeo ateacute ocorrer perda ndash Bbull Sstresh cai pela metade e ambas migram para Chellip

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 102

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

ndash Consequecircncia

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Nova aplicaccedilatildeo pede 1 TCP obteacutem taxa de R10 Nova aplicaccedilatildeo pede 11 TCPs obteacutem R2

Equidade

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Multiplexingdemultiplexing
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Principles of reliable data transfer
  • Slide 20
  • Slide 21
  • Reliable data transfer getting started
  • Slide 23
  • Slide 24
  • Slide 25
  • rdt20 FSM specification
  • rdt20 operation with no errors
  • rdt20 error scenario
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • rdt30 in action
  • Slide 39
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Selective repeat dilemma
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • TCP fast retransmit
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
Page 32: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 33

bull rdt22 remetente

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt22

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 34

bull rdt22 destinataacuterio

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt22

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 35

bull Duas preocupaccedilotildees adicionais devem ser tratadas pelo protocolo1 Como detectar perda de pacotes2 O que fazer quando haacute perdas

bull As teacutecnicas jaacute discutidas atendem a segunda questatildeobull E para a primeira questatildeobull Suponha que o remetente transmita um pacote e que esse

pacote ou seu ACK seja perdido Nenhuma resposta chegaraacute ao remetente Se o remetente natildeo quiser esperar ==gt retransmite o pacote

bull Mas quanto o remetente precisa esperar para ter certeza que algo foi perdido Esperar um RTT Eacute muito difiacutecil estimar o RTT quanto mais ter certeza

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 36

bull Aleacutem disso o ideal seria que o protocolo se recuperasse da perda assim que possiacutevel

bull Na praacutetica O remetente faz uma escolha ponderada de um RTT provaacutevel mas natildeo

garantido que a perda tivesse acontecido Se natildeo receber um ACK nesse periacuteodo retransmite o pacote

bull Se o pacote sofrer um atraso longo pode haver retransmissatildeo mesmo que o pacote ou ACK natildeo tenham sido perdidos Possibilidade de pacotes de dados duplicados

bull Para implementar um mecanismo de retransmissatildeo com base no tempo eacute necessaacuterio um temporizador de contagem regressiva Accedilotildees iniciar atender parar

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 37

bull rdt30 remetente

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Transport Layer 3-38

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

pkt1

ack1

ack0

ack0

(a) no loss

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(b) packet loss

pkt1X

loss

pkt1timeout

resend pkt1

rdt30 in action

Transport Layer 3-39

rdt30 in action

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(c) ACK loss

ack1X

loss

pkt1timeout

resend pkt1

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

send ack0rcv ack0

send pkt1

send pkt0rcv pkt0

pkt0

ack0

(d) premature timeout delayed ACK

pkt1timeout

resend pkt1

ack1

send ack1

send pkt0rcv ack1

pkt0

ack1

ack0

send pkt0rcv ack1 pkt0

rcv pkt0send ack0ack0

rcv pkt0

send ack0(detect duplicate)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 42

bull No coraccedilatildeo do problema do desempenho do rdt30 estaacute o fato de ele ser um protocolo do tipo pare e espere

bull Um protocolo pare e espere em operaccedilatildeo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 43

U remet =

0008

30008 = 000027

microseconds

L R RTT + L R

=

Desempenho do rdt30

rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso pacote 8000 bits

U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando

Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps protocolo de rede limita uso de recursos fiacutesicos Soluccedilatildeo

ndosmicrosseguR

Ldtrans 8

bps10

bits80009

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 44

Um protocolo com paralelismo em operaccedilatildeo

bull O ACK recebido eacute de que pacote

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 45

bull Envio com pare e espere

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 46

bull Envio com paralelismo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Aumento de utilizaccedilatildeopor fator de 3

U remet =

0024 30008

= 00008 microseconds

3 L R RTT + L R

=

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 47

bull Em um protocolo Go-Back-N (GBN) o remetente eacute autorizado a transmitir muacuteltiplos pacotes sem esperar por um reconhecimento

bull Poreacutem fica limitado a ter natildeo mais do que algum nuacutemero maacuteximo permitido N (tamanho da janela) de pacotes natildeo reconhecidos na ldquotubulaccedilatildeordquo

bull Visatildeo do remetente para os nuacutemeros de sequecircncia no protocolo Go-Back-N

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 48

bull Descriccedilatildeo da FSM estendida do remetente GBNbull Quem consegue descrever o funcionamento

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 49

bull Descriccedilatildeo da FSM estendida do destinataacuterio GBN

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 50

Go-Back-N (GBN) em operaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 51

bull Protocolos de repeticcedilatildeo seletiva (SR) evitam retransmissotildees desnecessaacuterias

bull Eles fazem o remetente retransmitir apenas os pacotes suspeitos de terem sido recebidos com erro no destinataacuterio

bull Essa retransmissatildeo individual soacute quando necessaacuteria exige que o destinataacuterio reconheccedila individualmente os pacotes recebidos de modo correto

Repeticcedilatildeo seletiva (SR)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 52

Repeticcedilatildeo seletiva (SR)

Transport Layer 3-53

Selective repeatdilemma

example seq rsquos 0 1 2 3 window size=3

receiver window(after receipt)

sender window(after receipt)

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2 pkt0

timeoutretransmit pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2XXX

will accept packetwith seq number 0

(b) oops

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

X

will accept packetwith seq number 0

0 1 2 3 0 1 2 pkt3

(a) no problem

receiver canrsquot see sender sidereceiver behavior identical in both casessomethingrsquos (very) wrong

receiver sees no difference in two scenarios

duplicate data accepted as new in (b)

Q what relationship between seq size and window size to avoid problem in (b)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 54

Resumo de mecanismos de transferecircncia confiaacutevel de dados e sua utilizaccedilatildeo

bull Soma de verificaccedilatildeo - Usada para detectar erros de bits em um pacote transmitido

bull Temporizador - Usado para controlar a temporizaccedilatildeoretransmissatildeo de um pacote possivelmente porque o pacote (ou seu ACK) foi perdido dentro do canal

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 55

bull Nuacutemero de sequecircncia - Usado para numeraccedilatildeo sequencial de segmentos de dados que transitam do remetente ao destinataacuterio Ou seja pode-se ter vaacuterios segmentos transitando simultaneamente no canal de comunicaccedilatildeo maximizando assim o uso desse canal

bull Reconhecimento - Usado pelo destinataacuterio para avisar o remetente que um pacote ou conjunto de pacotes foi recebido corretamente

bull Janela paralelismo - O remetente pode ficar restrito a enviar somente pacotes com nuacutemeros de sequecircncia que caiam dentro de uma determinada faixa

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 56

bull Uma conexatildeo TCP provecirc um serviccedilo full-duplex

bull A conexatildeo TCP eacute sempre ponto a ponto

bull Uma vez estabelecida uma conexatildeo TCP dois processos de aplicaccedilatildeo podem enviar dados um para o outro 3-way handshake jaacute estabelecendo o MSS

bull O TCP combina cada porccedilatildeo de dados do cliente com um cabeccedilalho TCP formando assim segmentos TCP

A conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 57

Estrutura do segmento TCPURG dados urgentes

(quase natildeo usado)

ACK ACKvaacutelido

PSH empurrar dados agora

RST SYN FINestab conexatildeo

soma de verificaccedilatildeo

da Internet ndash todo o segmento(como em UDP)

bytes destinataacuteriopode aceitar

contagem porbytes de dados(natildeo segmentos)

Opcional e de comprimentovariaacutevel utilizado paranegociar o MSS ou fatorde escala em redes dealta velocidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 58

TCP Estabelecendo e fechando conexotildees

3-way handshakeFinalizando

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 59

s sequecircncia e ACKs do TCP

Cenaacuterio preestabelecido telnet simples

rsquos de sequecircnciandash ldquonuacutemerordquo na cadeia de

bytes do 1o byte nos dados do segmento

ACKsndash seq do proacuteximo byte

esperado do outro ladondash ACK cumulativo

P como o destinataacuterio trata segmentos fora de ordem

ndash R TCP natildeo diz ndash a criteacuterio do implementador

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 60

Tempo de ida e volta e timeout do TCP

P Como definir o valor de timeout do TCP

maior que RTTndash mas RTT varia

muito curto timeout prematurondash retransmissotildees

desnecessaacuterias muito longo baixa

reaccedilatildeo a perda de segmento

P Como estimar o RTT SampleRTT tempo medido

da transmissatildeo do segmento ateacute receber o ACKndash ignora retransmissotildees

SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquondash meacutedia de vaacuterias mediccedilotildees

recentes natildeo apenas SampleRTT atual

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 61

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui exponencialmente

raacutepido valor tiacutepico = 0125

Tempo de ida e volta e timeout do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 62

Amostras de RTTs estimados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 63

definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(geralmente = 025)

depois definir intervalo de timeout

Tempo de ida e volta e timeout do TCP

TimeoutIntervalinicial

= 1 sldquomargem de seguranccedilardquo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 64

TCP cenaacuterios de retransmissatildeo

Hosp A

Seq = 100 20 bytes dados

ACK = 100

tempoTimeout prematuro

Hosp B

Seq = 92 8 bytes dados

ACK = 120

Seq = 92 8 bytes dados

Seq

= 9

2 tim

eout

ACK = 120

Hosp A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio de ACK perdido

Hosp B

X

Seq = 92 8 bytes dados

ACK = 100

tempoS

eq =

92

timeo

ut

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 65

TCP cenaacuterios de retransmissatildeo

Host A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio ACK cumulativo

Host B

X

Seq = 100 20 bytes dados

ACK = 120

tempo

Transport Layer 3-66

TCP fast retransmit time-out period

often relatively long long delay before

resending lost packet detect lost

segments via duplicate ACKs sender often sends

many segments back-to-back

if segment is lost there will likely be many duplicate ACKs

if sender receives 3 ACKs for same data(ldquotriple duplicate ACKsrdquo) resend unacked segment with smallest seq

likely that unacked segment lost so donrsquot wait for timeout

TCP fast retransmit

Transport Layer 3-67

X

fast retransmit after sender receipt of triple duplicate ACK

Host BHost A

Seq=92 8 bytes of data

ACK=100

timeo

ut ACK=100

ACK=100

ACK=100

TCP fast retransmit

Seq=100 20 bytes of data

Seq=100 20 bytes of data

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 69

bull O nuacutemero de sequecircncia para um segmento eacute o nuacutemero do primeiro byte do segmento

bull O nuacutemero de reconhecimento que o hospedeiro A atribui a seu segmento eacute o nuacutemero de sequecircncia do proacuteximo byte que ele estiver aguardando do hospedeiro B

bull Como o TCP somente reconhece bytes ateacute o primeiro byte que estiver faltando na cadeia dizemos que o TCP provecirc reconhecimentos cumulativos

Nuacutemeros de sequecircncia e nuacutemeros de reconhecimento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 70

bull O TCP cria um serviccedilo de transferecircncia confiaacutevel de dados sobre o serviccedilo de melhor esforccedilo do IP

bull O serviccedilo de transferecircncia garante que a cadeia de bytes eacute idecircntica agrave cadeia de bytes enviada pelo sistema final que estaacute do outro lado da conexatildeo

bull Os procedimentos recomendados no [RFC 6298] para gerenciamento de temporizadores TCP utilizam apenas um uacutenico temporizador de retransmissatildeo

Transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 71

bull O TCP provecirc um serviccedilo de controle de fluxo agraves suas aplicaccedilotildees para eliminar a possibilidade de o remetente estourar o buffer do destinataacuterio

bull Controle de fluxo eacute um serviccedilo de compatibilizaccedilatildeo de velocidades

bull O TCP oferece serviccedilo de controle de fluxo fazendo que o remetente mantenha uma variaacutevel denominada janela de recepccedilatildeo

Controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 72

Regulaccedilatildeo da taxa de envio

Uma rede de transmissatildeo raacutepida eum receptor de baixa capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 73

Controle de fluxo TCP

lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo

serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora

processo da aplicaccedilatildeo pode ser lento na leitura do buffer

remetente natildeo estouraraacute buffer do destinataacuterio transmitindo muitos dados muito rapidamente

controle de fluxo

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 74

Controle de fluxo TCP como funciona

(suponha que destinataacuterio TCP descarte segmentos fora de ordem)

espaccedilo de buffer natildeo usado = rwnd (slide 48) = RcvBuffer-[LastByteRcvd -

LastByteRead]

destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento

remetente limita de bytes com ACK a rwndndash garante que buffer do

destinataacuterio natildeo estoura

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

rwndRcvBuffer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 75

Gerenciamento da conexatildeo TCP

lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados

inicializa variaacuteveis TCPndash s seqndash buffers informaccedilatildeo de

controle de fluxo (p e RcvWindow)

cliente inicia a conexatildeo Socket clientSocket = new

Socket(hostnameport ) servidor contactado pelo

cliente Socket connectionSocket =

welcomeSocketaccept()

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 76

Gerenciamento da conexatildeo TCP

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 77

fechando uma conexatildeo

cliente fecha socket clientSocketclose()

etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor

etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN

cliente

FIN

servidor

ACK

ACK

FIN

fecha

fecha

fechado

espe

ra

tem

poriz

ada

Gerenciamento da conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 79

Controle de congestionamento

Uma rede de transmissatildeo lenta eum receptor de alta capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 80

bull As causas e os custos do congestionamento

Cenaacuterio de congestionamento 1 duas conexotildees compartilhando um uacutenico roteador com nuacutemero infinito de buffers

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 81

bull As causas e os custos do congestionamentoCenaacuterio de congestionamento 1 vazatildeo e atraso em funccedilatildeo da taxa de envio do hospedeiro

ldquocustosrdquo do congestionamento Aumento de atrasos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 82

bull As causas e os custos do congestionamento

Cenaacuterio 2 dois hospedeiros (com retransmissotildees) e um roteador com buffers finitos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 83

a) Caso ideal (vazatildeo)

b) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda

c) retransmissatildeo do pacote adiado (natildeo perdido) torna maior (que

o caso perfeito ) para o mesmo

in

out

=

in

out

gt

in

out

ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do

pacote

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 84

bull As causas e os custos do congestionamento

Cenaacuterio 3 quatro remetentesroteadores com buffers finitos e trajetos com muacuteltiplos roteadores

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 85

outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer capacidade

de transmissatildeo anterior usada para esse pacote foi desperdiccedilada

Host A

Host B

o

u

t

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 86

Controle de congestionamento fim a fim

bull A camada de rede natildeo fornece nenhum suporte expliacutecito agrave camada de transporte com a finalidade de controle de congestionamento

Controle de congestionamento assistido pela rede

bull Os componentes da camada de rede (isto eacute roteadores) fornecem retroalimentaccedilatildeo especiacutefica de informaccedilotildees ao remetente a respeito do estado de congestionamento na rede Natildeo usual

Mecanismos de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 87

bull A abordagem adotada pelo TCP eacute obrigar cada remetente a limitar a taxa agrave qual enviam traacutefego para sua conexatildeo como uma funccedilatildeo do congestionamento de rede percebido

Se um remetente TCP perceber que haacute pouco congestionamento no caminho entre ele e o destinataacuterio aumentaraacute sua taxa de envio

Se perceber que haacute congestionamento reduziraacute sua taxa de

envio

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 88

bull Mas essa abordagem levanta trecircs questotildees

1 Como um remetente TCP limita a taxa pela qual envia traacutefego para sua conexatildeo

2 Como um remetente TCP percebe que haacute congestionamento entre ele e o destinataacuterio

3 Que algoritmo o remetente deve utilizar para modificar sua taxa de envio como uma funccedilatildeo do congestionamento fim a fim percebido

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 89

bull Partida lenta TCP

Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 90

1) Cwnd = 1 MSS inicialmente

2) Partida lenta a cada rodada redefine cwnd = cwnd 2

3) Perda de pacotes (esgotamento de temporizaccedilatildeo ndash problema grave) ==gt cwnd = 1 (Tahoe ou Reno)

4) Prevenccedilatildeo de congestionamento apoacutes atingir sstresh cwnd = cwnd + 1

5) Trecircs acks duplicados (buraco no ldquofluxordquo ndash problema brando) entra no estado prevenccedilatildeo de congestionamento e redefine cwnd = 1 (Tahoe) ou cwnd = sstresh (Reno)

6) Sstresh = cwnd2 quando satildeo detectados problemas

Quantidade de dados natildeo reconhecidas no TCP = min(CongWin RecWin)

Controle de congestionamento TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 91

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 93

bull Evoluccedilatildeo da janela de congestionamento do TCP (Tahoe e Reno ndash mais usual)

Recuperaccedilatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 94

Controle de congestionamento TCP

Partida lenta seguida por aumento aditivo no TCP Tahoe

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 95

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 96

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 97

bull O controle de congestionamento AIMD (Additive-increase Multiplicative-Decrease) faz surgir o comportamento semelhante a ldquodentes de serrardquo

bull httpsmediapearsoncmgcomawecs_kurose_compnetwork_7cwcontentinteractiveanimationstcp-congestionindexhtml

Controle de congestionamento no TCP retrospectiva

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 98

O que eacute throughput meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughput meacutedio 075 WRTT (75 WRTT)

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 99

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (Probabilidade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 100

bull Duas conexotildees TCP compartilhando um uacutenico enlace congestionado

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 101

bull Vazatildeo alcanccedilada pelas conexotildees TCP 1 e TCP 2bull Ambas conexotildees em algum momento estatildeo com vazatildeo Abull Ambas vatildeo aumentando a vazatildeo ateacute ocorrer perda ndash Bbull Sstresh cai pela metade e ambas migram para Chellip

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 102

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

ndash Consequecircncia

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Nova aplicaccedilatildeo pede 1 TCP obteacutem taxa de R10 Nova aplicaccedilatildeo pede 11 TCPs obteacutem R2

Equidade

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Multiplexingdemultiplexing
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Principles of reliable data transfer
  • Slide 20
  • Slide 21
  • Reliable data transfer getting started
  • Slide 23
  • Slide 24
  • Slide 25
  • rdt20 FSM specification
  • rdt20 operation with no errors
  • rdt20 error scenario
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • rdt30 in action
  • Slide 39
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Selective repeat dilemma
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • TCP fast retransmit
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
Page 33: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 34

bull rdt22 destinataacuterio

Transferecircncia confiaacutevel de dados sobre um canal com erros de bits rdt22

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 35

bull Duas preocupaccedilotildees adicionais devem ser tratadas pelo protocolo1 Como detectar perda de pacotes2 O que fazer quando haacute perdas

bull As teacutecnicas jaacute discutidas atendem a segunda questatildeobull E para a primeira questatildeobull Suponha que o remetente transmita um pacote e que esse

pacote ou seu ACK seja perdido Nenhuma resposta chegaraacute ao remetente Se o remetente natildeo quiser esperar ==gt retransmite o pacote

bull Mas quanto o remetente precisa esperar para ter certeza que algo foi perdido Esperar um RTT Eacute muito difiacutecil estimar o RTT quanto mais ter certeza

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 36

bull Aleacutem disso o ideal seria que o protocolo se recuperasse da perda assim que possiacutevel

bull Na praacutetica O remetente faz uma escolha ponderada de um RTT provaacutevel mas natildeo

garantido que a perda tivesse acontecido Se natildeo receber um ACK nesse periacuteodo retransmite o pacote

bull Se o pacote sofrer um atraso longo pode haver retransmissatildeo mesmo que o pacote ou ACK natildeo tenham sido perdidos Possibilidade de pacotes de dados duplicados

bull Para implementar um mecanismo de retransmissatildeo com base no tempo eacute necessaacuterio um temporizador de contagem regressiva Accedilotildees iniciar atender parar

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 37

bull rdt30 remetente

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Transport Layer 3-38

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

pkt1

ack1

ack0

ack0

(a) no loss

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(b) packet loss

pkt1X

loss

pkt1timeout

resend pkt1

rdt30 in action

Transport Layer 3-39

rdt30 in action

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(c) ACK loss

ack1X

loss

pkt1timeout

resend pkt1

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

send ack0rcv ack0

send pkt1

send pkt0rcv pkt0

pkt0

ack0

(d) premature timeout delayed ACK

pkt1timeout

resend pkt1

ack1

send ack1

send pkt0rcv ack1

pkt0

ack1

ack0

send pkt0rcv ack1 pkt0

rcv pkt0send ack0ack0

rcv pkt0

send ack0(detect duplicate)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 42

bull No coraccedilatildeo do problema do desempenho do rdt30 estaacute o fato de ele ser um protocolo do tipo pare e espere

bull Um protocolo pare e espere em operaccedilatildeo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 43

U remet =

0008

30008 = 000027

microseconds

L R RTT + L R

=

Desempenho do rdt30

rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso pacote 8000 bits

U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando

Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps protocolo de rede limita uso de recursos fiacutesicos Soluccedilatildeo

ndosmicrosseguR

Ldtrans 8

bps10

bits80009

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 44

Um protocolo com paralelismo em operaccedilatildeo

bull O ACK recebido eacute de que pacote

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 45

bull Envio com pare e espere

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 46

bull Envio com paralelismo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Aumento de utilizaccedilatildeopor fator de 3

U remet =

0024 30008

= 00008 microseconds

3 L R RTT + L R

=

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 47

bull Em um protocolo Go-Back-N (GBN) o remetente eacute autorizado a transmitir muacuteltiplos pacotes sem esperar por um reconhecimento

bull Poreacutem fica limitado a ter natildeo mais do que algum nuacutemero maacuteximo permitido N (tamanho da janela) de pacotes natildeo reconhecidos na ldquotubulaccedilatildeordquo

bull Visatildeo do remetente para os nuacutemeros de sequecircncia no protocolo Go-Back-N

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 48

bull Descriccedilatildeo da FSM estendida do remetente GBNbull Quem consegue descrever o funcionamento

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 49

bull Descriccedilatildeo da FSM estendida do destinataacuterio GBN

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 50

Go-Back-N (GBN) em operaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 51

bull Protocolos de repeticcedilatildeo seletiva (SR) evitam retransmissotildees desnecessaacuterias

bull Eles fazem o remetente retransmitir apenas os pacotes suspeitos de terem sido recebidos com erro no destinataacuterio

bull Essa retransmissatildeo individual soacute quando necessaacuteria exige que o destinataacuterio reconheccedila individualmente os pacotes recebidos de modo correto

Repeticcedilatildeo seletiva (SR)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 52

Repeticcedilatildeo seletiva (SR)

Transport Layer 3-53

Selective repeatdilemma

example seq rsquos 0 1 2 3 window size=3

receiver window(after receipt)

sender window(after receipt)

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2 pkt0

timeoutretransmit pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2XXX

will accept packetwith seq number 0

(b) oops

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

X

will accept packetwith seq number 0

0 1 2 3 0 1 2 pkt3

(a) no problem

receiver canrsquot see sender sidereceiver behavior identical in both casessomethingrsquos (very) wrong

receiver sees no difference in two scenarios

duplicate data accepted as new in (b)

Q what relationship between seq size and window size to avoid problem in (b)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 54

Resumo de mecanismos de transferecircncia confiaacutevel de dados e sua utilizaccedilatildeo

bull Soma de verificaccedilatildeo - Usada para detectar erros de bits em um pacote transmitido

bull Temporizador - Usado para controlar a temporizaccedilatildeoretransmissatildeo de um pacote possivelmente porque o pacote (ou seu ACK) foi perdido dentro do canal

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 55

bull Nuacutemero de sequecircncia - Usado para numeraccedilatildeo sequencial de segmentos de dados que transitam do remetente ao destinataacuterio Ou seja pode-se ter vaacuterios segmentos transitando simultaneamente no canal de comunicaccedilatildeo maximizando assim o uso desse canal

bull Reconhecimento - Usado pelo destinataacuterio para avisar o remetente que um pacote ou conjunto de pacotes foi recebido corretamente

bull Janela paralelismo - O remetente pode ficar restrito a enviar somente pacotes com nuacutemeros de sequecircncia que caiam dentro de uma determinada faixa

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 56

bull Uma conexatildeo TCP provecirc um serviccedilo full-duplex

bull A conexatildeo TCP eacute sempre ponto a ponto

bull Uma vez estabelecida uma conexatildeo TCP dois processos de aplicaccedilatildeo podem enviar dados um para o outro 3-way handshake jaacute estabelecendo o MSS

bull O TCP combina cada porccedilatildeo de dados do cliente com um cabeccedilalho TCP formando assim segmentos TCP

A conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 57

Estrutura do segmento TCPURG dados urgentes

(quase natildeo usado)

ACK ACKvaacutelido

PSH empurrar dados agora

RST SYN FINestab conexatildeo

soma de verificaccedilatildeo

da Internet ndash todo o segmento(como em UDP)

bytes destinataacuteriopode aceitar

contagem porbytes de dados(natildeo segmentos)

Opcional e de comprimentovariaacutevel utilizado paranegociar o MSS ou fatorde escala em redes dealta velocidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 58

TCP Estabelecendo e fechando conexotildees

3-way handshakeFinalizando

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 59

s sequecircncia e ACKs do TCP

Cenaacuterio preestabelecido telnet simples

rsquos de sequecircnciandash ldquonuacutemerordquo na cadeia de

bytes do 1o byte nos dados do segmento

ACKsndash seq do proacuteximo byte

esperado do outro ladondash ACK cumulativo

P como o destinataacuterio trata segmentos fora de ordem

ndash R TCP natildeo diz ndash a criteacuterio do implementador

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 60

Tempo de ida e volta e timeout do TCP

P Como definir o valor de timeout do TCP

maior que RTTndash mas RTT varia

muito curto timeout prematurondash retransmissotildees

desnecessaacuterias muito longo baixa

reaccedilatildeo a perda de segmento

P Como estimar o RTT SampleRTT tempo medido

da transmissatildeo do segmento ateacute receber o ACKndash ignora retransmissotildees

SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquondash meacutedia de vaacuterias mediccedilotildees

recentes natildeo apenas SampleRTT atual

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 61

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui exponencialmente

raacutepido valor tiacutepico = 0125

Tempo de ida e volta e timeout do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 62

Amostras de RTTs estimados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 63

definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(geralmente = 025)

depois definir intervalo de timeout

Tempo de ida e volta e timeout do TCP

TimeoutIntervalinicial

= 1 sldquomargem de seguranccedilardquo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 64

TCP cenaacuterios de retransmissatildeo

Hosp A

Seq = 100 20 bytes dados

ACK = 100

tempoTimeout prematuro

Hosp B

Seq = 92 8 bytes dados

ACK = 120

Seq = 92 8 bytes dados

Seq

= 9

2 tim

eout

ACK = 120

Hosp A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio de ACK perdido

Hosp B

X

Seq = 92 8 bytes dados

ACK = 100

tempoS

eq =

92

timeo

ut

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 65

TCP cenaacuterios de retransmissatildeo

Host A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio ACK cumulativo

Host B

X

Seq = 100 20 bytes dados

ACK = 120

tempo

Transport Layer 3-66

TCP fast retransmit time-out period

often relatively long long delay before

resending lost packet detect lost

segments via duplicate ACKs sender often sends

many segments back-to-back

if segment is lost there will likely be many duplicate ACKs

if sender receives 3 ACKs for same data(ldquotriple duplicate ACKsrdquo) resend unacked segment with smallest seq

likely that unacked segment lost so donrsquot wait for timeout

TCP fast retransmit

Transport Layer 3-67

X

fast retransmit after sender receipt of triple duplicate ACK

Host BHost A

Seq=92 8 bytes of data

ACK=100

timeo

ut ACK=100

ACK=100

ACK=100

TCP fast retransmit

Seq=100 20 bytes of data

Seq=100 20 bytes of data

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 69

bull O nuacutemero de sequecircncia para um segmento eacute o nuacutemero do primeiro byte do segmento

bull O nuacutemero de reconhecimento que o hospedeiro A atribui a seu segmento eacute o nuacutemero de sequecircncia do proacuteximo byte que ele estiver aguardando do hospedeiro B

bull Como o TCP somente reconhece bytes ateacute o primeiro byte que estiver faltando na cadeia dizemos que o TCP provecirc reconhecimentos cumulativos

Nuacutemeros de sequecircncia e nuacutemeros de reconhecimento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 70

bull O TCP cria um serviccedilo de transferecircncia confiaacutevel de dados sobre o serviccedilo de melhor esforccedilo do IP

bull O serviccedilo de transferecircncia garante que a cadeia de bytes eacute idecircntica agrave cadeia de bytes enviada pelo sistema final que estaacute do outro lado da conexatildeo

bull Os procedimentos recomendados no [RFC 6298] para gerenciamento de temporizadores TCP utilizam apenas um uacutenico temporizador de retransmissatildeo

Transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 71

bull O TCP provecirc um serviccedilo de controle de fluxo agraves suas aplicaccedilotildees para eliminar a possibilidade de o remetente estourar o buffer do destinataacuterio

bull Controle de fluxo eacute um serviccedilo de compatibilizaccedilatildeo de velocidades

bull O TCP oferece serviccedilo de controle de fluxo fazendo que o remetente mantenha uma variaacutevel denominada janela de recepccedilatildeo

Controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 72

Regulaccedilatildeo da taxa de envio

Uma rede de transmissatildeo raacutepida eum receptor de baixa capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 73

Controle de fluxo TCP

lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo

serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora

processo da aplicaccedilatildeo pode ser lento na leitura do buffer

remetente natildeo estouraraacute buffer do destinataacuterio transmitindo muitos dados muito rapidamente

controle de fluxo

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 74

Controle de fluxo TCP como funciona

(suponha que destinataacuterio TCP descarte segmentos fora de ordem)

espaccedilo de buffer natildeo usado = rwnd (slide 48) = RcvBuffer-[LastByteRcvd -

LastByteRead]

destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento

remetente limita de bytes com ACK a rwndndash garante que buffer do

destinataacuterio natildeo estoura

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

rwndRcvBuffer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 75

Gerenciamento da conexatildeo TCP

lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados

inicializa variaacuteveis TCPndash s seqndash buffers informaccedilatildeo de

controle de fluxo (p e RcvWindow)

cliente inicia a conexatildeo Socket clientSocket = new

Socket(hostnameport ) servidor contactado pelo

cliente Socket connectionSocket =

welcomeSocketaccept()

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 76

Gerenciamento da conexatildeo TCP

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 77

fechando uma conexatildeo

cliente fecha socket clientSocketclose()

etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor

etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN

cliente

FIN

servidor

ACK

ACK

FIN

fecha

fecha

fechado

espe

ra

tem

poriz

ada

Gerenciamento da conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 79

Controle de congestionamento

Uma rede de transmissatildeo lenta eum receptor de alta capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 80

bull As causas e os custos do congestionamento

Cenaacuterio de congestionamento 1 duas conexotildees compartilhando um uacutenico roteador com nuacutemero infinito de buffers

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 81

bull As causas e os custos do congestionamentoCenaacuterio de congestionamento 1 vazatildeo e atraso em funccedilatildeo da taxa de envio do hospedeiro

ldquocustosrdquo do congestionamento Aumento de atrasos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 82

bull As causas e os custos do congestionamento

Cenaacuterio 2 dois hospedeiros (com retransmissotildees) e um roteador com buffers finitos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 83

a) Caso ideal (vazatildeo)

b) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda

c) retransmissatildeo do pacote adiado (natildeo perdido) torna maior (que

o caso perfeito ) para o mesmo

in

out

=

in

out

gt

in

out

ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do

pacote

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 84

bull As causas e os custos do congestionamento

Cenaacuterio 3 quatro remetentesroteadores com buffers finitos e trajetos com muacuteltiplos roteadores

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 85

outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer capacidade

de transmissatildeo anterior usada para esse pacote foi desperdiccedilada

Host A

Host B

o

u

t

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 86

Controle de congestionamento fim a fim

bull A camada de rede natildeo fornece nenhum suporte expliacutecito agrave camada de transporte com a finalidade de controle de congestionamento

Controle de congestionamento assistido pela rede

bull Os componentes da camada de rede (isto eacute roteadores) fornecem retroalimentaccedilatildeo especiacutefica de informaccedilotildees ao remetente a respeito do estado de congestionamento na rede Natildeo usual

Mecanismos de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 87

bull A abordagem adotada pelo TCP eacute obrigar cada remetente a limitar a taxa agrave qual enviam traacutefego para sua conexatildeo como uma funccedilatildeo do congestionamento de rede percebido

Se um remetente TCP perceber que haacute pouco congestionamento no caminho entre ele e o destinataacuterio aumentaraacute sua taxa de envio

Se perceber que haacute congestionamento reduziraacute sua taxa de

envio

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 88

bull Mas essa abordagem levanta trecircs questotildees

1 Como um remetente TCP limita a taxa pela qual envia traacutefego para sua conexatildeo

2 Como um remetente TCP percebe que haacute congestionamento entre ele e o destinataacuterio

3 Que algoritmo o remetente deve utilizar para modificar sua taxa de envio como uma funccedilatildeo do congestionamento fim a fim percebido

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 89

bull Partida lenta TCP

Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 90

1) Cwnd = 1 MSS inicialmente

2) Partida lenta a cada rodada redefine cwnd = cwnd 2

3) Perda de pacotes (esgotamento de temporizaccedilatildeo ndash problema grave) ==gt cwnd = 1 (Tahoe ou Reno)

4) Prevenccedilatildeo de congestionamento apoacutes atingir sstresh cwnd = cwnd + 1

5) Trecircs acks duplicados (buraco no ldquofluxordquo ndash problema brando) entra no estado prevenccedilatildeo de congestionamento e redefine cwnd = 1 (Tahoe) ou cwnd = sstresh (Reno)

6) Sstresh = cwnd2 quando satildeo detectados problemas

Quantidade de dados natildeo reconhecidas no TCP = min(CongWin RecWin)

Controle de congestionamento TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 91

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 93

bull Evoluccedilatildeo da janela de congestionamento do TCP (Tahoe e Reno ndash mais usual)

Recuperaccedilatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 94

Controle de congestionamento TCP

Partida lenta seguida por aumento aditivo no TCP Tahoe

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 95

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 96

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 97

bull O controle de congestionamento AIMD (Additive-increase Multiplicative-Decrease) faz surgir o comportamento semelhante a ldquodentes de serrardquo

bull httpsmediapearsoncmgcomawecs_kurose_compnetwork_7cwcontentinteractiveanimationstcp-congestionindexhtml

Controle de congestionamento no TCP retrospectiva

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 98

O que eacute throughput meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughput meacutedio 075 WRTT (75 WRTT)

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 99

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (Probabilidade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 100

bull Duas conexotildees TCP compartilhando um uacutenico enlace congestionado

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 101

bull Vazatildeo alcanccedilada pelas conexotildees TCP 1 e TCP 2bull Ambas conexotildees em algum momento estatildeo com vazatildeo Abull Ambas vatildeo aumentando a vazatildeo ateacute ocorrer perda ndash Bbull Sstresh cai pela metade e ambas migram para Chellip

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 102

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

ndash Consequecircncia

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Nova aplicaccedilatildeo pede 1 TCP obteacutem taxa de R10 Nova aplicaccedilatildeo pede 11 TCPs obteacutem R2

Equidade

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Multiplexingdemultiplexing
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Principles of reliable data transfer
  • Slide 20
  • Slide 21
  • Reliable data transfer getting started
  • Slide 23
  • Slide 24
  • Slide 25
  • rdt20 FSM specification
  • rdt20 operation with no errors
  • rdt20 error scenario
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • rdt30 in action
  • Slide 39
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Selective repeat dilemma
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • TCP fast retransmit
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
Page 34: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 35

bull Duas preocupaccedilotildees adicionais devem ser tratadas pelo protocolo1 Como detectar perda de pacotes2 O que fazer quando haacute perdas

bull As teacutecnicas jaacute discutidas atendem a segunda questatildeobull E para a primeira questatildeobull Suponha que o remetente transmita um pacote e que esse

pacote ou seu ACK seja perdido Nenhuma resposta chegaraacute ao remetente Se o remetente natildeo quiser esperar ==gt retransmite o pacote

bull Mas quanto o remetente precisa esperar para ter certeza que algo foi perdido Esperar um RTT Eacute muito difiacutecil estimar o RTT quanto mais ter certeza

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 36

bull Aleacutem disso o ideal seria que o protocolo se recuperasse da perda assim que possiacutevel

bull Na praacutetica O remetente faz uma escolha ponderada de um RTT provaacutevel mas natildeo

garantido que a perda tivesse acontecido Se natildeo receber um ACK nesse periacuteodo retransmite o pacote

bull Se o pacote sofrer um atraso longo pode haver retransmissatildeo mesmo que o pacote ou ACK natildeo tenham sido perdidos Possibilidade de pacotes de dados duplicados

bull Para implementar um mecanismo de retransmissatildeo com base no tempo eacute necessaacuterio um temporizador de contagem regressiva Accedilotildees iniciar atender parar

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 37

bull rdt30 remetente

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Transport Layer 3-38

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

pkt1

ack1

ack0

ack0

(a) no loss

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(b) packet loss

pkt1X

loss

pkt1timeout

resend pkt1

rdt30 in action

Transport Layer 3-39

rdt30 in action

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(c) ACK loss

ack1X

loss

pkt1timeout

resend pkt1

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

send ack0rcv ack0

send pkt1

send pkt0rcv pkt0

pkt0

ack0

(d) premature timeout delayed ACK

pkt1timeout

resend pkt1

ack1

send ack1

send pkt0rcv ack1

pkt0

ack1

ack0

send pkt0rcv ack1 pkt0

rcv pkt0send ack0ack0

rcv pkt0

send ack0(detect duplicate)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 42

bull No coraccedilatildeo do problema do desempenho do rdt30 estaacute o fato de ele ser um protocolo do tipo pare e espere

bull Um protocolo pare e espere em operaccedilatildeo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 43

U remet =

0008

30008 = 000027

microseconds

L R RTT + L R

=

Desempenho do rdt30

rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso pacote 8000 bits

U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando

Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps protocolo de rede limita uso de recursos fiacutesicos Soluccedilatildeo

ndosmicrosseguR

Ldtrans 8

bps10

bits80009

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 44

Um protocolo com paralelismo em operaccedilatildeo

bull O ACK recebido eacute de que pacote

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 45

bull Envio com pare e espere

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 46

bull Envio com paralelismo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Aumento de utilizaccedilatildeopor fator de 3

U remet =

0024 30008

= 00008 microseconds

3 L R RTT + L R

=

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 47

bull Em um protocolo Go-Back-N (GBN) o remetente eacute autorizado a transmitir muacuteltiplos pacotes sem esperar por um reconhecimento

bull Poreacutem fica limitado a ter natildeo mais do que algum nuacutemero maacuteximo permitido N (tamanho da janela) de pacotes natildeo reconhecidos na ldquotubulaccedilatildeordquo

bull Visatildeo do remetente para os nuacutemeros de sequecircncia no protocolo Go-Back-N

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 48

bull Descriccedilatildeo da FSM estendida do remetente GBNbull Quem consegue descrever o funcionamento

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 49

bull Descriccedilatildeo da FSM estendida do destinataacuterio GBN

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 50

Go-Back-N (GBN) em operaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 51

bull Protocolos de repeticcedilatildeo seletiva (SR) evitam retransmissotildees desnecessaacuterias

bull Eles fazem o remetente retransmitir apenas os pacotes suspeitos de terem sido recebidos com erro no destinataacuterio

bull Essa retransmissatildeo individual soacute quando necessaacuteria exige que o destinataacuterio reconheccedila individualmente os pacotes recebidos de modo correto

Repeticcedilatildeo seletiva (SR)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 52

Repeticcedilatildeo seletiva (SR)

Transport Layer 3-53

Selective repeatdilemma

example seq rsquos 0 1 2 3 window size=3

receiver window(after receipt)

sender window(after receipt)

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2 pkt0

timeoutretransmit pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2XXX

will accept packetwith seq number 0

(b) oops

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

X

will accept packetwith seq number 0

0 1 2 3 0 1 2 pkt3

(a) no problem

receiver canrsquot see sender sidereceiver behavior identical in both casessomethingrsquos (very) wrong

receiver sees no difference in two scenarios

duplicate data accepted as new in (b)

Q what relationship between seq size and window size to avoid problem in (b)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 54

Resumo de mecanismos de transferecircncia confiaacutevel de dados e sua utilizaccedilatildeo

bull Soma de verificaccedilatildeo - Usada para detectar erros de bits em um pacote transmitido

bull Temporizador - Usado para controlar a temporizaccedilatildeoretransmissatildeo de um pacote possivelmente porque o pacote (ou seu ACK) foi perdido dentro do canal

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 55

bull Nuacutemero de sequecircncia - Usado para numeraccedilatildeo sequencial de segmentos de dados que transitam do remetente ao destinataacuterio Ou seja pode-se ter vaacuterios segmentos transitando simultaneamente no canal de comunicaccedilatildeo maximizando assim o uso desse canal

bull Reconhecimento - Usado pelo destinataacuterio para avisar o remetente que um pacote ou conjunto de pacotes foi recebido corretamente

bull Janela paralelismo - O remetente pode ficar restrito a enviar somente pacotes com nuacutemeros de sequecircncia que caiam dentro de uma determinada faixa

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 56

bull Uma conexatildeo TCP provecirc um serviccedilo full-duplex

bull A conexatildeo TCP eacute sempre ponto a ponto

bull Uma vez estabelecida uma conexatildeo TCP dois processos de aplicaccedilatildeo podem enviar dados um para o outro 3-way handshake jaacute estabelecendo o MSS

bull O TCP combina cada porccedilatildeo de dados do cliente com um cabeccedilalho TCP formando assim segmentos TCP

A conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 57

Estrutura do segmento TCPURG dados urgentes

(quase natildeo usado)

ACK ACKvaacutelido

PSH empurrar dados agora

RST SYN FINestab conexatildeo

soma de verificaccedilatildeo

da Internet ndash todo o segmento(como em UDP)

bytes destinataacuteriopode aceitar

contagem porbytes de dados(natildeo segmentos)

Opcional e de comprimentovariaacutevel utilizado paranegociar o MSS ou fatorde escala em redes dealta velocidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 58

TCP Estabelecendo e fechando conexotildees

3-way handshakeFinalizando

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 59

s sequecircncia e ACKs do TCP

Cenaacuterio preestabelecido telnet simples

rsquos de sequecircnciandash ldquonuacutemerordquo na cadeia de

bytes do 1o byte nos dados do segmento

ACKsndash seq do proacuteximo byte

esperado do outro ladondash ACK cumulativo

P como o destinataacuterio trata segmentos fora de ordem

ndash R TCP natildeo diz ndash a criteacuterio do implementador

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 60

Tempo de ida e volta e timeout do TCP

P Como definir o valor de timeout do TCP

maior que RTTndash mas RTT varia

muito curto timeout prematurondash retransmissotildees

desnecessaacuterias muito longo baixa

reaccedilatildeo a perda de segmento

P Como estimar o RTT SampleRTT tempo medido

da transmissatildeo do segmento ateacute receber o ACKndash ignora retransmissotildees

SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquondash meacutedia de vaacuterias mediccedilotildees

recentes natildeo apenas SampleRTT atual

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 61

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui exponencialmente

raacutepido valor tiacutepico = 0125

Tempo de ida e volta e timeout do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 62

Amostras de RTTs estimados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 63

definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(geralmente = 025)

depois definir intervalo de timeout

Tempo de ida e volta e timeout do TCP

TimeoutIntervalinicial

= 1 sldquomargem de seguranccedilardquo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 64

TCP cenaacuterios de retransmissatildeo

Hosp A

Seq = 100 20 bytes dados

ACK = 100

tempoTimeout prematuro

Hosp B

Seq = 92 8 bytes dados

ACK = 120

Seq = 92 8 bytes dados

Seq

= 9

2 tim

eout

ACK = 120

Hosp A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio de ACK perdido

Hosp B

X

Seq = 92 8 bytes dados

ACK = 100

tempoS

eq =

92

timeo

ut

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 65

TCP cenaacuterios de retransmissatildeo

Host A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio ACK cumulativo

Host B

X

Seq = 100 20 bytes dados

ACK = 120

tempo

Transport Layer 3-66

TCP fast retransmit time-out period

often relatively long long delay before

resending lost packet detect lost

segments via duplicate ACKs sender often sends

many segments back-to-back

if segment is lost there will likely be many duplicate ACKs

if sender receives 3 ACKs for same data(ldquotriple duplicate ACKsrdquo) resend unacked segment with smallest seq

likely that unacked segment lost so donrsquot wait for timeout

TCP fast retransmit

Transport Layer 3-67

X

fast retransmit after sender receipt of triple duplicate ACK

Host BHost A

Seq=92 8 bytes of data

ACK=100

timeo

ut ACK=100

ACK=100

ACK=100

TCP fast retransmit

Seq=100 20 bytes of data

Seq=100 20 bytes of data

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 69

bull O nuacutemero de sequecircncia para um segmento eacute o nuacutemero do primeiro byte do segmento

bull O nuacutemero de reconhecimento que o hospedeiro A atribui a seu segmento eacute o nuacutemero de sequecircncia do proacuteximo byte que ele estiver aguardando do hospedeiro B

bull Como o TCP somente reconhece bytes ateacute o primeiro byte que estiver faltando na cadeia dizemos que o TCP provecirc reconhecimentos cumulativos

Nuacutemeros de sequecircncia e nuacutemeros de reconhecimento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 70

bull O TCP cria um serviccedilo de transferecircncia confiaacutevel de dados sobre o serviccedilo de melhor esforccedilo do IP

bull O serviccedilo de transferecircncia garante que a cadeia de bytes eacute idecircntica agrave cadeia de bytes enviada pelo sistema final que estaacute do outro lado da conexatildeo

bull Os procedimentos recomendados no [RFC 6298] para gerenciamento de temporizadores TCP utilizam apenas um uacutenico temporizador de retransmissatildeo

Transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 71

bull O TCP provecirc um serviccedilo de controle de fluxo agraves suas aplicaccedilotildees para eliminar a possibilidade de o remetente estourar o buffer do destinataacuterio

bull Controle de fluxo eacute um serviccedilo de compatibilizaccedilatildeo de velocidades

bull O TCP oferece serviccedilo de controle de fluxo fazendo que o remetente mantenha uma variaacutevel denominada janela de recepccedilatildeo

Controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 72

Regulaccedilatildeo da taxa de envio

Uma rede de transmissatildeo raacutepida eum receptor de baixa capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 73

Controle de fluxo TCP

lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo

serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora

processo da aplicaccedilatildeo pode ser lento na leitura do buffer

remetente natildeo estouraraacute buffer do destinataacuterio transmitindo muitos dados muito rapidamente

controle de fluxo

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 74

Controle de fluxo TCP como funciona

(suponha que destinataacuterio TCP descarte segmentos fora de ordem)

espaccedilo de buffer natildeo usado = rwnd (slide 48) = RcvBuffer-[LastByteRcvd -

LastByteRead]

destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento

remetente limita de bytes com ACK a rwndndash garante que buffer do

destinataacuterio natildeo estoura

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

rwndRcvBuffer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 75

Gerenciamento da conexatildeo TCP

lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados

inicializa variaacuteveis TCPndash s seqndash buffers informaccedilatildeo de

controle de fluxo (p e RcvWindow)

cliente inicia a conexatildeo Socket clientSocket = new

Socket(hostnameport ) servidor contactado pelo

cliente Socket connectionSocket =

welcomeSocketaccept()

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 76

Gerenciamento da conexatildeo TCP

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 77

fechando uma conexatildeo

cliente fecha socket clientSocketclose()

etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor

etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN

cliente

FIN

servidor

ACK

ACK

FIN

fecha

fecha

fechado

espe

ra

tem

poriz

ada

Gerenciamento da conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 79

Controle de congestionamento

Uma rede de transmissatildeo lenta eum receptor de alta capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 80

bull As causas e os custos do congestionamento

Cenaacuterio de congestionamento 1 duas conexotildees compartilhando um uacutenico roteador com nuacutemero infinito de buffers

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 81

bull As causas e os custos do congestionamentoCenaacuterio de congestionamento 1 vazatildeo e atraso em funccedilatildeo da taxa de envio do hospedeiro

ldquocustosrdquo do congestionamento Aumento de atrasos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 82

bull As causas e os custos do congestionamento

Cenaacuterio 2 dois hospedeiros (com retransmissotildees) e um roteador com buffers finitos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 83

a) Caso ideal (vazatildeo)

b) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda

c) retransmissatildeo do pacote adiado (natildeo perdido) torna maior (que

o caso perfeito ) para o mesmo

in

out

=

in

out

gt

in

out

ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do

pacote

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 84

bull As causas e os custos do congestionamento

Cenaacuterio 3 quatro remetentesroteadores com buffers finitos e trajetos com muacuteltiplos roteadores

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 85

outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer capacidade

de transmissatildeo anterior usada para esse pacote foi desperdiccedilada

Host A

Host B

o

u

t

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 86

Controle de congestionamento fim a fim

bull A camada de rede natildeo fornece nenhum suporte expliacutecito agrave camada de transporte com a finalidade de controle de congestionamento

Controle de congestionamento assistido pela rede

bull Os componentes da camada de rede (isto eacute roteadores) fornecem retroalimentaccedilatildeo especiacutefica de informaccedilotildees ao remetente a respeito do estado de congestionamento na rede Natildeo usual

Mecanismos de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 87

bull A abordagem adotada pelo TCP eacute obrigar cada remetente a limitar a taxa agrave qual enviam traacutefego para sua conexatildeo como uma funccedilatildeo do congestionamento de rede percebido

Se um remetente TCP perceber que haacute pouco congestionamento no caminho entre ele e o destinataacuterio aumentaraacute sua taxa de envio

Se perceber que haacute congestionamento reduziraacute sua taxa de

envio

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 88

bull Mas essa abordagem levanta trecircs questotildees

1 Como um remetente TCP limita a taxa pela qual envia traacutefego para sua conexatildeo

2 Como um remetente TCP percebe que haacute congestionamento entre ele e o destinataacuterio

3 Que algoritmo o remetente deve utilizar para modificar sua taxa de envio como uma funccedilatildeo do congestionamento fim a fim percebido

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 89

bull Partida lenta TCP

Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 90

1) Cwnd = 1 MSS inicialmente

2) Partida lenta a cada rodada redefine cwnd = cwnd 2

3) Perda de pacotes (esgotamento de temporizaccedilatildeo ndash problema grave) ==gt cwnd = 1 (Tahoe ou Reno)

4) Prevenccedilatildeo de congestionamento apoacutes atingir sstresh cwnd = cwnd + 1

5) Trecircs acks duplicados (buraco no ldquofluxordquo ndash problema brando) entra no estado prevenccedilatildeo de congestionamento e redefine cwnd = 1 (Tahoe) ou cwnd = sstresh (Reno)

6) Sstresh = cwnd2 quando satildeo detectados problemas

Quantidade de dados natildeo reconhecidas no TCP = min(CongWin RecWin)

Controle de congestionamento TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 91

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 93

bull Evoluccedilatildeo da janela de congestionamento do TCP (Tahoe e Reno ndash mais usual)

Recuperaccedilatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 94

Controle de congestionamento TCP

Partida lenta seguida por aumento aditivo no TCP Tahoe

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 95

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 96

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 97

bull O controle de congestionamento AIMD (Additive-increase Multiplicative-Decrease) faz surgir o comportamento semelhante a ldquodentes de serrardquo

bull httpsmediapearsoncmgcomawecs_kurose_compnetwork_7cwcontentinteractiveanimationstcp-congestionindexhtml

Controle de congestionamento no TCP retrospectiva

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 98

O que eacute throughput meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughput meacutedio 075 WRTT (75 WRTT)

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 99

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (Probabilidade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 100

bull Duas conexotildees TCP compartilhando um uacutenico enlace congestionado

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 101

bull Vazatildeo alcanccedilada pelas conexotildees TCP 1 e TCP 2bull Ambas conexotildees em algum momento estatildeo com vazatildeo Abull Ambas vatildeo aumentando a vazatildeo ateacute ocorrer perda ndash Bbull Sstresh cai pela metade e ambas migram para Chellip

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 102

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

ndash Consequecircncia

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Nova aplicaccedilatildeo pede 1 TCP obteacutem taxa de R10 Nova aplicaccedilatildeo pede 11 TCPs obteacutem R2

Equidade

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Multiplexingdemultiplexing
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Principles of reliable data transfer
  • Slide 20
  • Slide 21
  • Reliable data transfer getting started
  • Slide 23
  • Slide 24
  • Slide 25
  • rdt20 FSM specification
  • rdt20 operation with no errors
  • rdt20 error scenario
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • rdt30 in action
  • Slide 39
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Selective repeat dilemma
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • TCP fast retransmit
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
Page 35: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 36

bull Aleacutem disso o ideal seria que o protocolo se recuperasse da perda assim que possiacutevel

bull Na praacutetica O remetente faz uma escolha ponderada de um RTT provaacutevel mas natildeo

garantido que a perda tivesse acontecido Se natildeo receber um ACK nesse periacuteodo retransmite o pacote

bull Se o pacote sofrer um atraso longo pode haver retransmissatildeo mesmo que o pacote ou ACK natildeo tenham sido perdidos Possibilidade de pacotes de dados duplicados

bull Para implementar um mecanismo de retransmissatildeo com base no tempo eacute necessaacuterio um temporizador de contagem regressiva Accedilotildees iniciar atender parar

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 37

bull rdt30 remetente

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Transport Layer 3-38

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

pkt1

ack1

ack0

ack0

(a) no loss

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(b) packet loss

pkt1X

loss

pkt1timeout

resend pkt1

rdt30 in action

Transport Layer 3-39

rdt30 in action

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(c) ACK loss

ack1X

loss

pkt1timeout

resend pkt1

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

send ack0rcv ack0

send pkt1

send pkt0rcv pkt0

pkt0

ack0

(d) premature timeout delayed ACK

pkt1timeout

resend pkt1

ack1

send ack1

send pkt0rcv ack1

pkt0

ack1

ack0

send pkt0rcv ack1 pkt0

rcv pkt0send ack0ack0

rcv pkt0

send ack0(detect duplicate)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 42

bull No coraccedilatildeo do problema do desempenho do rdt30 estaacute o fato de ele ser um protocolo do tipo pare e espere

bull Um protocolo pare e espere em operaccedilatildeo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 43

U remet =

0008

30008 = 000027

microseconds

L R RTT + L R

=

Desempenho do rdt30

rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso pacote 8000 bits

U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando

Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps protocolo de rede limita uso de recursos fiacutesicos Soluccedilatildeo

ndosmicrosseguR

Ldtrans 8

bps10

bits80009

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 44

Um protocolo com paralelismo em operaccedilatildeo

bull O ACK recebido eacute de que pacote

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 45

bull Envio com pare e espere

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 46

bull Envio com paralelismo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Aumento de utilizaccedilatildeopor fator de 3

U remet =

0024 30008

= 00008 microseconds

3 L R RTT + L R

=

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 47

bull Em um protocolo Go-Back-N (GBN) o remetente eacute autorizado a transmitir muacuteltiplos pacotes sem esperar por um reconhecimento

bull Poreacutem fica limitado a ter natildeo mais do que algum nuacutemero maacuteximo permitido N (tamanho da janela) de pacotes natildeo reconhecidos na ldquotubulaccedilatildeordquo

bull Visatildeo do remetente para os nuacutemeros de sequecircncia no protocolo Go-Back-N

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 48

bull Descriccedilatildeo da FSM estendida do remetente GBNbull Quem consegue descrever o funcionamento

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 49

bull Descriccedilatildeo da FSM estendida do destinataacuterio GBN

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 50

Go-Back-N (GBN) em operaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 51

bull Protocolos de repeticcedilatildeo seletiva (SR) evitam retransmissotildees desnecessaacuterias

bull Eles fazem o remetente retransmitir apenas os pacotes suspeitos de terem sido recebidos com erro no destinataacuterio

bull Essa retransmissatildeo individual soacute quando necessaacuteria exige que o destinataacuterio reconheccedila individualmente os pacotes recebidos de modo correto

Repeticcedilatildeo seletiva (SR)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 52

Repeticcedilatildeo seletiva (SR)

Transport Layer 3-53

Selective repeatdilemma

example seq rsquos 0 1 2 3 window size=3

receiver window(after receipt)

sender window(after receipt)

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2 pkt0

timeoutretransmit pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2XXX

will accept packetwith seq number 0

(b) oops

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

X

will accept packetwith seq number 0

0 1 2 3 0 1 2 pkt3

(a) no problem

receiver canrsquot see sender sidereceiver behavior identical in both casessomethingrsquos (very) wrong

receiver sees no difference in two scenarios

duplicate data accepted as new in (b)

Q what relationship between seq size and window size to avoid problem in (b)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 54

Resumo de mecanismos de transferecircncia confiaacutevel de dados e sua utilizaccedilatildeo

bull Soma de verificaccedilatildeo - Usada para detectar erros de bits em um pacote transmitido

bull Temporizador - Usado para controlar a temporizaccedilatildeoretransmissatildeo de um pacote possivelmente porque o pacote (ou seu ACK) foi perdido dentro do canal

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 55

bull Nuacutemero de sequecircncia - Usado para numeraccedilatildeo sequencial de segmentos de dados que transitam do remetente ao destinataacuterio Ou seja pode-se ter vaacuterios segmentos transitando simultaneamente no canal de comunicaccedilatildeo maximizando assim o uso desse canal

bull Reconhecimento - Usado pelo destinataacuterio para avisar o remetente que um pacote ou conjunto de pacotes foi recebido corretamente

bull Janela paralelismo - O remetente pode ficar restrito a enviar somente pacotes com nuacutemeros de sequecircncia que caiam dentro de uma determinada faixa

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 56

bull Uma conexatildeo TCP provecirc um serviccedilo full-duplex

bull A conexatildeo TCP eacute sempre ponto a ponto

bull Uma vez estabelecida uma conexatildeo TCP dois processos de aplicaccedilatildeo podem enviar dados um para o outro 3-way handshake jaacute estabelecendo o MSS

bull O TCP combina cada porccedilatildeo de dados do cliente com um cabeccedilalho TCP formando assim segmentos TCP

A conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 57

Estrutura do segmento TCPURG dados urgentes

(quase natildeo usado)

ACK ACKvaacutelido

PSH empurrar dados agora

RST SYN FINestab conexatildeo

soma de verificaccedilatildeo

da Internet ndash todo o segmento(como em UDP)

bytes destinataacuteriopode aceitar

contagem porbytes de dados(natildeo segmentos)

Opcional e de comprimentovariaacutevel utilizado paranegociar o MSS ou fatorde escala em redes dealta velocidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 58

TCP Estabelecendo e fechando conexotildees

3-way handshakeFinalizando

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 59

s sequecircncia e ACKs do TCP

Cenaacuterio preestabelecido telnet simples

rsquos de sequecircnciandash ldquonuacutemerordquo na cadeia de

bytes do 1o byte nos dados do segmento

ACKsndash seq do proacuteximo byte

esperado do outro ladondash ACK cumulativo

P como o destinataacuterio trata segmentos fora de ordem

ndash R TCP natildeo diz ndash a criteacuterio do implementador

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 60

Tempo de ida e volta e timeout do TCP

P Como definir o valor de timeout do TCP

maior que RTTndash mas RTT varia

muito curto timeout prematurondash retransmissotildees

desnecessaacuterias muito longo baixa

reaccedilatildeo a perda de segmento

P Como estimar o RTT SampleRTT tempo medido

da transmissatildeo do segmento ateacute receber o ACKndash ignora retransmissotildees

SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquondash meacutedia de vaacuterias mediccedilotildees

recentes natildeo apenas SampleRTT atual

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 61

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui exponencialmente

raacutepido valor tiacutepico = 0125

Tempo de ida e volta e timeout do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 62

Amostras de RTTs estimados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 63

definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(geralmente = 025)

depois definir intervalo de timeout

Tempo de ida e volta e timeout do TCP

TimeoutIntervalinicial

= 1 sldquomargem de seguranccedilardquo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 64

TCP cenaacuterios de retransmissatildeo

Hosp A

Seq = 100 20 bytes dados

ACK = 100

tempoTimeout prematuro

Hosp B

Seq = 92 8 bytes dados

ACK = 120

Seq = 92 8 bytes dados

Seq

= 9

2 tim

eout

ACK = 120

Hosp A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio de ACK perdido

Hosp B

X

Seq = 92 8 bytes dados

ACK = 100

tempoS

eq =

92

timeo

ut

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 65

TCP cenaacuterios de retransmissatildeo

Host A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio ACK cumulativo

Host B

X

Seq = 100 20 bytes dados

ACK = 120

tempo

Transport Layer 3-66

TCP fast retransmit time-out period

often relatively long long delay before

resending lost packet detect lost

segments via duplicate ACKs sender often sends

many segments back-to-back

if segment is lost there will likely be many duplicate ACKs

if sender receives 3 ACKs for same data(ldquotriple duplicate ACKsrdquo) resend unacked segment with smallest seq

likely that unacked segment lost so donrsquot wait for timeout

TCP fast retransmit

Transport Layer 3-67

X

fast retransmit after sender receipt of triple duplicate ACK

Host BHost A

Seq=92 8 bytes of data

ACK=100

timeo

ut ACK=100

ACK=100

ACK=100

TCP fast retransmit

Seq=100 20 bytes of data

Seq=100 20 bytes of data

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 69

bull O nuacutemero de sequecircncia para um segmento eacute o nuacutemero do primeiro byte do segmento

bull O nuacutemero de reconhecimento que o hospedeiro A atribui a seu segmento eacute o nuacutemero de sequecircncia do proacuteximo byte que ele estiver aguardando do hospedeiro B

bull Como o TCP somente reconhece bytes ateacute o primeiro byte que estiver faltando na cadeia dizemos que o TCP provecirc reconhecimentos cumulativos

Nuacutemeros de sequecircncia e nuacutemeros de reconhecimento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 70

bull O TCP cria um serviccedilo de transferecircncia confiaacutevel de dados sobre o serviccedilo de melhor esforccedilo do IP

bull O serviccedilo de transferecircncia garante que a cadeia de bytes eacute idecircntica agrave cadeia de bytes enviada pelo sistema final que estaacute do outro lado da conexatildeo

bull Os procedimentos recomendados no [RFC 6298] para gerenciamento de temporizadores TCP utilizam apenas um uacutenico temporizador de retransmissatildeo

Transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 71

bull O TCP provecirc um serviccedilo de controle de fluxo agraves suas aplicaccedilotildees para eliminar a possibilidade de o remetente estourar o buffer do destinataacuterio

bull Controle de fluxo eacute um serviccedilo de compatibilizaccedilatildeo de velocidades

bull O TCP oferece serviccedilo de controle de fluxo fazendo que o remetente mantenha uma variaacutevel denominada janela de recepccedilatildeo

Controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 72

Regulaccedilatildeo da taxa de envio

Uma rede de transmissatildeo raacutepida eum receptor de baixa capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 73

Controle de fluxo TCP

lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo

serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora

processo da aplicaccedilatildeo pode ser lento na leitura do buffer

remetente natildeo estouraraacute buffer do destinataacuterio transmitindo muitos dados muito rapidamente

controle de fluxo

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 74

Controle de fluxo TCP como funciona

(suponha que destinataacuterio TCP descarte segmentos fora de ordem)

espaccedilo de buffer natildeo usado = rwnd (slide 48) = RcvBuffer-[LastByteRcvd -

LastByteRead]

destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento

remetente limita de bytes com ACK a rwndndash garante que buffer do

destinataacuterio natildeo estoura

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

rwndRcvBuffer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 75

Gerenciamento da conexatildeo TCP

lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados

inicializa variaacuteveis TCPndash s seqndash buffers informaccedilatildeo de

controle de fluxo (p e RcvWindow)

cliente inicia a conexatildeo Socket clientSocket = new

Socket(hostnameport ) servidor contactado pelo

cliente Socket connectionSocket =

welcomeSocketaccept()

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 76

Gerenciamento da conexatildeo TCP

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 77

fechando uma conexatildeo

cliente fecha socket clientSocketclose()

etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor

etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN

cliente

FIN

servidor

ACK

ACK

FIN

fecha

fecha

fechado

espe

ra

tem

poriz

ada

Gerenciamento da conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 79

Controle de congestionamento

Uma rede de transmissatildeo lenta eum receptor de alta capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 80

bull As causas e os custos do congestionamento

Cenaacuterio de congestionamento 1 duas conexotildees compartilhando um uacutenico roteador com nuacutemero infinito de buffers

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 81

bull As causas e os custos do congestionamentoCenaacuterio de congestionamento 1 vazatildeo e atraso em funccedilatildeo da taxa de envio do hospedeiro

ldquocustosrdquo do congestionamento Aumento de atrasos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 82

bull As causas e os custos do congestionamento

Cenaacuterio 2 dois hospedeiros (com retransmissotildees) e um roteador com buffers finitos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 83

a) Caso ideal (vazatildeo)

b) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda

c) retransmissatildeo do pacote adiado (natildeo perdido) torna maior (que

o caso perfeito ) para o mesmo

in

out

=

in

out

gt

in

out

ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do

pacote

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 84

bull As causas e os custos do congestionamento

Cenaacuterio 3 quatro remetentesroteadores com buffers finitos e trajetos com muacuteltiplos roteadores

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 85

outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer capacidade

de transmissatildeo anterior usada para esse pacote foi desperdiccedilada

Host A

Host B

o

u

t

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 86

Controle de congestionamento fim a fim

bull A camada de rede natildeo fornece nenhum suporte expliacutecito agrave camada de transporte com a finalidade de controle de congestionamento

Controle de congestionamento assistido pela rede

bull Os componentes da camada de rede (isto eacute roteadores) fornecem retroalimentaccedilatildeo especiacutefica de informaccedilotildees ao remetente a respeito do estado de congestionamento na rede Natildeo usual

Mecanismos de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 87

bull A abordagem adotada pelo TCP eacute obrigar cada remetente a limitar a taxa agrave qual enviam traacutefego para sua conexatildeo como uma funccedilatildeo do congestionamento de rede percebido

Se um remetente TCP perceber que haacute pouco congestionamento no caminho entre ele e o destinataacuterio aumentaraacute sua taxa de envio

Se perceber que haacute congestionamento reduziraacute sua taxa de

envio

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 88

bull Mas essa abordagem levanta trecircs questotildees

1 Como um remetente TCP limita a taxa pela qual envia traacutefego para sua conexatildeo

2 Como um remetente TCP percebe que haacute congestionamento entre ele e o destinataacuterio

3 Que algoritmo o remetente deve utilizar para modificar sua taxa de envio como uma funccedilatildeo do congestionamento fim a fim percebido

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 89

bull Partida lenta TCP

Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 90

1) Cwnd = 1 MSS inicialmente

2) Partida lenta a cada rodada redefine cwnd = cwnd 2

3) Perda de pacotes (esgotamento de temporizaccedilatildeo ndash problema grave) ==gt cwnd = 1 (Tahoe ou Reno)

4) Prevenccedilatildeo de congestionamento apoacutes atingir sstresh cwnd = cwnd + 1

5) Trecircs acks duplicados (buraco no ldquofluxordquo ndash problema brando) entra no estado prevenccedilatildeo de congestionamento e redefine cwnd = 1 (Tahoe) ou cwnd = sstresh (Reno)

6) Sstresh = cwnd2 quando satildeo detectados problemas

Quantidade de dados natildeo reconhecidas no TCP = min(CongWin RecWin)

Controle de congestionamento TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 91

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 93

bull Evoluccedilatildeo da janela de congestionamento do TCP (Tahoe e Reno ndash mais usual)

Recuperaccedilatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 94

Controle de congestionamento TCP

Partida lenta seguida por aumento aditivo no TCP Tahoe

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 95

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 96

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 97

bull O controle de congestionamento AIMD (Additive-increase Multiplicative-Decrease) faz surgir o comportamento semelhante a ldquodentes de serrardquo

bull httpsmediapearsoncmgcomawecs_kurose_compnetwork_7cwcontentinteractiveanimationstcp-congestionindexhtml

Controle de congestionamento no TCP retrospectiva

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 98

O que eacute throughput meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughput meacutedio 075 WRTT (75 WRTT)

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 99

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (Probabilidade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 100

bull Duas conexotildees TCP compartilhando um uacutenico enlace congestionado

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 101

bull Vazatildeo alcanccedilada pelas conexotildees TCP 1 e TCP 2bull Ambas conexotildees em algum momento estatildeo com vazatildeo Abull Ambas vatildeo aumentando a vazatildeo ateacute ocorrer perda ndash Bbull Sstresh cai pela metade e ambas migram para Chellip

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 102

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

ndash Consequecircncia

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Nova aplicaccedilatildeo pede 1 TCP obteacutem taxa de R10 Nova aplicaccedilatildeo pede 11 TCPs obteacutem R2

Equidade

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Multiplexingdemultiplexing
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Principles of reliable data transfer
  • Slide 20
  • Slide 21
  • Reliable data transfer getting started
  • Slide 23
  • Slide 24
  • Slide 25
  • rdt20 FSM specification
  • rdt20 operation with no errors
  • rdt20 error scenario
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • rdt30 in action
  • Slide 39
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Selective repeat dilemma
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • TCP fast retransmit
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
Page 36: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 37

bull rdt30 remetente

Transferecircncia confiaacutevel de dados sobre um canal com perda e com erros de bits rdt30

Transport Layer 3-38

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

pkt1

ack1

ack0

ack0

(a) no loss

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(b) packet loss

pkt1X

loss

pkt1timeout

resend pkt1

rdt30 in action

Transport Layer 3-39

rdt30 in action

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(c) ACK loss

ack1X

loss

pkt1timeout

resend pkt1

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

send ack0rcv ack0

send pkt1

send pkt0rcv pkt0

pkt0

ack0

(d) premature timeout delayed ACK

pkt1timeout

resend pkt1

ack1

send ack1

send pkt0rcv ack1

pkt0

ack1

ack0

send pkt0rcv ack1 pkt0

rcv pkt0send ack0ack0

rcv pkt0

send ack0(detect duplicate)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 42

bull No coraccedilatildeo do problema do desempenho do rdt30 estaacute o fato de ele ser um protocolo do tipo pare e espere

bull Um protocolo pare e espere em operaccedilatildeo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 43

U remet =

0008

30008 = 000027

microseconds

L R RTT + L R

=

Desempenho do rdt30

rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso pacote 8000 bits

U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando

Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps protocolo de rede limita uso de recursos fiacutesicos Soluccedilatildeo

ndosmicrosseguR

Ldtrans 8

bps10

bits80009

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 44

Um protocolo com paralelismo em operaccedilatildeo

bull O ACK recebido eacute de que pacote

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 45

bull Envio com pare e espere

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 46

bull Envio com paralelismo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Aumento de utilizaccedilatildeopor fator de 3

U remet =

0024 30008

= 00008 microseconds

3 L R RTT + L R

=

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 47

bull Em um protocolo Go-Back-N (GBN) o remetente eacute autorizado a transmitir muacuteltiplos pacotes sem esperar por um reconhecimento

bull Poreacutem fica limitado a ter natildeo mais do que algum nuacutemero maacuteximo permitido N (tamanho da janela) de pacotes natildeo reconhecidos na ldquotubulaccedilatildeordquo

bull Visatildeo do remetente para os nuacutemeros de sequecircncia no protocolo Go-Back-N

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 48

bull Descriccedilatildeo da FSM estendida do remetente GBNbull Quem consegue descrever o funcionamento

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 49

bull Descriccedilatildeo da FSM estendida do destinataacuterio GBN

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 50

Go-Back-N (GBN) em operaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 51

bull Protocolos de repeticcedilatildeo seletiva (SR) evitam retransmissotildees desnecessaacuterias

bull Eles fazem o remetente retransmitir apenas os pacotes suspeitos de terem sido recebidos com erro no destinataacuterio

bull Essa retransmissatildeo individual soacute quando necessaacuteria exige que o destinataacuterio reconheccedila individualmente os pacotes recebidos de modo correto

Repeticcedilatildeo seletiva (SR)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 52

Repeticcedilatildeo seletiva (SR)

Transport Layer 3-53

Selective repeatdilemma

example seq rsquos 0 1 2 3 window size=3

receiver window(after receipt)

sender window(after receipt)

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2 pkt0

timeoutretransmit pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2XXX

will accept packetwith seq number 0

(b) oops

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

X

will accept packetwith seq number 0

0 1 2 3 0 1 2 pkt3

(a) no problem

receiver canrsquot see sender sidereceiver behavior identical in both casessomethingrsquos (very) wrong

receiver sees no difference in two scenarios

duplicate data accepted as new in (b)

Q what relationship between seq size and window size to avoid problem in (b)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 54

Resumo de mecanismos de transferecircncia confiaacutevel de dados e sua utilizaccedilatildeo

bull Soma de verificaccedilatildeo - Usada para detectar erros de bits em um pacote transmitido

bull Temporizador - Usado para controlar a temporizaccedilatildeoretransmissatildeo de um pacote possivelmente porque o pacote (ou seu ACK) foi perdido dentro do canal

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 55

bull Nuacutemero de sequecircncia - Usado para numeraccedilatildeo sequencial de segmentos de dados que transitam do remetente ao destinataacuterio Ou seja pode-se ter vaacuterios segmentos transitando simultaneamente no canal de comunicaccedilatildeo maximizando assim o uso desse canal

bull Reconhecimento - Usado pelo destinataacuterio para avisar o remetente que um pacote ou conjunto de pacotes foi recebido corretamente

bull Janela paralelismo - O remetente pode ficar restrito a enviar somente pacotes com nuacutemeros de sequecircncia que caiam dentro de uma determinada faixa

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 56

bull Uma conexatildeo TCP provecirc um serviccedilo full-duplex

bull A conexatildeo TCP eacute sempre ponto a ponto

bull Uma vez estabelecida uma conexatildeo TCP dois processos de aplicaccedilatildeo podem enviar dados um para o outro 3-way handshake jaacute estabelecendo o MSS

bull O TCP combina cada porccedilatildeo de dados do cliente com um cabeccedilalho TCP formando assim segmentos TCP

A conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 57

Estrutura do segmento TCPURG dados urgentes

(quase natildeo usado)

ACK ACKvaacutelido

PSH empurrar dados agora

RST SYN FINestab conexatildeo

soma de verificaccedilatildeo

da Internet ndash todo o segmento(como em UDP)

bytes destinataacuteriopode aceitar

contagem porbytes de dados(natildeo segmentos)

Opcional e de comprimentovariaacutevel utilizado paranegociar o MSS ou fatorde escala em redes dealta velocidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 58

TCP Estabelecendo e fechando conexotildees

3-way handshakeFinalizando

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 59

s sequecircncia e ACKs do TCP

Cenaacuterio preestabelecido telnet simples

rsquos de sequecircnciandash ldquonuacutemerordquo na cadeia de

bytes do 1o byte nos dados do segmento

ACKsndash seq do proacuteximo byte

esperado do outro ladondash ACK cumulativo

P como o destinataacuterio trata segmentos fora de ordem

ndash R TCP natildeo diz ndash a criteacuterio do implementador

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 60

Tempo de ida e volta e timeout do TCP

P Como definir o valor de timeout do TCP

maior que RTTndash mas RTT varia

muito curto timeout prematurondash retransmissotildees

desnecessaacuterias muito longo baixa

reaccedilatildeo a perda de segmento

P Como estimar o RTT SampleRTT tempo medido

da transmissatildeo do segmento ateacute receber o ACKndash ignora retransmissotildees

SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquondash meacutedia de vaacuterias mediccedilotildees

recentes natildeo apenas SampleRTT atual

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 61

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui exponencialmente

raacutepido valor tiacutepico = 0125

Tempo de ida e volta e timeout do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 62

Amostras de RTTs estimados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 63

definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(geralmente = 025)

depois definir intervalo de timeout

Tempo de ida e volta e timeout do TCP

TimeoutIntervalinicial

= 1 sldquomargem de seguranccedilardquo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 64

TCP cenaacuterios de retransmissatildeo

Hosp A

Seq = 100 20 bytes dados

ACK = 100

tempoTimeout prematuro

Hosp B

Seq = 92 8 bytes dados

ACK = 120

Seq = 92 8 bytes dados

Seq

= 9

2 tim

eout

ACK = 120

Hosp A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio de ACK perdido

Hosp B

X

Seq = 92 8 bytes dados

ACK = 100

tempoS

eq =

92

timeo

ut

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 65

TCP cenaacuterios de retransmissatildeo

Host A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio ACK cumulativo

Host B

X

Seq = 100 20 bytes dados

ACK = 120

tempo

Transport Layer 3-66

TCP fast retransmit time-out period

often relatively long long delay before

resending lost packet detect lost

segments via duplicate ACKs sender often sends

many segments back-to-back

if segment is lost there will likely be many duplicate ACKs

if sender receives 3 ACKs for same data(ldquotriple duplicate ACKsrdquo) resend unacked segment with smallest seq

likely that unacked segment lost so donrsquot wait for timeout

TCP fast retransmit

Transport Layer 3-67

X

fast retransmit after sender receipt of triple duplicate ACK

Host BHost A

Seq=92 8 bytes of data

ACK=100

timeo

ut ACK=100

ACK=100

ACK=100

TCP fast retransmit

Seq=100 20 bytes of data

Seq=100 20 bytes of data

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 69

bull O nuacutemero de sequecircncia para um segmento eacute o nuacutemero do primeiro byte do segmento

bull O nuacutemero de reconhecimento que o hospedeiro A atribui a seu segmento eacute o nuacutemero de sequecircncia do proacuteximo byte que ele estiver aguardando do hospedeiro B

bull Como o TCP somente reconhece bytes ateacute o primeiro byte que estiver faltando na cadeia dizemos que o TCP provecirc reconhecimentos cumulativos

Nuacutemeros de sequecircncia e nuacutemeros de reconhecimento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 70

bull O TCP cria um serviccedilo de transferecircncia confiaacutevel de dados sobre o serviccedilo de melhor esforccedilo do IP

bull O serviccedilo de transferecircncia garante que a cadeia de bytes eacute idecircntica agrave cadeia de bytes enviada pelo sistema final que estaacute do outro lado da conexatildeo

bull Os procedimentos recomendados no [RFC 6298] para gerenciamento de temporizadores TCP utilizam apenas um uacutenico temporizador de retransmissatildeo

Transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 71

bull O TCP provecirc um serviccedilo de controle de fluxo agraves suas aplicaccedilotildees para eliminar a possibilidade de o remetente estourar o buffer do destinataacuterio

bull Controle de fluxo eacute um serviccedilo de compatibilizaccedilatildeo de velocidades

bull O TCP oferece serviccedilo de controle de fluxo fazendo que o remetente mantenha uma variaacutevel denominada janela de recepccedilatildeo

Controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 72

Regulaccedilatildeo da taxa de envio

Uma rede de transmissatildeo raacutepida eum receptor de baixa capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 73

Controle de fluxo TCP

lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo

serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora

processo da aplicaccedilatildeo pode ser lento na leitura do buffer

remetente natildeo estouraraacute buffer do destinataacuterio transmitindo muitos dados muito rapidamente

controle de fluxo

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 74

Controle de fluxo TCP como funciona

(suponha que destinataacuterio TCP descarte segmentos fora de ordem)

espaccedilo de buffer natildeo usado = rwnd (slide 48) = RcvBuffer-[LastByteRcvd -

LastByteRead]

destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento

remetente limita de bytes com ACK a rwndndash garante que buffer do

destinataacuterio natildeo estoura

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

rwndRcvBuffer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 75

Gerenciamento da conexatildeo TCP

lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados

inicializa variaacuteveis TCPndash s seqndash buffers informaccedilatildeo de

controle de fluxo (p e RcvWindow)

cliente inicia a conexatildeo Socket clientSocket = new

Socket(hostnameport ) servidor contactado pelo

cliente Socket connectionSocket =

welcomeSocketaccept()

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 76

Gerenciamento da conexatildeo TCP

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 77

fechando uma conexatildeo

cliente fecha socket clientSocketclose()

etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor

etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN

cliente

FIN

servidor

ACK

ACK

FIN

fecha

fecha

fechado

espe

ra

tem

poriz

ada

Gerenciamento da conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 79

Controle de congestionamento

Uma rede de transmissatildeo lenta eum receptor de alta capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 80

bull As causas e os custos do congestionamento

Cenaacuterio de congestionamento 1 duas conexotildees compartilhando um uacutenico roteador com nuacutemero infinito de buffers

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 81

bull As causas e os custos do congestionamentoCenaacuterio de congestionamento 1 vazatildeo e atraso em funccedilatildeo da taxa de envio do hospedeiro

ldquocustosrdquo do congestionamento Aumento de atrasos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 82

bull As causas e os custos do congestionamento

Cenaacuterio 2 dois hospedeiros (com retransmissotildees) e um roteador com buffers finitos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 83

a) Caso ideal (vazatildeo)

b) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda

c) retransmissatildeo do pacote adiado (natildeo perdido) torna maior (que

o caso perfeito ) para o mesmo

in

out

=

in

out

gt

in

out

ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do

pacote

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 84

bull As causas e os custos do congestionamento

Cenaacuterio 3 quatro remetentesroteadores com buffers finitos e trajetos com muacuteltiplos roteadores

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 85

outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer capacidade

de transmissatildeo anterior usada para esse pacote foi desperdiccedilada

Host A

Host B

o

u

t

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 86

Controle de congestionamento fim a fim

bull A camada de rede natildeo fornece nenhum suporte expliacutecito agrave camada de transporte com a finalidade de controle de congestionamento

Controle de congestionamento assistido pela rede

bull Os componentes da camada de rede (isto eacute roteadores) fornecem retroalimentaccedilatildeo especiacutefica de informaccedilotildees ao remetente a respeito do estado de congestionamento na rede Natildeo usual

Mecanismos de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 87

bull A abordagem adotada pelo TCP eacute obrigar cada remetente a limitar a taxa agrave qual enviam traacutefego para sua conexatildeo como uma funccedilatildeo do congestionamento de rede percebido

Se um remetente TCP perceber que haacute pouco congestionamento no caminho entre ele e o destinataacuterio aumentaraacute sua taxa de envio

Se perceber que haacute congestionamento reduziraacute sua taxa de

envio

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 88

bull Mas essa abordagem levanta trecircs questotildees

1 Como um remetente TCP limita a taxa pela qual envia traacutefego para sua conexatildeo

2 Como um remetente TCP percebe que haacute congestionamento entre ele e o destinataacuterio

3 Que algoritmo o remetente deve utilizar para modificar sua taxa de envio como uma funccedilatildeo do congestionamento fim a fim percebido

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 89

bull Partida lenta TCP

Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 90

1) Cwnd = 1 MSS inicialmente

2) Partida lenta a cada rodada redefine cwnd = cwnd 2

3) Perda de pacotes (esgotamento de temporizaccedilatildeo ndash problema grave) ==gt cwnd = 1 (Tahoe ou Reno)

4) Prevenccedilatildeo de congestionamento apoacutes atingir sstresh cwnd = cwnd + 1

5) Trecircs acks duplicados (buraco no ldquofluxordquo ndash problema brando) entra no estado prevenccedilatildeo de congestionamento e redefine cwnd = 1 (Tahoe) ou cwnd = sstresh (Reno)

6) Sstresh = cwnd2 quando satildeo detectados problemas

Quantidade de dados natildeo reconhecidas no TCP = min(CongWin RecWin)

Controle de congestionamento TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 91

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 93

bull Evoluccedilatildeo da janela de congestionamento do TCP (Tahoe e Reno ndash mais usual)

Recuperaccedilatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 94

Controle de congestionamento TCP

Partida lenta seguida por aumento aditivo no TCP Tahoe

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 95

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 96

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 97

bull O controle de congestionamento AIMD (Additive-increase Multiplicative-Decrease) faz surgir o comportamento semelhante a ldquodentes de serrardquo

bull httpsmediapearsoncmgcomawecs_kurose_compnetwork_7cwcontentinteractiveanimationstcp-congestionindexhtml

Controle de congestionamento no TCP retrospectiva

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 98

O que eacute throughput meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughput meacutedio 075 WRTT (75 WRTT)

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 99

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (Probabilidade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 100

bull Duas conexotildees TCP compartilhando um uacutenico enlace congestionado

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 101

bull Vazatildeo alcanccedilada pelas conexotildees TCP 1 e TCP 2bull Ambas conexotildees em algum momento estatildeo com vazatildeo Abull Ambas vatildeo aumentando a vazatildeo ateacute ocorrer perda ndash Bbull Sstresh cai pela metade e ambas migram para Chellip

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 102

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

ndash Consequecircncia

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Nova aplicaccedilatildeo pede 1 TCP obteacutem taxa de R10 Nova aplicaccedilatildeo pede 11 TCPs obteacutem R2

Equidade

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Multiplexingdemultiplexing
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Principles of reliable data transfer
  • Slide 20
  • Slide 21
  • Reliable data transfer getting started
  • Slide 23
  • Slide 24
  • Slide 25
  • rdt20 FSM specification
  • rdt20 operation with no errors
  • rdt20 error scenario
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • rdt30 in action
  • Slide 39
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Selective repeat dilemma
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • TCP fast retransmit
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
Page 37: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a

Transport Layer 3-38

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

pkt1

ack1

ack0

ack0

(a) no loss

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(b) packet loss

pkt1X

loss

pkt1timeout

resend pkt1

rdt30 in action

Transport Layer 3-39

rdt30 in action

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(c) ACK loss

ack1X

loss

pkt1timeout

resend pkt1

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

send ack0rcv ack0

send pkt1

send pkt0rcv pkt0

pkt0

ack0

(d) premature timeout delayed ACK

pkt1timeout

resend pkt1

ack1

send ack1

send pkt0rcv ack1

pkt0

ack1

ack0

send pkt0rcv ack1 pkt0

rcv pkt0send ack0ack0

rcv pkt0

send ack0(detect duplicate)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 42

bull No coraccedilatildeo do problema do desempenho do rdt30 estaacute o fato de ele ser um protocolo do tipo pare e espere

bull Um protocolo pare e espere em operaccedilatildeo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 43

U remet =

0008

30008 = 000027

microseconds

L R RTT + L R

=

Desempenho do rdt30

rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso pacote 8000 bits

U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando

Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps protocolo de rede limita uso de recursos fiacutesicos Soluccedilatildeo

ndosmicrosseguR

Ldtrans 8

bps10

bits80009

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 44

Um protocolo com paralelismo em operaccedilatildeo

bull O ACK recebido eacute de que pacote

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 45

bull Envio com pare e espere

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 46

bull Envio com paralelismo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Aumento de utilizaccedilatildeopor fator de 3

U remet =

0024 30008

= 00008 microseconds

3 L R RTT + L R

=

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 47

bull Em um protocolo Go-Back-N (GBN) o remetente eacute autorizado a transmitir muacuteltiplos pacotes sem esperar por um reconhecimento

bull Poreacutem fica limitado a ter natildeo mais do que algum nuacutemero maacuteximo permitido N (tamanho da janela) de pacotes natildeo reconhecidos na ldquotubulaccedilatildeordquo

bull Visatildeo do remetente para os nuacutemeros de sequecircncia no protocolo Go-Back-N

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 48

bull Descriccedilatildeo da FSM estendida do remetente GBNbull Quem consegue descrever o funcionamento

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 49

bull Descriccedilatildeo da FSM estendida do destinataacuterio GBN

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 50

Go-Back-N (GBN) em operaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 51

bull Protocolos de repeticcedilatildeo seletiva (SR) evitam retransmissotildees desnecessaacuterias

bull Eles fazem o remetente retransmitir apenas os pacotes suspeitos de terem sido recebidos com erro no destinataacuterio

bull Essa retransmissatildeo individual soacute quando necessaacuteria exige que o destinataacuterio reconheccedila individualmente os pacotes recebidos de modo correto

Repeticcedilatildeo seletiva (SR)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 52

Repeticcedilatildeo seletiva (SR)

Transport Layer 3-53

Selective repeatdilemma

example seq rsquos 0 1 2 3 window size=3

receiver window(after receipt)

sender window(after receipt)

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2 pkt0

timeoutretransmit pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2XXX

will accept packetwith seq number 0

(b) oops

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

X

will accept packetwith seq number 0

0 1 2 3 0 1 2 pkt3

(a) no problem

receiver canrsquot see sender sidereceiver behavior identical in both casessomethingrsquos (very) wrong

receiver sees no difference in two scenarios

duplicate data accepted as new in (b)

Q what relationship between seq size and window size to avoid problem in (b)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 54

Resumo de mecanismos de transferecircncia confiaacutevel de dados e sua utilizaccedilatildeo

bull Soma de verificaccedilatildeo - Usada para detectar erros de bits em um pacote transmitido

bull Temporizador - Usado para controlar a temporizaccedilatildeoretransmissatildeo de um pacote possivelmente porque o pacote (ou seu ACK) foi perdido dentro do canal

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 55

bull Nuacutemero de sequecircncia - Usado para numeraccedilatildeo sequencial de segmentos de dados que transitam do remetente ao destinataacuterio Ou seja pode-se ter vaacuterios segmentos transitando simultaneamente no canal de comunicaccedilatildeo maximizando assim o uso desse canal

bull Reconhecimento - Usado pelo destinataacuterio para avisar o remetente que um pacote ou conjunto de pacotes foi recebido corretamente

bull Janela paralelismo - O remetente pode ficar restrito a enviar somente pacotes com nuacutemeros de sequecircncia que caiam dentro de uma determinada faixa

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 56

bull Uma conexatildeo TCP provecirc um serviccedilo full-duplex

bull A conexatildeo TCP eacute sempre ponto a ponto

bull Uma vez estabelecida uma conexatildeo TCP dois processos de aplicaccedilatildeo podem enviar dados um para o outro 3-way handshake jaacute estabelecendo o MSS

bull O TCP combina cada porccedilatildeo de dados do cliente com um cabeccedilalho TCP formando assim segmentos TCP

A conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 57

Estrutura do segmento TCPURG dados urgentes

(quase natildeo usado)

ACK ACKvaacutelido

PSH empurrar dados agora

RST SYN FINestab conexatildeo

soma de verificaccedilatildeo

da Internet ndash todo o segmento(como em UDP)

bytes destinataacuteriopode aceitar

contagem porbytes de dados(natildeo segmentos)

Opcional e de comprimentovariaacutevel utilizado paranegociar o MSS ou fatorde escala em redes dealta velocidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 58

TCP Estabelecendo e fechando conexotildees

3-way handshakeFinalizando

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 59

s sequecircncia e ACKs do TCP

Cenaacuterio preestabelecido telnet simples

rsquos de sequecircnciandash ldquonuacutemerordquo na cadeia de

bytes do 1o byte nos dados do segmento

ACKsndash seq do proacuteximo byte

esperado do outro ladondash ACK cumulativo

P como o destinataacuterio trata segmentos fora de ordem

ndash R TCP natildeo diz ndash a criteacuterio do implementador

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 60

Tempo de ida e volta e timeout do TCP

P Como definir o valor de timeout do TCP

maior que RTTndash mas RTT varia

muito curto timeout prematurondash retransmissotildees

desnecessaacuterias muito longo baixa

reaccedilatildeo a perda de segmento

P Como estimar o RTT SampleRTT tempo medido

da transmissatildeo do segmento ateacute receber o ACKndash ignora retransmissotildees

SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquondash meacutedia de vaacuterias mediccedilotildees

recentes natildeo apenas SampleRTT atual

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 61

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui exponencialmente

raacutepido valor tiacutepico = 0125

Tempo de ida e volta e timeout do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 62

Amostras de RTTs estimados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 63

definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(geralmente = 025)

depois definir intervalo de timeout

Tempo de ida e volta e timeout do TCP

TimeoutIntervalinicial

= 1 sldquomargem de seguranccedilardquo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 64

TCP cenaacuterios de retransmissatildeo

Hosp A

Seq = 100 20 bytes dados

ACK = 100

tempoTimeout prematuro

Hosp B

Seq = 92 8 bytes dados

ACK = 120

Seq = 92 8 bytes dados

Seq

= 9

2 tim

eout

ACK = 120

Hosp A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio de ACK perdido

Hosp B

X

Seq = 92 8 bytes dados

ACK = 100

tempoS

eq =

92

timeo

ut

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 65

TCP cenaacuterios de retransmissatildeo

Host A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio ACK cumulativo

Host B

X

Seq = 100 20 bytes dados

ACK = 120

tempo

Transport Layer 3-66

TCP fast retransmit time-out period

often relatively long long delay before

resending lost packet detect lost

segments via duplicate ACKs sender often sends

many segments back-to-back

if segment is lost there will likely be many duplicate ACKs

if sender receives 3 ACKs for same data(ldquotriple duplicate ACKsrdquo) resend unacked segment with smallest seq

likely that unacked segment lost so donrsquot wait for timeout

TCP fast retransmit

Transport Layer 3-67

X

fast retransmit after sender receipt of triple duplicate ACK

Host BHost A

Seq=92 8 bytes of data

ACK=100

timeo

ut ACK=100

ACK=100

ACK=100

TCP fast retransmit

Seq=100 20 bytes of data

Seq=100 20 bytes of data

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 69

bull O nuacutemero de sequecircncia para um segmento eacute o nuacutemero do primeiro byte do segmento

bull O nuacutemero de reconhecimento que o hospedeiro A atribui a seu segmento eacute o nuacutemero de sequecircncia do proacuteximo byte que ele estiver aguardando do hospedeiro B

bull Como o TCP somente reconhece bytes ateacute o primeiro byte que estiver faltando na cadeia dizemos que o TCP provecirc reconhecimentos cumulativos

Nuacutemeros de sequecircncia e nuacutemeros de reconhecimento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 70

bull O TCP cria um serviccedilo de transferecircncia confiaacutevel de dados sobre o serviccedilo de melhor esforccedilo do IP

bull O serviccedilo de transferecircncia garante que a cadeia de bytes eacute idecircntica agrave cadeia de bytes enviada pelo sistema final que estaacute do outro lado da conexatildeo

bull Os procedimentos recomendados no [RFC 6298] para gerenciamento de temporizadores TCP utilizam apenas um uacutenico temporizador de retransmissatildeo

Transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 71

bull O TCP provecirc um serviccedilo de controle de fluxo agraves suas aplicaccedilotildees para eliminar a possibilidade de o remetente estourar o buffer do destinataacuterio

bull Controle de fluxo eacute um serviccedilo de compatibilizaccedilatildeo de velocidades

bull O TCP oferece serviccedilo de controle de fluxo fazendo que o remetente mantenha uma variaacutevel denominada janela de recepccedilatildeo

Controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 72

Regulaccedilatildeo da taxa de envio

Uma rede de transmissatildeo raacutepida eum receptor de baixa capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 73

Controle de fluxo TCP

lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo

serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora

processo da aplicaccedilatildeo pode ser lento na leitura do buffer

remetente natildeo estouraraacute buffer do destinataacuterio transmitindo muitos dados muito rapidamente

controle de fluxo

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 74

Controle de fluxo TCP como funciona

(suponha que destinataacuterio TCP descarte segmentos fora de ordem)

espaccedilo de buffer natildeo usado = rwnd (slide 48) = RcvBuffer-[LastByteRcvd -

LastByteRead]

destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento

remetente limita de bytes com ACK a rwndndash garante que buffer do

destinataacuterio natildeo estoura

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

rwndRcvBuffer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 75

Gerenciamento da conexatildeo TCP

lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados

inicializa variaacuteveis TCPndash s seqndash buffers informaccedilatildeo de

controle de fluxo (p e RcvWindow)

cliente inicia a conexatildeo Socket clientSocket = new

Socket(hostnameport ) servidor contactado pelo

cliente Socket connectionSocket =

welcomeSocketaccept()

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 76

Gerenciamento da conexatildeo TCP

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 77

fechando uma conexatildeo

cliente fecha socket clientSocketclose()

etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor

etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN

cliente

FIN

servidor

ACK

ACK

FIN

fecha

fecha

fechado

espe

ra

tem

poriz

ada

Gerenciamento da conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 79

Controle de congestionamento

Uma rede de transmissatildeo lenta eum receptor de alta capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 80

bull As causas e os custos do congestionamento

Cenaacuterio de congestionamento 1 duas conexotildees compartilhando um uacutenico roteador com nuacutemero infinito de buffers

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 81

bull As causas e os custos do congestionamentoCenaacuterio de congestionamento 1 vazatildeo e atraso em funccedilatildeo da taxa de envio do hospedeiro

ldquocustosrdquo do congestionamento Aumento de atrasos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 82

bull As causas e os custos do congestionamento

Cenaacuterio 2 dois hospedeiros (com retransmissotildees) e um roteador com buffers finitos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 83

a) Caso ideal (vazatildeo)

b) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda

c) retransmissatildeo do pacote adiado (natildeo perdido) torna maior (que

o caso perfeito ) para o mesmo

in

out

=

in

out

gt

in

out

ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do

pacote

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 84

bull As causas e os custos do congestionamento

Cenaacuterio 3 quatro remetentesroteadores com buffers finitos e trajetos com muacuteltiplos roteadores

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 85

outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer capacidade

de transmissatildeo anterior usada para esse pacote foi desperdiccedilada

Host A

Host B

o

u

t

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 86

Controle de congestionamento fim a fim

bull A camada de rede natildeo fornece nenhum suporte expliacutecito agrave camada de transporte com a finalidade de controle de congestionamento

Controle de congestionamento assistido pela rede

bull Os componentes da camada de rede (isto eacute roteadores) fornecem retroalimentaccedilatildeo especiacutefica de informaccedilotildees ao remetente a respeito do estado de congestionamento na rede Natildeo usual

Mecanismos de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 87

bull A abordagem adotada pelo TCP eacute obrigar cada remetente a limitar a taxa agrave qual enviam traacutefego para sua conexatildeo como uma funccedilatildeo do congestionamento de rede percebido

Se um remetente TCP perceber que haacute pouco congestionamento no caminho entre ele e o destinataacuterio aumentaraacute sua taxa de envio

Se perceber que haacute congestionamento reduziraacute sua taxa de

envio

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 88

bull Mas essa abordagem levanta trecircs questotildees

1 Como um remetente TCP limita a taxa pela qual envia traacutefego para sua conexatildeo

2 Como um remetente TCP percebe que haacute congestionamento entre ele e o destinataacuterio

3 Que algoritmo o remetente deve utilizar para modificar sua taxa de envio como uma funccedilatildeo do congestionamento fim a fim percebido

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 89

bull Partida lenta TCP

Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 90

1) Cwnd = 1 MSS inicialmente

2) Partida lenta a cada rodada redefine cwnd = cwnd 2

3) Perda de pacotes (esgotamento de temporizaccedilatildeo ndash problema grave) ==gt cwnd = 1 (Tahoe ou Reno)

4) Prevenccedilatildeo de congestionamento apoacutes atingir sstresh cwnd = cwnd + 1

5) Trecircs acks duplicados (buraco no ldquofluxordquo ndash problema brando) entra no estado prevenccedilatildeo de congestionamento e redefine cwnd = 1 (Tahoe) ou cwnd = sstresh (Reno)

6) Sstresh = cwnd2 quando satildeo detectados problemas

Quantidade de dados natildeo reconhecidas no TCP = min(CongWin RecWin)

Controle de congestionamento TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 91

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 93

bull Evoluccedilatildeo da janela de congestionamento do TCP (Tahoe e Reno ndash mais usual)

Recuperaccedilatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 94

Controle de congestionamento TCP

Partida lenta seguida por aumento aditivo no TCP Tahoe

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 95

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 96

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 97

bull O controle de congestionamento AIMD (Additive-increase Multiplicative-Decrease) faz surgir o comportamento semelhante a ldquodentes de serrardquo

bull httpsmediapearsoncmgcomawecs_kurose_compnetwork_7cwcontentinteractiveanimationstcp-congestionindexhtml

Controle de congestionamento no TCP retrospectiva

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 98

O que eacute throughput meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughput meacutedio 075 WRTT (75 WRTT)

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 99

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (Probabilidade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 100

bull Duas conexotildees TCP compartilhando um uacutenico enlace congestionado

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 101

bull Vazatildeo alcanccedilada pelas conexotildees TCP 1 e TCP 2bull Ambas conexotildees em algum momento estatildeo com vazatildeo Abull Ambas vatildeo aumentando a vazatildeo ateacute ocorrer perda ndash Bbull Sstresh cai pela metade e ambas migram para Chellip

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 102

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

ndash Consequecircncia

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Nova aplicaccedilatildeo pede 1 TCP obteacutem taxa de R10 Nova aplicaccedilatildeo pede 11 TCPs obteacutem R2

Equidade

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Multiplexingdemultiplexing
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Principles of reliable data transfer
  • Slide 20
  • Slide 21
  • Reliable data transfer getting started
  • Slide 23
  • Slide 24
  • Slide 25
  • rdt20 FSM specification
  • rdt20 operation with no errors
  • rdt20 error scenario
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • rdt30 in action
  • Slide 39
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Selective repeat dilemma
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • TCP fast retransmit
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
Page 38: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a

Transport Layer 3-39

rdt30 in action

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

rcv pkt0

send ack0

send ack1

send ack0

rcv ack0

send pkt0

send pkt1

rcv ack1

send pkt0rcv pkt0

pkt0

pkt0

ack1

ack0

ack0

(c) ACK loss

ack1X

loss

pkt1timeout

resend pkt1

rcv pkt1send ack1

(detect duplicate)

pkt1

sender receiver

rcv pkt1

send ack0rcv ack0

send pkt1

send pkt0rcv pkt0

pkt0

ack0

(d) premature timeout delayed ACK

pkt1timeout

resend pkt1

ack1

send ack1

send pkt0rcv ack1

pkt0

ack1

ack0

send pkt0rcv ack1 pkt0

rcv pkt0send ack0ack0

rcv pkt0

send ack0(detect duplicate)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 42

bull No coraccedilatildeo do problema do desempenho do rdt30 estaacute o fato de ele ser um protocolo do tipo pare e espere

bull Um protocolo pare e espere em operaccedilatildeo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 43

U remet =

0008

30008 = 000027

microseconds

L R RTT + L R

=

Desempenho do rdt30

rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso pacote 8000 bits

U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando

Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps protocolo de rede limita uso de recursos fiacutesicos Soluccedilatildeo

ndosmicrosseguR

Ldtrans 8

bps10

bits80009

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 44

Um protocolo com paralelismo em operaccedilatildeo

bull O ACK recebido eacute de que pacote

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 45

bull Envio com pare e espere

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 46

bull Envio com paralelismo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Aumento de utilizaccedilatildeopor fator de 3

U remet =

0024 30008

= 00008 microseconds

3 L R RTT + L R

=

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 47

bull Em um protocolo Go-Back-N (GBN) o remetente eacute autorizado a transmitir muacuteltiplos pacotes sem esperar por um reconhecimento

bull Poreacutem fica limitado a ter natildeo mais do que algum nuacutemero maacuteximo permitido N (tamanho da janela) de pacotes natildeo reconhecidos na ldquotubulaccedilatildeordquo

bull Visatildeo do remetente para os nuacutemeros de sequecircncia no protocolo Go-Back-N

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 48

bull Descriccedilatildeo da FSM estendida do remetente GBNbull Quem consegue descrever o funcionamento

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 49

bull Descriccedilatildeo da FSM estendida do destinataacuterio GBN

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 50

Go-Back-N (GBN) em operaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 51

bull Protocolos de repeticcedilatildeo seletiva (SR) evitam retransmissotildees desnecessaacuterias

bull Eles fazem o remetente retransmitir apenas os pacotes suspeitos de terem sido recebidos com erro no destinataacuterio

bull Essa retransmissatildeo individual soacute quando necessaacuteria exige que o destinataacuterio reconheccedila individualmente os pacotes recebidos de modo correto

Repeticcedilatildeo seletiva (SR)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 52

Repeticcedilatildeo seletiva (SR)

Transport Layer 3-53

Selective repeatdilemma

example seq rsquos 0 1 2 3 window size=3

receiver window(after receipt)

sender window(after receipt)

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2 pkt0

timeoutretransmit pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2XXX

will accept packetwith seq number 0

(b) oops

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

X

will accept packetwith seq number 0

0 1 2 3 0 1 2 pkt3

(a) no problem

receiver canrsquot see sender sidereceiver behavior identical in both casessomethingrsquos (very) wrong

receiver sees no difference in two scenarios

duplicate data accepted as new in (b)

Q what relationship between seq size and window size to avoid problem in (b)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 54

Resumo de mecanismos de transferecircncia confiaacutevel de dados e sua utilizaccedilatildeo

bull Soma de verificaccedilatildeo - Usada para detectar erros de bits em um pacote transmitido

bull Temporizador - Usado para controlar a temporizaccedilatildeoretransmissatildeo de um pacote possivelmente porque o pacote (ou seu ACK) foi perdido dentro do canal

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 55

bull Nuacutemero de sequecircncia - Usado para numeraccedilatildeo sequencial de segmentos de dados que transitam do remetente ao destinataacuterio Ou seja pode-se ter vaacuterios segmentos transitando simultaneamente no canal de comunicaccedilatildeo maximizando assim o uso desse canal

bull Reconhecimento - Usado pelo destinataacuterio para avisar o remetente que um pacote ou conjunto de pacotes foi recebido corretamente

bull Janela paralelismo - O remetente pode ficar restrito a enviar somente pacotes com nuacutemeros de sequecircncia que caiam dentro de uma determinada faixa

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 56

bull Uma conexatildeo TCP provecirc um serviccedilo full-duplex

bull A conexatildeo TCP eacute sempre ponto a ponto

bull Uma vez estabelecida uma conexatildeo TCP dois processos de aplicaccedilatildeo podem enviar dados um para o outro 3-way handshake jaacute estabelecendo o MSS

bull O TCP combina cada porccedilatildeo de dados do cliente com um cabeccedilalho TCP formando assim segmentos TCP

A conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 57

Estrutura do segmento TCPURG dados urgentes

(quase natildeo usado)

ACK ACKvaacutelido

PSH empurrar dados agora

RST SYN FINestab conexatildeo

soma de verificaccedilatildeo

da Internet ndash todo o segmento(como em UDP)

bytes destinataacuteriopode aceitar

contagem porbytes de dados(natildeo segmentos)

Opcional e de comprimentovariaacutevel utilizado paranegociar o MSS ou fatorde escala em redes dealta velocidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 58

TCP Estabelecendo e fechando conexotildees

3-way handshakeFinalizando

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 59

s sequecircncia e ACKs do TCP

Cenaacuterio preestabelecido telnet simples

rsquos de sequecircnciandash ldquonuacutemerordquo na cadeia de

bytes do 1o byte nos dados do segmento

ACKsndash seq do proacuteximo byte

esperado do outro ladondash ACK cumulativo

P como o destinataacuterio trata segmentos fora de ordem

ndash R TCP natildeo diz ndash a criteacuterio do implementador

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 60

Tempo de ida e volta e timeout do TCP

P Como definir o valor de timeout do TCP

maior que RTTndash mas RTT varia

muito curto timeout prematurondash retransmissotildees

desnecessaacuterias muito longo baixa

reaccedilatildeo a perda de segmento

P Como estimar o RTT SampleRTT tempo medido

da transmissatildeo do segmento ateacute receber o ACKndash ignora retransmissotildees

SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquondash meacutedia de vaacuterias mediccedilotildees

recentes natildeo apenas SampleRTT atual

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 61

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui exponencialmente

raacutepido valor tiacutepico = 0125

Tempo de ida e volta e timeout do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 62

Amostras de RTTs estimados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 63

definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(geralmente = 025)

depois definir intervalo de timeout

Tempo de ida e volta e timeout do TCP

TimeoutIntervalinicial

= 1 sldquomargem de seguranccedilardquo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 64

TCP cenaacuterios de retransmissatildeo

Hosp A

Seq = 100 20 bytes dados

ACK = 100

tempoTimeout prematuro

Hosp B

Seq = 92 8 bytes dados

ACK = 120

Seq = 92 8 bytes dados

Seq

= 9

2 tim

eout

ACK = 120

Hosp A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio de ACK perdido

Hosp B

X

Seq = 92 8 bytes dados

ACK = 100

tempoS

eq =

92

timeo

ut

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 65

TCP cenaacuterios de retransmissatildeo

Host A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio ACK cumulativo

Host B

X

Seq = 100 20 bytes dados

ACK = 120

tempo

Transport Layer 3-66

TCP fast retransmit time-out period

often relatively long long delay before

resending lost packet detect lost

segments via duplicate ACKs sender often sends

many segments back-to-back

if segment is lost there will likely be many duplicate ACKs

if sender receives 3 ACKs for same data(ldquotriple duplicate ACKsrdquo) resend unacked segment with smallest seq

likely that unacked segment lost so donrsquot wait for timeout

TCP fast retransmit

Transport Layer 3-67

X

fast retransmit after sender receipt of triple duplicate ACK

Host BHost A

Seq=92 8 bytes of data

ACK=100

timeo

ut ACK=100

ACK=100

ACK=100

TCP fast retransmit

Seq=100 20 bytes of data

Seq=100 20 bytes of data

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 69

bull O nuacutemero de sequecircncia para um segmento eacute o nuacutemero do primeiro byte do segmento

bull O nuacutemero de reconhecimento que o hospedeiro A atribui a seu segmento eacute o nuacutemero de sequecircncia do proacuteximo byte que ele estiver aguardando do hospedeiro B

bull Como o TCP somente reconhece bytes ateacute o primeiro byte que estiver faltando na cadeia dizemos que o TCP provecirc reconhecimentos cumulativos

Nuacutemeros de sequecircncia e nuacutemeros de reconhecimento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 70

bull O TCP cria um serviccedilo de transferecircncia confiaacutevel de dados sobre o serviccedilo de melhor esforccedilo do IP

bull O serviccedilo de transferecircncia garante que a cadeia de bytes eacute idecircntica agrave cadeia de bytes enviada pelo sistema final que estaacute do outro lado da conexatildeo

bull Os procedimentos recomendados no [RFC 6298] para gerenciamento de temporizadores TCP utilizam apenas um uacutenico temporizador de retransmissatildeo

Transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 71

bull O TCP provecirc um serviccedilo de controle de fluxo agraves suas aplicaccedilotildees para eliminar a possibilidade de o remetente estourar o buffer do destinataacuterio

bull Controle de fluxo eacute um serviccedilo de compatibilizaccedilatildeo de velocidades

bull O TCP oferece serviccedilo de controle de fluxo fazendo que o remetente mantenha uma variaacutevel denominada janela de recepccedilatildeo

Controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 72

Regulaccedilatildeo da taxa de envio

Uma rede de transmissatildeo raacutepida eum receptor de baixa capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 73

Controle de fluxo TCP

lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo

serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora

processo da aplicaccedilatildeo pode ser lento na leitura do buffer

remetente natildeo estouraraacute buffer do destinataacuterio transmitindo muitos dados muito rapidamente

controle de fluxo

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 74

Controle de fluxo TCP como funciona

(suponha que destinataacuterio TCP descarte segmentos fora de ordem)

espaccedilo de buffer natildeo usado = rwnd (slide 48) = RcvBuffer-[LastByteRcvd -

LastByteRead]

destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento

remetente limita de bytes com ACK a rwndndash garante que buffer do

destinataacuterio natildeo estoura

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

rwndRcvBuffer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 75

Gerenciamento da conexatildeo TCP

lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados

inicializa variaacuteveis TCPndash s seqndash buffers informaccedilatildeo de

controle de fluxo (p e RcvWindow)

cliente inicia a conexatildeo Socket clientSocket = new

Socket(hostnameport ) servidor contactado pelo

cliente Socket connectionSocket =

welcomeSocketaccept()

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 76

Gerenciamento da conexatildeo TCP

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 77

fechando uma conexatildeo

cliente fecha socket clientSocketclose()

etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor

etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN

cliente

FIN

servidor

ACK

ACK

FIN

fecha

fecha

fechado

espe

ra

tem

poriz

ada

Gerenciamento da conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 79

Controle de congestionamento

Uma rede de transmissatildeo lenta eum receptor de alta capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 80

bull As causas e os custos do congestionamento

Cenaacuterio de congestionamento 1 duas conexotildees compartilhando um uacutenico roteador com nuacutemero infinito de buffers

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 81

bull As causas e os custos do congestionamentoCenaacuterio de congestionamento 1 vazatildeo e atraso em funccedilatildeo da taxa de envio do hospedeiro

ldquocustosrdquo do congestionamento Aumento de atrasos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 82

bull As causas e os custos do congestionamento

Cenaacuterio 2 dois hospedeiros (com retransmissotildees) e um roteador com buffers finitos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 83

a) Caso ideal (vazatildeo)

b) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda

c) retransmissatildeo do pacote adiado (natildeo perdido) torna maior (que

o caso perfeito ) para o mesmo

in

out

=

in

out

gt

in

out

ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do

pacote

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 84

bull As causas e os custos do congestionamento

Cenaacuterio 3 quatro remetentesroteadores com buffers finitos e trajetos com muacuteltiplos roteadores

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 85

outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer capacidade

de transmissatildeo anterior usada para esse pacote foi desperdiccedilada

Host A

Host B

o

u

t

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 86

Controle de congestionamento fim a fim

bull A camada de rede natildeo fornece nenhum suporte expliacutecito agrave camada de transporte com a finalidade de controle de congestionamento

Controle de congestionamento assistido pela rede

bull Os componentes da camada de rede (isto eacute roteadores) fornecem retroalimentaccedilatildeo especiacutefica de informaccedilotildees ao remetente a respeito do estado de congestionamento na rede Natildeo usual

Mecanismos de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 87

bull A abordagem adotada pelo TCP eacute obrigar cada remetente a limitar a taxa agrave qual enviam traacutefego para sua conexatildeo como uma funccedilatildeo do congestionamento de rede percebido

Se um remetente TCP perceber que haacute pouco congestionamento no caminho entre ele e o destinataacuterio aumentaraacute sua taxa de envio

Se perceber que haacute congestionamento reduziraacute sua taxa de

envio

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 88

bull Mas essa abordagem levanta trecircs questotildees

1 Como um remetente TCP limita a taxa pela qual envia traacutefego para sua conexatildeo

2 Como um remetente TCP percebe que haacute congestionamento entre ele e o destinataacuterio

3 Que algoritmo o remetente deve utilizar para modificar sua taxa de envio como uma funccedilatildeo do congestionamento fim a fim percebido

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 89

bull Partida lenta TCP

Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 90

1) Cwnd = 1 MSS inicialmente

2) Partida lenta a cada rodada redefine cwnd = cwnd 2

3) Perda de pacotes (esgotamento de temporizaccedilatildeo ndash problema grave) ==gt cwnd = 1 (Tahoe ou Reno)

4) Prevenccedilatildeo de congestionamento apoacutes atingir sstresh cwnd = cwnd + 1

5) Trecircs acks duplicados (buraco no ldquofluxordquo ndash problema brando) entra no estado prevenccedilatildeo de congestionamento e redefine cwnd = 1 (Tahoe) ou cwnd = sstresh (Reno)

6) Sstresh = cwnd2 quando satildeo detectados problemas

Quantidade de dados natildeo reconhecidas no TCP = min(CongWin RecWin)

Controle de congestionamento TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 91

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 93

bull Evoluccedilatildeo da janela de congestionamento do TCP (Tahoe e Reno ndash mais usual)

Recuperaccedilatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 94

Controle de congestionamento TCP

Partida lenta seguida por aumento aditivo no TCP Tahoe

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 95

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 96

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 97

bull O controle de congestionamento AIMD (Additive-increase Multiplicative-Decrease) faz surgir o comportamento semelhante a ldquodentes de serrardquo

bull httpsmediapearsoncmgcomawecs_kurose_compnetwork_7cwcontentinteractiveanimationstcp-congestionindexhtml

Controle de congestionamento no TCP retrospectiva

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 98

O que eacute throughput meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughput meacutedio 075 WRTT (75 WRTT)

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 99

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (Probabilidade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 100

bull Duas conexotildees TCP compartilhando um uacutenico enlace congestionado

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 101

bull Vazatildeo alcanccedilada pelas conexotildees TCP 1 e TCP 2bull Ambas conexotildees em algum momento estatildeo com vazatildeo Abull Ambas vatildeo aumentando a vazatildeo ateacute ocorrer perda ndash Bbull Sstresh cai pela metade e ambas migram para Chellip

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 102

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

ndash Consequecircncia

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Nova aplicaccedilatildeo pede 1 TCP obteacutem taxa de R10 Nova aplicaccedilatildeo pede 11 TCPs obteacutem R2

Equidade

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Multiplexingdemultiplexing
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Principles of reliable data transfer
  • Slide 20
  • Slide 21
  • Reliable data transfer getting started
  • Slide 23
  • Slide 24
  • Slide 25
  • rdt20 FSM specification
  • rdt20 operation with no errors
  • rdt20 error scenario
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • rdt30 in action
  • Slide 39
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Selective repeat dilemma
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • TCP fast retransmit
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
Page 39: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 42

bull No coraccedilatildeo do problema do desempenho do rdt30 estaacute o fato de ele ser um protocolo do tipo pare e espere

bull Um protocolo pare e espere em operaccedilatildeo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 43

U remet =

0008

30008 = 000027

microseconds

L R RTT + L R

=

Desempenho do rdt30

rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso pacote 8000 bits

U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando

Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps protocolo de rede limita uso de recursos fiacutesicos Soluccedilatildeo

ndosmicrosseguR

Ldtrans 8

bps10

bits80009

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 44

Um protocolo com paralelismo em operaccedilatildeo

bull O ACK recebido eacute de que pacote

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 45

bull Envio com pare e espere

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 46

bull Envio com paralelismo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Aumento de utilizaccedilatildeopor fator de 3

U remet =

0024 30008

= 00008 microseconds

3 L R RTT + L R

=

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 47

bull Em um protocolo Go-Back-N (GBN) o remetente eacute autorizado a transmitir muacuteltiplos pacotes sem esperar por um reconhecimento

bull Poreacutem fica limitado a ter natildeo mais do que algum nuacutemero maacuteximo permitido N (tamanho da janela) de pacotes natildeo reconhecidos na ldquotubulaccedilatildeordquo

bull Visatildeo do remetente para os nuacutemeros de sequecircncia no protocolo Go-Back-N

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 48

bull Descriccedilatildeo da FSM estendida do remetente GBNbull Quem consegue descrever o funcionamento

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 49

bull Descriccedilatildeo da FSM estendida do destinataacuterio GBN

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 50

Go-Back-N (GBN) em operaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 51

bull Protocolos de repeticcedilatildeo seletiva (SR) evitam retransmissotildees desnecessaacuterias

bull Eles fazem o remetente retransmitir apenas os pacotes suspeitos de terem sido recebidos com erro no destinataacuterio

bull Essa retransmissatildeo individual soacute quando necessaacuteria exige que o destinataacuterio reconheccedila individualmente os pacotes recebidos de modo correto

Repeticcedilatildeo seletiva (SR)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 52

Repeticcedilatildeo seletiva (SR)

Transport Layer 3-53

Selective repeatdilemma

example seq rsquos 0 1 2 3 window size=3

receiver window(after receipt)

sender window(after receipt)

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2 pkt0

timeoutretransmit pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2XXX

will accept packetwith seq number 0

(b) oops

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

X

will accept packetwith seq number 0

0 1 2 3 0 1 2 pkt3

(a) no problem

receiver canrsquot see sender sidereceiver behavior identical in both casessomethingrsquos (very) wrong

receiver sees no difference in two scenarios

duplicate data accepted as new in (b)

Q what relationship between seq size and window size to avoid problem in (b)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 54

Resumo de mecanismos de transferecircncia confiaacutevel de dados e sua utilizaccedilatildeo

bull Soma de verificaccedilatildeo - Usada para detectar erros de bits em um pacote transmitido

bull Temporizador - Usado para controlar a temporizaccedilatildeoretransmissatildeo de um pacote possivelmente porque o pacote (ou seu ACK) foi perdido dentro do canal

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 55

bull Nuacutemero de sequecircncia - Usado para numeraccedilatildeo sequencial de segmentos de dados que transitam do remetente ao destinataacuterio Ou seja pode-se ter vaacuterios segmentos transitando simultaneamente no canal de comunicaccedilatildeo maximizando assim o uso desse canal

bull Reconhecimento - Usado pelo destinataacuterio para avisar o remetente que um pacote ou conjunto de pacotes foi recebido corretamente

bull Janela paralelismo - O remetente pode ficar restrito a enviar somente pacotes com nuacutemeros de sequecircncia que caiam dentro de uma determinada faixa

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 56

bull Uma conexatildeo TCP provecirc um serviccedilo full-duplex

bull A conexatildeo TCP eacute sempre ponto a ponto

bull Uma vez estabelecida uma conexatildeo TCP dois processos de aplicaccedilatildeo podem enviar dados um para o outro 3-way handshake jaacute estabelecendo o MSS

bull O TCP combina cada porccedilatildeo de dados do cliente com um cabeccedilalho TCP formando assim segmentos TCP

A conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 57

Estrutura do segmento TCPURG dados urgentes

(quase natildeo usado)

ACK ACKvaacutelido

PSH empurrar dados agora

RST SYN FINestab conexatildeo

soma de verificaccedilatildeo

da Internet ndash todo o segmento(como em UDP)

bytes destinataacuteriopode aceitar

contagem porbytes de dados(natildeo segmentos)

Opcional e de comprimentovariaacutevel utilizado paranegociar o MSS ou fatorde escala em redes dealta velocidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 58

TCP Estabelecendo e fechando conexotildees

3-way handshakeFinalizando

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 59

s sequecircncia e ACKs do TCP

Cenaacuterio preestabelecido telnet simples

rsquos de sequecircnciandash ldquonuacutemerordquo na cadeia de

bytes do 1o byte nos dados do segmento

ACKsndash seq do proacuteximo byte

esperado do outro ladondash ACK cumulativo

P como o destinataacuterio trata segmentos fora de ordem

ndash R TCP natildeo diz ndash a criteacuterio do implementador

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 60

Tempo de ida e volta e timeout do TCP

P Como definir o valor de timeout do TCP

maior que RTTndash mas RTT varia

muito curto timeout prematurondash retransmissotildees

desnecessaacuterias muito longo baixa

reaccedilatildeo a perda de segmento

P Como estimar o RTT SampleRTT tempo medido

da transmissatildeo do segmento ateacute receber o ACKndash ignora retransmissotildees

SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquondash meacutedia de vaacuterias mediccedilotildees

recentes natildeo apenas SampleRTT atual

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 61

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui exponencialmente

raacutepido valor tiacutepico = 0125

Tempo de ida e volta e timeout do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 62

Amostras de RTTs estimados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 63

definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(geralmente = 025)

depois definir intervalo de timeout

Tempo de ida e volta e timeout do TCP

TimeoutIntervalinicial

= 1 sldquomargem de seguranccedilardquo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 64

TCP cenaacuterios de retransmissatildeo

Hosp A

Seq = 100 20 bytes dados

ACK = 100

tempoTimeout prematuro

Hosp B

Seq = 92 8 bytes dados

ACK = 120

Seq = 92 8 bytes dados

Seq

= 9

2 tim

eout

ACK = 120

Hosp A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio de ACK perdido

Hosp B

X

Seq = 92 8 bytes dados

ACK = 100

tempoS

eq =

92

timeo

ut

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 65

TCP cenaacuterios de retransmissatildeo

Host A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio ACK cumulativo

Host B

X

Seq = 100 20 bytes dados

ACK = 120

tempo

Transport Layer 3-66

TCP fast retransmit time-out period

often relatively long long delay before

resending lost packet detect lost

segments via duplicate ACKs sender often sends

many segments back-to-back

if segment is lost there will likely be many duplicate ACKs

if sender receives 3 ACKs for same data(ldquotriple duplicate ACKsrdquo) resend unacked segment with smallest seq

likely that unacked segment lost so donrsquot wait for timeout

TCP fast retransmit

Transport Layer 3-67

X

fast retransmit after sender receipt of triple duplicate ACK

Host BHost A

Seq=92 8 bytes of data

ACK=100

timeo

ut ACK=100

ACK=100

ACK=100

TCP fast retransmit

Seq=100 20 bytes of data

Seq=100 20 bytes of data

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 69

bull O nuacutemero de sequecircncia para um segmento eacute o nuacutemero do primeiro byte do segmento

bull O nuacutemero de reconhecimento que o hospedeiro A atribui a seu segmento eacute o nuacutemero de sequecircncia do proacuteximo byte que ele estiver aguardando do hospedeiro B

bull Como o TCP somente reconhece bytes ateacute o primeiro byte que estiver faltando na cadeia dizemos que o TCP provecirc reconhecimentos cumulativos

Nuacutemeros de sequecircncia e nuacutemeros de reconhecimento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 70

bull O TCP cria um serviccedilo de transferecircncia confiaacutevel de dados sobre o serviccedilo de melhor esforccedilo do IP

bull O serviccedilo de transferecircncia garante que a cadeia de bytes eacute idecircntica agrave cadeia de bytes enviada pelo sistema final que estaacute do outro lado da conexatildeo

bull Os procedimentos recomendados no [RFC 6298] para gerenciamento de temporizadores TCP utilizam apenas um uacutenico temporizador de retransmissatildeo

Transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 71

bull O TCP provecirc um serviccedilo de controle de fluxo agraves suas aplicaccedilotildees para eliminar a possibilidade de o remetente estourar o buffer do destinataacuterio

bull Controle de fluxo eacute um serviccedilo de compatibilizaccedilatildeo de velocidades

bull O TCP oferece serviccedilo de controle de fluxo fazendo que o remetente mantenha uma variaacutevel denominada janela de recepccedilatildeo

Controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 72

Regulaccedilatildeo da taxa de envio

Uma rede de transmissatildeo raacutepida eum receptor de baixa capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 73

Controle de fluxo TCP

lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo

serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora

processo da aplicaccedilatildeo pode ser lento na leitura do buffer

remetente natildeo estouraraacute buffer do destinataacuterio transmitindo muitos dados muito rapidamente

controle de fluxo

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 74

Controle de fluxo TCP como funciona

(suponha que destinataacuterio TCP descarte segmentos fora de ordem)

espaccedilo de buffer natildeo usado = rwnd (slide 48) = RcvBuffer-[LastByteRcvd -

LastByteRead]

destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento

remetente limita de bytes com ACK a rwndndash garante que buffer do

destinataacuterio natildeo estoura

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

rwndRcvBuffer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 75

Gerenciamento da conexatildeo TCP

lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados

inicializa variaacuteveis TCPndash s seqndash buffers informaccedilatildeo de

controle de fluxo (p e RcvWindow)

cliente inicia a conexatildeo Socket clientSocket = new

Socket(hostnameport ) servidor contactado pelo

cliente Socket connectionSocket =

welcomeSocketaccept()

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 76

Gerenciamento da conexatildeo TCP

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 77

fechando uma conexatildeo

cliente fecha socket clientSocketclose()

etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor

etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN

cliente

FIN

servidor

ACK

ACK

FIN

fecha

fecha

fechado

espe

ra

tem

poriz

ada

Gerenciamento da conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 79

Controle de congestionamento

Uma rede de transmissatildeo lenta eum receptor de alta capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 80

bull As causas e os custos do congestionamento

Cenaacuterio de congestionamento 1 duas conexotildees compartilhando um uacutenico roteador com nuacutemero infinito de buffers

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 81

bull As causas e os custos do congestionamentoCenaacuterio de congestionamento 1 vazatildeo e atraso em funccedilatildeo da taxa de envio do hospedeiro

ldquocustosrdquo do congestionamento Aumento de atrasos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 82

bull As causas e os custos do congestionamento

Cenaacuterio 2 dois hospedeiros (com retransmissotildees) e um roteador com buffers finitos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 83

a) Caso ideal (vazatildeo)

b) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda

c) retransmissatildeo do pacote adiado (natildeo perdido) torna maior (que

o caso perfeito ) para o mesmo

in

out

=

in

out

gt

in

out

ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do

pacote

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 84

bull As causas e os custos do congestionamento

Cenaacuterio 3 quatro remetentesroteadores com buffers finitos e trajetos com muacuteltiplos roteadores

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 85

outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer capacidade

de transmissatildeo anterior usada para esse pacote foi desperdiccedilada

Host A

Host B

o

u

t

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 86

Controle de congestionamento fim a fim

bull A camada de rede natildeo fornece nenhum suporte expliacutecito agrave camada de transporte com a finalidade de controle de congestionamento

Controle de congestionamento assistido pela rede

bull Os componentes da camada de rede (isto eacute roteadores) fornecem retroalimentaccedilatildeo especiacutefica de informaccedilotildees ao remetente a respeito do estado de congestionamento na rede Natildeo usual

Mecanismos de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 87

bull A abordagem adotada pelo TCP eacute obrigar cada remetente a limitar a taxa agrave qual enviam traacutefego para sua conexatildeo como uma funccedilatildeo do congestionamento de rede percebido

Se um remetente TCP perceber que haacute pouco congestionamento no caminho entre ele e o destinataacuterio aumentaraacute sua taxa de envio

Se perceber que haacute congestionamento reduziraacute sua taxa de

envio

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 88

bull Mas essa abordagem levanta trecircs questotildees

1 Como um remetente TCP limita a taxa pela qual envia traacutefego para sua conexatildeo

2 Como um remetente TCP percebe que haacute congestionamento entre ele e o destinataacuterio

3 Que algoritmo o remetente deve utilizar para modificar sua taxa de envio como uma funccedilatildeo do congestionamento fim a fim percebido

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 89

bull Partida lenta TCP

Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 90

1) Cwnd = 1 MSS inicialmente

2) Partida lenta a cada rodada redefine cwnd = cwnd 2

3) Perda de pacotes (esgotamento de temporizaccedilatildeo ndash problema grave) ==gt cwnd = 1 (Tahoe ou Reno)

4) Prevenccedilatildeo de congestionamento apoacutes atingir sstresh cwnd = cwnd + 1

5) Trecircs acks duplicados (buraco no ldquofluxordquo ndash problema brando) entra no estado prevenccedilatildeo de congestionamento e redefine cwnd = 1 (Tahoe) ou cwnd = sstresh (Reno)

6) Sstresh = cwnd2 quando satildeo detectados problemas

Quantidade de dados natildeo reconhecidas no TCP = min(CongWin RecWin)

Controle de congestionamento TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 91

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 93

bull Evoluccedilatildeo da janela de congestionamento do TCP (Tahoe e Reno ndash mais usual)

Recuperaccedilatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 94

Controle de congestionamento TCP

Partida lenta seguida por aumento aditivo no TCP Tahoe

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 95

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 96

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 97

bull O controle de congestionamento AIMD (Additive-increase Multiplicative-Decrease) faz surgir o comportamento semelhante a ldquodentes de serrardquo

bull httpsmediapearsoncmgcomawecs_kurose_compnetwork_7cwcontentinteractiveanimationstcp-congestionindexhtml

Controle de congestionamento no TCP retrospectiva

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 98

O que eacute throughput meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughput meacutedio 075 WRTT (75 WRTT)

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 99

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (Probabilidade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 100

bull Duas conexotildees TCP compartilhando um uacutenico enlace congestionado

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 101

bull Vazatildeo alcanccedilada pelas conexotildees TCP 1 e TCP 2bull Ambas conexotildees em algum momento estatildeo com vazatildeo Abull Ambas vatildeo aumentando a vazatildeo ateacute ocorrer perda ndash Bbull Sstresh cai pela metade e ambas migram para Chellip

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 102

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

ndash Consequecircncia

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Nova aplicaccedilatildeo pede 1 TCP obteacutem taxa de R10 Nova aplicaccedilatildeo pede 11 TCPs obteacutem R2

Equidade

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Multiplexingdemultiplexing
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Principles of reliable data transfer
  • Slide 20
  • Slide 21
  • Reliable data transfer getting started
  • Slide 23
  • Slide 24
  • Slide 25
  • rdt20 FSM specification
  • rdt20 operation with no errors
  • rdt20 error scenario
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • rdt30 in action
  • Slide 39
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Selective repeat dilemma
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • TCP fast retransmit
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
Page 40: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 43

U remet =

0008

30008 = 000027

microseconds

L R RTT + L R

=

Desempenho do rdt30

rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso pacote 8000 bits

U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando

Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps protocolo de rede limita uso de recursos fiacutesicos Soluccedilatildeo

ndosmicrosseguR

Ldtrans 8

bps10

bits80009

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 44

Um protocolo com paralelismo em operaccedilatildeo

bull O ACK recebido eacute de que pacote

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 45

bull Envio com pare e espere

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 46

bull Envio com paralelismo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Aumento de utilizaccedilatildeopor fator de 3

U remet =

0024 30008

= 00008 microseconds

3 L R RTT + L R

=

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 47

bull Em um protocolo Go-Back-N (GBN) o remetente eacute autorizado a transmitir muacuteltiplos pacotes sem esperar por um reconhecimento

bull Poreacutem fica limitado a ter natildeo mais do que algum nuacutemero maacuteximo permitido N (tamanho da janela) de pacotes natildeo reconhecidos na ldquotubulaccedilatildeordquo

bull Visatildeo do remetente para os nuacutemeros de sequecircncia no protocolo Go-Back-N

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 48

bull Descriccedilatildeo da FSM estendida do remetente GBNbull Quem consegue descrever o funcionamento

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 49

bull Descriccedilatildeo da FSM estendida do destinataacuterio GBN

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 50

Go-Back-N (GBN) em operaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 51

bull Protocolos de repeticcedilatildeo seletiva (SR) evitam retransmissotildees desnecessaacuterias

bull Eles fazem o remetente retransmitir apenas os pacotes suspeitos de terem sido recebidos com erro no destinataacuterio

bull Essa retransmissatildeo individual soacute quando necessaacuteria exige que o destinataacuterio reconheccedila individualmente os pacotes recebidos de modo correto

Repeticcedilatildeo seletiva (SR)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 52

Repeticcedilatildeo seletiva (SR)

Transport Layer 3-53

Selective repeatdilemma

example seq rsquos 0 1 2 3 window size=3

receiver window(after receipt)

sender window(after receipt)

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2 pkt0

timeoutretransmit pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2XXX

will accept packetwith seq number 0

(b) oops

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

X

will accept packetwith seq number 0

0 1 2 3 0 1 2 pkt3

(a) no problem

receiver canrsquot see sender sidereceiver behavior identical in both casessomethingrsquos (very) wrong

receiver sees no difference in two scenarios

duplicate data accepted as new in (b)

Q what relationship between seq size and window size to avoid problem in (b)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 54

Resumo de mecanismos de transferecircncia confiaacutevel de dados e sua utilizaccedilatildeo

bull Soma de verificaccedilatildeo - Usada para detectar erros de bits em um pacote transmitido

bull Temporizador - Usado para controlar a temporizaccedilatildeoretransmissatildeo de um pacote possivelmente porque o pacote (ou seu ACK) foi perdido dentro do canal

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 55

bull Nuacutemero de sequecircncia - Usado para numeraccedilatildeo sequencial de segmentos de dados que transitam do remetente ao destinataacuterio Ou seja pode-se ter vaacuterios segmentos transitando simultaneamente no canal de comunicaccedilatildeo maximizando assim o uso desse canal

bull Reconhecimento - Usado pelo destinataacuterio para avisar o remetente que um pacote ou conjunto de pacotes foi recebido corretamente

bull Janela paralelismo - O remetente pode ficar restrito a enviar somente pacotes com nuacutemeros de sequecircncia que caiam dentro de uma determinada faixa

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 56

bull Uma conexatildeo TCP provecirc um serviccedilo full-duplex

bull A conexatildeo TCP eacute sempre ponto a ponto

bull Uma vez estabelecida uma conexatildeo TCP dois processos de aplicaccedilatildeo podem enviar dados um para o outro 3-way handshake jaacute estabelecendo o MSS

bull O TCP combina cada porccedilatildeo de dados do cliente com um cabeccedilalho TCP formando assim segmentos TCP

A conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 57

Estrutura do segmento TCPURG dados urgentes

(quase natildeo usado)

ACK ACKvaacutelido

PSH empurrar dados agora

RST SYN FINestab conexatildeo

soma de verificaccedilatildeo

da Internet ndash todo o segmento(como em UDP)

bytes destinataacuteriopode aceitar

contagem porbytes de dados(natildeo segmentos)

Opcional e de comprimentovariaacutevel utilizado paranegociar o MSS ou fatorde escala em redes dealta velocidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 58

TCP Estabelecendo e fechando conexotildees

3-way handshakeFinalizando

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 59

s sequecircncia e ACKs do TCP

Cenaacuterio preestabelecido telnet simples

rsquos de sequecircnciandash ldquonuacutemerordquo na cadeia de

bytes do 1o byte nos dados do segmento

ACKsndash seq do proacuteximo byte

esperado do outro ladondash ACK cumulativo

P como o destinataacuterio trata segmentos fora de ordem

ndash R TCP natildeo diz ndash a criteacuterio do implementador

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 60

Tempo de ida e volta e timeout do TCP

P Como definir o valor de timeout do TCP

maior que RTTndash mas RTT varia

muito curto timeout prematurondash retransmissotildees

desnecessaacuterias muito longo baixa

reaccedilatildeo a perda de segmento

P Como estimar o RTT SampleRTT tempo medido

da transmissatildeo do segmento ateacute receber o ACKndash ignora retransmissotildees

SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquondash meacutedia de vaacuterias mediccedilotildees

recentes natildeo apenas SampleRTT atual

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 61

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui exponencialmente

raacutepido valor tiacutepico = 0125

Tempo de ida e volta e timeout do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 62

Amostras de RTTs estimados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 63

definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(geralmente = 025)

depois definir intervalo de timeout

Tempo de ida e volta e timeout do TCP

TimeoutIntervalinicial

= 1 sldquomargem de seguranccedilardquo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 64

TCP cenaacuterios de retransmissatildeo

Hosp A

Seq = 100 20 bytes dados

ACK = 100

tempoTimeout prematuro

Hosp B

Seq = 92 8 bytes dados

ACK = 120

Seq = 92 8 bytes dados

Seq

= 9

2 tim

eout

ACK = 120

Hosp A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio de ACK perdido

Hosp B

X

Seq = 92 8 bytes dados

ACK = 100

tempoS

eq =

92

timeo

ut

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 65

TCP cenaacuterios de retransmissatildeo

Host A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio ACK cumulativo

Host B

X

Seq = 100 20 bytes dados

ACK = 120

tempo

Transport Layer 3-66

TCP fast retransmit time-out period

often relatively long long delay before

resending lost packet detect lost

segments via duplicate ACKs sender often sends

many segments back-to-back

if segment is lost there will likely be many duplicate ACKs

if sender receives 3 ACKs for same data(ldquotriple duplicate ACKsrdquo) resend unacked segment with smallest seq

likely that unacked segment lost so donrsquot wait for timeout

TCP fast retransmit

Transport Layer 3-67

X

fast retransmit after sender receipt of triple duplicate ACK

Host BHost A

Seq=92 8 bytes of data

ACK=100

timeo

ut ACK=100

ACK=100

ACK=100

TCP fast retransmit

Seq=100 20 bytes of data

Seq=100 20 bytes of data

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 69

bull O nuacutemero de sequecircncia para um segmento eacute o nuacutemero do primeiro byte do segmento

bull O nuacutemero de reconhecimento que o hospedeiro A atribui a seu segmento eacute o nuacutemero de sequecircncia do proacuteximo byte que ele estiver aguardando do hospedeiro B

bull Como o TCP somente reconhece bytes ateacute o primeiro byte que estiver faltando na cadeia dizemos que o TCP provecirc reconhecimentos cumulativos

Nuacutemeros de sequecircncia e nuacutemeros de reconhecimento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 70

bull O TCP cria um serviccedilo de transferecircncia confiaacutevel de dados sobre o serviccedilo de melhor esforccedilo do IP

bull O serviccedilo de transferecircncia garante que a cadeia de bytes eacute idecircntica agrave cadeia de bytes enviada pelo sistema final que estaacute do outro lado da conexatildeo

bull Os procedimentos recomendados no [RFC 6298] para gerenciamento de temporizadores TCP utilizam apenas um uacutenico temporizador de retransmissatildeo

Transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 71

bull O TCP provecirc um serviccedilo de controle de fluxo agraves suas aplicaccedilotildees para eliminar a possibilidade de o remetente estourar o buffer do destinataacuterio

bull Controle de fluxo eacute um serviccedilo de compatibilizaccedilatildeo de velocidades

bull O TCP oferece serviccedilo de controle de fluxo fazendo que o remetente mantenha uma variaacutevel denominada janela de recepccedilatildeo

Controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 72

Regulaccedilatildeo da taxa de envio

Uma rede de transmissatildeo raacutepida eum receptor de baixa capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 73

Controle de fluxo TCP

lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo

serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora

processo da aplicaccedilatildeo pode ser lento na leitura do buffer

remetente natildeo estouraraacute buffer do destinataacuterio transmitindo muitos dados muito rapidamente

controle de fluxo

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 74

Controle de fluxo TCP como funciona

(suponha que destinataacuterio TCP descarte segmentos fora de ordem)

espaccedilo de buffer natildeo usado = rwnd (slide 48) = RcvBuffer-[LastByteRcvd -

LastByteRead]

destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento

remetente limita de bytes com ACK a rwndndash garante que buffer do

destinataacuterio natildeo estoura

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

rwndRcvBuffer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 75

Gerenciamento da conexatildeo TCP

lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados

inicializa variaacuteveis TCPndash s seqndash buffers informaccedilatildeo de

controle de fluxo (p e RcvWindow)

cliente inicia a conexatildeo Socket clientSocket = new

Socket(hostnameport ) servidor contactado pelo

cliente Socket connectionSocket =

welcomeSocketaccept()

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 76

Gerenciamento da conexatildeo TCP

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 77

fechando uma conexatildeo

cliente fecha socket clientSocketclose()

etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor

etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN

cliente

FIN

servidor

ACK

ACK

FIN

fecha

fecha

fechado

espe

ra

tem

poriz

ada

Gerenciamento da conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 79

Controle de congestionamento

Uma rede de transmissatildeo lenta eum receptor de alta capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 80

bull As causas e os custos do congestionamento

Cenaacuterio de congestionamento 1 duas conexotildees compartilhando um uacutenico roteador com nuacutemero infinito de buffers

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 81

bull As causas e os custos do congestionamentoCenaacuterio de congestionamento 1 vazatildeo e atraso em funccedilatildeo da taxa de envio do hospedeiro

ldquocustosrdquo do congestionamento Aumento de atrasos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 82

bull As causas e os custos do congestionamento

Cenaacuterio 2 dois hospedeiros (com retransmissotildees) e um roteador com buffers finitos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 83

a) Caso ideal (vazatildeo)

b) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda

c) retransmissatildeo do pacote adiado (natildeo perdido) torna maior (que

o caso perfeito ) para o mesmo

in

out

=

in

out

gt

in

out

ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do

pacote

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 84

bull As causas e os custos do congestionamento

Cenaacuterio 3 quatro remetentesroteadores com buffers finitos e trajetos com muacuteltiplos roteadores

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 85

outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer capacidade

de transmissatildeo anterior usada para esse pacote foi desperdiccedilada

Host A

Host B

o

u

t

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 86

Controle de congestionamento fim a fim

bull A camada de rede natildeo fornece nenhum suporte expliacutecito agrave camada de transporte com a finalidade de controle de congestionamento

Controle de congestionamento assistido pela rede

bull Os componentes da camada de rede (isto eacute roteadores) fornecem retroalimentaccedilatildeo especiacutefica de informaccedilotildees ao remetente a respeito do estado de congestionamento na rede Natildeo usual

Mecanismos de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 87

bull A abordagem adotada pelo TCP eacute obrigar cada remetente a limitar a taxa agrave qual enviam traacutefego para sua conexatildeo como uma funccedilatildeo do congestionamento de rede percebido

Se um remetente TCP perceber que haacute pouco congestionamento no caminho entre ele e o destinataacuterio aumentaraacute sua taxa de envio

Se perceber que haacute congestionamento reduziraacute sua taxa de

envio

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 88

bull Mas essa abordagem levanta trecircs questotildees

1 Como um remetente TCP limita a taxa pela qual envia traacutefego para sua conexatildeo

2 Como um remetente TCP percebe que haacute congestionamento entre ele e o destinataacuterio

3 Que algoritmo o remetente deve utilizar para modificar sua taxa de envio como uma funccedilatildeo do congestionamento fim a fim percebido

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 89

bull Partida lenta TCP

Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 90

1) Cwnd = 1 MSS inicialmente

2) Partida lenta a cada rodada redefine cwnd = cwnd 2

3) Perda de pacotes (esgotamento de temporizaccedilatildeo ndash problema grave) ==gt cwnd = 1 (Tahoe ou Reno)

4) Prevenccedilatildeo de congestionamento apoacutes atingir sstresh cwnd = cwnd + 1

5) Trecircs acks duplicados (buraco no ldquofluxordquo ndash problema brando) entra no estado prevenccedilatildeo de congestionamento e redefine cwnd = 1 (Tahoe) ou cwnd = sstresh (Reno)

6) Sstresh = cwnd2 quando satildeo detectados problemas

Quantidade de dados natildeo reconhecidas no TCP = min(CongWin RecWin)

Controle de congestionamento TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 91

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 93

bull Evoluccedilatildeo da janela de congestionamento do TCP (Tahoe e Reno ndash mais usual)

Recuperaccedilatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 94

Controle de congestionamento TCP

Partida lenta seguida por aumento aditivo no TCP Tahoe

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 95

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 96

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 97

bull O controle de congestionamento AIMD (Additive-increase Multiplicative-Decrease) faz surgir o comportamento semelhante a ldquodentes de serrardquo

bull httpsmediapearsoncmgcomawecs_kurose_compnetwork_7cwcontentinteractiveanimationstcp-congestionindexhtml

Controle de congestionamento no TCP retrospectiva

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 98

O que eacute throughput meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughput meacutedio 075 WRTT (75 WRTT)

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 99

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (Probabilidade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 100

bull Duas conexotildees TCP compartilhando um uacutenico enlace congestionado

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 101

bull Vazatildeo alcanccedilada pelas conexotildees TCP 1 e TCP 2bull Ambas conexotildees em algum momento estatildeo com vazatildeo Abull Ambas vatildeo aumentando a vazatildeo ateacute ocorrer perda ndash Bbull Sstresh cai pela metade e ambas migram para Chellip

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 102

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

ndash Consequecircncia

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Nova aplicaccedilatildeo pede 1 TCP obteacutem taxa de R10 Nova aplicaccedilatildeo pede 11 TCPs obteacutem R2

Equidade

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Multiplexingdemultiplexing
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Principles of reliable data transfer
  • Slide 20
  • Slide 21
  • Reliable data transfer getting started
  • Slide 23
  • Slide 24
  • Slide 25
  • rdt20 FSM specification
  • rdt20 operation with no errors
  • rdt20 error scenario
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • rdt30 in action
  • Slide 39
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Selective repeat dilemma
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • TCP fast retransmit
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
Page 41: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 44

Um protocolo com paralelismo em operaccedilatildeo

bull O ACK recebido eacute de que pacote

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 45

bull Envio com pare e espere

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 46

bull Envio com paralelismo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Aumento de utilizaccedilatildeopor fator de 3

U remet =

0024 30008

= 00008 microseconds

3 L R RTT + L R

=

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 47

bull Em um protocolo Go-Back-N (GBN) o remetente eacute autorizado a transmitir muacuteltiplos pacotes sem esperar por um reconhecimento

bull Poreacutem fica limitado a ter natildeo mais do que algum nuacutemero maacuteximo permitido N (tamanho da janela) de pacotes natildeo reconhecidos na ldquotubulaccedilatildeordquo

bull Visatildeo do remetente para os nuacutemeros de sequecircncia no protocolo Go-Back-N

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 48

bull Descriccedilatildeo da FSM estendida do remetente GBNbull Quem consegue descrever o funcionamento

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 49

bull Descriccedilatildeo da FSM estendida do destinataacuterio GBN

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 50

Go-Back-N (GBN) em operaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 51

bull Protocolos de repeticcedilatildeo seletiva (SR) evitam retransmissotildees desnecessaacuterias

bull Eles fazem o remetente retransmitir apenas os pacotes suspeitos de terem sido recebidos com erro no destinataacuterio

bull Essa retransmissatildeo individual soacute quando necessaacuteria exige que o destinataacuterio reconheccedila individualmente os pacotes recebidos de modo correto

Repeticcedilatildeo seletiva (SR)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 52

Repeticcedilatildeo seletiva (SR)

Transport Layer 3-53

Selective repeatdilemma

example seq rsquos 0 1 2 3 window size=3

receiver window(after receipt)

sender window(after receipt)

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2 pkt0

timeoutretransmit pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2XXX

will accept packetwith seq number 0

(b) oops

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

X

will accept packetwith seq number 0

0 1 2 3 0 1 2 pkt3

(a) no problem

receiver canrsquot see sender sidereceiver behavior identical in both casessomethingrsquos (very) wrong

receiver sees no difference in two scenarios

duplicate data accepted as new in (b)

Q what relationship between seq size and window size to avoid problem in (b)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 54

Resumo de mecanismos de transferecircncia confiaacutevel de dados e sua utilizaccedilatildeo

bull Soma de verificaccedilatildeo - Usada para detectar erros de bits em um pacote transmitido

bull Temporizador - Usado para controlar a temporizaccedilatildeoretransmissatildeo de um pacote possivelmente porque o pacote (ou seu ACK) foi perdido dentro do canal

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 55

bull Nuacutemero de sequecircncia - Usado para numeraccedilatildeo sequencial de segmentos de dados que transitam do remetente ao destinataacuterio Ou seja pode-se ter vaacuterios segmentos transitando simultaneamente no canal de comunicaccedilatildeo maximizando assim o uso desse canal

bull Reconhecimento - Usado pelo destinataacuterio para avisar o remetente que um pacote ou conjunto de pacotes foi recebido corretamente

bull Janela paralelismo - O remetente pode ficar restrito a enviar somente pacotes com nuacutemeros de sequecircncia que caiam dentro de uma determinada faixa

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 56

bull Uma conexatildeo TCP provecirc um serviccedilo full-duplex

bull A conexatildeo TCP eacute sempre ponto a ponto

bull Uma vez estabelecida uma conexatildeo TCP dois processos de aplicaccedilatildeo podem enviar dados um para o outro 3-way handshake jaacute estabelecendo o MSS

bull O TCP combina cada porccedilatildeo de dados do cliente com um cabeccedilalho TCP formando assim segmentos TCP

A conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 57

Estrutura do segmento TCPURG dados urgentes

(quase natildeo usado)

ACK ACKvaacutelido

PSH empurrar dados agora

RST SYN FINestab conexatildeo

soma de verificaccedilatildeo

da Internet ndash todo o segmento(como em UDP)

bytes destinataacuteriopode aceitar

contagem porbytes de dados(natildeo segmentos)

Opcional e de comprimentovariaacutevel utilizado paranegociar o MSS ou fatorde escala em redes dealta velocidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 58

TCP Estabelecendo e fechando conexotildees

3-way handshakeFinalizando

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 59

s sequecircncia e ACKs do TCP

Cenaacuterio preestabelecido telnet simples

rsquos de sequecircnciandash ldquonuacutemerordquo na cadeia de

bytes do 1o byte nos dados do segmento

ACKsndash seq do proacuteximo byte

esperado do outro ladondash ACK cumulativo

P como o destinataacuterio trata segmentos fora de ordem

ndash R TCP natildeo diz ndash a criteacuterio do implementador

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 60

Tempo de ida e volta e timeout do TCP

P Como definir o valor de timeout do TCP

maior que RTTndash mas RTT varia

muito curto timeout prematurondash retransmissotildees

desnecessaacuterias muito longo baixa

reaccedilatildeo a perda de segmento

P Como estimar o RTT SampleRTT tempo medido

da transmissatildeo do segmento ateacute receber o ACKndash ignora retransmissotildees

SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquondash meacutedia de vaacuterias mediccedilotildees

recentes natildeo apenas SampleRTT atual

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 61

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui exponencialmente

raacutepido valor tiacutepico = 0125

Tempo de ida e volta e timeout do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 62

Amostras de RTTs estimados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 63

definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(geralmente = 025)

depois definir intervalo de timeout

Tempo de ida e volta e timeout do TCP

TimeoutIntervalinicial

= 1 sldquomargem de seguranccedilardquo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 64

TCP cenaacuterios de retransmissatildeo

Hosp A

Seq = 100 20 bytes dados

ACK = 100

tempoTimeout prematuro

Hosp B

Seq = 92 8 bytes dados

ACK = 120

Seq = 92 8 bytes dados

Seq

= 9

2 tim

eout

ACK = 120

Hosp A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio de ACK perdido

Hosp B

X

Seq = 92 8 bytes dados

ACK = 100

tempoS

eq =

92

timeo

ut

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 65

TCP cenaacuterios de retransmissatildeo

Host A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio ACK cumulativo

Host B

X

Seq = 100 20 bytes dados

ACK = 120

tempo

Transport Layer 3-66

TCP fast retransmit time-out period

often relatively long long delay before

resending lost packet detect lost

segments via duplicate ACKs sender often sends

many segments back-to-back

if segment is lost there will likely be many duplicate ACKs

if sender receives 3 ACKs for same data(ldquotriple duplicate ACKsrdquo) resend unacked segment with smallest seq

likely that unacked segment lost so donrsquot wait for timeout

TCP fast retransmit

Transport Layer 3-67

X

fast retransmit after sender receipt of triple duplicate ACK

Host BHost A

Seq=92 8 bytes of data

ACK=100

timeo

ut ACK=100

ACK=100

ACK=100

TCP fast retransmit

Seq=100 20 bytes of data

Seq=100 20 bytes of data

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 69

bull O nuacutemero de sequecircncia para um segmento eacute o nuacutemero do primeiro byte do segmento

bull O nuacutemero de reconhecimento que o hospedeiro A atribui a seu segmento eacute o nuacutemero de sequecircncia do proacuteximo byte que ele estiver aguardando do hospedeiro B

bull Como o TCP somente reconhece bytes ateacute o primeiro byte que estiver faltando na cadeia dizemos que o TCP provecirc reconhecimentos cumulativos

Nuacutemeros de sequecircncia e nuacutemeros de reconhecimento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 70

bull O TCP cria um serviccedilo de transferecircncia confiaacutevel de dados sobre o serviccedilo de melhor esforccedilo do IP

bull O serviccedilo de transferecircncia garante que a cadeia de bytes eacute idecircntica agrave cadeia de bytes enviada pelo sistema final que estaacute do outro lado da conexatildeo

bull Os procedimentos recomendados no [RFC 6298] para gerenciamento de temporizadores TCP utilizam apenas um uacutenico temporizador de retransmissatildeo

Transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 71

bull O TCP provecirc um serviccedilo de controle de fluxo agraves suas aplicaccedilotildees para eliminar a possibilidade de o remetente estourar o buffer do destinataacuterio

bull Controle de fluxo eacute um serviccedilo de compatibilizaccedilatildeo de velocidades

bull O TCP oferece serviccedilo de controle de fluxo fazendo que o remetente mantenha uma variaacutevel denominada janela de recepccedilatildeo

Controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 72

Regulaccedilatildeo da taxa de envio

Uma rede de transmissatildeo raacutepida eum receptor de baixa capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 73

Controle de fluxo TCP

lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo

serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora

processo da aplicaccedilatildeo pode ser lento na leitura do buffer

remetente natildeo estouraraacute buffer do destinataacuterio transmitindo muitos dados muito rapidamente

controle de fluxo

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 74

Controle de fluxo TCP como funciona

(suponha que destinataacuterio TCP descarte segmentos fora de ordem)

espaccedilo de buffer natildeo usado = rwnd (slide 48) = RcvBuffer-[LastByteRcvd -

LastByteRead]

destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento

remetente limita de bytes com ACK a rwndndash garante que buffer do

destinataacuterio natildeo estoura

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

rwndRcvBuffer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 75

Gerenciamento da conexatildeo TCP

lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados

inicializa variaacuteveis TCPndash s seqndash buffers informaccedilatildeo de

controle de fluxo (p e RcvWindow)

cliente inicia a conexatildeo Socket clientSocket = new

Socket(hostnameport ) servidor contactado pelo

cliente Socket connectionSocket =

welcomeSocketaccept()

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 76

Gerenciamento da conexatildeo TCP

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 77

fechando uma conexatildeo

cliente fecha socket clientSocketclose()

etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor

etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN

cliente

FIN

servidor

ACK

ACK

FIN

fecha

fecha

fechado

espe

ra

tem

poriz

ada

Gerenciamento da conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 79

Controle de congestionamento

Uma rede de transmissatildeo lenta eum receptor de alta capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 80

bull As causas e os custos do congestionamento

Cenaacuterio de congestionamento 1 duas conexotildees compartilhando um uacutenico roteador com nuacutemero infinito de buffers

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 81

bull As causas e os custos do congestionamentoCenaacuterio de congestionamento 1 vazatildeo e atraso em funccedilatildeo da taxa de envio do hospedeiro

ldquocustosrdquo do congestionamento Aumento de atrasos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 82

bull As causas e os custos do congestionamento

Cenaacuterio 2 dois hospedeiros (com retransmissotildees) e um roteador com buffers finitos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 83

a) Caso ideal (vazatildeo)

b) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda

c) retransmissatildeo do pacote adiado (natildeo perdido) torna maior (que

o caso perfeito ) para o mesmo

in

out

=

in

out

gt

in

out

ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do

pacote

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 84

bull As causas e os custos do congestionamento

Cenaacuterio 3 quatro remetentesroteadores com buffers finitos e trajetos com muacuteltiplos roteadores

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 85

outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer capacidade

de transmissatildeo anterior usada para esse pacote foi desperdiccedilada

Host A

Host B

o

u

t

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 86

Controle de congestionamento fim a fim

bull A camada de rede natildeo fornece nenhum suporte expliacutecito agrave camada de transporte com a finalidade de controle de congestionamento

Controle de congestionamento assistido pela rede

bull Os componentes da camada de rede (isto eacute roteadores) fornecem retroalimentaccedilatildeo especiacutefica de informaccedilotildees ao remetente a respeito do estado de congestionamento na rede Natildeo usual

Mecanismos de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 87

bull A abordagem adotada pelo TCP eacute obrigar cada remetente a limitar a taxa agrave qual enviam traacutefego para sua conexatildeo como uma funccedilatildeo do congestionamento de rede percebido

Se um remetente TCP perceber que haacute pouco congestionamento no caminho entre ele e o destinataacuterio aumentaraacute sua taxa de envio

Se perceber que haacute congestionamento reduziraacute sua taxa de

envio

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 88

bull Mas essa abordagem levanta trecircs questotildees

1 Como um remetente TCP limita a taxa pela qual envia traacutefego para sua conexatildeo

2 Como um remetente TCP percebe que haacute congestionamento entre ele e o destinataacuterio

3 Que algoritmo o remetente deve utilizar para modificar sua taxa de envio como uma funccedilatildeo do congestionamento fim a fim percebido

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 89

bull Partida lenta TCP

Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 90

1) Cwnd = 1 MSS inicialmente

2) Partida lenta a cada rodada redefine cwnd = cwnd 2

3) Perda de pacotes (esgotamento de temporizaccedilatildeo ndash problema grave) ==gt cwnd = 1 (Tahoe ou Reno)

4) Prevenccedilatildeo de congestionamento apoacutes atingir sstresh cwnd = cwnd + 1

5) Trecircs acks duplicados (buraco no ldquofluxordquo ndash problema brando) entra no estado prevenccedilatildeo de congestionamento e redefine cwnd = 1 (Tahoe) ou cwnd = sstresh (Reno)

6) Sstresh = cwnd2 quando satildeo detectados problemas

Quantidade de dados natildeo reconhecidas no TCP = min(CongWin RecWin)

Controle de congestionamento TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 91

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 93

bull Evoluccedilatildeo da janela de congestionamento do TCP (Tahoe e Reno ndash mais usual)

Recuperaccedilatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 94

Controle de congestionamento TCP

Partida lenta seguida por aumento aditivo no TCP Tahoe

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 95

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 96

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 97

bull O controle de congestionamento AIMD (Additive-increase Multiplicative-Decrease) faz surgir o comportamento semelhante a ldquodentes de serrardquo

bull httpsmediapearsoncmgcomawecs_kurose_compnetwork_7cwcontentinteractiveanimationstcp-congestionindexhtml

Controle de congestionamento no TCP retrospectiva

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 98

O que eacute throughput meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughput meacutedio 075 WRTT (75 WRTT)

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 99

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (Probabilidade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 100

bull Duas conexotildees TCP compartilhando um uacutenico enlace congestionado

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 101

bull Vazatildeo alcanccedilada pelas conexotildees TCP 1 e TCP 2bull Ambas conexotildees em algum momento estatildeo com vazatildeo Abull Ambas vatildeo aumentando a vazatildeo ateacute ocorrer perda ndash Bbull Sstresh cai pela metade e ambas migram para Chellip

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 102

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

ndash Consequecircncia

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Nova aplicaccedilatildeo pede 1 TCP obteacutem taxa de R10 Nova aplicaccedilatildeo pede 11 TCPs obteacutem R2

Equidade

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Multiplexingdemultiplexing
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Principles of reliable data transfer
  • Slide 20
  • Slide 21
  • Reliable data transfer getting started
  • Slide 23
  • Slide 24
  • Slide 25
  • rdt20 FSM specification
  • rdt20 operation with no errors
  • rdt20 error scenario
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • rdt30 in action
  • Slide 39
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Selective repeat dilemma
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • TCP fast retransmit
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
Page 42: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 45

bull Envio com pare e espere

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 46

bull Envio com paralelismo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Aumento de utilizaccedilatildeopor fator de 3

U remet =

0024 30008

= 00008 microseconds

3 L R RTT + L R

=

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 47

bull Em um protocolo Go-Back-N (GBN) o remetente eacute autorizado a transmitir muacuteltiplos pacotes sem esperar por um reconhecimento

bull Poreacutem fica limitado a ter natildeo mais do que algum nuacutemero maacuteximo permitido N (tamanho da janela) de pacotes natildeo reconhecidos na ldquotubulaccedilatildeordquo

bull Visatildeo do remetente para os nuacutemeros de sequecircncia no protocolo Go-Back-N

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 48

bull Descriccedilatildeo da FSM estendida do remetente GBNbull Quem consegue descrever o funcionamento

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 49

bull Descriccedilatildeo da FSM estendida do destinataacuterio GBN

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 50

Go-Back-N (GBN) em operaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 51

bull Protocolos de repeticcedilatildeo seletiva (SR) evitam retransmissotildees desnecessaacuterias

bull Eles fazem o remetente retransmitir apenas os pacotes suspeitos de terem sido recebidos com erro no destinataacuterio

bull Essa retransmissatildeo individual soacute quando necessaacuteria exige que o destinataacuterio reconheccedila individualmente os pacotes recebidos de modo correto

Repeticcedilatildeo seletiva (SR)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 52

Repeticcedilatildeo seletiva (SR)

Transport Layer 3-53

Selective repeatdilemma

example seq rsquos 0 1 2 3 window size=3

receiver window(after receipt)

sender window(after receipt)

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2 pkt0

timeoutretransmit pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2XXX

will accept packetwith seq number 0

(b) oops

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

X

will accept packetwith seq number 0

0 1 2 3 0 1 2 pkt3

(a) no problem

receiver canrsquot see sender sidereceiver behavior identical in both casessomethingrsquos (very) wrong

receiver sees no difference in two scenarios

duplicate data accepted as new in (b)

Q what relationship between seq size and window size to avoid problem in (b)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 54

Resumo de mecanismos de transferecircncia confiaacutevel de dados e sua utilizaccedilatildeo

bull Soma de verificaccedilatildeo - Usada para detectar erros de bits em um pacote transmitido

bull Temporizador - Usado para controlar a temporizaccedilatildeoretransmissatildeo de um pacote possivelmente porque o pacote (ou seu ACK) foi perdido dentro do canal

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 55

bull Nuacutemero de sequecircncia - Usado para numeraccedilatildeo sequencial de segmentos de dados que transitam do remetente ao destinataacuterio Ou seja pode-se ter vaacuterios segmentos transitando simultaneamente no canal de comunicaccedilatildeo maximizando assim o uso desse canal

bull Reconhecimento - Usado pelo destinataacuterio para avisar o remetente que um pacote ou conjunto de pacotes foi recebido corretamente

bull Janela paralelismo - O remetente pode ficar restrito a enviar somente pacotes com nuacutemeros de sequecircncia que caiam dentro de uma determinada faixa

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 56

bull Uma conexatildeo TCP provecirc um serviccedilo full-duplex

bull A conexatildeo TCP eacute sempre ponto a ponto

bull Uma vez estabelecida uma conexatildeo TCP dois processos de aplicaccedilatildeo podem enviar dados um para o outro 3-way handshake jaacute estabelecendo o MSS

bull O TCP combina cada porccedilatildeo de dados do cliente com um cabeccedilalho TCP formando assim segmentos TCP

A conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 57

Estrutura do segmento TCPURG dados urgentes

(quase natildeo usado)

ACK ACKvaacutelido

PSH empurrar dados agora

RST SYN FINestab conexatildeo

soma de verificaccedilatildeo

da Internet ndash todo o segmento(como em UDP)

bytes destinataacuteriopode aceitar

contagem porbytes de dados(natildeo segmentos)

Opcional e de comprimentovariaacutevel utilizado paranegociar o MSS ou fatorde escala em redes dealta velocidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 58

TCP Estabelecendo e fechando conexotildees

3-way handshakeFinalizando

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 59

s sequecircncia e ACKs do TCP

Cenaacuterio preestabelecido telnet simples

rsquos de sequecircnciandash ldquonuacutemerordquo na cadeia de

bytes do 1o byte nos dados do segmento

ACKsndash seq do proacuteximo byte

esperado do outro ladondash ACK cumulativo

P como o destinataacuterio trata segmentos fora de ordem

ndash R TCP natildeo diz ndash a criteacuterio do implementador

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 60

Tempo de ida e volta e timeout do TCP

P Como definir o valor de timeout do TCP

maior que RTTndash mas RTT varia

muito curto timeout prematurondash retransmissotildees

desnecessaacuterias muito longo baixa

reaccedilatildeo a perda de segmento

P Como estimar o RTT SampleRTT tempo medido

da transmissatildeo do segmento ateacute receber o ACKndash ignora retransmissotildees

SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquondash meacutedia de vaacuterias mediccedilotildees

recentes natildeo apenas SampleRTT atual

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 61

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui exponencialmente

raacutepido valor tiacutepico = 0125

Tempo de ida e volta e timeout do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 62

Amostras de RTTs estimados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 63

definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(geralmente = 025)

depois definir intervalo de timeout

Tempo de ida e volta e timeout do TCP

TimeoutIntervalinicial

= 1 sldquomargem de seguranccedilardquo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 64

TCP cenaacuterios de retransmissatildeo

Hosp A

Seq = 100 20 bytes dados

ACK = 100

tempoTimeout prematuro

Hosp B

Seq = 92 8 bytes dados

ACK = 120

Seq = 92 8 bytes dados

Seq

= 9

2 tim

eout

ACK = 120

Hosp A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio de ACK perdido

Hosp B

X

Seq = 92 8 bytes dados

ACK = 100

tempoS

eq =

92

timeo

ut

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 65

TCP cenaacuterios de retransmissatildeo

Host A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio ACK cumulativo

Host B

X

Seq = 100 20 bytes dados

ACK = 120

tempo

Transport Layer 3-66

TCP fast retransmit time-out period

often relatively long long delay before

resending lost packet detect lost

segments via duplicate ACKs sender often sends

many segments back-to-back

if segment is lost there will likely be many duplicate ACKs

if sender receives 3 ACKs for same data(ldquotriple duplicate ACKsrdquo) resend unacked segment with smallest seq

likely that unacked segment lost so donrsquot wait for timeout

TCP fast retransmit

Transport Layer 3-67

X

fast retransmit after sender receipt of triple duplicate ACK

Host BHost A

Seq=92 8 bytes of data

ACK=100

timeo

ut ACK=100

ACK=100

ACK=100

TCP fast retransmit

Seq=100 20 bytes of data

Seq=100 20 bytes of data

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 69

bull O nuacutemero de sequecircncia para um segmento eacute o nuacutemero do primeiro byte do segmento

bull O nuacutemero de reconhecimento que o hospedeiro A atribui a seu segmento eacute o nuacutemero de sequecircncia do proacuteximo byte que ele estiver aguardando do hospedeiro B

bull Como o TCP somente reconhece bytes ateacute o primeiro byte que estiver faltando na cadeia dizemos que o TCP provecirc reconhecimentos cumulativos

Nuacutemeros de sequecircncia e nuacutemeros de reconhecimento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 70

bull O TCP cria um serviccedilo de transferecircncia confiaacutevel de dados sobre o serviccedilo de melhor esforccedilo do IP

bull O serviccedilo de transferecircncia garante que a cadeia de bytes eacute idecircntica agrave cadeia de bytes enviada pelo sistema final que estaacute do outro lado da conexatildeo

bull Os procedimentos recomendados no [RFC 6298] para gerenciamento de temporizadores TCP utilizam apenas um uacutenico temporizador de retransmissatildeo

Transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 71

bull O TCP provecirc um serviccedilo de controle de fluxo agraves suas aplicaccedilotildees para eliminar a possibilidade de o remetente estourar o buffer do destinataacuterio

bull Controle de fluxo eacute um serviccedilo de compatibilizaccedilatildeo de velocidades

bull O TCP oferece serviccedilo de controle de fluxo fazendo que o remetente mantenha uma variaacutevel denominada janela de recepccedilatildeo

Controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 72

Regulaccedilatildeo da taxa de envio

Uma rede de transmissatildeo raacutepida eum receptor de baixa capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 73

Controle de fluxo TCP

lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo

serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora

processo da aplicaccedilatildeo pode ser lento na leitura do buffer

remetente natildeo estouraraacute buffer do destinataacuterio transmitindo muitos dados muito rapidamente

controle de fluxo

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 74

Controle de fluxo TCP como funciona

(suponha que destinataacuterio TCP descarte segmentos fora de ordem)

espaccedilo de buffer natildeo usado = rwnd (slide 48) = RcvBuffer-[LastByteRcvd -

LastByteRead]

destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento

remetente limita de bytes com ACK a rwndndash garante que buffer do

destinataacuterio natildeo estoura

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

rwndRcvBuffer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 75

Gerenciamento da conexatildeo TCP

lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados

inicializa variaacuteveis TCPndash s seqndash buffers informaccedilatildeo de

controle de fluxo (p e RcvWindow)

cliente inicia a conexatildeo Socket clientSocket = new

Socket(hostnameport ) servidor contactado pelo

cliente Socket connectionSocket =

welcomeSocketaccept()

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 76

Gerenciamento da conexatildeo TCP

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 77

fechando uma conexatildeo

cliente fecha socket clientSocketclose()

etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor

etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN

cliente

FIN

servidor

ACK

ACK

FIN

fecha

fecha

fechado

espe

ra

tem

poriz

ada

Gerenciamento da conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 79

Controle de congestionamento

Uma rede de transmissatildeo lenta eum receptor de alta capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 80

bull As causas e os custos do congestionamento

Cenaacuterio de congestionamento 1 duas conexotildees compartilhando um uacutenico roteador com nuacutemero infinito de buffers

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 81

bull As causas e os custos do congestionamentoCenaacuterio de congestionamento 1 vazatildeo e atraso em funccedilatildeo da taxa de envio do hospedeiro

ldquocustosrdquo do congestionamento Aumento de atrasos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 82

bull As causas e os custos do congestionamento

Cenaacuterio 2 dois hospedeiros (com retransmissotildees) e um roteador com buffers finitos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 83

a) Caso ideal (vazatildeo)

b) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda

c) retransmissatildeo do pacote adiado (natildeo perdido) torna maior (que

o caso perfeito ) para o mesmo

in

out

=

in

out

gt

in

out

ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do

pacote

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 84

bull As causas e os custos do congestionamento

Cenaacuterio 3 quatro remetentesroteadores com buffers finitos e trajetos com muacuteltiplos roteadores

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 85

outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer capacidade

de transmissatildeo anterior usada para esse pacote foi desperdiccedilada

Host A

Host B

o

u

t

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 86

Controle de congestionamento fim a fim

bull A camada de rede natildeo fornece nenhum suporte expliacutecito agrave camada de transporte com a finalidade de controle de congestionamento

Controle de congestionamento assistido pela rede

bull Os componentes da camada de rede (isto eacute roteadores) fornecem retroalimentaccedilatildeo especiacutefica de informaccedilotildees ao remetente a respeito do estado de congestionamento na rede Natildeo usual

Mecanismos de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 87

bull A abordagem adotada pelo TCP eacute obrigar cada remetente a limitar a taxa agrave qual enviam traacutefego para sua conexatildeo como uma funccedilatildeo do congestionamento de rede percebido

Se um remetente TCP perceber que haacute pouco congestionamento no caminho entre ele e o destinataacuterio aumentaraacute sua taxa de envio

Se perceber que haacute congestionamento reduziraacute sua taxa de

envio

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 88

bull Mas essa abordagem levanta trecircs questotildees

1 Como um remetente TCP limita a taxa pela qual envia traacutefego para sua conexatildeo

2 Como um remetente TCP percebe que haacute congestionamento entre ele e o destinataacuterio

3 Que algoritmo o remetente deve utilizar para modificar sua taxa de envio como uma funccedilatildeo do congestionamento fim a fim percebido

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 89

bull Partida lenta TCP

Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 90

1) Cwnd = 1 MSS inicialmente

2) Partida lenta a cada rodada redefine cwnd = cwnd 2

3) Perda de pacotes (esgotamento de temporizaccedilatildeo ndash problema grave) ==gt cwnd = 1 (Tahoe ou Reno)

4) Prevenccedilatildeo de congestionamento apoacutes atingir sstresh cwnd = cwnd + 1

5) Trecircs acks duplicados (buraco no ldquofluxordquo ndash problema brando) entra no estado prevenccedilatildeo de congestionamento e redefine cwnd = 1 (Tahoe) ou cwnd = sstresh (Reno)

6) Sstresh = cwnd2 quando satildeo detectados problemas

Quantidade de dados natildeo reconhecidas no TCP = min(CongWin RecWin)

Controle de congestionamento TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 91

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 93

bull Evoluccedilatildeo da janela de congestionamento do TCP (Tahoe e Reno ndash mais usual)

Recuperaccedilatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 94

Controle de congestionamento TCP

Partida lenta seguida por aumento aditivo no TCP Tahoe

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 95

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 96

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 97

bull O controle de congestionamento AIMD (Additive-increase Multiplicative-Decrease) faz surgir o comportamento semelhante a ldquodentes de serrardquo

bull httpsmediapearsoncmgcomawecs_kurose_compnetwork_7cwcontentinteractiveanimationstcp-congestionindexhtml

Controle de congestionamento no TCP retrospectiva

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 98

O que eacute throughput meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughput meacutedio 075 WRTT (75 WRTT)

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 99

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (Probabilidade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 100

bull Duas conexotildees TCP compartilhando um uacutenico enlace congestionado

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 101

bull Vazatildeo alcanccedilada pelas conexotildees TCP 1 e TCP 2bull Ambas conexotildees em algum momento estatildeo com vazatildeo Abull Ambas vatildeo aumentando a vazatildeo ateacute ocorrer perda ndash Bbull Sstresh cai pela metade e ambas migram para Chellip

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 102

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

ndash Consequecircncia

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Nova aplicaccedilatildeo pede 1 TCP obteacutem taxa de R10 Nova aplicaccedilatildeo pede 11 TCPs obteacutem R2

Equidade

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Multiplexingdemultiplexing
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Principles of reliable data transfer
  • Slide 20
  • Slide 21
  • Reliable data transfer getting started
  • Slide 23
  • Slide 24
  • Slide 25
  • rdt20 FSM specification
  • rdt20 operation with no errors
  • rdt20 error scenario
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • rdt30 in action
  • Slide 39
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Selective repeat dilemma
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • TCP fast retransmit
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
Page 43: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 46

bull Envio com paralelismo

Protocolos de transferecircncia confiaacutevel de dados com paralelismo

Aumento de utilizaccedilatildeopor fator de 3

U remet =

0024 30008

= 00008 microseconds

3 L R RTT + L R

=

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 47

bull Em um protocolo Go-Back-N (GBN) o remetente eacute autorizado a transmitir muacuteltiplos pacotes sem esperar por um reconhecimento

bull Poreacutem fica limitado a ter natildeo mais do que algum nuacutemero maacuteximo permitido N (tamanho da janela) de pacotes natildeo reconhecidos na ldquotubulaccedilatildeordquo

bull Visatildeo do remetente para os nuacutemeros de sequecircncia no protocolo Go-Back-N

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 48

bull Descriccedilatildeo da FSM estendida do remetente GBNbull Quem consegue descrever o funcionamento

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 49

bull Descriccedilatildeo da FSM estendida do destinataacuterio GBN

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 50

Go-Back-N (GBN) em operaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 51

bull Protocolos de repeticcedilatildeo seletiva (SR) evitam retransmissotildees desnecessaacuterias

bull Eles fazem o remetente retransmitir apenas os pacotes suspeitos de terem sido recebidos com erro no destinataacuterio

bull Essa retransmissatildeo individual soacute quando necessaacuteria exige que o destinataacuterio reconheccedila individualmente os pacotes recebidos de modo correto

Repeticcedilatildeo seletiva (SR)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 52

Repeticcedilatildeo seletiva (SR)

Transport Layer 3-53

Selective repeatdilemma

example seq rsquos 0 1 2 3 window size=3

receiver window(after receipt)

sender window(after receipt)

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2 pkt0

timeoutretransmit pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2XXX

will accept packetwith seq number 0

(b) oops

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

X

will accept packetwith seq number 0

0 1 2 3 0 1 2 pkt3

(a) no problem

receiver canrsquot see sender sidereceiver behavior identical in both casessomethingrsquos (very) wrong

receiver sees no difference in two scenarios

duplicate data accepted as new in (b)

Q what relationship between seq size and window size to avoid problem in (b)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 54

Resumo de mecanismos de transferecircncia confiaacutevel de dados e sua utilizaccedilatildeo

bull Soma de verificaccedilatildeo - Usada para detectar erros de bits em um pacote transmitido

bull Temporizador - Usado para controlar a temporizaccedilatildeoretransmissatildeo de um pacote possivelmente porque o pacote (ou seu ACK) foi perdido dentro do canal

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 55

bull Nuacutemero de sequecircncia - Usado para numeraccedilatildeo sequencial de segmentos de dados que transitam do remetente ao destinataacuterio Ou seja pode-se ter vaacuterios segmentos transitando simultaneamente no canal de comunicaccedilatildeo maximizando assim o uso desse canal

bull Reconhecimento - Usado pelo destinataacuterio para avisar o remetente que um pacote ou conjunto de pacotes foi recebido corretamente

bull Janela paralelismo - O remetente pode ficar restrito a enviar somente pacotes com nuacutemeros de sequecircncia que caiam dentro de uma determinada faixa

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 56

bull Uma conexatildeo TCP provecirc um serviccedilo full-duplex

bull A conexatildeo TCP eacute sempre ponto a ponto

bull Uma vez estabelecida uma conexatildeo TCP dois processos de aplicaccedilatildeo podem enviar dados um para o outro 3-way handshake jaacute estabelecendo o MSS

bull O TCP combina cada porccedilatildeo de dados do cliente com um cabeccedilalho TCP formando assim segmentos TCP

A conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 57

Estrutura do segmento TCPURG dados urgentes

(quase natildeo usado)

ACK ACKvaacutelido

PSH empurrar dados agora

RST SYN FINestab conexatildeo

soma de verificaccedilatildeo

da Internet ndash todo o segmento(como em UDP)

bytes destinataacuteriopode aceitar

contagem porbytes de dados(natildeo segmentos)

Opcional e de comprimentovariaacutevel utilizado paranegociar o MSS ou fatorde escala em redes dealta velocidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 58

TCP Estabelecendo e fechando conexotildees

3-way handshakeFinalizando

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 59

s sequecircncia e ACKs do TCP

Cenaacuterio preestabelecido telnet simples

rsquos de sequecircnciandash ldquonuacutemerordquo na cadeia de

bytes do 1o byte nos dados do segmento

ACKsndash seq do proacuteximo byte

esperado do outro ladondash ACK cumulativo

P como o destinataacuterio trata segmentos fora de ordem

ndash R TCP natildeo diz ndash a criteacuterio do implementador

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 60

Tempo de ida e volta e timeout do TCP

P Como definir o valor de timeout do TCP

maior que RTTndash mas RTT varia

muito curto timeout prematurondash retransmissotildees

desnecessaacuterias muito longo baixa

reaccedilatildeo a perda de segmento

P Como estimar o RTT SampleRTT tempo medido

da transmissatildeo do segmento ateacute receber o ACKndash ignora retransmissotildees

SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquondash meacutedia de vaacuterias mediccedilotildees

recentes natildeo apenas SampleRTT atual

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 61

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui exponencialmente

raacutepido valor tiacutepico = 0125

Tempo de ida e volta e timeout do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 62

Amostras de RTTs estimados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 63

definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(geralmente = 025)

depois definir intervalo de timeout

Tempo de ida e volta e timeout do TCP

TimeoutIntervalinicial

= 1 sldquomargem de seguranccedilardquo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 64

TCP cenaacuterios de retransmissatildeo

Hosp A

Seq = 100 20 bytes dados

ACK = 100

tempoTimeout prematuro

Hosp B

Seq = 92 8 bytes dados

ACK = 120

Seq = 92 8 bytes dados

Seq

= 9

2 tim

eout

ACK = 120

Hosp A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio de ACK perdido

Hosp B

X

Seq = 92 8 bytes dados

ACK = 100

tempoS

eq =

92

timeo

ut

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 65

TCP cenaacuterios de retransmissatildeo

Host A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio ACK cumulativo

Host B

X

Seq = 100 20 bytes dados

ACK = 120

tempo

Transport Layer 3-66

TCP fast retransmit time-out period

often relatively long long delay before

resending lost packet detect lost

segments via duplicate ACKs sender often sends

many segments back-to-back

if segment is lost there will likely be many duplicate ACKs

if sender receives 3 ACKs for same data(ldquotriple duplicate ACKsrdquo) resend unacked segment with smallest seq

likely that unacked segment lost so donrsquot wait for timeout

TCP fast retransmit

Transport Layer 3-67

X

fast retransmit after sender receipt of triple duplicate ACK

Host BHost A

Seq=92 8 bytes of data

ACK=100

timeo

ut ACK=100

ACK=100

ACK=100

TCP fast retransmit

Seq=100 20 bytes of data

Seq=100 20 bytes of data

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 69

bull O nuacutemero de sequecircncia para um segmento eacute o nuacutemero do primeiro byte do segmento

bull O nuacutemero de reconhecimento que o hospedeiro A atribui a seu segmento eacute o nuacutemero de sequecircncia do proacuteximo byte que ele estiver aguardando do hospedeiro B

bull Como o TCP somente reconhece bytes ateacute o primeiro byte que estiver faltando na cadeia dizemos que o TCP provecirc reconhecimentos cumulativos

Nuacutemeros de sequecircncia e nuacutemeros de reconhecimento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 70

bull O TCP cria um serviccedilo de transferecircncia confiaacutevel de dados sobre o serviccedilo de melhor esforccedilo do IP

bull O serviccedilo de transferecircncia garante que a cadeia de bytes eacute idecircntica agrave cadeia de bytes enviada pelo sistema final que estaacute do outro lado da conexatildeo

bull Os procedimentos recomendados no [RFC 6298] para gerenciamento de temporizadores TCP utilizam apenas um uacutenico temporizador de retransmissatildeo

Transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 71

bull O TCP provecirc um serviccedilo de controle de fluxo agraves suas aplicaccedilotildees para eliminar a possibilidade de o remetente estourar o buffer do destinataacuterio

bull Controle de fluxo eacute um serviccedilo de compatibilizaccedilatildeo de velocidades

bull O TCP oferece serviccedilo de controle de fluxo fazendo que o remetente mantenha uma variaacutevel denominada janela de recepccedilatildeo

Controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 72

Regulaccedilatildeo da taxa de envio

Uma rede de transmissatildeo raacutepida eum receptor de baixa capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 73

Controle de fluxo TCP

lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo

serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora

processo da aplicaccedilatildeo pode ser lento na leitura do buffer

remetente natildeo estouraraacute buffer do destinataacuterio transmitindo muitos dados muito rapidamente

controle de fluxo

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 74

Controle de fluxo TCP como funciona

(suponha que destinataacuterio TCP descarte segmentos fora de ordem)

espaccedilo de buffer natildeo usado = rwnd (slide 48) = RcvBuffer-[LastByteRcvd -

LastByteRead]

destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento

remetente limita de bytes com ACK a rwndndash garante que buffer do

destinataacuterio natildeo estoura

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

rwndRcvBuffer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 75

Gerenciamento da conexatildeo TCP

lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados

inicializa variaacuteveis TCPndash s seqndash buffers informaccedilatildeo de

controle de fluxo (p e RcvWindow)

cliente inicia a conexatildeo Socket clientSocket = new

Socket(hostnameport ) servidor contactado pelo

cliente Socket connectionSocket =

welcomeSocketaccept()

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 76

Gerenciamento da conexatildeo TCP

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 77

fechando uma conexatildeo

cliente fecha socket clientSocketclose()

etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor

etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN

cliente

FIN

servidor

ACK

ACK

FIN

fecha

fecha

fechado

espe

ra

tem

poriz

ada

Gerenciamento da conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 79

Controle de congestionamento

Uma rede de transmissatildeo lenta eum receptor de alta capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 80

bull As causas e os custos do congestionamento

Cenaacuterio de congestionamento 1 duas conexotildees compartilhando um uacutenico roteador com nuacutemero infinito de buffers

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 81

bull As causas e os custos do congestionamentoCenaacuterio de congestionamento 1 vazatildeo e atraso em funccedilatildeo da taxa de envio do hospedeiro

ldquocustosrdquo do congestionamento Aumento de atrasos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 82

bull As causas e os custos do congestionamento

Cenaacuterio 2 dois hospedeiros (com retransmissotildees) e um roteador com buffers finitos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 83

a) Caso ideal (vazatildeo)

b) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda

c) retransmissatildeo do pacote adiado (natildeo perdido) torna maior (que

o caso perfeito ) para o mesmo

in

out

=

in

out

gt

in

out

ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do

pacote

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 84

bull As causas e os custos do congestionamento

Cenaacuterio 3 quatro remetentesroteadores com buffers finitos e trajetos com muacuteltiplos roteadores

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 85

outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer capacidade

de transmissatildeo anterior usada para esse pacote foi desperdiccedilada

Host A

Host B

o

u

t

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 86

Controle de congestionamento fim a fim

bull A camada de rede natildeo fornece nenhum suporte expliacutecito agrave camada de transporte com a finalidade de controle de congestionamento

Controle de congestionamento assistido pela rede

bull Os componentes da camada de rede (isto eacute roteadores) fornecem retroalimentaccedilatildeo especiacutefica de informaccedilotildees ao remetente a respeito do estado de congestionamento na rede Natildeo usual

Mecanismos de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 87

bull A abordagem adotada pelo TCP eacute obrigar cada remetente a limitar a taxa agrave qual enviam traacutefego para sua conexatildeo como uma funccedilatildeo do congestionamento de rede percebido

Se um remetente TCP perceber que haacute pouco congestionamento no caminho entre ele e o destinataacuterio aumentaraacute sua taxa de envio

Se perceber que haacute congestionamento reduziraacute sua taxa de

envio

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 88

bull Mas essa abordagem levanta trecircs questotildees

1 Como um remetente TCP limita a taxa pela qual envia traacutefego para sua conexatildeo

2 Como um remetente TCP percebe que haacute congestionamento entre ele e o destinataacuterio

3 Que algoritmo o remetente deve utilizar para modificar sua taxa de envio como uma funccedilatildeo do congestionamento fim a fim percebido

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 89

bull Partida lenta TCP

Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 90

1) Cwnd = 1 MSS inicialmente

2) Partida lenta a cada rodada redefine cwnd = cwnd 2

3) Perda de pacotes (esgotamento de temporizaccedilatildeo ndash problema grave) ==gt cwnd = 1 (Tahoe ou Reno)

4) Prevenccedilatildeo de congestionamento apoacutes atingir sstresh cwnd = cwnd + 1

5) Trecircs acks duplicados (buraco no ldquofluxordquo ndash problema brando) entra no estado prevenccedilatildeo de congestionamento e redefine cwnd = 1 (Tahoe) ou cwnd = sstresh (Reno)

6) Sstresh = cwnd2 quando satildeo detectados problemas

Quantidade de dados natildeo reconhecidas no TCP = min(CongWin RecWin)

Controle de congestionamento TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 91

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 93

bull Evoluccedilatildeo da janela de congestionamento do TCP (Tahoe e Reno ndash mais usual)

Recuperaccedilatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 94

Controle de congestionamento TCP

Partida lenta seguida por aumento aditivo no TCP Tahoe

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 95

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 96

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 97

bull O controle de congestionamento AIMD (Additive-increase Multiplicative-Decrease) faz surgir o comportamento semelhante a ldquodentes de serrardquo

bull httpsmediapearsoncmgcomawecs_kurose_compnetwork_7cwcontentinteractiveanimationstcp-congestionindexhtml

Controle de congestionamento no TCP retrospectiva

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 98

O que eacute throughput meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughput meacutedio 075 WRTT (75 WRTT)

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 99

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (Probabilidade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 100

bull Duas conexotildees TCP compartilhando um uacutenico enlace congestionado

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 101

bull Vazatildeo alcanccedilada pelas conexotildees TCP 1 e TCP 2bull Ambas conexotildees em algum momento estatildeo com vazatildeo Abull Ambas vatildeo aumentando a vazatildeo ateacute ocorrer perda ndash Bbull Sstresh cai pela metade e ambas migram para Chellip

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 102

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

ndash Consequecircncia

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Nova aplicaccedilatildeo pede 1 TCP obteacutem taxa de R10 Nova aplicaccedilatildeo pede 11 TCPs obteacutem R2

Equidade

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Multiplexingdemultiplexing
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Principles of reliable data transfer
  • Slide 20
  • Slide 21
  • Reliable data transfer getting started
  • Slide 23
  • Slide 24
  • Slide 25
  • rdt20 FSM specification
  • rdt20 operation with no errors
  • rdt20 error scenario
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • rdt30 in action
  • Slide 39
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Selective repeat dilemma
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • TCP fast retransmit
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
Page 44: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 47

bull Em um protocolo Go-Back-N (GBN) o remetente eacute autorizado a transmitir muacuteltiplos pacotes sem esperar por um reconhecimento

bull Poreacutem fica limitado a ter natildeo mais do que algum nuacutemero maacuteximo permitido N (tamanho da janela) de pacotes natildeo reconhecidos na ldquotubulaccedilatildeordquo

bull Visatildeo do remetente para os nuacutemeros de sequecircncia no protocolo Go-Back-N

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 48

bull Descriccedilatildeo da FSM estendida do remetente GBNbull Quem consegue descrever o funcionamento

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 49

bull Descriccedilatildeo da FSM estendida do destinataacuterio GBN

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 50

Go-Back-N (GBN) em operaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 51

bull Protocolos de repeticcedilatildeo seletiva (SR) evitam retransmissotildees desnecessaacuterias

bull Eles fazem o remetente retransmitir apenas os pacotes suspeitos de terem sido recebidos com erro no destinataacuterio

bull Essa retransmissatildeo individual soacute quando necessaacuteria exige que o destinataacuterio reconheccedila individualmente os pacotes recebidos de modo correto

Repeticcedilatildeo seletiva (SR)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 52

Repeticcedilatildeo seletiva (SR)

Transport Layer 3-53

Selective repeatdilemma

example seq rsquos 0 1 2 3 window size=3

receiver window(after receipt)

sender window(after receipt)

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2 pkt0

timeoutretransmit pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2XXX

will accept packetwith seq number 0

(b) oops

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

X

will accept packetwith seq number 0

0 1 2 3 0 1 2 pkt3

(a) no problem

receiver canrsquot see sender sidereceiver behavior identical in both casessomethingrsquos (very) wrong

receiver sees no difference in two scenarios

duplicate data accepted as new in (b)

Q what relationship between seq size and window size to avoid problem in (b)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 54

Resumo de mecanismos de transferecircncia confiaacutevel de dados e sua utilizaccedilatildeo

bull Soma de verificaccedilatildeo - Usada para detectar erros de bits em um pacote transmitido

bull Temporizador - Usado para controlar a temporizaccedilatildeoretransmissatildeo de um pacote possivelmente porque o pacote (ou seu ACK) foi perdido dentro do canal

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 55

bull Nuacutemero de sequecircncia - Usado para numeraccedilatildeo sequencial de segmentos de dados que transitam do remetente ao destinataacuterio Ou seja pode-se ter vaacuterios segmentos transitando simultaneamente no canal de comunicaccedilatildeo maximizando assim o uso desse canal

bull Reconhecimento - Usado pelo destinataacuterio para avisar o remetente que um pacote ou conjunto de pacotes foi recebido corretamente

bull Janela paralelismo - O remetente pode ficar restrito a enviar somente pacotes com nuacutemeros de sequecircncia que caiam dentro de uma determinada faixa

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 56

bull Uma conexatildeo TCP provecirc um serviccedilo full-duplex

bull A conexatildeo TCP eacute sempre ponto a ponto

bull Uma vez estabelecida uma conexatildeo TCP dois processos de aplicaccedilatildeo podem enviar dados um para o outro 3-way handshake jaacute estabelecendo o MSS

bull O TCP combina cada porccedilatildeo de dados do cliente com um cabeccedilalho TCP formando assim segmentos TCP

A conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 57

Estrutura do segmento TCPURG dados urgentes

(quase natildeo usado)

ACK ACKvaacutelido

PSH empurrar dados agora

RST SYN FINestab conexatildeo

soma de verificaccedilatildeo

da Internet ndash todo o segmento(como em UDP)

bytes destinataacuteriopode aceitar

contagem porbytes de dados(natildeo segmentos)

Opcional e de comprimentovariaacutevel utilizado paranegociar o MSS ou fatorde escala em redes dealta velocidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 58

TCP Estabelecendo e fechando conexotildees

3-way handshakeFinalizando

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 59

s sequecircncia e ACKs do TCP

Cenaacuterio preestabelecido telnet simples

rsquos de sequecircnciandash ldquonuacutemerordquo na cadeia de

bytes do 1o byte nos dados do segmento

ACKsndash seq do proacuteximo byte

esperado do outro ladondash ACK cumulativo

P como o destinataacuterio trata segmentos fora de ordem

ndash R TCP natildeo diz ndash a criteacuterio do implementador

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 60

Tempo de ida e volta e timeout do TCP

P Como definir o valor de timeout do TCP

maior que RTTndash mas RTT varia

muito curto timeout prematurondash retransmissotildees

desnecessaacuterias muito longo baixa

reaccedilatildeo a perda de segmento

P Como estimar o RTT SampleRTT tempo medido

da transmissatildeo do segmento ateacute receber o ACKndash ignora retransmissotildees

SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquondash meacutedia de vaacuterias mediccedilotildees

recentes natildeo apenas SampleRTT atual

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 61

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui exponencialmente

raacutepido valor tiacutepico = 0125

Tempo de ida e volta e timeout do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 62

Amostras de RTTs estimados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 63

definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(geralmente = 025)

depois definir intervalo de timeout

Tempo de ida e volta e timeout do TCP

TimeoutIntervalinicial

= 1 sldquomargem de seguranccedilardquo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 64

TCP cenaacuterios de retransmissatildeo

Hosp A

Seq = 100 20 bytes dados

ACK = 100

tempoTimeout prematuro

Hosp B

Seq = 92 8 bytes dados

ACK = 120

Seq = 92 8 bytes dados

Seq

= 9

2 tim

eout

ACK = 120

Hosp A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio de ACK perdido

Hosp B

X

Seq = 92 8 bytes dados

ACK = 100

tempoS

eq =

92

timeo

ut

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 65

TCP cenaacuterios de retransmissatildeo

Host A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio ACK cumulativo

Host B

X

Seq = 100 20 bytes dados

ACK = 120

tempo

Transport Layer 3-66

TCP fast retransmit time-out period

often relatively long long delay before

resending lost packet detect lost

segments via duplicate ACKs sender often sends

many segments back-to-back

if segment is lost there will likely be many duplicate ACKs

if sender receives 3 ACKs for same data(ldquotriple duplicate ACKsrdquo) resend unacked segment with smallest seq

likely that unacked segment lost so donrsquot wait for timeout

TCP fast retransmit

Transport Layer 3-67

X

fast retransmit after sender receipt of triple duplicate ACK

Host BHost A

Seq=92 8 bytes of data

ACK=100

timeo

ut ACK=100

ACK=100

ACK=100

TCP fast retransmit

Seq=100 20 bytes of data

Seq=100 20 bytes of data

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 69

bull O nuacutemero de sequecircncia para um segmento eacute o nuacutemero do primeiro byte do segmento

bull O nuacutemero de reconhecimento que o hospedeiro A atribui a seu segmento eacute o nuacutemero de sequecircncia do proacuteximo byte que ele estiver aguardando do hospedeiro B

bull Como o TCP somente reconhece bytes ateacute o primeiro byte que estiver faltando na cadeia dizemos que o TCP provecirc reconhecimentos cumulativos

Nuacutemeros de sequecircncia e nuacutemeros de reconhecimento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 70

bull O TCP cria um serviccedilo de transferecircncia confiaacutevel de dados sobre o serviccedilo de melhor esforccedilo do IP

bull O serviccedilo de transferecircncia garante que a cadeia de bytes eacute idecircntica agrave cadeia de bytes enviada pelo sistema final que estaacute do outro lado da conexatildeo

bull Os procedimentos recomendados no [RFC 6298] para gerenciamento de temporizadores TCP utilizam apenas um uacutenico temporizador de retransmissatildeo

Transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 71

bull O TCP provecirc um serviccedilo de controle de fluxo agraves suas aplicaccedilotildees para eliminar a possibilidade de o remetente estourar o buffer do destinataacuterio

bull Controle de fluxo eacute um serviccedilo de compatibilizaccedilatildeo de velocidades

bull O TCP oferece serviccedilo de controle de fluxo fazendo que o remetente mantenha uma variaacutevel denominada janela de recepccedilatildeo

Controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 72

Regulaccedilatildeo da taxa de envio

Uma rede de transmissatildeo raacutepida eum receptor de baixa capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 73

Controle de fluxo TCP

lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo

serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora

processo da aplicaccedilatildeo pode ser lento na leitura do buffer

remetente natildeo estouraraacute buffer do destinataacuterio transmitindo muitos dados muito rapidamente

controle de fluxo

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 74

Controle de fluxo TCP como funciona

(suponha que destinataacuterio TCP descarte segmentos fora de ordem)

espaccedilo de buffer natildeo usado = rwnd (slide 48) = RcvBuffer-[LastByteRcvd -

LastByteRead]

destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento

remetente limita de bytes com ACK a rwndndash garante que buffer do

destinataacuterio natildeo estoura

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

rwndRcvBuffer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 75

Gerenciamento da conexatildeo TCP

lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados

inicializa variaacuteveis TCPndash s seqndash buffers informaccedilatildeo de

controle de fluxo (p e RcvWindow)

cliente inicia a conexatildeo Socket clientSocket = new

Socket(hostnameport ) servidor contactado pelo

cliente Socket connectionSocket =

welcomeSocketaccept()

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 76

Gerenciamento da conexatildeo TCP

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 77

fechando uma conexatildeo

cliente fecha socket clientSocketclose()

etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor

etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN

cliente

FIN

servidor

ACK

ACK

FIN

fecha

fecha

fechado

espe

ra

tem

poriz

ada

Gerenciamento da conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 79

Controle de congestionamento

Uma rede de transmissatildeo lenta eum receptor de alta capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 80

bull As causas e os custos do congestionamento

Cenaacuterio de congestionamento 1 duas conexotildees compartilhando um uacutenico roteador com nuacutemero infinito de buffers

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 81

bull As causas e os custos do congestionamentoCenaacuterio de congestionamento 1 vazatildeo e atraso em funccedilatildeo da taxa de envio do hospedeiro

ldquocustosrdquo do congestionamento Aumento de atrasos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 82

bull As causas e os custos do congestionamento

Cenaacuterio 2 dois hospedeiros (com retransmissotildees) e um roteador com buffers finitos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 83

a) Caso ideal (vazatildeo)

b) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda

c) retransmissatildeo do pacote adiado (natildeo perdido) torna maior (que

o caso perfeito ) para o mesmo

in

out

=

in

out

gt

in

out

ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do

pacote

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 84

bull As causas e os custos do congestionamento

Cenaacuterio 3 quatro remetentesroteadores com buffers finitos e trajetos com muacuteltiplos roteadores

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 85

outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer capacidade

de transmissatildeo anterior usada para esse pacote foi desperdiccedilada

Host A

Host B

o

u

t

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 86

Controle de congestionamento fim a fim

bull A camada de rede natildeo fornece nenhum suporte expliacutecito agrave camada de transporte com a finalidade de controle de congestionamento

Controle de congestionamento assistido pela rede

bull Os componentes da camada de rede (isto eacute roteadores) fornecem retroalimentaccedilatildeo especiacutefica de informaccedilotildees ao remetente a respeito do estado de congestionamento na rede Natildeo usual

Mecanismos de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 87

bull A abordagem adotada pelo TCP eacute obrigar cada remetente a limitar a taxa agrave qual enviam traacutefego para sua conexatildeo como uma funccedilatildeo do congestionamento de rede percebido

Se um remetente TCP perceber que haacute pouco congestionamento no caminho entre ele e o destinataacuterio aumentaraacute sua taxa de envio

Se perceber que haacute congestionamento reduziraacute sua taxa de

envio

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 88

bull Mas essa abordagem levanta trecircs questotildees

1 Como um remetente TCP limita a taxa pela qual envia traacutefego para sua conexatildeo

2 Como um remetente TCP percebe que haacute congestionamento entre ele e o destinataacuterio

3 Que algoritmo o remetente deve utilizar para modificar sua taxa de envio como uma funccedilatildeo do congestionamento fim a fim percebido

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 89

bull Partida lenta TCP

Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 90

1) Cwnd = 1 MSS inicialmente

2) Partida lenta a cada rodada redefine cwnd = cwnd 2

3) Perda de pacotes (esgotamento de temporizaccedilatildeo ndash problema grave) ==gt cwnd = 1 (Tahoe ou Reno)

4) Prevenccedilatildeo de congestionamento apoacutes atingir sstresh cwnd = cwnd + 1

5) Trecircs acks duplicados (buraco no ldquofluxordquo ndash problema brando) entra no estado prevenccedilatildeo de congestionamento e redefine cwnd = 1 (Tahoe) ou cwnd = sstresh (Reno)

6) Sstresh = cwnd2 quando satildeo detectados problemas

Quantidade de dados natildeo reconhecidas no TCP = min(CongWin RecWin)

Controle de congestionamento TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 91

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 93

bull Evoluccedilatildeo da janela de congestionamento do TCP (Tahoe e Reno ndash mais usual)

Recuperaccedilatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 94

Controle de congestionamento TCP

Partida lenta seguida por aumento aditivo no TCP Tahoe

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 95

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 96

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 97

bull O controle de congestionamento AIMD (Additive-increase Multiplicative-Decrease) faz surgir o comportamento semelhante a ldquodentes de serrardquo

bull httpsmediapearsoncmgcomawecs_kurose_compnetwork_7cwcontentinteractiveanimationstcp-congestionindexhtml

Controle de congestionamento no TCP retrospectiva

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 98

O que eacute throughput meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughput meacutedio 075 WRTT (75 WRTT)

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 99

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (Probabilidade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 100

bull Duas conexotildees TCP compartilhando um uacutenico enlace congestionado

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 101

bull Vazatildeo alcanccedilada pelas conexotildees TCP 1 e TCP 2bull Ambas conexotildees em algum momento estatildeo com vazatildeo Abull Ambas vatildeo aumentando a vazatildeo ateacute ocorrer perda ndash Bbull Sstresh cai pela metade e ambas migram para Chellip

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 102

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

ndash Consequecircncia

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Nova aplicaccedilatildeo pede 1 TCP obteacutem taxa de R10 Nova aplicaccedilatildeo pede 11 TCPs obteacutem R2

Equidade

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Multiplexingdemultiplexing
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Principles of reliable data transfer
  • Slide 20
  • Slide 21
  • Reliable data transfer getting started
  • Slide 23
  • Slide 24
  • Slide 25
  • rdt20 FSM specification
  • rdt20 operation with no errors
  • rdt20 error scenario
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • rdt30 in action
  • Slide 39
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Selective repeat dilemma
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • TCP fast retransmit
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
Page 45: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 48

bull Descriccedilatildeo da FSM estendida do remetente GBNbull Quem consegue descrever o funcionamento

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 49

bull Descriccedilatildeo da FSM estendida do destinataacuterio GBN

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 50

Go-Back-N (GBN) em operaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 51

bull Protocolos de repeticcedilatildeo seletiva (SR) evitam retransmissotildees desnecessaacuterias

bull Eles fazem o remetente retransmitir apenas os pacotes suspeitos de terem sido recebidos com erro no destinataacuterio

bull Essa retransmissatildeo individual soacute quando necessaacuteria exige que o destinataacuterio reconheccedila individualmente os pacotes recebidos de modo correto

Repeticcedilatildeo seletiva (SR)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 52

Repeticcedilatildeo seletiva (SR)

Transport Layer 3-53

Selective repeatdilemma

example seq rsquos 0 1 2 3 window size=3

receiver window(after receipt)

sender window(after receipt)

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2 pkt0

timeoutretransmit pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2XXX

will accept packetwith seq number 0

(b) oops

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

X

will accept packetwith seq number 0

0 1 2 3 0 1 2 pkt3

(a) no problem

receiver canrsquot see sender sidereceiver behavior identical in both casessomethingrsquos (very) wrong

receiver sees no difference in two scenarios

duplicate data accepted as new in (b)

Q what relationship between seq size and window size to avoid problem in (b)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 54

Resumo de mecanismos de transferecircncia confiaacutevel de dados e sua utilizaccedilatildeo

bull Soma de verificaccedilatildeo - Usada para detectar erros de bits em um pacote transmitido

bull Temporizador - Usado para controlar a temporizaccedilatildeoretransmissatildeo de um pacote possivelmente porque o pacote (ou seu ACK) foi perdido dentro do canal

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 55

bull Nuacutemero de sequecircncia - Usado para numeraccedilatildeo sequencial de segmentos de dados que transitam do remetente ao destinataacuterio Ou seja pode-se ter vaacuterios segmentos transitando simultaneamente no canal de comunicaccedilatildeo maximizando assim o uso desse canal

bull Reconhecimento - Usado pelo destinataacuterio para avisar o remetente que um pacote ou conjunto de pacotes foi recebido corretamente

bull Janela paralelismo - O remetente pode ficar restrito a enviar somente pacotes com nuacutemeros de sequecircncia que caiam dentro de uma determinada faixa

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 56

bull Uma conexatildeo TCP provecirc um serviccedilo full-duplex

bull A conexatildeo TCP eacute sempre ponto a ponto

bull Uma vez estabelecida uma conexatildeo TCP dois processos de aplicaccedilatildeo podem enviar dados um para o outro 3-way handshake jaacute estabelecendo o MSS

bull O TCP combina cada porccedilatildeo de dados do cliente com um cabeccedilalho TCP formando assim segmentos TCP

A conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 57

Estrutura do segmento TCPURG dados urgentes

(quase natildeo usado)

ACK ACKvaacutelido

PSH empurrar dados agora

RST SYN FINestab conexatildeo

soma de verificaccedilatildeo

da Internet ndash todo o segmento(como em UDP)

bytes destinataacuteriopode aceitar

contagem porbytes de dados(natildeo segmentos)

Opcional e de comprimentovariaacutevel utilizado paranegociar o MSS ou fatorde escala em redes dealta velocidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 58

TCP Estabelecendo e fechando conexotildees

3-way handshakeFinalizando

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 59

s sequecircncia e ACKs do TCP

Cenaacuterio preestabelecido telnet simples

rsquos de sequecircnciandash ldquonuacutemerordquo na cadeia de

bytes do 1o byte nos dados do segmento

ACKsndash seq do proacuteximo byte

esperado do outro ladondash ACK cumulativo

P como o destinataacuterio trata segmentos fora de ordem

ndash R TCP natildeo diz ndash a criteacuterio do implementador

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 60

Tempo de ida e volta e timeout do TCP

P Como definir o valor de timeout do TCP

maior que RTTndash mas RTT varia

muito curto timeout prematurondash retransmissotildees

desnecessaacuterias muito longo baixa

reaccedilatildeo a perda de segmento

P Como estimar o RTT SampleRTT tempo medido

da transmissatildeo do segmento ateacute receber o ACKndash ignora retransmissotildees

SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquondash meacutedia de vaacuterias mediccedilotildees

recentes natildeo apenas SampleRTT atual

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 61

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui exponencialmente

raacutepido valor tiacutepico = 0125

Tempo de ida e volta e timeout do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 62

Amostras de RTTs estimados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 63

definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(geralmente = 025)

depois definir intervalo de timeout

Tempo de ida e volta e timeout do TCP

TimeoutIntervalinicial

= 1 sldquomargem de seguranccedilardquo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 64

TCP cenaacuterios de retransmissatildeo

Hosp A

Seq = 100 20 bytes dados

ACK = 100

tempoTimeout prematuro

Hosp B

Seq = 92 8 bytes dados

ACK = 120

Seq = 92 8 bytes dados

Seq

= 9

2 tim

eout

ACK = 120

Hosp A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio de ACK perdido

Hosp B

X

Seq = 92 8 bytes dados

ACK = 100

tempoS

eq =

92

timeo

ut

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 65

TCP cenaacuterios de retransmissatildeo

Host A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio ACK cumulativo

Host B

X

Seq = 100 20 bytes dados

ACK = 120

tempo

Transport Layer 3-66

TCP fast retransmit time-out period

often relatively long long delay before

resending lost packet detect lost

segments via duplicate ACKs sender often sends

many segments back-to-back

if segment is lost there will likely be many duplicate ACKs

if sender receives 3 ACKs for same data(ldquotriple duplicate ACKsrdquo) resend unacked segment with smallest seq

likely that unacked segment lost so donrsquot wait for timeout

TCP fast retransmit

Transport Layer 3-67

X

fast retransmit after sender receipt of triple duplicate ACK

Host BHost A

Seq=92 8 bytes of data

ACK=100

timeo

ut ACK=100

ACK=100

ACK=100

TCP fast retransmit

Seq=100 20 bytes of data

Seq=100 20 bytes of data

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 69

bull O nuacutemero de sequecircncia para um segmento eacute o nuacutemero do primeiro byte do segmento

bull O nuacutemero de reconhecimento que o hospedeiro A atribui a seu segmento eacute o nuacutemero de sequecircncia do proacuteximo byte que ele estiver aguardando do hospedeiro B

bull Como o TCP somente reconhece bytes ateacute o primeiro byte que estiver faltando na cadeia dizemos que o TCP provecirc reconhecimentos cumulativos

Nuacutemeros de sequecircncia e nuacutemeros de reconhecimento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 70

bull O TCP cria um serviccedilo de transferecircncia confiaacutevel de dados sobre o serviccedilo de melhor esforccedilo do IP

bull O serviccedilo de transferecircncia garante que a cadeia de bytes eacute idecircntica agrave cadeia de bytes enviada pelo sistema final que estaacute do outro lado da conexatildeo

bull Os procedimentos recomendados no [RFC 6298] para gerenciamento de temporizadores TCP utilizam apenas um uacutenico temporizador de retransmissatildeo

Transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 71

bull O TCP provecirc um serviccedilo de controle de fluxo agraves suas aplicaccedilotildees para eliminar a possibilidade de o remetente estourar o buffer do destinataacuterio

bull Controle de fluxo eacute um serviccedilo de compatibilizaccedilatildeo de velocidades

bull O TCP oferece serviccedilo de controle de fluxo fazendo que o remetente mantenha uma variaacutevel denominada janela de recepccedilatildeo

Controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 72

Regulaccedilatildeo da taxa de envio

Uma rede de transmissatildeo raacutepida eum receptor de baixa capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 73

Controle de fluxo TCP

lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo

serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora

processo da aplicaccedilatildeo pode ser lento na leitura do buffer

remetente natildeo estouraraacute buffer do destinataacuterio transmitindo muitos dados muito rapidamente

controle de fluxo

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 74

Controle de fluxo TCP como funciona

(suponha que destinataacuterio TCP descarte segmentos fora de ordem)

espaccedilo de buffer natildeo usado = rwnd (slide 48) = RcvBuffer-[LastByteRcvd -

LastByteRead]

destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento

remetente limita de bytes com ACK a rwndndash garante que buffer do

destinataacuterio natildeo estoura

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

rwndRcvBuffer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 75

Gerenciamento da conexatildeo TCP

lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados

inicializa variaacuteveis TCPndash s seqndash buffers informaccedilatildeo de

controle de fluxo (p e RcvWindow)

cliente inicia a conexatildeo Socket clientSocket = new

Socket(hostnameport ) servidor contactado pelo

cliente Socket connectionSocket =

welcomeSocketaccept()

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 76

Gerenciamento da conexatildeo TCP

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 77

fechando uma conexatildeo

cliente fecha socket clientSocketclose()

etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor

etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN

cliente

FIN

servidor

ACK

ACK

FIN

fecha

fecha

fechado

espe

ra

tem

poriz

ada

Gerenciamento da conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 79

Controle de congestionamento

Uma rede de transmissatildeo lenta eum receptor de alta capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 80

bull As causas e os custos do congestionamento

Cenaacuterio de congestionamento 1 duas conexotildees compartilhando um uacutenico roteador com nuacutemero infinito de buffers

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 81

bull As causas e os custos do congestionamentoCenaacuterio de congestionamento 1 vazatildeo e atraso em funccedilatildeo da taxa de envio do hospedeiro

ldquocustosrdquo do congestionamento Aumento de atrasos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 82

bull As causas e os custos do congestionamento

Cenaacuterio 2 dois hospedeiros (com retransmissotildees) e um roteador com buffers finitos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 83

a) Caso ideal (vazatildeo)

b) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda

c) retransmissatildeo do pacote adiado (natildeo perdido) torna maior (que

o caso perfeito ) para o mesmo

in

out

=

in

out

gt

in

out

ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do

pacote

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 84

bull As causas e os custos do congestionamento

Cenaacuterio 3 quatro remetentesroteadores com buffers finitos e trajetos com muacuteltiplos roteadores

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 85

outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer capacidade

de transmissatildeo anterior usada para esse pacote foi desperdiccedilada

Host A

Host B

o

u

t

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 86

Controle de congestionamento fim a fim

bull A camada de rede natildeo fornece nenhum suporte expliacutecito agrave camada de transporte com a finalidade de controle de congestionamento

Controle de congestionamento assistido pela rede

bull Os componentes da camada de rede (isto eacute roteadores) fornecem retroalimentaccedilatildeo especiacutefica de informaccedilotildees ao remetente a respeito do estado de congestionamento na rede Natildeo usual

Mecanismos de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 87

bull A abordagem adotada pelo TCP eacute obrigar cada remetente a limitar a taxa agrave qual enviam traacutefego para sua conexatildeo como uma funccedilatildeo do congestionamento de rede percebido

Se um remetente TCP perceber que haacute pouco congestionamento no caminho entre ele e o destinataacuterio aumentaraacute sua taxa de envio

Se perceber que haacute congestionamento reduziraacute sua taxa de

envio

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 88

bull Mas essa abordagem levanta trecircs questotildees

1 Como um remetente TCP limita a taxa pela qual envia traacutefego para sua conexatildeo

2 Como um remetente TCP percebe que haacute congestionamento entre ele e o destinataacuterio

3 Que algoritmo o remetente deve utilizar para modificar sua taxa de envio como uma funccedilatildeo do congestionamento fim a fim percebido

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 89

bull Partida lenta TCP

Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 90

1) Cwnd = 1 MSS inicialmente

2) Partida lenta a cada rodada redefine cwnd = cwnd 2

3) Perda de pacotes (esgotamento de temporizaccedilatildeo ndash problema grave) ==gt cwnd = 1 (Tahoe ou Reno)

4) Prevenccedilatildeo de congestionamento apoacutes atingir sstresh cwnd = cwnd + 1

5) Trecircs acks duplicados (buraco no ldquofluxordquo ndash problema brando) entra no estado prevenccedilatildeo de congestionamento e redefine cwnd = 1 (Tahoe) ou cwnd = sstresh (Reno)

6) Sstresh = cwnd2 quando satildeo detectados problemas

Quantidade de dados natildeo reconhecidas no TCP = min(CongWin RecWin)

Controle de congestionamento TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 91

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 93

bull Evoluccedilatildeo da janela de congestionamento do TCP (Tahoe e Reno ndash mais usual)

Recuperaccedilatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 94

Controle de congestionamento TCP

Partida lenta seguida por aumento aditivo no TCP Tahoe

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 95

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 96

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 97

bull O controle de congestionamento AIMD (Additive-increase Multiplicative-Decrease) faz surgir o comportamento semelhante a ldquodentes de serrardquo

bull httpsmediapearsoncmgcomawecs_kurose_compnetwork_7cwcontentinteractiveanimationstcp-congestionindexhtml

Controle de congestionamento no TCP retrospectiva

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 98

O que eacute throughput meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughput meacutedio 075 WRTT (75 WRTT)

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 99

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (Probabilidade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 100

bull Duas conexotildees TCP compartilhando um uacutenico enlace congestionado

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 101

bull Vazatildeo alcanccedilada pelas conexotildees TCP 1 e TCP 2bull Ambas conexotildees em algum momento estatildeo com vazatildeo Abull Ambas vatildeo aumentando a vazatildeo ateacute ocorrer perda ndash Bbull Sstresh cai pela metade e ambas migram para Chellip

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 102

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

ndash Consequecircncia

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Nova aplicaccedilatildeo pede 1 TCP obteacutem taxa de R10 Nova aplicaccedilatildeo pede 11 TCPs obteacutem R2

Equidade

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Multiplexingdemultiplexing
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Principles of reliable data transfer
  • Slide 20
  • Slide 21
  • Reliable data transfer getting started
  • Slide 23
  • Slide 24
  • Slide 25
  • rdt20 FSM specification
  • rdt20 operation with no errors
  • rdt20 error scenario
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • rdt30 in action
  • Slide 39
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Selective repeat dilemma
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • TCP fast retransmit
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
Page 46: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 49

bull Descriccedilatildeo da FSM estendida do destinataacuterio GBN

Go-Back-N (GBN)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 50

Go-Back-N (GBN) em operaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 51

bull Protocolos de repeticcedilatildeo seletiva (SR) evitam retransmissotildees desnecessaacuterias

bull Eles fazem o remetente retransmitir apenas os pacotes suspeitos de terem sido recebidos com erro no destinataacuterio

bull Essa retransmissatildeo individual soacute quando necessaacuteria exige que o destinataacuterio reconheccedila individualmente os pacotes recebidos de modo correto

Repeticcedilatildeo seletiva (SR)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 52

Repeticcedilatildeo seletiva (SR)

Transport Layer 3-53

Selective repeatdilemma

example seq rsquos 0 1 2 3 window size=3

receiver window(after receipt)

sender window(after receipt)

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2 pkt0

timeoutretransmit pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2XXX

will accept packetwith seq number 0

(b) oops

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

X

will accept packetwith seq number 0

0 1 2 3 0 1 2 pkt3

(a) no problem

receiver canrsquot see sender sidereceiver behavior identical in both casessomethingrsquos (very) wrong

receiver sees no difference in two scenarios

duplicate data accepted as new in (b)

Q what relationship between seq size and window size to avoid problem in (b)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 54

Resumo de mecanismos de transferecircncia confiaacutevel de dados e sua utilizaccedilatildeo

bull Soma de verificaccedilatildeo - Usada para detectar erros de bits em um pacote transmitido

bull Temporizador - Usado para controlar a temporizaccedilatildeoretransmissatildeo de um pacote possivelmente porque o pacote (ou seu ACK) foi perdido dentro do canal

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 55

bull Nuacutemero de sequecircncia - Usado para numeraccedilatildeo sequencial de segmentos de dados que transitam do remetente ao destinataacuterio Ou seja pode-se ter vaacuterios segmentos transitando simultaneamente no canal de comunicaccedilatildeo maximizando assim o uso desse canal

bull Reconhecimento - Usado pelo destinataacuterio para avisar o remetente que um pacote ou conjunto de pacotes foi recebido corretamente

bull Janela paralelismo - O remetente pode ficar restrito a enviar somente pacotes com nuacutemeros de sequecircncia que caiam dentro de uma determinada faixa

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 56

bull Uma conexatildeo TCP provecirc um serviccedilo full-duplex

bull A conexatildeo TCP eacute sempre ponto a ponto

bull Uma vez estabelecida uma conexatildeo TCP dois processos de aplicaccedilatildeo podem enviar dados um para o outro 3-way handshake jaacute estabelecendo o MSS

bull O TCP combina cada porccedilatildeo de dados do cliente com um cabeccedilalho TCP formando assim segmentos TCP

A conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 57

Estrutura do segmento TCPURG dados urgentes

(quase natildeo usado)

ACK ACKvaacutelido

PSH empurrar dados agora

RST SYN FINestab conexatildeo

soma de verificaccedilatildeo

da Internet ndash todo o segmento(como em UDP)

bytes destinataacuteriopode aceitar

contagem porbytes de dados(natildeo segmentos)

Opcional e de comprimentovariaacutevel utilizado paranegociar o MSS ou fatorde escala em redes dealta velocidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 58

TCP Estabelecendo e fechando conexotildees

3-way handshakeFinalizando

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 59

s sequecircncia e ACKs do TCP

Cenaacuterio preestabelecido telnet simples

rsquos de sequecircnciandash ldquonuacutemerordquo na cadeia de

bytes do 1o byte nos dados do segmento

ACKsndash seq do proacuteximo byte

esperado do outro ladondash ACK cumulativo

P como o destinataacuterio trata segmentos fora de ordem

ndash R TCP natildeo diz ndash a criteacuterio do implementador

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 60

Tempo de ida e volta e timeout do TCP

P Como definir o valor de timeout do TCP

maior que RTTndash mas RTT varia

muito curto timeout prematurondash retransmissotildees

desnecessaacuterias muito longo baixa

reaccedilatildeo a perda de segmento

P Como estimar o RTT SampleRTT tempo medido

da transmissatildeo do segmento ateacute receber o ACKndash ignora retransmissotildees

SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquondash meacutedia de vaacuterias mediccedilotildees

recentes natildeo apenas SampleRTT atual

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 61

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui exponencialmente

raacutepido valor tiacutepico = 0125

Tempo de ida e volta e timeout do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 62

Amostras de RTTs estimados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 63

definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(geralmente = 025)

depois definir intervalo de timeout

Tempo de ida e volta e timeout do TCP

TimeoutIntervalinicial

= 1 sldquomargem de seguranccedilardquo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 64

TCP cenaacuterios de retransmissatildeo

Hosp A

Seq = 100 20 bytes dados

ACK = 100

tempoTimeout prematuro

Hosp B

Seq = 92 8 bytes dados

ACK = 120

Seq = 92 8 bytes dados

Seq

= 9

2 tim

eout

ACK = 120

Hosp A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio de ACK perdido

Hosp B

X

Seq = 92 8 bytes dados

ACK = 100

tempoS

eq =

92

timeo

ut

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 65

TCP cenaacuterios de retransmissatildeo

Host A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio ACK cumulativo

Host B

X

Seq = 100 20 bytes dados

ACK = 120

tempo

Transport Layer 3-66

TCP fast retransmit time-out period

often relatively long long delay before

resending lost packet detect lost

segments via duplicate ACKs sender often sends

many segments back-to-back

if segment is lost there will likely be many duplicate ACKs

if sender receives 3 ACKs for same data(ldquotriple duplicate ACKsrdquo) resend unacked segment with smallest seq

likely that unacked segment lost so donrsquot wait for timeout

TCP fast retransmit

Transport Layer 3-67

X

fast retransmit after sender receipt of triple duplicate ACK

Host BHost A

Seq=92 8 bytes of data

ACK=100

timeo

ut ACK=100

ACK=100

ACK=100

TCP fast retransmit

Seq=100 20 bytes of data

Seq=100 20 bytes of data

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 69

bull O nuacutemero de sequecircncia para um segmento eacute o nuacutemero do primeiro byte do segmento

bull O nuacutemero de reconhecimento que o hospedeiro A atribui a seu segmento eacute o nuacutemero de sequecircncia do proacuteximo byte que ele estiver aguardando do hospedeiro B

bull Como o TCP somente reconhece bytes ateacute o primeiro byte que estiver faltando na cadeia dizemos que o TCP provecirc reconhecimentos cumulativos

Nuacutemeros de sequecircncia e nuacutemeros de reconhecimento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 70

bull O TCP cria um serviccedilo de transferecircncia confiaacutevel de dados sobre o serviccedilo de melhor esforccedilo do IP

bull O serviccedilo de transferecircncia garante que a cadeia de bytes eacute idecircntica agrave cadeia de bytes enviada pelo sistema final que estaacute do outro lado da conexatildeo

bull Os procedimentos recomendados no [RFC 6298] para gerenciamento de temporizadores TCP utilizam apenas um uacutenico temporizador de retransmissatildeo

Transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 71

bull O TCP provecirc um serviccedilo de controle de fluxo agraves suas aplicaccedilotildees para eliminar a possibilidade de o remetente estourar o buffer do destinataacuterio

bull Controle de fluxo eacute um serviccedilo de compatibilizaccedilatildeo de velocidades

bull O TCP oferece serviccedilo de controle de fluxo fazendo que o remetente mantenha uma variaacutevel denominada janela de recepccedilatildeo

Controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 72

Regulaccedilatildeo da taxa de envio

Uma rede de transmissatildeo raacutepida eum receptor de baixa capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 73

Controle de fluxo TCP

lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo

serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora

processo da aplicaccedilatildeo pode ser lento na leitura do buffer

remetente natildeo estouraraacute buffer do destinataacuterio transmitindo muitos dados muito rapidamente

controle de fluxo

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 74

Controle de fluxo TCP como funciona

(suponha que destinataacuterio TCP descarte segmentos fora de ordem)

espaccedilo de buffer natildeo usado = rwnd (slide 48) = RcvBuffer-[LastByteRcvd -

LastByteRead]

destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento

remetente limita de bytes com ACK a rwndndash garante que buffer do

destinataacuterio natildeo estoura

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

rwndRcvBuffer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 75

Gerenciamento da conexatildeo TCP

lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados

inicializa variaacuteveis TCPndash s seqndash buffers informaccedilatildeo de

controle de fluxo (p e RcvWindow)

cliente inicia a conexatildeo Socket clientSocket = new

Socket(hostnameport ) servidor contactado pelo

cliente Socket connectionSocket =

welcomeSocketaccept()

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 76

Gerenciamento da conexatildeo TCP

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 77

fechando uma conexatildeo

cliente fecha socket clientSocketclose()

etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor

etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN

cliente

FIN

servidor

ACK

ACK

FIN

fecha

fecha

fechado

espe

ra

tem

poriz

ada

Gerenciamento da conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 79

Controle de congestionamento

Uma rede de transmissatildeo lenta eum receptor de alta capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 80

bull As causas e os custos do congestionamento

Cenaacuterio de congestionamento 1 duas conexotildees compartilhando um uacutenico roteador com nuacutemero infinito de buffers

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 81

bull As causas e os custos do congestionamentoCenaacuterio de congestionamento 1 vazatildeo e atraso em funccedilatildeo da taxa de envio do hospedeiro

ldquocustosrdquo do congestionamento Aumento de atrasos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 82

bull As causas e os custos do congestionamento

Cenaacuterio 2 dois hospedeiros (com retransmissotildees) e um roteador com buffers finitos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 83

a) Caso ideal (vazatildeo)

b) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda

c) retransmissatildeo do pacote adiado (natildeo perdido) torna maior (que

o caso perfeito ) para o mesmo

in

out

=

in

out

gt

in

out

ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do

pacote

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 84

bull As causas e os custos do congestionamento

Cenaacuterio 3 quatro remetentesroteadores com buffers finitos e trajetos com muacuteltiplos roteadores

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 85

outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer capacidade

de transmissatildeo anterior usada para esse pacote foi desperdiccedilada

Host A

Host B

o

u

t

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 86

Controle de congestionamento fim a fim

bull A camada de rede natildeo fornece nenhum suporte expliacutecito agrave camada de transporte com a finalidade de controle de congestionamento

Controle de congestionamento assistido pela rede

bull Os componentes da camada de rede (isto eacute roteadores) fornecem retroalimentaccedilatildeo especiacutefica de informaccedilotildees ao remetente a respeito do estado de congestionamento na rede Natildeo usual

Mecanismos de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 87

bull A abordagem adotada pelo TCP eacute obrigar cada remetente a limitar a taxa agrave qual enviam traacutefego para sua conexatildeo como uma funccedilatildeo do congestionamento de rede percebido

Se um remetente TCP perceber que haacute pouco congestionamento no caminho entre ele e o destinataacuterio aumentaraacute sua taxa de envio

Se perceber que haacute congestionamento reduziraacute sua taxa de

envio

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 88

bull Mas essa abordagem levanta trecircs questotildees

1 Como um remetente TCP limita a taxa pela qual envia traacutefego para sua conexatildeo

2 Como um remetente TCP percebe que haacute congestionamento entre ele e o destinataacuterio

3 Que algoritmo o remetente deve utilizar para modificar sua taxa de envio como uma funccedilatildeo do congestionamento fim a fim percebido

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 89

bull Partida lenta TCP

Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 90

1) Cwnd = 1 MSS inicialmente

2) Partida lenta a cada rodada redefine cwnd = cwnd 2

3) Perda de pacotes (esgotamento de temporizaccedilatildeo ndash problema grave) ==gt cwnd = 1 (Tahoe ou Reno)

4) Prevenccedilatildeo de congestionamento apoacutes atingir sstresh cwnd = cwnd + 1

5) Trecircs acks duplicados (buraco no ldquofluxordquo ndash problema brando) entra no estado prevenccedilatildeo de congestionamento e redefine cwnd = 1 (Tahoe) ou cwnd = sstresh (Reno)

6) Sstresh = cwnd2 quando satildeo detectados problemas

Quantidade de dados natildeo reconhecidas no TCP = min(CongWin RecWin)

Controle de congestionamento TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 91

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 93

bull Evoluccedilatildeo da janela de congestionamento do TCP (Tahoe e Reno ndash mais usual)

Recuperaccedilatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 94

Controle de congestionamento TCP

Partida lenta seguida por aumento aditivo no TCP Tahoe

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 95

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 96

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 97

bull O controle de congestionamento AIMD (Additive-increase Multiplicative-Decrease) faz surgir o comportamento semelhante a ldquodentes de serrardquo

bull httpsmediapearsoncmgcomawecs_kurose_compnetwork_7cwcontentinteractiveanimationstcp-congestionindexhtml

Controle de congestionamento no TCP retrospectiva

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 98

O que eacute throughput meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughput meacutedio 075 WRTT (75 WRTT)

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 99

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (Probabilidade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 100

bull Duas conexotildees TCP compartilhando um uacutenico enlace congestionado

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 101

bull Vazatildeo alcanccedilada pelas conexotildees TCP 1 e TCP 2bull Ambas conexotildees em algum momento estatildeo com vazatildeo Abull Ambas vatildeo aumentando a vazatildeo ateacute ocorrer perda ndash Bbull Sstresh cai pela metade e ambas migram para Chellip

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 102

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

ndash Consequecircncia

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Nova aplicaccedilatildeo pede 1 TCP obteacutem taxa de R10 Nova aplicaccedilatildeo pede 11 TCPs obteacutem R2

Equidade

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Multiplexingdemultiplexing
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Principles of reliable data transfer
  • Slide 20
  • Slide 21
  • Reliable data transfer getting started
  • Slide 23
  • Slide 24
  • Slide 25
  • rdt20 FSM specification
  • rdt20 operation with no errors
  • rdt20 error scenario
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • rdt30 in action
  • Slide 39
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Selective repeat dilemma
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • TCP fast retransmit
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
Page 47: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 50

Go-Back-N (GBN) em operaccedilatildeo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 51

bull Protocolos de repeticcedilatildeo seletiva (SR) evitam retransmissotildees desnecessaacuterias

bull Eles fazem o remetente retransmitir apenas os pacotes suspeitos de terem sido recebidos com erro no destinataacuterio

bull Essa retransmissatildeo individual soacute quando necessaacuteria exige que o destinataacuterio reconheccedila individualmente os pacotes recebidos de modo correto

Repeticcedilatildeo seletiva (SR)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 52

Repeticcedilatildeo seletiva (SR)

Transport Layer 3-53

Selective repeatdilemma

example seq rsquos 0 1 2 3 window size=3

receiver window(after receipt)

sender window(after receipt)

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2 pkt0

timeoutretransmit pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2XXX

will accept packetwith seq number 0

(b) oops

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

X

will accept packetwith seq number 0

0 1 2 3 0 1 2 pkt3

(a) no problem

receiver canrsquot see sender sidereceiver behavior identical in both casessomethingrsquos (very) wrong

receiver sees no difference in two scenarios

duplicate data accepted as new in (b)

Q what relationship between seq size and window size to avoid problem in (b)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 54

Resumo de mecanismos de transferecircncia confiaacutevel de dados e sua utilizaccedilatildeo

bull Soma de verificaccedilatildeo - Usada para detectar erros de bits em um pacote transmitido

bull Temporizador - Usado para controlar a temporizaccedilatildeoretransmissatildeo de um pacote possivelmente porque o pacote (ou seu ACK) foi perdido dentro do canal

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 55

bull Nuacutemero de sequecircncia - Usado para numeraccedilatildeo sequencial de segmentos de dados que transitam do remetente ao destinataacuterio Ou seja pode-se ter vaacuterios segmentos transitando simultaneamente no canal de comunicaccedilatildeo maximizando assim o uso desse canal

bull Reconhecimento - Usado pelo destinataacuterio para avisar o remetente que um pacote ou conjunto de pacotes foi recebido corretamente

bull Janela paralelismo - O remetente pode ficar restrito a enviar somente pacotes com nuacutemeros de sequecircncia que caiam dentro de uma determinada faixa

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 56

bull Uma conexatildeo TCP provecirc um serviccedilo full-duplex

bull A conexatildeo TCP eacute sempre ponto a ponto

bull Uma vez estabelecida uma conexatildeo TCP dois processos de aplicaccedilatildeo podem enviar dados um para o outro 3-way handshake jaacute estabelecendo o MSS

bull O TCP combina cada porccedilatildeo de dados do cliente com um cabeccedilalho TCP formando assim segmentos TCP

A conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 57

Estrutura do segmento TCPURG dados urgentes

(quase natildeo usado)

ACK ACKvaacutelido

PSH empurrar dados agora

RST SYN FINestab conexatildeo

soma de verificaccedilatildeo

da Internet ndash todo o segmento(como em UDP)

bytes destinataacuteriopode aceitar

contagem porbytes de dados(natildeo segmentos)

Opcional e de comprimentovariaacutevel utilizado paranegociar o MSS ou fatorde escala em redes dealta velocidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 58

TCP Estabelecendo e fechando conexotildees

3-way handshakeFinalizando

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 59

s sequecircncia e ACKs do TCP

Cenaacuterio preestabelecido telnet simples

rsquos de sequecircnciandash ldquonuacutemerordquo na cadeia de

bytes do 1o byte nos dados do segmento

ACKsndash seq do proacuteximo byte

esperado do outro ladondash ACK cumulativo

P como o destinataacuterio trata segmentos fora de ordem

ndash R TCP natildeo diz ndash a criteacuterio do implementador

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 60

Tempo de ida e volta e timeout do TCP

P Como definir o valor de timeout do TCP

maior que RTTndash mas RTT varia

muito curto timeout prematurondash retransmissotildees

desnecessaacuterias muito longo baixa

reaccedilatildeo a perda de segmento

P Como estimar o RTT SampleRTT tempo medido

da transmissatildeo do segmento ateacute receber o ACKndash ignora retransmissotildees

SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquondash meacutedia de vaacuterias mediccedilotildees

recentes natildeo apenas SampleRTT atual

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 61

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui exponencialmente

raacutepido valor tiacutepico = 0125

Tempo de ida e volta e timeout do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 62

Amostras de RTTs estimados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 63

definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(geralmente = 025)

depois definir intervalo de timeout

Tempo de ida e volta e timeout do TCP

TimeoutIntervalinicial

= 1 sldquomargem de seguranccedilardquo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 64

TCP cenaacuterios de retransmissatildeo

Hosp A

Seq = 100 20 bytes dados

ACK = 100

tempoTimeout prematuro

Hosp B

Seq = 92 8 bytes dados

ACK = 120

Seq = 92 8 bytes dados

Seq

= 9

2 tim

eout

ACK = 120

Hosp A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio de ACK perdido

Hosp B

X

Seq = 92 8 bytes dados

ACK = 100

tempoS

eq =

92

timeo

ut

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 65

TCP cenaacuterios de retransmissatildeo

Host A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio ACK cumulativo

Host B

X

Seq = 100 20 bytes dados

ACK = 120

tempo

Transport Layer 3-66

TCP fast retransmit time-out period

often relatively long long delay before

resending lost packet detect lost

segments via duplicate ACKs sender often sends

many segments back-to-back

if segment is lost there will likely be many duplicate ACKs

if sender receives 3 ACKs for same data(ldquotriple duplicate ACKsrdquo) resend unacked segment with smallest seq

likely that unacked segment lost so donrsquot wait for timeout

TCP fast retransmit

Transport Layer 3-67

X

fast retransmit after sender receipt of triple duplicate ACK

Host BHost A

Seq=92 8 bytes of data

ACK=100

timeo

ut ACK=100

ACK=100

ACK=100

TCP fast retransmit

Seq=100 20 bytes of data

Seq=100 20 bytes of data

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 69

bull O nuacutemero de sequecircncia para um segmento eacute o nuacutemero do primeiro byte do segmento

bull O nuacutemero de reconhecimento que o hospedeiro A atribui a seu segmento eacute o nuacutemero de sequecircncia do proacuteximo byte que ele estiver aguardando do hospedeiro B

bull Como o TCP somente reconhece bytes ateacute o primeiro byte que estiver faltando na cadeia dizemos que o TCP provecirc reconhecimentos cumulativos

Nuacutemeros de sequecircncia e nuacutemeros de reconhecimento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 70

bull O TCP cria um serviccedilo de transferecircncia confiaacutevel de dados sobre o serviccedilo de melhor esforccedilo do IP

bull O serviccedilo de transferecircncia garante que a cadeia de bytes eacute idecircntica agrave cadeia de bytes enviada pelo sistema final que estaacute do outro lado da conexatildeo

bull Os procedimentos recomendados no [RFC 6298] para gerenciamento de temporizadores TCP utilizam apenas um uacutenico temporizador de retransmissatildeo

Transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 71

bull O TCP provecirc um serviccedilo de controle de fluxo agraves suas aplicaccedilotildees para eliminar a possibilidade de o remetente estourar o buffer do destinataacuterio

bull Controle de fluxo eacute um serviccedilo de compatibilizaccedilatildeo de velocidades

bull O TCP oferece serviccedilo de controle de fluxo fazendo que o remetente mantenha uma variaacutevel denominada janela de recepccedilatildeo

Controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 72

Regulaccedilatildeo da taxa de envio

Uma rede de transmissatildeo raacutepida eum receptor de baixa capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 73

Controle de fluxo TCP

lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo

serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora

processo da aplicaccedilatildeo pode ser lento na leitura do buffer

remetente natildeo estouraraacute buffer do destinataacuterio transmitindo muitos dados muito rapidamente

controle de fluxo

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 74

Controle de fluxo TCP como funciona

(suponha que destinataacuterio TCP descarte segmentos fora de ordem)

espaccedilo de buffer natildeo usado = rwnd (slide 48) = RcvBuffer-[LastByteRcvd -

LastByteRead]

destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento

remetente limita de bytes com ACK a rwndndash garante que buffer do

destinataacuterio natildeo estoura

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

rwndRcvBuffer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 75

Gerenciamento da conexatildeo TCP

lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados

inicializa variaacuteveis TCPndash s seqndash buffers informaccedilatildeo de

controle de fluxo (p e RcvWindow)

cliente inicia a conexatildeo Socket clientSocket = new

Socket(hostnameport ) servidor contactado pelo

cliente Socket connectionSocket =

welcomeSocketaccept()

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 76

Gerenciamento da conexatildeo TCP

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 77

fechando uma conexatildeo

cliente fecha socket clientSocketclose()

etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor

etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN

cliente

FIN

servidor

ACK

ACK

FIN

fecha

fecha

fechado

espe

ra

tem

poriz

ada

Gerenciamento da conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 79

Controle de congestionamento

Uma rede de transmissatildeo lenta eum receptor de alta capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 80

bull As causas e os custos do congestionamento

Cenaacuterio de congestionamento 1 duas conexotildees compartilhando um uacutenico roteador com nuacutemero infinito de buffers

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 81

bull As causas e os custos do congestionamentoCenaacuterio de congestionamento 1 vazatildeo e atraso em funccedilatildeo da taxa de envio do hospedeiro

ldquocustosrdquo do congestionamento Aumento de atrasos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 82

bull As causas e os custos do congestionamento

Cenaacuterio 2 dois hospedeiros (com retransmissotildees) e um roteador com buffers finitos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 83

a) Caso ideal (vazatildeo)

b) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda

c) retransmissatildeo do pacote adiado (natildeo perdido) torna maior (que

o caso perfeito ) para o mesmo

in

out

=

in

out

gt

in

out

ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do

pacote

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 84

bull As causas e os custos do congestionamento

Cenaacuterio 3 quatro remetentesroteadores com buffers finitos e trajetos com muacuteltiplos roteadores

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 85

outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer capacidade

de transmissatildeo anterior usada para esse pacote foi desperdiccedilada

Host A

Host B

o

u

t

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 86

Controle de congestionamento fim a fim

bull A camada de rede natildeo fornece nenhum suporte expliacutecito agrave camada de transporte com a finalidade de controle de congestionamento

Controle de congestionamento assistido pela rede

bull Os componentes da camada de rede (isto eacute roteadores) fornecem retroalimentaccedilatildeo especiacutefica de informaccedilotildees ao remetente a respeito do estado de congestionamento na rede Natildeo usual

Mecanismos de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 87

bull A abordagem adotada pelo TCP eacute obrigar cada remetente a limitar a taxa agrave qual enviam traacutefego para sua conexatildeo como uma funccedilatildeo do congestionamento de rede percebido

Se um remetente TCP perceber que haacute pouco congestionamento no caminho entre ele e o destinataacuterio aumentaraacute sua taxa de envio

Se perceber que haacute congestionamento reduziraacute sua taxa de

envio

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 88

bull Mas essa abordagem levanta trecircs questotildees

1 Como um remetente TCP limita a taxa pela qual envia traacutefego para sua conexatildeo

2 Como um remetente TCP percebe que haacute congestionamento entre ele e o destinataacuterio

3 Que algoritmo o remetente deve utilizar para modificar sua taxa de envio como uma funccedilatildeo do congestionamento fim a fim percebido

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 89

bull Partida lenta TCP

Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 90

1) Cwnd = 1 MSS inicialmente

2) Partida lenta a cada rodada redefine cwnd = cwnd 2

3) Perda de pacotes (esgotamento de temporizaccedilatildeo ndash problema grave) ==gt cwnd = 1 (Tahoe ou Reno)

4) Prevenccedilatildeo de congestionamento apoacutes atingir sstresh cwnd = cwnd + 1

5) Trecircs acks duplicados (buraco no ldquofluxordquo ndash problema brando) entra no estado prevenccedilatildeo de congestionamento e redefine cwnd = 1 (Tahoe) ou cwnd = sstresh (Reno)

6) Sstresh = cwnd2 quando satildeo detectados problemas

Quantidade de dados natildeo reconhecidas no TCP = min(CongWin RecWin)

Controle de congestionamento TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 91

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 93

bull Evoluccedilatildeo da janela de congestionamento do TCP (Tahoe e Reno ndash mais usual)

Recuperaccedilatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 94

Controle de congestionamento TCP

Partida lenta seguida por aumento aditivo no TCP Tahoe

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 95

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 96

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 97

bull O controle de congestionamento AIMD (Additive-increase Multiplicative-Decrease) faz surgir o comportamento semelhante a ldquodentes de serrardquo

bull httpsmediapearsoncmgcomawecs_kurose_compnetwork_7cwcontentinteractiveanimationstcp-congestionindexhtml

Controle de congestionamento no TCP retrospectiva

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 98

O que eacute throughput meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughput meacutedio 075 WRTT (75 WRTT)

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 99

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (Probabilidade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 100

bull Duas conexotildees TCP compartilhando um uacutenico enlace congestionado

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 101

bull Vazatildeo alcanccedilada pelas conexotildees TCP 1 e TCP 2bull Ambas conexotildees em algum momento estatildeo com vazatildeo Abull Ambas vatildeo aumentando a vazatildeo ateacute ocorrer perda ndash Bbull Sstresh cai pela metade e ambas migram para Chellip

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 102

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

ndash Consequecircncia

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Nova aplicaccedilatildeo pede 1 TCP obteacutem taxa de R10 Nova aplicaccedilatildeo pede 11 TCPs obteacutem R2

Equidade

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Multiplexingdemultiplexing
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Principles of reliable data transfer
  • Slide 20
  • Slide 21
  • Reliable data transfer getting started
  • Slide 23
  • Slide 24
  • Slide 25
  • rdt20 FSM specification
  • rdt20 operation with no errors
  • rdt20 error scenario
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • rdt30 in action
  • Slide 39
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Selective repeat dilemma
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • TCP fast retransmit
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
Page 48: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 51

bull Protocolos de repeticcedilatildeo seletiva (SR) evitam retransmissotildees desnecessaacuterias

bull Eles fazem o remetente retransmitir apenas os pacotes suspeitos de terem sido recebidos com erro no destinataacuterio

bull Essa retransmissatildeo individual soacute quando necessaacuteria exige que o destinataacuterio reconheccedila individualmente os pacotes recebidos de modo correto

Repeticcedilatildeo seletiva (SR)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 52

Repeticcedilatildeo seletiva (SR)

Transport Layer 3-53

Selective repeatdilemma

example seq rsquos 0 1 2 3 window size=3

receiver window(after receipt)

sender window(after receipt)

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2 pkt0

timeoutretransmit pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2XXX

will accept packetwith seq number 0

(b) oops

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

X

will accept packetwith seq number 0

0 1 2 3 0 1 2 pkt3

(a) no problem

receiver canrsquot see sender sidereceiver behavior identical in both casessomethingrsquos (very) wrong

receiver sees no difference in two scenarios

duplicate data accepted as new in (b)

Q what relationship between seq size and window size to avoid problem in (b)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 54

Resumo de mecanismos de transferecircncia confiaacutevel de dados e sua utilizaccedilatildeo

bull Soma de verificaccedilatildeo - Usada para detectar erros de bits em um pacote transmitido

bull Temporizador - Usado para controlar a temporizaccedilatildeoretransmissatildeo de um pacote possivelmente porque o pacote (ou seu ACK) foi perdido dentro do canal

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 55

bull Nuacutemero de sequecircncia - Usado para numeraccedilatildeo sequencial de segmentos de dados que transitam do remetente ao destinataacuterio Ou seja pode-se ter vaacuterios segmentos transitando simultaneamente no canal de comunicaccedilatildeo maximizando assim o uso desse canal

bull Reconhecimento - Usado pelo destinataacuterio para avisar o remetente que um pacote ou conjunto de pacotes foi recebido corretamente

bull Janela paralelismo - O remetente pode ficar restrito a enviar somente pacotes com nuacutemeros de sequecircncia que caiam dentro de uma determinada faixa

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 56

bull Uma conexatildeo TCP provecirc um serviccedilo full-duplex

bull A conexatildeo TCP eacute sempre ponto a ponto

bull Uma vez estabelecida uma conexatildeo TCP dois processos de aplicaccedilatildeo podem enviar dados um para o outro 3-way handshake jaacute estabelecendo o MSS

bull O TCP combina cada porccedilatildeo de dados do cliente com um cabeccedilalho TCP formando assim segmentos TCP

A conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 57

Estrutura do segmento TCPURG dados urgentes

(quase natildeo usado)

ACK ACKvaacutelido

PSH empurrar dados agora

RST SYN FINestab conexatildeo

soma de verificaccedilatildeo

da Internet ndash todo o segmento(como em UDP)

bytes destinataacuteriopode aceitar

contagem porbytes de dados(natildeo segmentos)

Opcional e de comprimentovariaacutevel utilizado paranegociar o MSS ou fatorde escala em redes dealta velocidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 58

TCP Estabelecendo e fechando conexotildees

3-way handshakeFinalizando

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 59

s sequecircncia e ACKs do TCP

Cenaacuterio preestabelecido telnet simples

rsquos de sequecircnciandash ldquonuacutemerordquo na cadeia de

bytes do 1o byte nos dados do segmento

ACKsndash seq do proacuteximo byte

esperado do outro ladondash ACK cumulativo

P como o destinataacuterio trata segmentos fora de ordem

ndash R TCP natildeo diz ndash a criteacuterio do implementador

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 60

Tempo de ida e volta e timeout do TCP

P Como definir o valor de timeout do TCP

maior que RTTndash mas RTT varia

muito curto timeout prematurondash retransmissotildees

desnecessaacuterias muito longo baixa

reaccedilatildeo a perda de segmento

P Como estimar o RTT SampleRTT tempo medido

da transmissatildeo do segmento ateacute receber o ACKndash ignora retransmissotildees

SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquondash meacutedia de vaacuterias mediccedilotildees

recentes natildeo apenas SampleRTT atual

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 61

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui exponencialmente

raacutepido valor tiacutepico = 0125

Tempo de ida e volta e timeout do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 62

Amostras de RTTs estimados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 63

definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(geralmente = 025)

depois definir intervalo de timeout

Tempo de ida e volta e timeout do TCP

TimeoutIntervalinicial

= 1 sldquomargem de seguranccedilardquo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 64

TCP cenaacuterios de retransmissatildeo

Hosp A

Seq = 100 20 bytes dados

ACK = 100

tempoTimeout prematuro

Hosp B

Seq = 92 8 bytes dados

ACK = 120

Seq = 92 8 bytes dados

Seq

= 9

2 tim

eout

ACK = 120

Hosp A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio de ACK perdido

Hosp B

X

Seq = 92 8 bytes dados

ACK = 100

tempoS

eq =

92

timeo

ut

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 65

TCP cenaacuterios de retransmissatildeo

Host A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio ACK cumulativo

Host B

X

Seq = 100 20 bytes dados

ACK = 120

tempo

Transport Layer 3-66

TCP fast retransmit time-out period

often relatively long long delay before

resending lost packet detect lost

segments via duplicate ACKs sender often sends

many segments back-to-back

if segment is lost there will likely be many duplicate ACKs

if sender receives 3 ACKs for same data(ldquotriple duplicate ACKsrdquo) resend unacked segment with smallest seq

likely that unacked segment lost so donrsquot wait for timeout

TCP fast retransmit

Transport Layer 3-67

X

fast retransmit after sender receipt of triple duplicate ACK

Host BHost A

Seq=92 8 bytes of data

ACK=100

timeo

ut ACK=100

ACK=100

ACK=100

TCP fast retransmit

Seq=100 20 bytes of data

Seq=100 20 bytes of data

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 69

bull O nuacutemero de sequecircncia para um segmento eacute o nuacutemero do primeiro byte do segmento

bull O nuacutemero de reconhecimento que o hospedeiro A atribui a seu segmento eacute o nuacutemero de sequecircncia do proacuteximo byte que ele estiver aguardando do hospedeiro B

bull Como o TCP somente reconhece bytes ateacute o primeiro byte que estiver faltando na cadeia dizemos que o TCP provecirc reconhecimentos cumulativos

Nuacutemeros de sequecircncia e nuacutemeros de reconhecimento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 70

bull O TCP cria um serviccedilo de transferecircncia confiaacutevel de dados sobre o serviccedilo de melhor esforccedilo do IP

bull O serviccedilo de transferecircncia garante que a cadeia de bytes eacute idecircntica agrave cadeia de bytes enviada pelo sistema final que estaacute do outro lado da conexatildeo

bull Os procedimentos recomendados no [RFC 6298] para gerenciamento de temporizadores TCP utilizam apenas um uacutenico temporizador de retransmissatildeo

Transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 71

bull O TCP provecirc um serviccedilo de controle de fluxo agraves suas aplicaccedilotildees para eliminar a possibilidade de o remetente estourar o buffer do destinataacuterio

bull Controle de fluxo eacute um serviccedilo de compatibilizaccedilatildeo de velocidades

bull O TCP oferece serviccedilo de controle de fluxo fazendo que o remetente mantenha uma variaacutevel denominada janela de recepccedilatildeo

Controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 72

Regulaccedilatildeo da taxa de envio

Uma rede de transmissatildeo raacutepida eum receptor de baixa capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 73

Controle de fluxo TCP

lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo

serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora

processo da aplicaccedilatildeo pode ser lento na leitura do buffer

remetente natildeo estouraraacute buffer do destinataacuterio transmitindo muitos dados muito rapidamente

controle de fluxo

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 74

Controle de fluxo TCP como funciona

(suponha que destinataacuterio TCP descarte segmentos fora de ordem)

espaccedilo de buffer natildeo usado = rwnd (slide 48) = RcvBuffer-[LastByteRcvd -

LastByteRead]

destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento

remetente limita de bytes com ACK a rwndndash garante que buffer do

destinataacuterio natildeo estoura

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

rwndRcvBuffer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 75

Gerenciamento da conexatildeo TCP

lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados

inicializa variaacuteveis TCPndash s seqndash buffers informaccedilatildeo de

controle de fluxo (p e RcvWindow)

cliente inicia a conexatildeo Socket clientSocket = new

Socket(hostnameport ) servidor contactado pelo

cliente Socket connectionSocket =

welcomeSocketaccept()

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 76

Gerenciamento da conexatildeo TCP

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 77

fechando uma conexatildeo

cliente fecha socket clientSocketclose()

etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor

etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN

cliente

FIN

servidor

ACK

ACK

FIN

fecha

fecha

fechado

espe

ra

tem

poriz

ada

Gerenciamento da conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 79

Controle de congestionamento

Uma rede de transmissatildeo lenta eum receptor de alta capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 80

bull As causas e os custos do congestionamento

Cenaacuterio de congestionamento 1 duas conexotildees compartilhando um uacutenico roteador com nuacutemero infinito de buffers

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 81

bull As causas e os custos do congestionamentoCenaacuterio de congestionamento 1 vazatildeo e atraso em funccedilatildeo da taxa de envio do hospedeiro

ldquocustosrdquo do congestionamento Aumento de atrasos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 82

bull As causas e os custos do congestionamento

Cenaacuterio 2 dois hospedeiros (com retransmissotildees) e um roteador com buffers finitos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 83

a) Caso ideal (vazatildeo)

b) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda

c) retransmissatildeo do pacote adiado (natildeo perdido) torna maior (que

o caso perfeito ) para o mesmo

in

out

=

in

out

gt

in

out

ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do

pacote

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 84

bull As causas e os custos do congestionamento

Cenaacuterio 3 quatro remetentesroteadores com buffers finitos e trajetos com muacuteltiplos roteadores

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 85

outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer capacidade

de transmissatildeo anterior usada para esse pacote foi desperdiccedilada

Host A

Host B

o

u

t

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 86

Controle de congestionamento fim a fim

bull A camada de rede natildeo fornece nenhum suporte expliacutecito agrave camada de transporte com a finalidade de controle de congestionamento

Controle de congestionamento assistido pela rede

bull Os componentes da camada de rede (isto eacute roteadores) fornecem retroalimentaccedilatildeo especiacutefica de informaccedilotildees ao remetente a respeito do estado de congestionamento na rede Natildeo usual

Mecanismos de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 87

bull A abordagem adotada pelo TCP eacute obrigar cada remetente a limitar a taxa agrave qual enviam traacutefego para sua conexatildeo como uma funccedilatildeo do congestionamento de rede percebido

Se um remetente TCP perceber que haacute pouco congestionamento no caminho entre ele e o destinataacuterio aumentaraacute sua taxa de envio

Se perceber que haacute congestionamento reduziraacute sua taxa de

envio

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 88

bull Mas essa abordagem levanta trecircs questotildees

1 Como um remetente TCP limita a taxa pela qual envia traacutefego para sua conexatildeo

2 Como um remetente TCP percebe que haacute congestionamento entre ele e o destinataacuterio

3 Que algoritmo o remetente deve utilizar para modificar sua taxa de envio como uma funccedilatildeo do congestionamento fim a fim percebido

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 89

bull Partida lenta TCP

Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 90

1) Cwnd = 1 MSS inicialmente

2) Partida lenta a cada rodada redefine cwnd = cwnd 2

3) Perda de pacotes (esgotamento de temporizaccedilatildeo ndash problema grave) ==gt cwnd = 1 (Tahoe ou Reno)

4) Prevenccedilatildeo de congestionamento apoacutes atingir sstresh cwnd = cwnd + 1

5) Trecircs acks duplicados (buraco no ldquofluxordquo ndash problema brando) entra no estado prevenccedilatildeo de congestionamento e redefine cwnd = 1 (Tahoe) ou cwnd = sstresh (Reno)

6) Sstresh = cwnd2 quando satildeo detectados problemas

Quantidade de dados natildeo reconhecidas no TCP = min(CongWin RecWin)

Controle de congestionamento TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 91

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 93

bull Evoluccedilatildeo da janela de congestionamento do TCP (Tahoe e Reno ndash mais usual)

Recuperaccedilatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 94

Controle de congestionamento TCP

Partida lenta seguida por aumento aditivo no TCP Tahoe

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 95

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 96

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 97

bull O controle de congestionamento AIMD (Additive-increase Multiplicative-Decrease) faz surgir o comportamento semelhante a ldquodentes de serrardquo

bull httpsmediapearsoncmgcomawecs_kurose_compnetwork_7cwcontentinteractiveanimationstcp-congestionindexhtml

Controle de congestionamento no TCP retrospectiva

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 98

O que eacute throughput meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughput meacutedio 075 WRTT (75 WRTT)

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 99

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (Probabilidade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 100

bull Duas conexotildees TCP compartilhando um uacutenico enlace congestionado

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 101

bull Vazatildeo alcanccedilada pelas conexotildees TCP 1 e TCP 2bull Ambas conexotildees em algum momento estatildeo com vazatildeo Abull Ambas vatildeo aumentando a vazatildeo ateacute ocorrer perda ndash Bbull Sstresh cai pela metade e ambas migram para Chellip

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 102

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

ndash Consequecircncia

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Nova aplicaccedilatildeo pede 1 TCP obteacutem taxa de R10 Nova aplicaccedilatildeo pede 11 TCPs obteacutem R2

Equidade

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Multiplexingdemultiplexing
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Principles of reliable data transfer
  • Slide 20
  • Slide 21
  • Reliable data transfer getting started
  • Slide 23
  • Slide 24
  • Slide 25
  • rdt20 FSM specification
  • rdt20 operation with no errors
  • rdt20 error scenario
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • rdt30 in action
  • Slide 39
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Selective repeat dilemma
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • TCP fast retransmit
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
Page 49: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 52

Repeticcedilatildeo seletiva (SR)

Transport Layer 3-53

Selective repeatdilemma

example seq rsquos 0 1 2 3 window size=3

receiver window(after receipt)

sender window(after receipt)

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2 pkt0

timeoutretransmit pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2XXX

will accept packetwith seq number 0

(b) oops

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

pkt0

pkt1

pkt2

0 1 2 3 0 1 2pkt0

0 1 2 3 0 1 2

0 1 2 3 0 1 2

0 1 2 3 0 1 2

X

will accept packetwith seq number 0

0 1 2 3 0 1 2 pkt3

(a) no problem

receiver canrsquot see sender sidereceiver behavior identical in both casessomethingrsquos (very) wrong

receiver sees no difference in two scenarios

duplicate data accepted as new in (b)

Q what relationship between seq size and window size to avoid problem in (b)

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 54

Resumo de mecanismos de transferecircncia confiaacutevel de dados e sua utilizaccedilatildeo

bull Soma de verificaccedilatildeo - Usada para detectar erros de bits em um pacote transmitido

bull Temporizador - Usado para controlar a temporizaccedilatildeoretransmissatildeo de um pacote possivelmente porque o pacote (ou seu ACK) foi perdido dentro do canal

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 55

bull Nuacutemero de sequecircncia - Usado para numeraccedilatildeo sequencial de segmentos de dados que transitam do remetente ao destinataacuterio Ou seja pode-se ter vaacuterios segmentos transitando simultaneamente no canal de comunicaccedilatildeo maximizando assim o uso desse canal

bull Reconhecimento - Usado pelo destinataacuterio para avisar o remetente que um pacote ou conjunto de pacotes foi recebido corretamente

bull Janela paralelismo - O remetente pode ficar restrito a enviar somente pacotes com nuacutemeros de sequecircncia que caiam dentro de uma determinada faixa

Transporte orientado para conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 56

bull Uma conexatildeo TCP provecirc um serviccedilo full-duplex

bull A conexatildeo TCP eacute sempre ponto a ponto

bull Uma vez estabelecida uma conexatildeo TCP dois processos de aplicaccedilatildeo podem enviar dados um para o outro 3-way handshake jaacute estabelecendo o MSS

bull O TCP combina cada porccedilatildeo de dados do cliente com um cabeccedilalho TCP formando assim segmentos TCP

A conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 57

Estrutura do segmento TCPURG dados urgentes

(quase natildeo usado)

ACK ACKvaacutelido

PSH empurrar dados agora

RST SYN FINestab conexatildeo

soma de verificaccedilatildeo

da Internet ndash todo o segmento(como em UDP)

bytes destinataacuteriopode aceitar

contagem porbytes de dados(natildeo segmentos)

Opcional e de comprimentovariaacutevel utilizado paranegociar o MSS ou fatorde escala em redes dealta velocidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 58

TCP Estabelecendo e fechando conexotildees

3-way handshakeFinalizando

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 59

s sequecircncia e ACKs do TCP

Cenaacuterio preestabelecido telnet simples

rsquos de sequecircnciandash ldquonuacutemerordquo na cadeia de

bytes do 1o byte nos dados do segmento

ACKsndash seq do proacuteximo byte

esperado do outro ladondash ACK cumulativo

P como o destinataacuterio trata segmentos fora de ordem

ndash R TCP natildeo diz ndash a criteacuterio do implementador

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 60

Tempo de ida e volta e timeout do TCP

P Como definir o valor de timeout do TCP

maior que RTTndash mas RTT varia

muito curto timeout prematurondash retransmissotildees

desnecessaacuterias muito longo baixa

reaccedilatildeo a perda de segmento

P Como estimar o RTT SampleRTT tempo medido

da transmissatildeo do segmento ateacute receber o ACKndash ignora retransmissotildees

SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquondash meacutedia de vaacuterias mediccedilotildees

recentes natildeo apenas SampleRTT atual

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 61

EstimatedRTT = (1- )EstimatedRTT + SampleRTT

meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui exponencialmente

raacutepido valor tiacutepico = 0125

Tempo de ida e volta e timeout do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 62

Amostras de RTTs estimados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 63

definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo

ndash grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT

TimeoutInterval = EstimatedRTT + 4DevRTT

DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|

(geralmente = 025)

depois definir intervalo de timeout

Tempo de ida e volta e timeout do TCP

TimeoutIntervalinicial

= 1 sldquomargem de seguranccedilardquo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 64

TCP cenaacuterios de retransmissatildeo

Hosp A

Seq = 100 20 bytes dados

ACK = 100

tempoTimeout prematuro

Hosp B

Seq = 92 8 bytes dados

ACK = 120

Seq = 92 8 bytes dados

Seq

= 9

2 tim

eout

ACK = 120

Hosp A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio de ACK perdido

Hosp B

X

Seq = 92 8 bytes dados

ACK = 100

tempoS

eq =

92

timeo

ut

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 65

TCP cenaacuterios de retransmissatildeo

Host A

Seq = 92 8 bytes dados

ACK = 100

perda

timeo

ut

Cenaacuterio ACK cumulativo

Host B

X

Seq = 100 20 bytes dados

ACK = 120

tempo

Transport Layer 3-66

TCP fast retransmit time-out period

often relatively long long delay before

resending lost packet detect lost

segments via duplicate ACKs sender often sends

many segments back-to-back

if segment is lost there will likely be many duplicate ACKs

if sender receives 3 ACKs for same data(ldquotriple duplicate ACKsrdquo) resend unacked segment with smallest seq

likely that unacked segment lost so donrsquot wait for timeout

TCP fast retransmit

Transport Layer 3-67

X

fast retransmit after sender receipt of triple duplicate ACK

Host BHost A

Seq=92 8 bytes of data

ACK=100

timeo

ut ACK=100

ACK=100

ACK=100

TCP fast retransmit

Seq=100 20 bytes of data

Seq=100 20 bytes of data

Evento no receptor

Segmento chega em ordem natildeo haacute lacunassegmentos anteriores jaacute aceitos

Segmento chega em ordem natildeo haacute lacunasum ACK atrasado pendente

Segmento chega fora de ordemnuacutemero de sequumlecircncia chegoumaior gap detectado

Chegada de segmento queparcial ou completamentepreenche o gap

Accedilatildeo do receptor TCP

ACK retardado Espera ateacute 500 mspelo proacuteximo segmento Se natildeo chegarenvia ACK

Imediatamente envia um ACKcumulativo

Envia ACK duplicado indicando nuacutemero de sequumlecircncia do proacuteximo byte esperado

Reconhece imediatamente se o Segmento comeccedila na borda inferior do gap

Geraccedilatildeo de ACK[RFC 1122 RFC 2581]

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 69

bull O nuacutemero de sequecircncia para um segmento eacute o nuacutemero do primeiro byte do segmento

bull O nuacutemero de reconhecimento que o hospedeiro A atribui a seu segmento eacute o nuacutemero de sequecircncia do proacuteximo byte que ele estiver aguardando do hospedeiro B

bull Como o TCP somente reconhece bytes ateacute o primeiro byte que estiver faltando na cadeia dizemos que o TCP provecirc reconhecimentos cumulativos

Nuacutemeros de sequecircncia e nuacutemeros de reconhecimento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 70

bull O TCP cria um serviccedilo de transferecircncia confiaacutevel de dados sobre o serviccedilo de melhor esforccedilo do IP

bull O serviccedilo de transferecircncia garante que a cadeia de bytes eacute idecircntica agrave cadeia de bytes enviada pelo sistema final que estaacute do outro lado da conexatildeo

bull Os procedimentos recomendados no [RFC 6298] para gerenciamento de temporizadores TCP utilizam apenas um uacutenico temporizador de retransmissatildeo

Transferecircncia confiaacutevel de dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 71

bull O TCP provecirc um serviccedilo de controle de fluxo agraves suas aplicaccedilotildees para eliminar a possibilidade de o remetente estourar o buffer do destinataacuterio

bull Controle de fluxo eacute um serviccedilo de compatibilizaccedilatildeo de velocidades

bull O TCP oferece serviccedilo de controle de fluxo fazendo que o remetente mantenha uma variaacutevel denominada janela de recepccedilatildeo

Controle de fluxo

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 72

Regulaccedilatildeo da taxa de envio

Uma rede de transmissatildeo raacutepida eum receptor de baixa capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 73

Controle de fluxo TCP

lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo

serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora

processo da aplicaccedilatildeo pode ser lento na leitura do buffer

remetente natildeo estouraraacute buffer do destinataacuterio transmitindo muitos dados muito rapidamente

controle de fluxo

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 74

Controle de fluxo TCP como funciona

(suponha que destinataacuterio TCP descarte segmentos fora de ordem)

espaccedilo de buffer natildeo usado = rwnd (slide 48) = RcvBuffer-[LastByteRcvd -

LastByteRead]

destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento

remetente limita de bytes com ACK a rwndndash garante que buffer do

destinataacuterio natildeo estoura

Dados TCP(no buffer)

Espaccedilo de buffer semuso no momento

Processo daaplicaccedilatildeo

datagramaIP

rwndRcvBuffer

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 75

Gerenciamento da conexatildeo TCP

lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados

inicializa variaacuteveis TCPndash s seqndash buffers informaccedilatildeo de

controle de fluxo (p e RcvWindow)

cliente inicia a conexatildeo Socket clientSocket = new

Socket(hostnameport ) servidor contactado pelo

cliente Socket connectionSocket =

welcomeSocketaccept()

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 76

Gerenciamento da conexatildeo TCP

apresentaccedilatildeo de 3 vias

etapa 1 hosp cliente envia segmento SYN do TCP ao servidor

ndash especifica seq inicialndash sem dados

etapa 2 hosp servidor recebe SYN responde com segmento SYNACK

ndash servidor aloca buffersndash especifica seq inicial do

servidor

etapa 3 cliente recebe SYNACK responde com segmento ACK que pode conter dados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 77

fechando uma conexatildeo

cliente fecha socket clientSocketclose()

etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor

etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN

cliente

FIN

servidor

ACK

ACK

FIN

fecha

fecha

fechado

espe

ra

tem

poriz

ada

Gerenciamento da conexatildeo TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 79

Controle de congestionamento

Uma rede de transmissatildeo lenta eum receptor de alta capacidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 80

bull As causas e os custos do congestionamento

Cenaacuterio de congestionamento 1 duas conexotildees compartilhando um uacutenico roteador com nuacutemero infinito de buffers

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 81

bull As causas e os custos do congestionamentoCenaacuterio de congestionamento 1 vazatildeo e atraso em funccedilatildeo da taxa de envio do hospedeiro

ldquocustosrdquo do congestionamento Aumento de atrasos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 82

bull As causas e os custos do congestionamento

Cenaacuterio 2 dois hospedeiros (com retransmissotildees) e um roteador com buffers finitos

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 83

a) Caso ideal (vazatildeo)

b) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda

c) retransmissatildeo do pacote adiado (natildeo perdido) torna maior (que

o caso perfeito ) para o mesmo

in

out

=

in

out

gt

in

out

ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do

pacote

R2

R2in

ou

t

b

R2

R2in

ou

t

a

R2

R2in

ou

t

c

R4

R3

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 84

bull As causas e os custos do congestionamento

Cenaacuterio 3 quatro remetentesroteadores com buffers finitos e trajetos com muacuteltiplos roteadores

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 85

outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer capacidade

de transmissatildeo anterior usada para esse pacote foi desperdiccedilada

Host A

Host B

o

u

t

Princiacutepios de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 86

Controle de congestionamento fim a fim

bull A camada de rede natildeo fornece nenhum suporte expliacutecito agrave camada de transporte com a finalidade de controle de congestionamento

Controle de congestionamento assistido pela rede

bull Os componentes da camada de rede (isto eacute roteadores) fornecem retroalimentaccedilatildeo especiacutefica de informaccedilotildees ao remetente a respeito do estado de congestionamento na rede Natildeo usual

Mecanismos de controle de congestionamento

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 87

bull A abordagem adotada pelo TCP eacute obrigar cada remetente a limitar a taxa agrave qual enviam traacutefego para sua conexatildeo como uma funccedilatildeo do congestionamento de rede percebido

Se um remetente TCP perceber que haacute pouco congestionamento no caminho entre ele e o destinataacuterio aumentaraacute sua taxa de envio

Se perceber que haacute congestionamento reduziraacute sua taxa de

envio

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 88

bull Mas essa abordagem levanta trecircs questotildees

1 Como um remetente TCP limita a taxa pela qual envia traacutefego para sua conexatildeo

2 Como um remetente TCP percebe que haacute congestionamento entre ele e o destinataacuterio

3 Que algoritmo o remetente deve utilizar para modificar sua taxa de envio como uma funccedilatildeo do congestionamento fim a fim percebido

Controle de congestionamento no TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 89

bull Partida lenta TCP

Partida lenta

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 90

1) Cwnd = 1 MSS inicialmente

2) Partida lenta a cada rodada redefine cwnd = cwnd 2

3) Perda de pacotes (esgotamento de temporizaccedilatildeo ndash problema grave) ==gt cwnd = 1 (Tahoe ou Reno)

4) Prevenccedilatildeo de congestionamento apoacutes atingir sstresh cwnd = cwnd + 1

5) Trecircs acks duplicados (buraco no ldquofluxordquo ndash problema brando) entra no estado prevenccedilatildeo de congestionamento e redefine cwnd = 1 (Tahoe) ou cwnd = sstresh (Reno)

6) Sstresh = cwnd2 quando satildeo detectados problemas

Quantidade de dados natildeo reconhecidas no TCP = min(CongWin RecWin)

Controle de congestionamento TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 91

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 93

bull Evoluccedilatildeo da janela de congestionamento do TCP (Tahoe e Reno ndash mais usual)

Recuperaccedilatildeo raacutepida

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 94

Controle de congestionamento TCP

Partida lenta seguida por aumento aditivo no TCP Tahoe

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 95

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 96

Controle de congestionamento TCP

Recuperaccedilatildeo raacutepida e modelo dente serra do TCP Reno

3 ACKs duplicados

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 97

bull O controle de congestionamento AIMD (Additive-increase Multiplicative-Decrease) faz surgir o comportamento semelhante a ldquodentes de serrardquo

bull httpsmediapearsoncmgcomawecs_kurose_compnetwork_7cwcontentinteractiveanimationstcp-congestionindexhtml

Controle de congestionamento no TCP retrospectiva

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 98

O que eacute throughput meacutedio do TCP como uma funccedilatildeo do tamanho da janela e do RTTignore a partida lenta

Deixe W ser o tamanho da janela quando ocorre perda

Quando a janela eacute W o throughput eacute WRTT

Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT

Throughput meacutedio 075 WRTT (75 WRTT)

TCP throughput

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 99

Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps de throughput

Requer tamanho de janela W = 83333 para os segmentos em tracircnsito

Throughput em termos da taxa de perda

L (Probabilidade de perda de segmentos) = 210-10 Uau

Satildeo necessaacuterias novas versotildees de TCP para alta velocidade

LRTT

MSS221

Futuro do TCP

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 100

bull Duas conexotildees TCP compartilhando um uacutenico enlace congestionado

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 101

bull Vazatildeo alcanccedilada pelas conexotildees TCP 1 e TCP 2bull Ambas conexotildees em algum momento estatildeo com vazatildeo Abull Ambas vatildeo aumentando a vazatildeo ateacute ocorrer perda ndash Bbull Sstresh cai pela metade e ambas migram para Chellip

Equidade

Red

es d

e C

om

pu

tad

ore

s I

2017 Aacuterea de Telecomunicaccedilotildees 102

Equumlidade e UDP Aplicaccedilotildees multimedia normalmente natildeo usam TCP

Natildeo querem a taxa estrangulada pelo controle de congestionamento

Em vez disso usam UDP Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes

Equumlidade e conexotildees TCP paralelas Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeiros

ndash Consequecircncia

Web browsers fazem isso

Exemplo enlace de taxa R suportando 9 conexotildees Nova aplicaccedilatildeo pede 1 TCP obteacutem taxa de R10 Nova aplicaccedilatildeo pede 11 TCPs obteacutem R2

Equidade

  • Slide 1
  • Slide 2
  • Slide 3
  • Slide 4
  • Multiplexingdemultiplexing
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • Slide 12
  • Slide 13
  • Slide 14
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Principles of reliable data transfer
  • Slide 20
  • Slide 21
  • Reliable data transfer getting started
  • Slide 23
  • Slide 24
  • Slide 25
  • rdt20 FSM specification
  • rdt20 operation with no errors
  • rdt20 error scenario
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Slide 33
  • Slide 34
  • Slide 35
  • Slide 36
  • Slide 37
  • rdt30 in action
  • Slide 39
  • Slide 42
  • Slide 43
  • Slide 44
  • Slide 45
  • Slide 46
  • Slide 47
  • Slide 48
  • Slide 49
  • Slide 50
  • Slide 51
  • Slide 52
  • Selective repeat dilemma
  • Slide 54
  • Slide 55
  • Slide 56
  • Slide 57
  • Slide 58
  • Slide 59
  • Slide 60
  • Slide 61
  • Slide 62
  • Slide 63
  • Slide 64
  • Slide 65
  • TCP fast retransmit
  • Slide 67
  • Slide 68
  • Slide 69
  • Slide 70
  • Slide 71
  • Slide 72
  • Slide 73
  • Slide 74
  • Slide 75
  • Slide 76
  • Slide 77
  • Slide 79
  • Slide 80
  • Slide 81
  • Slide 82
  • Slide 83
  • Slide 84
  • Slide 85
  • Slide 86
  • Slide 87
  • Slide 88
  • Slide 89
  • Slide 90
  • Slide 91
  • Slide 93
  • Slide 94
  • Slide 95
  • Slide 97
  • Slide 98
  • Slide 99
  • Slide 100
  • Slide 101
  • Slide 102
Page 50: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a
Page 51: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a
Page 52: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a
Page 53: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a
Page 54: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a
Page 55: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a
Page 56: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a
Page 57: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a
Page 58: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a
Page 59: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a
Page 60: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a
Page 61: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a
Page 62: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a
Page 63: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a
Page 64: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a
Page 65: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a
Page 66: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a
Page 67: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a
Page 68: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a
Page 69: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a
Page 70: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a
Page 71: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a
Page 72: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a
Page 73: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a
Page 74: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a
Page 75: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a
Page 76: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a
Page 77: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a
Page 78: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a
Page 79: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a
Page 80: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a
Page 81: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a
Page 82: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a
Page 83: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a
Page 84: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a
Page 85: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a
Page 86: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a
Page 87: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a
Page 88: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a
Page 89: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a
Page 90: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a
Page 91: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a
Page 92: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a
Page 93: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a
Page 94: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a
Page 95: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a
Page 96: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a
Page 97: I s e r o d a u Capítulo 3 m o C e Camada de transporte d s e d e Rtele.sj.ifsc.edu.br/~odilson/RED29004/PPTs - Capítulo 3... · 2018. 5. 8. · P3. R e d e s d e C o m p u t a