Идея подсмотрена на Linux Kernel Newbies. Суть заключается в создании драйвера сетевого устройства (проводного, беспроводного) управляемого из userspace, так чтобы он эмулировал работу сети. Т. е. драйвер с двумя выходами - с одной стороны сетевой драйвер, а с другой стороны символьное (или блочное, хотя маловероятно) устройство, поверх символьного драйвера должен быть создан набор библиотек, которые будут предоставлять возможность генерирования различных видов траффика (или даже какой-то сокетоподобный интерфейс)