欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

隧道最大傳輸單元的發(fā)現(xiàn)處理方法與裝置、路由器的制作方法

文檔序號:7717399閱讀:118來源:國知局
專利名稱:隧道最大傳輸單元的發(fā)現(xiàn)處理方法與裝置、路由器的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及通信技術(shù),尤其是一種隧道最大傳輸單元的發(fā)現(xiàn)處理方法與裝置、路由器。
背景技術(shù)
通用路由封裝協(xié)議(Generic Routing Encapsulation,以下簡稱GRE)與由一 個(gè)第四版本互聯(lián)網(wǎng)協(xié)議(Internet Protocol version 4,以下簡稱IPv4)網(wǎng)絡(luò)承載另一 個(gè)IPv4網(wǎng)絡(luò)數(shù)據(jù)(IPv4 over IPv4,以下簡稱IPIP)協(xié)議都是虛擬個(gè)人網(wǎng)絡(luò)(Virtual Private Network,以下簡稱VPN)的第三層隧道(Tunnel)協(xié)議,其在協(xié)議層之間采用了隧 道技術(shù),可以將報(bào)文在原始的發(fā)送方地進(jìn)行再一次的封裝,在遠(yuǎn)程接收方地進(jìn)行解封裝還 原原始報(bào)文,以達(dá)到穿越網(wǎng)絡(luò)的目的。其中,GRE隧道能對某些網(wǎng)絡(luò)層協(xié)議,例如IP協(xié)議、 互連網(wǎng)分組協(xié)議(Internetwork Packet Exchange protocol,以下簡稱IPX)的報(bào)文進(jìn)行 封裝,將這些被封裝的報(bào)文在另一個(gè)網(wǎng)絡(luò)層協(xié)議,例如IP中傳輸。IPIP隧道能對IP報(bào)文 進(jìn)行封裝,將IP數(shù)據(jù)包封裝在附加的IP包頭中,使得一個(gè)IPv4網(wǎng)絡(luò)的數(shù)據(jù)能夠在另一個(gè) IPv4網(wǎng)絡(luò)中傳輸。因此,通過GRE隧道與IPIP隧道可以實(shí)現(xiàn)以下功能構(gòu)建VPN網(wǎng)絡(luò);對公 網(wǎng)隱藏企業(yè)網(wǎng)的IP地址,使用保留地址進(jìn)行網(wǎng)絡(luò)互聯(lián);隧道對于負(fù)載協(xié)議來說只算一跳, 對于一些存活時(shí)間(Time To Live,以下簡稱TTL)跳數(shù)有限制的網(wǎng)絡(luò)提供了跨越更多跳數(shù) 的能力等。GRE隧道還可以讓用戶利用公共的IP網(wǎng)絡(luò)連接IPX、機(jī)網(wǎng)絡(luò)協(xié)議(AppleTalk) 等網(wǎng)絡(luò)。 在采用隧道技術(shù)進(jìn)行數(shù)據(jù)傳輸?shù)倪^程中,鏈路層以及在底層運(yùn)行的硬件通常都限 制了一個(gè)數(shù)據(jù)包發(fā)送的最大長度,稱為最大傳輸單元(Maximum Transmission Unit,以下 簡稱MTU)。以采用IPIP隧道傳輸報(bào)文為例,一個(gè)IPIP報(bào)文傳輸時(shí),都要將其數(shù)據(jù)段長度 與該報(bào)文經(jīng)過接口的MTU進(jìn)行比較,若IPIP報(bào)文中數(shù)據(jù)段的長度大于該報(bào)文經(jīng)過接口的 MTU,就要對數(shù)據(jù)段進(jìn)行分片發(fā)送,由最終的接收方接收該報(bào)文后,對分片的IP數(shù)據(jù)包進(jìn)行 重新組裝,還原原始IP報(bào)文。例如經(jīng)過接口的MTU為1500, IPIP報(bào)文頭的長度為40,如 果該IPIP報(bào)文的數(shù)據(jù)段的長度大于1500-40 = 1460,就要對數(shù)據(jù)段進(jìn)行分片發(fā)送,由最終 的接收方接收該報(bào)文后,對分片的IP數(shù)據(jù)包進(jìn)行重新組裝,還原原始IP報(bào)文。
在報(bào)文傳輸?shù)倪^程中,如果對報(bào)文分片過多,就會降低數(shù)據(jù)傳輸效率與通信系統(tǒng) 性能,浪費(fèi)網(wǎng)絡(luò)資源。因此,為了避免分片的頻繁發(fā)生,發(fā)送報(bào)文的源主機(jī)應(yīng)該查明從源主 機(jī)到接收報(bào)文的目的主機(jī)之間路徑上的MTU,也即構(gòu)成源主機(jī)到目的主機(jī)之間路徑上各 段鏈路的MTU的最小值,該MTU也稱為路徑MTU或最小MTU。 現(xiàn)有技術(shù)中,通過以下兩種方法獲取從源主機(jī)到目的主機(jī)之間路徑上的MTU :
—種方法是,發(fā)送方發(fā)送一個(gè)帶有禁止分片(division forbidden,以下簡稱DF) 位的IP報(bào)文。由于報(bào)文禁止分片,在該報(bào)文長度大于目的接收方的MTU,接收方無法接收 該報(bào)文,就向發(fā)送方返回一個(gè)表示目標(biāo)不可達(dá)的網(wǎng)間控制報(bào)文協(xié)議(Internet Control Messages Protocol,以下簡稱ICMP)報(bào)文,該ICMP報(bào)文的類型(TYPE)等于3,代碼(CODE)等于4,并且其中攜帶了接收方的MTU的值。這樣,發(fā)送方通過解封裝該ICMP報(bào)文,就可以 從中獲取接收方MTU的值。該方法也稱為路徑最大傳輸單元發(fā)現(xiàn)(Path MTU Discovery,以 下簡稱PMTUD)方法。 另一種方法是,利用隧道雙向探測報(bào)文獲取GRE隧道的最小MTU,根據(jù)該最小MTU 決定是否直接轉(zhuǎn)發(fā)報(bào)文還是分片后再轉(zhuǎn)發(fā)報(bào)文到GRE隧道中。 采用現(xiàn)有技術(shù)的方法獲取從源主機(jī)到目的主機(jī)之間路徑上的MTU時(shí),至少存在以 下問題 GRE&IPIP隧道接口的MTU值被配置后永不過期,現(xiàn)有技術(shù)中發(fā)送方學(xué)習(xí)了當(dāng)前隧 道的MTU值之后,會一直保持該MTU值不變,無法動態(tài)獲知路徑MTU值,在隧道路徑中MTU值 被修改變大或變小時(shí),發(fā)送方也不會知曉該MTU值的變化,因此一直保持原來學(xué)習(xí)到的MTU 值不變。這樣,即使在隧道路徑中MTU值被修改變大了,發(fā)送方每次發(fā)送報(bào)文前,都要按照 之前學(xué)習(xí)到的較小的MTU值在發(fā)送方接口進(jìn)行分片,造成網(wǎng)絡(luò)資源浪費(fèi)、系統(tǒng)工作性能下 降、數(shù)據(jù)傳輸效率降低;而在隧道路徑中MTU值被修改變小了,發(fā)送方仍在按照原來較大的 MTU值發(fā)送報(bào)文,而在報(bào)文的長度大于修改后隧道路徑中MTU值時(shí),可會造成報(bào)文的丟失, 從而造成通信業(yè)務(wù)的中斷。

