CN112631788A - 数据传输方法及数据传输服务器 - Google Patents

数据传输方法及数据传输服务器 Download PDF

Info

Publication number
CN112631788A
CN112631788A CN202110011589.5A CN202110011589A CN112631788A CN 112631788 A CN112631788 A CN 112631788A CN 202110011589 A CN202110011589 A CN 202110011589A CN 112631788 A CN112631788 A CN 112631788A
Authority
CN
China
Prior art keywords
client
data transmission
thread
task
data packet
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
Application number
CN202110011589.5A
Other languages
English (en)
Other versions
CN112631788B (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.)
Shanghai Bilibili Technology Co Ltd
Original Assignee
Shanghai Bilibili Technology 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 Shanghai Bilibili Technology Co Ltd filed Critical Shanghai Bilibili Technology Co Ltd
Priority to CN202110011589.5A priority Critical patent/CN112631788B/zh
Publication of CN112631788A publication Critical patent/CN112631788A/zh
Priority to PCT/CN2022/070245 priority patent/WO2022148363A1/zh
Priority to US18/271,130 priority patent/US20240069977A1/en
Application granted granted Critical
Publication of CN112631788B publication Critical patent/CN112631788B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5055Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5018Thread allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/508Monitor

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请提供数据传输方法及数据传输服务器,其中所述数据传输方法包括:创建主线程和至少两个任务线程;通过所述主线程,在检测到针对客户端的数据传输任务的情况下,根据所述数据传输任务对应的数据包,确定目标任务线程;将所述数据包发送给所述目标任务线程,其中,所述目标任务线程为所述至少两个任务线程中的任一任务线程;通过所述目标任务线程,接收所述主线程发送的数据包;根据所述数据包,确定所述客户端对应的第一文件描述符;通过所述第一文件描述符与所述客户端通信,进行数据传输。如此,通过文件描述符与客户端通信,无需向内核拷贝过多的资源,能够利用较少的内核资源,实现高效的数据传输方法,降低了服务器的内核资源消耗。

Description

