Curso de Redes de Computadores

Tamanho: px
Começar a partir da página:

Download "Curso de Redes de Computadores"

Transcrição

1 Curso de Redes de Computadores Adriano Mauro Cansian Capítulo 3 Camada de Transporte 1 Capítulo 3: Camada de Transporte Metas do capítulo: q Compreender os princípios dos serviços da camada de transporte:. Transferência confiável de dados. Controle de fluxo. Controle de congestionamento. q Implementação na Internet. O que veremos: q Serviços da camada de transporte. q Multiplexação / desmultiplexação. q Transporte sem conexão: UDP. q Princípios de transferência confiável. Qual a ideia e como surgiu q Transporte orientado a conexão: TCP Transferência confiável Controle de fluxo Gerenciamento de conexões q Princípios de controle de congestionamento. q Controle de congestionamento em TCP. 2 Prof. Dr. Adriano Mauro Cansian 1

2 Cuidado com conceitos! Muito material errado ou ruim na Internet!! (apesar de outros muito bons)! 3 Comparação entre as camadas Camada Transporte à processos Protocolo da Camada de Transporte fornece comunicação lógica entre processos, rodando em hosts diferentes (peer process). Camada de rede à hosts Protocolo da Camada de Rede fornece comunicação lógica entre hosts. Camada de transporte repousa exatamente sobre a camada de rede. Esta distinção é sutil, mas MUITO importante! 4 Prof. Dr. Adriano Mauro Cansian 2

3 Camada de Transporte X Camada de Rede (1) q Exemplo: 10 irmãos numa casa em São Paulo, SP. e 10 irmãos em outra casa em Manaus, AM. Os de SP são primos daqueles em Boa Vista. Escrevem cartas entre SP e AM semanalmente. q Em São Paulo: João recolhe as cartas, e as entrega ao correio. q Em Manaus: Maria recolhe as cartas, e as entrega ao correio. q Também recebem e fazem a distribuição local das cartas que chegam. 5 Correio Rua dos Bichos, No. 32, Manaus, AM Rua dos Santos, No. 400, , S.Paulo, SP 6 Prof. Dr. Adriano Mauro Cansian 3

4 Correio Rua dos Bichos, No. 32, Manaus, AM Rua dos Santos, No. 400, , S.Paulo, SP 7 Camada de Transporte X Camada de Rede (2) q Hosts (end systems) = Casas. q Processos = pessoas que trocam mensagens. q Mensagens da aplicação = cartas em envelopes. q Protocolo da camada de rede: Serviço postal (correio). q Protocolo da Camada de Transporte: João (de um lado) e Maria (do outro). 8 Prof. Dr. Adriano Mauro Cansian 4

5 Serviços e protocolos de TRANSPORTE (1) q comunicação lógica entre processos de aplicação executando em hosts diferentes. q Protocolos de transporte rodam em sistemas finais. Camada de rede: dados transferidos entre hosts. Camada de transporte: dados transferidos entre processos. aplicação transporte rede enlace física rede enlace física rede enlace física rede enlace física rede enlace física rede enlace física aplicação transporte rede enlace física 9 Serviços e protocolos de TRANSPORTE (2) q Do ponto de vista da APLICAÇÃO a camada de transporte permite enxergar os sistemas como se eles estivessem fisicamente conectados. Mesmo que existam vários roteadores, links e outros equipamentos no caminho. q A Camada de Aplicação não tem que se preocupar com a infra-estrutura de interligação, usada para carregar as mensagens. 10 Prof. Dr. Adriano Mauro Cansian 5

6 Protocolos da camada de transporte Dois Serviços de transporte na Internet: q Entrega confiável, ordenada, ponto a ponto: TCP. Controle Congestionamento. Controle de fluxo. Estabelecimento de conexão (setup). q Entrega não confiável, ( melhor esforço ), não ordenada, ponto a ponto ou multiponto: UDP. aplicação transporte rede enlace física rede enlace física rede enlace física rede enlace física rede enlace física rede enlace física aplicação transporte rede enlace física 11 Fluxo de encapsumaneto 12 Prof. Dr. Adriano Mauro Cansian 6

7 Fluxo de desencapsulamento 13 Multiplexação/desmultiplexação (1) q MULTIPLEXAÇÃO: Juntar dados de múltiplos processos de aplicações, encapsulando dados com cabeçalho (usado depois para demultiplexação). dados da camada de aplicação cabeçalho P1 de segmento M aplicação segmento Ht M transporte Hn segmento rede P3 receptor M M aplicação transporte rede P4 M P2 aplicação transporte rede 14 Prof. Dr. Adriano Mauro Cansian 7

8 Multiplexação/desmultiplexação (1) q MULTIPLEXAÇÃO: Juntar dados de múltiplos processos de aplicações, envelopando dados com cabeçalho (usado depois para demultiplexação). q DEMULTIPLEXAÇÃO: entrega de segmentos recebidos para os processos da camada de aplicação corretos. dados da camada de aplicação cabeçalho P1 de segmento M aplicação segmento Ht M transporte Hn segmento rede P3 receptor M M aplicação transporte rede P4 M P2 aplicação transporte rede 15 Multiplexação/desmultiplexação (2) q Segmento - Unidade de dados trocada entre entidades da camada de transporte. Ou TPDU- Transport protocol Data Unit, ou 4-PDU (PDU da camada 4). No exemplo abaixo: P1 com P3, e P2 com P4. dados da camada de aplicação P3 receptor M M P4 cabeçalho P1 de segmento M aplicação segmento Ht M transporte Hn segmento rede aplicação transporte rede M P2 aplicação transporte rede 16 Prof. Dr. Adriano Mauro Cansian 8

9 Multiplexação/desmultiplexação (3) Multiplexação/demultiplexação: q Baseadas em números de porta e endereços IP de remetente e receptor: Números de porta de remetente/receptor são enviados em cada segmento. Número de porta são conhecidas para aplicações específicas (WKS): na porta 25, telnet na porta 23, http na porta 80, e assim por diante. porta emissor 32 bits outros campos do cabeçalho dados da aplicação (mensagem) porta receptor formato genérico de segmento TCP/UDP 17 Multiplexação/desmultiplexação: exemplos estação A porta orig.: x porta dest: 23 servidor B Web client host C porta orig:23 porta dest: x uso de portas: aplicação telnet IP orig : C IP dest: B porta orig: y porta dest: 80 IP orig: C IP dest: B porta orig: x porta dest: 80 Cliente WWW estação A IP orig: A IP dest: B porta orig: x porta dest: 80 servidor WWW B Uso de portas : servidor WWW 18 Prof. Dr. Adriano Mauro Cansian 9

10 UDP: User Datagram Protocol [RFC 768] q Protocolo de transporte da Internet mínimo. q Best Effort: Serviço melhor esforço, resulta que segmentos UDP podem ser: Perdidos. Entregues à aplicação fora de ordem de envio. q Sem conexão: Não há setup UDP entre remetente e receptor. Tratamento independente de cada segmento UDP. Por quê existe um UDP? q Elimina estabelecimento de conexão (o que pode causar retardo). q Simples: não se mantém estado da conexão no remetente/receptor. q Pequeno cabeçalho de segmento. Mais simples. q Sem controle de congestionamento: UDP pode transmitir o mais rápido possível. 19 Mais sobre UDP q Muito utilizado para aplicações de meios contínuos (voz, vídeo) São tolerantes a perdas. São sensíveis à taxa de transmissão. q Outros usos de UDP : DNS (servidor de nomes). SNMP (gerenciamento). q Transferência confiável com UDP: só pode incluir confiabilidade na camada de aplicação. Recuperação de erro fica por conta da aplicação! Comprimento em bytes do segmento UDP, incluindo cabeçalho porta origem comprimento 32 bits Dados de aplicação (mensagem) porta dest. checksum Formato de um sgmento UDP 20 Prof. Dr. Adriano Mauro Cansian 10

11 Checksum UDP Meta: detectar falha no segmento transmitido. Emissor: q Trata conteúdo do segmento como seqüência de inteiros de 16-bits. q Campo checksum zerado. q Checksum: soma (adição usando complemento de 1) do conteúdo do segmento. q Emissor coloca complemento de um do valor da soma no campo checksum de UDP. q Envia... Receptor (na chegada): q q Soma os campos de header do segmento recebido, incluindo o valor no campo checksum Como colocou o complemento de 1 no campo checksum, quando somar tudo tem que resultar num valor com todos os bits iguais a 1. Verifica se o valor computado é todo igual a 1: NÃO - erro detectado. SIM - nenhum erro detectado. Mas ainda pode haver erros? (Veremos mais adiante.) 21 Exemplo de cálculo do checksum (1) Considere 3 palavras de 16 bits sendo transmitidas: A soma das duas primeiras palavras é: Adicionando a terceira palavra, a soma acima fica: soma Ver RFC-1071! q Os complementos de 1 são obtidos convertendo todos os 0 s para 1 s, e todos os 1 s para 0 s Prof. Dr. Adriano Mauro Cansian 11

12 Lembrete 1: método Polinomial 23 Lembrete 2: carry 24 Prof. Dr. Adriano Mauro Cansian 12

13 Exemplo de cálculo do checksum (2) Assim o complemento de 1's da soma q Este valor se torna o checksum. é q No receptor, todas as palavras de 16 bits são somadas, incluindo o campo checksum. q Se não foram introduzidos erros no pacote, a soma no receptor tem que resultar em uma vez que somou-se ao header o complemento de 1 da soma dele. q Se um dos bits for zero, então algum erro foi introduzido no pacote. Pergunta exercício: Por que o UDP usa checksum, se a maioria dos protocolos data-link (inferiores), incluindo o popular Ethernet, também fornece verificação de erro?? 25 Exemplo de cálculo do checksum (2) Assim o complemento de 1's da soma q Este valor se torna o checksum. é Prof. Dr. Adriano Mauro Cansian 13

14 Pseudo Header (1) q O UDP (assim como o TCP) usa um pseudo header no cálculo do checksum, com informações do IP (16 bytes). Checksum usa os headers (pseudo header e header UDP), e os dados do UDP. q Comprimento do UDP pode ser um número ímpar de bytes. Algoritmo do checksum soma palavras de 16 bits. Solução: adicionar pad de zeros, no final, se necessário. Pad não é transmitido. 27 Pseudo Header (2) Pseudo header IP (usado pelo UDP) (16 bytes) Header UDP (8 bytes) Violação da independência das camadas. Pergunta-se: Por quê? 28 Prof. Dr. Adriano Mauro Cansian 14

15 Princípios de Transferência Confiável de Dados Reliable Data Transfer (RDT) 29 Princípios de Transferência confiável de dados Reliable Data Transfer (RDT) q Importante nas camadas de transporte e também de enlace. q No topo da lista dos 10 tópicos mais importantes em redes! q Características do canal não confiável determinam a complexidade de um protocolo de transferência confiável de dados (RDT). 30 Prof. Dr. Adriano Mauro Cansian 15

