Cosa devi fare di preciso? Lavorare a layer ethernet non è conveniente a meno che tu non voglia espressamente farlo (es: hack applicato al protocollo ARP?).
Tramite socket_raw puoi lavorare a livelli superiori a ethernet (esempio IP) e delegare il compito di compilare tali trame interamente a socket_raw (cosa che ti risparmia sforzo, linee di codice e sopratutto conoscenza necessaria).
Su come programmare con raw_socket vi sono numerose guide su internet. Di italiano le uniche fonti che posso indicarti sono gli articoli, redatti prevalentemente da fusys, presenti su bfi:
http://bfi.freaknet.org/
...e qualche paper su mojodo (se non ricordo male vi è un articolo che tratta i socket_raw applicati ad ICMP):
http://www.mojodo.it/

Per tutto il resto:
www.google.it

Ovviamente, ripeto, prima di avventurarsi ci vogliono determinate skill.