这些选项级别为IPPROTO_IP
IP_HDRINCL:
如果此选项给一个原始IP套接口,必须为所有发判定以此原始套接口上的数据报构造自己的IP头部。一般情况下,内核为发送到原始套接口上的数据报构造IP头部,但也有某些应用程序要构造自己的IP头部以取代IP可能放到其头部的某些字段的值。
当设置此选项时,构造完整的IP头部,不过下列情况例外:
(1)IP总是计算并存储IP头部校验和
(2)如果将IP标识字段置为0,内核将设置此字段
(3)如果源IP地址是IN_ADDR_ANY,IP将它设置为外出接口的主IP地址
(4)如果设置IP选项是依赖于实现的。有些实现取IP_OPTIONS套接口选项中设置的任何IP选项,并将它们附加到所构造的头部中,而其它实现则要求亲自在头部指定任何期望的IP选项。
IP_OPTIONS:
设置此选项允许在IPv4头部中设置IP选项,要求掌握IP头部中IP选项的格式信息。
IP_RECVDSTADDR:
这个套接口选项导致所接收到的UDP数据报的目的IP地址由函数recvmsg作为辅助函数返回。
IP_RECVIF:
这个套接口选项导致所接收到的UDP数据报的接口索引由函数recvmsg作为辅助数据返回
IP_TOS:
此选项使我们可以给TCP或UDP套接口在IP头部中设置服务类型字段。
可以将TOS设置为下面几个值 ,它们都在头文件<netinet/ip.h>中定义
IPTOS_LOWDELAY:最小化延迟
IPTOS_THROUGHPUT:最大化吞吐量
IPTOS_RELIABILITY:最大化可靠性
IPTOS_LOWCOST:最小化成本
IP_TTL:
设置和获取系统用于某个给定套接口的缺省TTL值