引言:对于三层交换机这个名词,大家应该不陌生,但大家是否正真了解它,对于它我有太多的疑问:

* 为什么叫三层?
* 为什么要有三层,二层不够?
* 其工作流程是怎样?
* 为什么同时可以工作在二层模式也可以工作在三层模式下?
* 什么是一次路由多次转发?
* ...

这里面含有着种种的疑问,在这里我也会给出我理解的答案:

  • 为什么叫三层? - 工作在网络层(OSI中属于第三层)
  • 为什么要有三层,二层不够? - 应该是为了满足大型网络的通信效率,二层交换机承受的主机数毕竟有限,而路由器效率不高

————————–我是分割线————————

以上都是概念性的,下面来点真功夫,先上图

 ------------------------------
|           三层交换机          	|
|   -------         -------   	| 
|  |  网关1 |      |  网关2  | 	|
 ----1---2-------------3-------
     |   |             |
     |   |             |
     |   |             |
     |   |             |
     A   B             C

1、2、3 - 交换机网口
网关1 - 192.168.2.1
网关2 - 192.168.3.1
主机A - 192.168.2.2
主机B - 192.168.2.3
主机C - 192.168.3.2
  • 二层交换机工作流程
    • 从一个端口接收数据包,解析源MAC,并更新CAM表
    • 解析目的MAC,并从CAM表查找该MAC对应的网口
    • 若找到则直接复制数据包到相应网口上
    • 若未找到,则广播数据到所有端口,并记录结果到CAM中
  • 工作在二层(主机A to 主机B)
    • 交换机检测主机A与主机B的IP,发现是在同一个网络下
    • 采用二层交换机工作流程与B通信(参考二层交换机工作流程)
  • 工作在三层(主机A to 主机C)
    • 交换机发现主机A与主机C不在同一个网络下
    • 通过路由规则,网关1将数据发给网关2(参看路由器路由过程)
    • 网关2将数据发给主机C

————————–我是分割线————————

从以上可以看成,若主机在同一个网段,则采用二层工作模式,若主机不在同一个网络,则采用三层工作模式