交换机(二层)

  • Post author:
  • Post category:其他

交换机原理

1、术语

    端口地址表(MAC地址表) : 记录存储的MAC地址和接口关系(就是交换机上的网口)。

    帧 : 二层交换的数据包。

            VLAN :虚拟局域网。

 

2、数据交换原理 (要分析下交换机源码,确定当前原理可信度)

      MAC地址表构建 :

    以太网交换机了解每一端口相连设备的MAC地址,并将地址同相应的端口映射起 来存放在交换机缓存中的MAC地址表中。如下图是MAC地址表的构建过程:

    交换机的初始化状态,MAC地址表为空 :

 

         地址表原MAC地址学习 :

    当计算机PC1要发送数据帧给计算机PC6时,因此时地址表是空的,交换机将向除PC1连接端口E0/1以外的其他所有端口转发数据帧。在转发之前,首先检查该数据帧的源MAC地址(00-10-B5-4B-30-85),并在交换机的MAC地址表中添加一条记录(00-10-B5-4B-30-85,E0/1)使之和端口E0/1相对应。

 

     目的计算机P6回复数据帧 : 计算机PC6收到发送的数据帧后,用该数据帧的目的MAC地址和本机的MAC地址比较,发现PC1找的正是它,则接收该数据帧,其他计算机丢弃数据帧。计算机PC6回复PC1时,交换机直接从端口E0/1转发,并学习到(00-10-B5-4B-30-65)为PC6连接的端口,将其添加到地址表中,如图3所示。交换机的其他端口利用源MAC地址学习的方法在MAC地址表中不断添加新的MAC地址与端口号的对应信息。直到MAC地址表添加完整为止。

     目的计算机P6回复数据帧 :  计算机PC6收到发送的数据帧后,用该数据帧的目的MAC地址和本机的MAC地址比较,发现PC1找的正是它,则接收该数据帧,其他计算机丢弃数据帧。计算机PC6回复PC1时,交换机直接从端口E0/1转发,并学习到(00-10-B5-4B-30-65)为PC6连接的端口,将其添加到地址表中,如图3所示。

    交换机的其他端口利用源MAC地址学习的方法在MAC地址表中不断添加新的MAC地址与端口号的对应信息。直到MAC地址表添加完整为止。

    

    

MAC地址表老化清除 :

     为了保证MAC地址表中的信息能够实时地反映网络情况,每个学习到的记录都有一个老化时间,如果在老化时间内收到地址信息则刷新记录。对没有收到相应的地址信息的则删除该记录。例如,计算机PC6停止了和交换机通信,达到老化时间后,交换机会将其对应的记录从MAC地址表中删除。

3、交换机的工作特性以及分类

特性 :

1.交换机的每一个端口所连接的网段都是一个独立的冲突域。 

2.交换机所连接的设备仍然在同一个广播域内,也就是说,交换机不隔绝广播

(惟一的例外是在配有VLAN的环境中)。 

3.交换机依据帧头的信息进行转发,因此说交换机是工作在数据链路层的网络设备 (此处所述交换机仅指传统的二层交换设备)。


分类 :

存储转发 :

交换机在转发之前必须接收整个帧,并进行错误校检,如无错误再将这一帧发往目的地址。帧通过交换机的转发时延随帧长度的不同而变化。 

 

直通式 :

交换机只要检查到帧头中所包含的目的地址就立即转发该帧,而无需等待帧全部的被接收,也不进行错误校验。由于以太网帧头的长度总是固定的,因此帧通过交换机的转发时延也保持不变。

 

 

4、交互及工作流程

1)当交换机从某个端口收到一个数据包,它先读取包头中的源MAC地址,这样它就知 道源MAC地址的机器是连在

    哪个端口上的;

2)再去读取包头中的目的MAC地址,并在地址表中查找相应的端口;

3)如表中有与这目的MAC地址对应的端口,把数据包直接复制到这端口上;

4)如表中找不到相应的端口则把数据包广播到所有端口上,当目的机器对源机器回应 时,交换机又可以学习一

    目的MAC地址与哪个端口对应,在下次传送数据时就不 再需要对所有端口进行广播了。

5)不断的循环这个过程,对于全网的MAC地址信息都可以学习到,二层交换机就是这 样建立和维护它自己的地址表。

 

5、VLAN

    VLAN : 虚拟机局域网, LAN为少数几台计算机组成得我网络,VLAN的LAN为路由器 分割的网络 —— 广播域
 广播域 : 广播帧(目标MAC地址全为1)所能传的范围(两个广播域之间的通信由交换 机来实现)
 帧传播 :  A发送数据给B,A需要发送ARP广播先获取到B的MAC地址,交换机1收 到广播帧(ARP请求)后,

 

        会将它转发给除接收端口外的其他所有端口,也就是 Flooding了。接着,交换机2收到广播帧后也会Flooding。
        交换机3、4、5也还会 Flooding。最终ARP请求会被转发到同一网络中的所有客户机上。但实际上,只要 将ARP

 

      广播到B就行了,这样讲无疑会消耗大量的大量的网络带宽和每台计算机 的CPU。

 

        

        

    VLAN分割广播域 : 在逻辑上生成独立的广播域(也可以理解为将一台交换机逻辑 上分成了多个交换机)。

    VLAN生成的逻辑上的交换机是互不相通的。

        
    

    VLAN方式 :

    静态LAN : 静态VLAN又被称为基于端口的VLAN(PortBased VLAN)。顾名思义,就是明确指定各端口属于哪个VLAN的设定方法。由于需要一个个端口地指定,因此当网络中的计算机数目超过一定数字(比如数百台)后,设定操作就会变得烦杂无比。并且,客户机每次变更所连端口,都必须同时更改该端口所属VLAN的设定——这显然不适合那些需要频繁改变拓补结构的网络。

    

    动态LAN :动态VLAN则是根据每个端口所连的计算机,随时改变端口所属的VLAN(一般使用这种方式)

    动态VLAN可以大致分为3类 :

                1) 基于MAC地址的VLAN(MAC Based VLAN)

        基于MAC地址的VLAN,就是通过查询并记录端口所连计算机上网卡的MAC地址来决定端口的所属。假定有一个MAC地址“A”被交换机设定为属于VLAN “10”,那么不论MAC地址为“A”的这台计算机连在交换机哪个端口,该端口都会被划分到VLAN 10中去。计算机连在端口1时,端口1属于VLAN 10;而计算机连在端口2时,则是端口2属于VLAN 10。但是,基于MAC地址的VLAN,在设定时必须调查所连接的所有计算机的MAC地址并加以登录。而且如果计算机交换了网卡,还是需要更改设定。

            
 

                2)基于子网的VLAN(Subnet Based VLAN)

                3)基于IP地址的VLAN(User Based VLAN)

        这两种都是基于IP来划分子网,这不过一个是个IP段(即IP访范围),并没有很大的区别(涉及到IP层协议,需要三层交换机才有这个能力)。

            
 

 

 

        VLAN间通信 : LAN是广播域。而通常两个广播域之间由路由器连接,广播域之间 来往的数据包都是由路由器中继的。因此,VLAN间的通信也需要路由器提供 中继服务,这被称作“VLAN间路由”(三层交换机 )


版权声明:本文为dengshengli123原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。