A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Redes de Computadores I – Prof. Mateus Raeder TCP (Transmission Control Protocol) Janelas deslizantes (Go-back-N) –Para conseguir confiabilidade, emissor.

Apresentações semelhantes


Apresentação em tema: "Redes de Computadores I – Prof. Mateus Raeder TCP (Transmission Control Protocol) Janelas deslizantes (Go-back-N) –Para conseguir confiabilidade, emissor."— Transcrição da apresentação:

1 Redes de Computadores I – Prof. Mateus Raeder TCP (Transmission Control Protocol) Janelas deslizantes (Go-back-N) –Para conseguir confiabilidade, emissor aguarda o ACK de cada pacote enviado –Só então envia o próximo pacote –Rede permanece ociosa durante este tempo – Janelas deslizantes: tornam a transmissão de pacotes mais eficiente (vários pacotes antes do ACK) –Mais complexa que a confirmação positiva vista anteriormente

2 Redes de Computadores I – Prof. Mateus Raeder TCP - Janela Deslizante O protocolo cria uma janela de tamanho fixo –Pode transmitir todos os pacotes que se encontram nesta janela antes de receber uma confirmação –Um pacote é dito não-confirmado se foi enviado e nenhum ACK retornou –Máximo de confirmações: tamanho da janela N Janela inicial (tamanho 3)

3 Redes de Computadores I – Prof. Mateus Raeder TCP - Janela Deslizante Quando o remetente recebe um ACK para o primeiro pacote da janela –Desliza a janela –Envia o próximo pacote –A janela continua deslizando de acordo com a chegada das confirmações N Janela desliza

4 Redes de Computadores I – Prof. Mateus Raeder TCP - Janela Deslizante N Janela desliza N Janela desliza ACK 3 recebido: ACK 1 recebido: Não enviados Enviados Confirmados Indica que até o 3 (inclusive) Já chegaram todos corretamente

5 Redes de Computadores I – Prof. Mateus Raeder TCP - Janela Deslizante N Janela desliza N Janela desliza ACK 7 recebido: ACK 4 recebido: Não enviados Enviados Confirmados

6 Redes de Computadores I – Prof. Mateus Raeder TCP - Janela Deslizante RemetenteReceptor Envia PCT 0 Envia PCT 1 Envia PCT 2 (espera) Recebe PCT 0 Envia ACK 0 Recebe PCT 2 (descarta) Recebe ACK 0 Envia PCT 3 Recebe PCT 3 (descarta) Timeout PCT 1 Envia PCT 1 Recebe PCT 1 Envia ACK 1 Recebe PCT 2 Envia ACK 2 Recebe PCT 3 Envia ACK 3 Envia PCT 2 Envia PCT

7 Redes de Computadores I – Prof. Mateus Raeder TCP - Janela Deslizante Com um mecanismo bem ajustado de janela –Rede fica com mais pacotes trafegando –Tráfego mais eficiente na rede do que uma técnica de confirmação simples, baseada somente em ACKs Mecanismo de janela continua oferecendo transferência confiável Garante a ordem da entrega das mensagens

8 Redes de Computadores I – Prof. Mateus Raeder TCP – Janela variável TCP permite que o tamanho da janela varie com o tempo Cada confirmação de recebimento contém uma informação sobre quantos pacotes o receptor está preparado para aceitar Assim, o remetente atualiza o tamanho da sua janela de acordo com a capacidade informada pelo receptor –Aumento da capacidade do receptor, aumento da janela –Diminuição da capacidade do receptor, diminuição da janela Fornece melhor controle de fluxo e transferência confiável Controle de fluxo é essencial para redes e hosts heterogêneos –Cada um com sua velocidade e capacidade –Melhor utilização da rede

9 Redes de Computadores I – Prof. Mateus Raeder Pacote TCP A unidade de transferência entre dois hosts com TCP é chamada de segmento ou pacote Pacotes são trocados para estabelecer conexões –Piggybacking (carona): permite envio de controle junto dos dados Em uma mensagem, pode ser enviado um ACK anterior Ameniza o overhead Cada pacote TCP é dividido em duas partes –Cabeçalho –Dados

10 Redes de Computadores I – Prof. Mateus Raeder Pacote TCP Porta OrigemPorta Destino Checksum Ponteiro de urgência Opções (0 ou mais palavras de 32 bits) Dados Tamanho da janela Número de sequência Número ACK Tamanho cabeçalho Não usado FINFIN SYNSYN RSTRST PSHPSH ACKACK URGURG

11 Redes de Computadores I – Prof. Mateus Raeder Pacote TCP Portas destino e origem Número de sequência: do pacote do remetente Número ACK: número de confirmação que identifica o próximo número de sequência esperado pelo outro host (receptor) Tamanho do cabeçalho: especifica o tamanho do cabeçalho do pacote TCP. Tamanho mínimo é de 5 palavras de 32 bits Não usado: reservados para uso futuro

