CN114363351A - 一种代理连接抑制方法、网络架构及代理服务器 - Google Patents
一种代理连接抑制方法、网络架构及代理服务器 Download PDFInfo
- Publication number
- CN114363351A CN114363351A CN202111618215.6A CN202111618215A CN114363351A CN 114363351 A CN114363351 A CN 114363351A CN 202111618215 A CN202111618215 A CN 202111618215A CN 114363351 A CN114363351 A CN 114363351A
- Authority
- CN
- China
- Prior art keywords
- proxy
- connection number
- request
- agent
- current
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 66
- 230000001629 suppression Effects 0.000 title claims abstract description 12
- 239000003795 chemical substances by application Substances 0.000 claims description 133
- 230000008569 process Effects 0.000 claims description 27
- 238000004590 computer program Methods 0.000 claims description 6
- 230000003993 interaction Effects 0.000 claims description 6
- 239000012634 fragment Substances 0.000 claims description 4
- 238000012545 processing Methods 0.000 description 29
- 230000006870 function Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 230000006798 recombination Effects 0.000 description 4
- 238000005215 recombination Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000007670 refining Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Abstract
本申请提供了一种代理连接抑制方法、网络架构及代理服务器。方法包括:获取当前代理连接数,判断当前代理连接数是否大于阈值代理连接数且小于额定代理连接数。在当前代理连接数大于阈值代理连接数且小于额定代理连接数的状态下,判断第一接收请求报文对应的目的端口是否为代理端口;在目的端口为代理端口的情况下,获取剩余代理连接数,根据剩余代理连接数计算第一请求速率;获取初始时间,统计初始时间之后接收到的请求报文个数,将请求报文个数确定为第二请求速率,第二请求速率用于表征统计周期内允许接收所述请求报文的个数。以解决代理连接数累计过多占用系统资源,导致内存耗光以及设备管理业务无法进行的情况发生。
Description
技术领域
本申请涉及计算机网络通信技术领域,尤其涉及一种代理连接抑制方法、网络架构及代理服务器。
背景技术
在网络操作系统中,TCP/IP网络协议栈从属于操作系统内核,具有较高的稳定性与较高性能。目前使用的代理应用(SOCKS代理/HTTP代理等)一般是基于内核态协议栈实现。其工作原理是报文通过硬件中断送到内核,然后内核通过SOCKET API接口与应用程序交互。由于内核采用的是中断方式处理数据报文,当并发数据大的时候,极易出现软中断非常高、占用系统资源的现象。因此在对转发性能要求较高的场景会基于用户态协议栈的基础上实现。
然而,在持续新建代理连接时,随着代理连接数的增多,超过一定连接数时会达到系统设定的代理连接数限额,此时代理会主动关闭当前建立好的连接。但在关闭当前建立好的连接过程中,对应负责提供传输层服务的TCP层仍需要与对方先建立TCP连接,在代理主动关闭连接时再完成TCP挥手关闭连接,因此需要较多的内存、状态机迁移、定时器等处理参与。若连接数累计过多,占用较多的系统资源的同时导致内存耗光以及基本的设备管理业务无法进行的情况发生。
发明内容
本申请提供了一种代理连接抑制方法、网络架构及代理服务器。以解决在持续新建代理连接时,连接数累计过多会占用较多的系统资源,导致内存耗光以及基本的设备管理业务无法进行的情况发生。
第一方面,一种代理连接抑制方法,具体包括以下步骤:
获取当前代理连接数,判断当前代理连接数是否大于阈值代理连接数且小于额定代理连接数,额定代理连接数为代理连接数的最大值;
在当前代理连接数大于阈值代理连接数且小于额定代理连接数的状态下,判断第一接收请求报文对应的目的端口是否为代理端口;
在请求报文对应的目的端口为代理端口的情况下,获取当前代理的剩余代理连接数,根据剩余代理连接数计算第一请求速率,第一请求速率用于表征在当前代理连接数大于阈值代理连接数且小于额定代理连接数的状态下当前允许接收请求报文的个数;
获取确定请求报文对应的目的端口为代理端口的初始时间,统计初始时间之后接收到的请求报文个数,将请求报文个数确定为第二请求速率,第二请求速率用于表征统计周期内允许接收请求报文的个数;
判断第二请求速率是否大于第一请求速率;
在第二请求速率大于第一请求速率的情况下,拒绝接收请求报文并关闭代理连接;
在第二请求速率小于第一请求速率的情况下,正常接收请求报文并建立代理连接。
可选的,获取当前代理的剩余代理连接数,根据剩余代理连接数计算请求报文对应的第一请求速率,包括:
获取状态持续时间,状态持续时间用于表征在当前代理连接数大于阈值代理连接数且小于额定代理连接数的状态下对应的持续时间;
将剩余代理连接数与状态持续时间的商值确定为第一请求速率。
可选的,获取确定请求报文对应的目的端口为代理端口的初始时间,统计初始时间之后接收到的请求报文个数,将请求报文个数确定为第二请求速率;包括:
将初始时间确定为统计开始时间并开始统计当前代理连接个数;
获取第一统计时间,判断第一统计时间与初始时间差值是否符合时间阈值;
在第一统计时间与初始时间差值符合时间阈值的情况下,将当前代理连接个数确定为第二请求速率。
可选的,判断第一统计时间与初始时间差值是否符合时间阈值之后,还包括:
获取再次接收到请求报文的第二统计时间,判断第二统计时间与初始时间差值是否符合时间阈值;
在第二统计时间与初始时间差值符合时间阈值的情况下,初始化当前代理连接个数并将初始时间更新为第二统计时间。
可选的,统计当前代理连接个数包括:每接收一个请求报文,当前代理连接个数累加一个,其中,请求报文个数与当前代理连接个数一一对应。
可选的,还包括:
判断在状态持续时间内的代理连接总数是否超过第二阈值连接数,其中,第二阈值连接数为额定代理连接数的百分之八十;
在状态持续时间内的代理连接总数未超过第二阈值连接数的情况下,接收请求报文并建立代理连接。
可选的,还包括:
若当前代理连接数大于额定代理连接数,则拒绝接收请求报文并关闭代理连接;若当前代理连接数小于额定代理连接数,则正常接收请求报文并建立代理连接。
可选的,剩余代理连接数为额定代理连接数与当前代理连接数的差值。
第二方面,本申请提供了一种网络架构,包括:
网络层,网络层被配置为处理请求报文的分片重组;
传输层,传输层被配置为接收网络层发送的请求报文以及将请求报文发送至接口层;
接口层,接口层被配置为提供应用层交互的对外接口,以便于与应用层程序进行读写交互;
应用层,应用层被配置为获取当前代理连接数,判断当前代理连接数是否大于阈值代理连接数且小于额定代理连接数,额定代理连接数为代理连接数的最大值;在当前代理连接数大于阈值代理连接数且小于额定代理连接数的状态下,判断第一接收请求报文对应的目的端口是否为代理端口;在请求报文对应的目的端口为代理端口的情况下,获取当前代理的剩余代理连接数,根据剩余代理连接数计算第一请求速率,第一请求速率用于表征在当前代理连接数大于阈值代理连接数且小于额定代理连接数的状态下当前允许接收请求报文的个数;获取确定请求报文对应的目的端口为代理端口的初始时间,统计初始时间之后接收到的请求报文个数,将请求报文个数确定为第二请求速率,第二请求速率用于表征统计周期内允许接收请求报文的个数;判断第二请求速率是否大于第一请求速率;在第二请求速率大于第一请求速率的情况下,拒绝接收请求报文并关闭代理连接;在第二请求速率小于第一请求速率的情况下,正常接收请求报文并建立代理连接。
第三方面,本申请还提供了一种代理服务器,代理服务器包括存储器和处理器,存储器用于存储计算机程序,计算机程序被处理器执行时,执行上述的一种代理连接抑制方法。
由以上技术方案可以看出,本申请提供了一种代理连接抑制方法、网络架构及代理服务器,获取当前代理连接数,判断当前代理连接数是否大于阈值代理连接数且小于额定代理连接数。在当前代理连接数大于阈值代理连接数且小于额定代理连接数的状态下,判断第一接收请求报文对应的目的端口是否为代理端口;在请求报文对应的目的端口为代理端口的情况下,获取当前代理的剩余代理连接数,根据剩余代理连接数计算第一请求速率;获取确定请求报文对应的目的端口为代理端口的初始时间,统计初始时间之后接收到的请求报文个数,将请求报文个数确定为第二请求速率,第二请求速率用于表征统计周期内允许接收所述请求报文的个数。以解决在持续新建代理连接时,连接数累计过多会占用较多的系统资源,导致内存耗光以及基本的设备管理业务无法进行的情况发生。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了根据一些实施例提供的相关技术中的网络架构示意图;
图2示出了根据一些实施例提供的网络架构示意图;
图3示出了根据一些实施例提供的代理抑制方法的流程示意图;
图4示出了根据一些实施例提供的计算第二请求速率的流程示意图。
具体实施方式
为使本申请的目的和实施方式更加清楚,下面将结合本申请示例性实施例中的附图,对本申请示例性实施方式进行清楚、完整地描述,显然,描述的示例性实施例仅是本申请一部分实施例,而不是全部的实施例。
需要说明的是,本申请中对于术语的简要说明,仅是为了方便理解接下来描述的实施方式,而不是意图限定本申请的实施方式。除非另有说明,这些术语应当按照其普通和通常的含义理解。
本申请中说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”等是用于区别类似或同类的对象或实体,而不必然意味着限定特定的顺序或先后次序,除非另外注明。应该理解这样使用的用语在适当情况下可以互换。
术语“包括”和“具有”以及他们的任何变形,意图在于覆盖但不排他的包含,例如,包含了一系列组件的产品或设备不必限于清楚地列出的所有组件,而是可包括没有清楚地列出的或对于这些产品或设备固有的其他组件。
术语“模块”是指任何已知或后来开发的硬件、软件、固件、人工智能、模糊逻辑或硬件或/和软件代码的组合,能够执行与该元件相关的功能。
用户态协议栈:协议栈是操作系统的网络处理部分通常都包含的模块,当与网络处理部分相关的进程/线程在用户空间运行时,CPU堆栈指针寄存器指向的协议栈即为用户态协议栈。本说明书实施例中,用户态协议栈可以理解为运行于用户态的TCP/IP协议栈。TCP/IP协议栈:是指能够在多个不同网络间实现信息传输的协议簇。TCP/IP协议是在网络的使用中的最基本的通信协议,定义了客户端如何连入因特网,以及数据如何在它们之间进行传输。
用户态(usermode):在CPU的设计中,用户态指非特权状态,在此状态下,执行的代码被硬件限定,不能进行某些操作,比如写入其他进程的存储空间,以防止给操作系统带来安全隐患;在操作系统的设计中,用户态指非特权的执行状态,内核禁止此状态下的代码进行潜在危险的操作,比如写入系统配置文件、杀掉其他用户的进程、重启系统等。用户态是普通的用户进程运行的特权级,大部分用户直接面对的应用程序都是运行在用户态。
客户端,是一种可以向用户提供语音和/或数据连通性的设备。例如,客户端设备包括具有无线连接功能的手持式设备、车载设备等。目前,客户端设备可以是:手机(mobilephone)、平板电脑、笔记本电脑、掌上电脑、移动互联网设备(mobileinternetdevice,MID)、可穿戴设备、虚拟现实(virtualreality,VR)设备、增强现实(augmentedreality,AR)设备、工业控制(industrialcontrol)中的无线终端、无人驾驶(self-driving)中的无线终端、智能电网(smartgrid)中的无线终端、运输安全(transportationsafety)中的无线终端、智慧城市(smartcity)中的无线终端或智慧家庭(smarthome)中的无线终端等。
在相关技术中,参见图1,相关技术中的网络架构通常基于内核态协议栈分为应用层、网络接口层、传输层、网络层、链路层和物理层。
在这种架构下,报文处理过程为:物理层网络接口收包->触发中断->链路层的网络驱动读取报文->内核网络协议栈处理报文->报文放到socket的收包队列中->唤醒应用进程->应用进程读取报文->应用进程将处理结果写道socket发送队列->内核网络协议栈处理报文->通过网络驱动发送出去。
在上述过程中涉及中断即进程调度处理。当在报文量比较大的情况下,处理性能难以满足要求。极易出现软中断非常高、占用系统资源的现象。
为优化上述问题本申请提供了一种一种代理连接抑制方法、网络架构及代理服务器。参见图2,本申请提供的网络架构进行具体解释:
网络层(IP Stack):处理IP报文的分片重组等功能;使用IP地址唯一标识互联网上的设备,依靠IP地址进行相互通信。本申请中主要指IP数据报所处的层次。
传输层(TCP Stack):为应用进程提供端到端的通信服务,提供面向连接的数据流流量控制、多路复用等服务。本申请中主要指TCP数据报所处层次。其功能具体包括:
(1)TCP会话表管理:采用源IP、目的IP、源端口、目的端口计算哈希,基于哈希进行会话的新增、查找和删除。
(2)TCP报文接收处理:包括校验和计算,查找和创建TCP会话,检查seq号等。根据TCP状态,调用各自状态的处理函数。
(3)TCP报文发送处理;包括SYN、ACK控制报文和数据报文的封装和发送,滑动窗口的计算,拥塞控制等。
(4)TCP定时器处理:包括会话连接超时、报文超时重传等;
(5)TCP对外接口;与应用层交互的接口,提供接口给应用层程序进行TCP payload的读写。
网络接口层(TCP API):提供TCP对外接口以及与应用层交互的接口。提供接口给应用层程序进行TCP payload的读写,同时用于精细化区分业务与应用。
应用层(Application):包含多个独立模块如代理模块,用于应用代理、HTTP/HTTPS服务器等功能。其中,应用代理功能说明:本申请中的代理均属于应用代理,即基于本申请上述架构中的应用层实现,支持SOCKS/HTTP/HTTPS代理,每个代理均支持多个代理端口。在管理员配置代理接口时,代理模块调用传输层(TCP Stack)提供的listen接口注册监听回调函数。
以下为本申请提供的网络架构中代理接收数据包和发送数据包处理进行具体说明:
代理收包处理:驱动层收包->用户态转发进程->IP Stack进行IP层处理(报文重组等)->TCP Stack将数据写入会话的收包队列->TCP Stack进行TCP会话管理及TCP状态机处理(参考rfc793)->回调应用层监听回调函数-进行收包处理。
代理发包处理:
应用代理将数据写入对应的TCP Stack会话的发包队列->IP Stack的发包处理->通过硬件发送出去-进行发包处理。
由上述可知,收包与发包过程中没有进程切换,没有读写阻塞过程,因此效率较高。进一步地,在基于用户态的网络协议栈架构下,报文的收发全部在一个用户态进程里完成,且没有阻塞读写的操作,均为异步过程,因此适合对性能要求较高的场景。
进一步地,本申请提供了一种基于用户态协议栈的代理连接抑制方法,参见图3,具体包括以下步骤:
S1:获取当前代理连接数,判断当前代理连接数是否大于阈值代理连接数且小于额定代理连接数,额定代理连接数为代理连接数的最大值。
在一些实施例中,当用户通过客户端浏览器通过代理上网时,客户端最先需要进行TCP握手,即客户端会发送一个TCP SYN报文给代理服务器,代理服务器的用户态协议栈收到TCP SYN报文后,将进行TCP的握手处理,此时应用层中的代理模块无需参与。在TCP三次握手成功之后,回调应用层中代理模块进行accept处理(accept处理时在配置代理监听端口时注册的,因此此处是异步处理)。
进一步的,包括:代理模块预先获取当前代理连接数,判断当前代理连接数是否大于阈值代理连接数且小于额定代理连接数,额定代理连接数为代理连接数的最大值。其中,当前连接数(CONN_COUNT)为当前代理模块维护的连接数,客户端与代理服务器连接三次握手成功后,连接数计数加1。当代理服务器与客户端及原始服务器的TCP链路都拆除后,连接数计数减1。阈值代理连接数(CONN_THRESHOLD)为由管理员指定的连接数,可默认为额定代理连接数(CONN_MAX)的80%。额定代理连接数(CONN_MAX)为设备中最大连接数,额定代理连接数的规格可根据系统内存灵活制定,例如对于8G内存设备额定代理连接数可设定为30万。
S2:在当前代理连接数大于阈值代理连接数且小于额定代理连接数的状态下,判断第一接收请求报文对应的目的端口是否为代理端口。
示例性的,若额定代理连接数为30万、阈值代理连接数为24万、当前连接数为28万的情况下,代理模块将在当前代理连接数大于阈值代理连接数且小于额定代理连接数的状态下判定为拥塞状态。判定拥塞状态的目的是为了提前对连接数进行处理,避免连接数被快速占用导致后续请求报文完全得不到处理的情况发生。
需要说明的是,若当前代理连接数大于额定代理连接数,则拒绝接收任何请求报文并关闭代理连接。若当前代理连接数小于额定代理连接数,则正常接收请求报文并建立代理连接。若当前代理连接数大于阈值代理连接数且小于额定代理连接数的状态下即进入拥塞状态。
在代理模块进入拥塞状态后,需对传输层(TCP Stack)收到请求报文(SYN)进行额外处理。处理包括:判断接收的请求报文对应的目的端口是否为代理端口,若接收的请求报文对应的目的端口为代理端口,则对请求报文进行后续抑制处理,若接收的请求报文对应的目的端口不为代理端口,则拒绝接收该请求报文并关闭代理连接。
S3:在请求报文对应的目的端口为代理端口的情况下,获取当前代理的剩余代理连接数,根据剩余代理连接数计算第一请求速率,第一请求速率用于表征在当前代理连接数大于阈值代理连接数且小于额定代理连接数的状态下当前允许接收请求报文的个数。
在一些实施例中,在请求报文对应的目的端口为代理端口的情况下,获取当前代理的剩余代理连接数,剩余代理连接数为额定代理连接数与当前代理连接数的差值。示例性的,剩余代理连接数即为30万-28万=2万。
获取状态持续时间,状态持续时间用于表征在当前代理连接数大于阈值代理连接数且小于额定代理连接数的状态下对应的持续时间。状态持续时间即为拥塞状态的持续时间,状态持续时间(CONGEST_TIME)可由管理员自行设定,本申请中默认为10秒。需要说明的是,本申请不对状态持续时间进行具体限定,可根据实际情况自行设置。
进一步地,将剩余代理连接数与状态持续时间的商值确定为第一请求速率。第一请求速率为当前允许的代理请求报文的请求速率RATE。
S4:获取确定请求报文对应的目的端口为代理端口的初始时间,统计初始时间之后接收到的请求报文个数,将请求报文个数确定为第二请求速率,第二请求速率用于表征统计周期内允许接收请求报文的个数。
为执行上述S4步骤,图4示出了根据一些实施例提供的计算第二请求速率的流程示意图。参见图4,具体包括:
S41:将初始时间确定为统计开始时间并开始统计当前代理连接个数。
S42:获取第一统计时间,判断第一统计时间与初始时间差值是否符合时间阈值。
S43:在第一统计时间与初始时间差值符合时间阈值的情况下,将当前代理连接个数确定为第二请求速率。
在一些实施例中,在进入拥塞状态时,将当前代理连接数(STAT)初始化,当前代理连接数(STAT)为0,并开始统计当前代理连接数(STAT)个数。同时将初始时间确定为统计开始时间。
在统计开始时间之后,传输层(TCP Stack)接收到需要代理的请求报文(SYN)时,即累加当前代理连接数(STAT)个数,即STAT=STAT+1。每接收一个请求报文,当前代理连接个数累加一个,其中,请求报文个数与当前代理连接个数一一对应。
进一步地,获取第一统计时间,第一统计时间即为当前时间,判断第一统计时间与初始时间差值是否符合时间阈值。需要说明的是,第一统计时间和时间阈值均可自行设计。本申请不进行具体限定。在本实施例中,将时间阈值设置为1秒,在实际情况下系统中的内部时钟可能为纳秒或是毫秒。
若第一统计时间与初始时间差值是否符合时间阈值,如第一统计时间与初始时间差值小于1秒,则第二请求速率等于在第一统计时间时统计的当前代理连接数。
S5:判断第二请求速率是否大于第一请求速率;
在第二请求速率大于第一请求速率的情况下,拒绝接收请求报文并关闭代理连接;
在第二请求速率小于第一请求速率的情况下,正常接收请求报文并建立代理连接。
在一些实施例中,若第一统计时间与初始时间差值是否符合时间阈值,判断第二请求速率是否大于第一请求速率。如果第二请求速率大于第一请求速率,拒绝接收请求报文,丢弃请求报文并关闭代理连接。如果第二请求速率小于第一请求速率,正常接收请求报文并建立代理连接。
进一步地,获取再次接收到请求报文的第二统计时间,判断第二统计时间与初始时间差值是否符合时间阈值。在第二统计时间与初始时间差值符合时间阈值的情况下,初始化当前代理连接个数并将初始时间更新为第二统计时间。需要说明的是,第二统计时间和时间阈值均可自行设计。本申请不进行具体限定。
当传输层再次接收到需要代理的请求报文(SYN)时,继续判断第二统计时间与初始时间差值是否符合时间阈值,如第二统计时间与初始时间差值小于1秒,则将第二统计时间对应的当前代理连接数初始化,即当前代理连接数为0。同时初始时间也进行更新,将第二统计时间更新为初始时间,此时正常接收请求报文并建立代理连接。以更新后的初始时间以及初始化后的当前代理连接数为开始,进入下一个统计周期,即重复执行上述S42步骤。需要说明的是,本申请不对统计周期进行具体的限定,可根据实际情况自行设置和调整。
以上为具体说明在拥塞状态下,应用层对传输层接收的请求报文进行抑制处理的过程。下面针对如何解除拥塞状态进行说明。
在一些实施例中,判断在状态持续时间内的代理连接总数是否超过阈值代理连接数,其中,阈值代理连接数为额定代理连接数的百分之八十。在状态持续时间内的代理连接总数未超过阈值代理连接数的情况下,则解除拥塞状态。无需再对接收的请求报文进行抑制处理,即正常接收请求报文并建立代理连接。
在另一些实施例中,还可以将进入拥塞状态的时间确定为最终拥塞时间(LAST_CONGEST_TIME),获取拥塞判断时间,拥塞判断时间用于判断拥塞状态是否解除的时间,需要说明的是,本申请不对统计周期进行具体的限定,可根据实际情况自行设置和调整。
如果拥塞判断时间与最终拥塞时间的差值大于状态持续时间,则解除拥塞状态。
本申请还提供了一种网络架构,包括:
网络层,网络层被配置为处理请求报文的分片重组;
传输层,传输层被配置为接收网络层发送的请求报文以及将请求报文发送至接口层;
接口层,接口层被配置为提供应用层交互的对外接口,以便于与应用层程序进行读写交互;
应用层,应用层被配置为获取当前代理连接数,判断当前代理连接数是否大于阈值代理连接数且小于额定代理连接数,额定代理连接数为代理连接数的最大值;在当前代理连接数大于阈值代理连接数且小于额定代理连接数的状态下,判断第一接收请求报文对应的目的端口是否为代理端口;在请求报文对应的目的端口为代理端口的情况下,获取当前代理的剩余代理连接数,根据剩余代理连接数计算第一请求速率,第一请求速率用于表征在当前代理连接数大于阈值代理连接数且小于额定代理连接数的状态下当前允许接收请求报文的个数;获取确定请求报文对应的目的端口为代理端口的初始时间,统计初始时间之后接收到的请求报文个数,将请求报文个数确定为第二请求速率,第二请求速率用于表征统计周期内允许接收请求报文的个数;判断第二请求速率是否大于第一请求速率;在第二请求速率大于第一请求速率的情况下,拒绝接收请求报文并关闭代理连接;在第二请求速率小于第一请求速率的情况下,正常接收请求报文并建立代理连接。
本申请还提供了一种代理服务器,代理服务器包括存储器和处理器,存储器用于存储计算机程序,计算机程序被处理器执行时,执行上述方法。在此不再赘述。
由以上实施例可知,本申请提供了一种代理连接抑制方法、网络架构及代理服务器,在非拥塞状态下,传输层无需关心应用层中代理连接数以及代理请求速率等信息,进而传输层没有额外处理,能够保证处理性能。在拥塞状态下,应用层可以根据当前剩余连接数灵活控制代理请求速率,提前进行少量处理抑制了代理流量对系统的资源的占用,避免代理连接数被快速占用而导致后续请求完全得不到处理的情况。另外,在拥塞状态持续期间,如果代理业务处理较快,则剩余下的连接数较多,能处理的请求报文速率也随之加大,此时也能保证一定流量的代理请求能正常进行。进而即使拥塞状态持续,也能尽力提供代理连接服务。
本说明书中各个实施例之间相同相似的部分互相参照即可,在此不再赘述。
具体实现中,本发明还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本发明提供的扩展媒资显示数量方法的各实施例中的部分或全部步骤。的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-only memory,简称:ROM)或随机存储记忆体(英文:random access memory,简称:RAM)等。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
为了方便解释,已经结合具体的实施方式进行了上述说明。但是,上述示例性的讨论不是意图穷尽或者将实施方式限定到上述公开的具体形式。根据上述的教导,可以得到多种修改和变形。上述实施方式的选择和描述是为了更好的解释原理以及实际的应用,从而使得本领域技术人员更好的使用所述实施方式以及适于具体使用考虑的各种不同的变形的实施方式。
Claims (10)
1.一种代理连接抑制方法,其特征在于,具体包括以下步骤:
获取当前代理连接数,判断所述当前代理连接数是否大于阈值代理连接数且小于额定代理连接数,所述额定代理连接数为代理连接数的最大值;
在所述当前代理连接数大于阈值代理连接数且小于额定代理连接数的状态下,判断第一接收请求报文对应的目的端口是否为代理端口;
在所述请求报文对应的目的端口为代理端口的情况下,获取当前代理的剩余代理连接数,根据所述剩余代理连接数计算第一请求速率,所述第一请求速率用于表征在所述当前代理连接数大于阈值代理连接数且小于额定代理连接数的状态下当前允许接收请求报文的个数;
获取确定所述请求报文对应的目的端口为代理端口的初始时间,统计所述初始时间之后接收到的请求报文个数,将所述请求报文个数确定为第二请求速率,所述第二请求速率用于表征统计周期内允许接收所述请求报文的个数;
判断所述第二请求速率是否大于所述第一请求速率;
在所述第二请求速率大于所述第一请求速率的情况下,拒绝接收所述请求报文并关闭代理连接;在所述第二请求速率小于所述第一请求速率的情况下,正常接收所述请求报文并建立代理连接。
2.根据权利要求1所述的方法,其特征在于,所述获取当前代理的剩余代理连接数,根据所述剩余代理连接数计算所述请求报文对应的第一请求速率,包括:
获取状态持续时间,所述状态持续时间用于表征在所述当前代理连接数大于阈值代理连接数且小于额定代理连接数的状态下对应的持续时间;
将所述剩余代理连接数与所述状态持续时间的商值确定为所述第一请求速率。
3.根据权利要求2所述的方法,其特征在于,所述获取确定所述请求报文对应的目的端口为代理端口的初始时间,统计所述初始时间之后接收到的请求报文个数,将所述请求报文个数确定为第二请求速率;包括:
将所述初始时间确定为统计开始时间并开始统计当前代理连接个数;
获取第一统计时间,判断所述第一统计时间与所述初始时间差值是否符合时间阈值;
在所述第一统计时间与所述初始时间差值符合所述时间阈值的情况下,将所述当前代理连接个数确定为所述第二请求速率。
4.根据权利要求3所述的方法,其特征在于,所述判断所述第一统计时间与所述初始时间差值是否符合时间阈值之后,还包括:
获取再次接收到所述请求报文的第二统计时间,判断所述第二统计时间与所述初始时间差值是否符合时间阈值;
在所述第二统计时间与所述初始时间差值符合所述时间阈值的情况下,初始化所述当前代理连接个数并将所述初始时间更新为所述第二统计时间。
5.根据权利要求4所述的方法,其特征在于,所述统计当前代理连接个数包括:每接收一个所述请求报文,所述当前代理连接个数累加一个,其中,所述请求报文个数与所述当前代理连接个数一一对应。
6.根据权利要求5所述的方法,其特征在于,还包括:
判断在所述状态持续时间内的代理连接总数是否超过第二阈值连接数,其中,所述第二阈值连接数为所述额定代理连接数的百分之八十;
在所述状态持续时间内的代理连接总数未超过所述第二阈值连接数的情况下,接收所述请求报文并建立代理连接。
7.根据权利要求6所述的方法,其特征在于,还包括:
若所述当前代理连接数大于所述额定代理连接数,则拒绝接收所述请求报文并关闭代理连接;若所述当前代理连接数小于所述额定代理连接数,则正常接收所述请求报文并建立代理连接。
8.根据权利要求7所述的方法,其特征在于,所述剩余代理连接数为所述额定代理连接数与所述当前代理连接数的差值。
9.一种网络架构,其特征在于,包括:
网络层,所述网络层被配置为处理请求报文的分片重组;
传输层,所述传输层被配置为接收所述网络层发送的所述请求报文以及将所述请求报文发送至所述接口层;
接口层,所述接口层被配置为提供应用层交互的对外接口,以便于与应用层程序进行读写交互;
应用层,所述应用层被配置为获取当前代理连接数,判断所述当前代理连接数是否大于阈值代理连接数且小于额定代理连接数,所述额定代理连接数为代理连接数的最大值;在所述当前代理连接数大于阈值代理连接数且小于额定代理连接数的状态下,判断第一接收请求报文对应的目的端口是否为代理端口;在所述请求报文对应的目的端口为代理端口的情况下,获取当前代理的剩余代理连接数,根据所述剩余代理连接数计算第一请求速率,所述第一请求速率用于表征在所述当前代理连接数大于阈值代理连接数且小于额定代理连接数的状态下当前允许接收请求报文的个数;获取确定所述请求报文对应的目的端口为代理端口的初始时间,统计所述初始时间之后接收到的请求报文个数,将所述请求报文个数确定为第二请求速率,所述第二请求速率用于表征统计周期内允许接收所述请求报文的个数;判断所述第二请求速率是否大于所述第一请求速率;在所述第二请求速率大于所述第一请求速率的情况下,拒绝接收所述请求报文并关闭代理连接;在所述第二请求速率小于所述第一请求速率的情况下,正常接收所述请求报文并建立代理连接。
10.一种代理服务器,其特征在于,所述代理服务器包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,执行上述权利要求1至8任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111618215.6A CN114363351B (zh) | 2021-12-27 | 2021-12-27 | 一种代理连接抑制方法、网络架构及代理服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111618215.6A CN114363351B (zh) | 2021-12-27 | 2021-12-27 | 一种代理连接抑制方法、网络架构及代理服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114363351A true CN114363351A (zh) | 2022-04-15 |
CN114363351B CN114363351B (zh) | 2023-05-05 |
Family
ID=81103430
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111618215.6A Active CN114363351B (zh) | 2021-12-27 | 2021-12-27 | 一种代理连接抑制方法、网络架构及代理服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114363351B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114827097A (zh) * | 2022-04-21 | 2022-07-29 | 咪咕文化科技有限公司 | 通信网络构建方法、装置及计算机设备 |
CN115297165A (zh) * | 2022-09-29 | 2022-11-04 | 浙江齐安信息科技有限公司 | 代理装置及数据处理方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101944060A (zh) * | 2010-09-10 | 2011-01-12 | 华南理工大学 | 一种基于嵌入式软件的细粒度检测方法 |
US20150236896A1 (en) * | 2014-02-20 | 2015-08-20 | Linkedln Corporation | Automated management of a distributed computing system |
US20160050224A1 (en) * | 2014-08-13 | 2016-02-18 | Palantir Technologies Inc. | Unwanted tunneling alert system |
CN109104377A (zh) * | 2018-09-21 | 2018-12-28 | 深圳前海微众银行股份有限公司 | 长连接负载均衡方法、设备、系统及计算机可读存储介质 |
CN110113193A (zh) * | 2019-04-25 | 2019-08-09 | 上海腾焊智能科技有限公司 | 基于分级代理的数据传输方法、系统及介质 |
CN113824685A (zh) * | 2021-08-20 | 2021-12-21 | 联通沃音乐文化有限公司 | 一种基于Android VpnService实现的移动端定向流量代理系统与方法 |
-
2021
- 2021-12-27 CN CN202111618215.6A patent/CN114363351B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101944060A (zh) * | 2010-09-10 | 2011-01-12 | 华南理工大学 | 一种基于嵌入式软件的细粒度检测方法 |
US20150236896A1 (en) * | 2014-02-20 | 2015-08-20 | Linkedln Corporation | Automated management of a distributed computing system |
US20160050224A1 (en) * | 2014-08-13 | 2016-02-18 | Palantir Technologies Inc. | Unwanted tunneling alert system |
CN109104377A (zh) * | 2018-09-21 | 2018-12-28 | 深圳前海微众银行股份有限公司 | 长连接负载均衡方法、设备、系统及计算机可读存储介质 |
CN110113193A (zh) * | 2019-04-25 | 2019-08-09 | 上海腾焊智能科技有限公司 | 基于分级代理的数据传输方法、系统及介质 |
CN113824685A (zh) * | 2021-08-20 | 2021-12-21 | 联通沃音乐文化有限公司 | 一种基于Android VpnService实现的移动端定向流量代理系统与方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114827097A (zh) * | 2022-04-21 | 2022-07-29 | 咪咕文化科技有限公司 | 通信网络构建方法、装置及计算机设备 |
CN114827097B (zh) * | 2022-04-21 | 2023-10-17 | 咪咕文化科技有限公司 | 通信网络构建方法、装置及计算机设备 |
CN115297165A (zh) * | 2022-09-29 | 2022-11-04 | 浙江齐安信息科技有限公司 | 代理装置及数据处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114363351B (zh) | 2023-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101365838B1 (ko) | 개선된 분산형 커널 운영 시스템 | |
US9015822B2 (en) | Automatic invocation of DTN bundle protocol | |
US20050213507A1 (en) | Dynamically provisioning computer system resources | |
KR101363167B1 (ko) | 개선된 분산형 커널 운영 시스템 | |
CN114363351A (zh) | 一种代理连接抑制方法、网络架构及代理服务器 | |
US11258717B2 (en) | Method for sending service packet, network device, and system | |
EP1528818A2 (en) | Congestion Control in an IP Network | |
EP1527571B1 (en) | Method and apparatus for implementing qos in data transmissions | |
WO2022017529A1 (zh) | 数据传输方法、系统、电子设备及存储介质 | |
JPWO2005006673A1 (ja) | 帯域制御装置 | |
US20120127973A1 (en) | System and method of sending acknowledgments through control channels to prevent unnecessary retransmission in a limited bandwidth wireless communication network | |
TWI331467B (en) | Time-to-disconnect enforcement when communicating with wireless devices that have transient network addresses | |
Natarajan et al. | SCTP: What, why, and how | |
CN111935017A (zh) | 跨网络的应用调用方法、装置及路由设备 | |
CN102315918B (zh) | 一种tcp连接与sctp连接互通的方法及装置 | |
CN108769196B (zh) | 一种会话创建方法及装置 | |
KR101367265B1 (ko) | 푸시 서버, 푸시 서비스 제공시스템 및 그 방법 | |
CN112333803B (zh) | 通信配置方法及装置 | |
JP4413121B2 (ja) | Tcp/ipソケットを用いたデータ通信装置及びデータ通信方法 | |
CN111917511B (zh) | 一种数据的接收方法 | |
US11956328B1 (en) | Avoiding stuck subscriber sessions on a disaggregated broadband network gateway | |
CN115396372B (zh) | 数据流的速率控制方法、智能网卡、云端设备及存储介质 | |
US20230275874A1 (en) | Network security protection method and protection device | |
JP2017034562A (ja) | 通信装置および再接続方法 | |
US10362070B1 (en) | Method, system, and apparatus for achieving user space intervention during connection-establishment handshakes |
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 | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right |
Denomination of invention: A proxy connection suppression method, network architecture, and proxy server Granted publication date: 20230505 Pledgee: Guanggu Branch of Wuhan Rural Commercial Bank Co.,Ltd. Pledgor: WUHAN SIPULING TECHNOLOGY Co.,Ltd. Registration number: Y2024980009435 |