新四季網

為資源請求終止連接和選擇目標源裝置的製作方法

2023-07-27 23:18:21

專利名稱:為資源請求終止連接和選擇目標源裝置的製作方法
技術領域:
本發明涉及通信領域,具體地涉及為資源請求終止連接和選擇目標源裝置。
背景技術:
服務提供商是出售由與服務提供商相關的網絡(例如,互連網、數據網絡、電信網絡等)提供的帶寬或接入該網絡的帶寬的實體(例如,企業或組織)。服務提供商可以包括電信公司、數據載體、無線通信提供商、網際網路服務提供商、提供高速網際網路接入的有線電視運營商等。諸如例如視頻、音頻、圖像和軟體下載的內容使用的快速增長正為服務提供商創造更高的帶寬要求,伴有病毒內容和事件的急劇攀升。
內容可以從諸如通過服務提供商的網絡安裝的源伺服器、鏡像伺服器、緩存伺服器等的伺服器提供到客戶端裝置。客戶端裝置可以請求使用諸如超文本傳輸協議(HTTP)、實時消息協議(RTMP)等的網際網路協議訪問該內容。當客戶端裝置請求訪問內容時,必須將該請求路由到網絡中的適當的伺服器。路由請求考慮多個因素,諸如改善客戶端裝置的體驗(例如,延遲、內容傳輸速度等)、網絡的成本和可擴展性以及內容分發架構等。然而,由於服務提供商網絡的複雜性和負載變化性增加,因此,對於服務提供商來說,將請求路由到適當的伺服器變得越來越成問題。此外,客戶端裝置的數量和類型以及內容量正在快速增長。另外,服務提供商需要聯合他們的服務以提供全球化解決方案。為了解決這些問題,服務提供商當前部署了不同類型的解決方案,諸如基於域名系統(DNS)的解決方案、基於邊界網關協議(BGP)的解決方案以及基於應用程式級的解決方案。每個解決方案均通過手動配置在現有網絡路由基礎架構上提供覆蓋。手動配置包括服務提供商廣播伺服器的網際網路(IP)地址。對於較大類型的內容(例如,視頻、下載等),解決方案不提供在單個請求上下文中進一步優化路由的任何機會。解決方案在服務提供商需要聯合他們的服務的環境下也不能很好地運行。在基於DNS的解決方案中,客戶端裝置通常執行DNS查找以將域名解析為IP位址。DNS服務專用於基於例如地理位置、伺服器負載、內容位置等的因素動態地選擇伺服器IP位址。然而,基於DNS的解決方案僅在域級提供粗粒度路由。在基於BGP的解決方案中,在多個位置支持給定的伺服器IP位址。例如,每個不同區域可以包括具有相同IP位址的伺服器,並且伺服器可以廣播IP位址。然而,基於BGP的解決方案僅在伺服器級提供粗粒度路由,並且也不可特別好地解決網絡問題(例如,擁塞、伺服器故障等)。藉助於基於應用程式級的解決方案,伺服器能夠經由HTTP協議將客戶端裝置重定向到不同伺服器。例如,一些服務提供商在應用程式級在其網絡中部署內容伺服器。可以通過將內容請求明確地路由(例如,經由DNS或BGP)到在應用程式級實施的內容路由器來執行基於應用程式級的解決方案。應用程式級路由的另一實例包括門戶伺服器基於內容請求的來源在門戶伺服器返回的超文本標記語言(HTML)頁面中嵌入不同的統一資源定位符(URL)。
然而,由於與內容伺服器相關的額外路由和連接建立,基於應用程式級的解決方案增加了客戶端裝置的延遲。此外,基於應用程式級的解決方案難以擴展,並且如果必須將所有請求路由到內容伺服器,則內容伺服器可能變成網絡瓶頸。

發明內容
根據一個方面,計算裝置執行的方法可以包括計算裝置從客戶端裝置接收資源的請求;計算裝置訪問包括一項或多項信息的表;計算裝置將請求中提供的信息與表中提供的一項或多項信息進行比較;在請求中提供的信息與表中提供的一項或多項信息的至少一項進行匹配時,計算裝置終止請求的連接;當在計算裝置沒有終止連接時,計算裝置將請求轉發到網絡;以及當在計算裝置終止連接時,計算裝置為資源選擇目標裝置。根據另一方面,計算裝置執行的方法可以包括計算裝置從網絡裝置接收本地緩存信息,其中,本地緩存信息標識網絡裝置的本地緩存中存儲的資源;計算裝置從多個伺服器裝置接收資源信息,其中,資源信息標識多個伺服器裝置中的每個中存儲的資源;計算裝置從與網絡裝置相關的網絡接收網絡信息,其中,網絡信息標識與網絡相關的拓撲結構、負 載和成本;計算裝置存儲本地緩存信息、資源信息和網絡信息;計算裝置從網絡裝置接收所請求的資源的查詢;計算裝置基於本地緩存信息、資源信息或網絡信息中的一個或多個為所請求的資源選擇目標裝置,其中,目標裝置包括包括所請求的資源的本地緩存或多個伺服器裝置中的一個;以及計算裝置向網絡裝置提供所選擇的目標裝置的標識。根據又一方面,邊緣裝置可以包括用於存儲包括一項或多項信息的表的裝置以及處理器。處理器可以從客戶端裝置接收資源的請求,可以將請求中提供的信息與表中提供的一項或多項信息進行比較,可以在請求中提供的信息與表中提供的一項或多項信息中至少一項匹配時在邊緣裝置終止請求的連接。處理器可以在邊緣裝置沒有終止連接時將請求轉發到網絡,可以在邊緣裝置終止連接時為資源選擇目標裝置,並可以從所選擇的目標裝置檢索資源。根據又一方面,計算裝置可以包括存儲器,用於存儲以下一個或多個標識網絡裝置的本地緩存中存儲的資源的本地緩存信息,標識多個伺服器裝置的每個中存儲的資源的資源信息,以及標識與網絡裝置相關的網絡的拓撲結構、負載和成本的網絡信息。計算裝置還可以包括處理器用於從網絡裝置接收所請求的資源的查詢,基於本地緩存信息、資源信息或網絡信息中的一個或多個來選擇包括所請求的資源的目標裝置,其中,目標裝置包括本地緩存或多個伺服器裝置中的一個,並且向網絡裝置提供所選擇的目標裝置的標識。


