• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 遠距離矢量多播選路協議

    發表于:2007-05-26來源:作者:點擊數: 標簽:
    1備忘錄狀態 本RFC描述了一個距離矢量形式的路由選擇 協議 ,這個 協議 用于在互聯網上為多播數 據報選路。它起源于選路信息 協議 (RIP)[1],并實現了RFC1054中所描述的多播。這是 一個實驗性 協議 ,這次并不推薦它的實現方式。該備忘錄可以任意發布。 2

    1備忘錄狀態
    本RFC描述了一個距離矢量形式的路由選擇協議,這個協議用于在互聯網上為多播數
    據報選路。它起源于選路信息協議(RIP)[1],并實現了RFC1054中所描述的多播。這是
    一個實驗性協議,這次并不推薦它的實現方式。該備忘錄可以任意發布。
    2簡介
    在IP網絡上多播的草擬標準目前存在[2],但沒有支持網間多播的路由選擇協議。本備
    忘錄描述了實驗性的路由選擇協議,叫做DVMRP,它實現了網間多播。DVMRP使RIP中
    的許多特性和在Deering[3]中所描述的截斷方向路徑廣播(TRPB)算法相結合。
    DVMRP是一個“內部網關協議”;適合在自治系統內的使用,但不能在不同的自治系
    統之間使用。當前開發的DVMRP不能用于為非多播數據報選路,因此要想一個路由器既
    能為多播數據報又能為單播數據報選路,則它必須運行兩個分離的路由選擇進程。DVMRP
    被設計成易于擴展的,可以擴展成為單播數據報選路。
    開發DVMRP是為了試驗[3]中所描述的算法。RIP用作這次開發的起始點是因為有一個
    實現版本可用,而且距離矢量算法與連接狀態類算法[4]相比較簡單的。另外,為了試驗穿
    越不支持多播的網絡可行性,開發了一種叫“隧道”的機制
    多播轉發算法需要構建基于路由信息的樹。構建這顆樹需要的狀態信息比RIP被設計
    能提供的要多。因為DVMRP在某些方面比RIP復雜的多。已經具有許多所需要的狀態的
    連接狀態算法,可能為Inte.net上多播選路和轉發提供了更好的基礎。
    DVMRP在一個非常重要的方面與RIP有不同之處。RIP按照路由和轉發數據報的方
    式思考。 DVMRP的目的是為了了解到多播數據報出發地的返回路徑。為了將DVMRP解釋
    的和RIP一致,單詞“目的地”用來代替更恰當的“出發地”但讀者應該記住數據報并不
    被轉發到這些目的地,而是起源于那里。
    本備忘錄被組織為下列部分:
    —對DVMRP進行描述。
    —解釋隧道。
    —展示路由算法。
    —展示轉發算法。
    —列出不同的時間值。
    —說明配置信息。

    本備忘錄不分析距離矢量路由,也不充分解釋距離矢量算法;要想獲得這方面主題
    的更多信息,請參看[1]。在本備忘錄中執行路由和轉發功能的一個進程或多個進程被稱
    作“路由器”。
    3協議描述
    DVMRP使用Internet組管理協議(IGMP)交換路由數據報[2]。DVMRP數據報由
    兩部分組成:一個短的、固定長度的IGMP頭部,和一個特征數據流。
    固定長度的DVMRP報文的IGMP頭部是:
    0123
    01234567890123456789012345678901
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |版本|類型|子類型|校驗和|
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    版本是1。

    DVMRP的類型是3。

    子類型是以下之一:
    1=應答;報文提供了到一些目的地的路由。
    2=請求;報文詢問到一些目的地的路由。
    3=非成員報告;報文提供非成員報告。
    4=非成員取消;報文取消先前非成員報告。

    校驗和是除了IP頭部以外,以16位對齊的全部報文的反碼和的反碼。計算校驗和
    時,校驗和字段為零。
    DVMRP報文的剩余部分是特征數據流。使用特征數據流的原因是提供易擴充性(通
    過增加新標簽來開發新命令)和減少報文中冗余數據的數量。數據流中的成分被叫做命
    令,為了便于對齊,它的長度是16位的倍數。命令被組織為八位命令數字代碼,并至
    少帶有一個八位數據部分。要求所有命令按16位對齊。
    出現錯誤的報文將在處理過程中檢測到錯誤的地方被丟棄。任何在錯誤出現之前由
    于報文的內容而發生的狀態改變,將不會恢復到它原來的值。
    某些命令在它們的規范說明中定義了缺省的值。因為缺省值可能會因為協議向前發
    展而改變。一個謹慎的實現不會發送依賴缺省值的報文。
    DVMRP報文的長度被限制為512字節,這不包括IP頭部。
    3.1NULL命令


    格式:0123456701234567
    +-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+
    |0||忽略|
    +-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+
    描述:NULL命令用來提供附加對齊或填充到32位。
    3.2地址家族指示符(AFI)命令
    格式:0123456701234567
    +-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+
    |2||家族|
    +-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+
    家族的值:
    2=IP地址家族,它的地址是32位長。
    缺?。杭易澹‵amily)=2
    描述:AFI命令為數據流中后繼地址提供了地址家族(直到出現不同的AFI命令)。
    如果接受者不支持地址家族會出現錯誤。
    3.3子網掩碼(Subnetmask)命令
    格式:0123456701234567
    +-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+
    |3||計數(count)|
    +-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+
    附加參數,AFI=IP:
    0123
    01234567890123456789012345678901
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |子網掩碼|
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    計數(count)為0或1。
    缺?。杭俣ǜS的路由是到網絡的,使用每條路由的目的地網絡掩碼的一個掩碼。
    描述:子網掩碼命令提供了用于后繼路由的子網掩碼。對子網掩碼中的位有一些要求:
    0到7位必須為1,所有位不應為1。
    如果計數為0,則沒有子網掩碼適用,假設跟隨的路由是到網絡的,使用每個路徑的目
    的地的網絡掩碼的一個掩碼。如果計數是1,則子網掩碼應該出現在數據流中,并且具有在
    給定地址族下的合適的長度。
    如果計數不為0或1,則出錯。
    子網掩碼不應該被送到適合的網絡之外。
    要想了解有關IP子網的更多的信息請參考[6]。
    3.4度量(Metric)命令
    格式:0123456701234567
    +-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+
    |4||值(value)|
    +-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+
    值(value)是度量單位,它是一個在1到255之間的無符號值。
    缺?。簾o。
    描述:度量命令提供了后繼目的地的度量。度量與發送DVMRP路由更新的路由器有
    關。
    3.5flag0命令
    格式:0123456701234567
    +-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+
    |5||值(value)|
    +-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+
    值(value)中位的意義:
    位7:目的地不可達。
    位6:分裂水平隱藏路徑。
    缺?。核形粸榱?。
    描述:flags0命令提供一個設置許多標志的方式。唯一定義的標志——位6和位7——
    能被用來提供帶有無窮大的度量的路由的更多的信息。如果路由器收到了一個它不支持的標
    志,則應該忽略這個標志。該命令之所以叫做flag0,是為了允許將來定義附加的標志命令
    (flags1,等等)。
    這是一個實驗性命令,可能將來會改變。
    3.6無窮大(Infinity)命令
    格式:0123456701234567
    +-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+
    |6||值(value)|
    +-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+
    值(value)是無窮大(Infinity),它是一個在1到255之間的無符號值。
    缺?。褐禐?6。
    描述:infinity命令定義流中的后繼度量無窮大性。
    如果infinity為0,或少于當前的度量值,則出錯。
    3.7目的地址(DA)命令

    格式:0123456701234567
    +-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+
    |7||計數|
    +-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+
    計數(count)的附加參數數組,AFI=IP:
    0123
    01234567890123456789012345678901
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |目的地址1|
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

    0123
    01234567890123456789012345678901
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |目的地址2|
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    計數提供的地址的數目,從1到255。地址的長度依賴于當前地址家族。提供的地址數
    目受到512字節的報文長度限制。
    缺?。簾o。
    描述:DA命令提供了一個目的地列表。盡管這種格式能表達到主機的路由,路由算法
    僅僅支持網絡和子網路由。當前度量(metric),無窮大(infinity),flags0,子網掩碼(subnetmask)
    與一個單一的目的地址結合,定義了一條路由。當前度量必須少于或等于當前無窮大
    (infinity)。
    當計數等于零時,出錯。
    3.8請求目的地址(RDA)命令
    格式:0123456701234567
    +-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+
    |8||計數(count)|
    +-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+
    “計數”附加參數數組,AFI=IP:
    0123
    01234567890123456789012345678901
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |請求目的地址1|
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

    0123
    01234567890123456789012345678901
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |請求目的地址2|
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    計數是指提供的地址的數目,從0到255。地址長度依賴于當前地址家族。提供的地址
    數目受512字節報文長度的限制。
    缺?。簾o。
    描述:RDA命令提供了一個路由請求的目的地列表。為所有路由的路由請求被編碼為
    count=0。
    3.9非成員報告(NMR)命令
    格式:0123456701234567
    +-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+
    |9||計數(count)|
    +-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+
    計數(count)的附加參數數組,AFI=IP:
    0123
    01234567890123456789012345678901
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |多播地址1|
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

    0123
    01234567890123456789012345678901
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |保持時間1|
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

    0123
    01234567890123456789012345678901
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |多播地址2|
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

    0123
    01234567890123456789012345678901
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |保持時間2|
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    計數是多播地址和提供的保持時間對的數目,它的值從1到255。地址的長度依賴于當
    前地址家族。提供的保持時間對的數目受512字節的報文長度限制。
    缺?。簾o。
    描述:NMR命令是實驗性的,并沒有在一個具體的實現中被測試。每個多播地址和保持
    時間對一起被叫做非成員報告。非成員報告告述接收路由器發送路由器沒有給定組中的后繼
    組成員?;谶@條信息,接收路由器能停止為了列表中特定的多播地址而向發送路由器轉發
    數據報。時間對表示NMR有效的時間,以秒為單位。
    如果計數等于0,則出錯。
    在一個有NMR命令的報文中,僅有的其它命令是AFI,flags0,和NULL命令。與flags0
    相關的標志沒有被定義,但這種情況可能會在將來改變。
    3.10非成員報告取消(NMRCancel)命令
    格式:0123456701234567
    +-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+
    |10||計數(count)|
    +-+-+-+-+-+-+-+-++-+-+-+-+-+-+-+-+
    計數(count)附加參數數組,AFI=IP

    0123
    01234567890123456789012345678901
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |多播地址1|
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

    0123
    01234567890123456789012345678901
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |多播地址2|
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    計數是提供的多播地址的數目,它的值從1到255。地址長度依賴于當前地址家族。提
    供的地址數目受512字節的報文長度的限制。
    缺?。簾o。
    描述:NMRCancel命令是實驗性的,并沒有在具體的實現中被測試。對于每個列出的
    多播地址,任意先前相應的非成員報告被取消了。當對于給定的多播地址,沒有相應的非成
    員報告,對那個多播地址的Cancel命令應該被忽略。
    當計數(count)等于0時,出錯。
    在一個有NMRCancel命令的報文中,僅有的其它命令是AFI,flags0,和NULL命令。與
    flags0相關的標志沒有被定義,但這種情況可能會在將來改變。
    3.12例子(字節在{}中),不包括報文頭部:
    3.12.1提供一條到IP地址為128.2.251.231的單獨的路由。路徑的字段為:
    度量(metric)為2,無窮大(infinity)為16,子網掩碼為255.255.255.0:
    Subtype為1,AFI2,Metric2,Infinity16,SubnetMask255.255.255.0
    {2}{2}{4}{2}{6}{16}{3}{1}{255}{255}{255}{0}
    DACount=1[128.2.251.231]
    {7}{1}{128}{2}{251}{231}
    3.12.2提供一條到IP地址為128.2.251.231和128.2.236.2的路由
    它的度量(metric)為2,無窮大(infinity)為16,子網掩碼為255.255.255.0:
    Subtype1,AFI2,Metric2,Infinity16,SubnetMask255.255.255.0
    {2}{2}{4}{2}{6}{16}{3}{1}255}{255}{255}{0}
    DACount=2[128.2.251.231][128.2.236.2]
    {7}{1}{128}{2}{251}{231}{128}{2}{236}{2}
    3.12.3請求到IP目的地址的所有路由。
    Subtype2,AFI2,RDACount=0
    {2}{2}{8}{0}
    3.12.4組224.2.3.1和224.5.4.6(它們的保持時間為20秒)和組224.7.8.5
    (它的保持時間為40秒)的非成員報告。
    Subtype3,
    AFI2,NMRCount=3[224.2.3.1,20]
    {2}{2}{10}{3}{224}{2}{3}{1}{0}{0}{0}{20}

    [224.5.4.6,20][224.7.8.5,40]
    {224}{5}{4}{6}{0}{0}{0}{20}{224}{7}{8}{5}{0}{0}{0}{40}
    3.13命令總結
    值名字在同一報文中允許的其它命令
    ------------------------------------------------
    0NullNull,AFI,Subnetmask,Metric,Flags0,
    Infinity,DA,RDA,NMR,NMR-cancel

    2AFINull,AFI,Subnetmask,Metric,Flags0,
    Infinity,DA,RDA,NMR,NMR-cancel

    3SubnetmaskNull,AFI,Subnetmask,Metric,Flags0,
    Infinity,DA,RDA

    4MetricNull,AFI,Subnetmask,Metric,Flags0,
    Infinity,DA

    5Flags0Null,AFI,Subnetmask,Metric,Flags0,
    Infinity,DA
    6InfinityNull,AFI,Subnetmask,Metric,Flags0,
    Infinity,DA

    7DANull,AFI,Subnetmask,Metric,Flags0,
    Infinity,DA

    8RDANull,AFI,Subnetmask,Flags0,RDA

    9NMRNull,AFI,Flags0,NMR

    10NMR-cancelNull,AFI,Flags0,NMR-cancel
    4隧道
    隧道是在被不支持多播路由的網關隔開的路由器之間發送數據報的一種方法。它充當兩
    個路由器之間的虛擬網絡。例如,有一臺運行在斯坦福大學的路由器,和一臺運行在BBN
    上的路由器,這兩臺路由器可以被一個允許多播數據報穿越因特網的隧道連接。我們認為隧
    道是過渡性的手段。
    隧道是用弱封裝的常規多播數據報來實現的。弱封裝使用一個特殊的兩元素IP松散源
    路由[5]。(這種封裝形式比“強”封裝(預先考慮一個完全新的IP頭部)要好,因為它不
    要求隧道終端知道彼此的最大重裝緩沖器大小。它也有始發者的生存時間值和任何出現的其
    它的IP選項的正當的特性所帶來的好處。)
    隧道有一個本地終端和遠程終端,度量和與它相關的閾值。在隧道每一端的路由器僅需
    在本地和遠程終端上達成一致就行。要了解有關隧道是如何配置的信息,參看第八部分。因
    為不知道一個隧道終端之間的中間網關的數目,所以需要進一步研究來確定合適的度量和閾
    值。
    要在隧道上發送數據報,會出現如下事件:
    —一個空IP選項被插進數據報中。這為松散源路由IP選項提供了優先選取的對齊方式。
    —一個兩元素松散源路由IP選項被插進數據報中。
    —設置源路由指針指向在源路由中的第二個元素。
    —在源路由中的第一個元素被起始主機(起始IP源地址)的地址所替換。
    —在源路由中的第二個元素被起始主機所提供的多播目的地址(起始的IP目的地址)
    所替換。
    —IP源地址被路由器的合適的外出物理接口(本地隧道終端)的地址所替換。
    —IP目的地址被遠程路由器(遠程隧道的終端)的地址所代替。
    —使用非多播路由算法傳送數據報到遠程路由器。
    中間的非多播網關將為隧道化的數據報選擇到遠程隧道終端的路由。因為數據報的IP
    源地址已經被本地隧道終端地址所替換,ICMP出錯信息將到達起始多播路由器。這種特性
    是所需的,因為發送多播數據報(多播路由器決定將該數據報放進隧道中)的主機并不知道使
    用了隧道。如果當封裝這個數據報時,數據報的IP源地址沒有改變,任何ICMP錯誤被送
    到起始主機。
    當遠程隧道終端收到隧道化的數據報時,發生下列事件:
    IP源地址被松散源路由中的第一個元素所替換。
    IP目的地址被松散源路由的第二個元素所替換。
    空選項和松散源路由選項被從數據報中移出。這種處理是必須的,因為主機并不知道它
    接收的數據報是從隧道發送來的。
    因為沒有特定的網絡與一個隧道相聯系,所以不用為一個隧道跟蹤本地組成員。隧道的
    唯一的鄰居是一個遠程終端。路由信息通過隧道交換,但并不為一個隧道生成一個路由。路
    由信息應該以一個單播數據報發送,直接到達遠程隧道終端;它們不能用IP松散源路由。
    為隧道使用源路由和記錄選項的原因是:
    我們考慮定義我們自己的IP選項來處理隧道,但我們擔心中間網關不能透明的傳遞它
    們不知道的IP選項。使用新選項的數據報不會穿越因特網。如果我們能生成一個新的IP選
    項,這樣就比較好,但這目前還不能做到。記住這是一個過渡設計,允許我們在當前環境中
    進行實驗。
    包含LSRR選項的隧道化分組有一下特征:
    字段值
    —————————————
    源地址=源網關地址
    目的地址=目的網關地址
    LSRR指針=指向LSRR地址2
    LSRR地址1=源主機
    LSRR地址2=多播目的地址
    由于為隧道使用LSRR選項而引起的兩個問題是“中間網關能忽略這個選項?”和“目
    的網關能恰當的檢測出LSRR被用于一個隧道嗎?”
    當中間網關收到一個數據報,它檢查目的地址。對于一個隧道化的數據報,目的地址并
    不等于接收網關的地址。因此,LSRR選項不會被檢查出來,中間網關將把該數據報轉發給
    到目的地址的下一跳。
    當目的網關接收到一個數據報時,它注意到該數據報的目的地址與它自己的一個地址相
    匹配。因為源路由還沒有用完,它將查看下一個LSRR選項地址。這個地址是多播地址。因
    為主機被禁止把多播地址放到源路由上,網關能推斷出LSRR用于隧道。這里的不足之處是
    LSRR中的多播地址可能有一些其它意義。不過當前還沒有其它的意義被定義。
    如果隧道化的數據報被錯誤的定址到不支持多播的目的網關上,則目的網關將試圖找到一條
    到多播地址的路由。這將失敗,而且一個ICMP目的不可達錯誤報文被送到隧道化的數據報
    源端。因為隧道化數據報的源地址已被調整為源多播網關的地址,ICMP錯誤將不會被送到
    起始主機,這臺主機并不知道隧道的存在。
    5路由算法
    這一部分對距離矢量路由算法做一個簡要的介紹。要了解更多的信息請參閱[1]。
    雖然DVMRP能表示到單個主機的路由,這個轉發和路由算法僅支持網絡和子網路由。
    在以下的討論中,術語“虛接口”用來代表一個物理接口或一個隧道本地終端。物理接
    口是一個網絡接口,例如是以太網卡。到目的地的路由將通過一個虛接口。術語“虛網絡”
    用來代表一個物理網絡或隧道,它僅能在參考物理網絡上路由。
    TRPB算法通過計算最短(反向)路徑樹,將多播數據報從源端(物理)網絡轉發到這
    個數據報所有可能的接收者。每個多播路由器必須確定它在樹中相對于特定源端的位置,而
    且確定它的那些虛接口在最短路徑樹上。數據報就從這些虛接口中轉發出來。排除不在最短
    路徑樹上的虛接口的過程叫做“修剪”(pruning)。
    考慮一個虛擬網絡,使用Deering的術語,如果一臺路由器的責任是通過它的連接虛擬
    接口向一個虛擬網絡轉發數據報,則這臺路由器叫做這個虛擬網絡的“父親”。虛擬網絡也
    能被認為是這個路由器的“孩子”虛擬網絡。使用孩子信息,路由器能進行反向路徑廣播。
    不必要的數據報可能仍會被送到一些網絡上,而這些網絡沒有這些數據報的任何接收
    者。
    有兩種接收者:屬于一個特定多播組的主機和多播路由器。如果在一個虛擬網絡上沒有
    多播路由器,則認為虛擬網絡沿樹向上到達一個給定的源端,這個虛擬網絡是一個“葉子”
    網絡。如果一個網絡是給定源端的一個葉子,而且在這個網絡上沒有特定組的成員,則沒有
    接收者接收從源端到這個網絡上的組的數據報。那個網絡的父親路由器能放棄發送這個網絡
    上的數據報,或“截斷”最短路徑樹。跟蹤和使用這個信息的算法是截斷反向路徑廣播(TRPB)
    算法。
    確定那些虛擬網絡是否是葉子并不簡單。如果任何臨近路由器認為一個給定的虛擬網絡
    在到一個給定目的地的路徑上,那么這個虛擬網絡不是葉子。否則,它是葉子。這是一個選
    舉的功能。如果一個帶有由分裂水平處理毒害的度量的路由被某一路由器發送,則那個路由
    器使用那個虛擬網絡作為那個路由的向上樹路徑(即,那個路由器投票認為這個虛擬網絡相
    對于這條路由的目的地來說不是葉子)。因為在一個虛擬網絡上的路由器是動態的,而且所
    有路由更新信息并不被路由器保存,所以需要一個試探法來決定一個網絡是一個葉子。當時
    間長度為LEAF_TIMEOUT秒的保持定時器正在運行時,DVMRP采樣在一個虛擬接口上的
    路由更新信息。每個虛擬接口有一個保持時間定時器。如果當保持定時器還在運行時,或在
    任意其它時間收到一條帶有一個被分裂水平處理毒害的度量的路由,那么這條路由的合適的
    虛擬接口“變壞”了,——它不是葉子。對每條路由來說,當保持定時器超時時,任何沒有
    變壞的虛擬接口被認為是葉子。
    對于一個更好的轉發算法——反向路徑多播算法的描述,參見[3]。
    一個路由實體應該有以下要素:
    —目的地址(多播數據報源端)*
    —目的地址的子網掩碼*
    —到達目的地址的下一跳路由器
    —到達下一跳路由器的虛擬接口*
    —孩子虛擬接口列表*
    —葉子虛擬接口列表*
    —每個虛擬接口的主要路由器地址
    —每個虛擬接口的次要路由器地址
    —表示實體狀態的標志集合
    —度量
    —無窮大
    標有‘*’的行表示直接由轉發算法使用的字段。
    孩子和葉子接口列表能用位圖實現。
    5.1發送路由報文
    使用DVMRP路由報文能達到三個基本的目的:周期性的提供所有路由信息,為最近
    改變的路由免費提供路由信息,為響應一個請求提供一些或所有路由信息。
    送到物理接口的路由報文的IPTTL字段應為1。
    何時發送路由報文的規則:
    —每過FULL_UPDATE_RATE秒,路由器應該發送帶有所有路由信息的DVMRP報文
    給它的所有虛擬接口。為了在路由器發送更新信息時阻止它們同步,應該使用一個實時定時
    器。
    —在路由改變時,路由更新信息應該為這個路由發送。為了避免網絡被觸發更新所淹沒,
    觸發更新之間必須有一些延時;建議使用TRIGGERED_UPDATE_RATE秒作為間隔時間。
    當DVMRP路由器重新啟動時,對所有路由的請求應該被在所有虛擬接口上發送。
    —如果可能,當DVMRP路由器將中止執行時,它應該在所有虛擬接口上,為所有路
    由發送帶有等于無窮大的度量的DVMRP報文。
    當報文發送到經由支持多播的網絡連接的路由器上時,它應該被多播到地址224.0.0.4。
    因此,路由器必須偵聽每個支持多播的物理接口上的多播地址224.0.0.4。如果不支持多播,
    則使用廣播。就像已經提到的那樣,到隧道的路由更新信息應以單播數據報的形式發送到遠
    程隧道終端。
    當發送路由報文時,除了響應特定的路由請求外(經由非零計數的RDA命令),必須
    進行毒害的分裂水平處理。這意味著給定一個使用網絡X的路由,送到網絡X上的路由信
    息必須包括度量為無窮大的路由,還應該包括設置在FLAGS0命令上的適當的標志。
    毒害的分裂水平是減少路由循環的可能性的一種方式。另一中RIP中沒有的方法是選
    擇路由中的較好的無窮大。對于在一個小規模的,連接良好的網絡上傳播的路由,小于16
    位的無窮大可能更好些。無窮大的值越小,計數到無窮大的事件發生的時間越短。在穿越一
    個大規模的互聯網時,16位的無窮大可能太小。以計數到無窮大事件發生的時間變長為代
    價,無窮大應該被增加。
    在因特網上多播的一個概念是使用“閾值”來限制多播數據報離開一個網絡。在子網或
    自治系統的邊緣的多播路由器可能要求一個數據報具有大的TTL值,以便離開一個網絡。
    這種機制使得大部分多播數據報處于一個網絡中,減少了外部的通信量。如果一個應用程序
    想把多播超出它的本地網絡的范圍,那么它的數據報的TTL字段的值至少是閾值和到網絡
    邊緣的距離的和。必須有一個配置選項允許為物理接口和隧道指定閾值。
    當一個路由器啟動時,它必須在它的每個虛擬接口上為所有的路由發送一個請求。這個
    請求是一個帶有RDA命令的報文,RDA命令的計數等于0。
    5.2接收路由報文
    路由器必須知道路由報文到達的虛擬接口。因為路由報文的地址可能是所有多播路由器
    的IP地址,而且因為有隧道,接收接口不能僅僅通過檢查報文的IP目的地址而被識別。
    對于在路由報文中表示的每條路由,以下必須出現:
    IF為一個路由設置了度量:
    THEN增加有報文到達的虛擬接口的度量。
    在路由表中查找路由的目的地址。
    IF路由沒有出現在表中:
    THEN試圖在路由表中發現到相同網絡的一條路由。
    IF那條路由出現在表中:
    THENIF這條路由和被發現的路由來自相同的路由器:
    THENCONTINUE下一條路由。
    IF路由沒有一個無窮大的度量:
    THEN在路由表中增加這條路由。
    CONTINUE下一條路由。
    IF這條路由和被發現的路由來自同一個路由器:
    THEN清除路由定時器。
    IF收到一個路由,它與被發現的路由的度量不同:
    THEN使用新的路由和無窮大來改變被發現的路由。
    IF度量與無窮大相等:
    THEN置路由定時器的值為EXPIRATION_TIMEOUT.
    CONTINUE下一條路由。
    IF接收到的無窮大與被發現的無窮大不同:
    THEN將發現路由器無窮大改為接收到的無窮大。
    將被發現的路由的度量改為接收到的無窮大和發現路由度量的最小值。
    ELSEIF收到一個度量,(它小于被發現路由的度量或(路由定時器的當前值至少接近
    EXPIRATION_TIMEOUT的一半,而且被發現路由的度量等于接收到的度量,
    這個度量小于接收到的無窮大)):
    THEN使用接收到的路由改變路由表。清除路由定時器。
    CONTINUE下一條路由。
    5.3鄰居
    必須有一個列表保存在每個附屬的網絡上的臨近多播路由器。信息可從接收到的
    DVMRP路由報文中獲得。如果在NEIGHBOR_TIMEOUT秒中沒有收到一個鄰居的任何消
    息,則認為它已經關機了。
    5.4本地組成員
    像[2]所要求的那樣,多播路由器必須跟蹤附屬于它的有多播能力的網絡上的組成員。
    每過QUERY_RATE秒,在每個網絡上,應由一個指定的路由器發送一個IGMP成員請求給
    所有多播組地址(224.0.0.1)。IGMP成員請求將使主機在一個短延遲內用IGMP成員報告作
    為響應。主機將為一個組發送一個報告聲明這個組的多播地址。
    成員請求報文的IPTTL字段為1。
    在一個網絡上的路由器選舉或“指定”一個單一的路由器發出請求。被指定的路由器是
    網絡中IP地址最小的路由器。當啟動時,路由器在獲知(假設通過路由報文)還有一個更
    低的地址的路由器之前,它認為自己就是被指定的路由器。為了在啟動時獲知一個網絡上出
    現的組成員,路由器應該多播許多成員請求,每次請求之間有一個短的延時。我們建議發送
    三個請求,每次的間隔是四秒。
    多播路由器必須接收所有送到所有多播地址的數據報。當從一個接口上收到有關一個組
    的IGMP成員報告,它必須記錄這個接口上這個組的存在性和時間,而且如果這個組已經被
    記錄,則更新時間。被記錄的組成員必須設置了超時時間。如果過了
    MEMBERSHIP_TIMEOUT秒后,沒有收到一個被記錄的組的組成員報告,則這個被記錄的
    組將被刪除。
    6轉發算法
    這一部分講述多播轉發算法和必須為這個算法保存的狀態。
    轉發算法用于確定到達一個物理接口或隧道的多播數據報應如果被處理。如果多播數據
    報是被淹沒的,則在一個虛擬接口上接收到的數據報應該從所有其它的虛擬接口上轉發出
    去。因為在互聯網上的冗余路徑,所有數據報應該被復制。路由算法提供的孩子和葉子信息
    用于修剪到所有可能的目的地的樹的分支。
    在路由實體中,每個虛擬接口都有一個占支配性的路由器地址。這個地址是在那個虛擬
    接口上,具有到目的地較低度量的路由(它的度量不等于無窮大)的路由器的地址。這個占
    支配性的路由器地址不是為下一跳的虛擬接口準備的。
    在路由器實體中,每個虛擬接口中還有一個從屬路由器地址。這個地址是認為自己是這
    個虛擬網絡的父親的路由器的地址。因此,從屬路由器地址不是為到一個葉子網絡的虛擬接
    口準備的。
    管理在路由實體中孩子和葉子的算法如下:
    當路由器啟動時:
    為每個虛擬接口生成一個路由實體,它帶有:
    —在它的孩子列表中所有其它的虛擬接口,
    —一個空的葉子列表,
    —沒有占支配性的路由器地址,
    —沒有從屬路由器地址。
    為每個虛擬接口開始一個保持定時器,值為LEAF_TIMEOUT。
    當接收到一個新的路由:
    生成這個路由實體,它帶有:
    —在它的孩子列表中,包含除了接收到新路由的虛擬接口以外的所有虛擬接口,
    —空葉子列表,
    —沒有占支配性的路由器地址,
    —沒有從屬路由器地址。
    為除了接收到新路由的那個虛擬接口以外的所有虛擬接口開始保持定時器,值為
    LEAF_TIMEOUT。
    當在一個虛擬接口V上接收到一個鄰居N送來的路由,它有一個比在路由表中那一個
    低的度量(或相同的度量,如果N的地址小于V的地址),對于這條路由:
    IfN是V的占支配性的路由器,不讓N再當占支配性的路由器,并且在孩子列表中
    加入V。
    當在虛擬接口V上接收到鄰居N送來的路由,它的度量等于無窮大(分裂水平標志應
    該被被設置),對這條路由:
    IfV在葉子列表中,從葉子列表刪除V。
    IfV沒有占支配性的路由器,把N記錄為占支配性的路由器。
    當在虛擬接口V上接收到一個鄰居N送來的路由,它的度量不同于無窮大(沒有分裂
    水平標志),對這條路由:
    IfN是V的占支配性的路由器,不讓N再當占支配性的路由器,并且為V開始保持
    定時器。
    當一個虛擬接口V的定時器超時,對每條路由:
    IfV沒有占支配性的路由器,在葉子列表中加入V。
    當虛擬接口V的鄰居N失敗,對每一條路由:
    IfN是V的占支配性的路由器,不讓N再當占支配性的路由器,并為V開始保持定
    時器。
    轉發算法是:
    IFIP的TTL字段小于2:
    THENCONTINUE下一個數據報。
    尋找到IP數據報的源端的路由。
    IF沒有路由存在:
    THENCONTINUE下一個數據報。
    IF沒有為這個路由在下一跳虛擬接口上收到數據報
    THENCONTINUE下一個數據報。
    IF數據報被隧道化:
    THEN用在IP松散源路由中的第一個地址代替數據報的源地址。
    用在IP松散源路由中的第二個地址代替數據報的目的地址。
    刪除數據報的松散源路由和空(null)選項,并相應調整IP頭部的長度字段。
    IF數據報的目的地址是組224.0.0.0或組224.0.0.1:
    THENCONTINUE下一個數據報。
    FOR每一個虛擬接口V
    DOIFV在數據報源端的孩子列表中:
    THENIFV不在源端的葉子列表中
    OR在V上有目的組的成員
    THENIFIP的TTL字段比V的閾值要大:
    THEN將TP的TTL字段減1
    將數據報從V中轉發
    7時間值
    這一部分包括不同速率和超時,以及它們的意思,它們的值的列表。所有值都以秒為單
    位。
    路由環境的動態性影響以下速率。較低的速率將允許環境發生改變時的快速適應,代價
    是浪費了網絡帶寬。
    FULL_UPDATE_RATE=60
    —帶有完整的路由表的路由報文被發送的時間間隔。
    TRIGGERED_UPDATE_RATE=5
    —觸發路由報文可能被發送的時間間隔。
    提高以下的速率和超時值可能增加分組被轉發到一個虛擬接口的時間值。
    QUERY+RATE=120
    —發出本地組成員請求的時間間隔。
    MEMBERSHIP_TIMEOUT=2*QUERY_RATE+20
    —本地組成員關系在沒有證實的情況下的最長有效時間。
    LEAF_TIMEOUT=2*QUERY_RATE+20
    —為每個虛擬接口設置的保持定時器的超時值。
    增加下面的超時值會增加路由算法的穩定性,代價是路由環境改變時較慢的反應。
    NEIGHBOR_TIMEOUT=4*FULL_UPDATE_RATE
    —在沒有被證實的情況下,一個鄰居被承認的時間。這對于超時路由,和設置孩子
    和葉子標志時很重要。
    EXPIRATION_TIMEOUT=2*FULL_UPDATE_RATE
    —在沒有被證實的情況下,一條路由被認為是有效的時間。當定時器超時時,分組
    將不會在這條路由上轉發,路由更新將認為這條路由有一個無窮大的度量。
    GARBAGE_TIMEOUT=4*FULL_UPDATE_RATE
    —在沒有被證實的情況下,一條路由存在的時間。當定時器超時時,路由更新將
    不再具有這條路由的任何信息。這條路由將被刪除。
    8配置選項
    一條路由應該可以被配置下列信息:
    —隧道描述:本地終端,遠程終端,度量,和閾值。如果沒有提供閾值,度量應該
    被用于缺省的閾值。
    —對于一個物理接口:度量,無窮大,閾值和子網掩碼。如果沒有提供閾值,度量
    應該被用于缺省的閾值。
    9結論
    本備忘錄展示了DVMRP(一種可擴展的遠距離矢量路由協議)和TRPB路由算法。在
    這篇文檔里提到的思想的一個具體實現已經被完成,正在測試階段。
    與RIP相比,在DVMRP中增加的特征使得它更加靈活,代價是更加復雜的處理。做
    為一個距離矢量算法,DVMRP仍然用不足之處。因為連接狀態類算法維持DVMRP所要維
    持的狀態信息中許多信息,而這些信息超出了RIP的需要,所以一個多播狀態類的路由協
    議應該被開發。
    TRPB算法能促使不必要的數據報被發送。反向路徑多播算法(RPM)可能是一個更好
    的算法。設計NMR和NMR-cancelDVMRP報文的目的是支持RPM。對于這個主題需要更
    深入的研究。
    10致謝
    我們將感謝RobbFoster,AlanDahlbom,RossCallon和IETF主機工作組提供了他們的思
    想。
    11參考書目
    [1]Hedrick,C.,"RoutingInformationProtocol",RFC1058,RutgersUniversity,June1988.
    [2]Deering,S.,"HostExtensionsforIPMulticasting",RFC1054,StanfordUniversity,May
    1988.
    [3]Deering,S.,"MulticastRoutinginInternetworksandExtendedLANs",SIGCOMMSummer
    1988Proceedings,August1988.
    [4]Callon,R.,"AComparisonof'LinkState'and'DistanceVector'RoutingAlgorithms",DEC,
    November1987.
    [5]Postel,J.,"InternetProtocol",RFC791,USC/InformationSciencesInstitute,September
    1981.
    [6]Mills,D.,"TowardanInternetStandardSchemeforSubnetting",RFC940,Universityof
    Delaware,April1985.

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>