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

news/2025/2/13 20:14:30/

数据帧在交换机间转发

帧经过交换机时,其源、目标MAC是不会变的。

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

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

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

数据帧在路由器间转发

帧经过路由器时,进行路由转发,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)。

 


http://www.ppmy.cn/news/496678.html

相关文章

基于Istio的灰度发布改造流程

背景 在多人开发的应用团队中,每个人需要基于发布分支(master分支)拉出自己的特性开发分支,那么如何做到发布到测试环境中而互不干扰呢。 对于k8s开发环境来说,即使每个版本启动一个pod来隔离,但是也无法做…

基于Python的高校学生学业预警系统的设计与实现

博主介绍:擅长Java、微信小程序、Python、Android等,专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇🏻 不然下次找不到哟 Java项目精品实战案例…

Python读取EXCEL数据绘制直方图

#excel to plt.py 功能1:读取存于excel的数据 功能2:绘制图直方图 import xlwings as xw import pandas as pd import matplotlib.pyplot as plt pd.set_option(display.max_columns, None) #解决表格多列时中间省略显示问题 pd.set_option(display.…

c# 从零到精通 读取连接数据库-并将读取到的数据添加到dataGridView1 选中状态 全选

c# 从零到精通 读取连接数据库-并将读取到的数据添加到dataGridView1 选中状态 全选 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System…

使用御剑扫描网站

今天我们来用御剑这个扫描工具扫描 http://43.138.211.45这个网站 1.首先打开御剑,点击添加,输入http://43.138.211.45 2.选择get模式,线程选择50,超时选择5,配置文件选择php,并开始扫描。

守卫剑阁 代码

1.//买家无敌 call SetUnitInvulnerable(GetBuyingUnit(),true) 2.//创建物品在孔明处 call CreateItem(1227896920,GetRectCenterX(FK),GetRectCenterY(FK)) 转载于:https://www.cnblogs.com/jhcla/p/6049689.html

剑阁保卫战官方支持

剑阁保卫战官方支持 联系官方: Email: jixiangsss2017gmail.com

三国志战略版狼盟和鸿蒙,万国觉醒和三国志战略版有什么区别 哪个更好玩呢...

万国觉醒马上就要公测了,不过同样作为一款千人同屏的战争策略游戏,它与三国志战略版到底有什么区别呢,哪个更加好玩呢,下面我们一起来看一下万国觉醒和三国志战略版内容的对比吧。 背景设定 万国觉醒的背景设定是全世界各国文明的…