Su una programma per l'uso di SOCKET RAW ho trovato all'inizio questa definizioni di variabili e strutture

int sd;
char buffer[8192];
struct iphdr *ip = (struct iphdr *) buffer;
struct tcphdr *tcp = (struct tcphdr *) (buffer + sizeof(struct iphdr));

domanda che significa sta roba?
definisco intero sd ok.
definisco stringa di 8192 byte ok.
definisco puntatore alla struttura iphrd e lo pongo uguale a cosa??!?!?!??!
definisco puntatore alla struttura tcphdr e lo pongo uguale a cosa??!?!?!??!


GRAZIE E CIAO A TUTTI!