数据帧转发过程中IP地址及MAC地址的变化

MAC地址:为了进行数据传输,MAC地址不改变无法进行正常的分组转发算法,数据无法流通。

IP地址:为了确认目标主机,如果IP地址改变则目的主机改变无法进行正常通信。

如何获取目的MAC地址?

1、帧经过交换机时,其源、目标MAC是不会变的(数据帧在交换机之间转发);

原因:交换机内部的CPU会在每个端口成功连接时,通过将MAC地址和端口对应,形成一张MAC表。在今后的通讯中,发往该MAC地址的数据包将仅送往其对应的端口,而不是所有的端口。因此,交换机可用于划分数据链路层广播,即冲突域;但它不能划分网络层广播,即广播域。

这种情况只需要坚持一个原则,数据帧在交换机之间转发不更改源MAC地址和目标MAC地址;

就好比主机A和主机B通过若干个交换机相连(并没有路由器在中间),那么此时的MAC地址是什么?源MAC地址自然是主机A的网卡所对应的MAC地址,目标MAC地址则是主机B的网卡所对应的MAC地址;

数据帧在交换机之间转发

2、帧经过路由器时,进行路由转发,IP地址不会变的,但MAC地址一定会变(数据帧在路由器之间转发);

路由转发过程:

当主机A发向主机B的数据流在网络层封装成IP数据包,IP数据包的首部包含了源地址和⽬标地址。主机A会⽤本机配置的24位IP网络掩码255.255.255.0与目标地址进⾏与运算,得出⽬标网络地址与本机的⽹络地址是不是在同⼀个⽹段中。如果不是将IP数据包转发到网关。

在发往⽹关前主机A还会通过ARP的请求获得默认⽹关的MAC地址。在主机A数据链路层IP数据包封装成以太网数据帧,然后才发住到网关……也就是路由器上的⼀个端⼝。

当网关路由器接收到以太网数据帧时,发现数据帧中的目标MAC地址是自己的某⼀个端⼝的物理地址,这时路由器会把以太网数据帧的封装去掉。路由器认为这个IP数据包是要通过自己进行转发,接着它就在匹配路由表。匹配到路由项后,它就将包发往下⼀条地址。

路由器转发数据包就是这样,所以它始终是不会改IP地址的。只会改MAC。

当有数据包传到路由器时,路由器首先将其的目的地址与路由表进⾏对⽐,如果是本地⽹络,将不会进⾏转发到外⽹络,⽽是直接转发给本地⽹内的目标主机;但是如果目标地址经路由表对比,发现不在本⽹中,nat就将改变源地址的IP(原源地址的Ip地址改为了路由器的IP地址),路由器将数据包转发到相应的端⼝,进⾏通信。

例如路由器A,B,C,D相连,那么源地址就是(IP-x:MAC-x),目的地址就是(IP-y:MAC-y)。

当A——>B时,源IP地址还是IP-x,目的IP地址还是IP-y,源MAC地址和目标MAC地址则是A,B相连的两个接口(MAC-a2,MAC-b1)。

当B——>C时,源IP地址还是IP-x,目的IP地址还是IP-y,源MAC地址和目标MAC地址则是B,C相连的两个接口(MAC-b2,MAC-c1)。

当C——>D时,源IP地址还是IP-x,目的IP地址还是IP-y,源MAC地址和目标MAC地址则是C,D相连的两个接口(MAC-c2,MAC-d1)。

3、数据帧在主机之间进行转发

(1)两个主机在同一个子网(网段),也就是说不经过路由器转发。

源IP、目标IP、源MAC、目标MAC都不会改变。

(2)两个主机在不同的网段,二者之间通信需要经过路由器的转发。

源IP地址会改变,目标IP地址不会改变,MAC地址会改变;

假如主机A访问主机D,中间经过路由B和C。

当A——>B时,源IP地址还是IP-a,目的IP地址还是IP-d,源MAC地址和目标MAC地址则是(MAC-a,MAC-b1)。

当B——>C时,因为不在子网范围内,NAT将内部IP地址转换为外部公用IP地址,此时NAT会把源IP地址转换为网关的UP地址,也就是说源IP地址是IP-b1,目的IP地址还是IP-d,源MAC地址和目标MAC地址则是(MAC-b2,MAC-c1)。

当C——>D时,源IP地址还是IP-b1,目的IP地址还是IP-d,源MAC地址和目标MAC地址则是(MAC-c2,MAC-d1)。

简单来说就是在主机把数据帧发送给网关路由器时(就是通过这个路由器可以把数据发到别的网段),将源IP地址变成这个网关路由器的IP地址,同时源IP地址仅仅变化一次,此后的路由器之间转发和路由器转发给主机D的过程中,IP地址将不在变化。

———————————————————————————————————————————

来到题目加深下印象

在如图所示的网络拓扑中,已知:

HA1和HA2分别是主机H1和主机H2的硬件地址;IP1和IP2分别是各自的IP地址;HA3~HA6分别是路由器个端口的硬件地址;IP3~IP6分别是路由器个端口的IP地址。

其中IP1和IP3是私有地址,其他IP地址是公网地址,H1和H2通信,通信路径:H1→经过R1转发→R2转发→H2。

请填写表1.

———————————————————————————————————————————

此文系转发,原文中有个不正确的地方,就是路由器B在转发给路由器C时,源IP变成路由器IP-b1。这里要纠正为,转发过程中源IP和目标IP是一直不变的,变化的是MAC地址。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值