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

網(wǎng)絡(luò)路徑最大傳輸長度發(fā)現(xiàn)方法

文檔序號:7595022閱讀:334來源:國知局
專利名稱:網(wǎng)絡(luò)路徑最大傳輸長度發(fā)現(xiàn)方法
技術(shù)領(lǐng)域
本發(fā)明涉及網(wǎng)絡(luò)通信技術(shù)領(lǐng)域,具體涉及一種網(wǎng)絡(luò)路徑最大傳輸長度發(fā)現(xiàn)方法。
背景技術(shù)
IP(網(wǎng)際協(xié)議)網(wǎng)絡(luò)包括不同節(jié)點(diǎn)及其互連鏈路,連接不同節(jié)點(diǎn)的鏈路可以有多種類型,不同類型鏈路的MTU(最大傳輸長度)缺省值不一樣,以太網(wǎng)的標(biāo)準(zhǔn)值為1500字節(jié),而多數(shù)ISP(因特網(wǎng)服務(wù)提供商)提供的撥號網(wǎng)絡(luò)的標(biāo)準(zhǔn)值為576字節(jié)。MTU是網(wǎng)絡(luò)連接中數(shù)據(jù)鏈路所允許傳送報(bào)文的最大長度。兩臺主機(jī)通過互聯(lián)網(wǎng)進(jìn)行通信時(shí),從源節(jié)點(diǎn)到目的節(jié)點(diǎn)之間可能需要跨越多重網(wǎng)絡(luò)路徑,報(bào)文需要經(jīng)過多個(gè)路由器逐跳轉(zhuǎn)發(fā),主機(jī)與路由器之間,路由器與路由器之間都是直連的數(shù)據(jù)鏈路,各段鏈路的MTU值不一定相同,因此,為使跨越多重網(wǎng)絡(luò)路徑的兩個(gè)主機(jī)通信,重要的不是兩臺主機(jī)所在網(wǎng)絡(luò)的MTU的值,而是兩臺通信主機(jī)路徑中的最小MTU,即PMTU(路徑最大傳輸長度)。為了保證較大長度報(bào)文的傳輸,當(dāng)報(bào)文長度超過底層鏈路MTU的限制時(shí),需要對其進(jìn)行分片傳輸,使每一片都小于MTU。分片的報(bào)文在到達(dá)目的主機(jī)后,由IP層重組為原報(bào)文。其分片與重組過程如圖1所示。
分片重組技術(shù)的使用,雖然給使用者帶來了方便,但也存在一些問題如果一個(gè)報(bào)文中的一個(gè)分片沒有正常到達(dá)目的主機(jī),則整個(gè)報(bào)文就傳輸失敗,這時(shí)IP的上層只能重新傳輸整個(gè)報(bào)文。因此,報(bào)文的分片可能會導(dǎo)致網(wǎng)絡(luò)性能的降低。所以為了提高報(bào)文傳輸效率,發(fā)送IP報(bào)文的一方希望所傳輸?shù)膱?bào)文在到達(dá)目的主機(jī)的過程中不進(jìn)行分片,也就是說希望通過傳輸長度不大于網(wǎng)絡(luò)路徑的最小MTU的數(shù)據(jù)包來避免分段,這就需要發(fā)送方一開始就知道整個(gè)路徑上最小的鏈路MTU,即PMTU。
RFC1191協(xié)議描述了路徑MTU的發(fā)現(xiàn)機(jī)制,通過發(fā)送分組在分組頭部設(shè)置不分片標(biāo)志字段并判斷返回ICMP(互聯(lián)網(wǎng)控制管理協(xié)議)錯誤消息來實(shí)現(xiàn)。發(fā)送的第一個(gè)分組的長度與出口MTU相等,每次收到ICMP不能分片錯誤時(shí),就減少分組長度,以下一個(gè)較小的MTU值發(fā)送。具體過程如下(1)發(fā)送方構(gòu)造一個(gè)充分大的IP探測報(bào)文(長度大于出口的MTU),對IP頭中的DF(Don’t Frament)位置位,標(biāo)識該報(bào)文不可分片,然后發(fā)送。
(2)沿途的路由器如果要對報(bào)文分片,在檢查到DF位置位后,就會丟棄報(bào)文,并向源主機(jī)返回一個(gè)目的不可達(dá)類型的ICMP差錯控制報(bào)文。
(3)發(fā)送方收到ICMP差錯控制報(bào)文后,可以減小探測報(bào)文的長度,然后再發(fā)送出去。
減小探測報(bào)文的長度可以采用以下兩種策略枚舉法由于已知的數(shù)據(jù)鏈路種類是有限的,所以發(fā)送方可以預(yù)先羅列出所有可能的鏈路MTU值,發(fā)送的探測報(bào)文由高到低依次采用這些長度進(jìn)行探測。
反饋法擴(kuò)展ICMP的差錯控制報(bào)文,在返回的目的不可達(dá)報(bào)文的保留字段中記錄路由器出口的MTU值,接收方可根據(jù)此值對報(bào)文的長度進(jìn)行調(diào)整。
(4)如此反復(fù)探測,直到發(fā)送方認(rèn)為報(bào)文已不會再被分片為止,此時(shí)的報(bào)文長度就是PMTU。
在上述探測過程中,可以利用ICMP的echo/reply報(bào)文來實(shí)現(xiàn)該方案。
該方案雖然目前廣為使用,但是效率不高。在最壞的情況下,報(bào)文有可能會在途經(jīng)的每個(gè)路由器處進(jìn)行報(bào)文分片。如果沿途有n個(gè)路由器,則該方法在最壞的情況下就需要探測n次。另外,在有隧道網(wǎng)關(guān)的情況下這種探測方式有可能會失效。
由于公共IP的短缺,在組建局域網(wǎng)時(shí),通常使用保留地址作為內(nèi)部IP,這些保留地址在Internet上是無法被路由的,所以在正常情況下無法直接通過Internet訪問到在局域網(wǎng)內(nèi)的主機(jī)。為了實(shí)現(xiàn)這一目的,需要使用VPN(虛擬專用網(wǎng))隧道技術(shù),其實(shí)現(xiàn)過程如圖2所示。其中,新IP頭的源地址是發(fā)送方的隧道網(wǎng)關(guān),目的地址是接收方的隧道網(wǎng)關(guān)。報(bào)文發(fā)送到接收方隧道網(wǎng)關(guān)時(shí),由該網(wǎng)關(guān)去掉新的IP頭,恢復(fù)原來的IP報(bào)文再繼續(xù)轉(zhuǎn)發(fā)。現(xiàn)在互聯(lián)網(wǎng)中有許多的隧道網(wǎng)關(guān),如IPv4/IPv6網(wǎng)關(guān)、Ipsec(IP security)網(wǎng)關(guān)。
在互聯(lián)網(wǎng)傳輸過程中,如果中途路由器要對超長報(bào)文分片,但由于探測報(bào)文標(biāo)志為不可分片,則中途路由器會丟棄報(bào)文,并返回目的不可達(dá)類型的ICMP差錯控制報(bào)文,該報(bào)文中會攜帶原IP報(bào)文的首部及其后續(xù)8個(gè)字節(jié)的內(nèi)容。其過程如圖3所示。
在有隧道網(wǎng)關(guān)的情況下,中途路由器能處理的只是隧道報(bào)文,不可能看到原來的IP頭,所以IP頭1的目的地址是發(fā)送方的隧道網(wǎng)關(guān),源地址是中途路由器。而ICMP攜帶的原報(bào)文信息只是隧道報(bào)文的IP頭及其后續(xù)的8個(gè)字節(jié)。
在上述情況中,發(fā)送方隧道網(wǎng)關(guān)收到ICMP差錯控制報(bào)文后,應(yīng)該轉(zhuǎn)發(fā)給源主機(jī),這樣才能通知主機(jī)報(bào)文超長。但通常情況下,隧道網(wǎng)關(guān)僅通過報(bào)文內(nèi)容是難以確定原IP報(bào)文的源IP地址的,因此,也就無法將ICMP報(bào)文返回給源主機(jī)。