数据传输方法及数据传输服务器
技术领域
本申请涉及互联网技术领域,特别涉及一种数据传输方法。本申请同时涉及一种数据传输服务器,一种计算设备,以及一种计算机可读存储介质。
背景技术
随着互联网技术的快速发展,各种数据传输协议应运而生。UDP(User DatagramProtocol,用户数据报协议)是传输层的协议,功能即为在IP(Internet Protocol,网络互连协议)的数据报服务之上增加了最基本的服务:复用和分用以及差错检测。UDP具有TCP所没有的优势,UDP无连接,时间上不存在建立连接需要的时延;空间上,TCP需要在端***中维护连接状态,需要一定的开销,此连接装入包括接收和发送缓存,拥塞控制参数和序号与确认号的参数。UDP不维护连接状态,也不跟踪这些参数,开销小。空间和时间上都具有优势。UDP没有拥塞控制,应用层能够更好的控制要发送的数据和发送时间,网络中的拥塞控制也不会影响主机的发送速率。某些实时应用要求以稳定的速度发送,能容忍一些数据的丢失,但是不能允许有较大的时延(比如实时视频,直播等)。一个UDP链路用一个五元组来表示,五元组则为:源IP地址、目的IP地址、传输层协议(如TCP,UDP)、源端口、目的端口。
现有技术中,UDP协议传输数据底层是调用send to函数或者send函数,目前绝大部分UDP服务器都使用send to函数来传输数据,而send to函数比send函数的参数多了目的套接字的地址、目的套接字的长度这两个参数,这就意味着每次***调用都要多拷贝一些数据到内核空间。同时,参数到内核空间后,内核还需要初始化一些临时的数据结构来存储这些参数值,在数据包发出去后,内核还需要在合适的时候释放这些临时的数据结构。另外,通过UDP链路中携带的五元组(或七元组)进行数据传输,难以实现同时处理非常多来源不同的数据包。
发明内容
有鉴于此,本申请实施例提供了一种数据传输方法。本申请同时涉及一种数据传输服务器,一种计算设备,以及一种计算机可读存储介质,以解决现有技术中存在的内核资源消耗过大的问题。
根据本申请实施例的第一方面,提供了一种数据传输方法,包括:创建主线程和至少两个任务线程;
通过所述主线程,在检测到针对客户端的数据传输任务的情况下,根据所述数据传输任务对应的数据包,确定目标任务线程;将所述数据包发送给所述目标任务线程,其中,所述目标任务线程为所述至少两个任务线程中的任一任务线程;
通过所述目标任务线程,接收所述主线程发送的数据包;根据所述数据包,确定所述客户端对应的第一文件描述符;通过所述第一文件描述符与所述客户端通信,进行数据传输。
根据本申请实施例的第二方面,提供了一种数据传输服务器,包括:
线程创建模块,被配置为创建主线程和至少两个任务线程;
发送模块,被配置为通过所述主线程,在检测到针对客户端的数据传输任务的情况下,根据所述数据传输任务对应的数据包,确定目标任务线程;将所述数据包发送给所述目标任务线程,其中,所述目标任务线程为所述至少两个任务线程中的任一任务线程;
通信模块,被配置为通过所述目标任务线程,接收所述主线程发送的数据包;根据所述数据包,确定所述客户端对应的第一文件描述符;通过所述第一文件描述符与所述客户端通信,进行数据传输。
根据本申请实施例的第三方面,提供了一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,以实现下述方法:
创建主线程和至少两个任务线程;
通过所述主线程,在检测到针对客户端的数据传输任务的情况下,根据所述数据传输任务对应的数据包,确定目标任务线程;将所述数据包发送给所述目标任务线程,其中,所述目标任务线程为所述至少两个任务线程中的任一任务线程;
通过所述目标任务线程,接收所述主线程发送的数据包;根据所述数据包,确定所述客户端对应的第一文件描述符;通过所述第一文件描述符与所述客户端通信,进行数据传输。
根据本申请实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现任意所述数据传输方法的步骤。
本申请提供的数据传输方法,可以创建主线程和至少两个任务线程;通过所述主线程,可以在检测到针对客户端的数据传输任务的情况下,根据所述数据传输任务对应的数据包,确定目标任务线程;将所述数据包发送给所述目标任务线程,其中,所述目标任务线程为所述至少两个任务线程中的任一任务线程;通过所述目标任务线程,可以接收所述主线程发送的数据包;根据所述数据包,确定所述客户端对应的第一文件描述符;通过所述第一文件描述符与所述客户端通信,进行数据传输。这种情况下,可以通过多个任务线程,处理和不同客户端之间的数据传输,从而同时处理较多来源不同的数据包;另外,通过创建并监听文件描述符的形式,与客户端进行通信,无需向内核拷贝过多的资源,能够利用较少的内核资源,实现高效的数据传输方法,降低了服务器的内核资源消耗。
附图说明
图1是本申请一实施例提供的一种数据传输方法的流程图;
图2是本申请一实施例提供的一种基于数据传输服务器进行通信的流程示意图;
图3是本申请一实施例提供的一种基于数据传输服务器对外进行通信的流程示意图;
图4是本申请一实施例提供的一种数据传输服务器的结构框图;
图5是本申请一实施例提供的一种计算设备的结构框图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
在本申请一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请一个或多个实施例。在本申请一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本申请一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
首先,对本申请一个或多个实施例涉及的名词术语进行解释。
UDP:是User Datagram Protocol的简称,中文名是用户数据报协议,是OSI(OpenSystem Interconnection,开放式***互联)参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。在网络中它与TCP协议一样用于处理数据包,是一种无连接的协议。在OSI模型中,在第四层--传输层,处于IP协议的上一层。
TCP(Transmission Control Protocol,传输控制协议):是一种面向连接(连接导向)的、可靠的、基于字节流的运输层(Transport layer)通信协议,在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能。TCP旨在适应支持多网络应用的分层协议层次结构,连接到不同但互连的计算机通信网络的主计算机中的成对进程之间依靠TCP提供可靠的通信服务。
Socket:套接字,就是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象,一个套接字就是网络上进程通信的一端,提供了应用层进程利用网络协议交换数据的机制。从所处的地位来讲,套接字上联应用进程,下联网络协议栈,是应用程序通过网络协议进行通信的接口,是应用程序与网络协议根进行交互的接口。
操作***(Operating System,简称OS):是管理计算机硬件与软件资源的计算机程序,是用户与计算机硬件***之间的接口,操作***需要处理如管理与配置内存、决定***资源供需的优先次序、控制输入设备与输出设备、操作网络与管理文件***等基本事务。操作***也提供一个让用户与***交互的操作界面,用户通过操作***的帮助,可以快速、有效和安全、可靠地操纵计算机***中的各类资源,以处理自己的程序。
内核(kernel):是操作***最基本的部分,它是为众多应用程序提供对计算机硬件的安全访问的一部分软件,这种访问是有限的,并且内核决定一个程序在什么时候对某部分硬件操作多长时间。内核,是一个操作***的核心,是基于硬件的第一层软件扩充,提供操作***的最基本的功能,是操作***工作的基础,它负责管理***的进程、内存、内核体系结构,决定着***的性能和稳定性。
文件描述符(fd):内核利用文件描述符(file descriptor,fd)来访问文件,文件描述符是非负整数,实际上,它是一个索引值,指向内核为每一个进程所维护的该进程打开文件的记录表。当程序打开一个现有文件或者创建一个新文件时,内核向进程返回一个文件描述符。在程序设计中,一些涉及底层的程序编写往往会围绕着文件描述符展开。文件描述符(fd)一般是BSD Socket的用法,用在Unix/Linux***上。在Unix/Linux***下,一个socket句柄,可以看做是一个文件,在socket上收发数据,相当于对一个文件进行读写,所以一个socket句柄,通常也用表示文件句柄的fd来表示,读取到此fd,就可以获取到此socket句柄相应端口的标识。
在本申请中,提供了一种数据传输方法,本申请同时涉及一种数据传输服务器,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。
图1示出了本申请一实施例提供的一种数据传输方法的流程图,如图1所示,具体包括如下步骤:
步骤102:创建主线程和至少两个任务线程。
实际应用中,目前绝大部分UDP服务器都使用send to函数来传输数据,而send to函数比send函数的参数多了目的套接字的地址、目的套接字的长度这两个参数,这就意味着每次***调用都要多拷贝一些数据到内核空间。同时,参数到内核空间后,内核还需要初始化一些临时的数据结构来存储这些参数值,在数据包发出去后,内核还需要在合适的时候释放这些临时的数据结构。另外,通过UDP链路中携带的五元组(或七元组)进行数据传输,难以实现同时处理非常多来源不同的数据包。
因而,本申请提供了一种数据传输方法,数据传输服务器的主线程可以在检测到针对客户端的数据传输任务的情况下,根据所述数据传输任务对应的数据包,确定目标任务线程,并将所述数据包发送给所述目标任务线程,其中,所述目标任务线程为数据传输服务器包括的至少两个任务线程中的任一任务线程;然后,目标任务线程接收所述主线程发送的数据包,根据所述数据包,确定所述客户端对应的第一文件描述符,并通过所述第一文件描述符与所述客户端通信,进行数据传输。这种情况下,可以通过多个任务线程,处理和不同客户端之间的数据传输,从而同时处理较多来源不同的数据包;另外,通过创建并监听文件描述符的形式,与客户端进行通信,无需向内核拷贝过多的资源,能够利用较少的内核资源,实现高效的数据传输方法,降低了服务器的内核资源消耗。
需要说明的是,数据传输服务器可以创建一个主线程和至少两个任务线程,主线程用于监控数据传输服务器与各个客户端之间的首次通信,而任务线程用于与具体的某个客户端通信,进行后续数据传输。其中,数据传输服务器为部署于超级节点的传输服务器,超级节点为具有较大带宽、较大存储的一类机器,部署于其上的数据传输服务器具备高吞吐、高并发数据传输特性,此数据传输服务基于UDP协议实现。
步骤104:通过主线程在检测到针对客户端的数据传输任务的情况下,根据所述数据传输任务对应的数据包,确定目标任务线程。
具体的,在数据传输服务器创建主线程和至少两个任务线程的基础上,进一步的,将通过主线程在检测到针对客户端的数据传输任务的情况下,根据所述数据传输任务对应的数据包,确定目标任务线程。其中,目标任务线程为所述数据传输服务器创建的至少两个任务线程中的任一任务线程。
需要说明的是,针对客户端的数据传输任务可以是服务器检测到客户端向其发送的数据包,也可以是服务器生成一个数据包,需要主动发送给客户端。因而针对客户端的数据传输任务可以是服务器主动对外交互,也可以是服务器被动接收客户端的交互。因而,数据传输任务对应的数据包可以是指客户端传输给服务器的数据包,也可以是指服务器主动生成的、待传输给客户端的数据包。
本实施例一个可选的实施方式中,数据传输服务器可以监听本地端口,确定是否接收到客户端发送的数据包,也即所述主线程在检测到针对客户端的数据传输任务的情况下,根据所述数据传输任务对应的数据包,确定目标任务线程之前,还包括:
创建所述数据传输服务器对应的第二文件描述符,并监听所述第二文件描述符;
在监听到所述客户端通过所述第二文件描述符发送的数据包的情况下,确定检测到所述数据传输任务。
本实施例一个可选的实施方式中,创建所述数据传输服务器对应的第二文件描述符,具体实现过程可以如下:
获取所述数据传输服务器的地址和端口;
根据所述数据传输服务器的地址和端口,创建所述数据传输服务器对应的第二文件描述符。
具体的,数据传输服务器的地址即数据传输服务器的IP地址,可以根据数据传输服务器的本机IP地址和对外公开的通信端口,创建一个对应的第二文件描述符,监听该第二文件描述符即可监听服务器的通信端口。如果有客户端读取该第二文件描述符,并通过该第二文件描述符发送数据包,服务器即可监听到该数据包,该数据包携带来源客户端的地址和端口、目的数据传输服务器的地址和端口。在服务器监听到客户端通过所述第二文件描述符发送的数据包的情况下,说明有客户端通过第二文件描述符向服务器发送数据包,即产生了数据传输任务。
需要说明的是,监听数据传输服务器的端口时,需要能够监听到各个客户端向该数据传输服务器发送的数据包,因而在创建第二文件描述符时,只需要限制数据传输服务器的地址和端口,无需限制客户端的地址和端口。也即,创建数据传输服务器对应的第二文件描述符时,只需根据数据传输服务器的地址和端口即可。也就是说,数据传输服务器创建的主线程可以根据本机地址、端口创建一个第二文件描述符,监听这个文件描述符,从而可以监听到各个客户端向数据传输服务器发送的数据包(如客户端A、客户端B、客户端C等)。
另外,监听到的所述客户端通过所述第二文件描述符发送的数据包是客户端向服务器发送的第一个数据包。
本实施例一个可选的实施方式中,数据传输服务器还可以主动对外交互,此时所述主线程在检测到针对客户端的数据传输任务的情况下,根据所述数据传输任务对应的数据包,确定目标任务线程之前,还包括:
响应于所述数据传输任务的触发请求,根据所述客户端的地址和端口号,生成与所述客户端进行通信的数据包;
在生成所述数据包的情况下,确定检测到所述数据传输任务。
需要说明的是,所述客户端是服务器需要与之交互的客户端,服务器可以主动生成需要传输给某个客户端的数据包,该数据包携带目的客户端的地址和端口,在服务器生成该数据包后,即检测到针对该客户端的数据传输任务。
另外,服务器主动对外交互,即服务器主动向客户端传输数据包必须存在相应的触发请求,服务器在检测到该触发请求时,才会响应于该触发请求,生成对应的数据包。该触发请求可以携带有客户端的地址和端口号,根据该触发请求,数据传输服务器可以获知需要主动交互的客户端(即目的客户端),从而生成相应的数据包,进行数据传输。
示例的,该触发请求可以为定时任务对应的触发请求,假设存在定时任务:每天8点,向客户端A发送当天新闻,此情况下每天8点会生成一个与客户端A主动通信的触发请求;或者,该触发请求可以为娱乐新闻更新对应的触发请求,此情况下每当娱乐新闻有更新时,会生成一个与客户端A主动通信的触发请求。其中,该触发请求中会携带客户端A的地址和端口号,响应于该触发请求,数据传输服务器创建的主线程会根据客户端A的地址和端口号主动生成一个发送给客户端A的数据包,此时即检测到针对客户端A的数据传输任务。
本申请中数据传输服务器不仅可以在接收到客户端发送的数据包时,为该客户端分配对应的目标任务线程;还可以在需要主动向客户端发送数据包时,也为该客户端分配对应的目标任务线程,交互方式灵活多变,可以满足实际场景的复杂多变。
本实施例一个可选的实施方式中,所述数据包携带客户端的地址和端口,根据所述数据传输任务对应的数据包,确定目标任务线程,具体实现过程可以如下:
根据所述数据包中携带的所述客户端的地址和端口,进行哈希计算,确定所述客户端对应的目标任务线程。
需要说明的是,如果该数据包是客户端发送的数据包,则该数据包中携带的是来源客户端的地址和端口,此时可以根据来源客户端的地址和端口,做哈希计算,将与所述来源客户端进行通信的任务分配至对应的目标任务线程。而如果该数据包是服务器生成的、待发送给客户端的数据包,则该数据包中携带的是目的客户端的地址和端口,此时可以根据目的客户端的地址和端口,做哈希计算,将与所述目的客户端进行通信的任务分配至对应的目标任务线程。
本实施例一个可选的实施方式中,根据所述数据包中携带的所述客户端的地址和端口,进行哈希计算,确定所述客户端对应的目标任务线程,具体实现过程可以如下:
通过哈希算法确定所述客户端的地址和端口对应的散列值;
确定所述任务线程的数量;
使用所述散列值对所述任务线程的数量求余,得到线程索引;
根据所述线程索引,确定所述目标任务线程。
本申请中数据传输服务器可以创建主线程,负责监听本机地址和端口,在监听到某客户端发过来的数据包或者生成待发送给某客户端的数据包后,转发给对应的目标任务线程,便于后续目标任务线程建立与对应客户端的通信,进行数据传输,如此,可以通过多个任务线程,处理和不同客户端之间的数据传输,从而同时处理较多来源不同的数据包。
步骤106:通过主线程将所述数据包发送给所述目标任务线程。
具体的,通过主线程在检测到针对客户端的数据传输任务的情况下,根据所述数据传输任务对应的数据包,确定目标任务线程的基础上,进一步的,将通过主线程将所述数据包发送给所述目标任务线程,便于后续目标任务线程与对应的客户端建立通信。
步骤108:通过目标任务线程接收所述主线程发送的数据包,并根据所述数据包,确定所述客户端对应的第一文件描述符。
具体的,通过主线程将所述数据包发送给所述目标任务线程的基础上,进一步的,将通过目标任务线程根据所述数据包,确定所述客户端对应的第一文件描述符。
需要说明的是,一个socket句柄,可以看做是一个文件,在socket上收发数据,相当于对一个文件进行读写,所以一个socket句柄,通常也用表示文件句柄的文件描述符(fd)来表示;也就是说,读取到此文件描述符(fd),就可以获取到此socket句柄相应端口的标识,从而进行通信。因而,目标任务线程为了和客户端进行通信,需要先确定并监听客户端对应的第一文件描述符。
本实施例一个可选的实施方式中,可以先确定之前是否针对该客户端创建过对应的第一文件描述符,也即根据所述数据包,确定所述客户端对应的第一文件描述符,具体实现过程可以如下:
获取所述数据包中携带的所述客户端的地址和端口;
根据所述客户端的地址和端口,确定是否存在所述客户端对应的第一文件描述符;
在存在所述客户端对应的第一文件描述符的情况下,通过所述第一文件描述符与所述客户端通信;
在不存在所述客户端对应的第一文件描述符的情况下,根据所述服务器的地址和端口、所述客户端的地址和端口,创建所述客户端对应的第一文件描述符,并通过所述第一文件描述符与所述客户端通信。
需要说明的是,目标任务线程在接收到数据包时,可以先确定之前是否针对该客户端已经创建过第一文件描述符,如果之前已经创建过,则可以直接重新启用,监听该第一文件描述符,实现与对应的客户端通信。如果之前并没有创建过对应的第一文件描述符,那么需要先根据服务器的地址和端口、客户端的地址和端口,创建所述客户端对应的第一文件描述符,再进行监听,实现通信。
由于目标任务线程用于和某个客户端进行通信,也即并不是所有的客户端都能通过创建的第一文件描述符与目标任务线程进行通信,因而在创建第一文件描述符时,需要结合服务器的地址和端口、所述客户端的地址和端口,以保证目标任务线程可以和对应的客户端通信,进行数据传输。也就是说,主线程将各个客户端发送的信息包分发至各个任务线程后,单个任务线程只负责处理某个客户端的信息包(如客户端A),任务线程根据来源地址、端口(客户端A)和本机监听地址、端口创建一个专门用于和客户端A通信的第一文件描述符,后续通过该文件描述符和客户端A通信。
本申请中主线程监听到客户端发送的数据包后,可以转发给对应的目标任务线程,目标任务线程可以创建跟该客户端通信的第一文件描述符,后续可以通过该第一文件描述符与该客户端通信,进行数据传输,如此,通过多个任务线程,可以处理和不同客户端之间的数据传输,从而同时处理较多来源不同的数据包。
步骤110:目标任务线程通过所述第一文件描述符与所述客户端通信,进行数据传输。
具体的,在通过目标任务线程接收所述主线程发送的数据包,并根据所述数据包,确定所述客户端对应的第一文件描述符的基础上,进一步的,目标任务线程将通过所述第一文件描述符与所述客户端通信,进行数据传输。
示例的,图2是本申请一实施例提供的一种基于数据传输服务器进行通信的流程示意图,如图2所示,主线程根据自身的地址端口(IP1,端口1)创建并监听第二文件描述符;在监听到客户端A通过(IPA,端口A)向数据传输服务器的(IP1,端口1)发送数据包1时,主线程根据(IPA,端口A)做哈希计算,确定对应的目标任务线程;目标任务线程根据(IP1,端口1;IPA,端口A)创建对应的第一文件描述符fdA,目标任务线程通过该第一文件描述符fdA与客户端A交互。
示例的,图3是本申请一实施例提供的一种基于数据传输服务器对外进行通信的流程示意图,如图3所示,主线程根据目的客户端的地址和端口(IPB,端口B)进行哈希计算,确定对应的目标任务线程;目标任务线程根据(IP1,端口1;IPB,端口B)建立对应的第一文件描述符fdB,其中,(IP1,端口1)为数据传输服务器的地址端口,目标任务线程通过该第一文件描述符fdB主动与客户端B交互。
需要说明的是,通过所述第一文件描述符与所述客户端通信,进行数据传输,即监听所述第一文件描述符,使得客户端通过所述第一文件描述符向服务器发送的数据包,或者使得服务器通过所述第一文件描述符向客户端发送数据包。
实际实现时,数据传输服务器的应用层流量控制、拥塞控制采用kcp算法,kcp算法为开源的一套提供应用层流量控制、拥塞控制的算法。kcp算法是传输层的一个具有可靠性的传输层ARQ协议,它的设计是为了解决在网络拥堵情况下TCP协议的网络速度慢的问题。kcp力求在保证可靠性的情况下提高传输速度,kcp协议的关注点主要在控制数据的可靠性和提高传输速度上面,因此kcp没有规定下层传输协议,一般用UDP作为下层传输协议,kcp层协议的数据包在UDP数据报文的基础上增加控制头,当用户数据很大,大于一个UDP包能承担的范围时(大于mss),kcp会将用户数据分片存储在多个kcp包中。
本实施例一个可选的实施方式中,目标任务线程可以监听第一文件描述符,且若目标任务线程和客户端之间长时间没有交互,还可以取消对第一文件描述符的监听,也即通过所述第一文件描述符与所述客户端通信,进行数据传输,具体实现过程可以如下:
监听所述第一文件描述符;
确定预设时长内所述第一文件描述符是否存在数据交互;
若否,则停止监听所述第一文件描述符。
具体的,预设时长是预先设置的时间段,若在该时间段内所述第一文件描述符不存在数据交互,也即没有接收到所述客户端通过所述第一文件描述符发送的数据包,数据传输服务器也没有通过第一文件描述符向对应的客户端发送数据包,因而说明目标任务线程和客户端长时间没有交互,因此可以停止对第一文件描述符的监听,从而节省资源。
实际实现时,对于第一文件描述符,可以采用epoll作调度管理,epoll是一种机制,用于处理大量并发连接时事件的读写顺序。另外,还可以根据具体业务特征,设置预设时长,即采用超时过期第一文件描述符策略,即根据业务特征,若超过N秒此第一文件描述符无数据往来,则取消对此第一文件描述符的监听。
本申请提供的数据传输方法,数据传输服务器的主线程可以在检测到针对客户端的数据传输任务的情况下,根据所述数据传输任务对应的数据包,确定目标任务线程,并将所述数据包发送给所述目标任务线程,其中,所述目标任务线程为数据传输服务器包括的至少两个任务线程中的任一任务线程;然后,目标任务线程接收所述主线程发送的数据包,根据所述数据包,确定所述客户端对应的第一文件描述符,并通过所述第一文件描述符与所述客户端通信,进行数据传输。这种情况下,可以通过多个任务线程,处理和不同客户端之间的数据传输,从而同时处理较多来源不同的数据包;另外,通过创建并监听文件描述符的形式,与客户端进行通信,无需向内核拷贝过多的资源,能够利用较少的内核资源,实现高效的数据传输方法,降低了服务器的内核资源消耗。
与上述数据传输方法实施例相对应,本申请还提供了数据传输服务器实施例,图4示出了根据本申请一实施例提供的一种数据传输服务器的结构框图,如图4所示,所述数据传输服务器包括:
创建模块402,被配置为创建主线程和至少两个任务线程;
发送模块404,被配置为通过所述主线程,在检测到针对客户端的数据传输任务的情况下,根据所述数据传输任务对应的数据包,确定目标任务线程;将所述数据包发送给所述目标任务线程,其中,所述目标任务线程为所述至少两个任务线程中的任一任务线程;
通信模块406,被配置为通过所述目标任务线程,接收所述主线程发送的数据包;根据所述数据包,确定所述客户端对应的第一文件描述符;通过所述第一文件描述符与所述客户端通信,进行数据传输。
本实施例一个可选的实施方式中,所述发送模块404进一步被配置为:
创建所述服务器对应的第二文件描述符,并监听所述第二文件描述符;在监听到所述客户端通过所述第二文件描述符发送的数据包的情况下,确定检测到所述数据传输任务。
本实施例一个可选的实施方式中,所述发送模块404进一步被配置为:
响应于所述数据传输任务的触发请求,根据所述客户端的地址和端口号,生成与所述客户端进行通信的数据包;
在生成到所述数据包的情况下,确定检测到所述数据传输任务。
本实施例一个可选的实施方式中,所述发送模块404进一步被配置为:
获取服务器的地址和端口;
根据所述服务器的地址和端口,创建所述服务器对应的第二文件描述符。
本实施例一个可选的实施方式中,所述数据包携带客户端的地址和端口,所述通信模块406进一步被配置为:
获取所述数据包中携带的所述客户端的地址和端口;
根据所述客户端的地址和端口,确定是否存在所述客户端对应的第一文件描述符;
在存在所述客户端对应的第一文件描述符的情况下,通过所述第一文件描述符与所述客户端通信;
在不存在所述客户端对应的第一文件描述符的情况下,根据所述服务器的地址和端口、所述客户端的地址和端口,创建所述客户端对应的第一文件描述符,并通过所述第一文件描述符与所述客户端通信。
本实施例一个可选的实施方式中,所述通信模块406进一步被配置为:
根据所述数据包中携带的所述客户端的地址和端口,进行哈希计算,确定所述客户端对应的目标任务线程。
本实施例一个可选的实施方式中,所述通信模块406进一步被配置为:
通过哈希算法确定所述数据包对应的散列值;
确定所述任务线程的数量;
使用所述散列值对所述任务线程的数量求余,得到线程索引;
根据所述线程索引,确定所述目标任务线程。
本实施例一个可选的实施方式中,所述通信模块406进一步包括:
监听所述第一文件描述符;
确定第二预设时长内是否接受到所述客户端通过所述第一文件描述符发送的数据包;
若否,则停止监听所述第一文件描述符。
本申请提供的数据传输服务器可以创建主线程和至少两个任务线程;通过所述主线程,可以在检测到针对客户端的数据传输任务的情况下,根据所述数据传输任务对应的数据包,确定目标任务线程;将所述数据包发送给所述目标任务线程,其中,所述目标任务线程为所述至少两个任务线程中的任一任务线程;通过所述任务线程,可以接收所述主线程发送的数据包;根据所述数据包,确定所述客户端对应的第一文件描述符;通过所述第一文件描述符与所述客户端通信,进行数据传输。这种情况下,可以通过多个任务线程,处理和不同客户端之间的数据传输,从而同时处理较多来源不同的数据包;另外,通过创建并监听文件描述符的形式,与客户端进行通信,无需向内核拷贝过多的资源,能够利用较少的内核资源,实现高效的数据传输方法,降低了服务器的内核资源消耗。
上述为本实施例的一种数据传输服务器的示意性方案。需要说明的是,该数据传输服务器技术方案与上述的数据传输方法的技术方案属于同一构思,数据传输服务器的技术方案未详细描述的细节内容,均可以参见上述数据传输方法的技术方案的描述。
图5示出了根据本申请一实施例提供的一种计算设备500的结构框图。该计算设备500的部件包括但不限于存储器510和处理器520。处理器520与存储器510通过总线530相连接,数据库550用于保存数据。
计算设备500还包括接入设备540,接入设备540使得计算设备500能够经由一个或多个网络560通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备540可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
在本申请的一个实施例中,计算设备500的上述部件以及图5中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图5所示的计算设备结构框图仅仅是出于示例的目的,而不是对本申请范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备500可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备500还可以是移动式或静止式的服务器。
其中,处理器520用于执行如下计算机可执行指令,以实现下述方法:
创建主线程和至少两个任务线程;
通过所述主线程,在检测到针对客户端的数据传输任务的情况下,根据所述数据传输任务对应的数据包,确定目标任务线程;将所述数据包发送给所述目标任务线程,其中,所述目标任务线程为所述至少两个任务线程中的任一任务线程;
通过所述目标任务线程,接收所述主线程发送的数据包;根据所述数据包,确定所述客户端对应的第一文件描述符;通过所述第一文件描述符与所述客户端通信,进行数据传输。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的数据传输方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述数据传输方法的技术方案的描述。
本申请一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时以用于:
创建主线程和至少两个任务线程;
通过所述主线程,在检测到针对客户端的数据传输任务的情况下,根据所述数据传输任务对应的数据包,确定目标任务线程;将所述数据包发送给所述目标任务线程,其中,所述目标任务线程为所述至少两个任务线程中的任一任务线程;
通过所述目标任务线程,接收所述主线程发送的数据包;根据所述数据包,确定所述客户端对应的第一文件描述符;通过所述第一文件描述符与所述客户端通信,进行数据传输。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的数据传输方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述数据传输方法的技术方案的描述。
上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本申请优选实施例只是用于帮助阐述本申请。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本申请的内容,可作很多的修改和变化。本申请选取并具体描述这些实施例,是为了更好地解释本申请的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本申请。本申请仅受权利要求书及其全部范围和等效物的限制。

