3: camada de transporte 3a-1 capítulo 3: camada de transporte metas do capítulo: r compreender os...

25
Secretaria Municipal de Saúde Secretaria Municipal de Saúde Fundação Municipal de Saúde Fundação Municipal de Saúde Departamento de Vigilância Sanitária e Controle de Zoonoses Departamento de Vigilância Sanitária e Controle de Zoonoses Centro de Controle de Zoonoses e Doenças de Transmissão Centro de Controle de Zoonoses e Doenças de Transmissão Vetorial Vetorial INFORMAÇÃO, EDUCAÇÃO E COMUNICAÇÃO EM SAÚDE INFORMAÇÃO, EDUCAÇÃO E COMUNICAÇÃO EM SAÚDE Influenza A (H1N1)

Upload: internet

Post on 16-Apr-2015

108 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 3: Camada de Transporte 3a-1 Capítulo 3: Camada de Transporte Metas do capítulo: r compreender os princípios atrás dos serviços da camada de transporte:

3: Camada de Transporte 3a-1

Capítulo 3: Camada de TransporteMetas do capítulo: compreender os

princípios atrás dos serviços da camada de transporte: multiplexação/

desmultiplexação transferência confiável

de dados controle de fluxo controle de

congestionamento instanciação e

implementação na Internet

Sumário do Capítulo: serviços da camada de transporte multiplexação/desmultiplexação transporte sem conexão: UDP transporte orientado a conexão:

TCP transferência confiável controle de fluxo gerenciamento de conexões

controle de congestionamento em TCP

Page 2: 3: Camada de Transporte 3a-1 Capítulo 3: Camada de Transporte Metas do capítulo: r compreender os princípios atrás dos serviços da camada de transporte:

3: Camada de Transporte 3a-2

Serviços e protocolos de transporte

provê comunicação lógica entre processos de aplicação executando em hospedeiros diferentes

protocolos de transporte executam em sistemas terminais

serviços das camadas de transporte X rede:

camada de rede : dados transferidos entre sistemas

camada de transporte: dados transferidos entre processos depende de, estende

serviços da camada de rede

aplicaçãotransporte

redeenlacefísica

redeenlacefísica

aplicaçãotransporte

redeenlacefísica

redeenlacefísica

redeenlacefísica

redeenlacefísica

redeenlacefísica

transporte lógico fim a fim

Page 3: 3: Camada de Transporte 3a-1 Capítulo 3: Camada de Transporte Metas do capítulo: r compreender os princípios atrás dos serviços da camada de transporte:

3: Camada de Transporte 3a-3

Protocolos da camada de transporte

Serviços de transporte na Internet:

entrega confiável, ordenada, ponto a ponto (TCP) congestionamento controle de fluxo estabelecimento de

conexão (setup) entrega não confiável,

(“melhor esforço”), não ordenada, ponto a ponto ou multiponto: UDP

serviços não disponíveis: tempo-real garantias de banda multiponto confiável

aplicaçãotransporte

redeenlacefísica

redeenlacefísica

aplicaçãotransporte

redeenlacefísica

redeenlacefísica

redeenlacefísica

redeenlacefísica

redeenlacefísica

transporte lógico fim a fim

Page 4: 3: Camada de Transporte 3a-1 Capítulo 3: Camada de Transporte Metas do capítulo: r compreender os princípios atrás dos serviços da camada de transporte:

3: Camada de Transporte 3a-4

aplicaçãotransporte

rede

MP2

aplicaçãotransporte

rede

Multiplexação/desmultiplexação

Lembrança: segmento - unidade de dados trocada entre entidades da camada de transporte = TPDU: transport

protocol data unit

receptor

HtHn

Desmultiplexação: entrega de segmentos recebidos para os processos da camada de apl corretos

segmento

segmento Maplicaçãotransporte

rede

P1M

M MP3 P4

cabeçalhode segmento

dados da camada de aplicação

