OSI - NÍVEL 4: PROTOCOLO DE TRANSPORTE

A camadade transporte é a parte central de toda a hierarquia de protocolos. Sua tarefa é prover o transporte econômico e confiável de dados, independente da rede física ou das redes atualmente em uso.

1. Conceitos Preliminares

Na arquitetura OSI, o serviço de transporte é realizado pela camada quatro (4). A camada de transporte fornece serviços à camada superior - de sessão (camada 5), e utiliza-se dos serviços fornecidos pela camada inferior - de rede (camada 3).

As operações entre entidades de camadas adjacentes dentro de um mesmo sistema aberto ocorrem nos pontos de acesso de serviço (SAP - Service Acess Point), que estão localizados na interface entre duas camadas. No caso da camada transporte esses pontos são denominados TSAP (Transport Service Acess Point).

As camadas se comunicam pelos TSAP utilizando-se de primitivas de serviço. Estas primitivas estão definidas em quatro tipos:
- request (pedido): iniciada por uma camada (N+1) para pedir algum serviço à camada (N);
- indication (indicação): emitida pela camada (N) à camada (N+1) para indicar a ocorrência de algum evento;
- response (resposta): enviada à camada (N) - pela camada (N+1), em resposta à indicação recebida da camada (N); - confirmation (confirmação): emitida pela camada (N) para indicar ao originador do pedido do serviço que o serviço foi completado.

Um serviço que utiliza as quatro primitivas chama-se serviço confirmado. Um serviço não-confirmado utiliza-se apenas das duas primeiras: pedido e indicação.

O serviço de transporte recebe do nível superior a ele os dados a serem enviados, na forma de unidade de dados de serviço de transporte - TSDU (Transport Service Data Unit). Estas TSDUs são passadas ao serviço de transporte como parâmetros de primitivas de serviço usadas para transferir dados. As entidades pares (entidades de mesma camada residentes em sistemas abertos diferentes) trocam elementos de protocolo denominados unidades de dados do protocolo de transporte - TPDU (Transport Protocol Date Unit).

Normalmente o tamanho de uma TSDU não é fixo, podendo exceder o tamanho que a TPDU pode transportar. Quando isso acorre, o protocolo de transporte segmenta a TSDU e a transporta em várias TPDU, remontando-a novamente no destino.

Para minimizar as interações entre camadas, um usuário da camada de transporte entrega de uma só vez à essa várias TSDUs que serão transportadas em uma única TPDU. Este procedimento é chamado de concatenação. Na recepção, o usuário da camada de transporte deve ser capaz de identificar e separar as diversas TSDUs entregues em uma única interação por essa. Este procedimento é chamado de separação.

Uma conexão de transporte é definida como uma associação estabelecida entre entidades de sessão com o objetivo de transferir dados. Cada conexão de transporte é associada a uma conexão de rede - no caso das duas camadas estarem operando em modo orientado à conexão. Nessa situação, se a conexão de rede falhar, a conexão de transporte pode ser associada à outra conexão de rede; e as TPDU perdidas podem ser retransmitidas. Tal procedimento é conhecido como reassociação após falha.

Nem sempre o mapeamento das conexões é de um-para-um, podendo ocorrer no transmissor uma multiplexação de mais de uma conexão de transporte em uma conexão de rede. O inverso ocorre no receptor, a demultiplexação da conexão de rede nas várias conexões de transporte. Além disso, pode acontecer de termos uma conexão de transporte associada a mais de uma conexão de rede. Este processo é denominado, no transmissor, de splitting. No receptor, acontece o processo inverso, chamado de recombinação.

Quando tem-se uma conexão estabelecida, pode-se transmitir dados. A camada de transporte transmissora faz uma enumeração das TPDU enviadas, para que a camada de transporte receptora possa fazer a resseqüênciação das mesmas, garantindo que o receptor receba as TPDU na mesma ordem que o transmissor as enviou. Existem dois tipos de enumerações para a camada de transporte: normal e extendida. A numeração extendida é utilizada em redes de alto throughput, exigindo poucos reconhecimentos de recebimentos de dados. Até que tal reconhecimento chegue, ocorre a retenção das TPDU correspondentes pela a entidade de transporte transmissora, permitindo assim uma retransmissão se necessário. A retransmissão feita pela camada de transporte por ocorrência de erros na camada de rede é conhecida como ressincronização da conexão de transporte.

