Camada de Transporte - TCP
• Este capítulo aborda os seguintes assuntos:
• As funções da camada de transporte TCP/IP.
• Controle de fluxo e os processos de estabelecimento de
conexão.
• Processo de janelamento (Windowing) e de Confirmação
(ACK).
• Os protocolos da camada de transporte.
• O formato dos cabeçalhos: TCP e UDP.
• Os números de portas: TCP e UDP.
Introdução à Camada de Transporte
• As duas funções principais da camada de transporte TCP/IP
são:
• Transportar e regular o fluxo de informações da origem até
o destino (fim-a-fim), de forma confiável e precisa.
O controle do fluxo de informações e a confiabilidade são
proporcionados:
• Pelas janelas deslizantes ou sliding windows.
• Pelos números de seqüência ou sequence numbers
(número do octeto enviado pelo host de origem).
• Pelos números de confirmações ou acknowledgment
numbers (próximo octeto TCP esperado pelo host de
destino).
Controle de Fluxo• Evita que um host transmissor sobrecarregue os buffers de um
host receptor.
• Os dois hosts estabelecem uma taxa de transferência de
dados satisfatória para ambos, principalmente para o
receptor.
Métodos de conexão TCP
• Os serviços orientados para conexão envolvem três fases:
• Fase de estabelecimento da conexão - um único caminho
entre a origem e o destino é determinado.
• Os recursos são normalmente reservados nesse
momento para garantir um nível consistente de serviço.
• Fase de transferência de dados - os dados são transmitidos
em seqüência pelo caminho estabelecido, chegando ao
destino na ordem em que foram enviados.
• Fase de encerramento da conexão - consiste em encerrar a
conexão entre a origem e o destino quando ela não é mais
necessária.
Métodos de Conexão TCP• Os hosts TCP estabelecem uma sessão orientada para
conexão com os outros hosts usando um handshake triplo.
• Uma seqüência de handshake triplo/conexão aberta
sincroniza a conexão nas duas extremidades antes dos dados
serem transferidos.
• A troca de números de sequência de introdução, durante a
seqüência de conexão, é importante.
• Ela garante que dados perdidos, devido a problemas de
transmissão, possam ser recuperados ou retransmitidos.
Métodos de conexão TCP Three-way-handshake
• Inicialmente, um host inicia uma conexão pelo envio de
um pacote indicando seu número de seqüência inicial x
com um bit no cabeçalho (CODE) definido para indicar um
pedido de conexão.
• Em seguida, o outro host recebe o pacote, grava o
número de seqüência x, responde com uma confirmação
x + 1 e inclui seu próprio número de seqüência inicial y.
• O número de confirmação x + 1 significa que o host
recebeu todos os octetos até x, inclusive, e que está
esperando x + 1 em seguida.
Handshake Triplo• Para que uma conexão seja estabelecida, os dois hosts devem
sincronizar seus Initial Sequence Numbers (ISNs).
• Esta sincronização requer que cada lado envie seu próprio ISN e receba
uma confirmação (ACK) da troca enviada pelo outro lado.
Confirmação TCP• A confirmação positiva (Positive Ack) com retransmissão é uma
técnica que garante a entrega confiável de dados.
• O remetente mantém um registro de cada pacote enviado e
espera uma confirmação.
• Ele aciona um timer quando envia um segmento e irá
retransmitir um segmento, se o timer expirar antes que
chegue uma confirmação.
Retransmissão de Segmentos
Sliding window - Janela móvel TCP
• O tamanho da janela determina a quantidade de dados que
pode ser transmitida de uma vez antes de ser recebida uma
confirmação do destino.
• Quanto maior o tamanho da janela (bytes), maior a
quantidade de dados que o host de destino pode receber e
processar estes dados.
• Depois que um host transmite o número de bytes da janela
dimensionada, ele tem de receber uma confirmação de que
os dados foram recebidos antes de poder enviar mais dados.
• Por exemplo, com um tamanho de janela 1, cada segmento
individual (1) tem de ser confirmado antes que o próximo
segmento possa ser enviado.
Janela Móvel = 1
Sliding Window e Confirmação
• O TCP usa confirmações de espera, o que significa que o
número da confirmação se refere ao octeto que é esperado
em seguida.
• A parte "móvel", de janela móvel, refere-se ao fato de que
o tamanho da janela é negociado dinamicamente durante a
sessão TCP.
• Isso resulta em uso eficiente da largura de banda pelos
hosts.
• A confirmação positiva e retransmissão, ou PAR (Positive
Acknowledgment and Retransmission).
Sliding Window – Janela Móvel
• Por exemplo, com um tamanho de janela três, o dispositivo
de origem pode enviar três octetos ao destino.
• Ele deve então aguardar uma confirmação. Se o destino
receber os três octetos, ele enviará uma confirmação ao
dispositivo de origem, que poderá então transmitir mais três
octetos.
• Se, por algum motivo, o destino não receber os três octetos,
por exemplo, devido à sobrecarga de buffers, ele não enviará
uma confirmação.
• Por não receber a confirmação, a origem saberá que os
octetos deverão ser retransmitidos e que a taxa de
transmissão deverá ser diminuída.
Janela móvel = 3
Sliding Windows – Janela móvel
Transmission Control Protocol - TCP
• Funcionalidades do TCP:
• Protocolo da camada 4 do modelo OSI.
• Fornece um circuito virtual entre aplicações do usuário
final.
• Orientado a conexão.
• Confiável.
• Divide as mensagens enviadas em segmentos.
• Reenvia tudo o que não foi recebido.
• Reagrupa as mensagens a partir de segmentos recebidos.
• Os protocolos que usam o TCP incluem:
• FTP, HTTP, SMTP e Telnet.
Formato do Segmento TCP
• Definições dos campos do segmento TCP:
• Porta de origem: número da porta do host de origem.
• Porta de destino: número da porta do host de destino.
• Número de seqüência: número usado para garantir a
seqüência correta dos dados que estão chegando.
• Número de confirmação: próximo octeto TCP esperado.
• HLEN: tamanho do cabeçalho (palavras de 32 bits).
• Reservado: definido como zero.
• Bits de código: funções de controle, como: configuração e
término de uma sessão.
Formato do Segmento TCP
• Janela: número de octetos que o remetente pode aceitar.
• Checksum: cálculo de verificação da integridade do
segmento.
• Urgent Pointer: indica o final dos dados urgentes.
• Opção: uma opção atualmente definida: tamanho máximo do
segmento TCP.
• Dados: dados de protocolo de camada superior.
User Datagram Protocol - UDP
• Funcionalidades do UDP:
• Não é orientado a conexão.
• Troca de datagramas.
• Não possui confirmação ou entrega garantida.
• Não usa janelamento.
• Protocolos da camada superior que fornecem suporte.
• Os protocolos que utilizam o UDP incluem:
• TFTP, DHCP, SNMP, DNS.
Formato do Datagrama UDP
• Porta de origem: número da porta chamadora.
• Porta de destino: número da porta chamada.
• Comprimento: tamanho do cabeçalho + dados, em bytes.
• Checksum: cálculo de verificação da integridade do segmento.
• Dados: dados de protocolo de camada superior.
Números de Portas
• Tanto o TCP quanto o UDP usam números de portas para
passar as informações às camadas superiores.
• Eles são usados para manter o registro de diferentes
conversações que cruzam a rede ao mesmo tempo.
• Os números de portas são especificados como:
• Números abaixo de 255: utilizados para aplicações públicas.
• Números de 255 a 1023: atribuídos para aplicações
comerciais.
• Números acima de 1024: não são regulamentados.
• Os números de portas conhecidos estão definidos no
RFC1700.
Números de Portas
• Os hosts finais usam números de portas para selecionar a
aplicação correta.
• O host de origem atribui dinamicamente números de porta
gerados na própria origem. Esses números são sempre
superiores a 1024.
Top Related