首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MAC地址是如何用于路由数据包的?

MAC地址是如何用于路由数据包的?
EN

Stack Overflow用户
提问于 2014-05-29 13:55:03
回答 5查看 38.8K关注 0票数 19

我最近发现包被封装在以太网帧中。数据包使用IP地址,帧使用MAC地址。

为什么以太网帧中不使用IP地址进行路由?据我所知,当试图访问一个基本的网站时,计算机会转到DNS来查找与用户输入的域名相关的IP地址。计算机如何找到正确的MAC地址?

真的,MAC地址是如何用于路由互联网流量的?

谢谢

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2014-05-29 14:09:41

IP数据包并不总是封装在以太网帧中。还有其他物理媒体,如ISDN等。当数据包被路由时,IP地址用于确定下一跳,物理地址用于物理标识作为下一跳的接口。只有前者(确定下一跳)通常称为路由。

为了回答您的第二部分,MAC地址是通过地址解析协议( ARP )在IPv4和ND6 (邻居发现)在IPv6中发现的。

更新:IP报头中的目标IP地址是最终目标。在路由过程中(在每一跳),您将从路由表(这可能是默认网关的IP地址)获得下一跳的IP地址(最终)到达最终目的地。要将数据包发送到下一跳,您需要它的MAC地址。当跳过中间链路时,IP报头中的IP地址不会改变--只有MAC地址会改变。

票数 16
EN

Stack Overflow用户

发布于 2014-08-22 19:55:09

我的答案是:) .要发送数据,您需要两个地址,MAC地址和IP地址。基本上,发送主机将对MAC地址进行ARP,这是在本地主机不知道它有IP地址的主机的MAC地址时发生的,或者如果IP地址位于不同的子网/网络上,则将ARP用于默认网关MAC地址(如果它还不知道的话)。一旦获得MAC地址,IP分组就封装在L2帧中,并通过媒体发送。如果IP数据包是针对另一个子网/网络上的主机的,它将被发送到默认网关,此路由器将解除封装L2帧(删除和丢弃它),检查IP地址并转发它。为了使路由器做到这一点,它需要一个MAC地址通过媒体发送它,它将查找它的路由表中的下一跳,用从原始主机发送的相同源IP地址和目标IP地址封装到一个新的L2帧中。这一次,源地址的MAC地址将是路由器的转发接口,下一跳的接收接口将是目标MAC地址。这将继续从一个跳到另一个跳,直到它到达最后的主机,每次MAC地址将改变,但原来的IP地址将保持不变。

票数 5
EN

Stack Overflow用户

发布于 2014-05-29 14:02:21

关键是--可以有比互联网流量更多的数据包类型。您可以使用IPX,这是不可路由的。客户如何识别对方?根据MAC地址。

路由!=寻址,这才是MAC真正发挥作用的地方。

为了被路由,OSI模型的添加一层允许路径发现到下一个网关。这一层负责路由,但对MAC地址一无所知。

另外,在硬件级别,MAC地址是由交换机使用的,而不是用于路由。来自材料是如何工作的

交换机从Node A获取第一个数据分组,它读取MAC地址并将其保存到段A的查找表中。交换机现在知道在任何时候任何数据包寻址到它时在哪里找到节点A。这个过程叫做学习。

这样,交换机就可以确保流量只输出到正确的端口。这与其说是完成路由,不如说是减少网络拥塞。只应发送专用于该MAC地址的广播和通信量。

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

https://stackoverflow.com/questions/23935095

复制
相关文章

相似问题

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