以太网交换机的通识

前言

    在介绍交换机之前,首先要了解的 计算机网络基础什么是MAC地址与IP地址?。如下是OSI七层网络模型的简单介绍:

序号名称描述
一层物理层(PHY)负责驱动网络上信号的收发器,发送和接受位 。
二层数据链路层(MAC)负责创建在网络上传送的帧,包含mac地址的帧。
三层网络层(IP)负责创建在网络上传送的包,包含IP地址的包。相关协议包括:ICMP IGMP IP(IPV4 IPV6)
四层传输层(TCP/UDP)负责不同主机上的应用程序之间建立连接。
五层会话层用户应用程序与网络的接口
六层表示层
七层应用层应用层是一组需要网络通信的应用程序。

    

一、以太网交换机的作用

    首先,这里强烈推荐B站视频:交换机工作原理。为什么需要交换机呢?在以太网中连接在同一介质上的各个节点是共享链路的,也就是各个节点之间争夺链路的使用权时会发生冲突,即这些节点是属于同一个冲突域。而以太网的逻辑拓扑结构是总线型的,采用避免冲突的方式是依据 CSMA/CD 协议,做法时检测到冲突时,网络传输会有一个回退,在这个回退时间内是不发生任何传输的。而同属于一个冲突域的节点越多,发生冲突的概率也就越大。并且退避时间是根据二进制指数算法得到,冲突发生的越多,退避时间越长,从而影响网络的传输效率。至此,通过交换机来转发,将不同节点的冲突域隔离,使得交换机的每个端口就是一个冲突域,如下图所示:
在这里插入图片描述

    在功能上,以太网交换机的主要的功能就是充当邮递员的角色,将数据包发送到正确的位置,包括有如下:

  • 学习:以太网交换机会记录每一个端口上连接设备的mac地址,并将mac地址同端口号形成映射,登记在地址表中;
  • 转发/过滤:当一个数据帧的目的MAC地址在MAC地址表中有映射时,它被转发到连接目的节点的端口;当目的mac地址在地址表中找不到对应端口映射时,会转发给所有端口(这个过程称为“泛洪”,以广播/组播的方式),直到有端口回应,此时交换机会记录这个目的MAC地址与端口号的对应关系,打到自学习的目的;
  • 消除冗余:以太网交换机通过生成树协议避免回路的产生,同时允许存在后备路径。

二、交换机的分类

2.1 二、三、四层交换机

    根据交换机工作在OSI网络模型中不同层可以将交换机分为二、三、四层交换机。如下表:

名称工作区域原理描述优点缺点
二层交换机数据链路层通过mac地址,实现对同一个子网内可以进行数据交换可以识别数据包中的源MAC地址信息,根据MAC地址转发到对应的目的MAC地址,并将这些源MAC地址和目的MAC地址的端口记录在内部的一个地址表中(MAC映射表)数据交换是通过识别MAC地址实现的,速度非常快无法处理大量跨越IP子网的数据包,只能依赖于路由器进行管理。
三层交换机数据链路层 + 网络层基于IP地址转发数据包,具有VLAN(虚拟局域网)功能对来的数据包进行路由选择,产生一个MAC地址与IP地址的映射表,找到对应的目的IP地址,然后查询MAC地址表,找到这个IP地址的MAC对应信息,再通过二层通信原理将数据包交换。当同样的数据流再次通过时,就无须路由,直接通过二层转发,实现一次路由,多次转发。解决了传统二层交换依赖路由器转发时每次都要路由,效率很低的缺点
四层交换机基于端口不仅基于第二层桥接和第三层路由选择,同时也基于TCP/UDP应用端口来做出转发决定的能力,能够基于应用对数据流进行优先级划分

下一章节会更加详细介绍二、三层交换机,四层交换机暂略。

2.2 存储转发和直通式

根据交换机收到数据包后不同的操作模式,主要可分为两类:

