Curso de Redes de Computadores 2010

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

Download "Curso de Redes de Computadores 2010"

Transcrição

1 Curso de Redes de Computadores 2010 Adriano Mauro Cansian Capítulo 3 Camada de Transporte 1

2 Capítulo 3: Camada de Transporte Metas do capítulo: Compreender os princípios dos serviços da camada de transporte: Multiplexação/ desmultiplexação. Transferência confiável de dados. Controle de fluxo. Controle de congestionamento. Instanciação e implementação na Internet. O que veremos: Serviços da camada de transporte. Multiplexação/desmultiplexação. Transporte sem conexão: UDP. Princípios de transferência confiável de dados. Transporte orientado a conexão: TCP Transferência confiável Controle de fluxo Gerenciamento de conexões Princípios de controle de congestionamento. Controle de congestionamento em TCP. 2

3 Comparação entre as camadas Camada Transporte processos Camada de rede hosts Protocolo da Camada de Transporte fornece comunicação lógica entre processos, rodando em hosts diferentes. 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! 3

4 Camada de Transporte X Camada de Rede (1) 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. Em São Paulo: João recolhe as cartas, e as entrega ao correio. Em Manaus: Maria recolhe as cartas, e as entrega ao correio. Também recebem e fazem a distribuição local das cartas que chegam. 4

5 Camada de Transporte X Camada de Rede (2) Hosts (end systems) = Casas. Processos = pessoas que trocam mensagens. Mensagens da aplicação = cartas em envelopes. Protocolo da camada de rede: Serviço postal (correio). Protocolo da Camada de Transporte: João (de um lado) e Maria (do outro). 5

6 Serviços e protocolos de TRANSPORTE (1) Provê comunicação lógica entre processos de aplicação executando em hosts diferentes. Protocolos de transporte rodam em sistemas finais. Camada de rede: dados transferidos entre hosts. 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 Camada de transporte: dados transferidos entre processos. aplicação transporte rede enlace física 6

7 Serviços e protocolos de TRANSPORTE (2) 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. A Camada de Aplicação não tem que se preocupar com a infra-estrutura de interligação, usada para carregar as mensagens. 7

8 Protocolos da camada de transporte (1) Como já foi dito: Protocolos de transporte são implementados nos sistemas das pontas (end systems), e não nos roteadores intermediários. TRANSPORTE: Camada 4, superior à camada de rede. 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 8

9 Protocolos da camada de transporte (2) Dois Serviços de transporte na Internet: Entrega confiável, ordenada, ponto a ponto: TCP. Controle Congestionamento. Controle de fluxo. Estabelecimento de conexão (setup). 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 Entrega não confiável, ( melhor esforço ), não ordenada, ponto a ponto ou multiponto: UDP. aplicação transporte rede enlace física 9

10 Multiplexação/desmultiplexação (1) MULTIPLEXAÇÃO: Juntar dados de múltiplos processos de aplicações, encapsulando dados com cabeçalho (usado depois para demultiplexação). cabeçalho de segmento segmento dados da camada de aplicação Ht M Hn segmento P1 M aplicação transporte rede P3 receptor M M aplicação transporte rede P4 M P2 aplicação transporte rede 10

11 Multiplexação/desmultiplexação (1) MULTIPLEXAÇÃO: Juntar dados de múltiplos processos de aplicações, envelopando dados com cabeçalho (usado depois para demultiplexação). DEMULTIPLEXAÇÃO: entrega de segmentos recebidos para os processos da camada de aplicação corretos. cabeçalho de segmento segmento dados da camada de aplicação Ht M Hn segmento P1 M aplicação transporte rede P3 receptor M M aplicação transporte rede P4 M P2 aplicação transporte rede 11

12 Multiplexação/desmultiplexação (2) 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 segmento cabeçalho de segmento Ht M Hn segmento P1 M aplicação transporte rede aplicação transporte rede M P2 aplicação transporte rede 12

13 Multiplexação/desmultiplexação (3) Multiplexação/demultiplexação: 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 bem conhecido 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 13

14 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 simples de 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 14

15 UDP: User Datagram Protocol [RFC 768] Protocolo de transporte da Internet mínimo. Best Effort: Serviço melhor esforço, resulta que segmentos UDP podem ser: Perdidos. Entregues à aplicação fora de ordem de envio. Sem conexão: Não há setup UDP entre remetente e receptor. Tratamento independente de cada segmento UDP. Por quê existe um UDP? Elimina estabelecimento de conexão (o que pode causar retardo). Simples: não se mantém estado da conexão no remetente/receptor. Pequeno cabeçalho de segmento. Mais simples. Sem controle de congestionamento: UDP pode transmitir o mais rápido possível. 15

16 Mais sobre UDP 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. Outros usos de UDP : DNS (servidor de nomes). SNMP (gerenciamento). Transferência confiável com UDP: deve 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 16

17 Checksum UDP Meta: detectar falha no segmento transmitido. Emissor: 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. Emissor coloca complemento de um do valor da soma no campo checksum de UDP. Envia... Receptor: Computa checksum do segmento recebido Verifica se checksum computado é zero: NÃO - erro detectado. SIM - nenhum erro detectado. Mas ainda pode ter erros? (Veremos mais adiante.) 17

18 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: Ver RFC-1071! Os complementos de 1 são obtidos convertendo todos os 0 s para 1 s, e todos os 1 s para 0 s. 18

19 Lembrete 1: método Polinomial Modo Polinomial ( vai um ) (Este é o método realmente usado pelo UDP. Em caso de dúvida, consulte a seção do livro texto d o curso Computer Networking: A Top-Down Approach Featuring the Internet - James F. Kurose & Keith W. Ross). Lembrar que: = 0 = 00 ( vai zero ) = 1 = 01 ( vai zero ) = 1 = 01 ( vai zero ) = 1 = 01 ( vai zero ) = 2 = 10 ( vai 1 ) = 3 = 11 ( vai 1 ) Complemento de 1 =

20 Lembrete 2: carry 20

21 Exemplo de cálculo do checksum (2) Assim o complemento de 1's da soma Este valor se torna o checksum. é No receptor, todas as palavras de 16 bits são somadas, incluindo o checksum. Se não foram introduzidos erros no pacote, a soma no receptor certamente deverá resultar em Se um dos bits for zero, então algum erro foi introduzido no pacote. Pergunta para casa: 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?? 21

22 Exemplo de cálculo do checksum (2) Assim o complemento de 1's da soma Este valor se torna o checksum. é

23 Pseudo Header (1) 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. 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. 23

24 Pseudo Header (2) Pseudo header IP (usado pelo UDP) (16 bytes) Header UDP (8 bytes) Violação da independência das camadas 24

25 Princípios de Transferência confiável de dados Reliable Data Transfer (RDT) 25

26 Princípios de Transferência confiável de dados Reliable Data Transfer (RDT) Importante nas camadas de transporte, enlace No topo da lista dos 10 tópicos mais importantes em redes! unesp - IBILCE - SJRP Características do canal não confiável determinam a complexidade de um protocolo de transferência confiável de dados (RDT). 26

27 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. 27

28 Transferência confiável de dados (rdt): como começar Iremos: Desenvolver passo-a-passo os lados remetente e receptor do protocolo confiável RDT. Vamos Considerar apenas fluxo unidirecional de dados. Mas a informação de controle flui em ambos sentidos! 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 28

29 Rdt1.0: transferência confiável usando um canal confiável Suposição 1.0: Canal é perfeitamente confiável. Não apresenta erros de bits. Não apresenta perda de pacotes. 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 29

30 rdt2.0 - Modelo um pouco mais realista: Bits num pacote podem ser corrompidos. Falhas podem ocorrer nos componentes físicos da rede: Por exemplo, quando um pacote é transmitido, propagado ou bufferizado. Entretanto, continuamos supondo que todos os pacotes transmitidos são recebidos na ordem em que são enviados. Ainda que bits possam estar corrompidos. 30

31 Rdt2.0: canal com erros de bits Canal subjacente pode inverter bits no pacote O checksum UDP pode detectar erros de bits. A questão é: como recuperar dos erros? 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 ) 31

