映射专用和公用地址的制作方法

文档序号:7989557阅读:169来源:国知局
映射专用和公用地址的制作方法
【专利摘要】各种示例性实施方式涉及一种方法和相关网络节点,包括下列内容的一个或多个:在网络节点识别与第一地址相关联的分组;在网络节点确定替换地址映射对用于第一地址的网络节点是未知的;根据分组的至少一部分产生请求消息;将请求消息发送给不同的节点;接收响应消息,响应消息包括第二地址,其中第二地址是第一地址的可替换地址;并将第一地址和第二地址一同进行存储以作为替换地址映射。
【专利说明】映射专用和公用地址
【技术领域】
[0001]概括地,这里公开的各示例性实施方式涉及网络寻址。
【背景技术】
[0002]当前用于互联网以及众多其它网络的核心网络层协议是互联网协议(IP)第4版。在IPv4的实现下,网络中的每个节点与至少一个32比特的IP地址相关联。同样,IPv4的地址空间受限于有限的地址数量。虽然在过去,该地址空间足够大,能够容纳与互联网连接的相对小数量的设备,但随着互联网广泛地被众多用户所采用,地址空间很快证明是不够用的变得很明显。此外,如果要给与这样大的网络连接的每个设备提供一个唯一的IP地址,会需要复杂的组织。
[0003]为了帮助满足这些挑战,引入了网络地址转换(NAT)技术。通过使用该方法,多个不同的设备可共享单一的IP地址。从它们自己的角度,这些设备会具有不同的专用IP地址,而共享单一的公用IP地址。通过在设备之间将与公用IP地址相关联的逻辑端口进行划分,这样的共享会是有效的。
[0004]为了实现ΝΑΤ,ΝΑΤ设备用于在公用IP端口对和专用IP端口对之间维护通信。当NAT设备从设备中的一个接收输出消息时,其将消息中的源地址和端口转换为相应的公用IP地址和端口。相似的,当NAT设备接收到输入消息时,其将消息中的目的地址和端口转换为相应的专用IP地址和端口。NAT设备被配置在互联网的许多不同级别上,无论其是在有效利用分配给该ISP的IP地址池的较低级别互联网服务提供商(ISP)处,或在使用单一的公用IP地址为多个家庭设备提供互联网接入的家庭路由器中。

【发明内容】

