CN111193813B - 确定nat类型的测试请求处理方法、装置和计算机设备 - Google Patents

确定nat类型的测试请求处理方法、装置和计算机设备 Download PDF

Info

Publication number
CN111193813B
CN111193813B CN201911018170.1A CN201911018170A CN111193813B CN 111193813 B CN111193813 B CN 111193813B CN 201911018170 A CN201911018170 A CN 201911018170A CN 111193813 B CN111193813 B CN 111193813B
Authority
CN
China
Prior art keywords
packet
address
server
port
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.)
Active
Application number
CN201911018170.1A
Other languages
English (en)
Other versions
CN111193813A (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201911018170.1A priority Critical patent/CN111193813B/zh
Publication of CN111193813A publication Critical patent/CN111193813A/zh
Application granted granted Critical
Publication of CN111193813B publication Critical patent/CN111193813B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • H04L61/2575NAT traversal using address mapping retrieval, e.g. simple traversal of user datagram protocol through session traversal utilities for NAT [STUN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请涉及一种确定NAT类型的测试请求处理方法、装置、计算机可读存储介质和计算机设备,方法包括:接收客户端发送的测试包,测试包中包括目的因特网协议IP地址和目的端口,回包IP地址和回包端口;将测试包发送给与目的端口及目的IP地址绑定的第一服务器集群,第一服务器集群中存在至少两个服务器绑定目的IP地址;当目的端口与回包端口相同时,接收第一服务器集群中的服务器根据测试包返回的第一应答包,第一应答包中包括第一服务器集群中的服务器反馈的客户端的IP地址和端口;将第一应答包通过回包IP地址和回包端口返回给客户端。本申请提供的方案可以实现实现IP地址资源的共享。

Description

确定NAT类型的测试请求处理方法、装置和计算机设备
技术领域
本申请涉及计算机技术领域,特别是涉及一种确定NAT类型的测试请求处理方法、装置、计算机可读存储介质和计算机设备。
背景技术
随着计算机技术的发展,需要的因特网协议(Internet Protocol,简称IP)地址资源也越来越多,网络地址转换(Network Address Translation,简称NAT)因此而出现。NAT类型往往通过STUN(Simple Traversal of User Datagram Protocal Through NetworkAddress Translation,流协议穿透NAT的协议)测试方法确定,即方法通过STUN客户端发送测试包给STUN服务器,由STUN服务器反馈客户端的IP和端口。传统的STUN测试方法能够有效检测出NAT类型,但在STUN服务器端的实现方面基本上还是依赖于在双网卡物理机上部署服务,并且需要每台服务器至少要有一个独立外网IP,造成IPv4地址资源的浪费。
发明内容
基于此,有必要针对IP地址资源的浪费的技术问题,提供一种确定NAT类型的测试请求处理方法、装置、计算机可读存储介质和计算机设备。
一种确定NAT类型的测试请求处理方法,包括:
接收客户端发送的测试包,所述测试包中包括目的因特网协议IP地址和目的端口,回包IP地址和回包端口;
将所述测试包发送给与所述目的端口及所述目的IP地址绑定的第一服务器集群,所述第一服务器集群中存在至少两个服务器绑定所述目的IP地址;
当所述目的端口与所述回包端口相同时,接收所述第一服务器集群中的服务器根据所述测试包返回的第一应答包,所述第一应答包中包括所述第一服务器集群中的服务器反馈的客户端的IP地址和端口;
将所述应答包通过所述回包IP地址和所述回包端口返回给所述客户端。
一种确定NAT类型的测试请求处理装置,所述装置包括:
测试包接收模块,用于接收客户端发送的测试包,所述测试包中包括目的因特网协议IP地址和目的端口,回包IP地址和回包端口;
发送模块,用于将所述测试包发送给与所述目的端口及所述目的IP地址绑定的第一服务器集群,所述第一服务器集群中存在至少两个服务器绑定所述目的IP地址;
应答包接收模块,用于当所述目的端口与所述回包端口相同时,接收所述第一服务器集群中的服务器根据所述测试包返回的第一应答包,所述第一应答包中包括所述第一服务器集群中的服务器反馈的客户端的IP地址和端口;
返回模块,用于将所述应答包通过所述回包IP地址和所述回包端口返回给所述客户端。
一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如下步骤:
接收客户端发送的测试包,所述测试包中包括目的因特网协议IP地址和目的端口,回包IP地址和回包端口;
将所述测试包发送给与所述目的端口及所述目的IP地址绑定的第一服务器集群,所述第一服务器集群中存在至少两个服务器绑定所述目的IP地址;
当所述目的端口与所述回包端口相同时,接收所述第一服务器集群中的服务器根据所述测试包返回的第一应答包,所述第一应答包中包括所述第一服务器集群中的服务器反馈的客户端的IP地址和端口;
将所述应答包通过所述回包IP地址和所述回包端口返回给所述客户端。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:
接收客户端发送的测试包,所述测试包中包括目的因特网协议IP地址和目的端口,回包IP地址和回包端口;
将所述测试包发送给与所述目的端口及所述目的IP地址绑定的第一服务器集群,所述第一服务器集群中存在至少两个服务器绑定所述目的IP地址;
当所述目的端口与所述回包端口相同时,接收所述第一服务器集群中的服务器根据所述测试包返回的第一应答包,所述第一应答包中包括所述第一服务器集群中的服务器反馈的客户端的IP地址和端口;
将所述应答包通过所述回包IP地址和所述回包端口返回给所述客户端。
上述确定NAT类型的测试请求处理方法、装置、计算机可读存储介质和计算机设备,通过接收客户端发送的测试包,测试包中包括目的因特网协议IP地址和目的端口,回包IP地址和回包端口,将测试包发送给与目的端口及目的IP地址绑定的第一服务器集群,第一服务器集群中存在至少两个服务器绑定目的IP地址,当目的端口与回包端口相同时,接收第一服务器集群中的服务器根据测试包返回的第一应答包,第一应答包中包括第一服务器集群中的服务器反馈的客户端的IP地址和端口,将应答包通过回包IP地址和回包端口返回给客户端,使得至少两个服务器可共用相同的IP地址,从而在处理确定NAT类型的测试请求时可实现IP地址资源的共享,节省IP地址资源。
附图说明
图1为一个实施例中确定NAT类型的测试请求处理方法的应用环境图;
图2为一个实施例中确定NAT类型的测试请求处理方法的流程示意图;
图3为一个实施例中接收第一服务器集群中的服务器返回的第一应答包的步骤的流程示意图;
图4为一个实施例中转发内部消息的步骤的流程示意图;
图5为一个实施例中通过第一服务器集群转发内部消息的给第二服务器集群的步骤的流程示意图;
图6为一个实施例中网关设备将客户端发送的IP数据包作为包体封装到另一个IP网络层数据包的示意图;
图7为一个实施例中STUN服务器的处理逻辑的示意图;
图8为一个实施例中确定NAT类型的测试请求处理方法的原理图;
图9为另一个实施例中确定NAT类型的测试请求处理装置的结构框图;
图10为一个实施例中计算机设备的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
图1为一个实施例中确定NAT类型的测试请求处理方法的应用环境图。参照图1,该确定NAT类型的测试请求处理方法应用于确定NAT类型的测试请求处理系统。该确定NAT类型的测试请求处理系统包括终端110、网关设备120、服务器集群130和服务器集群140。终端110和网关设备120通过外网连接,网关设备120和服务器集群130及服务器集群140通过内网连接,服务器集群130及服务器集群140通过内网连接。终端110具体可以是台式终端或移动终端,移动终端具体可以手机、平板电脑、笔记本电脑等中的至少一种。该服务器集群130和服务器集群140分别由至少两个服务器组成。
在本实施例中,该第一服务器集群130和第二服务器集群140均绑定相同的IP地址,并且第一服务器集群130和第二服务器集群140分别绑定不同的端口。客户端所在的终端110将确定NAT类型的测试请求打包为测试包,通过终端110将该测试包发送给网关设备120。网关设备120接收客户端所在的终端110发送的测试包,测试包中包括目的因特网协议IP地址和目的端口,回包IP地址和回包端口。接着,网关设备120将测试包发送给与目的端口及目的IP地址绑定的第一服务器集群130,第一服务器集群130中存在至少两个服务器绑定目的IP地址。第一服务器集群130接收该测试包,当该目的端口与回包端口相同时,该第一服务器集群130中的服务器根据测试包生成第一应答包,第一应答包中包括第一服务器集群中的服务器反馈的客户端的IP地址和端口。该第一服务器集群130将该第一应答包通过IP隧道发送给网关设备120。网关设备120接收该第一应答包,并将该第一应答包通过回包IP地址和回包端口返回给客户端所在的终端110。
在本实施例中,当目的端口与回包端口不相同时,该第一服务器集群130根据测试包生成内部消息。该第一服务器集群130确定与该回包端口和回包IP地址绑定的第二服务器集群140。接着,该第一服务器集群130通过内网将该内部消息转发给与回包端口及回包IP地址绑定的第二服务器集群140。第二服务器集群140接收该内部消息,第二服务器集群140中的服务器根据该内部消息生成第二应答包,第二应答包中包括第二服务器集群中的服务器反馈的客户端的IP地址和端口。接着,第二服务器集群140将该第二应答包通过IP隧道发送给该网关设备120。该网关设备120接收该第二应答包,将第二应答包通过回包IP地址和回包端口返回给客户端所在的终端110。通过多个服务器共享相同的IP地址,能够极大地节省IP地址资源。
如图2所示,在一个实施例中,提供了一种确定NAT类型的测试请求处理方法。本实施例主要以该方法应用于上述图1中的网关设备120来举例说明。参照图2,该确定NAT类型的测试请求处理方法具体包括如下步骤:
步骤202,接收客户端发送的测试包,该测试包中包括目的因特网协议IP地址和目的端口,回包IP地址和回包端口。
其中,测试包是用于确定NAT类型的测试请求包,该测试包中包括目的因特网协议IP地址和目的端口,回包IP地址和回包端口。目的因特网协议IP地址即目的IP地址,目的IP地址为网关设备和客户端连接的外网IP地址。目的端口为网关设备和客户端连接的外网端口。回包IP地址为返回应答包的IP地址,回包端口为返回应答包的端口。
具体地,客户端所在的终端将确定NAT类型的测试请求打包为测试包,通过该客户端所在的终端将该测试包发送至目的IP地址和目的端口号。该网关设备从该目的IP地址和目的端口号接收该测试包。
步骤204,将该测试包发送给与该目的端口及该目的IP地址绑定的第一服务器集群,该第一服务器集群中存在至少两个服务器绑定该目的IP地址。
其中,第一服务器集群中存在至少两个服务器。该第一服务器集群中的各个服务器均绑定相同的端口,该第一服务器集群中存在至少两个服务器绑定同一个的IP地址。在本实施例中,第一服务器集群中存在至少两个服务器绑定该目的IP地址。
具体地,网关设备获取三元组,该三元组中记录了IP地址和端口所绑定的服务器集群。网关设备将该三元组的中IP地址和端口与该目的端口和目的IP地址进行匹配,三元组中的IP地址和端口均与目的端口和目的IP地址相同则表示匹配成功。匹配成功的三元的中的IP地址和端口对应的服务器集群即为该目的端口和目的IP地址绑定的服务器集群,即第一服务器集群。
例如,该三元组由(VIP,VPort,protocol)组成,VIP指虚拟IP地址,VPort指虚拟端口,protocol指客户端和网关设备之间的通信协议,比如UDP协议。三元组与服务器集群具有对应关系,例如(VIP1,VPort1,protocol)对应服务器集群A,(VIP2,VPort2,protocol)对应服务器集群B。当目的IP为IP1,目的端口为Port1时,网关设备通过三元组可确定与该(IP1,Port1)对应的服务器集群为A,则该服务器集群为A绑定(IP1,Port1)。
接着,网关设备将该测试包发送给与该目的端口及该目的IP地址绑定的第一服务器集群,该第一服务器集群中存在至少两个服务器绑定该目的IP地址。
步骤206,当该目的端口与该回包端口相同时,接收该第一服务器集群中的服务器根据该测试包返回的第一应答包,该第一应答包中包括该第一服务器集群中的服务器反馈的客户端的IP地址和端口。
其中,服务器反馈的客户端的IP地址和端口是指服务器解析该测试包后得到的发送该测试包的客户端的IP地址和端口号。
具体地,网关设备将该测试包发送给与该目的端口及该目的IP地址绑定的第一服务器集群后,第一服务器集群中的服务器对该测试包进行解析,得到回包IP地址和回包端口号,以及客户端的IP地址和端口。接着,第一服务器集群中的服务器将该目的端口与该回包端口进行对比。当该目的端口与该回包端口相同时,第一服务器集群中的服务器将解析得到的客户端的IP地址和端口作为反馈的该客户端的IP地址和端口,从而反馈的该客户端的IP地址和端口,回包IP地址和回包端口生成第一应答包,并将生成的第一应答包返回给网关设备。该网关设备接收该第一服务器集群中的服务器返回的第一应答包。
步骤208,将该第一应答包通过该回包IP地址和该回包端口返回给该客户端。
具体地,网关设备从第一服务器集群接收返回的第一应答包后,可对该第一应答包进行初步解析,得到回包的IP地址和回包的端口号。接着,网关设备通过该回包IP地址从该回包端口号对应的端口将该第一应答包返回给客户端所在的终端。
上述确定NAT类型的测试请求处理方法,通过接收客户端发送的测试包,测试包中包括目的IP地址和目的端口,回包IP地址和回包端口,将测试包发送给与目的端口及目的IP地址绑定的第一服务器集群,第一服务器集群中存在至少两个服务器绑定目的IP地址,当目的端口与回包端口相同时,接收第一服务器集群中的服务器根据测试包返回的第一应答包,第一应答包中包括第一服务器集群中的服务器反馈的客户端的IP地址和端口,将第一应答包通过回包IP地址和回包端口返回给客户端,通过不同的服务器绑定相同IP地址,实现IP地址资源的共享。使得多个服务器在接收确定NAT类型的测试请求时,可通过相同的外网IP地址处理测试请求,解决传统方法中每个服务器均需要独立的外网IP的问题。
在一个实施例中,该将该测试包发送给与该目的端口及该目的IP地址绑定的第一服务器集群,该第一服务器集群中存在至少两个服务器绑定该目的IP地址,包括:当该第一服务器集群中存在至少两个服务器与该目的IP地址绑定时,通过轮询方式从该至少两个服务器中选择服务器;将该测试包发送给所选择的服务器。
其中,轮询是一种用于解决服务器压力过大的方式,轮询算法的原理是将来自客户端的请求轮流分配给内部中的服务器。
具体地,网关设备确定与该目的端口及该目的IP地址绑定的第一服务器集群。该第一服务器集群中的各个服务器均与该目的端口绑定,则该网关设备确定该第一服务器集群中与该目的IP地址绑定的服务器的数量。当该第一服务器集群中存在至少两个服务器与该目的IP地址绑定时,网关设备可确定至少两个服务器中每个服务器处理测试包的顺序,按照顺序选择出服务器。网关设备将测试包发送给送选择的服务器进行处理。
上述实施例中,当该第一服务器集群中存在至少两个服务器与该目的IP地址绑定时,通过轮询方式从该至少两个服务器中选择服务器,将该测试包发送给所选择的服务器,从而在服务器共享IP地址资源的同时,能够快速选择处理请求的服务器,从而快速完成响应。
在一个实施例中,该将该测试包发送给与该目的端口及该目的IP地址绑定的第一服务器集群,该第一服务器集群中存在至少两个服务器绑定该目的IP地址,包括:当该第一服务器集群中存在至少两个服务器与该目的IP地址绑定时,获取历史测试包发送到该至少两个服务器中的每个服务器的历史耗时;将该测试包发送给历史耗时最短的服务器。
具体地,网关设备确定与该目的端口及该目的IP地址绑定的第一服务器集群。该第一服务器集群中的各个服务器均与该目的端口绑定,则该网关设备确定该第一服务器集群中与该目的IP地址绑定的服务器的数量。当该第一服务器集群中存在至少两个服务器与该目的IP地址绑定时,网关设备可获取该至少两个服务器中的每个服务器的历史数据。该历史数据中记录了网关设备发送测试包到指定服务器所使用的时间。通过该至少两个服务器中的每个服务器的历史数据,可获取网关设备发送测试包到该至少两个服务器中的每个服务器所使用的时间,即历史耗时。接着,网关设备将该至少两个服务器中的每个服务器对应的历史耗时进行对比,确定历史耗时最短的服务器。接着,网关设备将该测试包发送给历史耗时最短的服务器。
本实施例中,当该第一服务器集群中存在至少两个服务器与该目的IP地址绑定时,获取历史测试包发送到该至少两个服务器中的每个服务器的历史耗时,将该测试包发送给历史耗时最短的服务器,从而能够快速将测试到发送至服务器进行处理,快速实现响应。
在一个实施例中,该将该测试包发送给与该目的端口及该目的IP地址绑定的第一服务器集群,该第一服务器集群中存在至少两个服务器绑定该目的IP地址,包括:当该第一服务器集群中存在至少两个服务器与该目的IP地址绑定时,确定至少两个服务器中的每个服务器待处理的任务量;将该测试包发送给给待处理的任务量最少的服务器。
具体地,网关设备确定与该目的端口及该目的IP地址绑定的第一服务器集群。该第一服务器集群中的各个服务器均与该目的端口绑定,则该网关设备确定该第一服务器集群中与该目的IP地址绑定的服务器的数量。当该第一服务器集群中存在至少两个服务器与该目的IP地址绑定时,网关设备确定至少两个服务器中的每个服务器待处理的任务量,将各服务器对应的待处理的任务量进行对比,确定待处理的任务量最少的服务器。接着,网关设备可将该测试包发送给至少两个服务器中的待处理的任务量最少的服务器,以快速完成对测试包的处理。
在一个实施例中,如图3所示,当该目的端口与该回包端口相同时,接收该第一服务器集群中的服务器根据该测试包返回的第一应答包,包括:
步骤302,当该目的端口与该回包端口相同时,将该目的IP地址与该回包IP地址进行比较。
具体地,网关设备将该测试包发送给第一服务器集群中所选择的服务器。第一服务器集群中的被选择的服务器接收到测试包后,对该测试包进行解析,得到回包端口和回包IP地址。该服务器可将目的端口与回包端口进行比较,以确定两者是否相同。当目的端口与该回包端口相同时,可确定由该第一服务器集群中的服务器进行回包,进一步地,可确定由接收了测试包的服务器进行回包。则进一步将目的IP地址与该回包IP地址进行比较,以确定是否需要对被选择的服务器的IP地址进行转换。
步骤304,当该目的IP地址与该回包IP地址不相同,且该回包IP地址绑定该第一服务器集群时,接收第一应答包,该第一应答包是接收该测试包的服务器将该目的IP地址转换为该回包IP地址,并根据该回包IP地址和该测试包生成的。
具体地,当目的端口与该回包端口相同时,可确定由接收了测试包的服务器进行回包。当该目的IP地址与该回包IP地址不相同时,表示接收了测试包的服务器需要进行IP转换,将目的IP地址转换为回包IP地址。接着,该接收了测试包的服务器将目的IP地址转换为回包IP地址,并获取回包端口、测试包中得到的客户端的IP地址和端口,该测试包中得到的客户端的IP地址和端口作为该服务器反馈的客户端的IP地址和端口。将回包IP地址、回包端口、该服务器反馈的客户端的IP地址和端口打包封装得到第一应答包。该接收了测试包的服务器将第一应答包通过IP隧道返回给网关设备。网关设备从该IP隧道接收该服务器返回的第一应答包。
步骤306,当该目的IP地址与该回包IP地址相同时,接收第一应答包,该第一应答包是接收该测试包的服务器根据该回包地址和该测试包生成的。
具体地,当目的端口与该回包端口相同时,可确定由接收了测试包的服务器进行回包。当该目的IP地址与该回包IP地址相同时,可判定需要将应答包原路返回给客户端,即将应答包通过目的端口和目的地址返回至客户端。则该接收了测试包的服务器无需进行IP地址的转换,可将目的端口和目的地址作为回包端口和回包IP,获取自身反馈的客户端的IP地址和端口,打包封装为第一应答包。该服务器将第一应答包通过IP隧道返回给网关设备。网关设备从该IP隧道接收该服务器返回的第一应答包。
上述实施例中,当该目的端口与该回包端口相同时,将该目的IP地址与该回包IP地址进行比较,当该目的IP地址与该回包IP地址不相同,且该回包IP地址绑定该第一服务器集群时,接收第一应答包,该第一应答包是接收该测试包的服务器将该目的IP地址转换为该回包IP地址,并根据该回包IP地址和该测试包生成的;当该目的IP地址与该回包IP地址相同时,接收第一应答包,该第一应答包是接收该测试包的服务器根据该回包地址和该测试包生成的;在目的端口与回包端口相同的情形下,比较目的IP地址与回包IP地址,以确实是否需要进行IP地址的转换处理,从而可通过同一个服务器完成两个IP地址之间的转换,快速准确地完成测试指令。
在一个实施例中,如图4所示,该方法还包括:
步骤402,当该目的端口与该回包端口不相同时,通过该第一服务器集群根据该测试包生成内部消息。
其中,内部消息为一个服务器集群通过内网向另一个服务器集群发送的消息,该内部消息中包括回包IP地址和回包端口,以及服务器反馈的客户端的IP地址和端口号。
具体地,第一服务器集群中接收了测试包的服务器将该目的端口和回包端口进行对比,当目的端口和回包端口不相同时,该接收了测试包的服务器从该测试包中获取回包IP地址和回包端口,以及客户端的IP地址和端口号。根据回包IP地址和回包端口,以及客户端的IP地址和端口号生成内部消息,该内部消息中同样包含了回包IP地址和回包端口,以及客户端的IP地址和端口号这些信息。
步骤404,通过该第一服务器集群将该内部消息转发给与该回包端口及该回包IP地址绑定的第二服务器集群。
具体地,接收了测试包的服务器可获取路由表,从路由表中确定该回包端口和回包IP地址所绑定的服务器集群,即第二服务器集群。接着,第一服务器集群中接收了测试包的服务器将内部消息通过内网发送给第二服务器集群。
步骤406,接收该第二服务器集群中的服务器根据该内部消息返回的第二应答包,该第二应答包中包括该第二服务器集群中的服务器反馈的客户端的IP地址和端口。
具体地,第一服务器集群中接收了测试包的服务器将该内部消息发送给第二服务器集群后,第二服务器集群中的服务器对该内部消息进行解析,得到回包IP地址和回包端口号,以及客户端的IP地址和端口。接着,第二服务器集群中的服务器将该解析得到的客户端的IP地址和端口作为该服务器反馈的客户端的IP地址和端口。并根据该内部消息生成第二应答包,该第二应答包中包含回包IP地址和回包端口号,以及第二服务器集群中的服务器反馈的客户端的IP地址和端口。第二服务器集群中接收了该内部消息的服务器生成该第二应答包后,将该第二应答包通过IP隧道返回给网关设备。该网关设备接收该第二服务器集群中的服务器返回的第一应答包。
步骤408,将该第二应答包通过该回包IP地址和该回包端口返回给该客户端。
具体地,网关设备从IP隧道接收第二服务器集群返回的第二应答包后,可对该第二应答包进行初步解析,得到回包的IP地址和回包的端口号。接着,网关设备通过该回包IP地址从该回包端口号对应的端口将该第二应答包返回给客户端所在的终端。
本实施例中,当该目的端口与该回包端口不相同时,通过该第一服务器集群根据该测试包生成内部消息,通过该第一服务器集群将该内部消息转发给与该回包端口及该回包IP地址绑定的第二服务器集群,接收该第二服务器集群中的服务器根据该内部消息返回的第二应答包,该第二应答包中包括该第二服务器集群中的服务器反馈的客户端的IP地址和端口,将该第二应答包通过该回包IP地址和该回包端口返回给该客户端。当端口不同时,通过集群间的内网转发内部消息,以使服务器可根据正确的回包IP地址和回包端口完成回包,从而准确完成响应。
在一个实施例中,如图5所示,该通过该第一服务器集群将该内部消息转发给与该回包端口及该回包IP地址绑定的第二服务器集群,包括:
步骤502,确定与该回包端口绑定的第二服务器集群。
具体地,第一服务器集群中生成内部消息的服务器可获取路由表,从路由表中确定该回包端口和回包IP地址所绑定的服务器集群,即第二服务器集群。
在本实施例中,服务器集群之间的消息转发可通过路由系统实现,路由系统的具体实现包括server、agent和api,业务侧需要在server端预先配置好每个集群名字下挂载的服务器ip标识,agent会自动从server同步配置,业务stun server通过api查询对称集群的服务地址,拿到一个可用节点的ip-port。
步骤504,确定该第二服务器集群中与该回包IP地址绑定的服务器。
步骤506,通过该第一服务器集群将该内部消息发送给该第二服务器集群中与该回包IP地址绑定的服务器。
具体地,该第二服务器集群中的各服务器均与回包端口绑定,并且该第二服务器集群中至少存在一个服务器与该回包IP地址绑定。第一服务器集群中生成内部消息的服务器可确定该第二服务器集群中与该回包IP地址绑定的服务器的数量。当该第二服务器集群中仅存在一个服务器与该回包IP地址绑定时,第一服务器集群中生成内部消息的服务器可将该内部消息发送给与该回包IP地址绑定的服务器。
进一步地,当该第二服务器集群中至少存在两个服务器与该回包IP地址绑定时,第一服务器集群中生成内部消息的服务器可从至少两个服务器中选择一个服务器,并将该内部消息发送给所选择的服务器。
上述实施例中,确定与该回包端口绑定的第二服务器集群,确定该第二服务器集群中与该回包IP地址绑定的服务器,通过该第一服务器集群将该内部消息发送给该第二服务器集群中与该回包IP地址绑定的服务器,可实现回包端口的转换,从而完成回包处理。
在一个实施例中,当该第二服务器集群中存在至少两个服务器与该回包IP地址绑定时,该通过该第一服务器集群将该内部消息发送给该第二服务器集群中与该回包IP地址绑定的服务器,包括:当该第二服务器集群中存在至少两个服务器与该回包IP地址绑定时,确定该至少两个服务器中的每个服务器待处理的任务量;通过该第一服务器集群将该内部消息发送给该待处理的任务量最少的服务器。
具体地,当该第二服务器集群中存在至少两个服务器与该回包IP地址绑定时,第一服务器集群中生成内部消息的服务器可从至少两个服务器中选择一个服务器。进一步地,生成内部消息的服务器可确定至少两个服务器中的每个服务器待处理的任务量,将各服务器对应的待处理的任务量进行对比,确定待处理的任务量最少的服务器作为所选择的服务器。接着,生成内部消息的服务器可将该内部消息发送给至少两个服务器中的待处理的任务量最少的服务器,以快速实现端口的转换,并完成对测试包的转发处理,从而快速回包。
在一个实施例中,当该第二服务器集群中存在至少两个服务器与该回包IP地址绑定时,该通过该第一服务器集群将该内部消息发送给该第二服务器集群中与该回包IP地址绑定的服务器,包括:当该第二服务器集群中存在至少两个服务器与该回包IP地址绑定时,通过轮询方式从该至少两个服务器中选择服务器;将该内部消息发送给所选择的服务器。
具体地,生成内部消息的服务器确定与该目的端口及该目的IP地址绑定的第二服务器集群。该第二服务器集群中的各个服务器均与该目的端口绑定,则该网关设备确定该第二服务器集群中与该目的IP地址绑定的服务器的数量。当该第二服务器集群中存在至少两个服务器与该目的IP地址绑定时,网关设备可确定至少两个服务器中每个服务器处理内部消息的顺序,按照顺序选择出服务器。接着,第一服务器集群中生成内部消息的服务器将内部消息发送给送选择的服务器进行处理。
上述实施例中,当该第二服务器集群中存在至少两个服务器与该回包IP地址绑定时,通过轮询方式从该至少两个服务器中选择服务器,将该内部消息发送给所选择的服务器,从而在服务器共享IP地址资源的同时,能够快速选择处理请求的服务器,从而快速完成响应。
在一个实施例中,当该第二服务器集群中存在至少两个服务器与该回包IP地址绑定时,该通过该第一服务器集群将该内部消息发送给该第二服务器集群中与该回包IP地址绑定的服务器,包括:当该第二服务器集群中存在至少两个服务器与该回包IP地址绑定时,获取历史内部消息发送到该至少两个服务器中的每个服务器的历史耗时;将该内部消息发送给历史耗时最短的服务器。
具体地,当该第二服务器集群中存在至少两个服务器与该回包IP地址绑定时,生成内部消息的服务器可确定至少两个服务器中的每个服务器的历史测试数据。该历史测试数据中记录了第一服务器集群中的服务器发送内部消息到第二集群中的服务器所使用的时间。通过该至少两个服务器中的每个服务器的历史测试数据,可获取第一服务器集群中的服务器发送内部消息到该至少两个服务器中的每个服务器所使用的时间,即历史耗时。接着,生成内部消息的服务器将该至少两个服务器中的每个服务器对应的历史耗时进行对比,确定历史耗时最短的服务器。接着,生成内部消息的服务器将该内部消息发送给历史耗时最短的服务器。
本实施例中,当该第二服务器集群中存在至少两个服务器与该回包IP地址绑定时,获取历史内部消息发送到该至少两个服务器中的每个服务器的历史耗时,将该内部消息发送给历史耗时最短的服务器,从而能够快速将测试到发送至服务器进行处理,快速实现响应。
在一个实施例中,该第一服务器集群和该第二服务器集群绑定相同的IP地址。具体地,第一服务器集群和第二服务器集群均绑定相同的IP地址,则第一服务器集群和第二服务器集群中的服务器可使用相同的IP地址对客户端的测试包进行处理,从而在处理确定NAT类型的测试请求时可实现IP地址资源的共享。
在一个实施例中,该第一服务器集群和该第二服务器集群绑定相同的IP地址,该第一服务器集群和该第二服务器集群分别绑定不同的端口。
具体地,该第一服务器集群和该第二服务器集群绑定相同的IP地址,该第一服务器集群和该第二服务器集群分别绑定不同的端口,当网关设备接收到客户端发送的测试包时,可直接将测试包发送给与目的端口绑定的服务器集群,由服务器集群完成转发或回包。本实施例中的确定NAT类型的测试请求处理方法,可将独立的服务器集群化,使得同一服务器集群中的服务器可共享端口,共享IP资源。同时去除了对双网卡物理机器的依赖,本实施例的方法可将传统方法使用的11台物理机共消耗的22个外网IP,降低到6个外网IP,并且两个服务器集群均可无限平行扩容,服务可以安全上云,运维更加方便。
本实施例中的网关设备可实现负载均衡,透明多通,异常RS自动踢除,防DDos攻击等功能。在本实施例中主要用到了4层网络转发功能,提供对外服务的VIP。网关设备的4层网络转发原理是使用了IP隧道(IP Tunnel)技术,在数据收发两端都需要安装隧道协议。通过三元组(vip+vport+protocol)来识别业务,把VIP:VPORT:PROTO同RSIP:RSPORT联系起来,在客户端发送的IP数据包到达网关设备并接入后,网关设备节点会把网络层数据包作为包体封装到另一个IP网络层数据包中,包头则记录了两端的进入地址和目的地址,以及隧道离开的位置。如图6所述,为网关设备将客户端发送的IP数据包作为包体封装到另一个IP网络层数据包的示意图。图6(a)为服务器所看到的测试包,IP Header即IP包头,其中包含测试包的目的IP地址和目的端口号,IP Data即IP数据,其中包含测试指令,客户端的IP地址和端口号、回包IP地址和回包端口号、以及包类型,STUN协议等数据。图6(b)为网关设备接收的服务器返回的应答包,New IP Header即新的IP包头,其中包含回包IP地址和回包端口号,IP Header中包含测试包的目的IP地址和目的端口号,IP Data中包含服务器反馈的客户端的IP地址和端口号、以及包类型,STUN协议等数据。服务器集群中的服务器收到来自隧道的数据包会自动进行外层脱壳,因此服务器可以看到直接来自客户端的数据包。业务接入网关设备之后,只要部署一套程序,就能够覆盖所有运营商
在一个实施例中,该确定NAT类型的测试请求处理方法基于RFC3489,其STUN协议消息包头包含20个字节。
Figure BDA0002246361830000161
RFC3489定义的STUN消息类型值如表1:
名称 声明
0x0001 捆绑请求 BindRequest
0x0101 捆绑响应 BindResponse
0x0111 捆绑错误响应 BindErrorResponse
0x0002 共享私密请求 SharedSecretReque
0x0102 共享私密响应 stSharedSecretRespo
0x0112 共享私密错误响 nseSharedSecretError
表1 STUN消息类型值
本实施例中还增加了两种STUN消息类型用于集群之间的内部网络转发,如表2:
0x1001 内部转发请求 ForwardBindReques
0x1101 内部转发请求响 tForwardBindReques
应表2集群间转发的STUN消息类型值
网关设备为每台独立服务器提供了隧道,用于内网服务器到外网的转发,应用服务只需要绑定并使用虚拟ip即可,其中虚拟ip的个数不受限制。在本实施例中,STUNServer(辅助客户端进行NAT探测的服务器系统)通过绑定多个虚拟ip,提供两个服务器集群以实现用不同端口回包。STUN Server主要处理捆绑请求、交换共享密钥请求、内部串包请求,其内部逻辑图7所示。
图7描述的是STUN服务器的处理逻辑,STUN服务器处理三种类型消息的请求,即捆绑请求(BindRequest)、共享密钥请求(SharedSecretRequest)和内部转发请求(ForwardBindRequest)。其中,共享密钥请求是可选的安全措施,用于防止重放。STUN客户端发送一个BindRequstMsg到服务器,服务器收到消息后分析是直接回包,还是换IP、Port回包,如果需要换Port,则该服务器自身不回包并且发送一个ForwardBindRequst到对称集群的某台服务器上进行处理。
如图8所示,为一个实施例中确定NAT类型的测试请求处理方法的原理图。集群A和集群B均绑定虚拟外网IP地址IP1和IP2,即集群A和集群B中的服务器均绑定IP1和IP2。集群A绑定端口Port1,集群B绑定端口Port2。集群A中包含3台STUN服务器,编号为1,2,3,内网IP与路由系统绑定,集群B中包含2台STUN服务器,编号为4,5,内网IP与路由系统绑定。客户端(C_IP,C_Port)向目的地址(IP1,Port1)发送确定客户端的NAT类型的测试包给网关设备,该测试包中包括客户端本身的IP和端口号,目的IP地址和目的端口,回包IP地址和回包端口,可能还包括一些测试指令。网关设备从目的地址(IP1,Port1)接收测试包后,对该测试包进行解析,得到目的IP地址和目的端口。
接着,确定与该目的端口Port1和目的IP地址绑定的集群,即集群A。网关设备可进一步确定该集群A中的服务器各自绑定的IP地址,当该集群A中只有一个服务器绑定的IP地址为目的IP地址时,将该测试包发送给该绑定目的IP地址的服务器。当该集群A中存在至少两个服务器绑定的IP地址为目的IP地址时,可通过轮询方式或者负载均衡方式从该至少两个服务器中选择出一个服务器。例如,选择出的服务器为服务器3,则网关设备将该测试包发送给该服务器3。
接着,服务器3对该测试包进行解析和处理,从该测试包中得到该客户端的IP地址和端口,并将该客户端的IP地址和端口作为服务器3所反馈的该客户端的IP地址和端口。服务器3从该测试包中获取回包IP地址和回包端口,检测该回包端口与服务器3绑定的端口是否相同,相同则进一步检测该回包IP地址与该服务器3当前使用的IP地址是否相同。
当回包端口与服务器3绑定的端口相同,回包IP地址与该服务器3绑定的IP地址相同,服务器3根据测试包生成应答包,该应答包中包括服务器3反馈的客户端的IP地址和端口。当回包端口与服务器3绑定的端口相同,回包IP地址与目的IP地址不相同,则服务器3将目的IP地址转换为回包地址,再根据测试包生成应答包。
当检测到该回包端口与服务器3绑定的端口不相同时,例如目的端口为Port1,回包端口为Port2,而Port2绑定集群B,即需要集群B中的服务器返回应答包。则测试包中的测试指令为转换端口,即将Port1转换为Port2。则集群A中的服务器3需要从该测试包中获取该客户端的IP地址和端口,回包IP地址和回包端口,以及返回的应答包的类型,并根据这些信息生成内部消息。接着,服务器3将该内部消息通过内网转发给集群B中的服务器4。类似地,服务器3可通过轮询方式或者负载均衡方式或者任意选择集群B中的一个服务器,并将内部消息发送至该服务器。
服务器4接收到该内部消息,确定自身当前使用的IP地址是否为该内部消息中的回包IP地址,是则生成应答包。并通过IP隧道返回给网关设备,由网关设备通过回包IP地址和回包端口返回该应答包给客户端。否则,服务器将当前使用的IP地址转换为回包地址,再生成应答包。
结合下表3和上述图3进一步解释本实施例中确定NAT类型的测试请求处理方法的原理。
Figure BDA0002246361830000181
表3 STUN客户端向STUN服务器集群发送的4个测试项
表3为STUN客户端向STUN服务器集群发送的4个测试项。changeIP和changePort为转换IP和转换端口的测试指令,即测试包中的指令。步骤1用于检测客户端是否位于NAT之后,即STUN客户端向目的地址(IP1,Port1)发送测试包,该步骤1中的指令为不转换IP地址及不转换端口,即要求服务器原路返回应答包,可知该回包地址也为(IP1,Port1)。由于集群A中的服务器均绑定Port1,并且均绑定IP1和IP2,网关设备从(IP1,Port1)接收到该测试包后,可将该测试包发送给集群中的任一个服务器,由该服务器原路返回应答包给客户端。客户端拿到应答包后将服务器反馈的(IP,Port)与本地看到的(C_IP,C_Port)进行比较,如果相同则认为没有NAT,即不在NAT网络后面。
步骤2用于检测客户端NAT是否为完全圆锥型(Full Cone NAT)。即STUN客户端向目的地址(IP1,Port1)发送测试包,该步骤1中的指令为转换IP地址以及不转换端口,即回包地址也为(IP2,Port1)。则集群A中的一服务器从该测试包中获取到该测试指令后,将IP1转换为IP2,并通过Port1返回应答包给客户端。如果客户端能收到从回包地址(IP2,Port1)返回的应答包,说明客户端是Full Cone NAT。
步骤3用于检测客户端NAT是否是对称型NAT(Symmetric NAT)。客户端向目的地址(IP1,Port1)和目的地址(IP2,Port2)分别发测试包请求,来自Port1的测试包转发到集群A处理,来自Port2的包转发到集群B处理。该步骤3中的指令为不转换IP地址及不转换端口,即要求服务器均原路返回应答包到客户端,即回包地址分别为(IP1,Port1)和(IP2,Port2)。比较两个应答包中的服务器反馈的的客户端(C_IP,C_Port)是否一致,如果不一致则客户端是Symmetric NAT。如果相同则是Restricted Cone NAT(受限圆锥型),但不能确认是NAT类型是IP受限圆锥型(Address Restricted Cone NAT)还是端口受限圆锥型NAT(Port-Restricted Cone NAT)。
步骤4用于检测客户端是IP受限圆锥型(Address Restricted Cone NAT)还是端口受限圆锥型NAT(Port-Restricted Cone NAT)。
客户端向目的地址(IP1,Port1)发测试包,该请求包首先被转发到集群A中的某一台服务器进行处理,该服务器发现该测试包中的指令为不转换IP地址及转换端口,即要求服务器的回包地址为(IP1,Port2)。则该集群A中的服务器不作回包,并同时转发一个内部消息到集群B中的某一台服务器,由该服务器通过回包地址(IP1,Port2)返回应答包。如果客户端无法接收到服务器的回应,则说明客户端是一个Port Restried Cone NAT。否则说明客户端NAT类型为Address Restricted Cone NAT。
图2-图5为一个实施例中确定NAT类型的测试请求处理方法的流程示意图。应该理解的是,虽然图2-图5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-图5中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图9所示,提供了一种确定NAT类型的测试请求处理装置,该装置包括:测试包接收模块902、发送模块904、应答包接收模块906和返回模块908。其中,
测试包接收模块902,用于接收客户端发送的测试包,该测试包中包括目的因特网协议IP地址和目的端口,回包IP地址和回包端口。
发送模块904,用于将该测试包发送给与该目的端口及该目的IP地址绑定的第一服务器集群,该第一服务器集群中存在至少两个服务器绑定该目的IP地址。
应答包接收模块906,用于当该目的端口与该回包端口相同时,接收该第一服务器集群中的服务器根据该测试包返回的第一应答包,该第一应答包中包括该第一服务器集群中的服务器反馈的客户端的IP地址和端口。
返回模块908,用于将该第一应答包通过该回包IP地址和该回包端口返回给该客户端。
上述确定NAT类型的测试请求处理装置,通过接收客户端发送的测试包,测试包中包括目的IP地址和目的端口,回包IP地址和回包端口,将测试包发送给与目的端口及目的IP地址绑定的第一服务器集群,第一服务器集群中存在至少两个服务器绑定目的IP地址,当目的端口与回包端口相同时,接收第一服务器集群中的服务器根据测试包返回的第一应答包,第一应答包中包括第一服务器集群中的服务器反馈的客户端的IP地址和端口,将第一应答包通过回包IP地址和回包端口返回给客户端,通过不同的服务器绑定相同IP地址,实现IP地址资源的共享。使得多个服务器在接收确定NAT类型的测试请求时,可通过相同的外网IP地址处理测试请求,解决传统方法中每个服务器均需要独立的外网IP的问题。
在一个实施例中,该发送模块904还用于:当该第一服务器集群中存在至少两个服务器与该目的IP地址绑定时,通过轮询方式从该至少两个服务器中选择服务器;将该测试包发送给所选择的服务器。
上述实施例中,当该第一服务器集群中存在至少两个服务器与该目的IP地址绑定时,通过轮询方式从该至少两个服务器中选择服务器,将该测试包发送给所选择的服务器,从而在服务器共享IP地址资源的同时,能够快速选择处理请求的服务器,从而快速完成响应。
在一个实施例中,该发送模块904还用于:当该第一服务器集群中存在至少两个服务器与该目的IP地址绑定时,获取历史测试包发送到该至少两个服务器中的每个服务器的历史耗时;将该测试包发送给历史耗时最短的服务器。
本实施例中,当该第一服务器集群中存在至少两个服务器与该目的IP地址绑定时,获取历史测试包发送到该至少两个服务器中的每个服务器的历史耗时,将该测试包发送给历史耗时最短的服务器,从而能够快速将测试到发送至服务器进行处理,快速实现响应。
在一个实施例中,应答包接收模块906还用于:当该目的端口与该回包端口相同时,将该目的IP地址与该回包IP地址进行比较;当该目的IP地址与该回包IP地址不相同,且该回包IP地址绑定该第一服务器集群时,接收第一应答包,该第一应答包是接收该测试包的服务器将该目的IP地址转换为该回包IP地址,并根据该回包IP地址和该测试包生成的;当该目的IP地址与该回包IP地址相同时,接收第一应答包,该第一应答包是接收该测试包的服务器根据该回包地址和该测试包生成的。
上述实施例中,当该目的端口与该回包端口相同时,将该目的IP地址与该回包IP地址进行比较,当该目的IP地址与该回包IP地址不相同,且该回包IP地址绑定该第一服务器集群时,接收第一应答包,该第一应答包是接收该测试包的服务器将该目的IP地址转换为该回包IP地址,并根据该回包IP地址和该测试包生成的;当该目的IP地址与该回包IP地址相同时,接收第一应答包,该第一应答包是接收该测试包的服务器根据该回包地址和该测试包生成的;在目的端口与回包端口相同的情形下,比较目的IP地址与回包IP地址,以确实是否需要进行IP地址的转换处理,从而准确地完成测试指令。
在一个实施例中,该装置还包括:转发模块。该转发模块用于:当该目的端口与该回包端口不相同时,通过该第一服务器集群根据该测试包生成内部消息;通过该第一服务器集群将该内部消息转发给与该回包端口及该回包IP地址绑定的第二服务器集群;接收该第二服务器集群中的服务器根据该内部消息返回的第二应答包,该第二应答包中包括该第二服务器集群中的服务器反馈的客户端的IP地址和端口。
该返回模块908还用于:将该第二应答包通过该回包IP地址和该回包端口返回给该客户端。
本实施例中,当该目的端口与该回包端口不相同时,通过该第一服务器集群根据该测试包生成内部消息,通过该第一服务器集群将该内部消息转发给与该回包端口及该回包IP地址绑定的第二服务器集群,接收该第二服务器集群中的服务器根据该内部消息返回的第二应答包,该第二应答包中包括该第二服务器集群中的服务器反馈的客户端的IP地址和端口,将该第二应答包通过该回包IP地址和该回包端口返回给该客户端。当端口不同时,通过集群间的内网转发内部消息,以使服务器可根据正确的回包IP地址和回包端口完成回包,从而准确完成响应。
在一个实施例中,该转发模块还用于:确定与该回包端口绑定的第二服务器集群;确定该第二服务器集群中与该回包IP地址绑定的服务器;通过该第一服务器集群将该内部消息发送给该第二服务器集群中与该回包IP地址绑定的服务器。
上述实施例中,确定与该回包端口绑定的第二服务器集群,确定该第二服务器集群中与该回包IP地址绑定的服务器,通过该第一服务器集群将该内部消息发送给该第二服务器集群中与该回包IP地址绑定的服务器,可实现回包转口的转换,从而完成回包处理。
在一个实施例中,当该第二服务器集群中存在至少两个服务器与该回包IP地址绑定时,该转发模块还用于:当该第二服务器集群中存在至少两个服务器与该回包IP地址绑定时,确定该至少两个服务器中的每个服务器待处理的任务量;通过该第一服务器集群将该内部消息发送给该待处理的任务量最少的服务器。将该内部消息发送给至少两个服务器中的待处理的任务量最少的服务器,以快速实现端口的转换,并完成对测试包的转发处理,从而快速回包。
图10示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的网关设备120。如图10所示,该计算机设备包括该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和输入装置。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现确定NAT类型的测试请求处理方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行确定NAT类型的测试请求处理方法。计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,本申请提供的确定NAT类型的测试请求处理装置可以实现为一种计算机程序的形式,计算机程序可在如图9所示的计算机设备上运行。计算机设备的存储器中可存储组成该确定NAT类型的测试请求处理装置的各个程序模块,比如,图9所示的测试包接收模块902、发送模块904、应答包接收模块906和返回模块908。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的确定NAT类型的测试请求处理方法中的步骤。
例如,图10所示的计算机设备可以通过如图9所示的确定NAT类型的测试请求处理装置中的测试包接收模块902执行接收客户端发送的测试包,该测试包中包括目的因特网协议IP地址和目的端口,回包IP地址和回包端口的步骤。计算机设备可通过发送模块904,执行将该测试包发送给与该目的端口及该目的IP地址绑定的第一服务器集群,该第一服务器集群中存在至少两个服务器绑定该目的IP地址的步骤。计算机设备可通过应答包接收模块906执行当该目的端口与该回包端口相同时,接收该第一服务器集群中的服务器根据该测试包返回的第一应答包,该第一应答包中包括该第一服务器集群中的服务器反馈的客户端的IP地址和端口的步骤。计算机设备可通过返回模块908执行将该第一应答包通过该回包IP地址和该回包端口返回给该客户端的步骤。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述确定NAT类型的测试请求处理方法的步骤。此处确定NAT类型的测试请求处理方法的步骤可以是上述各个实施例的确定NAT类型的测试请求处理方法中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述确定NAT类型的测试请求处理方法的步骤。此处确定NAT类型的测试请求处理方法的步骤可以是上述各个实施例的确定NAT类型的测试请求处理方法中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种确定NAT类型的测试请求处理方法,包括:
接收客户端发送的测试包,所述测试包中包括目的因特网协议IP地址和目的端口,回包IP地址和回包端口;
将所述测试包发送给与所述目的端口及所述目的IP地址绑定的第一服务器集群,所述第一服务器集群中存在至少两个服务器绑定所述目的IP地址;
当所述目的端口与所述回包端口相同时,接收所述第一服务器集群中的服务器根据所述测试包返回的第一应答包,所述第一应答包中包括所述第一服务器集群中的服务器反馈的客户端的IP地址和端口;
将所述第一应答包通过所述回包IP地址和所述回包端口返回给所述客户端。
2.根据权利要求1所述的方法,其特征在于,所述将所述测试包发送给与所述目的端口及所述目的IP地址绑定的第一服务器集群,所述第一服务器集群中存在至少两个服务器绑定所述目的IP地址,包括:
当所述第一服务器集群中存在至少两个服务器与所述目的IP地址绑定时,通过轮询方式从所述至少两个服务器中选择服务器;
将所述测试包发送给所选择的服务器。
3.根据权利要求1所述的方法,其特征在于,所述将所述测试包发送给与所述目的端口及所述目的IP地址绑定的第一服务器集群,所述第一服务器集群中存在至少两个服务器绑定所述目的IP地址,包括:
当所述第一服务器集群中存在至少两个服务器与所述目的IP地址绑定时,获取历史测试包发送到所述至少两个服务器中的每个服务器的历史耗时;
将所述测试包发送给历史耗时最短的服务器。
4.根据权利要求2或3所述的方法,其特征在于,当所述目的端口与所述回包端口相同时,接收所述第一服务器集群中的服务器根据所述测试包返回的第一应答包,包括:
当所述目的端口与所述回包端口相同时,将所述目的IP地址与所述回包IP地址进行比较;
当所述目的IP地址与所述回包IP地址不相同,且所述回包IP地址绑定所述第一服务器集群时,接收第一应答包,所述第一应答包是接收所述测试包的服务器将所述目的IP地址转换为所述回包IP地址,并根据所述回包IP地址和所述测试包生成的;
当所述目的IP地址与所述回包IP地址相同时,接收第一应答包,所述第一应答包是接收所述测试包的服务器根据所述回包地址和所述测试包生成的。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述目的端口与所述回包端口不相同时,通过所述第一服务器集群根据所述测试包生成内部消息;
通过所述第一服务器集群将所述内部消息转发给与所述回包端口及所述回包IP地址绑定的第二服务器集群;
接收所述第二服务器集群中的服务器根据所述内部消息返回的第二应答包,所述第二应答包中包括所述第二服务器集群中的服务器反馈的客户端的IP地址和端口;
将所述第二应答包通过所述回包IP地址和所述回包端口返回给所述客户端。
6.根据权利要求5所述的方法,其特征在于,所述通过所述第一服务器集群将所述内部消息转发给与所述回包端口及所述回包IP地址绑定的第二服务器集群,包括:
确定与所述回包端口绑定的第二服务器集群;
确定所述第二服务器集群中与所述回包IP地址绑定的服务器;
通过所述第一服务器集群将所述内部消息发送给所述第二服务器集群中与所述回包IP地址绑定的服务器。
7.根据权利要求6所述的方法,其特征在于,当所述第二服务器集群中存在至少两个服务器与所述回包IP地址绑定时,所述通过所述第一服务器集群将所述内部消息发送给所述第二服务器集群中与所述回包IP地址绑定的服务器,包括:
当所述第二服务器集群中存在至少两个服务器与所述回包IP地址绑定时,确定所述至少两个服务器中的每个服务器待处理的任务量;
通过所述第一服务器集群将所述内部消息发送给所述待处理的任务量最少的服务器。
8.一种确定NAT类型的测试请求处理装置,其特征在于,所述装置包括:
测试包接收模块,用于接收客户端发送的测试包,所述测试包中包括目的因特网协议IP地址和目的端口,回包IP地址和回包端口;
发送模块,用于将所述测试包发送给与所述目的端口及所述目的IP地址绑定的第一服务器集群,所述第一服务器集群中存在至少两个服务器绑定所述目的IP地址;
应答包接收模块,用于当所述目的端口与所述回包端口相同时,接收所述第一服务器集群中的服务器根据所述测试包返回的第一应答包,所述第一应答包中包括所述第一服务器集群中的服务器反馈的客户端的IP地址和端口;
返回模块,用于将所述第一应答包通过所述回包IP地址和所述回包端口返回给所述客户端。
9.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1至7中任一项所述方法的步骤。
10.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至7中任一项所述方法的步骤。
CN201911018170.1A 2019-10-24 2019-10-24 确定nat类型的测试请求处理方法、装置和计算机设备 Active CN111193813B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911018170.1A CN111193813B (zh) 2019-10-24 2019-10-24 确定nat类型的测试请求处理方法、装置和计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911018170.1A CN111193813B (zh) 2019-10-24 2019-10-24 确定nat类型的测试请求处理方法、装置和计算机设备

Publications (2)

Publication Number Publication Date
CN111193813A CN111193813A (zh) 2020-05-22
CN111193813B true CN111193813B (zh) 2021-07-20

Family

ID=70709123

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911018170.1A Active CN111193813B (zh) 2019-10-24 2019-10-24 确定nat类型的测试请求处理方法、装置和计算机设备

Country Status (1)

Country Link
CN (1) CN111193813B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022047635A1 (zh) * 2020-09-01 2022-03-10 苏州铭冠软件科技有限公司 一种轨道交通网络系统ip地址复用方法
CN112019641B (zh) * 2020-10-19 2021-01-15 腾讯科技(深圳)有限公司 数据传输方法和装置
CN112073540B (zh) * 2020-11-10 2021-02-12 腾讯科技(深圳)有限公司 数据处理方法、装置、相关设备及存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100469022C (zh) * 2006-05-29 2009-03-11 腾讯科技(深圳)有限公司 一种检测网络类型的方法及系统
CN102196057B (zh) * 2010-03-03 2015-11-25 腾讯科技(深圳)有限公司 一种确定nat类型的方法及装置
CN102377834B (zh) * 2010-08-20 2014-02-19 鸿富锦精密工业(深圳)有限公司 网络地址转换设备及通信方法
CN105847343B (zh) * 2016-03-21 2019-01-25 福建星网锐捷通讯股份有限公司 用于点对点传输的公网信息探测方法、装置及系统
CN109818997A (zh) * 2017-11-21 2019-05-28 中兴通讯股份有限公司 一种负载均衡方法、系统及存储介质
CN109831547B (zh) * 2019-03-14 2022-02-22 腾讯科技(深圳)有限公司 Nat穿透方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN111193813A (zh) 2020-05-22

Similar Documents

Publication Publication Date Title
CN111193813B (zh) 确定nat类型的测试请求处理方法、装置和计算机设备
CN108650182B (zh) 网络通信方法、系统、装置、设备及存储介质
CN108449282B (zh) 一种负载均衡方法及其装置
CN109845218B (zh) 用于与客户机-服务器数据信道一起使用的信道数据封装系统和方法
US7921282B1 (en) Using SYN-ACK cookies within a TCP/IP protocol
US20130332584A1 (en) Load balancing methods and devices
WO2017071547A1 (zh) 应用于vxlan的报文转发
US8737388B2 (en) Method, apparatus and system for processing packets
US20140153577A1 (en) Session-based forwarding
CN102148767A (zh) 一种基于nat的数据路由方法及其装置
CN109525684B (zh) 报文转发方法和装置
US9596300B2 (en) Technologies for processing data packets in batches
US10574570B2 (en) Communication processing method and apparatus
CN101360046B (zh) 一种带宽资源的节约方法
WO2021008591A1 (zh) 数据传输方法、装置及系统
CN107547665B (zh) 一种dhcp地址分配的方法、设备及系统
CN104811382A (zh) 数据包的处理方法与装置
CN110012118B (zh) 一种提供网络地址转换nat服务的方法及控制器
CN112468469B (zh) 一种保障sctp协议多归属报文同源同宿的方法和装置
US9055117B1 (en) Distributed network address translation
US7660906B1 (en) Data delivery system and method
CN102201996B (zh) 网络地址转换环境中报文转发的方法及设备
CN109246016B (zh) 跨vxlan的报文处理方法和装置
CN113364660B (zh) Lvs负载均衡中的数据包处理方法及装置
US10341292B2 (en) Increased port address space

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant