Tipo-comprimento-valor

formato de dados usado em protocolos de comunicação

Nos protocolos de comunicações, tipo/marcação-comprimento-valor (T./M.C.V.[a]) é um esquema de codificação usado para informações opcionais. Um fluxo de dados codificado em tipo/marcação-comprimento-valor (T./M.C.V.[a]) contém código relacionado ao tipo de registro, o comprimento do valor do registro e, finalmente, o próprio valor.

Detalhes editar

O tipo e o comprimento são fixos em tamanho (normalmente de 1 a 4 bytes) e o campo do valor é de tamanho variável. Esses campos são usados da seguinte maneira:

Tipo
Um código binário, simplesmente alfanumérico (geralmente), que indica o tipo de campo que esta parte da mensagem representa;
comprimento
o tamanho do campo de valor (normalmente em bytes) e
valor
séries de bytes de tamanhos variáveis que contêm dados para esta parte da mensagem.

Algumas vantagens de usar uma solução de sistemas de dados de representação tipo/marcação-comprimento-valor (T./M.C.V.[a]) são:

  • As sequências tipo/marcação-comprimento-valor (T./M.C.V.[a]) são facilmente pesquisadas usando funções de análise generalizadas;
  • os novos elementos da mensagem recebidos em um nó mais antigo podem ser ignorados com segurança e o restante da mensagem pode ser analisado. Isso é semelhante ao modo como as marcações [b] da linguagem de marcação extensível (L.M.X.)[c] desconhecidas podem ser ignoradas com segurança;
  • os elementos tipo/marcação-comprimento-valor (T./M.C.V.[a]) podem ser colocados em qualquer ordem dentro do corpo da mensagem e
  • os elementos tipo/marcação-comprimento-valor (T./M.C.V.[a]) são normalmente usados em formato binário e protocolos binários [en], o que torna a análise mais rápida e os dados menores do que em protocolos baseados em texto comparáveis.

Exemplos editar

Exemplos do mundo real editar

