使用普通的以太网电缆(跳线),您可以使用以太网帧(https://en.wikipedia.org/wiki/Ethernet_frame)将数据发送到LAN网络中的其他计算机/设备。在以太网帧中,有一个源mac地址和一个目标mac地址。它有一个有效载荷。有效负载包含IP包(https://en.wikipedia.org/wiki/Network_packet)。输入命令ping 192.168.86.40
时,计算机如何连接到计算机并发送软件包,而又不知道用于发送以太网帧的mac地址。您需要一个目标mac地址来发送包含IP软件包的以太网帧。如果我使用静态IP地址,子网主服务器和网关IP设置网络,则网关要连接的mac地址是什么。计算机是否使用广播mac地址FF:FF:FF:FF
来确定网关的mac地址是什么?
问题是:计算机如何知道将数据包发送到哪里,仅使用IP地址而不是macaddress来发送包含IP数据包的以太网帧
答案 0 :(得分:1)
IPv4使用ARP(地址解析协议)-源节点以广播方式发送ARP请求,询问目标IP的MAC地址。该请求由目标节点接收(其他任何人都忽略),并使用其MAC地址进行回复。
一旦知道了MAC地址,源就可以将IP数据包封装在以太网帧中并发送出去。
ARP仅可用于任何本地 IP地址,即与发送者位于同一子网中的地址。如果您的本地IP地址是192.168.86.2/24
的目的地192.168.86.40
是本地的。
发送到本地子网之外的IP地址 需要一个网关(路由器)-这可以是默认网关,也可以是本地路由表指示的另一个特定网关。 ARP仅用于解析网关IP地址。 IP数据包以网关的MAC地址作为目标进行封装并发送出去。
网关重复此过程-在本地时通过ARP解析目标IP,或使用其路由表查找下一个跃点网关,解析其IP地址并转发到该MAC。重复这些步骤,直到到达目的地。
因此,您的问题的答案是:
当然,除了以太网以外,还有其他链路层,但是一般过程与所有基于MAC的网络相同。