Полученные пакеты UDP и TCP никогда не передаются в необработанные сокеты. Если процесс хочет прочитать IP-дейтаграмму, содержащую пакеты UDP или TCP, пакеты должны быть прочитаны на канальном уровне. проверить эту ссылку
http://aschauf.landshut.org/fh/linux/udp_vs_raw/ch01s03.html
если пакет не кэшируется на уровне 2, то он обрабатывается ядром.
И если пакет имеет протокол icmp и является запросом типа echo, запросом временной метки или запросом маски адреса, то он полностью обрабатывается ядром, иначе он будет передан в RAW SOCKETS.
Еще один - все дейтаграммы с полем протокола, которое ядро не понимает, передаются в необработанные сокеты, только базовая обработка ip выполняется на них
Наконец, если дейтаграмма поступает фрагментами, то в необработанные сокеты ничего не передается, пока все фрагменты не будут собраны и повторно собраны.
Если вы хотите узнать больше, прочитайте эту книгу .