名称描述
存储转发1)交换机在转发之前必须接收整个帧,并进行错误校检,如无错误再将这一帧发往目的地址。
2)帧通过交换机的转发时延随帧长度的不同而变化。
直通式1)交换机只要检查到帧头中所包含的目的地址就立即转发该帧,而无需等待帧全部的被接收,也不进行错误校验。
2)由于以太网帧头的长度总是固定的,因此帧通过交换机的转发时延也保持不变。
3)尽管速度快,但是由于不进行checksum,会转发很多的错误数据包。

三、交换机的工作原理和流程

下面主要还是以二、三、四层交换机分类来接绍交换机的工作,四层暂不介绍。

3.1 二层交换机

    二层交换机是工作在数据链路层,通过MAC地址对数据包进行转发,同时会将这些MAC地址和对应的端口号记录在一张地址表中。二层交换的步骤如下:

  • 假设交换机从端口01收到一个数据包,分别读取数据包中的源MAC地址(00_11)和目标MAC地址(00_22),源MAC地址的所对应的端口号会被记录到地址表中(形成 00_11 --> 01的映射关系)。
  • 交换机会根据目的MAC地址(00_22)在地址表中查找对应的端口号。
  • 如果表中有这个目的MAC地址对应端口号的记录,那就把这个数据转发到对应的端口。
  • 如果表中没有找到这个目的MAC地址对应的端口号,就会把这个数据包广播到所有的端口上,也就跟小蝌蚪找妈妈一样,这个傻儿子(目的MAC地址)是不是你家(端口号)的。当有端口给出回应,交换机会将数据转发到这个端口,并将这个端口与目的MAC地址形成映射,登记在地址表中,完成交换机的学习过程。
  • 地址表中的每个表项在建立后开始进行倒计时,每次发送数据都要刷新记时。对于长期不发送数据的主机,其MAC地址的表项在生存期结束时删除。

    传统的二层交换机的所有端口都在同一个广播域,但是如果有需求需要同一台主机更换到不同的广播域,又不想重新连线,就在二层交换机的基础上引入了VLAN(虚拟局域网)。如下图VLAN的使用所示:
在这里插入图片描述

3.2 三层交换机

    在介绍三层交换机之前,我们知道二层交换机无法完成来自不同子网的数据包的转发,必须要通过路由器的路由才行。那么什么是子网?子网的划分是将IP地址与子网掩码按位相与(IP&子网掩码),常用的子网掩码如255.255.255.0(换算为二进制:1111_1111_1111_1111_1111_1111_0000_0000)。IP&子网掩码结果相同的两个IP地址是属于同一个子网的。那么为什么要划分子网,TCP/IP协议规定,不同子网之间是不能直接进行通信的,如果要通信需要通过网关来通信。
    所以三层交换机是通过IP地址进行转发,内部通过查表的方式再进行二层转发。三层交换的步骤如下:

  • 假设A要给B发送数据,已知目的IP,那么A就用子网掩码取得网络地址,判断目的IP是否与自己在同一网段。
  • 如果属于同一子网,但不知道转发数据所需的MAC地址,A就发送一个ARP请求,B返回其MAC地址,A用此MAC地址封装数据包并发送给交换机,交换机利用二层通信,查找MAC地址表,将数据包转发到相应的端口。
  • 如果目的IP地址来自不同子网,那么A要实现和B的通讯,在流缓存条目中没有对应MAC地址条目,就将第一个正常数据包发送向一个缺省网关,这个缺省网关一般在操作系统中已经设好,对应第三层路由模块。所以可见对于不是同一子网的数据,最先在MAC表中放的是缺省网关的MAC地址;然后就由三层模块接收到此数据包,查询路由表以确定到达B的路由,将构造一个新的帧头,其中以缺省网关的MAC地址为源MAC地址,以主机B的MAC地址为目的MAC地址。通过一定的识别触发机制,确立主机A与B的MAC地址及转发端口的对应关系,并记录进流缓存条目表。
  • 当建立了源IP地址和目的IP地址之间的一条通路后,三层交换机在收到该A到B的包时,就没有必要每次将接收到的数据包进行拆包来判断路由,而是直接将数据包进行二层转发。这就通常所说的一次路由、多次转发。
  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小verifier

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值