A camada de transporte pode realizar um controle de erros através de uma checksum inserida como um parâmetro das TPDU. Ela também realiza um controle de fluxo denominado janela deslizante com alocação de crédito. Levando em consideração que estes artifícios podem provocar um retardo no fluxo de dados; então, para transmitir dados com urgência, foi definido prioridades para os chamados dados expressos sobre os dados normais.

Terminada a transmissão de dados, a conexão é liberada normalmente. Quando a conexão é liberada por ocasião de uma reinicialização ou por falha da conexão de rede, diz-se que houve uma liberação com erro.

A camada de transporte provê um mecanismo sutil de prevenção a erros após a liberação da conexão. O mecanismo trata-se de não permitir que sejem reutilizadas referências de transporte durante um período de tempo grande o bastante para que não tenham mais TPDU com tais referências circulando pela rede. Tais referências são ditas referências congeladas.


2. A Camada de Transporte

O objetivo final da camada de transporte é proporcionar serviço eficiênte, confiável e de baixo custo aos seus usuários, normalmente entidades da camada de sessão. O hardware e/ou software dentro da camada de transporte e que faz o serviço é denominado entidade de transporte.

A entidade de transporte comunica-se com seus usuários através de primitivas de serviço trocadas em um ou mais TSAP, que são definidas de acordo com o tipo de serviço prestado: orientado ou não à conexão. Estas primitivas são transportadas pelas TPDU.

A figura abaixo exemplifica uma entidade de transporte associada a um TSAP e a um NSAP. Na realidade, uma entidade de transporte poderia estar simultaneamente associada a vários TSAP e NSAP. No caso de multiplexação, associada a vários TSAP e a um NSAP; e no caso de splitting, associada a um TSAP e a vários NSAP.

Continuando, a ISO define o protocolo de transporte para operar em dois (2) modos:
2.1. ORIENTADO À CONEXÃO e
2.2. NÃO ORIENTADO À CONEXÃO.

É obvio que o protocolo de transporte não orientado à conexão é menos confiável. Ele não garante - entre outras coisas mais, a entrega das TPDU, nem tampouco a ordenação das mesmas. Entretanto, onde o serviço da camada de rede e das outras camadas inferiores é bastante confiável - como em redes locais, o protocolo de transporte não orientado à conexão pode ser utilizado, sem o overhead inerente a uma operação orientada à conexão.

Fazendo-se um estudo sucinto, observa-se que o serviço de transporte baseado em conexões é semelhante ao serviço de rede baseado em conexões. O endereçamento e controle de fluxo também são semelhantes em ambas as camadas. Para completar, o serviço de transporte sem conexões também é muito semelhante ao serviço de rede sem conexões.

Constatado os fatos acima, surge a seguinte questão: "Por que termos duas camadas e não uma apenas?". A resposta é sutil, mas procede: A camada de rede é parte da sub-rede de comunicaçoes e é executada pela concessionária que fornece o serviço (pelo menos para as WAN). Quando a camada de rede não fornece um serviço confiável, a camada de transporte assume as responsabilidades; melhorando a qualidade do serviço.

Após o surgimento do modelo OSI, somente um (1) protocolo continuou bem estabelecido: o TCP da ARPANET.


BIBLIOGRAFIA
- BRISA. "ARQUITETURA DE REDES DE COMPUTADORES". São Paulo: Makron Books; Rio de Janeiro: EMBRATEL; Brasília, DF: SGA, 1994.
- TANENBAUM, ANDREW S.. "REDES DE COMPUTADORES". Rio de Janeiro, Campos, 1994.
- TAROUCO, LIANE MARGARIDA ROCKENBACH. "REDES DE COMPUTADORES LOCAIS E DE LONGA DISTÂNCIA". São Paulo, McGraw-Hill, 1986.
Escrito por Roberto Bello de Oliveira; e-mail: bello@inf.ufrgs.br

Norma X.224 (ascii, postscript, .doc)

Outros trabalhos do grupo ...