16 Transferência confiável de dados (RDT) Como começar? rdt_send( ): chamada da camada superior, (Ex: pela aplicação). Passa dados para entregar à camada superior receptora deliver_data(): chamada por rdt para entregar dados para camada superior. emissor receptor udt_send(): chamada por ambos os lados para troca de pacotes de controle. UDT representa um unreliable data transfer. rdt_rcv(): chamada quando pacote chega no lado receptor do canal. 31 Transferência confiável de dados (rdt): como começar Iremos: q Desenvolver passo-a-passo os lados remetente e receptor do protocolo confiável RDT. q Vamos Considerar apenas fluxo unidirecional de dados. Mas a informação de controle flui em ambos sentidos! q Usar máquinas de estados finitos (FSM - Finite State Machine) para especificar remetente e receptor. ESTADO: quando o sistema está num estado, o próximo estado é determinado unicamente pelo próximo evento. estado 1 evento causando transição de estados ações tomadas na transição de estado evento ações estado 2 32 Prof. Dr. Adriano Mauro Cansian 16

17 Como iremos analisar: q Para entender a evolução das idéias sobre RDT, vamos fazer considerações sobre características que podem estar presentes no canal. Exemplos: canal pode entregar dados fora de ordem, inverter bits, perder bits, dentre outros. q Importante: entender que RDT ainda não é o TCP, mas é de onde ele veio. É como o TCP evoluiu. 33 RDT 1.0: transferência confiável usando um canal confiável q Suposição 1.0: o canal é perfeitamente confiável. Não apresenta erros de bits. Não apresenta perda de pacotes. q FSMs separadas, para remetente e receptor: Remetente envia dados pelo canal subjacente. Receptor recebe dados do canal subjacente. Evento que causou a transição Ações tomadas quando ocorre um evento 34 Prof. Dr. Adriano Mauro Cansian 17

18 RDT Modelo um pouco mais realista: q Bits num pacote podem ser corrompidos. Falhas podem ocorrer nos componentes físicos da rede: Por exemplo, quando um pacote é transmitido, propagado ou bufferizado, inverte um bit. q Entretanto, continuamos supondo que todos os pacotes transmitidos são recebidos na ordem em que são enviados. Ainda que bits possam estar corrompidos. 35 Rdt2.0: canal com erros de bits q Canal subjacente pode inverter bits no pacote O checksum UDP pode detectar erros de bits. q A questão é: como recuperar dos erros? Boa idéia: usar mensagens de controle. Confirmação (ACK): receptor avisa explicitamente ao remetente que pacote chegou bem. Confirmação negativa (NAK): receptor avisa explicitamente ao remetente que pacote tinha erros. Emissor retransmite pacote ao receber um NAK ( Lembrar de cenários humanos usando ACKs, NAKs ) 36 Prof. Dr. Adriano Mauro Cansian 18

19 Mensagens de controle q Permitem o receptor informar ao emissor o que foi recebido corretamente. E o que foi recebido com erro, exigindo retransmissão. q Protocolos baseados em retransmissão são chamados de Protocolos ARQ: Automatic Repeat request. Requisição Automática de Repetição 37 Novas capacidades em RDT 2.0 q Três capacidades adicionais são exigidas em protocolos de ARQ para lidar com a presença de erros de bits: Detecção de erros: mecanismo para permitir que o receptor identifique quando erros de bit ocorreram. Realimentação (feedback) pelo receptor: mensagens de controle (ACK, NAK) trocadas entre receptor e o emissor. Retransmissão: para corrigir os erros detectados. Estes novos mecanismos estão presentes na proposta de protocolo rdt Prof. Dr. Adriano Mauro Cansian 19

20 rdt2.0: especificação da FSM - Emissor Aguarda dados da aplicação 1 Possui 2 estados: Em um estado aguarda dados da camada superior. Em outro estado, aguarda ACK ou NACK do receptor Aguarda ACK ou NACK do receptor 2 Se recebe um NACK, re-envia o último pacote atual, e retorna a aguardar um ACK ou NACK. Não pode aceitar dados da camada superior (stop-and-wait) 3 Se recebe um ACK confirmando que o dado atual foi recebido, retorna ao estado de aguardar um pacote da camada superior 39 rdt2.0: especificação da FSM - Receptor Possui apenas 1 estado: ao receber um pacote, responde com ACK ou NACK, dependendo se o pacote está ou não corrompido. Pacote recebido apresenta erro. Emite um NACK, e retorna ao estado de aguardar. Pacote recebido está íntegro. Emite um ACK, confirmando e retorna ao estado de aguardar. 40 Prof. Dr. Adriano Mauro Cansian 20

21 rdt2.0: em ação (sem erros) FSM do remetente FSM do receptor 41 rdt2.0: em ação (cenário de erro) FSM do remetente FSM do receptor 42 Prof. Dr. Adriano Mauro Cansian 21

22 Mas o RDT 2.0 tem uma falha fatal RDT 2.0 tem uma falha fatal! q O que acontece se ACK ou NACK com erro? Emissor não sabe o que aconteceu no receptor! Não se pode apenas retransmitir: há possibilidade de pacotes duplicados. O que fazer? q Emissor usaria ACKs / NAKs para ACK / NAK do receptor? E se corromper ACK/NAK do remetente? q Retransmitir? Pode causar retransmissão de pacote recebido certo! 44 Prof. Dr. Adriano Mauro Cansian 22

23 RDT 2.0 tem uma falha fatal! O que acontece se ACK ou NACK com erro? q Remetente não sabe o que aconteceu no receptor! q Não se pode apenas retransmitir: há possibilidade de pacotes duplicados. O que fazer? q Remetente usa ACKs/NAKs p/ ACK/NAK do receptor? E se perder ACK/NAK do remetente? q Retransmitir? Mas pode causar retransmissão de pacote recebido certo! Lidando com duplicação: q Emissor inclui número de sequência para cada pacote. q Emissor retransmite pacote atual se ACK/NAK recebido com erro. q Receptor descarta pacote duplicado. Stop and wait Remetente envia um pacote, e então aguarda resposta do receptor. 45 RDT 2.1: EMISSOR como trata ACK/NAKs com erro 1 Insere No. de sequência 0 no pacote 2 4 Aguarda a chegada do No. Seq. correto 3 Deve verificar se ACK/NAK recebido tinha erro 46 Prof. Dr. Adriano Mauro Cansian 23

