Eu não sei sobre 'gen2' vs 'gen3', mas o que posso dizer é o seguinte:
Firewalls SPI filtram os estados da 'sessão'
Esse firewall controla o estado de uma sessão TCP ou UDP. Isso fornece uma vantagem sobre firewalls mais simples, por exemplo
If a malicious user were snooping the traffic between two nodes, he could send traffic to node A with the spoofed IP of node B through the firewall, b/c the firewall has already agreed to open the allow port B traffic through for a particular 'session'.
Isso pode acontecer mesmo após o término da sessão, criando pacotes com os mesmos detalhes da sessão. Os firewalls com informações de estado dependem do handshake de três vias entre os dois nós para conexões TCP e não permitirão a passagem do tráfego se o handshake não tiver ocorrido (exceto, é claro, os próprios pacotes de handshake). Para o tráfego UDP, é usada uma técnica chamada UDP Hole Punching, e as sessões geralmente obtêm o estado ESTABLISHED imediatamente. Embora nada seja completo, os firewalls da SPI certamente provaram seu valor.
Firewalls da camada de aplicativo filtram 'Assinaturas de protocolo'
Agora, o que isso significa? Considere o seguinte:
Company B 'blocks' ssh by restricting access to port 22 outbound
Bem, sabemos que isso não faz muito, já que eu executo meu servidor ssh na porta 443, já que as redes mais permitem 443 para tráfego web geral https. Isso seria permitido pelos firewalls da SPI, porque o estado da sessão é tipicamente independente do protocolo.
Os firewalls da camada de aplicativo, por outro lado, observam o tráfego e dizem Ei, isso parece mais com tráfego SSH e não tráfego https, estou interrompendo essa conversa porque não permitir tráfego ssh .
Em suma, cada protocolo tem sua própria assinatura , se você quiser. Os firewalls da camada de aplicativo examinam as assinaturas e 'tentam' determinar os aplicativos que a usam e filtram a partir daí.
Eu sei que você não perguntou isso, mas tudo depende de suas necessidades. Você pode precisar de um, o outro ou ambos .