网络:交换机工作原理

交换机的作用

  • 连接多个以太网物理段,隔离冲突域
  • 对以太网帧进行高速而透明的交换转发
  • 自行学习和维护MAC地址信息

交换机工程在二层,可以用来隔离冲突域,在OSI参考模型中,二层的作用是寻址,这边寻址指的是MAC地址,而交换机就是对MAC地址进行转发,在每个交换机中,都有一张MAC地址表,这个表是交换机自动学习的。

总的来说,交换机的作用是寻址和转发。 注意,这里的寻址和转发都是MAC地址

交换机的特点

  • 主要工作在OSI模型的物理层,数据链路层
  • 提供以太网的透明桥接和交换
  • 依据链路层的MAC地址,将以太网数据帧通过交换机端口进行转发

交换机MAC地址表转发过程

网络:交换机工作原理_第1张图片

交换机刚启动时,MAC地址表中无表项。以上图中的交换机就是刚刚启动时的MAC地址表。可以看出没有任何的表项,当加入PC的时候,交换机开始进行学习MAC地址。如下图:
网络:交换机工作原理_第2张图片

  • PCA发出数据帧(假设要发送给PCB)
  • 交换机把PCA的帧中的源地址MAC_A与接受到此帧的端口E1/0/1关联起来
  • 交换机检测自己的MAC地址表,没有发现目标地址
  • 交换机把PCA的帧从所有其他端口发送出去(除了接收到帧的端口E1/0/1)
    网络:交换机工作原理_第3张图片
    此时局域网内的所有主机都会收到此数据帧,但是只有PCB才会相应这个数据帧,并绘影一个数据帧。 交换机会把MAC_B与端口E1/0/2关联起来。此后就可以进行一对一单播了。

网络:交换机工作原理_第4张图片

  • PCA发出目的到PCD的单播数据帧
  • 交换机根据帧中的目的地址,从相应的端口E1/0/4发送出去
  • 交换机不在其他端口上转发此单播数据帧

传输过程

交换机在接收到数据帧以后

  • 首先会记录数据帧中的源MAC地址和对应的接口到MAC表中
  • 接着会检查自己的MAC表中是否有数据帧中目标MAC地址的信息
    • 如果有则会根据MAC表中记录的对应接口将数据帧发送出去(也就是单播)
    • 如果没有,则会将该数据帧从非接受接口发送出去(也就是广播)。

下图为数据经过单交换机的传输过程
网络:交换机工作原理_第5张图片

  • 主机A会将一个源MAC地址为自己,目标MAC地址为主机B的数据帧发送给交换机。

  • 交换机收到此数据帧后,首先将数据帧中的源MAC地址和对应的接口(接口为f 0/1) 记录到MAC地址表中。

  • 然后交换机会检查自己的MAC地址表中是否有数据帧中的目标MAC地址的信息,如果有,则从MAC地址表中记录的接口发送出去,如果没有,则会将此数据帧从非接收接口的所有接口发送出去(也就是除了f 0/1接口)。

  • 这时,局域网的所有主机都会收到此数据帧,但是只有主机B收到此数据帧时会响应这个广播,并回应一个数据帧,此数据帧中包括主机B的MAC地址。如果没有主机相应这个广播,则会继续向下一个交换机或路由器传播。- 当交换机收到主机B回应的数据帧后,也会记录数据帧中的源MAC地址(也就是主机B的MAC地址),这时,再当主机A和主机B通信时,交换机根据MAC地址表中的记录,实现单播了。

下图为经多个交换机进行数据传播的过程。
网络:交换机工作原理_第6张图片

  • 主机A将一个源MAC地址为自己、目标MAC地址主机C的数据帧发送给交换机。

  • 交换机1收到此数据帧后,会解析源MAC地址,并检查MAC地址表,发现没有目标MAC地址的记录,则会将数据帧广播出去,主机B和交换机2都会收到此数据帧。主机B会检查本机MAC地址,发现不一样,则不响应。

  • 交换机2收到此数据帧后也会将数据帧中的源MAC地址和对应的接口记录到MAC地址表中,并检查自己的MAC地址表,发现没有目标MAC地址的记录,则会广播此数据帧。

  • 主机C收到数据帧后,会响应这个数据帧,并回复一个源MAC地址为自己的数据帧,这时交换机1和交换机2都会将主机C的MAC地址记录到自己的MAC地址表中,并且以单播的形式将此数据帧发送给主机A。

  • 这时,主机A和主机C通信就是一单播的形式传输数据帧了,主机B和主机C通信如上述过程一样,因此交换机2的MAC地址表中记录着主机A和主机B的MAC地址都对应接口f 0/1。

注意:

  • 交换机具有动态学习源MAC地址的功能,并且交换机的一个接口可以对应多个MAC地址,但是一个MAC地址只能对应一个接口
  • 交换机动态学习的MAC地址默认只有300S的有效期,如果300S内记录的MAC地址没有通信,则会删除此记录。

如何解决广播问题和安全问题

机器多了,交换机也就多了,交换机就难免会有广播问题。在同一个广播域里面,很多包都会在一个局域网里面飘啊飘,如果没有加密又被抓包了,很可能会导致敏感信息泄露。怎么解决呢?有两个方法:
(1) 物理隔离

每个部门有单独的交换机,配置单独的子网,这样部门之间的沟通就需要路由器了。

这里的问题在于,如果每个部分都有单独的交换机,口多了浪费,少了又不够用

(2) 虚拟隔离:也就是VLAN,或者叫做虚拟局域网

使用VLAN,一个交换机上会连属于多个局域网的机器,那么交换机怎么区分哪个机器属于哪个局域网呢?

  • 我们只需要在原来的二层的同上加上一个TAG,里面有VLAN ID,一共12位。(12位可以划分4096个用户,如果用户超出了4096了什么办????)

网络:交换机工作原理_第7张图片

  • 如果我们买的交换机是支持VLAN的,当这个交换机把二层的头取下来的时候,就能够识别这个VLAN ID。这样只有相同VLAN的包,才会相互转发,不同VLAN的包,是看不到的。这样广播问题和安全问题就解决了
    网络:交换机工作原理_第8张图片

我们可以设置交换机每个口所属VLAN,比如VLAN10、VLAN11等,而且每个VLAN的口都是可以重置的。

那交换机之间应该怎么连接呢?对于支持VLAN的交换机,有一种口叫做Trunk口,它可以转发属于任何VLAN的口,交换机之间可以通过这种口相互连接。

你可能感兴趣的:(网络,网络)