發(fā)明內(nèi)容
本發(fā)明實(shí)施例的目的是提供一種隧道最大傳輸單元的發(fā)現(xiàn)處理方法與裝置、路 由器,動態(tài)學(xué)習(xí)隧道MTU,避免按照較小MTU值對報(bào)文分片造成的網(wǎng)絡(luò)資源浪費(fèi)、系統(tǒng)工作 性能下降與數(shù)據(jù)傳輸效率降低,以及按照較大MTU值發(fā)送報(bào)文造成報(bào)文的丟失與通信業(yè)務(wù) 的中斷。 本發(fā)明實(shí)施例提供的一種隧道最大傳輸單元的發(fā)現(xiàn)處理方法,包括 向接收方路由器發(fā)送第一探測報(bào)文,該第一探測報(bào)文中攜帶有禁止分片DF位; 接收到針對第一探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文時(shí),根據(jù)該目標(biāo)不可達(dá)報(bào)文中接
收方路由器的最大傳輸單元MTU值學(xué)習(xí)路徑MTU,向所述接收方路由器發(fā)送第二探測報(bào)文,
所述第二探測報(bào)文中攜帶有DF位,所述第二探測報(bào)文的長度為學(xué)習(xí)到的路徑MTU值; 在第一預(yù)設(shè)條件下未接收到針對第二探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文時(shí),執(zhí)行所
述向接收方路由器發(fā)送第一探測報(bào)文的操作。 本發(fā)明實(shí)施例提供的一種隧道最大傳輸單元的發(fā)現(xiàn)處理裝置,包括 發(fā)送模塊,用于向接收方路由器發(fā)送第一探測報(bào)文與第二探測報(bào)文,所述第一探
測報(bào)文與所述第二探測報(bào)文中攜帶有DF位; 接收模塊,用于接收所述接收方路由器返回的目標(biāo)不可達(dá)報(bào)文; 檢測模塊,用于檢測所述接收模塊是否接收到所述接收方路由器針對第一探測報(bào)
文返回的目標(biāo)不可達(dá)報(bào)文,以及檢測所述接收模塊在所述發(fā)送模塊發(fā)送第二探測報(bào)文后的
第一預(yù)設(shè)條件下,是否接收到針對第二探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文,并在第一預(yù)設(shè)條
件下未接收到針對第二探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文時(shí),觸發(fā)所述發(fā)送模塊向接收方路
由器發(fā)送第一探測報(bào)文; 學(xué)習(xí)模塊,用于根據(jù)所述檢測模塊的檢測結(jié)果,在所述接收模塊接收到針對第一 探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文時(shí),根據(jù)該目標(biāo)不可達(dá)報(bào)文中接收方路由器的MTU值,學(xué)習(xí)路徑MTU,并觸發(fā)所述發(fā)送模塊向所述接收方路由器發(fā)送第二探測報(bào)文,所述第二探測報(bào) 文的長度為學(xué)習(xí)到的路徑MTU值。 本發(fā)明實(shí)施例提供的一種路由器,包括本發(fā)明上述實(shí)施例提供的隧道最大傳輸單 元的發(fā)現(xiàn)處理裝置。 基于本發(fā)明上述實(shí)施例提供的隧道MTU的發(fā)現(xiàn)處理方法與裝置、路由器,學(xué)習(xí)到 路徑MTU以后,可以向接收方路由器發(fā)送長度為學(xué)習(xí)到的路徑MTU值的第二探測報(bào)文,該第 二探測報(bào)文中攜帶有DF位,并在第一預(yù)設(shè)條件下未接收到針對第二探測報(bào)文返回的目標(biāo) 不可達(dá)報(bào)文時(shí),重新向接收方路由器發(fā)送第一探測報(bào)文,以重新學(xué)習(xí)路徑MTU,動態(tài)獲取隧 道內(nèi)的路徑MTU,實(shí)現(xiàn)路徑MTU的老化,從而正確決定是否需要對報(bào)文進(jìn)行分片發(fā)送,與現(xiàn) 有技術(shù)相比,避免按照較小MTU值對報(bào)文分片造成的網(wǎng)絡(luò)資源浪費(fèi)、系統(tǒng)工作性能下降與 數(shù)據(jù)傳輸效率降低的問題,以及避免按照較大MTU值發(fā)送報(bào)文造成報(bào)文的丟失與通信業(yè)務(wù) 的中斷的問題,在保證報(bào)文正常發(fā)送的情況下實(shí)現(xiàn)網(wǎng)絡(luò)資源的高效利用,提高系統(tǒng)工作性 能與數(shù)據(jù)傳輸效率。另外,本發(fā)明實(shí)施例中學(xué)習(xí)路徑MTU時(shí),采用的是專用的探測報(bào)文而非 正常通信業(yè)務(wù)的報(bào)文,因此與通信業(yè)務(wù)過程獨(dú)立,不會影響通信業(yè)務(wù)的正常進(jìn)行。
下面通過附圖和實(shí)施例,對本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)描述。


