aula 8 camada de transporte ii

27
Fundamento de Redes de Computadores Aula 8 Camada de Transporte II

Upload: wab030

Post on 06-Jun-2015

928 views

Category:

Education


2 download

TRANSCRIPT

Page 1: Aula 8   camada de transporte ii

Fundamento de Redes de Computadores

Aula 8

Camada de Transporte II

Page 2: Aula 8   camada de transporte ii

Fundamentos de Redes de Computadores 2/27

Notas da Aula

✔ .●

Page 3: Aula 8   camada de transporte ii

Fundamentos de Redes de Computadores 3/27

Relembrando as Camadas

Page 4: Aula 8   camada de transporte ii

Fundamentos de Redes de Computadores 4/27

Transporte orientado para conexão: TCP

TCP: Visão geral (RFCs: 793, 1122, 1323, 2018, 2581)

ponto a ponto:−um remetente, um destinatário

cadeia de bytes confiável, em ordem:−sem “limites de mensagem”

paralelismo:−congestionamento TCP e controle

de fluxo definem tamanho da janela

buffers de envio & recepção

dados full duplex:−dados bidirecionais fluem na

mesma conexão−MSS: tamanho máximo do

segmentoorientado a conexão:

−apresentação (troca de msgs de controle) inicia estado do remetente e destinatário antes da troca de dados

fluxo controlado:−remetente não sobrecarrega

destinatário

Page 5: Aula 8   camada de transporte ii

Fundamentos de Redes de Computadores 5/27

Estrutura do Segmento TCP

porta origem porta destino

32 bits

dados daaplicação(tamanho variável)

número sequência

número reconhecimento

janela recepção

ponteiro dados urg.soma verificação

FSRPAUcompr.cab.

nãousado

opções (tamanho variável)

URG: dados urgentes (quase não usado)

ACK: # ACKválido

PSH: empurrar dadosagora (quase não

usado)RST, SYN, FIN:estab. conexão

(comandos setup,teardown)

# bytes destinatáriopode aceitar

contagem porbytes de dados(não segmentos!)

soma de verificaçãoda Internet

(como em UDP)

Page 6: Aula 8   camada de transporte ii

Fundamentos de Redes de Computadores 6/27

Número de Sequência e Acks do TCP

#’s de sequência:−“número” na cadeia de

bytes do 1º byte nos dados do segmento

ACKs:−# seq do próximo byte

esperado do outro lado−ACK cumulativo

ex.: como o destinatário trata segmentos fora de ordem

ex.: TCP não diz – a critério do implementador

Page 7: Aula 8   camada de transporte ii

Fundamentos de Redes de Computadores 7/27

Tempo de ida e volta e timeout do TCP

Como definir o valor de timeout do TCP?

maior que RTT−mas RTT varia

muito curto: timeout prematuro−retransmissões

desnecessáriasmuito longo: baixa

reação a perda de segmento

Como estimar o RTT?

SampleRTT: tempo medido da transmissão do segmento até receber o ACK−ignora retransmissões

SampleRTT variará; queremos RTT estimado “mais estável”−média de várias medições

recentes, não apenas SampleRTT atual

Page 8: Aula 8   camada de transporte ii

Fundamentos de Redes de Computadores 8/27

EstimatedRTT = (1- α)*EstimatedRTT + α*SampleRTT

média móvel exponencial ponderadainfluência da amostra passada diminui

exponencialmente rápidovalor típico: α = 0,125

Page 9: Aula 8   camada de transporte ii

Fundamentos de Redes de Computadores 9/27

Amostras de RTT Estimados

Page 10: Aula 8   camada de transporte ii

Fundamentos de Redes de Computadores 10/27

Transferência confiável de dados no TCP

●TCP cria serviço rdt em cima do serviço não confiável do IP

●segmentos em paralelo

●ACKs cumulativos

●TCP usa único temporizador de retransmissão

● retransmissões são disparadas por:−eventos de timeout−ACKs duplicados

● inicialmente, considera remetente TCP simplificado:−ignora ACKs

duplicados−ignora controle de

