操作系统网络设备驱动程序 (NDD) 中的套接字地址

在操作系统 NDD 域中,套接字地址包含 NDD 名称,该名称将套接字与本地设备 (或适配器) 相关联。 套接字地址还包含与协议相关的部件。

通常,应用程序使用 bind 子例程将套接字绑定到特定本地设备和 802.2 服务访问点 (SAP)。 用于绑定到特定 NDD 和包类型的信息在传递到 bind 子例程的 NDD 套接字地址中指定。 绑定套接字后,它可用于接收绑定 SAP 的信息包,这些信息包将寻址到该设备的本地主机介质访问控制 (MAC) 地址 (或广播地址)。 可以使用 sendsendtosendmsg 套接字子例程来传输原始包。

操作系统 NDD 套接字地址结构的协议相关部分定义如下:
描述
以太网 以太网 NDD sockaddrsys/ndd_var.h 文件中定义。 sockaddr 结构名称为 sockaddr_ndd_8022。 此 sockaddr 允许您绑定到以太网类型编号或 802.2 SAP 编号。 当绑定到特定类型或 SAP时,可以使用套接字来接收该类型或 SAP的信息包。 要传输的包必须是包含 MAC 和逻辑链路控制 (LLC) 头的完整以太网包。
令牌环 令牌环 NDD sockaddrsys/ndd_var.h 文件中定义。 sockaddr 结构名称为 sockaddr_ndd_8022。 此 sockaddr 允许您绑定到 802.2 SAP 编号。 当绑定到特定类型或 SAP时,可以使用套接字来接收该类型或 SAP的信息包。 要传输的包必须是包含 MAC 和 LLC 头的完整令牌环包。
FDDI 光纤分布式数据接口 (FDDI) NDD sockaddrsys/ndd_var.h 文件中定义。 sockaddr 结构名称为 sockaddr_ndd_8022。 此 sockaddr 允许您绑定到 802.2 SAP 编号。 当绑定到特定类型或 SAP时,可以使用套接字来接收该类型或 SAP的信息包。 要传输的包必须是包含 MAC 和 LLC 头的完整 FDDI 包。
FCS FCS NDD sockaddrsys/ndd_var.h 文件中定义。 sockaddr 结构名称为 sockaddr_ndd_8022。 此 sockaddr 允许您绑定到 802.2 SAP 编号。 当绑定到类型或 SAP时,可以使用套接字来接收该类型或 SAP的信息包。 要传输的包必须是包含 MAC 和 LLC 头的完整 FCS 包。
ATM /sys/atmsock.h 文件的 sockaddr_ndd_atm 结构中定义。 sndd_atm_vc_type 字段分别为异步传输方式 (ATM) 永久虚电路 (PVC) 和 ATM 交换虚电路 (SVC) 指定 CONN_PVCCONN_SVC。 对于 ATM PVC , sndd_atm_addr 字段的前四个八位元包含虚拟电路的虚拟路径标识: 虚拟通道标识 (VPI:VCI)。 对于 ATM SVC , sndd_atm_addr 字段包含 20-octet ATM 地址, sndd_atm_subaddr 字段包含 20-octet ATM 子地址 (如果适用)。
支持 802.2 LLC 封装的操作系统的 NDD 协议使用 sockaddr_ndd_8022 结构来定义要用于输入过滤的 NDD 和 802.2 SAP 。 目前,唯一不使用这种结构的 NDD 协议是 ATM。 sockaddr_ndd_8022 结构包含以下字段:
描述
sndd_8022_len 包含套接字地址长度。
sndd_8022_family 包含套接字地址系列 (例如, AF_NDD)。
sndd_8022_nddname[NDD_MAXNAMELEN] 包含以太网设备的 NDD 设备名 (例如, ent0)。
sndd_8022_filterlen 包含定义输入过滤器的其余字段的大小。 对于 802.2 封装的协议,这是 struct ns_8022的大小。
sndd_8022_ns 包含过滤器结构,并允许应用程序指定要由此套接字接收的包的类型。 该结构包含以下字段:
过滤器类型
包含过滤器的类型。 这包括 802.2 LCC , 802.2 逻辑链路控制/子网络访问协议 (LLC/SNAP) 以及标准以太网。 支持允许接收所有包的特殊 "通配符" 过滤器类型。 此类型 NS_TAP以及所有标准过滤器类型都在 sys/ndd_var.h 文件中定义。
DSAP
对于 802.2 LLC 过滤器,这指定用于过滤入局包的 SAP 。 应用程序 "绑定" 到此 SAP ,然后接收寻址到此 SAP的包,例如,0xaa用于 802.2 LLC/SNAP 封装。
orgcode [3]
对于 802.2 LLC 过滤器,这指定组织代码。
以太类型
对于 802.2 LLC SNAP 和标准以太网过滤器类型,此字段指定 ethertype。 例如:0x800用于基于以太网的 IP 和基于 802.2 LLC/SNAP 封装的 IP。