REDES DE COMPUTADORES
Camada de Transporte
URI - Santo Ângelo - DECC
Redes de Computadores – Camada de Transporte

O nível de transporte é o coração da pilha de protocolos. Sua tarefa é
prover transporte confiável e eficiente de dados de uma máquina origem
para uma máquina destino, independente da (ou das) rede física existente.

O hardware e software no nível de transporte que desempenha essa
função é chamado de entidade de transporte, podendo se localizar no
núcleo do sistema operacional, em um processo separado ou mesmo na
placa de interface de rede.
Entidade de transporte
URI - Santo Ângelo - DECC
Redes de Computadores – Camada de Transporte

O nível de transporte, de modo semelhante ao nível de rede, oferece o
serviço com conexão e sem conexão. Por esse fato, levanta-se a questão:
Por que existir o nível de transporte?

A resposta é sutil, mas crucial. O nível de rede é parte da subrede de
comunicação e é implementado (pelo menos em MANs e WANs) pelas
operadoras de telecomunicação. O que ocorre se o nível de rede oferece
serviço orientado à conexão, mas não confiável? Se ele perde pacotes com
freqüência? Se os roteadores envolvidos entram em pane com alguma
freqüência?

Problemas ocorrem na subrede de comunicação, sobre a qual os usuários
finais não têm controle total. A solução do problema é colocar mais um nível
sobre o nível de rede (o nível de transporte!) para melhorar a qualidade do
serviço (Quality of Service – QoS).

QoS de transporte pode permitir ao usuário especificar valores desejáveis,
aceitáveis e mínimos para vários parâmetros na hora da abertura de uma
conexão (quando se usa o serviço com conexão).
URI - Santo Ângelo - DECC
Redes de Computadores – Camada de Transporte

Os principais parâmetros de QoS são descritos na tabela a seguir.
URI - Santo Ângelo - DECC
Redes de Computadores – Camada de Transporte
Primitivas de Transporte
 Fundamentalmente, o nível de transporte (nas várias
arquiteturasde rede) oferece as primitivas mostradas na
tabela a seguir.
URI - Santo Ângelo - DECC
Redes de Computadores – Camada de Transporte

Para se ter uma idéia de funcionamento, considere uma aplicação de rede
com um programa servidor e vários programas clientes (p.ex., o IRC). As
primitivas usadas por cada elemento envolvido na comunicação seriam:

De início, o servidor executa um LISTEN (chamando uma rotina de biblioteca
que faz uma chamada ao sistema operacional que bloqueia o programa
servidor) para ficar aguardando solicitações de abertura de conexão feitas por
clientes;

Um cliente, desejando "falar" com o servidor, executa um CONNECT, sendo
bloqueado até obter uma resposta do servidor (ou até esgotar um temporizador);

O servidor recebe o pedido de abertura de conexão, responde confirmando, e
libera o fluxo de comunicação com o cliente;

Cliente e servidor trocam dados entre si com chamadas a SEND e RECEIVE;

O cliente encerra a conexão com DISCONNECT;

O servidor aceita a desconexão e continua a aguardar pedidos de abertura de
conexão.
URI - Santo Ângelo - DECC
Redes de Computadores – Camada de Transporte
Elementos de Protocolos de Transporte

A camada de transporte guarda algumas semelhanças
com a camada de enlace de dados:




Controle de erro;
Controle de sequenciamento;
Controle de fluxo.
Apresenta, porém, algumas diferenças importantes:




Endereçamento de aplicação (processos) no emissor e receptor;
Abertura/ Encerramento de conexão mais elaborado com
tratamento de dados "em trânsito" na subrede;
Armazenamento temporário de segmentos no emissor e
receptor;
Grande quantidade de conexões simultâneas, necessitando de
maior controle de fluxo.
URI - Santo Ângelo - DECC
Redes de Computadores – Camada de Transporte
Endereçamento de aplicação ao nível de transporte

Como um programa cliente que deseja abrir uma conexão com um
programa servidor identifica de forma única o servidor? Como o
próprio cliente se identifica para o servidor?

Normalmente são usados endereços de transporte, a partir dos
quais os servidores ficam aguardando ("escutando") pedidos de
abertura de conexão. São os chamados Pontos de Acesso do
Serviço de Transporte (Transport Service Access Point – TSAP),
que são análogos aos Pontos de Acesso do Serviço de Rede
(Network Service Access Point – NSAP).

Em muitas arquiteturas de rede, endereços de transporte são
números inteiros (padronizados em uma dada arquitetura) que
identificam programas servidores e programas clientes em
máquinas da rede.

A figura a seguir ilustra a utilização desses endereços de transporte.
URI - Santo Ângelo - DECC
Redes de Computadores – Camada de Transporte
Endereçamento de programas (TSAPs) e máquinas (NSAPs)
URI - Santo Ângelo - DECC
Redes de Computadores – Camada de Transporte
Estabelecimento de Conexão

