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

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

TCP (Transmission Control Protocol)

Apresentações semelhantes


Apresentação em tema: "TCP (Transmission Control Protocol)"— Transcrição da apresentação:

1 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 Redes de Computadores I – Prof. Mateus Raeder

2 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 1 2 3 4 5 6 7 8 9 ... N Janela inicial (tamanho 3) Redes de Computadores I – Prof. Mateus Raeder

3 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 1 2 3 4 5 6 7 8 9 ... N Janela desliza Redes de Computadores I – Prof. Mateus Raeder

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

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

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

7 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 Redes de Computadores I – Prof. Mateus Raeder

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 Redes de Computadores I – Prof. Mateus Raeder

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 Redes de Computadores I – Prof. Mateus Raeder

10 Pacote TCP Porta Origem Porta Destino Número de sequência Número ACK
16 31 Porta Origem Porta Destino Número de sequência Número ACK Tamanho cabeçalho Não usado U R G A C K P S H R S T S Y N F I N Tamanho da janela Checksum Ponteiro de urgência Opções (0 ou mais palavras de 32 bits) Dados Redes de Computadores I – Prof. Mateus Raeder

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 Redes de Computadores I – Prof. Mateus Raeder

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 Redes de Computadores I – Prof. Mateus Raeder

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 Redes de Computadores I – Prof. Mateus Raeder

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 Redes de Computadores I – Prof. Mateus Raeder

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 Redes de Computadores I – Prof. Mateus Raeder

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 Redes de Computadores I – Prof. Mateus Raeder

17 Opções TCP Opção de Janela móvel Opção de estampa de tempo
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 Redes de Computadores I – Prof. Mateus Raeder

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 Redes de Computadores I – Prof. Mateus Raeder

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 Redes de Computadores I – Prof. Mateus Raeder

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

21 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 Redes de Computadores I – Prof. Mateus Raeder

22 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 Redes de Computadores I – Prof. Mateus Raeder

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

24 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 Redes de Computadores I – Prof. Mateus Raeder

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

26 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 Redes de Computadores I – Prof. Mateus Raeder

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

28 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 Redes de Computadores I – Prof. Mateus Raeder

29 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 Redes de Computadores I – Prof. Mateus Raeder

30 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 Redes de Computadores I – Prof. Mateus Raeder

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

32 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 Redes de Computadores I – Prof. Mateus Raeder

33 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) Redes de Computadores I – Prof. Mateus Raeder


Carregar ppt "TCP (Transmission Control Protocol)"

Apresentações semelhantes


Anúncios Google