Pues como bien dices .. si no dominas "sockets" .. deberías empezar por ahì: aprender sobre ellos.
En PHP sòlo hay un grupo de funciones para gestionar sockets:
www.php.net/socket
y otras que podrìas implementarlo:
fsockopen() y afines ...
Por lo demás .. me parece que PHP no es el mejor lenguaje para este tipo de aplicaciones. Tu necesitas un proceso que corra por tiempo determinado .. tal vez "ilimitado" .. PHP no està desarrollado (ni menos en este entorno web) para tal fin. En las aplicaciones "web" se basan en que tu "pides" el proceso .. este se ejecuta lo más rápido posible y se entrega el resultado al cliente para liberarlo hasta la próxima petición.
Te vendrìa mejor usar algùn lenguaje de tipo "escritorio" como así están diseñados los "sniffer" que mencionas. Otro detalle será cuando metas un sniffer en una red que funciona con Switch vs a Hub's ... ahí veras que poco vas a "capturar" .. pero bueno esto ya no es un tema de PHP sino de redes y de como funcionan las comunicaciones al usar este tipo de dispositivos.
Màs que un "sniffer" deberìas desarrollar un proxy (creo yo) ... pasar tus conexiones por ese proxy y ver los "log's" de actividad de ese proxy para ver que contenido circula por el.
Un saludo,