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
Nível de Superior
Entidade de
Transporte
Nível de Rede
Máquina 2
Endereços de
transporte
TPDU
Endereço de
rede
Nível de Superior
Entidade de
Transporte
Nível 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
LISTEN
TPDU Enviado
(nenhum)
CONNECT
abertura de
conexão
dados
(nenhum)
SEND
RECEIVE
DISCONNECT
fechamento de
conexão
Significado
Bloqueia até algum usuário tentar
uma conexão
Usuário
tentando
estabelecer
conexão
envio de informação
bloqueia até a chegada de um TPDU
de dados
Usuário encerrando 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
receptor;
emissor
e
♦
Abertura/ Encerramento de conexão mais elaborado com
tratamento de dados "em trânsito" na subrede;
♦
Armazenamento
receptor;
♦
Grande quantidade de conexões simultâneas, necessitando de
maior controle de fluxo.
temporário
de
segmentos
no
emissor
© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Transporte * Pág. 6
e
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
transporte.
seguir
ilustra
a
utilização
desses
endereços
de
© UFPB / CCT / DSC / PSN, 2001 * Parte 2: Arquitetura - Camada de Transporte * Pág. 7
REDES DE COMPUTADORES
Máquina 1
Aplicação
Cliente
Máquina 2
Nível de
Aplicação
TSAP 6
Conexão de
Nível de
transporte começa
Transporte
aqui
NSAP
Conexão de rede
começa aqui
Nível de
Rede
Aplicação
Servidor
TSAP
122
NSAP
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
Receptor
Emissor
tempo
CR(seq=X)
ACK(seq=Y, ack=X)
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
CR duplicado
Receptor
CR(seq=X)
tempo
ACK(seq=Y, ack=X)
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
Envia DR
+liga relógio
Receptor
DR
tempo
DR
Encerra
conexão
Envia ACK
Envia DR
+liga relógio
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
Envia DR
+liga relógio
Receptor
DR
tempo
DR
Encerra
conexão
Envia ACK
ACK
Envia DR
+liga relógio
.
.
.
.
.
-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
tempo
Envia DR
+liga relógio
.
.
-relógio toca
Envia DR
+liga relógio
Encerra
conexão
Envia ACK
Receptor
DR
DR
Envia DR
+liga relógio
DR
DR
ACK
Envia DR
+liga relógio
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
+liga relógio
.
.
.
.
-relógio toca
Encerra
conexão
DR
DR
N-ésima vez
tempo
-relógio toca
Envia DR
+liga relógio
DR
Envia DR
+liga relógio
.
.
.
.
.
.
-relógio toca
Encerra
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
de tamanho fixo
(b) Lista encadeada com blocos
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
Download

REDES DE COMPUTADORES O nível de transporte é o coração da