32 Mensagens de controle Permitem o receptor informar ao emissor o que foi recebido corretamente. E o que foi recebido com erro, exigindo retransmissão. Protocolos baseados em retransmissão são chamados de Protocolos ARQ: Automatic Repeat request. 32

33 Novas capacidades em rdt2.0 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 rdt2.0 33

34 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 34

35 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. 35

36 rdt2.0: em ação (sem erros) FSM do remetente FSM do receptor 36

37 rdt2.0: em ação (cenário de erro) FSM do remetente FSM do receptor 37

38 Mas o RDT2.0 tem uma falha fatal... 38

39 rdt2.0 tem uma falha fatal! 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? Remetente usa ACKs/NAKs p/ ACK/NAK do receptor? E se perder ACK/NAK do remetente? Retransmitir? Pode causar retransmissão de pacote recebido certo! 39

40 rdt2.0 tem uma falha fatal! O que acontece se ACK ou NACK com erro? Remetente não sabe o que aconteceu no receptor! Não se pode apenas retransmitir: há possibilidade de pacotes duplicados. O que fazer? Remetente usa ACKs/NAKs p/ ACK/NAK do receptor? E se perder ACK/NAK do remetente? Retransmitir? Mas pode causar retransmissão de pacote recebido certo! Lidando com duplicação: Emissor inclui número de seqüência para cada pacote. Emissor retransmite pacote atual se ACK/NAK recebido com erro. Receptor descarta pacote duplicado. Stop and wait Remetente envia um pacote, e então aguarda resposta do receptor. 40

41 rdt2.1: EMISSOR, trata ACK/NAKs com erro 1 Insere No. de seqüência 0 no pacote 2 4 Aguarda a chegada do No. Seq. correto 3 Deve verificar se ACK/NAK recebido tinha erro 41

42 rdt2.1: receptor, trata ACK/NAKs com erro Pacote corrompido Deve checar se pacote recebido é duplicado. O estado indica se No. de seqüência esperado é 0 ou 1 No. Seq. errado 42

43 rdt2.1: discussão (1) Emissor: Insere No. de sequência no pacote. Bastam dois Nos. de sequência (0 ou 1). Deve verificar se ACK/NAK recebido tem erro. Duplicou o No. de estados Estado deve lembrar se o pacote atual tem No. de sequência 0 ou 1. 43

44 rdt2.1: discussão (2) Receptor: Deve checar se pacote recebido é duplicado Estado indica se No. de seqüência esperado é 0 ou 1. Receptor não tem como saber se último ACK/NAK foi recebido bem pelo emissor. 44

45 rdt2.2: um protocolo sem NAKs Mesma funcionalidade que rdt2.1, mas só com ACKs. Ao invés de NAK, receptor envia ACK para o último pacote recebido bem. Receptor deve incluir explicitamente o No. de seqüência do pacote reconhecido. ACK duplicado no remetente resulta na mesma ação que o NAK: retransmite pacote atual.! FSM do EMISSOR 45

46 rdt3.0: canais com erros e perdas (1) Nova suposição: além de corromper dados, o canal também pode perder pacotes (dados ou ACKs). 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. 46

47 rdt3.0: canais com erros e perdas (2) Abordagem: remetente aguarda um determinado tempo pelo ACK em trânsito. Exige uso de temporizadores (timers). Timeout esgotamento do timer. Retransmite se nenhum ACK recebido neste tempo. Se pacote (ou ACK) está apenas atrasado (não perdido): A retransmissão será duplicada. Mas uso de número de seqüência resolve este problema. Receptor deve avisar o número de seqüência do pacote sendo confirmado. 47

48 rdt3.0: remetente Inicia o timer e aguarda o ack Esgotou o timer: reenvia o anterior 48

49 rdt3.0 em ação 49

50 rdt3.0 em ação 50

51 Protocolos dutados (pipelined) 51

52 Problema com protocolo stop & wait Em longas distâncias: retardo fim-a-fim é grande. Pacote em trânsito, ainda não confirmado. 52

53 Desempenho de rdt3.0 rdt3.0 funciona, porém seu desempenho é muito ruim. 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 Desempenho = 8 microseg mseg = 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! Tempo de ida e volta 53

54 Protocolos dutados (pipelined) Dutagem (pipelining): remetente admite múltiplos pacotes em trânsito, ainda não reconhecidos. Faixa de números de seqüência deve ser aumentada. Buffers no remetente e/ou no receptor. Duas formas genéricas de protocolos dutados : Volta-N (GBN Go Back N) Retransmissão Reletiva (selective repeat). 54

55 GBN - Go Back N (1) Também conhecido como Volta-N. Emissor: pode enviar múltiplos pacotes, sem aguardar ACK do receptor. Entretanto: Não pode haver mais do que um valor máximo de N pacotes não confirmados no canal. 55

56 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. 56

57 GBN - Go Back N (3) No Emissor: O intervalo de números de seqüê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. À medida que o protocolo opera, a janela se desloca sobre o espaço de números de seqüência: sliding-window protocol = Janela deslizante Pergunta: por que limitar o número de pacotes não confirmados? 57

58 GBN: FSM estendida do emissor Recebe um ACK(n): confirma que todos pacotes até, e inclusive, o No. de seqüê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 seqüência maiores na janela. 58

59 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. Temporizador: é um cronômetro para o pacote mais antigo transmitido, mas que ainda não foi reconhecido 59

60 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 60

61 GBN: FSM estendida do receptor expectedseqnum = expectedseqnum + 1 Receptor é muito simples: Usa apenas ACK: sempre envia ACK para pacote recebido o.k. com o maior número de seqüência em ordem. Pode gerar ACKs duplicados Só precisa se lembrar do expectedseqnum Pacote fora de ordem: Descarta (não armazena) receptor não usa buffers! Manda ACK de pacote com maior No. de seqüência em ordem. 61

62 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 2. 62

63 GBN não é o TCP GBN incorpora quase todas as técnicas que serão encontradas nos componentes do TCP (visto mais adiante): Número de seqüência; Checksum; ACK cumulativos; Timeouts; Operação de retransmissão Entretanto existem diferenças entre o TCP e o GBN. Por exemplo: muitas implementações TCP fazem buffering de segmentos recebidos corretamente, mas fora de ordem. TCP é um híbrido de GBN e Repetição Seletiva (a seguir). 63

64 Problemas do GBN 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. À medida em que a probabilidade de erro do canal cresce, o duto fica lotado de retransmissões desnecessárias. 64

65 Repetição Seletiva 65

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

67 Repetição seletiva: janelas de remetente e receptor O emissor já terá recebido confirmação para alguns pacotes da janela. 67

68 Repetição seletiva no emissor Dados recebidos de acima. O emissor verifica o próximo número de seqüência disponível para o pacote. Se o número de seqüê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 seqüência do pacote for igual à send-base, então a base da janela avança até o pacote com o menor número de seqüência não-confirmado. Se houver pacotes não transmitidos, com números de seqüência que caem agora dentro da janela, estes pacotes são transmitidos. 68

69 Repetição seletiva no receptor (1) 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 seqüência igual à base da janela da recepção (rcv_base), então este pacote, e os quaisquer pacotes previamente armazenados e numerados em seqüê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. Pacote com número de seqüê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. Se não: Ignora o pacote. 69

70 Repetição seletiva no receptor (2) Pacote com número de seqüê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] 70

71 Repetição seletiva - resumo emissor Dados de cima: Se próximo No. de seqüência na janela, envia pacote. Timeout(n): Reenvia pacote n. Reinicia o temporizador. ACK(n) em [sendbase,sendbase+n]: Marca pacote n como recebido. Se N for menor pacote não confirmado, avança base da janela ao próximo No. de seqüê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. 71

72 Retransmissão seletiva em ação 72

73 Retransmissão seletiva em ação Quando um pacote com um número de seqüência de rcv_base=2 é recebido, então ele e os pacotes rcv_base+1 e rcv_base+2 podem ser entregues à camada superior. 73

