ARP协议在报文跨网段传输的作用(arp报文详解)

报文跨网段传输的过程

MAC地址

交换机Switch

IP地址

路由器

地址解析协议ARP

同网段报文传输过程

跨网段报文传输过程

Mac地址

MAC地址概述

  • Media Access Control Address(MAC)媒体存取控制位,也称为物理地址

  • 在网络体系结构中属于数据链路层

  • MAC一般被固化在网卡的点可擦可编程只读存储器EEPROM中,也被称为硬件地址

  • 一般主机用户拥有两个网络适配器:有线局域网适配器(有线网卡)和无线局域网适配器(无线网卡)。每个网络适配器都有一个全球为一的MAC地址。MAC地址是对网络上每个接口的唯一标识,而不是每一个设备的唯一标识。

IEEE 802局域网MAC地址格式 (48bit)

  • 扩展的唯一标识符EUI

  • EUI48

  • 在这里插入图片描述

    • b0:

      • 0:单播
      • 1:多播
    • b1:

      • 0:全球管理
      • 本地管理
    • b1b0MAC地址类型占比
      00
      1
      全球管理 单播地址 厂商生产网络设备固化
      全球管理 多播地址 标准网络设备所支持的多播地址,用于特定功能(交换机生成树协议)
      1/4
      1/4
      10
      1
      本地管理 单播地址 有管理管理员分配 覆盖全球管理单播地址,优先级高
      用户对主机进行软件配置,以表明属于那些多播组,剩余46位为1时,就是广播地址
      1/4
      1/4
    • 台式机、wifi、蓝牙都有mac地址

  • 十六进制:XX-XX-XX-XX-XX-XX

  • 标准表示方法:XX-XX-XX-XX-XX-XX(Windows)

  • 其他表示方法:

    • XX:XX:XX:XX:XX:XX(linux、苹果、安卓)
    • XXXX.XXXX.XXXX(思科PT)
  • 字节发送顺序

    • 字节发送顺序:第一字节——第六字节
    • 比特发送顺序:b0——b7

MAC解决的问题

  • 在广播信道上实现发送单播帧

  • 使用点对点通信的信道不需要使用地址在这里插入图片描述

  • 当多个主机连接在同一个广播信道上,要想实现主机及间一对一的通信,需要每台主机都必须有一个唯一的地址作标识在这里插入图片描述

  • MAC作用:用于区别广播域内不同的设备

MAC地址举例

在这里插入图片描述

  • 单播MAC地址

    • PC1向PC3发送报文

      • 报文格式:

        目的MAC地址源MAC地址帧首部其他字段、数据载荷、帧尾部
        C_MacA_Mac
      • PC2收到后比较MAC地址,发现不匹配,丢弃该帧

      • PC3收到后,比较MAC地址,发现匹配,然后交给上层处理

  • 广播MAC地址

    • PC1向PC3发送报文

      • 报文格式:

        目标MAC地址源MAC地址帧首部其他字段、数据载荷、帧尾部
        FF-FF-FF-FF-FF-FFA_Mac
      • PC2收到后发现时广播地址,然后交给上层处理

      • PC3收到后发现时广播地址,然后交给上层处理

  • 多播MAC地址

    • PC2多播组列表

      07-E0-12-F6-2A-D8
      

      PC3多播组列表

      07-80-1A-F6-2A-20
      
    • PC1发送组播报文

      • 报文格式:

        目的MAC地址源MAC地址帧首部其他字段、数据载荷、帧尾部
        07-E0-12-F6-2A-D8A_Mac
      • 多播地址:第一个字节为1、3、5、7、9、B、D、F时,报文为多播

      • 给主机配置多播表进行私有应用是,不能使用公有的标准多播地址

      • PC2收到报文后,发现该多播帧目的地址自己的多播组列表中,于是接受该报文,并交给上层处理

      • PC3收到报文后,发现发现该多播帧目的地址不在在自己的多播组列表中,于是丢弃该报文