Protocolos de transporte editar

  • A segurança da camada de transporte (S.C.T.)[d] [en] (e seu antecessor a camada de soquetes seguros (C.S.S.[e]) usa mensagens codificadas por tipo/marcação-comprimento-valor (T./M.C.V.[a]).
  • '"Shell seguro (Sh.S.)[f]
  • Serviço de política aberta comum (S.P.A.C.)[g] [en]
  • Sistema intermediário para sistema intermediário (S.I.-S.I., também escrito S.I.S.I)[h] [en]
  • Serviço de autenticação remota de usuário de discagem (S.S.R.U.D)[i]
  • O protocolo de descoberta da camada de enlace (P.D.C.E.)[j] [en] permite o envio de informações específicas da organização como um elemento tipo/marcação-comprimento-valor (T./M.C.V.[a]) dentro de pacotes do protocolo de descoberta da camada de enlace (P.D.C.E.)[j].
  • O protocolo de redundância de mídia (P.R.M.)[k] [en] permite informações organizacionais específicas
  • O protocolo de configuração de host dinâmico (P.C.H.D.)[l] usa opções codificadas tipo/marcação-comprimento-valor (T./M.C.V.[a])
  • O protocolo de gerenciamento de recurso de rádio (R.R.)[m] usado em telefones celulares compatíveis com o sistema global para comunicações móveis (S.G.M.)[n] (definido no projeto de parceria de 3ª geração (P.P.3.G.[o]) 04.18). Neste protocolo cada mensagem é definida como uma sequência de elementos de informação.

Formatos de armazenamento de dados editar

  • O formato de arquivo de intercâmbio (F.A.I.[p]) [en]
  • O Matroska usa tipo/marcação-comprimento-valor (T./M.C.V.[a]) para marcações
  • O formato de arquivo de tempo rápido (F.A.T.R.[q]) [en] (a base para contêineres do grupo de especialistas em imagens em movimento 4 (G.E.I.M.-4[r]) [en]

Outro editar

Outros exemplos editar

Imagine uma mensagem para fazer uma ligação telefônica. Em uma primeira versão de um sistema, poderíamos usar dois elementos de mensagem: um "command" e um "phoneNumberToCall":

command_c/4/makeCall_c/phoneNumberToCall_c/8/"722-4246"

Aqui, command_c, makeCall_c e phoneNumberToCall_c são constantes inteiras e 4 e 8 são os comprimentos dos campos "valor", respectivamente.

Posteriormente (na versão 2), um novo campo contendo o número de chamada pode ser adicionado:

command_c/4/makeCall_c/callingNumber_c/14 /"1-613-715-9719"/phoneNumberToCall_c/8/"722-4246"

Um sistema da versão 1 que recebeu uma mensagem de um sistema da versão 2 primeiro leria o elemento command_c e, em seguida, leria um elemento do tipo callingNumber_c. O sistema da versão 1 não entende CallNumber_c, então o campo de comprimento é lido (ou seja, 14) e o sistema avança 14 bytes para ler

phoneNumberToCall_c

que ele entende, e a análise da mensagem continua.

Outras formas de representar dados editar

Os protocolos principais da suíte de protocolos de Internet (particularmente o protocolo de Internet (P.I.)[v], o protocolo de controle de transmissão (P.C.T.)[w] e o protocolo de datagrama do usuário (P.D.U.)[x] usam campos estáticos predefinidos.

Alguns protocolos da camada de aplicações TCP/IP, incluindo o protocolo de transferência de hipertexto (P.T.Ht.) 1.1[y] (e seus predecessores não padronizados), o protocolo de transferência de arquivos (P.T.A.)[z], o protocolo de transferência de correio simples (P.T.C.S.)[aa], protocolo de correios (P.C.)[ab] e protocolo de iniciação de sessão (P.I.S.)[ac] usam pares "campo: valor" baseados em texto formatados de acordo com a Solicitação de comentários (S.D.C.) 2822 (em inglês)[ad].O protocolo de transferência de hipertexto (P.T.Ht.)[y] representa o comprimento da carga útil com um cabeçalho de comprimento de conteúdo e separa os cabeçalhos da carga útil com uma linha vazia e os cabeçalhos uns dos outros com uma nova linha.

A notação de sintaxe abstrata um (N.S.A.1)[ae] especifica várias regras de codificação baseadas em tipo/marcação-comprimento-valor (T./M.C.V.[a]) (regras de codificação básica (R.C.B.)[af], regras de codificação distintas (R.C.D.)[ag], bem como aquelas não são baseadas em tipo/marcação-comprimento-valor (T./M.C.V.[a]) (regras de codificação empacotadas (R.C.E.)[ah], regras de codificação da L.M.X. (R.C.L.)[ai].

A notação de sintaxe concreta um (N.S.C.1)[aj] [en] descreve regras de codificação usando semântica que não é tipo/marcação-comprimento-valor (T./M.C.V.[a]).

Mais recentemente, a linguagem de marcação extensível (L.M.X.)[c] foi usada para implementar mensagens entre nós diferentes em uma rede. Essas mensagens são normalmente prefixadas com comandos de texto baseados em linha, como com o protocolo de troca de blocos extensível (P.T.B.E.[ak]) [en].

Ver também editar

  • Chave-comprimento-valor (C.C.V.[al]) [en] – tipo específico de codificação tipo-comprimento-valor.

Notas editar

  1. a b c d e f g h i j k l m do inglês T.L.V.type/tag-length-value
  2. do inglês tags
  3. a b do inglês X.M.L.extensible markup language
  4. do inglês T.L.S.transport layer security
  5. do inglês S.S.L. – secure sockets layer
  6. do inglês S.Sh.secure shell
  7. do inglês C.O.P.S.common open policy service
  8. di inglês I.S.-I.S., I.S.I.S.intermediate system to intermediate system
  9. do inglês R.A.D.I.U.S.remote authentication dial-in user service
  10. a b do inglês L.L.D.P.link layer discovery protocol
  11. do inglês M.R.P.media redundancy protocol
  12. do inglês D.H.C.P.dynamic host configuration protocol
  13. do inglês R.R.radio resource
  14. do inglês G.S.M.global system for mobile communications
  15. do inglês 3.G.P.P.3rd generation partnership project
  16. do inglês I.F.F.interchange file format
  17. do inglês QT.F.F.QuickTime file format
  18. do inglês M.P.E.G.-4moving picture experts group
  19. ubus – o sistema de interconexão usado pela maioria dos serviços executados em uma configuração do roteador sem fio aberto (Open W.Rt.). Os serviços podem se conectar ao barramento e fornecer métodos que podem ser chamados por outros serviços ou clientes.
  20. do inglês I.P.C .inter-process communication ou interprocess communication
  21. do inglês Open W.Rt.open wireless router
  22. do inglês I.P.Internet protocol
  23. do inglês T.C.P.transmission control protocol
  24. do inglês U.D.P.user datagram protocol
  25. a b do inglês Ht.T.P. - hypertext transfer protocol
  26. do inglês F.T.P. – file transfer protocol
  27. do inglês S.M.T.P.simple mail transfer protocol
  28. do inglês P.O.P.3 – post office protocol 3
  29. do inglês S.I.P.session initiation protocol
  30. do inglês R.F.C.request for comments
  31. do inglês A.S.N.1abstract syntax notation one
  32. do inglês B.E.R.basic encoding rules
  33. do inglês D.E.R.distinguished encoding rules
  34. do inglês P.E.R.packed encoding rules
  35. do inglês X.E.R.X.M.L. encoding rules
  36. do inglês C.S.N.1 concrete syntax notation one
  37. do inglês B.E.E.P.blocks extensible exchange protocol
  38. do inglês K.L.V.key-length-value

Referências

  1. «Open W.rt. documentation on ubus». openwrt.org (em inglês). 15 de abril de 2022. Consultado em 15 de abril de 2022 

Ligações externas editar

  • tlve (em inglês), um analisador tipo/marcação-comprimento-valor (T./M.C.V.) comum.