skb_header_pointer and skb_transport_header
1.
struct iphdr *ip_header = (struct iphdr *)skb_network_header(skb); struct tcphdr *tcp_header = (struct tcphdr *)skb_transport_header(skb);
2.
struct iphdr *ip_header = skb_header_pointer(skb, 0, sizeof(struct iphdr), &_iph) struct tcphdr *tcp_header = skb_header_pointer(skb, ip_header->ihl * 4, sizeof(struct tcphdr), &_tcph);