交换机Switch

  • 用于电信号转发的网络设备

  • 交换机只关心MAC地址,不关心IP地址

  • MAC地址表:端口与设备的MAC地址映射的表

    端口MAC地址
  • 工作原理

    • 数据包:包含目标MAC地址、源MAC地址、网络层内容(3-7层内容)

      目标MAC源MAC网络层内容
    • (学习)交换机收到数据包后,首先把数据源MAC与接受报文的端口记录在自己的MAC地址表中

    • (转发)交换机根据目标MAC DIZ查找发出端口:

      • 在MAC地址表中找到与目标MAC地址关联的端口——>从关联端口发出报文
      • 在MAC地址表中没找到与目标MAC地址关联的端口——>向(除了接收端口)所有端口发送报文(泛洪)

IP地址

  • IP地址(Internet Protocol Address)是指互联网协议地址、网际协议地址

  • 因特网上主机和路由器使用的地址,用于表示两部分信息:

    • 网络编号:标识因特网上的网络
    • 主机编号:表示同一网络上不同的主机(或路由器)
  • MAC地址不具备区分不同网络的功能

    • 一个单独的网络,不接入因特网,可以只使用MAC地址
    • 如果主机所在的网络要接入因特网,则IP地址和MAC地址都需要使用
  • 数据包再转发的过程中IP地址与MAC地址变化情况

    • 源IP和目的IP保持不变
    • 源MAC地址和目的MAC地址逐个链路(或网络)改变

在这里插入图片描述

PC1–>R1R1–>R2R2–>PC2
网络层IP地址源IP:PC1_IP
目的IP:PC2_IP
源IP:PC1_IP
目的IP:PC2_IP
源IP:PC1_IP
目的IP:PC2_IP
数据链路层MAC地址源MCA:PC1_mac
目标MAC:AR1L_mac
源MCA:AR1R_mac
目标MAC:AR2L_mac
源MCA:AR2R_mac
目标MAC:PC2_mac

路由器

  • 路由器(Router)是连接两个或多个网络的硬件设备,在网络间起网关的作用,是读取每一个数据包中的地址然后决定如何传送的专用智能性的网络设备。

  • 特指实现OSI七层中网络层功能的路由器

    • 不包含交换机功能

    • 路由器内有路由表和ARP高速缓存表

  • 作用:

    • 分割网络:可将一个大型网络划分成多个子网,提高关系效率和安全性
    • 路由选择:根据不同的路由选择算法,选择最佳路径转发报文,提高效率
    • 支持不同协议
  • 路由器的路由表

    • 路径选择,用于指导数据包如何转发的表项

    • 决定下一跳,决定数据包应该发送到哪一个吓一跳路由器或者直连的网络段。

      目标网络/掩码协议类型优先级开销标志下一跳出接口
  • 路由器ARP缓存表

    • 存储目标主机IP地址与MAC地址的映射关系

    • 减少ARP请求,提高效率

    • 支持代理ARP功能

      IP地址MAC地址类型

地址解析协议ARP

ARP报文流程:

  • 源主机发送报文时(已知IP地址),在自己的ARP高速缓存表中查找目的主机的IP地址所对应的MAC地址
    • 若找到:封装MAC帧进行发送
    • 没找到:发送ARP请求(封装在广播MAC帧中)
  • 目的主机收到ARP请求后,将源主机的IP地址与MAC地址记录到自己的ARP高速缓存表中,然后给源主机发送ARP响应(封装在单播MAC帧中)
  • 源主机收到ARP响应后,将目的主机的IP地址与MAC地址记录到自己的ARP高速缓存表中,封装之前想发送的MAC帧并发送给目的主机
  • APR作用范围:逐段链路或一个网段内部
  • ARP高速缓存表在IP层使用

同网段报文传输过程

PC1向PC2发送报文

