Fountain codes represent a class of erasure correction codes designed to facilitate reliable data transmission over unreliable or bandwidth-constrained channels ...