用于诊断或测试的透明消息修改的制作方法

文档序号:9292040阅读:406来源:国知局
用于诊断或测试的透明消息修改的制作方法
【专利说明】用于诊断或测试的透明消息修改
[0001]背景
[0002]许多软件应用依赖于通过网络与其他计算系统的协作交互。因特网协议(IP)是这样一种协议,它提供用于对网络中不同节点进行寻址的机制,还提供用于将较大消息分段为可由两个通信网络节点之间的各种中间网络处理的较小片段的机制。符合因特网协议的网络消息通常被称为“IP分组”,IP分组使用协议栈中的IP层处的逻辑被处理。
[0003]随着IP分组从源应用被传送至目标应用,IP分组将通常传送通过各个路由器,每个路由器都在协议栈的IP层有其自身的路由逻辑,该路由逻辑允许路由器作出与如何将该IP分组最佳地路由至预期目的地有关的决定。
[0004]IP协议还允许分组头部的一部分包括较大数量的任选处理的选集,以应用于该IP分组。这些选项之一是源路由选项,该源路由选项允许源指定要采用的路线的一部分或全部。
[0005]概述
[0006]根据此处描述的至少一个实施例,描述了网络消息的修改以使在指定中间节点处在途执行补充动作。修改以对于生成网络消息的实体的源计算实体(诸如应用、过程、端口、地址)透明的方式执行。例如,尽管源计算实体发出使沿网络栈进一步向下生成网络消息的指令,但是源计算实体不具有该栈的该较下部分的视图。
[0007]在获得网络消息之际,消息修改组件修改网络消息以使该网络消息被路由通过中间节点,且进一步使得该中间节点执行补充动作。例如,修改可能使路由组件将网络消息路由至中间节点,且修改也可能包括中间节点将其解释为用于执行补充动作的指令。补充动作的示例包括至少便于源计算实体的诊断的动作。进一步示例包括测试动作,诸如丢弃或延迟网络消息、或者返回关于网络消息的出错消息。
[0008]中间节点可因此通过执行补充动作来对网络消息作出响应。此外,中间节点可以修改网络消息以便在将该网络消息进一步朝向目标进行路由之前将该网络消息返回至其未经修改的状态。因此,从源计算实体和目标计算系统的观点来看,从视图中抽象出了曾经有用于执行补充动作的指令的事实。
[0009]该概述不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在被用来帮助确定所要求保护的主题的范围。
[0010]附图简述
[0011]为了描述可获得以上记载的及其他好处和特征的方式,将参照附图呈现各个实施例的更具体描述。理解这些附图仅描述样本实施例,因此不应被视为限制本发明的范围,实施例将通过使用附图以附加的具体性和细节来描述和解释,附图中:
[0012]图1抽象地图示了其中可采用此处所述的一些实施例的计算系统;
[0013]图2示出了包括源计算系统的网络环境,该源计算系统包括使得网络消息被生成以传送至目标计算系统的源计算实体;
[0014]图3示出消息修改组件以对使网络消息被生成的源计算实体透明的方式便于对网络消息采取补充动作的方法的流程图;
[0015]图4示出中间节点将接收自源的网络消息中介至目标的方法的流程图;以及
[0016]图5示出参照图2至图4描述的原理被应用于请求路径和回复路径两者的更具体实施例。
[0017]详细描述
[0018]根据此处描述的实施例,描述了网络消息的修改。修改使网络消息被路由至中间节点,并且被中间节点解释为用于执行补充动作的指令。修改以对于使网络消息被生成的源计算实体透明的方式执行。将参照图1描述计算系统的一些介绍性讨论。然后,将参照图2至5描述消息修改的原理。
[0019]计算系统现在越来越多地采取多种多样的形式。例如,计算系统可以是手持式设备、电器、膝上型计算机、台式计算机、大型机、分布式计算系统或甚至常规上不被认为是计算系统的设备。在本说明书以及权利要求书中,术语“计算系统”被广义地定义为包括任何设备或系统(或其组合),该设备或系统包含至少一个物理有形的处理器以及其上能具有可由处理器执行的计算机可执行指令的物理有形的存储器。存储器可以采取任何形式,并可以取决于计算系统的性质和形式。计算系统可以分布在网络环境中,并可包括多个组分计算系统。
[0020]如图1所示,在其最基本的配置中,计算系统100包括至少一个处理单元102和计算机可读介质104。计算机可读介质104在概念上可被认为包括物理系统存储器,其可以是易失性的、非易失性的,或这两者的某种组合。计算机可读介质104还在概念上包括非易失性大容量存储。如果计算系统是分布式的,则处理、存储器和/或存储能力也可以是分布式的。
[0021]如此处使用的,术语“可执行模块”或“可执行组件”可以指可以在计算系统上执行的软件对象、例程或方法。此处所描述的不同组件、模块、引擎,以及服务可以实现为在计算系统上执行的对象或进程(例如,作为分开的线程)。在其中实施类型安全性并且其中各进程被分配了它们自己的不同存储器对象的受管环境中执行的情况下,这样的可执行模块可以是受管代码。在可执行模块用本机代码(如C或C++)编写的情况下,这样的可执行模块还可以是非受管代码。
[0022]在随后的描述中,参考由一个或多个计算系统执行的动作描述了各实施例。如果这样的动作是以软件实现的,则执行动作的相关联计算系统的一个或多个处理器响应于已经执行了计算机可执行指令来引导计算系统的操作。例如,这样的计算机可执行指令可以在形成计算机程序产品的一个或多个计算机可读介质上实现。这样的操作的示例涉及对数据的操纵。计算机可执行指令(以及被操纵的数据)可被存储在计算系统100的存储器104中。计算系统100还可包含允许计算系统100例如通过网络110与其他处理器通信的通信信道108。
[0023]在此描述的各实施例可包括或利用专用或通用计算机,该专用或通用计算机包括诸如例如一个或多个处理器和系统存储器等计算机硬件,如以下更详细讨论的。本文中描述的各实施例还包括用于承载或存储计算机可执行指令和/或数据结构的物理和其他计算机可读介质。这样的计算机可读介质可以是可由通用或专用计算机系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是物理存储介质。承载计算机可执行指令的计算机可读介质是传输介质。由此,作为示例而非限制,本发明的各实施例可包括至少两种显著不同的计算机可读介质:计算机存储介质和传输介质。
[0024]计算机存储介质包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备、或可用于存储计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的任何其他有形存储介质。
[0025]“网络”被定义为使得电子数据能够在计算机系统和/或模块和/或其它电子设备之间传输的一个或多个数据链路。当信息通过网络或另一个通信连接(硬连线、无线、或者硬连线或无线的组合)传输或提供给计算机时,该计算机将该连接适当地视为传输介质。传输介质可以包括可以用来携带所需要的以计算机可执行的指令或数据结构的形式存在的程序代码装置并可以被通用或专用计算机访问的网络和/或数据链路。上述的组合应当也被包括在计算机可读介质的范围内。
[0026]此外,在到达各种计算机系统组件之后,计算机可执行指令或数据结构形式的程序代码资料可从传输介质自动传输到计算机存储介质(或反之亦然)。例如,通过网络或数据链路接收到的计算机可执行指令或数据结构可被缓存在网络接口控制器(例如,“NIC”)内的RAM中,然后最终被传输到计算机系统RAM和/或计算机系统处的较不易失性的计算机存储介质。因而,应当理解,计算机存储介质可被包括在还利用(或甚至主要利用)传输介质的计算机系统组件中。
[0027]计算机可执行指令例如包括,当在处理器处执行时使通用计算机、专用计算机、或专用处理设备执行某一功能或某组功能的指令和数据。计算机可执行指令可以是例如二
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1