一分鐘了解交換機(jī)四種報文中的三種:廣播、組播、未知單播
隨著互聯(lián)網(wǎng)的發(fā)展,各種應(yīng)用層出不窮,日新月異,對網(wǎng)絡(luò)設(shè)備的要求也越來越高,對廣大設(shè)備廠商也提出更多的要求。不過這些事情都與二層交換機(jī)沒有關(guān)系:) ,因為各種應(yīng)用的數(shù)據(jù)到達(dá)二層交換機(jī)時,都只會變成一個一個數(shù)據(jù)包(幀),交換機(jī)基本不會去識別其屬于哪種類型的應(yīng)用。
對于二層交換機(jī)來說,它在轉(zhuǎn)發(fā)報文時,只有四種類型的報文:廣播、組播、未知單播、已知單播。雖然看起來比較簡單,但是根據(jù)我多年的經(jīng)驗,能理解這四種報文轉(zhuǎn)發(fā)機(jī)制的小伙伴不多,大多數(shù)人一直都很迷糊,但是還成功的活了這么多年:)。我們今天就來先看一下這四種報文中的三種:廣播、組播、未知單播,下一篇文章會單獨的介紹已知單播。
交換機(jī)對廣播、組播、未知單播 三種報文處理方式相同
俗話說“物以類聚,人以群分”,估計有小伙伴會有疑問了,廣播、組播、未知單播這三種類型的報文看起來差別挺大的,沒有什么聯(lián)系,為什么要放在一起講呢?
這個世界總是屁股決定腦袋,每個人都有自己的立場,這幾個報文對我們來說不一樣,但是對于二層交換機(jī)來說,處理這三種報文的方式是一樣的:將它們進(jìn)行泛洪,所以會把它們放在一起講述。
不過在講解泛洪之前,我們先來認(rèn)識一下什么是二層廣播、組播和未知單播報文。
1. 二層廣播報文
當(dāng)二層交換機(jī)收到一個報文時,會取出報文的目的MAC地址,如果MAC地址為全FF,則這個報文就是二層廣播報文,例如下面的wireshark抓包截圖:
二層廣播報文
2. 二層組播報文
如果二層交換機(jī)收到的報文的MAC地址是以 000:01:5E開頭的報文,則這個報文就是二層組播報文,例如下面的wireshark抓包:
二層組播報文
3. 未知單播報文
那未知單播報文是什么呢?首先它是一個單播報文,那啥是單播報文呢?簡單說除了廣播和組播以外的報文,就是單播報文了,即目的MAC地址既不是全F,也不是01:00:5E開頭的報文。例如下面的wireshark抓包的內(nèi)容,就是單播報文了:
二層單播報文
那什么是未知單播報文呢?是指哪些在交換機(jī)MAC地址表中,沒有表項的單播報文,例如下圖:
MAC地址表
當(dāng)交換機(jī)收到目的MAC地址為0000:2222:2222報文時,會查找MAC地址表,發(fā)現(xiàn)沒有表項存在,就認(rèn)為這個報文是未知單播報文。
相反的,當(dāng)交換機(jī)收到目的MAC地址為0000:1111:1111報文時,能查找到表項,就認(rèn)為這個報文是已知單播報文。
二層交換機(jī)對這三種報文全部泛洪處理
上面我們已經(jīng)掌握交換機(jī)如何判別一個報文屬于哪種類型,并且說了二層交換機(jī)對廣播、組播、未知單播的處理方式相同,那到底怎么處理它們呢?網(wǎng)絡(luò)界有一個專有名詞,叫做泛洪,就是為它們專門定制的!
泛洪,英文單詞是flooding,表示像洪水一樣,會占滿所有的空隙,不留任何空間。在交換機(jī)里,也是一樣的,當(dāng)一個端口收到上面所說的任何一種報文以后,就會從所有在同一個VLAN里、UP的端口轉(zhuǎn)發(fā)出去,例如下圖:
報文泛洪
當(dāng)交換機(jī)端口P1收到廣播、組播、未知單播中的任何一種,會在交換機(jī)內(nèi)部復(fù)制4份,然后從P2-P5這4個端口都轉(zhuǎn)發(fā)出去。就像洪水占滿所有空隙一樣,交換機(jī)也會把報文從所有的端口發(fā)送出去!
總結(jié)
經(jīng)過上面的解釋,各位小伙應(yīng)該對二層交換機(jī)處理報文的機(jī)制有一定了解了吧,我在來做一個簡單的總結(jié):
- 在二層交換機(jī)的世界里,報文只分為4類:廣播、組播、未知單播、已知單播;
- 二層廣播報文是指目的MAC為全F的報文,即FF:FF:FF:FF:FF:FF;
- 二層組播報文指的目的MAC以01-00-5E開頭的報文;
- 二層未知單播指的是在MAC不是廣播和組播,在交換機(jī)中無表項的單播報文;
- 交換機(jī)對廣播、組播、未知單播的處理方式相同:泛洪處理;