本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種鏈路狀態(tài)的探測(cè)方法及裝置。
背景技術(shù):
IPSec(Internet Protocol Security,因特網(wǎng)協(xié)議安全性)是一種開(kāi)放標(biāo)準(zhǔn)的框架結(jié)構(gòu),可以為因特網(wǎng)上傳輸?shù)臄?shù)據(jù)提供高質(zhì)量的、可互操作的以及基于密碼學(xué)的安全保證。VPN(Virtual Private Network,虛擬專(zhuān)用網(wǎng))是一種遠(yuǎn)程訪問(wèn)技術(shù),可以通過(guò)在公用網(wǎng)絡(luò)上建立專(zhuān)用網(wǎng)絡(luò)來(lái)實(shí)現(xiàn)對(duì)通訊數(shù)據(jù)的加密。IPSec VPN技術(shù)是一種基于IPSec協(xié)議實(shí)現(xiàn)遠(yuǎn)程接入的VPN技術(shù),可以使通訊數(shù)據(jù)具有更好的安全性。
相關(guān)技術(shù)中,IPSec VPN設(shè)備之間可以建立多條鏈路,并在探測(cè)出當(dāng)前使用的鏈路出現(xiàn)異常時(shí),切換另一條正常的鏈路作為當(dāng)前使用的鏈路,以防止VPN網(wǎng)絡(luò)的中斷。在探測(cè)當(dāng)前使用的鏈路是否異常時(shí),相關(guān)技術(shù)需要先在IPSec VPN設(shè)備上進(jìn)行鏈路健康檢查的相關(guān)配置,在完成配置后,IPSec VPN設(shè)備可以發(fā)送檢查報(bào)文,并基于檢查報(bào)文的丟包率以及延時(shí)來(lái)判斷該鏈路是否異常。
相關(guān)技術(shù)雖然可以對(duì)IPSec VPN設(shè)備當(dāng)前使用的鏈路的狀態(tài)進(jìn)行探測(cè),但是當(dāng)鏈路健康檢查使用的協(xié)議與IPSec VPN設(shè)備使用的協(xié)議不同時(shí),基于檢查報(bào)文的丟包率以及延時(shí)判斷當(dāng)前鏈路是否異常的準(zhǔn)確率較低,此時(shí),相關(guān)技術(shù)無(wú)法準(zhǔn)確探測(cè)出當(dāng)前使用的鏈路的狀態(tài)。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明提供一種鏈路狀態(tài)的探測(cè)方法及裝置,來(lái)解決相關(guān)技術(shù)中當(dāng)鏈路健康檢查使用的協(xié)議與IPSec VPN設(shè)備使用的協(xié)議不同時(shí),相關(guān)技術(shù)無(wú)法基于檢查報(bào)文的丟包率以及延時(shí)準(zhǔn)確探測(cè)出當(dāng)前鏈路狀態(tài)的問(wèn)題。具體地,本發(fā)明是通過(guò)如下技術(shù)方案實(shí)現(xiàn)的:
根據(jù)本發(fā)明實(shí)施例的第一方面,提供一種鏈路狀態(tài)的探測(cè)方法,應(yīng)用于IPSec VPN設(shè)備,所述方法包括:
獲取指定ESP報(bào)文的報(bào)文序列號(hào)以及當(dāng)前流量窗口的上邊界,并判斷所述指定ESP報(bào)文的報(bào)文序列號(hào)是否大于所述當(dāng)前流量窗口的上邊界;其中,所述指定ESP報(bào)文為由同一對(duì)端設(shè)備發(fā)送的在本地成功解密的ESP報(bào)文;
若所述指定ESP報(bào)文的報(bào)文序列號(hào)大于所述當(dāng)前流量窗口的上邊界,則基于統(tǒng)計(jì)的所述指定ESP報(bào)文的亂序個(gè)數(shù)與流量窗口大小確定亂序率,以及基于統(tǒng)計(jì)的所述指定ESP報(bào)文的報(bào)文個(gè)數(shù)與所述流量窗口大小確定丟包率;
判斷所述亂序率以及丟包率是否分別大于預(yù)設(shè)的亂序閾值以及丟包閾值;
若所述亂序率以及所述丟包率均分別大于預(yù)設(shè)的亂序閾值以及丟包閾值,確定當(dāng)前使用的鏈路為狀態(tài)異常的鏈路;反之,確定當(dāng)前使用的鏈路為狀態(tài)正常的鏈路。
可選的,所述方法還包括:
基于接收到的所述指定ESP報(bào)文的報(bào)文序列號(hào)更新流量窗口邊界。
可選的,所述基于統(tǒng)計(jì)的所述指定ESP報(bào)文的亂序個(gè)數(shù)與流量窗口大小確定亂序率,包括:
統(tǒng)計(jì)所述指定ESP報(bào)文的亂序個(gè)數(shù);
將所述亂序個(gè)數(shù)除以流量窗口大小以得到亂序率。
可選的,所述基于統(tǒng)計(jì)的所述指定ESP報(bào)文的報(bào)文個(gè)數(shù)與所述流量窗口大小確定丟包率,包括:
統(tǒng)計(jì)所述指定ESP報(bào)文的報(bào)文個(gè)數(shù);
將所述報(bào)文個(gè)數(shù)減去指定數(shù)字序號(hào)內(nèi)接收到的所述指定ESP報(bào)文的報(bào)文個(gè)數(shù)得到第一待處理值,以及將所述流量窗口大小減去所述指定數(shù)字得到第二待處理值;
將所述第一待處理值除以所述第二待處理值以得到丟包率。
可選的,所述方法還包括:
若當(dāng)前使用的鏈路為狀態(tài)異常的鏈路,則向所述對(duì)端設(shè)備發(fā)送鏈路異常通知報(bào)文,以使所述對(duì)端設(shè)備基于所述鏈路異常通知報(bào)文降低其路由優(yōu)先級(jí)。
可選的,所述方法還包括:
定時(shí)向所述對(duì)端設(shè)備發(fā)送通告請(qǐng)求報(bào)文;
若接收到所述對(duì)端設(shè)備基于所述通告請(qǐng)求報(bào)文返回的通告回復(fù)報(bào)文,則將當(dāng)前的通告請(qǐng)求計(jì)數(shù)置0;
若未接收到所述對(duì)端設(shè)備基于所述通告請(qǐng)求報(bào)文返回的通告回復(fù)報(bào)文,則將當(dāng)前的通告請(qǐng)求計(jì)數(shù)加1;
若所述通告請(qǐng)求計(jì)數(shù)大于預(yù)設(shè)的通告請(qǐng)求計(jì)數(shù)閾值,則降低當(dāng)前使用的鏈路的路由優(yōu)先級(jí)。
根據(jù)本發(fā)明實(shí)施例的第二方面,提供一種鏈路狀態(tài)的探測(cè)裝置,應(yīng)用于IPSec VPN設(shè)備,所述裝置包括:
獲取模塊,用于獲取指定ESP報(bào)文的報(bào)文序列號(hào)以及當(dāng)前流量窗口的上邊界,并判斷所述指定ESP報(bào)文的報(bào)文序列號(hào)是否大于所述當(dāng)前流量窗口的上邊界;其中,所述指定ESP報(bào)文為由同一對(duì)端設(shè)備發(fā)送的在本地成功解密的ESP報(bào)文;
第一確定模塊,用于若所述指定ESP報(bào)文的報(bào)文序列號(hào)大于所述當(dāng)前流量窗口的上邊界,則基于統(tǒng)計(jì)的所述指定ESP報(bào)文的亂序個(gè)數(shù)與流量窗口大小確定亂序率,以及基于統(tǒng)計(jì)的所述指定ESP報(bào)文的報(bào)文個(gè)數(shù)與所述流量窗口大小確定丟包率;
判斷模塊,用于判斷所述亂序率以及丟包率是否分別大于預(yù)設(shè)的亂序閾值以及丟包閾值;
第二確定模塊,用于若所述亂序率以及所述丟包率均分別大于預(yù)設(shè)的亂序閾值以及丟包閾值,確定當(dāng)前使用的鏈路為狀態(tài)異常的鏈路;反之,確定當(dāng)前使用的鏈路為狀態(tài)正常的鏈路。
可選的,所述裝置還包括:
更新模塊,用于基于所述接收到的所述指定ESP報(bào)文的報(bào)文序列號(hào)更新流量窗口邊界。
可選的,所述第一確定模塊具體用于:
統(tǒng)計(jì)所述指定ESP報(bào)文的亂序個(gè)數(shù);
將所述亂序個(gè)數(shù)除以流量窗口大小以得到亂序率。
可選的,所述第一確定模塊具體用于:
統(tǒng)計(jì)所述指定ESP報(bào)文的報(bào)文個(gè)數(shù);
將所述報(bào)文個(gè)數(shù)減去指定數(shù)字序號(hào)內(nèi)接收到的所述指定ESP報(bào)文的報(bào)文個(gè)數(shù)得到第一待處理值,以及將所述流量窗口大小減去所述指定數(shù)字得到第二待處理值;
將所述第一待處理值除以所述第二待處理值以得到丟包率。
可選的,所述裝置還包括:
發(fā)送模塊,用于若當(dāng)前使用的鏈路為狀態(tài)異常的鏈路,則向所述對(duì)端設(shè)備發(fā)送鏈路異常通知報(bào)文,以使所述對(duì)端設(shè)備基于所述鏈路異常通知報(bào)文降低其路由優(yōu)先級(jí)。
可選的,所述發(fā)送模塊進(jìn)一步用于:
定時(shí)向所述對(duì)端設(shè)備發(fā)送通告請(qǐng)求報(bào)文;
所述裝置還包括:
設(shè)置模塊,用于若接收到所述對(duì)端設(shè)備基于所述通告請(qǐng)求報(bào)文返回的通告回復(fù)報(bào)文,則將當(dāng)前的通告請(qǐng)求計(jì)數(shù)置0;以及若未接收到所述對(duì)端設(shè)備基于所述通告請(qǐng)求報(bào)文返回的通告回復(fù)報(bào)文,則將當(dāng)前的通告請(qǐng)求計(jì)數(shù)加1;
降低模塊,用于若所述通告請(qǐng)求計(jì)數(shù)大于預(yù)設(shè)的通告請(qǐng)求計(jì)數(shù)閾值,則降低當(dāng)前使用的鏈路的路由優(yōu)先級(jí)。
在本發(fā)明中,IPSec VPN設(shè)備之間可以基于實(shí)際交互的ESP報(bào)文來(lái)探測(cè)當(dāng)前鏈路的狀態(tài),由于通過(guò)ESP報(bào)文可以探測(cè)當(dāng)前鏈路的實(shí)際質(zhì)量,因此,可以有效的解決相關(guān)技術(shù)基于檢查報(bào)文的丟包率和延時(shí)無(wú)法準(zhǔn)確探測(cè)出當(dāng)前鏈路狀態(tài)的問(wèn)題。
附圖說(shuō)明
圖1是IPSec VPN設(shè)備之間基于多條鏈路進(jìn)行數(shù)據(jù)交互的一個(gè)應(yīng)用場(chǎng)景圖;
圖2是為本發(fā)明一實(shí)施例示出的一種鏈路狀態(tài)的探測(cè)方法的流程圖;
圖3是本發(fā)明鏈路狀態(tài)的探測(cè)裝置所在設(shè)備的一種硬件結(jié)構(gòu)圖;
圖4是本發(fā)明鏈路狀態(tài)的探測(cè)裝置的一個(gè)實(shí)施例框圖。
具體實(shí)施方式
這里將詳細(xì)地對(duì)示例性實(shí)施例進(jìn)行說(shuō)明,其示例表示在附圖中。下面的描述涉及附圖時(shí),除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實(shí)施例中所描述的實(shí)施方式并不代表與本發(fā)明相一致的所有實(shí)施方式。相反,它們僅是與如所附權(quán)利要求書(shū)中所詳述的、本發(fā)明的一些方面相一致的裝置和方法的例子。
在本發(fā)明使用的術(shù)語(yǔ)是僅僅出于描述特定實(shí)施例的目的,而非旨在限制本發(fā)明。在本發(fā)明和所附權(quán)利要求書(shū)中所使用的單數(shù)形式的“一種”、“所述”和“該”也旨在包括多數(shù)形式,除非上下文清楚地表示其他含義。還應(yīng)當(dāng)理解,本文中使用的術(shù)語(yǔ)“和/或”是指并包含一個(gè)或多個(gè)相關(guān)聯(lián)的列出項(xiàng)目的任何或所有可能組合。
應(yīng)當(dāng)理解,盡管在本發(fā)明可能采用術(shù)語(yǔ)第一、第二、第三等來(lái)描述各種信息,但這些信息不應(yīng)限于這些術(shù)語(yǔ)。這些術(shù)語(yǔ)僅用來(lái)將同一類(lèi)型的信息彼此區(qū)分開(kāi)。例如,在不脫離本發(fā)明范圍的情況下,第一信息也可以被稱為第二信息,類(lèi)似地,第二信息也可以被稱為第一信息。取決于語(yǔ)境,如在此所使用的詞語(yǔ)“如果”可以被解釋成為“在……時(shí)”或“當(dāng)……時(shí)”或“響應(yīng)于確定”。
請(qǐng)參見(jiàn)圖1,為IPSec VPN設(shè)備之間基于多條鏈路進(jìn)行數(shù)據(jù)交互的一個(gè)應(yīng)用場(chǎng)景圖。其中,設(shè)備A和設(shè)備B可以為IPSec VPN設(shè)備,內(nèi)網(wǎng)服務(wù)器1可以與設(shè)備A相連,并通過(guò)設(shè)備A與設(shè)備B之間的VPN連接,實(shí)現(xiàn)與內(nèi)網(wǎng)服務(wù)器2的數(shù)據(jù)交互。設(shè)備A和設(shè)備B之間可以存在多條物理鏈路,設(shè)備A和設(shè)備B之間可以基于該多條物理鏈路建立多條VPN連接,以確保在當(dāng)前使用的鏈路發(fā)生狀態(tài)異常的情況下,可以將鏈路切換至另一條狀態(tài)正常的鏈路,以確保數(shù)據(jù)交互不發(fā)生中斷。
為了探測(cè)當(dāng)前使用的鏈路的狀態(tài),設(shè)備A和設(shè)備B可以為當(dāng)前使用的鏈路配置健康檢查,并在健康檢查出現(xiàn)異常時(shí),將當(dāng)前使用的鏈路進(jìn)行切換。具體地,設(shè)備A或設(shè)備B可以向?qū)Χ嗽O(shè)備發(fā)送檢查報(bào)文,并計(jì)算一段時(shí)間內(nèi)的檢查報(bào)文的丟包率和延時(shí),當(dāng)一段時(shí)間內(nèi)的檢查報(bào)文的丟包率和延時(shí)超過(guò)預(yù)設(shè)的健康閾值時(shí),可以確定針對(duì)當(dāng)前鏈路的健康檢查出現(xiàn)異常,即當(dāng)前使用的鏈路為狀態(tài)異常的鏈路。
由上述內(nèi)容可知,相關(guān)技術(shù)可以通過(guò)檢查報(bào)文實(shí)現(xiàn)對(duì)IPSec VPN設(shè)備當(dāng)前使用的鏈路的狀態(tài)的探測(cè),但是當(dāng)鏈路健康檢查使用的協(xié)議與IPSec VPN設(shè)備使用的協(xié)議不同時(shí),基于檢查報(bào)文的丟包率以及延時(shí)判斷當(dāng)前使用的鏈路是否異常的準(zhǔn)確率較低,此時(shí),相關(guān)技術(shù)無(wú)法準(zhǔn)確探測(cè)出當(dāng)前使用的鏈路的狀態(tài)。
例如,可以假設(shè)檢查報(bào)文為基于ICMP(Internet Control Message Protocol,控制報(bào)文協(xié)議)協(xié)議傳輸?shù)膱?bào)文,IPSec VPN設(shè)備之間交互的報(bào)文為基于ESP(Encapsulate Security Payload,封裝安全載荷)或UDP(User Datagram Protocol,用戶數(shù)據(jù)報(bào)協(xié)議)協(xié)議傳輸?shù)膱?bào)文,由于基于ICMP協(xié)議傳輸?shù)膱?bào)文的丟包率可能高于基于ESP或UDP協(xié)議傳輸?shù)膱?bào)文,因此,基于檢查報(bào)文的丟包率無(wú)法準(zhǔn)確探測(cè)當(dāng)前使用的鏈路的狀態(tài)。
有鑒于此,本發(fā)明提供了一種鏈路狀態(tài)的探測(cè)方法,來(lái)解決相關(guān)技術(shù)中當(dāng)鏈路健康檢查使用的協(xié)議與IPSec VPN設(shè)備使用的協(xié)議不同時(shí),相關(guān)技術(shù)無(wú)法基于檢查報(bào)文的丟包率以及延時(shí)準(zhǔn)確探測(cè)出當(dāng)前鏈路狀態(tài)的問(wèn)題。在本發(fā)明中,IPSec VPN設(shè)備可以獲取指定ESP報(bào)文的報(bào)文序列號(hào)以及當(dāng)前流量窗口的上邊界,并判斷指定ESP報(bào)文的報(bào)文序列號(hào)是否大于當(dāng)前流量窗口的上邊界,在指定ESP報(bào)文的報(bào)文序列號(hào)大于當(dāng)前流量窗口的上邊界的情況下,IPSec VPN設(shè)備可以基于統(tǒng)計(jì)的指定ESP報(bào)文的亂序個(gè)數(shù)與流量窗口大小確定亂序率,以及基于統(tǒng)計(jì)的指定ESP報(bào)文的報(bào)文個(gè)數(shù)與流量窗口大小確定丟包率,然后,IPSec VPN設(shè)備可以判斷亂序率以及丟包率是否分別大于預(yù)設(shè)的亂序閾值以及丟包閾值,并在該亂序率以及丟包率均分別大于預(yù)設(shè)的亂序閾值與丟包閾值時(shí),確定當(dāng)前使用的鏈路為狀態(tài)異常的鏈路;以及在該亂序率以及丟包率未均分別大于預(yù)設(shè)的亂序閾值與丟包閾值時(shí),確定當(dāng)前使用的鏈路為狀態(tài)正常的鏈路。
在本發(fā)明中,IPSec VPN設(shè)備之間可以基于實(shí)際交互的ESP報(bào)文來(lái)探測(cè)當(dāng)前鏈路的狀態(tài),由于通過(guò)ESP報(bào)文可以探測(cè)當(dāng)前鏈路的實(shí)際質(zhì)量,因此,可以有效的解決相關(guān)技術(shù)基于檢查報(bào)文的丟包率和延時(shí)無(wú)法準(zhǔn)確探測(cè)出當(dāng)前鏈路狀態(tài)的問(wèn)題。
請(qǐng)參見(jiàn)圖2,為本發(fā)明一實(shí)施例示出的一種鏈路狀態(tài)的探測(cè)方法的流程圖,該實(shí)施例應(yīng)用于IPSec VPN設(shè)備,包括以下步驟:
步驟201:獲取指定ESP報(bào)文的報(bào)文序列號(hào)以及當(dāng)前流量窗口的上邊界,并判斷所述指定ESP報(bào)文的報(bào)文序列號(hào)是否大于所述當(dāng)前流量窗口的上邊界;其中,所述指定ESP報(bào)文為由同一對(duì)端設(shè)備發(fā)送的在本地成功解密的ESP報(bào)文。
在本發(fā)明中,上述IPSec VPN設(shè)備可以獲取指定ESP報(bào)文的報(bào)文序列號(hào)以及當(dāng)前流量窗口的上邊界,并判斷該指定ESP報(bào)文的報(bào)文序列號(hào)是否大于當(dāng)前流量窗口的上邊界;其中,所述指定ESP報(bào)文為由同一對(duì)端設(shè)備發(fā)送的在本地成功解密的ESP報(bào)文。
在本發(fā)明中,上述IPSec VPN設(shè)備在與對(duì)端設(shè)備成功建立IPSec VPN連接后,可以接收到該對(duì)端設(shè)備發(fā)送的ESP報(bào)文,并在本地對(duì)該ESP報(bào)文進(jìn)行解密,在解密成功后,該解密成功后的ESP報(bào)文為上述指定ESP報(bào)文。
其中,IPSec VPN設(shè)備在本地對(duì)ESP報(bào)文進(jìn)行解密的技術(shù)為現(xiàn)有技術(shù),故本發(fā)明在此不再贅述。
在獲取到上述指定ESP報(bào)文后,上述IPSec VPN設(shè)備可以獲取上述指定ESP報(bào)文的報(bào)文序列號(hào),并判斷上述指定ESP報(bào)文的報(bào)文序列號(hào)是否大于獲取的當(dāng)前流量窗口的上邊界。
在本發(fā)明中,在IPSec VPN設(shè)備之間成功建立IPSec VPN連接后,可以設(shè)置該連接的流量窗口大小,例如,可以為512,在設(shè)置了該連接的流量窗口大小后,針對(duì)該連接的初始流量窗口的上邊界和下邊界可以分別為0和511。
可以假設(shè)當(dāng)前流量窗口的上邊界為511,若獲取的上述指定ESP報(bào)文的報(bào)文序列號(hào)為516,則可以確定上述指定ESP報(bào)文的報(bào)文序列號(hào)大于當(dāng)前流量窗口的上邊界;若獲取的上述指定ESP報(bào)文的報(bào)文序列號(hào)為490,則可以確定上述指定ESP報(bào)文的報(bào)文序列號(hào)不大于當(dāng)前流量窗口的上邊界。
在本發(fā)明中,上述IPSec VPN設(shè)備可以基于接收到的上述指定ESP報(bào)文的報(bào)文序列號(hào)來(lái)更新流量窗口邊界。
可以假設(shè)當(dāng)前流量窗口的上邊界為511,下邊界為0,若獲取的上述指定ESP報(bào)文的報(bào)文序列號(hào)為516,則上述IPSec VPN設(shè)備可以基于該報(bào)文序列號(hào)將流量窗口的上邊界更新為516,下邊界更新為5。
步驟202:若所述指定ESP報(bào)文的報(bào)文序列號(hào)大于所述當(dāng)前流量窗口的上邊界,則基于統(tǒng)計(jì)的所述指定ESP報(bào)文的亂序個(gè)數(shù)與流量窗口大小確定亂序率,以及基于統(tǒng)計(jì)的所述指定ESP報(bào)文的報(bào)文個(gè)數(shù)與所述流量窗口大小確定丟包率。
在本發(fā)明中,若上述指定ESP報(bào)文的報(bào)文序列號(hào)大于當(dāng)前流量窗口的上邊界,則IPSec VPN設(shè)備可以基于統(tǒng)計(jì)的指定ESP報(bào)文的亂序個(gè)數(shù)與流量窗口大小確定亂序率。
具體地,上述IPSec VPN設(shè)備可以先統(tǒng)計(jì)指定ESP報(bào)文的亂序個(gè)數(shù),然后,可以將該亂序個(gè)數(shù)除以流量窗口大小以得到亂序率。
在本發(fā)明中,在獲取到上述指定ESP報(bào)文的報(bào)文序列號(hào)后,可以判斷該報(bào)文序列號(hào)是否小于本地接收到的最新指定ESP報(bào)文的報(bào)文序列號(hào),若該報(bào)文序列號(hào)小于本地接收到的最新指定ESP報(bào)文的報(bào)文序列號(hào),則可以確定上述指定ESP報(bào)文為亂序報(bào)文。
上述IPSec VPN設(shè)備可以對(duì)亂序報(bào)文的個(gè)數(shù)進(jìn)行統(tǒng)計(jì),以得到亂序報(bào)文個(gè)數(shù)的統(tǒng)計(jì)值。
在一個(gè)實(shí)施例中,上述指定ESP報(bào)文的報(bào)文序列號(hào)可以為514,當(dāng)前流量窗口的上邊界可以為511,則可以確定上述指定ESP報(bào)文的報(bào)文序列號(hào)大于當(dāng)前流量窗口的上邊界,此時(shí),上述IPSec VPN設(shè)備可以基于統(tǒng)計(jì)的指定ESP報(bào)文的亂序個(gè)數(shù)與流量窗口大小確定亂序率??梢约僭O(shè)統(tǒng)計(jì)的指定ESP報(bào)文的亂序個(gè)數(shù)為50,流量窗口大小為512,則可以確定亂序率為
在本發(fā)明中,當(dāng)上述指定ESP報(bào)文的報(bào)文序列號(hào)大于當(dāng)前流量窗口的上邊界時(shí),上述IPSec VPN設(shè)備還可以基于統(tǒng)計(jì)的指定ESP報(bào)文的報(bào)文個(gè)數(shù)與流量窗口大小確定丟包率。
具體地,上述IPSec VPN設(shè)備可以先統(tǒng)計(jì)指定ESP報(bào)文的報(bào)文個(gè)數(shù),然后將該報(bào)文個(gè)數(shù)減去指定數(shù)字序號(hào)內(nèi)接收到的上述指定ESP報(bào)文的報(bào)文個(gè)數(shù)得到第一待處理值,以及將流量窗口大小減去上述指定數(shù)字得到第二待處理值,然后上述IPSec VPN設(shè)備可以將該第一待處理值除以第二待處理值以得到丟包率。
其中,上述指定數(shù)字可以由用戶自定義設(shè)置,也可以為設(shè)備默認(rèn)值,本發(fā)明對(duì)此不做限制。在一個(gè)實(shí)施例中,上述指定數(shù)字可以為32。
在一個(gè)實(shí)施例中,上述指定ESP報(bào)文的報(bào)文序列號(hào)可以為514,當(dāng)前流量窗口的上邊界可以為511,則可以確定上述指定ESP報(bào)文的報(bào)文序列號(hào)大于當(dāng)前流量窗口的上邊界,此時(shí),上述IPSec VPN設(shè)備可以基于統(tǒng)計(jì)的ESP報(bào)文的報(bào)文個(gè)數(shù)與流量窗口大小確定丟包率??梢约僭O(shè)統(tǒng)計(jì)的ESP報(bào)文的報(bào)文個(gè)數(shù)為80,流量窗口大小為512,上述指定數(shù)字為32,在32序號(hào)內(nèi)接收到的上述指定ESP報(bào)文的報(bào)文個(gè)數(shù)為30,則丟包率可以為
步驟203:判斷所述亂序率以及丟包率是否分別大于預(yù)設(shè)的亂序閾值以及丟包閾值。
步驟204:若所述亂序率以及所述丟包率均分別大于預(yù)設(shè)的亂序閾值以及丟包閾值,確定當(dāng)前使用的鏈路為狀態(tài)異常的鏈路;反之,確定當(dāng)前使用的鏈路為狀態(tài)正常的鏈路。
在本發(fā)明中,在獲得了亂序率以及丟包率后,可以分別判斷該亂序率是否大于預(yù)設(shè)的亂序閾值,以及該丟包率是否大于預(yù)設(shè)的丟包閾值。其中,該預(yù)設(shè)的亂序閾值與該預(yù)設(shè)的丟包閾值可以由用戶自定義設(shè)置,也可以為設(shè)備的默認(rèn)值,兩者可以相同,也可以不相同,本發(fā)明對(duì)此不做限制。
在一個(gè)實(shí)施例中,可以假設(shè)亂序率為丟包率為若預(yù)設(shè)的亂序閾值為0.05、預(yù)設(shè)的丟包閾值為0.06,則可以確定亂序率大于預(yù)設(shè)的亂序閾值,且丟包率大于預(yù)設(shè)的丟包閾值;若預(yù)設(shè)的亂序閾值為0.05,預(yù)設(shè)的丟包閾值為0.2,則可以確定亂序率大于預(yù)設(shè)的亂序閾值,以及丟包率小于預(yù)設(shè)的丟包閾值。
在本發(fā)明中,若亂序率以及丟包率均大于預(yù)設(shè)的亂序閾值以及丟包閾值,則可以確定當(dāng)前使用的鏈路為狀態(tài)異常的鏈路;反之,可以確定當(dāng)前使用的鏈路為狀態(tài)正常的鏈路。
在本發(fā)明中,在確定了當(dāng)前使用的鏈路為狀態(tài)異常的鏈路后,IPSec VPN設(shè)備可以向上述對(duì)端設(shè)備發(fā)送鏈路異常通知報(bào)文,以使該對(duì)端設(shè)備基于該鏈路異常通知報(bào)文降低其路由優(yōu)先級(jí)。
IPSec VPN設(shè)備在完成上述鏈路異常通知報(bào)文的發(fā)送之后,可以接收到上述對(duì)端設(shè)備回復(fù)的鏈路異常確認(rèn)報(bào)文,IPSec VPN設(shè)備可以基于該鏈路異常確認(rèn)報(bào)文將本地的路由優(yōu)先級(jí)降至最低。
若IPSec VPN設(shè)備在一段時(shí)間,例如1秒內(nèi),未接收到上述對(duì)端設(shè)備針對(duì)上述鏈路異常報(bào)文回復(fù)的鏈路異常確認(rèn)報(bào)文,則可以向上述對(duì)端設(shè)備重新發(fā)送上述鏈路異常確認(rèn)報(bào)文,若IPSec VPN設(shè)備一段時(shí)間內(nèi),仍未接收到上述對(duì)端設(shè)備回復(fù)的上述鏈路異常確認(rèn)報(bào)文,則可以再次向上述對(duì)端設(shè)備重新發(fā)送上述鏈路異常通知報(bào)文。若IPSec VPN設(shè)備在向上述對(duì)端設(shè)備發(fā)送了若干次,例如3次,上述鏈路異常通知報(bào)文后,仍未收到上述對(duì)端設(shè)備回復(fù)的上述鏈路異常確認(rèn)報(bào)文,則可以不再向上述對(duì)端設(shè)備發(fā)送上述鏈路通知報(bào)文,并自行將本地路由優(yōu)先級(jí)降至最低。
在一個(gè)實(shí)施例中,上述鏈路異常通知報(bào)文可以為擴(kuò)展的ESP報(bào)文,其中,該擴(kuò)展的ESP報(bào)文可以為相關(guān)人員自定義的ESP報(bào)文。
在一個(gè)實(shí)施例中,可以假設(shè)上述鏈路異常通知報(bào)文為擴(kuò)展的ESP報(bào)文,則該擴(kuò)展的ESP報(bào)文的協(xié)議頭部Next Header的封裝數(shù)據(jù)類(lèi)型可以為254,該報(bào)文攜帶的負(fù)載部分的數(shù)據(jù)格式可以為:
其中,該數(shù)據(jù)格式的第一行可以為函數(shù)名稱;第二行和第三行可以標(biāo)識(shí)一個(gè)來(lái)回交互;第四行可以表示亂序率為第五行可以表示丟包率為第六行可以為另一函數(shù)名稱;第七行可以表示該報(bào)文為上述IPSec VPN設(shè)備發(fā)送至上述對(duì)端設(shè)備的鏈路異常通知報(bào)文。
當(dāng)上述鏈路異常通知報(bào)文為擴(kuò)展ESP報(bào)文時(shí),與該報(bào)文對(duì)應(yīng)的鏈路異常確認(rèn)報(bào)文可以同樣為擴(kuò)展ESP報(bào)文,在一個(gè)實(shí)施例中,與上述鏈路異常通知報(bào)文對(duì)應(yīng)的鏈路異常確認(rèn)報(bào)文的協(xié)議頭部Next Header的封裝數(shù)據(jù)類(lèi)型可以為254,攜帶的負(fù)載部分的數(shù)據(jù)格式可以為:
上述鏈路異常確認(rèn)報(bào)文攜帶的負(fù)載部分的數(shù)據(jù)格式的前三行以及第六行與上述鏈路異常通知報(bào)文的相同,故本發(fā)明在此不再贅述;上述鏈路異常確認(rèn)報(bào)文攜帶的負(fù)載部分的數(shù)據(jù)格式的第四行、第五行以及第七行可以表示該報(bào)文為對(duì)端設(shè)備發(fā)送至上述IPSec VPN設(shè)備的鏈路異常確認(rèn)報(bào)文。
在本發(fā)明中,上述IPSec VPN設(shè)備可以定時(shí)向上述對(duì)端設(shè)備發(fā)送通告請(qǐng)求報(bào)文,若接收到上述對(duì)端設(shè)備基于該通告請(qǐng)求報(bào)文返回的通告回復(fù)報(bào)文,則可以將當(dāng)前的通告請(qǐng)求計(jì)數(shù)置0;若未接收到上述對(duì)端設(shè)備基于該通告請(qǐng)求報(bào)文返回的通告回復(fù)報(bào)文,則可以將當(dāng)前的通過(guò)請(qǐng)求計(jì)數(shù)加1,當(dāng)通告請(qǐng)求計(jì)數(shù)大于預(yù)設(shè)的通告請(qǐng)求計(jì)數(shù)閾值,例如3時(shí),IPSec VPN設(shè)備可以降低當(dāng)前使用的鏈路的路由優(yōu)先級(jí)。
在一個(gè)實(shí)施例中,上述通告請(qǐng)求報(bào)文可以為擴(kuò)展的ESP報(bào)文,其中,該擴(kuò)展的ESP報(bào)文可以為相關(guān)人員自定義的ESP報(bào)文。
在一個(gè)實(shí)施例中,可以假設(shè)上述通告請(qǐng)求報(bào)文為擴(kuò)展的ESP報(bào)文,則該擴(kuò)展的ESP報(bào)文的協(xié)議頭部Next Header的封裝數(shù)據(jù)類(lèi)型可以為254,該報(bào)文攜帶的負(fù)載部分的數(shù)據(jù)格式可以為:
其中,該數(shù)據(jù)格式的第一行可以為函數(shù)名稱;第二行和第三行可以標(biāo)識(shí)一個(gè)來(lái)回交互;第四行、第五行為相關(guān)人員自定義設(shè)置,不表示特殊含義;第六行可以為另一函數(shù)名稱;第七行可以表示該報(bào)文為上述IPSec VPN設(shè)備發(fā)送至上述對(duì)端設(shè)備的通告請(qǐng)求報(bào)文。
當(dāng)上述通告請(qǐng)求報(bào)文為擴(kuò)展ESP報(bào)文時(shí),與該報(bào)文對(duì)應(yīng)的通告回復(fù)報(bào)文可以同樣為擴(kuò)展ESP報(bào)文,在一個(gè)實(shí)施例中,與上述通告請(qǐng)求報(bào)文對(duì)應(yīng)的通告回復(fù)報(bào)文的協(xié)議頭部Next Header的封裝數(shù)據(jù)類(lèi)型可以為254,攜帶的負(fù)載部分的數(shù)據(jù)格式可以為:
上述通告回復(fù)報(bào)文攜帶的負(fù)載部分的數(shù)據(jù)格式的前六行與上述通告請(qǐng)求報(bào)文的相同,故本發(fā)明在此不再贅述;第七行可以表示該報(bào)文為上述對(duì)端設(shè)備發(fā)送至上述IPSec VPN設(shè)備的通告回復(fù)報(bào)文。
在本發(fā)明中,IPSec VPN設(shè)備可以獲取指定ESP報(bào)文的報(bào)文序列號(hào)以及當(dāng)前流量窗口的上邊界,并判斷指定ESP報(bào)文的報(bào)文序列號(hào)是否大于當(dāng)前流量窗口的上邊界,在指定ESP報(bào)文的報(bào)文序列號(hào)大于當(dāng)前流量窗口的上邊界的情況下,IPSec VPN設(shè)備可以基于統(tǒng)計(jì)的指定ESP報(bào)文的亂序個(gè)數(shù)與流量窗口大小確定亂序率,以及基于統(tǒng)計(jì)的指定ESP報(bào)文的報(bào)文個(gè)數(shù)與流量窗口大小確定丟包率,然后,IPSec VPN設(shè)備可以判斷亂序率以及丟包率是否分別大于預(yù)設(shè)的亂序閾值以及丟包閾值,并在該亂序率以及丟包率均分別大于預(yù)設(shè)的亂序閾值與丟包閾值時(shí),確定當(dāng)前使用的鏈路為狀態(tài)異常的鏈路;以及在該亂序率以及丟包率未均分別大于預(yù)設(shè)的亂序閾值與丟包閾值時(shí),確定當(dāng)前使用的鏈路為狀態(tài)正常的鏈路。
在本發(fā)明中,IPSec VPN設(shè)備之間可以基于實(shí)際交互的ESP報(bào)文來(lái)探測(cè)當(dāng)前鏈路的狀態(tài),由于通過(guò)ESP報(bào)文可以探測(cè)當(dāng)前鏈路的實(shí)際質(zhì)量,因此,可以有效的解決相關(guān)技術(shù)基于檢查報(bào)文的丟包率和延時(shí)無(wú)法準(zhǔn)確探測(cè)出當(dāng)前鏈路狀態(tài)的問(wèn)題。
與前述鏈路狀態(tài)的探測(cè)方法的實(shí)施例相對(duì)應(yīng),本發(fā)明還提供了鏈路狀態(tài)的探測(cè)裝置的實(shí)施例。
本發(fā)明鏈路狀態(tài)的探測(cè)裝置的實(shí)施例可以應(yīng)用在IPSec VPN設(shè)備。裝置實(shí)施例可以通過(guò)軟件實(shí)現(xiàn),也可以通過(guò)硬件或者軟硬件結(jié)合的方式實(shí)現(xiàn)。以軟件實(shí)現(xiàn)為例,作為一個(gè)邏輯意義上的裝置,是通過(guò)其所在設(shè)備的處理器將非易失性存儲(chǔ)器中對(duì)應(yīng)的計(jì)算機(jī)程序指令讀取到內(nèi)存中運(yùn)行形成的。從硬件層面而言,如圖3所示,為本發(fā)明鏈路狀態(tài)的探測(cè)裝置所在設(shè)備的一種硬件結(jié)構(gòu)圖,除了圖3所示的處理器、內(nèi)存、網(wǎng)絡(luò)接口、以及非易失性存儲(chǔ)器之外,實(shí)施例中裝置所在的設(shè)備通常還可以包括其他硬件,如負(fù)責(zé)處理報(bào)文的轉(zhuǎn)發(fā)芯片等等。
請(qǐng)參考圖4,為本發(fā)明鏈路狀態(tài)的探測(cè)裝置的一個(gè)實(shí)施例框圖:
該裝置可以包括:獲取模塊410、第一確定模塊420、判斷模塊430以及第二確定模塊440。
其中,獲取模塊410,用于獲取指定ESP報(bào)文的報(bào)文序列號(hào)以及當(dāng)前流量窗口的上邊界,并判斷所述指定ESP報(bào)文的報(bào)文序列號(hào)是否大于所述當(dāng)前流量窗口的上邊界;其中,所述指定ESP報(bào)文為由同一對(duì)端設(shè)備發(fā)送的在本地成功解密的ESP報(bào)文;
第一確定模塊420,用于若所述指定ESP報(bào)文的報(bào)文序列號(hào)大于所述當(dāng)前流量窗口的上邊界,則基于統(tǒng)計(jì)的所述指定ESP報(bào)文的亂序個(gè)數(shù)與流量窗口大小確定亂序率,以及基于統(tǒng)計(jì)的所述指定ESP報(bào)文的報(bào)文個(gè)數(shù)與所述流量窗口大小確定丟包率;
判斷模塊430,用于判斷所述亂序率以及丟包率是否分別大于預(yù)設(shè)的亂序閾值以及丟包閾值;
第二確定模塊440,用于若所述亂序率以及所述丟包率均分別大于預(yù)設(shè)的亂序閾值以及丟包閾值,確定當(dāng)前使用的鏈路為狀態(tài)異常的鏈路;反之,確定當(dāng)前使用的鏈路為狀態(tài)正常的鏈路。
在一個(gè)可選的實(shí)現(xiàn)方式中,所述裝置還可以包括(圖4中未示出):
更新模塊,用于基于接收到的所述指定ESP報(bào)文的報(bào)文序列號(hào)更新流量窗口邊界。
在一個(gè)可選的實(shí)現(xiàn)方式中,所述第一確定模塊420可以具體用于:
統(tǒng)計(jì)所述指定ESP報(bào)文的亂序個(gè)數(shù);
將所述亂序個(gè)數(shù)除以流量窗口大小以得到亂序率。
在一個(gè)可選的實(shí)現(xiàn)方式中,所述第一確定模塊420可以具體用于:
統(tǒng)計(jì)所述指定ESP報(bào)文的報(bào)文個(gè)數(shù);
將所述報(bào)文個(gè)數(shù)減去指定數(shù)字序號(hào)內(nèi)接收到的所述指定ESP報(bào)文的報(bào)文個(gè)數(shù)得到第一待處理值,以及將所述流量窗口大小減去所述指定數(shù)字得到第二待處理值;
將所述第一待處理值除以所述第二待處理值以得到丟包率。
在一個(gè)可選的實(shí)現(xiàn)方式中,所述裝置還可以包括(圖4中未示出):
發(fā)送模塊,用于若當(dāng)前使用的鏈路為狀態(tài)異常的鏈路,則向所述對(duì)端設(shè)備發(fā)送鏈路異常通知報(bào)文,以使所述對(duì)端設(shè)備基于所述鏈路異常通知報(bào)文降低其路由優(yōu)先級(jí)。
在一個(gè)可選的實(shí)現(xiàn)方式中,所述發(fā)送模塊可以進(jìn)一步用于:
定時(shí)向所述對(duì)端設(shè)備發(fā)送通告請(qǐng)求報(bào)文;
所述裝置還可以包括(圖4中未示出):
設(shè)置模塊,用于若接收到所述對(duì)端設(shè)備基于所述通告請(qǐng)求報(bào)文返回的通告回復(fù)報(bào)文,則將當(dāng)前的通告請(qǐng)求計(jì)數(shù)置0;以及若未接收到所述對(duì)端設(shè)備基于所述通告請(qǐng)求報(bào)文返回的通告回復(fù)報(bào)文,則將當(dāng)前的通告請(qǐng)求計(jì)數(shù)加1;
降低模塊,用于若所述通告請(qǐng)求計(jì)數(shù)大于預(yù)設(shè)的通告請(qǐng)求計(jì)數(shù)閾值,則降低當(dāng)前使用的鏈路的路由優(yōu)先級(jí)。
在本發(fā)明中,IPSec VPN設(shè)備可以獲取指定ESP報(bào)文的報(bào)文序列號(hào)以及當(dāng)前流量窗口的上邊界,并判斷指定ESP報(bào)文的報(bào)文序列號(hào)是否大于當(dāng)前流量窗口的上邊界,在指定ESP報(bào)文的報(bào)文序列號(hào)大于當(dāng)前流量窗口的上邊界的情況下,IPSec VPN設(shè)備可以基于統(tǒng)計(jì)的指定ESP報(bào)文的亂序個(gè)數(shù)與流量窗口大小確定亂序率,以及基于統(tǒng)計(jì)的指定ESP報(bào)文的報(bào)文個(gè)數(shù)與流量窗口大小確定丟包率,然后,IPSec VPN設(shè)備可以判斷亂序率以及丟包率是否分別大于預(yù)設(shè)的亂序閾值以及丟包閾值,并在該亂序率以及丟包率均分別大于預(yù)設(shè)的亂序閾值與丟包閾值時(shí),確定當(dāng)前使用的鏈路為狀態(tài)異常的鏈路;以及在該亂序率以及丟包率未均分別大于預(yù)設(shè)的亂序閾值與丟包閾值時(shí),確定當(dāng)前使用的鏈路為狀態(tài)正常的鏈路。
在本發(fā)明中,IPSec VPN設(shè)備之間可以基于實(shí)際交互的ESP報(bào)文來(lái)探測(cè)當(dāng)前鏈路的狀態(tài),由于通過(guò)ESP報(bào)文可以探測(cè)當(dāng)前鏈路的實(shí)際質(zhì)量,因此,可以有效的解決相關(guān)技術(shù)基于檢查報(bào)文的丟包率和延時(shí)無(wú)法準(zhǔn)確探測(cè)出當(dāng)前鏈路狀態(tài)的問(wèn)題。
上述裝置中各個(gè)單元的功能和作用的實(shí)現(xiàn)過(guò)程具體詳見(jiàn)上述方法中對(duì)應(yīng)步驟的實(shí)現(xiàn)過(guò)程,在此不再贅述。
對(duì)于裝置實(shí)施例而言,由于其基本對(duì)應(yīng)于方法實(shí)施例,所以相關(guān)之處參見(jiàn)方法實(shí)施例的部分說(shuō)明即可。以上所描述的裝置實(shí)施例僅僅是示意性的,其中所述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開(kāi)的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部模塊來(lái)實(shí)現(xiàn)本發(fā)明方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動(dòng)的情況下,即可以理解并實(shí)施。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)的范圍之內(nèi)。