根据OSI七层网络模型,交换机可以分成二层和三层交换机。
- 基于MAC地址进行交换的二层交换机是应用最为普遍的,用于网络的接入层;
- 基于IP地址进行交换的三层交换机用于网络的核心层和汇聚层。
对二层交换机来说,以太网帧从入口进来到出口离去,数据帧原封不动,内容一点不变。转发数据主要有以下三个步骤:
- 入口对数据帧进行CRC校验,检验成功则接收,否则丢弃;
- 提取目的MAC地址,对照MAC地址表,如果表里已记录了MAC地址表,则将数据帧按照MAC地址表通过交换矩阵进行转发;
- 如果目的MAC地址不存在,则将数据帧进行广播泛洪。
对三层交换机来说,可以将它理解为带有路由功能的交换机,与二层交换机的区别就是桥接(bridge)和路由(route)的区别。转发数据主要有以下五个步骤:
- 入口对数据帧进行CRC校验,检验成功则接收,否则丢弃;
- 提取目的MAC地址,如果MAC地址不是自己,则将数据帧按照MAC地址表通过交换矩阵进行转发;
- 如果目的MAC地址等于自己的MAC地址,则解封装查看IP头的信息;
- 如果目的IP等于自己的IP,则直接提交(punt)给上层TCP/IP协议栈继续处理;
- 如果目的IP不等于自己的IP,则查询路由表,找到对应出口,用出口的ethernet头替换入口的ethernet头,并通过交换矩阵交换到出口,完成三层路由。