24 RDT 2.1: RECEPTOR como trata ACK/NAKs com erro Pacote corrompido Deve checar se pacote recebido é duplicado. O estado indica se No. de sequência esperado é 0 ou No. Seq. errado 47 RDT 2.1: discussão (1) EMISSOR: q Insere No. de sequência (seq#) no pacote. q Bastam dois Nos. de sequência (0 ou 1). q Deve verificar se ACK/NAK recebido tem erro. q Duplicou o No. de estados (compare com RDT 2.0) Estado deve lembrar se o pacote atual tem No. de sequência 0 ou 1. Aqui surge uma das primeiras características do TCP: manutenção de status (statefull protocol). 48 Prof. Dr. Adriano Mauro Cansian 24

25 rdt2.1: discussão (2) RECEPTOR: q Deve checar se pacote recebido é duplicado. Estado indica se No. de sequência esperado é 0 ou 1. q Receptor não tem como saber se último ACK/ NAK foi recebido bem pelo emissor. Ele não tem como ter contato direto com o emissor, a não ser por intermédio da indicação de pacotes trocados. 49 RDT 2.2: um protocolo sem NAKs Fica como exercício fazer esta abstração sem NAK q Mesma funcionalidade que RDT 2.1, mas apenas com ACKs. q Ao invés de NAK, receptor envia ACK para o último pacote recebido corretamente. Receptor deve incluir explicitamente o No. de sequência do pacote confirmado. q ACK duplicado no emissor resulta na mesma ação que o NAK: retransmite pacote atual.! EMISSOR 50 Prof. Dr. Adriano Mauro Cansian 25

26 RDT 3.0: canais com erros e perdas (1) q Nova suposição: além de corromper dados, o canal também pode perder pacotes Pode perder dados ou ACKs. Só vamos usar ACKs e não mais NAKs. q Como lidar com perdas? Ou seja, como detectar perda de pacotes? O que fazer quando pacotes são perdidos? Checksum, No. de sequência, ACKs, e retransmissões podem ajudar, mas não serão suficientes. 51 rdt3.0: canais com erros e perdas (2) q Abordagem: remetente aguarda um determinado tempo pelo ACK em trânsito. q Exige uso de temporizadores (timers). Timeout à esgotamento do timer. Retrasmisão ocorre se nenhum ACK recebido neste tempo. q Se pacote (ou ACK) está apenas atrasado (não perdido): A retransmissão será duplicada. Mas uso de número de sequência resolve este problema. Receptor deve avisar o número de sequência do pacote que está sendo confirmado. 52 Prof. Dr. Adriano Mauro Cansian 26

27 RDT 3.0: EMISSOR Inicia o timer e aguarda o ack Esgotou o timer: reenvia o anterior 53 RDT 3.0 em ação (1) 54 Prof. Dr. Adriano Mauro Cansian 27

28 RDT 3.0 em ação (2) Descarta pkt1 duplicado 55 RDT últimas palavras q Aqui terminamos os estudos da criação dos protocolos RDT e das idéias que deram origem a eles. q Eles serão a base para o TCP, mas ainda não são o TCP. q Em seguida veremos agora os protocolos dutados, que se juntarão ao RDT para formar o TCP. q É importante que, neste ponto, você tenha entendido bem as idéias do RDT, para poder prosseguir. 56 Prof. Dr. Adriano Mauro Cansian 28

29 Protocolos dutados (pipelined) 57 Problema com protocolo stop & wait q Em longas distâncias: retardo fim-a-fim é grande. q Pacote pode estar em trânsito, ainda não confirmado. 58 Prof. Dr. Adriano Mauro Cansian 29

30 Desempenho de rdt3.0 q RDT 3.0 funciona, porém seu desempenho é muito ruim. q Exemplo: Link de 1 Gbps (10**9 bits/seg); Pacote de 1 KByte (8K bits) retardo fim-a-fim de 15 ms, : T transmissão = 8 kbits/pacote 10**9 b/seg = 8 microseg Tempo de ida e volta = 30 ms + 16 microseg Desempenho = 8 microseg mseg = 0,00027 = 0,027 % Pacote de 1KB a cada 30 mseg vazão de 33kByte/seg num enlace de 1 Gbps! Protocolo limita uso dos recursos físicos! 59 Protocolos dutados (pipelined) Dutagem (pipelining): remetente admite múltiplos pacotes em trânsito, ainda não confirmados. Faixa de números de sequência deve ser aumentada. Buffers no remetente e/ou no receptor. q Duas formas genéricas de protocolos dutados : Volta-N (GBN Go Back N) Retransmissão Reletiva (selective repeat). 60 Prof. Dr. Adriano Mauro Cansian 30

31 GBN - Go Back N (1) q Também conhecido como Volta-N. q Emissor: pode enviar múltiplos pacotes, sem aguardar ACK do receptor. q Entretanto: Não pode haver mais do que um valor máximo de N pacotes não confirmados no canal. 61 GBN - Go Back N (2) send_base = Seq. # do pacote mais antigo não confirmado no duto. nextseqnum = Menor Seq. # não usado (Seq.# do próximo a enviar). [0, send_base - 1] = Pacotes transmitidos e confirmados (verde) [send_base, nextseqnum -1] = Pacotes enviados mas não confirmados (amarelo) [nextseqn, send_base + N - 1] = Disponíveis para serem usados imediatamente, assim que dados chegarem da camada superior (azul). Sequence number (base + N) : não podem ser usados até que um pacote não confirmado que esteja atualmente no duto tenha sido confirmado. 62 Prof. Dr. Adriano Mauro Cansian 31

32 GBN - Go Back N (3) q No EMISSOR: O intervalo de números de sequência para pacotes transmitidos, mas ainda não confirmados, poder ser visto como uma janela (window) de tamanho N sobre o intervalo de números de seqüência. q À medida que o protocolo opera, a janela se desloca sobre o espaço de números de sequência: sliding-window protocol = Janela deslizante Pergunta: por que limitar o número de pacotes não confirmados? 63 GBN: FSM estendida do EMISSOR Recebe um ACK(n): confirma que todos pacotes até, e inclusive, o No. de sequência n foram recebidos no receptor: ACK cumulativo pode receber ACKs duplicados Chamada superior: verifica se a janela está cheia. Se não está, forma o pacote e envia. Se está cheia, recusa. Temporizador Timeout(n): retransmite pacote n e todos os pacotes com No. de sequência maiores na janela. 64 Prof. Dr. Adriano Mauro Cansian 32

33 GBN: FSM estendida do EMISSOR Se ocorrer um esgotamento do temporizador, o emissor reenvia TODOS os pacotes que tinham sido previamente enviados, mas que ainda não tinham sido reconhecidos. 2 Temporizador: é um cronômetro para o pacote mais antigo transmitido, mas que ainda não foi reconhecido 65 GBN: FSM estendida do EMISSOR Se for recebido um ACK, e ainda houver pacotes enviados mas ainda não confirmados, o timer será reiniciado. Se não houver nenhum pacote pendente (aguardando confirmação), então o timer é desligado. Temporizador: é um cronômetro para o pacote mais antigo transmitido, mas que ainda não foi reconhecido 66 Prof. Dr. Adriano Mauro Cansian 33

34 GBN: FSM estendida do RECEPTOR expectedseqnum = expectedseqnum + 1 Receptor é muito simples: q Usa apenas ACK: sempre envia ACK para pacote recebido o.k. com o maior número de sequência em ordem. Pode gerar ACKs duplicados Só precisa se lembrar do expectedseqnum q Se recebe Pacote fora de ordem: Descarta (não armazena) receptor não usa buffers. (TCP usa!) Manda ACK de pacote com maior No. de sequência em ordem. 67 GBN em ação Confirma os pacotes 0 e 1 Janela = 4. Envia de 0 a 3 e o 2 se perde Pacote 2 se perdeu. Descarta o 3 e pede o 2 (confirma o 1). Descarta o 4 e o 5, e continua pedindo o 2. Timeout do ack de 2. Retransmite o Prof. Dr. Adriano Mauro Cansian 34

35 GBN não é o TCP q GBN incorpora quase todas as técnicas que serão encontradas nos componentes do TCP (visto mais adiante): Número de sequência. Checksum. ACK cumulativos. Timeouts. Operação de retransmissão. q Entretanto existem diferenças entre o TCP e o GBN. q Por exemplo: implementações TCP fazem buffering de segmentos recebidos corretamente, mas fora de ordem. q TCP é um híbrido de GBN e Repetição Seletiva (a seguir). 69 Problemas do GBN q GBN tem problemas de performance. Se o tamanho da janela é grande e o atraso da rede também é grande, muitos pacotes podem estar no duto. Um único erro em um segmento resulta na retransmissão de um grande número de segmentos, a maioria desnecessários. q À medida em que a probabilidade de erro do canal cresce, o duto fica lotado de retransmissões desnecessárias. 70 Prof. Dr. Adriano Mauro Cansian 35

36 Repetição Seletiva 71 Repetição seletiva q Evita retransmissões desnecessárias. O emissor retransmite apenas os pacotes que ele suspeita terem sido recebidos com erro pelo receptor. q Receptor confirma individualmente todos os pacotes recebidos corretamente. Armazena pacotes no buffer, conforme necessário, para posterior entrega em ordem à camada superior. q Emissor apenas re-envia pacotes para os quais o ACK não foi recebido. Complica um pouco: Timer de EMISSOR para cada pacote sem ACK. q Janela do emissor N números de sequência consecutivos. Outra vez limita Nos. de seqüência de pacotes enviados, mas ainda não reconhecidos. 72 Prof. Dr. Adriano Mauro Cansian 36

37 Repetição seletiva: janelas de remetente e receptor O emissor já terá recebido confirmação para alguns pacotes da janela. 73 Repetição seletiva no EMISSOR q Dados recebidos de acima: O emissor verifica o próximo número de sequência disponível para o pacote. q q Se o número de sequência estiver dentro da janela do emissor, os dados são empacotados e enviados; Caso contrário são bufferizados ou devolvidos à camada superior para transmissão posterior. Timeout: Temporizadores são usados para proteger contra perda de pacotes. Somente um único pacote será transmitido no caso de timeout. ACK recebido: Se um ACK for recebido, o emissor marca o pacote como recebido. Se o número de sequência do pacote for igual à send-base, então a base da janela avança até o pacote com o menor número de sequência não-confirmado. Se houver pacotes não transmitidos, com números de sequência que caem agora dentro da janela, estes pacotes são transmitidos. 74 Prof. Dr. Adriano Mauro Cansian 37

38 Repetição seletiva: janelas de remetente e receptor O emissor já terá recebido confirmação para alguns pacotes da janela. 75 Repetição seletiva no receptor (1) q Pacote com número de seqüência no intervalo [ rcv_base, rcv_base+n-1] é recebido corretamente: Neste caso, o pacote recebido cai dentro da janela do receptor e um pacote seletivo de ACK é retornado ao remetente. Se o pacote não foi recebido previamente, ele é armazenado. Se este pacote tiver um número de sequência igual à base da janela da recepção (rcv_base), então este pacote, e os quaisquer pacotes previamente armazenados e numerados em sequência (começando com o rcv_base) são entregues à camada superior. A janela de recepção é movida então para a frente pelo número total dos pacotes entregues à camada superior. q Pacote com número de sequência é recebido dentro de [ rcv_base-n, rcv_base-1 ]: Neste caso, um ACK deve ser gerado, mesmo que este seja um pacote que o receptor já tenha confirmado previamente. q Caso contrário: Ignora o pacote. 76 Prof. Dr. Adriano Mauro Cansian 38

39 Repetição seletiva no receptor (2) Pacote com número de sequência é recebido dentro de [ rcv_base-n, rcv_base-1 ]: Neste caso, um ACK deve ser gerado, mesmo que este seja um pacote que o receptor já tenha confirmado previamente. [ rcv_base-n, rcv_base-1 ]: pacotes já confirmados anteriormente Intervalo dentro da janela [ rcv_base, rcv_base+n-1] 77 Repetição seletiva - resumo emissor Dados de cima: q Se próximo No. de sequência na janela à envia o pacote. Timeout(n): q Reenvia pacote n. q Reinicia o temporizador. ACK(n) em [sendbase,sendbase+n]: q Marca pacote n como recebido. q Se N for menor pacote não confirmado, avança base da janela ao próximo No. de sequência não confirmado. receptor Pacote n dentro de [rcvbase, rcvbase+n-1]: Envia ACK(n). Fora de ordem: buffering. Em ordem: entrega (tb. entrega pacotes em ordem do buffer), avança janela p/ próximo pacote ainda não recebido. Pacote n em [rcvbase-n,rcvbase-1] ACK(n), mesmo que já tenha enviado antes. Senão: Ignora. 78 Prof. Dr. Adriano Mauro Cansian 39

40 Retransmissão seletiva em ação perde pkt2 Timeout pkt2 Janela se move depois de recebidos ack0 e ack1 buferizados 79 Retransmissão seletiva em ação perde pkt2 Timeout pkt2 Janela se move depois de recebidos ack0 e ack1 buferizados Completa com o pkt2 que faltava, entrega 2,3,4,5 à 80 camada superior, e envia ack2. Prof. Dr. Adriano Mauro Cansian 40

41 Repetição seletiva: dilema 81 Repetição seletiva: dilema Exemplo: q Nos. de sequência : 0, 1, 2 e 3. q Tamanho de janela = 3. q Receptor não vê diferença entre os dois cenários (a.) e (b.)!!! q Ele incorretamente entrega dados duplicados como sendo novos no caso (a.) acima. Pergunta / exercício: Qual a relação entre tamanho de No. de seqüência e tamanho de janela? Um tamanho de janela que seja igual ao tamanho de numeração sequencial, menos 1, não vai 82 funcionar. Prof. Dr. Adriano Mauro Cansian 41

42 O TCP A implementação do TCP 83 TCP: Visão geral (1) RFCs: 793, 1122, 1323, 2018, 2581 q É Peer-to-Peer (P2P): Único emissor transmite para um único receptor. q Fornece fluxo de bytes ordenados e confiável: Não estruturado em mensagens. q É dutado (pipelined): Tamanho da janela ajustado por controle de fluxo e congestionamento do TCP. q Usa Buffers de envio e recepção, e variáveis de estado para cada conexão. socket door application writes data TCP send buffer application reads data TCP receive buffer socket door segment 84 Prof. Dr. Adriano Mauro Cansian 42

43 TCP: Visão geral (2) RFCs: 793, 1122, 1323, 2018, 2581 q O tráfego é Full Duplex: Fluxo de dados bi-direcional na mesma conexão. MSS: é o tamanho máximo de segmento de dados. (Falaremos de MSS mais adiante) q É orientado a conexão: Handshaking de 3 vias (troca de msgs de controle) inicia estado de remetente, receptor antes de trocar dados. q Tem o Fluxo controlado: o receptor não será afogado bytes, 536 bytes ou 512 bytes 85 TCP: estrutura do segmento URG: dados urgentes (pouco usado) Tamanho do header em palavras de 32 bits ACK: No. ACK é válido RST, SYN, FIN: gestão de conexão (comandos de estabelecimento, liberação) checksum Internet (como UDP) No. porta origem 32 bits No. porta dest número de seqüência número de confirmação (ACK) tam. sem cab. uso U A P R S F checksum janela receptor ptr dados urg. Opções (tamanho variável) dados da aplicação (tamanho variável) PSH = push: força envio de dados imediatamente. Contagem de dados por bytes (não segmentos!) No. bytes que o receptor quer aceitar: Controle de Fluxo. 20 bytes fixos no header 86 Prof. Dr. Adriano Mauro Cansian 43

44 Header TCP q q q q q q q q Porta Origem e Porta Destino identificam o processo de aplicação que está enviando dados e o processo de aplicação que irá receber os dados. Número de sequência (SEQ) identifica os bytes enviados. Na prática ele é a identificação do primeiro byte de dados contido no segmento enviado. Os demais são seqüenciados a partir deste byte. Acknowledgement (ACK) identifica os bytes que foram recebidos e tratados sem erro pelo destino, bem como a sequência do próximo byte esperado. Tamanho é representa o tamanho total do frame TCP. Reservado é um campo ainda não utilizado. FLAGS identifica as flags especiais de operação (S-syn, F-fin, P-psh, R-rst, A-ack, U-urg) Window identifica o tamanho da janela para o controle de fluxo Checksum destina-se a verificação de erros de transmissão. É calculado usando o pseudo header, o header TCP e também a área de dados. q Urgent Pointer é um ponteiro para dados urgentes, contidos na área de dados (caso bit U setado para 1). TCP: Gerenciamento de Conexões 88 Prof. Dr. Adriano Mauro Cansian 44

45 TCP: Gerenciamento de Conexões (1) q Remetente e receptor TCP estabelecem conexão antes de trocar dados. q Conexão é full duplex : fluxo de dados segue nos dois sentidos. q Inicializam variáveis TCP: Números de sequência e confirmação. Buffers, informações de controle de fluxo (por exemplo RcvWindow) e temporizador. q Cliente: é aquele que inicia a conexão. Active Open q Servidor: é aquele chamado pelo cliente. Passive Open. 89 TCP: Iniciando Conexão (1) Inicialização em 3 passos (3-way handshake): (1): Cliente envia segmento de controle SYN do TCP ao servidor. Bit SYN do TCP é ajustado como 1. (SYN=1; ACK=0) Cliente especifica No. de Seqüência inicial. (2): Servidor recebe SYN, responde com segmento de controle SYN- ACK Ajusta SYN=1 E ACK=1 (SYN=1; ACK=1) Confirma SYN recebido. Aloca buffers, especifica No. seq. inicial de servidor para o receptor. (3): Cliente recebe SYN=1; ACK=1, e responde com segmento de controle ACK e começa a enviar dados. (SYN=0; ACK=1) 90 Prof. Dr. Adriano Mauro Cansian 45

46 TCP: Iniciando Conexão (2) (SYN=1; ACK=0) (SYN=1; ACK=1) Servidor confirma o No. seq. do cliente, e envia seu próprio No. de seq. (SYN=0; ACK=1) Cliente confirma o No. seq. do server, e começa a enviar dados seguindo seu No. de seq. 91 Estabelecimento da Conexão Cliente A SYN : (0) <mss 1024> Server B SYN : (0) <mss 1024> ACK , ACK Prof. Dr. Adriano Mauro Cansian 46

47 TCP: Números de sequência e ACKs q Nos. de sequência: é o número do primeiro byte de dados do segmento. q ACKs: No. de sequência do próximo segmento esperado (em bytes). ACK cumulativo. Host A Usuário tecla C Conexão já em andamento Seq=42, ACK=79, data = C Seq=79, ACK=43, data = C Host B B reconhece chegada de C, ecoa C de volta q Como receptor trata segmentos fora da ordem? Especificação do TCP é omissa - deixado ao implementador. Maioria das implementações: buferiza. A reconhece chegada do C ecoado Seq=43, ACK=80 cenário simples de telnet tempo 93 ACKs duplicados q First time ack é sinal que está tudo ok. q Mas, o que acontece se o emissor recebe um ACK duplicado? Ou seja, uma duplicata de ACK, que rereconheça um segmento para qual o emissor já tenha recebido ACK anteriormente. q Veremos em seguida como isso é usado pelo TCP Prof. Dr. Adriano Mauro Cansian 47

48 Transferência confiável de dados no TCP q TCP cria serviço rdt sobre o serviço não confiável do IP. q Segmentos enviados em paralelo (pipeline). q ACKs cumulativos. q TCP usa único temporizador de retransmissão. q Retransmissões são disparadas por: Eventos de timeout ACKs duplicados. q Inicialmente, considera remetente TCP simplificado: Para entender: Ignorar controle de fluxo, controle de congestionamento. Serão vistos mais adiante. Eventos de remetente TCP: q Dados recebidos da aplicação: Cria segmento com seq# O número 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 o timer para o segmento mais antigo sem ACK) q Intervalo de expiração: TimeOutInterval EVENTOS: Timeout: q Retransmite segmento que causou timeout q Reinicia temporizador ACK recebido: q Reconhecem-se segmentos sem ACK anteriores atualiza o que sabidamente tem ACK inicia temporizador se houver segmentos pendentes Prof. Dr. Adriano Mauro Cansian 48

49 TCP: cenários de retransmissão (1) Envia dois segmentos de uma vez e aguarda O ACK do primeiro segmento se perde Recebe a indicação que B recebeu tudo certo, até o 100, e não re-envia nada. Indica que B recebeu tudo certo, até o 100 (aguarda o 120) 97 TCP: cenários de retransmissão (2) Hosp. A Hosp. B Hosp. A Hosp. B Seq = 92, 8 bytes dados timeout SendBase = 100 tempo Seq = 92, 8 bytes dados X loss ACK = 100 Seq = 92, 8 bytes dados ACK = 100 Cenário de ACK perdido Sendbase = 100 SendBase = 120 SendBase = 120 Seq = 92 timeout Seq = 92 timeout tempo Seq = 100, 20 bytes dados ACK = 100 ACK = 120 Seq = 92, 8 bytes dados ACK = 120 Timeout prematuro Prof. Dr. Adriano Mauro Cansian 49

50 TCP: cenários de retransmissão (3) Host A Host B Seq = 92, 8 bytes dados timeout Seq = 100, 20 bytes dados X perda ACK = 100 SendBase = 120 ACK = 120 Chegada dentro do timer: indica que B recebeu tudo certo, até o 100, e está aguardando o 120 tempo Cenário ACK cumulativo Tratando segmentos faltantes: ACKs repetidos (1) q Quando um receptor recebe um segmento com um número de sequência maior do que próximo número de sequência esperado, ele detecta uma falha no fluxo de dados Detecta segmento faltante. q TCP não usa NACK: O receptor não pode emitir não-ack para o emissor. Ao invés disso: re-reconhece o último byte em ordem dos dados que ele recebeu corretamente. Isto é, ele gera um ACK em duplicata para o último byte recebido corretamente. 100 Prof. Dr. Adriano Mauro Cansian 50

51 Tratando segmentos faltantes: ACKs repetidos (2) q Período de timeout é relativamente grande: Longo atraso antes de reenviar pacote perdido q É necessário detectar segmentos perdidos por meio de ACKs duplicados Emissor geralmente envia muitos segmentos um após o outro. Se um segmento for perdido, provavelmente haverá muitos ACKs duplicados para esse segmento. Retransmissão rápida (1) q Se o emissor receber três ACKs duplicados (ou seja, 4 ACKs idênticos) para o mesmo segmento que ele já enviou: Ele assume que foi perdido o segmento em seguida ao segmento que foi confirmado 4 vezes. Neste caso, o TCP executa uma retransmissão rápida. Re-envia o segmento faltante, mesmo antes que o temporizador esgote [RFC 2581]. 102 Prof. Dr. Adriano Mauro Cansian 51

52 Entendendo os 3 ACKs duplicados (1) ACK xxxxxxx523 Timer Ainda não ocorreu timeout ACK xxxxxxx523 ACK xxxxxxx523 ACK xxxxxxx523 1o. ACK duplicado 2o. ACK duplicado 3o. ACK duplicado A chegada de 4 ACKs idênticos antes de vencer o timer do ACK, resulta na retransmissão rápida. 103 Entendendo os 3 ACKs duplicados (2) Hosp. A Hosp. B ACKs duplicados três vezes seq # x1 seq # x2 seq # x3 seq # x4 seq # x5 reenvia seq X2 X ACK x1 ACK x1 ACK x1 ACK x1 timeout tempo Prof. Dr. Adriano Mauro Cansian 52

53 Algoritmo de retransmissão rápida: event: ACK received, with ACK field value of y if (y > SendBase) { SendBase = y if (there are currently not-yet-acknowledged segments) start timer } else { increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) { resend segment with sequence number y } ACK duplicado para segmento já com ACK retransmissão rápida RFC TCP Congestion Control " The TCP sender SHOULD use the "fast retransmit" algorithm to detect and repair loss, based on incoming duplicate ACKs. The fast retransmit algorithm uses the arrival of 3 duplicate ACKs (4 identical ACKs without the arrival of any other intervening packets) as an indication that a segment has been lost. After receiving 3 duplicate ACKs, TCP performs a retransmission of what appears to be the missing segment, without waiting for the retransmission timer to expire." Prof. Dr. Adriano Mauro Cansian 53

54 Resposta de ACKs no TCP [RFCs 1122, 2581] Evento Chegada do segmento em ordem, com número de seqüência previsto: todos os dados até o No. de seq. previsto já reconhecidos; nenhum buraco nos dados recebidos. Chegada de um segmento em ordem com número de seqüência previsto. Um outro segmento em ordem aguardando transmissão de ACK. Nenhum buraco nos dados recebidos. Chegada do segmento fora de ordem com número de seqüência mais alto do que esperado! detectada falha na sequência. Chegada de segmento que completa parcial ou completamente uma falha nos dados recebidos. Ação do receptor TCP Promove ACK atrasado! Espera até 500ms pela chegada de um outro segmento em ordem. Se o próximo segmento não chegar em ordem neste intervalo, emita um ACK do anterior. Emita imediatamente um único ACK cumulativo. Confirmando ambos os segmentos em-ordem. Emita imediatamente o ACK duplicado, indicando o número de seqüência do próximo segmento esperado. Emita imediatamente o ACK, contanto que o segmento comece no fim mais baixo da falha. 107 Encerramento da Conexão q Half Close Conexões TCP são full-duplex. Cada lado da conexão deve finalizar a conexão de forma independente Quando um dos lados envolvidos recebe uma solicitação de finalização, deve enviar a notificação para a aplicação. Uma aplicação após receber o pedido de finalização ainda pode mandar dados. Prof. Dr. Adriano Mauro Cansian 54

55 TCP: Fechando uma Conexão (1) Encerrando uma conexão: cliente servidor Passo 1: cliente envia segmento de controle FIN ao servidor. Passo 2: servidor recebe FIN, responde com ACK. Também pede encerramento da conexão, enviando FIN. ( Segue... ) fechar espera temporizada FIN ACK FIN ACK fechar fechada 109 TCP: Fechando uma Conexão (2) Passo 3: cliente recebe FIN, responde com ACK. Entre em espera temporizada - responderá com ACK a FINs recebidos fechando cliente FIN ACK FIN servidor fechando Step 4: servidor, recebe ACK. Conexão encerrada. espera temporizada ACK fechada fechada 110 Prof. Dr. Adriano Mauro Cansian 55

56 TCP: Ciclo de vida do SERVIDOR Exercício: estudar o ciclo de vida do servidor TCP 111 TCP: Ciclo de vida do CLIENTE Exercício: estudar o ciclo de vida do cliente TCP 112 Prof. Dr. Adriano Mauro Cansian 56

57 Exercício: Estudar as transições de estado do TCP 113 TCP: RTT e timeout - Retransmissão adaptativa. - Outros timers. 114 Prof. Dr. Adriano Mauro Cansian 57

58 RTT e timeout do TCP (1) Como definir o valor de timeout do TCP? q Deveria ser maior que RTT. Mas RTT varia q Se for muito curto: ocorre timeout prematuro. Resulta em retransmissões desnecessárias q Se for muito longo Resulta em baixa reação a perda de segmentos. Então: Como estimar o RTT (EstimatedRTT)? q q q SampleRTT: tempo medido da transmissão do segmento até receber o ACK. Ignora retransmissões. Assim, o SampleRTT vai variar. Mas é bom que o RTT estimado seja mais estável. Usa-se a média de várias medições recentes, e não apenas SampleRTT atual. RTT e timeout do TCP (2) EstimatedRTT = (1 - α)*estimatedrtt + α*samplertt Média móvel exponencial ponderada. Influência da amostra passada diminui exponencialmente rápido. Dá mais valor (peso) às medidas mais recentes. Valor típico: α = 0,125 (determinado empiricamente) Prof. Dr. Adriano Mauro Cansian 58

59 Relação entre RTT amostra e RTT estimado RTT e timeout do TCP (3) O Timeout é definido da seguinte maneira: q EstimtedRTT mais margem de segurança Se há grande variação em EstimatedRTT oferece maior margem de segurança. q Primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT: DevRTT = (1-β)* DevRTT + β* SampleRTT-EstimatedRTT (geralmente β = 0,25) e depois definir intervalo de timeout: TimeoutInterval = EstimatedRTT + 4*DevRTT Exercício: Pesquisar e estudar algoritmo Jacobson / Karels. Prof. Dr. Adriano Mauro Cansian 59

60 Se você pensa que acabou (1) q Temporizador adaptativo de retransmissão não é o único usado pelo TCP. q Na verdade são 4 timers. Timer Retransmissão adaptativo (já visto) Timer de Persistência. Timer Keep-alive. Timer Time-wait. 119 Temporizador de persistência q Temporizador de persistência: Para evitar impasse. Receptor envia pacote de tamanho de janela 0, pedindo para emissor aguardar. De tempos em tempos o emissor faz um teste para ver se pode enviar (devido a risco de perda do pacote de atualização do receptor) 120 Prof. Dr. Adriano Mauro Cansian 60

61 Temporizador keep alive q Temporizador keep alive ( mantenha vivo ): Para verificar conexões inativas por muito tempo. Um lado verifica se o outro ainda está lá. 121 Temporizador Time Wait q Temporizador time wait ( tempo de espera ): É usado durante o encerramento de uma sessão. É ajustado para 2 vezes o tempo de vida máximo de um pacote (TTL - Time to Live). Tenta garantir que quando uma sessão for encerrada, todos os pacotes criados por ela já tenham sido entregues. 122 Prof. Dr. Adriano Mauro Cansian 61

62 MSS e numeração de segmentos 123 MSS (Maximum Segment Size) q O MSS representa o tamanho do maior bloco de dados que o TCP permite enviar num único segmento para o destino. q Para a maioria dos computadores o MSS é ajustado automaticamente pelo sistema operacional. Default (obrigatório): 536 bytes. (20 bytes IP, 20 bytes TCP, para um total de 576 bytes). Ethernet padrão: 1460 bytes. (20 bytes IP, 20 bytes TCP, para um total de 1500 bytes) Prof. Dr. Adriano Mauro Cansian 62

63 Quanto maior o MSS, melhor q Em geral, quanto maior o MSS melhor o desempenho da rede. Mais dados são enviados num único segmento. Desde que não ocorra fragmentação. (Trataremos fragmentação no protocolo IP; associado ao MTU) Quanto maior a quantidade de dados enviados em um único bloco, menor o overhead de headers TCP e IP. O MSS está limitado pelo MTU, que está limitado pela tecnologia ou protocolo da camada de enlace. Esta relação será discutida mais adiante, junto com a discussão sobre MTU na camada de rede. MSS e numeração de segmentos Aplicação quer enviar bytes de dados, Em TCP com MSS = bytes Transmissão TCP: 500 partes de bytes 1o. segmento último segmento O No. de sequência do emissor é incrementado pelo No. de bytes enviados 126 Prof. Dr. Adriano Mauro Cansian 63

64 Controle de FLUXO no TCP 127 TCP: Controle de Fluxo (1) Para emissor não esgotar os buffers do receptor, transmitindo demais, ou muito rapidamente. RcvBuffer = tamanho do Buffer de recepção. RcvWindow = informa ao emissor quantidade de espaço vazio no buffer do receptor. Este valor é mantido como variável em cada lado da conexão (lembrar que é Full Duplex). buffering pelo receptor 128 Prof. Dr. Adriano Mauro Cansian 64

65 TCP: Controle de Fluxo (2) RECEPTOR: explicitamente avisa o emissor da quantidade de espaço livre disponível (que muda dinamicamente). Campo RcvWindow (janela) no segmento TCP. EMISSOR: mantém a quantidade de dados transmitidos, porém ainda não reconhecidos, MENOR que o valor mais recente de RcvWindow. (para cada lado da conexão) 129 Troca de informações sobre controle de fluxo TCP (1) Aplicação envia 2 Kb (0) 4 Kb = Tamanho do buffer do receptor. (3) Aplicação envia 3 Kb, mas emissor TCP só pode enviar 2 Kb (...) Emissor aguarda... (2) Receptor confirma e avisa que pode enviar mais 2 Kb. (4) Receptor confirma e pede para aguardar (buffer cheio) win=0 (6) Receptor agora pode enviar até 2 Kb; envia o 1 Kb que falta. (5) Aplicação lê 2 Kb do TCP ; Receptor TCP avisa que pode enviar mais 2 Kb (reconfirma o último recebido e envia janela de 2048) 130 Prof. Dr. Adriano Mauro Cansian 65

66 Controle de Congestionamento 131 Princípios de Controle de Congestionamento (1) Congestionamento: q Trata emissor enviando dados mais rapidamente do que a rede pode suportar. Atenção! É diferente de controle de fluxo. Retransmissão de pacotes trata o sintoma do congestionamento da rede: perda de segmentos. Mas não trata a causa do congestionamento: Origens tentando enviar dados numa taxa muito alta, na qual a rede não está suportando. 132 Prof. Dr. Adriano Mauro Cansian 66

67 Princípios de Controle de Congestionamento (2) q Como se manifesta: Perda (drop) de pacotes Esgotamento de buffers em roteadores. Retransmissão de pacotes. Devido aos drops. Longos atrasos Grande filas nos buffers dos roteadores. 133 Solução para o Congestionamento q Solução para o congestionamento: reduzir a taxa de transmissão de dados. Não inserir novos pacotes na rede, até que os antigos tenham saído. Ou seja, até que os antigos tenham sido entregues. q TCP à tenta alcançar esse objetivo. Manipulando dinamicamente o tamanho da janela. 134 Prof. Dr. Adriano Mauro Cansian 67

68 Controle de congestionamento TCP: busca por largura de banda Busca por largura de banda: Aumenta taxa de transmissão no recebimento do ACK até ocorrer perda. Depois diminui taxa de transmissão. Aumentar com ACK e diminui na perda, pois largura de banda disponível está mudando, dependendo de outras conexões na rede. taxa de emissão ACKs sendo recebidos, de modo que aumenta taxa X X X X X perda e diminuição de taxa comportamento dente de serra do TCP tempo Com que velocidade aumentar/diminuir? Veremos detalhes a seguir O que o TCP faz para evitar congestionamentos: q Quando uma conexão é estabelecida, escolhe um tamanho de janela adequado. Veremos mais adiante como ocorre a escolha. q O receptor pode especificar uma janela a partir do tamanho de seu buffer. Indica o quanto ele está disposto a receber. q Se o transmissor se mantiver dentro do tamanho da janela, não haverá problemas causados pela sobrecarga dos buffers no receptor. Mas eles ainda podem ocorrer devido a congestionamentos internos na rede. 136 Prof. Dr. Adriano Mauro Cansian 68

69 TCP: Controle de Congestionamento (1) q Deve-se entender que existem dois problemas potenciais: Capacidade do receptor. Capacidade da rede. Deve-se tratar cada um em separado. q Para isso, cada transmissor mantém duas janelas: Janela fornecida pelo receptor. RcvWin Janela de congestionamento: CongWin 137 TCP: Controle de Congestionamento (2) q Cada uma identifica o número de bytes que o transmissor pode enviar pode enviar o valor mínimo das duas janelas. q Então, a quantidade máxima de dados não confirmados que um host pode enviar em uma conexão:! LastByteSent - LastByteAcked min{congwin, RcvWin}!! 138 Prof. Dr. Adriano Mauro Cansian 69

70 TCP: Controle de Congestionamento q Controle é fim a fim (sem apoio da rede). q Taxa de transmissão é limitada pela tamanho da janela de congestionamento Congwin: Congwin A janela efetiva é o mínimo do que o transmissor e o receptor consideram viável. Veremos exemplo a seguir TCP: Controle de Congestionamento q A janela efetiva é o mínimo do que o transmissor e o receptor consideram viável. Exemplos: q Se o receptor disser: envie 8KB, mas... se o transmissor souber que qualquer rajada com mais de 4 KB poderá congestionar a rede, ele enviará apenas 4 KB. q Se o receptor disser: envie 8KB, mas... Se o transmissor souber que rajadas de até 32 KB passam pela rede sem problemas, ele enviará os 8 KB solicitados. 140 Prof. Dr. Adriano Mauro Cansian 70

71 Como funciona o controle: q Sondagem para banda a ser usada: Transmitir o mais rápido possível sem perder pacotes. (ou seja, Congwin ajustado ao máximo possível) Aumentar Congwin até perder pacotes à isso causa congestionamento. Quando houver perdas: diminuir Congwin. Depois volta a à sondagem (aumentando) novamente. q Duas fases q 1. Partida lenta. 2. Prevenção de congestionamento. Variáveis importantes: congwin. threshold: define limiar entre fases de partida lenta e controle de congestionamento. Também chamado de patamar. Tudo explicado a seguir Partida lenta e sondagem do congestionamento (1) q Conexão é estabelecida transmissor ajusta a variável congwin (janela de congestionamento) igual ao MSS. Em seguida, ele envia este segmento máximo. Se esse segmento for confirmado antes de ocorrer um timeout, então o transmissor: Adicionará o número de bytes de 1 segmento na janela de congestionamento, de modo que ela tenha capacidade equivalente a 2 segmento máximos. Ou seja: congwin++ Enviará os 2 segmentos (continua...) 142 Prof. Dr. Adriano Mauro Cansian 71

Capítulo 3: Camada de Transporte

Capítulo 3: Camada de Transporte Capítulo 3: Camada de Transporte Metas do capítulo: 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

Leia mais

Universidade Federal de Minas Gerais Departamento de Ciência da Computação

Universidade Federal de Minas Gerais Departamento de Ciência da Computação Redes de Computadores Camada de Transporte Capítulo 3 Kurose & Ross Prof: José Marcos Silva Nogueira Universidade Federal de Minas Gerais Departamento de Ciência da Computação Belo Horizonte - 2006 Capítulo

Leia mais

Curso de Redes de Computadores

Curso de Redes de Computadores Curso de Redes de Computadores Adriano Mauro Cansian adriano@acmesecurity.org Capítulo 3 Camada de Transporte 1 Capítulo 3: Camada de Transporte Metas do capítulo: q Compreender os princípios dos serviços

Leia mais

TCP - formato do segmento. Formato do segmento TCP (fonte: Kurose)

TCP - formato do segmento. Formato do segmento TCP (fonte: Kurose) TCP - formato do segmento Formato do segmento TCP (fonte: Kurose) TCP - formato do segmento Porta de origem (16 bits) Porta de destino (16 bits) Número de sequência (32 bits) Usado na implementação do

Leia mais

Protocolos com paralelismo (pipelining) Pipelining: aumento da utilização

Protocolos com paralelismo (pipelining) Pipelining: aumento da utilização Protocolos com paralelismo (pipelining) Paralelismo: transmissor envia vários pacotes ao mesmo tempo, todos esperando para serem reconhecidos Faixa de números de seqüência deve ser aumentada Armazenamento

Leia mais

Camada de Transporte. Protocolos TCP e UDP

Camada de Transporte. Protocolos TCP e UDP Camada de Transporte Protocolos TCP e UDP O estabelecimento de conexão Como estabelecer a conexão de maneira confiável? Handshake de 3 vias SYN SYN ACK ACK Transferência Confiável de Dados Importante nas

Leia mais

Redes de Computadores

Redes de Computadores Prof. Universidade Federal de Mato Grosso do Sul brivaldo@facom.ufms.br 26 de maio de 2017 Visão Geral 1 2 3 4 Protocolos e Serviços de Transporte comunicação lógica entre aplicativos executando em diferentes

Leia mais

Capítulo 3: Camada de Transporte

Capítulo 3: Camada de Transporte Serviços e protocolos de transporte Capítulo 3: Camada de Transporte Antônio Abelém Abelém@ufpa.br provê comunicação lógica entre processos de executando em hospedeiros diferentes protocolos de transporte

Leia mais

PTC Aula Princípios da transferência de dados confiável 3.5 Transporte orientado para conexão: TCP

PTC Aula Princípios da transferência de dados confiável 3.5 Transporte orientado para conexão: TCP PTC 3450 - Aula 14 3.4 Princípios da transferência de dados confiável 3.5 Transporte orientado para conexão: TCP (Kurose, p. 164-177) (Peterson, p. 242-264) 02/05/2017 Muitos slides adaptados com autorização

Leia mais

Capítulo 3 Camada de Transporte

Capítulo 3 Camada de Transporte Curso de Redes de Computadores Adriano Mauro Cansian adriano@acmesecurity.org Capítulo 3 Camada de Transporte 1 Capítulo 3: Camada de Transporte Metas do capítulo: q q Compreender os princípios dos serviços

Leia mais

SSC0641 Redes de Computadores

SSC0641 Redes de Computadores SSC0641 Redes de Computadores Capítulo 3 - Camada de Transporte Prof. Jó Ueyama Março/2011 1 Serviços da Camada de Transporte 2 Protocolos e Serviços de Transporte 3 Serviços de Transporte Fornecem comunicação

Leia mais

Redes de computadores e a Internet. Redes de computadores e a Internet. Prof. Gustavo Wagner. Capítulo 3. Camada de transporte

Redes de computadores e a Internet. Redes de computadores e a Internet. Prof. Gustavo Wagner. Capítulo 3. Camada de transporte Redes de computadores e a Internet Redes de computadores e a Internet Prof. Gustavo Wagner Capítulo 3 Camada de transporte Camada de transporte 3.1 Serviços da camada de transporte 3.2 Multiplexação e

Leia mais

Redes de Computadores Camada de Transporte Protocolo TCP

Redes de Computadores Camada de Transporte Protocolo TCP Redes de Computadores Camada de Transporte Protocolo TCP Capítulo 3 Kurose & Ross (Especial p/ Curso Telecom 2008) Prof: José Marcos Silva Nogueira Universidade Federal de Minas Gerais Departamento de

Leia mais

Curso de Redes de Computadores 2010

Curso de Redes de Computadores 2010 Curso de Redes de Computadores 2010 Adriano Mauro Cansian adriano@acmesecurity.org Capítulo 3 Camada de Transporte 1 Capítulo 3: Camada de Transporte Metas do capítulo: Compreender os princípios dos serviços

Leia mais

Redes de computadores e a Internet. Capítulo 3. Camada de transporte

Redes de computadores e a Internet. Capítulo 3. Camada de transporte Redes de computadores e a Internet Capítulo Camada de transporte 2005 by Pearson Education - 2 Camada de transporte Objetivos do capítulo: Entender os princípios por trás dos serviços da camada de transporte:

Leia mais

Planejamento. Revisão. Desempenho em Protocolos de Transporte

Planejamento. Revisão. Desempenho em Protocolos de Transporte Desempenho em Protocolos de Transporte Magnos Martinello Universidade Federal do Espírito Santo - UFES Departamento de Informática DI Laboratório de Pesquisas em Redes Multimidia LPRM Planejamento Serviços

Leia mais

Redes de Computadores

Redes de Computadores Redes de Computadores Camada de Transporte TCP Slide 1 TCP RFC s 793, 1122, 1323, 2018 e 2581; Orientado a conexão; Serviço full-duplex; Transmissão confiável de dados; Conexão ponto a ponto (apresentação

Leia mais

Capítulo 3 Camada de transporte

Capítulo 3 Camada de transporte Capítulo 3 Camada de transporte slide 1 Introdução e serviços de camada de transporte A camada de transporte fornece comunicação lógica, e não física, entre processos de aplicações: slide 2 Relação entre

Leia mais

SSC0641 Redes de Computadores

SSC0641 Redes de Computadores SSC0641 Redes de Computadores Capítulo 3 - Camada de Transporte Prof. Jó Ueyama Abril/2013 1 Serviços da Camada de Transporte 2 Protocolos e Serviços de Transporte 3 Serviços de Transporte Fornecem comunicação

Leia mais

Fragmentos das máquinas de estados finitos do RDT 2.2 (fonte: Kurose)

Fragmentos das máquinas de estados finitos do RDT 2.2 (fonte: Kurose) RDT 2.2 Não usa NACK Destinatário deve incluir o número de sequência do pacote que está sendo reconhecido Remetente deve verificar o número de sequência do pacote que está sendo reconhecido ACKs duplicados

Leia mais

Capítulo 3 Camada de transporte

Capítulo 3 Camada de transporte Capítulo 3 Camada de transporte slide 1 Introdução e serviços de camada de transporte A camada de transporte fornece comunicação lógica, e não física, entre processos de aplicações: slide 2 Relação entre

Leia mais

Capítulo 3. Camada de transporte

Capítulo 3. Camada de transporte Capítulo 3 Camada de transporte 2 Redes de computadores I Prof.: Leandro Soares de Sousa E-mail: lsousa@id.uff.br Site: http://www.ic.uff.br/~lsousa Não deixem a matéria acumular!!! Datas das avaliações,

Leia mais

Protocolos TCP e UDP. Protocolo TCP. Protocolo TCP. A necessidade de uma comunicação segura: Transmission Control Protocol

Protocolos TCP e UDP. Protocolo TCP. Protocolo TCP. A necessidade de uma comunicação segura: Transmission Control Protocol Protocolos TCP e UDP Transmission Control Protocol Protocolo de transporte orientado à conexão. Transferência de dados confiável fim-a-fim recuperação de dados perdidos, duplicados organização dos dados

Leia mais

Camada de Transporte. Redes Industriais Rone Ilídio UFSJ CAP

Camada de Transporte. Redes Industriais Rone Ilídio UFSJ CAP Camada de Transporte Redes Industriais Rone Ilídio UFSJ CAP Itens do Livro Livro Rede de Computadores e a Internet Kurose 5ª edição 3 Camada de Transporte 3.1 Introdução 3.3 Transporte não orientado a

Leia mais

TCP - multiplexação/demultiplexação

TCP - multiplexação/demultiplexação TCP Protocolo de controle de transmissão (Transmission Control Protocol) Definido em diversas RFCs (793, 1122, 1323, 2018 e 2581) Diversos flavors (tipos) Serviços Multiplexação/demultiplexação Detecção

Leia mais

Redes de Computadores

Redes de Computadores Redes de Computadores Prof. Marcelo Gonçalves Rubinstein Programa de Pós-Graduação em Engenharia Eletrônica Faculdade de Engenharia Universidade do Estado do Rio de Janeiro Ementa Introdução a Redes de

Leia mais

Redes de computadores. Protocolo TCP

Redes de computadores. Protocolo TCP Redes de computadores Protocolo TCP Dilema dos Comandantes Dilema dos Comandantes Dois comandantes estão em montes prestes a atacar uma cidade no vale Eles precisam combinar um horário para o ataque Seu

Leia mais

Arquitetura de Redes de Computadores

Arquitetura de Redes de Computadores Arquitetura de Redes de Computadores Unidade III Camada de Transporte Apresentado por Prof. Fred Sauer Baseado em Material didático de Prof Sergio Cardoso Objetivos do Capítulo Entender os princípios dos

Leia mais

PROTOCOLOS DE COMUNICAÇÃO

PROTOCOLOS DE COMUNICAÇÃO PROTOCOLOS DE COMUNICAÇÃO 3º ANO / 2º SEMESTRE 2014 INFORMÁTICA avumo@up.ac.mz Ambrósio Patricio Vumo Computer Networks & Distribution System Group Serviços de Transporte na Internet Arquitectura TCP/IP

Leia mais

Redes de Computadores

Redes de Computadores Redes de Computadores Camada de Transporte - Parte II Prof. Thiago Dutra Agenda n Parte I n Introdução n Protocolos de Transporte Internet n Multiplexação e Demultiplexação n

Leia mais

Redes de Computadores Aula 5

Redes de Computadores Aula 5 Redes de Computadores Aula 5 Aula passada DNS Sockets Programação com sockets Teste relâmpago Aula de hoje Camada de transporte Multiplexação Princípios de transmissão confiável Stop and wait Camada de

Leia mais

Redes de Computadores RES 12502

Redes de Computadores RES 12502 Instituto Federal de Santa Catarina Redes de Computadores Redes de Computadores RES 12502 2014 2 Área de Telecomunicações slide 1 O material para essas apresentações foi retirado das apresentações disponibilizadas

Leia mais

PTC Aula Princípios da transferência de dados confiável. (Kurose, Seções 3.4 e 3.5) 28/04/2017

PTC Aula Princípios da transferência de dados confiável. (Kurose, Seções 3.4 e 3.5) 28/04/2017 PTC 3450 - Aula 11 3.4 Princípios da transferência de dados confiável (Kurose, Seções 3.4 e 3.5) 28/04/2017 Muitos slides adaptados com autorização de J.F Kurose and K.W. Ross, All Rights Reserved Capítulo

Leia mais

Nível de Transporte Portas, Protocolos UDP e TCP

Nível de Transporte Portas, Protocolos UDP e TCP Departamento de Ciência da Computação - UFF Disciplina: Nível de Transporte Portas, Protocolos UDP e TCP Profa. Débora Christina Muchaluat Saade debora@midiacom.uff.br Protocolo TCP 48 Timeout e Retransmissão

Leia mais

Redes de Computadores

Redes de Computadores Redes de Computadores Parte V: Camada de Transporte Professor: Reinaldo Gomes reinaldo@dsc.ufcg.edu.br Camada de transporte 3.1 Serviços da camada de transporte 32 3.2 Multiplexação e demultiplexação 3.3

Leia mais

TCP - controle de fluxo

TCP - controle de fluxo TCP - controle de fluxo Elimina a possibilidade do remetente saturar o destinatário Apresentação supõe que segmentos fora de ordem são descartados Baseado em janelas Remetente mantém uma variável chamada

Leia mais

Capítulo 3 Camada de transporte

Capítulo 3 Camada de transporte Capítulo 3 Camada de transporte Todo o material copyright 1996-2009 J. F Kurose e K. W. Ross, Todos os direitos reservados. slide 1 Capítulo 3: Camada de transporte Objetivos do capítulo: entender princípios

Leia mais

Redes de Computadores e Aplicações. Aula 43 - Camada de Transporte TCP (Transmission Control Protocol)

Redes de Computadores e Aplicações. Aula 43 - Camada de Transporte TCP (Transmission Control Protocol) Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do N Campus Currais Novos Redes de Computadores e Aplicações Aula 43 - Camada de Transporte TCP (Transmission Control Protocol) Prof. Diego

Leia mais

Redes de Computadores e a Internet

Redes de Computadores e a Internet Redes de Computadores e a Internet Magnos Martinello Universidade Federal do Espírito Santo - UFES Departamento de Informática - DI Laboratório de Pesquisas em Redes Multimidia - LPRM 2011 Camada de Transporte

Leia mais

TCP - controle de fluxo

TCP - controle de fluxo TCP - controle de fluxo Elimina a possibilidade de o remetente saturar o destinatário Apresentação supõe que segmentos fora de ordem são descartados Baseado em janelas Remetente mantém uma variável chamada

Leia mais

: TMS M

: TMS M Infraestrutura de Redes de Computadores Turma : TMS 20171.3.01112.1M Camada de Transporte Prof. Thiago Dutra Agenda n Introdução n Protocolos de Transporte Internet n Multiplexação

Leia mais

PTC Aula Transporte orientado para conexão: TCP. (Kurose, p ) (Peterson, p e ) 23/05/2017

PTC Aula Transporte orientado para conexão: TCP. (Kurose, p ) (Peterson, p e ) 23/05/2017 PTC 3450 - Aula 15 3.5 Transporte orientado para conexão: TCP (Kurose, p. 177-190) (Peterson, p. 105-124 e 242-264) 23/05/2017 Muitos slides adaptados com autorização de J.F Kurose and K.W. Ross, All Rights

Leia mais

Redes de Computadores

Redes de Computadores Redes de Computadores Parte III: Camada de Transporte Março, 2012 Professor: Reinaldo Gomes reinaldo@dsc.ufcg.edu.br Camada de transporte 3.1 Serviços da camada de transporte 3.2 Multiplexação e demultiplexação

Leia mais

Redes de Computadores e a Internet

Redes de Computadores e a Internet Redes de Computadores e a Internet Magnos Martinello Universidade Federal do Espírito Santo - UFES Departamento de Informática - DI Laboratório de Pesquisas em Redes Multimidia - LPRM 2010 Camada de Transporte

Leia mais

Protocolo de transporte em tempo-real (Real- Time Transport Protocol) Definido na RFC 3350 Normalmente usado sobre o UDP Serviços

Protocolo de transporte em tempo-real (Real- Time Transport Protocol) Definido na RFC 3350 Normalmente usado sobre o UDP Serviços RTP Protocolo de transporte em tempo-real (Real- Time Transport Protocol) Definido na RFC 3350 Normalmente usado sobre o UDP Serviços Identificação do tipo de carga útil (mídia) Números de sequência Estampa

Leia mais

Redes de Computadores I

Redes de Computadores I UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO DEPARTAMENTO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIA DA COMPUTAÇÃO Redes de Computadores I Nível de Transporte (TCP & UDP) Prof. Helcio Wagner da Silva.

Leia mais

TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581

TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581 TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581 ponto-a-ponto: um transmissor, um receptor confiável, seqüêncial byte stream: não há contornos de mensagens pipelined: (transmissão de vários pacotes em

Leia mais

TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581

TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581 TCP: Overview RFCs: 793, 1122, 1323, 2018, 2581 ponto-a-ponto: um transmissor, um receptor confiável, seqüêncial byte stream: não há contornos de mensagens pipelined: (transmissão de vários pacotes em

Leia mais

Protocolo de transporte em tempo-real (Real- Time Transport Protocol) Definido na RFC 3350 Normalmente usado sobre o UDP Serviços

Protocolo de transporte em tempo-real (Real- Time Transport Protocol) Definido na RFC 3350 Normalmente usado sobre o UDP Serviços RTP Protocolo de transporte em tempo-real (Real- Time Transport Protocol) Definido na RFC 3350 Normalmente usado sobre o UDP Serviços Identificação do tipo de carga útil (mídia) Números de sequência Estampa

Leia mais

Camada de Transporte Protocolos TCP e UDP

Camada de Transporte Protocolos TCP e UDP Arquitetura de Redes de Computadores e Tecnologia de Implementação de Redes 2016.1 Camada de Transporte Protocolos TCP e UDP Curso Técnico Integrado em Informática Turma: INT.INF.3M Arquitetura de Redes

Leia mais

3Camada de transporte

3Camada de transporte Redes de computadores e a Internet Capítulo Camada de transporte Objetivos do capítulo: Entender os princípios por trás dos serviços da camada de transporte: Multiplexação/demultiplexação Transferência

Leia mais

Camada de Transporte Parte II Gerson Porciúncula 5 semestre

Camada de Transporte Parte II Gerson Porciúncula 5 semestre Camada de Transporte Parte II Gerson Porciúncula 5 semestre 1)Explicar os seguintes mecanismos e conceitos do protocolo TCP: 1. Slow Start Ocorre no início de uma conexão ou de uma reconexão, serve para

Leia mais

PTC Aula A camada de transporte. (Kurose, p ) 15/03/2017

PTC Aula A camada de transporte. (Kurose, p ) 15/03/2017 PTC 2550 - Aula 03 1.3 A camada de transporte (Kurose, p. 135-209) 15/03/2017 Muitos slides adaptados com autorização de J.F Kurose and K.W. Ross, All Rights Reserved Serviços e protocolos de transporte

Leia mais

SSC0641 Redes de Computadores

SSC0641 Redes de Computadores SSC0641 Redes de Computadores Capítulo 3 - Camada de Transporte Prof. Jó Ueyama Março/2011 SSC0641-2011 1 Mecanismos: Transferência de Confável de Dados Soma de verifcação Temporizador Número de Seqüência

Leia mais

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

TCP: Visão geral RFCs: 793, 1122, 1323, 2018, 2581 TCP: Visão geral RFCs: 793, 1122, 1323, 2018, 2581 socket door 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

Leia mais

Capítulo 3: Camada de Transporte. Multiplexação/desmultiplexação. Serviços e protocolos de transporte. Antônio Abelém abelem@ufpa.

Capítulo 3: Camada de Transporte. Multiplexação/desmultiplexação. Serviços e protocolos de transporte. Antônio Abelém abelem@ufpa. Serviços e protocolos de Capítulo 3: Camada de Transporte Antônio Abelém abelem@ufpa.br provê comunicação lógica entre processos de executando em hospedeiros diferentes protocolos de executam em sistemas

Leia mais

Camada de transporte. Serviços

Camada de transporte. Serviços Camada de transporte Serviços fornecidos pela camada de transporte Multiplexagem/desmultiplexagem Camada de transporte não-orientada à sessão: UDP Princípios da transmissão fiável e ordenada de dados Máquina

Leia mais

TCP 1 TCP. Manuel P. Ricardo

TCP 1 TCP. Manuel P. Ricardo TCP 1 TCP Faculdade de Engenharia da Universiadade do Porto Manuel P. Ricardo TCP 2 Bibliografia L. Peterson, B. Davie, Computer Networks A Systems Approach, Morgan Kaufamnn, 2000 (Sec. 5.1, 5.2, 6.1,

Leia mais

Redes de Computadores

Redes de Computadores Redes de Computadores Camada de Transporte Antonio Alfredo Ferreira Loureiro loureiro@dcc.ufmg.br Departamento de Ciência da Computação Universidade Federal de Minas Gerais UFMG/DCC Redes de Computadores

Leia mais

Redes de Computadores. Prof. André Y. Kusumoto

Redes de Computadores. Prof. André Y. Kusumoto Redes de Computadores Prof. André Y. Kusumoto andrekusumoto.unip@gmail.com Nível de Transporte Responsável pela comunicação fim-a-fim entre dois ou mais computadores As redes são normalmente complexas

Leia mais

Capítulo 3: Camada de Transporte. Multiplexação/desmultiplexação. Multiplexação/desmultiplexação. Multiplexação/desmultiplexação: exemplos

Capítulo 3: Camada de Transporte. Multiplexação/desmultiplexação. Multiplexação/desmultiplexação. Multiplexação/desmultiplexação: exemplos Capítulo 3: Camada de Transporte Serviços e protocolos de transporte Metas do capítulo: compreender os princípios atrás dos serviços da camada de transporte: multiplexação/ desmultiplexação transferência

Leia mais

Arquitetura de Redes TCP/IP. Camada de Transporte

Arquitetura de Redes TCP/IP. Camada de Transporte Arquitetura de Redes TCP/IP Camada de Transporte n Fundamentos n Define a unidade de dados do serviço de circuito virtual, denominada seguimento TCP n Especifica o formato e a função dos campos n Multiplexa

Leia mais

AULA 3 - REDES. Prof. Pedro Braconnot Velloso

AULA 3 - REDES. Prof. Pedro Braconnot Velloso AULA 3 - REDES Prof. Pedro Braconnot Velloso Resumo da última aula Começo da Internet Princípios básicos Comutação pacotes x circuitos Protocolos Arquitetura em camadas Arquitetura TCP/IP APLICAÇÃO TRANSPORTE

Leia mais

Funções da Camada de

Funções da Camada de Camada de Transporte Funções da Camada de Transporte Responsável pela movimentação de dados, de forma eficiente e confiável, entre processos em execução nos equipamentos conectados a uma rede de computadores,

Leia mais

Nível de Enlace. Nível de Enlace. Serviços. Serviços oferecidos os nível de rede

Nível de Enlace. Nível de Enlace. Serviços. Serviços oferecidos os nível de rede Nível de Enlace Enlace: caminho lógico entre estações. Permite comunicação eficiente e confiável entre dois computadores. Funções: fornecer uma interface de serviço à camada de rede; determinar como os

Leia mais

Redes de Computadores

Redes de Computadores Redes de Computadores Prof. Macêdo Firmino Camada de Transporte Macêdo Firmino (IFRN) Redes de Computadores Setembro de 2011 1 / 61 Camada de Transporte Os protocolos dessa camada supervisionam o fluxo

Leia mais

Redes de Computadores I Prof. Mateus Raeder

Redes de Computadores I Prof. Mateus Raeder Redes de Computadores I Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo - Camada de Transporte É responsável pela transmissão lógica dos dados A camada de enlace é responsável

Leia mais

PTC Aula Princípios do controle de congestionamento 3.7 Controle de congestionamento no TCP

PTC Aula Princípios do controle de congestionamento 3.7 Controle de congestionamento no TCP PTC 3450 - Aula 16 3.6 Princípios do controle de congestionamento 3.7 Controle de congestionamento no TCP (Kurose, p. 190-205) (Peterson, p. 105-124 e 242-264) 26/05/2017 Muitos slides adaptados com autorização

Leia mais

Capítulo 3 Camada de Transporte

Capítulo 3 Camada de Transporte Redes de Computadores DCC/UFJ Capítulo 3 Camada de Transporte Material fortemente baseado nos slides do livro: Computer Networking: A Top-Down Approach Featuring the Internet. Os slides foram disponibilizados

Leia mais

Curso de Redes de Computadores 2010

Curso de Redes de Computadores 2010 Curso de Redes de Computadores 2010 Adriano Mauro Cansian adriano@acmesecurity.org Capítulo 3 Camada de Transporte 1 Capítulo 3: Camada de Transporte Metas do capítulo: Compreender os princípios dos serviços

Leia mais

Redes TCP/IP. Prof. M.Sc. Alexandre Fraga de Araújo. INSTITUTO FEDERAL DO ESPÍRITO SANTO Campus Cachoeiro de Itapemirim

Redes TCP/IP. Prof. M.Sc. Alexandre Fraga de Araújo. INSTITUTO FEDERAL DO ESPÍRITO SANTO Campus Cachoeiro de Itapemirim Redes TCP/IP alexandref@ifes.edu.br Camada de Transporte 2 Camada de Transporte Função: Fornecer comunicação lógica entre processos de aplicação em diferentes hospedeiros. Os protocolos de transporte são

Leia mais

SSC0641 Redes de Computadores

SSC0641 Redes de Computadores SSC0641 Redes de Computadores Capítulo 3 - Camada de Transporte slide 1 Prof. Jó Ueyama Abril/2017 1 Capítulo 3: Camada de transporte Objetivos do capítulo: entender princípios por trás dos serviços da

Leia mais

Nível de Enlace. Laboratório MídiaCom - UFF Profa. Débora Christina Muchaluat Saade

Nível de Enlace. Laboratório MídiaCom - UFF Profa. Débora Christina Muchaluat Saade Departamento de Ciência da Computação - UFF Nível de Enlace Profa. Débora Christina Muchaluat Saade Laboratório MídiaCom - UFF debora@midiacom.uff.br http://www.midiacom.uff.br/debora 1 Nível de Enlace

Leia mais

Redes de Computadores. Redes de Computadores. Redes de Computadores. ü Contador de caracteres. ü Stuffing de caracteres.

Redes de Computadores. Redes de Computadores. Redes de Computadores. ü Contador de caracteres. ü Stuffing de caracteres. Departamento de Ciência da Computação - UFF Nível de Enlace Profa. Débora Christina Muchaluat Saade Laboratório MídiaCom - UFF debora@midiacom.uff.br Nível de Enlace Funcionalidades principais: Oferecer

Leia mais

TCP Round Trip Time e temporização

TCP Round Trip Time e temporização TCP Round Trip Time e temporização P.: como escolher o valor da temporização do TCP? Maior que o RTT Nota: RTT varia Muito curto: temporização prematura Retransmissões desnecessárias Muito longo: a reação

Leia mais

Funções da. Os principais serviços oferecidos pela camada de transporte são: Controle de conexão, Fragmentação, Endereçamento e Confiabilidade.

Funções da. Os principais serviços oferecidos pela camada de transporte são: Controle de conexão, Fragmentação, Endereçamento e Confiabilidade. Funções da Os serviços oferecidos pelo protocolo IP não oferecem confiabilidade. Problemas comuns como congestionamento, perda ou ordenação de pacotes não são tratados. Entretanto as aplicações (HTTP,

Leia mais

Redes de Computadores e Telecomunicações - Camada de Transporte

Redes de Computadores e Telecomunicações - Camada de Transporte Redes de Computadores e Telecomunicações - Camada de Transporte Objetivos Motivação Os serviços oferecidos pelo protocolo IP não oferecem garantia de confiabilidade. Problemas como congestionamento, perda

Leia mais

Nível de Transporte Portas, Protocolos UDP e TCP

Nível de Transporte Portas, Protocolos UDP e TCP Departamento de Ciência da Computação - UFF Disciplina: Nível de Transporte Portas, Protocolos UDP e TCP Profa. Débora Christina Muchaluat Saade debora@midiacom.uff.br Nível de Transporte 3 Camada de Transporte

Leia mais

Protocolos de Interligação de Redes Locais e a Distância Protocolos de Transporte. Thiago Leite

Protocolos de Interligação de Redes Locais e a Distância Protocolos de Transporte. Thiago Leite Interligação de Redes Locais e a Distância Protocolos de Thiago Leite thiago.leite@udf.edu.br 1 Quadros (enlace), datagrama (rede) e segmento (transporte) 2 Funções da camada de transporte Transferência

Leia mais

Cap. 03 Camada de Transporte

Cap. 03 Camada de Transporte Cap. 03 Camada de Transporte 3.1 Introdução e Serviços 3.1.1 Camada de Transporte e de Redes 3.1.2 Visão Geral da Camada de Transporte 3.2 Multiplexação / Demultiplexação 3.3 Transporte não Orientado a

Leia mais

Jéfer Benedett Dörr

Jéfer Benedett Dörr Redes de Computadores Jéfer Benedett Dörr prof.jefer@gmail.com Conteúdo Camada 4 Camada de Transporte/2 Objetivo Conhecer o funcionamento da camada de transporte; Apresentar os protocolos UDP e TCP; Aprender

Leia mais

Redes de Computadores

Redes de Computadores Prof. Universidade Federal de Mato Grosso do Sul brivaldo@facom.ufms.br 29 de junho de 2017 Visão Geral 1 Controle de Congestionamento 2 Princípios do Controle de Congestionamento Congestionamento: informalmente:

Leia mais

Nível de Enlace. Nível de Enlace. Serviços. Serviços. Serviços. Serviços. Serviços oferecidos os nível de rede

Nível de Enlace. Nível de Enlace. Serviços. Serviços. Serviços. Serviços. Serviços oferecidos os nível de rede Nível de Enlace Enlace: caminho lógico entre estações. Permite comunicação eficiente e confiável entre dois computadores. Funções: fornecer uma interface de serviço à camada de rede; determinar como os

Leia mais

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar - Aula 1-1. A CAMADA DE ENLACE DE DADOS (Parte 1) Relembrando as aulas do semestre passado quando estudamos os modelos de referência, lembramos que a Camada de Enlace de Dados é a camada responsável pela

Leia mais

Capítulo 3. A camada de enlace de dados

Capítulo 3. A camada de enlace de dados slide 1 Capítulo 3 A camada de enlace de dados slide 2 Onde vive o protocolo de camada de enlace? slide 3 Questões de projeto da camada de enlace Serviços de rede da camada de enlace Quadros Controle de

Leia mais

Camada de Enlace de Dados

Camada de Enlace de Dados Camada de Enlace de Dados Camada de Enlace de Dados aborda algoritmos que permitem uma comunicação eficiente e confiável entre dois computadores adjacentes em nível da camada de enlace de dados (adjacentes

Leia mais

Causas/custos do congestionamento: cenário 1

Causas/custos do congestionamento: cenário 1 Princípios de controle de 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

Leia mais

Camada de Transporte

Camada de Transporte Camada de Transporte arliones.hoeller@ifsc.edu.br abril de 2014 1 Camada de transporte Objetivos do capítulo: Entender os princípios por trás dos serviços da camada de transporte: Multiplexação/demultiplexação

Leia mais

A camada de enlace de dados executa diversas funções específicas. Dentre elas

A camada de enlace de dados executa diversas funções específicas. Dentre elas A camada de enlace de dados executa diversas funções específicas. Dentre elas estão as seguintes: Fornecer uma interface de serviço bem definida à camada de rede. Lidar com erros de transmissão. Regular

Leia mais

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIADO RIO GRANDE DO NORTE IFRN

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIADO RIO GRANDE DO NORTE IFRN INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIADO RIO GRANDE DO NORTE IFRN Disciplina: Arquitetura de redes de computadores Professor: M. Sc. Rodrigo Ronner T. da Silva E-mail: rodrigo.tertulino@ifrn.edu.br

Leia mais

Serviços de Comunicações Capítulo 3

Serviços de Comunicações Capítulo 3 Capítulo 3 A Camada de Transporte da Arquitectura TCP/IP 3.1 Portos e Sockets 3.2 O Protocolo UDP 3.3 O Protocolo TCP 1 3.1. Portos e Sockets A Camada de Transporte fornece transferência de dados fim-a-fim

Leia mais

Redes de computadores e a Internet

Redes de computadores e a Internet Redes de computadores e a Internet Capítulo Camada de transporte Camada de transporte Objetivos do capítulo: Entender os princípios por trás dos serviços da camada de transporte: Multiplexação/demultiplexação

Leia mais

Redes de computadores e a Internet. Capítulo 3. Camada de transporte

Redes de computadores e a Internet. Capítulo 3. Camada de transporte Redes de computadores e a Internet Capítulo 3 Camada de transporte Camada de transporte Objetivos do capítulo: Entender os princípios por trás dos serviços da camada de transporte: Multiplexação/demultiplexação

Leia mais

Rede de computadores Protocolos TCP. Professor Carlos Muniz

Rede de computadores Protocolos TCP. Professor Carlos Muniz Rede de computadores Professor Carlos Muniz Transmission Control Protocol O TCP (acrônimo para o inglês Transmission Control Protocol) é um dos protocolos sob os quais assenta o núcleo da Internet. A versatilidade

Leia mais

Redes de Computadores

Redes de Computadores Redes de Computadores Camada de Transporte Parte I Prof. Thiago Dutra Agenda n Parte I n Introdução n Protocolos de Transporte Internet n Multiplexação e n UDP n Parte II n TCP

Leia mais

Redes de Computadores

Redes de Computadores Controle de s Redes de Computadores Controle de Aula 8 É o processo de garantir a entrega confiável dos dados, isto é, sem s, sem duplicação e entregues na ordem da emissão Fundamental para entrega confiável

Leia mais

Redes de Computadores. Camada de Transporte

Redes de Computadores. Camada de Transporte Redes de Computadores Camada de Transporte Serviços da Camada de Transporte Provê comunicação lógica entre processos da camada de aplicação rodando em diferentes hosts. Protocolos de transporte rodam nos

Leia mais

Prof. Marcelo Cunha Parte 6

Prof. Marcelo Cunha Parte 6 Prof. Marcelo Cunha Parte 6 www.marcelomachado.com ARP (Address Resolution Protocol) Protocolo responsável por fazer a conversão entre os endereços IPs e os endereços MAC da rede; Exemplo: Em uma rede

Leia mais

Redes de Computadores

Redes de Computadores Departamento de Informática UFPE Redes de Computadores Nível de Transporte jamel@cin.ufpe.br Visão Geral do TCP/IP Telnet FTP... DNS RPC... Aplicação Usuário TCP UDP Transporte Kernel ICMP IP IGMP Rede

Leia mais