在这里插入图片描述

  • 初始信息

    • PC1、PC2、PC3的ARP高速缓存表为空
    • 交换机LSW1的MAC地址表为空
    • 设备端口地址如图所示
  • 过程:

    • PC1构造发送的报文

      目标MAC地址源MAC地址目标IP地址源IP地址网络层信息
      ????PC1_macPC2_ipPC1_ipXXXXXXXX
    • PC1在自己的ARP高速缓存表中查询PC2_ip对应的MAC地址,未查到PC2的信息

    • PC1向所在的网段内发送ARP请求(封装在广播帧)

      目标MAC地址源MAC地址目标IP地址源IP地址网络层信息
      FF-FF-FF-FF-FF-FFPC1_macPC2_ipPC1_ipARP请求
    • LSW1收到PC1的ARP请求后,首先将PC1的信息记录在MAC地址表上

      端口MAC地址类型
      端口1PC1_macdynamic
    • LSW1检查报文目标MAC地址为广播地址,于是把报文发送给(除了接受广播帧)所有端口

    • PC2接收到广播帧后,检查目标MAC地址,发现是广播帧,于是把报文交给上层处理

    • PC2把PC1的信息记录在自己的ARP高速缓存表中

      IP地址MAC地址类型
      PC1_ipPC1_MACdynamic
    • PC2检查该帧的目标IP地址是自己,同时该报文是ARP请求报文,于是PC2向PC1发送ARP回应报文

      目标MAC源MAC目标IP源IP网络层信息
      PC1_macPC2_macPC1_ipPC2_ipARP回应
    • LSW1收到PC2发送的ARP回应报文后,先把PC2的信息记录在自己的MAC地址表中

      端口MAC地址类型
      端口1PC1_macdynamic
      端口2PC2_mcadynamic
    • LSW1检查报文的目标MAC地址,MAC地址为PC1_mac,然后在自己的MAC地址表查找与PC1_mac地址关联的端口,是端口1

    • LSW1从端口1以将报文发送出去

    • PC1收到ARP回应报文后,首先检查目标MAC地址,发现目标MAC地址与自己相同,然后把报文交给上层处理

    • PC1先把PC2的信息记录在自己的ARP高速缓存表中

      IP地址MAC地址类型
      PC2_ipPC2_MACdynamic
    • PC1完善发送给PC2的报文

      目标MAC地址源MAC地址目标IP地址源IP地址网络层信息
      PC2_macPC1_macPC2_ipPC1_ipXXXXXXXX
    • LSW1收到报文后(记录PC1的信息,已存在),检查报文的目标MAC地址,MAC地址为PC2_mac,然后在自己的MAC地址表中查找与PC2_mac匹配的端口,是端口2

    • LSW1从端口2把报文发送出去

    • PC2收到报文

跨网段报文传输过程

PC1向PC3发送报文

