CN1317874C - 提供虚拟主机服务快速查询置换的网络地址端口转换网关器与方法 - Google Patents

提供虚拟主机服务快速查询置换的网络地址端口转换网关器与方法 Download PDF

Info

Publication number
CN1317874C
CN1317874C CNB03154407XA CN03154407A CN1317874C CN 1317874 C CN1317874 C CN 1317874C CN B03154407X A CNB03154407X A CN B03154407XA CN 03154407 A CN03154407 A CN 03154407A CN 1317874 C CN1317874 C CN 1317874C
Authority
CN
China
Prior art keywords
address
connectivity port
port information
data packet
destination
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB03154407XA
Other languages
English (en)
Other versions
CN1602003A (zh
Inventor
林军鼐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institute for Information Industry
Original Assignee
Institute for Information Industry
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Institute for Information Industry filed Critical Institute for Information Industry
Priority to CNB03154407XA priority Critical patent/CN1317874C/zh
Publication of CN1602003A publication Critical patent/CN1602003A/zh
Application granted granted Critical
Publication of CN1317874C publication Critical patent/CN1317874C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一种提供虚拟主机服务快速查询置换的方法,用于执行于连接虚拟网络及外部网络的网络地址端口转换(NAPT)网关器中,该虚拟网络包括复数服务器用以提供在该外部网络中的复数主机服务,当一般数据封包由外部网络传递至虚拟网络时,变更数据封包内的目的端因特网(IP)地址以及目的端连接端口外,亦同时更改数据封包内的来源连接端口或地址为记录该组转换数据的NAPT转换表的索引值。当数据封包由服务器回传至NAPT网关器时,利用封包中的目的端连接端口或地址(即索引值)可直接对映(Direct Mapping)到NAPT转换表中该笔转换数据,以加速封包的处理速度。

Description

提供虚拟主机服务快速查询置换的网络地址端口 转换网关器与方法
技术领域
本发明是有关于一种网关器,特别是提出一种网络地址端口转换(Network Address Port Translation,NAPT)网关器及可应用于此种NAPT网关器中的网络地址端口查询及置换方法。
背景技术
图1为一般提供虚拟主机映像的网络地址端口转换(NAPT)网关器的架构示意图。图2为图1的NAPT网关器查询及置换网络地址端口的方法。在此,假设在这个虚拟网络内部有两台服务器120及122,其虚拟IP地址分别为S1及S2,这两台服务器分别开启服务在连接端口(Port)SP1及SP2,并同时假设外部网络有三台主机100、102及104,其合法的IP地址分别为C1、C2及C3,主机100、102及104分别利用连接端口CP1、CP2及CP3连接到NAPT网关器110的地址及连接端口。NAPT网关器110对外的合法IP地址为G,其内有一个虚拟主机对映表(Virtual Server MappingTable)112,其中记录了NAPT网关器110的连接端口GP1对映到内部服务器120的连接端口SP1,以及连接端口GP2对映到内部服务器122的连接端口SP2。
当外部网络的主机100、102或者104连接到NAPT网关器的地址G的连接端口GP1或者GP2时,NAPT网关器110会将封包做NAPT转换,并传递至内部服务器120的连接端口SP1或者服务器122的连接端口SP2,并将转换的对应数据记录在NAPT转换表114中,以方便从内部服务器回传的封包可依记录,再做NAPT转换成适当的信息,传递至外部网络的主机。
假设在NAPT转换表114中已记录从主机100的连接端口CP1经由NAPT网关器110的连接端口GP1到内部服务器120的连接端口SP1这组数据流的信息之后,参考图2,主机100发送数据封包130到NAPT网关器110,此数据封包130包括来源IP地址、来源连接端口、目的端IP地址及目的端连接端口,其中来源IP地址为主机100的IP地址C1,来源连接端口为主机100的连接端口CP1,目的端IP地址为NAPT网关器110对外部网络所宣告的合法IP地址G,目的端连接端口为服务器120的服务连接端口SP1在NAPT网关器110中所对应的连接端口GP1。NAPT网关器110在接收到数据封包130后,以杂凑(Hash)或者线性搜寻(Linear Search)方式,在NAPT转换表114查询转换数据,当查询到转换数据后,变更数据封包130的目的端IP地址及目的端连接端口,成为具有目的端IP地址及目的端连接端口分别为服务器120的虚拟IP地址S1及服务器连接端口SP1的数据封包132。
反之,当服务器120发送数据封包134到外部主机100,此数据封包括来源IP地址、来源连接端口、目的端IP地址及目的端连接端口,其中来源IP地址为服务器120的虚拟IP地址S1,来源连接端口为服务器连接端口SP1,目的端IP地址为主机100的IP地址C1,目的端连接端口为主机100的连接端口CP1。NAPT网关器110在接收到数据封包134后,同样以杂凑或者线性搜寻方式,在NAPT转换表114查询转换数据,当查询到转换数据后,变更数据封包134的来源IP地址及来源连接端口,成为具有来源IP地址及来源连接端口分别NAPT网关器110对外部网络所宣告的合法IP地址G,及服务器120的服务连接端口SP1在NAPT网关器110中所对应的连接端口GP1的数据封包136。
利用线性搜寻方式在NAPT转换表114查询转换数据时速度很慢,需要相当长的搜寻时间,而利用杂凑方式时,可能遇到碰撞(Collision)的情形,在此情形下,则需再一层的杂凑或者线性搜寻,所以若是杂凑函式选得不好,那么最差情况(worst case)下所需花费的搜寻时间可能和利用线性搜寻方式相同。
发明内容
有鉴于此,本发明的主要目的在于一种NAPT网关器及可应用于此种NAPT网关器中的网络地址端口查询及置换方法,当数据封包由内部服务器经NAPT网关器传递往外部主机时,目的端连接端口(即索引值)可直接对映(Direct Mapping)到NAPT转换表中的转换数据,而不需使用杂凑或者线性搜寻方式,以加速封包的处理速度。
为达成上述目的,本发明提供一种虚拟主机服务快速查询置换的方法,用于执行于连接内部虚拟网络及外部网络的网关器中,该虚拟网络包括至少一服务器并且该外部网络包括至少一主机。首先,建立一转换表,该转换表包括多组转换数据,并且每组转换数据具有一索引值,其中每组转换数据包括主机地址端口(Address&Port)信息、服务器地址端口信息及网关器的地址端口连结信息。当网关器接收来自外部主机的第一数据封包,该第一数据封包包括第一来源端地址端口信息及第一目的端地址端口信息。接着,在转换表中搜寻第一数据封包所对应的转换数据。当在转换表中搜寻到第一数据封包所对应的转换数据时,转换第一目的端地址端口信息成为该组转换数据中的服务器地址端口信息,并且同时转换第一来源端连接端口信息成为该组转换数据所对应的索引值相关的系数。最后,依据该服务器地址信息,传送第一数据封包至内部对应的服务器。
另外,如果网关器接收到来自服务器的第二数据封包,该第二数据封包包括第二来源端地址端口信息及第二目的端地址端口信息,其中第二目的端连接端口信息将会是第二索引值相关的第二系数,则利用第二系数求出相关的第二索引值,并依据第二索引值直接在转换表找到第二数据封包所对应的转换数据。接着,转换第二来源端地址端口信息为该组数据记录中的网关器对映地址端口信息,并转换第二目的端连接端口信息成为该组转换数据中记录原先的主机连接端口信息。最后,依据该主机地址信息,传送第二数据封包至对应的主机。
此外,本发明还提供一种提供虚拟主机服务快速查询置换的网络地址端口转换(NAPT)网关器,用以连接内部虚拟网络及外部网络,该虚拟网络包括至少一服务器并且该外部网络包括至少一主机。此种NAPT网关器包括转换表、接收单元、处理单元以及传送单元。该转换表包括多组转换数据,并且每组转换数据具有一索引值,其中每组转换数据包括外部主机地址端口信息、服务器地址端口信息及网关器的地址端口连结信息。接收单元用以接收来自该主机的第一数据封包,该第一数据封包包括第一来源端地址端口信息及第一目的端地址端口信息。处理单元用以在转换表中搜寻第一数据封包所对应的转换数据,当在转换表中搜寻到第一数据封包所对应的转换数据时,转换第一目的端地址端口信息成为该组转换数据中的服务器地址端口信息,并且转换第一来源端地址信息成为该组转换数据所对应的索引值相关的系数。传送单元耦接至处理单元,并依据服务器地址信息,传送第一数据封包至对应的服务器。
另外,当网关器接收单元接收到来自服务器的包括第二来源端地址端口信息及第二目的端地址端口信息的第二数据封包时,处理单元依据第二目的端地址信息内的第二系数求出相关的第二索引值,并依据第二索引值直接在转换表找到第二数据封包所对应的转换数据,并且在转换第二来源端地址端口信息为该组数据记录中的网关器对映地址端口信息,并转换第二目的端地址信息成为该组转换数据中原先的主机地址信息的后,经由传送单元,传送第二数据封包至对应的外部主机。
附图说明
图1为一般提供虚拟主机映像的网络地址端口转换(NAPT)网关器的架构示意图。
图2为图1的NAPT网关器查询及置换网络地址端口方法的示意图。
图3为本发明第一实施例的网络地址端口转换(NAPT)网关器的架构示意图。
图4表示本发明第一实施例的网络地址端口查询及置换方法的示意图。
图5为本发明第二实施例的网络地址端口转换(NAPT)网关器的架构示意图。
图6表示本发明第二实施例的网络地址端口查询及置换方法的示意图。
符号说明:
120、122、320、322~服务器;
S1、S2~服务器虚拟IP地址;
C1、C2、C3、G~合法IP地址;
CP1、CP2、CP3、SP1、SP2、GP1、GP2~连接端口;
100、102、104、300、302、304~主机;
110、310、510~NAPT网关器;
114、314~NAPT转换表;
112、312~虚拟主机对映表;
316、516~处理单元;
317、318~传送接收单元;
130、132、134、136、330、332、334、336、532、534~资料封包;
I1、I2、I3~索引值;
J1~数值。
具体实施方式
为了让本发明的上述和其它目的、特征、和优点能更明显易懂,下文特举实施例,并配合所附图示,作详细说明如下:
图3为本发明第一实施例的网络地址端口转换(NAPT)网关器范例的架构示意图。NAPT网关器310用以连接内部虚拟网络及外部网络,在此,假设在这个虚拟网络内部有两台服务器320及322,其虚拟IP地址分别为S1及S2,这两台服务器分别开启服务在连接端口(Port)SP1及SP2,并同时假设外部网络有三台主机300、302及304,其合法的IP地址分别为C1、C2及C3,主机300、302及304分别利用连接端口CP1、CP2及CP3连接到NAPT网关器310的地址及连接端口。NAPT网关器310对外部网络的合法IP地址为G,其内有一个虚拟主机对映表(Virtual Server MappingTable)312,虚拟主机对映表312内储存了多个对映数据,每组对映数据包括服务器地址端口信息及网关器对映的地址端口信息,其中服务器信息包括一服务器的虚拟IP地址及该服务器的一连接端口信息,网关器的连结信息包括网关器IP地址以及网关器连接端口信息,网关器IP地址为NAPT网关器310对外部网络所宣告的合法IP地址,网关器连接端口信息为该服务器提供的服务连接端口在NAPT网关器310中所对应的服务连接端口,在此,虚拟主机对映表312中记录了[G,GP1,S1,SP1]及[G,GP2,S2,SP2]两组对映数据,分别代表NAPT网关器310的连接端口GP1对映到内部服务器320的连接端口SP1,以及连接端口GP2对映到内部服务器322的连接端口SP2。
另外,在NAPT网关器310中维持了一NAPT转换表314,NAPT转换表314可包括多组转换数据,NAPT网关器310同时为每组转换数据提供一索引值,每组转换数据包括主机地址端口信息、服务器地址端口信息及网关器的地址端口连结信息,其中主机地址端口信息包括一主机的IP地址及主机的一连接端口信息,服务器地址端口信息包括一服务器的虚拟IP地址及该服务器的一连接端口信息,网关器的地址端口连结信息包括网关器IP地址以及网关器连接端口信息,网关器IP地址为NAPT网关器310对外部网络所宣告的合法IP地址,网关器连接端口信息为该服务器提供的服务连接端口在NAPT网关器310中所对应的服务连接端口。NAPT网关器310中还包括了处理单元316用以控制网络地址端口查询及置换。
请同时参考图3及图4,图4表示本发明第一实施例的网络地址端口查询及置换方法的示意图。外部网络的主机300从连接端口CP1首次送出一数据封包330到NAPT网关器310的连接端口GP1,数据封包330包括来源IP地址、来源连接端口、目的端IP地址及目的端连接端口,其中来源IP地址为主机300的IP地址C1,来源连接端口为主机300连接到NAPT网关器310的连接端口CP1,目的端IP地址为NAPT网关器310对外部网络所宣告的合法IP地址G,目的端连接端口为服务器320在NAPT网关器310中所对应的连接端口GP1。
通常,在NAPT网关器310利用其内的传送接收单元317接收到数据封包330之后,会先查询NAPT转换表314,如果在NAPT转换表314找寻不到相关的转换数据,才会查询虚拟主机对映表312。由于在此范例中,数据封包330为主机300送到NAPT网关器310的连接端口GP1的第一个数据封包,因此,将此数据封包330送到虚拟主机对映表312中查询,在查询后,发现这个封包要转换到内部服务器S1的连接端口SP1,由于这是这个数据流(flow)的第一个封包,因此,处理单元316在NAPT转换表314找一个尚未使用且索引值为I1的记忆单元记录NAPT转换所需的数据,NAPT转换所需的数据包括服务器的虚拟IP地址即S1、服务器连接端口信息即SP1、网关器IP地址即G、网关器连接端口信息即GP1、主机IP地址即C1以及主机连接端口信息即CP1。
接着,处理单元316变更数据封包330的目的端IP地址及目的端连接端口,成为服务器320的虚拟IP地址S1及服务器连接端口SP1,及变更来源连接端口为该NAPT转换表记录的对映数据索引值相关的系数J1的数据封包332,系数J1可以为索引值I1或者I1加上一常数,系数J1最大可到216-1。最后,NAPT网关器310其内的传送接收单元318会依据目的端IP地址,将数据封包332传递往真正的目的地即服务器320。
另外,服务器320的连接端口SP1可回传数据封包334经NAPT网关器310到主机300,数据封包334包括来源IP地址、来源连接端口、目的端IP地址及目的端连接端口,其中来源IP地址为服务器320的IP地址S1,来源连接端口为服务器320的连接端口SP1,目的端IP地址为主机300的IP地址C1,目的端连接端口为上述索引值相关的系数J1。
当NAPT网关器310收到回传数据封包334,如果系数J1等于索引值I1,那么就可直接对映(Direct Mapping)到NAPT转换表314中索引值为I1的转换数据,来做NAPT转换。如果系数J1为一索引值I1加上一常数,需先经过简单的运算求出索引值I1后,直接对映(Direct Mapping)到NAPT转换表314中索引值为I1的转换数据,来做NAPT转换。由于不需经过杂凑或者线性搜寻方式去取得转换数据,可节省许多时间,并加速封包的处理速度。在取得转换数据之后,NAPT网关器310为先做简单的比对,看所取得的资料是否正确。
接着,处理单元316变更数据封包334的来源IP地址及来源连接端口,成为NAPT网关器310对外部网络所宣告的合法IP地址G以及服务器320连接端口SP1在NAPT网关器310中所对应的连接端口GP1,及变更目的端连接端口为记录数据中主机300的连接端口CP1的数据封包336。最后,NAPT网关器310其内的传送接收单元317会依据目的端IP地址,将数据封包336传递往主机300。
参考图3,外部网络的主机302也可以从连接端口CP2送出数据流(flow)的第一个数据封包到NAPT网关器310的连接端口GP2,数据封包同样包括来源IP地址、来源连接端口、目的端IP地址及目的端连接端口。NAPT网关器310在接收到数据封包后,会将此数据封包送到虚拟主机对映表312中查询,在查询后,发现这个封包要转换到内部服务器S2的连接端口SP2,由于这是这个数据流的第一个封包,因此在NAPT转换表314找一个尚未使用且索引值为I2的记忆单元记录NAPT转换所需的数据,NAPT转换所需的数据包括服务器的虚拟IP地址即S2、服务器连接端口信息即SP2、网关器IP地址即G、网关器连接端口信息即GP2、主机IP地址即C2以及主机连接端口信息即CP2。另外,外部网络的主机304也可以从连接端口CP3送出数据流的第一个数据封包到NAPT网关器310的连接端口GP1,数据封包同样包括来源IP地址、来源连接端口、目的端IP地址及目的端连接端口。NAPT网关器310在接收到数据封包后,会将此数据封包送到虚拟主机对映表312中查询,在查询后,发现这个封包要转换到内部服务器S1的连接端口SP1,由于这是这个数据流的第一个封包,因此在NAPT转换表314找一个尚未使用且索引值为I3的记忆单元记录NAPT转换所需的数据,NAPT转换所需的数据包括NAPT转换所需的数据包括服务器的虚拟IP地址即S1、服务器连接端口信息即SP1、网关器IP地址即G、网关器连接端口信息即GP1、主机IP地址即C3以及主机连接端口信息即CP3。接着,数据封包的转换方式将如上述的流程,除了转换目的端IP地址及目的端连接端口之外,亦同时将来源连接端口转换成和该索引值所相关的系数,如此,由内部网络(虚拟网络)往外回传的封包,到达本发明的NAPT网关器310时,就可以采用直接对应方式找到转换数据,做适当转换后,传递至外部主机302或304。
此外,当同一个数据流第一个封包之后的封包再传递时,由于NAPT转换表314中已有记录,所以由外部网络传递往内部虚拟网络时,本发明的NAPT网关器310和一般的NAPT网关器一样,采用较快速的杂凑方式找出对应的索引值,然后依第一个封包的转换方式一样,除了转换目的端IP地址及目的端连接端口之外,亦同时将来源连接端口转换成和该索引值所相关的系数,如此,由内部网络(虚拟网络)往外回传的封包,到达本发明的NAPT网关器310时,就可以采用直接对映方式找到转换数据,做适当转换后,传递至外部主机。
图5为本发明第二实施例的网络地址端口转换(NAPT)网关器范例的架构示意图。此架构图和图3类似,在此实施例中,和图3不同之处在于NAPT网关器510中的处理单元516利用不同的转换方法来控制网络地址端口查询及置换。要注意的是,在图5中和图3相同功能的组件具有同样的标号。
请同时参考图5及图6,图6表示本发明第二实施例的网络地址端口查询及置换方法的示意图。外部网络的主机300从连接端口CP1首次送出一数据封包330到NAPT网关器510的连接端口GP1,数据封包330包括来源IP地址、来源连接端口、目的端IP地址及目的端连接端口,其中来源IP地址为主机300的IP地址C1,来源连接端口为主机300连接到NAPT网关器510的连接端口CP1,目的端IP地址为NAPT网关器510对外部网络所宣告的合法IP地址G,目的端连接端口为服务器320连接端口SP1在NAPT网关器510中所对应的连接端口GP1。
通常,在NAPT网关器310利用其内的传送接收单元317接收到数据封包330之后,会先查询NAPT转换表314,如果在NAPT转换表314找寻不到相关的转换数据,才将查询虚拟主机对映表312。由于在此范例中,数据封包330为主机300送到NAPT网关器510的连接端口GP1的第一个数据封包,因此,将此数据封包330送到虚拟主机对映表312中查询,在查询后,发现这个封包要转换到内部服务器S1的连接端口SP1,由于这是这个数据流(flow)的第一个封包,因此,处理单元516在NAPT转换表314找一个尚未使用且索引值为I1的记忆单元记录NAPT转换所需的数据,NAPT转换所需的数据包括服务器的虚拟IP地址即S1、服务器连接端口信息即SP1、网关器IP地址即G、网关器连接端口信息即GP1、主机IP地址即C1以及主机连接端口信息即CP1。
接着,处理单元516变更数据封包330的目的端IP地址及目的端连接端口,成为服务器320的虚拟IP地址S1及服务器连接端口SP1,及变更来源端IP地址为与索引值I1相关的数值J1的数据封包532,数值J1可以为[10.0.0.0]和索引值I1的逻辑和运算结果,在此种情形下索引值I1最大可到224-1,数值J1也可以为[172.16.0.0]和索引值I1的逻辑和运算结果,在此种情形下索引值I1最大可到220-1,另外,数值J1亦可为[192.168.0.0]和索引值I1的逻辑和运算结果,在此种情形下索引值I1最大可到216-1。最后,NAPT网关器510其内的传送接收单元318会依据目的端IP地址,将数据封包532传递往真正的目的地即服务器320。
另外,服务器320的连接端口SP1可回传数据封包534回NAPT网关器510,由于本方法利用的直接对映是IP地址,所以数据封包534可为经过IP切割(Fragmentation)后的封包,其包括来源IP地址、来源连接端口、目的端IP地址及目的端连接端口,或是仅有来源IP地址及目的端IP地址,其中来源IP地址为服务器320的IP地址S1,来源连接端口为服务器320的连接端口SP1,目的端IP地址为与索引值相关的数值J1,目的端连接端口为主机300连接到NAPT网关器510的连接端口CP1。
将数值J1经过特定运算求出索引值I1后,直接对映(Direct Mapping)到NAPT转换表314中索引值为I1的转换数据,来做NAPT转换。由于不需经过杂凑或者线性搜寻方式去取得转换数据,可节省许多时间,并加速封包的处理速度。在取得转换数据之后,NAPT网关器510为先做简单的比对,看所取得的资料是否正确。
接着,处理单元516变更数据封包534的来源IP地址及来源连接端口,成为NAPT网关器510对外部网络所宣告的合法IP地址G以及服务器320连接端口SP1在NAPT网关器510中所对应的连接端口GP1,及变更目的端IP地址为记录数据中的主机300的IP地址C1的数据封包336。最后,NAPT网关器510其内的传送接收单元317会依据目的端IP地址,将数据封包336传递往主机300。
参考图5,外部网络的主机302也可以从连接端口CP2送出数据流(flow)的第一个数据封包到NAPT网关器510的连接端口GP2,数据封包同样包括来源IP地址、来源连接端口、目的端IP地址及目的端连接端口。NAPT网关器510在接收到数据封包后,会将此数据封包送到虚拟主机对映表312中查询,在查询后,发现这个封包要转换到内部服务器S2的连接端口SP2,由于这是这个数据流的第一个封包,因此在NAPT转换表314找一个尚未使用且索引值为I2的记忆单元记录NAPT转换所需的数据,NAPT转换所需的数据包括服务器的虚拟IP地址即S2、服务器连接端口信息即SP2、网关器IP地址即G、网关器连接端口信息即GP2、主机IP地址即C2以及主机连接端口信息即CP2。另外,外部网络的主机304也可以从连接端口CP3送出数据流的第一个数据封包到NAPT网关器510的连接端口GP1,数据封包同样包括来源IP地址、来源连接端口、目的端IP地址及目的端连接端口。NAPT网关器510在接收到数据封包后,会将此数据封包送到虚拟主机对映表312中查询,在查询后,发现这个封包要转换到内部服务器S1的连接端口SP1,由于这是这个数据流的第一个封包,因此在NAPT转换表314找一个尚未使用且索引值为I3的记忆单元记录NAPT转换所需的数据,NAPT转换所需的数据包括服务器的虚拟IP地址即S1、服务器连接端口信息即SP1、网关器IP地址即G、网关器连接端口信息即GP1、主机IP地址即C3以及主机连接端口信息即CP3。接着,数据封包的转换方式将如上述的流程,除了转换目的端IP地址及目的端连接端口之外,亦同时将来源连接IP地址转换成与该索引值相关的数值。如此,由内部网络(虚拟网络)往外回传的封包,到达本发明的NAPT网关器510时,就可以采用直接对映方式找到转换数据,做适当转换后,传递至外部主机302或304。
此外,当同一个数据流第一个封包之后的封包再传递时,由于NAPT转换表314中已有记录,所以由外部网络传递往内部虚拟网络时,本发明的NAPT网关器510和一般的NAPT网关器一样,采用较快速的杂凑方式找出对应的索引值,然后依第一个封包的转换方式一样,除了转换目的端IP地址及目的端连接端口之外,亦同时将来源连接IP地址转换成与该索引值相关的数值,如此,由内部网络(虚拟网络)往外回传的封包,不管此封包有没有经过IP切割,在到达本发明的NAPT网关器510时,就可以利用目的端IP地址,采用直接对映方式找到转换数据,做适当转换后,传递至外部主机。
要注意的是,在上述的实施例中,以没有做负载平衡的NAPT网关器为例进行说明,但本发明的网络地址端口查询及置换方法亦可应用能做负载平衡的NAPT网关器中。
综上所述,本发明的网络地址端口查询及置换方法,其能应用于NAPT网关器中,当数据封包由内部服务器传至NAPT网关器时,目的端连接端口或目的端IP地址(即索引值)可直接对映(Direct Mapping)到NAPT转换表中的转换数据,而不需使用杂凑或者线性搜寻方式,达到加快封包处理速度的目的。

Claims (13)

1.一种提供虚拟主机服务快速查询置换的方法,用于执行于连接一虚拟网络及一外部网络的一网关器中,该虚拟网络包括至少一服务器并且该外部网络包括至少一主机,该方法包括下列步骤:
储存一转换表;
接收来自该主机的一第一数据封包,该第一数据封包包括一第一来源端地址端口信息及一第一目的端地址端口信息,该第一来源端地址端口信息包括一网络IP地址及一连接端口信息;
在该转换表中搜寻该第一数据封包所对应的转换数据,其中该转换表包括多组转换数据,并且每组转换数据具有一索引值,其中每组转换数据包括一主机地址端口信息、一服务器地址端口信息及一网关器的地址端口连结信息,该服务器地址端口信息包括一网络IP地址及一连接端口信息;
当在该转换表中搜寻到该第一数据封包所对应的转换数据时,转换该第一来源端IP地址或连接端口信息成为该组转换数据所对应的索引值相关的系数,并且转换该第一目的端地址端口信息成为该组转换数据中的服务器地址端口信息;以及
依据该服务器IP地址,传送该第一数据封包至对应的服务器。
2.根据权利要求1所述的提供虚拟主机服务快速查询置换的方法,还包括下列步骤:
接收来自一服务器的一第二数据封包,该第二数据封包包括一第二来源端地址端口信息及一第二目的端地址端口信息,其中该第二目的端地址端口信息包括一网络IP地址及一连接端口信息,该第二目的端IP地址或连接端口信息为和一第二索引值相关的第二系数;
依据该第二系数求出相关的第二索引值,并依据该第二索引值在该转换表找到该第二数据封包所对应的转换数据;
转换该第二来源端地址端口信息成为该组转换数据中的网关器地址端口信息,并转换第二目的端的IP地址或连接端口为该组转换数据中主机的IP地址或连接端口;以及
依据该主机的IP地址,传送该第二数据封包至对应的主机。
3.根据权利要求1所述的提供虚拟主机服务快速查询置换的方法,还包括下列步骤:
在该网关器中维持一对映表,该对映表储存多个对映数据,每组对映数据包括一服务器地址端口信息及一网关器的地址端口连结信息;以及
当在该转换表中搜寻不到该第一数据封包所对应的转换数据时,依据该第一目的端地址端口信息在该对映表中进行搜寻找出相关之对映数据。
4.根据权利要求3所述的提供虚拟主机服务快速查询置换的方法,更包括下列步骤:
当在该转换表中搜寻不到该第一数据封包所对应的转换数据时,在该转换表中新增一组转换数据并为该组转换数据提供一第三索引值,该笔转换数据包括所搜寻到的对映数据及该来源端信息;
转换该第一来源端IP地址或连接端口信息成为该第三索引值相关的系数,并且转换该第一目的端地址端口信息成为该组对映数据中的服务器地址端口信息;以及
依据该服务器IP地址,传送该第一数据封包至对应的服务器。
5.一种提供虚拟主机服务快速查询置换的方法,用于执行于连接一虚拟网络及一外部网络的一网关器中,该虚拟网络包括至少一服务器并且该外部网络包括至少一主机,该方法包括下列步骤:
(a)储存一对映表,该对映表储存每个服务器的虚拟IP地址、连接端口信息、一网关器IP地址以及一网关器连接端口信息;
(b)储存一转换表;
(c)接收来自该主机的一第一数据封包,该第一数据封包包括一来源IP地址、一来源连接端口、一目的端IP地址及一目的端连接端口,其中该来源IP地址为该主机的IP地址,该来源连接端口为送出该第一数据封包的主机连接端口,该目的端IP地址为该网关器的IP地址,该目的端连接端口为该网关器的连接端口;
(d)在该转换表中搜寻该第一数据封包所对应的转换数据,其中该转换表包括多组转换数据,并为每组转换数据提供一索引值,每组转换数据包括一主机IP地址、一主机连接端口信息、一服务器的虚拟IP地址、一服务器连接端口信息、一网关器IP地址以及一网关器连接端口信息;
当在该转换表中搜寻到该第一数据封包所对应的转换数据时,进行下列对该第一数据封包的转换步骤(f);
(e)当在该转换表中搜寻不到该第一数据封包所对应的转换数据时,将该目的端IP地址及该目的端连接端口在该对映表中进行搜寻找出所对应之服务器的虚拟IP地址及提供服务的连接端口信息,并在该转换表中新增一组转换数据并为该组转换数据提供一索引值,该笔转换数据包括所搜寻到的虚拟IP地址数据、提供服务的连接端口信息、该来源IP地址、该来源连接端口信息、该目的端IP地址数据及该目的端连接端口信息,并进行下列对该第一数据封包的转换步骤(f);
(f)转换该第一数据封包中的来源连接端口或者来源IP地址成为所对应的索引值相关的系数,并且分别转换该第一数据封包中目的端IP地址及目的端连接端口成为所对应的服务器的虚拟IP地址及服务器连接端口信息;以及
(g)依据新的目的端IP地址,传送该第一数据封包至对应的服务器。
6.根据权利要求5所述的提供虚拟主机服务快速查询置换的方法,更包括下列步骤:
接收来自一服务器的一第二数据封包,该第二数据封包包括一来源IP地址、一来源连接端口、一目的端IP地址及一目的端连接端口,其中该来源IP地址为该服务器的虚拟IP地址、该来源连接端口为提供服务的服务器连接端口,该目的端IP地址为一主机的IP地址,该目的端连接端口为一第二索引值相关的第二系数;
依据该第二系数求出相关的第二索引值,并依据该第二索引值在该转换表找到该第二数据封包所对应的转换数据;
转换该第二数据封包中的目的端连接端口成为送出该第一数据封包的主机连接端口,并且分别转换该第二数据封包中的来源IP地址及该来源连接端口成为该网关器IP地址以及该网关器连接端口信息;以及
依据该目的端IP地址,传送该第二数据封包至该主机。
7.一种提供虚拟主机服务快速查询置换的网络地址端口转换网关器,用以连接一虚拟网络及一外部网络,该虚拟网络包括至少一服务器并且该外部网络包括至少一主机,其包括:
一转换表,该转换表包括多组转换数据,并且每组转换数据具有一索引值,其中每组转换数据包括一主机地址端口信息、一服务器地址端口信息及一网关器的地址端口连结信息,该服务器地址端口信息包括一网络IP地址及一连接端口信息;
一接收单元,用以接收来自该主机的一第一数据封包,该第一数据封包包括一第一来源端地址端口信息及一第一目的端地址端口信息,该第一来源端地址端口信息包括一网络IP地址及一连接端口信息;
一处理单元,用以在该转换表中搜寻该第一数据封包所对应的转换数据,当在该转换表中搜寻到该第一数据封包所对应的转换数据时,转换该第一来源端IP地址或连接端口信息成为该组转换数据所对应的索引值相关的系数,并且转换该第一目的端地址端口信息成为该组转换数据中的服务器地址端口信息;以及
一传送单元,其耦接至该处理单元,并依据该服务器IP地址,传送该第一数据封包至对应的服务器。
8.根据权利要求7所述的提供虚拟主机服务快速查询置换的网络地址端口转换网关器,其中该接收单元用以接收来自一服务器的一第二数据封包,该第二数据封包包括一第二来源端地址端口信息及一第二目的端地址端口信息,其中该第二目的端地址端口信息包括一网络IP地址及一连接端口信息,该第二目的端IP地址或连接端口信息为和一第二索引值相关的第二系数。
9.根据权利要求8所述的提供虚拟主机服务快速查询置换的网络地址端口转换网关器,其中该处理单元依据该第二系数求出相关的第二索引值,并依据该第二索引值在该转换表找到该第二数据封包所对应的转换数据,并且转换该第二来源端地址端口信息成为该组转换数据中的网关器地址端口信息,并转换该第二目的端IP地址或连接端口信息成为该组转换数据中的主机IP地址或连接端口信息。
10.根据权利要求9所述的提供虚拟主机服务快速查询置换的网络地址端口转换网关器,其中该传送单元依据该主机信息,传送该第二数据封包至对应的主机。
11.根据权利要求7所述的提供虚拟主机服务快速查询置换的网络地址端口转换网关器,其中该主机地址端口信息包括一主机IP地址及一主机连接端口信息,该网关器的地址端口连结信息包括一网关器IP地址及一网关器连接端口信息。
12.根据权利要求7所述的提供虚拟主机服务快速查询置换的网络地址端口转换网关器,更包括:
一对映表,该对映表储存多个对映数据,每组对映数据包括一服务器地址端口信息及一网关器的地址端口连结信息;
其中该处理单元在该转换表中搜寻不到该第一数据封包所对应的转换数据时,依据该第一目的端地址端口信息在该对映表中进行搜寻找出相关的对映数据,在该转换表中新增一组转换数据并为该组转换数据提供一第三索引值,该笔转换数据包括所搜寻到的对映数据及该来源端信息,并且转换该第一来源端IP地址或连接端口信息成为该第三索引值相关的系数。
13.根据权利要求12所述的提供虚拟主机服务快速查询置换的网络地址端口转换网关器,其中该网关器的地址端口连结信息包括一网关器IP地址及一网关器连接端口信息。
CNB03154407XA 2003-09-27 2003-09-27 提供虚拟主机服务快速查询置换的网络地址端口转换网关器与方法 Expired - Fee Related CN1317874C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB03154407XA CN1317874C (zh) 2003-09-27 2003-09-27 提供虚拟主机服务快速查询置换的网络地址端口转换网关器与方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB03154407XA CN1317874C (zh) 2003-09-27 2003-09-27 提供虚拟主机服务快速查询置换的网络地址端口转换网关器与方法

Publications (2)

Publication Number Publication Date
CN1602003A CN1602003A (zh) 2005-03-30
CN1317874C true CN1317874C (zh) 2007-05-23

Family

ID=34659971

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB03154407XA Expired - Fee Related CN1317874C (zh) 2003-09-27 2003-09-27 提供虚拟主机服务快速查询置换的网络地址端口转换网关器与方法

Country Status (1)

Country Link
CN (1) CN1317874C (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101730998B (zh) * 2007-07-06 2013-03-06 朗讯科技公司 通过一系列边界网关的网际协议多媒体载体路径最优化的方法和装置

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8787393B2 (en) * 2005-04-11 2014-07-22 International Business Machines Corporation Preventing duplicate sources from clients served by a network address port translator
CN101132424B (zh) * 2007-09-29 2011-08-31 杭州华三通信技术有限公司 网络地址转换的方法及装置
CN101345595B (zh) * 2008-08-26 2010-08-25 国家广播电影电视总局广播科学研究院 一种基于广播信道传输内容标引的系统及方法
CN101674606A (zh) * 2009-09-25 2010-03-17 华为技术有限公司 数据传输方法及装置
CN104902461B (zh) * 2011-01-30 2019-03-01 华为技术有限公司 数据发送方法、装置、终端和系统
US9274825B2 (en) * 2011-08-16 2016-03-01 Microsoft Technology Licensing, Llc Virtualization gateway between virtualized and non-virtualized networks

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010018574A (ko) * 1999-08-20 2001-03-05 윤종용 망주소 변환 테이블을 사용한 사설망과 공용망의 망연동 방법 및 이를 위한 기록 매체
WO2001063854A1 (fr) * 2000-02-22 2001-08-30 Nec Corporation Terminal, dispositif relais, procede de communication et programme de communication a cet effet
CN1332552A (zh) * 2000-03-03 2002-01-23 尼克斯兰德公司 使用本地ip地址和不可转换端口地址的局域网的网络地址转换网关
WO2002067531A1 (en) * 2001-02-20 2002-08-29 Eyeball Networks Inc. Method and apparatus to permit data transmission to traverse firewalls
WO2003001756A1 (en) * 2001-06-22 2003-01-03 Xcurenet Co., Ltd. Method for implementing transparent gateway or proxy in a network
CN1390009A (zh) * 2001-06-01 2003-01-08 普邦科技股份有限公司 网络地址预查方法
JP2003037616A (ja) * 2001-07-25 2003-02-07 Nec Corp 回線インタフェース二重化システム及びそれに用いる回線インタフェース二重化方法
US6563824B1 (en) * 1999-04-20 2003-05-13 3Com Corporation Apparatus and methods for determining the correct workstation within a LAN for a LAN modem to route a packet

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6563824B1 (en) * 1999-04-20 2003-05-13 3Com Corporation Apparatus and methods for determining the correct workstation within a LAN for a LAN modem to route a packet
KR20010018574A (ko) * 1999-08-20 2001-03-05 윤종용 망주소 변환 테이블을 사용한 사설망과 공용망의 망연동 방법 및 이를 위한 기록 매체
WO2001063854A1 (fr) * 2000-02-22 2001-08-30 Nec Corporation Terminal, dispositif relais, procede de communication et programme de communication a cet effet
CN1332552A (zh) * 2000-03-03 2002-01-23 尼克斯兰德公司 使用本地ip地址和不可转换端口地址的局域网的网络地址转换网关
WO2002067531A1 (en) * 2001-02-20 2002-08-29 Eyeball Networks Inc. Method and apparatus to permit data transmission to traverse firewalls
CN1390009A (zh) * 2001-06-01 2003-01-08 普邦科技股份有限公司 网络地址预查方法
WO2003001756A1 (en) * 2001-06-22 2003-01-03 Xcurenet Co., Ltd. Method for implementing transparent gateway or proxy in a network
JP2003037616A (ja) * 2001-07-25 2003-02-07 Nec Corp 回線インタフェース二重化システム及びそれに用いる回線インタフェース二重化方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101730998B (zh) * 2007-07-06 2013-03-06 朗讯科技公司 通过一系列边界网关的网际协议多媒体载体路径最优化的方法和装置
US8520687B2 (en) 2007-07-06 2013-08-27 Alcatel Lucent Method and apparatus for internet protocol multimedia bearer path optimization through a succession of border gateways

Also Published As

Publication number Publication date
CN1602003A (zh) 2005-03-30

Similar Documents

Publication Publication Date Title
CN1118167C (zh) 在网络上用域名路由选择发送数据到目的端的系统和方法
CN1146809C (zh) 综合ip网络
CN1146197C (zh) 多点通信方法和装置
JP4699474B2 (ja) 媒体アクセス制御アドレスの翻訳
CN1255975C (zh) 在路由设备中为分组选择路由的方法
CN1711739A (zh) 支持穿过网络地址转换机制的 6to4遂道协议的方法和设备
CN1216657A (zh) 互联网协议过滤器
CN1777889A (zh) 域名系统中的数据库性能的增强
CN1852297A (zh) 网络数据流识别系统及方法
CN1564989A (zh) Mac地址高速搜索引擎
CN1925452A (zh) 数据转发系统、方法以及网络转发设备
CN101043421A (zh) 一种基于内存的ip地址最长匹配快速查找的方法
CN1317874C (zh) 提供虚拟主机服务快速查询置换的网络地址端口转换网关器与方法
CN1469602A (zh) 在网络环境中压缩标题和复用分组的装置和方法
CN1731758A (zh) 一种网络地址变换方法及其装置
CN1297927C (zh) 具有层次拓扑结构的消息中间件系统及消息传递方法
CN101039234A (zh) 一种分布式dhcp中继的实现方法
CN1777148A (zh) 一种路由表下一跳ip地址到mac地址解析方法
US20050063393A1 (en) Method of network address port translation and gateway using the same
CN1878147A (zh) 平衡网络文件系统服务器多网卡间负载的方法
CN1875573A (zh) 提供能够在不同类型的网络之间进行数据通信的隧道服务的系统
CN1233133C (zh) 一种提高ip报文转发速度的方法
CN1152516C (zh) Ip网络节点发现方法
CN1271833C (zh) 无需ip重组分发分组的装置和方法
CN1960316A (zh) 分片报文的网络地址转换方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20070523

Termination date: 20180927

CF01 Termination of patent right due to non-payment of annual fee