 An ALG software module running on a NAT firewall device updates any payload data made invalid by address translation.ALGs need to understand the higher-layer protocol that they need to fix, and so each protocol with this problem requires a separate ALG.For example, on many Linux systems there are kernel modules called "connection trackers" that serve to implement ALGs.