【计算机网络】网络上两台主机是如何通过IP地址和MAC地址进行通信的

互联网上的两台主机HostA 和 HostB想要进行通信的流程,那么主机A将需要知道自己的ip,mac 以及主机B的ip, mac。但是主机B的mac地址主机A是不知道的,于是主机A如果将他自己的IP与子网掩码进行 & 与运算得到一个ip1, 然后将主机B的ip与这个子网掩码进行相同运算得到一个ip2, 如果ip1 等于 ip2, 那么此时A与B属于同一子网。否则不属于一个子网。

  • 两台主机在同一个子网:

那么主机A就将数据包中Destination Mac地址设置为FF:FF:FF:FF:FF:FF,这是一个广播地址。交换机(switch) 发现这个广播地址,于是就将数据包发给子网内所有的主机。当然这里会做一些优化,比如主机会记录一个arp表,他是其他主机的ip和mac地址的映射,如果查到目标ip对应的mac地址,则无需广播,可以直接进行通信。

  • 两台主机不在同一子网:(自己的理解,不一定正确,网上查了好多资料,感觉都没说清楚)

此时主机A将目标的mac地址设置为子网的路由器的mac地址,那么如果路由器收到该数据包,发现目标的mac地址与自己的mac地址相同,但发现ip地址与自己的不同,那么它知道这个数据包不是发给他的,所以重复上述过程,他会用自己的ip和子网掩码与目标的ip进行判断,看看目标主机是不是跟自己(路由器)在同一个网段内,如果在的话,直接将目标mac地址设置为广播地址,广播给当前网段内的所有主机;否则将目标mac地址设置为下一级的路由器的mac设备。依次往下一级路由器转发,直到找到目标主机为止。

可以看得出,这是一个递归的过程。当然这里还涉及到最短路径算法,就不在此展开了。

更多细节,请查看:【计算机网络】不同网段内主机如何通信

  • 12
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值