Problemas de programación de red para grandes transmisiones de datos
A la hora de programar en Linux, no es necesario tener en cuenta cuestiones de hardware, a menos que quieras limitar la velocidad.
Puede utilizar el modelo epoll para reemplazar el proceso de subproceso y luego dividir los datos que deben transmitirse en varias partes y procesarlas simultáneamente. Se puede realizar una compresión simple antes de enviar los datos para acelerar la transmisión. La subrutina epoll de procesamiento de datos y envío de datos debe estar separada. epoll admite múltiples CPU, lo que puede acelerar enormemente el procesamiento.
Las tarjetas de red duales son un problema de nivel inferior y no tienen nada que ver con el método de programación que utilice. No necesita preocuparse por eso. El sistema asignará automáticamente recursos de la tarjeta de red a su programa de red. . Una vez que haya iniciado el subproceso múltiple, puede usar los comandos de Linux para verificar cuánto tráfico de red actual se está utilizando. Si no se utiliza por completo, agregar más tarjetas de red no ayudará.
En cuanto a los interruptores, en lugar de utilizar dos, es mejor utilizar uno más rápido. Sin embargo, según mi experiencia, el cuello de botella de los programas de red suele estar en el ordenador y no en el conmutador.
Si los datos de control son importantes pero la cantidad no es grande, es mejor usar TCP para la transmisión. Después de todo, su red de área local, para decirlo sin rodeos, cuánta eficiencia de TCP puede hundirlo. . TCP procesa datos de control solo. Este método se usa más comúnmente en programas de red generales.
En cuanto a los datos transmitidos, si realmente necesita la transmisión UDP, le recomendamos que se conecte a Internet para recopilar algunos algoritmos de transmisión redundantes. Estos algoritmos pueden permitirle utilizar UDP sin perder datos, pero según mi opinión. Experiencia personal En la LAN, UDP tiene una mejora limitada en la velocidad de transmisión de datos en comparación con TCP.