Tcp transmission control protocol
This presentation is the property of its rightful owner.
Sponsored Links
1 / 33

TCP (Transmission Control Protocol) PowerPoint PPT Presentation


  • 45 Views
  • Uploaded on
  • Presentation posted in: General

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

Download Presentation

TCP (Transmission Control Protocol)

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Tcp transmission control protocol

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


Tcp janela deslizante

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


Tcp janela deslizante1

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


Tcp janela deslizante2

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


Tcp janela deslizante3

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


Tcp janela deslizante4

TCP - Janela Deslizante

Remetente

Receptor

Envia PCT 0

Recebe PCT 0

Envia ACK 0

Envia PCT 1

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


Tcp janela deslizante5

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


Tcp janela vari vel

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


Pacote tcp

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


Pacote tcp1

Pacote TCP

31

0

16

Porta Origem

Porta Destino

Número de sequência

Número ACK

Tamanhocabeçalho

Não

usado

URG

AC

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


Pacote tcp2

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


Pacote tcp3

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


Pacote tcp4

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


Pacote tcp5

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


Op es tcp

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


Op es tcp1

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


Op es tcp2

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

Redes de Computadores I – Prof. Mateus Raeder


Op es tcp3

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


Op es tcp4

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


Op es tcp5

Opções TCP

  • Retransmissão Seletiva

Redes de Computadores I – Prof. Mateus Raeder


Tcp abertura de conex o

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


Tcp controle da conex o

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


Tcp estabelecimento da conex o

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


Tcp n meros de sequ ncia iniciais

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


Tcp n meros de sequ ncia iniciais1

TCP – Números de sequência iniciais

Redes de Computadores I – Prof. Mateus Raeder


Tcp fechando uma conex o

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


Tcp fechando uma conex o1

TCP – Fechando uma conexão

Host A

Host B

FIN

ACK

Dados

ACK dos dados

FIN

ACK

Redes de Computadores I – Prof. Mateus Raeder


Tcp fechando uma conex o2

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


Tcp rein cio da conex o

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


Tcp pol tica de transmiss o

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


Tcp pol tica de transmiss o1

TCP – Política de transmissão

Redes de Computadores I – Prof. Mateus Raeder


Tcp s ndrome da janela boba

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


Tcp s ndrome da janela boba1

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


  • Login