Camada de Transporte – Transport Layer
Com a Camada de Transporte é uma das mais importantes do modelo OSI e consequentemente do modelo TCP/IP vou detalhar mais essa camada nesse artigo, complementando o artigo “As Camadas do Modelo OSI” que escrevi anteriormente
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 de 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:
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. [Fonte: 1]
Funções da Camada de Transporte
Esta camada desempenha uma grande quantidade de funções, entre elas:
Controles fim-a-fim
As atividades de controle fim-a-fim realizada por esse protocolo são as seguinte:
Multiplexação
A multiplexação pode ser motivada devido ao custo (tarifação baseada no tempo em que uma conexão de rede está aberta).
Divisão (Splitting)
A conexão de rede oferece banda passante muito mais baixa que a necessária.