端口复用方法、设备及可读存储介质与流程

文档序号:31126004发布日期:2022-08-13 03:27阅读:217来源:国知局
端口复用方法、设备及可读存储介质与流程

1.本技术涉及通信技术领域,特别涉及一种端口复用方法、设备及可读存储介质。


背景技术:

2.端口(port)是电子设备与外界通讯交流的出口,从形态上分为物理端口和虚拟端口。物理端口又称为接口,是可见端口,包括usb端口、串行端口等。虚拟端口又称为软件端口,指网络中面向连接服务和无连接服务的通信协议端口。
3.通常情况下,服务器的软件端口数最大为65535。服务器通过不同默认端口提供不同的服务。例如,超文本传输协议(hypertext transfer protocol,http)采用端口80,简单邮件传输协议(simple mail transfer protocol,smtp)采用端口。为避免默认端口被扫描攻击,在网络架构中设置代理服务器,客户向代理服务器申请特殊端口,代理服务器通过特殊端口向用户提供服务,特殊端口通常为高位端口。由于攻击时通常扫描默认端口,因此,通过申请特殊端口能够绕过攻击者的攻击。特殊端口一般服务于一种协议。例如,要么服务于http,要么服务于超文本传输安全协议(hypertext transfer protocol secure,https)。
4.有时候,客户需求同一个特殊端口服务于不同协议。显然,上述的特殊端口无法满足客户需求,限制了客户的业务发展。


技术实现要素:

