我无法理解或掌握; 在套接字编程中在较低层编程意味着什么.我习惯使用tcp/udp /文件系统套接字.这些都包含在他们自己的协议规范中......据我所知,这将使它在堆栈中的应用层工作.
在我正在进行的项目中,我看到一些文件被"命名为"LinkLayer,TransportLayer ......但我没有看到除标准套接字调用之外的任何其他调用.... send/recv/seletct ...
您设置套接字选项的事实是否意味着您在较低级别进行编程?它仅限于此吗?或者是否有其他API授予您访问内核中的表示形式的权限?
通常这是指使用SOCK_RAW套接字,它需要您组装自己的数据包标头,计算校验和等.您仍然使用send/recv/etc. 但现在你有责任确保每一位都在正确的位置.
您可以使用SOCK_RAW套接字来实现除TCP或UDP之外的协议,或者使用更高级别接口无法容纳的Internet协议(例如调整数据包的TTL以实现traceroute之类的操作).