tcp transmission control protocol
Download
Skip this Video
Download Presentation
TCP (Transmission Control Protocol)

Loading in 2 Seconds...

play fullscreen
1 / 33

TCP (Transmission Control Protocol) - PowerPoint PPT Presentation


  • 80 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' TCP (Transmission Control Protocol)' - grant-miles


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

ad