2.1.1. Classes do Protocolo de Transporte Orientado à Conexão
O protocolo de transporte utiliza-se do serviço de rede para transmitir seus dados. As informações são transferidas de e para o prestador do serviço de rede, através de suas respectivas primitivas de serviço.
Dependendo do tipo de serviço prestado pela camada de rede, a implementação da camada de transporte tornar-se-á mais ou menos complexa, dividindo a camada de transporte em cinco (5) classes distintas:
A tabela que segue mostra as funções do protocolo de transporte e as respectivas classes que as implementam.
Com relação a tabela acima, fazemos as seguintes observações:
a) na classe 0, a entidade de transporte libera a conexão de transporte solicitando a liberação da conexão de rede;
b) a transferência de dados expressos pode ser realizada utilizando-se o serviço de transferência de dados normais ou de dados expressos da camada de rede;
c) no caso da classe 1, o reconhecimento pode ser efetuado pela camada de rede;
d) o controle de fluxo explícito é realizado através da utilização de AK-PDU na camada de transporte.
Complementando a tabela anterior, a tabela abaixo relaciona as classes do protocolo com as TPDU definidas para cada uma das fases do protocolo.
Em qualquer classe, ao ser recebida uma TPDU com código ou valor de parâmetro inválido, é enviada uma ER-TPDU. Particularmente na classe quatro (4), é enviada uma ER-TPDU quando for recebida uma mensagem com erro de soma verificadora - caso tenha sido negociado anteriormente a utilização da mesma.
2.1.2. Serviços do Protocolo de Transporte Orientado à Conexão
Os serviços prestados pelo protocolo de transporte orientado à conexão resume-se nos serviços prestados nas seguintes fases do protocolo:
2.1.3. Formato das TPDU
Todas as TPDU devem conter um número inteiro de octetos que são numerados a partir de 1 e na ordem crescente em que são colocados na NSDU. Os bits no octeto são numerados de 1 até 8, onde o bit 1 é o de menor ordem. Na representação de números binários que usam octetos consecutivos, o octeto de menor ordem tem o valor mais significativo.
Podemos representar a constituição de uma TPDU, genericamente, por:
A figura abaixo esclarece com perfeição o que foi dito acima.
O campo indicador de tamanho LI está contido no primeiro octeto (8 bits) de todas as TPDU. Ele é um número binário e seu valor máximo é 254 (11111110). LI corresponde ao tamanho do cabeçalho, excluindo a ele mesmo.
A parte fixa do cabeçalho contém parâmetros de uso freqüente. O primeiro parâmetro da parte fixa é o código da TPDU, e a partir dele que são definidos o tamanho e a esrutura da TPDU. Em certos casos, a classe do protocolo e o formato (normal ou extendido) também influenciam no tamanho e na estrutura da TPDU.
Em contradição à parte fixa, a parte variável do cabeçalho contém os parâmetros menos freqüentemente usados. A parte variável, se existir, deve conter um ou mais parâmetros. Seu tamanho é definido pelo LI menos o tamanho da parte fixa. A estrutura dos parâmetros da parte variável é a seguinte:
O campo indicação do tamanho do parâmetro contém, em octetos, o tamanho do campo valor do parâmetro. Por fim o campo de dados, contendo os dados do usuário - que são tratados de forma transparente pelo protocolo de transporte. Pode-se representar a estrutura de cada TPDU da seguinte forma:
onde:
TDU = unidade de dados do protocolo de transporte;
LI = indicador de tamanho;
CDT = crédito;
TSAP-ID = ponto de acesso do serviço de transporte;
YR-TU-NR = número da seqüência;
AK TIME = tempo de acknowledgement.
DST-REF = destino;
SRC-REF = fonte;
A tabela que segue relaciona os parâmetros da parte fixa do cabeçalho para cada tipo de TPDU.
O código da TPDU - 4 bits, indica o tipo da TPDU. O crédito - 4 ou 16 bits, é o valor utilizado por mecanismos de controle de fluxo. É usado pela entidade receptora para definir o tamaho da janela de transmissão; conseqüentemente, definir quantas mensagens a entidade transmissora pode transmitir sem receber reconhecimento. Referência fonte - 16 bits, é o número utilizado pela entidade de transporte para identificar uma conexão no seu próprio sistema, enquanto que referência destino - 16 bits, é o número usado pela entidade de transporte para identificar uma conexão em um sistema remoto. A classe - 4 bits, identifica a classe de protocolo. O parâmetro opções - 4 bits, define o uso de numeração normal ou estendida. Quando há uma liberação de conexão, o motivo pelo qual isso ocorreu está indicado no parâmetro razão - 8 bits. O EOT - 1 bit, é utilizado no caso de segmentação. Este bit indica qual é a última DT-TPDU do conjunto segmentado. TPDU-NR - 7 ou 31 (formato estendido) bits, representa o número de seqüência de transmissão de uma DT-TPDU; enquanto EDTPDU-NR - 7 ou 31 (formato estendido) bits, representa o número de seqüência de transmissão de uma ED-TPDU. YR-TU-NR e YR-EDTU-NR - 7 ou 31 (formato estendido) bits, são respectivamente o número de seqüência da próxima DT-TPDU e ED-TPDU esperada. Por fim, quando uma TPDU é rejeitada, a causa da rejeição está no parâmetro causa - 8 bits.
Em adição à tabela anterior, agora relacionamos os parâmetros da parte variável do cabeçalho para cada tipo de TPDU.
Os parâmetros TSAP-ID Chamador e Chamado indicam, respectivamente, o ponto de acesso do serviço de transporte associado ao usuário chamador e chamado. O tamanho da TPDU - 8 bits, estipula o tamanho máximo da TPDU (em octetos). Pode estar entre 128 e 8192 octetos. O número da versão - 8 bits, indica qual a versão do protocolo que está sendo usada. Os parâmetros de segurança são definidos pelo usuário. O parâmetro checksum - 16 bits, é o resultado do algoritmo de checksum executado sobre a TPDU. É utilizado somente na classe 4, sendo obrigatório para CR-TPDU e negociado para as demais. O parâmetro de seleção de opções adicionais - 8 bits, é utilizado para adicionar opções específicas a certas classes, tendo como exemplo o serviço de dados expressos na classe 4. Quando, em uma negociação, existe a possibilidade de se negociar a escolha da classe do protocolo entre mais de uma classe, especifica-se no parâmetro classe alternativa uma classe alternativa para a negociação. O tempo de reconhecimento - 16 bits, indica o tempo de temporização para retransmissão de TPDU-DT. Se o tempo de reconhecimento terminar antes da entidade transmissora receber uma TPDU-ACK, ela retransmite a TPDU-DT. O throughput - 96 ou 192 bits, define os valores de vazão, em octetos por segundo; enquanto que a taxa de valor residual - 24 bits, define a taxa mínima de erros não reportados. Prioridade - 16 bits, especifica a prioridade que a conexão deve receber, sendo zero (0) a prioridade mais alta. Não é usada na classe 0. O atraso de transito - 64 bits, especifica os valores de atraso de mensagens aceitos pelo usuário. Após uma falha da conexão de rede, a entidade de transporte deve persistir na tentativa de reconectar-se durante um determinado período de tempo indicado pelo parâmetro tempo de reassociação - 16 bits. Informação adicional é definido pelo usuário. Número de subseqüência - 16 bits, é o número de seqüência das TPDU-ACK e o parâmetro confirmação de controle de fluxo - 64 bits, são os parâmetros da última TPDU-ACK recebida que estão sendo transmitidos para a confirmação da mesma. Finalmente, o parâmetro TPDU inválida é a seqüência padrão de bits de uma TPDU rejeitada.