Memcache (d) vs. Varnish para acelerar a arquitetura da web de 3 camadas

Estou tentando acelerar meu benchmark (arquitetura da web de 3 camadas) e tenho algumas perguntas gerais relacionadas ao Memcache (d) e ao Varnish. Qual é a diferença? Parece-me que o Varnish está por trás do servidor web, armazenando páginas da web em cache e não requer alteração de código,...