[0005]各示例性实施方式涉及由网络节点执行的用于确定替换地址映射的方法,方法包括下列内容的一个或多个:在网络节点识别与第一地址相关联的分组;在网络节点确定替换地址映射对用于第一地址的网络节点是未知的;根据分组的至少一部分产生请求消息;将请求消息发送给不同的节点;接收响应消息,响应消息包括第二地址,其中第二地址是第一地址的可替换地址;并将第一地址和第二地址一同进行存储以作为替换地址映射。
[0006]各示例性实施方式涉及适于确定替换地址映射的网络节点,网络节点包括下列内容的一个或多个:地址映射存储器,用于存储两个地址之间的至少一个映射;接口,用于与不同节点进行通信;替换地址识别器,用于:识别与第一地址相关联的分组,确定地址映射存储器没有存储第一地址的映射;请求消息产生器,用于:根据分组的至少一部分产生请求消息,通过接口将请求消息发送给不同的节点;和响应消息解释器,用于:通过接口从不同节点接收响应消息,响应消息包括第二地址,其中第二地址是第一地址的可替换地址,和用于将第一地址和第二地址一同存储在地址映射存储器中的指令。
[0007]各示例性实施方式涉及由用于确定替换地址映射的网络节点执行的指令进行编码的机器可读存储介质,机器可读存储介质包括下列内容中的一个或多个:用于在网络节点识别与第一地址相关联分组的指令;用于在网络节点确定替换地址映射对用于第一地址的网络节点是未知的指令;用于根据分组的至少一部分产生请求消息的指令;用于将请求消息发送给不同节点的指令;用于接收响应消息的指令,响应消息第二地址,其中第二地址是第一地址的可替换地址,和用于将第一地址和第二地址一同存储在地址映射存储器中的指令。
[0008]描述了各种可替换的实施方式,其中请求消息包括至少一个分组、至少一个附加分组、分组的至少一个字段、和分组至少一部分的哈希。描述了各种可替换的实施方式,其中:网络节点和不同节点中的至少一个为用于分组的源和目的地中的至少一个。描述了各种可替换的实施方式,其中:第一地址与第一网络地址转换(NAT)设备的第一侧上的分组相关联;第二地址与第二 NAT设备的第二侧上的分组相关联。描述了各种可替换的实施方式,其中第一NAT设备和第二NAT设备是相同的设备。描述了各种可替换的实施方式,其中:第一地址包括第一 IP地址和第一端口 ;第二地址包括第二 IP地址和第二端口。
[0009]各示例性实施方式涉及由网络节点执行的用于确定替换地址映射的方法,该方法包括。在网络节点从不同的节点接收请求消息,请求消息包括分组指示;根据分组指示识别与分组相关联的第一地址;构建响应消息,响应消息包括第一地址;和将响应消息发送给不同的节点。
[0010]各示例性实施方式涉及用于确定替换地址映射的网络节点,网络节点包括下列内容的一个或多个:分组高速缓存,用于存储多个分组;接口,用于与不同的节点进行通信;请求消息解释器,用于:通过接口从不同的节点接收请求消息,请求消息包括分组指示,根据分组指示识别与分组相关联的第一地址;和响应消息产生器,用于:构建响应消息,响应消息包括第一地址,将响应消息发送给不同的节点。
[0011]各示例性实施方式涉及由确定替换地址映射的网络节点执行的指令编码的机器可读存储介质,机器可读存储介质包括下列内容的一个或多个:用于在网络节点从不同的节点接收请求消息的指令,请求消息包括分组指示;用于根据分组指示识别与分组相关联的第一地址的指令;用于构建响应消息的指令,响应消息包括第一地址;和用于将响应消息发送给不同的节点的指令。
[0012]描述了各种可替换的实施方式,其中分组指示是下列内容中的至少一个:分组、分组的一部分、来自分组的至少一个报头字段、和分组至少一部分的哈希。描述了各种可替换的实施方式,其中识别第一地址的步骤包括下列内容的一个或多个:在分组指示的至少一部分上执行哈希函数以产生哈希密钥;使用哈希密钥对之前存储的分组进行定位。描述了各种可替换的实施方式,其中:请求消息包括第二地址,响应消息包括第二地址。描述了各种可替换的实施方式,其中网络节点和不同节点中的至少一个为用于分组的源和目的地中的至少一个。
[0013]各可替换的实施方式包括下列内容中的一个或多个:
[0014]在接收到请求消息前接收分组;将分组的至少一部分存储到分组高速缓存中,其中识别与分组相关联的第一地址的步骤包括下列内容中的一个或多个:从分组的至少一部分中提取第一地址。描述了各种可替换的实施方式,其中:分组指示包括来自没有被网络地址转换设备修改的分组的字段。【专利附图】