Claims (11)

1.一种数据传输方法,其特征在于,包括:创建主线程和至少两个任务线程;
通过所述主线程,在检测到针对客户端的数据传输任务的情况下,根据所述数据传输任务对应的数据包,确定目标任务线程;将所述数据包发送给所述目标任务线程,其中,所述目标任务线程为所述至少两个任务线程中的任一任务线程;
通过所述目标任务线程,接收所述主线程发送的数据包;根据所述数据包,确定所述客户端对应的第一文件描述符;通过所述第一文件描述符与所述客户端通信,进行数据传输。
2.根据权利要求1所述的数据传输方法,其特征在于,所述主线程在检测到针对客户端的数据传输任务的情况下,根据所述数据传输任务对应的数据包,确定目标任务线程之前,还包括:
创建所述数据传输服务器对应的第二文件描述符,并监听所述第二文件描述符;
在监听到所述客户端通过所述第二文件描述符发送的数据包的情况下,确定检测到所述数据传输任务。
3.根据权利要求1所述的数据传输方法,其特征在于,所述主线程在检测到针对客户端的数据传输任务的情况下,根据所述数据传输任务对应的数据包,确定目标任务线程之前,还包括:
响应于所述数据传输任务的触发请求,根据所述客户端的地址和端口号,生成与所述客户端进行通信的数据包;
在生成所述数据包的情况下,确定检测到所述数据传输任务。
4.根据权利要求2所述的数据传输方法,其特征在于,所述创建所述数据传输服务器对应的第二文件描述符,包括:
获取所述数据传输服务器的地址和端口;
根据所述数据传输服务器的地址和端口,创建所述数据传输服务器对应的第二文件描述符。
5.根据权利要求1-4任一所述的数据传输方法,其特征在于,所述数据包携带客户端的地址和端口,所述根据所述数据包,确定所述客户端对应的第一文件描述符,包括:
获取所述数据包中携带的所述客户端的地址和端口;
根据所述客户端的地址和端口,确定是否存在所述客户端对应的第一文件描述符;
在存在所述客户端对应的第一文件描述符的情况下,通过所述第一文件描述符与所述客户端通信;
在不存在所述客户端对应的第一文件描述符的情况下,根据所述数据传输服务器的地址和端口、所述客户端的地址和端口,创建所述客户端对应的第一文件描述符,并通过所述第一文件描述符与所述客户端通信。
6.根据权利要求1-4任一所述的数据传输方法,其特征在于,所述数据包携带客户端的地址和端口,所述根据所述数据传输任务对应的数据包,确定目标任务线程,包括:
根据所述数据包中携带的所述客户端的地址和端口,进行哈希计算,确定所述客户端对应的目标任务线程。
7.根据权利要求6所述的数据传输方法,其特征在于,所述根据所述数据包中携带的所述客户端的地址和端口,进行哈希计算,确定所述客户端对应的目标任务线程,包括:
通过哈希算法确定所述数据包对应的散列值;
确定所述任务线程的数量;
使用所述散列值对所述任务线程的数量求余,得到线程索引;
根据所述线程索引,确定所述目标任务线程。
8.根据权利要求1-4任一所述的数据传输方法,其特征在于,所述通过所述第一文件描述符与所述客户端通信,进行数据传输,包括:
监听所述第一文件描述符;
确定预设时长内所述第一文件描述符是否存在数据交互;
若否,则停止监听所述第一文件描述符。
9.一种数据传输服务器,其特征在于,包括:
线程创建模块,被配置为创建主线程和至少两个任务线程;
发送模块,被配置为通过所述主线程,在检测到针对客户端的数据传输任务的情况下,根据所述数据传输任务对应的数据包,确定目标任务线程;将所述数据包发送给所述目标任务线程,其中,所述目标任务线程为所述至少两个任务线程中的任一任务线程;
通信模块,被配置为通过所述目标任务线程,接收所述主线程发送的数据包;根据所述数据包,确定所述客户端对应的第一文件描述符;通过所述第一文件描述符与所述客户端通信,进行数据传输。
10.一种计算设备,其特征在于,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,以实现下述方法:
创建主线程和至少两个任务线程;
通过所述主线程,在检测到针对客户端的数据传输任务的情况下,根据所述数据传输任务对应的数据包,确定目标任务线程;将所述数据包发送给所述目标任务线程,其中,所述目标任务线程为所述至少两个任务线程中的任一任务线程;
通过所述目标任务线程,接收所述主线程发送的数据包;根据所述数据包,确定所述客户端对应的第一文件描述符;通过所述第一文件描述符与所述客户端通信,进行数据传输。
11.一种计算机可读存储介质,其特征在于,其存储有计算机指令,该指令被处理器执行时实现权利要求1-8任一所述数据传输方法的步骤。
CN202110011589.5A 2021-01-06 2021-01-06 数据传输方法及数据传输服务器 Active CN112631788B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202110011589.5A CN112631788B (zh) 2021-01-06 2021-01-06 数据传输方法及数据传输服务器
PCT/CN2022/070245 WO2022148363A1 (zh) 2021-01-06 2022-01-05 数据传输方法及数据传输服务器
US18/271,130 US20240069977A1 (en) 2021-01-06 2022-01-05 Data transmission method and data transmission server

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110011589.5A CN112631788B (zh) 2021-01-06 2021-01-06 数据传输方法及数据传输服务器