74 Repetição seletiva: dilema unesp - IBILCE - SJRP 74

75 Repetição seletiva: dilema unesp - IBILCE - SJRP Exemplo: Nos. de seqüência : 0, 1, 2 e 3. Tamanho de janela = 3. Receptor não vê diferença entre os dois cenários (a) e (b)!!! Incorretamente passa dados duplicados como sendo novos em (a). Pergunta: 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 75 funcionar.

76 TCP: Visão geral (1) RFCs: 793, 1122, 1323, 2018, 2581 É Peer-to-Peer (P2P): Único emissor transmite para um único receptor. Fornece fluxo de bytes ordenados e confiável: Não estruturado em mensagens. É dutado (pipelined): Tamanho da janela ajustado por controle de fluxo e congestionamento do TCP. 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 76

77 TCP: Visão geral (2) RFCs: 793, 1122, 1323, 2018, 2581 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) É orientado a conexão: Handshaking de 3 vias (troca de msgs de controle) inicia estado de remetente, receptor antes de trocar dados. Tem o Fluxo controlado: o receptor não será afogado bytes, 536 bytes ou 512 bytes 77

78 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 tam. cab. 32 bits No. porta dest número de seqüência número de confirmação (ACK) sem uso UAP 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 78

79 Header TCP 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 seqüência 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 identifica os bytes que foram recebidos e tratados sem erro pelo destino, bem como a seqüê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 (syn, fin, psh, rst, ack, 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 Urgent Pointer é um ponteiro para dados urgentes, contidos na área de dados.

80 Gerenciamento de conexões no TCP 80

81 TCP: Gerenciamento de Conexões (1) Lembrete: Remetente e receptor TCP estabelecem conexão antes de trocar segmentos de dados. Conexão é full duplex : fluxo de dados vai nos dois sentidos. Inicializam variáveis TCP: Números de seqüência e confirmação. Buffers, informações de controle de fluxo (por exemplo RcvWindow) e temporizadores. Cliente: é aquele que inicia a conexão. Active Open Servidor: é aquele chamado pelo cliente. Passive Open. 81

82 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) 82

83 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. 83

84 Estabelecimento da Conexão Origem A SYN : (0) <mss 1024> Destino B SYN : (0) <mss 1024> ACK ACK

85 Encerramento da Conexão 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.

86 espera temporizada unesp - IBILCE - SJRP TCP: Fechando uma Conexão (1) Encerrando uma conexão: 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. fechar cliente servidor fechar ( Segue... ) fechada 86

87 espera temporizada unesp - IBILCE - SJRP 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 servidor fechando Step 4: servidor, recebe ACK. Conexão encerrada. fechada fechada 87

88 Encerramento da Conexão Origem A FIN : (0) ACK Destino B ACK FIN : (0) ACK ACK

89 TCP: Ciclo de vida do SERVIDOR Ciclo de vida do servidor TCP 89

90 TCP: Ciclo de vida do CLIENTE Ciclo de vida do cliente TCP 90

91 MSS e numeração de segmentos 91

92 MSS (Maximum Segment Size) O MSS representa o tamanho do maior bloco de dados que o TCP pretende enviar num único segmento para o destino. 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)

93 Quanto maior o MSS, melhor 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. 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.

94 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 94

95 TCP: Números de seqüência e ACKs Nos. de sequência: número do primeiro byte de dados do segmento. ACKs: No. de sequência do próximo segmento esperado (em bytes). ACK cumulativo. Host A Usuário tecla C Host B B reconhece chegada de C, ecoa C de volta P: Como receptor trata segmentos fora da ordem? Especificação do TCP é omissa - deixado ao implementador. Maioria das vezes: buferiza. A reconhece chegada do C ecoado cenário simples de telnet tempo 95

96 TCP: transferência confiável de dados no TRANSMISSOR (1/2) event: data received from application above create, send segment Passagem dos dados da aplicação ao TCP, e transmissão de um segmento. wait wait for event event event: timer timeout for segment with seq# y retransmit segment Se não chegar o ACK: Cada vez que o TCP entrega um segmento ao IP (abaixo), ele inicia um temporizador para aquele segmento. Se este temporizador expirar, o TCP responde ao evento de timeout, re-enviando o segmento que causou o timeout. event: ACK received, with ACK# y ACK processing Chegada de um segmento de reconhecimento (ACK) vindo do receptor. 96

97 TCP: transferência confiável de dados no TRANSMISSOR (2/2) processamento do ack event: data received from application above create, send segment wait wait for event event event: ACK received, with ACK # y ACK processing event: timer timeout for segment with seq # y retransmit segment Chegada de um ACK o emissor deve determinar se o ACK é um first-time ACK (para um segmento o qual o remetente ainda está esperando um ACK), ou uma duplicata de ACK, que rereconheça um segmento para qual o remetente já tenha recebido ACK anteriormente. Chegada de um ACK first-time o emissor é informado que todos os dados até (inclusive) o byte que está sendo confirmado foram recebidos no receptor. O emissor atualiza sua variável do estado do TCP que segue o número de seqüência do último byte que tenha sido recebido corretamente (e em ordem), no receptor. 97

98 ACKs duplicados First time ack é sinal que está tudo ok. 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. Veremos em seguida como isso é usado pelo TCP... 98

99 Retransmissão rápida (1/2) Quando um receptor recebe um segmento com um número de seqüência maior do que próximo número de seqüência esperado, ele detecta uma falha no fluxo de dados Ou seja: detecta um segmento faltante. Uma vez que o TCP não usa NACK, o receptor não pode emitir uma negativa de ACK de volta ao emissor. Ao invés disso, re-reconhece simplesmente o último byte em ordem dos dados que ele recebeu corretamente. Isto é, ele gera um ACK em duplicata para o último byte recebido ok. 99

100 Retransmissão rápida (2/2) Se o emissor receber três ACKs duplicados (ou seja, 4 ACKs idênticos) para o mesmo segmento que ele enviou, ele assume que foi perdido o segmento que vem 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 do segmento expire [RFC 2581]. 100

101 Timer Ainda não ocorreu timeout unesp - IBILCE - SJRP Entendendo os 3 ACKs duplicados ACK xxxxxxx523 ACK xxxxxxx523 1o. ACK duplicado ACK xxxxxxx523 ACK xxxxxxx523 2o. ACK duplicado 3o. ACK duplicado A chegada de 4 ACKs idênticos antes de vencer o timer daquele ACK, resulta na retransmissão rápida. 101

102 RFC TCP Congestion Control unesp - IBILCE - SJRP " 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." 102

103 Geração 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. 103

104 temporização unesp - IBILCE - SJRP TCP: cenários de retransmissão (1) Estação A Estação B X perda tempo cenário do ACK perdido 104

105 TCP: cenários de retransmissão (2) Timeout antes da chegada do ack do primeiro segmento. Reenvia O ACK do segundo segmento chega on-time Recebe o ACK do primeiro e host A acha que é do re-enviado Este ACK do reenvio do 1o. Segmento é desconsiderado 105

106 TCP: cenários de retransmissão (3) 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) 106

107 Controle de FLUXO no TCP 107

108 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 emissor (lembrar que é Full Duplex). buffering pelo receptor 108

109 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. (isso vale para cada lado da conexão) 109

110 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) 110

111 Tempo de resposta (RTT) e ajustes da temporização de timeout Retransmissão adaptativa 111

112 TCP: Tempo de Resposta (RTT) e timeout P: Como escolher valor do temporizador de timeout do TCP? Deve ser maior que o RTT. Note que o RTT pode variar. Muito curto: temporização prematura. Retransmissões são desnecessárias. Muito longo: reação demorada à perda de segmentos. P: Como estimar RTT? RTTamostra: tempo medido entre a transmissão do segmento e o recebimento do ACK correspondente. Ignora retransmissões, e segmentos com ACKs cumulativos RTTamostra varia. Necessita ponderador de RTT. Usa várias medições recentes, não apenas o valor corrente (RTTamostra) Atribuir mais peso às amostras recentes do que às amostras antigas. 112

