现在的位置: 首页 > 综合 > 正文

以太网的組播地址映射方法

2013年07月21日 ⁄ 综合 ⁄ 共 2116字 ⁄ 字号 评论关闭

乙太網的 組播IP地址映射到MAC地址方法都被講爛了,我簡要的說明下,5步。

1、MAC地址是48位的,IP地址是32位的,所以要把32位的IP地址映射到48位的MAC上原則上沒問題,MAC還多出 48 - 32 = 16位來;

2、然而48位的MAC如果作為組播使用,其高24位固定為 0000 0001, 0000 0000, 0101 1110 == 01 - 00 - 5e,這是規定的。於是乎可用的MAC地址位就變成48 - 24 = 24位了;可IP地址還是32位,所以如果要強行映射,必定造成一對多的結局,即N個IP地址映射到1個MAC地址上;

3、不幸的是MAC地址餘下的24位也並非都能使用。第23位也不讓用,規定置0,見下圖紅色部份:

0000 0001, 0000 0000, 0101 1110 , 0XXX XXXX, XXXX XXXX, XXXX XXXX

        01          -          00          -           5e             |

                                                                              |

                                                                     
規定置0

那麼就只剩下48 - 24 -1 = 23位可用了。

4、組播IP地址的範圍是:點分十進制     224.0.0.0                        寫成二進制就是       
1110
0000, 0000 0000, 0000 0000, 0000 0000

                                                                              |                                                                                                                     |

                                                                       239.255.255.255                                              1110 1111, 1111 1111, 1111 1111, 1111 1111

觀察發現,這堆組播地址的高4位都是1110,(上圖標紅處),只是後28位從全0變換到全1。那麼如果省略高4位,我們也知道肯定是1110。於是乎我們就省略吧,本來MAC地址的位就不夠用。這樣一來,IP地址需要映射的位就是 32 - 4 = 28位了。這28位再沒法省了。

5、將IP地址的28位映射到MAC地址剩下的23位上去,不夠用,28 - 23 = 5,MAC地址少了5位,那麼就把IP地址的高5位丟掉(也就是2 ^ 5 = 32,這是一個32個IP映射到1個MAC地址的一對多的關係),餘下的部份複製到MAC地址餘下的的23位上去,完成。

 

舉個例子:

MAC地址:                                                       規定置0

+---------------固定的--------------------------+       |

|                                                                     |       |

0000 0001, 0000 0000, 010111100XXX
XXXX, XXXX XXXX, XXXX XXXX

        01          -          00          -           5e            

 

                                                          
1110
1000.0000 0001.     0000 0001  .  0000 0001                    (232.1.1.1)

                                                                |         |        |----------餘下的23位映射到MAC餘下的23位上去(用X表示的),其實就是抄過去

                                               省略掉的4位     不得以扔掉的5位

 

== 0000 0001, 0000 0000, 010111100000
0001, 0000 0001, 0000 0001 == 01 - 00 - 5e - 01 - 01 - 01

 

如果兩個組播地址不同部份正好只在丟掉的那5位上,那他們就映射到相同的MAC地址上了。如果這麼巧同一個本地網絡上這兩個組都活躍,會有些衝突,需要考上層協議區分。

 

 

抱歉!评论已关闭.