Teoricamente simples:




O problema é que solicitações ou respostas podem se perder (ou
serem duplicadas) no caminho:



Origem envia solicitação (TPDU) de abertura de conexão (CONNECT
REQUEST - CR)
Destino recebe CR e envia resposta favorável (ACCEPT ACK) ou
desfavorável (REJECT)
Origem inicia transmissão se recebe ACCEPT ACK
Pode haver duplicação de solicitação quando uma confirmação demora
muito a chegar
A subrede pode reter um pacote por um tempo relativamente longo,
gerando instabilidades
Como resolver o problema?

Usando um mecanismo Conhecido por Threeway Handshake (ou
Aperto de mão em três vias)
URI - Santo Ângelo - DECC
Redes de Computadores – Camada de Transporte
Threeway handshake

Theeway Handshake em situação normal



Emissor envia CONNECT com número de sequência X
Receptor envia ACK com sequência Y, e reconhecendo sequência X
Emissor recebe ACK e inicia envio de dados (DATA) com sequência X,
reconhecendo sequência Y
URI - Santo Ângelo - DECC
Redes de Computadores – Camada de Transporte
Threeway Handshake com duplicação de CR

Threeway Handshake com duplicação de CR



Receptor recebe CR duplicado, ignora a segunda ocorrência porque a conexão
já foi aberta e reenvia ACK
Emissor recebe ACK, ignora porque a conexão já foi aberta e envia REJECT
Receptor recebe REJECT e fica sabendo que a conexão também já está aberta
no emissor (cai na real, descobrindo que foi enganado por um CR duplo)
URI - Santo Ângelo - DECC
Redes de Computadores – Camada de Transporte
Encerramento de Conexão


Não é tão simples quanto possa parecer. Pode ser:

Assimétrico, quando emissor ou receptor fecha a conexão e a
comunicação física é interrompida (como no sistema telefônico)

Simétrico, quando a comunicação é vista como duas conexões
unidirecionais e o emissor e o receptor devem ser liberados
separadamente.
Problema dos dois exércitos

Como sincronizar os ataques da tropa A com a tropa B, para
vencer a tropa C, sendo que A e B juntas vencem a tropa C, mas
A e B isoladas perdem da tropa C?
URI - Santo Ângelo - DECC
Redes de Computadores – Camada de Transporte
Problema dos dois exércitos

Se cada tropa esperar a confirmação do parceiro, nunca se fará
nada!

Com rede é bem mais fácil, usando-se técnicas de retransmissão
temporizada e desconexão temporizada, como mostrado nas figuras a
seguir.
URI - Santo Ângelo - DECC
Redes de Computadores – Camada de Transporte
Encerramento normal de conexão
URI - Santo Ângelo - DECC
Redes de Computadores – Camada de Transporte
Encerramento de conexão com perda de ACK
URI - Santo Ângelo - DECC
Redes de Computadores – Camada de Transporte
Encerramento de conexão com perda de resposta
URI - Santo Ângelo - DECC
Redes de Computadores – Camada de Transporte
Encerramento de conexão com perda de resposta e DR seguintes
URI - Santo Ângelo - DECC
Redes de Computadores – Camada de Transporte
Controle de Fluxo e Armazenamento Temporário

Controle de fluxo é facilmente resolvido com o uso de
protocolos de janela deslizante (slide window), como
visto na camada de enlace.

Quando um emissor não pode (ou não quer) receber mais
segmentos do receptor, envia para o mesmo uma mensagem
definindo tamanho 0 (zero) para a janela deslizante de recepção

Posteriormente, envia mensagem de controle indicando um
novo N para o reinicio da transmissão emissor → receptor

Basta ter bits para window size no TPDU
URI - Santo Ângelo - DECC
Redes de Computadores – Camada de Transporte

Armazenamento temporário é necessário porque durante a
transmissão de uma mensagem dividida em vários segmentos, a
camada de transporte guarda os segmentos enviados e ainda não
confirmados (ACK) pelo receptor, para poder fazer eventuais
retransmissões.

É preciso haver área de armazenamento temporários para diversos
segmentos de diversas conexões em andamento.

A gerência dessa área de armazenamento pode ser feita de várias
formas, sendo bastante comum a utilização de listas encadeadas
com elementos de tamanho fixo ou variável e listas circulares

Esse armazenamento temporário é necessário para o emissor e
para o receptor (que deve armazenar segmentos até poder
recompor a mensagem original e entrega-lá para as camadas
superiores).
URI - Santo Ângelo - DECC
Redes de Computadores – Camada de Transporte
Gerência de armazenamento temporário
URI - Santo Ângelo - DECC
Download

endereços de transporte - URI