Sockets TCP: retardos y optimización

Base de conocimiento de la plataforma de desarrollo Velneo

Moderador: vCoaches

Responder
vBdC
vGuru
vGuru
Mensajes: 2
Registrado: 11 Oct 2005, 14:22

Sockets TCP: retardos y optimización

Mensaje por vBdC » 15 Abr 2004, 01:00

Sockets TCP: retardos y optimización

Categorías: VATP/HTTP, Sistema operativo

Palabras clave: Socket, Paquete, Optimización

Enunciado:
Para optimizar nuestra aplicación y que haga un mejor uso de los paquetes o sockets, debemos tener en cuenta la siguiente información.

Imagen

Desarrollo:
La comunicación entre máquinas se establece mediante sockets. Una vez establecida dicha comunicación, la información viaja distribuida en paquetes con un tamaño de unos 4 kb (aproximadamente). Por ejemplo: un conjunto de datos de 400 kb viajaría distribuido en unos 100 paquetes.

Los sockets llevan, entre otros parámetros, la IP origen y la IP destino, de modo que siempre alcanzan su destino: si un nodo falla en la comunicación otros nodos son interrogados para lograr el envío.
Una vez establecida la comunicación (socket), el tiempo que los paquetes de información emplean en viajar es el mismo independientemente de que ocupen 4 kb o menos. Es en el establecimiento del socket donde se ralentiza la comunicación, ya que una vez establecida el traspaso de información es rápido, tardando más o menos según el canal por el que viajen los datos (enviar 1k es casi igual a enviar 4k).

Por otro lado, en una red local el tiempo que un socket emplea en viajar es de unos 10 ms, mientras que a través de internet ronda los 150-250 ms, de ahí que las peticiones a través de internet sean mucho más lentas: se produce un retardo, y por lo tanto conviene generar el menor número de sockets posible: hemos de optimizar nuestras aplicaciones.

Existen diversos factores que aumentan el número de sockets generados, por ejemplo las rejillas en las que se presentan datos capturados medite punteros indirectos. Por ejemplo: si a través de internet presentamos una rejilla con datos de la misma tabla, se generan dos sockets, uno para la petición y otro para el envío de datos, de modo que la rejilla se presentaría en menos de un segundo. Sin embargo, si presentamos registros capturados mediante un puntero indirecto generamos tantos sockets como registros se presenten, de modo que si encontramos 100 registros, la rejilla tardaría 25 segundos en presentarse.

Para controlar cuantos sockets genera el uso de un objeto visual (un formulario, un proceso, una rejilla, un menú, un casillero, cualquier objeto), y poder optimizarlo, podemos hacer uso de la ventana Acerca de... de la que disponemos en el Servidor de Aplicaciones. En el marco de número de conexiones realizadas tenemos el dato de las conexiones o sockets VATP que genera el servidor. Para probarlo, aislaremos el objeto visual que queremos comprobar, controlando en el Servidor de Aplicaciones el efecto que tiene sobre el número de paquetes que envía al ejecutar el objeto.

Debemos tener en cuenta, por último, que el Hilo de control genera un paquete o socket en el intervalo de tiempo estipulado en la configuración del Navegador iRunner.


Artículos relacionados
Pérdida de paquetes o sockets en Windows XP ó 2003 Server
¿Qué es el hilo de control?
Optimización del tamaño de las transacciones
Acerca del Servidor de Aplicaciones: información sobre el servidor y las llaves hardware
¿Cuando se evalúan las condiciones de visibilidad y de activo y que importancia tiene de cara a la optimización de mi aplicación?
Pérdida de sockets tras nuevas actualizaciones de Windows
Última edición por vBdC el 15 Abr 2004, 01:00, editado 1 vez en total.

Responder