本申請要求享有于2014年11月5日提交的、申請?zhí)枮?4/533,729、名稱為“用于數(shù)據(jù)路徑確認與驗證的系統(tǒng)與方法”的美國正常專利申請的優(yōu)先權,其全部內(nèi)容通過引用結合在本申請中。
本公開一般涉及數(shù)字通信,更具體地涉及用于數(shù)據(jù)路徑確認和驗證的系統(tǒng)和方法。
背景技術:
通常,可靠的路由路徑可能在一點上變得不可靠或甚至不可用。數(shù)據(jù)路徑確認和驗證是網(wǎng)絡操作的關鍵階段,有助于確保通信系統(tǒng)的正常運行。
技術實現(xiàn)要素:
本公開的示例性實施例提供了用于數(shù)據(jù)路徑確認和驗證的系統(tǒng)和方法。
根據(jù)本公開的示例性實施例,提供了一種用于操作源節(jié)點的方法。該方法包括源節(jié)點接收數(shù)據(jù)路徑確認請求命令,該數(shù)據(jù)路徑確認請求命令用于請求確認與標識于該數(shù)據(jù)路徑確認請求命令中的業(yè)務流相關聯(lián)的路徑,并且源節(jié)點根據(jù)被確認的該路徑,確定第一跳序列,其中,該第一跳序列與被確認的路徑相關聯(lián)的非確認請求分組相關聯(lián)的第二跳序列相同。該方法還包括源節(jié)點根據(jù)數(shù)據(jù)路徑確認請求命令生成確認請求分組,確認請求分組包括與第一跳序列相關聯(lián)的路由信息、設置為指定值的告警標識以及路徑確認報頭,該路徑確認報頭指定由接收確認請求分組的節(jié)點執(zhí)行的處理;以及源節(jié)點根據(jù)路由信息發(fā)送確認請求分組。
根據(jù)本公開的另一示例性實施例,提供了一種用于操作節(jié)點的方法。該方法包括該節(jié)點接收確認請求分組,該確認請求分組包括設置為指定值的告警標識、用于確認請求分組的跳序列、指定跳序列中的當前跳的跳索引、跳序列中的跳數(shù)和路徑確認報頭,該路徑確認報頭指定由接收確認請求分組的節(jié)點執(zhí)行的處理;以及該節(jié)點根據(jù)路徑確認報頭進行處理以產(chǎn)生結果。
根據(jù)本公開的另一示例性實施例,提供了源節(jié)點。該源節(jié)點包括接收器、可操作地耦合到接收器的處理器、以及可操作地耦合到處理器的發(fā)送器。接收器接收數(shù)據(jù)路徑確認請求命令,其請求驗證與在數(shù)據(jù)路徑確認請求命令中識別的業(yè)務流相關聯(lián)的路徑。處理器根據(jù)被確認的路徑確定第一跳序列,其中,第一跳序列與被確認的路徑相關聯(lián)的非確認請求分組相關聯(lián)的第二跳序列相同,并且根據(jù)數(shù)據(jù)路徑確認請求命令生成確認請求分組,該確認請求分組包括與第一跳序列相關聯(lián)的路由信息、設置為指定值的告警標識以及路徑確認報頭,該路徑確認報頭指定由接收確認請求分組的節(jié)點執(zhí)行的處理。發(fā)送器根據(jù)路由信息發(fā)送確認請求分組。
根據(jù)本公開的另一示例性實施例,提供了節(jié)點。該節(jié)點包括接收器和可操作地耦合到接收器的處理器。接收器接收確認請求分組,該確認請求分組包括設置為指定值的告警標識、用于確認請求分組的跳序列、以及路徑確認報頭,該路徑確認報頭指定由接收確認請求分組的節(jié)點執(zhí)行的處理。處理器根據(jù)路徑確認報頭進行處理以產(chǎn)生結果。
本實施例的一個優(yōu)點是對預期路徑執(zhí)行數(shù)據(jù)路徑確認和驗證。此外,還可以驗證數(shù)據(jù)路徑對稱性。
實施例的另一優(yōu)點是可以執(zhí)行不同類型的動作,并且記錄所得到的信息以供請求節(jié)點進行后續(xù)處理。
實施例的另一個優(yōu)點是單個請求和相應的回復可以獲得用于數(shù)據(jù)路徑確認和驗證的所有所需的信息。
附圖說明
為了更完整地理解本公開及其優(yōu)點,現(xiàn)結合附圖參考以下描述,其中:
圖1示出了根據(jù)本文描述的示例性實施例的示例性通信系統(tǒng);
圖2示出了根據(jù)本文描述的示例性實施例的在基于索引的源路由通信系統(tǒng)中使用的示例性分組;
圖3示出根據(jù)本文描述的示例性實施例的示例性通信系統(tǒng),突出顯示從源節(jié)點到目的節(jié)點的分組的路徑;
圖4示出了根據(jù)本文描述的示例性實施例的示例性確認請求分組;
圖5示出了根據(jù)本文描述的示例性實施例的通信系統(tǒng),突出顯示確認請求分組的路徑;
圖6a示出了根據(jù)本文描述的示例性實施例的突出顯示確認請求分組的有效載荷的通信系統(tǒng),其中,在確認請求分組遍歷該通信系統(tǒng)時反向路徑和前向路徑相同;
圖6b示出了根據(jù)本文描述的示例性實施例的突出顯示確認請求分組的有效載荷的通信系統(tǒng),其中,在確認請求分組遍歷該通信系統(tǒng)時反向路徑和前向路徑不同;
圖7示出根據(jù)本文描述的示例性實施例的在對稱請求的情況下的示例性確認請求分組;
圖8示出根據(jù)本文描述的示例性實施例的在參與數(shù)據(jù)路徑確認和驗證的源節(jié)點中發(fā)生的示例性操作的流程圖;
圖9示出了根據(jù)本文描述的示例性實施例的在處理分組的節(jié)點中發(fā)生的示例性操作的流程圖;
圖10示出了根據(jù)本文描述的示例性實施例的示例性第一通信設備;以及
圖11示出了根據(jù)本文描述的示例性實施例的示例性第二通信設備。
具體實施方式
下面詳細討論當前示例性實施例的操作及其結構。然而,應當理解,本公開提供了可以在各式具體上下文中體現(xiàn)的多種可應用的發(fā)明概念。所討論的具體實施例僅僅表示本公開的具體結構及操作方式,并非限制本公開的范圍。
本公開的一個實施例涉及數(shù)據(jù)路徑確認和驗證。例如,源節(jié)點接收數(shù)據(jù)路徑確認請求命令,該數(shù)據(jù)路徑確認請求命令用于請求確認與標識于該數(shù)據(jù)路徑確認請求命令中的業(yè)務流相關聯(lián)的路徑,并且根據(jù)被確認的路徑確定第一跳序列,其中,第一跳序列與第二跳序列相同,該第二跳序列與被確認的路徑相關聯(lián)的非確認請求分組相關聯(lián)。源節(jié)點還根據(jù)數(shù)據(jù)路徑確認請求命令生成確認請求分組,該確認請求分組包括與第一跳序列相關聯(lián)的路由信息、設置為指定值的告警標識、以及路徑確認報頭,該路徑確認報頭指定由接收確認請求分組的節(jié)點執(zhí)行的處理,并且根據(jù)路由信息發(fā)送確認請求分組。
參考具體上下文中的示例性實施例來描述本公開,即,使用基于索引的源路由以在源節(jié)點和目的節(jié)點之間路由分組的軟件定義網(wǎng)絡(softwaredefinednetworks,sdn)來描述本公開。本公開可以應用于標準兼容通信系統(tǒng)和非標準兼容通信系統(tǒng),其使用基于索引的源路由在源節(jié)點和目的節(jié)點之間進行路由分組。
圖1示出了示例性通信系統(tǒng)100。通信系統(tǒng)100可以包括多個節(jié)點,諸如節(jié)點105、節(jié)點107、節(jié)點109、節(jié)點111、節(jié)點113、節(jié)點115、節(jié)點117、節(jié)點119等。通信系統(tǒng)100中的節(jié)點可以具有有線和/或無線互連方式。作為說明性示例,節(jié)點105可以以有線互連方式連接到節(jié)點107和節(jié)點109,而節(jié)點109可以以無線互連方式連接到節(jié)點115。一些節(jié)點可以具有有線互聯(lián)方式和無線互連方式。作為說明性示例,節(jié)點119無線地連接到節(jié)點115,而節(jié)點109有線地連接到節(jié)點119。應當理解,雖然通信系統(tǒng)可以使用大量節(jié)點,但是為了簡單,僅示出相對少量的節(jié)點。
在基于索引的源路由中,分組的源節(jié)點生成分組的路由。換句話說,分組的源節(jié)點指定分組的數(shù)據(jù)路徑??梢酝ㄟ^指定當分組從源節(jié)點移動到目的節(jié)點時采用的鏈路序列(或等效跳)來指定分組的數(shù)據(jù)路徑。作為說明性示例,第一跳可以指定從源節(jié)點到第一中間節(jié)點的鏈路,第二跳可以指定從第一中間節(jié)點到第二中間節(jié)點的鏈路,以此類推,直到第n跳,其可以指定從第n中間節(jié)點到目的節(jié)點的鏈路。
圖2示出了在基于索引的源路由通信系統(tǒng)中使用的示例性分組200。分組200包括分組報頭,該分組報頭包括下一跳索引字段205,總跳數(shù)字段210和跳大小字段215。分組200還包括n個跳字段(例如:跳1字段220、跳2字段222和跳n字段224)和有效載荷字段230。下一跳索引字段205可以存儲用作分組200的下一跳指針的值??偺嫈?shù)字段210可以存儲指示分組200的總跳數(shù)的值。跳大小字段215可以存儲指示每個單獨跳大小的值。跳字段(例如:跳1字段220、跳2字段222和跳n字段224)可以存儲指示分組200在離開節(jié)點時要使用的鏈路(或跳)的值。有效載荷字段230可以存儲分組200的數(shù)據(jù)和/或控制信息。
圖3示出了通信系統(tǒng)300,其突出顯示了從源節(jié)點到目的節(jié)點的分組的路徑。圖3示出了通信系統(tǒng)300的源路由網(wǎng)絡部分。通信系統(tǒng)300可以包括其他類型的網(wǎng)絡,包括因特網(wǎng)協(xié)議(internetprotocol,ip)網(wǎng)絡。分組305到達源路由網(wǎng)絡并且從源節(jié)點310被發(fā)送到目的節(jié)點315。在目的節(jié)點315,分組305可以退出源路由網(wǎng)絡。源節(jié)點310和目的節(jié)點315可以被認為是源路由網(wǎng)絡內(nèi)的分組305的源節(jié)點和目的節(jié)點。分組305可以有其自身的源節(jié)點和目的節(jié)點,并且源節(jié)點310和目的節(jié)點315可以是通信系統(tǒng)300的源路由網(wǎng)絡部分內(nèi)的分組305的源節(jié)點和目的節(jié)點??商鎿Q地,分組305實際上可以源自源節(jié)點310且結束于目的節(jié)點315。在這種情況下,在源節(jié)點310和目的節(jié)點315處可能沒有箭頭以指示分組305的入口和出口。
由于使用基于索引的源路由,源節(jié)點310指定分組305的數(shù)據(jù)路徑,該路徑包括中間節(jié)點316、中間節(jié)點317、中間節(jié)點318和中間節(jié)點319,例如,在該路徑結束于目的節(jié)點315之前。在一個說明性示例中,源節(jié)點310可以利用路徑確定引擎或表來確定到目的節(jié)點315的數(shù)據(jù)路徑(或路徑序列)。在sdn網(wǎng)絡中,路徑確定引擎或表可以將路徑信息提供給sdn控制器,該sdn控制器可以將路徑信息傳送到源節(jié)點。
突出顯示320提供分組305在離開源節(jié)點310并朝向中間節(jié)點316前進時的詳細視圖。分組305的突出顯示320中的下一跳索引字段322可以保存指示分組305在中間節(jié)點316處跳的值。突出顯示330提供分組305離開中間節(jié)點316時的詳細視圖。分組305的突出顯示330中下一跳索引字段332可以保存指示分組305在中間節(jié)點317處的跳的值。突出顯示340提供分組305離開中間節(jié)點317時的詳細視圖。分組305的突出顯示340中下一跳索引字段342可以保存指示分組305在中間節(jié)點318處的跳的值。突出顯示350提供在分組305離開中間節(jié)點318時的詳細視圖。分組305的突出顯示350中下一跳索引字段352可以保存指示分組305在中間節(jié)點319處的跳的值。突出顯示360提供在分組305離開中間節(jié)點319時的詳細視圖。分組305的突出顯示360中下一跳索引字段362可以保存大于從源節(jié)點310到目的節(jié)點315的數(shù)據(jù)路徑中的跳數(shù)的值。目的節(jié)點315在接收到分組305時可以檢測跳索引362的值為6,其大于跳數(shù)。因此,目的節(jié)點315能夠確定其是分組305的目的地(至少在通信系統(tǒng)300的源路由網(wǎng)絡部分中)。
如前所述,驗證和/或確認源節(jié)點和目的節(jié)點之間的數(shù)據(jù)路徑可能是有好處的。通常,對分組流執(zhí)行數(shù)據(jù)路徑驗證和/或確認。在源節(jié)點和目的節(jié)點之間驗證數(shù)據(jù)路徑的對稱性(即,在前向路徑(從源到目的)和反向路徑(從目的到源)中的跳,這兩種路徑穿過相同的節(jié)點集合,但順序相反)也是有好處的。
根據(jù)示例性實施例,告警標識或指示符被添加到用于滿足路徑確認請求的分組中。告警標識或指示符可以被添加到分組的分組報頭部分。告警標識或指示符可以被添加到分組的分組報頭部分的跳大小字段。或者,告警標識或指示符可以被添加到分組的分組報頭部分的任何一個字段?;蛘撸婢瘶俗R或指示符可作為單獨字段被添加到分組的分組報頭部分。本領域技術人員將理解,在一些情況下,可以設置正在通過網(wǎng)絡發(fā)送的數(shù)據(jù)分組上的告警標識,使分組可以被用來處理路徑確認請求。在這種情況下,通過確保選擇正確的數(shù)據(jù)分組來確定路由。諸如數(shù)據(jù)分組長度之類的因素可能與數(shù)據(jù)分組的選擇有關。接收雙用途分組的節(jié)點可能需要修改它們處理分組的方式,并且可能也需要解決諸如延遲之類的問題。
根據(jù)示例性實施例,告警標識或指示符是具有第一值和第二值的二值(二進制)指示符,其中,第一值(或第二值)指示分組用于滿足路徑確認請求,第二值(或第一值)指示分組不用于滿足路徑確認請求。根據(jù)另一示例性實施例,告警標識或指示符是可以采用多于2個值的多比特指示符。在這種情況下,多比特告警標識或指示符可以與路徑確認報頭(以下詳細討論)結合使用以改善接收具有多比特告警標識或指示符的分組的節(jié)點執(zhí)行的操作。此外,當與路徑確認報頭結合使用時,多比特告警標識或指示符甚至可以指定執(zhí)行操作的節(jié)點類型或哪些節(jié)點類型執(zhí)行哪種操作等。作為說明性示例,可以分配多個比特用作多比特指示符。多比特中的一個比特,例如第一比特,可以用作簡單的告警,以使節(jié)點知道節(jié)點要檢查分組。多個比特中的其他比特可以用于指示所需的操作。請注意,用作告警的比特可以總是被設置為開(或1)以進行分組確認,而其他比特可以被設置為開(或1)值以指示所需的操作。作為又一說明性示例,考慮包括8比特長的多比特告警標識的示例性分組:b1b2b384b5b6b7,其中,b1用作告警標識,b6指示需要的路徑對稱性。因此,比特可以被設置為10000100。中間節(jié)點可以忽略b6,但是當分組到達目的節(jié)點時,其檢查b6,并且由于其被設置,目的節(jié)點簡單地使跳序列反向,而不是生成其自己的反向路徑。節(jié)點可以檢查所請求操作的路徑驗證(pathvalidation,pv)報頭。作為另一說明性示例,b5可以向所有節(jié)點指示無操作(nooperation,no-op)。這種情況可以包括反向路徑中的節(jié)點不需要執(zhí)行任何操作的場景。
根據(jù)示例性實施例,將路徑確認報頭添加到用于滿足路徑確認請求的分組中。路徑確認報頭可以被添加到分組的非分組報頭部分。路徑確認報頭可以跟隨分組的分組報頭部分。路徑確認報頭可以引導或跟隨分組的有效載荷部分。路徑確認報頭可以包括由確認請求進行請求的信息類型的指示。路徑確認報頭可以包括過程的指示,例如動作類型和/或分組的數(shù)據(jù)路徑中的節(jié)點要執(zhí)行的操作。路徑確認報頭可以包括分組的數(shù)據(jù)路徑中的節(jié)點要執(zhí)行的指令。
圖4示出了示例性確認請求分組400。確認請求分組400包括分組報頭,該分組報頭包括下一跳索引字段405、總跳數(shù)字段410、告警標識415和跳大小字段420。下一跳索引字段405、總跳數(shù)字段410、告警標識415和跳大小字段420共同形成確認請求分組400的分組報頭。請注意,分組報頭在格式上與圖2的分組200的分組報頭相似。確認請求分組400還包括n個跳字段(諸如跳1字段425、跳2字段427和跳n字段429)以及路徑確認報頭(pv報頭)字段435。在一些實施例中,分組400還可以包括有效載荷字段。需要注意的是,n個跳字段包含與通過數(shù)據(jù)路徑確認請求命令被確認的業(yè)務流的普通分組相同的跳。下一跳索引字段405可以存儲用作分組400的下一跳指針的值??偺鴶?shù)字段410可以存儲指示分組400的總跳數(shù)的值。告警標識415可以用作指示符,其指示該分組400是確認請求分組。跳大小字段420可以存儲指示每個單獨跳大小的值。如圖4所示,告警標識415是跳大小字段420的一部分。跳字段(諸如跳1字段425、跳2字段427和跳n字段429)可以存儲指示分組400在它離開節(jié)點時采用的鏈路(或跳)的值。pv報頭435可以包括分組400正在請求的信息類型、指令、操作等的指示。
pv報頭435可以具有接收分組400的節(jié)點要執(zhí)行的默認處理,其中,如果pv報頭435沒有明確地指定處理,則接收分組400的節(jié)點將執(zhí)行默認處理。在這種情況下,pv標頭435可以被說成是隱式地指定默認處理。作為說明性示例,如果pv標頭435沒有明確地指定處理,則無操作(noop)就是節(jié)點將執(zhí)行的默認處理。pv報頭435可以為接收分組400的所有節(jié)點指定相同的處理。換句話說,每個節(jié)點執(zhí)行相同的處理。pv報頭435可以為接收分組400的不同節(jié)點指定不同的處理。也即,根據(jù)在pv報頭435中指定的內(nèi)容,不同的節(jié)點可以執(zhí)行不同的處理。
如上所述,分組400還可以包括可以用于存儲分組400的數(shù)據(jù)和/或控制信息的有效載荷字段440。有效載荷字段440還可以存儲節(jié)點在它們接收分組400以及執(zhí)行如在pv報頭字段435中所指定的過程(諸如指令、動作類型、操作等)的結果。在一些情況下,分組400可以不含有效載荷字段440。作為說明性示例,當接收分組400的節(jié)點將執(zhí)行noop時,可能不需要有效載荷字段440。分組400可以用作連續(xù)性檢查,即,例如檢查在分組400中指定的路徑是否上行并且支持業(yè)務。換句話說,分組400可以被加入到源路由網(wǎng)絡中,并且當接收到響應時,在分組400中指定的路徑被認為是上行并且可支持業(yè)務。
根據(jù)示例性實施例,告警標識是二值指示符。告警標識可以使用作為分組報頭中的1比特指示符來實現(xiàn)。雖然在圖4中所示的告警標識為分組報頭跳大小字段420的一部分,但是告警標識可以是分組報頭任何其他字段的一部分?;蛘撸婢瘶俗R可以是分組報頭中的單獨字段。因此,告警標識作為跳大小字段一部分的討論和圖示不應被解釋為限制示例性實施例的范圍或精神。
圖5示出了通信系統(tǒng)500,其突出顯示確認請求分組的路徑。響應于接收到的指定要被驗證和/或確認的特定業(yè)務流的數(shù)據(jù)路徑確認請求命令,確認請求分組505可以由源節(jié)點510加入到通信系統(tǒng)500中。從在數(shù)據(jù)路徑確認請求命令中指定的業(yè)務流中,可為確認請求分組505確定跳序列,其與業(yè)務流的分組的跳序列相同。確認請求分組505可以被發(fā)往目的節(jié)點515。突出顯示520示出當確認請求分組505被源節(jié)點510加入通信系統(tǒng)500時的詳細視圖。突出顯示520可以包括添加了告警標識522和pv報頭524的典型的基于索引的源路由分組字段(如圖2中分組200的說明性結構)。
如前所述,當確認請求分組505遍歷去往目的節(jié)點的路徑上的節(jié)點時,其遍歷的節(jié)點檢測到告警標識522被設置。在檢測到告警標識522被設置時,節(jié)點檢查pv報頭524以確定它們要執(zhí)行的過程(諸如動作類型、指令、操作等)。在完成這些過程(諸如動作類型、指令、操作等)之后,節(jié)點將結果存儲在確認請求分組505的有效載荷中。
目的節(jié)點515在接收到確認請求分組505(詳細地示為突出顯示530)時也執(zhí)行例如動作類型、指令、操作等的過程,并將結果存儲在有效載荷中。目的節(jié)點515還知道它是確認請求分組505的目的地,生成確認請求分組505的反向路徑(在突出顯示540的框542中示出了示例性反向路徑),并且重置存儲在下一跳索引字段中的值。根據(jù)示例性實施例,通過反轉(zhuǎn)存儲在確認請求分組505中的鏈路(跳)的序列來生成反向路徑。根據(jù)示例性實施例,目的節(jié)點515可以訪問路徑確定引擎(或表)以確定用于確認請求分組505的反向路徑。在這種情況下,反向路徑可以不同于將存儲在確認請求分組505中的跳序列進行反轉(zhuǎn)的結果。
為了清楚起見,與確認請求分組505相對應的確認請求分組可以被稱為確認響應分組。確認響應分組可以與由目的節(jié)點515接收的確認請求分組505相同,除了新生成的反向路徑和下一跳索引中的改變(以及一些潛在的總跳數(shù)和跳大小字段的改變,當反向路徑不同于包括在確認請求分組505中的跳序列時)。目的節(jié)點515可以將確認響應分組(顯示為突出顯示540)發(fā)回到源節(jié)點505。由確認響應分組遍歷的節(jié)點檢查pv報頭,以確定它們將要執(zhí)行的過程,例如動作類型、指令、操作等。在完成這些過程(例如動作類型、指令、操作等)之后,節(jié)點將結果存儲在確認響應分組的有效載荷中。根據(jù)示例性實施例,目的節(jié)點515包括確認響應分組中的指示,其指示中間節(jié)點不采取動作。在這種情況下,接收確認響應分組的中間節(jié)點根據(jù)包括在其中的路由信息簡單地轉(zhuǎn)發(fā)確認響應分組。
圖6a示出了通信系統(tǒng)600,其突出顯示確認請求分組的有效載荷,其中,當確認請求分組通過通信系統(tǒng)600時,反向路徑和前向路徑相同(但反向)。源節(jié)點將確認請求分組加入到通信系統(tǒng)600中,并且去往目的節(jié)點610。當確認請求分組加入到通信系統(tǒng)600中時,源節(jié)點605將過程,例如動作類型、指令、操作等(如在確認請求分組中的pv報頭中指定的)完成的結果,加入到有效載荷中。作為說明性示例,考慮這樣一種情況,其中例如動作類型、指令、操作等過程為用于節(jié)點將用于發(fā)送確認請求分組的鏈路插入有效載荷中的指令(如框620所示)。隨著確認請求分組朝向目的節(jié)點610前進,每個節(jié)點將用于發(fā)送確認請求分組的鏈路插入到有效載荷中(示為框625、框630、框635和框640)???45、框650、框655、框660和框665示出了在確認請求分組返回到源節(jié)點605時其有效載荷的內(nèi)容。由于確認請求分組的反向路徑和前向路徑相同(但是反向),所以確認請求分組的有效載荷包括確認請求分組遍歷的鏈路的對稱列表。
圖6b示出了通信系統(tǒng)670,其突出顯示確認請求分組的有效載荷,當確認請求分組通過通信系統(tǒng)670時,其反向路徑不同于前向路徑。確認請求分組由源節(jié)點675加入到通信系統(tǒng)670中,并且去往目的節(jié)點680。當確認請求分組加入到通信系統(tǒng)670中時,源節(jié)點675將過程,例如動作類型、指令、操作等(如在確認請求分組中的pv報頭中所指定的)完成的結果加入有效載荷中。作為說明性示例,考慮這樣一種情況,其中,例如動作類型、指令、操作等過程為用于節(jié)點將用于發(fā)送確認請求分組的鏈路插入有效載荷中的指令(如框682所示)。當確認請求分組朝向目的節(jié)點680前進時,每個節(jié)點將用于發(fā)送確認請求分組的鏈路插入到有效載荷中(示為框683、框684、框685和框686)。目的節(jié)點680可以不依賴于由確認請求分組提供的跳序列。替代地,目的節(jié)點680可針對返回到源節(jié)點675的返回路徑中新的一組跳來查詢控制器、路由查找表等。框687、框688、框689、框690、以及框691示出了在確認請求分組返回到源節(jié)點675時其有效載荷的內(nèi)容。由于確認請求分組的反向路徑和前向路徑不同,所以確認請求分組的有效載荷包括確認請求分組遍歷鏈路的非對稱列表。
圖7示出了在對稱請求的情況下的示例性確認請求分組。圖7中所示的確認請求分組表示單個確認請求分組的兩個階段。確認請求分組705表示確認請求分組的第一階段,因為其遍歷從源節(jié)點到目的節(jié)點的路徑上的節(jié)點,確認響應分組710表示確認請求分組的第二階段,因為其遍歷從目的節(jié)點回到源節(jié)點的路徑上的節(jié)點。除了與分組報頭和跳字段中反向路徑相關的信息之外,確認響應分組710可以具有與確認請求分組705相似的外觀。
圖8示出了在參與數(shù)據(jù)路徑確認和驗證的源節(jié)點中發(fā)生的示例性操作800的流程圖。操作800可以指示在作為源節(jié)點參與數(shù)據(jù)路徑確認和驗證的源節(jié)點(例如源節(jié)點510、源節(jié)點605等)中發(fā)生的操作。
操作800可以開始于源節(jié)點接收數(shù)據(jù)路徑確認請求(框805)。源節(jié)點可以從操作員出接收數(shù)據(jù)路徑確認請求命令,該操作員正在使用源節(jié)點的命令行接口或軟件定義網(wǎng)絡控制器的管理控制臺下發(fā)數(shù)據(jù)路徑確認請求命令。數(shù)據(jù)路徑確認請求命令可以用于驗證與進入源路由域的源節(jié)點的業(yè)務流相關聯(lián)的數(shù)據(jù)路徑。數(shù)據(jù)路徑確認請求命令可以指定關于業(yè)務流的信息(即,業(yè)務流信息),這有助于識別業(yè)務流。例如,業(yè)務流信息可以以業(yè)務流標識的形式表示。
作為業(yè)務流信息的另一說明性示例,考慮其中,基于索引的源路由區(qū)域被常規(guī)ip網(wǎng)絡包圍的情況。在這種情況下,業(yè)務流可以包括具有目的地址x.y.z.w.的分組。當具有目的地址(x.y.z.w)的ip分組遇到基于索引的源路由網(wǎng)絡的初始邊緣時,對應的交換機可以基于其從sdn控制器接收的信息插入源路由報頭和跳序列,然后將分組朝向基于索引的源路由網(wǎng)絡的終止邊緣發(fā)送。在終止邊緣,終止源路由節(jié)點可以消除所有源路由報頭和跳序列,從而允許正常的ip處理執(zhí)行任何剩余路由以使分組達到目的地址。假設操作者希望驗證基于索引的源路由網(wǎng)絡中的業(yè)務流分組路徑并要求每個節(jié)點識別出局鏈路,則初始邊緣節(jié)點處的示例性命令可以表示為:
sourcerouteverifyx.y.z.waction:recordoutboundlink.
在這樣的示例性命令中,目的地址(x.y.z.w)可以用作業(yè)務流信息以識別分組流。
數(shù)據(jù)路徑確認請求命令還可以指定節(jié)點應該執(zhí)行的過程,例如動作類型、指令、操作等,并且將其結果插入到與數(shù)據(jù)路徑確認請求命令相關聯(lián)的確認請求分組的有效載荷中。
源節(jié)點可以生成確認請求分組(框810)。確認請求分組可以具有類似于圖4所示的格式或先前討論的其變化的格式。生成確認請求分組可以包括源節(jié)點根據(jù)業(yè)務流信息確定路由和路由信息并且在確認請求分組中生成(例如:放置信息)。作為說明性示例,源節(jié)點可以使用與業(yè)務流相關聯(lián)的路徑(由數(shù)據(jù)路徑確認請求命令中指定的業(yè)務流信息標識)來確定路由和路由信息,并且將路由信息(例如:跳數(shù)、跳大小、跳等)插入確認請求分組中。源節(jié)點可以設置告警標識并且在確認請求分組的pv報頭中包括例如動作類型、指令、操作等過程。
源節(jié)點可以處理確認請求分組(框815)。換句話說,源節(jié)點可以執(zhí)行任何包括在確認請求分組的pv報頭中的過程,諸如動作類型、指令、操作等,并將結果插入到確認請求分組的有效載荷中。源節(jié)點還可以更新確認請求分組的下一跳索引。源節(jié)點可以加入確認請求分組(框820)。源節(jié)點可以接收與確認請求分組相對應的確認響應分組(框825)。確認響應分組可以是已經(jīng)由確認請求分組的目的節(jié)點修改的確認請求分組的版本,其可以包括用于回到源節(jié)點的確認響應分組的反向路徑(以及任何相關聯(lián)的路由信息改變),還包括由確認請求分組遍歷的節(jié)點形成的包括在有效載荷中的信息以及由確認響應分組遍歷的節(jié)點形成的包括在有效載荷中的潛在信息。源節(jié)點可以處理確認響應分組(框830)。確認響應分組的處理可以包括處理有效載荷以分析由確認請求分組和/或確認響應分組遍歷的節(jié)點插入的信息、驗證數(shù)據(jù)路徑、驗證路徑對稱性等。
圖9示出了在正在處理分組的節(jié)點中發(fā)生的示例性操作900的流程圖。操作900可以指示在節(jié)點處理分組時發(fā)生在諸如中間節(jié)點或目的節(jié)點(例如目的節(jié)點515和610)中的操作。
操作900可以開始于節(jié)點接收分組(框905)。該分組可以是確認請求分組。如前所述,確認請求分組可以通過將告警標識設置為指定值來指示。節(jié)點可以檢查確認請求分組的pv報頭,執(zhí)行在pv報頭中指定的過程,例如動作類型、指令、操作等,并將結果保存到確認請求分組的有效載荷中(框910)。
節(jié)點可以執(zhí)行檢查以確定它是否為分組的最后一跳(框915)。作為說明性示例,節(jié)點可以核對分組中的下一跳索引和跳數(shù)值,并且如果下一跳索引大于跳數(shù)值,則節(jié)點可以確定它是分組的最后一跳。如果節(jié)點是分組的最后一跳,則節(jié)點可以識別用于確認請求分組的反向路徑,并且重置下一跳索引(框920),并在指定的鏈路上發(fā)送確認請求分組(框925)。如前所述,識別反向路徑可以包括反轉(zhuǎn)存儲在確認請求分組中的跳或使用路徑確定引擎或表來識別從確認請求分組的節(jié)點返回到源節(jié)點的路由。識別反向路徑還可以包括節(jié)點生成用于反向路徑的路由信息,諸如下一跳索引、跳數(shù)、跳大小、跳等。如果節(jié)點不是分組的最后一跳,則節(jié)點可以在指定的鏈路上發(fā)送分組(框925)。
圖10示出了示例性第一通信設備1000。通信設備1000可以作為源節(jié)點的實現(xiàn)。通信設備1000可以用于實現(xiàn)本文所討論的各種實施例。如圖10所示,發(fā)送器1005用于發(fā)送分組、確認請求分組等。通信設備1000還包括用于接收分組、確認請求分組等的接收器1010。
請求處理單元1020用于接收數(shù)據(jù)路徑確認請求。數(shù)據(jù)路徑確認請求可以來自正在使用源節(jié)點的命令行界面或軟件定義網(wǎng)絡控制器的管理控制臺的操作員下發(fā)的用于特定業(yè)務流的數(shù)據(jù)路徑確認請求命令。請求處理單元1020用于處理數(shù)據(jù)路徑確認請求。分組生成單元1022用于從數(shù)據(jù)路徑確認請求生成確認請求分組。分組生成單元1022用于將告警標識設置為指定值,以指示該分組為確認請求分組。分組生成單元1022用于在pv報頭中放置例如動作類型、指令、操作等的過程。分組生成單元1022用于在確認請求分組的剩余部分中放置值,諸如跳數(shù)、跳索引、跳、跳大小、有效載荷等。確認單元1024用于處理接收到的分組,諸如接收到的與由通信設備1000發(fā)送的確認請求分組相對應的確認響應分組。確認單元1024用于處理存儲在所接收的確認響應分組的有效載荷中的信息,以驗證和/或確認數(shù)據(jù)路徑、驗證數(shù)據(jù)路徑對稱性等。分組處理單元1026用于處理確認請求分組和確認響應分組。分組處理單元1026用于檢查pv報頭,執(zhí)行在pv報頭中指定的過程,例如動作類型、指令、操作等,并且將結果保存到分組的有效載荷中。分組處理單元1026用于更新諸如跳索引等的信息以執(zhí)行源路由。存儲器1030用于存儲分組、數(shù)據(jù)路徑確認請求、確認請求分組、接收到的確認請求分組、存儲在有效載荷中的結果等。
通信設備1000的組件可以被實現(xiàn)為特定的硬件邏輯塊。在替代方案中,通信設備1000的組件可以被實現(xiàn)為在處理器、控制器、專用集成電路等中執(zhí)行的軟件。在又一替代中,通信設備1000的組件可以實現(xiàn)為軟件和/或硬件的組合。
作為示例,接收器1010和發(fā)送器1005可以被實現(xiàn)為特定的硬件塊,而請求處理單元1020、分組生成單元1022、確認單元1024和分組處理單元1026可以是在微處理器(如處理器1015)中執(zhí)行的軟件模塊或現(xiàn)場可編程邏輯陣列的定制電路或定制編譯邏輯陣列。請求處理單元1020、分組生成單元1022、確認單元1024和分組處理單元1026可以是存儲在存儲器1030中的模塊。
圖11示出了示例性第二通信設備1100。通信設備1100可以作為源節(jié)點的實現(xiàn)。通信設備1100可以用于實現(xiàn)本文所討論的各種實施例。如圖11所示,發(fā)送器1105用于發(fā)送分組、確認請求分組等。通信設備1100還包括用于接收分組、確認請求分組等的接收器1110。
分組處理單元1120用于處理接收的分組。分組處理單元1120用于確定所接收的分組是否為確認請求分組。分組處理單元1120用于執(zhí)行包含在確認請求分組的pv報頭中的過程,例如動作類型、指令、操作等。分組處理單元1120用于在確認請求分組的有效載荷中存儲執(zhí)行過程的結果,例如動作類型、指令、操作等。分組處理單元1120用于確定所接收的分組是否發(fā)往通信設備1100。路徑反向單元1122用于如果通信設備1100是確認請求分組的預期目的地,則反轉(zhuǎn)存儲在確認請求分組中的跳的順序。路徑反向單元1122用于:如果通信設備1100是確認請求分組的預期目的地,則使用路徑確定引擎或表來識別用于確認請求分組返回其源節(jié)點的路由(此處稱為確認響應分組)。跳重置單元1124用于:如果通信設備1100是確認請求分組的預期目的地,則重置確認請求分組中的下一跳索引。存儲器1130用于存儲分組、確認請求分組、接收到的確認請求分組,存儲在有效載荷中的結果等。
通信設備1100的組件可以被實現(xiàn)為特定的硬件邏輯塊。在替代方案中,通信設備1100的組件可以被實現(xiàn)為在處理器、控制器、專用集成電路等中執(zhí)行的軟件。在又一替代中,通信設備1100的組件可以實現(xiàn)為軟件和/或硬件的組合。
作為示例,接收器1110和發(fā)送器1105可以被實現(xiàn)為特定的硬件塊,而分組處理單元1120、路徑反轉(zhuǎn)單元1122和跳重置單元1124可以是在微處理器(如處理器1115)中執(zhí)行的軟件模塊或者定制電路或現(xiàn)場可編程邏輯陣列的定制編譯邏輯陣列。分組處理單元1120、路徑反向單元1122和跳重置單元1124可以是存儲在存儲器1130中的模塊。
雖然已經(jīng)詳細描述了本公開及其優(yōu)點,但是應當理解的是,在不偏離所附權利要求所限定的本公開的精神和范圍的情況下,可以做出多種改變、替換和變更。