在这里插入图片描述

  • 已知信息

    • PC1已知PC3 的IP地址

    • 网关设置

      • PC1的网关为AR1的G0/0/0接口
      • PC2的网关为AR1的G0/0/1接口
      • PC3的网关为AR2的G0/0/1接口
    • 所有设备的IP地址、端口MAC地址如图所示

    • 所有设备(除交换机)的ARP高速缓存表为空

    • 交换机MAC地址表为空

    • 路由器AR1路由表信息

      目标网段/掩码下一跳出接口类型其他
      192.168.13.0/24192.168.12.2G0/0/2static
      192.168.10.0/24——G0/0/0直连
      192.168.11.0/24——G0/0/1直连
      192.168.12.0/24——G0/0/2直连
    • 路由器AR2路由表信息

      目标网段/掩码下一跳出接口类型其他
      192.168.10.0/24192.168.12.1G0/0/0static
      192.168.11.0/24192.168.12.1G0/0/0static
      192.168.12.0/24——G0/0/0直连
      192.168.13.0/24——G0/0/1直连
  • 报文发送过程(PC1–>PC3)

    • PC1构造报文

      • 检测自己与PC3是否属于同一网段:用PC3的IP地址跟自己的子网掩码进行与运算的结果与自己的网段进行比较,PC3与自己不在同一网络

      • 需要把报文发送给网关,已知网关IP,查询ARP高速缓存表寻找网关MAC地址,缓存表为空,需要发送ARP请求报文

        目标MAC地址源MAC地址目标IP源IP网络层信息
        FF-FF-FF-FF-FF-FFPC1_mac192.168.10.1192.168.10.2ARP请求
    • 交换机LSW1收到报文后

      • 首先把PC1的信息记录在MAC地址表中

        端口MAC地址类型
        端口1PC1_macdynamic
      • 然后根据报文的目标MAC地址选择发送端口,目标MAC地址为广播,于是LSW1把报文发送至所有端口(除接收报文的端口)

    • 路由器AR1的G0/0/0接口收到报文后

      • 检查报文目标MAC地址,发现是自己,于是把报文交给上层处理

      • 路由器首先把PC1 的信息记录在自己的ARP高速缓存表中

        IP地址MAC地址类型
        192.168.10.2PC1_macdynamic
      • 路由器检查报文为ARP请求报文,目标IP地址为自己的G0/0/0,于是向PC1回复ARP回应报文

        目标MAC地址源MAC地址目标IP源IP网络层信息
        PC1_macAR1/0_mac192.168.10.2192.168.10.1ARP回应
    • 交换机LSW1收到ARP回应报文后

      • 首先把AR1的G0/0/0口的信息记录在自己的MAC地址表中

        端口MAC地址类型
        端口1PC1_macdynamic
        端口2AR1/0_macdynamic
      • 检查目标MAC地址,目标MAC地址为PC1_mac,然后在MAC地址表中查找跟PC1_mac关联的端口,是端口1

      • LSW1把报文从端口1发出

    • PC1收到ARP回应报文后

      • 先检查报文的目标MAC地址,发现目标MAC地址是自己,然后把保温交给上层处理

      • PC1先把AR1的G0/0/0口的信息记录在自己的ARP高速缓存表中

        IP地址MAC地址类型
        192.168.10.1AR1/0_macdynamic
      • 然后根据ARP回应报文中的信息补充发送给PC3的报文,发送报文

        目标MAC源MAC目标IP源IP网络层信息
        AR1/0_macPC1_mac192.168.13.2192.168.10.2XXXXXXXX
    • 交换机LSW1收到报文后

      • 先检查目标MAC地址,目标MAC地址为AR1/0_mac,然后在自己的MAC地址表中查找与之对应的端口

      • 此时LSW1的MAC地址表为

        端口MAC地址类型
        端口1PC1_macdynamic
        端口2AR1/0_macdynamic
      • LSW1将报文从端口2发出

    • 路由器AR1的G0/0/0端口收到报文后

      • 先检查报文的目标MAC地址,发现是自己,于是把报文交给上层处理

      • 路由器检查报文的目标IP,目标IP网段在路由表中的下一跳为192.168.12.2,端口为G0/0/2

        目标网段/掩码下一跳出接口类型其他
        192.168.13.0/24192.168.12.2G0/0/2static
        192.168.10.0/24——G0/0/0直连
        192.168.11.0/24——G0/0/1直连
        192.168.12.0/24——G0/0/2直连
      • 路由器封装报文,在ARP缓存表中查找192.168.12.2的信息,ARP缓存表为空,于是向G0/0/2端口所在的网络,发送ARP请求报文

        目标MAC地址源MAC地址目标IP地址源IP地址网络层信息
        FF-FF-FF-FF-FF-FFAR1/2_mac192.168.12.2192.168.12.1ARP请求
    • 路由器AR2的G0/0/0口接收到ARP请求报文后

      • 先检查报文的目标MAC地址,发现是自己,于是把报文交给上层处理

      • 路由器先把AR1的G0/0/2接口的信息添加到自己的ARP高速缓存表中

        IP地址MAC地址类型
        192.168.12.1AR1/2_macdynamic
      • 路由器检查报文的目标IP地址,是自己,报文内容为ARP请求,于是向AR1的G0/0/2端口发送ARP回应报文

        目标MAC地址源MAC地址目标IP地址源IP地址网络层信息
        AR1/2_macAR2/0_mac192.168.12.1192.168.12.2ARP回应
    • 路由器AR1的G0/0/2端口收到ARP回应报文后

      • 先检查报文的目标MAC地址,发现是自己,于是把报文交给上层处理

      • 路由器把AR2的G0/0/0端口的信息记录在自己的ARP高速缓存表中

        IP地址MAC地址类型
        192.168.12.2AR2/0_macdynamic
      • AR1根据收到的ARP回复信息完善报文,并把报文发送给AR2的G0/0/0端口

        目标MAC源MAC目标IP源IP网络层信息
        AR2/0_macAR1/2_mac192.168.13.2192.168.10.2XXXXXXXX
    • 路由器AR2的G0/0/0端口收到报文后

      • 先检查报文的目标MAC地址,发现是自己,于是把报文交给上层处理

      • 路由器AR2检查报文的目标IP地址,目标IP地址为192.168.13.2,是直连路由,出接口为G0/0/1

        目标网段/掩码下一跳出接口类型其他
        192.168.10.0/24192.168.12.1G0/0/0static
        192.168.11.0/24192.168.12.1G0/0/0static
        192.168.12.0/24——G0/0/0直连
        192.168.13.0/24——G0/0/1直连
      • 路由器构造报文,源MAC地址改为自己的G0/0/1端口,在ARP高速缓存表中查找IP为192.168.13.2的信息,未找到,于是向G0/0/1所在的网络发送ARP请求报文

        目标MAC地址源MAC地址目标IP地址源IP地址网络层信息
        FF-FF-FF-FF-FF-FFAR2/1_mac192.168.13.2192.168.13.1ARP请求
    • 交换机LSW2收到ARP请求报文后

      • 首先把AR2的G0/0/1接口信息添加到自己的MAC地址表中

        端口MAC地址类型
        端口1AR2/1_macdynamic
      • 检查目标MAC地址,是广播,于是LSW2把报文转发到所有端口(除接收报文的端口)

    • PC3收到报文后

      • 首先检查报文目标MAC地址,是广播报文,于是把报文交给上层处理

      • PC3把AR2的G0/0/1端口的信息添加到自己的ARP高速缓存表中

        IP地址MAC地址类型
        192.168.13.1AR2/1_macdynamic
      • PC3检查报文目标IP地址,是自己,报文内容为ARP请求,于是PC3向AR1的G0/01端口发送ARP回应报文

        目标MAC地址源MAC地址目标IP地址源IP地址网络层信息
        AR2/1_macPC3_mac192.168.13.1192.168.13.2ARP回应
    • 交换机LSW2收到报文后

      • 先把PC3的信息添加到MAC地址表中

        端口MAC地址类型
        端口1AR2/1_macdynamic
        端口2PC3_macdynamic
      • 检查目标MAC地址,目标地址AR2/1_mac,在自己的MAC地址表中查找与目标地址关联的端口,是端口1

      • LSW2把报文从端口1转发出去

    • 路由器AR2的G0/0/1端口收到报文后

      • 先检查目标MAC地址,是自己,于是把报文交给上层处理

      • 路由器把PC3的信息添加到自己的ARP高速缓存表中

        IP地址MAC地址类型
        192.168.13.2PC3_macdynamic
      • 路由器根据ARP回应报文完善发给PC3的报文,发送报文

        目标MAC源MAC目标IP源IP网络层信息
        PC3_macAR2/1_mac192.168.13.2192.168.10.2XXXXXXXX
    • 交换机LSW2收到报文后

      • 检查目标MAC地址,为PC3_mac,在自己的MAC地址表中查找与目标地址关联的端口,是端口2
      • LSW2把报文从端口2转发出去
    • PC3收到从PC1发来的报文

      • 先检查目标MAC地址,是自己,于是把报文交给上层处理

      • 路由器把PC3的信息添加到自己的ARP高速缓存表中

        IP地址MAC地址类型
        192.168.13.2PC3_macdynamic
      • 路由器根据ARP回应报文完善发给PC3的报文,发送报文

        目标MAC源MAC目标IP源IP网络层信息
        PC3_macAR2/1_mac192.168.13.2192.168.10.2XXXXXXXX
    • 交换机LSW2收到报文后

      • 检查目标MAC地址,为PC3_mac,在自己的MAC地址表中查找与目标地址关联的端口,是端口2
      • LSW2把报文从端口2转发出去
    • PC3收到从PC1发来的报文

  • 35
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值