一分钟了解交换机四种报文中的三种:广播、组播、未知单播

网络 路由交换
对于二层交换机来说,它在转发报文时,只有四种类型的报文:广播、组播、未知单播、已知单播。

随着互联网的发展,各种应用层出不穷,日新月异,对网络设备的要求也越来越高,对广大设备厂商也提出更多的要求。不过这些事情都与二层交换机没有关系:) ,因为各种应用的数据到达二层交换机时,都只会变成一个一个数据包(帧),交换机基本不会去识别其属于哪种类型的应用。

对于二层交换机来说,它在转发报文时,只有四种类型的报文:广播、组播、未知单播、已知单播。虽然看起来比较简单,但是根据我多年的经验,能理解这四种报文转发机制的小伙伴不多,大多数人一直都很迷糊,但是还成功的活了这么多年:)。我们今天就来先看一下这四种报文中的三种:广播、组播、未知单播,下一篇文章会单独的介绍已知单播。

交换机对广播、组播、未知单播 三种报文处理方式相同

俗话说“物以类聚,人以群分”,估计有小伙伴会有疑问了,广播、组播、未知单播这三种类型的报文看起来差别挺大的,没有什么联系,为什么要放在一起讲呢?

这个世界总是屁股决定脑袋,每个人都有自己的立场,这几个报文对我们来说不一样,但是对于二层交换机来说,处理这三种报文的方式是一样的:将它们进行泛洪,所以会把它们放在一起讲述。

不过在讲解泛洪之前,我们先来认识一下什么是二层广播、组播和未知单播报文。

1. 二层广播报文

当二层交换机收到一个报文时,会取出报文的目的MAC地址,如果MAC地址为全FF,则这个报文就是二层广播报文,例如下面的wireshark抓包截图:

一分钟了解交换机四种报文中的三种:广播、组播、未知单播

二层广播报文

2. 二层组播报文

如果二层交换机收到的报文的MAC地址是以 000:01:5E开头的报文,则这个报文就是二层组播报文,例如下面的wireshark抓包:

一分钟了解交换机四种报文中的三种:广播、组播、未知单播

二层组播报文

3. 未知单播报文

那未知单播报文是什么呢?首先它是一个单播报文,那啥是单播报文呢?简单说除了广播和组播以外的报文,就是单播报文了,即目的MAC地址既不是全F,也不是01:00:5E开头的报文。例如下面的wireshark抓包的内容,就是单播报文了:

一分钟了解交换机四种报文中的三种:广播、组播、未知单播

二层单播报文

那什么是未知单播报文呢?是指哪些在交换机MAC地址表中,没有表项的单播报文,例如下图:

一分钟了解交换机四种报文中的三种:广播、组播、未知单播

MAC地址表

当交换机收到目的MAC地址为0000:2222:2222报文时,会查找MAC地址表,发现没有表项存在,就认为这个报文是未知单播报文。

相反的,当交换机收到目的MAC地址为0000:1111:1111报文时,能查找到表项,就认为这个报文是已知单播报文。

二层交换机对这三种报文全部泛洪处理

上面我们已经掌握交换机如何判别一个报文属于哪种类型,并且说了二层交换机对广播、组播、未知单播的处理方式相同,那到底怎么处理它们呢?网络界有一个专有名词,叫做泛洪,就是为它们专门定制的!

泛洪,英文单词是flooding,表示像洪水一样,会占满所有的空隙,不留任何空间。在交换机里,也是一样的,当一个端口收到上面所说的任何一种报文以后,就会从所有在同一个VLAN里、UP的端口转发出去,例如下图:

一分钟了解交换机四种报文中的三种:广播、组播、未知单播

报文泛洪

当交换机端口P1收到广播、组播、未知单播中的任何一种,会在交换机内部复制4份,然后从P2-P5这4个端口都转发出去。就像洪水占满所有空隙一样,交换机也会把报文从所有的端口发送出去!

总结

经过上面的解释,各位小伙应该对二层交换机处理报文的机制有一定了解了吧,我在来做一个简单的总结:

  • 在二层交换机的世界里,报文只分为4类:广播、组播、未知单播、已知单播;
  • 二层广播报文是指目的MAC为全F的报文,即FF:FF:FF:FF:FF:FF;
  • 二层组播报文指的目的MAC以01-00-5E开头的报文;
  • 二层未知单播指的是在MAC不是广播和组播,在交换机中无表项的单播报文;
  • 交换机对广播、组播、未知单播的处理方式相同:泛洪处理;

 

 

责任编辑:赵宁宁 来源: 今日头条
相关推荐

2019-11-17 22:03:00

交换机报文网络设备

2010-01-04 13:30:03

Cisco交换机

2022-07-18 06:16:07

单点登录系统

2017-07-06 08:12:02

索引查询SQL

2010-01-13 09:45:30

华为交换机端口

2020-07-09 07:37:06

数据库Redis工具

2020-07-17 07:44:25

云计算边缘计算IT

2023-11-06 07:50:00

RabbitMQ交换机

2020-02-16 23:32:11

交换机VLAN端口隔离

2017-05-23 16:13:45

2015-11-20 10:37:36

KeystoneOpenStackDocker

2020-02-10 10:55:37

路由协议OSPFLSA

2016-09-14 15:57:53

架构分布式系统负载均衡

2017-03-30 19:28:26

HBase分布式数据

2022-06-02 08:46:04

网卡网络服务器

2017-12-26 16:24:36

接口代码数据

2017-02-21 13:00:27

LoadAverage负载Load

2018-07-31 16:10:51

Redo Undo数据库数据

2018-06-26 05:23:19

线程安全函数代码

2020-05-21 19:46:19

区块链数字货币比特币
点赞
收藏

51CTO技术栈公众号