Articulo de referencia

Fusión TCP

TCP Fusion es una función para proporcionar un bucle de retorno TCP y se implementa en la pila del Protocolo de control de transmisión (TCP) dentro de los sistemas operativos Or...

TCP Fusion es una función para proporcionar un bucle de retorno TCP y se implementa en la pila del Protocolo de control de transmisión (TCP) dentro de los sistemas operativos Oracle Solaris -10 y Solaris-11, así como en una serie de proyectos de software basados ​​en la base de código fuente abierta del proyecto OpenSolaris . La idea es trivial en el sentido de que una conexión de cliente y servidor en una interfaz de bucle de retorno local dentro del mismo sistema no debería necesitar toda la pila de protocolos TCP/IP para intercambiar datos. Por lo tanto, se proporciona una ruta de datos más rápida con la fusión de los dos puntos finales.

El código fuente está bien documentado en inet/tcp/tcp_fusion.c que establece claramente:

La fusión TCP es una ruta de datos sin protocolo para conexiones de bucle invertido TCP. La fusión de dos puntos finales TCP locales se produce en el momento del establecimiento de la conexión. Se deben cumplir varias condiciones (consulte los detalles en tcp_fuse()) para que la fusión sea exitosa. Si falla, volvemos a la ruta de datos TCP normal; si tiene éxito, ambos puntos finales proceden a utilizar tcp_fuse_output() como ruta de transmisión. tcp_fuse_output() pone en cola los datos de la aplicación directamente en la cola de recepción del par; no se involucra ningún procesamiento de protocolo. La sincronización se maneja mediante squeue y el mutex tcp_non_sq_lock. Uno de los requisitos para que la fusión sea exitosa es que ambos puntos finales deben usar la misma cola. Esto garantiza que ninguno de los lados pueda desaparecer mientras el otro lado sigue enviando datos. La información de control de flujo se manipula fuera de la cola, por lo que tcp_non_sq_lock debe mantenerse al tocar tcp_flow_stopped.

La función se puede habilitar o deshabilitar a través del archivo de configuración /etc/system para el kernel Solaris o genunix y la única línea requerida es "set ip:do_tcp_fusion = 0x0" que desactiva la función o la convierte en FALSO mientras que "0x1" es para VERDADERO hexadecimal.

Consulte https://github.com/illumos/illumos-gate/blob/master/usr/src/uts/common/inet/tcp/


Retrieved from "https://en.wikipedia.org/w/index.php?title=TCP_fusion&oldid=1214621175"