113 Mas, não é tão simples Ainda há a questão entre o RTT e o timeout. Necessário ajustar o timeout com o RTT. Não é algo simples. O TCP utilizava normalmente timeout = B*RTT. Mas, neste caso a dificuldade é determinar B. Nas implementações iniciais, B era fixado em 2. Ou seja, duas idas e voltas (2 x RTT). Estimativa empírica (leia-se chute ). Mas, um valor constante era inflexível, e não atendia os casos em que a variação era maior. 113

114 Algoritmo original Medir RTTamostra para cada par segment/ack Calcular a média ponderada do RTT: RTT_estimado = a*rtt_estimado + b*rttamostra, onde a+b = 1 a: deve ser entre 0.8 and 0.9 b: deve ser entre 0.1 and 0.2 Ajustar timeout baseado no RTT_estimado TimeOut = 2 * RTT_estimado 114

115 Proposta de Van Jacobson (1) 1988: Van Jacobson propôs tornar B proporcional à variação do RTT. Portanto, uma grande variação significa um valor alto para B, e pouca variação significa um valor baixo. Na prática ele sugeriu usar o desvio médio do RTT como uma forma de estimar o desvio padrão. Não é exato, mas é uma aproximação razoável. Desvio médio é dado pela média aritmética dos desvios. Desvio = valor médio - valor medido 115

116 Proposta de Van Jacobson (2) A maioria das implementações atuais usa este algoritmo e define o intervalo de timeout (ajuste do temporizador) como: timeout = RTT + 4*DevRTT A escolha do fator 4 é arbitrária. Minimiza o número de retransmissões necessárias: Menos de 1% de todos os pacotes chegam com atraso de mais de 4 vezes o desvio padrão. Exercício: Pesquisar e estudar algoritmo Jacobson/Karels. 116

117 Se você pensa que acabou (1) Temporizador de retransmissão não é o único usado pelo TCP. Na verdade são 4 timers. Retransmissão (já visto) Persistência Keep-alive Time-wait 117

118 Temporizador de persistência 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) 118

119 Temporizador keep alive Temporizador keep alive ( mantenha vivo ): Para verificar conexões inativas por muito tempo. Um lado verifica se o outro ainda está lá. 119

120 Temporizador Time Wait 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. 120

121 Controle de Congestionamento 121

122 Princípios de Controle de Congestionamento (1) Congestionamento: Informalmente: trata-se de fontes enviando muitos dados mais rapidamente do que a rede pode suportar. Diferente de controle de fluxo. Retransmissão de pacotes trata o sintoma do congestionamento da rede (que é a perda de segmentos), mas não trata a causa do congestionamento: Origens tentando enviar dados numa taxa muito alta. 122

123 Princípios de Controle de Congestionamento (2) Como se manifesta: Perda (drop) de pacotes Esgotamento de buffers em roteadores. Retransmissão de pacotes. devido aos drops. Longos atrasos Grande enfileiramento nos buffers dos roteadores. 123

124 Solução para o Congestionamento Verdadeira solução para o congestionamento é diminuir 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. TCP tenta alcançar esse objetivo. Manipulando dinamicamente o tamanho da janela. 124

125 O que o TCP faz para evitar congestionamentos: Quando uma conexão é estabelecida, escolhe um tamanho de janela adequado. Veremos mais adiante como é esta escolha. O receptor pode especificar uma janela a partir do tamanho de seu buffer. Indica o quanto ele está disposto a receber. 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. 125

126 TCP: Controle de Congestionamento (1) Deve-se entender que existem dois problemas potenciais: Capacidade do receptor. Capacidade da rede. Deve-se tratar cada um em separado. Para isso, cada transmissor mantém duas janelas: Janela fornecida pelo receptor. RcvWin Janela de congestionamento: CongWin 126

127 TCP: Controle de Congestionamento (2) Cada uma identifica o número de bytes que o transmissor pode enviar pode enviar o valor mínimo das duas janelas. 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} 127

128 TCP: Controle de Congestionamento Controle é fim a fim (sem apoio da rede). 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

129 TCP: Controle de Congestionamento A janela efetiva é o mínimo do que o transmissor e o receptor consideram viável. 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. Se o receptor disser: envie 8KB, e o transmissor souber que rajadas de até 32 KB passam pela rede sem problemas, ele enviará os 8 KB solicitados. 129

130 Como funciona o controle: 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. Duas fases 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

131 Partida lenta e sondagem do congestionamento (1) Conexão é estabelecida transmissor ajusta a janela de congestionamento igual ao MSS em uso. Em seguida, ele envia este segmento máximo. Se esse segmento for confirmado antes de ocorrer um timeout, 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. Enviará os 2 segmentos (continua...) 131

132 Partida lenta e sondagem do congestionamento (2) À medida que cada um desses segmentos for confirmado, a janela de congestionamento é aumentada em um tamanho deste segmento máximo, de tal forma que - quando ambos forem confirmados - a janela terá agora 4 vezes o valor inicial. Quando a janela de congestionamento chegar a n segmentos, e se todos os n segmentos forem confirmados a tempo, a janela de congestionamento será aumentada pelo número de bytes correspondentes aos n segmentos. Na prática, cada rajada confirmada duplica a janela de congestionamento atual: crescimento exponencial. 132

133 RTT unesp - IBILCE - SJRP TCP: Partida lenta Algoritmo de Partida Lenta Estação A Estação B inicializa: Congwin = 1 for (cada segmento c/ ACK) Congwin++ until (evento de perda OR CongWin > threshold) Veremos o que é isso a seguir... A cada RTT ocorre um aumento exponencial no tamanho da janela. Partida não tão lenta! tempo 133

134 Quando parar o crescimento? Mas, quando parar o crescimento? Obviamente este crescimento terá de ser interrompido em algum momento, devido a congestionamento da rede ou capacidade do receptor. Para isso é usado o parâmetro de threshold. Vejamos como

135 Threshold Algoritmo de controle de congestionamento TCP utiliza um terceiro parâmetro limitante: o threshold. Também chamado de limiar ou patamar. Threshold definido inicialmente como 64KB. O crescimento exponencial é interrompido quando o threshold é alcançado. Então o crescimento passa a ser linear. Quando atingir o threshold, a variável congwin passa a aumentar de um MSS para cada rajada. 135

136 Threshold e o timeout Quando há um timeout, o threshold é atribuído à metade da janela de congestionamento atual, e a janela de congestionamento é reinicializada para 1 MSS. Na prática, esse algoritmo diminui o tamanho da janela de congestionamento à metade, e depois retoma seu crescimento a partir daí. 136

137 TCP: Evitar Congestionamento (1) (2) Quando atinge threshold, o crescimento passa a ser linear (fase de prevenção de congestionamento ) timeout (3) Quando há timeout, congwin volta para 1 MSS, e threshold cai pela metade (1) Fase de partida lenta (2.1) Quando atinge o threshold o aumento é de um segmento máximo para cada rajada em vez de um para cada segmento. 137

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

139 AADM / Additive-Increase, Multiplicative-Decrease (AIMD) Desconsiderando a fase de partida lenta: TCP usa AADM : Aumento Aditivo, Decremento Multiplicativo Aumenta janela em 1 a cada RTT. Diminui janela por fator de 2 quando um evento de perda acontece. Justeza do TCP Meta de justeza: se N sessões TCP compartilham o mesmo enlace, cada uma deve ganhar 1/N da capacidade do enlace. TCP conexão 1 TCP conexão 2 Roteador gargalo capacidade R 139

140 Capítulo 3: Sumário Princípios por trás dos serviços da camada de transporte: Multiplexação / desmultiplexação transferência confiável de dados controle de fluxo controle de congestionamento Instanciação e implementação na Internet. UDP TCP Próximo capítulo: Saímos da borda da rede (camadas de aplicação e transporte) Entramos no núcleo da rede. 140

141 141

142 Exercício proposto: Estudar a diferenças e semelhanças entre os algoritmos TCP Reno e TCP Tahoe, entendendo como eles atuam com relação à emissão de ACKs e recuperação de falhas. 142

