以 Windows 7 为示例平台,我想了解如何在第 3 层(IP)层编写应用程序。以我想在 C/C++ 中实现 ping 自己的情况作为一个简单的说明性示例。我该怎么做呢?
当然,问题在于,当在 IP 层而不是 TCP/UDP 层运行时,没有端口号标识IP 层将数据包交给的进程(我的进程)。所以,这绝对不能是一个传统的应用层程序。
相反,我认为我需要编写一个 3 级 hdnler 来执行我想要的操作并将其注册到操作系统以取代现有的 IP 层实现。
我的想法正确吗?如果是这样,我将如何实施它?如果不是,正确的方法是什么?
最后,我想问关于第 2 层(以太网)的完全相同的问题。如何直接发送和接收以太网帧?