Redes de computadores:
Camada de Transporte
Prof. Dr. Amine BERQIA
[email protected]
http://w3.ualg.pt/~bamine/
Sumário
 Onde estamos?
 Protocolos de transporte:
 TCP

UDP
Onde estamos?
Protocolos de transporte
 Fornece comunicação de aplicação-para-aplicação
 Precisa dum mecanismo adicional de
endereçamento para identificar aplicações
 Designa-se por extremo-a-extremo
 Pode fornecer:
 Fiabilidade
 Controlo de Fluxo
 Controlo Congestão
Exemplo de Camada Transporte :
Transmission Control Protocol (TCP)
Normalizado pelo IETF como RFC 793
 Protocolo mais popular da Camada 4
 Protocolo orientado à conexão
 Funciona entre aplicações e IP
 Funcionamento Full-duplex
 Interface tipo byte-stream

Resumo do TCP
Fornece um serviço de transporte de fluxo
full-duplex, orientado à conexão
completamente fiável (nenhuma
duplicação ou perda de dados), que
permite dois programas aplicativos formar
uma conexão, enviar dados em qualquer
uma das direcções e então terminar a
conexão.
Relação Entre o TCP e Outros
Protocolos

TCP num computador utiliza o
IP para comunicar com TCP
noutro computador
Aparente Contradição
IP oferece entrega melhor-esforço (não fiável)
 TCP utiliza o IP
 TCP fornece transferência completamente
fiável
 Como é isto possível?

Conseguir Fiabilidade
 Estabelecimento
fiável da conexão
 Transmissão fiável dos dados
 Terminação fiável da conexão
Transmissão fiável dos dados
 Confirmação positiva
O receptor devolve uma curta mensagem na chegada de
dados
 Designa-se por confirmação (acknowledgement)
 Retransmissão
 Remetente inicia cronometro sempre que uma
mensagem é transmitida
 Se o cronometro expira antes duma confirmação
chegar, o remetente retransmite a mensagem

Retransmissão
Quanto tempo deverá esperar o TCP
Antes de Retransmitir?
 Tempo que leva para chegar uma confirmação
depende de
 Distancia ao destino
 Presente condições de tráfego
 Conexões múltiplas podem ser abertas
simultaneamente
 Condições de tráfego mudam rapidamente
Resolver o Problema da
Retransmissão
 Manter
estimativa do tempo de viagem de
ida-e-volta de cada conexão
 Utilizar estimativa actual para fixar
cronometro de retransmissão
 Designado por retransmissão adaptável
 Motivo de sucesso do TCP
Retransmissão adaptável

Intervalo depende da presente estimativa de ida-e-volta
TCP Controlo de Fluxo
 Receptor
 Anuncia
espaço de buffer disponível
 Designa-se por janela
 Remetente
 Pode enviar até ao limite da janela antes da
chegada do ACK
 Também designado por protocolo de janela
deslizante (sliding window protocol)
Estabelecimento e Terminação
Estabelecimento da conexão
 Tem de ser fiável
Terminação da conexão
 Deve ser graciosa
Difícil
Por que Startup/Shutdown é Difícil
 Segmentos podem ser
 perdidos
 duplicados
 atrasados
 entregue
fora de ordem
 qualquer um dos participantes pode bloquear
 qualquer um dos participantes pode reiniciar
 Necessário evitar que mensagem duplicada de
terminação venha afectar conexão posterior
A Solução de Estabelecimento do
TCP
 Utiliza troca de três mensagens
 Conhecido como “3-way handshake”
 Necessário e suficiente para estabelecimento
fiável e não ambígua
 Mensagens SYN (Synchronize) são utilizadas
para estabelecimento de conexão
3-Way Handshake
A Terminação do TCP
Portas de protocolo
 A cada
aplicação é atribuído um numero distinto
 Servidor
É
Normalizado
 Utiliza sempre o mesmo número da porta
 Normalmente utiliza números de porta mais baixos
 Cliente
 Obtém
porto não utilizada do software de protocolo
 Normalmente utiliza números da porta mais altos
Veja / etc/services
Exemplo de Porta de protocolo
 Aplicação de servidor Web atribuída a porta 80
 Aplicação cliente Web obtém porto 32938
 Segmento de TCP enviado do cliente para servidor
tem
 número da porta origem 32938
 número da porta destino 80
 Quando servidor Web responder, segmento de
TCP tem
 número da porta origem 80
 número da porta destino 32938
TCP Segmento Formato
User Datagram Protocol (UDP)
 Entrega
de mensagem não fiável
 Protocolo sem conexão
 Nenhum controlo de fluxo (nenhuma janela)
 Nenhuma recuperação de erro (não há ACKs)
 Permite multiplexação da aplicação
 Detecção de erros opcional (campo de checksum)
UDP Mensagem Formato
Download

TCP