组播协议
隨著internet的飛速發展,利用internet進行協作開發的項目越來越多。對某些應用而言,如分布式數據庫開發,一個開發工作組有很多人需在不同的地點協作并經常交換情況。在組的規模比較小的情況下,只需點對點交換信息即可;如果組的規模比較大,點對點交換信息不管對網絡還是對信息發送者,都是一種負擔,代價昂貴。有時雖可用廣播的方式進行處理,但如果在一個上百萬節點的網絡上向數千臺主機進行廣播是很低效的甚至是不大可能的。一則絕大部分機器對此不感興趣,造成信息垃圾;更糟糕的是,部分主機雖需要此信息但可能被誤認為對此信息不感興趣而收不到此項信息。因此,我們需要一種辦法讓本身規模較大而相對互連網又較小的工作組能相互方便、快捷地傳遞信息。為此,我們引進了 IP組播的概念。
1.硬件組播的含義
1.1 含義
硬件組播(multicasting)是一種多點投遞的形式,它使用硬件技術,通過使用大量組播地址來通信。當某一組機器需要通信時,選擇一個組播地址,并配置好相應的網絡接口硬件,識別組播地址,從而收到該組播地址上分組的拷貝。
1.2 組播與廣播、單播
廣播(broadcasting)是多點投遞的最普遍的形式,它向每一個目的站投遞一個分組的拷貝。它可以通過多個單次分組的投遞完成,也可以通過單獨的連接傳遞分組的拷貝,直到每個接收方均收到一個拷貝為止。
在多數網絡中,用戶是通過把分組分送給一個特殊保留的地址即廣播地址(broadcast address)來進行廣播投遞,它的主要缺點是會耗費大量的主機資源和網絡資源。
單播(unicasting)是指只有一個目的地的數據報傳遞。從投遞目的地的數量而言,單播和廣播均可看作是組播的一個子集。單播可以看作僅包括一臺機器群組的組播;廣播可以看作包含了所有機器群組的組播。但從數據報的投遞方式而言,單播、廣播和組播還是有較大的區別。
2.IP組播的基本概念
2.1 含義
IP組播(IP multicasting)是對硬件組播的抽象,是對標準IP網絡層協議的擴展。它通過使用特定的IP組播地址,按照最大投遞的原則,將IP數據報傳輸到一個組播群組(multicast group)的主機集合。它的基本方法是:當某一個人向一組人發送數據時,它不必將數據向每一個人都發送數據,只需將數據發送到一個特定的預約的組地址,所有加入該組的人均可以收到這份數據。這樣對發送者而言,數據只需發送一次就可以發送到所有接收者,大大減輕了網絡的負載和發送者的負擔。
2.2 IP組播成員
IP組播中各個成員可以不受地域的限制,分布于各個獨立的物理網絡上,其關系也是動態的,一臺主機可以在任何時候加入或者退出某個群組,也可以是任意群組的成員,其成員關系決定了該主機是否接收發送給該群組的組播數據報;同時,不是某個群組的成員也可以向某個群組發送組播數據報,使之具有更大的靈活性。
參與組播的主機可以分為三個級別:
級別0: 主機不能收、不能發IP組播數據報
級別1: 主機只能發、不能收IP組播數據報
級別2: 主機既能收、也能發IP組播數據報
級別0的主機不受組播收發數據報的影響,唯一的例外是在某些類型的局域網,級別1或級別2的主機可能將組播數據報誤送給級別0 的主機(這種情況將在 3.2.1中討論),級別0 的主機需要仔細檢查所有到達的數據報的目的IP地址(主機對任何數據報均需這樣),丟棄誤投的數據報。
級別1的主機可以分享部分基于組播的服務,比如資源定位、狀態報告、發送IP組播數據報,但不能加入到任何主機組。一個主機僅需極少數代碼就可以從級別0升級到級別1,即IP軟件允許某個應用程序指定一個組播地址作為其目的IP地址,并將組播地址映射為相應網絡的硬件組播地址(具體映射方法在3.2中討論)
級別2的主機可以可以使用IP組播所有功能,除可以使用級別1主機所能使用的功能外,可以自由加入和離開主機組、可以發送IP組播數據報等。要實現此功能,它要求實現internet群組管理協議(internet group management protocol,簡稱IGMP)、IP擴展和主機的本地網絡服務接口。
????? 3.??? IP組播地址
3.1 基本概念
3.1.1 定義
根據internet NIC關于IP地址的規定,IP地址共分為A-E 共5類,其中A-C類目前應用的普通IP地址,E類地址保留為將來使用,D 類地址即為組播地址,其網絡號為固定的1110(第0~3位),第4~31位定義了某一特殊的組播地址,范圍為 224.0.0.0~239.255.255.255,共有228個約27億個地址。
IP組播地址僅能作為目的地址。它們不能作為數據報的源字段或者出現在源路由和路由記錄選項中。
3.1.2 分類
IP組播地址由internet NIC負責管理,和協議端口一樣,有一部分是保留的,僅供特殊群組成員使用,不管有無成員,該地址均要保留,這部分地址稱為知名(well-known)地址;其余地址則不一樣,僅供臨時使用,被稱為臨時組播群組(transient multicast group),可以按需創建,成員可以動態調整,但在成員數目為0時撤銷。
3.1.3 部分知名IP組播地址
如上所述,IP組播地址范圍是224.0.0.0~239.255.255.255,下面列出部分知名或已用的IP組播地址。實際上, 224.0.0.0---224.2.255.255的絕大部分地址已被使用,建議使用時避開上述地址(詳細使用情況請參閱RFC 1700)。
224.0.0.0 基礎地址,保留,不能被任何群組使用
224.0.0.1 全主機群組(all hosts group),指參加本IP組播的所有主機、路由器、網關(不是指整個互連網)
224.0.0.2 本子網上的路由器(all routers on a LAN)
224.0.0.4 DVMRP*路由器(DVMRP Routers)
224.0.0.5 本子網上的OSPF*路由器(all OSPF routers on a LAN)
224.0.0.6 本子網上被指定的OSPF路由器(all designated OSPF routers on a LAN)
224.0.1.1 網絡時間協議(Network Time Protocol,NTP)
224.0.5.000-224.0.5.127 蜂窩式數字信息包數據發送主機組(CDPD Groups)
224.1.0.0-224.1.255.255 基于流的協議組播主機組(Stream Protocol Multicast Groups)
224.2.0.0-224.2.255.255 多媒體會議呼叫(Multimedia Conference Calls)
*注:DVMRP是Distance vector multicast routing protocol的縮寫,意為距離矢量組播選路協議,是用來生成組播路由;OSPF 是open shortest path first,意為開放最短路徑最先,是IETF設計的一種路由協議。
3.2 IP組播地址與網絡硬件組播地址的映射
3.2.1 IP組播地址與以太網硬件組播地址的映射
3.2.1.1 映射方法
以太網硬件地址是48位,而IP地址是32位,有效IP組播地址是28位,以太網支持IP組播地址到以太網組播地址的映射,他們之間的映射很巧妙而簡單,主要規則如下:
將IP組播地址的低23位簡單地代替特定的以太網地址01.00.5e.00.00.00(16進制)中的低23位。
例如:IP組播地址224.66.60.89(16進制,其2進制為:1110 0000.0100 0010.0011 1100.0101 1001)映射到以太網的地址為:01.00.5e.66.60.89(16進制)。
按此規則,IP組播地址范圍為224.0.0.0~239.255.255.255,映射到以太網組播地址為01.00.5E.00.00.00~ 01.00.5E.7F.FF.FF
這樣做一是因為映射方法簡單,便于計算和實現;二是可以包括絕大部分組播地址了;三是IP組播地址映射后僅使用以太網地址的固定部分,有利于排錯和查找,不易與其它使用以太網的協議發生沖突和干擾。
3.2.1.2 不同IP組播地址映射到相同以太網地址的討論
在IP組播地址映射到以太網地址的過程中,有人可能發現一個有趣的現象,多個不同的IP組播地址映射到了相同的以太網地址。例如:IP組播地址 225.118.100.100和226.246.100.100映射到以太網的地址均為01.00.94.118.100.100。這是為什么呢,下面從機理上作一分析:
由于IP組播地址的有效位為28位,而映射到以太網時僅取低23位(第9~31位),高5位(實際是IP組播地址的第4~8位,下同)的地址信息在映射過程實際上是沒有用而被丟掉了,這樣如果低23位地址信息一樣,則不管高5位地址的值是多少,其映射的以太網地址都是一樣的。如下圖:
IP組播地址 : 1110 gggg gddd dddd dddd dddd dddd dddd
|----|----||--------------------------|
組播地址的網絡ID 高5位 低23位
高9位映射時信息均被丟掉 映射時直接代替特定以太網地址的低23位
那么,任意兩個IP組播地址映射到以太網地址時,其地址相同的概率為多少呢?
任意兩個IP組播地址如果低23位相同,則不管高5位的值是否相同,二者映射的以太網地址都是一樣的,低23位相同的可能性為 ,高5位的2進制組合有25種,這樣可知:
任意兩個IP組播地址映射到以太網地址時,其地址相同的概率P= ,很小,約為百萬分之3.8,所以這種映射方法還是相當可靠的。
3.2.2 IP組播地址與其它網絡組播地址的映射
環形網和總線網根據IEEE802.2標準,直接支持組播,和以太網一樣直接處理組播。對于支持網絡廣播而不支持組播的網絡,如實驗以太網,則將IP 組播地址簡單映射為本地廣播地址,不過這樣增加了本地網絡主機的開銷。點對點連接的兩臺主機(或者一臺主機和支持組播的路由器),組播數據報直接投遞。對存儲轉發網絡(store-and forward network),如ARPANET或者公用X.25網絡,IP組播地址映射為本地的知名IP組播路由器。
4 實現IP組播的基本模型
要實現IP組播要對IP服務接口、IP模塊、本地網絡服務接口以及本地網絡模塊分別進行擴展。
5 IP組播的應用
由于IP組播能有效減少網絡和主機開銷,較單播和廣播有其獨特優越性,因此,IP組播已經得到了廣泛的應用,主要有幾個方面:1、基于因特網的視頻組播。這方面的應用很廣泛,如實時視頻會議系統、遠程教學系統、遠程演示系統和視頻點播系統(VOD)等等。2、特別互聯網工作組(Special internet group,簡稱SIG)。它是由世界各地的具有共同興趣的人組成,可以包括體育、音樂、計算機軟件、硬件等一切可以引起共同興趣的東西。比較有名的有E-MAIL討論組和ACM的技術討論組。
6 部分IP組播相關的網址
如對IP組播的有關問題想進一步鉆研,讀者可以到以下站點查閱有關資料。
http://www.rfc-editor.org/ 一個集全部RFC文檔之精華的站點,不過是全英文的,讀者需要一定英文基礎
http://www.rfcsite.yeah.net/ 一個RFC文檔的中文界面站點,具體內容仍是英文
http://www.rfc.at.china.com/ 一個RFC文檔的全中文站點,不過中文的RFC文檔不是很多
http://www.ieee.org/ IEEE的官方站點,有很多有關組播的學術論文,也是全英文的
1、網絡節點之間的通信就好像是人們之間的對話一樣。如果一個人對另外一個人說話,那么用網絡技術的術語來描述就是“單播”,此時信息的接收和傳遞只在兩個節點之間進行。單播在網絡中得到了廣泛的應用,網絡上絕大部分的數據都是以單播的形式傳輸的,只是一般網絡用戶不知道而已。例如,你在收發電子郵件、瀏覽網頁時,必須與郵件服務器、Web服務器建立連接,此時使用的就是單播數據傳輸方式。
2、多播也叫組播,是一種多地址的廣播,發送和接受端是一對多的關系,服務器只向特定的一組用戶發送一個數據包,組中的用戶可以共享這個數據包,組外的用戶是無法接受到的,多播需要全網內的路由器支持多播,否則許多用戶是受不到多播數據的,在廣域網實現比較困難 。
3、廣播也是一對多的關系,不同的是,廣播把數據包的copy發給網絡中所有用戶,而有的用戶此時并不需要數據包,這實際上將造成帶寬資源的一定浪費,廣播無法通過路由器,組播沒有這個限制,只要加入組就能收到數據包,可以說融合了單播和廣播的優點 。
4、ICMP主要用于網絡設備和結點之間的控制和差錯報告報文的傳輸。
從因特網的角度看,因特網是由收發數據報的主機和中轉數據報的路由器組成。鑒于IP網絡本身的不可靠性,ICMP的目的僅僅是向源發主機告知網絡環境中出現的問題。ICMP主要支持路由器將數據報傳輸的結果信息反饋回源發主機。ICMP協議系統默認就安裝了的,可以做相應設置防止ICMP攻擊。
利用UDP組播能在intarnet,internet上也數據報的形式進行數據的組播(在internet上進行組播,要求路由器支持IGMP (internet網關管理協議,這個協議是在IP出現以后,為了支持組播而出現的)).相對于極度消耗網絡帶寬的廣播來說(廣播只能在intranet 內廣播),UDP組播有了很大的優化,只有終端加入到了一個廣播組,UDP組播的數據才能被他接受到.
??? UDP組播是采用的無連接,數據報的連接方式,所以是不可靠的.也就是數據能不能到達接受端和數據到達的順序都是不能保證的.但是由于UDP不用保證數據的可靠性,所有數據的傳送速度是很快的.
1. 組播的“根”
組播從概念上來講分為兩部分:控制部分和數據部分。控制部分決定著組播的對象的組織方式。而數據部分決定了數據的傳輸方式。
控制層有“有根”,“無根”兩種情況。對于有根的控制層,存在著一個root和若干個leaf. root負責管理這個組播組,只有他能邀請一個leaf加入一個組播組(ATM就是有根控制的一個典型的例子)。對于無根的控制層,沒有root,只有若干的leaf. 每一個leaf都能自己加入一個組播組(IP就是無根控制的典型例子)
數據層也有“有根”,“無根”兩種情況。對于有根數據層,從root發出的數據能到達每一個leaf,而從leaf發出的數據只能到達root.對于無根數據層,每一個leaf發出的數據能到達組播組中的每一個leaf(甚至包括他自己)。每一個leaf也能接受組播組里的任何數據包。
二.IP組播地址
IP組播通信需要一個特殊的組播地址.IP組播地址是一組D類IP地址,范圍從224.0.0.0 到 239.255.255.255。其中還有很多地址是為特殊的目的保留的。224.0.0.0到224.0.0.255的地址最好不要用,因為他們大多是為了特殊的目的保持的(比如IGMP協議)
三.IGMP協議
IGMP(internet網關管理協議)是IP組播的基礎.在IP協議出現以后,為了加入對組播的支持,IGMP產生了。IGMP所做的實際上就是告訴路由器,在這個路由器所在的子網內有人對發送到某一個組播組的數據感興趣,這樣當這個組播組的數據到達后面,路由器就不會拋棄它,而是把他轉送給所有感興趣的客戶。假如不同子網內的A,B要進行組播通信,那么,位與A,B之間的所有路由器必須都要支持IGMP協議,否則A,B之間不能進行通信。
當一個應用加入一個組播組后,就會向這個子網的所有路由器發送一個IGMP加入命令,告訴他子網內有人對發送到某一個組播組的數據感興趣.路由器也會定時向子網內的所有終端發送一條查詢消息,用于詢問是否還有人對某個組播組的數據感興趣。如果有的話,終端就會回應一條IGMP消息,路由器則繼續轉發這個組播組的數據。如果沒有人回應這條消息,那么路由器就認為已經沒有終端對這個組播組的數據感興趣,就不會在轉發關于這個組播組的數據了。在IGMP第二版中,一個終端推出組播組以后,會向路由器發送一個推出消息,路由器也會通過這個消息來判斷是否還要繼續轉發關于這個組播組的數據了。
1.硬件組播的含義
1.1 含義
硬件組播(multicasting)是一種多點投遞的形式,它使用硬件技術,通過使用大量組播地址來通信。當某一組機器需要通信時,選擇一個組播地址,并配置好相應的網絡接口硬件,識別組播地址,從而收到該組播地址上分組的拷貝。
1.2 組播與廣播、單播
廣播(broadcasting)是多點投遞的最普遍的形式,它向每一個目的站投遞一個分組的拷貝。它可以通過多個單次分組的投遞完成,也可以通過單獨的連接傳遞分組的拷貝,直到每個接收方均收到一個拷貝為止。
在多數網絡中,用戶是通過把分組分送給一個特殊保留的地址即廣播地址(broadcast address)來進行廣播投遞,它的主要缺點是會耗費大量的主機資源和網絡資源。
單播(unicasting)是指只有一個目的地的數據報傳遞。從投遞目的地的數量而言,單播和廣播均可看作是組播的一個子集。單播可以看作僅包括一臺機器群組的組播;廣播可以看作包含了所有機器群組的組播。但從數據報的投遞方式而言,單播、廣播和組播還是有較大的區別。
2.IP組播的基本概念
2.1 含義
IP組播(IP multicasting)是對硬件組播的抽象,是對標準IP網絡層協議的擴展。它通過使用特定的IP組播地址,按照最大投遞的原則,將IP數據報傳輸到一個組播群組(multicast group)的主機集合。它的基本方法是:當某一個人向一組人發送數據時,它不必將數據向每一個人都發送數據,只需將數據發送到一個特定的預約的組地址,所有加入該組的人均可以收到這份數據。這樣對發送者而言,數據只需發送一次就可以發送到所有接收者,大大減輕了網絡的負載和發送者的負擔。
2.2 IP組播成員
IP組播中各個成員可以不受地域的限制,分布于各個獨立的物理網絡上,其關系也是動態的,一臺主機可以在任何時候加入或者退出某個群組,也可以是任意群組的成員,其成員關系決定了該主機是否接收發送給該群組的組播數據報;同時,不是某個群組的成員也可以向某個群組發送組播數據報,使之具有更大的靈活性。
參與組播的主機可以分為三個級別:
級別0: 主機不能收、不能發IP組播數據報
級別1: 主機只能發、不能收IP組播數據報
級別2: 主機既能收、也能發IP組播數據報
級別0的主機不受組播收發數據報的影響,唯一的例外是在某些類型的局域網,級別1或級別2的主機可能將組播數據報誤送給級別0 的主機(這種情況將在 3.2.1中討論),級別0 的主機需要仔細檢查所有到達的數據報的目的IP地址(主機對任何數據報均需這樣),丟棄誤投的數據報。
級別1的主機可以分享部分基于組播的服務,比如資源定位、狀態報告、發送IP組播數據報,但不能加入到任何主機組。一個主機僅需極少數代碼就可以從級別0升級到級別1,即IP軟件允許某個應用程序指定一個組播地址作為其目的IP地址,并將組播地址映射為相應網絡的硬件組播地址(具體映射方法在3.2中討論)
級別2的主機可以可以使用IP組播所有功能,除可以使用級別1主機所能使用的功能外,可以自由加入和離開主機組、可以發送IP組播數據報等。要實現此功能,它要求實現internet群組管理協議(internet group management protocol,簡稱IGMP)、IP擴展和主機的本地網絡服務接口。
????? 3.??? IP組播地址
3.1 基本概念
3.1.1 定義
根據internet NIC關于IP地址的規定,IP地址共分為A-E 共5類,其中A-C類目前應用的普通IP地址,E類地址保留為將來使用,D 類地址即為組播地址,其網絡號為固定的1110(第0~3位),第4~31位定義了某一特殊的組播地址,范圍為 224.0.0.0~239.255.255.255,共有228個約27億個地址。
IP組播地址僅能作為目的地址。它們不能作為數據報的源字段或者出現在源路由和路由記錄選項中。
3.1.2 分類
IP組播地址由internet NIC負責管理,和協議端口一樣,有一部分是保留的,僅供特殊群組成員使用,不管有無成員,該地址均要保留,這部分地址稱為知名(well-known)地址;其余地址則不一樣,僅供臨時使用,被稱為臨時組播群組(transient multicast group),可以按需創建,成員可以動態調整,但在成員數目為0時撤銷。
3.1.3 部分知名IP組播地址
如上所述,IP組播地址范圍是224.0.0.0~239.255.255.255,下面列出部分知名或已用的IP組播地址。實際上, 224.0.0.0---224.2.255.255的絕大部分地址已被使用,建議使用時避開上述地址(詳細使用情況請參閱RFC 1700)。
224.0.0.0 基礎地址,保留,不能被任何群組使用
224.0.0.1 全主機群組(all hosts group),指參加本IP組播的所有主機、路由器、網關(不是指整個互連網)
224.0.0.2 本子網上的路由器(all routers on a LAN)
224.0.0.4 DVMRP*路由器(DVMRP Routers)
224.0.0.5 本子網上的OSPF*路由器(all OSPF routers on a LAN)
224.0.0.6 本子網上被指定的OSPF路由器(all designated OSPF routers on a LAN)
224.0.1.1 網絡時間協議(Network Time Protocol,NTP)
224.0.5.000-224.0.5.127 蜂窩式數字信息包數據發送主機組(CDPD Groups)
224.1.0.0-224.1.255.255 基于流的協議組播主機組(Stream Protocol Multicast Groups)
224.2.0.0-224.2.255.255 多媒體會議呼叫(Multimedia Conference Calls)
*注:DVMRP是Distance vector multicast routing protocol的縮寫,意為距離矢量組播選路協議,是用來生成組播路由;OSPF 是open shortest path first,意為開放最短路徑最先,是IETF設計的一種路由協議。
3.2 IP組播地址與網絡硬件組播地址的映射
3.2.1 IP組播地址與以太網硬件組播地址的映射
3.2.1.1 映射方法
以太網硬件地址是48位,而IP地址是32位,有效IP組播地址是28位,以太網支持IP組播地址到以太網組播地址的映射,他們之間的映射很巧妙而簡單,主要規則如下:
將IP組播地址的低23位簡單地代替特定的以太網地址01.00.5e.00.00.00(16進制)中的低23位。
例如:IP組播地址224.66.60.89(16進制,其2進制為:1110 0000.0100 0010.0011 1100.0101 1001)映射到以太網的地址為:01.00.5e.66.60.89(16進制)。
按此規則,IP組播地址范圍為224.0.0.0~239.255.255.255,映射到以太網組播地址為01.00.5E.00.00.00~ 01.00.5E.7F.FF.FF
這樣做一是因為映射方法簡單,便于計算和實現;二是可以包括絕大部分組播地址了;三是IP組播地址映射后僅使用以太網地址的固定部分,有利于排錯和查找,不易與其它使用以太網的協議發生沖突和干擾。
3.2.1.2 不同IP組播地址映射到相同以太網地址的討論
在IP組播地址映射到以太網地址的過程中,有人可能發現一個有趣的現象,多個不同的IP組播地址映射到了相同的以太網地址。例如:IP組播地址 225.118.100.100和226.246.100.100映射到以太網的地址均為01.00.94.118.100.100。這是為什么呢,下面從機理上作一分析:
由于IP組播地址的有效位為28位,而映射到以太網時僅取低23位(第9~31位),高5位(實際是IP組播地址的第4~8位,下同)的地址信息在映射過程實際上是沒有用而被丟掉了,這樣如果低23位地址信息一樣,則不管高5位地址的值是多少,其映射的以太網地址都是一樣的。如下圖:
IP組播地址 : 1110 gggg gddd dddd dddd dddd dddd dddd
|----|----||--------------------------|
組播地址的網絡ID 高5位 低23位
高9位映射時信息均被丟掉 映射時直接代替特定以太網地址的低23位
那么,任意兩個IP組播地址映射到以太網地址時,其地址相同的概率為多少呢?
任意兩個IP組播地址如果低23位相同,則不管高5位的值是否相同,二者映射的以太網地址都是一樣的,低23位相同的可能性為 ,高5位的2進制組合有25種,這樣可知:
任意兩個IP組播地址映射到以太網地址時,其地址相同的概率P= ,很小,約為百萬分之3.8,所以這種映射方法還是相當可靠的。
3.2.2 IP組播地址與其它網絡組播地址的映射
環形網和總線網根據IEEE802.2標準,直接支持組播,和以太網一樣直接處理組播。對于支持網絡廣播而不支持組播的網絡,如實驗以太網,則將IP 組播地址簡單映射為本地廣播地址,不過這樣增加了本地網絡主機的開銷。點對點連接的兩臺主機(或者一臺主機和支持組播的路由器),組播數據報直接投遞。對存儲轉發網絡(store-and forward network),如ARPANET或者公用X.25網絡,IP組播地址映射為本地的知名IP組播路由器。
4 實現IP組播的基本模型
要實現IP組播要對IP服務接口、IP模塊、本地網絡服務接口以及本地網絡模塊分別進行擴展。
5 IP組播的應用
由于IP組播能有效減少網絡和主機開銷,較單播和廣播有其獨特優越性,因此,IP組播已經得到了廣泛的應用,主要有幾個方面:1、基于因特網的視頻組播。這方面的應用很廣泛,如實時視頻會議系統、遠程教學系統、遠程演示系統和視頻點播系統(VOD)等等。2、特別互聯網工作組(Special internet group,簡稱SIG)。它是由世界各地的具有共同興趣的人組成,可以包括體育、音樂、計算機軟件、硬件等一切可以引起共同興趣的東西。比較有名的有E-MAIL討論組和ACM的技術討論組。
6 部分IP組播相關的網址
如對IP組播的有關問題想進一步鉆研,讀者可以到以下站點查閱有關資料。
http://www.rfc-editor.org/ 一個集全部RFC文檔之精華的站點,不過是全英文的,讀者需要一定英文基礎
http://www.rfcsite.yeah.net/ 一個RFC文檔的中文界面站點,具體內容仍是英文
http://www.rfc.at.china.com/ 一個RFC文檔的全中文站點,不過中文的RFC文檔不是很多
http://www.ieee.org/ IEEE的官方站點,有很多有關組播的學術論文,也是全英文的
1、網絡節點之間的通信就好像是人們之間的對話一樣。如果一個人對另外一個人說話,那么用網絡技術的術語來描述就是“單播”,此時信息的接收和傳遞只在兩個節點之間進行。單播在網絡中得到了廣泛的應用,網絡上絕大部分的數據都是以單播的形式傳輸的,只是一般網絡用戶不知道而已。例如,你在收發電子郵件、瀏覽網頁時,必須與郵件服務器、Web服務器建立連接,此時使用的就是單播數據傳輸方式。
2、多播也叫組播,是一種多地址的廣播,發送和接受端是一對多的關系,服務器只向特定的一組用戶發送一個數據包,組中的用戶可以共享這個數據包,組外的用戶是無法接受到的,多播需要全網內的路由器支持多播,否則許多用戶是受不到多播數據的,在廣域網實現比較困難 。
3、廣播也是一對多的關系,不同的是,廣播把數據包的copy發給網絡中所有用戶,而有的用戶此時并不需要數據包,這實際上將造成帶寬資源的一定浪費,廣播無法通過路由器,組播沒有這個限制,只要加入組就能收到數據包,可以說融合了單播和廣播的優點 。
4、ICMP主要用于網絡設備和結點之間的控制和差錯報告報文的傳輸。
從因特網的角度看,因特網是由收發數據報的主機和中轉數據報的路由器組成。鑒于IP網絡本身的不可靠性,ICMP的目的僅僅是向源發主機告知網絡環境中出現的問題。ICMP主要支持路由器將數據報傳輸的結果信息反饋回源發主機。ICMP協議系統默認就安裝了的,可以做相應設置防止ICMP攻擊。
利用UDP組播能在intarnet,internet上也數據報的形式進行數據的組播(在internet上進行組播,要求路由器支持IGMP (internet網關管理協議,這個協議是在IP出現以后,為了支持組播而出現的)).相對于極度消耗網絡帶寬的廣播來說(廣播只能在intranet 內廣播),UDP組播有了很大的優化,只有終端加入到了一個廣播組,UDP組播的數據才能被他接受到.
??? UDP組播是采用的無連接,數據報的連接方式,所以是不可靠的.也就是數據能不能到達接受端和數據到達的順序都是不能保證的.但是由于UDP不用保證數據的可靠性,所有數據的傳送速度是很快的.
1. 組播的“根”
組播從概念上來講分為兩部分:控制部分和數據部分。控制部分決定著組播的對象的組織方式。而數據部分決定了數據的傳輸方式。
控制層有“有根”,“無根”兩種情況。對于有根的控制層,存在著一個root和若干個leaf. root負責管理這個組播組,只有他能邀請一個leaf加入一個組播組(ATM就是有根控制的一個典型的例子)。對于無根的控制層,沒有root,只有若干的leaf. 每一個leaf都能自己加入一個組播組(IP就是無根控制的典型例子)
數據層也有“有根”,“無根”兩種情況。對于有根數據層,從root發出的數據能到達每一個leaf,而從leaf發出的數據只能到達root.對于無根數據層,每一個leaf發出的數據能到達組播組中的每一個leaf(甚至包括他自己)。每一個leaf也能接受組播組里的任何數據包。
二.IP組播地址
IP組播通信需要一個特殊的組播地址.IP組播地址是一組D類IP地址,范圍從224.0.0.0 到 239.255.255.255。其中還有很多地址是為特殊的目的保留的。224.0.0.0到224.0.0.255的地址最好不要用,因為他們大多是為了特殊的目的保持的(比如IGMP協議)
三.IGMP協議
IGMP(internet網關管理協議)是IP組播的基礎.在IP協議出現以后,為了加入對組播的支持,IGMP產生了。IGMP所做的實際上就是告訴路由器,在這個路由器所在的子網內有人對發送到某一個組播組的數據感興趣,這樣當這個組播組的數據到達后面,路由器就不會拋棄它,而是把他轉送給所有感興趣的客戶。假如不同子網內的A,B要進行組播通信,那么,位與A,B之間的所有路由器必須都要支持IGMP協議,否則A,B之間不能進行通信。
當一個應用加入一個組播組后,就會向這個子網的所有路由器發送一個IGMP加入命令,告訴他子網內有人對發送到某一個組播組的數據感興趣.路由器也會定時向子網內的所有終端發送一條查詢消息,用于詢問是否還有人對某個組播組的數據感興趣。如果有的話,終端就會回應一條IGMP消息,路由器則繼續轉發這個組播組的數據。如果沒有人回應這條消息,那么路由器就認為已經沒有終端對這個組播組的數據感興趣,就不會在轉發關于這個組播組的數據了。在IGMP第二版中,一個終端推出組播組以后,會向路由器發送一個推出消息,路由器也會通過這個消息來判斷是否還要繼續轉發關于這個組播組的數據了。
總結
- 上一篇: 网络协议档案之ICMP、Ping、Tra
- 下一篇: SIP中的SDP offer/answe