Page 5: 3: Camada de Transporte 3a-1 Capítulo 3: Camada de Transporte Metas do capítulo: r compreender os princípios atrás dos serviços da camada de transporte:

3: Camada de Transporte 3a-5

Multiplexação/desmultiplexação

multiplexação/desmultiplexação: baseadas em números de porta e

endereços IP de remetente e receptor números de porta de

remetente/receptor em cada segmento

lembrete: número de porta bem conhecido para aplicações específicas

juntar dados de múltiplosprocessos de apl, envelopandodados com cabeçalho (usado depois para desmultiplexação)

porta remetente porta receptor

32 bits

dados daaplicação

(mensagem)

outros campos do cabeçalho

formato de segmento TCP/UDP

Multiplexação:

Page 6: 3: Camada de Transporte 3a-1 Capítulo 3: Camada de Transporte Metas do capítulo: r compreender os princípios atrás dos serviços da camada de transporte:

3: Camada de Transporte 3a-6

Multiplexação/desmultiplexação: exemplos

estação A

servidor B

porta orig.: xporta dest: 23

porta orig:23porta dest: x

uso de portas: apl. simples de telnet

cliente WWWestação A

servidor WWW B

Web clienthost C

IP orig: CIP dest: B

porta orig: xporta dest: 80

IP orig : CIP dest: B

porta orig: yporta dest: 80

uso de portas : servidor WWW

IP orig: AIP dest: B

porta orig: xporta dest:

80

Page 7: 3: Camada de Transporte 3a-1 Capítulo 3: Camada de Transporte Metas do capítulo: r compreender os princípios atrás dos serviços da camada de transporte:

3: Camada de Transporte 3a-7

UDP: User Datagram Protocol [RFC 768]

Protocolo de transporte da Internet mínimo, “sem frescura”,

Serviço “melhor esforço”, segmentos UDP podem ser: perdidos entregues à aplicação fora

de ordem do remesso sem conexão:

não há “setup” UDP entre remetente, receptor

tratamento independente de cada segmento UDP

Por quê existe um UDP? elimina estabelecimento de

conexão (o que pode causar retardo)

simples: não se mantém “estado” da conexão no remetente/receptor

pequeno cabeçalho de segmento

sem controle de congestionamento: UDP pode transmitir o mais rápido possível

Page 8: 3: Camada de Transporte 3a-1 Capítulo 3: Camada de Transporte Metas do capítulo: r compreender os princípios atrás dos serviços da camada de transporte:

3: Camada de Transporte 3a-8

Mais sobre UDP

muito utilizado para apls. de meios contínuos (voz, vídeo) tolerantes de perdas sensíveis à taxa de

transmissão

outros usos de UDP (por quê?): DNS (nomes) SNMP (gerenciamento)

transferência confiável com UDP: incluir confiabilidade na camada de aplicação recuperação de erro

específica à apl.!

porta origem porta dest.

32 bits

Dados de aplicação

(mensagem)

UDP segment format

comprimento checksum

Comprimento embytes do

segmento UDP,incluindo cabeçalho

Page 9: 3: Camada de Transporte 3a-1 Capítulo 3: Camada de Transporte Metas do capítulo: r compreender os princípios atrás dos serviços da camada de transporte:

3: Camada de Transporte 3a-9

Checksum UDP

Remetente: trata conteúdo do segmento

como sequência de inteiros de 16-bits

campo checksum zerado checksum: soma (adição

usando complemento de 1) do conteúdo do segmento

remetente coloca complemento do valor da soma no campo checksum de UDP

Receiver: computa checksum do

segmento recebido verifica se checksum

computado é zero: NÃO - erro detectado SIM - nenhum erro

detectado. Mas ainda pode ter erros? Veja depois ….

Meta: detecta “erro” (e.g., bits invertidos) no segmento transmitido

Page 10: 3: Camada de Transporte 3a-1 Capítulo 3: Camada de Transporte Metas do capítulo: r compreender os princípios atrás dos serviços da camada de transporte:

