在 OSI 模型中,以太网低于 IP。但是IP地址是如何实际分配给以太网端口的呢?
我知道,以太网与 IP 无关,但在 Windows 下,我可以将 IP 地址分配给以太网适配器......
当我的卡有两个端口时,分配给它们的 IP 地址是什么意思?它们是否共享相同的并且我认为这两个端口就像一个简单的集线器,为同一个逻辑事物提供两个物理连接器?
在 OSI 模型中,以太网低于 IP。但是IP地址是如何实际分配给以太网端口的呢?
我知道,以太网与 IP 无关,但在 Windows 下,我可以将 IP 地址分配给以太网适配器......
当我的卡有两个端口时,分配给它们的 IP 地址是什么意思?它们是否共享相同的并且我认为这两个端口就像一个简单的集线器,为同一个逻辑事物提供两个物理连接器?
我认为您需要更多地了解网络层以及设备如何实现网络堆栈。这个问题几乎是题外话,因为它对于在设备上运行的操作系统确实是特别的,但我会尽量给你一个大致的想法。
在一个设备中,您将在第 1 层有一个物理接口,而您的带有两个接口的以太网卡有两个独立的物理接口。该卡将有一个安装在操作系统中的驱动程序,该驱动程序将每个接口的第 2 层(以太网)软件作为单独的接口。
操作系统通常实现layer-3(IPv4、IPX、IPv6、AppleTalk等)和layer-4(TCP、UDP等)软件。第 3 层软件向第 2 层软件注册,以便第 2 层软件知道将流量发送到第 3 层的位置。以太网帧头有一个 EtherType 字段,告诉第 2 层帧有效载荷应该发送到哪个注册的第 3 层模块,例如 0x800 用于 IPv4,0x86DD 用于 IPv6。IANA 维护各种 EtherType 的IEEE 802 编号。
向接口的第 2 层模块注册的第 3 层模块将被分配该接口的第 3 层地址。
第 3 层和第 4 层会发生相同类型的事情。例如,IPv4 在 IPv4 标头中有 Protocol 字段(IPv6 有一个 Next Header 字段,它是相同的)。同样,IANA 维护一个列表Protocol Numbers,它告诉 IP 它应该将数据包有效负载发送到哪个已注册的第 4 层模块。
NIC 上的每个接口都应该分配一个不同的 IP 地址,否则会发生寻址冲突。您可以通过 DHCP 接收 IP 地址,也可以通过 GUI 手动设置一个 IP 地址。
每个接口也有自己的 MAC 地址,用于第 2 层通信。