Any package download (unicast, multicast, push, or pull) is typically the function of the client's package management system (apt, yum/dnf, zypper, emerge ) which may have client-side caching, and it is all sourced against a centrally managed package repository system. A centrally managed package repository system may or may not have server-side caching and may or may not allow for multicasting the packages out to clients.
And none of that involves puppet. I might get this wrong as I am going directly from memory, but the puppet master delivers a catalog, a set of instructions, to a client so that the client can reach a desired configuration state. The puppet master can send files too, but those files are typically plain-text files or templates, and are not the software packages. Those come typically come from a centrally managed package repository system running on a server.