143 143

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 [email protected] provê comunicação lógica entre processos de executando em hospedeiros diferentes protocolos de executam em sistemas

Leia mais

Camada de Transporte. Protocolos TCP e UDP

Camada de Transporte. Protocolos TCP e UDP Camada de Transporte Protocolos TCP e UDP Protocolo UDP Protocolo de transporte da Internet sem gorduras Serviço best effort, segmentos UDP podem ser: perdidos entregues fora de ordem para a aplicação

Leia mais

Camada de transporte. Camada de transporte

Camada de transporte. Camada de transporte Camada de transporte Camada de transporte Objetivos do capítulo: Entender os princípios dos serviços da camada de transporte: Multiplexação/demultiplexação Transferência de dados confiável Controle de

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

Redes de Computadores. Camada de Transporte

Redes de Computadores. Camada de Transporte Redes de Computadores Camada de Transporte Objetivo! Apresentar as características da camada de transporte da arquitetura TCP/IP! Apresentar os serviços fornecidos pela camada de transporte! Estudar os

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 Camada de Transporte Implementação de um Transporte Confiável Slide 1 Transferência Confiável de Dados sobre um Canal Confiável rdt1.0 Uma vez que o canal é confiável, não existe

Leia mais

Redes de Computadores. Camada de Transporte de Dados: protocolos TCP e UDP Prof. MSc Hugo Vieira L. Souza

Redes de Computadores. Camada de Transporte de Dados: protocolos TCP e UDP Prof. MSc Hugo Vieira L. Souza Redes de Computadores Camada de Transporte de Dados: protocolos TCP e UDP Prof. MSc Hugo Vieira L. Souza Este documento está sujeito a copyright. Todos os direitos estão reservados para o todo ou quaisquer

Leia mais

Curso: Redes II (Heterogênea e Convergente) Tema da Aula: Controle de Congestionamento

Curso: Redes II (Heterogênea e Convergente) Tema da Aula: Controle de Congestionamento Curso: Redes II (Heterogênea e Convergente) Tema da Aula: Controle de Congestionamento Professor Rene - UNIP 1 Revisão... Segmento A unidade de dados trocada entre as entidades de transporte é denominada

Leia mais

TCP - estabelecimento de conexão

TCP - estabelecimento de conexão TCP - estabelecimento de conexão Inicializa variáveis Números de sequência Buffers, RcvWindow 3-way handshake usado para eliminar o problema de duplicatas antigas (atrasadas) Ex.: pedidos de conexão, ACKs

Leia mais

Slides e Notas de Aula. http://www.acmesecurity.org/redes. Adriano Mauro Cansian. [email protected]

Slides e Notas de Aula. http://www.acmesecurity.org/redes. Adriano Mauro Cansian. adriano@ieee.org unesp UNIVERSIDADE ESTADUAL PAULISTA REDES DE COMPUTADORES Slides e Notas de Aula Capítulo 3 Camada de Transporte http://www.acmesecurity.org/s Adriano Mauro Cansian [email protected] São José do Rio Preto

Leia mais

TCP: Visão geral RFCs: 793, 1122, 1323, 2018, 2581. TCP: nos. de seq. e ACKs. TCP: estrutura do segmento. TCP: Tempo de Resposta (RTT) e Temporização

TCP: Visão geral RFCs: 793, 1122, 1323, 2018, 2581. TCP: nos. de seq. e ACKs. TCP: estrutura do segmento. TCP: Tempo de Resposta (RTT) e Temporização socket door : Visão geral FCs: 793, 1122, 1323, 2018, 2581 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

Qualidade em Servicos de Rede Prof. Eduardo Maronas Monks Roteiro de Laboratorio Camada de Transporte Parte II

Qualidade em Servicos de Rede Prof. Eduardo Maronas Monks Roteiro de Laboratorio Camada de Transporte Parte II Qualidade em Servicos de Rede Prof. Eduardo Maronas Monks Roteiro de Laboratorio Camada de Transporte Parte II 1) Explicar os seguintes mecanismos e conceitos do protocolo TCP: 1. Slow Start O algoritmo

Leia mais

REDES DE COMPUTADORES

REDES DE COMPUTADORES REDES DE COMPUTADORES 09/2013 Cap.3 Protocolo TCP e a Camada de Transporte 2 Esclarecimentos Esse material é de apoio para as aulas da disciplina e não substitui a leitura da bibliografia básica. Os professores

Leia mais

Capítulo 7 CAMADA DE TRANSPORTE

Capítulo 7 CAMADA DE TRANSPORTE Capítulo 7 CAMADA DE TRANSPORTE SERVIÇO SEM CONEXÃO E SERVIÇO ORIENTADO À CONEXÃO Serviço sem conexão Os pacotes são enviados de uma parte para outra sem necessidade de estabelecimento de conexão Os pacotes

Leia mais

6 de Julho de 2015. Exercício 23 Para que servem portas na camada de transporte?

6 de Julho de 2015. Exercício 23 Para que servem portas na camada de transporte? Lista de Exercícios Camada de Transporte GBC-056 Arquitetura de Redes de Computadores Bacharelado em Ciência da Computação Universidade Federal de Uberlândia 6 de Julho de 2015 Exercício 1 Para que serve

Leia mais

Transporte. Sua função é: Promover uma transferência de dados confiável e econômica entre máquina de origem e máquina de destino.

Transporte. Sua função é: Promover uma transferência de dados confiável e econômica entre máquina de origem e máquina de destino. Redes de Computadores Transporte Prof. Rodrigo Rocha [email protected] http://www.bolinhabolinha.com Camada de transporte Sua função é: Promover uma transferência de dados confiável e econômica

Leia mais

Computadores Digitais 2. Prof. Rodrigo de Souza Couto

Computadores Digitais 2. Prof. Rodrigo de Souza Couto Computadores Digitais 2 Linguagens de Programação DEL-Poli/UFRJ Prof. Miguel Campista ATENÇÃO Esta apresentação foi retirada e adaptada dos seguintes trabalhos: Notas de aula do Prof. Miguel Campista da

Leia mais

2 Controle de Congestionamento do TCP

2 Controle de Congestionamento do TCP 2 Controle de Congestionamento do TCP 17 2 Controle de Congestionamento do TCP A principal causa de descarte de pacotes na rede é o congestionamento. Um estudo detalhado dos mecanismos de controle de congestionamento

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: dados full-duplex: um transmissor, um receptor confiável, seqüêncial -> byte stream: mensagens não são delimitadas pipelined: transmissão

Leia mais

Camada de Transporte, protocolos TCP e UDP

Camada de Transporte, protocolos TCP e UDP Camada de Transporte, protocolos TCP e UDP Conhecer o conceito da camada de transporte e seus principais protocolos: TCP e UDP. O principal objetivo da camada de transporte é oferecer um serviço confiável,

Leia mais

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 5-1. A CAMADA DE TRANSPORTE Parte 1 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, independentemente

Leia mais

Redes de Computadores

Redes de Computadores Redes de Computadores Camada de Transporte UDP Slide 1 Camada de Transporte Fornece uma comunicação lógica entre processos de aplicações em diferentes hosts através da camada de rede; São implementados

Leia mais

Redes de Computadores. Trabalho de Laboratório Nº7

Redes de Computadores. Trabalho de Laboratório Nº7 Redes de Computadores Curso de Eng. Informática Curso de Eng. de Electrónica e Computadores Trabalho de Laboratório Nº7 Análise do tráfego na rede Protocolos TCP e UDP Objectivo Usar o Ethereal para visualizar

Leia mais

Controle de Congestionamento em TCP Parte 2. Prof. Dr. S. Motoyama

Controle de Congestionamento em TCP Parte 2. Prof. Dr. S. Motoyama Controle de Congestionamento em TCP Parte 2 Prof. Dr. S. Motoyama 1 Controle de Congestionamento em TCP Princípios de controle de congestionamento Saber que congestionamento está ocorrendo Adaptar para

Leia mais

Exercícios de Revisão Redes de Computadores Edgard Jamhour. Segundo Bimestre

