Как отправлять произвольные данные через сетевую карту?
Универсальное, но не самое гибкое и быстрое решение: raw socket. Работает во всех популярных ОС.
Да почему нет-то? Написать модуль ведра, который ловит сигнал от дров сетевухи о том, что у него данные есть в приемнике и копировать эти данные себе. Но если Вы не планируете полностью отобрать данные у ведра - лучше всего придумать метку кастомного протокола и забирать себе только то, что надо :)