fluxo, controle de congestionamento

Page 11: Aula 8   camada de transporte ii

Fundamentos de Redes de Computadores 11/27

Eventos de remetente TCP:

dados recebidos da apl.:

cria segmento com # seq# seq # é número da cadeia de

bytes do primeiro byte de dados no segmento

inicia temporizador, se ainda não tiver iniciado (pense nele como para o segmento mais antigo sem ACK)

intervalo de expiração: TimeOutInterval

timeout:−retransmite segmento

que causou timeout−reinicia temporizador

ACK recebido:−Reconhecem-se

segmentos sem ACK anteriores●atualiza o que

sabidamente tem ACK●inicia temporizador se

houver segmentos pendentes

Page 12: Aula 8   camada de transporte ii

Fundamentos de Redes de Computadores 12/27

TCP: cenários de retransmissão

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

= 92 tim

eout

ACK =

120

Hosp. A

Seq = 92, 8 bytes dados

ACK = 100

loss

timeout

Cenário de ACK perdido

Hosp. B

X

Seq = 92, 8 bytes dados

ACK =

100

tempo

Seq =

92 timeout

SendBase = 100

SendBase = 120

SendBase = 120

Sendbase = 100

Page 13: Aula 8   camada de transporte ii

Fundamentos de Redes de Computadores 13/27

Host A

Seq = 92, 8 bytes dados

ACK = 100

perda

timeout

Cenário ACK cumulativo

Host B

X

Seq = 100, 20 bytes dados

ACK =

120

tempo

SendBase = 120

Page 14: Aula 8   camada de transporte ii

Fundamentos de Redes de Computadores 14/27

TCP Geração de Ack

Page 15: Aula 8   camada de transporte ii

Fundamentos de Redes de Computadores 15/27

Retransmissão Rápida●período de timeout

relativamente grande:−longo atraso antes de reenviar

pacote perdido●detecta segmentos perdidos

por meio de ACKs duplicados−remetente geralmente envia

muitos segmentos um após o outro

−se segmento for perdido, provavelmente haverá muitos ACKs duplicados para esse segmento

●se remetente recebe 3 ACKs para os mesmos dados, ele supõe que segmento após dados com ACK foi perdido:−retransmissão rápida:

reenvia segmento antes que o temporizador expire

Page 16: Aula 8   camada de transporte ii

Fundamentos de Redes de Computadores 16/27

Hosp. A

timeout

Hosp. B

tempo

X

reenvia seq X2

seq # x1seq # x2seq # x3seq # x4seq # x5

ACK x1

ACK x1ACK x1ACK x1

ACKsduplicadostrês vezes

Page 17: Aula 8   camada de transporte ii

Fundamentos de Redes de Computadores 17/27

Controle de Fluxo TCP

lado receptor da conexão TCP tem um buffer de recepção:

processo da aplicação pode ser lento na leitura do buffer

controle de fluxo

serviço de compatibilização de velocidades: compatibiliza a taxa de envio do remetente com a de leitura da aplicação receptora

datagramasIP

dados TCP(no buffer)

espaçode buffer(atualmente)não usado

processo daaplicação

remetente não estourará buffer do destinatário

transmitindo muitos dados muito rapidamente

Page 18: Aula 8   camada de transporte ii

Fundamentos de Redes de Computadores 18/27

Controle de fluxo TCP: como funciona

(suponha que destinatário TCP descarte segmentos fora de ordem)

espaço de buffer não usado: = rwnd = RcvBuffer-[LastByteRcvd

- LastByteRead]

destinatário: anuncia espaço de buffer não usado incluindo valor de rwnd no cabeçalho do segmento

remetente: limita # de bytes com ACKa rwnd

garante que buffer do destinatário não estoura

datagramasIP

dados TCP(no buffer)

espaçode buffer(atualmente)não usado

processo daaplicação

Page 19: Aula 8   camada de transporte ii

Fundamentos de Redes de Computadores 19/27

Gerenciamento da conexão TCP

lembre-se: Remetente e destinatário TCP estabelecem “conexão” antes que troquem segmentos dados