為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本 發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可 以根據(jù)這些附圖獲得其他的附圖。 圖1為本發(fā)明隧道MTU的發(fā)現(xiàn)處理方法一個(gè)實(shí)施例的流程圖;
圖2為本發(fā)明隧道MTU的發(fā)現(xiàn)處理方法另一個(gè)實(shí)施例的流程圖;
圖3為本發(fā)明隧道MTU的發(fā)現(xiàn)處理方法又一個(gè)實(shí)施例的流程圖;
圖4為本發(fā)明隧道MTU的發(fā)現(xiàn)處理方法一個(gè)應(yīng)用實(shí)施例的流程圖;
圖5為本發(fā)明隧道MTU的發(fā)現(xiàn)處理裝置一個(gè)實(shí)施例的結(jié)構(gòu)示意圖;
圖6為本發(fā)明隧道MTU的發(fā)現(xiàn)處理裝置另一個(gè)實(shí)施例的結(jié)構(gòu)示意圖
圖7為本發(fā)明隧道MTU的發(fā)現(xiàn)處理裝置又一個(gè)實(shí)施例的結(jié)構(gòu)示意圖
圖8為本發(fā)明隧道MTU的發(fā)現(xiàn)處理裝置再一個(gè)實(shí)施例的結(jié)構(gòu)示意圖
圖9為本發(fā)明隧道MTU的發(fā)現(xiàn)處理裝置還一個(gè)實(shí)施例的結(jié)構(gòu)示意圖,
具體實(shí)施例方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完 整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;?本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他 實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。 圖1為本發(fā)明隧道MTU的發(fā)現(xiàn)處理方法一個(gè)實(shí)施例的流程圖。如圖1所示,其包 括 步驟101,向接收方路由器發(fā)送第一探測報(bào)文,該第一探測報(bào)文中攜帶有DF位。
作為本發(fā)明的一個(gè)具體實(shí)施例,探測報(bào)文可以是PMTUD報(bào)文。 步驟102,接收到針對第一探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文時(shí),根據(jù)該目標(biāo)不可達(dá) 報(bào)文中接收方路由器的MTU值學(xué)習(xí)路徑MTU,并向接收方路由器發(fā)送第二探測報(bào)文,該第二 探測報(bào)文中攜帶有DF位,第二探測報(bào)文的長度為學(xué)習(xí)到的路徑MTU值。
具體地,該目標(biāo)不可達(dá)報(bào)文具體可以是ICMP報(bào)文。根據(jù)目標(biāo)不可達(dá)報(bào)文中接收方 路由器的MTU值學(xué)習(xí)路徑MTU,就是將隧道接口的MTU值配置為接收方路由器的MTU值。
步驟103,在第一預(yù)設(shè)條件下未接收到針對第二探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文 時(shí),重新執(zhí)行步驟101,向接收方路由器發(fā)送第一探測報(bào)文。 基于本發(fā)明上述實(shí)施例提供的隧道MTU的發(fā)現(xiàn)處理方法,學(xué)習(xí)到路徑MTU以后,可 以向接收方路由器發(fā)送長度為學(xué)習(xí)到的路徑MTU值的第二探測報(bào)文,該第二探測報(bào)文中攜 帶有DF位,并在第一預(yù)設(shè)條件下未接收到針對第二探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文時(shí),重 新向接收方路由器發(fā)送第一探測報(bào)文,以重新學(xué)習(xí)路徑MTU,動態(tài)獲取隧道內(nèi)的路徑MTU, 實(shí)現(xiàn)路徑MTU的老化,從而正確決定是否需要對報(bào)文進(jìn)行分片發(fā)送,與現(xiàn)有技術(shù)相比,避免 按照較小MTU值對報(bào)文分片造成的網(wǎng)絡(luò)資源浪費(fèi)、系統(tǒng)工作性能下降與數(shù)據(jù)傳輸效率降低 的問題,以及避免按照較大MTU值發(fā)送報(bào)文造成報(bào)文的丟失與通信業(yè)務(wù)的中斷的問題,在 保證報(bào)文正常發(fā)送的情況下實(shí)現(xiàn)網(wǎng)絡(luò)資源的高效利用,提高系統(tǒng)工作性能與數(shù)據(jù)傳輸效 率。另外,本發(fā)明實(shí)施例中學(xué)習(xí)路徑MTU時(shí),采用的是專用的探測報(bào)文而非正常通信業(yè)務(wù)的 報(bào)文,因此與通信業(yè)務(wù)過程獨(dú)立,不會影響通信業(yè)務(wù)的正常進(jìn)行。本發(fā)明實(shí)施例可以適用于 任意隧道的路徑MTU,包括但不限于GRE隧道與IPIP隧道。 根據(jù)本發(fā)明的一個(gè)具體實(shí)施例,步驟103中,在第一預(yù)設(shè)條件下未接收到針對第 二探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文具體可以是針對連續(xù)M次向接收方路由器發(fā)送的第二 探測報(bào)文,或者在第一預(yù)設(shè)時(shí)間內(nèi)連續(xù)向接收方路由器發(fā)送的第二探測報(bào)文,均未接收到 接收方路由器返回的目標(biāo)不可達(dá)報(bào)文,其中,M為大于1的整數(shù)。 在圖1所示的實(shí)施例中,接收到針對第二探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文時(shí),可 以針對該目標(biāo)不可達(dá)報(bào)文執(zhí)行步驟102,即根據(jù)該目標(biāo)不可達(dá)報(bào)文中接收方路由器的MTU 值學(xué)習(xí)路徑MTU,將隧道接口的MTU值配置為接收方路由器的MTU值,并根據(jù)該最新配置的 隧道接口的MTU值,向接收方路由器發(fā)送第二探測報(bào)文,第二探測報(bào)文的長度為最新配置 的隧道接口的MTU值。 根據(jù)本發(fā)明的另一個(gè)具體實(shí)施例,步驟103具體可以通過如下方式實(shí)現(xiàn)
在第一預(yù)設(shè)條件下未接收到針對第二探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文時(shí),以學(xué)習(xí) 到的路徑MTU值與N值之和,作為第三探測報(bào)文的長度,向接收方路由器發(fā)送第三探測報(bào) 文,該第三探測報(bào)文中攜帶有DF位,N為大于零的整數(shù); 接收到針對第三探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文時(shí),根據(jù)該目標(biāo)不可達(dá)報(bào)文中接 收方路由器的MTU值學(xué)習(xí)路徑MTU,將隧道接口的MTU值配置為目標(biāo)不可達(dá)報(bào)文中攜帶的接 收方路由器的MTU值; 在第二預(yù)設(shè)條件下未接收到針對第三探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文時(shí),重新執(zhí) 行步驟101,向接收方路由器發(fā)送第一探測報(bào)文。 具體地,根據(jù)本發(fā)明的又一個(gè)具體實(shí)施例,在第二預(yù)設(shè)條件下未接收到針對第三 探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文可以是針對連續(xù)L次向接收方路由器發(fā)送的第三探測報(bào)文,或者在第二預(yù)設(shè)時(shí)間內(nèi)連續(xù)向接收方路由器發(fā)送的第三探測報(bào)文,均未接收到接收方 路由器返回的目標(biāo)不可達(dá)報(bào)文,其中,L為大于1的整數(shù)。 在動態(tài)學(xué)習(xí)到隧道中的路徑MTU后,如果不改變發(fā)送的探測報(bào)文的大小,那么一 旦路徑MTU變大,則無法再次的學(xué)習(xí)到正確的路徑MTU。如果再次以最初的發(fā)送方路由器的 物理接口的MTU值作為探測報(bào)文長度發(fā)送探測報(bào)文的話,就會發(fā)起新一輪的路徑MTU學(xué)習(xí), 這就會造成學(xué)習(xí)MTU的震蕩。本發(fā)明實(shí)施例中,在第一預(yù)設(shè)條件下未接收到針對第二探測 報(bào)文返回的目標(biāo)不可達(dá)報(bào)文時(shí),以學(xué)習(xí)到的路徑MTU值與N值之和,作為第三探測報(bào)文的長 度,向接收方路由器發(fā)送第三探測報(bào)文,可以一直保持學(xué)習(xí)當(dāng)前隧道的路徑MTU,而不用重 新學(xué)習(xí)路徑MTU,有效防止了MTU學(xué)習(xí)震蕩。 另外,根據(jù)本發(fā)明的再一個(gè)具體實(shí)施例,可以從發(fā)送方路由器隧道邊緣接口配置 的目的地址對應(yīng)的路由信息中獲取發(fā)送方路由器上的隧道MTU值與物理接口MTU值,選取 該隧道MTU值與物理接口 MTU值的較大MTU值,生成長度為該較大MTU值的第一探測報(bào)文; 或者,也可以從發(fā)送方路由器隧道邊緣接口配置的目的地址對應(yīng)的路由信息中獲取發(fā)送方 路由器上的物理接口 MTU值,生成長度為該物理接口 MTU值的第一探測報(bào)文。第一次向接 收方路由器發(fā)送第一探測報(bào)文時(shí),具體可以發(fā)送長度為隧道MTU值與物理接口MTU值中的 較大MTU值的第一探測報(bào)文,也可以發(fā)送長度為物理接口 MTU值的第一探測報(bào)文。
圖2為本發(fā)明隧道MTU的發(fā)現(xiàn)處理方法另一個(gè)實(shí)施例的流程圖。如圖2所示,其 包括 步驟201,向接收方路由器發(fā)送第一探測報(bào)文,該第一探測報(bào)文中攜帶有DF位。
步驟202,檢測是否接收到接收方路由器針對第一探測報(bào)文返回的目標(biāo)不可達(dá)報(bào) 文。若接收到接收方路由器針對第一探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文,執(zhí)行步驟203 ;否 則,不執(zhí)行本實(shí)施例的后續(xù)流程。 步驟203,獲取目標(biāo)不可達(dá)報(bào)文中攜帶的接收方路由器的MTU值,并比較該接收方 路由器的MTU值是否小于預(yù)設(shè)最小MTU值。若接收方路由器的MTU值不小于預(yù)設(shè)最小MTU 值時(shí),執(zhí)行步驟204 ;否則,不執(zhí)行本實(shí)施例的后續(xù)流程。 步驟204,根據(jù)該目標(biāo)不可達(dá)報(bào)文中接收方路由器的MTU值學(xué)習(xí)路徑MTU,將隧道 接口的MTU值配置為接收方路由器的MTU值。 步驟205,向接收方路由器發(fā)送第二探測報(bào)文,該第二探測報(bào)文中攜帶有DF位,第 二探測報(bào)文的長度為學(xué)習(xí)到的路徑MTU值。 步驟206,檢測在第一預(yù)設(shè)條件下是否接收到針對第二探測報(bào)文返回的目標(biāo)不可 達(dá)報(bào)文。若在第一預(yù)設(shè)條件下未接收到針對第二探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文,執(zhí)行步 驟207。否則,若在第一預(yù)設(shè)條件下接收到針對第二探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文,執(zhí)行 步驟203。 具體地,第一預(yù)設(shè)條件可以根據(jù)連續(xù)向接收方路由器發(fā)送第二探測報(bào)文的次數(shù)M 確定。相應(yīng)的,該步驟206中,針對每一次向接收方路由器發(fā)送的第二探測報(bào)文,都檢測是 否接收到接收方路由器針對第二探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文,若針對第P次向接收方 路由器發(fā)送的第二探測報(bào)文,未接收到接收方路由器針對第二探測報(bào)文返回的目標(biāo)不可達(dá) 報(bào)文,則重新執(zhí)行步驟205,再一次向接收方路由器發(fā)送第二探測報(bào)文,其中,1《P《M-l, 直到針對第M次向接收方路由器發(fā)送的第二探測報(bào)文,均未接收到接收方路由器針對第二探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文,才認(rèn)為在第一預(yù)設(shè)條件下是否接收到針對第二探測報(bào)文 返回的目標(biāo)不可達(dá)報(bào)文。否則,只要針對M次中有一次發(fā)送的第二探測報(bào)文接收到目標(biāo)不 可達(dá)報(bào)文,則認(rèn)為在第一預(yù)設(shè)條件下接收到針對第二探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文,不 繼續(xù)發(fā)送下一次第二探測報(bào)文。 步驟207,以學(xué)習(xí)到的路徑MTU值與N值之和,作為第三探測報(bào)文的長度,向接收方 路由器發(fā)送第三探測報(bào)文,該第三探測報(bào)文中攜帶有DF位,其中,N為大于零的整數(shù)。
另外,還可以將隧道接口的MTU值配置為作為第一次發(fā)送的第一探測報(bào)文長度的 MTU值,即隧道MTU值與物理接口 MTU值的較大MTU值,來作為學(xué)習(xí)到的路徑MTU。步驟 207中,具體以該路徑MTU值與N值之和,作為第三探測報(bào)文的長度,向接收方路由器發(fā)送第 三探測報(bào)文。 步驟208,檢測在第二預(yù)設(shè)條件下是否接收到針對第三探測報(bào)文返回的目標(biāo)不可 達(dá)報(bào)文。若在第二預(yù)設(shè)條件下未接收到針對第三探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文,重新執(zhí) 行步驟201,向接收方路由器發(fā)送第一探測報(bào)文,再次學(xué)習(xí)路徑MTU。否則,若在第二預(yù)設(shè)條 件下接收到針對第三探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文,執(zhí)行步驟203。 具體地,第二預(yù)設(shè)條件可以根據(jù)連續(xù)向接收方路由器發(fā)送第三探測報(bào)文的次數(shù)N 確定。相應(yīng)的,該步驟208中,針對每一次向接收方路由器發(fā)送的第三探測報(bào)文,都檢測是 否接收到接收方路由器針對第三探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文,若針對第Q次向接收方 路由器發(fā)送的第三探測報(bào)文,未接收到接收方路由器針對第三探測報(bào)文返回的目標(biāo)不可達(dá) 報(bào)文,則重新執(zhí)行步驟207,再一次向接收方路由器發(fā)送第三探測報(bào)文,其中,1《Q《N-l, 直到針對第N次向接收方路由器發(fā)送的第三探測報(bào)文,均未接收到接收方路由器針對第三 探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文,才認(rèn)為在第二預(yù)設(shè)條件下是否接收到針對第三探測報(bào)文 返回的目標(biāo)不可達(dá)報(bào)文。否則,只要針對N次中有一次發(fā)送的第三探測報(bào)文接收到目標(biāo)不 可達(dá)報(bào)文,則認(rèn)為在第二預(yù)設(shè)條件下接收到針對第三探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文,不 繼續(xù)發(fā)送下一次第三探測報(bào)文。 采用現(xiàn)有技術(shù)的方法獲取從源主機(jī)到目的主機(jī)之間路徑上的MTU的方法,可能遭 受ICMP PMTUD攻擊。ICMP PMTUD攻擊就是在學(xué)習(xí)路徑MTU的過程中,非法用戶可能捏 造一個(gè)假ICMP目標(biāo)不可達(dá)報(bào)文,并且將該假ICMP目標(biāo)不可達(dá)報(bào)文中攜帶的MTU值設(shè)置的 很小,一旦源發(fā)送方路由器接收了該假ICMP目標(biāo)不可達(dá)報(bào)文,便會被欺騙,而將隧道接口 的MTU值修改為該很小的MTU值,致使正常的報(bào)文不能通過該隧道接口 。采用本發(fā)明上述 實(shí)施例的方法,獲取到目標(biāo)不可達(dá)報(bào)文中攜帶的接收方路由器的MTU值后,還比較該接收 方路由器的MTU值是否小于預(yù)設(shè)最小MTU值,只有在接收方路由器的MTU值不小于預(yù)設(shè)最 小MTU值時(shí),才學(xué)習(xí)路徑MTU,從而降低了 ICMP PMTUD攻擊帶來的影響,還可以將遭受ICMP PMTUD攻擊后被改小的MTU值恢復(fù)為當(dāng)前隧道中的路徑MTU值。 根據(jù)本發(fā)明的進(jìn)一步實(shí)施例,可以以一個(gè)狀態(tài)機(jī)的狀態(tài)作為參考,來動態(tài)學(xué)習(xí)隧 道中的路徑MTU。其中,狀態(tài)機(jī)的狀態(tài)包括初始(INITE)狀態(tài)、學(xué)習(xí)(LEARNING)狀態(tài)與保持 (KEEP)狀態(tài)。狀態(tài)機(jī)可以根據(jù)第一預(yù)設(shè)條件更新第一統(tǒng)計(jì)值,根據(jù)第二預(yù)設(shè)條件更新第二 統(tǒng)計(jì)值,以及統(tǒng)計(jì)生成第一探測報(bào)文的次數(shù)。其中的第一統(tǒng)計(jì)值、第二統(tǒng)計(jì)值可以是次數(shù)或 者預(yù)設(shè)時(shí)間或者次數(shù)與預(yù)設(shè)時(shí)間的結(jié)合。圖3為本發(fā)明隧道MTU的發(fā)現(xiàn)處理方法又一個(gè)實(shí) 施例的流程圖。如圖3所示,參考狀態(tài)機(jī)的狀態(tài)動態(tài)學(xué)習(xí)隧道中的路徑MTU的流程包括
步驟301,在狀態(tài)機(jī)處于初始狀態(tài)下,第一次生成第一探測報(bào)文時(shí),從發(fā)送方路由 器隧道邊緣接口配置的目的地址對應(yīng)的路由信息中獲取發(fā)送方路由器上的隧道MTU值與 物理接口 MTU值,選取該隧道MTU值與物理接口 MTU值的較大MTU值,生成長度為該較大 MTU值的第一探測報(bào)文,該第一探測報(bào)文中攜帶有DF位。 另外,作為另外一個(gè)實(shí)施例,也可以僅從發(fā)送方路由器隧道邊緣接口配置的目的 地址對應(yīng)的路由信息中獲取發(fā)送方路由器上的物理接口MTU值,直接生成長度為該物理接 口MTU值的第一探測報(bào)文。 根據(jù)本發(fā)明的再一個(gè)實(shí)施例,若不是第一次生成第一探測報(bào)文,可以從發(fā)送方路 由器隧道邊緣接口配置的目的地址對應(yīng)的路由信息中獲取發(fā)送方路由器上的隧道MTU值 與物理接口 MTU值,選取該隧道MTU值與物理接口 MTU值的較小MTU值,生成長度為該較小 MTU值的第一探測報(bào)文。 步驟302,向接收方路由器發(fā)送第一探測報(bào)文,將狀態(tài)機(jī)的狀態(tài)更新為學(xué)習(xí)狀態(tài), 并更新狀態(tài)機(jī)上發(fā)送第一探測報(bào)文的次數(shù)。 步驟303,在狀態(tài)機(jī)的狀態(tài)處于學(xué)習(xí)狀態(tài)下,檢測是否接收到接收方路由器針對第 一探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文。若接收到接收方路由器針對第一探測報(bào)文返回的目標(biāo) 不可達(dá)報(bào)文,執(zhí)行步驟304 ;否則,不執(zhí)行本實(shí)施例的后續(xù)流程。 步驟304,獲取目標(biāo)不可達(dá)報(bào)文中攜帶的接收方路由器的MTU值,并比較該接收方 路由器的MTU值是否小于預(yù)設(shè)最小MTU值。若接收方路由器的MTU值不小于預(yù)設(shè)最小MTU 值時(shí),執(zhí)行步驟305 ;否則,不執(zhí)行本實(shí)施例的后續(xù)流程。 步驟305,根據(jù)該目標(biāo)不可達(dá)報(bào)文中接收方路由器的MTU值學(xué)習(xí)路徑MTU,將隧道 接口的MTU值配置為接收方路由器的MTU值。 步驟306,向接收方路由器發(fā)送第二探測報(bào)文,并根據(jù)第一預(yù)設(shè)條件更新狀態(tài)機(jī)上 的第一統(tǒng)計(jì)值。第二探測報(bào)文中攜帶有DF位,第二探測報(bào)文的長度為學(xué)習(xí)到的路徑MTU值,
具體地,若第一預(yù)設(shè)條件根據(jù)連續(xù)向接收方路由器發(fā)送第二探測報(bào)文的次數(shù)M確 定,則更新狀態(tài)機(jī)上向接收方路由器發(fā)送第二探測報(bào)文的次數(shù)P。 步驟307,檢測在第一預(yù)設(shè)條件下是否接收到針對第二探測報(bào)文返回的目標(biāo)不可 達(dá)報(bào)文。若在第一預(yù)設(shè)條件下未接收到針對第二探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文,執(zhí)行步 驟308。否則,若在第一預(yù)設(shè)條件下接收到針對第二探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文,執(zhí)行 步驟304。 步驟308,清空第一統(tǒng)計(jì)值,并且將狀態(tài)機(jī)的狀態(tài)更新為保持狀態(tài)。 另外,還可以將隧道接口的MTU值配置為作為第一次發(fā)送的第一探測報(bào)文長度的
MTU值,即隧道MTU值與物理接口 MTU值的較大MTU值,來作為學(xué)習(xí)到的路徑MTU。 步驟309 ,在狀態(tài)機(jī)的狀態(tài)處于保持狀態(tài)下,以學(xué)習(xí)到的路徑MTU值與N值之和,作
為第三探測報(bào)文的長度,向接收方路由器發(fā)送第三探測報(bào)文,并根據(jù)第二預(yù)設(shè)條件更新狀
態(tài)機(jī)上的第二統(tǒng)計(jì)值。第三探測報(bào)文中攜帶有DF位,其中,N為大于零的整數(shù)。 具體地,若第二預(yù)設(shè)條件根據(jù)連續(xù)向接收方路由器發(fā)送第三探測報(bào)文的次數(shù)N確
定,則更新狀態(tài)機(jī)上向接收方路由器發(fā)送第三探測報(bào)文的次數(shù)Q。 步驟310,檢測在第二預(yù)設(shè)條件下是否接收到針對第三探測報(bào)文返回的目標(biāo)不可 達(dá)報(bào)文。若在第二預(yù)設(shè)條件下未接收到針對第三探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文,執(zhí)行步驟311 。否則,若在第二預(yù)設(shè)條件下接收到針對第三探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文,執(zhí)行 步驟312。 步驟311,清空第二統(tǒng)計(jì)值,并且將狀態(tài)機(jī)的狀態(tài)更新為初始狀態(tài),在初始狀態(tài)下 重新執(zhí)行步驟301,向接收方路由器發(fā)送第一探測報(bào)文,再次學(xué)習(xí)路徑MTU。之后不再執(zhí)行 本實(shí)施例的后續(xù)流程。 步驟312,清空第二統(tǒng)計(jì)值,然后執(zhí)行步驟304。 圖4為本發(fā)明隧道MTU的發(fā)現(xiàn)處理方法一個(gè)應(yīng)用實(shí)施例的流程圖。該實(shí)施例中, M = 5,N=5。如圖4所示,其包括 步驟401,在狀態(tài)機(jī)處于初始狀態(tài)下,在GRE&IPIP隧道接口上開啟計(jì)時(shí)器進(jìn)行計(jì) 時(shí),計(jì)時(shí)器超時(shí)可以觸發(fā)生成與發(fā)送探測報(bào)文。 具體地,計(jì)時(shí)器的超時(shí)時(shí)間具體可以根據(jù)實(shí)際需求設(shè)置,例如可以設(shè)置為10-30分鐘。 步驟402,計(jì)時(shí)器超時(shí),第一次生成第一探測報(bào)文時(shí),從發(fā)送方路由器隧道邊緣接 口配置的目的地址對應(yīng)的路由信息中獲取發(fā)送方路由器上的隧道MTU值與物理接口 MTU 值,選取該隧道MTU值與物理接口 MTU值的較大MTU值,生成長度為該較大MTU值的第一探 測報(bào)文,該第一探測報(bào)文中攜帶有DF位。如果不是第一次生成第一探測報(bào)文,選取該隧道 MTU值與物理接口 MTU值的較小MTU值,生成長度為該較小MTU值的第一探測報(bào)文。
步驟403,向接收方路由器發(fā)送第一探測報(bào)文,將狀態(tài)機(jī)的狀態(tài)更新為學(xué)習(xí)狀態(tài), 并更新狀態(tài)機(jī)上發(fā)送第一探測報(bào)文的次數(shù)。 步驟404,在隧道的路徑中,如果第一探測報(bào)文的長度大于接收方路由器的MTU 值,接收方路由器就會返回一個(gè)目標(biāo)不可達(dá)報(bào)文,該目標(biāo)不可達(dá)報(bào)文攜帶有接收方路由器 的MTU值。接收到目標(biāo)不可達(dá)報(bào)文時(shí),獲取目標(biāo)不可達(dá)報(bào)文中攜帶的接收方路由器的MTU 值,并比較該接收方路由器的MTU值是否小于預(yù)設(shè)最小MTU值minjiitu。如果小于預(yù)設(shè)最 小MTU值min_mtu,不執(zhí)行本發(fā)明實(shí)施例的后續(xù)流程。否則,若不小于預(yù)設(shè)最小MTU值min_ mtu,執(zhí)行步驟405。 具體地,預(yù)設(shè)最小MTU值minjiitu可以依據(jù)通信環(huán)境中的實(shí)際情況進(jìn)行配置。例 如在目前的一個(gè)通信環(huán)境中,普通物理接口所能接受的最小MTU值為68K, GRE頭最小的消 耗值為24K,則可以設(shè)置最小MTU值min_mtu為92K。 步驟405,根據(jù)該目標(biāo)不可達(dá)報(bào)文中接收方路由器的MTU值學(xué)習(xí)路徑MTU,將隧道 接口的MTU值配置為接收方路由器的MTU值。 只有在目標(biāo)不可達(dá)報(bào)文中接收方路由器的MTU值不小于預(yù)設(shè)最小MTU值min_mtu 時(shí),才將隧道接口的MTU值配置為接收方路由器的MTU值,降低了 I CMP PMTUD攻擊的影響, 不會因?yàn)閷⑺淼澜涌诘腗TU值修改太小而使隧道內(nèi)無法通過正常的數(shù)據(jù)報(bào)文。
之后,可以再次通過計(jì)時(shí)器超時(shí)重復(fù)執(zhí)行步驟402-405的操作,學(xué)習(xí)到正常的路 徑MTU。由于不是第一次生成第一探測報(bào)文,選取該隧道MTU值與物理接口 MTU值的較小 MTU值,生成并發(fā)送的是長度為該較小MTU值的第一探測報(bào)文。 步驟406,向接收方路由器發(fā)送第二探測報(bào)文,并更新狀態(tài)機(jī)上發(fā)送第二探測報(bào)文 的次數(shù)該第二探測報(bào)文中攜帶有DF位,第二探測報(bào)文的長度為學(xué)習(xí)到的路徑MTU值。
步驟407,檢測針對連續(xù)5次向接收方路由器發(fā)送第二探測報(bào)文,是否接收到針對第二探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文。若針對連續(xù)5次向接收方路由器發(fā)送第二探測報(bào)文 均未接收到針對第二探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文,執(zhí)行步驟408。否則,只要針對其中 一次發(fā)送的第二探測報(bào)文接收到目標(biāo)不可達(dá)報(bào)文,執(zhí)行步驟404。 步驟408,若針對連續(xù)5次向接收方路由器發(fā)送第二探測報(bào)文均未接收到針對第 二探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文,可能有兩種情況,一種是隧道的對端不可達(dá),另一種是 該作為第二探測報(bào)文長度的MTU值不大于正確的隧道路徑MTU。無論是哪種情況,都可以將 隧道接口的MTU值配置為作為第一次發(fā)送的第一探測報(bào)文長度的MTU值,即隧道MTU值與 物理接口 MTU值的較大MTU值,并將狀態(tài)機(jī)上的發(fā)送次數(shù)清空,將狀態(tài)機(jī)的狀態(tài)更新為保持 狀態(tài)。 步驟409,在狀態(tài)機(jī)的狀態(tài)處于保持狀態(tài)下,以學(xué)習(xí)到的路徑MTU值+1,作為第三 探測報(bào)文的長度,向接收方路由器發(fā)送第三探測報(bào)文,并更新狀態(tài)機(jī)上的發(fā)送次數(shù)。第三探 測報(bào)文中攜帶有DF位。 步驟410,檢測針對連續(xù)5次向接收方路由器發(fā)送第三探測報(bào)文是否接收到目標(biāo) 不可達(dá)報(bào)文。若均未接收到針對第三探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文,執(zhí)行步驟411。否 則,只要針對其中一次發(fā)送的第三探測報(bào)文接收到目標(biāo)不可達(dá)報(bào)文,執(zhí)行步驟412。
步驟411,清空狀態(tài)機(jī)上的發(fā)送次數(shù),并且將狀態(tài)機(jī)的狀態(tài)更新為初始狀態(tài),在初 始狀態(tài)下重新執(zhí)行步驟402,向接收方路由器發(fā)送第一探測報(bào)文,再次學(xué)習(xí)路徑MTU。
步驟412,清空狀態(tài)機(jī)上的發(fā)送次數(shù),并且將狀態(tài)機(jī)的狀態(tài)更新為學(xué)習(xí)狀態(tài),在學(xué) 習(xí)狀態(tài)下執(zhí)行步驟404。 在狀態(tài)機(jī)處于保持狀態(tài)時(shí),如果發(fā)送的探測報(bào)文長度保持不變,則隧道路徑MTU 一旦變大,發(fā)送方路由器永遠(yuǎn)不會學(xué)習(xí)到該路徑MTU, 一旦遭遇ICMP PMTUD攻擊,將隧道接 口的MTU值改小后無法自動改回來;如果直接將狀態(tài)機(jī)轉(zhuǎn)為初始狀態(tài)發(fā)送第一探測報(bào)文, 又會發(fā)起新一輪的路徑MTU學(xué)習(xí),將會造成MTU震蕩。本發(fā)明實(shí)施例中,在狀態(tài)機(jī)處于保持 狀態(tài)時(shí),發(fā)送隧道的路徑MTU值加1大小的探測報(bào)文,這樣,如果收到接收方路由器返回的 目標(biāo)不可達(dá)報(bào)文,判斷是否需要修改隧道接口的MTU值,需要修改則進(jìn)入狀態(tài)機(jī)學(xué)習(xí)狀態(tài), 不需要修改則狀態(tài)機(jī)繼續(xù)處于保持狀態(tài),不會影響當(dāng)前隧道的最小路徑MTU值。如果針對 連續(xù)5次發(fā)送的探測報(bào)文都沒有收到相應(yīng)的目標(biāo)不可達(dá)報(bào)文,則有兩種可能的情況一種 是隧道的路徑MTU值增大了 ,另一種是隧道不可達(dá)。無論哪種情況,都在將長度為MTU值+1 的探測報(bào)文重傳了 5次后清空狀態(tài)機(jī)上的發(fā)送次數(shù)統(tǒng)計(jì)值,將狀態(tài)機(jī)變?yōu)槌跏紶顟B(tài),重復(fù) 執(zhí)行步驟402-步驟412的流程,避免了隧道中路徑MTU的學(xué)習(xí)震蕩。 以下以一個(gè)具體實(shí)例來進(jìn)一步詳細(xì)說明本發(fā)明隧道MTU的發(fā)現(xiàn)處理方法的應(yīng)用。 假設(shè)源發(fā)送方路由器、第一路由器、第二路由器、第三路由器與目的端路由器形成GRE隧道 或IPIP隧道,其MTU值分別為1500、 1200、 1400、 1000與1200。計(jì)時(shí)器超時(shí),源發(fā)送方路由 器開始向目的端路由器發(fā)送長度為1500的帶DF位的GRE報(bào)文或IPIP報(bào)文。途徑MTU值 為1200的第一路由器時(shí),由于GRE報(bào)文或IPIP報(bào)文的長度大于該第一路由器的MTU值并 且攜帶DF位,第一路由器向源發(fā)送方路由器返回一個(gè)類型等于3、代碼等于4的ICMP報(bào)文。 源發(fā)送方路由器接收到該ICMP報(bào)文時(shí),將隧道接口的MTU置為1200。計(jì)時(shí)器再次超時(shí),源 發(fā)送方路由器再次向目的端路由器發(fā)送長度為1200的帶DF位的GRE或IPIP報(bào)文。途經(jīng) MTU值為1000的第三路由器時(shí),由于GRE報(bào)文或IPIP報(bào)文的長度大于該第三路由器的MTU并且攜帶DF位,該第三路由器向源發(fā)送方路由器返回一個(gè)類型等于3、代碼等于4的ICMP 報(bào)文。源發(fā)送方路由器接收到該ICMP報(bào)文時(shí),將隧道接口的MTU置為IOOO,至此,該隧道的 路徑MTU就被學(xué)到了 。之后,源發(fā)送方路由器根據(jù)計(jì)時(shí)器超時(shí)時(shí)間持續(xù)發(fā)送路徑MTU+1大 小的帶DF位的GRE報(bào)文或IPIP報(bào)文。如果路徑MTU變小,根據(jù)返回的目標(biāo)不可達(dá)報(bào)文可 以直接學(xué)習(xí)到變小后的路徑MTU ;如果路徑MTU變大,5次發(fā)送探測報(bào)文均未收到ICMP報(bào)文 就會重新進(jìn)入初始狀態(tài),再次以MTU = 1500發(fā)探測報(bào)文,學(xué)習(xí)路徑MTU。如果路徑MTU值不 變,源發(fā)送方路由器就會一直處于保持狀態(tài)不變。 圖5為本發(fā)明隧道MTU的發(fā)現(xiàn)處理裝置一個(gè)實(shí)施例的結(jié)構(gòu)示意圖,該實(shí)施例的隧 道MTU的發(fā)現(xiàn)處理裝置可用于實(shí)現(xiàn)本發(fā)明上述隧道MTU的發(fā)現(xiàn)處理方法實(shí)施例的流程。如 圖5所示,該實(shí)施例的隧道MTU的發(fā)現(xiàn)處理裝置包括發(fā)送模塊501、接收模塊502、檢測模塊 503與學(xué)習(xí)模塊504。 其中,發(fā)送模塊501用于向接收方路由器發(fā)送第一探測報(bào)文與第二探測報(bào)文,其 中的第一探測報(bào)文與第二探測報(bào)文中攜帶有DF位。接收模塊502用于接收由接收方路由 器返回的目標(biāo)不可達(dá)報(bào)文。檢測模塊503用于檢測接收模塊502是否接收到接收方路由器 針對第一探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文,以及檢測接收模塊502在發(fā)送模塊501發(fā)送第 二探測報(bào)文后的第一預(yù)設(shè)條件下,是否接收到針對第二探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文, 并在第一預(yù)設(shè)條件下未接收到針對第二探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文時(shí),觸發(fā)發(fā)送模塊 501向接收方路由器發(fā)送第一探測報(bào)文。學(xué)習(xí)模塊504用于根據(jù)檢測模塊503的檢測結(jié)果, 在接收模塊502接收到針對第一探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文時(shí),根據(jù)該目標(biāo)不可達(dá)報(bào) 文中接收方路由器的MTU值,學(xué)習(xí)路徑MTU,并觸發(fā)發(fā)送模塊501向接收方路由器發(fā)送第二 探測報(bào)文,該第二探測報(bào)文的長度為學(xué)習(xí)模塊504學(xué)習(xí)到的路徑MTU值。
另外,在圖5所示實(shí)施例的隧道MTU的發(fā)現(xiàn)處理裝置中,學(xué)習(xí)模塊504還可以用于 根據(jù)檢測模塊503的檢測結(jié)果,在接收模塊502接收到針對第二探測報(bào)文返回的目標(biāo)不可 達(dá)報(bào)文時(shí),根據(jù)該目標(biāo)不可達(dá)報(bào)文中接收方路由器的MTU值學(xué)習(xí)路徑MTU,并觸發(fā)發(fā)送模塊 501向接收方路由器發(fā)送第二探測報(bào)文。 圖6為本發(fā)明隧道MTU的發(fā)現(xiàn)處理裝置另一個(gè)實(shí)施例的結(jié)構(gòu)示意圖。與圖5所示 的實(shí)施例相比,該實(shí)施例中,檢測模塊503包括檢測單元601與觸發(fā)單元602。其中,檢測單 元601用于檢測接收模塊502是否接收到接收方路由器針對第一探測報(bào)文返回的目標(biāo)不可 達(dá)報(bào)文,檢測接收模塊502在發(fā)送模塊501發(fā)送第二探測報(bào)文后的第一預(yù)設(shè)條件下,是否接 收到針對第二探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文,以及檢測接收模塊502在發(fā)送模塊501發(fā) 送第三探測報(bào)文后的第二預(yù)設(shè)條件下,是否接收到針對第三探測報(bào)文返回的目標(biāo)不可達(dá)報(bào) 文。觸發(fā)單元602用于根據(jù)檢測單元601的檢測結(jié)果,若接收模塊502在第一預(yù)設(shè)條件下 未接收到針對第二探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文時(shí),以學(xué)習(xí)模塊504學(xué)習(xí)到的路徑MTU 值與N值之和,作為第三探測報(bào)文的長度,觸發(fā)發(fā)送模塊501向接收方路由器發(fā)送第三探測 報(bào)文,該第三探測報(bào)文中攜帶有DF位,其中,N為大于零的整數(shù);若接收模塊502在第二預(yù) 設(shè)條件下接收到針對第三探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文時(shí),觸發(fā)學(xué)習(xí)模塊504根據(jù)該目 標(biāo)不可達(dá)報(bào)文中接收方路由器的MTU值學(xué)習(xí)路徑MTU ;若接收模塊502在第二預(yù)設(shè)條件下 未接收到針對第三探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文時(shí),觸發(fā)發(fā)送模塊501向接收方路由器 發(fā)送第一探測報(bào)文。
進(jìn)一步地,在本發(fā)明實(shí)施例的隧道MTU的發(fā)現(xiàn)處理裝置中,還可以包括生成模塊 505,用于從發(fā)送方路由器隧道邊緣接口配置的目的地址對應(yīng)的路由信息中獲取發(fā)送方路 由器上的隧道MTU值與物理接口 MTU值,選取隧道MTU值與物理接口 MTU值的較大MTU值, 并生成長度為較大MTU值的第一探測報(bào)文,或者生成長度為物理接口 MTU值的第一探測報(bào) 文。相應(yīng)的,發(fā)送模塊501具體用于向接收方路由器發(fā)送生成模塊生成的第一探測報(bào)文。如 圖7所示,為本發(fā)明隧道MTU的發(fā)現(xiàn)處理裝置又一個(gè)實(shí)施例的結(jié)構(gòu)示意圖。
圖8為本發(fā)明隧道MTU的發(fā)現(xiàn)處理裝置再一個(gè)實(shí)施例的結(jié)構(gòu)示意圖,該實(shí)施例的 隧道MTU的發(fā)現(xiàn)處理裝置可用于實(shí)現(xiàn)本發(fā)明圖2所示實(shí)施例的流程。請參見圖8,與圖5-圖 7所示的實(shí)施例相比,該實(shí)施例的隧道MTU的發(fā)現(xiàn)處理裝置還包括比較模塊506,用于根據(jù) 檢測模塊503的檢測結(jié)果,在接收模塊502接收到目標(biāo)不可達(dá)報(bào)文時(shí),從目標(biāo)不可達(dá)報(bào)文中 獲取接收方路由器的MTU值,并比較該接收方路由器的MTU值是否小于預(yù)設(shè)最小MTU值。相 應(yīng)的,學(xué)習(xí)模塊504具體根據(jù)比較模塊506的比較結(jié)果,在接收方路由器的MTU值不小于預(yù) 設(shè)最小MTU值時(shí),學(xué)習(xí)路徑MTU。 圖9為本發(fā)明隧道MTU的發(fā)現(xiàn)處理裝置還一個(gè)實(shí)施例的結(jié)構(gòu)示意圖,該實(shí)施例的 隧道MTU的發(fā)現(xiàn)處理裝置可用于實(shí)現(xiàn)本發(fā)明圖3與圖4所示實(shí)施例的流程。請參見圖9,與 本發(fā)明上述實(shí)施例的隧道MTU的發(fā)現(xiàn)處理裝置相比,該實(shí)施例的隧道MTU的發(fā)現(xiàn)處理裝置 還包括狀態(tài)機(jī)507,用于進(jìn)行狀態(tài)指示,該狀態(tài)包括初始狀態(tài)、學(xué)習(xí)狀態(tài)與保持狀態(tài),以及根 據(jù)第一預(yù)設(shè)條件更新第一統(tǒng)計(jì)值,根據(jù)第二預(yù)設(shè)條件更新第二統(tǒng)計(jì)值,以及統(tǒng)計(jì)生成第一 探測報(bào)文的次數(shù)。 相應(yīng)的,生成模塊505具體在狀態(tài)機(jī)507處于初始狀態(tài)并且第一次生成第一探測 報(bào)文時(shí),生成長度為較大MTU值或物理接口 MTU值的第一探測報(bào)文;在狀態(tài)機(jī)507處于初始 狀態(tài)但不是第一次生成第一探測報(bào)文時(shí),選取該隧道MTU值與物理接口 MTU值的較小MTU 值,并生成長度為該較小MTU值的第一探測報(bào)文。 相應(yīng)的,發(fā)送模塊501具體在狀態(tài)機(jī)507處于初始狀態(tài)下,向接收方路由器發(fā)送第 一探測報(bào)文,還用于在向接收方路由器發(fā)送第一探測報(bào)文后,將狀態(tài)機(jī)507的狀態(tài)更新為 學(xué)習(xí)狀態(tài),并更新狀態(tài)機(jī)507上發(fā)送第一探測報(bào)文的次數(shù);在狀態(tài)機(jī)507的狀態(tài)處于學(xué)習(xí)狀 態(tài)下時(shí),向接收方路由器發(fā)送第二探測報(bào)文,并在向接收方路由器發(fā)送第二探測報(bào)文之后, 根據(jù)第一預(yù)設(shè)條件更新狀態(tài)機(jī)507上的第一統(tǒng)計(jì)值;在狀態(tài)機(jī)507的狀態(tài)處于保持狀態(tài)下 時(shí),向接收方路由器發(fā)送第三探測報(bào)文;并在向接收方路由器發(fā)送第三探測報(bào)文之后,根據(jù) 第二預(yù)設(shè)條件更新狀態(tài)機(jī)507上的第二統(tǒng)計(jì)值。 相應(yīng)的,接收模塊502還用于根據(jù)狀態(tài)機(jī)507上的第一統(tǒng)計(jì)值,在第一預(yù)設(shè)條件下 未接收到針對第二探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文時(shí),清空第一統(tǒng)計(jì)值,并且將狀態(tài)機(jī)507 的狀態(tài)更新為保持狀態(tài);在接收到針對第二探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文時(shí),清空第一 統(tǒng)計(jì)值;根據(jù)狀態(tài)機(jī)507上的第二統(tǒng)計(jì)值,在第二預(yù)設(shè)條件下未接收到針對第三探測報(bào)文 返回的目標(biāo)不可達(dá)報(bào)文時(shí),清空第二統(tǒng)計(jì)值,并且將狀態(tài)機(jī)507的狀態(tài)更新為初始狀態(tài),以 便發(fā)送模塊501在初始狀態(tài)下向接收方路由器發(fā)送第一探測報(bào)文;接收到針對第三探測報(bào) 文返回的目標(biāo)不可達(dá)報(bào)文時(shí),空第二統(tǒng)計(jì)值,并且狀態(tài)機(jī)507的狀態(tài)更新為學(xué)習(xí)狀態(tài),以便 學(xué)習(xí)模塊504在學(xué)習(xí)狀態(tài)下根據(jù)該目標(biāo)不可達(dá)報(bào)文中接收方路由器的MTU值學(xué)習(xí)路徑MTU 值。
相應(yīng)的,學(xué)習(xí)模塊504具體在狀態(tài)機(jī)507處于學(xué)習(xí)狀態(tài)下時(shí),根據(jù)目標(biāo)不可達(dá)報(bào)文 中接收方路由器的MTU值學(xué)習(xí)路徑MTU。 本發(fā)明實(shí)施例還提供了一種路由器,其可以包括本發(fā)明上述實(shí)施例圖5至圖9任 意一個(gè)實(shí)施例提供的隧道MTU的發(fā)現(xiàn)處理裝置。 本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過 程序指令相關(guān)的硬件來完成,前述的程序可以存儲于一計(jì)算機(jī)可讀取存儲介質(zhì)中,該程序 在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟;而前述的存儲介質(zhì)包括R0M、 RAM、磁碟或者 光盤等各種可以存儲程序代碼的介質(zhì)。 本發(fā)明實(shí)施例學(xué)習(xí)到路徑MTU以后,可以向接收方路由器發(fā)送長度為學(xué)習(xí)到的路 徑MTU值的第二探測報(bào)文,該第二探測報(bào)文中攜帶有DF位,并在第一預(yù)設(shè)條件下未接收到 針對第二探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文時(shí),重新向接收方路由器發(fā)送第一探測報(bào)文,以 重新學(xué)習(xí)路徑MTU,動態(tài)獲取隧道內(nèi)的路徑MTU,實(shí)現(xiàn)路徑MTU的老化,從而正確決定是否需 要對報(bào)文進(jìn)行分片發(fā)送,避免按照較小MTU值對報(bào)文分片造成的網(wǎng)絡(luò)資源浪費(fèi)、系統(tǒng)工作 性能下降與數(shù)據(jù)傳輸效率降低的問題,以及避免按照較大MTU值發(fā)送報(bào)文造成報(bào)文的丟失 與通信業(yè)務(wù)的中斷的問題,在保證報(bào)文正常發(fā)送的情況下實(shí)現(xiàn)網(wǎng)絡(luò)資源的高效利用,提高 系統(tǒng)工作性能與數(shù)據(jù)傳輸效率。另外,本發(fā)明實(shí)施例中學(xué)習(xí)路徑MTU時(shí),采用的是專用的探 測報(bào)文而非正常通信業(yè)務(wù)的報(bào)文,因此與通信業(yè)務(wù)過程獨(dú)立,不會影響通信業(yè)務(wù)的正常進(jìn) 行。 最后所應(yīng)說明的是以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對本發(fā)明作 限制性理解。盡管參照上述較佳實(shí)施例對本發(fā)明進(jìn)行了詳細(xì)說明,本領(lǐng)域的普通技術(shù)人員 應(yīng)當(dāng)理解其依然可以對本發(fā)明的技術(shù)方案進(jìn)行修改或者等同替換,而這種修改或者等同 替換并不脫離本發(fā)明技術(shù)方案的精神和范圍。
權(quán)利要求
一種隧道最大傳輸單元的發(fā)現(xiàn)處理方法,其特征在于,包括向接收方路由器發(fā)送第一探測報(bào)文,該第一探測報(bào)文中攜帶有禁止分片DF位;接收到針對第一探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文時(shí),根據(jù)該目標(biāo)不可達(dá)報(bào)文中接收方路由器的最大傳輸單元MTU值學(xué)習(xí)路徑MTU,向所述接收方路由器發(fā)送第二探測報(bào)文,所述第二探測報(bào)文中攜帶有DF位,所述第二探測報(bào)文的長度為學(xué)習(xí)到的路徑MTU值;在第一預(yù)設(shè)條件下未接收到針對第二探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文時(shí),執(zhí)行所述向接收方路由器發(fā)送第一探測報(bào)文的操作。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述在第一預(yù)設(shè)條件下未接收到針對第二探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文具體為針對連續(xù)M次向所述接收方路由器發(fā)送的第二探測報(bào)文,或者在第一預(yù)設(shè)時(shí)間內(nèi)連續(xù) 向所述接收方路由器發(fā)送的第二探測報(bào)文,均未接收到所述接收方路由器返回的目標(biāo)不可 達(dá)報(bào)文,其中,M為大于1的整數(shù)。
3. 根據(jù)權(quán)利要求l所述的方法,其特征在于,還包括接收到針對第二探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文時(shí),執(zhí)行所述根據(jù)該目標(biāo)不可達(dá)報(bào)文中接收方路由器的MTU值學(xué)習(xí)路徑MTU,向所述接收方路由器發(fā)送第二探測報(bào)文的操作。
4. 根據(jù)權(quán)利要求1至3任意一項(xiàng)所述的方法,其特征在于,在第一預(yù)設(shè)條件下未接收到 針對第二探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文時(shí),執(zhí)行所述向接收方路由器發(fā)送第一探測報(bào)文 的操作包括在第一預(yù)設(shè)條件下未接收到針對第二探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文時(shí),以學(xué)習(xí)到的 路徑MTU值與N值之和,作為第三探測報(bào)文的長度,向接收方路由器發(fā)送第三探測報(bào)文,所 述第三探測報(bào)文中攜帶有DF位,N為大于零的整數(shù);接收到針對第三探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文時(shí),根據(jù)該目標(biāo)不可達(dá)報(bào)文中接收方 路由器的MTU值學(xué)習(xí)路徑MTU ;在第二預(yù)設(shè)條件下未接收到針對第三探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文時(shí),執(zhí)行所述向 接收方路由器發(fā)送第一探測報(bào)文的操作。
5. 根據(jù)權(quán)利要求4所述的方法,其特征在于,在第二預(yù)設(shè)條件下未接收到針對第三探 測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文具體為針對連續(xù)L次向所述接收方路由器發(fā)送的第三探測報(bào)文,或者在第二預(yù)設(shè)時(shí)間內(nèi)連續(xù) 向所述接收方路由器發(fā)送的第三探測報(bào)文,均未接收到所述接收方路由器返回的目標(biāo)不可 達(dá)報(bào)文,其中,L為大于1的整數(shù)。
6. 根據(jù)權(quán)利要求5所述的方法,其特征在于,所述向接收方路由器發(fā)送第一探測報(bào)文之前,還包括從所述發(fā)送方路由器隧道邊緣接口配置的目的地址對應(yīng)的路由信息中獲取所述發(fā)送方路由器上的隧道MTU值與物理接口 MTU值,選取該隧道MTU值與物理接口 MTU值的較大 MTU值,生成長度為該較大MTU值的所述第一探測報(bào)文;或者從所述發(fā)送方路由器隧道邊緣接口配置的目的地址對應(yīng)的路由信息中獲取所述發(fā)送 方路由器上的物理接口 MTU值,生成長度為該物理接口 MTU值的所述第一探測報(bào)文。
7. 根據(jù)權(quán)利要求6所述的方法,其特征在于,接收到目標(biāo)不可達(dá)報(bào)文時(shí),還包括 獲取該目標(biāo)不可達(dá)報(bào)文中接收方路由器的MTU值,并比較該接收方路由器的MTU值是否小于預(yù)設(shè)最小MTU值,并在該接收方路由器的MTU值不小于預(yù)設(shè)最小MTU值時(shí),執(zhí)行所述學(xué)習(xí)路徑MTU的操作。
8. 根據(jù)權(quán)利要求6所述的方法,其特征在于,在狀態(tài)機(jī)處于初始狀態(tài)并且第一次生成第一探測報(bào)文時(shí),執(zhí)行從所述發(fā)送方路由器隧道邊緣接口配置的目的地址對應(yīng)的路由信息中獲取所述發(fā)送方路由器上的隧道MTU值與物理接口 MTU值的操作,或者執(zhí)行從所述發(fā)送方路由器隧道邊緣接口配置的目的地址對應(yīng)的路由信息中獲取所述發(fā)送方路由器上的物理接口 MTU值的操作;在狀態(tài)機(jī)處于初始狀態(tài)但不是第一次生成第一探測報(bào)文時(shí),從所述發(fā)送方路由器隧道邊緣接口配置的目的地址對應(yīng)的路由信息中獲取所述發(fā)送方路由器上的隧道MTU值與物理接口 MTU值,選取該隧道MTU值與物理接口 MTU值的較小MTU值,生成長度為該較小MTU值的所述第一探測報(bào)文;向接收方路由器發(fā)送第一探測報(bào)文后,還包括將所述狀態(tài)機(jī)的狀態(tài)更新為學(xué)習(xí)狀態(tài),并更新所述狀態(tài)機(jī)上發(fā)送第一探測報(bào)文的次數(shù);向所述接收方路由器發(fā)送第二探測報(bào)文具體為在所述狀態(tài)機(jī)的狀態(tài)處于學(xué)習(xí)狀態(tài)下時(shí),向所述接收方路由器發(fā)送第二探測報(bào)文;向所述接收方路由器發(fā)送第二探測報(bào)文之后,還包括根據(jù)第一預(yù)設(shè)條件更新所述狀態(tài)機(jī)上的第一統(tǒng)計(jì)值,并在第一預(yù)設(shè)條件下未接收到針對第二探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文時(shí),清空所述第一統(tǒng)計(jì)值,并且將所述狀態(tài)機(jī)的狀態(tài)更新為保持狀態(tài);接收到針對第二探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文時(shí),清空所述第一統(tǒng)計(jì)值,在學(xué)習(xí)狀態(tài)下根據(jù)該目標(biāo)不可達(dá)報(bào)文中接收方路由器的MTU值學(xué)習(xí)路徑MTU ;向接收方路由器發(fā)送第三探測報(bào)文具體為在所述狀態(tài)機(jī)的狀態(tài)處于保持狀態(tài)下時(shí),向所述接收方路由器發(fā)送第三探測報(bào)文;向所述接收方路由器發(fā)送第三探測報(bào)文之后,還包括根據(jù)第二預(yù)設(shè)條件更新所述狀態(tài)機(jī)上的第二統(tǒng)計(jì)值,并在第二預(yù)設(shè)條件下未接收到針對第三探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文時(shí),清空所述第二統(tǒng)計(jì)值,并且將所述狀態(tài)機(jī)的狀態(tài)更新為初始狀態(tài),在初始狀態(tài)下執(zhí)行所述向接收方路由器發(fā)送第一探測報(bào)文的操作;接收到針對第三探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文時(shí),清空所述第二統(tǒng)計(jì)值,并且所述狀態(tài)機(jī)的狀態(tài)更新為學(xué)習(xí)狀態(tài),在學(xué)習(xí)狀態(tài)下根據(jù)該目標(biāo)不可達(dá)報(bào)文中接收方路由器的MTU值學(xué)習(xí)路徑MTU。
9. 一種隧道最大傳輸單元的發(fā)現(xiàn)處理裝置,其特征在于,包括發(fā)送模塊,用于向接收方路由器發(fā)送第一探測報(bào)文與第二探測報(bào)文,所述第一探測報(bào)文與所述第二探測報(bào)文中攜帶有DF位;接收模塊,用于接收所述接收方路由器返回的目標(biāo)不可達(dá)報(bào)文;檢測模塊,用于檢測所述接收模塊是否接收到所述接收方路由器針對第一探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文,以及檢測所述接收模塊在所述發(fā)送模塊發(fā)送第二探測報(bào)文后的第一預(yù)設(shè)條件下,是否接收到針對第二探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文,并在第一預(yù)設(shè)條件下未接收到針對第二探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文時(shí),觸發(fā)所述發(fā)送模塊向接收方路由器發(fā)送第一探測報(bào)文;學(xué)習(xí)模塊,用于根據(jù)所述檢測模塊的檢測結(jié)果,在所述接收模塊接收到針對第一探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文時(shí),根據(jù)該目標(biāo)不可達(dá)報(bào)文中接收方路由器的MTU值,學(xué)習(xí)路 徑MTU,并觸發(fā)所述發(fā)送模塊向所述接收方路由器發(fā)送第二探測報(bào)文,所述第二探測報(bào)文的 長度為學(xué)習(xí)到的路徑MTU值。
10. 根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述學(xué)習(xí)模塊還用于根據(jù)所述檢測模塊 的檢測結(jié)果,在所述接收模塊接收到針對第二探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文時(shí),根據(jù)該 目標(biāo)不可達(dá)報(bào)文中接收方路由器的MTU值學(xué)習(xí)路徑MTU,并觸發(fā)所述發(fā)送模塊向所述接收 方路由器發(fā)送第二探測報(bào)文。
11. 根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述檢測模塊包括 檢測單元,用于檢測所述接收模塊是否接收到所述接收方路由器針對第一探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文,檢測所述接收模塊在所述發(fā)送模塊發(fā)送第二探測報(bào)文后的第一預(yù)設(shè) 條件下,是否接收到針對第二探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文,以及檢測所述接收模塊在 所述發(fā)送模塊發(fā)送第三探測報(bào)文后的第二預(yù)設(shè)條件下,是否接收到針對第三探測報(bào)文返回 的目標(biāo)不可達(dá)報(bào)文;觸發(fā)單元,用于根據(jù)所述檢測單元的檢測結(jié)果,若所述接收模塊在第一預(yù)設(shè)條件下未 接收到針對第二探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文時(shí),以所述學(xué)習(xí)模塊學(xué)習(xí)到的路徑MTU值 與N值之和,作為第三探測報(bào)文的長度,觸發(fā)所述發(fā)送模塊向接收方路由器發(fā)送第三探測 報(bào)文,所述第三探測報(bào)文中攜帶有DF位,N為大于零的整數(shù);所述接收模塊在第二預(yù)設(shè)條件 下接收到針對第三探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文時(shí),觸發(fā)所述學(xué)習(xí)模塊根據(jù)該目標(biāo)不可 達(dá)報(bào)文中接收方路由器的MTU值學(xué)習(xí)路徑MTU;所述接收模塊在第二預(yù)設(shè)條件下未接收到 針對第三探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文時(shí),觸發(fā)所述發(fā)送模塊向接收方路由器發(fā)送第一 探測報(bào)文。
12. 根據(jù)權(quán)利要求9、 10或11所述的裝置,其特征在于,還包括生成模塊,用于從所述發(fā)送方路由器隧道邊緣接口配置的目的地址對應(yīng)的路由信息中 獲取所述發(fā)送方路由器上的隧道MTU值與物理接口 MTU值,選取所述隧道MTU值與所述物 理接口 MTU值的較大MTU值,并生成長度為所述較大MTU值的所述第一探測報(bào)文,或者生成 長度為所述物理接口 MTU值的所述第一探測報(bào)文;所述發(fā)送模塊用于向接收方路由器發(fā)送所述生成模塊生成的第一探測報(bào)文。
13. 根據(jù)權(quán)利要求12所述的裝置,其特征在于,還包括比較模塊,用于根據(jù)所述檢測模塊的檢測結(jié)果,在所述接收模塊接收到目標(biāo)不可達(dá)報(bào) 文時(shí),從所述目標(biāo)不可達(dá)報(bào)文中獲取接收方路由器的MTU值,并比較該接收方路由器的MTU 值是否小于預(yù)設(shè)最小MTU值;所述學(xué)習(xí)模塊具體根據(jù)所述比較模塊的比較結(jié)果,在所述接收方路由器的MTU值不小 于預(yù)設(shè)最小MTU值時(shí),學(xué)習(xí)路徑MTU。
14. 根據(jù)權(quán)利要求13所述的裝置,其特征在于,還包括狀態(tài)機(jī),用于進(jìn)行狀態(tài)指示,所述狀態(tài)包括初始狀態(tài)、學(xué)習(xí)狀態(tài)與保持狀態(tài),根據(jù)第一 預(yù)設(shè)條件更新第一統(tǒng)計(jì)值,根據(jù)第二預(yù)設(shè)條件更新第二統(tǒng)計(jì)值,以及統(tǒng)計(jì)生成第一探測報(bào) 文的次數(shù);所述生成模塊具體在狀態(tài)機(jī)處于初始狀態(tài)并且第一次生成第一探測報(bào)文時(shí),生成長度 為所述較大MTU值或所述物理接口 MTU值的所述第一探測報(bào)文;在狀態(tài)機(jī)處于初始狀態(tài)但不是第一次生成第一探測報(bào)文時(shí),選取該隧道MTU值與物理接口 MTU值的較小MTU值,并生 成長度為該較小MTU值的所述第一探測報(bào)文;所述發(fā)送模塊具體在所述狀態(tài)機(jī)處于初始狀態(tài)下向接收方路由器發(fā)送第一探測報(bào)文, 還用于在向接收方路由器發(fā)送第一探測報(bào)文后,將所述狀態(tài)機(jī)的狀態(tài)更新為學(xué)習(xí)狀態(tài),并 更新所述狀態(tài)機(jī)上發(fā)送第一探測報(bào)文的次數(shù);在所述狀態(tài)機(jī)的狀態(tài)處于學(xué)習(xí)狀態(tài)下時(shí),向 所述接收方路由器發(fā)送第二探測報(bào)文,并在向所述接收方路由器發(fā)送第二探測報(bào)文之后, 根據(jù)第一預(yù)設(shè)條件更新所述狀態(tài)機(jī)上的第一統(tǒng)計(jì)值;在所述狀態(tài)機(jī)的狀態(tài)處于保持狀態(tài)下 時(shí),向所述接收方路由器發(fā)送第三探測報(bào)文;并在向所述接收方路由器發(fā)送第三探測報(bào)文 之后,根據(jù)第二預(yù)設(shè)條件更新所述狀態(tài)機(jī)上的第二統(tǒng)計(jì)值;所述接收模塊還用于根據(jù)所述狀態(tài)機(jī)上的第一統(tǒng)計(jì)值,在第一預(yù)設(shè)條件下未接收到針 對第二探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文時(shí),清空所述第一統(tǒng)計(jì)值,并且將所述狀態(tài)機(jī)的狀 態(tài)更新為保持狀態(tài);在接收到針對第二探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文時(shí),清空所述第一 統(tǒng)計(jì)值;根據(jù)所述狀態(tài)機(jī)上的第二統(tǒng)計(jì)值,在第二預(yù)設(shè)條件下未接收到針對第三探測報(bào)文 返回的目標(biāo)不可達(dá)報(bào)文時(shí),清空所述第二統(tǒng)計(jì)值,并且將所述狀態(tài)機(jī)的狀態(tài)更新為初始狀 態(tài),以便所述發(fā)送模塊在初始狀態(tài)下向接收方路由器發(fā)送第一探測報(bào)文;接收到針對第三 探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文時(shí),清空所述第二統(tǒng)計(jì)值,并且所述狀態(tài)機(jī)的狀態(tài)更新為 學(xué)習(xí)狀態(tài),以便所述學(xué)習(xí)模塊在學(xué)習(xí)狀態(tài)下根據(jù)該目標(biāo)不可達(dá)報(bào)文中接收方路由器的MTU 值學(xué)習(xí)路徑MTU值;所述學(xué)習(xí)模塊具體在所述狀態(tài)機(jī)處于學(xué)習(xí)狀態(tài)下根據(jù)目標(biāo)不可達(dá)報(bào)文中接收方路由 器的MTU值學(xué)習(xí)路徑MTU。
15. —種路由器,其特征在于,包括權(quán)利要求9至14任意一項(xiàng)所述的隧道最大傳輸單元 的發(fā)現(xiàn)處理裝置。
全文摘要
本發(fā)明公開了一種隧道最大傳輸單元的發(fā)現(xiàn)處理方法與裝置、路由器,其中,方法包括向接收方路由器發(fā)送第一探測報(bào)文,其中攜帶有DF位;接收到針對第一探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文時(shí),根據(jù)該目標(biāo)不可達(dá)報(bào)文中接收方路由器的MTU值學(xué)習(xí)路徑MTU,向接收方路由器發(fā)送第二探測報(bào)文,其中攜帶有DF位,第二探測報(bào)文的長度為學(xué)習(xí)到的路徑MTU值;在第一預(yù)設(shè)條件下未接收到針對第二探測報(bào)文返回的目標(biāo)不可達(dá)報(bào)文時(shí),執(zhí)行向接收方路由器發(fā)送第一探測報(bào)文的操作。本發(fā)明實(shí)施例可以避免按照較小MTU值對報(bào)文分片造成的網(wǎng)絡(luò)資源浪費(fèi)、系統(tǒng)工作性能下降與數(shù)據(jù)傳輸效率降低,以及按照較大MTU值發(fā)送報(bào)文造成報(bào)文的丟失與通信業(yè)務(wù)的中斷。
文檔編號H04L12/46GK101695048SQ20091020881
公開日2010年4月14日 申請日期2009年10月29日 優(yōu)先權(quán)日2009年10月29日
發(fā)明者黃小珊 申請人:福建星網(wǎng)銳捷網(wǎng)絡(luò)有限公司;
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
安达市| 昌都县| 承德县| 苏尼特左旗| 彭阳县| 台江县| 文登市| 巨鹿县| 汝南县| 大新县| 永福县| 阳新县| 侯马市| 乌鲁木齐县| 九寨沟县| 昌江| 罗定市| 溧阳市| 吉木萨尔县| 陈巴尔虎旗| 寿阳县| 洛宁县| 阿拉尔市| 镇赉县| 丰县| 巩留县| 东乌珠穆沁旗| 老河口市| 岢岚县| 郴州市| SHOW| 广东省| 普兰店市| 隆化县| 伊春市| 云浮市| 保定市| 大厂| 万安县| 东山县| 沙河市|