ja nie widzę tutaj żadnych zrodel do potrzeby poza tym:
Kod:
socket(AF_INET, SOCK_RAW, IPPROTO_...);
wypelnieniem pól pakietu czego dowiadujesz sie z referencji o protokole
innymi slowy tworzysz strukture
no i ostatnim krokiem jest wyslanie paczki do celu.
Jesli chcesz zrobic to wraz z naglowkiem IP ktory poczatkuje kazda paczke.
robisz tak po utworzeniu gniazdka:
Kod:
int val = 1;
setsockopt(fd, IPPROTO_IP, IP_HDRINCL, &val, sizeof(val));
jezeli nie pomijasz ten blok kodu, kernel zrobi to za ciebie.
pamietaj ze kazda wysylka pakietu z surowych gniazd odbywa sie za pomoca funkcji sendto i do odbierania recvfrom. w strukturze sockaddr_in deklarujesz standardowo adres i porty zarowno jak i w naglowku ip(opcjonalne).
To chyba wszystko. Jak juz wspomnialem pola pakietu masz w referencjach.