Source: https://csricted.univ-setif.dz/Documents/cours-informatique/squid.pdf