Você está na página 1de 30

Redes de Computadores

→ Aula n° 15 

Prof. Petrônio Carlos Bezerra


petroniocg@ifpb.edu.br
1 Hoje veremos...

◼ Transporte orientado para conexão: TCP

◼ Confiável
◼ Orientado à conexão

◼ Controle de fluxo

◼ Cenários com Números de Sequência e de


Reconhecimento
◼ Restante dos campos de um segmento TCP

IFPB – Campus de Campina Grande Prof. Petrônio Carlos Bezerra


2 Camada de Transporte – TCP/IP

• TCP
– A conexão TCP:
– TCP é orientado para conexão – antes de enviar dados, tem
que se “apresentar”

• Como parte do estabelecimento da conexão TCP ➔ Inicialização


de muitas “variáveis de estado” em ambos os lados

• O protocolo roda nos sistemas finais ➔ elementos


intermediários não mantêm estado de conexão TCP
IFPB – Campus de Campina Grande Prof. Petrônio Carlos Bezerra
3 Camada de Transporte – TCP/IP

– Uma conexão TCP provê um serviço full-duplex. Por que?

– A conexão é sempre ponto a ponto


• Multicast não é possível com TCP

– Aplicativos que requerem que o protocolo forneça


entrega confiável de dados, utilizam TCP

IFPB – Campus de Campina Grande Prof. Petrônio Carlos Bezerra


4 Camada de Transporte – TCP/IP

– O processo que inicia a conexão é o processo cliente e o processo


que aguarda a conexão é o processo servidor

– O TCP direciona os dados para o buffer de envio da conexão


• Reservado durante a apresentação

– A quantidade máxima de dados, retirada do buffer, é limitada


pelo Tamanho Máximo do Segmento – MSS
• Valor comum para o MSS é de 1.480 bytes

IFPB – Campus de Campina Grande Prof. Petrônio Carlos Bezerra


5 Camada de Transporte – TCP/IP

– MSS é estabelecido pelo tamanho do MTU (Unidade Máxima de


Transmissão), que é o tamanho do maior quadro da camada de Enlace
• Valores comuns da MTU são: 1.500 bytes, 536 bytes e 512 bytes

– Cada lado da conexão tem seus próprios buffers de envio e de recepção

IFPB – Campus de Campina Grande Prof. Petrônio Carlos Bezerra


6 Camada de Transporte – TCP/IP

• Uma conexão TCP consiste em buffers, variáveis e um socket de conexão de um processo


em um host e outro conjunto de buffers, variáveis e um socket de conexão de um
processo em outro host.
• Nenhum buffer nem variáveis são alocados à conexão nos elementos da rede
(roteadores, comutadores, ...) existentes entre os hosts.
IFPB – Campus de Campina Grande Prof. Petrônio Carlos Bezerra
7 Camada de Transporte – TCP/IP

Como acontece com o


UDP, o cabeçalho TCP
inclui números de
porta de fonte e de
destino e um campo
de soma de
verificação

IFPB – Campus de Campina Grande Prof. Petrônio Carlos Bezerra


8 Camada de Transporte – TCP/IP

– O TCP é confiável, orientado à conexão e fornece


controle de fluxo

Confiável:
– Mecanismo chamado Confirmação Positiva com
Retransmissão

– O dado é enviado novamente, a menos que receba uma


informação confirmando que os dados chegaram Ok
IFPB – Campus de Campina Grande Prof. Petrônio Carlos Bezerra
9 Camada de Transporte – TCP/IP

– Cada segmento contém um valor de verificação da


internet (checksum) utilizado para verificação de dados
sem erros

– O receptor então manda de volta uma confirmação


positiva para o transmissor, caso chegue sem erros

– Se chegou com problemas?


O segmento é descartado
IFPB – Campus de Campina Grande Prof. Petrônio Carlos Bezerra
10 Camada de Transporte – TCP/IP

– Após um período de tempo apropriado, o transmissor do módulo


TCP reenvia qualquer segmento que não tenha recebido
confirmação positiva

– TCP vê os dados como uma cadeia de bytes. Não como pacotes


independentes

– Porém, cuida da manutenção da sequência de bytes enviados e


recebidos

IFPB – Campus de Campina Grande Prof. Petrônio Carlos Bezerra


11 Camada de Transporte – TCP/IP

– ISN: Initial Sequence Number: É o ponto inicial do sistema de


numeração de bytes

– O campo Número de Sequência, para um segmento, contém o


número sequencial do primeiro byte daquele segmento

– Cada byte de dados é numerado sequencialmente a partir do


ISN

IFPB – Campus de Campina Grande Prof. Petrônio Carlos Bezerra


12 Camada de Transporte – TCP/IP

– O Número de Sequência é aplicado sobre a cadeia de bytes

– Vejamos um exemplo: Um arquivo de 500.000 bytes com 1.000


bytes de capacidade de dados em cada segmento

IFPB – Campus de Campina Grande Prof. Petrônio Carlos Bezerra


13 Camada de Transporte – TCP/IP

– Vamos falar do Número de Reconhecimento ➔ TCP é


full-duplex

– Supondo uma transmissão de B para A, cada segmento


que chega de B tem um Número de Sequência

– O Número de Reconhecimento que A atribui a seu


segmento é o Número de Sequência do próximo byte que
ele estiver aguardando do host B

IFPB – Campus de Campina Grande Prof. Petrônio Carlos Bezerra


14 Camada de Transporte – TCP/IP