Exercícios de Revisão Redes de Computadores Edgard Jamhour. Segundo Bimestre Exercícios de Revisão Redes de Computadores Edgard Jamhour Segundo Bimestre Exercicio 1: Considere a seguinte configuração de rede estruturada em VLANs 220.0.0.2/24 C VLAN 2 B VLAN 1 A VLAN 1 VLAN 1,2,3

Leia mais

Redes de Computadores II

Redes de Computadores II Redes de Computadores II UDP Prof: Ricardo Luís R. Peres Tem como objetivo prover uma comunicação entre dois processos de uma mesma sessão que estejam rodando em computadores dentro da mesma rede ou não.

Leia mais

Redes de Computadores

Redes de Computadores Redes de Computadores Parte V: Camada de Transporte 3.1 Serviços da camada de transporte 3.2 Multiplexação e demultiplexação 3.3 Transporte não orientado à conexão: UDP 3.4 Princípios de transferência

Leia mais

REDES DE COMPUTADORES Camada de Transporte. Alexandre Augusto Giron

REDES DE COMPUTADORES Camada de Transporte. Alexandre Augusto Giron REDES DE COMPUTADORES Camada de Transporte Alexandre Augusto Giron ROTEIRO Visão geral da camada de transporte Protocolos UDP TCP Princípios do controle de congestionamento A camada de transporte: visã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

Camada Transporte Parte 2. Prof. Dr. S. Motoyama

Camada Transporte Parte 2. Prof. Dr. S. Motoyama Camada Transporte Parte 2 Prof. Dr. S. Motoyama 1 Algoritmo de Janela Deslizante em TCP O TCP clássico emprega um protocolo de janela deslizante com confirmação positiva e sem repetição seletiva. O TCP

Leia mais

PROJETO DE REDES www.projetoderedes.com.br

PROJETO DE REDES www.projetoderedes.com.br PROJETO DE REDES www.projetoderedes.com.br Curso de Tecnologia em Redes de Computadores Disciplina: Redes I Fundamentos - 1º Período Professor: José Maurício S. Pinheiro Material de Apoio VI PROTOCOLOS

Leia mais

Capítulo 7 CAMADA DE TRANSPORTE

Capítulo 7 CAMADA DE TRANSPORTE Capítulo 7 CAMADA DE TRANSPORTE INTRODUÇÃO (KUROSE) A Camada de Rede é uma peça central da arquitetura de rede em camadas A sua função é a de fornecer serviços de comunicação diretamente aos processos

Leia mais

A Camada de Transporte

A Camada de Transporte A Camada de Transporte Romildo Martins Bezerra CEFET/BA s de Computadores II Funções da Camada de Transporte... 2 Controle de conexão... 2 Fragmentação... 2 Endereçamento... 2 Confiabilidade... 2 TCP (Transmission

Leia mais

Arquitetura TCP/IP. Parte XI Transporte orientado a conexão (TCP) Fabrízzio Alphonsus A. M. N. Soares

Arquitetura TCP/IP. Parte XI Transporte orientado a conexão (TCP) Fabrízzio Alphonsus A. M. N. Soares Arquitetura TCP/IP Parte XI Transporte orientado a conexão (TCP) Fabrízzio Alphonsus A. M. N. Soares Tópicos Características do TCP Como o TCP fornece confiabilidade Janela deslizante Estabelecimento e

Leia mais

CAMADA DE TRANSPORTE

CAMADA DE TRANSPORTE Curso Técnico de Redes de Computadores Disciplina de Fundamentos de Rede CAMADA DE TRANSPORTE Professora: Juliana Cristina de Andrade E-mail: [email protected] Site: www.julianacristina.com

Leia mais

Redes de computadores e a Internet. Capítulo3. Camada de transporte

Redes de computadores e a Internet. Capítulo3. Camada de transporte Redes de computadores e a Internet Capítulo Camada de transporte Pilha de protocolos da Internet M Aplicação Ht M Transporte Hr Ht M Rede Hr Ht M Enlace Mensagem Segmento Datagrama Quadro He Física -2

Leia mais

Teleprocessamento e Redes

Teleprocessamento e Redes Teleprocessamento e Redes Aula 19: 29 de junho de 2010 1 camada de transporte camada de rede 2 Questão 1 (Kurose/Ross) camada de transporte camada de rede Um processo em um host C tem um socket UDP com

Leia mais

UNIVERSIDADE. Sistemas Distribuídos

UNIVERSIDADE. Sistemas Distribuídos UNIVERSIDADE Sistemas Distribuídos Ciência da Computação Prof. Jesus José de Oliveira Neto Comunicação Inter-Processos Sockets e Portas Introdução Sistemas distribuídos consistem da comunicação entre processos

Leia mais

Capítulo 11 - Camada de Transporte TCP/IP e de Aplicação. Associação dos Instrutores NetAcademy - Julho de 2007 - Página

Capítulo 11 - Camada de Transporte TCP/IP e de Aplicação. Associação dos Instrutores NetAcademy - Julho de 2007 - Página Capítulo 11 - Camada de Transporte TCP/IP e de Aplicação 1 Introdução à Camada de Transporte Camada de Transporte: transporta e regula o fluxo de informações da origem até o destino, de forma confiável.

Leia mais

Teleprocessamento e Redes (MAB-510) Gabarito da Segunda Lista de Exercícios 01/2010

Teleprocessamento e Redes (MAB-510) Gabarito da Segunda Lista de Exercícios 01/2010 Teleprocessamento e Redes (MAB-510) Gabarito da Segunda Lista de Exercícios 01/2010 Prof. Silvana Rossetto (DCC/IM/UFRJ) 1 13 de julho de 2010 Questões 1. Qual é a diferença fundamental entre um roteador

Leia mais

Camada de Transporte TCP/IP e Aplicação

Camada de Transporte TCP/IP e Aplicação Universidade do Sul de Santa Catarina Camada de Transporte TCP/IP e Aplicação 1 Camada de Transporte Os serviços de transporte incluem os seguintes serviços básicos: Segmentação de dados de aplicações

Leia mais

Tecnologia de Redes de Computadores

Tecnologia de Redes de Computadores Tecnologia de Redes de Computadores Prof. Sidney Nicolau Venturi Filho 31. CAMADA DE TRANSPORTE Camada de Transporte Camada de Transporte Funções da camada controle de fluxo fim-a-fim sequênciação detecção

Leia mais

Rede de Computadores II

Rede de Computadores II Rede de Computadores II Slide 1 Roteamento Determinar o melhor caminho a ser tomado da origem até o destino. Se utiliza do endereço de destino para determinar a melhor rota. Roteador default, é o roteador

Leia mais

Márcio Leandro Moraes Rodrigues. Frame Relay

Márcio Leandro Moraes Rodrigues. Frame Relay Márcio Leandro Moraes Rodrigues Frame Relay Introdução O frame relay é uma tecnologia de chaveamento baseada em pacotes que foi desenvolvida visando exclusivamente a velocidade. Embora não confiável, principalmente

Leia mais

4. Protocolos Teóricos e Protocolos de Controlo de Ligação Protocolos ARQ; Especificação de Protocolos; Eficiência ARQ.

4. Protocolos Teóricos e Protocolos de Controlo de Ligação Protocolos ARQ; Especificação de Protocolos; Eficiência ARQ. 4. Protocolos Teóricos e Protocolos de Controlo de Ligação Protocolos ARQ; Especificação de Protocolos; Eficiência ARQ. Redes de Comunicações/Computadores I Secção de Redes de Comunicação de Dados Protocolos

Leia mais

Um pouco sobre Pacotes e sobre os protocolos de Transporte

Um pouco sobre Pacotes e sobre os protocolos de Transporte Um pouco sobre Pacotes e sobre os protocolos de Transporte O TCP/IP, na verdade, é formado por um grande conjunto de diferentes protocolos e serviços de rede. O nome TCP/IP deriva dos dois protocolos mais

Leia mais

Redes de Computadores II. Módulo 1 Introdução e a camada de enlace

Redes de Computadores II. Módulo 1 Introdução e a camada de enlace Redes de Computadores II Módulo 1 Introdução e a camada de enlace 1 A Camada de Enlace Principal objetivo da camada: Comunicar dados entre dois equipamentos de rede conectados ao mesmo meio de transmissão

Leia mais

Camada de Transporte. Prof. Leonardo Barreto Campos

Camada de Transporte. Prof. Leonardo Barreto Campos Camada de Transporte 1 Sumário Introdução; Serviços oferecidos à camada superior; Multiplexação e Demultiplexação; UDP; TCP; Controle de Congestionamento; Controle de Congestionamento do TCP; 2/62 Introdução

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

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

Arquiteturas de Rede. Prof. Leonardo Barreto Campos

Arquiteturas de Rede. Prof. Leonardo Barreto Campos Arquiteturas de Rede 1 Sumário Introdução; Modelo de Referência OSI; Modelo de Referência TCP/IP; Bibliografia. 2/30 Introdução Já percebemos que as Redes de Computadores são bastante complexas. Elas possuem

Leia mais

Redes de Computadores. Protocolos de comunicação: TCP, UDP

Redes de Computadores. Protocolos de comunicação: TCP, UDP Redes de Computadores Protocolos de comunicação: TCP, UDP Introdução ao TCP/IP Transmission Control Protocol/ Internet Protocol (TCP/IP) é um conjunto de protocolos de comunicação utilizados para a troca

Leia mais

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

Redes TCP/IP. Prof. M.Sc. Alexandre Fraga de Araújo. alexandref@ifes.edu.br. INSTITUTO FEDERAL DO ESPÍRITO SANTO Campus Cachoeiro de Itapemirim Redes TCP/IP [email protected] O que é a Internet? Milhões de elementos de computação interligados: hospedeiros = sistemas finais Executando aplicações Enlaces de comunicação: fibra, cobre, rádio,

Leia mais

4. Qual seria o impacto da escolha de uma chave que possua letras repetidas em uma cifra de transposição?

4. Qual seria o impacto da escolha de uma chave que possua letras repetidas em uma cifra de transposição? Prova de 2011-02 1. Descreva duas maneiras de estabelecer uma conexão entre processos na camada de transporte sem o conhecimento da porta (TSAP) ao qual o servidor remoto esteja associado. 2. Estabelecer

Leia mais

Redes de Computadores_Marcelo Furtado Pratica 2- Qualidade de serviços

Redes de Computadores_Marcelo Furtado Pratica 2- Qualidade de serviços Redes de Computadores_Marcelo Furtado Pratica 2- Qualidade de serviços Tarefas: 1) Explicar os seguintes mecanismos e conceitos do protocolo TCP: 1. Slow Start Slow start é um mecanismo do TCP desenvolvido

