O documento discute a camada de transporte TCP/IP, cobrindo o controle de fluxo, estabelecimento de conexão, janelamento e números de sequência no TCP e formato de cabeçalhos nos protocolos TCP e UDP.
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.
2.
Introdução à Camadade 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).
3.
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.
4.
Métodos de conexãoTCP
• 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.
5.
Métodos de ConexãoTCP
• 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.
6.
Métodosde conexão TCPThree-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.
7.
Handshake Triplo
• Paraque 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.
8.
Confirmação TCP
• Aconfirmaçã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.
Sliding window- JanelamóvelTCP
• 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.
SlidingWindowe Confirmação
• OTCP 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).
13.
SlidingWindow– JanelaMóvel
• Porexemplo, 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.
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.
17.
Formato do SegmentoTCP
• 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.
18.
Formato do SegmentoTCP
• 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.
19.
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.
20.
Formato do DatagramaUDP
• 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.
21.
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.
22.
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.