首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算机是如何知道将数据包发送到哪里的,只知道ip而不是mac。

计算机是如何知道将数据包发送到哪里的,只知道ip而不是mac。
EN

Stack Overflow用户
提问于 2018-07-18 19:35:24
回答 1查看 3.1K关注 0票数 2

使用普通的以太网电缆(补丁电缆),您可以使用以太网帧(frame)将数据发送到局域网中的其他计算机/设备。在以太网帧中,有一个源mac地址和一个目标mac地址。而且它有一个有效载荷。有效负载包含一个IP包(packet)。当我输入命令ping 192.168.86.40时,我的计算机如何连接到计算机并发送包,而不知道用于发送以太网帧的mac地址。您需要一个目标mac地址来发送包含IP包的以太网帧。如果我用静态IP地址、子网主机和网关IP来设置网络,那么mac地址是网关连接的地址。计算机是否使用广播mac地址FF:FF:FF:FF来确定网关mac地址是什么?

问题是:计算机是如何知道将数据包发送到哪里的,只有IP地址而不是宏地址才能发送包含IP包的以太网帧?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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。这些步骤重复执行,直到到达目标为止。

因此,你的问题的答案是:

  • 主机使用其本地路由表来确定下一跳到目的地(可能是目标本身)。
  • 下一跳的IP地址使用ARP (用于IPv4)解析为其MAC地址。
  • IP数据包封装在一个以太网帧中,发送给该MAC。

当然,除了以太网,还有其他链路层,但是一般的过程与所有基于MAC的网络是相同的。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51409776

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档