2.2.0 以太网 网络设备与终端设备在以太网中的传输数据过程

一、终端设备传输数据过程

  • 当本机访问目标主机时,通过(IP+掩码 求出网段地址)的方式,求出本机与目标主机的网段地址进行与运算,从而判断出主机与目标主机是否在同一网段内:
  • 如:本地地址(172.28.128.91/24)、目标地址1(172.28.128.20)、目标地址2(172.28.129.10/24)
  • 通过计算得出本机网段172.28.128.0,目标1网段172.28.128.0、目标2网段172.28.129.0
  • 下图,通过IP与掩码的求出网段:

以太网通信架构 以太网通信过程_网络

  • 如果目标、本机在同网段,优先检查本机的ARP缓存表:
  • 成功匹配到目标的IP信息,获取到MAC地址,将直接进行封装数据向目标发送
  • 没有匹配到目标的IP信息,本机将发送ARP request请求目标主机MAC地址,收到ARP Replay获取到目标主机MAC地址之后再封闭数据向目标发送。
  • 如果目标、本机不在同网段,优先检查本机的ARP缓存表中是否存在本机的网关信息:
  • 成功匹配到网关的IP信息,获取到MAC地址,将直接进行封装数据向网关发送
  • 没有匹配到网关的IP信息,本机将发送ARP request请求网关MAC地址,收到ARP Replay获取到网关MAC地址之后再封闭数据向网关发送。
  • 下图,在终端查看arp缓存表:
C:\Users\Administrator>arp -a

接口: 172.28.128.91 --- 0xd
  Internet 地址         物理地址              类型
  169.254.10.171        58-69-6c-4c-5a-3b     动态
  172.28.128.1          58-69-6c-4c-5a-3b     动态
  172.28.129.177        88-44-77-d2-6c-59     动态

二、交换设备传输数据过程

交换机处理数据帧的3种方式:

  1. 转发(Forwarding)
  1. 转发已知的单播帧(目标MAC信息在MAC地址表中存在)
  1. 泛洪(Flooding)
  1. 收到广播帧(目标MAC为全F时)、未知单播帧时(目标MAC信息不在MAC地址表)
  1. 丢弃(Discarding)
  1. 收到非正常的数据帧时(数据帧字节过小或过大,数据内容有误,FCS校验有误等)

交换机收到不同帧的转发过程:

 当交换机收到数据帧之后,会优先将帧中的源MAC信息接收帧的端口号进行一个绑定,然后记录在本机的MAC地址表中,这样做的好处就是下次有数据帧需要找某个目标MAC,可以通过MAC地址表快速的找到目标的信息与转发的端口。

  • MAC地址表信息默认老化时间300秒,300秒内MAC信息没有更新/替换,将自动删除该MAC信息。
  • 如果端口状态变为了Down,相应的表项也会立即清除
  • 华为设备手动删除所有MAC地址表信息(含静态、动态等):undo mac-address
[Huawei]display mac-address
MAC address table of slot 0:
---------------------------------------------------------------------------------------------------
MAC Address    VLAN/  PEVLAN CEVLAN Port          Type      LSP/LSR-ID   VSI/SI   MAC-Tunnel  
---------------------------------------------------------------------------------------------------
5489-98dc-20a4 1       -      -      Eth0/0/1     dynamic   0/-         
5489-9836-620f 1       -      -      Eth0/0/2     dynamic   0/-         
---------------------------------------------------------------------------------------------------
Total matching items on slot 0 displayed = 2
交换机收到已知单播帧
  • 已知单播帧:帧中目标MAC地址已经存在本机MAC地址表
  • 交换机收到单播帧之后,拆开发现需要找的目标MAC地址已经存在MAC地址表中,将直接将该帧从MAC地址表中记录的端口中发出。(交换机不修改帧中的源MAC、目标MAC)
交换机收到未知单播帧
  • 未知单播帧:帧中目标MAC地址不存在本机MAC地址表
  • 交换机收到单播帧之后,拆开发现需要找的目标MAC地址不存在MAC地址表中,将向除了收到该帧的端口,对其它端口进行泛洪收到的未知单播帧。
