Prof. Evandro Cant - PowerPoint PPT Presentation

1 / 47
About This Presentation
Title:

Prof. Evandro Cant

Description:

Title: Prof. Evandro Cant , Dr. Eng. Last modified by: Cantu Document presentation format: Apresenta o na tela Other titles: Times New Roman Arial Comic Sans MS ... – PowerPoint PPT presentation

Number of Views:71
Avg rating:3.0/5.0
Slides: 48
Provided by: wikiSjIf
Category:
Tags: cant | ecoa | evandro | prof

less

Transcript and Presenter's Notes

Title: Prof. Evandro Cant


1
Prof. Evandro Cantú
REDES DE COMPUTADORES
2
  • Prof. Evandro Cantú, Dr. Eng.
  • cantu_at_sj.cefetsc.edu.br
  • www.sj.cefetsc.edu.br/wiki
  • Slides adaptados de J. Kurose K. Ross
  • (http//www.aw-bc.com/kurose-ross/),
  • e J. A. Suruagy
  • (http//www.nuperc.unifacs.br/suruagy/redes/index.
    html)

2
Curso de Capacitação Intelbras Redes
Computadores Maio 2007
3
Camada de Transporte
  • Objetivos
  • compreender os princípios atrás dos serviços da
    camada de transporte
  • multiplexação/demultiplexação
  • transferência confiável de dados
  • controle de fluxo
  • controle de congestionamento
  • aprender os protocolos da camada de transporte da
    Internet
  • UDP transporte sem conexão
  • TCP transporte orientado a conexões
  • Controle de congestionamento do TCP

4
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
    finais
  • lado transmissor quebra as mensagens das
    aplicações em segmentos, repassa-os para a camada
    de rede
  • lado receptor remonta as mensagens a partir dos
    segmentos, repassa-as para a camada de aplicação
  • existem mais de um protocolo de transporte
    disponível para as aplicações
  • Internet TCP e UDP

5
Camadas de Transporte x Rede
  • camada de rede comunicação lógica entre
    hospedeiros
  • camada de transporte comunicação lógica entre
    processos
  • depende da camada rede e estende os serviços por
    ela oferecidos

6
Protocolos da camada de transporte Internet
  • entrega confiável, ordenada (TCP)
  • controle de congestionamento
  • controle de fluxo
  • estabelecimento de conexão (setup)
  • entrega não confiável, não ordenada UDP
  • extensão sem frescuras do melhor esforço do
    IP
  • serviços não disponíveis
  • garantias de atraso
  • garantias de largura de banda

7
Multiplexação/demultiplexação
Entrega dos segmentos recebidos ao socket
correto
reúne dados de muitos sockets, envelopa os dados
com o cabeçalho (usado posteriormente para a
demultiplexação)
processo
socket
8
Como funciona a demultiplexação
  • host recebe os datagramas IP
  • cada datagrama possui os endereços IP da origem e
    do destino
  • cada datagrama transporta 1 segmento da camada de
    transporte
  • cada segmento possui números das portas origem e
    destino (lembre números de portas bem conhecidas
    para aplicações específicas)
  • host usa os endereços IP e os números das portas
    para direcionar o segmento ao socket apropriado

formato de segmento TCP/UDP
9
Demultiplexação sem Conexões
  • Quando host recebe segmento UDP
  • verifica no. da porta de destino no segmento
  • encaminha o segmento UDP para o socket com aquele
    no. de porta
  • Datagramas IP com diferentes endereços IP origem
    e/ou números de porta origem são encaminhados
    para o mesmo socket
  • socket UDP identificado pela dupla
  • (end IP dest, no. da porta destino)

10
Demultiplexação sem Conexões
SP (source port) provê endereço de retorno
11
Demultiplexação Orientada a Conexões
  • Socket TCP identificado pela 4-dupla
  • endereço IP origem
  • número da porta origem
  • endereço IP destino
  • número da porta destino
  • receptor usa todos os quatro valores para
    direcionar o segmento para o socket apropriado
  • Servidor pode dar suporte a muitos sockets TCP
    simultâneos
  • cada socket é identificado pela sua própria
    4-dupla
  • Servidores Web têm sockets diferentes para cada
    conexão cliente
  • HTTP não persistente terá sockets diferentes para
    cada pedido

12
Demultiplexação Orientada a Conexões
S-IP B
D-IPC
SP 9157
Cliente IPB
DP 80
servidor IP C
S-IP A
S-IP B
D-IPC
D-IPC
13
Demultiplexação Orientada a Conexões Servidor
Web com Threads
P4
S-IP B
D-IPC
SP 9157
Cliente IPB
DP 80
servidor IP C
S-IP A
S-IP B
D-IPC
D-IPC
14
UDP User Datagram Protocol RFC 768
  • 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
  • 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

15
Mais sobre UDP
Comprimento em bytes do segmento UDP, incluindo
cabeçalho
  • muito utilizado para apls. de meios contínuos
    (voz, vídeo)
  • tolerantes de perdas
  • sensíveis à taxa de transmissão
  • outros usos de UDP
  • DNS (nomes)
  • SNMP (gerenciamento)
  • transferência confiável com UDP incluir
    confiabilidade na camada de aplicação
  • recuperação de erro específica à apl.!

32 bits
porta origem
porta dest.
checksum
comprimento
Dados de aplicação (mensagem)
Formato do segmento UDP
16
Checksum UDP
Meta detectar erro (e.g., bits invertidos) no
segmento transmitido
  • Remetente
  • trata conteúdo do segmento como seqüê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
  • Receptor
  • calcula checksum do segmento recebido
  • verifica se checksum computado é zero
  • NÃO - erro detectado
  • SIM - nenhum erro detectado. Mas ainda pode ter
    erros? Veja depois .

17
Exemplo do Checksum Internet
  • Note
  • Ao adicionar números, o transbordo do bit mais
    significativo deve ser adicionado o resultado
  • Exemplo adição de dois inteiros de 16-bits

1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1
0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0
1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1
1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1
0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0
1 1
transbordo
soma
checksum
18
Princípios de Transferência confiável de dados
(rdt)
  • importante nas camadas de transporte, enlace
  • na lista dos 10 tópicos mais importantes em
    redes!
  • características do canal não confiável determinam
    a complexidade de um protocolo de transferência
    confiável de dados (rdt)

19
Transferência confiável de dados (rdt)
send side
receive side
20
TCP Visão geral RFCs 793, 1122, 1323, 2018, 2581
  • ponto a ponto
  • 1 remetente, 1 receptor
  • fluxo de bytes, ordenados, confiável
  • não estruturado em msgs
  • com paralelismo (pipelined)
  • tam. da janela ajustado por controle de fluxo e
    congestionamento do TCP
  • buffers de envio e recepção
  • 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

21
TCP estrutura do segmento
URG dados urgentes (pouco usados)
contagem de dadospor bytes (não segmentos!)
ACK no. ACK válido
PSH envia dados já (pouco usado)
no. bytes rcpt quer aceitar
RST, SYN, FIN gestão de conexão (comandos
deestabelecimento, liberação)
checksum Internet (como UDP)
22
TCP Seq e Ack
Estação B
Estação A
  • Números de sequência (Seq)
  • númerodentro do fluxo de bytes do primeiro byte
    de dados do segmento
  • Números de Reconhecimento (Ack)
  • no. de seq do próx. byte esperado do outro lado
  • ACK cumulativo

Usuário tecla C
Seq42, ACK79, data C
B reconhece chegada de C, ecoa C de volta
Seq79, ACK43, data C
A reconhece chegada do Cecoado
Seq43, ACK80
cenário simples de telnet
23
TCP Tempo de Resposta e Temporização
  • P como escolher valor do temporizador TCP?
  • maior que o RTT (Round Trip Time)
  • 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
  • Como o RTT_amostra vai varia, usa-se várias
    medições recentes, não apenas o valor corrente.

24
Exemplo de estimativa do RTT
25
TCP Tempo de Resposta (RTT) e Temporização
  • Escolhendo o intervalo de temporização
  • RTT_estimado mais uma margem de segurança
  • grande variação no RTT_estimado -gt maior
    margem de segurança
  • primeiro estima o quanto a RTTamostra desvia do
    RTT_estimado, então, seta o temporizador para

Temporização RTT_estimado 4Desvio_RTT
26
Transferência de dados confiável do TCP
  • O TCP cria um serviço confiável sobre o serviço
    não confiável do IP
  • Segmentos em série (pipelined)
  • Acks cumulativos
  • O TCP usa um único temporizador para
    retransmissões
  • As retransmissões são disparadas por
  • estouros de temporização
  • acks duplicados
  • Considere inicialmente um transmissor TCP
    simplificado
  • ignora acks duplicados
  • ignora controles de fluxo e de congestionamento

27
Eventos do transmissor TCP
  • Dados recebidos da aplicação
  • Cria segmento com no. de seqüência (nseq)
  • nseq é o número de seqüência do primeiro byte do
    segmento
  • Liga o temporizador se já não estiver ligado
    (temporização do segmento mais antigo ainda não
    reconhecido)
  • Valor do temporizador calculado anteriormente
  • estouro do temporizador
  • Retransmite o segmento que causou o estouro do
    temporizador
  • Reinicia o temporizador
  • Recepção de Ack
  • Se reconhecer segmentos ainda não reconhecidos
  • atualizar informação sobre o que foi reconhecido
  • religa o temporizador se ainda houver segmentos
    pendentes (não reconhecidos)

28
TCP cenários de retransmissão
Host A
Host B
Seq92, 8 bytes data
Seq100, 20 bytes data
ACK100
ACK120
Seq92, 8 bytes data
Sendbase 100
SendBase 120
ACK120
Seq92 timeout
SendBase 100
SendBase 120
estouro prematuro do temporizador
29
TCP cenários de retransmissão
SendBase 120
30
TCP geração de ACKs RFCs 1122, 2581
Ação do Receptor TCP ACK retardado. Espera até
500ms p/ próx. segmento. Se não chegarsegmento,
envia ACK envia imediatamente um único ACK
cumulativo envia ACK duplicado, indicando no.
de seq.do próximo byte esperado ACK imediato
se segmento no início da lacuna
Evento no Receptor chegada de segmento em
ordem sem lacunas, anteriores já
reconhecidos chegada de segmento em ordem sem
lacunas, um ACK retardado pendente chegada de
segmento fora de ordem, com no. de seq.
maior que esperado -gt lacuna chegada de segmento
que preenche a lacuna parcial oucompletamente
31
Retransmissão rápida
  • O intervalo do temporizador é freqüentemente
    bastante longo
  • longo atraso antes de retransmitir um pacote
    perdido
  • Detecta segmentos perdidos através de ACKs
    duplicados.
  • O transmissor normalmente envia diversos
    segmentos
  • Se um segmento se perder, provavelmente haverá
    muitos ACKs duplicados.
  • Se o transmissor receber 3 ACKs para os mesmos
    dados, ele supõe que o segmento após os dados
    reconhecidos se perdeu
  • Retransmissão rápida retransmite o segmento
    antes que estoure o temporizador

32
Controle de Fluxo do TCP
Controle de fluxo
  • Lado receptor da conexão TCP possui um buffer de
    recepção

o transmissor não inundará o buffer do receptor
transmitindo muito e rapidamente
  • serviço de casamento de velocidades adaptando a
    taxa de transmissão à taxa de leitura da
    aplicação receptora
  • Processo da apl. pode demorar a ler do receptor

33
Controle de Fluxo do TCP como funciona
  • O receptor anuncia o espaço livre incluindo o
    valor da RcvWindow nos segmentos
  • O transmissor limita os dados não reconhecidos ao
    tamanho da RcvWindow
  • Garante que o buffer do receptor não transbordará
  • (Suponha que o receptor TCP receba segmentos fora
    de ordem)
  • espaço livre no buffer
  • RcvWindow
  • RcvBuffer-LastByteRcvd - LastByteRead

34
TCP Gerenciamento de Conexões
  • Inicialização em 3 tempos
  • Passo 1 sistema cliente envia segmento de
    controle SYN do TCP ao servidor
  • especifica no. inicial de seq
  • não envia dados
  • Passo 2 sistema servidor recebe SYN, responde
    com segmento de controle SYNACK
  • aloca buffers
  • especifica no. inicial de seq. servidor-gt
    receptor
  • Passo 3 receptor recebe SYNACK, responde com
    segmento ACK que pode conter dados.
  • 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
  • servidor contactado por cliente

35
TCP Gerenciamento de Conexões (cont.)
  • Encerrando uma conexão
  • cliente fecha soquete
  • 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
servidor
fechar
FIN
ACK
fechar
FIN
ACK
espera temporizada
fechada
36
TCP Gerenciamento de Conexões (cont.)
  • Passo 3 cliente recebe FIN, responde com ACK.
  • Entre em espera temporizada - responderá com
    ACK a FINs recebidos
  • Passo 4 servidor, recebe ACK. Conexão
    encerrada.

cliente
servidor
fechando
FIN
ACK
fechando
FIN
ACK
esperatemporizada
fechada
fechada
37
TCP Gerenciamento de Conexões (cont.)
Ciclo de vidade servidor TCP
Ciclo de vidade cliente TCP
38
Princípios de Controle de Congestionamento
  • Congestionamento
  • informalmente muitas fontes enviando muitos
    dados muito rapidamente para a rede poder tratar
  • diferente de controle de fluxo!
  • manifestações
  • perda de pacotes (esgotamento de buffers em
    roteadores)
  • longos atrasos (enfileiramento nos buffers dos
    roteadores)
  • um dos 10 problemas mais importantes em redes!

39
Abordagens de controle de congestionamento
Duas abordagens amplas para controle de
congestionamento
  • Controle de congestionamento fim a fim
  • não tem realimentação explícita pela rede
  • congestionamento inferido a partir das perdas,
    retardo observados pelo sistema terminal
  • abordagem usada pelo TCP
  • Controle de congestionamento com apoio da rede
  • roteadores realimentam os sistemas terminais
  • bit indicando congestionamento (ATM)
  • taxa explícita p/ envio pelo remetente

40
Controle de Congestionamento do TCP
  • controle fim-a-fim (sem assistência da rede)
  • transmissor limita a transmissão
  • LastByteSent-LastByteAcked ? CongWin
  • Praticamente,
  • CongWin é dinâmica, em função do congestionamento
    percebido da rede
  • Como o transmissor percebe o congestionamento?
  • evento de perda estouro do temporizador ou 3
    acks duplicados
  • transmissor TCP reduz a taxa (CongWin) após
    evento de perda
  • três mecanismos
  • AIMD
  • partida lenta
  • conservador após eventos de estouro de
    temporização

41
AIMD do TCP
  • decrescimento multiplicativo corta CongWin pela
    metade após evento de perda

crescimento aditivo incrementa CongWin de 1 MSS
a cada RTT na ausência de eventos de perda
sondagem
Conexão TCP de longa duração
42
Partida Lenta do TCP
  • No início da conexão, aumenta a taxa
    exponencialmente até o primeiro evento de perda
  • No início da conexão, CongWin 1 MSS
  • Exemplo MSS 500 bytes RTT 200 mseg
  • taxa inicial 20 kbps
  • largura de banda disponível pode ser gtgt MSS/RTT
  • é desejável um crescimento rápido até uma taxa
    considerável

43
TCP Partida lenta (mais)
Estação A
Estação B
  • No início da conexão, aumenta a taxa
    exponencialmente até o primeiro evento de perda
  • duplica CongWin a cada RTT
  • através do incremento da CongWin para cada ACK
    recebido
  • Resumo taxa inicial é baixa mas cresce
    rapidamente de forma exponencial

um segmento
RTT
dois segmentos
quqtro segmentos
44
Refinamento
Filosofia
  • 3 ACKs duplicados indica que a rede é capaz de
    entregar alguns segmentos
  • estouro de temporizador antes de 3 ACKs
    duplicados é mais alarmante.
  • Após 3 ACKs duplicados
  • corta CongWin pela metade
  • a janela depois cresce linearmente
  • Mas após estouro de temporizador
  • CongWin é reduzida a 1 MSS
  • janela cresce exponencialmente
  • até um limiar, depois cresce linearmente

45
Refinamento (mais)
  • P Quando o crescimento exponencial deve mudar
    para linear?
  • R Quando CongWin atinge 1/2 do seu valor antes
    do estouro do temporizador.
  • Implementação
  • Limiar (Threshold) variável
  • Com uma perda o limiar passa a ser 1/2 da CongWin
    imediatamente anterior à perda.

46
Resumo Controle de Congestionamento do TCP
  • Quando a CongWin está abaixo do limiar,
    transmissor está na fase de início lento, janela
    cresce exponencialmente.
  • Quando a CongWin está acima do limiar,
    transmissor está na fase de evitar
    congestionamento, janela cresce linearmente.
  • Quando chegam ACKs triplicados, Limiar passa a
    ser CongWin/2 e CongWin passa ao valor do Limiar.
  • Quando estoura o temporizador, Limiar passa a ser
    CongWin/2 e CongWin passa a ser 1 MSS.

47
Controle de congestionamento do transmissor TCP
Evento Estado Ação do Transmissor TCP Comentário
ACK recebido para dados ainda não reconhecidos Partida lenta CongWin CongWin MSS, If (CongWin gt Limiar) seta estado para Evitar congestionamento Resulta na duplicação da CongWin a cada RTT
ACK recebido para dados ainda não reconhecidos Evitar congestionamento CongWin CongWinMSS (MSS/CongWin) Incremento aditivo, resultando no incremento da CongWin de 1 MSS a cada RTT
Perda detectada por ACKs triplicados qualquer Limiar CongWin/2, CongWin Limiar, Seta estado para Evitar Congestionamento Recuperação rápida, implementa decrescimento multiplicativo. CongWin não cai abaixo de 1 MSS.
Estouro de temporizador qualquer Limiar CongWin/2, CongWin 1 MSS, Seta estado para Partida lenta Entra estado de partida lenta
ACK duplicado qualquer Incrementa contador de ACKs duplicados para o segmento que está sendo reconhecido CongWin e Threshold não se alteram
Write a Comment
User Comments (0)
About PowerShow.com