Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
TCP/IP tiene características que permiten que el protocolo funcione como dictan sus requisitos de implementación estandarizados. Estas características pueden combinarse con opciones de desarrollo que dan lugar a un rendimiento deficiente. El impacto que tienen estas características tcp/IP en una aplicación depende de si la aplicación es transaccional o de streaming.
Las aplicaciones transaccionales se ven afectadas por la sobrecarga necesaria para el establecimiento y la terminación de la conexión. Por ejemplo, cada vez que se establece una conexión en una red Ethernet, se deben enviar tres paquetes de aproximadamente 60 bytes, y se requiere aproximadamente un RTT para el intercambio. Cuando se produce la terminación de una conexión, se intercambian cuatro paquetes. Esto es para cada conexión; Una aplicación que abre y cierra las conexiones a menudo incurre en esta sobrecarga en cada aparición.
Otro aspecto de TCP/IP es de inicio lento, que tiene lugar cada vez que se establece una conexión. El inicio lento es un límite artificial en el número de segmentos de datos que se pueden enviar antes de recibir la confirmación de esos segmentos. El inicio lento está diseñado para limitar la congestión de la red. Cuando se establece una conexión a través de Ethernet, independientemente del tamaño de la ventana del receptor, una transmisión de 4 KB puede tardar hasta 3-4 RTT debido al inicio lento.
Una optimización tcp/IP denominada algoritmo nagle también puede limitar la velocidad de transferencia de datos en una conexión. El algoritmo nagle está diseñado para reducir la sobrecarga del protocolo para las aplicaciones que envían pequeñas cantidades de datos, como Telnet, que envía un solo carácter a la vez. En lugar de enviar inmediatamente un paquete con muchos encabezados y pocos datos, la pila espera más datos de la aplicación, o una confirmación, antes de continuar.
Las confirmaciones diferidas, comúnmente conocidas como ACK retrasadas, también están diseñadas en TCP/IP para permitir el piggybacking más eficaz de las confirmaciones cuando los datos devueltos van a llegar desde la aplicación del lado receptor. Desafortunadamente, si estos datos no están disponibles y el lado de envío está esperando una confirmación, pueden producirse retrasos de aproximadamente 200 milisegundos por envío.
Cuando se cierra una conexión TCP, los recursos de conexión en el nodo que inició el cierre se colocan en un estado de espera, denominado TIME-WAIT, para protegerse contra los datos dañados si los paquetes duplicados permanecen en la red. Esto garantiza que ambos extremos finalicen con la conexión. Esto puede provocar el agotamiento de los recursos necesarios por conexión, como ram y puertos, cuando las aplicaciones abren y cierran conexiones con frecuencia.
Además de verse afectado por ACK retrasado y otros esquemas de prevención de congestión, las aplicaciones de streaming también pueden verse afectadas por un tamaño de ventana de recepción predeterminado demasiado pequeño en el extremo receptor.
Temas relacionados