計算機網路體系結構整理-第八單元組播技術
第八單元-組播技術
一、組播的基本概念
組播的型別:ASM(基本的組播形式)、SSM(由特定源點S發往SSM宿地址G的一到多組播)、SFM(只允許某些指定的源點或只允許這些指定的源點之外的源點發送資料。)
一對多的組播應用:有一個源點和多個宿點(遠端授課、新聞摘要、網路時鐘)
多對多的組播應用:多個節點之間相互作為資料的源點和宿點(視訊會議、合作編輯)
逆向路徑轉發RPF:組播路由器及其它的上行和下行節點構成源點樹的通路。如果報文是從通往源點S的最短路徑上來的,則將其向其它節點轉發,否則將其丟棄。
組播報文的轉發-生成樹:每個與這個群相關的路由器都要計算這個群的一個最小生成樹。每個節點對應的路由器均要儲存每一棵生成樹的資訊
組播報文的轉發-共享樹:有一個路由器作為公共生成樹的根,整個群共享一棵生成樹。群內的所有廣播均首先發給這個路由器,並由它向樹中的各個節點廣播
裁剪樹技術:源點的第一個廣播報文按生成樹給定的路徑傳送給網路中的每一個點,當報文到達網路的邊界路由器之後,它將檢查本地是否有屬於該組的成員。若沒有,它要向發來報文的鄰接點返回一個“裁剪資訊”
這是一種用記憶體換頻寬的方法,通過記住群的成員關係來減少無效的報文傳輸。
二、組播地址管理
組播地址的分配原則:避免組播地址的衝突、不能由少數甚至個別使用者拿走所有可用的地址、地址分配的開銷應儘可能小、擴充套件性使用效率儘可能高。
組播地址的獲得:1、編碼方式:將組播地址寫入程式程式碼2、通告方式:組播服務隨機挑選一個組播地址,然後通告 3、轉換方式:演算法為組播服務分配一個在全球範圍內不與其它服務衝突的組播地址。
組播地址的靜態分配:靜態LANA分配,每年重新評估。Local Network Control段、Internetwork Control Block
IPv4組播地址的匯出分配模型:GLOP和基於單播字首的分配
IPv4組播地址的管理域分配模型:通常的組播報文根據TTL的值確定其傳輸範圍,但Scope-relative報文根據管理邊界確定其傳輸範圍。
組播地址動態分配模型:第一層為主機-伺服器機制(動態客戶端組播地址分配協議)、第二層為域內伺服器協作機制(組播地址分配協議(AAP))、第三層為域間機制(典型協議包括組播地址集申請協議)
三、IGMP(Internet組管理協議)
子網中的主機通過IGMP向組播路由器報告它所屬的組,從而使路由器知道需要向這個子網轉發有關的組播報文。組播路由器通過IGMP對子網內的主機進行定期探詢,以瞭解這個組成員是否依然存在,如果子網附接有多個組播路由器,則選擇一個探尋戴白哦即可。IGMP允許主機提出離群報告,這時組播路由器立即向指定的群進行探詢,以判斷這個主機是否是該群在本地的最後一個群員。
基本協議機制:查詢、報告
Multicast Listener Discovery:IGMP在IPv6中的對等協議,組播報文的接收者被稱為組播傾聽者,MLD協議的目的就是使路由器可以發現附接在自己各個鏈路上的組播傾聽者和它們感興趣的組播地址,並將這些資訊提供給相應的組播路由協議。傾聽者必須在所有要求組播服務的埠上執行MLD
MLD的基本協議機制:探詢(探測組成員的存在)、報告(組成員要週期性報告自己的存在)
四、內部組播路由協議
組播路由演算法:最短路徑樹演算法(從組播源到每個接收者的路徑都是兩者之間的最短路徑組播樹)、最小生成樹演算法(連線網路中所有節點並且樹的全部鏈路權重之和最小)、Steiner樹演算法(Steiner樹是網路中連線所有組成員的最小代價樹)
如果組成員為2,則Steiner樹為最短路徑樹,如果組成員為所有網路節點則Steiner樹為最小生成樹,一般情況下可以使用KMB近似演算法。
DVMRP:距離向量組組播路由協議:是一種基於距離向量和剪裁樹技術的群路由協議。類似RIP的路由協議來建立自己的正常路由表。
DVMRP路由器使用的鏈路可以是隧道也可以是單純的。DVMRP使用裁剪樹技術來生成源點樹,並進行定期檢查以維護源點樹的正確結構。
PIM,分為稠密 (Dense)和稀疏 (Sparse)兩種模式。對於稠密的群來說,泛洪加裁剪是合適的,如果存在多歸路,PIM-DM要求使用IP地址最大者。廣播網段中的其它路由器收到裁剪資訊後要向R發一個"join"報文,從而取消裁剪動作
PIM-SM:以節約頻寬為主要目標,要求組播路由器顯式地加入一個共享樹。PIM-SM的共享樹技術基於會合點。每個 PIM-SM域都要選擇一個或多個組播路由器作為會合點,構成一個RP集,每個群只能有一個RP。當這個RP出現故障時,需要將其從 RP集中刪除。
RP的確定:靜態配置、動態獲取。路由器通過傾聽Bootstrap資訊來確定RP的位置,Bootstrap 路由器BSR負責釋出,其中包含了所有可用的RP(C-RP),它們通常也是BSR的候選。每個C-RP定期向BSR報告(C-RP-Advs)它所支援的組播地址和自己的地址,,優先順序最高或IP地址最大中當選當前的BSR。
轉發表的生成:組播路由器在確定RP之後要產生一個形如(*, group)的組播報文轉發表項,並將其沿上行鏈路轉發給RP,* 表示報文可來自任一個源點。沿途的組播路由器要檢查是否已有該群的轉發表項存在,若無則也要建立相應的表項
PIM小結:密集模式適用於組播資料量大,稀疏模式適用於群組中接收者較少
CBT:另一種基於共享樹的組播路由技術。使用核心 (core) 作為共享樹的根,核心的定義與使用和PIM-SM中RP類似,每個群只有一個核心,而每個核心可同時為多個群服務,核心的分配可以是動態或是靜態的。
CBT不允許接收方從共享樹轉移到源點樹,從而控制網路中轉發樹的數量。
五、跨域的組播
BGP4的多協議擴充套件:MBGP對BGP-4進行了多協議擴充套件之後,不僅能攜帶IPV4單播路由資訊,也能攜帶其它網路層協議(如組播、IPV6等)的路由資訊。MBGP 可以說是增強版的攜帶 IP 組播路由的 BGP
MBGP攜帶兩組路由,一組提供單播路由,另一組提供組播路由 (供PIM使用)
單播和組播路由資訊可以通過同一個程序交換,但是存放在不同的路由表裡
RP跨域問題:(不能及時得知源點的存在:PIM是IGP、跨域的組播路由資訊傳遞、成員關係報告的開銷:RP在域外)
MSDP的基本思路:1、每個域都擁有自己的RP,通過合作實現跨域的組播資料傳輸2、支援MSDP的組播域彼此之間通過TCP連線建立對等關係,形成一個互聯的拓撲,以發現各個域中存在的組播源點。3、MSDP通過 RP將多個PIMSM組播域連線起來這些RP相互不依賴
當RP發現一個新源點時,要構造一個SA(Source-Active)報文給其所有的MSDP對等者,為了控制組播會話的數量和流量,源點所在域的RP可以根據政策定義對SA通告進行過濾
MSDP使用TCP作為傳輸協議
每個MSDP對等節點以Peer-RPF泛洪方式轉發這個SA報文
MSDP節點快取收到的SA資訊
RP若發現本域中有節點對收到的SA報文中報告的某個組播地址有興趣,則要向SA報文來的方向傳送一個加入請求,從而使本域成為這個組播地址的源點樹的子樹。
活躍源點探詢:MSDP對等節點可發出SA請求,向其它對等者詢問某個組播地址的資訊;收到請求的對等者可以根據自己SA快表的內容作出SA響應
X從N收到由R發出的SA報文,如果N是X的對等RPF鄰接點,則X接收此報文;否則X丟棄此報文。
計時器:
(Peer Hold Timer)如果RP在該計時器規定的時間內沒有收到對等節點的MSDP報文,則要傳送一個通知來通報這個情況,並關閉與這個對等節點的TCP連線(KeepAlive Timer)兩個MSDP對等節點之間建立TCP連線之後,要相互發送KeepAlive報文,並建立對應的計時器、(ConnectRetry Timer)具有較小IP地址的MSDP對等節點使用此計時器來控制從INACTIVE到CONNECTING的狀態轉換。
MSDP連線的關閉:則MSDP節點可隨時使用通知報文終止與對等者的MSDP連線。
IPv4源主動請求/響應TLV:用於從一個MSDP對等節點請求SA狀態
KeepAlive TLV:用以在MSDP的對等節點之間維持TCP連線的存在
Notification TLV:當發現差錯時,傳送此報文。
IPv6組播的RP地址內嵌:IPv6跨域組播的源點發現使用RP地址嵌入技術,它還可以用於RP的自動發現
操作模型:接收者過程(接收者利用某種方式獲得一個組播地址、接收者發出MLD Report以加入這個組、接收者的DR根據內含的RP地址向其發起一個PIM-SM Join過程)傳送者過程(傳送者利用某種方式獲得一個組播地址;用這個地址開始傳送資料;傳送者的DR用單播封裝方式向RP發出PIM-SM Register;)
特點:RP地址要手工配置,組播地址到RP地址的對映要考慮最長匹配,每個活躍的組播地址都會向RP傳送資料,而接收者根據組播地址總能在對應的RP發現活躍的源點,因此不需要在不同的RP之間交換源點資訊。
六、SSM
IGMP/PIM-SM/MSDP結構的問題:對周知資源的處理效率不高、缺乏訪問控制、地址分配上缺乏衝突控制
SSM服務模型:頻道的概念:用二元組(S,G)表示,其中S是源點單播地址,G為SSM的宿組播地址。由於指定了源點的單播地址,因此即使宿組播地址相同,不同的源點地址代表了不同的頻道,它們的資料不會相互混淆,可解決地址衝突問題。在域間只需要MBGP
如果路由器不支援SSM功能,要使用相應的路由政策來防止資料被轉發到無頻道訂閱使用者的網路去。
SSM接收者在訂閱頻道前必須要知道頻道的源點地址和宿組播地址,因此它要去發現頻道,這可以通過訪問指定主頁或使用某種會話通告協議來實現。
PIM-SM協議允許直接加入特定的源點樹
對主機的要求:SSM方式的組播由高層應用控制,特定的頻道(S,G)將對應一個指定的socket,非這個頻道的資料不能通過這個socket,IP模組與高層協議的介面使用下列的抽象API來訪問特定的頻道。IP模組要將SSM報文轉發給所有訂閱了這個頻道的socket。
為減少衝突,建議各個主機在允許的地址範圍內隨機選取SSM地址,而不要順序選取。多個應用可以從同一個介面I通過不同的socket訂閱不同的頻道。
對路由器的要求:路由器要按組播地址範圍來確定是按SSM方式處理,還是按ASM方式處理。RP不能接受、發出或轉發SSM地址範圍內的MSDP SA報文
理想的組播服務:
服務的提供是可跨域和可擴充套件的,服務的安裝和使用是簡單透明的,對傳送者和接收者都是可進行訪問控制,服務是可管理、可計費的,組播資料傳輸是可靠的,服務質量是可驗證的。