Cómo transferir grandes cantidades de datos mediante TCP / IP

Actualizado el Dec 1, 2021

Reportado en

Software

  • LabVIEW

Detalles del problema

Tengo datos de medición almacenados  en una matriz de 10 x 50 000 elementos. Quiero transferir estos datos de LabVIEW a otra computadora. Hasta donde yo sé, el protocolo TCP / IP tiene un límite de 65 535 bytes. ¿Hay alguna forma de comprimir los datos antes de enviarlos o alguna forma de transferir esta enorme cantidad de datos en tiempo real?

Solución

La función de escritura TCP de LabVIEW y las funciones de lectura TCP son funciones de alto nivel que se encargan automáticamente de transmitir los datos de una manera adecuada para la conexión de red subyacente.

En el ejemplo descrito anteriormente, la función de escritura TCP dividirá los datos del usuario y los transferirá utilizando múltiples tramas / paquetes de red.

Información adicional

Tamaños de paquetes

Un paquete IPv4 está limitado a un tamaño de 65 535 bytes. Sin embargo, las capas inferiores de una conexión TCP / IP suelen tener tamaños de paquete más bajos: es decir, la "Unidad de transmisión máxima" (MTU) para Ethernet es de alrededor de 1.500 bytes.

Consideración del ancho de banda

Tenga en cuenta que el ancho de banda de una conexión TCP / IP es limitado. Una matriz de 500.000 elementos de tipo DBL como se describe en el número anterior equivale aproximadamente a 4 MB de datos de usuario. La transferencia de esta matriz tres veces por segundo ya sobresatura una conexión Fast Ethernet de 100 MBit / s.

Código de ejemplo

Este es un ejemplo de cómo transferir el arreglo del problema descrito anteriormente usando las funciones TCP de LabVIEW. Ejecute destinatario.vi primero, luego sender.vi.



Esta captura de pantalla muestra las tramas de red reales que se transfieren a través de Ethernet cuando se ejecutan los códigos de ejemplo anteriores:

Las tramas # 1 a # 3 configuran la conexión, la trama # 4 es la transmisión de la longitud de los datos (4 bytes), la trama # 5 es la primera que transfiere el array. Tenga en cuenta que la trama # 5 y las siguientes tienen un tamaño de 1514 bytes cada una (excepto las tramas de reconocimiento como la trama # 10 enviada desde el destinatario al remitente).