發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種網(wǎng)絡(luò)路徑最大傳輸長度發(fā)現(xiàn)方法,以克服現(xiàn)有技術(shù)中獲取路徑MTU時(shí)效率低、不能適應(yīng)復(fù)雜網(wǎng)絡(luò)環(huán)境的問題。
本發(fā)明的目的是通過以下技術(shù)方案實(shí)現(xiàn)的一種網(wǎng)絡(luò)路徑最大傳輸長度發(fā)現(xiàn)方法,所述網(wǎng)絡(luò)包括多個(gè)節(jié)點(diǎn),所述方法包括
A、構(gòu)造路徑最大傳輸長度探測報(bào)文;B、由源節(jié)點(diǎn)向目的節(jié)點(diǎn)發(fā)送所述探測報(bào)文;C、目的節(jié)點(diǎn)根據(jù)所述探測報(bào)文獲取所述探測報(bào)文的分片信息并返回給所述源節(jié)點(diǎn);D、所述源節(jié)點(diǎn)根據(jù)所述探測報(bào)文的分片信息獲取所述路徑最大傳輸長度。
所述步驟A包括A1、獲取源節(jié)點(diǎn)出口的最大傳輸長度;A2、設(shè)定長度大于所述源節(jié)點(diǎn)出口的最大傳輸長度的預(yù)定格式IP報(bào)文作為所述探測報(bào)文。
所述預(yù)定格式IP報(bào)文為可分片報(bào)文。
所述步驟A還包括定義所述探測報(bào)文的處理協(xié)議報(bào)文;將所述處理協(xié)議報(bào)文封裝到所述探測報(bào)文中。
所述探測報(bào)文處理協(xié)議包括擴(kuò)展的互聯(lián)網(wǎng)控制管理協(xié)議和私有協(xié)議。
所述擴(kuò)展的互聯(lián)網(wǎng)控制管理協(xié)議具體為回應(yīng)請求報(bào)文中將代碼定義為要求接收方不要對報(bào)文進(jìn)行重組,直接將報(bào)文的分片返回給請求方;回應(yīng)應(yīng)答報(bào)文中將代碼定義為返回原報(bào)文的分片信息。
所述步驟B包括當(dāng)所述源節(jié)點(diǎn)至目的節(jié)點(diǎn)沿途的中間節(jié)點(diǎn)出口的最大傳輸長度小于所述探測報(bào)文的長度時(shí),對所述探測報(bào)文進(jìn)行分片傳輸;當(dāng)所述源節(jié)點(diǎn)至目的節(jié)點(diǎn)沿途的中間節(jié)點(diǎn)出口的最大傳輸長度大于所述探測報(bào)文的長度時(shí),對所述探測報(bào)文直接傳輸。
所述步驟C包括
獲取所述探測報(bào)文頭域中的偏移量字段;根據(jù)所述偏移量字段獲取所述探測報(bào)文的第一個(gè)分片信息。
所述步驟D包括D1、所述目的節(jié)點(diǎn)根據(jù)所述探測報(bào)文處理協(xié)議向所述源節(jié)點(diǎn)返回所述探測報(bào)文的第一個(gè)分片信息;D2、所述源節(jié)點(diǎn)根據(jù)接收的第一個(gè)分片信息獲取所述路徑最大傳輸長度。
所述D1包括所述目的節(jié)點(diǎn)根據(jù)所述探測報(bào)文處理協(xié)議構(gòu)造包含所述探測報(bào)文的第一個(gè)分片信息的回應(yīng)報(bào)文;利用網(wǎng)絡(luò)層的傳輸協(xié)議將所述回應(yīng)報(bào)文傳送給所述源節(jié)點(diǎn)。
由以上本發(fā)明提供的技術(shù)方案可以看出,本發(fā)明對PMTU的探測過程只需發(fā)送一個(gè)可分片的、充分長的IP探測報(bào)文,即可從應(yīng)答消息中獲取路徑最大傳輸長度,提高了探測效率;由于探測過程中不需要與沿途的路由器進(jìn)行消息交互,只需等待目的主機(jī)返回的應(yīng)答消息,避免了受到各種不可預(yù)料的復(fù)雜組網(wǎng)環(huán)境的影響,可以適應(yīng)各種不同的網(wǎng)絡(luò)環(huán)境;如果通過擴(kuò)展ICMP協(xié)議來控制探測報(bào)文的傳送,則不需要增加任何新的協(xié)議即可完成探測過程,兼容性強(qiáng);PMTU的有效發(fā)現(xiàn),可以使IP報(bào)文在傳輸中不分片或減少分片,減少了分片與重組過程及傳輸中單個(gè)分片丟失造成的整個(gè)傳輸無效,進(jìn)而能夠提高網(wǎng)絡(luò)的傳輸效率。


