2.1. PROTOCOLO DE TRANSPORTE ORIENTADO À CONEXÃO

O objetivo dessa modadlidade do protocolo de transporte (com conexão) é prover a qualidade de serviço (QOS - Quality Of Service) necessária às aplicações. Suas principais funções são:
  • mapeamento de endereços de transporte em endereços de rede;
  • estabelecimento de conexão;
  • multiplexação de conexões de transporte em conexões de rede;
  • segmentação e concatenação de unidades de dados;
  • recuperação de erros fim-a-fim;
  • controle de seqüência fim-a-fim sobre cada conexão de transporte;
  • controle de fluxo fim-a-fim sobre cada conexão;
  • monitoração da qualidade de serviço prestada;
  • transferência de dados expressos.

    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:

    - Classe 0: classe simples;
    - Classe 1: classe com recuperação básica de erros;
    - Classe 2: classe com multiplexação;
    - Classe 3: classe com recuperação de erros e multiplexação;
    - Classe 4: classe com detecção e recuperação de erros.

    A tabela que segue mostra as funções do protocolo de transporte e as respectivas classes que as implementam.

    onde:
    - as funções marcadas com "*" devem ser obrigatóriamente implementadas na classe considerada
    - as funções marcadas com "o" podem ser opcionalmente implementadas na classe considerada

    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.

    Legenda:
    CC - Conection Confirm; EA - Expedited Acknowledgement; CR - Connection Request; ED - Expedited Data;
    DC - Disconnect Confirm; ER - ERror TPDU; DR - Disconnect Request; RJ - Reject; DT - Data TPDU
    (a) - não-disponível quando for utilizado o serviço de reconhecimento da camada de rede;
    (b) - não-disponível quando a opção de controle de fluxo explícito não for selecionada.

    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.2.1. Estabelecimento de Conexão;
    2.1.2.2. Transferência de Dados e
    2.1.2.3. Liberação de Conexão.

    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:

  • um cabeçalho constituído de:
    - um campo indicador de tamanho LI;
    - uma parte fixa e
    - uma parte variável (se existir);
  • um campo de dados (se existir).

    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.

    onde: * significa parâmetro presente na TPDU correspondente; e 2,3,4 parâmetro presente nas classes 2, 3 e 4

    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.

    onde:
    * significa parâmetro presente na TPDU correspondente;
    1,3 significa parâmetro presente nas classes 1 e 3;
    4 significa parâmetro presente na classe 4.

    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.