关于MAC地址和IP地址在传输过程中变与不变的问题——计网络——网络层学习常遇问题

    关于MAC地址和IP地址在传输过程中变与不变的问题:

结论:mac地址在同一个广播域传输过程中是不变的,在跨越广播域的时候会发生改变的;而IP地址在传输过程中是不会改变的(除NAT的时候)。

我们知道的几个概念:

    首先我们要知道,MAC地址是用于同物理或逻辑第2层网络上的设备间进行通信的,工作于数据链路层;

    而第三层地址(IP地址)是可以在多个网络设备之间通信的,工作于网络层。

下面我们来分析一下:

如图,H1想往H2发消息,而消息需要封装成帧,通过数据链路传输才能发出去,而消息在数据链路上传输又需要源mac和目的mac,如果H1和H2在同一个子网,而H1又不知道H2的mac地址,那么可以通过arp高速缓存里查找到本局域网各主机和路由器的IP地址到目的地址之间的映射,如果没有,则会通过arp协议(地址解析协议)发起一次硬件广播,可以得到H2的mac地址;(注意这里arp协议是解决同一个子网内各主机或路由器的IP地址和mac地址之间的映射问题)图中的情况是H1和H2不在同一个子网,不同的子网之间又是通过路由器进行连接的,所以H1会先将消息发送给路由器R1,也就是常说的默认网关,此时源mac是H1的mac地址,目的mac是R1的mac地址,再由R1进行查路由表,通过与网2相连的路由端口H4,将消息进行转发给与网3相连的路由器R2(这里可以得知一个路由器可能会有多个mac地址,因为一个路由器有多个端口,从下图4-4也能认证),此时,源mac是R1的mac地址,目的mac地址是R2的mac地址,再由R2进行消息转发给H2。

从上面的这个角度来说IP地址一直都是不变的,源IP一直是IP1,目的IP一直是IP2,而mac地址一直在变。

换一个角度来回答为什么IP一直在变,而mac不变:

当你发起不同请求服务的响应时,你的IP地址是不变的,但是目的IP是变化的,而你发送的数据报文无论如何都要先发送到默认网关,所以从这个角度来说,源mac地址是本主机的mac地址,而目的mac是默认网关的mac地址,所以IP一直在变而mac不变。

扫描二维码关注公众号,回复: 14819579 查看本文章

 

    在同一个广播域中(也就是同一个子网中)数据帧的mac地址是不会变的,因为所有交换机应该都知道该广播域中的所有主机的MAC地址(如果不知道会通过被动广播的方式来学习到,然后存到交换表中)。既然知道所有的MAC地址,那么当我交换机收到数据帧的时候就看一下目标MAC地址,然后根据交换表对照一下MAC地址表,从对应的接口仍出去就好了。

    IP地址是在整个网络中有效的,整个Internet网络就相当于是一个大的地图,同样知道所有的IP地址如何到达,那么在传输过程中源ip和目的ip也是不会改变的。当路由器收到数据包的时候,检查数据包的目的IP地址,然后查找路由表(路由转发表),选择合适的接口发出去。

猜你喜欢

转载自blog.csdn.net/qq_45947664/article/details/121111511