最近我遇到了几个关于在非常低级别上使用套接字的问题。 Here's an example。在寻找答案时,我意识到套接字在OSI Level 2上具有相对较低的功能。在Linux上,我们可以在创建套接字时指定协议,但显然并非列表中存在所有Level 2协议。
虽然可以组装和发送以太网帧,但是(可能)不可能发送802.11数据包 - 虽然看起来wifi设备驱动程序确实将以太网帧转换为wifi数据包,反之亦然。
这让我想知道,如果有更多的可能性直接读取和写入eht0
,ath0
等设备文件?通常是写入这些文件或设备驱动程序的套接字实现吗?谁在接收端 - 一个NIC驱动程序,一个外围总线控制器?