如果您喜歡這裡的內容,記得分享到您的Facebook和Twitter上面所有的朋友們吧!

顯示具有 CCIP 標籤的文章。 顯示所有文章
顯示具有 CCIP 標籤的文章。 顯示所有文章

2009年5月26日 星期二

為何 IP Multicast 位址的 MAC address 必須擠到23 位元裡面 ?

應該各位在讀到 BSCI 教材中, 有關 IP Multicast 位址要對應到適當的 MAC address 來傳送這段時, 都會注意到: 好麻煩喔, 為什麼要設計成這樣, 硬是將數目比較多的 IP Multicast 位址, 以 "32比1" 的方式, 擠到比較小的 MAC Address 範圍內? 而且還是僅保留低位元的 "後23位元" 這麼奇怪怪的數字, 害我們這麼辛苦, 要去記對照規則!

其實這是有一段小故事的!

據說當年 IP Multicast 之父 Steve Deering 在還是研究生的時候, 為了要實作 IP Multicast 的驗證雛型, 必然也需要專用的 MAC 位址來給 IP Multicast 封包, 在 LAN 上面傳輸時使用.

各位應該知道, IP Multicast 的位址範圍, 是在 224.0.0.0 ~ 239.255.255.255 間的 D 等級網段. 如果要讓每一個IP Multicast 位址都有專有的 MAC 位址, 一共需要 2^28 個 MAC 位址, 也就是, 需要 16 個 OUI 的範圍才夠.

我們從二進位來看, 就會比較清楚:


    33          2          1          0
    1098765.43210987.65432109.876543210
    -------------------------------------

    (  224  .   0    .   0    .   0   )
    11100000.00000000.00000000.00000000

    11101111.11111111.11111111.11111111
    (  239  .  255   .  255   .  255  )

各位應該還記得我前一篇有關 MAC 位址的費用, 現在每一個 OUI 要 US$ 1,650, 當年要價也要 US$ 1,000. 換句話說, Steve 當年需要想辦法來支付 US$ 16,000 (相當於新台幣50多萬元) 給 IEEE, 才夠他完全的一對一來分配唯一的 MAC 位址給每個 IP Multicast 位址專用.

很不幸, 經費沒有那麼多, 只夠他申請一組 OUI, 也就是最多只有 2^24 個 MAC 可以使用. 這組得來不易的 OUI 當然也要省著用, 所以要先保留一個位元不能用, 所以只剩下 23 個位元, 也就是 2^23 個 MAC 位址才可以給 IP Multicast 位址使用.

這個當初 Steve 申請到的 OUI "01-00-5E(註1), 就成了我們今天 IP Multicast 專用的 MAC 位址的 OUI !

所以各位看到訊框的目的地 MAC 位址, 都會長成這個模樣:


                            |<        23 bits      >|
00000001-00000000-01011110-0XXXXXXX-XXXXXXXX-XXXXXXXX
   01   -   00   -   5E   -(00~7F) -(00~FF) - (00~FF)

所以這個故事也讓我們學到一件事: 錢還是很重要的!

[參考資料]


註1: 比較正確一點地說, 應該 Steve 註冊到的 OUI 是 "00-00-5E" 才對. 但是載送 IP Multicast 封包的訊框上第一個 Octet 的 multicast bit 一定是打開的, 所以使用類似 Wireshark 看到的時候外觀都會是 "01-00-5E".

2009年5月14日 星期四

有必要如此生氣嗎?

我在 Mobile01 看到一群人在討論, 標題是 "我受夠了!!!為了看網路電視別人的權益都不管了嗎?", 整個故事的背景是有人在抱怨, 幾位室友分租上 Internet 的線路, 但是老是有室友不合作, 執行網路電視的軟體或 P2P 軟體, 讓大家上網都很慢. 然後有些熱情的網友就開始提供一些奇怪的方法, 有些甚至是違法的行為 (請勿模仿, 公共危險罪可是公訴罪) 來讓這位不合作的室友停止這種行為.

其實他們的討論是多餘的, 安裝一部 Cisco Router 就可以輕易的達成 "每個室友頻寬使用量鎖定" 的目標.

(當然, 有些國產品牌的寬頻分享器也有這種功能, 我先將焦點放在 Cisco 產品的技術上.)

各位可以使用 Cisco 新的 "模組化品質管制服務設定介面" (Modular QoS CLI, MQC) 來完成, 以下是設定的範例:

!
! 對每位室友設定 IP 位址辨認條件, 我先假設就兩位室友
!
access-list 101 permit ip host 192.168.1.1 any
access-list 102 permit ip host 192.168.1.2 any
access-list 111 permit ip any host 192.168.1.1
access-list 112 permit ip any host 192.168.1.2

!
! 定義類別, 分上下行
!
class-map Roommate1-Up
 match access-group 101

class-map Roommate2-Up
 match access-group 102

class-map Roommate1-Down
 match access-group 111

class-map Roommate2-Down
 match access-group 112

!
! 組合成一套品質服務內容 (policy-map)
! 我先假設下行給 500K, 上行給200K. "police" 命令的單位是bps.
!
policy-map Up
 class Roommate1-Up
  police 200000 conform-action transmit exceed-action drop
 class Roommate2-Up
  police 200000 conform-action transmit exceed-action drop

policy-map Down
 class Roommate1-Down
  police 500000 conform-action transmit exceed-action drop
 class Roommate2-Down
  police 500000 conform-action transmit exceed-action drop

!
! 將品質服務內容套用在網路卡上
!
int f0/0
 ip address 192.168.1.254 255.255.255.0
 service-policy input Up
 service-policy output Down


當然以上的例子, 在我們的 ICND 課程當中是沒有的, 這算是 QoS 課程的內容才會提到!

經典熱門文章