【附图说明】
[0015]通过参照附图,以便于更好地理解各示例性实施方式,其中:
[0016]图1描述了在两个节点之间提供通信的示例性网络;
[0017]图2描述了用于请求地址映射信息的示例性网络节点;
[0018]图3描述了用于存储地址映射信息的示例性数据排列;
[0019]图4描述了用于请求地址映射信息的示例性方法;
[0020]图5描述了用于提供地址映射信息的示例性网络节点;
[0021]图6描述了用于高速缓存地址信息的示例性数据排列;
[0022]图7描述了用于高速缓存地址信息的示例性方法;和
[0023]图8描述了用于提供地址映射信息的示例性方法。
【具体实施方式】
[0024]各种网络应用可要求或者指定两个设备相对于设备或分组流进行通信。例如,监测节点会希望指示业务控制节点特定的流正在使用太多可利用的带宽,应当进行约束。然而,如果这两个节点从网络地址转换(NAT)的不同侧观察分组流,它们很可能看到与流相关联的不同地址,从而当相互进行通信时会难以对流进行识别。在上述实施例中,如果监测节点仅知道端点的公用地址,业务控制节点仅知道端点的专用地址,则监测节点会难以按照业务控制节点理解的方式传达哪个流应当被约束。因此,需要一种在专用和公用地址之间确定映射的方法。
[0025]应当说明的是,尽管这里描述的各实施例应用于NAT,但是所描述的方法还可应用于任何系统,其中任何系统中在多个节点中的描述一致性是可得到的。从而,应当将术语“专用地址”和“公用地址”理解为概括地涉及描述性信息的两个独立部分。应当进一步明确的是,在涉及NAT的实施方式中,所描述的实施方式涉及节点从位于NAT设备另一侧的节点请求专用地址,所描述的方法还可应用于相反过程。具体地,在各实施方式中,节点可换为从另一节点请求公用地址。此外,在各实施方式中,节点可能够产生用于地址类型中的一个的请求,并实现用于其它地址类型的请求。对本领域技术人员来说,实现这种实施方式的各种修改是显而易见的。
[0026]现在参照附图,其公开了各种示例性实施方式的主要方面,其中相同的附图标记代表相同的元件或步骤。
[0027]图1描述了在两个节点之间提供通信的示例性网络100。网络100可以是诸如互联网的分组交换网络的一部分。应当明白的是,在一些方面网络100是一种简化,可包括众多附加节点和/或所示设备之间的中间节点。网络节点100可包括源100、网络地址转换(NAT)设备120、目的地130、节点A140和节点B150。
[0028]源110可以是适于通过分组交换网络与其它设备进行通信的任何设备。例如,源110可以是个人计算机、膝上型计算机、移动设备、输入板、服务器、路由器、或能够进行网络通信的任何其它设备。同样,源110可有至少一个网络接口,为其分配诸如IP地址的网络地址。源110可以是众多流的端点。为了简明起见,假设当前在源110和目的地130之间具有流。例如,源110服务于将文件发送给目的地130。
[0029]NAT设备120可以是适用于为源110 (或者,在各种可替换的实施方式中为目的地130)提供网络地址转换的设备。同样,源110看起来在NAT设备120的一侧的IP地址与在NAT设备120的另一侧的IP地址不同。例如,在这样的分组到达NAT设备前,属于源110和目的地130之间的流的分组可包括源地址“192.168.1.2”和源端口 “ 1234”。在NAT设备120修改传输到目的地130的分组后,分组可包括源地址“135.112.2.13”和源端口 “5478”。因此,源110与“192.168.1.2/1234”的专用2元组和“135.112.2.13/5478”的公用2元组相关联。对于从目的地130发送给源110的分组,NAT设备120可执行相似和相反的处理。
[0030]NAT设备会留下分组的许多字段不做修改。例如,当接收到属于从源110和130之间的流的分组时,NAT设备会转发分组而不修改目的地址、目的端口和分段标识符。NAT设备120可进一步约束修改分组的负载。
[0031]目的地130可以是适于通过分组交换网络与其它设备进行通信的任何设备。例如,目的地130可以是个人计算机、膝上型计算机、输入板、移动设备、服务器、路由器、或能够进行网络通信的任何其它设备。同样,目的地130可有至少一个网络接口,为其分配诸如IP地址的网络地址。
[0032]节点A140可以是提供一些网络服务的设备。如图所示,节点A140是接收在源110和NAT设备120之间传送的分组的离线设备。例如,节点A140可监测反常或恶意行为的业务,对在网络100或其部分上传送数据的用户计费,和/或增强服务约束和保证的各种质量。对本领域技术人员来说,节点A140的众多附加或可替换的功能是显而易见的。
[0033]节点B150也可以是提供一些网络服务的设备。如图所示,节点B150是接收在NAT设备120和目的地130之间传送的分组的离线设备。例如,节点B150可监测反常或恶意行为的业务,对在网络100或其部分上传送数据的用户计费,和/或增强服务约束和保证的各种质量。对本领域技术人员来说,节点B150的众多附加或可替换的功能是显而易见的。此夕卜,节点A140和节点B150可协作以执行汇聚功能。在上述实施例后,节点B150可监测流以识别应当被约束的流,而节点A140可执行对由节点B150识别的流进行约束。
[0034]在各上下文中,节点A140和节点B150会希望对特定的流进行通信。例如,节点B150会希望指示节点A140约束在源110和目的地130之间的流。然而,如果节点B150确定流部分源自2元组“135.112.2.13/5478”,由于该2元组对节点A140是未知的,因此节点A140不能识别该流。相反,节点A140见到的是不同的2元组“192.168.1.2/1234”。
[0035]根据各种实施方式,节点A140和节点B150可适于相互进行通信以解析流的通用标识符。因此,节点A140和节点B150可通过NAT设备120或通过一些其它通信路径进行通信。
[0036]这里描述的设备和方法可适于网络100的各种修改,这对于本领域技术人员来说是显而易见的。例如,节点A140和/或节点B150可分别作为NAT设备120与源110和/或目的地130之间的中间设备。例如,节点A140可以是在源110和NAT设备120之间转发分组的路由器。作为另一实施例,节点A140和/或节点B150可以不出现,这里描述的功能而是分别由源110和/或目的地130执行。
[0037]已经描述了示例性网络100的元件,下面将提供网络100操作的简要概述。应当明确的是,下面的描述旨在提供网络100操作的概述,因此在一些方面进行了简化。下面将结合图2-图8详细描述网络100的详细操作。
[0038]如前所述,源110当前可通过NAT设备120将多个分组发送给目的地130。同样,通过NAT设备120,可将这些分组的每一个中的专用源2元组“192.168.1.2/1234”转换为公用源2元组“135.112.2.13/5478”。节点A140会接收到这些分组中的至少一些,高速缓存分组中的地址信息或分组自身,以便用于稍后的地址映射。
[0039]在这些分组被NAT设备120修改后,节点B150还接收这些分组。节点B150可从分组中的一个中提取公用2元组,并确定其没有相关联的专用2元组。同样,节点B150创建消息以从节点A140请求专用2元组。在执行过程中,节点B150会识别使用没有被NAT设备120修改的信息的流。在各实施方式中,节点B150会将未修改的分组、多个分组字段、和/或部分分组的哈希(用于识别流)转发节点A。
[0040]当从节点B150接收到请求时,节点140着手识别相关的流。通过使用由节点B150转发的识别信息,节点A140可定位一个或多个之前高速缓存的分组或地址信息。例如,如果节点B150转发未修改的分组,节点A140会提取没有被NAT设备120修改的一个或多个字段,以便识别之前高速缓存的分组。在各实施方式中,节点A140可附加地根据没有被NAT设备120修改的一个或多个字段执行哈希函数,以便产生分组的标识符。在节点A140使用这样的哈希以识别匹配的高速缓存分组的各实施方式中,为一个或多个之前高速缓存的分组,节点A140可在当前计算或者已经计算了相似的哈希值。在这样的实施方式中,当用于高速缓存分组的哈希与由请求消息携带或使用请求消息产生的哈希匹配时,将高速缓存的分组识别为匹配来自节点B150的请求。
[0041]接下来,节点A140可构建包括公用2元组(如果包括在请求消息中)和专用2元组(从高速缓存中读取)的响应消息。当节点B150接收到响应消息,节点B150可更新其在公用和专用2元组之间的映射。
[0042]图2描述了用于请求地址映射信息的示例性网络节点200。节点200可对应于示例性网络100的源110、目的地130、节点A140和/或节点B150。节点200可包括接口 210、替换地址识别器220、地址映射存储器230、映射请求消息产生器240、接口 250和映射响应消息解释器260。
[0043]接口 210可以是配置为与其它网络节点进行通信的接口,其中包括硬件和/或在机器可读存储介质中编码的可执行指令。例如,如果节点200对应于节点B150,节点200可通过接口 210与NAT设备120和/或目的地130进行通信。在各实施方式中,接口 210可以是诸如例如以太网接口的网络接口。
[0044]替换地址识别器220可包括硬件和/或在机器可读存储介质中的可执行指令,配置为通过接口 210接收分组,并确定哪个替换地址是流的端点所知道的。例如,如果节点200对应于节点B150,替换地址识别器可确定是否节点200已经知道源110的专用地址。通过访问地址映射存储器230并确定是否与流或与源110的公用地址相关联的记录指示专用地址,替换地址识别器220可作此决定。
[0045]可利用各种方法对在地址映射存储器中的用于特定分组或流的合适记录进行定位。例如,地址映射存储器230中的每个记录可由流标识符进行识别。例如,通过执行识别流的5元组上的哈希函数,可计算这样的流标识符。本领域技术人员可以理解的是,5元组可包括目的IP地址、目的端口、源IP地址、源端口、和在分组报头中识别的协议。因此,根据网络拓扑,该5元组可包括专用地址和端口或公用地址和端口。例如,在节点B150的情况下,该5元组可基于源110的公用源地址和源端口。因此,为了访问合适的记录,替换地址识别器220可计算该哈希,并对携带匹配的流标识符的记录进行定位。
[0046]如果替换地址识别器220确定节点200已知道特定流的可替换地址,替换地址识别器220可不采用进一步的动作。可替换的,替换地址识别器220可识别进一步可执行节点专用动作的另一元件(没有在图中示出)。另一方面,如果替换地址识别器220确定节点200不知道可替换地址,替换地址识别器220可指示映射请求消息产生器240可确定这样可替换的地址。
[0047]地址映射存储器230可以是能够存储网络地址间映射的任何机器可读介质。因此,地址映射存储器230可包括机器可读存储介质,例如只读存储器(ROM)、随机访问存储器(RAM)、磁盘存储介质、光存储介质、闪存设备、和/或相似的存储设备。下面将参照图3更详细地描述地址映射存储器230的示例性组织。
[0048]在说明改变地址的情况下,可删除在地址映射存储器230中存储的映射。例如,在通过可配置的生存时间周期后,可删除每个映射。作为另一实施例,在通过可配置超时周期后没有任何相关的流活动,可删除映射。作为又一个实施例,当从伙伴节点接收指示网络会话中变化的消息(例如用户注册或撤销登记)时,可删除映射。应当从地址映射存储器230删除映射的各种附加条件对本领域技术人员来说是显而易见的。
[0049]映射请求消息产生器240可包括硬件和/或在机器可读存储介质中的可执行指令,配置为产生可替换地址的请求。在各实施方式中,这样的请求可包括应用层消息,其中应用层消息将自身识别为请求消息、并包括可用于识别感兴趣流的一些信息。在各实施方式中,请求消息可包括全部分组。在其它实施方式中,节点200知道伙伴节点将用于识别流的字段,请求消息可仅包括这些字段或这些字段的哈希。明显的是,在仅分组和/或哈希值中的一部分用于识别节点间的分组的各实施方式中,这些节点会协商哪个部分和/或哈希函数应用于识别分组以确保适当的通信。一旦消息被构建,映射请求消息产生器240可将消息通过接口 250发送给伙伴节点。
[0050]接口 250可以是配置为与其它网络节点进行通信的接口,其中包括硬件和/或在机器可读存储介质中编码的可执行指令。例如,如果节点200对应于节点B150,节点200可通过接口 250与节点A140进行通信。在各实施方式中,接口 250可以是诸如例如以太网接口的网络接口。明显的是,在一些实施方式中一个接口可操作为执行接口 210和接口 250的功能。因此,接口 250可与接口 210相同。
[0051]映射响应消息解释器260可包括硬件和/或在机器可读存储介质中的可执行指令,配置为从映射响应消息中提取替换地址,并将映射存储到地址映射存储器230中。在映射请求消息产生器240发送请求消息后,伙伴节点可对映射响应消息进行响应。这样的响应可以是将自身识别为响应、并识别两个地址间映射的应用层分组。在各实施方式中,该映射可包括公用2元组和相应的专用2元组。映射响应消息解释器可从响应消息提供映射信息,并将该数据存储到地址映射存储器中的合适记录中。对这样的合适记录进行定位的方式与上面描述的由替换地址识别器220利用的相同。可选择地,映射响应消息解释器可指示另一元件(没有在图中示出)根据流执行附加的和/或节点专用的功能。
[0052]图3描述了用于存储地址映射信息的示例性数据安排300。数据安排300可以是在数据库或诸如地址映射存储器230的高速缓存中的表。可替换的,数据安排300可以是一系列链接的列表、数组、或相似的数据结构。因此,明显的是,数据安排300是基本数据的抽象;可使用适于存储该数据的任何数据结构。数据安排可包括多个字段,例如流ID字段310、专用地址字段320和公用地址字段330。
[0053]流ID字段310可指示每个流的唯一标识符。这样的标识符例如可通过在描述流的5元组上执行哈希函数进行计算。如上所述,根据网络拓扑,该5元组可包括专用地址和端口或公用地址和端口。专用地址字段320可存储与流的端点相关联的专用地址。相反,公用地址字段330可存储与流的同一端点相关联的公用地址。数据安排可包括多个附加字段(没有在图中示出)。在各实施方式中,地址可用作唯一标识符,在这种情况下,流ID字段310可以不呈现。
[0054]作为一个实施例,映射记录340指示由标识符“ 0X5F65 ”标识的流与专用地址“192.168.1.4/22”和公用地址“135.112.2.13/47”相关联。作为另一实施例,映射记录350指示由标识符“0X6231 ”标识的流与专用地址“ 192.168.1.3/80”和公用地址“135.112.2.13/80”相关联。数据安排300可包括多个附加的映射记录。
[0055]在各实施方式中,数据安排可根据一个或多个字段进行排序。在所示的实施例中,数据安排300可根据流ID字段310上升的顺序进行排序。为了进一步提高性能,在各实施方式中,数据安排300可实现为哈希表或内容可寻址存储器。
[0056]图4描述了用于请求地址映射信息的示例性方法400。方法400可由节点200的元件执行,例如替换地址识别器220、映射请求消息产生器240、和/或映射响应消息解释器260。
[0057]方法400可在步骤405开始并进入到步骤410,其中节点200从其它设备接收分组。从而,在步骤420中,节点200使用分组中的一个或多个字段计算流标识符。在步骤430中,节点200使用该流标识符以确定是否节点200知道流端点中一个端点的可替换地址。明白的是,其它方法可用于进行该确定。例如,不用计算流标识符,节点200可简单地利用字段数据自身搜索其地址映射数据的记录。
[0058]如果已知道可替换地址,方法400可直接进入步骤485结束。然而,若还不知道可替换地址,方法400可进入到步骤440。在步骤440,节点200可构建请求消息。该请求消息可包括流的标识符,其中流例如为一个或多个分组、一个或多个分组字段、或至少一部分分组的哈希。在步骤460中,节点200将请求消息发送给伙伴节点,并且在步骤470中,节点200接收来自伙伴节点的响应消息。节点200从而从响应消息中提取替换地址信息,并存储该地址以同与由原始接收的分组携带的地址相关联。因此,两个地址之间的映射可用于节点专用功能。
[0059]图5描述了用于提供地址映射信息的示例性网络节点500。节点500可对应于示例性网络100的源110、目的地130、节点A140和/或节点B150。节点500可包括接口 510、分组高速缓存管理器520、分组高速缓存530、接口 540、映射请求消息解释器550、和映射响应消息产生器560。
[0060]接口 510可以是配置为与其它网络节点进行通信的接口,包括硬件和/或在机器可读存储介质中编码的可执行指令。例如,如果节点500对应于节点A140,节点500可通过节点510与源110和/或NAT设备120进行通信。在各实施方式中,接口 510可以是诸如例如以太网接口的网络接口。
[0061]分组高速缓存管理器520可包括硬件和/或在机器可读存储介质中的可执行指令,配置为管理存储在分组高速缓存530中的数据。分组高速缓存管理器520可通过接口510接收各分组,并确定是否高速缓存分组或它们包括的信息。在各实施方式中,分组高速缓存管理器520可高速缓存其接收的每个分组,并可确定仅高速缓存特定的分组,例如每个流的第一分组。为了便于后者接入,分组高速缓存管理器520可存储每个高速缓存的分组以与分组或其它标识符相连接。例如,分组高速缓存管理器520可在目的地址、目的端口和片段标识符上执行哈希函数以产生分组标识符。分组高速缓存管理器从而可将该标识符连同分组或从分组提取的多个字段存储到分组高速缓存530中。
[0062]分组高速缓存管理器520还可在通过特定的时间或当高速缓存满时清除高速缓存条目。例如,分组高速缓存管理器520可在条目在分组缓存中已存储10秒时清除每个条目。可替换的,分组高速缓存管理器520可简单地周期性清洗最陈旧的条目。可应用多个高速缓存管理算法,这对本领域技术人员来说是明显的。
[0063]分组缓存530可以是能够存储分组和/或从分组收集的信息的任何机器可读介质。因此,分组高速缓存530可包括机器可读存储介质,例如只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质、光存储介质、闪存设备和/或相似的存储介质。下面参照图6详细描述分组高速缓存530的示例性组织。
[0064]接口 540可以是配置为与其它网络节点进行通信的接口,包括硬件和/或在机器可读存储介质中编码的可执行指令。例如,如果节点200对应于节点A140,节点200可通过节点540与节点B150进行通信。在各实施方式中,接口 540可以是诸如例如以太网接口的网络接口。明显的是,在许多实施方式中,一个接口可操作用于执行接口 510和接口 540的功能。因此,接口 540可与接口 510相同。
[0065]映射请求消息解释器550可包括硬件和/或在机器可读存储介质中的可执行指令,配置为通过接口 540接收并处理从伙伴节点接收的映射请求消息。这样的请求消息可以是应用层消息,包括可用于识别流的信息。映射请求消息解释器550可采用与分组高速缓存管理器520相同的方式从该信息计算分组标识符。在各实施方式中,映射请求消息解释器550可以不计算分组标识符,相反,使用请求消息中的信息来查询分组高速缓存530。与所使用的方法无关,映射请求消息解释器550使用接收的请求消息以对高速缓存在分组高速缓存530中的分组或分组信息进行定位。一旦映射请求消息解释器550定位该信息,映射请求消息解释器550指示映射响应消息产生器560应当发送响应。
[0066]映射响应消息产生器560可包括硬件和/或在机器可读存储介质中的可执行指令,配置为构建和发送映射响应消息。例如,该消息可以是识别自身为这样的响应消息的应用层分组。映射响应消息产生器560可将由映射请求消息解释器550得到的地址信息插入到响应消息中。在各实施方式中,映射响应消息产生器560还可包括由伙伴节点使用的信息以识别响应消息应用于哪个流。例如,如果原始请求消息包括源地址,映射响应消息产生器560可将该信息包括在响应中。一旦产生响应消息,映射响应消息产生器560可通过接口 540将响应消息发送给伙伴节点。
[0067]图6描述了用于高速缓存地址信息的示例性数据安排600。数据安排600可以是数据库或诸如分组高速缓存530的高速缓存中的表。可替换的,数据安排600可以是一系列链接的列表、数组、或相似的数据结构。因此,明显的是,数据安排600是基本数据的抽象;可使用适于存储该数据的任何数据结构。数据安排可包括多个字段,例如分组ID字段610、专用地址字段620。
[0068]分组ID字段610可指示每个分组的唯一标识符。这样的标识符例如可通过在没有被NAT设备修改的部分分组上执行哈希函数以进行计算。例如,标识符可根据目的地址、目的端口和片段标识符进行计算。专用地址字段620可存储与流的端点相关联的专用地址。数据安排600可包括多种附加字段(没有在图中示出)。例如,数据安排600可包括用于存储条目分组的字段。在各实施方式中,诸如专用地址的其它信息可用作唯一标识符,在这种情况下,可不呈现分组ID字段610。
[0069]作为实施例,分组记录640与由ID “0x4E3D”识别的分组相关联,其携带的专用原地址为“192.168.1.4/22”。作为进一步的实施例,分组记录650与由ID “0x502B”识别的分组相关联,其携带的专用原地址为“192.168.1.3/80”。作为又一个实施例,分组记录660与由ID “0x7AD3”识别的分组相关联,其携带的专用原地址为“192.168.1.2.1234”。数据安排600可包括多个附加条目670。
[0070]在各实施方式中,数据安排600可根据一个或多个字段进行排序。在所示实施方式中,数据安排600可根据分组ID字段610以升序进行排序。为了进一步提高性能,在各实施方式中,数据安排600可实现为哈希表或内容可寻址存储器。
[0071]图7描述了用于高速缓存地址信息的示例性方法。方法700可由诸如分组高速缓存管理器520的节点500元件进行执行。
[0072]方法700在步骤705中开始并进入到步骤710,其中节点500可接收分组。在步骤720,节点500例如通过在分组的一个或多个字段上执行哈希函数以计算分组标识符。接下来,在步骤730,节点500可共同存储分组标识符和地址信息以便稍后使用。最后,方法700可在步骤735结束。
[0073]图8描述了用于提供地址映射信息的示例性方法800。方法800可由诸如映射请求消息解释器550和/或映射响应消息产生器560的节点500的元件执行。
[0074]方法800可从步骤805开始并进入步骤810,其中节点500可从伙伴节点接收映射请求消息。在步骤820中,节点500可使用由请求消息携带的信息计算分组标识符。在步骤830中,节点500可查询与分组标识符相关联的地址信息。在节点500高速缓存全部分组的各实施方式中,在该步骤中,节点500可从之前存储的分组中提取地址信息。一旦检索到地址信息,方法800可进入步骤840,其中节点500可构建映射响应消息。为了由伙伴节点识别,这样的响应消息可包括检索的地址信息以及由原始请求消息携带的附加信息。在步骤850中,节点500可将响应消息发送给伙伴节点,方法800可在步骤865结束。
[0075]已经描述了用于操作示例性网络100的示例性元件和方法,现在将参照图1-图8提供示例性网络操作的实施例。节点200可对应于节点B150 ;节点500可对应于节点A140 ;数据结构300可描述地址映射存储器230的内容;数据结构600可描述分组高速缓存530的内容。
[0076]当源110将分组发送给目的130时处理开始。当节点A140看到该分组,分组高速缓存管理器520可通过在由分组携带的目的地址、目的端口和片段标识符上执行哈希函数以计算分组标识符,从而产生分组标识符“0x7AD3”。分组高速缓存管理器520还可从分组提取源地址和源端口。分组高速缓存管理器520还将该信息连同分组记录660存储到分组高速缓存530中。[0077]可由NAT设备120将分组转发给目的130。然而,在转发分组前,NAT设备120可将源地址和端口替换为公用地址和端口 “135.112.2.13/5478”。稍后,当节点B150接收到分组,替换地址识别器220可确定地址映射存储器230不包括地址“135.112.2.13/5478”的映射。因此,映射请求消息产生器240可构建请求消息,并将分组插入到该消息中。映射请求消息产生器240从而将请求消息发送给伙伴节点、节点A140。
[0078]当节点A140接收到请求消息时,映射请求消息解释器550可计算分组标识符。具体地,映射请求消息解释器550可从请求消息中提取分组,并在目的地址、目的端口和片段标识符上执行哈希函数。由于NAT设备不修改这些字段中的任何一个,因此分组标识符可与其之前计算的“0x7AD”相同。映射请求消息解释器550从而检索分组记录660。映射响应消息产生器560从而可构建映射响应消息,包括从分组记录660中提取的专用地址“192.168.1.2/1234”、和由请求消息携带的公用地址“135.112.2.13/5478”。映射响应消息产生器560从而将响应发送回伙伴节点、节点B150。
[0079]节点B150从而可接收响应消息,映射响应消息解释器260可从消息中提取映射。映射响应消息解释器260从而可将专用地址信息和公用地址信息存储到地址映射存储器230中以便将来使用。
[0080]根据上述内容,各示例性实施方式提供可确定在网络的不同部分使用的描述信息(诸如专用地址)的节点。具体的,通过根据在运送中没有被其它节点修改的信息识别流,节点可从伙伴节点请求这样的描述信息。此外,伙伴节点可使用提供的识别信息以识别之间见到的分组并提取请求信息。
[0081]应当从上面的描述中明确的是,本发明的各示例性实施方式可在硬件和/或软件中实现。此外,各示例性实施方式可实现为存储在机器可读存储介质中的指令,其中指令可被至少一个处理器读取并执行,以便执行这里详细描述的操作。机器可读存储介质可包括存储具有机器可读形式的信息的任何机构,例如个人或膝上型计算机、服务器、或其它计算设备。因此,机器可读存储介质可包括只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质、光存储介质、闪存设备和相似的存储设备。
[0082]本领域技术人员可以了解的是,这里的任何框图表示实施本发明原则的说明性电路的概念视图。相似的,可以理解的是,任何流程图、程序框图、状态转换图、伪代码等表示实质上在机器可读介质中描述并由计算机或处理器执行的各种处理,无论这样的计算机或处理器是否明确的给出。
[0083]尽管具体参照其特定的示例性方面描述了各种示例性实施方式,然而应当明白的是,本发明能够有其它实施方式,其细节能够在各种明显的方面进行修改。本领域技术人员容易理解的是,在保持本发明的精神和范围的前提下可进行各种变换和修改。因此,上面的公开、描述和附图仅是用于解释目的,不会以任何方式对本发明进行限制,本发明仅由权利要求进行限定。
【权利要求】
1.一种由网络节点执行的用于确定替换地址映射的方法,该方法包括: 在网络节点从不同的节点接收请求消息,请求消息包括分组指示(810); 根据分组指示识别与分组相关联的第一地址(830); 构建响应消息,响应消息包括第一地址(840);和 将响应消息发送给不同节点(850)。
2.根据权利要求1所述的方法,其中分组指示是下述内容中的至少一个:分组自身、分组的一部分、来自分组的至少一个报头字段、和分组至少一部分的哈希。
3.根据权利要求1或2中任一项所述的方法,其中识别第一地址的步骤包括: 在分组指示的至少一部分上执行哈希函数以产生哈希密钥;和 使用哈希密钥对之前存储的分组进行定位。
4.根据权利要求1-3中任一项所述的方法,其中: 请求消息包括第二地址;和 响应消息包括第二地址。
5.根据权利要求1-4中任一项所述的方法,其中网络节点和不同节点中的至少一个为用于分组的源和目的地中的至少一个。
6.根据权利要求1-5中任一项所述的方法,进一步包括: 在接收到请求消息前,接收分组(710); 将分组的至少一部分存储到分组高速缓存中(730); 其中识别与分组相关联的第一地址的步骤包括从分组的至少一部分提取第一地址。
7.根据权利要求1-6中任一项所述的方法,其中分组指示包括来自没有被网络地址转换设备修改的分组的字段。
8.一种用于确定替换地址映射的网络节点,网络节点包括: 分组高速缓存(530),用于存储多个分组; 接口(540),用于与不同的节点进行通信; 请求消息解释器(550),用于: 通过接口从不同的节点接收请求消息,请求消息包括分组指示(810); 根据分组指示识别与分组相关联的第一地址(830);和 响应消息产生器(560),用于: 构建响应消息,响应消息包括第一地址(840);和 将响应消息发送给不同节点(850)。
9.根据权利要求8所述的网络节点,其中分组指示是下述内容中的至少一个:分组自身、分组的一部分、来自分组的至少一个报头字段、和分组至少一部分的哈希。
10.根据权利要求8或9中任一项所述的网络节点,其中在识别第一地址中,请求消息解释器: 在分组指示的至少一部分上执行哈希函数以产生哈希密钥;和 使用哈希密钥对之前存储的分组进行定位。
11.根据权利要求8-10中任一项所述的网络节点,其中: 请求消息包括第二地址;和 响应消息包括第二地址。
12.根据权利要求8-11中任一项所述的网络节点,其中网络节点和不同节点中的至少一个为用于分组的源和目的地中的至少一个。
13.根据权利要求8-12中任一项所述的网络节点,进一步包括: 分组高速缓存管理器(520),用于: 在接收到请求消息前,接收分组(710); 将分组的至少一部分存储到分组高速缓存中(730); 其中识别与分组相关联的第一地址的步骤包括从分组的至少一部分提取第一地址。
14.根据权利要求权利要求8-12中任一项所述的网络节点,其中分组指示包括来自没有被网络地址转换设备修 改的 分组的字段。
【文档编号】H04L29/12GK103477613SQ201280018041
【公开日】2013年12月25日 申请日期:2012年4月9日 优先权日:2011年4月11日
【发明者】T·卜, Y·赵 申请人:阿尔卡特朗讯公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1