用于診斷或測試的透明消息修改的制作方法
【專利說明】用于診斷或測試的透明消息修改
[0001]背景
[0002]許多軟件應用依賴于通過網(wǎng)絡與其他計算系統(tǒng)的協(xié)作交互。因特網(wǎng)協(xié)議(IP)是這樣一種協(xié)議,它提供用于對網(wǎng)絡中不同節(jié)點進行尋址的機制,還提供用于將較大消息分段為可由兩個通信網(wǎng)絡節(jié)點之間的各種中間網(wǎng)絡處理的較小片段的機制。符合因特網(wǎng)協(xié)議的網(wǎng)絡消息通常被稱為“IP分組”,IP分組使用協(xié)議棧中的IP層處的邏輯被處理。
[0003]隨著IP分組從源應用被傳送至目標應用,IP分組將通常傳送通過各個路由器,每個路由器都在協(xié)議棧的IP層有其自身的路由邏輯,該路由邏輯允許路由器作出與如何將該IP分組最佳地路由至預期目的地有關的決定。
[0004]IP協(xié)議還允許分組頭部的一部分包括較大數(shù)量的任選處理的選集,以應用于該IP分組。這些選項之一是源路由選項,該源路由選項允許源指定要采用的路線的一部分或全部。
[0005]概述
[0006]根據(jù)此處描述的至少一個實施例,描述了網(wǎng)絡消息的修改以使在指定中間節(jié)點處在途執(zhí)行補充動作。修改以對于生成網(wǎng)絡消息的實體的源計算實體(諸如應用、過程、端口、地址)透明的方式執(zhí)行。例如,盡管源計算實體發(fā)出使沿網(wǎng)絡棧進一步向下生成網(wǎng)絡消息的指令,但是源計算實體不具有該棧的該較下部分的視圖。
[0007]在獲得網(wǎng)絡消息之際,消息修改組件修改網(wǎng)絡消息以使該網(wǎng)絡消息被路由通過中間節(jié)點,且進一步使得該中間節(jié)點執(zhí)行補充動作。例如,修改可能使路由組件將網(wǎng)絡消息路由至中間節(jié)點,且修改也可能包括中間節(jié)點將其解釋為用于執(zhí)行補充動作的指令。補充動作的示例包括至少便于源計算實體的診斷的動作。進一步示例包括測試動作,諸如丟棄或延遲網(wǎng)絡消息、或者返回關于網(wǎng)絡消息的出錯消息。
[0008]中間節(jié)點可因此通過執(zhí)行補充動作來對網(wǎng)絡消息作出響應。此外,中間節(jié)點可以修改網(wǎng)絡消息以便在將該網(wǎng)絡消息進一步朝向目標進行路由之前將該網(wǎng)絡消息返回至其未經(jīng)修改的狀態(tài)。因此,從源計算實體和目標計算系統(tǒng)的觀點來看,從視圖中抽象出了曾經(jīng)有用于執(zhí)行補充動作的指令的事實。
[0009]該概述不旨在標識所要求保護的主題的關鍵特征或必要特征,也不旨在被用來幫助確定所要求保護的主題的范圍。
[0010]附圖簡述
[0011]為了描述可獲得以上記載的及其他好處和特征的方式,將參照附圖呈現(xiàn)各個實施例的更具體描述。理解這些附圖僅描述樣本實施例,因此不應被視為限制本發(fā)明的范圍,實施例將通過使用附圖以附加的具體性和細節(jié)來描述和解釋,附圖中:
[0012]圖1抽象地圖示了其中可采用此處所述的一些實施例的計算系統(tǒng);
[0013]圖2示出了包括源計算系統(tǒng)的網(wǎng)絡環(huán)境,該源計算系統(tǒng)包括使得網(wǎng)絡消息被生成以傳送至目標計算系統(tǒng)的源計算實體;
[0014]圖3示出消息修改組件以對使網(wǎng)絡消息被生成的源計算實體透明的方式便于對網(wǎng)絡消息采取補充動作的方法的流程圖;
[0015]圖4示出中間節(jié)點將接收自源的網(wǎng)絡消息中介至目標的方法的流程圖;以及
[0016]圖5示出參照圖2至圖4描述的原理被應用于請求路徑和回復路徑兩者的更具體實施例。
[0017]詳細描述
[0018]根據(jù)此處描述的實施例,描述了網(wǎng)絡消息的修改。修改使網(wǎng)絡消息被路由至中間節(jié)點,并且被中間節(jié)點解釋為用于執(zhí)行補充動作的指令。修改以對于使網(wǎng)絡消息被生成的源計算實體透明的方式執(zhí)行。將參照圖1描述計算系統(tǒng)的一些介紹性討論。然后,將參照圖2至5描述消息修改的原理。
[0019]計算系統(tǒng)現(xiàn)在越來越多地采取多種多樣的形式。例如,計算系統(tǒng)可以是手持式設備、電器、膝上型計算機、臺式計算機、大型機、分布式計算系統(tǒng)或甚至常規(guī)上不被認為是計算系統(tǒng)的設備。在本說明書以及權利要求書中,術語“計算系統(tǒng)”被廣義地定義為包括任何設備或系統(tǒng)(或其組合),該設備或系統(tǒng)包含至少一個物理有形的處理器以及其上能具有可由處理器執(zhí)行的計算機可執(zhí)行指令的物理有形的存儲器。存儲器可以采取任何形式,并可以取決于計算系統(tǒng)的性質(zhì)和形式。計算系統(tǒng)可以分布在網(wǎng)絡環(huán)境中,并可包括多個組分計算系統(tǒng)。
[0020]如圖1所示,在其最基本的配置中,計算系統(tǒng)100包括至少一個處理單元102和計算機可讀介質(zhì)104。計算機可讀介質(zhì)104在概念上可被認為包括物理系統(tǒng)存儲器,其可以是易失性的、非易失性的,或這兩者的某種組合。計算機可讀介質(zhì)104還在概念上包括非易失性大容量存儲。如果計算系統(tǒng)是分布式的,則處理、存儲器和/或存儲能力也可以是分布式的。
[0021]如此處使用的,術語“可執(zhí)行模塊”或“可執(zhí)行組件”可以指可以在計算系統(tǒng)上執(zhí)行的軟件對象、例程或方法。此處所描述的不同組件、模塊、引擎,以及服務可以實現(xiàn)為在計算系統(tǒng)上執(zhí)行的對象或進程(例如,作為分開的線程)。在其中實施類型安全性并且其中各進程被分配了它們自己的不同存儲器對象的受管環(huán)境中執(zhí)行的情況下,這樣的可執(zhí)行模塊可以是受管代碼。在可執(zhí)行模塊用本機代碼(如C或C++)編寫的情況下,這樣的可執(zhí)行模塊還可以是非受管代碼。
[0022]在隨后的描述中,參考由一個或多個計算系統(tǒng)執(zhí)行的動作描述了各實施例。如果這樣的動作是以軟件實現(xiàn)的,則執(zhí)行動作的相關聯(lián)計算系統(tǒng)的一個或多個處理器響應于已經(jīng)執(zhí)行了計算機可執(zhí)行指令來引導計算系統(tǒng)的操作。例如,這樣的計算機可執(zhí)行指令可以在形成計算機程序產(chǎn)品的一個或多個計算機可讀介質(zhì)上實現(xiàn)。這樣的操作的示例涉及對數(shù)據(jù)的操縱。計算機可執(zhí)行指令(以及被操縱的數(shù)據(jù))可被存儲在計算系統(tǒng)100的存儲器104中。計算系統(tǒng)100還可包含允許計算系統(tǒng)100例如通過網(wǎng)絡110與其他處理器通信的通信信道108。
[0023]在此描述的各實施例可包括或利用專用或通用計算機,該專用或通用計算機包括諸如例如一個或多個處理器和系統(tǒng)存儲器等計算機硬件,如以下更詳細討論的。本文中描述的各實施例還包括用于承載或存儲計算機可執(zhí)行指令和/或數(shù)據(jù)結(jié)構的物理和其他計算機可讀介質(zhì)。這樣的計算機可讀介質(zhì)可以是可由通用或?qū)S糜嬎銠C系統(tǒng)訪問的任何可用介質(zhì)。存儲計算機可執(zhí)行指令的計算機可讀介質(zhì)是物理存儲介質(zhì)。承載計算機可執(zhí)行指令的計算機可讀介質(zhì)是傳輸介質(zhì)。由此,作為示例而非限制,本發(fā)明的各實施例可包括至少兩種顯著不同的計算機可讀介質(zhì):計算機存儲介質(zhì)和傳輸介質(zhì)。
[0024]計算機存儲介質(zhì)包括RAM、ROM、EEPROM、CD-ROM或其他光盤存儲、磁盤存儲或其他磁存儲設備、或可用于存儲計算機可執(zhí)行指令或數(shù)據(jù)結(jié)構形式的所需程序代碼裝置且可由通用或?qū)S糜嬎銠C訪問的任何其他有形存儲介質(zhì)。
[0025]“網(wǎng)絡”被定義為使得電子數(shù)據(jù)能夠在計算機系統(tǒng)和/或模塊和/或其它電子設備之間傳輸?shù)囊粋€或多個數(shù)據(jù)鏈路。當信息通過網(wǎng)絡或另一個通信連接(硬連線、無線、或者硬連線或無線的組合)傳輸或提供給計算機時,該計算機將該連接適當?shù)匾暈閭鬏斀橘|(zhì)。傳輸介質(zhì)可以包括可以用來攜帶所需要的以計算機可執(zhí)行的指令或數(shù)據(jù)結(jié)構的形式存在的程序代碼裝置并可以被通用或?qū)S糜嬎銠C訪問的網(wǎng)絡和/或數(shù)據(jù)鏈路。上述的組合應當也被包括在計算機可讀介質(zhì)的范圍內(nèi)。
[0026]此外,在到達各種計算機系統(tǒng)組件之后,計算機可執(zhí)行指令或數(shù)據(jù)結(jié)構形式的程序代碼資料可從傳輸介質(zhì)自動傳輸?shù)接嬎銠C存儲介質(zhì)(或反之亦然)。例如,通過網(wǎng)絡或數(shù)據(jù)鏈路接收到的計算機可執(zhí)行指令或數(shù)據(jù)結(jié)構可被緩存在網(wǎng)絡接口控制器(例如,“NIC”)內(nèi)的RAM中,然后最終被傳輸?shù)接嬎銠C系統(tǒng)RAM和/或計算機系統(tǒng)處的較不易失性的計算機存儲介質(zhì)。因而,應當理解,計算機存儲介質(zhì)可被包括在還利用(或甚至主要利用)傳輸介質(zhì)的計算機系統(tǒng)組件中。
[0027]計算機可執(zhí)行指令例如包括,當在處理器處執(zhí)行時使通用計算機、專用計算機、或?qū)S锰幚碓O備執(zhí)行某一功能或某組功能的指令和數(shù)據(jù)。計算機可執(zhí)行指令可以是例如二