inicializa variáveis TCP:−#s seq.:−buffers, informação de

controle de fluxo (p. e. RcvWindow)

cliente: inicia a conexão− Socket clientSocket = new

Socket("hostname","port #"); servidor: contactado pelo cliente

− Socket connectionSocket = welcomeSocket.accept();

apresentação de 3 vias:etapa 1: hosp. cliente envia

segmento SYN do TCP ao servidor−especifica # seq. inicial−sem dados

etapa 2: hosp. servidor recebe SYN, responde com segmento SYNACK−servidor aloca buffers−especifica # seq. inicial do

servidoretapa 3: cliente recebe

SYNACK, responde com segmento ACK, que pode conter dados

Page 20: Aula 8   camada de transporte ii

Fundamentos de Redes de Computadores 20/27

Gerenciamento da conexão TCP

fechando uma conexão:

cliente fecha socket: clientSocket.close();

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

etapa 2: servidor recebe FIN, responde com ACK. Fecha conexão, envia FIN.

etapa 3: cliente recebe FIN, responde com ACK

−entra em “espera temporizada” – responderá com ACK aos FINs recebidos

etapa 4: servidor recebe ACK - conexão fechada

Nota: Com pequena modificação, pode tratar de FINs simultâneos.

cliente

FIN

servidor

ACK

ACK

FIN

fecha

fecha

fechado

espera tem

porizada

Page 21: Aula 8   camada de transporte ii

Fundamentos de Redes de Computadores 21/27

Princípios de controle de congestionamento

Congestionamento:

informalmente: “muitas fontes enviando muitos dados muito rápido para a rede tratar”

diferente de controle de fluxo!manifestações:

−pacotes perdidos (estouro de buffer nos roteadores)−longos atrasos (enfileiramento nos buffers do

roteador)um dos maiores problemas da rede!

Page 22: Aula 8   camada de transporte ii

Fundamentos de Redes de Computadores 22/27

Causas/custos do congestionamento: cenário 1

dois remetentes, dois destinatários

um roteador, infinitos buffers

sem retransmissão

grandes atrasos quando congestionado

vazão máxima alcançável

Page 23: Aula 8   camada de transporte ii

Fundamentos de Redes de Computadores 23/27

Causas/custos do congestionamento: cenário 2

um roteador, buffers finitosretransmissão do pacote perdido pelo remetente

“custos” do congestionamento: mais trabalho (retransmissão) para determinada “vazão”retransmissões desnecessárias: enlace transporta várias

cópias do pacote

Page 24: Aula 8   camada de transporte ii

Fundamentos de Redes de Computadores 24/27

Causas/custos do congestionamento: cenário 3

quatro remetentescaminhos com vários

saltostimeout/retransmissão

Page 25: Aula 8   camada de transporte ii

Fundamentos de Redes de Computadores 25/27

sempre: λin = λ

out (vazão)

retransmissão “perfeita” apenas quando há perda: λ'in > λ

out

retransmissão do pacote adiado (não pedido) torna λin maior (que o caso

perfeito ) para o mesmo λout

R/2

R/2λin

λou

t

b.

R/2

R/2λin

λou

t

a.

R/2

R/2λin

λout

c.

R/4

R/3

Page 26: Aula 8   camada de transporte ii

Fundamentos de Redes de Computadores 26/27

Técnicas para controle de congestionamento

duas técnicas amplas para controle de congestionamento:

controle de congestionamento fim a fim:

●nenhum feedback explícito da rede

●congestionamento deduzido da perda e atraso observados do sistema final

●técnica tomada pelo TCP

controle de congestionamento assistido pela rede:

●roteadores oferecem feedback aos sistemas finais−único bit indicando

congestionamento (SNA, DECbit, TCP/IP ECN, ATM)

−taxa explícita que o remetente deve enviar no enlace de saída

Page 27: Aula 8   camada de transporte ii

Fundamentos de Redes de Computadores 27/27

Slides baseados no material do livro Fundamento de Redes da Pearson Editora.