Leia mais

APLICAÇÃO REDE APLICAÇÃO APRESENTAÇÃO SESSÃO TRANSPORTE REDE LINK DE DADOS FÍSICA 1/5 PROTOCOLOS DE REDE

APLICAÇÃO REDE APLICAÇÃO APRESENTAÇÃO SESSÃO TRANSPORTE REDE LINK DE DADOS FÍSICA 1/5 PROTOCOLOS DE REDE 1/5 PROTOCOLOS DE O Modelo OSI O OSI é um modelo usado para entender como os protocolos de rede funcionam. Para facilitar a interconexão de sistemas de computadores, a ISO (International Standards Organization)

Leia mais

Camada de Transporte. Serviços de Transporte. Desempenho em Protocolos de Transporte. Aprender sobre protocolos de transporte na Internet

Camada de Transporte. Serviços de Transporte. Desempenho em Protocolos de Transporte. Aprender sobre protocolos de transporte na Internet 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 Camada de Transporte

Leia mais

Há dois tipos de configurações bidirecionais usados na comunicação em uma rede Ethernet:

Há dois tipos de configurações bidirecionais usados na comunicação em uma rede Ethernet: Comunicação em uma rede Ethernet A comunicação em uma rede local comutada ocorre de três formas: unicast, broadcast e multicast: -Unicast: Comunicação na qual um quadro é enviado de um host e endereçado

Leia mais

Arquitetura de Rede de Computadores

Arquitetura de Rede de Computadores TCP/IP Roteamento Arquitetura de Rede de Prof. Pedro Neto Aracaju Sergipe - 2011 Ementa da Disciplina 4. Roteamento i. Máscara de Rede ii. Sub-Redes iii. Números Binários e Máscara de Sub-Rede iv. O Roteador

Leia mais

SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2

SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2 SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2 1.1 Introdução... 2 1.2 Estrutura do IP... 3 1.3 Tipos de IP... 3 1.4 Classes de IP... 4 1.5 Máscara de Sub-Rede... 6 1.6 Atribuindo um IP ao computador... 7 2

Leia mais

Comunicação de Dados

Comunicação de Dados UNISUL 2013 / 1 Universidade do Sul de Santa Catarina Engenharia Elétrica - Telemática 1 Comunicação de Dados Aula 6 Agenda Projeto da camada de enlace de dados Detecção e correção de erros Protocolos

Leia mais

SMTP, POP, IMAP, DHCP e SNMP. Professor Leonardo Larback

SMTP, POP, IMAP, DHCP e SNMP. Professor Leonardo Larback SMTP, POP, IMAP, DHCP e SNMP Professor Leonardo Larback Protocolo SMTP O SMTP (Simple Mail Transfer Protocol) é utilizado no sistema de correio eletrônico da Internet. Utiliza o protocolo TCP na camada

Leia mais

CCNA 2 Conceitos Básicos de Roteadores e Roteamento

CCNA 2 Conceitos Básicos de Roteadores e Roteamento CCNA 2 Conceitos Básicos de Roteadores e Roteamento Capítulo 10 - TCP/IP Intermediário 1 Objetivos do Capítulo Descrever o TCP e sua função; Descrever a sincronização e o controle de fluxo do TCP; Descrever

Leia mais

TCP / IP. Marcos Monteiro, MBA, ITIL V3, Perito computacional Forense. http://www.marcosmonteiro.com.br [email protected].

TCP / IP. Marcos Monteiro, MBA, ITIL V3, Perito computacional Forense. http://www.marcosmonteiro.com.br contato@marcosmonteiro.com. TCP / IP Marcos Monteiro, MBA, ITIL V3, Perito computacional Forense http://www.marcosmonteiro.com.br [email protected] A Internet nasceu da internet 2 História História da comunicação da Internet

Leia mais

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

ELEMENTOS DE PROTOCOLOS DE TRANSPORTE. Fabricio Sousa

ELEMENTOS DE PROTOCOLOS DE TRANSPORTE. Fabricio Sousa ELEMENTOS DE PROTOCOLOS DE TRANSPORTE Fabricio Sousa Elementos de protocolos de transporte 2 Serviço de transporte implementado por um protocolo de transporte usado entre duas entidades de transporte Em

Leia mais

Redes de Computadores

Redes de Computadores Redes de Computadores Capítulo 1 Gustavo Reis [email protected] - O que é a Internet? - Milhões de elementos de computação interligados: hospedeiros = sistemas finais - Executando aplicações

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

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos MÓDULO 7 Modelo OSI A maioria das redes são organizadas como pilhas ou níveis de camadas, umas sobre as outras, sendo feito com o intuito de reduzir a complexidade do projeto da rede. O objetivo de cada

Leia mais

3. Explique o motivo pelo qual os protocolos UDP e TCP acrescentam a informação das portas (TSAP) de origem e de destino em seu cabeçalho.

3. Explique o motivo pelo qual os protocolos UDP e TCP acrescentam a informação das portas (TSAP) de origem e de destino em seu cabeçalho. Entregue três questões de cada prova. Prova de 2011-02 1. Descreva duas maneiras de estabelecer uma conexão entre processos na camada de transporte sem o conhecimento da porta (TSAP) ao qual o servidor

Leia mais

Redes de Computadores

Redes de Computadores Protocolos da camada de transporte da Internet edes de Computadores Março, 2012 Parte III: Camada de Transporte Professor: einaldo Gomes [email protected] TCP: Confiável garante ordem de entrega

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