3: Camada de Transporte 3b-10

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

transmissão full duplex: fluxo de dados bi-

direcional na mesma conexão

MSS: tamanho máximo de segmento

orientado a conexão: handshaking (troca de

msgs de controle) inicia estado de remetente, receptor antes de trocar dados

fluxo controlado: receptor não será afogado

ponto a ponto: 1 remetente, 1 receptor

fluxo de bytes, ordenados, confiável: não estruturado em msgs

dutado: tam. da janela ajustado por

controle de fluxo e congestionamento do TCP

buffers de envio e recepção

socketdoor

T C Psend buffer

T C Preceive buffer

socketdoor

segm ent

applicationwrites data

applicationreads data

Page 11: 3: Camada de Transporte 3a-1 Capítulo 3: Camada de Transporte Metas do capítulo: r compreender os princípios atrás dos serviços da camada de transporte:

3: Camada de Transporte 3b-11

TCP: estrutura do segmento

no. porta origemno. porta dest

32 bits

dados daaplicação

(tam. variável)

número de seqüêncianúmero de

reconhecimentojanela receptor

ptr dados urg.checksum

FSRPAUtam.cab.

semuso

Opções (tam. variável)

URG: dados urgentes (pouco usados)

ACK: no. ACKválido

PSH: envia dados já(pouco usado)

RST, SYN, FIN:gestão de conexão

(comandos deestabelecimento,

liberação)

no. bytes rcpt queraceitar

contagem de dadospor bytes (não segmentos!)

checksum Internet

(como UDP)

Page 12: 3: Camada de Transporte 3a-1 Capítulo 3: Camada de Transporte Metas do capítulo: r compreender os princípios atrás dos serviços da camada de transporte:

3: Camada de Transporte 3b-12

TCP: nos. de seq. e ACKsNos. de seq.:

“número”dentro do fluxo de bytes do primeiro byte de dados do segmento

ACKs: no. de seq do próx.

byte esperado do outro lado

ACK cumulativoP: como receptor trata

segmentos fora da ordem? R: espec do TCP

omissa - deixado ao implementador

Estação A Estação B

Seq=42, ACK=79, data = ‘C’

Seq=79, ACK=43, data = ‘C’

Seq=43, ACK=80

Usuáriotecla‘C’

A reconhecechegada

do ‘C’ecoado

B reconhecechegada de

‘C’, ecoa‘C’ de volta

tempocenário simples de telnet

Page 13: 3: Camada de Transporte 3a-1 Capítulo 3: Camada de Transporte Metas do capítulo: r compreender os princípios atrás dos serviços da camada de transporte:

3: Camada de Transporte 3b-13

TCP: transferência confiável de dados

remetente simplificado, supondo:

waitfor

event

waitfor

event

event: data received from application above

event: timer timeout for segment with seq # y

event: ACK received,with ACK # y

create, send segment

retransmit segment

ACK processing

•fluxo de dados uni-direcional•sem controle de fluxo, congestionamento

Page 14: 3: Camada de Transporte 3a-1 Capítulo 3: Camada de Transporte Metas do capítulo: r compreender os princípios atrás dos serviços da camada de transporte:

3: Camada de Transporte 3b-14

TCP: transfer-ência confiável de dados

