要生成具有扩展的IP标头设置的数据包,可以使用级别SOL_IP和选项IP_OPTIONS执行ockopt操作:
int ipoption=0xbaadf00d;
int sockfd=socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
setsockopt(sockfd, SOL_IP, IP_OPTIONS, &ipoption, sizeof ipoption);
在尝试连接TCP堆栈时进行此操作后,将生成具有正确扩展头的数据包。 问题是如何对服务器套接字执行相同操作:我期望TCP服务器套接字响应具有特定IP标头扩展名的SYN / ACK数据包来响应连接。但是对套接字使用相同的setsockopt不会产生任何效果。不管我何时调用setsockopt-在监听之前,在接受之前等等。是否有可能以某种方式将IP选项应用于服务器套接字而无需切换到RAW套接字?