目录
一、集线器
1.1 集线器的定义
集线器是一种将多条双绞线或光纤集合连接在同一段物理介质下的设备,通常工作在物理层。
场景1: 假设我们有两台主机A和B,我们此时通过一根网线就可以将两台主机连接起来,此时,两台主机A和B可以直接通过网线进行交互,如下图所示。
场景2:假设我们有四台主机A、B、C和D,我们此时仍通过一个集线器将主机PC连接起来,如下图所示。
此时若主机A向主机B发送一个数据包,则网络中除了主机A外所有主机都会收到这个数据包,只有主机B会接收这个数据包,主机C和主机D都会将该数据包丢弃。
1.2 集线器的特点
上述的场景中,我们可以发现集线器(Hub)有以下特点:
1)Hub采用广播方式,局域网中一台设备发送消息,则其他设备都可以收到该信息,安全性较差,这对网线资源和网卡资源都造成了极大浪费;
2)Hub采用半双工方式,任何一个设备发送数据时,其他设备必须等待;
3)Hub上所有设备共享一条宽带,若宽带是100M,共五台设备,则每台设备只有20M,网络性能收到极大限制;
针对上述存在的问题,我们引入了交换机(Switch),交换机是对集线器的升级。
二、 交换机(Switch)
2.1 交换机的定义
交换机是一种用于光(电)信号转发的网络设备,通常工作在数据链路层,其本质功能就是根据数据包中目的MAC地址找到其对应的物理端口,将数据包发送至正确的位置。
一台交换机有很多个端口,每个端口都会有自己的编号,每个设备通过网线连接到交换机的端口时,这个端口就是一个确定的物理地址,所以在交换机中会有一张MAC地址与端口的映射表,称为MAC地址表,交换机实时维护这张映射关系表,想要与某个MAC地址通信时,只需要查看这张映射关系表,找到对应的端口,然后从对应的端口发送出去就可以了。如下图所示。
2.2 交换机工作流程(桥接)
一个数据包中会包含两个MAC地址,分别是源MAC和目标MAC,发送方的MAC地址称为源MAC,接收方的MAC地址称为目标MAC。假设交换机的的映射表已经学习完毕,交换机收到一个数据包后,交换机大致工作流程如下:
1)首先查看数据包中的源MAC和目标MAC,将源MAC与交换机的接收端口进行绑定,并写入MAC地址映射表;
2)交换机根据目标MAC地址查找,判断从哪个端口将数据发送出去。此时会出现两种情况。
情况一:查询到了关联端口,此时直接将数据包发送至相应端口,
情况二:没有查询到相应端口,此时将数据包采用广播方式发送至其他所有端口(即泛洪),若目标MAC在本网络中,则一定能收到该数据包。
2.3 案例
如下图所示,假设网络中每个主机都知道其他主机的MAC地址(不再运行ARP协议)
情景1:主机A 与主机B通信
step1: 交换机1首先进行登记工作,将主机A的MAC地址与接口号写入MAC映射表(交换机自学习);