00 sendbase = número de seqüência inicial01 nextseqnum = número de seqüência inicial0203 loop (forever) { 04 switch(event) 05 event: dados recebidos da aplicação acima06 cria segmento TCP com número de seqüência nextseqnum 07 inicia temporizador para segmento nextseqnum 08 passa segmento para IP 09 nextseqnum = nextseqnum + comprimento(dados) 10 event: expirado temporizador de segmento c/ no. de seqüência y 11 retransmite segmento com número de seqüência y 12 computa novo intervalo de temporização para segmento y 13 reinicia temporizador para número de seqüência y 14 event: ACK recebido, com valor de campo ACK de y 15 se (y > sendbase) { /* ACK cumulativo de todos dados até y */ 16 cancela temporizadores p/ segmentos c/ nos. de seqüência < y 17 sendbase = y 18 } 19 senão { /* é ACK duplicado para segmento já reconhecido */ 20 incrementa número de ACKs duplicados recebidos para y 21 if (número de ACKs duplicados recebidos para y == 3) { 22 /* TCP: retransmissão rápida */ 23 reenvia segmento com número de seqüência y 24 reinicia temporizador para número de seqüência y 25 } 26 } /* fim de loop forever */

RemetenteTCPsimplificado

Page 15: 3: Camada de Transporte 3a-1 Capítulo 3: Camada de Transporte Metas do capítulo: r compreender os princípios atrás dos serviços da camada de transporte:

3: Camada de Transporte 3b-15

TCP geração de ACKs [RFCs 1122, 2581]

Evento

chegada de segmento em ordemsem lacunas,anteriores já reconhecidos

chegada de segmento em ordemsem lacunas,um ACK retardado pendente

chegada de segmento fora de ordem, com no. de seq. maiorque esperado -> lacuna

chegada de segmento que preenche a lacuna parcial oucompletamente

Ação do receptor TCP

ACK retardado. Espera até 500msp/ próx. segmento. Se não chegarsegmento, envia ACK

envia imediatamente um únicoACK cumulativo

envia ACK duplicado, indicando no. de seq.do próximo byte esperado

ACK imediato se segmento noinício da lacuna

Page 16: 3: Camada de Transporte 3a-1 Capítulo 3: Camada de Transporte Metas do capítulo: r compreender os princípios atrás dos serviços da camada de transporte:

3: Camada de Transporte 3b-16

TCP: cenários de retransmissão

Estação A

Seq=92, 8 bytes de dados

ACK=100

perda

tem

pori

zaçã

o

tempo cenário doACK perdido

Estação B

X

Seq=92, 8 bytes de dados

ACK=100

Host A

Seq=100, 20 bytes de dados

ACK=100

Tem

p.p

/ Seq=

92

temporização prematura,ACKs cumulativos

Host B

Seq=92, 8 bytes de dados

ACK=120

Seq=92, 8 bytes de dados

Tem

p.

p/

Seq=

100

ACK=120

tempo

Page 17: 3: Camada de Transporte 3a-1 Capítulo 3: Camada de Transporte Metas do capítulo: r compreender os princípios atrás dos serviços da camada de transporte:

3: Camada de Transporte 3b-17

remetente não esgotaria buffers do receptor por

transmitir muito, ou muito rápidamente

controle de fluxo

TCP: Controle de Fluxoreceptor: explicitamente

avisa o remetente da quantidade de espaço livre disponível (muda dinamicamente) campo RcvWindow

no segmento TCP remetente: mantém a

quantidade de dados transmitidos, porém ainda não reconhecidos, menor que o valor mais recente de RcvWindow

buffering pelo receptor

RcvBuffer = tamanho do Buffer de recepção

RcvWindow = espaço vazio no Buffer

Page 18: 3: Camada de Transporte 3a-1 Capítulo 3: Camada de Transporte Metas do capítulo: r compreender os princípios atrás dos serviços da camada de transporte:

3: Camada de Transporte 3b-18

TCP: Tempo de Resposta (RTT) e TemporizaçãoP: como escolher

valor do temporizador TCP?

maior que o RTT note: RTT pode

variar muito curto:

temporização prematura retransmissões são

desnecessárias muito longo: reação

demorada à perda de segmentos

P: como estimar RTT? RTTamostra: tempo medido

entre a transmissão do segmento e o recebimento do ACK correspondente ignora retransmissões,

segmentos com ACKs cumulativos

RTTamostra vai variar, queremos “amaciador” de RTT estimado usa várias medições

recentes, não apenas o valor corrente (RTTamostra)

Page 19: 3: Camada de Transporte 3a-1 Capítulo 3: Camada de Transporte Metas do capítulo: r compreender os princípios atrás dos serviços da camada de transporte:

3: Camada de Transporte 3b-19

TCP: Tempo de Resposta (RTT) e TemporizaçãoRTT_estimado = (1-x)* RTT_estimado + x*RTT_amostra

média corrente exponencialmente ponderada influência de cada amostra diminui

exponencialmente com o tempo valor típico de x: 0.1

Escolhendo o intervalo de temporização RTT_estimado mais uma “margem de segurança” variação grande em RTT_estimado

-> margem de segurança maior

Temporização = RTT_estimado + 4*Desvio

Desvio = (1-x)* Desvio + x*|RTT_amostra - RTT_estimado|

Page 20: 3: Camada de Transporte 3a-1 Capítulo 3: Camada de Transporte Metas do capítulo: r compreender os princípios atrás dos serviços da camada de transporte:

3: Camada de Transporte 3b-20

TCP: Gerenciamento de Conexões

Lembrete: Remetente, receptor TCP estabelecem “conexão” antes de trocar segmentos de dados

inicializam variáveis TCP: nos. de seq. buffers, info s/ controle de

fluxo (p.ex. RcvWindow) cliente: iniciador de conexão Socket clientSocket = new

Socket("hostname","port number"); servidor: contactado por cliente Socket connectionSocket =

welcomeSocket.accept();

Inicialização em 3 tempos:

Passo 1: sistema cliente envia segmento de controle SYN do TCP ao servidor especifica no. inicial de seq

Passo 2: sistema servidor recebe SYN, responde com segmento de controle SYNACK

reconhece SYN recebido aloca buffers especifica no. inicial de seq.

servidor-> receptor

Page 21: 3: Camada de Transporte 3a-1 Capítulo 3: Camada de Transporte Metas do capítulo: r compreender os princípios atrás dos serviços da camada de transporte:

3: Camada de Transporte 3b-21

TCP: Gerenciamento de Conexões (cont.)

Encerrando uma conexão:

cliente fecha soquete: clientSocket.close();

Passo 1: sistema cliente envia segmento de controle FIN ao servidor

Passo 2: servidor recebe FIN, responde com ACK. Encerra a conexão, enviando FIN.

cliente

FIN

servidor

ACK

ACK

FIN

fechar

fechar

fechada

esp

era

te

mpori

zada

Page 22: 3: Camada de Transporte 3a-1 Capítulo 3: Camada de Transporte Metas do capítulo: r compreender os princípios atrás dos serviços da camada de transporte:

3: Camada de Transporte 3b-22

TCP: Gerenciamento de Conexões (cont.)

Passo 3: cliente recebe FIN, responde com ACK.

Entre em “espera temporizada” - responderá com ACK a FINs recebidos

Step 4: servidor, recebe ACK. Conexão encerrada.

Note: com pequena modificação, consegue tratar de FINs simultâneos.

cliente

FIN

servidor

ACK

ACK

FIN

fechando

fechando

fechada

esp

era

tem

pori

zada

fechada

Page 23: 3: Camada de Transporte 3a-1 Capítulo 3: Camada de Transporte Metas do capítulo: r compreender os princípios atrás dos serviços da camada de transporte:

3: Camada de Transporte 3b-23

TCP Connection Management (cont)

Ciclo de vidade cliente TCP

Ciclo de vidade servidor TCP

Page 24: 3: Camada de Transporte 3a-1 Capítulo 3: Camada de Transporte Metas do capítulo: r compreender os princípios atrás dos serviços da camada de transporte:

3: Camada de Transporte 3b-24

TCP: Controle de Congestionamento controle fim a fim (sem apoio da rede) taxa de transmissão limitada pela tamanho da janela de

congestionamento, Congwin:

w segmentos, cada um c/ MSS bytes, enviados por RTT:

vazão = w * MSS RTT

Bytes/seg

Congwin

Page 25: 3: Camada de Transporte 3a-1 Capítulo 3: Camada de Transporte Metas do capítulo: r compreender os princípios atrás dos serviços da camada de transporte:

3: Camada de Transporte 3b-25

TCP: Controle de Congestionamento

duas “fases” partida lenta evitar

congestionamento

variáveis importantes: Congwin threshold: define

limiar entre fases de partida lenta, controle de congestionamento

“sondagem” para banda utilizável: idealmente: transmitir

o mais rápido possível (Congwin o máximo possível) sem perder pacotes

aumentar Congwin até perder pacotes (congestionamento)

perdas: diminui Congwin, depois volta a à sondagem (aumento) novamente

Page 26: 3: Camada de Transporte 3a-1 Capítulo 3: Camada de Transporte Metas do capítulo: r compreender os princípios atrás dos serviços da camada de transporte:

3: Camada de Transporte 3b-26

TCP: Partida lenta

aumento exponencial (por RTT) no tamanho da janela (não muito lenta!)

evento de perda: temporizador (Tahoe TCP) e/ou três ACKs duplicados (Reno TCP)

initializa: Congwin = 1for (cada segmento c/ ACK) Congwin++until (evento de perda OR CongWin > threshold)

Estação A

um segmento

RTT

Estação B

tempo

dois segmentos

quqtro segmentos

Algoritmo Partida Lenta

Page 27: 3: Camada de Transporte 3a-1 Capítulo 3: Camada de Transporte Metas do capítulo: r compreender os princípios atrás dos serviços da camada de transporte:

3: Camada de Transporte 3b-27

TCP: Evitar Congestionamento

/* partida lenta acabou */ /* Congwin > threshold */Until (event de perda) { cada w segmentos reconhecidos: Congwin++ }threshold = Congwin/2Congwin = 1faça partida lenta

1

1: TCP Reno pula partida lenta (recuperaçãorápida) depois de três ACKs duplicados

Evitar congestionamento

Page 28: 3: Camada de Transporte 3a-1 Capítulo 3: Camada de Transporte Metas do capítulo: r compreender os princípios atrás dos serviços da camada de transporte:

3: Camada de Transporte 3b-28

Justeza do TCPMeta de justeza: se N sessões

TCP compartilham o mesmo enlace de gargalo, cada uma deve ganhar 1/N da capacidade do enlace

TCP congestion avoidance:

AADM: aumento aditivo, decremento multiplicativo aumenta janela em

1 por cada RTT diminui janela por

fator de 2 num evento de perda

AADM

TCP conexão 1

Roteadorgargalo

capacidade R

TCP conexão 2

Page 29: 3: Camada de Transporte 3a-1 Capítulo 3: Camada de Transporte Metas do capítulo: r compreender os princípios atrás dos serviços da camada de transporte:

3: Camada de Transporte 3b-29

Por quê TCP é justo?

Duas sessões concorrentes: Aumento aditivo dá gradiente de 1, enquanto vazão

aumenta decrementa multiplicativa diminui vazão proporcionalmente

R

R

compartilhamento igual da banda

Vazão da conexão 1

Vazã

o d

a c

onexão 2

evitar congestionamento: aumento aditivoperda: diminui janela por fator de 2

evitar congestionamento: aumento aditivoperda: diminui janela por fator de 2

Page 30: 3: Camada de Transporte 3a-1 Capítulo 3: Camada de Transporte Metas do capítulo: r compreender os princípios atrás dos serviços da camada de transporte:

3: Camada de Transporte 3b-30

Capítulo 3: Sumário

Princípios atrás dos serviços da camada de transporte: multiplexação/

desmultiplexação transferência confiável de

dados controle de fluxo controle de congestionamento

instanciação e implementação na Internet UDP TCP

Próximo capítulo: saímos da “borda” da

rede (camadas de aplicação e transporte)

entramos no “núcleo”da rede