圖1是IP報(bào)文分片與重組過程示意圖;圖2是隧道網(wǎng)關(guān)原理示意圖;圖3是現(xiàn)有技術(shù)中在隧道網(wǎng)關(guān)環(huán)境中探測MTU的過程示意圖;圖4是IP報(bào)文格式;
圖5是ICMP的回應(yīng)請求與應(yīng)答報(bào)文格式;圖6是本發(fā)明方法的流程圖;圖7是本發(fā)明方法中定義的封裝擴(kuò)展ICMP協(xié)議后的探測報(bào)文格式;圖8是本發(fā)明方法中探測報(bào)文分片傳輸示例;圖9是本發(fā)明方法中探測報(bào)文在隧道網(wǎng)關(guān)環(huán)境中的分片與傳輸示例。
具體實(shí)施例方式
本發(fā)明的核心是基于IP報(bào)文的傳輸規(guī)律,沿途路徑上的路由器根據(jù)各自出口的MTU(最大傳輸長度),對超過該長度的IP報(bào)文按照原報(bào)文的字節(jié)順序,由前向后進(jìn)行分段,這樣,在每一個(gè)路由器的出口,如果IP報(bào)文被分片,則在分出的多個(gè)片段中,第一個(gè)報(bào)文的長度一定等于出口的MTU。因此,構(gòu)造一個(gè)充分長的報(bào)文,從源節(jié)點(diǎn)到目的節(jié)點(diǎn),不論經(jīng)過幾個(gè)中間節(jié)點(diǎn),也不論經(jīng)過的中間節(jié)點(diǎn)屬于同一網(wǎng)絡(luò)還是屬于異構(gòu)網(wǎng)絡(luò),當(dāng)該報(bào)文到達(dá)目的節(jié)點(diǎn)后,眾多分片的第一個(gè)分片的長度即為PMTU(路徑最大傳輸長度)。再通過特定協(xié)議控制,由目的節(jié)點(diǎn)將該分片或其長度返回給發(fā)送方,使發(fā)送方通過一次探測就可發(fā)現(xiàn)PMTU。
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面結(jié)合附圖和實(shí)施方式對本發(fā)明作進(jìn)一步的詳細(xì)說明。
參照圖4所示IP報(bào)文格式包括以下字段版本號協(xié)議版本;報(bào)頭長度指示報(bào)頭的長度;服務(wù)類型域指示如何處理數(shù)據(jù)報(bào)以及所需服務(wù)類型;
數(shù)據(jù)報(bào)長度域指示整個(gè)IP數(shù)據(jù)報(bào)長度(包括頭和數(shù)據(jù)),當(dāng)數(shù)據(jù)報(bào)超過此長度時(shí),還要分片傳輸,每片中都有報(bào)頭和數(shù)據(jù)片組成;標(biāo)識域是數(shù)據(jù)包的ID號,用來控制分片重組,標(biāo)識分片屬于哪個(gè)數(shù)據(jù)包,發(fā)送端發(fā)送的數(shù)據(jù)包標(biāo)識字段都是一個(gè)唯一值,該值在分片時(shí)被復(fù)制到每個(gè)片中;標(biāo)志域包括3個(gè)比特,其中,第一個(gè)比特R保留未用;第二個(gè)比特DF(Don’tfragment)表示目標(biāo)主機(jī)不能分片;第二個(gè)比特MF(More fragment)“1”表示本分片后還有分片,“0”表示本分片后沒有分片了,除了最后一片外,其他每個(gè)組成數(shù)據(jù)報(bào)的片都要把該比特置“1”;片偏移分片在原數(shù)據(jù)包中的位置,該片偏移原始數(shù)據(jù)包開始處的位置;生存時(shí)間數(shù)據(jù)包在網(wǎng)絡(luò)中存在的時(shí)間;協(xié)議類型域表示創(chuàng)建該數(shù)據(jù)包的高級協(xié)議類型。如“1”表示ICMP協(xié)議,“6”表示TCP(傳輸控制協(xié)議)協(xié)議,“17”表示UDP(用戶數(shù)據(jù)報(bào)文協(xié)議)協(xié)議等;源IP地址和目標(biāo)IP地址;選項(xiàng)用于網(wǎng)絡(luò)控制。
ICMP是網(wǎng)標(biāo)協(xié)議的擴(kuò)展,它處理差錯和控制信息,特別是網(wǎng)關(guān)和主機(jī)使用該協(xié)議可把分組網(wǎng)絡(luò)傳輸過程中的異常情況或發(fā)生的差錯報(bào)告給該分組的始發(fā)方,ICMP需要封裝在IP數(shù)據(jù)包里傳送。由于ICMP協(xié)議的廣泛應(yīng)用,因此,本發(fā)明采用該協(xié)議實(shí)現(xiàn)探測報(bào)文的功能。
ICMP最常見的回應(yīng)請求與應(yīng)答報(bào)文格式如圖5所示類型0為回應(yīng)應(yīng)答報(bào)文,8為回應(yīng)請求報(bào)文。
原報(bào)文類型和代碼的定義如下表1所示表1

