針對網路應用層實現多播的探析

才智咖 人氣:2.73W
針對網路應用層實現多播的探析
  論文關鍵詞:應用層組播;網路層組播;控制拓撲
  論文摘要:傳統的多播(Multicasting)服務被實現在TCP/IP協議的網路層,但由於網路層的多播服務實現需要擴充套件網路層的路由與資料包收發協議,這在大多數的實際網路環境裡並不是一件容易的事情.為了加速組播的應用,解決現有組播存在的問題,近年來提出了應用層組播.將組播的功能從路由器轉移到終端,不需要路由器維護組播組的路由表,且不用改變現有網路設施,方便實現組播功能.本文介紹了應用層多播的定義和方法,及現階段國內外已提出的應用層多播協議,並簡單地討論了應用層多播協議的效能評價問題.


  0引言
    1988年SteveDeering首先在他的博士論文中提出IP組播組播用於一對多、多對多、多對一的組通訊.它是一種有效的資料傳輸應用,傳送的同一資料在物理鏈路中只傳輸一次,減少了資料包在網路傳輸中的冗餘,節約了頻寬,提高了傳輸效率.然而,十多年過去了,雖然對IP組播的研究一直都在進行,但是由於IP組播本身所帶來的缺點,使得IP組播至今並沒有能夠得到廣泛的應用.
    IP組播要求路由器為每一個組播組保留狀態資訊.這樣路由器的路由和轉發表將需要對每一個不同的組播地址保留一個相應的路由表項,但是組播地址並不像單播地址一樣容易整合,因此增加了路由器的系統開銷和複雜性.
    IP組播是一種盡力而為(best effort)的服務.當要提供高層的特性時,例如:可靠傳輸、擁塞控制、流量控制以及安全管理等,就會比簡單的單播要更困難,以至於因特網服務提供商(ISPs)不願意提供IP Multicast的支援.雖然目前已經出現了針對上面這些特性的研究,但是這些解決方案目前在Internet上的影響並不明確,需要在大範圍應用前進行更好的研究.
    IP組播需要對現有網路做底層的改變.同時由於在收費機制方面的技術無法突破,使得目前只有少數的因特網服務供應商支援IP組播.
    出於以上的考慮,近年來國外一些研究者開始研究新的組播架構,試圖繞開IP組播的種種難題,因此提出了基於應用層的組播協議.即在應用層實現組播的功能,而不是再依靠網路層路由器來實現.這種組播方法不需要任何網路底層架構的改變來實現組播,從而為組播的大範圍開展與應用提出了一種新的途徑.應用層組播將對組播功能的支援從路由器轉移到終端系統,在終端之間運用原來的單播方式進行傳輸,這樣不必改變原有網路中基礎設施,也不需要路由器維護組播組的路由表,可以比較容易地實現組播,加速了應用.
  1應用層組播介紹
    應用層組播的基本模型圖如圖1所示.圖la為IP組播資料傳輸的'方式,資料在網路內部的路由器上進行復制;圖1b為應用層組播的資料包在網路的終端系統進行復制.
    由於應用層多播不像網路層多播實現資料包的複製在網路層路由器,而是在應用層上.因此,應用層的多播協議要求具有以下特點:
    (1)自組織性.多播所基於的邏輯拓撲結構的構建應該是分散式的自組織方式.參與多播的成員可能分佈在極廣的地理位置範圍內,地理位置相近的成員應能先自組織成一個邏輯子拓撲結構來聯人整個多播拓撲中.
    (2)自適應性.多播基於的資料邏輯拓撲在構建後要能自適應地根據網路服務狀態和多播組成員變化做出改變和優化,以便可選擇更佳的多播傳輸路徑.
    (3)高效性一般地,多播構建的資料傳輸邏輯拓撲結構必須儘量使得在同一條邏輯傳輸路徑上的冗餘資料傳輸最低.但針對不同的應用要求,多播的高效性也具有不同的側重含義.如對於視訊會議的應用,多播的有效性是指傳輸的實時性,而對於白板之類的應用即要求實時性也要求傳輸的可靠性.

  1.1應用層組播的優點
    (1)應用層組播能夠很快就進人應用,不需要改變現有網路路由器.
    (2)接人控制更容易實現.由於單播技術在這方面比較成熟,而應用層組播是通過終端系統之間單播來實現的,所以差錯控制、流控制、擁塞控制容易實現.

    (3)地址分配問題也就可以有相應的解決方案.
  1.2應用層組播的缺點
    (1)可靠性:終端系統的可靠性比路由差.
    (2)可擴充套件性:底層的路由資訊對應用層組播來說是隱藏其來的,可擴充套件性不好.
    (3)延遲比較大:IP組播主要是在鏈路上的延遲,而在應用層組播中,資料還要經過終端系統,因而延遲相對要大一些.
    (4)資料傳輸效率不如IP組播:應用層組播在資料傳輸過程中會產生資料冗餘,因此它們比IP組播的效率差.
  2應用層組播協議的實現
    應用層組播協議通常把組成員組織成兩個邏輯拓撲:控制拓撲和資料傳輸拓撲.拓撲上的每條邊相當於一條單播連線.控制拓撲主要用來在端系統間週期性的交換控制資訊來發現和恢復由於一些成員的非法離開造成的拓撲破壞.資料拓撲通常是控制拓撲的一個子集,主要用來表明資料包的傳輸路徑。實際上,資料拓撲一般是一個網狀拓撲結構.因此,根據構建控制拓撲和資料拓撲的順序,可以將目前網路層組播協議的實現方法分為:網優先(Mesh-first)多播、樹優先(Tree-first) 多播和隱含多播三類 
    網優先多播協議中,多播成員首先分散式地組織形成一個網型的控制拓撲,在某一對多播組成員之間可能存在多條的連線路徑.基於這個網型的拓撲,每一個多播組成員根據某種路由協議分散式地計算出自己到每一個其它多播組成員的資料傳輸路徑.然後可藉助許多網路層多播協議如DVMRP使用的轉發逆向路徑(Reverse Path Forwarding)演算法可構造出基於任一多播組成員為樹根的樹型多播傳輸拓撲da就是屬於這類的一種應用層多播協議,也是最早提出的應用層多播協議之一
    相反地在樹優先多播協議中,首先構建的是一個所有多播組成員共享的樹型多播資料傳輸拓撲,接著,每個多播組成員發現那些樹型中與其不相鄰的多播組成員,並分別建立連線路徑到這些成員,這樣在樹型拓撲基礎上再加入這些新添的連線路徑構成網型的控制拓撲.目前的Yoid和HMTP都是屬於這類的應用層的多播協議.