本申請涉及通信領(lǐng)域,尤其涉及一種在檢測路徑的方法和裝置。
背景技術(shù):
在通信網(wǎng)絡(luò)中,一般采用路由跟蹤(英文:traceroute)路徑檢測方法來檢測一條路徑上的延時或者故障情況。該路徑是由至少兩個節(jié)點(diǎn)構(gòu)成的路徑。例如,該條路徑包括首節(jié)點(diǎn)、中間節(jié)點(diǎn)和尾節(jié)點(diǎn)。其中,首節(jié)點(diǎn)(英文:ingress)分別依次向中間節(jié)點(diǎn)、尾節(jié)點(diǎn)發(fā)送用于traceroute路徑檢測的請求報(bào)文,接收到該請求報(bào)文的中間節(jié)點(diǎn)(也可以稱為轉(zhuǎn)發(fā)節(jié)點(diǎn))或者尾節(jié)點(diǎn)(英文:egress)會向首節(jié)點(diǎn)反饋應(yīng)答報(bào)文,首節(jié)點(diǎn)根據(jù)各個節(jié)點(diǎn)反饋的應(yīng)答報(bào)文來確定延時和/或節(jié)點(diǎn)之間的鏈路是否正常。
在報(bào)文中攜帶多層標(biāo)簽、進(jìn)行標(biāo)簽轉(zhuǎn)發(fā)的網(wǎng)絡(luò)中,首節(jié)點(diǎn)發(fā)送檢測報(bào)文時,會將一條標(biāo)簽轉(zhuǎn)發(fā)路徑上的全部標(biāo)簽(即標(biāo)簽棧)都封裝到該報(bào)文中。此時,當(dāng)所述首節(jié)點(diǎn)對這條標(biāo)簽轉(zhuǎn)發(fā)路徑發(fā)起traceroute檢測時,首節(jié)點(diǎn)分別依次向這條標(biāo)簽轉(zhuǎn)發(fā)路徑上的中間節(jié)點(diǎn)、尾節(jié)點(diǎn)發(fā)送traceroute路徑檢測的請求報(bào)文,所述路徑檢測請求報(bào)文封裝了所述標(biāo)簽轉(zhuǎn)發(fā)路徑上的全部標(biāo)簽。中間節(jié)點(diǎn)在收到首節(jié)點(diǎn)發(fā)來的所述路徑檢測請求報(bào)文后,反饋的應(yīng)答報(bào)文會繼續(xù)根據(jù)標(biāo)簽棧中的標(biāo)簽走完標(biāo)簽轉(zhuǎn)發(fā)路徑,一直到達(dá)尾節(jié)點(diǎn)后再通過ip路由回到首節(jié)點(diǎn),而不能直接由中間節(jié)點(diǎn)走ip路由回到首節(jié)點(diǎn)。從而導(dǎo)致檢測路徑的時延或者故障情況不準(zhǔn)確。
技術(shù)實(shí)現(xiàn)要素:
本申請?zhí)峁┝艘环N檢測路徑的方法和裝置,以提高檢測路徑的時延或故障情況的準(zhǔn)確性。
第一方面,本申請?zhí)峁┝艘环N檢測路徑的方法,該方法可應(yīng)用于至少兩層mpls標(biāo)簽轉(zhuǎn)發(fā)的技術(shù)場景,具體地,所述方法包括:第一網(wǎng)絡(luò)設(shè)備生成用于路徑檢測的第一請求報(bào)文,所述第一請求報(bào)文中包括標(biāo)簽棧和ttl,且所述mpls標(biāo)簽棧的初始層數(shù)與ttl的初始值相匹配,所述ttl的初始值等于在待檢測路徑上從所述第一網(wǎng)絡(luò)設(shè)備到第二網(wǎng)絡(luò)設(shè)備之間的跳數(shù);
所述第一網(wǎng)絡(luò)設(shè)備向第二網(wǎng)絡(luò)設(shè)備發(fā)送所述第一請求報(bào)文,所述第一請求報(bào)文用于指示所述第二網(wǎng)絡(luò)設(shè)備在接收到所述第一請求報(bào)文,且所述第一請求報(bào)文中所攜帶的ttl的值減1為0的情況下,即ttl超時時,向所述第一網(wǎng)絡(luò)設(shè)備發(fā)送第一應(yīng)答報(bào)文,所述第一應(yīng)答報(bào)文通過互聯(lián)網(wǎng)協(xié)議ip路由到達(dá)所述第一網(wǎng)絡(luò)設(shè)備。
本方面提供的方法,第一網(wǎng)絡(luò)設(shè)備通過配置標(biāo)簽棧的初始層數(shù)與ttl的初始值相匹配的請求報(bào)文,使得第二網(wǎng)絡(luò)設(shè)備接收到該請求報(bào)文后,確定在ttl減1為0的情況下,直接通過ip路由向第一網(wǎng)絡(luò)設(shè)備反饋應(yīng)答報(bào)文,從而避免了該應(yīng)答報(bào)文繼續(xù)走標(biāo)簽ttl超時流程,到達(dá)尾節(jié)點(diǎn)后再通過ip路由反饋給第一網(wǎng)絡(luò)設(shè)備,由于該應(yīng)答報(bào)文無需再走ttl超時流程,因此減少了鏈路檢測的時延,提高了對鏈路時延檢測的準(zhǔn)確性。
結(jié)合第一方面,在第一方面的一種實(shí)現(xiàn)方式中,所述標(biāo)簽棧的初始層數(shù)與所述ttl的初始值相匹配包括兩種匹配關(guān)系,一種是,在不使用倒數(shù)第二跳彈出的標(biāo)簽棧處理機(jī)制的情況下,所述標(biāo)簽棧的初始層數(shù)與所述ttl的初始值相同;另一種是,在使用倒數(shù)第二跳彈出的標(biāo)簽棧處理機(jī)制的情況下,所述標(biāo)簽棧的初始層數(shù)比ttl的初始值少1,其中,所述標(biāo)簽棧的初始層數(shù)和所述ttl的初始值可以是通過所述第一請求報(bào)文頭里的兩個字段攜帶。
進(jìn)一步地,在所述標(biāo)簽棧的初始層數(shù)與ttl的初始值相匹配的關(guān)系中,在第一網(wǎng)絡(luò)設(shè)備與第二網(wǎng)絡(luò)設(shè)備之間是直接相連接的情況下,采用倒數(shù)第二跳彈出標(biāo)簽棧的處理機(jī)制下,配置的標(biāo)簽棧的初始層數(shù)是0,ttl的初始值是1;另一方面,在不采用倒數(shù)第二跳彈出標(biāo)簽棧的處理機(jī)制下,所述第一請求報(bào)文中標(biāo)簽棧的初始層數(shù)至少是1層,對應(yīng)的,ttl的初始值比所述標(biāo)簽棧的初始層數(shù)多1。
采用本實(shí)現(xiàn)方式,在采用倒數(shù)第二跳彈出標(biāo)簽棧標(biāo)簽的機(jī)制下,當(dāng)?shù)谝徽埱髨?bào)文經(jīng)過倒數(shù)第二跳節(jié)點(diǎn)轉(zhuǎn)發(fā)到達(dá)目標(biāo)的第二網(wǎng)絡(luò)設(shè)備時,第二網(wǎng)絡(luò)設(shè)備只需要查詢一次其預(yù)存轉(zhuǎn)發(fā)表就可以確定并轉(zhuǎn)發(fā)第一應(yīng)答報(bào)文給第一網(wǎng)絡(luò)設(shè)備,從而避免了在第一請求報(bào)文到達(dá)最后一跳的第二網(wǎng)絡(luò)設(shè)備時,由于還攜帶有標(biāo)簽,導(dǎo)致第二網(wǎng)絡(luò)設(shè)備要先查詢一次轉(zhuǎn)發(fā)表來更換標(biāo)簽,然后再查詢一次轉(zhuǎn)發(fā)表確定目的ip,即需要進(jìn)行兩次查表才能確定并轉(zhuǎn)發(fā)應(yīng)答報(bào)文,本方式中的這種基于倒數(shù)第二跳彈出標(biāo)簽棧的機(jī)制只需要查一次轉(zhuǎn)發(fā)表,進(jìn)而提高了報(bào)文轉(zhuǎn)發(fā)性能。
結(jié)合第一方面,在第一方面的另一種實(shí)現(xiàn)方式中,第一網(wǎng)絡(luò)設(shè)備生成用于路徑檢測的第一請求報(bào)文的過程具體包括:所述第一網(wǎng)絡(luò)設(shè)備獲取關(guān)鍵字信息,例如所述關(guān)鍵字信息為ipreply,所述關(guān)鍵字信息用于指示所述第一網(wǎng)絡(luò)設(shè)備在發(fā)起路徑檢測的情況下,封裝的所述標(biāo)簽棧的初始層數(shù)與ttl的初始值相匹配;所述第一網(wǎng)絡(luò)設(shè)備根據(jù)所述關(guān)鍵字信息生成所述第一請求報(bào)文。
結(jié)合第一方面,在第一方面的又一種實(shí)現(xiàn)方式中,所述第一網(wǎng)絡(luò)設(shè)備獲取關(guān)鍵字信息的方式包括如下任意一種:通過命令行預(yù)先配置、通過接收其它控制管理設(shè)備發(fā)送的消息、根據(jù)自身運(yùn)行算法軟件自動生成并配置,以及所述第一網(wǎng)絡(luò)設(shè)備中軟件設(shè)置的默認(rèn)值。其中,所述接收其它控制管理設(shè)備發(fā)送的消息用于指示所述第一網(wǎng)絡(luò)設(shè)備配置所述關(guān)鍵字信息。
結(jié)合第一方面,在第一方面的又一種實(shí)現(xiàn)方式中,上述方法還包括:第一網(wǎng)絡(luò)設(shè)備在預(yù)設(shè)時間內(nèi)檢測是否接收到來自第二網(wǎng)絡(luò)設(shè)備的第一應(yīng)答報(bào)文,如果接收到該第一應(yīng)答報(bào)文,則第一網(wǎng)絡(luò)設(shè)備確定在第一網(wǎng)絡(luò)設(shè)備與第二網(wǎng)絡(luò)設(shè)備之間的鏈路正常;否則,確定第一網(wǎng)絡(luò)設(shè)備與第二網(wǎng)絡(luò)設(shè)備之間的鏈路發(fā)生故障。一般情況下,所述待檢測路徑上包括兩條或兩條以上鏈路組成,這些鏈路組成的待檢測路徑可稱為段路由隧道,簡稱sr隧道。
結(jié)合第一方面,在第一方面的又一種實(shí)現(xiàn)方式中,如果在第一網(wǎng)絡(luò)設(shè)備和第二網(wǎng)絡(luò)設(shè)備之間還包括第三網(wǎng)絡(luò)設(shè)備,第三網(wǎng)絡(luò)設(shè)備作為中間轉(zhuǎn)發(fā)請求報(bào)文的節(jié)點(diǎn),那么上述實(shí)現(xiàn)方式中,所述確定第一網(wǎng)絡(luò)設(shè)備與第二網(wǎng)絡(luò)設(shè)備之間的鏈路發(fā)生故障具體包括:在第一網(wǎng)絡(luò)設(shè)備通過第一應(yīng)答報(bào)文確定第一網(wǎng)絡(luò)設(shè)備和第三網(wǎng)絡(luò)設(shè)備之間的鏈路正常的情況下,確定第三網(wǎng)絡(luò)設(shè)備與第二網(wǎng)絡(luò)設(shè)備之間的鏈路發(fā)生故障。例如第一網(wǎng)絡(luò)設(shè)備在預(yù)設(shè)時間內(nèi)獲取來自第三網(wǎng)絡(luò)設(shè)備的應(yīng)答報(bào)文,但是未接收到來自第二網(wǎng)絡(luò)設(shè)備的應(yīng)答報(bào)文,則能夠確定第三網(wǎng)絡(luò)設(shè)備與第二網(wǎng)絡(luò)設(shè)備之間的鏈路發(fā)生故障。
在本實(shí)現(xiàn)方式中,第二網(wǎng)絡(luò)設(shè)備在獲取到第一請求報(bào)文之后,由于第一請求報(bào)文中攜帶的標(biāo)簽棧的初始層數(shù)與ttl的初始值相匹配,所以第二網(wǎng)絡(luò)設(shè)備會在ttl的值減1為0的情況下直接通過ip路由反饋第一應(yīng)答報(bào)文,避免了該第一應(yīng)答報(bào)文繼續(xù)走標(biāo)簽轉(zhuǎn)發(fā)流程,節(jié)約了轉(zhuǎn)發(fā)報(bào)文的時間。本方法所提供的應(yīng)答報(bào)文反饋機(jī)制,在首節(jié)點(diǎn)第一網(wǎng)絡(luò)設(shè)備控制第一應(yīng)答報(bào)文采用回程直接走ip路由的方式,能夠準(zhǔn)確檢測出鏈路發(fā)生故障之處,提高了鏈路故障檢測的準(zhǔn)確性。
第二方面,本申請還提供了一種檢測路徑的方法,該方法可應(yīng)用于第二網(wǎng)絡(luò)設(shè)備,具體地,該方法包括:在第一網(wǎng)絡(luò)設(shè)備與第二網(wǎng)絡(luò)設(shè)備直接相連接的情況下,所述第二網(wǎng)絡(luò)設(shè)備接收來自所述第一網(wǎng)絡(luò)設(shè)備的第一請求報(bào)文,所述第二網(wǎng)絡(luò)設(shè)備在所述第一請求報(bào)文中的ttl的值減1為0的情況下,生成第一應(yīng)答報(bào)文;并通過ip路由向所述第一網(wǎng)絡(luò)設(shè)備發(fā)送所述第一應(yīng)答報(bào)文。
結(jié)合第二方面,在第二方面的另一種實(shí)現(xiàn)方式中,在第一網(wǎng)絡(luò)設(shè)備與第二網(wǎng)絡(luò)設(shè)備之間還包括第三網(wǎng)絡(luò)設(shè)備的情況下,所述第二網(wǎng)絡(luò)設(shè)備接收所述第三網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)的第一請求報(bào)文,所述第一請求報(bào)文中包括生存時間ttl;所述第二網(wǎng)絡(luò)設(shè)備在所述ttl的值減1為0的情況下,生成第一應(yīng)答報(bào)文;并通過ip路由向所述第一網(wǎng)絡(luò)設(shè)備發(fā)送所述第一應(yīng)答報(bào)文。
其中,所述第一請求報(bào)文表示一類報(bào)文,既包括首節(jié)點(diǎn)生成的請求報(bào)文,也包括中間節(jié)點(diǎn)轉(zhuǎn)發(fā)的請求報(bào)文,例如第一網(wǎng)絡(luò)設(shè)備將生成的請求報(bào)文發(fā)送給中間節(jié)點(diǎn)的第三網(wǎng)絡(luò)設(shè)備,第三網(wǎng)絡(luò)設(shè)備接收并轉(zhuǎn)發(fā)該請求報(bào)文給第二網(wǎng)絡(luò)設(shè)備,在第三網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)的過程中,所述請求報(bào)文中的內(nèi)容,例如標(biāo)簽的層數(shù)和ttl的值均會發(fā)生變化,但也稱為第一請求報(bào)文。
結(jié)合第二方面,在第二方面的另一種實(shí)現(xiàn)方式中,所述第二網(wǎng)絡(luò)設(shè)備在所述ttl的值減1為0,即ttl超時的情況下,通過ip路由向所述第一網(wǎng)絡(luò)設(shè)備發(fā)送所述第一應(yīng)答報(bào)文,包括:所述第二網(wǎng)絡(luò)設(shè)備在所述ttl的值減1為0,且所述第一請求報(bào)文中的目的ip地址與所述第二網(wǎng)絡(luò)設(shè)備的ip地址不同的情況下,所述第二網(wǎng)絡(luò)設(shè)備通過ip路由向所述第一網(wǎng)絡(luò)設(shè)備發(fā)送所述第一應(yīng)答報(bào)文。
結(jié)合第二方面,在第二方面的另一種實(shí)現(xiàn)方式中,所述第二網(wǎng)絡(luò)設(shè)備在ttl的值減1為0的情況下,通過ip路由向所述第一網(wǎng)絡(luò)設(shè)備發(fā)送所述第一應(yīng)答報(bào)文,包括:在所述ttl的值減1為0,所述第一請求報(bào)文中的目的ip地址與所述第二網(wǎng)絡(luò)設(shè)備的ip地址相同,以及,所述第一請求報(bào)文是udp報(bào)文,且所述udp報(bào)文的端口號空閑的情況下,所述第二網(wǎng)絡(luò)設(shè)備通過ip路由向所述第一網(wǎng)絡(luò)設(shè)備發(fā)送端口不可達(dá)應(yīng)答報(bào)文。
結(jié)合第二方面,在第二方面的另一種實(shí)現(xiàn)方式中,所述第二網(wǎng)絡(luò)設(shè)備在所述ttl超時的情況下,通過ip路由向所述第一網(wǎng)絡(luò)設(shè)備發(fā)送所述第一應(yīng)答報(bào)文,包括:在所述ttl的值減1為0,所述第一請求報(bào)文中的目的ip地址與所述第二網(wǎng)絡(luò)設(shè)備的ip地址相同,以及,所述第一請求報(bào)文是控制報(bào)文協(xié)議icmp報(bào)文,且所述icmp報(bào)文頭的類型字段值為8、代碼字段值為0的情況下,所述第二網(wǎng)絡(luò)設(shè)備通過ip路由向所述第一網(wǎng)絡(luò)設(shè)備發(fā)送端口不可達(dá)應(yīng)答報(bào)文。
第三方面,本申請實(shí)施例提供了一種檢測路徑的裝置,該裝置可應(yīng)用于第一網(wǎng)絡(luò)設(shè)備中,且在至少兩層標(biāo)簽轉(zhuǎn)發(fā)的場景下,用于執(zhí)行上述第一方面各種實(shí)現(xiàn)方式中方法步驟的模塊或單元,進(jìn)一步地,所述裝置包括處理單元、發(fā)送單元和接收單元等。
第四方面,本申請實(shí)施例提供了一種網(wǎng)絡(luò)設(shè)備,例如第一網(wǎng)絡(luò)設(shè)備,所述網(wǎng)絡(luò)設(shè)備包括處理器、發(fā)送器、隨機(jī)存取存儲器、只讀存儲器以及總線。其中,處理器通過總線分別耦接發(fā)送器、隨機(jī)存取存儲器以及只讀存儲器。其中,當(dāng)需要運(yùn)行該網(wǎng)絡(luò)設(shè)備時,通過固化在只讀存儲器中的基本輸入輸出系統(tǒng)或者嵌入式系統(tǒng)中的bootloader引導(dǎo)系統(tǒng)進(jìn)行啟動,引導(dǎo)該網(wǎng)絡(luò)設(shè)備進(jìn)入正常運(yùn)行狀態(tài)。在該網(wǎng)絡(luò)設(shè)備進(jìn)入正常運(yùn)行狀態(tài)后,在隨機(jī)存取存儲器中運(yùn)行應(yīng)用程序和操作系統(tǒng),使得該處理器執(zhí)行第一方面或第一方面的任意可能的實(shí)現(xiàn)方式中的方法。
第五方面,本申請實(shí)施例提供一種計(jì)算機(jī)可讀介質(zhì),用于存儲計(jì)算機(jī)程序,該計(jì)算機(jī)程序包括用于執(zhí)行第一方面或第一方面的任意可能的實(shí)現(xiàn)方式中的方法的指令。
第六方面,本申請實(shí)施例提供了另一種檢測路徑的裝置,該裝置可應(yīng)用于第二網(wǎng)絡(luò)設(shè)備,用于執(zhí)行上述第二方面各種實(shí)現(xiàn)方式中方法步驟的模塊或單元,進(jìn)一步地,所述裝置包括處理單元、發(fā)送單元和接收單元等。
第七方面,本申請實(shí)施例提供了一種網(wǎng)絡(luò)設(shè)備,例如第二網(wǎng)絡(luò)設(shè)備,所述第二網(wǎng)絡(luò)設(shè)備包括:處理器、發(fā)送器、隨機(jī)存取存儲器、只讀存儲器以及總線。其中,處理器通過總線分別耦接發(fā)送器、隨機(jī)存取存儲器以及只讀存儲器。其中,當(dāng)需要運(yùn)行該網(wǎng)絡(luò)設(shè)備時,通過固化在只讀存儲器中的基本輸入輸出系統(tǒng)或者嵌入式系統(tǒng)中的bootloader引導(dǎo)系統(tǒng)進(jìn)行啟動,引導(dǎo)網(wǎng)絡(luò)設(shè)備進(jìn)入正常運(yùn)行狀態(tài)。在該網(wǎng)絡(luò)設(shè)備進(jìn)入正常運(yùn)行狀態(tài)后,在隨機(jī)存取存儲器中運(yùn)行應(yīng)用程序和操作系統(tǒng),使得該處理器執(zhí)行第二方面或第二方面的任意可能的實(shí)現(xiàn)方式中的方法。
第八方面,本申請實(shí)施例提供了一種計(jì)算機(jī)可讀介質(zhì),用于存儲計(jì)算機(jī)程序,該計(jì)算機(jī)程序包括用于執(zhí)行第二方面或第二方面的任意可能的實(shí)現(xiàn)方式中的方法的指令。
第九方面,本申請實(shí)施例還提供了一種系統(tǒng),所述系統(tǒng)包括第三方面至第五方面任一的第一網(wǎng)絡(luò)設(shè)備和第六方面至第八方面任一的第二網(wǎng)絡(luò)設(shè)備。
附圖說明
為了更清楚地說明本申請的技術(shù)方案,下面將對實(shí)施例中所需要使用的附圖作簡單地介紹,顯而易見地,對于本領(lǐng)域普通技術(shù)人員而言,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本申請?zhí)峁┑囊环N由pe1發(fā)起的ttl的值為1的路徑檢測的示意圖;
圖2為本申請?zhí)峁┑牧硪环N由pe1發(fā)起的ttl的值為1的路徑檢測的示意圖;
圖3本申請實(shí)施例提供的一種路徑檢測方法的流程示意圖;
圖4a本申請實(shí)施例提供又一種由pe1發(fā)起的ttl的初始值為1的路徑檢測的示意圖;
圖4b本申請實(shí)施例提供的一種由pe1發(fā)起的ttl的初始值為2的路徑檢測的示意圖;
圖4c本申請實(shí)施例提供的一種由pe1發(fā)起的ttl的初始值為3的路徑檢測的示意圖;
圖4d本申請實(shí)施例提供又一種由pe1發(fā)起的ttl的初始值為1的路徑檢測的示意圖;
圖4e本申請實(shí)施例提供又一種由pe1發(fā)起的ttl的初始值為2的路徑檢測的示意圖;
圖4f本申請實(shí)施例提供又一種由pe1發(fā)起的ttl的初始值為3的路徑檢測的示意圖;
圖5a本申請實(shí)施例提供的一種第一網(wǎng)絡(luò)設(shè)備的結(jié)構(gòu)示意圖;
圖5b本申請實(shí)施例提供的另一種第一網(wǎng)絡(luò)設(shè)備的結(jié)構(gòu)示意圖;
圖6a本申請實(shí)施例提供的一種第二網(wǎng)絡(luò)設(shè)備的結(jié)構(gòu)示意圖;
圖6b本申請實(shí)施例提供的另一種第二網(wǎng)絡(luò)設(shè)備的結(jié)構(gòu)示意圖;
圖7本申請實(shí)施例提供的一種路徑檢測系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明實(shí)施例中的技術(shù)方案,并使本申請實(shí)施例的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖對本申請實(shí)施例中的技術(shù)方案作進(jìn)一步詳細(xì)的說明。在對本申請實(shí)施例的技術(shù)方案說明之前,首先結(jié)合附圖對本發(fā)明實(shí)施例的應(yīng)用場景進(jìn)行說明。
本申請的技術(shù)方案可應(yīng)用于報(bào)文中攜帶了至少兩層標(biāo)簽進(jìn)行標(biāo)簽轉(zhuǎn)發(fā)的網(wǎng)絡(luò)場景,例如,基于多協(xié)議標(biāo)記交換(multi-protocollabelswitching,mpls)技術(shù)的多層標(biāo)簽轉(zhuǎn)發(fā)場景,在這種攜帶多層mpls標(biāo)簽進(jìn)行轉(zhuǎn)發(fā)的網(wǎng)絡(luò)場景下,通過在源節(jié)點(diǎn)或首節(jié)點(diǎn)壓上(或封裝上)標(biāo)簽轉(zhuǎn)發(fā)路徑上的全部mpls標(biāo)簽,從而實(shí)現(xiàn)了在源節(jié)點(diǎn)或首節(jié)點(diǎn)控制報(bào)文轉(zhuǎn)發(fā)的路徑。
其中,在一種具體的技術(shù)場景中,例如,段路由(segmentrouting,sr)技術(shù)中,定義了從首節(jié)點(diǎn)(即源節(jié)點(diǎn))到尾節(jié)點(diǎn)之間的路徑為一條sr隧道,通過在首節(jié)點(diǎn)封裝上該sr隧道上的所有mpls轉(zhuǎn)發(fā)標(biāo)簽,從而實(shí)現(xiàn)在源節(jié)點(diǎn)控制轉(zhuǎn)發(fā)路徑。且該sr隧道上的所有路徑都封裝了mpls標(biāo)簽。
如圖1所示,一條sr隧道由運(yùn)營商邊緣(provideredge,pe)設(shè)備1(簡稱pe1),經(jīng)過運(yùn)營商(provider,p)設(shè)備1(簡稱p1)、p2,到pe2構(gòu)成。pe1為該sr隧道的源節(jié)點(diǎn)或首節(jié)點(diǎn),p1和p2為該sr隧道的中間節(jié)點(diǎn),pe2為該sr隧道的尾節(jié)點(diǎn)。在pe1上發(fā)起ip(英文:internetprotocol)traceroute路徑檢測,迭代到該sr隧道,以檢測pe1到pe2之間的sr隧道是否正常。
首先,pe1向p1發(fā)送用于traceroute路徑檢測的第一請求報(bào)文,例如,該第一請求報(bào)文為第一mpls報(bào)文(或幀),該第一mpls報(bào)文頭中包括標(biāo)簽棧字段和生存時間(timetolive,ttl)字段,該標(biāo)簽棧字段攜帶該sr隧道的所有mpls標(biāo)簽(即標(biāo)簽棧),該ttl字段攜帶的ttl的值為1。該第一mpls報(bào)文的凈荷或載荷(英文:payload)中包括ip報(bào)文。該ip報(bào)文的載荷中包括用于進(jìn)行traceroute路徑檢測請求的用戶數(shù)據(jù)報(bào)協(xié)議(userdatagramprotocol,udp)報(bào)文或控制報(bào)文協(xié)議(internetcontrolmessageprotocol,icmp)報(bào)文。
p1接收到來自pe1的請求報(bào)文后,執(zhí)行ttl的值減1,此時ttl的值為0,并且比較該第一請求報(bào)文中的目的ip地址與本機(jī)的ip地址是否相同,如果不同,則p1會向pe1回復(fù)第一應(yīng)答報(bào)文,例如,該第一應(yīng)答報(bào)文為第二mpls報(bào)文,該第二mpls報(bào)文攜帶去掉最外層mpls標(biāo)簽的標(biāo)簽棧(即去除一層標(biāo)簽后剩余的標(biāo)簽棧)。該第二mpls報(bào)文的載荷中包括ip報(bào)文。該ip報(bào)文的載荷中包括用于進(jìn)行traceroute路徑檢測應(yīng)答的icmp應(yīng)答報(bào)文,該icmp應(yīng)答報(bào)文為icmpttl超時報(bào)文,例如icmp報(bào)文的類型(英文:type)字段的值為11,代碼(英文:code)字段的值為0。因?yàn)樵摰诙pls報(bào)文中封裝著該sr隧道剩余的標(biāo)簽棧,使得p1在ttl的值為0超時情況下,該icmp應(yīng)答報(bào)文會繼續(xù)沿著該sr隧道轉(zhuǎn)發(fā)到p2、再到pe2,然后pe2再通過ip路由將該icmp應(yīng)答報(bào)文轉(zhuǎn)發(fā)給pe1。這樣使得pe1檢測pe1到p1這段路徑(或鏈路)的時延時還包括了p1到p2、p2到pe2的時間等,從而導(dǎo)致pe1獲取應(yīng)答報(bào)文反饋的時延較長,檢測延時的結(jié)果不準(zhǔn)確。
需要說明的是,本申請實(shí)施例中的traceroute路徑檢測,可以是基于互聯(lián)網(wǎng)協(xié)議第四版本(internetprotocolversion4,ipv4)的,也可以是基于互聯(lián)網(wǎng)協(xié)議第六版本(internetprotocolversion6,ipv6)的traceroute路徑檢測,此處不做限定。還需要說明的是,兩個相連的節(jié)點(diǎn)之間的一段線路構(gòu)成一條鏈路,至少一條鏈路構(gòu)成一條路徑,例如一條路徑可以僅僅由一條鏈路構(gòu)成(如圖1:pe1到p1的路徑由pe1到p1的鏈路構(gòu)成),也可以由多條鏈路相接構(gòu)成(如圖1:pe1到pe2的路徑由pe1到p1的鏈路、p1到p2的鏈路、p2到pe2的三條鏈路構(gòu)成)。
此外,對于鏈路異常的情況,路徑檢測結(jié)果也會不準(zhǔn)確,例如,基于圖1的描述,如圖2所示,在p1與p2之間的鏈路發(fā)生故障的情況下,pe1向p1發(fā)起用于traceroute路徑檢測的第一請求報(bào)文之后,定時器開始記錄檢測時間。p1收到所述第一請求報(bào)文之后的處理過程與上文圖1部分的描述一致,不再贅述。不同的是p1回復(fù)的所述第一應(yīng)答報(bào)文會繼續(xù)沿著p1-p2-pe2-pe1的路徑回到pe1,而因?yàn)榇藭rp1與p2之間的鏈路發(fā)生故障,所以所述第一應(yīng)答報(bào)文無法到達(dá)pe1,從而導(dǎo)致pe1在預(yù)定時間內(nèi)(例如1秒)未收到第一跳p1反饋的所述第一應(yīng)答報(bào)文(即icmp應(yīng)答報(bào)文),就會錯誤地判斷pe1到p1之間鏈路發(fā)生故障,而實(shí)際上是p1到p2之間的鏈路發(fā)生了故障,因此,pe1無法準(zhǔn)確地檢測出發(fā)生故障的鏈路。
與上述pe1向p1發(fā)起traceroute路徑檢測的流程同理,pe1還會分別依次向p2、pe2發(fā)送第二、三請求報(bào)文,并接收p2、pe2分別回復(fù)的第二、三應(yīng)答報(bào)文。從而完成了對該pe1-p1-p2-pe2構(gòu)成的sr隧道的traceroute路徑檢測。同理,在pe1向中間節(jié)點(diǎn)p2發(fā)起的traceroute路徑檢測請求中,也存在上面所述的時延檢測或故障檢測不準(zhǔn)確的問題。
上面描述了本申請涉及的應(yīng)用場景,下面將基于此對本申請實(shí)施例進(jìn)一步詳細(xì)說明。
本申請如下各個實(shí)施例提供的檢測路徑的方法和裝置,通過在首節(jié)點(diǎn)控制回程的應(yīng)答報(bào)文的轉(zhuǎn)發(fā)方式,以控制所述應(yīng)答報(bào)文采用回程直接走ip路由或者回程走完sr隧道再走ip路由的方式,從而提高路徑檢測的時延和故障情況判斷的準(zhǔn)確性。
具體地,在一個實(shí)施例中,如圖3所示,為本申請實(shí)施例提供的一種檢測路徑的方法流程示意圖。該方法應(yīng)用于圖1和圖2所示的多層標(biāo)簽轉(zhuǎn)發(fā)的網(wǎng)絡(luò)場景。進(jìn)一步地,可以應(yīng)用在圖1和圖2所示的traceroute路徑檢測過程中。
本實(shí)施例提供的方案包括301部分、302部分、303部分和304部分,301部分和302部分在第一網(wǎng)絡(luò)設(shè)備上執(zhí)行,303部分和304部分在第二網(wǎng)絡(luò)設(shè)備上執(zhí)行,其中,第一網(wǎng)絡(luò)設(shè)備包括源節(jié)點(diǎn)或首節(jié)點(diǎn),第二網(wǎng)絡(luò)設(shè)備可以是中間節(jié)點(diǎn)或尾節(jié)點(diǎn)。
在301部分,第一網(wǎng)絡(luò)設(shè)備生成用于路徑檢測的第一請求報(bào)文,所述第一請求報(bào)文中包括標(biāo)簽棧和ttl,且所述標(biāo)簽棧的初始層數(shù)與所述ttl的初始值相匹配,所述ttl的初始值等于在待檢測路徑上從所述第一網(wǎng)絡(luò)設(shè)備到第二網(wǎng)絡(luò)設(shè)備之間的跳數(shù)。
所述第一請求報(bào)文包括udp報(bào)文和icmp報(bào)文,具體地,可根據(jù)設(shè)備端口號大小、報(bào)文的類型和代碼等確定發(fā)起udp報(bào)文還是icmp報(bào)文。所述第一請求報(bào)文為第一mpls報(bào)文,該第一mpls報(bào)文中包括mpls標(biāo)簽棧字段、ttl的值、源ip地址、目標(biāo)ip地址、協(xié)議、數(shù)據(jù)等信息。該mpls標(biāo)簽棧字段攜帶sr隧道的所有mpls標(biāo)簽。
其中,所述traceroute是一種網(wǎng)絡(luò)工具,用于顯示路徑和測量數(shù)據(jù)包在ip網(wǎng)絡(luò)經(jīng)過路由器或節(jié)點(diǎn)轉(zhuǎn)發(fā)的時延。traceroute可以應(yīng)用于不同的程序運(yùn)行系統(tǒng),例如,在現(xiàn)代unix系統(tǒng),比如linux系統(tǒng),traceroute被稱為tracepath;在windows系統(tǒng)則被稱為tracert;在ipv6協(xié)議中可以被稱為traceroute6或tracert6。對于不同的應(yīng)用系統(tǒng),相應(yīng)的traceroute的名稱有所不同,本申請實(shí)施例對此不予限定。
在traceroute檢測過程中,第一網(wǎng)絡(luò)設(shè)備通過向目標(biāo)的第二網(wǎng)絡(luò)設(shè)備發(fā)送具有不同生存時間(ttl)的udp請求報(bào)文,然后根據(jù)各個中間節(jié)點(diǎn)(比如路由器)反饋的應(yīng)答報(bào)文,以確定第一網(wǎng)絡(luò)設(shè)備到第二網(wǎng)絡(luò)設(shè)備之間的各段鏈路是否正常。
其中,所述標(biāo)簽棧的初始層數(shù)與ttl的初始值相匹配包括:在不使用倒數(shù)第二跳彈出的標(biāo)簽棧處理機(jī)制的情況下,所述標(biāo)簽棧的初始層數(shù)與所述ttl的初始值相同;或者,在使用倒數(shù)第二跳彈出的標(biāo)簽棧處理機(jī)制的情況下,所述標(biāo)簽棧的初始層數(shù)比所述ttl的初始值少1。其中,所述采用倒數(shù)第二跳彈出機(jī)制是指:在一次檢測路徑(pe1-p1-p2-pe2)過程中,針對最后一個節(jié)點(diǎn)/設(shè)備,比如pe2節(jié)點(diǎn)的情況,配置的標(biāo)簽棧的初始層數(shù)比ttl的初始值少1,對于非最后一個節(jié)點(diǎn)/設(shè)備的情況,第一網(wǎng)絡(luò)設(shè)備配置的標(biāo)簽棧的初始層數(shù)與ttl的初始值相同。
可選的,在第一網(wǎng)絡(luò)設(shè)備與第二網(wǎng)絡(luò)設(shè)備之間直接相連接,無論是否采用倒數(shù)第二跳彈出標(biāo)簽棧的機(jī)制,或者在不采用倒數(shù)第二跳彈出標(biāo)簽棧的處理機(jī)制,所述第一請求報(bào)文中標(biāo)簽棧的初始層數(shù)和ttl的初始值均為1。
在302部分,第一網(wǎng)絡(luò)設(shè)備向第二網(wǎng)絡(luò)設(shè)備發(fā)送第一請求報(bào)文,所述第一請求報(bào)文用于指示第二網(wǎng)絡(luò)設(shè)備在接收到所述第一請求報(bào)文,且所述第一請求報(bào)文中所攜帶的ttl的值減1為0的情況下,向第一網(wǎng)絡(luò)設(shè)備發(fā)送第一應(yīng)答報(bào)文。其中,所述第一應(yīng)答報(bào)文通過互聯(lián)網(wǎng)協(xié)議ip路由到達(dá)所述第一網(wǎng)絡(luò)設(shè)備。
在303部分,第二網(wǎng)絡(luò)設(shè)備接收所述第一請求報(bào)文,并根據(jù)所述第一請求報(bào)文生成第一應(yīng)答報(bào)文,例如icmp應(yīng)答報(bào)文。
具體過程包括:在第一網(wǎng)絡(luò)設(shè)備與第二網(wǎng)絡(luò)設(shè)備直接相連接的情況下,所述第二網(wǎng)絡(luò)設(shè)備接收來自所述第一網(wǎng)絡(luò)設(shè)備的第一請求報(bào)文,第二網(wǎng)絡(luò)設(shè)備在所述第一請求報(bào)文中的ttl的值減1為0的情況下,生成所述第一應(yīng)答報(bào)文。其中,所述第一請求報(bào)文中包括標(biāo)簽棧和ttl,且所述ttl的值與所述標(biāo)簽棧的層數(shù)相同,所述ttl的值與第一網(wǎng)絡(luò)設(shè)備配置的ttl的初始值相同,與標(biāo)簽棧的初始層數(shù)也相同。
在第一網(wǎng)絡(luò)設(shè)備與第二網(wǎng)絡(luò)設(shè)備之間還包括第三網(wǎng)絡(luò)設(shè)備的情況下,所述第二網(wǎng)絡(luò)設(shè)備接收所述第三網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)的第一請求報(bào)文,所述第一請求報(bào)文中包括生存時間ttl;所述第二網(wǎng)絡(luò)設(shè)備在所述ttl的值減1為0的情況下,生成所述第一應(yīng)答報(bào)文。此時,第二網(wǎng)絡(luò)設(shè)備接收第三網(wǎng)絡(luò)設(shè)備轉(zhuǎn)發(fā)的請求報(bào)文中所攜帶的標(biāo)簽棧層數(shù)與ttl的值會發(fā)生變化,與第一網(wǎng)絡(luò)設(shè)備配置的標(biāo)簽棧的初始層數(shù)和ttl的初始值不同。
需要說明的是,本實(shí)施例中所述的第一請求報(bào)文表示一類報(bào)文,既包括首節(jié)點(diǎn)生成的請求報(bào)文,也包括中間節(jié)點(diǎn)(第三網(wǎng)絡(luò)設(shè)備)轉(zhuǎn)發(fā)的請求報(bào)文,以及目標(biāo)的第二網(wǎng)絡(luò)設(shè)備接收的請求報(bào)文。但這些請求報(bào)文在轉(zhuǎn)發(fā)的過程中,其攜帶的內(nèi)容,例如標(biāo)簽棧的層數(shù)和ttl的值會發(fā)生變化,與第一請求報(bào)文中標(biāo)簽棧的初始層數(shù)和ttl的初始值不同。
在304部分,第二網(wǎng)絡(luò)設(shè)備通過ip路由向第一網(wǎng)絡(luò)設(shè)備直接發(fā)送所述第一應(yīng)答報(bào)文。
其中,所述第一請求報(bào)文在走mpls標(biāo)簽轉(zhuǎn)發(fā)流程中,每經(jīng)過一跳到達(dá)一個網(wǎng)絡(luò)設(shè)備時ttl的值對應(yīng)減1,當(dāng)?shù)诙W(wǎng)絡(luò)設(shè)備檢測第一請求報(bào)文中所攜帶的ttl的值減1為0時,比較第一請求報(bào)文中的目的ip地址與本機(jī)的ip地址是否相同,如果不相同,則會向第一網(wǎng)絡(luò)設(shè)備反饋所述第一應(yīng)答報(bào)文。
本實(shí)施例提供的方法,第一網(wǎng)絡(luò)設(shè)備通過配置標(biāo)簽棧的初始層數(shù)與ttl的初始值相匹配的請求報(bào)文,使得第二網(wǎng)絡(luò)設(shè)備接收到該請求報(bào)文后,確定在ttl減1為0的情況下,直接通過ip路由向第一網(wǎng)絡(luò)設(shè)備反饋應(yīng)答報(bào)文,從而避免了該應(yīng)答報(bào)文繼續(xù)走標(biāo)簽ttl超時流程,到達(dá)尾節(jié)點(diǎn)后再通過ip路由反饋給第一網(wǎng)絡(luò)設(shè)備,由于該應(yīng)答報(bào)文無需再走ttl超時流程,因此減少了鏈路檢測的時延,提高了對鏈路時延檢測的準(zhǔn)確性。
此外,在301部分,配置標(biāo)簽棧的初始層數(shù)與ttl的初始值相匹配,使用倒數(shù)第二跳彈出的標(biāo)簽棧處理機(jī)制,例如圖4a所示,pe1向p1發(fā)起ttl的值為1的traceroute路徑檢測報(bào)文,該報(bào)文中的mpls標(biāo)簽棧的初始層數(shù)和ttl的初始值均為1,當(dāng)pe1發(fā)送的第一請求報(bào)文到達(dá)p1時,p1只需要查詢一次其預(yù)存轉(zhuǎn)發(fā)表就可以確定并轉(zhuǎn)發(fā)應(yīng)答報(bào)文給pe1,從而避免了在配置有多層標(biāo)簽的第一請求報(bào)文到達(dá)p1時,由于還攜帶有標(biāo)簽,導(dǎo)致p1要先查詢一次轉(zhuǎn)發(fā)表來更換標(biāo)簽,然后再查詢一次轉(zhuǎn)發(fā)表確定目的ip,即需要進(jìn)行兩次查表才能確定并轉(zhuǎn)發(fā)應(yīng)答報(bào)文,本實(shí)施例的這種基于倒數(shù)第二跳彈出所有標(biāo)簽的機(jī)制,使第二網(wǎng)絡(luò)設(shè)備p1只需要查一次轉(zhuǎn)發(fā)表,進(jìn)而提高了應(yīng)答報(bào)文轉(zhuǎn)發(fā)性能,提高了轉(zhuǎn)發(fā)效率。
在上述301部分,第一網(wǎng)絡(luò)設(shè)備生成第一請求報(bào)文的具體實(shí)現(xiàn)方式包括:第一網(wǎng)絡(luò)設(shè)備獲取關(guān)鍵字信息,然后根據(jù)該關(guān)鍵字信息生成用于路徑檢測的第一請求報(bào)文。所述關(guān)鍵字信息用于指示該第一網(wǎng)絡(luò)設(shè)備在發(fā)起路徑檢測報(bào)文的情況下,封裝的所述標(biāo)簽棧的初始層數(shù)與所述ttl初始值相匹配。
具體地,第一網(wǎng)絡(luò)設(shè)備獲取的關(guān)鍵字信息,例如ipreply(中文:ip應(yīng)答)可以是網(wǎng)絡(luò)管理員通過命令行預(yù)先配置在該第一網(wǎng)絡(luò)設(shè)備上的;也可以是該第一網(wǎng)絡(luò)設(shè)備接收其它控制管理設(shè)備發(fā)來的攜帶有關(guān)鍵字的消息,根據(jù)該消息指示配置的;還可以是該第一網(wǎng)絡(luò)設(shè)備自身運(yùn)行算法軟件自動生成,并完成配置的;還可以是該第一網(wǎng)絡(luò)設(shè)備的軟件實(shí)現(xiàn)時設(shè)置的默認(rèn)值,對此本實(shí)施例不予限制。
在本實(shí)施例的一種可能的實(shí)現(xiàn)中,上述方法還包括檢測sr隧道/路徑中各個鏈路是否正常的方法步驟,具體包括:第一網(wǎng)絡(luò)設(shè)備在向第二網(wǎng)絡(luò)設(shè)備發(fā)送第一請求報(bào)文之后,定時器開始記錄時間,并檢測第一網(wǎng)絡(luò)設(shè)備在預(yù)設(shè)時間(例如1秒)內(nèi)是否接收到來自第二網(wǎng)絡(luò)設(shè)備的第一應(yīng)答報(bào)文。如果是,則第一網(wǎng)絡(luò)設(shè)備確定在第一網(wǎng)絡(luò)設(shè)備與第二網(wǎng)絡(luò)設(shè)備之間的鏈路正常;否則,確定第一網(wǎng)絡(luò)設(shè)備與第二網(wǎng)絡(luò)設(shè)備之間的鏈路發(fā)生故障,其中,第一網(wǎng)絡(luò)設(shè)備和第二網(wǎng)絡(luò)設(shè)備之間的鏈路可以包括一條或多條鏈路。例如,當(dāng)?shù)谝痪W(wǎng)絡(luò)設(shè)備和第二網(wǎng)絡(luò)設(shè)備是直接相連的兩個網(wǎng)絡(luò)節(jié)點(diǎn),第一網(wǎng)絡(luò)設(shè)備和第二網(wǎng)絡(luò)設(shè)備之間的鏈路由一條鏈路構(gòu)成。當(dāng)?shù)谝痪W(wǎng)絡(luò)設(shè)備和第二網(wǎng)絡(luò)設(shè)備之間還包括若干個中間節(jié)點(diǎn),則第一網(wǎng)絡(luò)設(shè)備和第二網(wǎng)絡(luò)設(shè)備之間的鏈路由至少兩條鏈路構(gòu)成,例如,第一網(wǎng)絡(luò)設(shè)備和第二網(wǎng)絡(luò)設(shè)備之間還包括第三網(wǎng)絡(luò)節(jié)點(diǎn),則第一網(wǎng)絡(luò)設(shè)備和第二網(wǎng)絡(luò)設(shè)備之間的鏈路由第一網(wǎng)絡(luò)設(shè)備和第三網(wǎng)絡(luò)設(shè)備之間的第一條鏈路,以及第三網(wǎng)絡(luò)設(shè)備和第二網(wǎng)絡(luò)設(shè)備的之間的第二條鏈路構(gòu)成。
進(jìn)一步地,如果在第一網(wǎng)絡(luò)設(shè)備和第二網(wǎng)絡(luò)設(shè)備之間還包括第三網(wǎng)絡(luò)設(shè)備,那么上述第一網(wǎng)絡(luò)設(shè)備與第二網(wǎng)絡(luò)設(shè)備之間的鏈路發(fā)生故障包括如下兩種情況:一種情況是,第一網(wǎng)絡(luò)設(shè)備與第三網(wǎng)絡(luò)設(shè)備之間發(fā)生故障;另一種情況是,第二網(wǎng)絡(luò)設(shè)備與第三網(wǎng)絡(luò)設(shè)備之間發(fā)生故障。具體地,如果第一網(wǎng)絡(luò)設(shè)備在預(yù)設(shè)時間內(nèi)接收到來自第三網(wǎng)絡(luò)設(shè)備反饋的應(yīng)答報(bào)文,則確定第一網(wǎng)絡(luò)設(shè)備和第三網(wǎng)絡(luò)設(shè)備之間的鏈路正常,在這種情況下,可以確定第三網(wǎng)絡(luò)設(shè)備與第二網(wǎng)絡(luò)設(shè)備之間的鏈路發(fā)生故障。如果第一網(wǎng)絡(luò)設(shè)備在預(yù)設(shè)時間內(nèi)未接收到來自第三網(wǎng)絡(luò)設(shè)備反饋的應(yīng)答報(bào)文,則確定第一網(wǎng)絡(luò)設(shè)備和第三網(wǎng)絡(luò)設(shè)備之間的鏈路發(fā)生故障。
在本實(shí)施例中,第二網(wǎng)絡(luò)設(shè)備在獲取到第一請求報(bào)文之后,會在ttl的值減1為0的情況下,直接通過ip路由反饋第一應(yīng)答報(bào)文,避免了該第一應(yīng)答報(bào)文繼續(xù)走標(biāo)簽轉(zhuǎn)發(fā)流程,節(jié)約了轉(zhuǎn)發(fā)時間。如果第一網(wǎng)絡(luò)設(shè)備在預(yù)設(shè)時間內(nèi)接收到該第一應(yīng)答報(bào)文,則說明第一網(wǎng)絡(luò)設(shè)備和第二網(wǎng)絡(luò)設(shè)備之間的鏈路正常;否則,說明鏈路發(fā)生故障,采用本方法的應(yīng)答報(bào)文反饋機(jī)制,在首節(jié)點(diǎn)第一網(wǎng)絡(luò)設(shè)備控制第一應(yīng)答報(bào)文采用回程直接走ip路由的方式,能夠準(zhǔn)確檢測出鏈路發(fā)生故障之處,提高了鏈路故障檢測的準(zhǔn)確性。
需要說明的是,本實(shí)施例中所述的鏈路故障,可以包括兩個相連的網(wǎng)絡(luò)設(shè)備之間的鏈路故障的情況,也可以包括由網(wǎng)絡(luò)設(shè)備故障導(dǎo)致與該網(wǎng)絡(luò)設(shè)備相連的鏈路故障的情況等。所述鏈路可以是物理鏈路,也可以是虛擬網(wǎng)絡(luò)中的虛擬鏈路。
還需要說明的是,本實(shí)施例中所述的標(biāo)簽棧,可以包括至少一層標(biāo)簽。例如,可以是一層標(biāo)簽構(gòu)成的標(biāo)簽棧,也可以是兩層標(biāo)簽構(gòu)成的標(biāo)簽棧,還可以是三層標(biāo)簽構(gòu)成的標(biāo)簽棧。
在一個具體的實(shí)施例中,如圖4a至圖4c所示,由第一網(wǎng)絡(luò)設(shè)備pe1發(fā)起的traceroute路徑檢測,以檢測sr隧道pe1至pe2中各個節(jié)點(diǎn)之間的鏈路的是否發(fā)生故障。
本實(shí)施例以倒數(shù)第二跳彈出標(biāo)簽機(jī)制進(jìn)行說明。
如圖4a所示,示出一種由pe1發(fā)起的ttl的初始值為1的traceroute路徑檢測的示意圖。pe1向p1發(fā)送用于traceroute路徑檢測的第一請求報(bào)文,例如,該第一請求報(bào)文為第一mpls報(bào)文(或幀)。該第一mpls報(bào)文頭中包括標(biāo)簽棧字段和ttl字段,該標(biāo)簽棧字段攜帶該sr隧道的所有mpls標(biāo)簽(即標(biāo)簽棧),該ttl字段攜帶的ttl的初始值與標(biāo)簽棧的初始層數(shù)均為1。該第一mpls報(bào)文的凈荷或載荷中包括ip報(bào)文。該ip報(bào)文的載荷中包括用于進(jìn)行traceroute路徑檢測請求的udp報(bào)文或icmp報(bào)文。
p1接收到來自pe1的第一請求報(bào)文后,彈掉一層標(biāo)簽,同時執(zhí)行ttl的值減1操作,此時ttl的值為0,觸發(fā)ttl超時流程,并且比較該第一請求報(bào)文中的目的ip地址與p1的ip地址是否相同,如果不同,則p1會通過ip路由直接向pe1反饋第一應(yīng)答報(bào)文,例如第一icmp應(yīng)答報(bào)文,該第一icmp應(yīng)答報(bào)文的類型字段值為11,代碼字段的值為0。pe1檢測如果在預(yù)設(shè)時間(例如1秒)內(nèi),接收到p1反饋的第一icmp應(yīng)答報(bào)文,則pe1確定pe1到p1之間的鏈路正常;如果在預(yù)設(shè)時間內(nèi)未收到該第一icmp應(yīng)答報(bào)文,則鏈路發(fā)生故障。
然后,pe1向p2發(fā)起ttl的值為2的traceroute第二請求報(bào)文,如圖4b所示,pe1發(fā)送的第二請求報(bào)文中攜帶的mpls標(biāo)簽棧的層數(shù)與ttl的值相同均為2??蛇x的,所述第二請求報(bào)文可以是udp報(bào)文或者icmp報(bào)文。p1接收到來自pe1的第二請求報(bào)文后,彈掉一層標(biāo)簽,并執(zhí)行ttl的值減1,此時ttl的值為1,mpls標(biāo)簽棧的層數(shù)也為1。
p1轉(zhuǎn)發(fā)所述標(biāo)簽棧層數(shù)與ttl的值均為1的第二請求報(bào)文給p2,p2接收之后對應(yīng)執(zhí)行ttl的值減1為0,且所述第二請求報(bào)文中攜帶的目的ip地址與p2本機(jī)的ip地址不同,生成第二icmp應(yīng)答報(bào)文,該第二icmp應(yīng)答報(bào)文的類型字段值為11,代碼字段的值為0,并將該第二icmp應(yīng)答報(bào)文通過ip路由直接反饋給pe1。pe1檢測如果在預(yù)設(shè)時間內(nèi),接收到p2反饋的第二icmp應(yīng)答報(bào)文,則pe1確定p1到p2之間的鏈路正常;否則,確定p1到p2之間的鏈路發(fā)生故障。
其中,需要說明的是,所述第二請求報(bào)文中還攜帶了p2的ip地址,使得p1在接收到pe1發(fā)送的第二請求報(bào)文后,能夠根據(jù)所述ip地址將該第二請求報(bào)文轉(zhuǎn)發(fā)給p2。
按照上述圖4a和圖4b所述的流程,pe1在接收到p2反饋的第二icmp應(yīng)答報(bào)文之后,向pe2發(fā)起ttl的初始值為3的traceroute第三請求報(bào)文,如圖4c所示,pe1發(fā)送的第三請求報(bào)文中攜帶的mpls標(biāo)簽棧的初始層數(shù)比ttl的初始值少1為兩層。其中,所述第三請求報(bào)文可以是udp報(bào)文或者icmp報(bào)文。p1接收到來自pe1的第三請求報(bào)文后,執(zhí)行ttl的值減1操作,此時ttl的值為2,mpls標(biāo)簽棧的層數(shù)減1為1。中間節(jié)點(diǎn)p1將所述mpls標(biāo)簽棧的層數(shù)為1、ttl的值為2的第三請求報(bào)文轉(zhuǎn)發(fā)給p2。p2接收來自p1的第三請求報(bào)文之后,繼續(xù)執(zhí)行ttl減1,去掉標(biāo)簽棧中的最外層標(biāo)簽,至此,標(biāo)簽棧中的所有標(biāo)簽都被彈出,也就是將第三請求報(bào)文中的mpls報(bào)文頭被剝掉(或者解封裝),此時的第三請求報(bào)文也就不包括標(biāo)簽和ttl字段,然后p2將該完成mpls解封裝的第三請求報(bào)文轉(zhuǎn)發(fā)給pe2。pe2接收到來自p2的該完成mpls解封裝的第三請求報(bào)文之后,比較所述第三請求報(bào)文中的目的ip地址是否與pe2的ip地址相同。如果不相同,則觸發(fā)ttl超時流程,pe2回復(fù)icmp應(yīng)答報(bào)文,對應(yīng)的所述icmp應(yīng)答報(bào)文的類型字段值為3,代碼字段的值也為3,表示端口不可達(dá)。
如果比較的兩個ip地址相同,則進(jìn)一步判斷該第三請求報(bào)文是udp報(bào)文還是icmp報(bào)文。如果是udp報(bào)文,則判斷該udp報(bào)文中的目的udp端口號是否被使用,即本機(jī)pe2是否有應(yīng)用程序在使用udp端口,因?yàn)閠racroute檢測需要較大的udp端口,如果未被使用,則pe2向pe1通過ip路由回復(fù)icmp端口不可達(dá)的應(yīng)答報(bào)文(第三icmp應(yīng)答報(bào)文),其中,所述第三icmp應(yīng)答報(bào)文的類型字段值為11,代碼字段的值為0。如果所述第三請求報(bào)文是icmp報(bào)文,且該icmp報(bào)文的報(bào)文頭中類型字段值為8,代碼字段的值為0(為icmp請求回顯報(bào)文),則pe2回復(fù)的icmp端口不可達(dá)應(yīng)答報(bào)文的類型字段值為11,代碼字段的值為0。
pe1發(fā)出第三請求報(bào)文后,定時器開始計(jì)時,如果pe1檢測在預(yù)設(shè)時間內(nèi),接收到pe2反饋的第三icmp應(yīng)答報(bào)文,則pe1確定p2到pe2之間的鏈路正常;否則,確定p2到pe2之間的鏈路發(fā)生故障。
在本實(shí)施例中,pe1通過分別向不同的節(jié)點(diǎn)(包括中間節(jié)點(diǎn)和尾節(jié)點(diǎn))發(fā)送traceroute請求報(bào)文,其中第三請求報(bào)文中mpls標(biāo)簽棧的層數(shù)比ttl的值少1,采用倒數(shù)第二跳彈出所有標(biāo)簽的機(jī)制,避免尾節(jié)點(diǎn)需要查詢兩次轉(zhuǎn)發(fā)表來確定反饋應(yīng)答報(bào)文的ip地址,從而提高了報(bào)文轉(zhuǎn)發(fā)效率。
此外,在發(fā)送第三請求報(bào)文的情況下,配置mpls標(biāo)簽棧的初始層數(shù)比ttl的初始值少1的請求報(bào)文,使接收節(jié)點(diǎn)在ttl超時的情況下,直接通過ip路由向pe1反饋icmp應(yīng)答報(bào)文,從而避免了該icmp應(yīng)答報(bào)文繼續(xù)走mpls標(biāo)簽ttl超時流程,到達(dá)尾節(jié)點(diǎn)pe2后再反饋給pe1,減少了鏈路檢測的時延,提高了對鏈路時延檢測的準(zhǔn)確性。并且,本實(shí)施例采用pe1逐段發(fā)起請求報(bào)文檢測每個節(jié)點(diǎn)之間的路徑,通過中間節(jié)點(diǎn)或尾節(jié)點(diǎn)通過走ip路由直接反饋的方式,能夠準(zhǔn)確檢測出鏈路發(fā)生故障之處,提高了鏈路故障檢測的準(zhǔn)確性。
需要說明的是,本實(shí)施例以配置的mpls標(biāo)簽棧的層數(shù)比ttl的值少1為例,在另一種匹配方式中,在目標(biāo)網(wǎng)絡(luò)設(shè)備為待檢測路徑上的中間節(jié)點(diǎn)或者尾節(jié)點(diǎn)的情況下,配置mpls標(biāo)簽棧的層數(shù)與ttl的值相同的路徑檢測方法,與上述實(shí)施例圖4a至4c的方法流程相似。
具體地,如圖4d至4f所示,首節(jié)點(diǎn)pe1向p1節(jié)點(diǎn)發(fā)起traceroute檢測的第一請求報(bào)文,其中該第一請求報(bào)文中的標(biāo)簽棧的初始層數(shù)與ttl的初始值均為1,p1節(jié)點(diǎn)接收到該第一請求報(bào)文之后,執(zhí)行ttl的值減1為0操作,直接向pe1通過ip路由回復(fù)第一icmp應(yīng)答報(bào)文。
pe1接收到第一icmp應(yīng)答報(bào)文后,繼續(xù)向p2節(jié)點(diǎn)發(fā)起traceroute檢測的第二請求報(bào)文,該第二請求報(bào)文中標(biāo)簽棧的初始層數(shù)與ttl的初始值均為2,第二請求報(bào)文經(jīng)過第一跳到達(dá)p1節(jié)點(diǎn)時,對應(yīng)的第一請求報(bào)文中的ttl的值為1,標(biāo)簽棧的層數(shù)也是1,p1節(jié)點(diǎn)的ip地址與第一請求報(bào)文中的目的ip地址不同,則繼續(xù)走mpls標(biāo)簽轉(zhuǎn)發(fā)流程,p1將攜帶1層標(biāo)簽和ttl的值為1內(nèi)容的第二請求報(bào)文轉(zhuǎn)發(fā)給p2節(jié)點(diǎn),p2節(jié)點(diǎn)判斷該第二報(bào)文中的標(biāo)簽棧的層數(shù)和ttl的值都減1為0,即ttl超時,p2直接通過ip路由向pe1反饋第二icmp應(yīng)答報(bào)文,且該第二icmp應(yīng)答報(bào)文的類型字段值為11,代碼字段的值為0。
pe1接收到來自p2的第二應(yīng)答報(bào)文之后,向pe2發(fā)起traceroute檢測的第三請求報(bào)文,其中該第三請求報(bào)文中的mpls標(biāo)簽棧的初始層數(shù)與ttl的初始值均為3,并且該mpls標(biāo)簽棧的3層標(biāo)簽分別是202、302、602。該第三請求報(bào)文達(dá)到p1節(jié)點(diǎn)時,彈掉標(biāo)簽棧的最外層標(biāo)簽302,然后繼續(xù)走標(biāo)簽轉(zhuǎn)發(fā)路徑達(dá)到p2節(jié)點(diǎn),達(dá)到p2節(jié)點(diǎn)的第三請求消息中標(biāo)簽棧的層數(shù)為1層,ttl的值為1,然后再將該標(biāo)簽層數(shù)為1層,ttl值也為1的第三請求報(bào)文轉(zhuǎn)發(fā)給pe2,pe2檢測在接收的第三請求報(bào)文中所攜帶的ttl的值減1為0,且第三請求報(bào)文中的ip地址與pe2的本機(jī)ip地址相同的情況下,pe2直接通過ip路由向pe1回復(fù)icmp端口不可達(dá)的第三應(yīng)答報(bào)文,具體的轉(zhuǎn)發(fā)和反饋報(bào)文的過程與前述實(shí)施例相同,不再贅述。
需要說明的是,本實(shí)施例中附圖4d和4e所配置的第一請求報(bào)文和第二請求報(bào)文中標(biāo)簽棧的初始層數(shù)與ttl的初始值均與附圖4a和4b所配置的第一請求報(bào)文和第二請求報(bào)文相同,區(qū)別在于第三請求報(bào)文中配置的標(biāo)簽棧的初始層數(shù)與ttl的初始值是否相同,如果采用倒數(shù)第二跳彈出標(biāo)簽棧的機(jī)制,則第三請求報(bào)文中的標(biāo)簽棧的初始層數(shù)比ttl的初始值少1。
相對于上面的方法實(shí)施例,本申請實(shí)施例還提供了相應(yīng)的網(wǎng)絡(luò)設(shè)備等裝置實(shí)施例。
參見圖5a,為本實(shí)施例提供的第一網(wǎng)絡(luò)設(shè)備的一種可能的結(jié)構(gòu)示意圖。該第一網(wǎng)絡(luò)設(shè)備用于執(zhí)行如圖3所示在至少兩層mpls標(biāo)簽轉(zhuǎn)發(fā)的場景下的路徑檢測的方法,具體地,該第一網(wǎng)絡(luò)設(shè)備可以包括處理單元501和發(fā)送單元502。
其中,處理單元501用于生成用于路徑檢測的第一請求報(bào)文,所述第一請求報(bào)文中包括標(biāo)簽棧和ttl,且所述標(biāo)簽棧的初始層數(shù)與所述ttl的初始值相匹配,所述ttl的初始值等于在待檢測路徑上從所述第一網(wǎng)絡(luò)設(shè)備到第二網(wǎng)絡(luò)設(shè)備之間的跳數(shù)。
所述標(biāo)簽棧包括mpls標(biāo)簽棧。所述第一請求報(bào)文可以是udp請求報(bào)文,還可以是icmp請求報(bào)文。
具體地,所述標(biāo)簽棧的初始層數(shù)與所述ttl的初始值相匹配包括:在不使用倒數(shù)第二跳彈出的標(biāo)簽棧處理機(jī)制的情況下,所述標(biāo)簽棧的初始層數(shù)與所述ttl的初始值相同,或者,在使用倒數(shù)第二跳彈出的標(biāo)簽棧處理機(jī)制的情況下,所述標(biāo)簽棧的初始層數(shù)比所述ttl的初始值少1。
發(fā)送單元502用于向第二網(wǎng)絡(luò)設(shè)備發(fā)送所述第一請求報(bào)文,所述第一請求報(bào)文用于指示第二網(wǎng)絡(luò)設(shè)備在接收到所述第一請求報(bào)文,且所述第一請求報(bào)文中所攜帶的ttl的值減1為0的情況下,向第一網(wǎng)絡(luò)設(shè)備發(fā)送第一應(yīng)答報(bào)文,第一應(yīng)答報(bào)文通過ip路由到達(dá)所述第一網(wǎng)絡(luò)設(shè)備,所述第一應(yīng)答報(bào)文包括icmp應(yīng)答報(bào)文。
本實(shí)施例提供的第一網(wǎng)絡(luò)設(shè)備,通過配置mpls標(biāo)簽棧的初始層數(shù)與ttl的初始值相匹配的請求報(bào)文,使得第二網(wǎng)絡(luò)設(shè)備接收到該請求報(bào)文后,確定在ttl減1為0的情況下,,直接通過ip路由向第一網(wǎng)絡(luò)設(shè)備反饋應(yīng)答報(bào)文,從而避免了該應(yīng)答報(bào)文走mpls標(biāo)簽ttl超時流程,經(jīng)過其它轉(zhuǎn)發(fā)節(jié)點(diǎn)轉(zhuǎn)發(fā)至尾節(jié)點(diǎn)后再通過ip路由反饋給第一網(wǎng)絡(luò)設(shè)備,由于該應(yīng)答報(bào)文不再走ttl超時流程,因此減少了鏈路檢測的時延,提高了鏈路檢測的準(zhǔn)確性。
可選的,在本申請實(shí)施例的一種具體實(shí)現(xiàn)方式中,處理單元501具體用于獲取關(guān)鍵字信息,根據(jù)所述關(guān)鍵字信息生成用于路徑檢測的所述第一請求報(bào)文,其中,所述關(guān)鍵字信息用于指示所述第一網(wǎng)絡(luò)設(shè)備在發(fā)送路徑檢測報(bào)文的情況下,封裝的所述標(biāo)簽棧的初始層數(shù)與所述ttl的初始值相匹配。
可選的,在本申請實(shí)施例的另一種具體實(shí)現(xiàn)方式中,所述裝置還包括:接收單元,用于在預(yù)設(shè)時間內(nèi)接收所述第一應(yīng)答報(bào)文;處理單元501,還用于檢測在預(yù)設(shè)時間內(nèi)接收到所述第一應(yīng)答報(bào)文的情況下,確定所述第一網(wǎng)絡(luò)設(shè)備與所述第二網(wǎng)絡(luò)設(shè)備之間的鏈路正常;在未收到所述第一應(yīng)答報(bào)文的情況下,確定所述第一網(wǎng)絡(luò)設(shè)備與所述第二網(wǎng)絡(luò)設(shè)備之間的鏈路發(fā)生故障。
可選的,在本申請實(shí)施例的另一種具體實(shí)現(xiàn)方式中,第一網(wǎng)絡(luò)設(shè)備和第二網(wǎng)絡(luò)設(shè)備之間還包括第三網(wǎng)絡(luò)設(shè)備,處理單元501,具體用于獲取在確定所述第一網(wǎng)絡(luò)設(shè)備和所述第三網(wǎng)絡(luò)設(shè)備之間的鏈路正常的情況下,確定第三網(wǎng)絡(luò)設(shè)備與第二網(wǎng)絡(luò)設(shè)備之間的鏈路發(fā)生故障。
參見圖5b,示出了上述實(shí)施例中所涉及的第一網(wǎng)絡(luò)設(shè)備的一種可能的結(jié)構(gòu)示意圖。該第一網(wǎng)關(guān)設(shè)備500包括:接收器510、處理器520、發(fā)送器530、隨機(jī)存取存儲器540、只讀存儲器550以及總線560。其中,處理器520通過總線560分別耦接接收器510、發(fā)送器530、隨機(jī)存取存儲器540以及只讀存儲器550。其中,當(dāng)需要運(yùn)行該網(wǎng)絡(luò)設(shè)備500時,通過固化在只讀存儲器550中的基本輸入輸出系統(tǒng)或者嵌入式系統(tǒng)中的bootloader引導(dǎo)系統(tǒng)進(jìn)行啟動,引導(dǎo)第一網(wǎng)絡(luò)設(shè)備500進(jìn)入正常運(yùn)行狀態(tài)。在第一網(wǎng)絡(luò)設(shè)備500進(jìn)入正常運(yùn)行狀態(tài)后,在隨機(jī)存取存儲器540中運(yùn)行應(yīng)用程序和操作系統(tǒng),使得:
處理器520能夠生成用于路徑檢測的第一請求報(bào)文,所述第一請求報(bào)文中包括標(biāo)簽棧和ttl,且所述標(biāo)簽棧的初始層數(shù)與所述ttl的初始值相匹配。
發(fā)送器530用于通過ip路由向第二網(wǎng)絡(luò)設(shè)備發(fā)送所述第一請求報(bào)文,所述第一請求報(bào)文用于指示所述第二網(wǎng)絡(luò)設(shè)備在所述ttl的值減1為0的情況下,向所述第一網(wǎng)絡(luò)設(shè)備發(fā)送第一應(yīng)答報(bào)文。具體地,所述第一應(yīng)答報(bào)文通過ip路由到達(dá)所述第一網(wǎng)絡(luò)設(shè)備。
其中,處理器520可以是中央處理器(centralprocessingunit,簡稱:cpu),網(wǎng)絡(luò)處理器(networkprocessor,簡稱:np)或者cpu和np的組合。處理器還可以進(jìn)一步包括硬件芯片。上述硬件芯片可以是專用集成電路(application-specificintegratedcircuit,簡稱:asic),可編程邏輯器件(programmablelogicdevice,簡稱:pld)或其組合。上述pld可以是復(fù)雜可編程邏輯器件(complexprogrammablelogicdevice,簡稱:cpld),現(xiàn)場可編程邏輯門陣列(field-programmablegatearray,簡稱:fpga),通用陣列邏輯(genericarraylogic,簡稱:gal)或其任意組合。
本實(shí)施例的第一網(wǎng)絡(luò)設(shè)備500可對應(yīng)于上述圖3至圖4f所對應(yīng)的實(shí)施例中的pe1,并且,該第一網(wǎng)絡(luò)設(shè)備500中的處理器520、發(fā)送器530等可以實(shí)現(xiàn)圖3至圖4f所對應(yīng)的實(shí)施例中的第一網(wǎng)絡(luò)設(shè)備所具有的功能和/或所實(shí)施的各種步驟和方法。所述處理器520用于執(zhí)行圖5a所述第一網(wǎng)絡(luò)設(shè)備的處理單元501的所有操作,所述發(fā)送器530用于執(zhí)行圖5a所述第一網(wǎng)絡(luò)設(shè)備的發(fā)送單元502的所有操作。為了簡潔,在此不再贅述。
參見6a,示出了上述實(shí)施例中所涉及的第二網(wǎng)絡(luò)設(shè)備的一種可能的結(jié)構(gòu)示意圖。該第二網(wǎng)絡(luò)設(shè)備包括:接收單元601、處理單元602和發(fā)送單元603。
接收單元601用于獲取來自第一網(wǎng)絡(luò)設(shè)備的第一請求報(bào)文,所述第一請求報(bào)文中包括標(biāo)簽棧和ttl,且所述標(biāo)簽棧的初始層數(shù)與所述ttl的初始值相匹配。
處理單元602用于根據(jù)所述第一請求報(bào)文生成第一應(yīng)答報(bào)文。
發(fā)送單元603用于在所述ttl的值減1為0的情況下,通過ip路由向所述第一網(wǎng)絡(luò)設(shè)備發(fā)送所述第一應(yīng)答報(bào)文。
可選的,在本申請實(shí)施例的另一種具體實(shí)現(xiàn)方式中,所述第一請求報(bào)文每經(jīng)過一跳到達(dá)一個網(wǎng)絡(luò)設(shè)備時所述ttl的值對應(yīng)減1。發(fā)送單元603具體用于在所述ttl的值減1為0且所述第一請求報(bào)文中的目的ip地址與所述第二網(wǎng)絡(luò)設(shè)備的ip地址不同的情況下,所述第二網(wǎng)絡(luò)設(shè)備通過ip路由向所述第一網(wǎng)絡(luò)設(shè)備發(fā)送所述第一應(yīng)答報(bào)文。
可選的,發(fā)送單元603具體還用于在所述ttl的值減1為0,所述第一請求報(bào)文中的目的ip地址與所述第二網(wǎng)絡(luò)設(shè)備的ip地址相同,以及,所述第一請求報(bào)文是udp報(bào)文,且所述udp報(bào)文的端口號空閑的情況下,通過ip路由向所述第一網(wǎng)絡(luò)設(shè)備發(fā)送端口不可達(dá)的應(yīng)答報(bào)文,此時該應(yīng)答報(bào)文頭中的類型字段值為11,代碼字段值為0。
可選的,發(fā)送單元603還用于在所述ttl的值減1為0,所述第一請求報(bào)文中的目的ip地址與所述第二網(wǎng)絡(luò)設(shè)備的ip地址相同,以及,所述第一請求報(bào)文是icmp報(bào)文,且所述icmp報(bào)文頭的類型字段值為8、代碼字段值為0的情況下,通過ip路由向所述第一網(wǎng)絡(luò)設(shè)備發(fā)送端口不可達(dá)應(yīng)答報(bào)文,此時該應(yīng)答報(bào)文頭中的類型字段值為11,代碼字段值為0。
本實(shí)施例的第二網(wǎng)絡(luò)設(shè)備可以實(shí)施上述圖3至圖4f所對應(yīng)的實(shí)施例中的第二網(wǎng)絡(luò)設(shè)備中的各種實(shí)施功能和的步驟,所述第二網(wǎng)絡(luò)設(shè)備可以是上述實(shí)施例中的中間節(jié)點(diǎn)p1/p2,或者是尾節(jié)點(diǎn)pe2。為了簡潔,在此不再贅述。
參見圖6b,示出了上述實(shí)施例中所涉及的第二網(wǎng)絡(luò)設(shè)備的再一種可能的結(jié)構(gòu)示意圖。第二網(wǎng)絡(luò)設(shè)備600包括:接收器610、處理器620、發(fā)送器630、隨機(jī)存取存儲器640、只讀存儲器650以及總線660。其中,處理器620通過總線660分別耦接接收器610、發(fā)送器630、隨機(jī)存取存儲器640以及只讀存儲器650。其中,當(dāng)需要運(yùn)行終端設(shè)備600時,通過固化在只讀存儲器650中的基本輸入輸出系統(tǒng)或者嵌入式系統(tǒng)中的bootloader引導(dǎo)系統(tǒng)進(jìn)行啟動,引導(dǎo)終端設(shè)備600進(jìn)入正常運(yùn)行狀態(tài)。在終端設(shè)備600進(jìn)入正常運(yùn)行狀態(tài)后,在隨機(jī)存取存儲器640中運(yùn)行應(yīng)用程序和操作系統(tǒng),使得第二網(wǎng)絡(luò)設(shè)備能夠根據(jù)第一網(wǎng)絡(luò)設(shè)備發(fā)送的第一請求報(bào)文,控制第一應(yīng)答報(bào)文回程走ip路由的方式反饋第一網(wǎng)絡(luò)設(shè)備。
進(jìn)一步地,接收器610用于接收來自所述第一網(wǎng)絡(luò)設(shè)備的第一請求報(bào)文,且所述第一請求報(bào)文中包括存活時間ttl。發(fā)送器630用于在所述第一請求報(bào)文中所攜帶的ttl的值減1為0的情況下,向所述第一網(wǎng)絡(luò)設(shè)備發(fā)送第一應(yīng)答報(bào)文,所述第一應(yīng)答報(bào)文通過互聯(lián)網(wǎng)協(xié)議ip路由到達(dá)所述第一網(wǎng)絡(luò)設(shè)備。
本實(shí)施例的第二網(wǎng)絡(luò)設(shè)備600可對應(yīng)于上述圖3至圖4f、圖6a所對應(yīng)的實(shí)施例中的第二網(wǎng)絡(luò)設(shè)備,并且,該第二網(wǎng)絡(luò)設(shè)備600中的處理器620、發(fā)送器630等可以實(shí)現(xiàn)圖3至圖4f、圖6a所對應(yīng)的實(shí)施例中的第二網(wǎng)絡(luò)設(shè)備所具有的功能和/或所實(shí)施的各種步驟和方法。所述處理器620用于執(zhí)行圖6a所述第二網(wǎng)絡(luò)設(shè)備的處理單元602的所有操作,所述接收器610用于執(zhí)行圖6a所述第二網(wǎng)絡(luò)設(shè)備的接收單元601的所有操作,所述發(fā)送器630用于執(zhí)行圖6a所述第二網(wǎng)絡(luò)設(shè)備的發(fā)送單元603的所有操作。為了簡潔,在此不再贅述。
在本實(shí)施例中,第二網(wǎng)絡(luò)設(shè)備在獲取到第一請求報(bào)文之后,會根據(jù)報(bào)文頭中ttl的值,在ttl的值減1為0的情況下,直接通過ip路由反饋第一應(yīng)答報(bào)文,節(jié)約時延,避免了采用現(xiàn)有的應(yīng)答報(bào)文需要走mpls轉(zhuǎn)發(fā)流程走一圈回到首節(jié)點(diǎn)的反饋機(jī)制,并且在首節(jié)點(diǎn)第一網(wǎng)絡(luò)設(shè)備控制第一應(yīng)答報(bào)文采用回程直接走ip路由的方式,能夠準(zhǔn)確檢測出鏈路發(fā)生故障之處,提高了鏈路故障檢測的準(zhǔn)確性。
需要說明的是,本申請實(shí)施例所述的源節(jié)點(diǎn)或首節(jié)點(diǎn)可以是第一網(wǎng)絡(luò)設(shè)備,還可以是第二網(wǎng)絡(luò)設(shè)備,所述轉(zhuǎn)發(fā)節(jié)點(diǎn)或尾節(jié)點(diǎn)也可以是第一網(wǎng)絡(luò)設(shè)備,也可以是第二網(wǎng)絡(luò)設(shè)備,發(fā)送端pe1和接收端p1、p2、pe2可以為以無線方式進(jìn)行數(shù)據(jù)傳輸?shù)娜我庖环N網(wǎng)絡(luò)設(shè)備。所述網(wǎng)絡(luò)設(shè)備可以是任意一種具有無線收發(fā)功能的設(shè)備,包括但不限于:路由器、交換機(jī)等數(shù)通轉(zhuǎn)發(fā)設(shè)備。
參見圖7是本申請實(shí)施例提供的一種路徑檢測的系統(tǒng)示意圖。如圖7所示,該系統(tǒng)包括第一網(wǎng)絡(luò)設(shè)備500和第二網(wǎng)絡(luò)設(shè)備600,其中,第一網(wǎng)絡(luò)設(shè)備500為上述圖5a和5b所述的任一網(wǎng)絡(luò)設(shè)備。第二網(wǎng)絡(luò)設(shè)備600為上述圖6a和6b所述的任一網(wǎng)絡(luò)設(shè)備。有關(guān)系統(tǒng)中各設(shè)備的詳細(xì)描述,請參見上述圖5a-5b和圖6a-6b等相關(guān)描述,此處不再贅述。
其中,該系統(tǒng)中還可以包括其他的網(wǎng)絡(luò)設(shè)備,例如第三網(wǎng)絡(luò)設(shè)備、第四網(wǎng)絡(luò)設(shè)備等。所述其他網(wǎng)絡(luò)設(shè)備可以作為中間節(jié)點(diǎn)或尾節(jié)點(diǎn),以實(shí)現(xiàn)對首節(jié)點(diǎn)到尾節(jié)點(diǎn)之間sr隧道的檢測。
在具體實(shí)現(xiàn)中,本申請實(shí)施例還提供一種計(jì)算機(jī)存儲介質(zhì),其中,該計(jì)算機(jī)存儲介質(zhì)可存儲有程序,該程序執(zhí)行時可包括本申請?zhí)峁┑臋z測路徑的方法的各實(shí)施例中的部分或全部步驟。所述的存儲介質(zhì)可為磁碟、光盤、只讀存儲記憶體(read-onlymemory,簡稱rom)或隨機(jī)存儲記憶體(randomaccessmemory,簡稱ram)等。
本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明實(shí)施例中的技術(shù)可借助軟件加必需的通用硬件平臺的方式來實(shí)現(xiàn)?;谶@樣的理解,本申請實(shí)施例中的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品可以存儲在存儲介質(zhì)中,如rom/ram、磁碟、光盤等,包括若干指令用以使得一臺計(jì)算機(jī)設(shè)備(可以是個人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本申請各個實(shí)施例或者實(shí)施例的某些部分所述的方法。
另外,在本申請各個實(shí)施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨(dú)物理存在,也可以兩個或兩個以上單元集成在一個單元中。
本領(lǐng)域普通技術(shù)人員可以意識到,結(jié)合本文中所公開的實(shí)施例描述的各示例的單元及算法步驟,能夠以電子硬件、或者計(jì)算機(jī)軟件和電子硬件的結(jié)合來實(shí)現(xiàn)。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計(jì)約束條件。專業(yè)技術(shù)人員可以對每個特定的應(yīng)用來使用不同方法來實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。
應(yīng)理解,在本申請的各種實(shí)施例中,上述各過程的序號的大小并不意味著執(zhí)行順序的先后,各過程的執(zhí)行順序應(yīng)以其功能和內(nèi)在邏輯確定,而不應(yīng)對本發(fā)明實(shí)施例的實(shí)施過程構(gòu)成任何限定。
在本申請所提供的幾個實(shí)施例中,應(yīng)該理解到,所揭露的系統(tǒng)、裝置和方法,可以通過其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。
以上所述的本發(fā)明實(shí)施方式,并不構(gòu)成對本發(fā)明保護(hù)范圍的限定。任何在本發(fā)明的精神和原則之內(nèi)所作的修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。