Exemplo:
• A recebeu de B, bytes numerados de 0 a 535
• A está prestes a enviar um segmento para B
• A espera pelo byte 536 e por todos os subsequentes da corrente de
dados
Assim, ele coloca o número 536 no campo de Número de
Reconhecimento do segmento que envia para B

– Os campos Número de Sequência e Número de


Reconhecimento mantêm a ordem sequencial dos bytes
IFPB – Campus de Campina Grande Prof. Petrônio Carlos Bezerra
15 Camada de Transporte – TCP/IP

•TCP – Vejamos
alguns cenários
interessantes:

IFPB – Campus de Campina Grande Prof. Petrônio Carlos Bezerra


16 Camada de Transporte – TCP/IP

IFPB – Campus de Campina Grande Prof. Petrônio Carlos Bezerra


17 Camada de Transporte – TCP/IP

Orientado à conexão:
– Estabelece uma conexão lógica fim a fim entre os hosts
comunicantes

– Informações de controle (apresentação) são trocadas


antes da troca de dados

– De que forma o TCP indica que é um segmento de


controle?
Setando um dos bits de flag (palavra 4 do cabeç. do segmento)
IFPB – Campus de Campina Grande Prof. Petrônio Carlos Bezerra
18 Camada de Transporte – TCP/IP

– O tipo de estabelecimento de conexão, usada pelo


TCP, é chamada conexão de três vias ➔ 3 segmentos
são trocados (3-way handshake)

IFPB – Campus de Campina Grande Prof. Petrônio Carlos Bezerra


19 Camada de Transporte – TCP/IP

• A inicia com SYN (Synchronize Sequence Numbers) setado e diz


qual número de sequência A irá utilizar como número inicial

• B responde com um segmento com ACK e SYN setados

• Confirma recebimento de A e informa com qual número de


sequência B irá iniciar

• Finalmente, A envia um segmento confirmando recebimento e


transfere os primeiros dados (carga útil)

IFPB – Campus de Campina Grande Prof. Petrônio Carlos Bezerra


20 Camada de Transporte – TCP/IP

Vejamos mais um
esquema com a
apresentação de 3 vias
(troca de segmentos)

IFPB – Campus de Campina Grande Prof. Petrônio Carlos Bezerra


21 Camada de Transporte – TCP/IP

Quando finalizar a
troca de dados, os
hosts conectados irão
trocar 3 segmentos
contendo o bit FIN (No
more data from sender)
setado

IFPB – Campus de Campina Grande Prof. Petrônio Carlos Bezerra


22 Camada de Transporte – TCP/IP

Fechando uma conexão:


– Passo 1: o cliente envia o segmento
TCP FIN ao servidor
– Passo 2: servidor recebe FIN,
responde com ACK. Fecha a conexão,
envia FIN
– Passo 3: cliente recebe FIN, responde
com ACK
– Entra em “espera temporizada” - vai
responder com ACK a FINs recebidos
– Passo 4: servidor, recebe ACK.
Conexão fechada

IFPB – Campus de Campina Grande Prof. Petrônio Carlos Bezerra


23 Camada de Transporte – TCP/IP

Controle de fluxo:
– O campo Janela de Recepção informa a quantidade de bytes que
o receptor pode receber

– O receptor controla o fluxo de bytes do transmissor alterando o


tamanho da Janela

– Um campo de Janela com valor zero, informa ao transmissor para


cessar a transmissão de dados, até que receba um valor superior
de Janela
IFPB – Campus de Campina Grande Prof. Petrônio Carlos Bezerra
24 Camada de Transporte – TCP/IP

IFPB – Campus de Campina Grande Prof. Petrônio Carlos Bezerra


25 Camada de Transporte – TCP/IP

• Mais um cenário relacionado à Números de Sequência e


Números de Reconhecimento:

– A recebeu de B um segmento contendo os bytes de 0 a 535 e


recebeu outro contendo os bytes de 900 a 1.000

– Por alguma razão o hospedeiro A ainda não recebeu os bytes de


536 a 899. Logo, A espera pelo 536 e os superiores

– Qual o número de reconhecimento que A envia a B no próximo


segmento?
IFPB – Campus de Campina Grande Prof. Petrônio Carlos Bezerra
26 Camada de Transporte – TCP/IP

– TCP somente reconhece bytes até o primeiro byte que


estiver faltando na cadeia. TCP provê reconhecimentos
cumulativos

– Vejam um applet relacionado ao que foi visto em:

https://media.pearsoncmg.com/aw/ecs_kurose_compnetwork_7/cw/content/interactive
animations/flow-control/index.html

IFPB – Campus de Campina Grande Prof. Petrônio Carlos Bezerra


27 Camada de Transporte – TCP/IP

– Campo Comprimento de Cabeçalho de 4 bits especifica o


comprimento do cabeçalho TCP em palavras de 32 bits
• O campo Opções normalmente está vazio

– Campo de Opções é opcional e de comprimento variável.


É usado quando um remetente e um destinatário
negociam o MSS

IFPB – Campus de Campina Grande Prof. Petrônio Carlos Bezerra


28 Camada de Transporte – TCP/IP

– ACK: indica se o valor


carregado no campo
Número de
Reconhecimento é
válido

– RST, SYN e FYN:


estabelecer e encerrar
uma conexão
IFPB – Campus de Campina Grande Prof. Petrônio Carlos Bezerra
Redes de Computadores
→ Aula n° 15 

Prof. Petrônio Carlos Bezerra


petroniocg@ifpb.edu.br

Você também pode gostar