在現(xiàn)有標(biāo)準(zhǔn)協(xié)議中,對于代碼字段并未作定義,因此,可以擴(kuò)展ICMP的echo/reply,即利用該字段來標(biāo)識本發(fā)明中所述的PMTU探測報(bào)文,擴(kuò)展的ICMPecho/reply定義如下表2所示表2

擴(kuò)展的ICMP echo/reply報(bào)文與原報(bào)文格式一樣,類型也一樣,只是擴(kuò)展了代碼的定義和返回的參數(shù)代碼為1時(shí),擴(kuò)展的ICMP echo表示要求接收方將報(bào)文首個(gè)分片的長度返回。
代碼為1時(shí),擴(kuò)展的ICMP reply表示返回原報(bào)文首個(gè)分片的長度。長度的值在選項(xiàng)數(shù)據(jù)中。
基于上面對本發(fā)明中所使用的IP協(xié)議報(bào)文和擴(kuò)展的ICMP協(xié)議描述,下面參照圖6所示流程對本發(fā)明作詳細(xì)說明。
圖6是本發(fā)明的詳細(xì)流程圖,包括以下步驟步驟601獲取源節(jié)點(diǎn)出口的最大傳輸長度。
本技術(shù)領(lǐng)域人員知道,TCP/IP是一組協(xié)議簇,是互聯(lián)網(wǎng)的核心,其中最主要的是IP(網(wǎng)際協(xié)議)和TCP(傳輸控制協(xié)議)。TCP/IP協(xié)議實(shí)現(xiàn)了網(wǎng)絡(luò)間的互聯(lián)。通過路由器,可以將彼此獨(dú)立的網(wǎng)絡(luò)互聯(lián)起來,因此,IP報(bào)文的傳送就是從源節(jié)點(diǎn)(發(fā)送端)經(jīng)過不同的路由器,然后傳送到目的節(jié)點(diǎn)(接收端)。為了使IP報(bào)文在不同節(jié)點(diǎn)之間正確傳輸,需要對發(fā)送端口、路由器、接收端口進(jìn)行一系列的參數(shù)配置,MTU和其他TCP/IP配置選項(xiàng)都保存在發(fā)送端主機(jī)的注冊表中,通過注冊表就可獲知發(fā)送端出口的MTU值。
步驟602設(shè)定長度大于源節(jié)點(diǎn)出口的最大傳輸長度的預(yù)定格式IP報(bào)文作為探測報(bào)文。
圖4描述了IP報(bào)文的標(biāo)準(zhǔn)格式,其頭部字節(jié)數(shù)是固定的,但其數(shù)據(jù)域的長度是可以任意設(shè)定的,并在IP報(bào)文的頭部數(shù)據(jù)報(bào)長度域字段中給出。因此,可以構(gòu)造一個(gè)總長度大于發(fā)送端出口MTU值的IP報(bào)文作為PMTU探測報(bào)文。設(shè)定該報(bào)文中的DF為“1”,即設(shè)定該探測報(bào)文可分片。
步驟603定義探測報(bào)文的處理協(xié)議。
對于超過路徑MTU的IP報(bào)文,在正常傳輸情況下會進(jìn)行分片和重組,重組過程發(fā)生在接收端主機(jī),由接收端主機(jī)根據(jù)收到的IP分片報(bào)文頭部信息,將各分片重新組合成一個(gè)原始的IP報(bào)文。但發(fā)送探測報(bào)文的目的是要發(fā)現(xiàn)路徑MTU,而不是要對其正確重組,因此還需要一種協(xié)議來對該探測報(bào)文提供某些不同的服務(wù),也就是說定義探測報(bào)文的處理協(xié)議。
由于標(biāo)準(zhǔn)的ICMP協(xié)議用于在IP主機(jī)、路由器之間進(jìn)行錯誤信息和控制信息的傳遞。這些控制信息包括網(wǎng)絡(luò)通不通、主機(jī)是否可達(dá)、路由是否可用等網(wǎng)絡(luò)本身的消息。這些控制信息雖然并不傳輸用戶數(shù)據(jù),但對用戶數(shù)據(jù)的傳遞起著重要的作用。而且,標(biāo)準(zhǔn)ICMP協(xié)議中的代碼字段并未定義,因此,本發(fā)明首選ICMP協(xié)議,通過定義其代碼字段擴(kuò)展該協(xié)議(參見前面表2的定義),控制錯誤信息的傳輸。當(dāng)然,也可定義其他的私有協(xié)議來實(shí)現(xiàn)對探測報(bào)文的處理。只要發(fā)送方和接收方都要接受該協(xié)議即可。
步驟604將定義的處理協(xié)議封裝到探測報(bào)文中。
將擴(kuò)展的ICMP echo報(bào)文封裝在探測報(bào)文IP數(shù)據(jù)包中,封裝后探測報(bào)文結(jié)構(gòu)如圖7所示。
在該探測報(bào)文由源節(jié)點(diǎn)到目的節(jié)點(diǎn)傳輸過程中,沿途可能會經(jīng)過多個(gè)不同的中間節(jié)點(diǎn),這些節(jié)點(diǎn)可能分屬于不同的網(wǎng)絡(luò),比如,以太網(wǎng)、FDDI(基于光纖的分布數(shù)據(jù)接口)、ATM(異步傳輸模式)等,這些節(jié)點(diǎn)出口的MTU可能相同,也可能不同,每經(jīng)過一個(gè)節(jié)點(diǎn),都要檢查該報(bào)文的長度,當(dāng)該節(jié)點(diǎn)出口的最大傳輸長度小于該探測報(bào)文的長度時(shí),要對探測報(bào)文進(jìn)行分片傳輸,否則,會直接傳輸。
具體分片傳輸過程如下由于構(gòu)造的探測報(bào)文長度大于發(fā)送端出口的MTU,所以首先會在發(fā)送端出口進(jìn)行分片,第一個(gè)分片的長度為發(fā)送端出口的MTU,如果需要多個(gè)分片,則每個(gè)分片的長度都小于或等于發(fā)送端出口的MTU;每一個(gè)IP分片各自路由;經(jīng)過沿途節(jié)點(diǎn)時(shí),如果分片后的報(bào)文長度大于該路由器出口的MTU,則在該路由器出口繼續(xù)分片,第一個(gè)分片的長度為該路由器出口的MTU,如果需要多個(gè)分片,則每個(gè)分片的長度都小于或等于該路由器出口的MTU;每一個(gè)IP分片各自路由;按上述方式傳送,直到目的節(jié)點(diǎn)。
圖8描述了探測報(bào)文分片傳輸示例假設(shè)局域網(wǎng)1中允許的最大數(shù)據(jù)域長度為1500字節(jié),局域網(wǎng)2的為1000字節(jié),廣域網(wǎng)分組中允許的最大數(shù)據(jù)域長度為670字節(jié),″X,Y,ID,Length,MF,F(xiàn)O″表示長度為Length、標(biāo)識符為ID的數(shù)據(jù)報(bào)從節(jié)點(diǎn)X發(fā)往節(jié)點(diǎn)Y,MF和FO分別表示分片和片偏移量。
數(shù)據(jù)報(bào)中不存在任何選項(xiàng),每個(gè)數(shù)據(jù)報(bào)中都含有20字節(jié)的IP頭。主機(jī)1按照本機(jī)出口的MTU值構(gòu)造長度為1500字節(jié)的IP數(shù)據(jù)報(bào)文作為探測報(bào)文,其中的有效數(shù)據(jù)為1480字節(jié)。
探測報(bào)文在局域網(wǎng)1中不分片,經(jīng)過路由器1時(shí),要轉(zhuǎn)發(fā)到廣域網(wǎng),在路由器1的出接口處進(jìn)行分片,1480字節(jié)的數(shù)據(jù)域被分為3段,每段中數(shù)據(jù)域的數(shù)據(jù)長度分別為650、650和180字節(jié)。分片報(bào)文進(jìn)入局域網(wǎng)2后不需要再分片,于是主機(jī)2將收到這三個(gè)分片,主機(jī)2將對首片報(bào)文(偏移量為0)進(jìn)行檢查,看是否是PMTU的探測報(bào)文,如果是,就將向源主機(jī)返回首個(gè)分片的IP報(bào)文長度。
圖9給出了在有隧道網(wǎng)關(guān)存在的環(huán)境中,報(bào)文的分片和傳輸過程。隧道網(wǎng)關(guān)可以是IPv4/IPv6網(wǎng)關(guān),IPsec網(wǎng)關(guān)。網(wǎng)絡(luò)參數(shù)的假設(shè)與圖8相似,只是在隧道網(wǎng)關(guān)1處,對進(jìn)入隧道的報(bào)文將增加20字節(jié)的外層IP頭,在隧道網(wǎng)關(guān)2處將去掉這20字節(jié)的外層IP頭。具體的傳輸過程如下主機(jī)1發(fā)出一個(gè)長度為1500字節(jié)的IP探測報(bào)文,在局域網(wǎng)1中不分片。探測報(bào)文到達(dá)隧道網(wǎng)關(guān)1后,在隧道網(wǎng)關(guān)1的出接口需要進(jìn)行分片,由于每個(gè)分片還需要加上一個(gè)新的IP頭,所以分片的最大長度比出口的MTU(670)還要少20個(gè)字節(jié),應(yīng)該是650。這樣探測報(bào)文從隧道網(wǎng)關(guān)1出來后就被分成了三片,各片的總長度和數(shù)據(jù)長度分別是670(630),670(630),260(220)。
這三片報(bào)文到達(dá)隧道網(wǎng)關(guān)2后,將被剝?nèi)ネ鈱拥腎P頭,在局域網(wǎng)2上傳輸不需要分片,這樣到達(dá)主機(jī)2的各分片長度及其有效數(shù)據(jù)的長度將是650(630),650(630),240(220)。
步驟605目的節(jié)點(diǎn)根據(jù)接收的探測報(bào)文獲取探測報(bào)文的分片信息。
目的節(jié)點(diǎn)主機(jī)接收到上述分片報(bào)文后,根據(jù)各分片報(bào)文頭部解析出ICMPecho報(bào)文,其中代碼為1,即知不需對該分片報(bào)文重組,直接將報(bào)文的分片返回給請求方。
于是,目的節(jié)點(diǎn)主機(jī)根據(jù)分片報(bào)文的頭部信息,由標(biāo)識域中的ID號識別該分片屬于哪個(gè)數(shù)據(jù)包,由偏移量字段得知該分片在原數(shù)據(jù)包中的位置。
這樣,就可獲得探測報(bào)文的第一個(gè)分片信息,這些信息包括數(shù)據(jù)包ID號,協(xié)議類型,源IP地址,目的IP地址等。
由源節(jié)點(diǎn)主機(jī)發(fā)送的探測報(bào)文不論經(jīng)過多少次分片,由于每次分片時(shí)都是根據(jù)節(jié)點(diǎn)出口的MTU來劃分的,并且是按照原報(bào)文的字節(jié)順序由前向后來劃分,其最大長度等于節(jié)點(diǎn)出口的MTU,因此探測報(bào)文的第一個(gè)分片包含了路徑MTU的信息,也就是報(bào)文頭部的數(shù)據(jù)報(bào)長度域字段。因?yàn)镮P報(bào)文每次被分片后,該字段的值要修改為分片后的IP報(bào)文長度,因此獲取該值也就得知了PMTU。
IP報(bào)文的長度是由報(bào)文的發(fā)送方來控制的,因此,接收方還需要將獲取的第一個(gè)分片報(bào)文的信息傳送給源節(jié)點(diǎn)主機(jī),所以,進(jìn)到步驟606由目的節(jié)點(diǎn)根據(jù)探測報(bào)文處理協(xié)議構(gòu)造包含探測報(bào)文的第一個(gè)分片信息的回應(yīng)報(bào)文。
然后,進(jìn)到步驟607利用網(wǎng)絡(luò)層的傳輸協(xié)議將所述回應(yīng)報(bào)文傳送給所述源節(jié)點(diǎn)。
同樣,可以采用擴(kuò)展的ICMP協(xié)議,回應(yīng)ICMP reply報(bào)文,在該報(bào)文中通過代碼定義為返回原報(bào)文的分片信息。
如果采用私有協(xié)議,則可根據(jù)需要定義協(xié)議報(bào)文的格式。
步驟608源節(jié)點(diǎn)根據(jù)接收的第一個(gè)分片信息獲取路徑最大傳輸長度。
由此可見,與現(xiàn)有技術(shù)相比,本發(fā)明只需一次探測過程,即可有效獲取PMTU,不需要反復(fù)探測,也不受復(fù)雜網(wǎng)絡(luò)環(huán)境的影響。
雖然通過實(shí)施例描繪了本發(fā)明,本領(lǐng)域普通技術(shù)人員知道,本發(fā)明有許多變形和變化而不脫離本發(fā)明的精神,希望所附的權(quán)利要求包括這些變形和變化而不脫離本發(fā)明的精神。
權(quán)利要求
1.一種網(wǎng)絡(luò)路徑最大傳輸長度發(fā)現(xiàn)方法,所述網(wǎng)絡(luò)包括多個(gè)節(jié)點(diǎn),其特征在于,所述方法包括A、構(gòu)造路徑最大傳輸長度探測報(bào)文;B、由源節(jié)點(diǎn)向目的節(jié)點(diǎn)發(fā)送所述探測報(bào)文;C、目的節(jié)點(diǎn)根據(jù)所述探測報(bào)文獲取所述探測報(bào)文的分片信息并返回給所述源節(jié)點(diǎn);D、所述源節(jié)點(diǎn)根據(jù)所述探測報(bào)文的分片信息獲取所述路徑最大傳輸長度。
2.根據(jù)權(quán)利要求1所述的網(wǎng)絡(luò)路徑最大傳輸長度發(fā)現(xiàn)方法,其特征在于,所述步驟A包括A1、獲取源節(jié)點(diǎn)出口的最大傳輸長度;A2、設(shè)定長度大于所述源節(jié)點(diǎn)出口的最大傳輸長度的預(yù)定格式IP報(bào)文作為所述探測報(bào)文。
3.根據(jù)權(quán)利要求2所述的網(wǎng)絡(luò)路徑最大傳輸長度發(fā)現(xiàn)方法,其特征在于,所述預(yù)定格式IP報(bào)文為可分片報(bào)文。
4.根據(jù)權(quán)利要求3所述的網(wǎng)絡(luò)路徑最大傳輸長度發(fā)現(xiàn)方法,其特征在于,所述步驟A還包括定義所述探測報(bào)文的處理協(xié)議報(bào)文;將所述處理協(xié)議報(bào)文封裝到所述探測報(bào)文中。
5.根據(jù)權(quán)利要求4所述的網(wǎng)絡(luò)路徑最大傳輸長度發(fā)現(xiàn)方法,其特征在于,所述探測報(bào)文處理協(xié)議包括擴(kuò)展的互聯(lián)網(wǎng)控制管理協(xié)議和私有協(xié)議。
6.根據(jù)權(quán)利要求5所述的網(wǎng)絡(luò)路徑最大傳輸長度發(fā)現(xiàn)方法,其特征在于,所述擴(kuò)展的互聯(lián)網(wǎng)控制管理協(xié)議具體為回應(yīng)請求報(bào)文中將代碼定義為要求接收方不要對報(bào)文進(jìn)行重組,直接將報(bào)文的分片返回給請求方;回應(yīng)應(yīng)答報(bào)文中將代碼定義為返回原報(bào)文的分片信息。
7.根據(jù)權(quán)利要求3或4所述的網(wǎng)絡(luò)路徑最大傳輸長度發(fā)現(xiàn)方法,其特征在于,所述步驟B包括當(dāng)所述源節(jié)點(diǎn)至目的節(jié)點(diǎn)沿途的中間節(jié)點(diǎn)出口的最大傳輸長度小于所述探測報(bào)文的長度時(shí),對所述探測報(bào)文進(jìn)行分片傳輸;當(dāng)所述源節(jié)點(diǎn)至目的節(jié)點(diǎn)沿途的中間節(jié)點(diǎn)出口的最大傳輸長度大于所述探測報(bào)文的長度時(shí),對所述探測報(bào)文直接傳輸。
8.根據(jù)權(quán)利要求3或4所述的網(wǎng)絡(luò)路徑最大傳輸長度發(fā)現(xiàn)方法,其特征在于,所述步驟C包括獲取所述探測報(bào)文頭域中的偏移量字段;根據(jù)所述偏移量字段獲取所述探測報(bào)文的第一個(gè)分片信息。
9.根據(jù)權(quán)利要求8所述的網(wǎng)絡(luò)路徑最大傳輸長度發(fā)現(xiàn)方法,其特征在于,所述步驟D包括D1、所述目的節(jié)點(diǎn)根據(jù)所述探測報(bào)文處理協(xié)議向所述源節(jié)點(diǎn)返回所述探測報(bào)文的第一個(gè)分片信息;D2、所述源節(jié)點(diǎn)根據(jù)接收的第一個(gè)分片信息獲取所述路徑最大傳輸長度。
10.根據(jù)權(quán)利要求9所述的網(wǎng)絡(luò)路徑最大傳輸長度發(fā)現(xiàn)方法,其特征在于,所述D1包括所述目的節(jié)點(diǎn)根據(jù)所述探測報(bào)文處理協(xié)議構(gòu)造包含所述探測報(bào)文的第一個(gè)分片信息的回應(yīng)報(bào)文;利用網(wǎng)絡(luò)層的傳輸協(xié)議將所述回應(yīng)報(bào)文傳送給所述源節(jié)點(diǎn)。
全文摘要
本發(fā)明公開了一種網(wǎng)絡(luò)路徑最大傳輸長度發(fā)現(xiàn)方法,所述方法包括構(gòu)造路徑最大傳輸長度探測報(bào)文;由源節(jié)點(diǎn)向目的節(jié)點(diǎn)發(fā)送探測報(bào)文;目的節(jié)點(diǎn)根據(jù)收到的探測報(bào)文獲取探測報(bào)文的分片信息并返回給源節(jié)點(diǎn);源節(jié)點(diǎn)根據(jù)探測報(bào)文的分片信息獲取路徑最大傳輸長度。利用本發(fā)明,可以在復(fù)雜組網(wǎng)環(huán)境中高效、簡便地獲取路徑最大傳輸長度,提高網(wǎng)絡(luò)傳輸效率。
文檔編號H04L29/02GK1716944SQ20041005948
公開日2006年1月4日 申請日期2004年6月28日 優(yōu)先權(quán)日2004年6月28日
發(fā)明者薛明 申請人:杭州華為三康技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
伊宁县| 济南市| 祁东县| 沈丘县| 芦溪县| 北安市| 闵行区| 松江区| 龙门县| 溆浦县| 常德市| 杭州市| 嘉峪关市| 阳东县| 永清县| 四平市| 本溪市| 农安县| 淳安县| 惠东县| 通道| 长阳| 河北省| 华蓥市| 乌兰浩特市| 孟津县| 乌兰浩特市| 昂仁县| 吉首市| 宁海县| 富裕县| 英吉沙县| 通海县| 富蕴县| 寿阳县| 兴安县| 清远市| 新宾| 清河县| 北票市| 且末县|