1、 原始套接字的主要功能是什么?
课本(P138)
1) 发送和接收ICMPv4、IGMPv4和ICMPv6等分组;
2) 发送和接收内核不处理其协议字段的IPv4数据包;
3) 控制IPv4首部。
2、 原始套接字的适用场合有哪些?
课本(P139)
1) 特殊用途的探测应用;
2) 基于数据包的捕获应用;
3) 特殊用途的传输应用。
3、 原始套接字的发送内容是否需要包含IP首部?接收的数据是否包含IP首部?
课本(P141、P144)
1) 接收数据的内容
从接收数据的内容来看,不论如何设置发送选项,对于IPv4,原始套接字接收到的数据都是包括IP首部的内在的完整数据包,对于IPv6,原始套接字接收到的都是去掉了IPv6首部和所有扩展首部的净载荷。
2) 发送数据的内容
从发送数据的内容来看,原始套接字的发送内容涉及多种协议首部的构造,对于IPv4(或IPv6)数据的发送,IP首部控制选项为协议首部的填充提供了两个层次的选择:如果是IPv4,选项为IP_HDRINCL,选项级别为IPPROTO_IP;如果是IPv6,选项为IPV6_HDRINCL,选项级别为IPPROTO_IPV6。
当IP首部控制选项未开启,则不需要包含IP首部,IP协议首部由协议栈负责填充;
当IP首部控制选项开启,则需