12 Redes de Computadores I – Prof. Mateus Raeder Pacote TCP Bits de controle (identificam a finalidade do segmento) –URG: o campo Ponteiro Urgente é válido –ACK: o campo Número ACK é válido –PSH: força a entrega da mensagem (push – empurrar) Receptor não armazena a mensagem até encher o buffer –RST: reiniciar a conexão Caso tenha ficado confusa devido falhas no host, por exemplo Rejeitar uma conexão ou um segmento inválido –SYN: sincroniza números de sequência (estabelece conexão) –FIN: remetente não tem dados

13 Redes de Computadores I – Prof. Mateus Raeder Pacote TCP Tamanho da janela: especifica o tamanho da janela (em bytes) que será usada na conexão –Técnica de piggybacking –Bits todos em 0: Interrompe a transmissão por um tempo Para receber novamente, basta enviar o Tamanho da Janela diferente de 0

14 Redes de Computadores I – Prof. Mateus Raeder Pacote TCP Checksum: similar ao cálculo do UDP, com o pseudo cabeçalho Ponteiro urgente: identifica que o receptor deve receber os dados o mais rápido possível –Não bufferiza –Não depende da sua posição no fluxo de dados –Por exemplo, abortar conexão antes de chegar ao fim Informação deve ser recebida antes do processamento dos dados Seguirá com bit URG ativado

15 Redes de Computadores I – Prof. Mateus Raeder Opções TCP Options: pode conter 0 ou mais opções –Cada opção começa com um campo de 1 octeto que indica o tipo da opção –Em seguida, 1 octeto que indica o tamanho da opção Opção de Tamanho Máximo de Segmento (Maximum Segment Size – MSS) –Combina entre as extremidades o tamanho máximo do segmento a ser transferido –Permite que receptor diga o tamanho máximo, permitindo comunicação entre máquinas e redes heterogêneas de maneira mais eficiente

16 Redes de Computadores I – Prof. Mateus Raeder Opções TCP Opção de Tamanho Máximo de Segmento (Maximum Segment Size – MSS) cont... –Se não estão na mesma rede física, podem tentar descobrir a MTU (capacidade da rede) mínima ao longo do caminho –Escolha de MSS é crítica Muito pequeno: pode causar overhead e sobrecarga na rede Muito grandes: podem obrigar roteadores a fragmentar o pacote diversas vezes, diminuindo o desempenho da rede –Qual o tamanho de segmento ideal? O maior possível sem exigir fragmentação alguma!! Prática é muito difícil

17 Redes de Computadores I – Prof. Mateus Raeder Opções TCP Opção de Janela móvel –A janela do cabeçalho IP tem 16 bits Máximo do tamanho é 64Kbytes –Para acomodar janelas maiores, a opção de Escala de Janela apresenta campos que permitem informar o tamanho real da nova janela Opção de estampa de tempo –Ajuda o TCP a calcular o atraso na rede –Valor de tempo e um de estampa de tempo de resposta de eco –Remetente: coloca a hora no estampa ao enviar um pacote –Receptor: copia o tempo para o campo resposta de eco e manda confirmação Remetente sabe o tempo total gasto desde o envio do segmento

18 Redes de Computadores I – Prof. Mateus Raeder Opções TCP Retransmissão Seletiva –Substituir o Go-back-N –No Go-back-N, quando o receptor recebe um defeituoso seguido de vários perfeitos, todos os perfeitos deverão ser retransmitidos Na Retransmissão Seletiva, o receptor reconhece individualmente todos os pacotes recebidos corretamente –Armazena em um buffer conforme necessário para entregar em ordem à camada superior

19 Redes de Computadores I – Prof. Mateus Raeder Opções TCP Retransmissão Seletiva –O remetente deverá retransmitir os pacotes que não receberam confirmação (ACK) Temporizador para cada pacote sem ACK –Janela existe no remetente Com os números de sequência consecutivos Limita quantidade de pacotes enviados sem reconhecimento

20 Redes de Computadores I – Prof. Mateus Raeder Opções TCP Retransmissão Seletiva

21 Redes de Computadores I – Prof. Mateus Raeder TCP – Abertura de conexão As duas extremidades da conexão (diferentemente do UDP) devem concordar em participar da transmissão A aplicação em uma extremidade realizará a abertura passiva: –Indica que aceitará uma conexão que irá chegar em uma determinada porta Na outra extremidade, a aplicação realiza a abertura ativa –Indicará que deseja estabelecer uma conexão com determinada porta em determinado host

