端口号对raw socket没有意义。
tcp和udp包不会转给raw socket。raw socket要接收tcp和udp包,需要在数据链路层。
内核先处理ICMP/IGMP包,然后转给raw socket。
使用IP_HDRINCL,可以自己组装IP包头部。
如果raw socket创建时,protocol为0,未bind和connect,那么内核收到的每一份原始数据报会传递给该raw socket一份。
当一个接收到的数据报传递给IPv4 raw socket时,整个数据报(包括IP头部)都传递给其进程。(IPv6的,要去除扩展头部。)