一般普遍认为一个HUB(集线器)就是一个冲突域,而使用交换机就可以隔离冲突域。但是无论是HUB 还是交换机它们都具有广播域。HUB 和交换机的区别:同一个 HUB 的所有端口都在同一个广播域和同一个冲突域内的。而同一台交换机的所有端口都在同一个广播域内,而每一个端口就是一个冲突域。
冲突域就是所有节点竞争同一带宽,从一个节点上发出的报文(无论是单播、组播、广播),除这个发送节点和接收节点会接收到相应的报文之外,和它同一个介质(也就是同一台物理设备)上其余所有的节点都会收到不应该出现在这些节点上的报文。
一般普遍认为一个 HUB(集线器)就是一个冲突域。
广播报文所能到达网络的整个访问范围称为二层广播域,简称广播域,同一广播域内的主机都能收到广播报文。广播报文一般采用 ARP 协议进行广播。
一个 MAC 地址全为 1 的地址( FF-FF-FF-FF-FF-FF )就是广播地址,所有节点都会把目的地址处理为广播地址的数据帧,这个数据帧能到达的整个访问范围就称为二层广播域,也就是广播域。
正常来说,通过广播地址就可以访问到同一个网络中所有的设备,广播域的目的就是要让同一个网络中的所有设备都能收到报文。二层交换机需要把广播帧从除源端口之外的端口转发出去,所以二层交换机不能够隔离广播。
ARP(Address Resolution Protocol,地址解析协议)是用来将 IP 地址解析为 MAC 地址的协议。 ARP 协议位于网络参考模型中的第二层,也就是数据链路层,通过上面的协议地图也可以看到。
MAC 地址是物理地址,在设备出厂时就已经烧录在固件里面了,作为设备的唯一标识,作用就相当于一个身份证,要想准确无误的找到一台设备就必须要知道它的 MAC 地址。
但是在实际的网络中,我们一般都是去通过 IP 地址去访问相应的设备,因为 IP 地址是一个逻辑地址,可以屏蔽物理地址的差异。
简单来说,就是两台 PC 之间需要通信,一般都只知道对方的 IP 地址,而不知道对方的 MAC 地址,所以想要去访问另外一台主机就需要通过 ARP 协议把 IP 地址转换为我们目标主机的 MAC 地址,这样我们就可以找到对应的目标主机了。
注:ARP 的协议报文是由终端(PC、服务器等)发出的,而不是由交换机发出来的!!!
演示冲突域需要使用 HUB(集线器),也就是下面图中中间的设备
HUB(集线器)在的现实生活中已经基本算是被淘汰了,平时的二层网络的连接一般都是使用交换机,但是即使是这样我们还是应该要知道有这样一个东西。
使用 Wireshark 抓包软件分别抓一下 HUB 的三个接口,就可以观察到一些现象。
使用 PC1 去 ping PC2 的 IP 地址,按理来说应该只有 HUB 上的 Ethernet 0/0/1 接口和 Ethernet 0/0/2 端口可以抓到相应的 ARP 回复报文以及对应的 ICMP报文,Etherner 0/0/3 端口应该是除了 ARP的广播之外什么都收不到的,但事实上却是 Etherner 0/0/3 端口也会收到 ARP 的回复报文以及 ping 命令产生的 ICMP 报文。 这个就是一个冲突域的体现。
对 HUB 的 Ethernet 0/0/1
端口抓包:
这个是数据的发送端,虽然看这个的意义并不大,但我们可以观察到有两条 ARP 的报文,以及一些 ICMP 报文(由 ping 命令产生的)
第一条就是 ARP 的广播报文,在终端不知道目标的 MAC 地址时会向网络中的各个端口询问 Who has 192.168.10.20(目标主机的 IP 地址),告诉其他端口发送端的 IP 地址,并把发送端的 MAC 地址(这里就是 PC1 的 MAC 地址)封装到 ARP 报文中
第二条 ARP 报文是目标主机返回给源主机的报文,报文里面就带有目标主机的 MAC 地址
对 HUB 的 Ethernet 0/0/2
端口抓包:
可以看到 Ethernet 0/0/2 端口也可以抓到 ARP 的广播报文和、ARP 的回复报文以及 ICMP报文
对 HUB 的 Ethernet 0/0/3
端口抓包:
这个端口也收到了一个ARP 广播报文,然后这个本来与接收端和发送端任何没有关系的端口也收到了并不属于它的 ARP 的回复报文(第二条 ARP 报文)以及 ICMP 报文,这些报文按理来说都是不应该出现在这个端口上的东西,这个现象就是冲突域在真实设备上面的体现,所以普遍认为一个HUB(集线器)就是一个冲突域。
注:通过上面的实验其实不难发现,HUB(集线器)既不能隔离冲突域也不能隔离广播域!!!
使用二层交换机来演示广播域在物理设备中的具体体现形式(不需要在交换机上做任何配置)
对交换机的 Ethernet 0/0/1
端口抓包:
这个是发送端的端口,所以当然可以收到 ARP 广播报文、ARP 回复报文以及 ICMP 报文
对交换机的 Ethernet 0/0/2
端口抓包:
这个是接收端的端口,也可以收到 ARP 广播报文、ARP 回复报文以及 ICMP 报文
对交换机的 Ethernet 0/0/3
端口抓包:
这个端口就与 PC4 和 PC5 之间的通信没有多大关系了,只是收到了一个 ARP 广播报文,并没有收到其他一些不应该出现在这个端口的数据报文(ARP 回复报文、ICMP 报文),这个就是与之前的 HUB 不一样的地方了,交换机会将冲突域隔离。
注:交换机其实与 HUB(集线器)能够接收到的数据报文类似,但是不同的地方在于交换机可以隔离冲突域,但是不能隔离广播域!!!
如果文章对各位小伙伴有帮助的话欢迎三连!!!
另外,文章如有错误之处,也欢迎各位大佬批评指正!!!