使用普通的以太网电缆(补丁电缆),您可以使用以太网帧(frame)将数据发送到局域网中的其他计算机/设备。在以太网帧中,有一个源mac地址和一个目标mac地址。而且它有一个有效载荷。有效负载包含一个IP包(packet)。当我输入命令ping 192.168.86.40时,我的计算机如何连接到计算机并发送包,而不知道用于发送以太网帧的mac地址。您需要一个目标mac地址来发送包含IP包的以太网帧。如果我用静态IP地址、子网主机和网关IP来设置网络,那么mac地址是网关连接的地址。计算机是否使用广播mac地址FF:FF:FF:FF来确定网关mac地址是什么?
问题是:计算机是如何知道将数据包发送到哪里的,只有IP地址而不是宏地址才能发送包含IP包的以太网帧?
发布于 2018-07-19 17:32:35
IPv4使用ARP (地址解析协议)-源节点发送一个ARP请求作为广播,请求目标IP的MAC地址。该请求由目标节点接收(被其他任何人忽略),并以其MAC地址答复。
一旦MAC地址已知,源可以将IP数据包封装在以太网帧中并发送出去。
ARP仅适用于任何本地IP地址,即。与发件人位于同一子网中的地址。如果您的本地IP地址是例如192.168.86.2/24,则目标192.168.86.40是本地的。
发送到本地子网之外的IP地址需要网关(路由器)--这可以是默认网关,也可以是由本地路由表指示的另一个特定网关。ARP只用于解析这里的网关IP地址。使用网关的MAC地址作为目的地封装IP数据包并发送出去。
网关重复此过程--当目标IP是本地的或使用其路由表查找下一跳网关时,通过ARP解析目标IP,解析其IP地址并转发给该MAC。这些步骤重复执行,直到到达目标为止。
因此,你的问题的答案是:
当然,除了以太网,还有其他链路层,但是一般的过程与所有基于MAC的网络是相同的。
https://stackoverflow.com/questions/51409776
复制相似问题