Un ALG actúa de intermediario entre Internet y un servidor de aplicaciones que puede entender el protocolo de aplicación. El ALG aparece como servidor de punto final y controla si se debe permitir o denegar el tráfico al servidor de aplicación. Esto lo hace interceptando y analizando el tráfico especificado, asignando recursos, y definiendo políticas dinámicas para permitir que el tráfico pase a través del gateway.
Un ALG tiene las siguientes funciones:
Permite que las aplicaciones cliente utilicen puertos TCP / UDP dinámicos para comunicarse con puertos conocidos usados por las aplicaciones de servidor, incluso si la configuración del firewall permite el tráfico a través de sólo un número limitado de puertos. Sin un ALG, los puertos serían bloqueados o el administrador de la red tendrían que abrir una gran cantidad de puertos en el firewall, provocando un debilitamiento de la red y permitiendo potenciales ataques en esos puertos.
Reconoce comandos específicos de aplicación y ofrece controles de seguridad sobre ellos.
Puede convertir la información de direccionamiento de la capa de red que se encuentra en la carga útil (payload) de la aplicación.
Sincroniza múltiples flujos o sesiones entre hosts.