《TCP/IP详解》学习笔记(七):广播和多播、IGMP协议
單播,多播,廣播的介紹
1單播(unicast)
單播是說,對特定的主機進行數據傳送。例如給某一個主機發送 IP 數據包。這時候,數據鏈路層給出的數據頭里面是非常具體的目的地址,對于以太網來說,就是網卡的 MAC 地址(不是 FF-FF-FF-FF-FF-FF 這樣的地址)。現在的具有路由功能的主機應該可以將單播數據定向轉發,而目的主機的網絡接口則可以過濾掉和自己 MAC 地址不一致的數據。
?
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 應該是以廣播的形式播發的。
?
3多播(multicast)
可以說廣播是多播的特例,多播就是給一組特定的主機(多播組)發送數據,這樣,數據的播發范圍會小一些(實際上播發的范圍 一點也沒有變小),多播的 MAC 地址是最高字節的低位為1,例 如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 地址的數據進來,從而實現通信,而那些沒有監聽這些數據的主機就會把這些數據過濾掉,換句話說,多播是讓主機的內核輕松了,而網卡對不起,您就累點吧。
一些文章也印證了這種想法,最明顯的就是《局域網監聽的原理、實現與防范》。
?
一些驗證性實驗
這些實驗并不是很復雜,我們只是要 ping 一下一般的 ip 和一個廣播地址。首先我 ping 一下自己所在的子網的某一臺主機:
?
可以看到,機器返回的是一臺主機的回應結果,進而推測,如果我 ping 一個廣播地址呢?結果如下:
?
可以看到,ping 返回了一些隨機的 ip 的結果,這些 ip 都是與主機在同一子網內的 ip。我們可以看到,廣播實際上是給處于子網 內的所有 ip 發信。
再來一個多播的例子,但是要實現這個多播并不容易,因為我不知道網絡內有多少個多播組,就只好利用幾個特殊的多播地址來驗證了。對于多播地址,有幾個特殊的多播地址被占用,他們是 224.0.0.1--該子網內所有的系統組。
?
- 224.0.0.2--該子網內所有的路由器。
- 224.0.1.1--網絡實現協議 NTP 專用 IP。
- 224.0.0.9--RIPv2專用 IP
所以只要 ping 這幾個 IP,就應該能得到一些結果,比如說我 ping 224.0.0.2:
?
我們可以看到,這回 ping 只返回了一個 ip 的回應。而這個就是我的網關的地址,這也驗證了224.0.0.2是所有路由器的多播(組播) 地址。
?
IGMP 協議
IGMP 的作用在于,讓其他所有需要知道自己處于哪個多播組的主機和路由器知道自己的狀態。一般多播路由器根本不需要知道 某一個多播組里面有多少個 主機,而只要知道自己的子網內還有沒有處于某個多播組的主機就可以了。只要某一個多播組還有一臺主機,多播路由器就會把數據傳輸出去,這樣,接受方就會通過網卡過濾功能來得到自己想要的數據。為了知道多播組的信息,多播路由器需要定時的發送 IGMP 查詢,IGMP 的格式可以看書,各個多播組里面的主機要根據查詢來回復自己的狀態。路由器來決定有幾 個多播組,自己要對某一個多播組發送什么樣的數據。
這種查詢回應數據報的 TTL 一般是1,而且就算是出錯也不產生 ICMP 差錯(沒必要)。
總結
以上是生活随笔為你收集整理的《TCP/IP详解》学习笔记(七):广播和多播、IGMP协议的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2017携程联名卡排行榜 看看携程联名卡
- 下一篇: 2017兴业信用卡优惠 6月份优惠活动大