Registros lógicos usados en conversaciones básicas

Los registros lógicos se envían y reciben solo en conversaciones básicas.

Un TP puede enviar o recibir varios registros lógicos con un solo SEND_DATA o recibir verbo. Los verbos de recepción son RECEIVE_AND_POST, RECEIVE_IMMEDIATE y RECEIVE_AND_WAIT. Un TP también puede enviar o recibir un registro lógico en partes sucesivas: principio, medio y final.

Un registro lógico se compone de:

  • Campo de longitud de registro de 2 bytes (LL).

  • Campo de datos que puede oscilar entre 0 bytes y 32765 bytes.

    El campo LL contiene un valor hexadecimal que es la longitud del campo de datos más dos bytes (para el campo LL). Por ejemplo, si un registro contiene 228 bytes de datos de aplicación, la longitud del registro lógico es de 230. El campo LL es 0x00E6, el equivalente hexadecimal de 230. Si la longitud del campo de datos es 0, el valor contenido en el campo LL es 0x0002.

    Los registros lógicos se envían o reciben en un búfer de datos establecido por el TP. En el búfer de datos, el campo LL no debe estar en formato de intercambio de bytes de Intel. Por ejemplo, una longitud de 230 debe ser 0x00E6, no 0xE600.

    El campo LL no puede ser 0x0000 ni 0x0001, lo que permite menos de los dos bytes necesarios para el propio campo LL. El campo LL tampoco puede ser mayor o igual que 0x8000, que equivale a decimal 32768 y, por lo tanto, permite un campo de datos mayor que 32765 o un campo LL mayor que 2.

    Si se establece el bit más significativo del campo LL en 1, se indica que la información contenida en el registro lógico actual continúa en el siguiente registro lógico.