交换机收到广播帧
  • 广播帧:帧中目标MAC地址为ff-ff-ff-ff-ff-ff
  • 当收到广播帧之后,拆开发现需要找的目标是广播MAC,将向除了收到该帧的端口,对其它端口进行泛洪收到的广播帧。

三、路由设备传输数据过程

路由设备与交换设备不同,并不会转发广播包(在二层中称为广播帧),如果发现广播包(ARP)请求的IP并不是自己的IP地址将会直接丢弃该包。

以太网通信架构 以太网通信过程_单播_02

1、当路由器收到数据包的时候,先拆开查看目标IP地址,然后基于路由表中的信息进行数据包的转发。

以下是AR1的路由表信息:

[AR1]display ip routing-table 
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
         Destinations : 11       Routes : 11       
Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface
      10.10.1.0/24  Direct  0    0           D   10.10.1.1       GigabitEthernet0/0/1
      10.10.1.1/32  Direct  0    0           D   127.0.0.1       GigabitEthernet0/0/1
    10.10.1.255/32  Direct  0    0           D   127.0.0.1       GigabitEthernet0/0/1
      127.0.0.0/8   Direct  0    0           D   127.0.0.1       InLoopBack0
      127.0.0.1/32  Direct  0    0           D   127.0.0.1       InLoopBack0
127.255.255.255/32  Direct  0    0           D   127.0.0.1       InLoopBack0
    192.168.1.0/24  Direct  0    0           D   192.168.1.254   GigabitEthernet0/0/0
  192.168.1.254/32  Direct  0    0           D   127.0.0.1       GigabitEthernet0/0/0
  192.168.1.255/32  Direct  0    0           D   127.0.0.1       GigabitEthernet0/0/0
    192.168.2.0/24  Static  60   0          RD   10.10.1.2       GigabitEthernet0/0/1	 #《最优路由
255.255.255.255/32  Direct  0    0           D   127.0.0.1       InLoopBack0
2、如何知道下一跳的MAC地址?
  • 优先查看一下ARP缓存表(与交换机的MAC地址表相似),但并没有下一跳10.10.1.2的MAC信息。

以下是AR1的ARP缓存表信息:

[AR1]display arp 
IP ADDRESS      MAC ADDRESS     EXPIRE(M) TYPE        INTERFACE   VPN-INSTANCE 
                                          VLAN/CEVLAN PVC                      
------------------------------------------------------------------------------
192.168.1.254   00e0-fc34-2537            I -         GE0/0/0
192.168.1.1     5489-98dc-20a4  11        D-0         GE0/0/0
------------------------------------------------------------------------------
Total:4         Dynamic:2       Static:0     Interface:2
  • ARP缓存表中没有信息,将基于目标IP地址,匹配出最优的路由条目的下一跳IP地址,生成一个ARP Request,请求下一跳的MAC地址。

抓包可发现AR1确实发出了ARP Request请求AR2的地址

以太网通信架构 以太网通信过程_网络_03

收到ARP Replay之后,ARP缓存表得到完善

[AR1]display arp 
IP ADDRESS      MAC ADDRESS     EXPIRE(M) TYPE        INTERFACE   VPN-INSTANCE 
                                          VLAN/CEVLAN PVC                      
------------------------------------------------------------------------------
192.168.1.254   00e0-fc34-2537            I -         GE0/0/0
192.168.1.1     5489-98dc-20a4  11        D-0         GE0/0/0
10.10.1.1       00e0-fc34-2538            I -         GE0/0/1
10.10.1.2       00e0-fc65-0a30  11        D-0         GE0/0/1	#《有了10.10.1.2下一跳信息
------------------------------------------------------------------------------
Total:4         Dynamic:2       Static:0     Interface:2
3、转发的时候源IP、目标IP不变,源MAC地址为出接口MAC地址、目标MAC地址为路由下一跳目标的MAC地址(通常是出接口对端的MAC地址)

以下是抓包结果,源MAC地址为AR1的10.10.1.1接口MAC地址,目标MAC地址为AR2的10.10.1.2接口MAC地址

以太网通信架构 以太网通信过程_以太网通信架构_04