22 Redes de Computadores I – Prof. Mateus Raeder TCP – Controle da conexão Três fases –Estabelecimento da conexão –Transmissão de dados –Encerramento da conexão Flags –SYN: indica solicitação de conexão –FIN: indica finalização da conexão –RST: indica o reset da conexão –ACK: indica um reconhecimento de recebimento de pacote

23 Redes de Computadores I – Prof. Mateus Raeder TCP – Estabelecimento da conexão Origem A Destino B SYN SYN + ACK ACK Handshaking de 3 vias –Primeiro handshake: bit SYN marcado –Segundo handshake: SYN e ACK marcados –Terceiro handshake: somente uma confirmação

24 Redes de Computadores I – Prof. Mateus Raeder TCP – Números de sequência iniciais Handshaking realiza 2 funções importantes: –Garante dois lados prontos para transmitir –Permite que os lados saibam os números de sequência inicial Máquinas escolhem números de sequência iniciais aleatoriamente As extremidades devem conhecer os números de sequência umas das outras –A envia SYN junto com seu número de sequência (x) para B –B recebe o SYN, guarda o número de sequência do fluxo de A, e responde com seu número de sequência (y), dizendo que espera o número de sequência x+1 agora de A - A guarda o número de sequência de B e confirma dizendo que espera por y+1

25 Redes de Computadores I – Prof. Mateus Raeder TCP – Números de sequência iniciais

26 Redes de Computadores I – Prof. Mateus Raeder TCP – Fechando uma conexão O término da conexão deve ser realizado de maneira controlada –Conexões são full duplex, e vão nos dois sentidos independentemente Quando um aplicativo TCP não possui mais dados para enviar, fecha a conexão em uma direção –Somente a sua metade Quando um lado recebe um pedido de encerramento, deve avisar a aplicação –Entretanto, a aplicação poderá continuar enviando dados pela sua metade de conexão

27 Redes de Computadores I – Prof. Mateus Raeder TCP – Fechando uma conexão FIN ACK FIN Dados ACK dos dados Host A Host B

28 Redes de Computadores I – Prof. Mateus Raeder TCP – Fechando uma conexão A conexão estará encerrada quando os dois sentidos da conexão estiverem desativados São necessários, de modo geral, 4 segmentos TCP para encerrar uma conexão –FIN e ACK em um sentido e FIN e ACK no outro sentido Pode ocorrer com apenas 3 segmentos? –Sim!! O primeiro ACK e o segundo FIN podem ser enviados pelo mesmo segmento (de carona) –Somente 3 segmentos

29 Redes de Computadores I – Prof. Mateus Raeder TCP – Reinício da conexão Algumas vezes condições anormais forçam a interrupção da conexão –Um lado inicia o término com o bit RST setado –O outro lado responde imediatamente com outro segmento de reset, abortando a conexão –O TCP informa ao programa aplicativo que houve um aborto

30 Redes de Computadores I – Prof. Mateus Raeder TCP – Política de transmissão Vamos supor que o receptor tem um buffer de 5000 bytes Se o remetente enviar um segmento de 3000 bytes, o receptor confirmará o recebimento –Porém, até que alguma aplicação retire do buffer, o buffer possui 2000 bytes restantes –Esta informação (2000 bytes) vai para a janela do remetente O remetente envia mais 2000 bytes, e são confirmados –Receptor anunciará janela 0, pois não cabem mais dados (buffer cheio) –Assim, o remetente deve parar de enviar mensagens até uma janela maior ser anunciada

31 Redes de Computadores I – Prof. Mateus Raeder TCP – Política de transmissão

32 Redes de Computadores I – Prof. Mateus Raeder TCP – Síndrome da janela boba Um problema que pode diminuir muito o desempenho do TCP Dados repassados para o remetente são muito grandes, mas uma aplicação consome os dados um byte por vez Buffer do lado receptor fica cheio, e o remetente sabe disso (janela é 0) A aplicação então lê 1 caractere do fluxo TCP O que acontece? –Receptor fica bem faceiro e envia a janela de tamanho 1

33 Redes de Computadores I – Prof. Mateus Raeder TCP – Síndrome da janela boba Qual a solução? –Evitar que o receptor envie uma atualização de janela para 1 byte –Ele é forçado a aguardar até que haja espaço considerável para anunciar sua janela Mas, qual é o espaço considerável? –Difícil de prever –É definido que o receptor não pode enviar uma atualização de janela até que ele possa lidar com o tamanho máximo do segmento (MSS) anunciado no começo da conexão, ou até metade da capacidade do seu buffer (o que for menor)


Carregar ppt "Redes de Computadores I – Prof. Mateus Raeder TCP (Transmission Control Protocol) Janelas deslizantes (Go-back-N) –Para conseguir confiabilidade, emissor."

Apresentações semelhantes


Anúncios Google