CN113973093A - 数据传输方法及装置、电子设备、可读存储介质 - Google Patents
数据传输方法及装置、电子设备、可读存储介质 Download PDFInfo
- Publication number
- CN113973093A CN113973093A CN202010725082.1A CN202010725082A CN113973093A CN 113973093 A CN113973093 A CN 113973093A CN 202010725082 A CN202010725082 A CN 202010725082A CN 113973093 A CN113973093 A CN 113973093A
- Authority
- CN
- China
- Prior art keywords
- data
- target client
- target
- client
- server
- 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
- 230000005540 biological transmission Effects 0.000 title claims abstract description 189
- 238000000034 method Methods 0.000 title claims abstract description 64
- 238000013468 resource allocation Methods 0.000 claims abstract description 51
- 238000012545 processing Methods 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 17
- 230000015654 memory Effects 0.000 claims description 16
- 238000012546 transfer Methods 0.000 claims description 12
- 238000012544 monitoring process Methods 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 12
- 230000004044 response Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 3
- 206010033799 Paralysis Diseases 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012216 screening Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000004622 sleep time Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请公开了一种数据传输方法,包括:获取向目标客户端提供数据传输服务的目标线程的数量,并确定目标客户端的传输属性信息;传输属性信息用于指示目标客户端在单位时间内能够传输的最大数据量;基于目标线程的数量和目标客户端的传输属性信息,确定针对目标客户端和数据服务器之间进行数据转发时输入输出IO资源分配策略;基于IO资源分配策略,对目标客户端和数据服务器之间的数据进行转发。本申请实施例提供的数据传输方法能够对目标客户端和数据服务器之间的数据传输过程中IO资源进行调配,提高了数据服务器中数据资源的访问公平性,防止恶意占用IO资源的问题。本申请实施例同时公开了一种数据传输装置、电子设备以及计算机可读存储介质。
Description
技术领域
本申请涉及计算机的网络通信技术领域,尤其涉及一种数据传输方法及装置、电子设备、计算机可读存储介质。
背景技术
文件传输协议(File Transfer Protocol,FTP)使用TCP可靠的运输层进行数据传输。FTP包括两个组成部分,其一为数据服务器,其二为客户端。其中数据服务器用来存储文件,用户可以使用客户端通过FTP协议访问位于数据服务器上的资源。
目前,数据服务器无法进行资源划分。具体地,在数据服务器同时接收多个客户端的请求时,无法针对每个客户端进行输入输出(Input/Output,IO)资源隔离和资源分配。当某一客户端的请求数据资源数过多时,会极大影响其他客户端的使用,甚至造成数据服务器瘫痪。
发明内容
本申请实施例提供了一种数据传输方法及装置、电子设备、计算机可读存储介质,能够对目标客户端和数据服务器之间的数据传输过程中IO资源进行调配,提高了数据服务器中数据资源的访问公平性,防止恶意占用IO资源的问题。
第一方面,提供一种数据传输方法,应用于代理服务器,所述代理服务器第一端与至少一个客户端连接,所述代理服务器的第二端与数据服务器连接;所述代理服务器用于在所述至少一个客户端和所述数据服务器之间进行数据转发,所述方法包括:
获取向目标客户端提供数据传输服务的目标线程的数量,并确定所述目标客户端的传输属性信息;所述传输属性信息用于指示所述目标客户端在单位时间内能够传输的最大数据量;
基于所述目标线程的数量和所述目标客户端的传输属性信息,确定针对所述目标客户端和所述数据服务器之间进行数据转发时输入输出IO资源分配策略;
基于所述IO资源分配策略,对所述目标客户端和所述数据服务器之间的数据进行转发。
第二方面,提供一种数据传输装置,所述数据传输装置应用于代理服务器,所述代理服务器第一端与至少一个客户端连接,所述代理服务器的第二端与数据服务器连接;所述代理服务器用于在所述至少一个客户端和所述数据服务器之间进行数据转发;所述装置包括:
获取单元,用于获取向目标客户端提供数据传输服务的目标线程的数量,并确定所述目标客户端的传输属性信息;所述传输属性信息用于指示所述目标客户端在单位时间内能够传输的最大数据量;
处理单元,用于基于所述目标线程的数量和所述目标客户端的传输属性信息,确定针对所述目标客户端和所述数据服务器之间进行数据转发时输入输出IO资源分配策略;
数据传输单元,用于基于所述IO资源分配策略,对所述目标客户端和所述数据服务器之间的数据进行转发。
第三方面,提供一种电子设备,所述电子设备包括处理器和用于存储能够在处理器上运行的计算机程序的存储器;
其中,所述处理器用于运行所述计算机程序时,执行如第一方面所述数据传输方法的步骤。
第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行实现如第一方面所述数据传输方法的步骤。
本申请实施例提供数据传输方法及装置、电子设备和计算机存储介质,能够基于目标客户端的目标线程的数量,以及目标客户端的数据传输属性确定IO资源分配策略,进一步,基于IO资源分配策略进行数据传输。这样,在数据传输过程中,引入了IO资源分配策略,能够对目标客户端和数据服务器之间的数据传输过程中IO资源进行调配,可以限制目标客户端与数据服务器之间的上传速率和/或下载速率,提高了数据服务器中数据资源的访问公平性,防止恶意占用IO资源的问题。
附图说明
图1为本申请实施例提供的一种传输***架构示意图;
图2为本申请实施例提供的一种数据传输方法流程示意图1;
图3为本申请实施例提供的一种数据传输方法流程示意图2;
图4为本申请实施例提供的一种数据传输方法流程示意图3;
图5为本申请实施例提供的一种数据传输方法流程示意图4;
图6为本申请实施例提供的一种数据传输方法流程示意图5;
图7为本申请实施例提供的一种数据传输方法流程示意图6;
图8为本申请实施例提供的一种数据传输方法流程示意图7;
图9为本申请实施例提供的一种数据传输方法流程示意图8;
图10为本申请实施例提供的一种数据传输方法流程示意图9;
图11为本申请实施例提供的一种数据传输方法流程示意图10;
图12为本申请实施例提供的一种数据传输方法流程示意图11;
图13为本申请实施例提供的一种数据传输装置的结构组成示意图;
图14为本申请实施例提供的一种电子设备的硬件结构组成示意图。
具体实施方式
为了能够更加详尽地了解本申请实施例的特点与技术内容,下面结合附图对本申请实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本发明实施例。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、***、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
实际应用中,若数据服务器部署在内网或者数据服务器部署了防火墙功能,处于外网的客户端无法直接访问部署在内网中的数据服务器以及部署了防火墙功能的数据服务器,客户端必须开启特定的网络策略,或者在防火墙配置过滤规则才能够访问。
其次,若数据服务器部署在公共网络中,客户端只要获知数据服务器的访问密码,任意客户端都可以对该数据服务器进行访问,具有数据泄露的风险,数据服务器的安全性无法得到保障。并且,数据服务器缺乏对客户端来源的甄别和筛选,因此,容易遭受来自黑客的恶意攻击,严重时造成数据服务器瘫痪、数据丢失、数据泄露等问题。
另外,数据服务器无法进行资源划分,在同时接收多个客户端的请求时,无法针对每个客户端进行资源隔离和资源分配,例如下载速率和/或上传速率。在特定情况下,某一客户端的请求资源数过多时,会极大影响其他客户端的使用,甚至造成数据服务器的瘫痪。
基于相关技术中的上述问题,本申请实施例提供一种数据传输方法及装置、电子设备和存储介质。本申请实施例所提供的数据传输方法及装置、电子设备和存储介质可以应用于图1所示的传输***架构中,下面,对本申请实施例涉及的传输***架构进行简单介绍。
如图1所示,代理服务器11通过串行方式连接在数据服务器12和多个客户端13之间,具体地,代理服务器11的第一端可以通过有线或者无线的方式与至少一个客户端13连接,具体连接方式本申请实施例这里不做限定。另外,代理服务器的第二端可以通过有线或者无线的方式与数据服务器12连接,同样地,对于具体的连接方式本申请实施例这里不做限定。
在本申请提供的实施例中,代理服务器11用于在所述至少一个客户端13和数据服务器12之间进行数据转发。具体地,代理服务器11可以通过FTP与至少一个客户端13连接,客户端13与代理服务器11进行交互,代理服务器11对于客户端13传送过来的命令以及请求,代理服务器将其记录,并把命令以及请求通过转发至数据服务器12。另外,代理服务器11对于数据服务器12传回的响应消息,代理服务器11在记录之后,同样通过与客户端13的连接转发至客户端13。代理服务器11就实现了客户端13与数据服务器12会话中类似“中间桥梁”的作用。
需要说明的是,代理服务器可以部署与内外网的交换区,即代理服务器具有两个网卡,其中一个网卡能够实现与外网的交互,另一个网卡能够实现与内网的交互。这样,代理服务器能够统一接收客户端的FTP请求,客户端通过代理服务器间接获取数据服务器的服务,不用直接访问数据服务器,保证的数据服务器的安全性。
基于上述传输***架构,本申请实施例提供一种数据传输方法,该数据传输方法可以应用于上述图1所示的代理服务器11中,请参阅图2所示一种数据传输方法的可选流程示意图,所述方法包括以下步骤:
步骤210、获取向目标客户端提供数据传输服务的目标线程的数量,并确定目标客户端的传输属性信息。
在本申请提供的实施例中,目标线程用于指示代理服务器向目标客户端提供数据传输服务的线程。这里,目标客户端是指与代理服务器连接的多个客户端中的一个。
实际应用中,一个客户端可以通过代理服务器与数据服务器之间进行多个不同的数据传输任务;这里,数据传输任务可以包括数据上传任务或数据下载任务。并且,代理服务器可以为客户端执行的每个任务都建立一个提供数据传输服务的线程,通过线程来处理代理服务器和客户端之间的数据传输。
可以理解的是,代理服务器可以为目标客户端建立多个不同的线程,来处理目标客户端和数据服务器之间不同的数据传输任务。在本申请提供的实施例中,代理服务器可以计算当前正在向目标客户端提供数据传输服务的线程的数量,来得到目标线程的总数。
另外,在本申请提供的实施例中,传输属性信息用于指示目标客户端在单位时间内能够传输的最大数据量;也就是说,传输属性信息能够指示目标客户端单位时间内从代理服务器读取数据的总量。需要说明的是,每个客户端的传输属性信息可以相同也可以不同。
在一可能的实施方式中,目标客户端的传输属性信息所指示的单位时间内能够传输的最大数据量可以是代理服务器根据客户端的优先级确定,例如,代理服务器可以接收目标客户端发送的连接请求信息,根据连接请求信息解析目标客户端的优先级,并基于优先级确定目标客户端的传输属性信息。在另一可能的实施方式中,目标客户端的传输属性信息也可以是目标客户端在连接请求中直接告知代理服务器。这里,本申请实施例对传输属性信息的来源不做限定。
步骤220、基于目标线程的数量和目标客户端的传输属性信息,确定针对目标客户端和数据服务器之间进行数据转发时输入输出IO资源分配策略。
在本申请提供的实施例中,代理服务器可以为目标客户端创建多个线程来处理多个不同的数据传输业务,为了防止目标客户端启动多个数据传输任务,通过多个线程进行数据传输而造成的抢占IO资源的情况,代理服务器可以基于目标客户端的目标线程的数量,以及目标客户端的数据传输属性确定IO资源分配策略。
在本申请提供的实施例中,IO资源分配策略包括目标客户端与代理服务器之间用于传输数据的多个线程中每个线程的数据传输速率,以及代理服务器与数据服务器之间用于传输数据的多个线程中每个线程的数据传输速率。这里,每个线程的数据传输速率可以理解为是每个线程每次读取/写入的数据量(即单位时间内传输的数据量)。
也就是说,目标客户端与代理服务器之间用于传输数据的多个线程中每个线程的数据传输速率,以及代理服务器与数据服务器之间用于传输数据的多个线程中每个线程的数据传输速率,可以由代理服务器向目标客户端提供数据传输服务器的目标线程数量决定。例如,代理服务器为目标客户端创建的用于数据传输的线程增多时,可以降低每个线程的下载/上传速率,从而保证了每个客户端IO资源是均衡的。
步骤230、基于IO资源分配策略,对目标客户端和数据服务器之间的数据进行转发。
具体地,代理服务器可以按照步骤220确定的资源分配策略,对目标客户端和数据服务器之间的数据进行转发。例如,目标客户端请求第一数据时,代理服务器可以按照IO分配策略中规定的传输第一数据的线程的传输速率,从数据服务器下载第一数据,并按照IO资源分配策略中规定的传输第一数据的线程的传输速率,将第一数据传输至目标客户端。
在一种可能的实现方式中,基于IO资源分配策略,对目标客户端和数据服务器之间的数据进行转发之前,还包括以下步骤:
步骤2300、创建缓冲区;缓冲区用于存储目标客户端和数据服务器之间的待转发数据。
这里,缓冲区可以是代理服务器中内存的存储区域,也可以是代理服务器中磁盘的存储区域,本申请实施例这里不做限定。
在本申请提供的实施例中,为了提高目标客户端和数据服务器之间的数据传输效率,代理服务器可以创建缓冲区,将待转发的数据通过缓冲区保存,目标客户端的读写数据都通过缓冲区来进行。需要说明的是,创建的缓冲区越大,则越能提高目标客户端和数据服务器之间的数据转发效率。
基于此,步骤230基于IO资源分配策略,对目标客户端和数据服务器之间的数据进行转发,具体包括:
基于IO资源分配策略,获取缓冲区的待转发数据,并将待转发数据发送至目标客户端和/或数据服务器。
在一可行的示例中,目标客户端向数据服务器发送下载第一数据的请求,代理服务器接收到该请求之后,可以基于IO资源分配策略中规定的代理服务器和数据服务器之间相关线程的传输速率,从数据服务器读取第一数据,并将第一数据保存在缓冲区中;同时,代理服务器根据IO资源分配策略中规定代理服务器和目标客户端之间相关线程的传输速率,从缓冲区读取第一数据,并将缓冲区中的第一数据发送至目标客户端。
在另一可行的示例中,目标客户端向代理服务器发送上传第二数据的请求,代理服务器接收到该请求之后,可以基于IO资源分配策略中规定的目标客户端和代理服务器之间相关线程的传输速率,接收目标客户端发送的第二数据,并将第二数据保存在缓冲区中;同时,代理服务器基于IO资源分配策略中规定的代理服务器和数据服务器之间相关线程的传输速率,从缓冲区中读取第二数据,并将第二数据上传至数据服务器。
由此可见,本申请提供的数据传输方法,能够基于目标客户端的目标线程的数量,以及目标客户端的数据传输属性确定IO资源分配策略,基于IO资源分配策略进行数据传输。如此,在数据传输过程中,引入了IO资源分配策略,能够对目标客户端和数据服务器之间的数据传输过程中IO资源进行调配,可以限制目标客户端与数据服务器之间的上传速率和/或下载速率,提高了数据服务器中数据资源的访问公平性,防止恶意占用IO资源的问题。
基于前述实施例,对前述实施例中的步骤220进行详细描述,步骤220包括步骤2201至步骤2202。具体地,在图2的基础上,本申请实施例提供一种数据传输方法,如图3所示,包括以下步骤:
步骤2201、基于目标线程的数量和目标客户端的传输属性信息,确定目标线程中的每个线程在单位时间内传输的数据量;
步骤2202、基于目标线程中每个线程在单位时间内传输的数据量,确定IO资源分配策略。
在本申请提供的实施例中,由于目标客户端可能同时进行多个上传/下载的数据传输任务,为了保证多个目标客户端之间分配的IO资源是均衡的,代理服务器可以根据客户端创建的线程总数和该目标客户端的传输属性信息,确定目标客户端目标线程中每个线程每次读取/写入的数据量(即单位时间内传输的数据量),并基于目标线程中每个线程每次读取/写入的数据量,得到所述目标客户端和数据服务器之间进行数据转发时的IO资源分配策略。
具体地,传输属性信息用于指示目标客户端在单位时间内能够传输的最大数据量,也就是说,目标客户端在单位时间内能够传输的最大数据量可以是固定不变的,为目标客户端提供数据传输的目标线程中每个线程每次读取/写入的数据量之和等于目标客户端在单位时间内能够传输的最大数据量。当目标客户端创建的任务增多时,每个任务对应的线程传输速率就会降低,从而保证了多个目标客户端的IO资源是均衡的。
需要说明的是,目标线程中每个线程读取/写入的数据量可以相同也可以不同。例如,代理服务器可以将目标客户端在单位时间内能够传输的最大数据量对目标线程进行均分,使得目标线程中每个线程之间读取/写入的数据量相同;或者,代理服务器可以根据目标线程中每个线程建立的时间顺序,确定每个线程读取/写入的数据量,线程建立的时间越早,该线程读取/写入的数据量越大。
还需要说明的是,本申请实施例中的目标线程用于指示代理服务器向目标客户端提供数据传输服务的线程;因此,代理服务器在确定了目标线程中每个线程每次读取/写入的数据量之后,相应的,代理服务器可以确定代理服务器和数据服务器之间相关线程每次读取/写入的数据量。具体地,属于同一数据传输任务的线程每次读取/写入的数据量相同;例如,代理服务器向目标客户端发送第一数据的线程和代理服务器从数据服务器获取第一数据的线程,两个线程每次读取/写入的数据量相同。
本申请提供的数据传输方法,代理服务器可以基于目标客户端的目标线程的数量,以及目标客户端的数据传输属性确定IO资源分配策略;当目标客户端创建的数据传输任务增多时,每个任务对应的线程读取/写入的速率会降低,如此,通过限制目标客户端与数据服务器之间的上传速率和/或下载速率,保证多个目标客户端之间IO资源的均衡,提高了数据服务器中数据资源的访问公平性,防止恶意占用IO资源的问题。
在一种可能的实施方式中,步骤210确定目标客户端的传输属性信息可以包括以下步骤:
步骤2101、获取目标客户端的优先级;目标客户端的优先级表征目标客户端用户的重要程度。
步骤2102、基于目标客户端的优先级,确定目标客户端的传输属性信息。
可以理解为,不同的目标客户端对应的传输属性信息不同;且每个目标客户端的传输属性信息由每个目标客户端的优先级决定,优先级越高,传输属性信息表征的单位时间内能够传输的最大数据量越大。
这里,优先级可以是目标客户端与数据服务器签订的服务协议。例如,目标客户端可以和数据服务器签订VIP服务协议;签署了VIP服务协议的目标客户端相比于未签署VIP服务协议的目标客户端在单位时间内能够传输的最大数据量大。
在一中可能的实施方式中,代理服务器可以执行以下步骤:
步骤240、监测目标线程中第一线程持续传输数据的数据量之和;其中,第一线程为目标线程中任意一个线程;
步骤250、若第一线程持续传输数据的数据量之和超过预设阈值,控制第一线程进入休眠状态。
具体地,针对多个客户端可能抢占IO资源的情况,代理服务器可以在线程读取/写入一定的数据量之后,控制该线程进入休眠状态,即停止该线程的数据传输。具体地,代理服务器可以实时的监测目标线程中每一个单独的线程在工作状态下持续传输数据量。当监测到目标线程中的第一线程(即目标线程中的任意一个线程)在工作状态下持续传输数据量大于预设阈值之后,控制第一线程进入休眠状态。
进一步地,为了保证数据的正常传输,代理服务器需要在第一线程进入休眠状态一段时间之后,控制第一线程重新进入工作状态。具体地,在上述方案步骤250之后,还可以执行以下步骤:
步骤260、检测到第一线程进入休眠状态的时长大于预设时长,控制第一线程进入工作状态;
其中,预设时长与第一线程在单位时间内传输的数据量,代理服务器与目标客户端之间的第一带宽,以及代理服务器与数据服务器之间的第二带宽相关。
具体地,代理服务器可以根据第一线程在单位时间内传输的数据量,代理服务器与目标客户端之间的第一带宽,以及代理服务器与数据服务器之间的第二带宽计算休眠的时间。
示例性的,代理服务器可以根据第一线程在单位时间内传输的数据量和第一带宽计算目标客户端的读取时间,并根据第一线程在单位时间内传输的数据量和第二带宽计算代理服务器的写入时间。进一步,基于读取时间和写入时间动态计算第一线程的休眠时间。
在一种可能的实施例中,步骤210之前,还包括以下步骤:
步骤201、接收来自目标客户端的连接请求;其中,连接请求包括目标客户端的用户信息和连接配置信息;
步骤202、若目标客户端的用户信息表征目标客户端为合法客户端,则响应连接请求;
步骤203、基于连接配置信息,通过代理服务器的第一端与目标客户端建立第一控制连接,通过代理服务器的第二端与所述数据服务器建立第二控制连接。
在本申请提供的实施例中,代理服务器部署在内外网交换区,代理服务器对外统一接收目标客户端的连接请求。基于此,本申请实施例中的代理服务器可以对目标客户端发送的连接请求进行验证,判断该目标客户端是否是合法的客户端。具体地,代理服务器通过解析连接请求中的用户信息,判断该客户端是否为合法客户端。这里,用户信息可以包括目标客户端的网际互连协议(Internet Protocol,IP)地址和数据传输端口。也就是说,代理服务器可以根据目标客户端的IP地址和数据传输端口来判断目标客户端的合法性。
在本申请提供的实施例中,基于用户信息判断客户端是否为合法客户端的方式有多种。在一种可能的示例中,代理服务器可以维护一份IP地址和端口的黑名单,若目标客户端的用户信息不在该黑名单中,则认定该目标客户端为合法用户;若目标客户端的用户信息在该黑名单中,则认定该目标客户端为非法用户。在另一种可能的示例中,代理服务器可以维护一份IP地址和端口的白名单,若目标客户端的用户信息在该白名单中,则认定该目标客户端为合法用户;若目标客户端的用户信息不在该白名单中,则认定该目标客户端为非法用户。
进一步地,当代理服务器判断目标客户端为合法客户端后,可以解析连接请求,得到连接配置信息;这样,代理服务器可以根据配置信息与目标客户端建立第一控制连接,与数据服务器建立第二控制连接。其中,第一控制连接可以传输目标客户端和代理服务器之间的控制会话消息;第二控制连接可以传输代理服务器和数据服务器之间的控制会话消息。
在另一种可能的实现方式中,若客户端的用户信息表征目标客户端为非法客户端,则拒绝目标客户端发送的连接请求。
本申请实施例提供的数据传输方法,通过代理服务器对客户端发送的连接请求进行校验,隔离不符合需求的客户端,保障了服务器的安全性和稳定性;同时,该技术减轻了数据服务器的访问压力,隔绝了来自外网中多数恶意的请求。
进一步地,步骤203之后,还可以执行以下步骤:
步骤204、接收来自目标客户端的第一数据请求;
步骤205、基于第一数据请求,新建传输第一数据的线程。
在本申请提供的实施例中,步骤203中目标客户端和代理服务器建立第一控制连接之后,代理服务器可以通过第一控制连接,接收目标客户端发送的第一数据请求。代理服务器在接收到第一数据请求之后,可以建立传输第一数据的线程,专用于处理第一数据的传输。需要说明的是,第一数据传输完毕之后,则关闭传输第一数据的线程。
这里第一数据请求可以是主动模式中的PORT/EPRT请求,也可以是被动模式中的PASV/EPSV请求。具体描述详见下面的实施例。
从上述方案中可以看出,线程是根据数据传输要求建立和关闭的,向目标客户端提供数据传输服务的目标线程是随时变化的,因此,本申请实施例中针对目标客户端和数据服务器之间进行数据转发时IO资源分配策略也是随着目标线程数量的变化而变化。
具体地,步骤210获取向目标客户端提供数据传输服务的目标线程的数量,包括:
周期性获取向目标客户端提供数据传输服务的目标线程的数量;
或者,
检测到代理服务器为目标客户端新建一个提供传输服务的线程后,获取向目标客户端提供数据传输服务的目标线程的数量。
这样,代理服务器可以根据变化的目标线程的数量,动态确定所述目标客户端和所述数据服务器之间进行数据转发时的IO资源分配策略。
本申请提供的数据传输方法,能够基于目标客户端的目标线程的数量,以及目标客户端的数据传输属性确定IO资源分配策略,基于IO资源分配策略进行数据传输。在数据传输过程中,引入了IO资源分配策略,能够对目标客户端和数据服务器之间的数据传输过程中IO资源进行调配,可以限制目标客户端与数据服务器之间的上传速率和/或下载速率,提高了数据服务器中数据资源的访问公平性,防止恶意占用IO资源的问题。
基于前述实施例,本申请实施例提供一种数据传输方法,应用于图1所述的传输***架构中。本申请实施例提供的数据传输方法在进行数据传输时,可以经历两个阶段:控制会话阶段和数据会话阶段。下面,分别从这两个阶段对本申请实施例提供的数据传输方法进行详细描述:
第一、控制会话阶段。
控制会话阶段主要用于建立目标客户端、代理服务器、以及数据服务器三者之间的控制连接。控制连接主要处理目标客户端的各项请求,并不用于处理数据。具体地,控制会话阶段具体包括以下步骤:
S1、代理服务器创建套接字(socket)控制服务端(conServerSocket),通过conServerSocket实时监听来自目标客户端的请求。
具体地,代理服务器可以根据绑定端口(bind port),建立socket控制服务端(conServerSocket)。
S2、代理服务器接收到目标客户端发送的连接请求时,检测连接请求中用户信息(用户信息具体为目标客户端的IP地址和端口号),根据黑名单/白名单判断该客户端是否为合法客户端。
示例性的,如图4所示,第一目标客户端和第二目标客户端向代理服务器分别发送第一连接请求和第二连接请求,代理服务器对第一连接请求和第二连接请求进行解析,通过黑名单/白名单判断第一连接请求中的第一用户信息确定第一目标客户端为合法客户端,则与第一目标客户端建立连接;通过黑名单/白名单判断第二连接请求中的第二用户信息,确定第二目标客户端为非法客户端,则拒绝与第二目标客户端建立连接。
S3、如图5所示,若检测到目标客户端为合法客户端,代理服务器则与目标客户端之间建立第一控制连接conProxyClient,这里的第一控制连接可以是socket连接。
另外,代理服务器针对每个第一控制连接,都会通过socket控制服务端conServerSocket新建一个控制线程专门用来处理目标客户端的请求。
在本申请提供的实施例中,socket控制服务端conServerSocket持续监听目标客户端的请求,在监听到目标客户端的请求之后,建立第一控制连接并为每个第一控制连接分配线程。
S4、如图6所示,代理服务器根据第一控制连接conProxyClient创建第一控制输入流brClient,用来监听目标客户端控制信息的输入;并创建第一控制输出流psClient,用来向目标客户端传送控制信息。
S5、如图6所示,代理服务器通过第一控制输出流psClient向客户端发送第一响应消息,表示代理服务器已就绪。
S6、目标客户端接收到第一响应消息后,输入用户名以及密码;并通过第一控制连接conProxyClient将用户名和密码发送给代理服务器。具体地,如图6所示,代理服务器通过第一控制输入流brClient读取目标客户端输入的用户名和密码。
S7、如图7所示,代理服务器通过数据服务器IP地址和端口,与数据服务器建立第二控制连接conProxyServer。这里的第二控制连接可以是socket连接。
S8、如图8所示,代理服务器根据第二控制连接conProxyServer创建第二控制输入流brServer,用来监听数据服务器输入的控制信息;并创建第二控制输出流psServer,用来向服务器传输控制信息。
S9、如图8所示,数据服务器通过第二控制连接conProxyServer向代理服务器发送第二响应消息,表示数据服务器已就绪。进一步,代理服务器通过第二控制输入流brServer获取该第二响应消息。
S10、如图8所示,代理服务器收到第二响应消息后,将从目标客户端获取的用户名和密码通过第二控制输出流psServer传输给数据服务器,交给数据服务器进行校验。
S11、数据服务器在获取到用户名以及密码后,校验用户名和密码的有效性。
若用户名和密码无效,数据服务器告知代理服务器用户名和密码无效,向代理服务器发送校验失败消息。具体地,如图9所示,代理服务器从第二控制输入流brServer读取校验失败消息后,并通过第一控制输出流psClient告知目标客户端校验失败,同时关闭第一控制连接和第二控制连接,整个流程结束。
若用户名和密码校验成功,则告知代理服务器用户名和密码有效并向代理服务器回传默认FTP目录信息。具体地,如图9所示,代理服务器从第二控制输入流brServer读取数据服务器的FTP目录信息,同时,通过第一控制输出流psClient回传给目标客户端,控制会话阶段结束。
第二、数据会话阶段。
数据会话阶段主要用于建立目标客户端、代理服务器、以及数据服务器三者之间的数据连接。数据连接主要处理目标客户端与数据服务器之间的数据传输。
实际应用中,向基于FTP的数据服务器请求数据包括主动模式和被动模式,因此在图1所示的数据传输***中加入了代理服务器之后,向代理服务器和数据服务器请求数据时也都需要区分主动模式和被动模式。由于目标客户端对代理服务器无感知,目标客户端请求代理服务器时,以为请求的是真实的数据服务器。因此,代理服务器需要模拟真实的数据服务器,支持主动和被动指令传送和解析,让目标客户端认为是在和真实的数据服务器进行数据传输。
(1)主动模式:
具体地,数据会话阶段中主动模式具体包括以下步骤:
S12、目标客户端向代理服务器发送PORT/EPRT请求,PORT/EPRT请求中包括目标客户端的IP地址和端口号,其中,端口号是代理服务器随机生成。具体地,目标客户端通过第一控制连接conProxyClient将PORT/EPRT请求发送至代理服务器。
S13、如图10所示,代理服务器通过第一控制输入流brClient读取目标客户端发送的PORT/EPRT请求,通过PORT/EPRT请求的前缀得知目标客户端采取主动模式,同时通过特定方式从PORT/EPRT请求中解析得到目标客户端的IP地址和端口,并且代理服务器创建socket数据服务端dataServerSocket。
S14、如图10所示,代理服务器通过S13中获取的IP地址和端口,与目标客户端建立第一数据连接dataProxyClient,其中,第一数据连接dataProxyClient为数据流socket连接。
需要说明的是,代理服务器针对每个第一数据连接,都会通过socket数据服务端dataServerSocket新建一个用于数据传输的线程专门用来处理目标客户端和代理服务器之间的数据传输。
具体地,代理服务器根据第一数据连接dataProxyClient创建第一数据输入流biClient,用来监听目标客户端数据信息的输入;并创建第一数据输出流boClient,用来向目标客户端传送数据信息。
可以理解的是,代理服务器针对第一数据连接,新建用于数据传输的线程,该线程可以通过第一数据输入流biClient和第一数据输出流boClient来传输目标客户端和代理服务器之间的数据。
(2)被动模式:
具体地,数据会话阶段中被动模式具体包括以下步骤:
S15、目标客户端向代理服务器发送PASV/EPSV请求。
具体地,目标客户端通过第一控制连接conProxyClient将PASV/EPSV请求发送至代理服务器。
S16、如图11所示,代理服务器通过第一控制输入流brClient读取目标客户端发送的PASV/EPSV请求,通过PASV/EPSV请求的前缀得知目标客户端采取被动模式。同时,代理服务器创建socket数据服务端dataServerSocket,并随机生成一个端口号,通过第一控制输出流psClient告知目标客户端其IP地址和端口号。
S17、如图11所示,目标客户端通过第一控制连接conProxyClient,获取并解析代理服务器发送的IP地址和端口号后,与代理服务器建立第一数据连接dataProxyClient,其中,与主动模式相同,第一数据连接dataProxyClient为数据流socket连接。
需要说明的是,代理服务器针对每个第一数据连接,都会通过socket数据服务端dataServerSocket新建一个用于数据传输的线程专门用来处理目标客户端和代理服务器之间的数据传输。
具体地,代理服务器根据第一数据连接dataProxyClient创建第一数据输入流biClient,用来监听目标客户端数据信息的输入;并创建第一数据输出流boClient,用来向目标客户端传送数据信息。
可以理解的是,代理服务器针对第一数据连接,新建用于数据传输的线程,该线程通过第一数据输入流biClient和第一数据输出流boClient来传输目标客户端和代理服务器之间的数据。
S18、代理服务器与数据服务器的数据会话建立流程,与上述目标客户端与代理服务器的流程基本一致。代理服务器与数据服务器的数据会话建立也包括主动模式以及被动模式。具体地,代理服务器扮演上述目标客户端的角色,让数据服务器以为是在和真实的客户端通信,在此不再阐述。
这里,代理服务器通过主动模式或者被动模式,与数据服务器建立第二数据连接dataProxyServer。
需要说明的是,代理服务器针对每个第二数据连接,同样会通过socket数据服务端dataServerSocket新建一个用于数据传输的线程专门用来处理数据服务器和代理服务器之间的数据传输。
这里,代理服务器还可以根据第二数据连接dataProxyServer创建第二数据输入流biServer,用来监听数据服务器输入的数据;并创建第二数据输出流boServer,用来向服务器传输数据。
可以理解的是,代理服务器针对第二数据连接,新建用于数据传输的线程,该线程可以通过第二数据输入流biServer和第二数据输出流boServer来传输数据服务器和代理服务器之间的数据。
S19、当目标客户端下载数据时,代理服务器通过第二数据连接dataProxyServer的第二数据输入流biServer来读取数据服务器传输的数据;根据第一数据连接dataProxyClient的第一数据输出流boClient向目标客户端写入数据。
当目标客户端需要上传数据时,代理服务器通过第一数据连接dataProxyClient的第一数据输入流biClient来读取目标客户端传输的数据;并且,根据第二数据连接dataProxyServer的第二数据输出流boServer向数据服务器写入数据。
在本申请提供的实施例中,为了提高数据上传/下载的效率,代理服务器还可以创建缓冲区(buffer)。参考图12所示,目标客户端和数据服务器读写数据都通过缓冲区来进行。其中,缓冲区越大,则越能提高读写效率。
S20、当数据传输完成后,关闭第一数据连接和第二数据连接。
另外,每个客户端可能同时进行多个上传/下载任务,代理服务器针对每个上传/下载任务都会建立第一数据连接和第二数据连接,创建用于数据传输的线程。针对多个客户端可能抢占IO资源的情况,代理服务器可以控制线程每次读取/写入的字节数根据该客户端的用于数据传输的线程数量决定。也就是说,当目标客户端创建的任务增多时,每个任务的读取/写入速率会降低,从而保证了每个目标客户端抢占的资源是均衡的。另外,在每次从socket读取/写一定的字数后,相关线程需要休眠指定的时间。
示例性的,代理服务器可以通过下面的伪代码执行数据传输:
本申请实施例在数据传输***架构中引入了中间层的代理服务器,通过代理服务器对客户端和数据服务器的控制会话和数据会话进行转发。这样,通过隐藏数据服务器真实地址,只暴露代理服务器给客户端进行访问,对请求入口进行了统一;这样,只要代理服务器和数据服务器能够通信,即使客户端无法直接访问数据服务器,客户端也能够通过代理服务器间接获取数据服务器的数据。例如,数据服务器部署在内网、或者数据服务器部署了防火墙,客户端通过代理服务器都可以获取数据服务器的数据。
另外,本申请实施例中,代理服务器可以对客户端IP地址和端口进行黑/白名单过滤,对于不在名单内的请求拒绝提供数据传输服务。提升了数据服务器的安全性,即使在客户端密码泄露的情况下,也只能通过特定的IP地址和端口对数据服务器进行访问。同时,本申请实施例提供的数据传输方法减轻了服务器的访问压力,隔绝了来自公网的多数恶意请求。
最后,本申请实施例还能够基于目标客户端的目标线程的数量,以及目标客户端的数据传输属性确定IO资源分配策略,基于IO资源分配策略进行数据传输。在数据传输过程中,引入了IO资源分配策略,能够对目标客户端和数据服务器之间的数据传输过程中IO资源进行调配,可以限制目标客户端与数据服务器之间的上传速率和/或下载速率,提高了数据服务器中数据资源的访问公平性,防止恶意占用IO资源的问题。
基于前述实施例,本申请实施例提供一种数据传输装置,所述数据传输装置可以应用于代理服务器中,所述代理服务器第一端与至少一个客户端连接,所述代理服务器的第二端与数据服务器连接;所述代理服务器用于在所述至少一个客户端和所述数据服务器之间进行数据转发。如图13所示,所述数据传输装置包括:
获取单元1301,用于获取向目标客户端提供数据传输服务的目标线程的数量,并确定所述目标客户端的传输属性信息;所述传输属性信息用于指示所述目标客户端在单位时间内能够传输的最大数据量;
处理单元1302,用于基于所述目标线程的数量和所述目标客户端的传输属性信息,确定针对所述目标客户端和所述数据服务器之间进行数据转发时输入输出IO资源分配策略;
数据传输单元1303,用于基于所述IO资源分配策略,对所述目标客户端和所述数据服务器之间的数据进行转发。
可选地,处理单元1302,具体用于基于所述目标线程的数量和所述目标客户端的传输属性信息,确定所述目标线程中的每个线程在单位时间内传输的数据量;基于所述目标线程中每个线程在单位时间内传输的数据量,确定所述IO资源分配策略。
可选地,所述数据传输装置还包括监测单元1304;
所述监测单元1304,用于监测所述目标线程中第一线程持续传输数据的数据量之和;其中,所述第一线程为所述目标线程中任意一个线程;
所述处理单元1302,还用于若所述第一线程持续传输数据的数据量之和超过预设阈值,控制所述第一线程进入休眠状态。
可选地,所述处理单元1302,还用于检测到所述第一线程进入休眠状态的时长大于预设时长,控制所述第一线程进入工作状态;其中,所述预设时长与所述第一线程在单位时间内传输的数据量,所述代理服务器与所述目标客户端之间的第一带宽,以及所述代理服务器与所述数据服务器之间的第二带宽相关。
可选地,上述数据传输装置还包括缓冲区创建单元1305;
所述缓冲区创建单元1305,用于创建缓冲区;所述缓冲区用于存储所述目标客户端和所述数据服务器之间的待转发数据;
所述数据传输单元1303,具体用于基于所述IO资源分配策略,获取所述缓冲区的待转发数据,并将所述待转发数据发送至所述目标客户端和/或所述数据服务器。
可选地,获取单元1301,还用于接收来自所述目标客户端的连接请求;其中,所述连接请求包括所述目标客户端的用户信息和连接配置信息;
处理单元1302,还用于若所述目标客户端的用户信息表征所述目标客户端为合法客户端,则响应所述连接请求;基于所述连接配置信息,通过所述代理服务器的第一端与所述目标客户端建立第一控制连接,通过所述代理服务器的第二端与所述数据服务器建立第二控制连接。
可选地,获取单元1301,还用于接收来自所述目标客户端的第一数据请求;
处理单元1302,还用于基于所述第一数据请求,新建传输所述第一数据的线程。
可选地,获取单元1301,还用于获取目标客户端的优先级;所述目标客户端的优先级表征所述目标客户端用户的重要程度;
处理单元1302,还用于基于所述目标客户端的优先级,确定所述目标客户端的传输属性信息。
可选地,获取单元1301,用于周期性获取向目标客户端提供数据传输服务的目标线程的数量;或者,检测到所述代理服务器为所述目标客户端新建一个提供传输服务的线程后,获取向目标客户端提供数据传输服务的目标线程的数量。
实施例七
基于上述数据传输装置中各单元的实现,为了实现本申请实施例提供的数据传输方法,本申请实施例还提供了一种电子设备,如图14所示,所述电子设备140包括:处理器1401和配置为存储能够在处理器上运行的计算机程序的存储器1402,
其中,所述处理器1401配置为运行所述计算机程序时,执行前述实施例中的方法步骤。
当然,实际应用时,如图14所示,该电子设备140中的各个组件通过总线***1403耦合在一起。可理解,总线***1403用于实现这些组件之间的连接通信。总线***1403除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图14将各种总线都标为总线***1403。
在示例性实施例中,本申请实施例还提供了一种计算机可读存储介质,例如包括图14所示的计算机程序的存储器1402,上述计算机程序可由电子设备140的处理器1401执行,以完成前述方法所述步骤。计算机可读存储介质可以是磁性随机存取存储器(FRAM,ferromagnetic random access memory)、只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)、快闪存储器(FlashMemory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory)等存储器。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。
Claims (12)
1.一种数据传输方法,其特征在于,应用于代理服务器,所述代理服务器第一端与至少一个客户端连接,所述代理服务器的第二端与数据服务器连接;所述代理服务器用于在所述至少一个客户端和所述数据服务器之间进行数据转发,所述方法包括:
获取向目标客户端提供数据传输服务的目标线程的数量,并确定所述目标客户端的传输属性信息;所述传输属性信息用于指示所述目标客户端在单位时间内能够传输的最大数据量;
基于所述目标线程的数量和所述目标客户端的传输属性信息,确定针对所述目标客户端和所述数据服务器之间进行数据转发时输入输出IO资源分配策略;
基于所述IO资源分配策略,对所述目标客户端和所述数据服务器之间的数据进行转发。
2.根据权利要求1所述的方法,其特征在于,所述基于所述目标线程的数量和所述目标客户端的传输属性信息,确定针对所述目标客户端和所述数据服务器之间进行数据转发时输入输出IO资源分配策略,包括:
基于所述目标线程的数量和所述目标客户端的传输属性信息,确定所述目标线程中的每个线程在单位时间内传输的数据量;
基于所述目标线程中每个线程在单位时间内传输的数据量,确定所述IO资源分配策略。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
监测所述目标线程中第一线程持续传输数据的数据量之和;其中,所述第一线程为所述目标线程中任意一个线程;
若所述第一线程持续传输数据的数据量之和超过预设阈值,控制所述第一线程进入休眠状态。
4.根据权利要求3所述的方法,其特征在于,所述控制所述第一线程进入休眠状态之后,还包括:
检测到所述第一线程进入休眠状态的时长大于预设时长,控制所述第一线程进入工作状态;
其中,所述预设时长与所述第一线程在单位时间内传输的数据量,所述代理服务器与所述目标客户端之间的第一带宽,以及所述代理服务器与所述数据服务器之间的第二带宽相关。
5.根据权利要求1所述的方法,其特征在于,所述基于所述IO资源分配策略,对所述目标客户端和所述数据服务器之间的数据进行转发之前,还包括:
创建缓冲区;所述缓冲区用于存储所述目标客户端和所述数据服务器之间的待转发数据;
所述基于所述IO资源分配策略,对所述目标客户端和所述数据服务器之间的数据进行转发,包括:
基于所述IO资源分配策略,获取所述缓冲区的待转发数据,并将所述待转发数据发送至所述目标客户端和/或所述数据服务器。
6.根据权利要求1所述的方法,其特征在于,所述获取向目标客户端提供数据传输服务的目标线程的数量之前,还包括:
接收来自所述目标客户端的连接请求;其中,所述连接请求包括所述目标客户端的用户信息和连接配置信息;
若所述目标客户端的用户信息表征所述目标客户端为合法客户端,则响应所述连接请求;
基于所述连接配置信息,通过所述代理服务器的第一端与所述目标客户端建立第一控制连接,通过所述代理服务器的第二端与所述数据服务器建立第二控制连接。
7.根据权利要求1所述的方法,其特征在于,所述获取向目标客户端提供数据传输服务的目标线程的数量之前,还包括:
接收来自所述目标客户端的第一数据请求;
基于所述第一数据请求,新建传输所述第一数据的线程。
8.根据权利要求1所述的方法,其特征在于,所述确定所述目标客户端的传输属性信息,包括:
获取目标客户端的优先级;所述目标客户端的优先级表征所述目标客户端用户的重要程度;
基于所述目标客户端的优先级,确定所述目标客户端的传输属性信息。
9.根据权利要求1所述的方法,其特征在于,所述获取向目标客户端提供数据传输服务的目标线程的数量,包括:
周期性获取向目标客户端提供数据传输服务的目标线程的数量;
或者,
检测到所述代理服务器为所述目标客户端新建一个提供传输服务的线程后,获取向目标客户端提供数据传输服务的目标线程的数量。
10.一种数据传输装置,其特征在于,所述数据传输装置应用于代理服务器,所述代理服务器第一端与至少一个客户端连接,所述代理服务器的第二端与数据服务器连接;所述代理服务器用于在所述至少一个客户端和所述数据服务器之间进行数据转发;所述装置包括:
获取单元,用于获取向目标客户端提供数据传输服务的目标线程的数量,并确定所述目标客户端的传输属性信息;所述传输属性信息用于指示所述目标客户端在单位时间内能够传输的最大数据量;
处理单元,用于基于所述目标线程的数量和所述目标客户端的传输属性信息,确定针对所述目标客户端和所述数据服务器之间进行数据转发时输入输出IO资源分配策略;
数据传输单元,用于基于所述IO资源分配策略,对所述目标客户端和所述数据服务器之间的数据进行转发。
11.一种电子设备,所述电子设备包括处理器和用于存储能够在处理器上运行的计算机程序的存储器;
其中,所述处理器用于运行所述计算机程序时,执行权利要求1至9任一项所述数据传输方法的步骤。
12.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行实现权利要求1至9任一项所述数据传输方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010725082.1A CN113973093B (zh) | 2020-07-24 | 2020-07-24 | 数据传输方法及装置、电子设备、可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010725082.1A CN113973093B (zh) | 2020-07-24 | 2020-07-24 | 数据传输方法及装置、电子设备、可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113973093A true CN113973093A (zh) | 2022-01-25 |
CN113973093B CN113973093B (zh) | 2023-10-13 |
Family
ID=79585733
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010725082.1A Active CN113973093B (zh) | 2020-07-24 | 2020-07-24 | 数据传输方法及装置、电子设备、可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113973093B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116614559A (zh) * | 2023-07-18 | 2023-08-18 | 天津市天河计算机技术有限公司 | 一种数据传输方法、设备、***和存储介质 |
Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050091395A1 (en) * | 2003-10-08 | 2005-04-28 | Jason Harris | Method and system for transferring data files |
US20120271880A1 (en) * | 2011-04-19 | 2012-10-25 | Accenture Global Services Limited | Content transfer accelerator |
WO2014082562A1 (en) * | 2012-11-29 | 2014-06-05 | Tencent Technology (Shenzhen) Company Limited | Method, device, and system for information processing based on distributed buses |
US20160191672A1 (en) * | 2014-12-26 | 2016-06-30 | Radia Perlman | Multiplexing many client streams over a single connection |
CN105847396A (zh) * | 2016-04-25 | 2016-08-10 | 乐视控股(北京)有限公司 | 数据传输的方法及设备 |
WO2017133496A1 (zh) * | 2016-02-02 | 2017-08-10 | 华为技术有限公司 | 一种资源获取的方法及相关设备 |
CN107402956A (zh) * | 2017-06-07 | 2017-11-28 | 网易(杭州)网络有限公司 | 大任务的数据处理方法、设备和计算机可读存储介质 |
CN107547629A (zh) * | 2017-07-20 | 2018-01-05 | 北京京东尚科信息技术有限公司 | 客户端静态资源下载的方法、装置、电子设备和可读介质 |
CN108134851A (zh) * | 2018-03-16 | 2018-06-08 | 浙江远算云计算有限公司 | 数据传输的服务质量控制方法及装置 |
WO2018107387A1 (zh) * | 2016-12-14 | 2018-06-21 | 深圳前海达闼云端智能科技有限公司 | 数据传输方法、装置、***、电子设备及计算机程序产品 |
US20190014055A1 (en) * | 2017-07-06 | 2019-01-10 | Citrix Systems, Inc. | Application and network aware adaptive compression for better qoe of latency sensitive applications |
CN109753354A (zh) * | 2018-11-26 | 2019-05-14 | 平安科技(深圳)有限公司 | 基于多线程的流媒体任务的处理方法、装置及计算机设备 |
US20190312801A1 (en) * | 2018-04-10 | 2019-10-10 | Vmware, Inc. | Optimized performance data collection at client nodes |
CN110808956A (zh) * | 2019-09-30 | 2020-02-18 | 林德(中国)叉车有限公司 | 一种数据交互方法及*** |
CN110995784A (zh) * | 2019-11-05 | 2020-04-10 | 北京奇艺世纪科技有限公司 | 数据传输方法、***及存储介质 |
CN111131188A (zh) * | 2019-12-09 | 2020-05-08 | 北京海益同展信息科技有限公司 | 通信连接方法及服务器、客户端、存储介质 |
CN112631788A (zh) * | 2021-01-06 | 2021-04-09 | 上海哔哩哔哩科技有限公司 | 数据传输方法及数据传输服务器 |
-
2020
- 2020-07-24 CN CN202010725082.1A patent/CN113973093B/zh active Active
Patent Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050091395A1 (en) * | 2003-10-08 | 2005-04-28 | Jason Harris | Method and system for transferring data files |
US20120271880A1 (en) * | 2011-04-19 | 2012-10-25 | Accenture Global Services Limited | Content transfer accelerator |
WO2014082562A1 (en) * | 2012-11-29 | 2014-06-05 | Tencent Technology (Shenzhen) Company Limited | Method, device, and system for information processing based on distributed buses |
US20160191672A1 (en) * | 2014-12-26 | 2016-06-30 | Radia Perlman | Multiplexing many client streams over a single connection |
WO2017133496A1 (zh) * | 2016-02-02 | 2017-08-10 | 华为技术有限公司 | 一种资源获取的方法及相关设备 |
CN105847396A (zh) * | 2016-04-25 | 2016-08-10 | 乐视控股(北京)有限公司 | 数据传输的方法及设备 |
WO2017185632A1 (zh) * | 2016-04-25 | 2017-11-02 | 乐视控股(北京)有限公司 | 数据传输的方法及电子设备 |
WO2018107387A1 (zh) * | 2016-12-14 | 2018-06-21 | 深圳前海达闼云端智能科技有限公司 | 数据传输方法、装置、***、电子设备及计算机程序产品 |
CN107402956A (zh) * | 2017-06-07 | 2017-11-28 | 网易(杭州)网络有限公司 | 大任务的数据处理方法、设备和计算机可读存储介质 |
US20190014055A1 (en) * | 2017-07-06 | 2019-01-10 | Citrix Systems, Inc. | Application and network aware adaptive compression for better qoe of latency sensitive applications |
CN107547629A (zh) * | 2017-07-20 | 2018-01-05 | 北京京东尚科信息技术有限公司 | 客户端静态资源下载的方法、装置、电子设备和可读介质 |
CN108134851A (zh) * | 2018-03-16 | 2018-06-08 | 浙江远算云计算有限公司 | 数据传输的服务质量控制方法及装置 |
US20190312801A1 (en) * | 2018-04-10 | 2019-10-10 | Vmware, Inc. | Optimized performance data collection at client nodes |
CN109753354A (zh) * | 2018-11-26 | 2019-05-14 | 平安科技(深圳)有限公司 | 基于多线程的流媒体任务的处理方法、装置及计算机设备 |
CN110808956A (zh) * | 2019-09-30 | 2020-02-18 | 林德(中国)叉车有限公司 | 一种数据交互方法及*** |
CN110995784A (zh) * | 2019-11-05 | 2020-04-10 | 北京奇艺世纪科技有限公司 | 数据传输方法、***及存储介质 |
CN111131188A (zh) * | 2019-12-09 | 2020-05-08 | 北京海益同展信息科技有限公司 | 通信连接方法及服务器、客户端、存储介质 |
CN112631788A (zh) * | 2021-01-06 | 2021-04-09 | 上海哔哩哔哩科技有限公司 | 数据传输方法及数据传输服务器 |
Non-Patent Citations (1)
Title |
---|
郑石平;冯学智;: "基于TCP的跨网段文件传输", 计算机工程与设计, no. 05 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116614559A (zh) * | 2023-07-18 | 2023-08-18 | 天津市天河计算机技术有限公司 | 一种数据传输方法、设备、***和存储介质 |
CN116614559B (zh) * | 2023-07-18 | 2023-11-10 | 天津市天河计算机技术有限公司 | 一种数据传输方法、设备、***和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113973093B (zh) | 2023-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11824962B2 (en) | Methods and apparatus for sharing and arbitration of host stack information with user space communication stacks | |
US7320032B2 (en) | Methods and structure for reducing resource hogging | |
US7287077B2 (en) | Reservation of TCP/UDP ports using UID, GID or process name | |
CN110198334B (zh) | 基于对象存储服务的访问方法、装置和存储介质 | |
CA2529230C (en) | Method and system for securely provisioning a client device | |
CN109067877B (zh) | 一种云计算平台部署的控制方法、服务器及存储介质 | |
US9178966B2 (en) | Using transmission control protocol/internet protocol (TCP/IP) to setup high speed out of band data communication connections | |
US9680937B2 (en) | Communication method and apparatus | |
JP2007528085A (ja) | アプリケーションサーバ及びトランザクションベースシステムにチャネルを設けるためのシステム及び方法 | |
EP2008386A2 (en) | Communications multiplexing with packet- communicating networks | |
CN115604199B (zh) | 一种云原生平台微服务网关的服务路由方法和*** | |
KR101799447B1 (ko) | 디바이스의 서버 연결 방법, 정보 제공 방법 및 이를 적용한 디바이스 및, 클라우딩 컴퓨팅 네트워크 시스템 및 그 동작 방법 | |
US20230231915A1 (en) | Bare-metal connection storage method and system, and apparatus | |
CN110661673B (zh) | 一种心跳检测的方法及装置 | |
Chen et al. | Packetcloud: an open platform for elastic in-network services | |
CN113973093B (zh) | 数据传输方法及装置、电子设备、可读存储介质 | |
US11201915B1 (en) | Providing virtual server identity to nodes in a multitenant serverless execution service | |
US7848227B2 (en) | Retransmit timeout suppression in large scale networks | |
CN109040112B (zh) | 网络控制方法和装置 | |
CN109905352B (zh) | 一种基于加密协议审计数据的方法、装置和存储介质 | |
CN110011850B (zh) | 云计算***中服务的管理方法和装置 | |
CN113472545B (zh) | 设备入网方法、装置、设备、存储介质和通信*** | |
CN109462589A (zh) | 应用程序网络访问控制的方法、装置及设备 | |
CN113905080A (zh) | 一种管理方法、设备、***及存储介质 | |
US20240195811A1 (en) | User-defined network connectors between serverless functions and isolated cloud resources |
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 |