我对网络接口有点困惑。根据我的理解,网络接口在链路层和互联网层之间进行转换,并进行 ARP。是对的吗?网络接口和网络接口卡 (NIC) 之间还有什么区别?我知道网卡是一个类似硬件的网络接口,那么当我们已经有类似软件的网络接口时,为什么还需要网卡呢?最后,每个网络接口都必须有自己的IP地址和MAC地址吗?多个网络接口可以具有相同的 IP 地址或 MAC 地址吗?
网络接口有什么作用?网络接口和网络接口卡 (NIC) 有什么区别?
网络接口有什么作用?
NIC 提供数据链路层(数据帧和 MAC 寻址)和物理层连接(电缆连接和线路编码)。现代 NIC 还可以为网络和传输层提供各种卸载功能。
网络接口和网络接口卡 (NIC) 有什么区别?
当此功能需要附加卡时,“NIC”曾经是网络接口卡的缩写。当它演变成车载商品时,它变成了网络接口控制器。从技术上讲,除了外形之外没有任何区别。
严格来说,网络接口也可以指功能比 NIC 少(或多)的端口,例如交换机端口,有时甚至是用于打印机或串行服务器的打印服务器选项卡。
网络接口在链路层和互联网层之间进行转换,并进行 ARP。
没有翻译。互联网层(或网络层)使用底层链路层进行传输。互联网层数据包封装在链路层帧(例如以太网帧)中。此封装需要 ARP,因为需要确定正确的 MAC 地址。严格来说,ARP 不是由 NIC 完成的,而是由 IPv4 堆栈(操作系统的一部分)完成的。NIC 只是传输那些 ARP 数据包。
将 IP 数据包想象成一个带有海外地址的容器。它装载在卡车(框架)上,但卡车司机需要一个他可以开车到的街道地址(MAC 地址)。他的控制器(ARP)查找集装箱船的港口地址(网关)并将其传递给司机。在港口,集装箱被装载到船上(另一种框架类型),船长使用与目的地港口的卡车(另一种网络类型)完全不同的导航。到达目的地后,集装箱将驶上下一辆卡车,以此类推。
当我们已经拥有类似软件的网络接口时,为什么还需要 NIC?
毕竟,数据需要在物理世界中进行物理传输。纯虚拟接口(例如虚拟机管理程序中的 VPN 接口或 vNIC)和网络不需要额外的硬件——但数据永远不会离开物理主机。
基本上,NIC 在硬件中提供物理 (L1) 和数据链路层 (L2) 功能,而操作系统在软件中提供网络 (L3) 和传输层 (L4)。应用层 (L7) 驻留在应用程序中。(在实施时,会话(L5)和表示层(L6)也是如此。)
每个网络接口都必须有自己的 IP 地址和 MAC 地址吗?多个网络接口可以具有相同的 IP 地址或 MAC 地址吗?
在特定的 L2 段和 L3 子网内,是的。(特殊情况下可能会有虚拟IP地址甚至MAC地址。)
例如,当 VLAN 中继到 NIC 时,一个 MAC 地址可以存在于多个 L2 段中。据说硬件 MAC 地址是全球唯一的,但情况并非总是如此。
IPv4 地址在子网中通常是唯一的,但私有地址可能会在其他地方使用,可能需要在其间进行网络地址转换(NAT)。一个虚拟 IP 地址可以由多个设备共享,通常采用像 VRRP 或 HSRP 这样的主动-被动方案。
NIC 主要用于终端设备,如 PC、打印机🖨️ 等。网络接口用于网络设备。它们大部分工作方式相同,除了网络接口可以做更多类似于高级网络的工作,例如传输帧、路由数据包等。
有时,它们可以互换使用,因此您不必担心太多。
@zec67 已经说过大多数其他高级功能。
问候。