PF_PACKET
SOCK_STREAM (TCP)、SOCK_DGRAM (UDP) 工作在传输层,SOCK_RAW 工作在网络层
网络层:SOCK_RAW 可以处理ICMP、IGMP等网络报文、特殊的IPv4报文、可以通过IP_HDRINCL套接字选项由用户构造IP头
传输层TCP套接字的名字:SOCK_STREAM; 特点:可靠,开销大
传输层UDP套接字的名字:SOCK_DGRAM; 特点:不可靠(局网内还是比较可靠的),开销小。
项目中经常使用SOCK_RAM类型进行数据包通信。使用一个线程recvform收包。收到报文后通过上层注册进来的recv_func钩子函数将数据包传递给上层。