TCP/IP協議學習(6)-廣播和多播

1.單播,多播,廣播的介紹

1.1.單播(unicast)

   單播:對特定的主機進行數據傳送。例如給某一個主機發送IP數據包。這時候,數據鏈路層給出的數據頭裏面是非常具體的目的地址,對於以太網來 說,就是網卡的MAC地址(不是FF-FF-FF-FF-FF-FF這樣的地址)。
   現在的具有路由功能的主機應該可以將單播數據定向轉發,而目的主機的網絡接口則可以過濾掉和自己MAC地址不一致的數據。                 

1.2.廣播(unicast)

   廣播是主機針對某一個網絡上的所有主機發送數據包。這個網絡可能是網絡,可能是子網,還可能是所有的子網。
   如果是網絡,例如A類網址的廣播就是 netid.255.255.255;如果是子網,則是netid.netid.subnetid.255;如果是所有的子網(B類IP)則是則是 netid.netid.255.255。
   廣播所用的MAC地址FF-FF-FF-FF-FF-FF。網絡內所有的主機都會收到這個廣播數據,網卡只要把MAC地址爲FF-FF-FF-FF-FF-FF的數據交給內核就可以了。一般說來ARP,或者路由協議RIP應該是以廣播的形式播發的。

1.3.多播(multicast)

   可以說廣播是多播的特例,多播就是給一組特定的主機(多播組)發送數據,這樣,數據的播發範圍會小一些(實際上播發的範圍一點也沒有變小),多播的MAC地址是最高字節的低位爲一,例如01-00-00-00-00-00。多播組的地址是D類IP,規定是224.0.0.0-239.255.255.255。

   雖然多播比較特殊,但是究其原理,多播的數據還是要通過數據鏈路層進行MAC地址綁定然後進行發送。所以一個以太網卡在綁定了一個多播IP地址之後,必定還要綁定一個多播的MAC地址,才能使得其可以像單播那樣工作。這個多播的IP和多播MAC地址有一個對應的算法,在書的p133到p134之間。可以看到 這個對應不是一一對應的,主機還是要對多播數據進行過濾。

總結:

   廣播和多播的性質是一樣的,路由器會把數據放到局域網裏面,然後網卡對這些數據進行過濾,只拿到自己打算要的數據,比如自己感興趣的多播數據,自己感興趣的組播數據。
   當一個主機運行了一個處理某一個多播IP的進程的時候,這個進程會給網卡綁定一個虛擬的多播MAC地址,並做出來一個多播IP。這樣,網卡就會讓帶有這個多播mac地址的數據進來,從而實現通信,而那些沒有監聽這些數據的主機就會把這些數據過濾掉,換句話說,多播,是讓主機的內核輕鬆了,而網卡,對不起,您就累點吧。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章