11.4.1 SOCK_PACKET类型

11.4.1  SOCK_PACKET类型

建立套接字的时候选择SOCK_PACKET类型,内核将不对网络数据进行处理而直接交给用户,数据直接从网卡的协议栈交给用户。建立一个SOCK_PACKET类型的套接字使用如下方式:

 

socket (AF_INET, SOCK_PACKET,htons(0x0003));

 

其中AF_INET=2表示因特网协议族,SOCK_PACKET=10表示截取数据帧的层次在物理层,网络协议栈对数据不做处理。值0x0003表示截取的数据帧的类型为不确定,处理所有的包。

使用SOCK_PACKET进行程序设计的时候,需要注意的主要方面包括协议族选择、获取原始包、定位IP包、定位TCP包、定位UDP包、定位应用层数据几个部分,下面几节中将进行详细的介绍。

你可能感兴趣的:(11.4.1 SOCK_PACKET类型)