C++ niskopoziomowa biblioteka sieciowa

Witam.

Poszukuję biblioteki języka C++, która umożliwiłaby niskopoziomową obsługę sieci. Konkretniej potrzebna jest mi możliwość wysyłania najbardziej podstawowych pakietów - TCP i UDP. Jednakże wymagam od niej możliwości edycji każdej jego części - począwszy od możliwości edycji wysyłanych danych, przez ustawianie flag, aż po zmianę sumy kontrolnej. Dodatkowym atutem byłaby obsługa systemów GNU/Linux. Jakiej biblioteki mógłbym użyć do tego celu?

http://en.wikipedia.org/wiki/Raw_socket

http://linux.die.net/man/7/raw

Obsługiwane zarówno pod Linuxem jak i Windows.

Co szkodzi napisać własną?

Żeby modyfikowa≤ć datagramy TCP/UDP musisz mieć prawa root-a.