通过网络地址转换来转送封包的方法与装置与流程

文档序号:13688336阅读:279来源:国知局
本发明涉及封包转送机制(packetrelayingmechanism),尤其是涉及一种在一网络系统中通过网络地址转换(networkaddresstranslation)来转送(relay)封包的方法与相关装置。
背景技术
::依据现有技术,一转送服务器(relayserver)可通过利用一虚拟专用网服务器(virtualprivatenetworkserver,可简称为“vpn服务器”)来实施。所述vpn服务器可具有一外部因特网协议地址(externalinternetprotocoladdress,可简称为“外部ip地址”),而多位用户可连上具有所述外部ip的所述vpn服务器,以通过虚拟专用网隧道(virtualprivatenetworktunnel,可简称为“vpn隧道”)互传封包。基于现有技术的架构,可能会发生某些问题。例如:在所述多个用户中的任一用户使用一客户端装置(clientdevice)连上所述vpn服务器之前,所述客户端装置需要事先被安装了额外的软件,诸如虚拟专用网客户端软件(virtualprivatenetworkclientsoftware,可简称为“vpn客户端软件”),这可能为所述用户带来不便。又例如:在这个架构中,当所述客户端装置通过所述vpn服务器以及所述vpn隧道传送封包至一同侪端装置(peerdevice),诸如所述多个用户中的另一用户所使用的另一客户端装置,所述同侪端装置无法知道所述客户端装置的外部ip地址,其中所述同侪端装置所收到的封包的来源ip地址均为所述客户端装置于其vpn连线的私人因特网协议地址(privateinternetprotocoladdress,可简称为“私人ip地址”),而非所述客户端装置的外部ip地址。因此,对于使用所述vpn服务器进行通信的某一用户而言,若需要知道通信中的对方的真实ip,则需要进行涉及防火墙(firewall)的额外设定、或是需要进行某些更复杂的设定,这造成很大的不便。现有技术中的所述转送服务器的实施可能有所变化,但是对于完全地解决全部上述问题,并没有帮助,其中甚至可能出现额外的问题诸如一些副作用。例如:整个架构可能变得更复杂。又例如:某些用户空间应用程序(userspaceapplication)可能需要予以升级。又例如:防火墙可能无法发挥应有的功能,这会有安全性疑虑。因此,需要一种新颖的方法及相关的架构,以在较少副作用、或不造成副作用的状况下,妥善地解决既有的问题。技术实现要素:本发明的目的之一在于公开一种在一网络系统中通过网络地址转换(networkaddresstranslation)来转送(relay)封包的方法与相关装置,以解决上述问题。本发明的另一目的在于公开一种在一网络系统中通过网络地址转换来转送封包的方法与相关装置,以在较少副作用、或不造成副作用的状况下,提升网络系统的整体效能。本发明的至少一实施例中公开一种在一网络系统中通过网络地址转换来转送封包(例如:多个封包)的方法。所述方法可包含:控制一转送服务器(relayserver)从一客户端装置(clientdevice)接收一第一封包,其中所述第一封包载有(carry)一来源因特网协议地址(sourceinternetprotocoladdress,sourceipaddress)与一目的因特网协议地址(destinationinternetprotocoladdress,destinationipaddress);控制所述转送服务器修改所述第一封包所载的所述目的因特网协议地址,以转送所述第一封包至一同侪端装置(peerdevice),其中所述同侪端装置从所述第一封包取得所述来源因特网协议地址;以及控制所述转送服务器从所述同侪端装置接收一第二封包且转送所述第二封包至所述客户端装置。本发明的某些实施例公开一种依据上述方法在所述网络系统中通过网络地址转换来转送所述封包的装置,其中所述装置可包含所述转送服务器的至少一部分(例如:一部分或全部)。例如:所述转送服务器的所述至少一部分可包含一处理电路,用来控制所述转送服务器的运作。又例如:所述转送服务器的所述至少一部分可包含所述转送服务器的全部。本发明于公开上述方法的同时,也对应地公开一种在一网络系统中通过网络地址转换来转送封包(例如:多个封包)的装置。所述装置可包含:一处理电路,位在控制所述网络系统中的一转送服务器,用来控制所述转送服务器的运作。例如:所述转送服务器的所述运作可包含:所述转送服务器从一客户端装置接收一第一封包,其中所述第一封包载有一来源因特网协议地址与一目的因特网协议地址;所述转送服务器修改所述第一封包所载的所述目的因特网协议地址,以转送所述第一封包至一同侪端装置,其中所述同侪端装置从所述第一封包取得所述来源因特网协议地址;以及所述转送服务器从所述同侪端装置接收一第二封包且转送所述第二封包至所述客户端装置。本发明的好处之一是,本发明的方法与相关装置可在较少副作用、或不造成副作用的状况下,妥善地解决既有的问题。另外,本发明的方法与相关装置可提升服务器的负载能力,且可有效提高网络系统的整体效能。此外,本发明的方法与相关装置容许转送服务器对于要传给同侪端装置的封包只修改其目的因特网协议地址(而不修改其来源因特网协议地址),故同侪端装置可以知道客户端装置的真实的因特网协议地址。于是,对同侪端装置而言,转送服务器是透明的,其中,同侪端装置的防火墙和用户空间应用程序都不需要作额外设定。因此,依据本发明的方法与装置所实现的通信(communications)架构对于用户是相当便利的。附图说明图1为依据本发明一实施例的一种网络系统(networksystem)的示意图。图2为图1所示的类网络地址转换转送服务器(networkaddresstranslation(nat)-likerelayserver,可简称为“类nat转送服务器”)在一实施例中所涉及的实施细节。图3为图2所示的处理电路在一实施例中所涉及的控制方案。图4为依据本发明一实施例的一种在一网络系统中通过网络地址转换来转送(relay)封包的方法的流程图。其中,附图标记说明如下:100网络系统110-1,110-2,…,110-n,110-n,110-p客户端装置120类网络地址转换转送服务器210处理电路220网络接口电路400方法410,420,430步骤ip(n),ip(p),ip(r)因特网协议地址tunnel(p,r)隧道dst封包所载的目的因特网协议地址src封包所载的来源因特网协议地址具体实施方式本发明的一或多个实施例提出一种在一网络系统(networksystem)中通过网络地址转换(networkaddresstranslation,nat)来转送(relay)封包的方法与装置。例如:所述网络系统可包含一转送服务器以及连线至这个转送服务器的多个客户端装置(clientdevice)。依据本发明的方法与装置所实现的通信(communications)架构,诸如所述网络系统,对终端用户(enduser)而言是相当方便的,这是因为不需要额外设定、也不需要现有技术中所涉及的各种复杂的设定。基于本发明的通信架构,当所述转送服务器转送一封包时,所述转送服务器可避免同时修改所述封包所载(carry)的所有的因特网协议地址(internetprotocoladdress,可简称为“ip地址”)。例如:所述封包所载的所述ip地址可包含一来源ip地址(sourceipaddress)与一目的ip地址(destinationipaddress),而所述转送服务器可修改所述目的ip地址,而非所述来源ip地址。于是,本发明的通信架构容许所述封包的接收端知道所述封包的传送端的真实的ip,使得所述转送服务器对在所述客户端装置而言是透明的,其中,所述客户端装置的防火墙和用户空间应用程序都不需要作额外设定。因此,依据本发明的方法与装置所实现的通信架构对于用户是相当便利的。图1为依据本发明一实施例的一种网络系统100的示意图。网络系统100可包含多个客户端装置,诸如n个客户端装置{110-1,110-2,…,110-n},其中符号“n”可代表正整数。所述n个客户端装置{110-1,110-2,…,110-n}的例子可包含(但不限于):多功能移动电话(multifunctionalmobilephone)、平板计算机(tablet)、可穿戴装置(wearabledevice)、以及个人计算机(personalcomputer,pc)诸如膝上型计算机与桌面计算机。另外,网络系统100可另包含转送服务器120,其中转送服务器120可为经过特殊设计的一新颖的转送服务器,诸如“类网络地址转换”转送服务器(nat-likerelayserver,可简称为“类nat转送服务器”)。转送服务器120的例子可包含(但不限于):执行至少一预定程序模块的服务器,其中上述至少一预定程序模块包含对应于上述“在所述转送服务器中通过网络地址转换来转送封包的方法”的程序代码。如图1所示,网络系统100可另包含所述n个客户端装置{110-1,110-2,…,110-n}以及转送服务器120之间的n个通信通道(communicationschannel)。依据本实施例,上述“在所述转送服务器中通过网络地址转换来转送封包的装置”可包含网络系统100的至少一部分(例如:一部分或全部),诸如所述n个客户端装置{110-1,110-2,…,110-n}中的一者或多者、所述n个通信通道中的对应的一个或多个通信通道、及/或转送服务器120。另外,转送服务器120可转送(relay)所述n个客户端装置{110-1,110-2,…,110-n}中的任一客户端装置110-n所传送的至少一封包(例如一个或多个封包)至一同侪端装置(peerdevice),诸如所述n个客户端装置{110-1,110-2,…,110-n}中的另一客户端装置110-p,其中符号“n”可代表落入区间[1,n]的范围的正整数,而符号“p”可代表落入区间[1,n]的范围且不等于n的正整数。图2为图1所示的转送服务器120在一实施例中所涉及的实施细节。如图2所示,转送服务器120可包含一处理电路210与一网络接口电路220,其中处理电路210与网络接口电路220是彼此耦接,且均位在控制转送服务器120之内。依据本实施例,网络接口电路220可提供网络服务予转送服务器120(尤其是其内的处理电路210),以容许转送服务器120通过所述n个通信通道分别和所述n个客户端装置{110-1,110-2,…,110-n}进行通信运作。例如:在得知转送服务器120的ip地址(尤其是其外部ip地址)的状况下,客户端装置110-n可连(link)至转送服务器120,以建立客户端装置110-n与转送服务器120之间的通信通道。所述通信运作的进行可基于至少一预定协议(例如:一个或多个预定协议),诸如各种既存的网络协议(networkprotocol)中的一者或多者。所述既存的网络协议的例子可包含(但不限于):因特网协定套组(internetprotocolsuite(ips);其有时可被称为“传输控制协议/因特网协议(transmissioncontrolprotocol/internetprotocol,tcp/ip)”)中的一部分或全部协议,诸如传输控制协议(transmissioncontrolprotocol,可简称为“tcp”)、用户数据报协议(userdatagramprotocol,可简称为“udp”)、…等。另外,处理电路210可控制转送服务器120的运作。例如:处理电路210可包含至少一处理器(例如:一个或多个处理器),而上述的至少一处理器可执行上述的至少一预定程序模块,以控制转送服务器120的所述运作。这只是为了说明的目的而已,并非对本发明的限制。依据某些实施例,处理电路210的实施可予以变化。例如:处理电路210可实施成特殊应用集成电路(application-specificintegratedcircuit,asic),以依据上述“在所述转送服务器中通过网络地址转换来转送封包的方法”控制转送服务器120的所述运作。图3为图2所示的处理电路210在一实施例中所涉及的控制方案。依据所述控制方案,网络系统100中的一发送端诸如客户端装置110-n不需要安装额外的软件,并且,网络系统100中的一接收端诸如客户端装置110-p不需要升级某(些)应用程序来确保所述(些)应用程序的支持性、且不需要针对防火墙的额外设定,故所述控制方案可避免现有技术中的各种问题。依据本实施例,转送服务器120的行为可被设计成具备某些额外的特性,使得客户端装置110-n与110-p各自的用户不需要分别对客户端装置110-n与110-p进行额外设定即可互相传送封包。如图3所示,当转送来自客户端装置110-n的一封包,诸如一第一封包(其可被绘示成一包裹(package),以便于理解),转送服务器120可以仅仅修改此封包所载的目的ip地址dst,而不修改此封包所载的来源ip地址src。例如:客户端装置110-n的ip地址ip(n)可为“100.10.33.45”,而客户端装置110-p的ip地址ip(p)可为“59.120.41.39”,以及转送服务器120的ip地址ip(r)可为“60.2.2.22”。这些ip地址ip(n)、ip(p)与ip(r)可分别为外部ip地址。当客户端装置110-n刚送出此封包时,此封包所载的目的ip地址dst与来源ip地址src分别为ip地址ip(r)与ip(n),诸如图3最右侧所示封包所载的“60.2.2.22”与“100.10.33.45”,其中“7000”与“5000”可作为对应的埠号(portnumber;也可译作“网络端口号码”或“通信端口号码”)的例子。当接收到此封包时,转送服务器120可将此封包所载的目的ip地址dst从ip地址ip(r)修改成客户端装置110-p的ip地址ip(p),诸如图3左上角所示封包所载的“59.120.41.39”其中“8888”可作为对应的埠号的例子。由于转送服务器120避免修改此封包所载的来源ip地址src,故所述同侪端装置诸如客户端装置110-p能够知道客户端装置110-n的外部ip地址(诸如“100.10.33.45”)。例如:当收到此封包时,客户端装置110-p由此封包取得的来源ip地址src是客户端装置110-n的ip地址ip(n),而非转送服务器120的ip地址ip(r)。另外,当客户端装置110-p回传(return)一封包,诸如一第二封包,转送服务器120可提供一默认路径作为封包回传路径。因此,在所述同侪端装置诸如客户端装置110-p不需要额外设定的状况下,所述同侪端装置(例如:客户端装置110-p)所回传的封包就能回传给正确的客户端装置(例如:客户端装置110-n)。基于这个架构,客户端装置110-n与客户端装置110-p各自的操作系统不需要额外设定,客户端装置110-n与客户端装置110-p即可彼此正确地传送封包。请注意,客户端装置110-n不需要通过网络隧道(networktunnel;可简称为“隧道(tunnel)”)连至转送服务器120。只要知道转送服务器120的ip地址ip(r)和端口号,客户端装置110-n即可使用一般的网络协议(例如:图3所示的tcp、udp…等)连上转送服务器120,而转送服务器120可通过利用网络端口转递(portforwarding)来转送封包。因此,客户端装置110-n不需要安装额外软件、也不需要额外设定。另外,隧道tunnel(p,r)可作为上述默认路径的一例。如图3所示,所述同侪端装置诸如客户端装置110-p可通过隧道tunnel(p,r)连至转送服务器120,并且可于进行封包回传时延着隧道tunnel(p,r)回传所述第二封包。也就是说,当所述第二封包从所述同侪端装置诸如客户端装置110-p被往外传送时,所述第二封包预设地会延着隧道tunnel(p,r)回传至转送服务器120。转送服务器120于收到所述第二封包之后,通过修改所述第二封包所载的来源ip地址(从ip地址ip(p)修改成转送服务器120的ip地址ip(r)),就可直接将所述第二封包回传给客户端装置110-n,其中客户端装置110-n所接收到的所述第二封包的来源ip地址是转送服务器120的ip地址ip(r)。在一实施例中,所述同侪端装置诸如客户端装置110-p所送出的所述第二封包可以载有(carry;或夹带)一特定信息。也就是说,所述同侪端装置并不限于只能传送确认(acknowledgement)封包。另外,在客户端装置110-n触发(trigger)图3所示的通信运作的状况下,客户端装置110-n会主动建立从客户端装置110-n到所述同侪端装置(诸如客户端装置110-p)的连线,但所述同侪端装置诸(如客户端装置110-p)不会主动建立像这样的连线。请注意,所述连线是客户端装置110-n所主动发起,而所述同侪端装置诸如客户端装置110-p只是在所述连线被建立起之后,沿着所述连线当中已被建立好的路径回传封包。在某些实施例中,上述“已被建立好的路径”的实施细节可通过例如“来源政策路由(source-policyrouting)”实现的。更详细而言,当所述同侪端装置诸如客户端装置110-p正在和转送服务器120建立隧道tunnel(p,r)时,对客户端装置110-p而言,隧道tunnel(p,r)可视为客户端装置110-p上的一个新的网络接口(networkinterface)。此时,客户端装置110-p中,管理网络封包流动与传送的应用软件(如iptables、ip6tables、arptables、ebtables)可进一步记录,只要来自于ip地址“60.2.2.22”的封包,就从这个网络接口传送回去。如此一来,上述所述第二封包即可沿着“已被建立好的路径”回传。图4为依据本发明一实施例的一种在一网络系统中通过网络地址转换来转送封包的方法400的流程图。方法400可作为上述“在所述转送服务器中通过网络地址转换来转送封包的方法”的一例。另外,方法400可应用于图1所示的转送服务器120,尤其是可应用于图2所示的处理电路210。在处理电路210的控制下,转送服务器120可基于图3所示的控制方案进行上列实施例中的各种运作的至少一部分(例如一部分或全部)。方法400说明如下。在步骤410中,处理电路210控制转送服务器120从客户端装置110-n接收一第一封包诸如上述者,其中所述第一封包载有来源ip地址src与目的ip地址dst。在步骤420中,处理电路210控制转送服务器120仅修改所述第一封包所载的目的ip地址dst,以转送所述第一封包至所述同侪端装置,诸如客户端装置110-p,其中所述同侪端装置从所述第一封包取得来源ip地址src。例如:在处理电路210的控制下,于转送所述第一封包至所述同侪端装置之前,转送服务器120避免修改所述第一封包所载的来源ip地址src,以容许所述同侪端装置从所述第一封包取得来源ip地址src。另外,当修改所述第一封包所载的目的ip地址时dst,转送服务器120将所述第一封包所载的目的ip地址dst修改为所述同侪端装置的ip地址(例如:客户端装置110-p的ip地址ip(p)),诸如所述同侪端装置的外部ip地址(例如:图3所示的“59.120.41.39”)。此外,所述同侪端装置(诸如客户端装置110-p)从所述第一封包所取得的来源ip地址src是客户端装置110-n的ip地址(例如:客户端装置110-n的外部ip地址,诸如图3所示的“100.10.33.45”)。在步骤430中,处理电路210控制转送服务器120从所述同侪端装置诸如客户端装置110-p接收一第二封包诸如上述者、且转送所述第二封包至客户端装置110-n。例如:所述第二封包可从所述同侪端装置(诸如客户端装置110-p)开始、通过转送服务器120、且到达客户端装置110-n,而所述第二封包的这个路径可称为一第二路径。另外,所述第一封包可从客户端装置110-n开始、通过转送服务器120、且到达所述同侪端装置(诸如客户端装置110-p),而所述第一封包的这个路径可称为一第一路径。如此,所述第二路径可以等同于所述第一路径的反向路径。依据某些实施例,因应转送服务器120的触发,转送服务器120与所述同侪端装置之间的一隧道(诸如隧道tunnel(p,r))被建立,以容许所述第二封包自动地被转送服务器120转送。例如:基在所述来源政策路由控制,针对来自所述隧道的所有的封包,所述同侪端装置因应这些封包而传送出来的响应封包全被导向所述隧道。由在所述第一封包属于来自所述隧道的这些封包,当所述同侪端装置因应所述第一封包而传送出所述第二封包时,所述第二封包被导向所述隧道,诸如图3所示的隧道tunnel(p,r)。另外,在所述同侪端装置(诸如客户端装置110-p)从所述第一封包所取得的来源ip地址src是客户端装置110-n的ip地址ip(n)的状况下,所述同侪端装置可利用客户端装置110-n的ip地址ip(n)作为所述第二封包所载的一目的ip地址。于是,当收到所述第二封包时,转送服务器120可依据所述第二封包所载的这个目的ip地址,将所述第二封包传回客户端装置110-n。在一些实施方式中,转送服务器120在转送所述第二封包之前,会将所述第二封包的来源ip地址改成转送服务器120自己的ip地址,才回传给客户端装置110-n。对客户端装置110-n而言,它可能无法直接连(link)至所述同侪端装置,所以才需要通过转送服务器120来和所述同侪端装置进行通信。假设转送服务器120在回传所述第二封包给客户端装置110-n之前不修改所述第二封包的来源ip地址,则客户端装置110-n可能会认为所述第二封包来自所述同侪端装置。因此,某些实施方式的客户端装置110-n会尝试直接传送下一个封包给所述同侪端装置,而非通过转送服务器120传送所述下一个封包。由于客户端装置110-n无法直接连(link)至所述同侪端装置,故尝试直接传送所述下一个封包给所述同侪端装置(而非通过转送服务器120传送所述下一个封包)就导致失灵(malfunction)。因此,在这些实施例中,转送服务器120在转送所述第二封包之前,会将所述第二封包的来源ip地址改成转送服务器120自己的ip地址。依据某些实施例,上述“在所述转送服务器中通过网络地址转换来转送封包的装置”可包含转送服务器120的至少一部分(例如:一部分或全部),且可依据方法400于网络系统100中通过网络地址转换来转送所述封包。例如:转送服务器120的上述至少一部分可包含处理电路210,其中处理电路210可用来控制转送服务器120的运作。又例如:转送服务器120的上述至少一部分可包含转送服务器120的全部。依据某些实施例,所述同侪端装置(诸如客户端装置110-p)从所述第一封包所取得的来源ip地址src可用来进行所述来源政策路由控制。依据某些实施例,所述第一封包可代表客户端装置110-n的用户的一第一信息,且所述第二封包可代表所述同侪端装置的用户的一第二信息,其中这两位用户正在彼此传递信息。依据某些实施例,所述第二封包可为用来回应所述第一封包的确认(acknowledgement)封包,但本发明不以此为限。依据某些实施例,转送服务器120与所述同侪端装置之间的所述隧道(诸如隧道tunnel(p,r))可通过利用虚拟专用网隧道(virtualprivatenetworktunnel,可简称为“vpn隧道”)来实施。依据某些实施例,转送服务器120与所述同侪端装置之间的所述隧道(诸如隧道tunnel(p,r))可通过利用其它类型的网络隧道中的任一者来实施,诸如点对点隧道协议(pointtopointtunnelingprotocol,pptp)、第二层隧道协议(layertwotunnelingprotocol,l2tp)、因特网安全协定(internetprotocolsecurity,ipsec)等。相较于现有技术,本发明有诸多的优点;概述如下:转送服务器120的行为(诸如上列实施例中所述的各种运作)能提升转送服务器120的负载能力。另外,客户端装置110-n不需要额外地安装软件即可和转送服务器120连线。此外,转送服务器120对于要传给所述同侪端装置(诸如客户端装置110-p)的封包只修改这些封包的目的ip地址,且避免修改这些封包的来源ip地址,以容许所述同侪端装置知道客户端装置110-n的真实的ip地址。如此,对所述同侪端装置(诸如客户端装置110-p)而言,转送服务器120是透明的,并且所述同侪端装置的防火墙和用户空间应用程序都不需要进行额外的设定。因此,依据上列所述实施例中的任一者所实现的通信架构能为众多用户(诸如所述n个客户端装置{110-1,110-2,…,110-n}各自的用户)带来极大的便利。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1