API? На C? На уровне пакетов ethernet? Ну, какие-то либы наверняка найдутся, позволяющие формировать пакеты, но я бы на месте твоего препода добавил условие "и без использования библиотек".
Берется RFC, читается, формируется пакет вручную и вручную же отправляется в сетевой стек на нужном уровне.