本申請的各實施例涉及用于及時檢測網(wǎng)絡內路徑最大傳輸單元增大的裝置、系統(tǒng)和方法。
背景技術:
網(wǎng)絡內的路徑的最大傳輸單元可以隨著時間過去而改變。在這一上下文中,最大傳輸單元可以表示和/或指代能夠經(jīng)由網(wǎng)絡內的路徑從源被傳輸?shù)侥康牡氐淖畲蠓纸M的尺寸。例如,路徑可以有助于網(wǎng)絡內的源與目的地之間的通信。在這一示例中,路徑可以包括和/或涉及一系列的跳。在源傳輸尺寸比路徑中包括的跳的最大傳輸單元更大的分組的情況下,該跳可以丟棄分組并且發(fā)送回指示該分組過大的錯誤消息(有時被稱作“分組過大消息”)。
在檢測路徑的最大傳輸單元的增大的傳統(tǒng)方法中,源可以定期傳輸尺寸比路徑的先前確定的最大傳輸單元更大的分組。例如,源可以每隔10分鐘左右傳輸更大分組以試圖確定路徑的最大傳輸單元近來是否已經(jīng)增加。在源未接收到作為響應的“分組過大”消息的情況下,源可以確定路由器的最大傳輸單元已經(jīng)增加。作為結果,源可以開始使用更大分組通過路徑傳輸數(shù)據(jù)。
遺憾的是,因為該傳統(tǒng)方法涉及基于周期性的測試,因此源可能無法在最大傳輸單元的增大發(fā)生的時間或接近該時間時檢測到最大傳輸單元的增大。例如,源可能做不到在發(fā)生之后的將近10分鐘內檢測到路徑的最大傳輸單元的增大。本公開內容因而標識并解決了對用于及時檢測網(wǎng)絡內的路徑的最大傳輸單元的增大的改進的裝置、系統(tǒng)和方法的需要。
技術實現(xiàn)要素:
如在下面更詳細地描述的,本公開內容總體上涉及用于及時檢測網(wǎng)絡內的路徑的最大傳輸單元的增大的裝置、系統(tǒng)和方法。在一個示例中,一種用于完成這樣的任務的裝置可以包括(1)至少一個通信端口,該通信端口經(jīng)由網(wǎng)絡內的路徑有助于源計算設備與目的地計算設備之間的通信;以及(2)處理單元,該處理單元通信地耦合到通信端口,其中處理單元:(a)針對可能影響路徑的最大傳輸單元的路徑的任何變化來監(jiān)視網(wǎng)絡,(b)在監(jiān)視網(wǎng)絡的同時,檢測路徑中包括的至少一個跳的變化,并且然后響應于檢測到跳的變化,(c)標識與路徑的最大傳輸單元對應的分組尺寸,以及(d)通過傳輸尺寸比與該最大傳輸單元對應的分組尺寸更大的分組來針對該最大傳輸單元的增大對路徑進行測試。
一種對應的方法可以包括:(1)針對可能影響路徑的最大傳輸單元的任何變化來監(jiān)視網(wǎng)絡,該路徑有助于網(wǎng)絡內的源計算設備與目的地計算設備之間的通信;(2)在監(jiān)視網(wǎng)絡的同時,檢測路徑中包括的至少一個跳的變化,并且然后響應于檢測到跳的變化,(3)標識與路徑的最大傳輸單元對應的分組尺寸;以及(4)通過傳輸尺寸比與路徑的最大傳輸單元對應的分組尺寸更大的分組來針對路徑的最大傳輸單元的增大對路徑進行測試。
類似地,一種并入了上述裝置的網(wǎng)絡設備可以包括:(1)至少一個通信端口,該通信端口經(jīng)由網(wǎng)絡內的路徑有助于網(wǎng)絡設備與目的地計算設備之間的通信;以及(2)處理單元,該處理單元通信地耦合到通信端口,其中處理單元:(a)在周期性基礎上通過使用有助于跟蹤路徑的路由跟蹤工具針對可能影響路徑的最大傳輸單元的路徑的任何變化來監(jiān)視網(wǎng)絡;(b)在使用路由跟蹤工具監(jiān)視網(wǎng)絡的同時,檢測路徑中包括的至少一個跳的變化,并且然后響應于檢測到跳的變化,(c)標識與路徑的最大傳輸單元對應的分組尺寸;以及(d)通過傳輸尺寸比與路徑的最大傳輸單元對應的分組尺寸更大的分組來針對路徑的最大傳輸單元的增大對路徑進行測試。
來自上面提到的實施例中的任何實施例的特征根據(jù)在這里描述的一般原則可以相互結合被使用。這些以及其他的實施例、特征和優(yōu)點在結合附圖和權利要求閱讀以下具體實施方式之后將得到更充分的理解。
附圖說明
附圖圖示了若干示例性實施例并且是本說明書的一部分。與以下描述一起,這些附圖展示并說明了本公開內容的各種原理。
圖1是用于及時檢測網(wǎng)絡內的路徑的最大傳輸單元的增大的示例性裝置的框圖。
圖2是用于及時檢測網(wǎng)絡內的路徑的最大傳輸單元的增大的裝置的示例性實現(xiàn)方式的框圖。
圖3是用于及時檢測網(wǎng)絡內的路徑的最大傳輸單元的增大的裝置的附加示例性實現(xiàn)方式的框圖。
圖4是用于及時檢測網(wǎng)絡內的路徑的最大傳輸單元的增大的裝置的附加示例性實現(xiàn)方式的框圖。
圖5是標識網(wǎng)絡內的路徑中包括的每個跳的示例性記錄的圖示。
圖6是用于及時檢測網(wǎng)絡內的路徑的最大傳輸單元的增大的示例性方法的流程圖。
圖7是能夠實施在這里描述和/或例示的實施例中的一個或多個和/或能夠結合在這里描述和/或例示的實施例中的一個或多個而被使用的示例性計算系統(tǒng)的框圖。
貫穿附圖,相同的標號和描述指示相似但是不一定相同的要素。盡管在這里描述的示例性實施例易受各種修改和備選形式影響,但是在附圖中已經(jīng)通過示例方式示出并且將在這里詳細描述特定實施例。然而,在這里描述的示例性實施例并非旨在限制于所公開的具體形式。相反,本公開內容涵蓋落入所附權利要求的范圍內的所有修改、等價物和備選物。
具體實施方式
本公開內容描述了用于及時檢測網(wǎng)絡內的路徑的最大傳輸單元的增大的各種裝置、系統(tǒng)和方法。如將在下面更詳細地說明的,本公開內容的實施例可以使得網(wǎng)絡設備能夠以比傳統(tǒng)方式更及時的方式檢測路徑的最大傳輸單元的增大。例如,這些實施例可以使得網(wǎng)絡設備能夠在路徑經(jīng)歷拓撲變化的時間點檢測路徑的最大傳輸單元的增大而非必須等待下一輪詢周期。作為結果,這些實施例可以使得網(wǎng)絡設備能夠實現(xiàn)更有效的帶寬利用。
這里所使用的術語“路徑”一般指代有助于網(wǎng)絡內的源與目的地之間的通信和/或流量流動的任何類型或形式的鏈路和/或一系列設備。在一個示例中,路徑可以包括和/或表示網(wǎng)絡內的將分組從源計算設備攜帶到目的地計算設備(反之亦然)的一系列跳。
這里所使用的術語“最大傳輸單元”一般指代能夠由計算設備和/或通過路徑傳輸而沒有破碎的最大分組尺寸。在一個示例中,網(wǎng)際協(xié)議第4版(ipv4)網(wǎng)絡內的路徑的最大傳輸單元的范圍可以在68字節(jié)和64千字節(jié)之間。相似地,網(wǎng)際協(xié)議第6版(ipv6)網(wǎng)絡內的路徑的最大傳輸單元的范圍可以在1280字節(jié)和64千字節(jié)之間。備選地,ipv6網(wǎng)絡內的路徑的最大傳輸單元以巨型傳輸包選項的方式可以達到4千兆字節(jié)。
最大傳輸單元經(jīng)常被稱作和/或縮寫成“mtu”,并且路徑的最大傳輸單元經(jīng)常被稱作路徑mtu和/或縮寫成“pmtu”。此外,確定網(wǎng)絡內的路徑的pmtu的過程經(jīng)常被稱作pmtu發(fā)現(xiàn)和/或縮寫成“pmtud”。
以下將參考圖1提供有助于及時檢測網(wǎng)絡內的路徑的最大傳輸單元的增大的裝置的示例。對應于圖2、圖3和圖4的討論將提供對來自圖1的裝置的示例性實現(xiàn)方式的詳細描述。對應于圖5的討論將提供對示例性記錄的詳細描述,該示例性記錄標識網(wǎng)絡內的路徑中包括的每個跳。對應于圖6的討論將提供對用于及時檢測網(wǎng)絡內的路徑的最大傳輸單元的增大的示例性方法的詳細描述。最后,對應于圖7的討論將提供可以并入來自圖1的裝置的系統(tǒng)的許多示例。
圖1示出了用于及時檢測網(wǎng)絡內的路徑的最大傳輸單元的增大的示例性裝置100的框圖。裝置100一般表示有助于及時檢測網(wǎng)絡內的路徑的最大傳輸單元的增大的任何類型或形式的系統(tǒng)、設備和/或機構。裝置100的示例包括但不限于計算設備、網(wǎng)絡設備、路由器、交換機、集線器、調制解調器、網(wǎng)橋、中繼器、網(wǎng)關、多路復用器、網(wǎng)絡適配器、服務器、其中的一個或多個的各部分、其中的一個或多個的變體或組合或者任何其他合適的裝置。
如在圖1中示出的,裝置100可以包括可以訪問通信端口102通信端口102和/或與通信端口102通信的處理單元106。這里所使用的術語“處理單元”一般指代執(zhí)行某些輸入/輸出(i/o)操作和/或計算任務的任何類型或形式的物理硬件、電路、設備和/或處理器。在一個示例中,處理單元106可以包括和/或表示如下集成電路,該集成電路的配置和/或基礎設施是至少部分固定的。附加地或者備選地,處理單元106可以表示如下集成電路,該集成電路的配置和/或基礎設施是至少部分可變和/或可編程的。處理單元106的示例包括但不限于處理器、微處理器、中央處理單元(cpu)、現(xiàn)場可編程門陣列(fpga)、專用集成電路(asic)、安裝其中的一個或多個的軟件模塊、其中的一個或多個的各部分、其中的一個或多個的變更或組合或者任何其他合適的處理單元。
這里所使用的術語“通信端口”一般指代形成網(wǎng)絡內的連接、鏈路和/或路徑的至少一部分的任何類型或形式的物理接口、設備和/或外殼。在一些示例中,通信端口102可以通過網(wǎng)絡內的路徑的方式使源計算設備與目的地計算設備連接和/或鏈接。附加地或者備選地,通信端口102可以經(jīng)由網(wǎng)絡內的路徑來有助于源計算設備與目的地計算設備之間的通信。通信端口102的示例包括但不限于四通道小型可拔插(qsfp)端口、以太網(wǎng)端口、光纖通道端口、光學端口、無限帶寬端口、cxp連接器、多光纖推入/拉下(mpo)連接器、xaui端口、xfp收發(fā)器、xfi接口、c型可拔插(cfp)收發(fā)器、其中的一個或多個的變體或組合或者任何其他合適的通信端口。盡管圖1圖示了單個通信端口,但是裝置100可以包括除通信端口102之外的各種通信端口。
在一些示例中,裝置100可以通過針對有可能影響那些路徑的最大傳輸單元的某些事件監(jiān)視網(wǎng)絡來實現(xiàn)對網(wǎng)絡內的路徑的最大傳輸單元的增大的及時檢測。例如,最大傳輸單元的增大可以響應于網(wǎng)絡的拓撲的變化而發(fā)生。因此,裝置100可以通過針對拓撲的任何變化監(jiān)視網(wǎng)絡來實現(xiàn)對網(wǎng)絡內的路徑的最大傳輸單元的增大的及時檢測。
通過以這種方式監(jiān)視網(wǎng)絡,與簡單假定這樣的增加周期性的輪詢周期并且等待確定任何“分組過大”消息是否作為結果而被發(fā)出相比,裝置100可以能夠至少部分地基于事件驅動的觸發(fā)器來檢測路徑的最大傳輸單元的增大。很可能影響路徑的最大傳輸單元的變化的示例包括但不限于向路徑添加網(wǎng)絡設備、從路徑移除網(wǎng)絡設備、用其他網(wǎng)絡設備替換路徑中包括的網(wǎng)絡設備、重新配置路徑中包括的網(wǎng)絡設備、其中的一個或多個的變體或組合或者網(wǎng)絡的拓撲的任何其他合適的變化。
在一些示例中,處理單元106可被通信地耦合到通信端口102。在這樣的示例中,處理單元106可以針對經(jīng)由路徑使裝置100與目的地計算設備通信地鏈接和/或連接的路徑的任何變化來監(jiān)視包括裝置100的網(wǎng)絡。路徑的這些變化可以潛在地影響路徑的最大傳輸單元。在以這種方式監(jiān)視網(wǎng)絡的同時,處理單元106可以檢測路徑中包括的跳的變化。
作為具體示例,這一變化可以包括和/或表示向路徑添加跳。在另一示例中,這一變化可以包括和/或表示從路徑移除跳。在另一示例中,這一變化可以包括和/或表示用另一跳來替換路徑中包括的跳。在附加示例中,這一變化可以包括和/或表示對路徑中包括的跳的重新配置。
這里所使用的術語“跳”一般指代能夠轉發(fā)網(wǎng)絡流量和/或有助于網(wǎng)絡流量的流動的任何類型或形式的計算設備。跳的示例包括但不限于計算設備、網(wǎng)絡設備、路由器、交換機、集線器、調制解調器、網(wǎng)橋、中繼器、網(wǎng)關、多路復用器、網(wǎng)絡適配器、服務器、其中的一個或多個的各部分、其中的一個或多個的變體或組合或者任何其他合適的跳。
在一些示例中,對路徑的這一變化的檢測可以表示和/或相當于觸發(fā)和/或發(fā)起用來確定路徑的最大傳輸單元是否已經(jīng)增大的測試的事件。例如,響應于檢測到路徑的這一變化,處理單元106可以標識對應于路徑的最大傳輸單元的分組尺寸。換言之,處理單元106可以標識路徑的最大傳輸單元,該最大傳輸單元經(jīng)常被表示為能夠在路徑上的單個分組和/或幀中傳輸?shù)淖止?jié)的數(shù)目。
在網(wǎng)絡實施ipv4的情況下,這一分組尺寸的范圍可以是從68字節(jié)到64千字節(jié)的任何地方。備選地,在網(wǎng)絡實施ipv6的情況下,這一分組尺寸的范圍可以是從1280字節(jié)到64千字節(jié)的(乃至在巨型傳輸包選項的情況下高達4千兆字節(jié))的任何地方。
在標識對應于路徑的最大傳輸單元的分組尺寸的情況下,處理單元106可以通過傳輸尺寸比路徑的最大傳輸單元更大的分組104來對路徑的最大傳輸單元的增大進行測試。這里所使用的術語“分組”一般指代包括一個或多個格式化的數(shù)據(jù)單元的任何類型或形式的包、封裝、抽象和/或對象。分組120的示例包括但不限于ipv4分組、ipv6分組、用戶數(shù)據(jù)協(xié)議(udp)分組、因特網(wǎng)控制消息協(xié)議(icmp)分組、多協(xié)議標簽交換(mpls)分組、網(wǎng)關至網(wǎng)關協(xié)議(ggp)分組、傳輸控制協(xié)議(tcp)分組、其中的一個或多個的變體或組合或者任何其他合適的分組。
作為一個特定示例,在路徑的上次確定的最大傳輸單元是1400字節(jié)的情況下,處理單元106可以通過路徑發(fā)送尺寸為1500字節(jié)的分組。在一個示例中,處理單元106可以通過驗證路徑中包括的跳中的任何跳響應于更大分組未發(fā)出“分組過大”消息來確定路徑的最大傳輸單元已經(jīng)增大。附加地或者備選地,處理單元106可以通過驗證更大分組在不經(jīng)歷沿著路徑的破碎或者被完全丟棄的情況下到達它的目的地來確定路徑的最大傳輸單元已經(jīng)增大。
圖2示出了用于及時檢測網(wǎng)絡內的路徑的最大傳輸單元的增大的裝置100的示例性實現(xiàn)方式200的框圖。如在圖2中示出的,實現(xiàn)方式200可以包括經(jīng)由網(wǎng)絡204與計算設備202(1)-(n)通信的裝置100。這里所使用的術語“網(wǎng)絡”一般指代有助于通信或數(shù)據(jù)傳送的任何類型或形式的介質和/或架構。在一個示例中,網(wǎng)絡204可以表示包括多個計算設備的ipv4或ipv6網(wǎng)絡。
網(wǎng)絡204的示例包括但不限于ipv4網(wǎng)絡、ipv6網(wǎng)絡、mpls網(wǎng)絡、內聯(lián)網(wǎng)、廣域網(wǎng)(wan)、局域網(wǎng)(lan)、個域網(wǎng)(pan)、因特網(wǎng)、電力線通信(plc)、蜂窩網(wǎng)絡(例如,全球移動通信系統(tǒng)(gsm)網(wǎng)絡)、其中的一個或多個的各部分、其中的一個或多個的變體或組合或者任何其他合適的網(wǎng)絡。網(wǎng)絡204可以使用無線或有線連接來有助于通信或數(shù)據(jù)傳送。盡管裝置100和計算設備202(1)-(n)在圖2中被示出為位于網(wǎng)絡204外部,但是裝置100和/或計算設備202(1)-(n)備選地可以表示網(wǎng)絡204的各部分和/或被包括在網(wǎng)絡204中。
這里所使用的術語“計算設備”一般指代能夠讀取計算機可執(zhí)行指令的任何類型或形式的設備。在一些示例中,計算設備202(1)-(n)可以包括和/或表示發(fā)送和/或接收數(shù)據(jù)分組的網(wǎng)絡設備。計算設備202(1)-(n)的示例包括但不限于網(wǎng)絡設備、路由器、交換機、調制解調器、網(wǎng)關、集線器、中繼器、服務器、膝上型計算機、臺式計算機、移動設備、支持因特網(wǎng)的電視和/或藍光播放器、其中的一個或多個的各部分、其中的一個或多個的變體或組合或者任何其他合適類型的計算設備。
在一些示例中,計算設備202(1)-(n)可以有助于其他計算設備之間的網(wǎng)絡流量。例如,計算設備202(1)-(n)可以將某些網(wǎng)絡流量轉發(fā)到未在圖2中圖示的端點和/或目的地設備。備選地,計算設備202(1)-(n)可以包括和/或表示端點和/或目的地計算設備。
圖3示出了用于及時檢測網(wǎng)絡內的路徑的最大傳輸單元的增大的附加示例性實現(xiàn)方式300。如在圖3中示出的,實現(xiàn)方式300可以包括經(jīng)由網(wǎng)絡204內的路徑308與目的地計算設備306通信的源計算設備302。在這一示例中,源計算設備302可以包括和/或表示裝置100。此外,路徑308可以包括和/或表示跳304(1)、304(2)和304(3)。盡管圖3為了簡單和可讀性的目的僅圖示了跳304(1)-(3),但是備選的實施例可以涉及包括任何數(shù)目個跳(無論是更多還是更少)的路徑。
在一些示例中,處理單元106可以作為源計算設備302的一部分針對可能影響路徑308的最大傳輸單元的路徑308的任何變化來監(jiān)視網(wǎng)絡204。在一個示例中,處理單元106可以創(chuàng)建和/或維持標識路徑308中包括的每個跳的記錄以用作參考。例如,處理單元106可以傳輸如下分組,該分組進行經(jīng)由路徑308從源計算設備302到目的地計算設備306并且然后回到源計算設備302的往返行程。在這一示例中,處理單元106可以在特定時間點發(fā)起這一分組的傳輸。當分組返回到源計算設備302時,處理單元106可以至少部分地基于返回分組(例如,分組的頭部信息)將跳304(1)-(3)標識為遍歷路徑。處理單元106然后可以創(chuàng)建圖5中的記錄500,該記錄500將跳304(1)-(3)確定為分組所遍歷的路徑。
在一個示例中,處理單元106可以通過使用路由跟蹤(traceroute)工具來執(zhí)行這種監(jiān)視。例如,處理單元106可以通過向源計算設備302的操作系統(tǒng)發(fā)出“traceroute”命令來占用(engage)路由跟蹤工具。響應于這一命令,路由跟蹤工具可以發(fā)起分組的傳輸,該分組的傳輸遍歷路徑308并且返回將跳304(1)-(3)標識為遍歷路徑的信息。處理單元106然后可以至少部分地基于從路由跟蹤工具得到的信息來確定哪些跳被分組遍歷。這一分組跟蹤工具的示例包括但不限于traceroute、traceroute(8)、tracert、pathping、traceroute6、tracert6、其中的一個或多個的變體或組合或者任何其他合適的路由跟蹤工具。
在一個示例中,處理單元106可以通過查u樹南湖另一分組來檢測路徑308的變化,該另一分組進行從源計算設備302到目的地計算設備306并且然后回到源計算設備302的往返行程。在這一示例中,處理單元106可以通過占用路由跟蹤工具來在后續(xù)時間點發(fā)起這一另一分組的傳輸。當該另一分組返回到源計算設備302時,處理單元106可以通過將該另一分組所遍歷的跳與記錄500比較來確定路徑308自特定時間點起已經(jīng)以一種方式或另一種方式改變。
作為特定示例,處理單元106可以確定(不一定在圖3中示出的)另一跳在特定時間點之后被添加到路徑308。在另一示例中,處理單元106可以確定跳304(1)-(3)之一在特定時間點之后被從路徑308移除。在另一示例中,處理單元106可以確定跳304(1)-(3)之一在特定時間點之后被(不一定在圖3中示出的)另一跳替換。在附加示例中,處理單元106可以確定跳304(1)-(3)之一在特定時間點之后被重新配置、修改和/或關閉。
響應于檢測到跳304(1)-(3)之一的變化,處理單元106可以針對最大傳輸單元的任何增大來測試路徑308。例如,處理單元106可以標識對應于最大傳輸單元的分組尺寸。作為一個特定示例,路徑308的最大傳輸單元可被表示為1400字節(jié)的分組尺寸。
在標識了這一分組尺寸的情況下,處理單元106可以通過路徑308傳輸尺寸比對應于最大傳輸單元的分組尺寸更大的分組。例如,在路徑308的最大傳輸單元已被標識為1400字節(jié)的情況下,處理單元106可以通過路徑308傳輸1500字節(jié)的分組。通過響應于檢測到跳304(1)-(3)之一的變化來傳輸這一更大分組,處理單元106可以確定檢測到的變化是否造成了路徑的最大傳輸單元的100或更多字節(jié)的增大。
在一個示例中,處理單元106可以至少部分地基于測試來確定路徑的最大傳輸單元已經(jīng)增大。例如,處理單元106在已經(jīng)傳輸分組之后可以針對指示分組的尺寸過大的消息(例如,“分組過大”消息)或者指示分組在遍歷路徑時被破碎的消息等待一定量時間。當在該量的時間內跳304(1)-(3)中的任一個未向源計算設備302遞送這樣的消息的情況下,處理單元106可以確定路徑308的最大傳輸單元作為檢測到的變化的結果已經(jīng)增大。
響應于路徑308的最大傳輸單元的增大,處理單元106可以使用尺寸與增大的最大傳輸單元一致的分組經(jīng)由路徑從源計算設備302向目的地計算設備306傳輸網(wǎng)絡流量。例如,在最大傳輸單元已經(jīng)增大至1500字節(jié)的情況下,處理單元106可以使用各自包括1500字節(jié)的分組向目的地計算設備306傳輸網(wǎng)絡流量。
在一個示例中,處理單元106可以至少部分地基于測試來確定路徑的最大傳輸單元尚未增大。例如,處理單元106可以檢測到由跳304(1)-(3)之一響應于接收到更大分組而發(fā)出的消息(例如,“分組過大”消息)。這一消息可以指示分組的尺寸過大的和/或指示跳在分組到目的地的路上使分組破碎。
作為路徑308的最大傳輸單元未增大的結果,處理單元106可以繼續(xù)使用尺寸與上次確定的最大傳輸單元一致的分組經(jīng)由路徑從源計算設備302向目的地計算設備306傳輸網(wǎng)絡流量。例如,在最大傳輸單元不管檢測到的路徑變化而保持在1400字節(jié)的情況下,處理單元106可以繼續(xù)使用各自包括1400字節(jié)的分組向目的地計算設備306傳輸網(wǎng)絡流量。
圖4示出了用于及時檢測網(wǎng)絡內的路徑的最大傳輸單元的增大的附加示例性實現(xiàn)方式400。如在圖4中示出的,實現(xiàn)方式400可以包括經(jīng)由網(wǎng)絡204內的路徑308和路徑408與目的地計算設備306通信的源計算設備302。在這一示例中,源計算設備302可以包括和/或表示裝置100。在這一示例中,路徑408可以包括和/或表示跳304(1)、304(4)和304(5)。路徑308和408可以共同執(zhí)行對從源計算設備302傳輸?shù)侥康牡赜嬎阍O備306的網(wǎng)絡流量的負載均衡。這里所使用的術語“負載均衡”一般指代跨包括不同網(wǎng)絡設備的路徑分發(fā)和/或分配以相同中間目標和/或最終目的地為目的地的網(wǎng)絡流量。
在一個示例中,處理單元106可以使得跳304(1)-(5)能夠共同執(zhí)行對從源計算設備302傳輸?shù)侥康牡赜嬎阍O備306的網(wǎng)絡流量的負載均衡。例如,處理單元106可以在分組離開源計算設備302時指示某些分組沿著308以及其他分組沿著路徑408。在這一示例中,分組可以包括標識它們相應路徑的頭部。
在一些示例中,處理單元106可以針對可能影響路徑308和/或路徑408的最大傳輸單元的任何變化來監(jiān)視網(wǎng)絡204。在以這種方式監(jiān)視網(wǎng)絡204的同時,處理單元106可以檢測跳304(1)-(5)中的一個或多個跳。作為結果,處理單元106可以標識與經(jīng)歷變化的路徑的最大傳輸單元對應的分組尺寸。處理單元106然后可以通過傳輸尺寸比對應于路徑的最大傳輸單元的分組尺寸更大的分組來針對分組的最大傳輸單元的增大對該路徑進行測試。
作為一個特定示例,處理單元106可以檢測到沿著網(wǎng)絡204內的路徑408的拓撲的變化。響應于檢測到這一變化,處理單元106可以將1600字節(jié)確定為路徑408的最大傳輸單元。處理單元106然后可以通過沿著路徑408向目的地計算設備306傳輸1630字節(jié)的分組來針對路徑408的最大傳輸單元的變化對路徑408進行測試。
如在上面結合圖1至圖5所說明的,與周期性地執(zhí)行pmtu發(fā)現(xiàn)相比,源設備僅當被網(wǎng)絡拓撲的變化觸發(fā)時才可以執(zhí)行這種發(fā)現(xiàn)。例如,源設備可以使用路由跟蹤消息來監(jiān)視路由變化。在以這種方式監(jiān)視路由變化的同時,源設備可以檢測到觸發(fā)pmtu的計算的路由變化。換言之,源設備可以響應于經(jīng)由路由跟蹤消息檢測到路由變化而發(fā)起pmtu的重新計算。
pmtu計算可以考慮到沿著到目的地設備的路徑執(zhí)行的任何負載均衡。例如,源設備可以調節(jié)pmtu的計算以考慮源自源設備并且到達目的地計算設備的網(wǎng)絡流量所遍歷的多個路徑。源設備可以通過標識多個路徑中包括的跳集合在檢測到的路由變化前后的任何差異來調節(jié)pmtu的計算。
繼續(xù)這一示例,因為拓撲的變化可以產(chǎn)生增大的pmtu、減小的pmtu和/或相同的pmtu,因此源設備可以無需測試pmtu是否實際上作為變化的結果而增大。例如,源設備可以標識經(jīng)歷檢測到的變化的路徑的上次確定的pmtu。源設備然后可以通過該路徑傳輸尺寸比上次確定的pmtu更大的分組以確定它的pmtu是否作為檢測到的拓撲變化的結果而增大。
如果沿著路徑的任何跳響應于更大分組而生成“分組過大”消息,則源設備可以確定pmtu不是作為檢測到的拓撲變化的結果而增大。另外,如果沿著路徑的任何跳響應于與上次確定的pmtu相同尺寸的分組而生成“分組過大”消息,則源設備可以確定pmtu實際上作為檢測到的拓撲變化的結果而減小。附加地或者備選地,源設備可以使用差量浸泡時間(deltasoaktime)來幫助區(qū)分pmtu的增大和減小。如果沿著路徑的跳之一響應于更大分組而不是響應于與上次確定的pmtu相同尺寸的分組而生成“分組過大”消息,則源設備可以確定pmtu不管檢測到的拓撲的變化而保持不變。
圖6是用于及時檢測網(wǎng)絡內的路徑的最大傳輸單元的增大的示例性方法600的流程圖。方法600可以包括通過傳輸尺寸比對應于路徑的最大傳輸單元的分組尺寸更大的分組、針對可能影響路徑的最大傳輸單元的任何變化來監(jiān)視網(wǎng)絡的步驟(610)。這一監(jiān)視步驟可以按照各種方式被執(zhí)行。例如,處理單元106可以作為網(wǎng)絡設備的一部分通過檢查一個或多個路由跟蹤消息來創(chuàng)建標識分組中包括的每個跳的記錄。附加地或者備選地,處理單元106可以將后續(xù)路由跟蹤消息與記錄比較以確定路徑是否已經(jīng)經(jīng)歷其拓撲的任何變化。
回到圖6,方法600還可以包括在監(jiān)視網(wǎng)絡的同時檢測路徑中包括的至少一個跳的變化的步驟(620)。這一檢測步驟可以按照各種方式被執(zhí)行。例如,處理單元106可以作為網(wǎng)絡設備的一部分在至少部分地基于路由跟蹤消息監(jiān)視網(wǎng)絡的同時檢測路徑中包括的跳的變化。在一個示例中,處理單元106可以通過確定跳已被添加到路徑、從路徑移除、在路徑內被替換和/或在路徑內被重新配置來檢測到這一變化。
回到圖6,方法600可以附加地包括確定對應于路徑的最大傳輸單元的分組尺寸的步驟(630)。這一確定步驟可以按照各種方式被執(zhí)行。例如,處理單元106可以作為網(wǎng)絡設備的一部分至少部分地基于被表示為路徑的最大傳輸單元的字節(jié)的數(shù)目來標識分組尺寸。在一個示例中,處理單元106可以響應于檢測到跳的變化和/或作為檢測到跳的變換的結果來發(fā)起這一標識。
回到圖6,方法600還可以包括通過傳輸尺寸比對應于路徑的最大傳輸單元的分組尺寸更大的分組針對路徑的最大傳輸單元的增大來測試路徑的步驟(640)。這一測試步驟可以按照各種方式被執(zhí)行。例如,處理單元106可以作為網(wǎng)絡設備的一部分通過路徑傳輸尺寸比路徑的最大傳輸單元的更大的分組。在一個示例中,處理單元106可以響應于檢測到跳的變化和/或作為檢測到跳的變換的結果來發(fā)起這一測試。
處理單元106在已經(jīng)傳輸了分組之后可以針對指示分組的尺寸過大的消息(例如,“分組過大”消息)或者指示分組在遍歷路徑時被破碎的消息等待一定量時間。在跳中的任一個在該量的時間內未遞送這樣的消息的情況下,處理單元106可以確定路徑的最大傳輸單元作為檢測到跳的變化的結果已經(jīng)增大。然而,在跳中的一個跳在該量的時間內遞送了這樣的消息的情況下,處理單元106可以確定路徑的最大傳輸單元作為檢測到跳的變化的結果尚未增大。
圖7是示例性計算系統(tǒng)700的框圖,計算系統(tǒng)700能夠實施這里所描述和/或所例示的實施例中的一個或多個實施例,和/或結合這里所描述和/或所例示的實施例中的一個或多個實施例而被使用。在一些實施例中,計算系統(tǒng)700的全部或者一部分可以單獨地或者結合其他元件地執(zhí)行結合圖6所描述的步驟中的一個或多個步驟,和/或可以是用于單獨地或者結合其他元件地執(zhí)行結合圖6所描述的步驟中的一個或多個步驟的裝置。計算系統(tǒng)700的全部或者一部分也可以執(zhí)行這里所描述和/或所例示的任何其他步驟、方法或過程,和/或可以是執(zhí)行和/或實施這里所描述和/或所例示的任何其他步驟、方法或過程的裝置。在一個示例中,計算系統(tǒng)700可以包括來自圖1的裝置100。
計算系統(tǒng)700寬泛地表示任何類型或形式的電負載,包括能夠執(zhí)行計算機可讀指令的單個或多個處理器計算設備或系統(tǒng)。計算系統(tǒng)700的示例包括但不限于工作站、膝上型計算機、客戶側終端、服務器、分布式計算系統(tǒng)、移動設備、網(wǎng)絡交換機、網(wǎng)絡路由器(例如,主干路由器、邊緣路由器、核心路由器、移動服務路由器、寬帶路由器等)、網(wǎng)絡電器(例如,網(wǎng)絡安全電器、網(wǎng)絡控制電器、網(wǎng)絡定時電器、sslvpn(安全套接字層虛擬專用網(wǎng))電器等)、網(wǎng)絡控制器、網(wǎng)關(例如,服務網(wǎng)關、移動分組網(wǎng)關、多接入網(wǎng)關、安全網(wǎng)關等)和/或任何其他類型或形式的計算系統(tǒng)或設備。
計算系統(tǒng)700可以被編程、被配置和/或以其他方式被設計,以遵從一個或多個網(wǎng)絡協(xié)議。根據(jù)某些實施例,計算系統(tǒng)700可以被設計為與開放系統(tǒng)互連(osi)參考模型的一個或多個層的協(xié)議(諸如物理層協(xié)議、鏈路層協(xié)議、網(wǎng)絡層協(xié)議、傳輸層協(xié)議、會話層協(xié)議、表示層協(xié)議和/或應用層協(xié)議)一起工作。例如,計算系統(tǒng)700可以包括根據(jù)通用串行總線(usb)協(xié)議、電氣和電子工程師協(xié)會(ieee)1394協(xié)議、以太網(wǎng)協(xié)議、tl協(xié)議、同步光纖網(wǎng)絡(sonet)協(xié)議、同步數(shù)字階層(sdh)協(xié)議、綜合業(yè)務數(shù)字網(wǎng)(isdn)協(xié)議、異步傳輸模式(atm)協(xié)議、點對點協(xié)議(ppp)、通過以太網(wǎng)的點對點協(xié)議(pppoe)、通過atm的點對點協(xié)議(pppoa)、藍牙協(xié)議、ieee802.xx協(xié)議、幀中繼協(xié)議、令牌環(huán)協(xié)議、生成樹協(xié)議、mpls協(xié)議和/或任何其他合適的協(xié)議而配置的網(wǎng)絡設備。
計算系統(tǒng)700可以包括各種網(wǎng)絡和/或計算組件。例如,計算系統(tǒng)700可以包括至少一個硬件處理器714和系統(tǒng)存儲器716。處理器714一般性地表示能夠處理數(shù)據(jù)或者解譯和執(zhí)行指令的任何類型或形式的處理單元。例如,處理器714可以表示專用集成電路(asic)、片上系統(tǒng)(例如,網(wǎng)絡處理器)、硬件加速器、通用處理器和/或任何其他適當?shù)奶幚碓?/p>
處理器714可以根據(jù)上面所討論的聯(lián)網(wǎng)協(xié)議中的一個或多個聯(lián)網(wǎng)協(xié)議來處理數(shù)據(jù)。例如,處理器714可以執(zhí)行或實施協(xié)議棧的一部分、可以處理分組、可以執(zhí)行存儲器操作(例如,將用于稍后處理的分組排隊)、可以執(zhí)行終端用戶應用和/或可以執(zhí)行任何其他處理任務。
系統(tǒng)存儲器716一般性地表示能夠存儲數(shù)據(jù)和/或其他計算機可讀指令的任何類型或形式的易失性或非易失性存儲設備或介質。系統(tǒng)存儲器716的示例包括但不限于隨機存取存儲器(ram)、只讀存儲器(rom)、閃存或任何其他合適的存儲器設備。雖然未被要求,但是在某些實施例中,計算系統(tǒng)700可以包括易失性存儲單元(諸如,例如,系統(tǒng)存儲器716)和非易失性存儲設備(諸如,例如,如在下面詳細描述的主存儲設備732)。系統(tǒng)存儲器716可以被實施為網(wǎng)絡設備中的共享式存儲器和/或分布式存儲器。另外,系統(tǒng)存儲器716可以存儲分組和/或在聯(lián)網(wǎng)操作中使用的其他信息。
在某些實施例中,示例性計算系統(tǒng)700還可以包括除了處理器714和系統(tǒng)存儲器716之外的一個或多個組件或元件。例如,如圖7中所圖示的,計算系統(tǒng)700可以包括存儲器控制器718、輸入/輸出(i/o)控制器720以及通信接口722,它們中的每個都可以經(jīng)由通信基礎設施712而被互連。通信基礎設施712一般性地表示能夠有助于計算設備的一個或多個組件之間的通信的任何類型或形式的基礎設施。通信基礎設施712的示例包括但不限于通信總線(諸如串行ata(sata)、工業(yè)標準結構(isa)、外圍組件互連(pci)、pci高速(pcie)和/或任何其他適當總線),以及網(wǎng)絡。
存儲器控制器718一般性地表示能夠處置存儲器或數(shù)據(jù)或者控制計算系統(tǒng)700的一個或多個組件之間的通信的任何類型或形式的設備。例如,在某些實施例中,存儲器控制器718可以經(jīng)由通信基礎設施712來控制處理器714、系統(tǒng)存儲器716、以及i/o控制器720之間的通信。在一些實施例中,存儲器控制器718可以包括直接存儲器訪問(dma)單元,該直接存儲器訪問單元可以向鏈路適配器或者從鏈路適配器傳送數(shù)據(jù)(例如,分組)。
i/o控制器720一般性地表示能夠協(xié)調和/或控制計算設備的輸入和輸出功能的任何類型或形式的設備或模塊。例如,在某些實施例中,i/o控制器720可以控制或有助于計算系統(tǒng)700的一個或多個元件(諸如處理器714、系統(tǒng)存儲器716、通信接口722、以及存儲接口730)之間的數(shù)據(jù)傳送。
通信接口722寬泛地表示能夠有助于示例性計算系統(tǒng)700與一個或多個附加設備之間的通信的任何類型或形式的通信設備或適配器。例如,在某些實施例中,通信接口722可以有助于計算系統(tǒng)700與包括附加計算系統(tǒng)的私有或公有網(wǎng)絡之間的通信。通信接口722的示例包括但不限于鏈路適配器、有線網(wǎng)絡接口(諸如網(wǎng)絡接口卡)、無線網(wǎng)絡接口(諸如無線網(wǎng)絡接口卡)、以及任何其他適當?shù)慕涌?。在至少一個實施例中,通信接口722可以經(jīng)由通向網(wǎng)絡(諸如因特網(wǎng))的直接鏈路而提供通向遠程服務器的直接連接。通信接口722也可以通過例如局域網(wǎng)(諸如以太網(wǎng))、個域網(wǎng)、廣域網(wǎng)、私有網(wǎng)絡(例如,虛擬專用網(wǎng)絡)、電話或電纜網(wǎng)絡、蜂窩電話連接、衛(wèi)星數(shù)據(jù)連接或者任何其他適當?shù)倪B接,來間接地提供這樣的連接。
在某些實施例中,通信接口722也可以表示被配置為經(jīng)由外部總線或通信信道來有助于計算系統(tǒng)700與一個或多個附加網(wǎng)絡或存儲設備之間的通信的主機適配器。主機適配器的示例包括但不限于小型計算機系統(tǒng)接口(scsi)主機適配器、通用串行總線(usb)主機適配器、ieee1394主機適配器、先進技術附件(ata)主機適配器、并行ata(pata)主機適配器、串行ata(sata)主機適配器、以及外部sata(esata)主機適配器、光纖信道接口適配器、以太網(wǎng)適配器等。通信接口722也可以使得計算系統(tǒng)700能夠參與分布式或遠程計算。例如,通信接口722可以從遠程設備接收指令或者向遠程設備發(fā)送指令以用于執(zhí)行。
如圖7中所圖示的,示例性計算系統(tǒng)700也可以包括經(jīng)由存儲接口730而耦合到通信基礎設施712的主存儲設備732和/或備份存儲設備734。存儲設備732和734一般性地表示能夠存儲數(shù)據(jù)和/或其他計算機可讀指令的任何類型或形式的存儲設備或介質。例如,存儲設備732和734可以表示磁盤驅動器(例如,所謂的硬盤驅動器)、固態(tài)驅動器、軟盤驅動器、磁帶驅動器、光盤驅動器、閃存驅動器等。存儲接口730一般性地表示用于在存儲設備732和734與計算系統(tǒng)700的其他組件之間傳送數(shù)據(jù)的任何類型或形式的接口或設備。
在某些實施例中,存儲設備732和734可以被配置為從可移除存儲單元讀取和/或向可移除存儲單元寫入,該可移除存儲單元被配置為存儲計算機軟件、數(shù)據(jù)或其他計算機可讀信息。適當?shù)目梢瞥鎯卧氖纠ǖ幌抻谲洷P、磁帶、光盤、閃存設備等。存儲設備732和734也可以包括用于允許計算機軟件、數(shù)據(jù)或其他計算機可讀指令被加載到計算系統(tǒng)700中的其他類似的結構或設備。例如,存儲設備732和734可以被配置為讀取和寫入軟件、數(shù)據(jù)或其他計算機可讀信息。存儲設備732和734可以是計算系統(tǒng)700的一部分或者可以是通過其他接口系統(tǒng)訪問的分開的設備。
許多其他的設備或子系統(tǒng)可以被連接到計算系統(tǒng)700。相反地,為了實踐這里所描述和/或例示的各實施例,不必出現(xiàn)圖7中所圖示的所有組件和設備。上面所提及的設備和子系統(tǒng)也可以按照與圖7中所示出的方式不同的方式被互連。計算系統(tǒng)700也可以采用任何數(shù)量的軟件、固件和/或硬件配置。例如,這里所公開的示例性實施例中的一個或多個可以被編碼為計算機可讀介質上的計算機程序(也被稱為計算機軟件、軟件應用、計算機可讀指令或者計算機控制邏輯)。術語“計算機可讀介質”一般指代能夠存儲或攜帶計算機可讀指令的任何形式的設備、載體或介質。計算機可讀介質的示例包括但不限于:傳輸型介質,諸如載波;以及非瞬態(tài)型介質,諸如磁存儲介質(例如,硬盤驅動器和軟盤)、光存儲介質(例如,壓縮盤(cd)和數(shù)字視頻盤(dvd))、電子存儲介質(例如,固態(tài)驅動器和閃存介質);以及其他分布系統(tǒng)。
雖然前述公開內容使用具體框圖、流程圖以及示例闡述了各種實施例,但是使用寬范圍的硬件、軟件、或者固件(或它們的任何組合)配置,可以個別地和/或共同地實施這里所描述和/或例示的每個框圖組件、流程圖步驟、操作和/或組件。此外,包含在其他組件內的組件的任何公開內容應當被考慮為本質上是示例性的,因為能夠實施許多其他架構來實現(xiàn)相同的功能。
在一些示例中,圖1中的裝置100的全部或者一部分可以表示云計算或基于網(wǎng)絡的環(huán)境的部分。云計算或基于網(wǎng)絡的環(huán)境可以經(jīng)由因特網(wǎng)來提供各種服務和應用。這些云計算和基于網(wǎng)絡的服務(例如,軟件即服務、平臺即服務、基礎設施即服務等)可以通過web瀏覽器或其他遠程接口而是可訪問的。這里所描述的各種功能也可以提供網(wǎng)絡交換能力、網(wǎng)關接入能力、網(wǎng)絡安全功能、用于網(wǎng)絡的內容緩存和交付服務、網(wǎng)絡控制服務和/或其他聯(lián)網(wǎng)功能。
此外,這里所描述的模塊中的一個或多個模塊可以將數(shù)據(jù)、物理設備和/或物理設備的表示從一種形式變換為另一種形式。例如,這里所記載的模塊中的一個或多個模塊可以通過在計算設備上執(zhí)行、在計算設備上存儲數(shù)據(jù)和/或以其他方式與計算設備交互,而將處理器、易失性存儲器、非易失性存儲器和/或物理計算機設備的任何其他部分從一種形式變換為另一種形式。
這里所描述和/或例示的步驟的過程參數(shù)和次序僅通過示例的方式給出,并且能夠根據(jù)需要而變化。例如,雖然這里所例示和/或描述的步驟可以以特定的順序被示出或討論,但是這些步驟并非必然需要按照所例示或討論的順序被執(zhí)行。這里所描述和/或例示的各種示例性方法也可以省略這里所描述或例示的步驟中的一個或多個步驟或者包括除了所公開的那些步驟之外的附加步驟。
已經(jīng)提供了前面的描述,從而使得本領域的技術人員能夠最好地利用這里所公開的示例性實施例的各個方面。這一示例性描述并非旨在是詳盡的或者被限制為所公開的任何精確形式。在不脫離本公開的精神和范圍的情況下,許多修改和變型是可能的。這里所公開的實施例應當在各方面被考慮為是說明性而非限制性的。在確定本公開的范圍時,應當對所附權利要求以及它們的等價物做出參考。
除非另有指明,說明書和權利要求中所使用的術語“連接至”和“耦合至”(以及它們的派生詞),將被解釋為準許直接和間接(即,經(jīng)由其他元件或組件)連接兩者。此外,如說明書和權利要求中所使用的術語“一”或“一種”,將被解釋為意指“至少一個”。最后,為使用的簡單性,說明書和權利要求中所使用的術語“包括”和“具有”(以及它們的派生詞)與詞語“包含”是可互換的并且與詞語“包含”具有相同含義。