Você está na página 1de 10

REDES DE COMPUTADORES

2.4 A 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.

Máquina 1 Máquina 2
Endereços de
transporte
Nível de Superior Nível de Superior

Entidade de Entidade de
TPDU
Transporte Transporte

Nível de Rede Nível de Rede


Endereço de
rede

Figura 1. Entidade de transporte


© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Transporte * Pág. 1

REDES DE COMPUTADORES

! 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).

© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Transporte * Pág. 2
REDES DE COMPUTADORES

! Os principais parâmetros de QoS são descritos na tabela a seguir.

QoS Comentário
Atraso no estabelecimento Quanto menor, melhor
de conexão
Probabilidade de falha no Quanto menor, melhor
estabelecimento de
conexão
Taxa de transferência Quantidade de bytes transportados por
segundo (nos dois sentidos)
Atraso de trânsito Quanto tempo leva para chegar no nível
de transporte da máquina destino (nos
dois sentidos)
Taxa de erro residual Relação da quantidade de dados perdidos
pela quantidade de dados transportados.
Em tese deveria ser zero, mas na prática
pode ter algum valor pequeno
Proteção Proteção contra interceptação e/ou
adulteração dos dados transportados
Flexibilidade (Elasticidade) Probabilidade do próprio nível de
transporte encerrar uma conexão devido
à problemas internos e/ou de
congestionamento

© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Transporte * Pág. 3

REDES DE COMPUTADORES

2.4.1 Primitivas de Transporte

! Fundamentalmente, o nível de transporte (nas várias arquiteturas


de rede) oferece as primitivas mostradas na tabela a seguir.

Primitiva TPDU Enviado Significado


LISTEN (nenhum) Bloqueia até algum usuário tentar
uma conexão
CONNECT abertura de Usuário tentando estabelecer
conexão conexão
SEND dados envio de informação
RECEIVE (nenhum) bloqueia até a chegada de um TPDU
de dados
DISCONNECT fechamento de Usuário encerrando conexão
conexão

© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Transporte * Pág. 4
REDES DE COMPUTADORES

! 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.
© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Transporte * Pág. 5

REDES DE COMPUTADORES

2.4.2 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.

© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Transporte * Pág. 6
REDES DE COMPUTADORES

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 Transport (Transporte 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.

© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Transporte * Pág. 7

REDES DE COMPUTADORES

Máquina 1 Máquina 2

Aplicação Nível de Aplicação


Cliente TSAP 6 Aplicação Servidor
Conexão de
Nível de TSAP
transporte começa
Transporte 122
aqui
Conexão de rede Nível de
NSAP NSAP
começa aqui Rede

Nível de
Enlace

Nível
Físico

Figura 2. Endereçamento de programas (TSAPs) e máquinas (NSAPs)

© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Transporte * Pág. 8
REDES DE COMPUTADORES

Estabelecimento de Conexão

! Teoricamente simples:
♦ 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

! O problema é que solicitações ou respostas podem se perder (ou


serem duplicadas) no caminho:
♦ 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)

© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Transporte * Pág. 9

REDES DE COMPUTADORES

Emissor Receptor

CR(seq=X)

ACK(seq=Y, ack=X)
tempo

DATA(seq=X, ack=Y)

Figura 3. 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

© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Transporte * Pág. 10
REDES DE COMPUTADORES

Emissor Receptor
CR duplicado
CR(seq=X)

ACK(seq=Y, ack=X)

tempo REJECT( ack=Y)

Figura 4. 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)

© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Transporte * Pág. 11

REDES DE COMPUTADORES

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?

© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Transporte * Pág. 12
REDES DE COMPUTADORES

Tropa A Tropa B

Tropa C

Figura 5. 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.

© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Transporte * Pág. 13

REDES DE COMPUTADORES

Emissor Receptor

Envia DR
DR
+liga relógio
Envia DR
DR
+liga relógio
Encerra
conexão
tempo

Envia ACK ACK


Encerra
conexão

Figura 6. Encerramento normal de conexão

© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Transporte * Pág. 14
REDES DE COMPUTADORES

Emissor Receptor

Envia DR
DR
+liga relógio
Envia DR
DR
+liga relógio
Encerra
conexão
tempo

.
.
Envia ACK ACK .
.
.
-relógio toca
Encerra
conexão

Figura 7. Encerramento de conexão com perda de ACK

© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Transporte * Pág. 15

REDES DE COMPUTADORES

Emissor Receptor

Envia DR DR
+liga relógio Envia DR
DR +liga relógio
.
.
-relógio toca
tempo

Envia DR DR
+liga relógio Envia DR
DR
Encerra +liga relógio
conexão

Envia ACK ACK


Encerra
conexão

Figura 8. Encerramento de conexão com perda de resposta

© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Transporte * Pág. 16
REDES DE COMPUTADORES

Emissor Receptor

Envia DR DR
+liga relógio Envia DR
DR +liga relógio
.
. .
-relógio toca .
tempo

Envia DR .
DR
+liga relógio .
N-ésima vez .
. .
.
-relógio toca -relógio toca
Encerra Encerra
conexão conexão

Figura 9. Encerramento de conexão com perda de resposta e


DR seguintes

© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Transporte * Pág. 17

REDES DE COMPUTADORES

Controle de Fluxo e Armazenamento Temporário

! Controle de fluxo é facilmente resolvido com o uso de protocolos


de janela deslizante (slide window), como o 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

© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Transporte * Pág. 18
REDES DE COMPUTADORES

! Armazenamento temporário é necessário porque durante a


transmissão de uma mensagem dividida em vários segmentos, a
camada de transporte guardar 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).

© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Transporte * Pág. 19

REDES DE COMPUTADORES

(a) Lista encadeada com blocos (b) Lista encadeada com blocos
de tamanho fixo de tamanho variável

(c) Lista encadeada circular com blocos de


tamanho variável
Espaço livre
Figura 10. Gerência de armazenamento temporário

© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Transporte * Pág. 20