Publications (2)

Publication Number Publication Date
CN112631788A true CN112631788A (zh) 2021-04-09
CN112631788B CN112631788B (zh) 2023-11-28

Family

ID=75291459

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110011589.5A Active CN112631788B (zh) 2021-01-06 2021-01-06 数据传输方法及数据传输服务器

Country Status (3)

Country Link
US (1) US20240069977A1 (zh)
CN (1) CN112631788B (zh)
WO (1) WO2022148363A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113973093A (zh) * 2020-07-24 2022-01-25 中移(苏州)软件技术有限公司 数据传输方法及装置、电子设备、可读存储介质
CN114422100A (zh) * 2022-03-30 2022-04-29 武汉中科通达高新技术股份有限公司 国标信令服务端的上下联处理***、计算机设备及介质
CN114661492A (zh) * 2022-03-03 2022-06-24 深圳融安网络科技有限公司 进程通信方法、***、终端设备及介质
WO2022148363A1 (zh) * 2021-01-06 2022-07-14 上海哔哩哔哩科技有限公司 数据传输方法及数据传输服务器

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116032929B (zh) * 2023-03-30 2023-06-23 阿里巴巴(中国)有限公司 数据处理***、方法及设备

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070061470A1 (en) * 2000-12-21 2007-03-15 Berg Mitchell T Method and system for selecting a computing device for maintaining a client session in response to a request packet
CN104735077A (zh) * 2015-04-01 2015-06-24 积成电子股份有限公司 一种使用环形缓存和环形队列实现udp高效并发的方法
CN105426252A (zh) * 2015-12-17 2016-03-23 浪潮(北京)电子信息产业有限公司 一种分布式文件***的线程分配方法及***
CN106713320A (zh) * 2016-12-23 2017-05-24 腾讯科技(深圳)有限公司 终端数据传输的方法和装置
CN106941532A (zh) * 2017-03-30 2017-07-11 北京奇艺世纪科技有限公司 一种应用于分布式***的数据传输方法及装置
CN108259370A (zh) * 2016-12-28 2018-07-06 航天信息股份有限公司 数据传输的方法及装置
CN109189595A (zh) * 2018-09-17 2019-01-11 深圳怡化电脑股份有限公司 基于服务器的事件处理方法、装置、设备及介质
CN109947581A (zh) * 2019-03-29 2019-06-28 山东浪潮云信息技术有限公司 高并发的数据传送方法及用于交换机的数据传送方法
CN110247863A (zh) * 2019-07-12 2019-09-17 广州西麦科技股份有限公司 数据包处理方法、装置、sdn交换机及存储介质
CN111314273A (zh) * 2018-12-12 2020-06-19 阿里巴巴集团控股有限公司 基于udp的数据传输方法和连接装置
CN111901689A (zh) * 2020-06-17 2020-11-06 视联动力信息技术股份有限公司 流媒体数据的传输方法、装置、终端设备和存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6192389B1 (en) * 1997-03-28 2001-02-20 International Business Machines Corporation Method and apparatus for transferring file descriptors in a multiprocess, multithreaded client/server system
CN103605568B (zh) * 2013-10-29 2017-10-31 北京奇虎科技有限公司 一种多线程管理方法及装置
WO2016000138A1 (zh) * 2014-06-30 2016-01-07 北京新媒传信科技有限公司 一种数据传输方法、终端和服务器
CN108243222A (zh) * 2016-12-26 2018-07-03 航天信息股份有限公司 服务器网络架构方法及装置
CN108702486B (zh) * 2017-09-20 2020-08-04 深圳市海能通信股份有限公司 一种低延时音视频传输方法、装置及计算机可读存储介质
CN112631788B (zh) * 2021-01-06 2023-11-28 上海哔哩哔哩科技有限公司 数据传输方法及数据传输服务器

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070061470A1 (en) * 2000-12-21 2007-03-15 Berg Mitchell T Method and system for selecting a computing device for maintaining a client session in response to a request packet
CN104735077A (zh) * 2015-04-01 2015-06-24 积成电子股份有限公司 一种使用环形缓存和环形队列实现udp高效并发的方法
CN105426252A (zh) * 2015-12-17 2016-03-23 浪潮(北京)电子信息产业有限公司 一种分布式文件***的线程分配方法及***
CN106713320A (zh) * 2016-12-23 2017-05-24 腾讯科技(深圳)有限公司 终端数据传输的方法和装置
CN108259370A (zh) * 2016-12-28 2018-07-06 航天信息股份有限公司 数据传输的方法及装置
CN106941532A (zh) * 2017-03-30 2017-07-11 北京奇艺世纪科技有限公司 一种应用于分布式***的数据传输方法及装置
CN109189595A (zh) * 2018-09-17 2019-01-11 深圳怡化电脑股份有限公司 基于服务器的事件处理方法、装置、设备及介质
CN111314273A (zh) * 2018-12-12 2020-06-19 阿里巴巴集团控股有限公司 基于udp的数据传输方法和连接装置
CN109947581A (zh) * 2019-03-29 2019-06-28 山东浪潮云信息技术有限公司 高并发的数据传送方法及用于交换机的数据传送方法
CN110247863A (zh) * 2019-07-12 2019-09-17 广州西麦科技股份有限公司 数据包处理方法、装置、sdn交换机及存储介质
CN111901689A (zh) * 2020-06-17 2020-11-06 视联动力信息技术股份有限公司 流媒体数据的传输方法、装置、终端设备和存储介质

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113973093A (zh) * 2020-07-24 2022-01-25 中移(苏州)软件技术有限公司 数据传输方法及装置、电子设备、可读存储介质
WO2022148363A1 (zh) * 2021-01-06 2022-07-14 上海哔哩哔哩科技有限公司 数据传输方法及数据传输服务器
CN114661492A (zh) * 2022-03-03 2022-06-24 深圳融安网络科技有限公司 进程通信方法、***、终端设备及介质
CN114661492B (zh) * 2022-03-03 2023-04-07 深圳融安网络科技有限公司 进程通信方法、***、终端设备及介质
CN114422100A (zh) * 2022-03-30 2022-04-29 武汉中科通达高新技术股份有限公司 国标信令服务端的上下联处理***、计算机设备及介质
CN114422100B (zh) * 2022-03-30 2022-07-12 武汉中科通达高新技术股份有限公司 国标信令服务端的上下联处理***、计算机设备及介质

