要求:
- 多播地址
- 局域網(wǎng)盐肃、廣域網(wǎng)的多播
- 源特定多播
- 多播套接字選項(核心)
- 封裝范例
內(nèi)容:
1.多播地址
多播地址-MAC地址映射.JPG
IPv4多播地址范圍:224.0.0.0-239.255.255.255亏娜;IPv6多播地址是以 FF: 開始的地址汗捡。
IPv4/IPv6地址到MAC地址的映射如上圖。
多播是一個IP協(xié)議上的特性段标,為了支持多播,需要做一些額外的工作來維護該特性。所以焚碌,部分多播地址被用做來維護該特性,如:224.0.0.1 標識所有支持多播功能的主機組霸妹;224.0.0.2標識所有路由組(更詳細內(nèi)容可參考RFC文檔)十电。
2.局域網(wǎng)、廣域網(wǎng)的多播
局域網(wǎng)-廣域網(wǎng)的多播.JPG
局域網(wǎng)的多播抑堡,根據(jù)IP地址轉(zhuǎn)換的MAC地址(如:01:00:5e:00:01:01)即可被加入多播組的主機識別并接受摆出。
廣域網(wǎng)經(jīng)過了路由,不能單獨通過MAC地址來轉(zhuǎn)發(fā)首妖。主機H3加入了組播偎漫,則路由器R2將被通知到。此時有缆,R2將發(fā)送IGMP報文來通知R1:本路由器R2有一個人加入了組織象踊,后續(xù)有活動温亲,需要告知我R2,然后再轉(zhuǎn)給H3杯矩。
3.源特定多播
在同一網(wǎng)絡(luò)里栈虚,可能出現(xiàn)使用同一個多播組,卻發(fā)送不同報文史隆。為了更好的標識處理該種場景魂务,考慮將發(fā)送多播的主機地址和多播地址一起標識一個多播。這就是源特定多播(SSM)泌射。
4.多播套接字選項
A. 發(fā)送
- IF ---- 指定發(fā)送組播的接口粘姜,默認由內(nèi)核選擇
- TTL ---- 發(fā)送的組播報文TTL,默認 1
- LOOP ---- 是否回送自己一份發(fā)送的報文熔酷,默認回送
前綴:IP_MULTICAST_ / IPV6_MULTICAST_
B. 接受
- 動作:
1. ADD/DROP ---- 加入孤紧、離開一個組播
2. BLOCK/UNBLOCK ---- (不)阻塞特定地址發(fā)送的組播
3. ADD/DROP_SRC ---- 加入、離開一個源特定組播 - 結(jié)構(gòu)體分類:
1. 多播地址
2. 接受多播的地址/接口
3. 發(fā)送多播的地址/接口 - 結(jié)構(gòu)體名稱:
- 僅組播
ip_mreq
ipv6_mreq
group_req - 源地址相關(guān)的組播
ip_mreq_source
group_source_req
- 僅組播
5. 封裝范例
1. mcast_join
2. mcast_leave
3. mcast_block
4. mcast_unblock
5. mcast_join_source_group
6. mcast_leave_source_group