5.本技术提供一种端口复用方法、设备及可读存储介质,通过基于端口探测实现特殊端口的多协议复用,极大程度上满足了客户需求,防止默认端口被扫描攻击的同时,实现服务多样性。
6.第一方面,本技术实施例提供一种端口复用方法,应用于代理节点,所述方法包括:
7.接收来自终端设备的业务请求;
8.当所述业务请求携带的端口为目标端口时,探测所述业务请求以确定所述业务请求的协议类型,所述目标端口为支持至少两种协议的端口;
9.当所述协议类型是所述至少两种协议中的任意一种类型的协议时,根据所述协议类型处理所述业务请求。
10.第二方面,本技术实施例提供一种电子设备,包括:处理器、存储器及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时使得所述电子设备实现如上第一方面或第一方面各种可能的实现方式所述的方法。
11.第三方面,本技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机指令,所述计算机指令在被处理器执行时用于实现如上第一方面或第一方面各种可能的实现方式所述的方法。
12.第四方面,本技术实施例提供一种包含计算程序的计算机程序产品,所述计算机
程序被处理器执行时实现如上第一方面或第一方面各种可能的实现方式所述的方法。
13.本技术实施例提供的端口复用方法、设备及可读存储介质,代理节点接收到来自终端设备的业务请求后,若该业务请求携带的端口为支持至少两种协议的目标端口,则进行协议探测以确定出业务请求的协议类型。当业务请求的协议类型是至少两种协议中的任意一种类型的协议时,根据协议类型处理业务请求。采用该种方案,通过基于端口探测实现特殊端口的多协议复用,极大程度上满足了客户需求,防止默认端口被扫描攻击的同时,实现服务多样性。而且,无需新增资源,成本低、资源利用率高。
附图说明
14.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
15.图1是传统的端口复用过程示意图;
16.图2是本技术实施例提供的端口复用方法所适用的网络架构示意图;
17.图3是本技术实施例提供的端口复用方法的流程图;
18.图4是本技术实施例提供的端口复用方法中ssl握手的流程图;
19.图5a是本技术实施例提供的端口复用方法的一种网络架构示意图;
20.图5b是本技术实施例提供的端口复用方法的另一种网络架构示意图;
21.图6是本技术实施例提供的另一种端口复用方法的流程图;
22.图7为本技术实施例提供的一种端口复用装置的示意图;
23.图8为本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
24.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式作进一步地详细描述。
25.目前,很多缓存业务服务系统,特别是安全系统,客户为了防止源站的默认端口被扫描攻击,在代理节点申请特殊端口。通常情况下,一个特殊端口只能服务于一种类型的协议。当用户发起业务请求时,代理节点通过特殊端口接收业务请求。倘若需要从源站拉取数据,则向源站发送拉取请求,源站通过默认端口接收拉取请求并响应代理节点。
26.例如,客户申请端口8888作为特殊端口服务于https,而https的默认端口是端口443。用户发起的业务请求携带端口8888时,代理节点通过端口8888接收业务请求,需要去源站拉取数据时,代理节点发送拉取请求,源站通过端口443接收拉取请求并响应代理节点。
27.攻击过程中,攻击者扫描代理节点的默认端口,比如代理节点的端口443等,无法实现攻击。显然,通过申请特殊端口能够绕过攻击者的攻击。另外,即使攻击者产生攻击,攻击的对象是代理节点而不是源站,因此能够保护源站。
28.有时候,客户需求用一个特殊端口服务于不同类型的协议,即支持不同的协议,比如,客户申请端口8888同时支持https和http。现有技术中,由于特殊端口只能服务于一种
类型的协议。倘若客户a申请端口8888提供https服务,则客户b将不能再申请端口8888提供http服务。
29.图1是传统的端口复用过程示意图,图1中,端口8888只服务于https,图1包括:
30.101、代理节点接收来自终端设备的业务请求。
31.102、代理节点确定业务请求携带的特殊端口和代理节点开启的特殊端口是否匹配,若业务请求携带的特殊端口和代理节点开启的特殊端口匹配,则执行步骤103;若业务请求携带的特殊端口和代理节点开启的特殊端口不匹配,则执行步骤106。其中,端口匹配是指:业务请求携带的特殊端口和代理节点开启的特殊端口相同,比如都是端口8888等。
32.103、代理节点确认业务请求的协议类型是否为https时,若业务请求是https的业务请求,则执行步骤104;若业务请求不是https的业务请求,则执行步骤106。
33.104、代理节点进行安全套接字(secure sockets layer,ssl)握手处理,之后执行步骤105。
34.105、代理节点获取业务数据并反馈给终端设备。
35.106、代理节点拒绝业务请求。
36.图1中,当客户预先申请特殊端口服务于https时,则图1中的特殊端口一直服务于https,若申请特殊端口服务于https的客户为多个,则实现同协议的端口复用。
37.另外,图1中,当客户预先申请特殊端口服务于http时,则图1中的特殊端口一直服务于http,若申请特殊端口服务于http的客户为多个,则实现同协议的端口复用。也就是说,只能特殊端口只能服务于https或http。
38.有时候,客户需求同一个特殊端口服务于不同协议。显然,上述的特殊端口无法满足客户需求,限制了客户的业务发展。
39.倘若通过硬件改进以满足同一个特殊端口服务于不同协议,则需要新增代理节点。例如,一个代理集群中存在多个代理节点,每个代理节点的最大端口数是65535。客户a申请特殊端口8888服务于https,一段时间后,若客户b想要申请特殊端口8888服务于http,则代理集群中的一个代理节点的特殊端口8888服务于https,另一个代理节点的特殊端口8888服务于http。倘若代理集群中没有足够的代理节点,则需要增加代理节点。这种增加代理节点的方法也称为增加资源的方法。显然,通过增加资源,不同的协议在不同的资源池开启,使得资源得不到有效复用。
40.传统方案中,针对不同的协议,客户申请特殊端口时分开申请。比如,针对http申请一个特殊端口,针对https申请另一个特殊端口。随着业务的不断发展,分开申请的申请方式很有可能导致端口逐渐耗尽。这是因为:一个代理节点的最大端口数是65535,而客户的数量是万级别的,比如一两万个客户,一个客户可能会申请几十个甚至几百个特殊端口。显然,很有可能耗尽端口。
41.根据上述可知:现有的端口复用方法,无法满足客户需求的同时,只能实现同协议的端口复用。倘若通过硬件改进在,则得新增资源,成本高且资源利用率低。
42.基于此,本技术实施例提供一种端口复用方法、设备及可读存储介质,通过基于端口探测实现特殊端口的多协议复用,极大程度上满足了客户需求,防止默认端口被扫描攻击的同时,实现服务多样性。而且,无需新增资源,成本低、资源利用率高。
43.图2是本技术实施例提供的端口复用方法所适用的网络架构示意图。请参照图2,
该网络架构包括:代理节点21、终端设备22和源站23。代理节点21和终端设备22建立网络连接,代理节点21还与源站23建立网络连接。代理节点21也可以称之为中转服务器、代理服务器、缓存服务器、缓存节点等,应用场景包括但不限于分布式集群、内容分发网络等。代理节点21和终端设备22交互时,终端设备22为客户端,代理节点21为服务端。代理节点21与源站23交互时,代理节点21为客户端,源站23为服务端。也就是说,代理节点21融合了客户端和服务端的双重角色。代理节点21根据申请对特殊端口进行预配置,例如,配置端口8899支持https和http,以及https的各个域名、http的域名等。
44.终端设备22可以是硬件也可以是软件。当终端设备22为硬件时,终端设备22例如为手机、平板电脑、电子书阅读器、膝上型便携电脑、台式计算机、服务器等。当终端设备22为软件时,其可以安装在上述列举的硬件设备中,此时,终端设备22例如为多个软件模块或单个软件模块等,本技术实施例并不限制。
45.源站23也称之为源站服务器、源节点等,用于存储并向代理节点21分发数据。
46.应当理解的是,图2中的代理节点21、终端设备22和源站23的数量仅仅是示意性的。实际实现中,根据实际需求部署任意数量的代理节点21、终端设备22和源站23。
47.下面,基于图2所示实施环境,对本技术实施例提供的端口复用方法进行详细说明。示例性的,请参照图3。
48.图3是本技术实施例提供的端口复用方法的流程图。本实施例是从代理节点的角度进行说明。本实施例包括:
49.301、代理节点接收来自终端设备的业务请求。
50.用户利用手机、平板等终端设备上网时,向代理节点发送业务请求。相应的,代理节点接收来自终端设备的业务请求。
51.302、当所述业务请求携带的端口为目标端口时,探测所述业务请求以确定所述业务请求的协议类型,所述目标端口为支持至少两种协议的端口。
52.本技术实施例中,一个主机,比如一个代理节点、一个源站的服务器等最多有65535个端口,端口号从0到65535。从端口的性质来分,可以将端口分为三类:
53.第一类端口:默认端口,也称作常用端口、公认端口、约定端口等,这类端口的端口号从0到1024,每个端口紧密绑定一些特定的服务,不可以再重新定义它的作用对象。例如,端口80用于http,端口23是telnet服务专用。
54.第二类端口:注册端口,端口号从1025-49151,这些端口多数没有明确地定义服务对象,不同程序可根据实际需要定义。
55.第三类端口:动态端口,也称之为私有端口,端口号从49152到65535。通常情况下,常用服务不会分配给这些端口。
56.上述端口中,第一类端口也称作低位端口,第二类端口和第三类端口也称之为高位端口。这些高位端口中,可能有一个或多个高位端口支持至少两种协议。例如,端口8888支持http和https。再如,端口61111支持https和实时消息传输协议(real time messaging protocol,rtmp)。
57.本技术实施例中,目标端口为高位端口,比如,目标端口为上述第二类端口或第三类端口中的任意一个。或者,目标端口与至少两种协议的默认端口不同。比如,至少两种协议包括http和https,默认端口分别为80和443,则目标端口为888。采用该种方案,目标端口
为高位端口或至少两种协议的默认端口外的其他端口,能够绕过攻击者的扫描,避免攻击者入侵且能够保护源站。
58.代理节点接收到业务请求后,判断该业务请求携带的端口是否为高位端口,且是否支持至少两种协议,即至少能够服务于两种协议。当业务请求携带的端口是高位端口且该支持至少两种协议时,代理节点对该业务请求进行协议探测,以确定该业务请求的协议类型。
59.例如,一个业务请求为http://www.example.com:8888/news/index.asp?boardid=5&id=24618&page=1#name。代理节点从该业务请求中提取出端口号8888,之后进一步发现端口8888预先配置支持至少两种协议。于是,代理节点继续对该业务请求进行协议探测,以确定该业务请求的协议类型是否是至少两种协议中的任意一种。
60.303、当所述协议类型是所述至少两种协议中的任意一种类型的协议时,根据所述协议类型处理所述业务请求。
61.当业务请求是目标端口支持的至少两种协议类型中的任意一种时,代理节点根据协议类型处理业务请求。处理过程中,通过目标端口传输相关数据。例如,通过目标端口向终端设备发送业务数据。再如,通过目标端口向源站发送拉取请求,源站接收到拉取请求后,发现目标端口映射默认端口,则跳转到默认端口。
62.假设至少两种协议包括协议a和协议b,当代理节点进行协议探测确定出业务请求的协议类型为协议a时,则根据协议a处理业务请求。当代理节点进行协议探测确定出业务请求的协议类型为协议b时,则根据协议b处理业务请求。显然,本技术实施例提供的端口复用方法,支持同一端口的不同协议的复用,即同端口的多协议复用。
63.本技术实施例提供的端口复用方法,代理节点接收到来自终端设备的业务请求后,若该业务请求携带的端口为支持至少两种协议的目标端口,则进行协议探测以确定出业务请求的协议类型。当业务请求的协议类型是至少两种协议中的任意一种类型的协议时,根据协议类型处理业务请求。采用该种方案,通过基于端口探测实现特殊端口的多协议复用,极大程度上满足了客户需求,防止默认端口被扫描攻击的同时,实现服务多样性。而且,无需新增资源,成本低、资源利用率高。
64.可选的,上述实施例中,目标端口支持的至少两种协议包括https协议和http协议。当代理节点确定出业务请求的协议类型为https协议时,代理节点执行ssl握手以与终端设备建立ssl连接。建立ssl连接后,从业务请求中提取出域名,判断该域名是否支持https协议。当域名支持https协议时,获取业务请求对应的业务数据,并通过ssl连接反馈给终端设备。其中,一个郁闷相当于一个客户,一个客户可以有一个或多个域名。
65.图4是本技术实施例提供的端口复用方法中ssl握手的流程图。本实施例基于rsa握手和密钥交换对ssl握手进行详细描述。本实施例包括:
66.401、终端设备向代理节点发送客户端hello(client hello)报文。
67.client hello报文包含终端设备的客户端支持的ssl的版本、加密组件等。402、代理节点向终端设备发送服务端hello(sever hello)报文。
68.示例性的,代理节点向终端设备发送server hello报文作为应答。server hello报文中包含ssl版本以及加密组件等。加密组件是从步骤401中接收到的加密组件中筛选出的。
69.403、代理节点向终端设备发送证书(certificate)报文。证书报文中包含公开秘钥证书。
70.404、终端设备进行证书校验。
71.405、终端设备向服务器发送应答报文。
72.应答报文为client key exchange报文,该报文中包含通信加密中使用的随机密码串等。该报文使用步骤403中的公开秘钥进行加密。
73.406、终端设备向代理节点发送提示报文。
74.示例性的,提示报文例如为更改密码规格(change cipher spec)报文,该报文用于提示代理节点后续采用re-master secret秘钥进行加密。
75.407、终端设备向代理节点发送握手验证(encrypted_handshake_message)报文。
76.408、代理节点向终端设备发送应答报文(client key exchange)。
77.409、代理节点向终端设备发送提示报文。
78.提示报文如为更改密码规格(change cipher spec)报文。
79.410、代理节点向终端设备发送握手验证(encrypted_handshake_message)报文。
80.411、应用数据
81.经过步骤401~步骤410,终端设备和代理节点之间建立ssl连接。之后,终端设备和代理节点传输应用数据,该应用数据的传输会收到ssl的保护。
82.代理节点上预先存储一个配置文件,该配置文件中指示目标端口支持的至少两种协议中每个协议对应的域名。终端设备和代理节点之间成功建立ssl连接后,代理节点从业务请求中提取域名,判断该域名是否支持https协议。例如,目标端口为端口8888,代理节点上保存如下表1。
83.表1
[0084][0085]
请参照表1,端口8888支持https和http,http对应的域名包括域名a和域名c,https对应的域名包括域名b和域名d。
[0086]
当一个业务请求的协议类型为https、且该业务请求携带的域名为域名b或域名d,则代理节点建立好ssl连接并获取到业务数据后,利用该ssl连接向终端设备发送业务数据。其中,建立ssl连接和获取业务数据可并行或先后执行,本技术实施例并不限制。
[0087]
采用该种方案,当http和https复用目标端口时,通过建立ssl连接实现对https的业务请求的处理,实现多协议复用端口的目的。
[0088]
可选的,上述实施例中,目标端口支持的至少两种协议包括https协议和http协议。当代理节点确定出业务请求的协议类型为http协议时,代理节点无需建立ssl连接,而是直接从业务请求中提取出域名,当域名支持https协议时,获取业务数据并通过http连接向终端设备发送。例如,请参照表1,当一个业务请求的协议类型为http、且该业务请求携带的域名为域名a或域名c,代理节点获取业务数据并通过http连接发送给终端设备。
[0089]
采用该种方案,当http和https复用目标端口时,通过http连接发送业务数据等,
实现多协议复用端口的目的。
[0090]
可选的,上述实施例中,代理节点获取业务数据时,西安确定是否已缓存业务请求对应的业务数据。倘若没有缓存业务数据,则从源站拉取数据并反馈给终端设备。倘若缓存了业务数据,则直接从已缓存的数据中确定出业务数据并反馈给终端设备。
[0091]
示例性的,本技术实施例中,代理节点是具有缓存功能的节点,通过预先将源站的数据缓存在本地,使用户可以就近获取所需业务数据,提高访问速度和成功率的同时,降低源站压力。可选的,代理节点还可以具有边缘计算能力,能够对业务数据进行处理,比如,对业务数据进行敏感词过滤等。
[0092]
图5a是本技术实施例提供的端口复用方法的一种网络架构示意图。图5b是本技术实施例提供的端口复用方法的另一种网络架构示意图。
[0093]
请参照图5a,代理节点例如是内容分发网络(content delivery network,cdn)中的边缘节点,代理节点包括均衡组件和缓存组件。均衡组件也称作shark组件,缓存组件也称作squid组件。均衡组件用于执行协议探测等,均衡组件接收到业务请求后,当业务请求的协议类型是代理节点支持的协议类型,且业务请求的域名支持该协议类型时,均衡组件确定缓存组件中是否有业务请求所请求的业务数据,倘若缓存组件中存储业务数据,则均衡组件将该业务数据反馈给终端设备。若缓存组件中不存在业务请求所请求的数据,则缓存组件从源站拉取业务数据并缓存,均衡组件将业务数据反馈给终端设备。
[0094]
图5a中,代理节点通过缓存组件回源。与图5a不同的是,图5b中,代理节点通过均衡组件回源。图5b中,不单独设置缓存组件,均衡组件用于负载均衡、协议探测的同时,还缓存业务数据。均衡组件接收到业务请求后,当业务请求的协议类型是代理节点支持的协议类型,且业务请求的域名支持该协议类型时,均衡组件确定本地是否缓存业务请求所请求的业务数据,倘若均衡组件缓存业务数据,则均衡组件将该业务数据反馈给终端设备。若均衡组件未缓存业务请求所请求的数据,则均衡组件从源站拉取业务数据并缓存,同时将业务数据反馈给终端设备。
[0095]
采用该种方案,代理节点具有缓存功能,使用户可以就近获取所需业务数据,提高访问速度和成功率的同时,降低源站压力。
[0096]
可选的,上述实施例中,代理节点探测业务请求以确定业务请求的协议类型的过程中,先从业务请求中提取出协议头。然后,将协议头转换为数值,进而根据数值确定协议类型。
[0097]
本技术实施例中,一个业务请求通常为一个统一资源定位符(uniform resource locator,url),一个url包括:协议头、域名或ip、端口、路径、查询参数和锚点。例如,http://www.example.com:8888/news/index.asp?boardid=5&id=24618&page=1#name。协议头为http,域名为www.example.com,端口为8888,路径为/news,查询参数为index.asp?boardid=5&id=24618&page=1,锚点为#name。协议探测过程中,代理节点从业务请求中提取出协议头,该举例中协议头为http。之后,代理节点将协议头转换为自身能够识别的标识字段,例如二进制数、八进制数据或十六进制数等。以十六进制为例,协议头为http时,标识字段为十六进制数0x68747470;协议头为https时,标识字段为为十六进制数0x6874747073。
[0098]
代理节点将协议头转换为计算机可识别的数值后,就能够确定出业务请求的协议
类型了。比如,0x68747470对应的协议类型是http。0x6874747073对应的协议类型是https。
[0099]
采用该种方案,通过将业务请求携带的协议头转换为数值,实现快速进行协议探测的目的。
[0100]
上述实施例都是在描述一个目标端口支持至少两种协议时,代理节点接收到携带目标端口的业务请求的处理过程。下面,对如何进行端口配置使得一个目标端口支持至少两种协议进行详细说明。
[0101]
传统方案中,一个端口仅能服务于一种协议,即仅支持一种协议。比如,客户a申请端口8899用于https服务。申请成功后,客户b想申请端口8899用于http。但是,由于端口8899以被标识为只服务于https,因此,客户b的申请失败。客户c申请端口8899用于https服务,则申请成功。
[0102]
倘若代理节点接收到的业务请求的协议类型为http,则直接拒绝该业务请求。倘若代理节点接收到的业务请求的协议类型为https、且该业务请求的域名为客户a或客户c的域名,则代理节点建立ssl连接并处理业务请求。倘若该业务请求的协议类型为https、但业务请求的域名不是客户a的域名也不是客户b的域名,则代理节点拒绝该业务请求。这种方式实现了单协议的端口复用。
[0103]
本技术示例中,多个客户向代理节点发送协议申请,每个协议申请用于指示所述目标端口支持的协议以及该协议对应的域名,不同协议申请指示的协议不同,不同协议申请由不同域名的客户发起。代理节点接收到协议申请后,生成配置文件,所述配置文件用于指示所述目标端口支持的协议以及协议对应的域名。
[0104]
例如,客户a首先申请目标端口8899服务于https,即目标端口8899支持https。代理节点接收到协议申请后,针对客户a生成配置文件:listen[::]:8899ssl http2 reuseport,携带ssl标签。该配置文件的语义如下:针对客户a的业务目标端口8899支持https。
[0105]
客户a申请成功之后,客户b又想申请目标端口8899服务于http,即目标端口支持http。代理节点接收到协议申请后,针对客户b生成配置文件:listen[::]:8899http2 reuseport,不携带ssl标签。该配置文件的语义如下:针对客户b的业务目标端口8899支持http。
[0106]
这样一来,就能够实现一个目标端口支持至少两种协议的目的。
[0107]
图6是本技术实施例提供的另一个端口复用方法的流程图。本实施例中,目标端口为8899、目标端口支持https和http,本实施例包括:
[0108]
601、代理节点接收来自终端设备的业务请求。
[0109]
该业务请求携带的端口号为8899。
[0110]
602、代理节点执行协议探测,以确定业务请求的协议类型,当协议类型为https时,则执行步骤603;当协议类型为http时,执行步骤607;当协议类型不是https也不是http时,执行610。
[0111]
示例性的,代理节点从业务请求中提取出协议头,将协议头转换为数值根据数据确定协议类型。当业务请求为https://www.example.com:8899/news/index.asp?boardid=5&id=24618&page=1#name时,协议头为https,对应的十六进制数为0x6874747073。因此,代理节点确定出协议类型为https,执行步骤603。
[0112]
当业务请求为http://www.example.com:8899/news/index.asp?boardid=5&id=24618&page=1#name时,协议头为http,对应的十六进制数为0x68747470。因此,代理节点确定出协议类型为http,执行步骤607。
[0113]
603、代理节点建立ssl连接。
[0114]
示例性的,代理节点创建ssl上下文并加载证书等,进入ssl握手处理流成,具体可参见图4的描述,此处不再赘述。
[0115]
604、代理节点进入目标端口与https匹配的分频道。
[0116]
示例性的,目标端口8899与https匹配的分频道例如为listen[::]:8899sslhttp2 reuseport,携带ssl标签。
[0117]
605、代理节点从业务请求中提取出域名,判断该域名是否支持https,若该域名支持https,则执行步骤606;若该域名不支持https,则执行步骤610。
[0118]
示例性的,代理节点基于分频道(配置文件),确定域名是否支持https。配置文件指示哪些域名申请了目标端口8899服务于https。当配置文件中申请目标端口8899服务于https的域名包括业务请求携带的域名时,表示业务请求携带的域名支持https,执行步骤606;若配置文件中申请目标端口8899服务于https的域名不包括业务请求携带的域名时,表示业务请求携带的域名不支持https,执行步骤610。
[0119]
606、代理节点获取业务数据,并通过ssl连接向终端设备反馈业务数据。
[0120]
代理节点获取业务数据的过程可参见图5a和图5b的描述,此处不再赘述。
[0121]
607、代理节点进入目标端口与http匹配的分频道。
[0122]
示例性的,目标端口8899与http匹配的分频道例如为listen[::]:8899http2 reuseport,不携带ssl标签。
[0123]
608、代理节点从业务请求中提取出域名,判断该域名是否支持http,若该域名支持http,则执行步骤609;若该域名不支持http,则执行步骤610。
[0124]
示例性的,代理节点基于分频道(配置文件),确定域名是否支持http。配置文件指示哪些域名申请了目标端口8899服务于http。当配置文件中申请目标端口8899服务于http的域名包括业务请求携带的域名时,表示业务请求携带的域名支持http,执行步骤609;若配置文件中申请目标端口8899服务于http的域名不包括业务请求携带的域名时,表示业务请求携带的域名不支持http,执行步骤610。
[0125]
609、代理节点获取业务数据,并通过http连接向终端设备反馈业务数据。
[0126]
代理节点获取业务数据的过程可参见图5a和图5b的描述,此处不再赘述。
[0127]
610、代理节点拒绝业务请求。
[0128]
示例性的,代理节点丢弃该业务请求,或者,代理节点向终端设备不支持等提示信息。
[0129]
下述为本技术装置实施例,可以用于执行本技术方法实施例。对于本技术装置实施例中未披露的细节,请参照本技术方法实施例。
[0130]
图7为本技术实施例提供的一种端口复用装置的示意图。该端口复用装置700包括:收发模块71、探测模块72和处理模块73。
[0131]
收发模块71,用于接收来自终端设备的业务请求;
[0132]
探测模块72,用于当所述业务请求携带的端口为目标端口时,探测所述业务请求
以确定所述业务请求的协议类型,所述目标端口为支持至少两种协议的端口;
[0133]
处理模块73,用于当所述协议类型是所述至少两种协议中的任意一种类型的协议时,根据所述协议类型处理所述业务请求。
[0134]
一种可行的实现方式中,所述至少两种协议包括所述https协议和http协议,所述处理模块73,用于当所述协议类型为https协议时,建立ssl连接;从所述业务请求中提取出域名;当所述域名支持所述https协议时,获取所述业务请求对应的业务数据;
[0135]
所述收发模块71,还用于通过所述ssl连接向所述终端设备发送所述业务数据。
[0136]
一种可行的实现方式中,所述至少两种协议包括所述https协议和http协议,所述处理模块73,用于当所述协议类型为http协议时,从所述业务请求中提取出域名;当所述域名支持http协议时,获取所述业务请求对应的业务数据;
[0137]
所述收发模块71,用于通过http连接向所述终端设备发送所述业务数据。
[0138]
一种可行的实现方式中,所述处理模块73获取所述业务请求对应的业务数据时,用于确定所述代理节点是否已缓存所述业务数据;当所述代理节点已缓存所述业务数据时,从所述代理节点已缓存的数据中确定出所述业务数据;当所述代理节点未缓存所述业务数据时,从源站获取所述业务数据。
[0139]
一种可行的实现方式中,所述探测模块72,用于从所述业务请求中提取出协议头;将所述协议头转换为数值;根据所述数值确定所述业务请求的协议类型。
[0140]
一种可行的实现方式中,所述收发模块71,在所述探测模块72探测所述业务请求以确定所述业务请求的协议类型之前,还用于接收多个协议申请,所述协议申请用于指示所述目标端口支持的协议以及所述协议对应的域名,不同协议申请指示的协议不同,不同协议申请由不同域名的客户发起;
[0141]
所述处理模块73,还用于根据所述协议申请,生成配置文件,所述配置文件用于指示所述目标端口支持的协议以及对应的域名。
[0142]
一种可行的实现方式中,所述目标端口为所述代理节点的高位端口,或者,所述目标端口与所述至少两种协议的默认端口不同。
[0143]
一种可行的实现方式中,所述处理模块73,还用于当所述协议类型不是所述至少两种协议中的任意一种类型的协议时,拒绝所述业务请求。
[0144]
图8为本技术实施例提供的一种电子设备的结构示意图。如图8所示,该电子设备800例如为上述的代理节点,该电子设备800包括:
[0145]
处理器81和存储器82;
[0146]
所述存储器82存储计算机指令;
[0147]
所述处理器81执行所述存储器82存储的计算机指令,使得所述处理器81执行如上代理节点实施的端口复用方法。
[0148]
处理器81的具体实现过程可参见上述方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
[0149]
可选地,该电子设备800还包括通信部件83。其中,处理器81、存储器82以及通信部件83可以通过总线84连接。
[0150]
本技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机指令,所述计算机指令被处理器执行如上代理节点实施的端口复用方法。
[0151]
本技术实施例还提供一种计算机程序产品,该计算机程序产品包含计算机程序,计算机程序被处理器执行如上代理节点实施的端口复用方法。
[0152]
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本技术的其它实施方案。本技术旨在涵盖本技术的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本技术的一般性原理并包括本技术未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本技术的真正范围和精神由下面的权利要求书指出。
[0153]
应当理解的是,本技术并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本技术的范围仅由所附的权利要求书来限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1