Redes de Computadores I Internet - Conceitos

Redes de Computadores I Internet - Conceitos Redes de Computadores I Internet - Conceitos Prof. Luís Rodrigo [email protected] http://lrodrigo.lncc.br 2012/1 v1-2012.03.29 O que é a Internet Milhões de elementos de computação interligados: Hosts,

Leia mais

Programação TCP/IP. Protocolos TCP e UDP

Programação TCP/IP. Protocolos TCP e UDP Programação TCP/IP Protocolos TCP e UDP Tecnologia em Redes de Computadores Unicesp Campus I Prof. Roberto Leal Visão Geral da Camada de Transporte 2 1 Protocolo TCP Transmission Control Protocol Protocolo

Leia mais

Curso: Tec. Em Sistemas Para Internet 1 semestre Redes de Computadores Memória de Aula 07. Prof. Moises P. Renjiffo

Curso: Tec. Em Sistemas Para Internet 1 semestre Redes de Computadores Memória de Aula 07. Prof. Moises P. Renjiffo Curso: Tec. Em Sistemas Para Internet 1 semestre Redes de Computadores Memória de Aula 07 DETALHAMENTO DA CAMADA DE REDE: 1- Endereçamento Físico. MAC Da camada de Enlace. 2- Endereçamento Logico. IP Endereço

Leia mais

Alan Menk Santos [email protected] www.sistemasul.com.br/menk. Redes de Computadores e Telecomunicações. Camada de Transporte 03/06/2013

Alan Menk Santos alanmenk@hotmail.com www.sistemasul.com.br/menk. Redes de Computadores e Telecomunicações. Camada de Transporte 03/06/2013 Alan Menk Santos [email protected] www.sistemasul.com.br/menk Redes de Computadores e Telecomunicações. Modelo de Referência OSI 1 Segundo Tanenbaum, a camada de transporte não é simplesmente outra

Leia mais

Camada de Transporte

Camada de Transporte Camada de Transporte Conceitos Básicos Redes de Computadores A. S. Tanenbaum Mário Meireles Teixeira. UFMA-DEINF Protocolos Protocolo: Conjunto de regras e formatos usados para comunicação entre entidades,

Leia mais

Rede de Computadores

Rede de Computadores Escola de Ciências e Tecnologia UFRN Rede de Computadores Prof. Aquiles Burlamaqui Nélio Cacho Luiz Eduardo Eduardo Aranha ECT1103 INFORMÁTICA FUNDAMENTAL Manter o telefone celular sempre desligado/silencioso

Leia mais

Aula 6 Modelo de Divisão em Camadas TCP/IP

Aula 6 Modelo de Divisão em Camadas TCP/IP Aula 6 Modelo de Divisão em Camadas TCP/IP Camada Conceitual APLICATIVO TRANSPORTE INTER-REDE INTERFACE DE REDE FÍSICA Unidade de Dados do Protocolo - PDU Mensagem Segmento Datagrama /Pacote Quadro 01010101010100000011110

Leia mais

Cap 03 - Camada de Aplicação Internet (Kurose)

Cap 03 - Camada de Aplicação Internet (Kurose) Cap 03 - Camada de Aplicação Internet (Kurose) 1. Qual a diferença entre um Programa de computador e um Processo dentro do computador? R. Processo é um programa que está sendo executado em uma máquina/host,

Leia mais

Tópicos em Sistemas Distribuídos. Modelos de Comunicação

Tópicos em Sistemas Distribuídos. Modelos de Comunicação Tópicos em Sistemas Distribuídos Modelos de Comunicação Comunicação em SD Comunicação entre processos Sockets UDP/TCP Comunicação em grupo Broadcast Multicast Comunicação entre processos Conceitos básicos

Leia mais

Protocolo Ethernet e Dispositivos de Interconexão de LANs

Protocolo Ethernet e Dispositivos de Interconexão de LANs Protocolo Ethernet e Dispositivos de Interconexão de LANs Prof. Rafael Guimarães Redes de Alta Velocidade Tópico 4 - Aula 1 Tópico 4 - Aula 1 Rafael Guimarães 1 / 31 Sumário Sumário 1 Motivação 2 Objetivos

Leia mais

Informática I. Aula 22. http://www.ic.uff.br/~bianca/informatica1/ Aula 22-03/07/06 1

Informática I. Aula 22. http://www.ic.uff.br/~bianca/informatica1/ Aula 22-03/07/06 1 Informática I Aula 22 http://www.ic.uff.br/~bianca/informatica1/ Aula 22-03/07/06 1 Critério de Correção do Trabalho 1 Organização: 2,0 O trabalho está bem organizado e tem uma coerência lógica. Termos

Leia mais

1. Capturando pacotes a partir da execução do traceroute

1. Capturando pacotes a partir da execução do traceroute Neste laboratório, iremos investigar o protocolo IP, focando o datagrama IP. Vamos fazê-lo através da analise de um trace de datagramas IP enviados e recebidos por uma execução do programa traceroute (o

Leia mais

Controle de Erro em Redes de Computadores

Controle de Erro em Redes de Computadores Controle de Erro em Redes de Computadores Prof. S. Motoyama Aula 24 Motoyama: Controle de Erro 1 Enlace de Dados O controle de erro em redes de computadores é feito na camada enlace de dados (ou na camada

Leia mais

Endereços de transporte TPDU. Nível de Rede Endereço de rede. Figura 1. Entidade de transporte

Endereços de transporte TPDU. Nível de Rede Endereço de rede. Figura 1. Entidade de transporte 24 A CAMADA DE TRANSPORTE O nível de transporte é o coração da pilha de protocolos Sua tarefa é prover transporte confiável e eficiente de dados de uma máquina origem para uma máquina destino, independente

Leia mais

Fornecer serviços independentes da tecnologia da subrede; Esconder do nível de transporte o número, tipo e a topologia das subredes existentes;

Fornecer serviços independentes da tecnologia da subrede; Esconder do nível de transporte o número, tipo e a topologia das subredes existentes; 2.3 A CAMADA DE REDE! Fornece serviços para o nível de transporte, sendo, freqüentemente, a interface entre a rede do cliente e a empresa de transporte de dados (p.ex. Embratel).! Sua principal função

Leia mais

Introdução. Algumas terminologias. Camada de Enlace de Dados. Prof. Leandro Pykosz [email protected]

Introdução. Algumas terminologias. Camada de Enlace de Dados. Prof. Leandro Pykosz Leandro@sulbbs.com.br Camada de Enlace de Dados Prof. Leandro Pykosz [email protected] Introdução A função desta camada parece trivial, pois a máquina A coloca os bits no meio e a máquina B tem que retirar de lá, porem

Leia mais

Sistemas Distribuídos Comunicação entre Processos em Sistemas Distribuídos: Middleware de comunicação Aula II Prof. Rosemary Silveira F. Melo Comunicação em sistemas distribuídos é um ponto fundamental

Leia mais

Protocolo TCP/IP. Protocolo TCP/IP. Protocolo TCP/IP. Protocolo TCP/IP. Conexão de Redes. Protocolo TCP/IP. Arquitetura Internet.

Protocolo TCP/IP. Protocolo TCP/IP. Protocolo TCP/IP. Protocolo TCP/IP. Conexão de Redes. Protocolo TCP/IP. Arquitetura Internet. Origem: Surgiu na década de 60 através da DARPA (para fins militares) - ARPANET. Em 1977 - Unix é projetado para ser o protocolo de comunicação da ARPANET. Em 1980 a ARPANET foi dividida em ARPANET e MILINET.

Leia mais

Prof. Marcelo Machado Cunha Parte 3 www.marcelomachado.com

Prof. Marcelo Machado Cunha Parte 3 www.marcelomachado.com Prof. Marcelo Machado Cunha Parte 3 www.marcelomachado.com Protocolo é a linguagem usada pelos dispositivos de uma rede de modo que eles consigam se comunicar Objetivo Transmitir dados em uma rede A transmissão

Leia mais