Tipo-comprimento-valor
Nos protocolos de comunicações, tipo/marcação-comprimento-valor (T./M.C.V.[lower-alpha 1]) é 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.[lower-alpha 1]) contém código relacionado ao tipo de registro, o comprimento do valor do registro e, finalmente, o próprio valor.
Detalhes
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.[lower-alpha 1]) são:
- As sequências tipo/marcação-comprimento-valor (T./M.C.V.[lower-alpha 1]) 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 [lower-alpha 2] da linguagem de marcação extensível (L.M.X.)[lower-alpha 3] desconhecidas podem ser ignoradas com segurança;
- os elementos tipo/marcação-comprimento-valor (T./M.C.V.[lower-alpha 1]) podem ser colocados em qualquer ordem dentro do corpo da mensagem e
- os elementos tipo/marcação-comprimento-valor (T./M.C.V.[lower-alpha 1]) 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
Protocolos de transporte
- A segurança da camada de transporte (S.C.T.)[lower-alpha 4] [en] (e seu antecessor a camada de soquetes seguros (C.S.S.[lower-alpha 5]) usa mensagens codificadas por tipo/marcação-comprimento-valor (T./M.C.V.[lower-alpha 1]).
- '"Shell seguro (Sh.S.)[lower-alpha 6]
- Serviço de política aberta comum (S.P.A.C.)[lower-alpha 7] [en]
- Sistema intermediário para sistema intermediário (S.I.-S.I., também escrito S.I.S.I)[lower-alpha 8] [en]
- Serviço de autenticação remota de usuário de discagem (S.S.R.U.D)[lower-alpha 9]
- O protocolo de descoberta da camada de enlace (P.D.C.E.)[lower-alpha 10] [en] permite o envio de informações específicas da organização como um elemento tipo/marcação-comprimento-valor (T./M.C.V.[lower-alpha 1]) dentro de pacotes do protocolo de descoberta da camada de enlace (P.D.C.E.)[lower-alpha 10].
- O protocolo de redundância de mídia (P.R.M.)[lower-alpha 11] [en] permite informações organizacionais específicas
- O protocolo de configuração de host dinâmico (P.C.H.D.)[lower-alpha 12] usa opções codificadas tipo/marcação-comprimento-valor (T./M.C.V.[lower-alpha 1])
- O protocolo de gerenciamento de recurso de rádio (R.R.)[lower-alpha 13] usado em telefones celulares compatíveis com o sistema global para comunicações móveis (S.G.M.)[lower-alpha 14] (definido no projeto de parceria de 3ª geração (P.P.3.G.[lower-alpha 15]) 04.18). Neste protocolo cada mensagem é definida como uma sequência de elementos de informação.
Formatos de armazenamento de dados
- O formato de arquivo de intercâmbio (F.A.I.[lower-alpha 16]) [en]
- O Matroska usa tipo/marcação-comprimento-valor (T./M.C.V.[lower-alpha 1]) para marcações
- O formato de arquivo de tempo rápido (F.A.T.R.[lower-alpha 17]) [en] (a base para contêineres do grupo de especialistas em imagens em movimento 4 (G.E.I.M.-4[lower-alpha 18]) [en]
Outro
- O sistema de interconexão[lower-alpha 19] usado para comunicação entre processos (C.E.P.)[lower-alpha 20] no roteador sem fio aberto[lower-alpha 21][1]
Outros exemplos
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
Os protocolos principais da suíte de protocolos de Internet (particularmente o protocolo de Internet (P.I.)[lower-alpha 22], o protocolo de controle de transmissão (P.C.T.)[lower-alpha 23] e o protocolo de datagrama do usuário (P.D.U.)[lower-alpha 24] 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[lower-alpha 25] (e seus predecessores não padronizados), o protocolo de transferência de arquivos (P.T.A.)[lower-alpha 26], o protocolo de transferência de correio simples (P.T.C.S.)[lower-alpha 27], protocolo de correios (P.C.)[lower-alpha 28] e protocolo de iniciação de sessão (P.I.S.)[lower-alpha 29] usam pares "campo: valor" baseados em texto formatados de acordo com a Solicitação de comentários (S.D.C.) 2822 (em inglês)[lower-alpha 30].O protocolo de transferência de hipertexto (P.T.Ht.)[lower-alpha 25] 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)[lower-alpha 31] especifica várias regras de codificação baseadas em tipo/marcação-comprimento-valor (T./M.C.V.[lower-alpha 1]) (regras de codificação básica (R.C.B.)[lower-alpha 32], regras de codificação distintas (R.C.D.)[lower-alpha 33], bem como aquelas não são baseadas em tipo/marcação-comprimento-valor (T./M.C.V.[lower-alpha 1]) (regras de codificação empacotadas (R.C.E.)[lower-alpha 34], regras de codificação da L.M.X. (R.C.L.)[lower-alpha 35].
A notação de sintaxe concreta um (N.S.C.1)[lower-alpha 36] [en] descreve regras de codificação usando semântica que não é tipo/marcação-comprimento-valor (T./M.C.V.[lower-alpha 1]).
Mais recentemente, a linguagem de marcação extensível (L.M.X.)[lower-alpha 3] 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.[lower-alpha 37]) [en].
Ver também
- Chave-comprimento-valor (C.C.V.[lower-alpha 38]) [en] – tipo específico de codificação tipo-comprimento-valor.
Notas
- do inglês T.L.V. – type/tag-length-value
- do inglês X.M.L. – extensible markup language
- do inglês T.L.S. – transport layer security
- do inglês S.S.L. – secure sockets layer
- do inglês S.Sh. – secure shell
- do inglês C.O.P.S. – common open policy service
- di inglês I.S.-I.S., I.S.I.S. – intermediate system to intermediate system
- do inglês R.A.D.I.U.S. – remote authentication dial-in user service
- do inglês L.L.D.P. – link layer discovery protocol
- do inglês M.R.P. – media redundancy protocol
- do inglês D.H.C.P. – dynamic host configuration protocol
- do inglês R.R. – radio resource
- do inglês G.S.M. – global system for mobile communications
- do inglês 3.G.P.P. – 3rd generation partnership project
- do inglês I.F.F. – interchange file format
- do inglês QT.F.F. – QuickTime file format
- do inglês M.P.E.G.-4 – moving picture experts group
- 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.
- do inglês I.P.C . – inter-process communication ou interprocess communication
- do inglês Open W.Rt. – open wireless router
- do inglês I.P. – Internet protocol
- do inglês T.C.P. – transmission control protocol
- do inglês U.D.P. – user datagram protocol
- do inglês Ht.T.P. - hypertext transfer protocol
- do inglês F.T.P. – file transfer protocol
- do inglês S.M.T.P. – simple mail transfer protocol
- do inglês P.O.P.3 – post office protocol 3
- do inglês S.I.P. – session initiation protocol
- do inglês R.F.C. – request for comments
- do inglês A.S.N.1 – abstract syntax notation one
- do inglês B.E.R. – basic encoding rules
- do inglês D.E.R. – distinguished encoding rules
- do inglês P.E.R. – packed encoding rules
- do inglês X.E.R. – X.M.L. encoding rules
- do inglês C.S.N.1 concrete syntax notation one
- do inglês B.E.E.P. – blocks extensible exchange protocol
- do inglês K.L.V. – key-length-value
Referências
- «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
- tlve (em inglês), um analisador tipo/marcação-comprimento-valor (T./M.C.V.) comum.