附圖包括在說明書中,並構成說明書的一部分,示出了本文描述的一個或多個實施方式,並與說明書一起說明這些實施方式。在附圖中圖I是可以實施本文所述的系統和/或方法的實例網絡的示圖;圖2是圖I所示的客戶端裝置、緩存伺服器、源裝置、路由中介伺服器或其他裝置的實例組件的示圖;圖3是圖I所示的網絡裝置的實例組件的示圖;圖4是能夠由圖I所示的網絡的實例部分執行的實例操作的示圖5A和圖5B是能夠由圖I中所示的網絡的實例部分執行的另一實例操作的示圖;圖6是能夠由圖I所示的網絡的實例部分執行的又一實例操作的示圖;圖7是能夠由圖I所示的網絡的實例部分執行的實例操作的示圖;
圖8是能夠由圖I所示的網絡的實例部分執行的另一實例操作的示圖;圖9是圖I所示的網絡裝置的應用代理的功能組件的實例的示圖;以及圖10至13是根據本文所述的實施方式提供網絡集成動態資源路由的實例過程的流程圖。
具體實施例方式以下的詳細描述參照附圖。不同圖中的相同參考標號可以標識相同或相似的元件。通過在諸如服務提供商網絡的核心網的邊緣網絡裝置中添加應用程式級智能,本文所述的系統和/或方法可以將資源路由集成至核心網的基礎架構中。應用程式級的智能可以包括應用程式代理,其終止與客戶端裝置資源請求的全部或子集相關的給定應用程式的連接。對於每個資源請求,應用程式代理可以確定存儲資源的目標伺服器,可以連接至所確定的伺服器,並可以在客戶端裝置和確定的伺服器之間代理資源請求和返回的資源。在實例實施方式中,系統和/或方法可以從客戶端裝置接收資源請求,並基於請求的IP信息確定是否終止該請求的連接。如果沒有終止請求的連接,則可以將請求轉發到諸如服務提供商網絡的核心網用於額外路由。如果終止請求的連接,則可以確定該資源的目標源裝置,並且可以將請求提供到所確定的目標源裝置。可以從目標源裝置接收資源,並將其提供到客戶端裝置。圖I是可以實施本文所述的系統和/或方法的實例網絡100的示圖。如圖所示,網絡100可以包括客戶端裝置110、緩存(cache,高速緩存)伺服器裝置120 (本文稱為「緩存伺服器(cache server) 120」)、起始裝置130、路由中介伺服器裝置140(本文稱為「路由中介(routing broker)伺服器140」)、其他裝置150、網絡160和設置在網絡160中或與網絡160連接的網絡裝置170。如圖I所示,網絡裝置170可以包括應用程式代理(applicationproxy) 172和本地緩存174。網絡100中的裝置可以經由有線和/或無線互連或連接。為了簡單,在圖I中示出了單個客戶端裝置110、緩存伺服器120、起始裝置130、路由中介伺服器140、其他裝置150、網絡160和網絡裝置170。實際上,可存在另外的客戶端裝置110、緩存伺服器120、起始裝置130、路由中介伺服器140、其他裝置150、網絡160和/或網絡裝置170。此外,在一些情況下,網絡100的一個或多個裝置可以執行被描述為由網絡100的另一個或多個裝置執行的一個或多個任務。客戶端裝置110可以包括能夠經由網絡160和/或網絡裝置170接入緩存伺服器120、起始裝置130和/或其他裝置150的任何裝置。例如,客戶端裝置110可以包括無線電話、可以將數據處理和數據通信功能與蜂窩無線電話組合的個人通信系統(PCS)終端、可以包括無線電話、尋呼機、網際網路/乙太網接入等的個人數字助理(PDA)、無線裝置(例如,無線電話)、智慧型電話、工作站計算機、膝上型計算機、個人計算機或其他類型的計算或通信>J-U P^3裝直。緩存伺服器120可以包括一個或多個伺服器裝置,或者以本文所述的方式收集、處理、搜索和/或提供信息的其他類型的計算或通信裝置。在一個實例實施方式中,緩存伺服器120可以用作來自從起始裝置130尋求資源的客戶端裝置110的請求的媒介。如本文所使用的術語「資源」旨在廣義地解釋為包括內容,諸如視頻、音頻、圖像、軟體下載等;服務,諸如提供高清晰度和用戶生成的內容、消費者和企業新聞和信息服務、電子郵件系統等;和/或內容和服務的組合。客戶端裝置110可以經由網絡160和/或網絡裝置170連接至緩存伺服器120,並可以從起始伺服器130請求一些可用資源。緩存伺服器120可以評估請求(例如,根據過濾規則,諸如按IP位址或協議過濾流量)。如果驗證請求,則緩存伺服器120可以通過連接至起始裝置130並代表客戶端裝置110請求資源來提供所請求的資源。緩存伺服器120可以在沒有連接起始裝置130的情況下服務請求。在該情況下,緩存伺服器120可以緩存(或存儲)先前從起始裝置130請求的特定資源,並在沒有涉及起始 裝置130的情況下經由網絡裝置170將該特定資源提供到客戶端裝置。起始裝置130可以包括一個或多個伺服器裝置,或者以本文所述的方式收集、處理、搜索和/或提供資源的其他類型的計算或通信裝置。在一個實例實施方式中,起始裝置130可以包括客戶端裝置170可以經由網絡160和/或網絡裝置170訪問的資源。在一個實例中,起始裝置130可以向客戶端裝置110提供資源(例如,經由網絡160和/或網絡裝置170)。可選地,起始裝置130可以為緩存伺服器120提供特定資源用於存儲。緩存伺服器120可以存儲特定資源,使得當客戶端裝置110請求時,緩存伺服器120可以將特定資源提供到客戶端裝置110,而不涉及起始裝置130。路由中介伺服器140可以包括一個或多個伺服器裝置,或者以本文所述的方式收集、處理、搜索和/或提供信息的其他類型的計算或通信裝置。在一個實例實施方式中,路由中介伺服器140可以從各種源接收信息,並可存儲信息。例如,路由中介伺服器140可以接收來自本地緩存174的信息(例如,關於本地緩存174的可用性的信息、標識本地緩存174中存儲的資源的信息等);來自網絡160的信息(例如,關於網絡160和/或網絡裝置170的可用性的信息,網絡拓撲結構和成本等);來自緩存伺服器120的信息(例如,關於緩存伺服器120的信息、標識緩存伺服器120中存儲的資源的信息等);來自其他裝置150的信息(例如,關於其他裝置150的可用性的信息,標識由其他裝置150存儲的資源的信息、標識有除由與網絡100相關的服務提供商之外的服務提供商提供的資源的伺服器的應用層流量優化(ALTO)服務(例如,請求註解(RFC) 5693中闡述的)信息;和/或來自起始裝置130的信息(例如,關於起始裝置130可用性的信息,標識起始裝置130中存儲的資源的信息)。在一個實例中,網絡裝置170可以向路由中介伺服器140查詢目標裝置的位置以服務資源請求(例如,由客戶端裝置110提供)。路由中介伺服器140可以接收該查詢,可以確定目標裝置以服務資源請求,並且可以向網絡裝置170提供目標裝置的諸如IP位址的位置信息。例如,路由中介伺服器140可從網絡裝置170接收查詢,並且因為起始裝置130是所請求的資源的最近裝置,因此可以確定起始裝置130是目標裝置。因此,路由中介伺服器140可以向網絡裝置170提供起始裝置130的諸如IP位址的位置信息。其他裝置150可以包括一個或多個伺服器裝置或者以本文所述的方式收集、處理、搜索、和/或提供信息的其他類型的計算或通信裝置。在一個實例實施方式中,其他裝置150可以與在網絡100或網絡100的組件故障的情況下為網絡100提供資源的聯合服務提供商網絡相關。其他裝置150可以存儲標識有這種聯合服務提供商網絡提供的資源的伺服器的ALTO服務信息。在實例實施方式中,在網絡100或網絡100的組件故障的情況下,其他裝置150可以包括客戶端裝置110可以經由網絡160和/或網絡裝置170接入的資源。網絡160可以包括諸如區域網(LAN)、廣域網(WAN)的服務提供商網絡;城域網(WAN);電話網絡(例如,公共交換電話網絡(PSTN)或蜂窩網絡);網際網路;或網絡的組合。網絡裝置170可以包括諸如網關、路由器、交換機、防火牆、網絡接口卡(NIC)、集線器、網橋、代理伺服器,光分插復用器(OADM)的流量傳輸裝置,或者處理和/或轉移流量(例如,包)的一些其他類型的裝置。在一個實施方式中,網絡裝置170可以是提供來自網絡160的入口點或出口點的邊緣網絡裝置。在一個實例中,網絡裝置170可以使得客戶端裝置110、緩存伺服器120、起始裝置130、路由中介伺服器140和/或其他裝置150能夠彼此通信。在另一實例中,網絡裝置170可以使得客戶端裝置110能夠請求並從緩存伺服器120、起始伺服器130和/或其他裝置150接收資源。
如圖I進一步所示,網絡裝置170可以包括應用程式代理172和本地緩存174。應用程式代理172可以終止與客戶端裝置110的資源請求的全部或子集相關的給定應用程式的連接。應用程式代理172基本上可以同時、在不同時間等接收資源請求。對於每個資源請求,應用程式代理172可以確定存儲資源的目標伺服器(例如,緩存伺服器120、起始伺服器130、其他裝置150或本地緩存174)。應用程式代理伺服器172可以連接至所確定的伺服器,並可以代理資源請求以及客戶端裝置110和確定的伺服器之間返回的資源。在實例實施方式中,應用程式代理172可以從客戶端裝置110接收資源請求,並基於請求的IP信息確定是否終止請求的連接。如果應用程式代理172確定不應當終止請求的連接,則代理伺服器172可以將請求轉發到網絡160用於額外路由。如果應用程式代理172確定應當終止請求的連接,則應用代理伺服器172可以終止請求的連接,並且可以確定該資源的目標源裝置(例如,緩存伺服器120、起始伺服器130、其他裝置150或本地緩存174)。應用程式代理172可以將請求提供到確定的目標源裝置,並接收來自目標源裝置的資源,並可以將資源提供到客戶端裝置110。本地緩存174可以包括一個或多個存儲裝置,諸如磁和/或光記錄介質和它們的相應驅動、可移除存儲器、隨機存取存儲器(RAM)和只讀存儲器(ROM)等。在一個實例實施方式中,本地緩存174可以存儲客戶端裝置110可以接入的資源。本地緩存174可以存儲資源,使得在客戶端裝置110請求時,本地緩存174可以在不涉及緩存伺服器120、起始裝置130、和/或其他裝置150的情況下,將資源提供到客戶端裝置110。例如,以下結合圖3-9提供了網絡裝置170、應用程式代理172和本地緩存174的進一步細節。雖然圖I示出了網絡100的實例裝置,但是在其他實施方式中,與圖I描述的相t匕,網絡100可以包括更少的裝置、不同裝置、不同排列的裝置或另外的裝置。圖2是裝置200的實例組件的示圖,其可以對應於客戶端裝置110、緩存伺服器120、起始伺服器130、路由中介伺服器140、或其他裝置150 (圖I)。在一些情況下,裝置200還可以對應於網絡裝置170(圖I)。客戶端裝置110、緩存伺服器120、起始伺服器130、路由中介伺服器140、其他裝置150或網絡裝置170中的每個可以包括一個或多個裝置200。如圖2所示,裝置200可以包括總線210、處理單元220、主存儲器230、ROM 240、存儲裝置250、輸入裝置260、輸出裝置270和/或通信接口 280。總線210可以包括允許在裝置200的組件之間通信的路徑。處理單元220可以包括一個或多個處理器、微處理器、特定用途集成電路(ASIC)、場可編程門陣列(FPGA)或解釋並執行指令的其他類型的處理單元。主存儲器230可以包括RAM或存儲用於處理單元220執行的信息和指令的其他類型的動態存儲裝置。ROM 240可以包括ROM裝置或存儲用於處理單元220的靜態信息和/或指令的其他類型的靜態存儲裝置。存儲裝置250可以包括磁和/或光記錄介質及其相應驅動,或者諸如快閃記憶體的可移除存儲器。輸入裝置260可以包括允許操作者向諸如鍵盤、滑鼠、交換機、按鈕、語音識別和/或生物機制、觸控螢幕等的裝置200輸入信息的機制。輸出裝置270可以包括向包括顯示器、揚聲器、發光二極體(LED)等的操作器輸出信息的機制。通信接口 280可以包括使得裝置200能夠與其他裝置和/或系統通信的任何收發機機制。例如,通信接口 280可以包括用於經由網絡與另一裝置或系統進行通信的機制。在一個實施方式中,通信接口 280可以包括 諸如乙太網接口的有線接口或者諸如射頻接口的無線接口。如本文所述,裝置200可以響應於執行諸如主存儲器230的計算機可讀介質中包含的軟體指令的處理單元220執行特定操作。計算機可讀介質可以限定為非暫時性的存儲器裝置。存儲器裝置可以包括在單個物理存儲器裝置中或遍布多個物理存儲器裝置的空間。軟體指令可以從諸如存儲裝置250的另一計算機可讀介質或者經由通信接口 280從另一裝置讀入主存儲器230。主存儲器230中包含的軟體指令可以使處理單元220執行本文所述的處理。可選地,硬連線的電路可以取代軟體指令或與其結合使用以執行本文所述的處理。因此,本文所述的實施方式不限於硬體電路和軟體的任何特定組合。雖然圖2示出了裝置200的實例組件,但是在其他實施方式中,與圖2中描述的相t匕,裝置200可以包括更少的組件、不同組件、不同地排列的組件或另外的組件。可選地或者另外地,裝置200的一個或多個組件可以執行描述為由裝置200的一個或多個其他組件執行的一個或多個其他任務圖3是可以對應於網絡裝置170 (圖I)的裝置300的實例組件的示圖。在一些情況下,網絡裝置170可以包括一個或多個裝置300。如圖3所示,裝置300可以包括輸入組件310、交換/路由機制320、輸出組件330和控制單元340。輸入組件310可以是物理鏈路的附著點,並可以是諸如包的進入流量的入口點。輸入組件310可以處理進入流量,諸如通過執行數據鏈路層封裝或封裝。在一個實例實施方式中,輸入組件310可以發送和/或接收包。交換/路由機制320可以將輸入組件310與輸出組件330互連。交換/路由機制320可以使用多種不同技術來實施。例如,交換/路由機制320可以經由總線、經由交換機、和/或用共享存儲器來實施。共享存儲器可以用作在流量被最終調度以傳送到輸出組件330之前存儲來自輸入組件310的流量的緩衝器。輸出組件330可以存儲包並可以調度包用於輸出物理鏈路上的服務。輸出組件330可以包括支持優先級或保證的調度算法。輸出組件330可以支持數據鏈路層封裝和解封裝,和/或各種更高層協議。在實例實施方式中,輸出組件330可以發送包和/或接收包。
控制單元340可以使用路由協議以及一個或多個轉發表用於轉發包。控制單元340可以與輸入組件310、交換/路由機制320和輸出組件330連接。控制單元340可以計算轉發表、實施路由協議、和/或運行軟體以配置和管理裝置300。控制電路340可以確定其目的地地址沒有在轉發表中找到的任何包的路由。在實例實施例中,控制單元340可以包括總線350,其包括允許處理器360、存儲器370和通信接口 380之間進行通信的路徑。處理器360可以包括一個或多個處理器、微處理器、ASIC、FPGA、或可以解釋和執行指令的其他類型的處理單元。存儲器370可以包括RAM、ROM裝置、磁和/或光記錄介質及其相應驅動、和/或可以存儲信息和指令用於處理器360執行的其他類型的靜態和/或動態存儲裝置。在包被導向回至交換/路由機制320,被交換/路由機制320傳輸並最後調度以發送到輸出組件330之前,存儲器370還可以臨時地存儲來自輸入組件310的進入流量(例如,包的頭或整個包)用於處理器360處理。通信接口380可以包括任何像收發器的機制,其使得控制單元340與其他裝置和/或系統進行通信。 如本文所述,響應於執行在諸如存儲器370的計算機可讀介質中包含的軟體指令的處理器360,裝置300可以執行特定操作。軟體指令可以從諸如數據存儲裝置的另一計算機可讀介質或者經由通信接口 380從另一裝置讀入存儲器370。存儲器370中包含的軟體指令可以使處理器360執行本文所述的處理。可選地,硬連線電路可以代替軟體指令或者與軟體指令結合使用來實施本文所述的處理。因此,本文所述的實施方式不限於硬體電路和軟體的任何特定組合。例如,可以使用路由協議(例如,BGP)經由外部代理控制裝置300的交換/路由操作。雖然圖3示出了裝置300的實例組件,但是在其他實施方式中,與圖3描述的相t匕,裝置300可以包括更少的組件、不同的組件、不同排列的組件或另外的組件。可選地或另外地,裝置300的一個或多個組件可以執行描述為由裝置300的一個或多個其他組件執行的一個或多個其他任務。圖4是能夠由網絡100的實例部分400執行的實例操作的示圖。如圖所示,實例網絡部分400可以包括客戶端裝置110、網絡裝置170和應用程式代理172。客戶端裝置110、網絡裝置170和應用程式代理172可以包括以上結合例如圖1-3中的一個或多個描述的特徵。如圖4所示,客戶端裝置110可以向網絡裝置170提供資源請求410,並且網絡裝置170可以經由應用程式代理172接收請求410。應用程式代理172可以接收請求410,並可以基於請求410中提供的信息確定是否在網絡裝置170終止請求410的連接(例如,傳輸控制協議(TCP))。在一個實例中,請求410中提供的信息可以包括IP信息,諸如請求410的目的地IP位址、客戶端裝置110的IP位址(S卩,請求410的源IP位址)、請求410的目的地埠(例如,網絡地址轉換(NAT))等。在一個實施方式中,應用程式代理172可以從請求410提取目的地IP位址,可以從請求410提取客戶端裝置110的IP位址,和/或可以從請求410提取目的地埠。應用程式代理172可以基於提取的目的地IP位址確定客戶端裝置110的IP位址、和/或目的地埠、是否在網絡裝置170終止請求410的連接。如圖4中進一步所示,如果應用程式代理172基於請求410中提供的信息決定終止請求410的連接,則應用程式代理172可以向客戶端裝置110提供終止連接的指示420。如果應用程式代理172基於請求410中提供的信息決定沒有終止請求410的連接,則應用程式代理172可以向客戶端裝置110提供連接沒有終止的指示430,並可以將請求410轉發到網絡160用於額外路由,如參考標號440所示。在一個實例實施方式中,應用程式代理172可以終止給定應用程式或從客戶端裝置110接收的資源請求的全部或子集的連接(例如,TCP連接)。在另一實例實施方式中,由於請求410可以被另一下遊裝置終止,因此可以省略指示430。在一個實施方式中,應用程式代理172可以保持或接入提供應用程式、客戶端裝置IP位址、源裝置IP位址等的列表的表(或其他數據結構)。表中提供的信息可以由網絡管理員輸入到網絡裝置170,或者可以由應用程式代理172基於提供到網絡裝置170或由其接收的先前流量來生成。例如,如果網絡裝置170從特定客戶端裝置110接收特定數量(例如,大於閾值)的請求,則應用程式代理172可以將客戶端裝置110的IP位址添加到表。在另一實例中,如果網絡裝置170從特定伺服器檢索特定數量(例如,大於閾值)的資源,則應用程式代理172可以將特定伺服器的IP位址添加到表。
應用程式代理172可以將請求410中提供的信息和表中提供的信息進行比較,並且當請求410中提供的信息與表中提供的一項或多項信息匹配時,決定終止請求410的連接。在一個實施方式中,應用程式代理172可以建立規則以確定是否終止連接(例如,如果表中有一個匹配,則終止連接,如果表中有兩個或多個匹配,則終止連接等)。在一個實例中,如果請求410包括起始裝置130的目的地IP位址並且表包括起始裝置130的目的地IP位址,則應用程式代理172可以決定終止請求410的連接。在另一實例中,如果請求包括緩存伺服器120的目的地IP位址但是不包括客戶端裝置110的IP位址,則應用程式代理172可以確定沒有終止請求410的連接。雖然圖4示出了網絡部分400的實例組件,但是在其他實施方式中,與圖4中描述的相比較,網絡部分400可以包括更少的組件、不同的組件、不同排列的組件或另外的組件。可選地或另外地,網絡部分400的一個或多個組件可以執行描述為由網絡部分400的一個或多個其他組件執行的一個或多個任務。圖5A和5B是能夠由網絡100的實例部分500執行的另一實例操作。如圖5A和5B所示,實例網絡部分500可以包括客戶端裝置110、緩存伺服器120、起始裝置130、路由中介伺服器140、其他裝置150、網絡160和網絡裝置170。客戶端裝置110、緩存伺服器120、起始裝置130、路由中介伺服器140、其他裝置150、網絡160和網絡裝置170可以包括例如以上結合圖1-4中的一個或多個描述的特徵。如圖5A進一步所示,路由中介伺服器140可以從網絡部分500的一個或多個源接收信息。例如,本地緩存174可以將本地緩存信息510提供到路由中介伺服器140。本地緩存信息510可以包括關於本地緩存174的可用性的信息,標識本地緩存174中存儲的資源的信息,關於本地緩存174的大小的信息等。在另一實例中,網絡160可以將網絡信息520提供到路由中介伺服器140。網絡信息520可以包括關於網絡160和/或網絡160的組件、與網絡160相關的拓撲結構和成本、可用於網絡160的帶寬、優選的網絡160的客戶端裝置等的信息。在又一實例中,緩存伺服器120可以將緩存信息530提供給路由中介伺服器140。緩存信息530可以包括關於緩存伺服器120的可用性的信息、標識緩存伺服器120中存儲的資源的信息、關於緩存伺服器120的負載的信息等。在一個實例實施方式中,路由中介伺服器140可以使得新緩存伺服器添加到網絡100,而無需像現有方案要求的那樣明確地將新的緩存伺服器配置到路由判定中。新的緩存伺服器可以向路由中介伺服器140提供緩存信息(例如,與緩存信息530類似)。在再一實例中,其他裝置150可以向路由中介伺服器140提供其他裝置信息540。其他裝置信息540可以包括關於其他裝置150的可用性的信息、標識其他裝置150中存儲的資源的信息、關於與其他裝置150相關的服務提供商的信息、標識具有由與其他裝置150相關的服務提供商提供的資源的伺服器的ALTO服務信息等。在又一實例中,起始裝置130可以向路由中介伺服器140提供起始信息550。起始信息550可以包括關於起始裝置130的可用性的信息、標識起始裝置130中存儲的資源的 信息、關於起始裝置130的負載的信息
坐寸o路由中介伺服器140可以接收本地緩存信息510、網絡信息520、緩存信息530、其他裝置信息540和/或起始信息550,並可以存儲(例如,在圖2的主存儲器230、ROM 240和/或存儲裝置250中)本地緩存信息510、網絡信息520、緩存信息530、其他裝置信息530和/或起始信息550。如圖5A中進一步示出,客戶端裝置110可以向網絡裝置170提供資源的請求560,並且網絡裝置170可以經由應用程式代理172接收請求560。請求560可以包括IP信息,諸如請求560的目的地IP位址、客戶端裝置110的IP位址(即,請求560的源IP位址)、請求560的目的地埠等。在一個實例中,請求560可以包括HTTP GET請求(例如,請求資源)、域名、和/或統一資源定位符(URL)。應用程式代理172可以接收請求560,並可以如以上結合圖4描述的,基於請求560中提供的信息確定是否在網絡裝置170終止請求560的連接。如果應用程式代理172在網絡裝置170終止請求560的連接,則應用程式代理172可以確定請求560請求的資源的目標源裝置。應用程式代理172可以以多種方式確定目標源裝置。例如,如圖5B所示,應用程式代理172可以向路由中介伺服器140提供查詢570。查詢570可以包括存儲了由請求560請求的資源的目標源裝置的位置的請求。在一個實施方式中,請求570可以包括與請求560相關的信息,諸如請求560請求的資源、請求560的域名、請求560的URL等。路由中介伺服器140可以接收查詢570,並可以基於查詢570確定請求560請求的資源的目標源裝置。在一個實例中,路由中介伺服器140可以基於各種因素確定目標源裝置,諸如網絡160的狀態(例如,網絡160的帶寬、網絡160的負載等)、目標源裝置關於客戶端裝置110的物理位置(例如,在位於距客戶端裝置110較遠的裝置前,可以選擇位於較靠近客戶端裝置110的裝置)等。在確定目標源裝置之後,路由中介伺服器140可以將目標源裝置的位置580 (例如,IP位址)提供給應用程式代理172。在一個實例中,請求560中包括的域名可以由特定伺服器(例如,起始裝置130)託管,而請求560中包括的URL可以標識由不同伺服器(例如,緩存伺服器120)託管的資源。在這種場景下,由於請求560請求的資源由緩存伺服器120託管,因此路由中介伺服器140可以確定緩存伺服器120是目標源裝置。相反,在基於DNS的系統中,請求560將不必首先由於請求560的域名而被路由到起始裝置130。在一個實例實施方式中,在生成查詢570之前,應用程式代理172可以確定所請求的資源是否存儲在本地緩存174中。在一個實例中,應用程式代理172可以保持提供了本地緩存174中存儲的資源列表的表(或其他數據結構)。應用程式代理172可以掃描表以確定所請求的資源是否存儲在本地緩存174中。如果應用程式代理172確定所請求的資源存儲在本地緩存174中,則應用程式代理172可以從本地緩存174檢索所請求的資源。例如,應用程式代理172可以向本地緩存174提供請求560,並且本地緩存174可以檢索請求560請求的資源590。本地緩存174可以向應用程式代理172提供資源590,並且應用程式代理172可以將資源590轉發到客戶端裝置110。如果應用程式代理172確定資源不存儲在本地緩存174中,則應用程式代理172可以向路由中介伺服器140提供查詢570。應用程式代理172可以從路由中介伺服器140並且基於查詢570接收目標源裝置(例如,緩存伺服器120、起始裝置130、和/或其他裝置150)的位置580。應用程式代理172可以使用位置580來與目標源裝置連接,並從目標源裝置檢索所請求的資源。如圖5B進一步示出,在一個實例中,如果位置580標識了緩存伺服器120的IP位址,則應用程式代理172可以向緩存伺服器120提供請求560(例如,其可以包括客戶端裝置110的IP位址),並且緩存伺服器120可以檢索請求560請求的資源590。緩存伺服器120可以向應用程式代理172提供資源590,並且應用程式代理172可以將資源590 (例 如,其可以包括緩存伺服器120的IP位址)轉發到客戶端裝置110。在另一實例中,如果位置580標識起始裝置130的IP位址,則應用程式代理172可以向起始裝置130提供請求560 (例如,其可以包括客戶端裝置110的IP位址),並且起始裝置130可以檢索請求560所請求的資源590。起始裝置130可以向應用程式代理172提供資源590,並且應用程式代理172可以將資源590 (例如,其可以包括起始裝置130的IP位址)轉發到客戶端裝置110。在又一實例中,如果位置580識別其他裝置150的IP位址,則應用程式代理172可以向其他裝置150提供請求560 (例如,其可以包括客戶端裝置110的IP位址),並且其他裝置150可以檢索請求560請求的資源590。其他裝置150可以向應用程式代理172提供資源590,並且應用程式代理172可以將資源590 (例如,其可以包括其他裝置150的IP位址)轉發到客戶端裝置110。雖然圖5A和5B中示出了網絡部分500的實例組件,但是在其他實施方式中,與圖5A和5B中描述的相比較,網絡部分500可以包括更少的組件、不同的組件、不同排列的組件或另外的組件。可選地或者另外地,網絡部分500的一個或多個組件可以執行描述為由網絡部分500的一個或多個組件執行的一個或多個其他任務。例如,網絡裝置170可以經由應用程式代理172執行描述為由路由中介服務其140執行的一個或多個功能(例如,確定目標源裝置)。圖6是能夠由網絡100的實例部分600執行的又一實例操作的示圖。如圖所示,實例網絡部分600可以包括客戶端裝置110、緩存伺服器120、起始裝置130、其他裝置150、網絡裝置170、應用程式代理172和本地緩存174。客戶端裝置110、緩存伺服器120、起始裝置130、其他裝置150、網絡裝置170、應用程式代理172和本地緩存174可以包括以上結合例如圖I至5B中的一個或多個描述的特徵。在一個實施方式中,圖6可以描述網絡裝置170如何將來自客戶端裝置110的請求代理到目標源裝置,並且進一步將從目標源裝置檢索的資源代理到客戶端裝置110。通過代理請求和資源,網絡裝置170可以確保客戶端裝置110和目標源裝置彼此是透明的,或者緩存伺服器120對客戶端裝置110和起始裝置130是透明的。例如,客戶端裝置110可以對起始裝置130是透明的,因為網絡裝置170可以使用其自己的IP位址,或者可以隱瞞客戶端裝置110和/或起始裝置130的地址,以在客戶端裝置110和起始裝置130之間交換信息(例如,包)。在另一實例中,網絡裝置170可以使用客戶端裝置110和/或起始裝置130的IP位址,以與緩存伺服器120交換信息(即,使得緩存伺服器120對客戶端裝置110和/或起始裝置130不可見)。這種布置可以確保客戶端裝置110、緩存伺服器120、和/或起始裝置130對彼此不可見,這將提高客戶端裝置110和/或目標源裝置的安全性。如圖6中進一步所示,客戶端裝置100可以向網絡裝置170提供資源請求610,並且網絡裝置170可以經由應用程式代理172接收請求610。請求610可以包括IP信息,諸如請求610的目的地IP位址、客戶端裝置110的IP位址(S卩,請求610的源IP位址)、請求610的目的地埠等。應用程式代理172可以接收請求610,並可以基於請求610中提供的信息確定是否在網絡裝置170終止請求610的連接。如果應用程式代理172在網絡裝置170終止請求610的連接,則應用程式代理172可以確定適於服務請求610請求的資源的目標源裝置。例如,應用程式代理172可以確定目標源裝置為緩存伺服器120、起始裝置130、其他裝置150和/或本地緩存174。在一個實例實施方式中,應用程式代理172可以以上結合圖5A和5B描述的方式確定請求610的目標源裝置。應用程式代理172可以連接至所確定的目標源裝置,並可以向確定的目標源裝置提供請求610的代理620。代理請求620可以包括請求610的特徵,但是可以通過對目標源裝置隱瞞客戶端裝置110的IP位址來透明地提供。經由代理請求620,客戶端裝置110對目標源裝置可以是透明的,因為網絡裝置170可以使用其自己的IP位址,或者可以隱瞞客戶端裝置110的地址,以向目標源裝置發送信息。這可以使得客戶端裝置110安全地與目標源裝置進行通信(即,而不需通過目標源裝置獲得對客戶端裝置110的IP位址的接入)。在一個實例中,如果目標源裝置對應於緩存伺服器120,則應用程式代理172可以向緩存伺服器120提供代理請求620,並且緩存伺服器120可以檢索代理請求620請求的資源630。緩存伺服器120可以向應用程式代理172提供資源630。在另一實例中,如果目標 源裝置對應於起始裝置130,則應用程式代理172可以向起始裝置130提供代理請求620,並且起始裝置130可以檢索代理請求620請求的資源630。起始裝置130可以向應用程式代理172提供資源630。在又一實例中,如果目標源裝置對應於其他裝置150,則應用程式代理172可以向其他裝置150提供代理請求620,並且其他裝置150可以檢索代理請求620請求的資源630。其他裝置150可以向應用程式代理172提供資源630。在另一實例中,如果目標源裝置對應於本地緩存174,則應用程式代理172可以向本地緩存174提供請求610 (即,可以不需要代理),並且本地緩存174可以檢索請求610請求的資源630。本地緩存174可以向應用程式代理172提供資源630。應用程式代理172可以從上述目標源裝置中的一個接收資源630,並且可以將資源630的代理640提供到客戶端裝置110。代理資源640可以包括資源630的特徵,但是可以通過對客戶端裝置110隱瞞目標源裝置的IP位址來透明地提供。經由代理資源640,目標源裝置對客戶端裝置110可以是「透明」的,因為網絡裝置170可以使用其自己的IP位址向客戶端裝置110發送信息。這可以使得目標源裝置安全地與客戶端裝置110進行通信(即,無需客戶端裝置110獲得對目標源裝置的IP位址的接入)。雖然圖6示出了網絡部分600的實例組件,但是在其他實施方式中,與圖6中描述的相比較,網絡部分600可以包括更少的組件、不同的組件、不同排列的組件或另外的組件。可選地或另外地,網絡部分600的一個或多個組件可以執行描述為由網絡部分600的一個或多個其他組件執行的一個或多個任務。圖7是能夠由網絡100的實例部分700執行的實例操作的示圖。如圖所示,實例網絡部分700可以包括客戶端裝置110、緩存伺服器120、起始裝置130、其他裝置150、網絡裝置170、應用程式代理172和本地緩存174。客戶端裝置110、緩存伺服器120、起始裝置130、其他裝置150、網絡裝置170、應用程式代理172和本地緩存174可以包括例如以上結合圖1-6中的一個或多個描述的特徵。如圖7所示,客戶端裝置110可以向網絡裝置170提供與單個連接相關的多個資源的多個請求710-1,. . .,710-4(統稱為「多個請求710」 ),並且網絡裝置170可以經由應用程式代理172接收多個請求710。在一個實施方式中,可以經由單個連接順序提供多個請求710。在其他實施方式中,可以經由單個連接在不同時間提供多個請求710。應用程式代 理172可以接收多個請求710,並可以基於多個請求710中提供的信息確定是否在網絡裝置170終止多個請求710的連接。在一個實施方式中,應用程式代理172可以以上面結合圖4描述的方式確定是否終止多個請求710的連接。如果應用程式代理172決定沒有終止多個請求710的連接,則應用程式代理172可以將多個請求410轉發到網絡160用於額外路由。如果應用程式代理172在網絡裝置170終止多個請求710的連接,則應用程式代理172可以確定最適於服務多個請求710請求的資源的目標源裝置。在一個實例實施方式中,應用程式代理172可以為多個請求710選擇一個或多個目標源裝置。在另一實例實施方式中,應用程式代理172可以為多個請求710中的每個選擇單獨的目標源裝置。例如,應用程式代理172可以選擇緩存伺服器120作為請求710-1的目標源裝置,可以選擇其他裝置150作為請求710-2的目標源裝置,可以選擇起始裝置130作為請求710-3的目標源裝置,和/或可以選擇本地緩存174為請求710-4的目標源裝置。在一個實例中,應用程式代理172可以上面結合圖5A和5B描述的方式為多個請求710選擇目標源裝置。應用程式代理172可以向緩存伺服器120提供請求710-1,並且緩存伺服器120可以檢索請求710-1請求的資源720-1。緩存伺服器120可以向應用程式代理172提供資源720-1。應用程式代理172可以其他裝置150提供請求710-2,並且其他裝置150可以檢索請求710-2請求的資源720-2。其他裝置150可以向應用程式代理172提供資源720-2。應用程式代理172可以向起始裝置130提供請求710-3,並且起始裝置130可以檢索請求710-3請求的資源720-3。起始裝置130可以向應用程式代理172提供資源720-3。應用程式代理172可以向本地緩存174提供請求710-4,並且本地緩存174可以檢索請求710-4請求的資源720-4。本地緩存174可以向應用程式代理172提供資源720-4。應用程式代理172可以接收資源720-1、. . .、720-4,並可以向客戶端裝置110提供資源720-1、. . .、720_4。雖然圖7示出了網絡部分700的實例組件,但是在其他實施方式中,與圖I中所述的相比,網絡部分700可以包括更少的組件、不同的組件、不同排列的組件或另外的組件。可選地或另外地,網絡部分700的一個或多個組件可以執行描述為由網絡部分700的一個或多個其他組件執行的一個或多個任務。圖8是能夠由網絡100的實例部分800執行的又一實例操作。如圖所示,實例網絡部分800可以包括客戶端裝置110、緩存伺服器120、起始裝置130、網絡裝置170和應用程式代理172。客戶端裝置110、緩存伺服器120、起始裝置130、網絡裝置170和應用程式代理172可以包括例如以上結合圖1-7中的一個或多個描述的特徵。如圖8所示,客戶端裝置110可以向網絡裝置170提供資源請求810,並且網絡裝置170可以經由應用程式代理172接收請求810。請求810可以包括IP信息,諸如請求810的目的地IP位址、客戶端裝置110的IP位址(S卩,請求810的源IP位址)、請求810的目的地埠等。應用程式代理172可以接收請求810,並可以基於請求810中提供的信息確定是否在網絡裝置170終止請求810的連接。如果應用程式代理172在網絡裝置170終止請求810的連接,則應用程式代理172可以確定最適於服務請求810請求的資源的目標源裝置。例如,應用程式代理172可以確定目標源裝置為緩存伺服器120。應用程式代理172可以向緩存伺服器120提供請求810,並且緩存伺服器120可以檢索請求810請求的資源的部分820。緩存伺服器120可以向應用程式代理172提供資源部分820。然而,在應用程式代理172從緩存伺服器120接收到請求810請求的整個資源之前,應用程式代理172可以接收事件的指示830。事件指示830可以提供關於網絡(例如,網絡160)中的諸如網絡擁塞、帶寬限制等的改變條件的信息、關於緩存伺服器120故障的 信息、關於緩存伺服器120的過載條件的信息、和/或指示不能從緩存伺服器120檢索所請求的資源的剩餘部分的其他信息。響應於時間指示830,應用程式代理172可以停止與緩存伺服器120進行通信,並可以通過向起始裝置130或者向所請求的資源的另一目標源裝置提供請求810 ( S卩,HTTP字節範圍請求)來切換目標源裝置。基於請求810,起始裝置130可以檢索請求810請求的資源的剩餘部分840。起始裝置130可以向應用程式代理172提供剩餘資源部分840。應用程式代理172可以向客戶端裝置110提供資源部分820和剩餘資源部分840。在一個實施方式中,在向客戶端裝置110提供剩餘資源部分840之前,應用程式代理172可以向客戶端裝置提供資源部分820。在另一實施方式中,應用程式代理172可以等待接收資源部分820/840,並同時將資源部分820/840發送到客戶端裝置110。這種安排可以確保即使在所請求的資源的一個或多個目標源裝置變得不可用時(例如,由於網絡條件或目標源裝置條件的變化),也能將所請求的資源完整地提供到客戶端裝置110。雖然圖8示出了網絡部分800的實例組件,但是在其他實施方式中,與圖8中描述的相比較,網絡部分800可以包括更少的組件、不同的組件、不同排列的組件或另外的組件。可選地或另外地,網絡部分800的一個或多個組件可以執行描述為由網絡部分800的一個或多個其他組件執行的一個或多個任務。圖9是網絡裝置170的應用程式代理172的實例功能組件的示圖。如圖所示,應用程式代理172可以包括TCP接合器組件900、路由判定組件910和應用程式邏輯組件920。在一個實例實施方式中,結合圖9描述的一個或多個功能組件可以由裝置200 (圖2)或裝置300 (圖3)的一個或多個實例組件實施。TCP接合器組件900可以負責有效地接合客戶端裝置110和目標源裝置連接(例如,TCP連接)之間提供的信息。在一個實例中,TCP接合器組件900可以通過相對於TCP序列號在特定時間段(例如,長度足以向目標源裝置提供資源請求並從目標源裝置接收資源)改變包中的頭來接合信息(例如,包)。在一個實施方式中,TCP接合器900可以設置在網絡裝置170的轉發麵,以將應用程式代理172擴展至網絡裝置170的線速度(例如,每秒千兆)。在其他實施方式中,TCP接合器組件900可以是用於緩存未命中/旁路路徑的加速器。應用程式代理172可以從客戶端裝置110接收資源的請求930 (例如,經由TCP接合器組件900),並可以基於請求930中提供的信息確定是否使用TCP接合器組件900。在一個實例中,請求930中提供的信息可以包括IP信息,諸如請求930的目的地IP位址、客戶端裝置110的IP位址(即,請求930的源IP位址)、請求930的目的地埠等。當應用程式代理172決定使用TCP接合器組件900時,應用程式代理172可以在網絡裝置170終止請求930的連接(例如,TCP連接),並可以激活TCP接合器組件900以優化連接的傳輸。如果應用程式代理172基於請求930中提供的信息終止請求930的連接,則TCP接合器組件900可以向路由判定組件910提供終止連接的指示940。如果應用程式代理172沒有終止請求930的連接,則如參考標號950所指示,TCP接合器組件900可以將請求930轉發到網絡160用於額外路由。路由判定組件900可以確定將資源請求或資源請求的部分路由至哪裡。在一個實例實施方式中,路由判定組件910可以以上面結合圖5A和5B描述的方式決定將資源請求 路由至哪裡。如圖9所示,路由判定組件910可以從TCP接合器組件900接收指示940,並可以確定請求930請求的資源的目標源裝置。路由判定組件910可以向應用程式邏輯組件920提供所確定的目標源裝置的位置960。應用程式邏輯組件920可以處理資源請求,由於網絡條件變化或目標源裝置故障等而切換目標源裝置。如圖9所示,應用程式邏輯組件920可以從路由判定組件910接收所確定的目標源裝置的位置960,並且可以如參考標號970所指示將請求930路由到所確定的目標源裝置的位置960。應用程式邏輯組件920可以從目標源裝置接收資源980,並可以將資源980轉發到客戶端裝置110。雖然圖9示出了應用程式代理172的實例功能組件,但是在其他實施方式中,與圖9中描述的相比較,應用程式代理172可以包括更少的功能組件、不同的功能組件、不同排列的功能組件或另外的功能組件。可選地或另外地,應用程式代理172的一個或多個功能組件可以執行描述為由應用程式代理172的一個或多個其他功能組件執行的一個或多個任務。在一個實例實施方式中,可以將網絡裝置170、應用程式代理172和本地緩存174部署為服務提供商網絡中的獨立組件。在另一實例實施方式中,網絡裝置170、應用程式代理172和本地緩存174可以集成到單個裝置中(例如,單個伺服器、單個介質流控制器、單個網絡裝置等)。在另一實例實施方式中,應用程式代理172和本地緩存174中的一個或多個的功能可以集成到網絡裝置170中。本文所述的系統和/或方法可以提供細粒度和動態路由,這可以擴展到網絡裝置170的線速度。另外地或可選地,本文所述的系統和/或方法可以集成在核心網(例如,網絡160)的基礎架構(例如,網絡裝置170)中,並可以不要求覆蓋服務的明確手動配置。另外地或可選地,系統和/或方法可以幫助在不同服務提供商中聯合資源(例如,經由路由中介伺服器140),並可以對透明和反向代理部署的資源路由進行尋址。另外地或可選地,通過在延遲最小的網絡170終止這種連接,系統和/或方法可以提高來自客戶端裝置的TCP連接的效率,並且可以特別為諸如視頻和文件下載的大資源提供透明目標源裝置故障轉移。
圖10至13是用於根據本文所述的實施方式提供網絡集成的動態資源路由的實例處理1000的流程圖。在一個實施方式中,處理1000可以由網絡裝置170執行。在另一實施方式中,一些或全部處理1000可以由不同於網絡裝置170的一個或多個裝置執行,或者與網絡裝置170組合執行。圖10-13中描述的一個或多個處理塊可以同時執行,或者獨立於一個或多個其他處理塊來執行。如圖10所示,處理1000可以包括從客戶端裝置接收資源請求(塊1010),並且基於請求的IP信息確定是否終止請求的連接(塊1020)。例如,在以上結合圖4描述的實施方式中,客戶端裝置110可以向網絡裝置170提供資源的請求410,並且網絡裝置170可以經由應用程式代理172接收請求410。應用程式代理172可以接收請求410,並且可以基於請求410中提供的信息確定是否在網絡裝置170終止請求410的連接(例如,TCP連接)。在一個實例中,請求410中提供的信息可以包括IP信息,諸如請求410的目的地IP位址、客戶端裝置110的IP位址(即,請求410的源IP位址)、請求410的目的地埠等。應用程式代理172可以將請求410中提供的信息與表中提供的信息進行比較,並可以在請求410中提供的信息與表中提供的一項或多項信息匹配時決定終止請求410的連接。 如圖10中進一步所示,當沒有終止連接時(塊1020-沒有終止),處理1000可以包括將請求轉發到網絡(塊1030)。例如,在以上結合圖4描述的實施方式中,如果應用程式代理172基於請求410中提供的信息決定不終止請求410的連接,則應用程式代理172可以向客戶端裝置110提供沒有終止連接的指示,並且可以如參考標號440所指示,將請求410轉發到網絡160用於額外路由。返回圖10,當終止連接時(塊1020-終止),處理1000可以包括確定資源的目標源裝置(塊1040)並將請求提供到所確定的目標源裝置(塊1050)。例如,在以上結合圖5B描述的實施方式中,如果應用程式代理172在網絡裝置170終止請求560的連接,則應用程式代理172可以為請求560請求的資源確定目標源裝置。在一個實例中,應用程式代理172可以向路由中介伺服器140提供查詢570。查詢570可以包括對存儲了請求560請求的資源的目標源裝置的位置的請求。路由中介伺服器140可以接收查詢570,並可以基於查詢570確定請求560所請求的資源的目標源裝置。在確定目標源裝置之後,路由中介伺服器140可以向應用代理伺服器172提供目標源裝置的位置580 (例如,IP位址)。在一個實例中,如果位置580標識緩存伺服器120的IP位址,則應用程式代理172可以向緩存伺服器120提供請求560,並且緩存伺服器120可以檢索請求560請求的資源590。如圖10進一步所示,處理1000可以包括從目標源裝置接收資源(塊1060),並向客戶端裝置提供資源(塊1070)。例如,在以上結合圖5B描述的實施方式中,緩存伺服器120可以向應用程式代理172提供資源590,並且應用程式代理172可以接收資源590並將資源590轉發到客戶端裝置110。處理塊1020可以包括圖11中描述的處理塊。如圖11所示,處理塊1020可以包括從請求提取目的地IP位址(塊1100),從請求提取客戶端裝置IP位址(塊1110),從請求提取目的地埠(塊1120),並基於目的地IP位址、客戶端裝置IP位址和目的地埠中的一個或多個確定是否終止請求的連接(塊1130)。例如,在以上結合圖4描述的實施方式中,應用程式代理172可以從請求410提取目的地IP位址,可以從請求410提取客戶端裝置110的IP位址,和/或可以從請求410提取目的地埠。應用程式代理172可以基於所提取的目的地IP位址、客戶端裝置110的IP位址、和/或目的地埠確定是否在網絡裝置170終止請求410的連接。在一個實例中,應用程式代理172可以保持或接入提供了應用程式、客戶端裝置IP位址、源裝置IP位址等的列表的表(或其他數據結構)。應用程式代理172可以將請求410中提供的信息與表中提供的信息進行比較,並可以在請求410中提供的信息與表中提供的一項或多項信息匹配時確定終止請求410的連接。處理塊1040可以包括圖12中描述的處理塊。如圖12所示,處理塊1040可以包括確定請求所請求的資源是否存儲在本地緩存中(塊1200)。如果資源存儲在本地緩存中(塊1200-在本地緩存中),則處理塊1040可以包括從本地緩存檢索資源(塊1210)。例如,在以上結合圖5B描述的實施方式中,應用程式代理172可以確定所請求的資源是否存儲在本地緩存174中。在一個實例中,應用程式代理172可以維持提供了本地緩存174中存儲的資源的列表的表(或其他數據結構)。應用程式代理172可以掃描表,以確定所請求的資源是否存儲在本地緩存174中。如果應用程式代理172確定所請求的資源存儲在本地緩存174中,則應用程式代理172可以從本地緩存174檢索所請求的資源。例如,應用程式代理172可以向本地緩存174提供請求560,並且本地緩存174可以檢索請求560所請求的 資源590。本地緩存174可以向應用程式代理172提供資源590,並且應用程式代理172可以將資源590轉發到客戶端裝置110。如圖12中進一步所示,如果資源不存儲在本地緩存中(塊1200-不在本地緩存中),則處理塊1040可以包括向所請求的資源的路由中介伺服器提供查詢(塊1220),從路由中介伺服器並基於查詢來接收目標源裝置的標識(塊1230),並基於識別從目標源裝置檢索資源(塊1240)。例如,在以上結合圖5B描述的實施方式中,如果應用程式代理172確定資源590沒有存儲在本地緩存174中,則應用程式代理172可以將查詢570提供到路由中介伺服器140。應用程式代理172可以從路由中介伺服器140並基於查詢570來接收目標源裝置(例如,緩存伺服器120、起始裝置130、和/或其他裝置150)的位置580。應用程式代理172可以使用位置580來與目標源裝置建立連接,並從目標源裝置檢索所請求的資源。處理塊1050-1070可以包括圖13中描述的處理塊。如圖13所示,處理塊1050-1070可以包括連接至所確定的目標源裝置(塊1300),並將請求的代理提供到所確定的目標源裝置(塊1310),基於請求的代理從目標源裝置接收資源(塊1320),並將資源的代理提供到客戶端裝置(塊1330)。例如,在以上結合圖6描述的實施方式中,應用程式代理172可以連接至所確定的目標源裝置,並可以向所確定的目標源裝置提供請求610的代理620。目標源裝置可以檢索代理請求620請求的資源630,並可以向應用程式代理172提供資源630。應用程式代理172可以從目標源裝置接收資源630,並可以向客戶端裝置110提供資源630的代理640。通過在諸如服務提供商網絡的核心網的邊緣網絡裝置中添加應用級智能,本文所述的系統和/或方法可以將資源路由集成到核心網的基礎架構中。應用級智能可以包括應用程式代理,其終止與請求資源的客戶端裝置的全部和子集相關的給定應用程式的連接。對於每個資源請求,應用程式代理可以確定存儲資源的目標伺服器,可以連接至所確定的伺服器,並可以在客戶端裝置和所確定的伺服器之間代理資源請求和返回的資源。文中所使用的術語組件旨在廣義地解釋為包括硬體(例如,處理器、微處理器、ASIC、FPGA、晶片、存儲器裝置(例如,ROM、RAM等)等)或者硬體和軟體的組合(例如,執行存儲器裝置中包含的軟體的處理器、微處理器、ASIC等)。文中所使用的術語包旨在廣義地解釋為包括幀、數據報、包或信元;幀的片段、數據報的片段、 包的片段或信元的片段;或者數據的其他類型、排列或封裝。文中所使用的術語邊緣裝置旨在廣義地解釋為包括提供到諸如網絡160的網絡的入口點或網絡的出口點的任何裝置。在一個實例實施方式中,網絡裝置170可以對應於邊緣裝置。以上的實施方式的描述提供了說明和描述,但是不旨在詳盡的或者將實施方式限定為公開的精確形式。鑑於上述教導,可以進行修改和更改,並可以從實施方式的實踐獲得。例如,雖然已經關於圖10-13描述了一系列塊,但是在其他實施方式中,可以修改塊的次序。此外,可以並行執行非依賴性塊。顯而易見的是,可以以附圖中示出的實施方式中的軟體、固件和硬體的多種不同形式來實施上述的實例方面。用於實施這些方面的實際軟體代碼或專用控制硬體不應當解釋為限制的。因此,沒有參照特定程序代碼描述這些方面的操作和行為,應當理解,軟體和控制硬體可以設計為基於文中的描述來實施這些方面。雖然權利要求中列出和/或說明書中公開了特徵的特定組合,但是這些組合不旨在限制所公開的實施方式。實際上,許多這些特徵可以以權利要求中沒有特別列出和/或說明書中沒有特別公開的方式組合。雖然以下列出的每個從屬權利要求僅可以直接引用一個其他權利要求,但是所公開的實施方式包括與權利要求集中的每個其他權利要求組合的每個從屬權利要求。除非這樣明確地描述,否則本申請中的元件、操作或指令都不應理解為對所公開的實施方式是關鍵和重要的。此外,如本文所使用的,冠詞「一個(a)」旨在包括一項或多項。在僅指一項時,使用術語「一個(one)」或類似語言。此外,除非另有明確說明,短語「基於」旨在表示「至少部分地基於」。
權利要求
1.一種方法,所述方法包括 通過計算裝置從客戶端裝置接收資源的請求; 通過所述計算裝置訪問包括一項或多項信息的表; 通過所述計算裝置將所述請求中提供的信息與所述表中提供的所述一項或多項信息進行比較; 在所述請求中提供的信息與所述表中提供的所述一項或多項信息的至少一項匹配時,通過所述計算裝置在所述計算裝置終止所述請求的連接; 當在所述計算裝置沒有終止所述連接時,通過所述計算裝置將所述請求轉發到網絡; 以及 當在所述計算裝置終止所述連接時,通過所述計算裝置為所述資源選擇目標裝置。
2.根據權利要求I所述的方法,其中 所述請求中提供的信息包括目的地網際網路協議(IP)地址、客戶端裝置的IP位址或目的地埠中的至少一個, 所述表中提供的所述一項或多項信息包括應用程式、客戶端裝置IP位址或源裝置IP位址的列表中的一個或多個,以及 其中,將所述請求中提供的信息與所述表中提供的所述一項或多項信息進行比較包括 將所述目的地IP位址、所述客戶端裝置的IP位址、或所述目的地埠中的至少一個與所述表中提供的應用程式、客戶端裝置IP位址或源裝置IP位址的列表中的一個或多個進行比較。
3.根據權利要求I所述的方法,其中,將所述請求中提供的信息與所述表中提供的所述一項或多項信息進行比較還包括 從所述請求提取目的地網際網路協議(IP)地址; 從所述請求提取客戶端裝置的IP位址; 提取所述請求的目的地埠 ;以及 將所述目的地IP位址、所述客戶端裝置的IP位址和所述目的地埠與所述表中提供的一項或多項信息進行比較。
4.根據權利要求I所述的方法,還包括 從所述客戶端裝置接收與特定應用程式相關的多個請求;以及 在所述計算裝置終止所述多個請求的全部或子集的連接。
5.根據權利要求I所述的方法,其中,為所述資源選擇所述目標裝置包括 搜索設置在所述計算裝置中或本地連接至所述計算裝置的本地緩存中存儲的資源的列表;以及 當所述列表的搜索指示所述資源存儲在所述本地緩存中時,選擇所述本地緩存作為所述目標裝置。
6.根據權利要求5所述的方法,其中,當所述列表的搜索指示所述資源不存儲在所述本地緩存中時,為所述資源選擇所述目標裝置還包括 基於所述網絡的帶寬、與所述網絡相關的成本、所述網絡上提供的負載或所述目的地 裝置相對於所述客戶端裝置的物理位置中的一個或多個來選擇所述目標裝置;以及與所述目標裝置連接。
7.一種由計算裝置執行的方法,所述方法包括 通過所述計算裝置從網絡裝置接收本地緩存信息,其中,所述本地緩存信息標識所述網絡裝置的本地緩存中存儲的資源; 通過所述計算裝置從多個伺服器裝置接收資源信息,其中,所述資源信息標識所述多個伺服器裝置中的每個中存儲的資源; 通過所述計算裝置從與所述網絡裝置相關的網絡接收網絡信息,其中,所述網絡信息標識與所述網絡相關的拓撲結構、負載和成本; 通過所述計算裝置存儲所述本地緩存信息、所述資源信息和所述網絡信息; 通過所述計算裝置從所述網絡裝置接收所請求的資源的查詢; 通過所述計算裝置基於所述本地緩存信息、所述資源信息或所述網絡信息中的一個或多個來為所請求的資源選擇目標裝置,其中,所述目標裝置包括所述多個伺服器裝置中的一個或包括所請求的資源的所述本地緩存;以及 通過所述計算裝置向所述網絡裝置提供所選擇的目標裝置的標識。
8.根據權利要求7所述的方法,其中,基於以下一個或多個來選擇所述目標裝置 所述網絡的帶寬, 與所述網絡相關的成本, 所述網絡上提供的負載,或 所述目標裝置相對於請求所述資源的客戶端裝置的物理位置。
9.根據權利要求7所述的方法,其中,所述查詢包括與所請求的資源相關的域名和統一資源定位符(URL),並且所述方法還包括 基於所述域名和所述URL來為所請求的資源選擇所述目標裝置。
10.一種邊緣裝置,包括 用於存儲包括一項或多項信息的表的裝置; 用於從客戶端裝置接收資源的請求的裝置; 用於將所述請求中提供的信息與所述表中提供的所述一項或多項信息進行比較的裝置; 用於在所述請求中提供的信息與所述表中提供的所述一項或多項信息匹配時在所述邊緣裝置終止所述請求的連接的裝置; 用於在所述邊緣裝置沒有終止所述連接時將所述請求轉發到網絡的裝置; 用於在所述邊緣裝置終止所述連接時為所述資源選擇目標裝置的裝置,以及 用於從所選擇的目標裝置檢索所述資源的裝置。
11.根據權利要求10所述的邊緣裝置,其中 所述請求中提供的信息包括目的地網際網路協議(IP)地址、客戶端裝置的IP位址或目的地埠中的至少一個,以及 所述表中提供的一項或多項信息包括應用程式、客戶端裝置IP位址或源IP位址的列表中的一個或多個。
12.根據權利要求11所述的邊緣裝置,其中,所述用於將所述請求中提供的信息與所述表中提供的所述一項或多項信息進行比較的裝置包括用於將所述目的地IP位址、所述客戶端裝置的IP位址或所述目的地埠中的至少一個與所述表中提供的應用程式、所述客戶端裝置IP位址或所述源裝置IP位址的列表中的一個或多個進行比較。
13.根據權利要求10所述的邊緣裝置,還包括 用於從所述客戶端裝置接收與特定應用相關的多個請求的裝置;以及 用於在所述邊緣裝置終止所述多個請求的全部或子集的連接的裝置。
14.根據權利要求10所述的邊緣裝置,其中,所選擇的目標裝置包括與一個或多個聯合服務提供商網絡相關的裝置,所述聯合服務提供商網絡在所述網絡或所述網絡的組件故障的情況下向所述網絡提供資源, 其中,所述請求包括與所請求的資源相關的域名和統一資源定位符(URL),以及 其中,所述邊緣裝置還包括 用於基於所述域名和所述URL為所請求的資源選擇所述目標裝置的裝置。
15.根據權利要求10所述的邊緣裝置,其中,所述邊緣裝置包括資源的本地緩存,並且所述邊緣裝置還包括 用於搜索所述本地緩存中存儲的資源的列表的裝置,以及 用於當所述列表的搜索指示所述資源存儲在所述本地緩存中時選擇所述本地緩存作為所述目標裝置的裝置。
16.根據權利要求15所述的邊緣裝置,其中,當所述列表的搜索指示所述資源不存儲在所述本地緩存中時,所述邊緣裝置還包括 用於將所述請求提供到伺服器裝置的裝置, 用於從所述伺服器裝置並基於所述請求接收所述目標裝置的位置的裝置,以及 用於基於所述位置與所述目標裝置連接的裝置。
17.根據權利要求10所述的邊緣裝置,其中,基於以下一個或多個來選擇所述目標裝置 所述網絡的帶寬, 與所述網絡相關的成本, 所述網絡上提供的負載,或 所述目標裝置相對於所述客戶端裝置的物理位置。
18.一種計算裝置,包括 用於存儲以下一個或多個的裝置 本地緩存信息,標識網絡裝置的本地緩存中存儲的資源, 資源信息,標識多個伺服器裝置的每個中存儲的資源,以及 網絡信息,標識與所述網絡裝置相關的網絡的拓撲結構、負載和成本; 用於從所述網絡裝置接收所請求的資源的查詢的裝置; 用於基於所述本地緩存信息、所述資源信息或所述網絡信息中的一個或多個來選擇包括所請求的資源的目標裝置的裝置,其中,所述目標裝置包括所述多個伺服器裝置中的一個或所述本地緩存;以及 用於向所述網絡裝置提供所選擇的目標裝置的標識的裝置。
19.根據權利要求18所述的計算裝置,其中,基於以下一個或多個來選擇所述目標裝置 所述網絡的帶寬, 與所述網絡相關的成本, 所述網絡上提供的負載,或 所述目標裝置相對於請求所述資源的客戶端裝置的物理位置。
20.根據權利要求18所述的計算裝置,其中,所選擇的目標裝置包括與一個或多個聯合服務提供商網絡相關的裝置,所述聯合服務提供商網絡在所述網絡或所述網絡的部件故障的情況下向所述網絡提供資源, 其中,所述查詢包括與所請求的資源相關的域名和統一資源定位符(URL),以及 其中,所述計算裝置還包括 用於基於所述域名和所述URL為所請求的資源選擇所述目標裝置的裝置。
全文摘要
本發明涉及為資源請求終止連接和選擇目標源裝置,該裝置從客戶端裝置接收資源的請求並訪問包括一項或多項信息的表。該裝置將請求中提供的信息與表中提供的一項或多項信息進行比較,並在請求中提供的信息與表中提供的一項或多項信息的至少一項匹配時在該裝置終止請求的連接。當在該裝置沒有終止連接時,該裝置將請求轉發到網絡,並且當在該裝置終止連接時,為資源選擇目標裝置。
文檔編號H04L29/12GK102833361SQ20111045178
公開日2012年12月19日 申請日期2011年12月29日 優先權日2011年6月15日
發明者雅斯帕·科利 申請人:叢林網絡公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