Also Published As

Publication number Publication date
WO2022148363A1 (zh) 2022-07-14
CN112631788B (zh) 2023-11-28
US20240069977A1 (en) 2024-02-29

Similar Documents

Publication Publication Date Title
CN112631788B (zh) 数据传输方法及数据传输服务器
US20200228433A1 (en) Computer-readable recording medium including monitoring program, programmable device, and monitoring method
WO2023005773A1 (zh) 基于远程直接数据存储的报文转发方法、装置、网卡及设备
WO2024037296A1 (zh) 基于协议族的quic数据传输方法及装置
EP3739784A1 (en) Data packet sending method and related device
US10367893B1 (en) Method and apparatus of performing peer-to-peer communication establishment
WO2023151264A1 (zh) 负载均衡方法、装置、节点及存储介质
EP4221233A1 (en) Data download method and apparatus, computer device and storage medium
Karamitsios et al. Efficient IoT data aggregation for connected health applications
US11316916B2 (en) Packet processing method, related device, and computer storage medium
CN112968965A (zh) Nfv网络节点的元数据服务方法、服务器及存储介质
US11706290B2 (en) Direct server reply for infrastructure services
US20240089352A1 (en) Udp message distribution method, udp message distribution apparatus, electronic device and computer readable storage medium
CN112702338B (zh) Ike报文获取方法及装置
US8572260B2 (en) Predetermined ports for multi-core architectures
US11444882B2 (en) Methods for dynamically controlling transmission control protocol push functionality and devices thereof
WO2023186109A1 (zh) 节点访问方法以及数据传输***
WO2023116165A1 (zh) 网络负载均衡方法、装置、电子设备、介质和程序产品
WO2022148364A1 (zh) 数据发送方法及装置、建立p2p连接的方法及***
US11381544B2 (en) Service type determining method and related device
Nikitinskiy et al. A stateless transport protocol in software defined networks
Cicconetti et al. A preliminary evaluation of quic for mobile serverless edge applications
Lin et al. Scaling persistent connections for cloud services
WO2024113776A1 (zh) 数据传输方法以及相关设备
Hayamizu et al. CeforeSim: Cefore Compliant NS-3-Based Network Simulator

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