接口层包括在本地网上发送和接收分组的硬件与软件。
我们用设备驱动程序来表示与硬件及网络接口通信的软件,网络接口是指在一个特定网络上硬件与设备驱动器之间的接口。
Net/3接口层试图在网络协议和连接到一个系统的网络设备的驱动器间提供一个与硬件无关的编程接口。这个接口层为所有的
设备提供以下支持。
1.一套精心定义的接口函数。
2.一套标准的统计与控制标志。
3.一个与设备无关的存储协议地址的方法。
4.一个标准的输出分组的排队方法。
这个不要求接口层提供可靠地分组传输,仅需要提供最大努力的服务。更高协议层必须弥补这种可靠性缺陷。
ifnet结构
结构ifnet结构中包含所有接口的通用信息,在系统初始化期间,分配为每个网络设备分配一个独立的ifnet结构,每个ifnet结构
有一个列表,它包含这个设备一个或多个协议地址。下图说明了一个接口和它地址之前的关系。
上图的接口显示了3个存放在ifaddr结构中的协议地址。虽然一些网络接口,例如slip,仅支持一个协议,而其他接口,如
以太网,支持多个协议并需要多个地址。例如,一个系统可能使用一个以太网接口同时同于Internet和OSI两个协议。一个
类型字段标识每个以太网帧的内容,并且因为Internet和OSI协议使用不同的编址方式,以太网接口必须有一个Internet地址
和一个OSI地址。
下图是包含在结构ifnet中的实现信息。
ifnet结构中的下一部分显示在下图,它用来描述接口的硬件特征。