• 网络-数据包在路由转发过程中MAC地址和IP地址,变与不变


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

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

    我们知道的几个概念:

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

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

    下面我们来分析一下:

      MAC地址是在同一个广播域有效的,那么去了另外一个广播域(网段)MAC地址肯定要改变的;

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

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

    图中A-R4-R2-B 假设有数据帧X,传输过程中:

      A到R4:MAC地址(存在的话)源地址是A,目的地址是R4;

      R4到R2:MAC地址(存在的话)源地址是R4,目的地址是R2;

      R2到B:MAC地址(存在的话)源地址是R2,目的地址是B;

    在没有经过NAT情况下,源IP地址和目的IP地址在整个传输过程是不能改变的。

      A到R4:IP地址 源地址是A,目的地址是R4;

      R4到R2:IP地址 源地址是A,目的地址是R4;

      R2到B:IP地址 源地址是A,目的地址是R4;

  • 相关阅读:
    在Mac系统下使用自己安装的PHP
    在一个文件里追加内容和换行
    Linux系统下如何去掉文件的@属性
    composer的安装和使用
    Git SSH Key 生成步骤
    自定义mysql函数时报错,[Err] 1418
    百度echarts
    linux 内存释放命令
    第二届PHP全球开发者大会(含大会的PPT)
    在CentOS上安装Java开发环境:使用yum安装jdk
  • 原文地址:https://www.cnblogs.com/JohnABC/p/5918154.html
Copyright © 2020-2023  润新知