掌桥专利:专业的专利平台
掌桥专利
首页

数据传输方法、装置、设备、系统及可读存储介质

文献发布时间:2023-06-19 12:11:54


数据传输方法、装置、设备、系统及可读存储介质

技术领域

本申请实施例涉及计算机技术领域,尤其涉及一种数据传输方法、装置、设备、系统及可读存储介质。

背景技术

随着计算机、互联网技术的发展,终端之间的数据传输更加频繁复杂,数据传输场景从一个终端与一个终端(一对一)进行数据传输,发展为一个终端与多个终端(一对多)进行数据传输。

相关技术中,基于用户数据包传输协议(User Datagram Protocol,UDP)实现一个终端与多个终端之间的数据传输。但是基于UDP协议的数据传输方式,容易发生数据包的丢失,数据传输的有序性、完整性和可靠性均较差。

发明内容

本申请实施例提供了一种数据传输方法、装置、设备、系统及可读存储介质,以解决数据传输过程中,因为数据丢失而导致的数据有序性、完整性和可靠性较差的问题。

第一方面,提供了一种数据传输方法,所述方法包括:

接收发送终端发送的第一数据包,所述第一数据包的包头携带有接收终端的信息,所述接收终端的数量为至少一个,所述第一数据包的包头长度基于所述接收终端的数量确定;

对所述第一数据包的包头进行解析,得到所述接收终端的信息;

基于所述接收终端的信息,确定接收终端的数量;

响应于所述接收终端的数量为多个,基于所述第一数据包和所述接收终端的信息,获取发往各个接收终端的第二数据包;

向所述各个接收终端发送对应的第二数据包。

第二方面,提供了一种数据传输方法,所述方法包括:

获取第一数据包,所述第一数据包的包头携带有接收终端的信息,且所述接收终端的数量为至少一个,所述第一数据包的包头长度基于所述接收终端的数量确定;

向数据中转服务器发送所述第一数据包,以通过所述数据中转服务器基于所述第一数据包向各个接收终端发送对应的第二数据包。

第三方面,提供了一种数据传输方法,所述方法包括:

接收数据中转服务器发送的第二数据包,所述第二数据包由所述数据中转服务器基于从发送终端接收到的第一数据包得到,所述第一数据包的包头携带有接收终端的信息,所述接收终端的数量为至少一个,所述第一数据包的包头长度基于所述接收终端的数量确定;

向所述数据中转服务器发送第二反馈数据包,所述第二反馈数据包用于所述数据中转服务器确定满足重发条件的接收终端。

另一方面,提供了一种数据传输的装置,所述装置包括:

数据接收模块,用于接收发送终端发送的第一数据包,所述第一数据包的包头携带有接收终端的信息,所述接收终端的数量为至少一个,所述第一数据包的包头长度基于所述接收终端的数量确定;

解析模块,用于对所述第一数据包的包头进行解析,得到所述接收终端的信息;

确定模块,用于基于所述接收终端的信息,确定接收终端的数量;

获取模块,用于响应于所述接收终端的数量为多个,基于所述第一数据包和所述接收终端的信息,获取发往各个接收终端的第二数据包;

第一发送模块,用于向所述各个接收终端发送对应的第二数据包。

在一种可能的实现方式中,该装置还包括:

第二发送模块,用于响应于所述接收终端的数量为多个,基于接收到的第一数据包向所述发送终端发送第一反馈数据包,所述第一反馈数据包用于指示已经接收到的数据包,并基于所述第一反馈数据包确定传输超时的数据包;

所述数据接收终端,用于所述接收所述发送终端重新发送的重发数据包,所述重发数据包为传输超时的数据包。

在一种可能的实现方式中,所述第一发送模块,还用于接收所述多个接收终端发送的第二反馈数据包,根据所述第二反馈数据包确定目标接收终端,向所述目标接收终端重新发送对应的第二数据包,所述目标接收终端为所述多个接收终端中满足重发条件的接收终端。

在一种可能的实现方式中,所述第一发送终端,用于根据所述第二反馈数据包,确定重传概率;若所述各个接收终端对应的随机数与所述重传概率的关系满足重发条件,确定所述多个接收终端中的目标接收终端;向所述目标接收终端重新发送对应的第二数据包。

在一种可能的实现方式中,所述第一发送终端,用于基于所述第二反馈数据包,确定发生第二数据包传输超时的会话的个数;基于所述第二数据包传输超时的会话的个数、会话总数和奖励系数,确定重传概率。

在一种可能的实现方式中,所述接收终端的信息包括所述接收终端的成员编码,一个成员编码对应一个接收终端,所述第一数据包的包头长度基于所述接收终端的成员编码的数量确定;所述确定模块,用于将所述第一数据包的包头中携带的接收终端的成员编码的数量作为所述接收终端的数量。

在一种可能的实现方式中,所述接收终端的信息包括参考值,所述参考值用于指示接收终端的数量,所述第一数据包的包头长度基于所述参考值确定;所述确定模块,用于基于所述第一数据包的包头中携带的参考值确定接收终端的数量。

在一种可能的实现方式中,所述第一数据包的数量为多个,所述第一数据包携带有序列号;

所述第二发送模块,用于响应于所述接收终端的数量为多个,基于多个第一数据包进行第一解析操作,得到第一解析结果,所述第一解析结果包括各个第一数据包的序列号;基于所述各个第一数据包的序列号,确定所述多个第一数据包为乱序接收,基于所述序列号对所述多个第一数据包进行排序;基于排序后的多个第一数据包,生成所述第一反馈数据包。

在一种可能的实现方式中,所述第一数据包携带有序列号;所述获取模块,用于响应于所述接收终端的数量为多个,基于所述第一数据包进行复制;基于多个接收终端的信息,确定所述各个接收终端对应的接收状态;基于所述各个接收终端对应的接收状态,更新复制得到的各数据包中携带的序列号,获取发往各个接收终端的第二数据包。

在一种可能的实现方式中,所述装置还包括,转发模块,用于响应于所述接收终端的数量为一个,向所述接收终端发送所述第一数据包。

另一方面,提供了一种数据传输装置,所述装置包括:

获取模块,用于获取第一数据包,所述第一数据包的包头携带有接收终端的信息,且所述接收终端的数量为至少一个,所述第一数据包的包头长度基于所述接收终端的数据量确定;

发送模块,用于向数据中转服务器发送所述第一数据包,以通过所述数据中转服务器基于所述第一数据包向各个接收终端发送对应的第二数据包。

在一种可能的实现方式中,所述装置还包括:

接收模块,用于接收所述数据中转服务器发送的第一反馈数据包,所述第一反馈数据包用于指示已经接收到的数据包;

确定模块,用于基于所述第一反馈数据包确定传输超时的数据包;

所述发送模块,还用于向所述数据中转服务器重新发送重发数据包,所述重发数据包为传输超时的数据包。

另一方面,提供了一种数据传输装置,所述装置包括:

接收模块,用于接收数据中转服务器发送的第二数据包,所述第二数据包由所述数据中转服务器基于从发送终端接收到的第一数据包得到,所述第一数据包的包头携带有接收终端的信息,所述接收终端的数量为至少一个,所述第一数据包的包头长度基于所述接收终端的数量确定;

发送模块,用于向所述数据中转服务器发送第二反馈数据包,所述第二反馈数据包用于所述数据中转服务器确定满足重发条件的接收终端。

在一种可能的实现方式中,所述接收模块,还用于若满足重发条件,接收所述数据中转服务器重新发送的第二数据包。

另一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条计算机程序或指令,所述至少一条计算机程序或指令由所述处理器加载并执行,以使该计算机设备实现上述任一所述的数据传输方法。

另一方面,提供了一种数据传输系统,所述系统包括:发送终端、数据中转服务器和接收终端;

所述发送终端用于执行第二方面任一所述的数据传输方法;

所述数据中转服务器用于执行第一方面所述的数据传输方法;

所述接收终端用于执行第三方面所述的数据传输方法。

另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条计算机程序或指令,所述至少一条计算机程序或指令由处理器加载并执行,以使计算机实现上述任一所述的数据传输方法。

另一方面,还提供了一种计算机程序产品或计算机程序,所述计算机程序产品或计算机程序包括计算机指令,所述计算机指令存储在计算机可读存储介质中。计算机设备的处理器从所述计算机可读存储介质读取所述计算机指令,处理器执行所述计算机指令,使得所述计算机设备执行上述任一所述数据传输方法。

本申请实施例提供的技术方案至少带来如下有益效果。

本申请实施例提供的数据传输方法,采用了分段可靠UDP方案,提高了一个终端与多个终端(一对多)进行数据传输过程中,数据的有序性、完整性和可靠性。且将可靠UDP方案进行分段,减少了发送终端的数据传输量,提高数据传输的效率。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例提供的一种数据传输方法的实施环境的示意图;

图2是本申请实施例提供的一种数据传输方法的流程图;

图3是本申请实施例提供的一种数据包的结构示意图;

图4是本申请实施例提供的另一种数据传输方法的流程图;

图5是本申请实施例提供的另一种数据传输方法的流程图;

图6是本申请实施例提供的另一种数据传输方法的流程图;

图7是本申请实施例提供的一种数据传输装置的示意图;

图8是本申请实施例提供的一种数据传输装置的示意图;

图9是本申请实施例提供的一种数据传输装置的示意图;

图10是本申请实施例提供的一种数据传输装置的示意图;

图11是本申请实施例提供的一种服务器的结构示意图;

图12是本申请实施例提供的一种终端的结构示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。

随着计算机技术的不断发展,终端之间的数据传输更加频繁复杂,数据传输场景从一个终端与一个终端(一对一)进行数据传输,发展为一个终端与多个终端(一对多)进行数据传输。本申请提供了一种可靠的数据传输的方法,在实际应用中,该方法可以应用于多人音视频通话场景中,以实现对音视频数据的传输。在介绍本申请实施例提供的数据传输方法前,首先对部分技术概念进行解释,以更好的理解本申请实施例的内容。

可靠用户数据包传输协议(Reliable User Datagram Protocol,RUDP):该协议旨在提供一种解决方案,比用户数据包传输协议(User Datagram Protocol,UDP)可靠,比传输控制协议TCP(Terminal Control Protocol)开销小,其中UDP为了低时延、低带宽占用等特性,舍弃了数据包传输的可靠性和有序性,另一方面,TCP增加了太多复杂度和开销来达到可靠性。RUDP通过扩展UDP来提供可靠性保证,同时一定程度上保持了UDP的传输效率。

数据中转服务器:多人音视频通话应用中,由于传输链路路由器(NetworkAddress Translation,NAT)的限制,音视频数据一般无法直接从一个终端传输到其他终端。此外,一对多传输对于终端上传宽带的要求太高,所以,此类通话系统都会部署有外网地址(Internet Protocol,IP)的服务器完成音视频数据中转传输,这些服务器被称为数据中转服务器。

参见图1,本申请实施例提供了一种数据传输方法的实施环境的示意图。该实施环境包括:发送终端11、数据中转服务器12以及多个接收终端13。

基于图1所示的实施环境,发送终端11和多个接收终端13构成当前数据传输场景,发送终端11和接收终端13可以称为当前数据传输场景下的成员。图1中提供了一种实施环境的系统架构,以及数据包在系统中各设备间的传输路径。发送终端11将数据包发送给数据中转服务器12,数据中转服务器12依据数据包中携带的信息,调用相应模块对数据包进行处理,然后向接收终端13发送数据包。

参见图1可知,基于本申请实施例提供的数据传输方法,发送终端11可以基于路径1->2->3->4将数据包发送到一个接收终端13,该接收终端13在接收到数据包后,向发送终端11(路径5)发送反馈数据包。发送终端11还可以基于路径1->2->6->8->9将数据包发送到多个接收终端13,该过程中,数据中转服务器12向发送终端11发送反馈数据包(路径7),其中,发送反馈数据包(路径7)与向下一模块发送数据的步骤(路径8)可以同时进行;多个接收终端13在接收到数据包后,向数据中转服务器12发送反馈数据包(路径10)。

参见图1,在本申请实施例提供的数据传输方法的执行过程中,数据中转服务器12中应用到的模块包括但不限于:数据接收模块,RUDP策略控制模块,透传中转模块,RUDP接收模块,以及RUDP发送模块。

在一种可能实现方式中,发送终端11以及接收终端13可以是诸如手机、平板电脑、个人计算机等的智能设备。数据中转服务器12可以是一台服务器,也可以是由多台服务器组成的服务器集群,或者是一个云计算服务中心。发送终端11、接收终端13与数据中转服务器12通过有线或无线网络建立通信连接,本申请实施例对此不作限定。

本领域技术人员应能理解上述发送终端11、接收终端13和数据中转服务器12仅为举例,其他现有的或今后可能出现的终端或服务器如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。

在示例性实施例中,本申请实施例中提供的数据传输方法可以在区块链系统中实现,本申请实施例提供的数据传输方法中涉及的发送终端或者接收终端的信息等均可以保存在区块链系统中的区块链上,系统的安全性和可靠性较高。

参见图2,本申请实施例提供一种数据传输方法,该方法可以实现在多个终端构成的数据传输场景下,一个终端与其他多个终端(一对多)之间的可靠数据传输。在一种可能实现方式中还可以兼容一个终端与一个终端(一对一)之间的数据传输。该方法在实际应用中可以实现多人音视频通话的场景中。该方法的实施过程包括但不限于以下步骤201-205。

步骤201、接收发送终端发送的第一数据包,该第一数据包的包头携带有接收终端的信息,该接收终端的数量为至少一个,该第一数据包的包头长度基于接收终端的数量确定。

数据中转服务器接收到的第一数据包是由发送终端发送的,该第一数据包中会携带有发送终端需要发送的目标信息,以及接收该目标信息的接收终端的信息等。该接收终端的信息携带在第一数据包的包头中,该接收终端的数量为至少一个,该第一数据包的包头长度基于接收终端的数量确定。本申请实施例对目标信息的内容不做限定,示例性地,该目标信息为信令/消息,例如,指示信息停止传输的指令;目标信息也可以是音视频数据。其中,信令/指令与音视频数据相比,对可靠性要求更高,但数据量更小。

发送终端基于需要发送的目标信息生成数据包,向数据中转服务器发送生成的数据包。在发送终端中,发送的数据包构成发送队列。基于上述内容,数据包中携带有目标信息、接收终端的信息等多种内容。其中接收终端的信息携带在数据包的包头中;基于本申请实施例的实施环境,接收终端的数量为至少一个;该第一数据包的包头长度基于接收终端的数量确定。

图3给出了一种适用于本申请实施环境的数据包的结构示意图。参见图3提供的一种示例性的数据包的结构,该数据包中包括但不限于以下字段:通信编码(ID)字段、发包成员(from_memberid)字段、列表大小(to_memberid_size)字段、目标成员(to_memberid)列表字段、序列号(seq)字段以及传输信息(data)字段。其中,列表大小字段与目标成员列表字段一起指示接收终端的信息。

(1)ID:通信编码字段。该字段用于标识当前数据传输场景,也可以称为通信场景。示例性地,该字段用4个字节表示。

在本申请实施例中,多个终端构成一个数据传输场景,属于该数据传输场景内的所有终端可以称为成员。在进行数据传输时,作为发送终端的成员可以选择向其余成员中的一个或者多个终端发送数据包。

在构建该通信场景(数据传输场景)时,可以基于当前数据传输场景下的终端构建通信集合。服务器会下发相应的通信编码,该通信编码用于标识该通信集合,即表示当前数据传输场景。该通信编码是唯一的,不会出现重复的通信编码。每一个终端加入该通信场景时,服务器也会下发相应的成员编码,该成员编码基于终端加入的通信集合(加入的数据传输场景)以及终端自身的相应属性进行确定。在同一通信集合中(即在同一数据场景中),各成员的成员编码不同。在一种可能的情况下,不同通信集合中可能出现相同的成员编码。

一种可能的实现方式中,用于下发通信编码以及成员编码的服务器可以为数据中转服务器。在该种可能的实现方式中,该数据中转服务器中可以包括计算模块,以在该计算模块中生成编码;还可以包括记录模块,用于记录通信场景下的各类基本信息,以供终端及数据中转服务器中的其他模块,在数据传输过程中调用各类信息。可选地,该服务器也可以为单独的信令服务器,该信令服务器负责生成通信编码、成员编码,记录数据传输情况,记录当前数据传输场景下的成员总数,发出对数据传输过程的控制指令等,以维护通信集合中各成员之间数据传输的正常进行。在该服务器为信令服务器时,接收终端、发送终端以及数据中转服务器均可以与该信令服务器进行通信。信令服务器通过有线或无线等通信方法,在生成数据包、确定接收端的数量等过程中,将通信编码、成员编码、当前数据传输场景下的成员总数等信息发送到发送终端、接收终端或者数据中转服务器。

在示例性实施例中,在音视频通话场景下,参与音视频通话的多个终端构成一个通话房间,则生成相应的通信编码(ID)用于标识音视频通话房间,且全局唯一,该ID在建立通话时通过信令服务器下发。

(2)from_memberid:发包成员字段。该字段用于记录发送终端对应的成员编码,用以指示数据包由该通信场景下的哪一个终端进行发送。示例性地,该字段通过两个字节进行表示,则表示的发送终端的成员编码的取值范围为[0,65534]。

(3)to_memberid_size:列表大小字段。该字段中元素的数值用于指示目标成员列表的大小,用于指示目标成员列表中元素的数量。基于该列表大小字段中元素的数值,可以确定目标成员列表字段占据的字节的数量。示例性地,该字段用两个字节进行表示。

(4)to_memberid列表:目标成员列表字段。该目标成员列表字段携带接收终端的信息,基于该接收终端的信息可以确定接收终端的数量。该目标成员列表字段中可以包括一个或者多个元素。该字段中的元素即用于指示目标成员,即接收终端。该字段的大小基于接收终端的数量确定,可选地,该字段中元素的数量可以与接收终端的数量相同或者不同。示例性地,该目标成员列表字段中各个元素用两个字节存储,若该目标成员列表字段中共N个元素,该字段共占用2N个字节,N为正整数。

在该目标成员列表字段中,各个元素的取值包括但不限于是接收终端的成员编码或者参考值,该参考值包括但不限于第一参考值或者第二参考值。其中,第一参考值为设置的一个固定数值,用于指示当前数据传输场景下,除发送终端之外的所有终端;第二参考值是至少一个,且一个第二参考值是与一个接收终端对应的数值,第二参考值可以基于对应的接收终端的基本属性进行确定,本申请对第二参考值的确定方式不作限定。

在一种可能的实现方式中,各个元素的数值为接收终端的成员编码。在本申请实施例中,接收终端的成员编码的取值范围为[0,65534]。即各个元素的数值为[0,65534]中任一数值。在该种方式下,发送终端向各个元素指示的接收终端发送数据包。在另一种可能的实现方式中,仅存在一个元素,且元素数值为第一参考值,该第一参考值为65535。该第一参考值用于指示接收终端为当前通信集合中,除发送终端外的所有成员;即该种可能的实现方式下,发送终端向其他所有终端发送数据包。在另一种可能的实现方式中,存在多个元素,且元素数值为第二参考值,一个第二参考值与一个接收终端相对应。示例性地,该参考值的取值范围可以与接收终端成员编码的取值范围相同。

在一种可能的实现方式中,可以基于该字段内接收终端的成员编码或者参考值确定接收终端的数量。

(5)seq:序列号字段。该字段用于标识数据包的传输顺序,以判断数据包是否进行了有序可靠传输。该字段通过两个字节进行表示。在一种可能的实现方式中,该字段可以根据数据传输需要进行更新。

示例性地,数据中转服务器接收到多个第一数据包时,基于各个第一数据包的序列号判断是否顺序接收该多个第一数据包。在乱序接收的条件下,基于序列号对多个数据包进行排序。

(6)data:传输信息字段。该字段为数据包的实际信息区域(payload),包括信令/消息或者音视频数据等多种目标信息。该字段的大小基于要发送的信息的实际情况进行确定。

参见附图3,在数据包中,上述6个字段按照顺序依次排列。0~3字节对应ID字段;4~5字节对应from_memberid字段;6~7字节对应to_memberid_size字段;基于to_memberid_size字段表示的数值为N,从8字节开始,共2N个字节对应to_memberid字段;2N+8~2N+11字节对应seq字段;从2N+12字节开始对应data字段。其中1-5字段构成数据包的包头,该数据包的包头包括携带接收终端信息的to_memberid字段。基于该to_memberid字段占用N字节,该数据包的包头长度是可以基于N的取值进行改变的,即数据包的包头长度基于目标成员列表(to_memberid)字段的长度进行确定;该字段的长度基于接收终端的数量确定,即数据包的包头长度可以基于接收终端的数量进行确定。

步骤202、对第一数据包的包头进行解析,得到接收终端的信息。

确定接收终端的信息的过程包括但不限于以下步骤:基于数据包的结构确定列表大小(to_memberid_size)字段,获取列表大小字段中元素的数值,即目标成员列表字段的大小;基于目标成员列表字段的大小,确定目标成员列表字段占据的字节数;在列表大小字段后确定字节数个字节为目标成员列表字段;解析目标成员列表字段,得到接收终端的信息。

其中,解析目标成员列表字段,得到接收终端的信息,包括:解析目标成员列表字段,确定该字段中至少一个元素的数值;基于各元素的数值确定目标成员列表字段包括的内容为接收终端的成员编码还是参考值。在一种可能的实现方式中,参数值包括但不限于第一参考值或第二参考值。

基于图3中示出的数据包的结构,第一数据包中0~7字节对应的字段是固定的,数据中转服务器可以直接解析数据包的包头中相应位置的字段的内容,获取该字段对应的信息。示例性地,直接解析6~7字节,确定目标成员列表的大小,确定目标成员列表字段占据的字节;然后从8字节开始,解析相应字节数的字节对应的范围,得到数据包的包头携带的接收终端的信息,确定该信息指示的接收终端。

在示例性实施例中,假设当前数据传输场景下共有X个终端,X为大于等于2的正整数。参见图3给出的数据包的结构,可以确定第一数据包中第6~7字节对应列表大小字段,则直接解析该字段内容,得到目标成员列表的大小,即目标成员列表字段中元素的数量。示例性地,解析得到列表大小字段对应数值为M,则目标成员列表中元素数量为M。则确定目标成员列表字段占据的字节的数量为2M个字节,M为正整数。

基于数据包的结构,目标成员列表字段与列表大小字段相邻,则从8字节起,确定2M个字节为目标成员列表字段;解析该字段即可确定目标成员列表中M个元素的数值,该元素的数值用于指示接收终端。可以基于该M个元素的数值确定接收终端的信息。

步骤203、基于接收终端的信息,确定接收终端的数量。

接收终端的信息包括但不限于接收终端的成员编码或者参考值。

响应于接收终端的信息包括至少一个接收终端的成员编码,将至少一个接收终端的成员编码的数量作为接收终端的数量。

响应于接收终端的信息包括参考值,基于参考值确定接收终端的数量,参考值用于指示接收终端的数量。在一种可能实现的方式中,响应于接收终端的信息为一个第一参考值,该第一参考值指示接收终端的数量为:当前数据传输场景下所有终端的数量减去发送终端数量,即减去1。在一种可能的实现方式中,响应于接收终端的信息为至少一个第二参考值,将第二参考值的数量作为接收终端的数量,该第二参考值与各个接收终端相对应。

其中,若接收终端的成员编码的数量或者第二参考值的数量为1,则对应一对一通信模式;接收终端的成员编码的数量或者第二参考值的数量为多个,则对应一对多通信模式;若为一个第一参考值,则对应广播模式,该广播模式指发送终端向当前数据传输场景中所有的其他终端发送信息。

在一种可能的实现方式中,确定的多个接收终端的成员编码或者多个第二参考值可以列表形式表示。

在示例性实施例中,若各个元素的数值在[0,65534]范围内,则各个元素的数值为接收终端的成员编码;则确定接收终端数量为M,M取值在[1,X-1]的范围中。若解析出一个元素,且该元素的数值为65535,则表示元素的数值是第一参考值,此时接收终端的数量为X-1。

步骤204、响应于接收终端的数量为多个,基于第一数据包和接收终端的信息,获取发往各个接收终端的第二数据包。

在该步骤中,响应于接收终端的数量为多个,基于第一数据包进行复制;基于多个接收终端的信息,确定各个接收终端对应的接收状态;基于各个接收终端对应的接收状态,更新复制得到的各数据包中携带的序列号,获取发往各个接收终端的第二数据包。其中,各个接收终端对应的接收状态指各个接收终端当前接收过的数据包的数量。

在该种可能的实现方式中,确定多个接收终端,则基于接收终端的数量将第一数据包复制相应的份数。复制完成后,由于数据包将发往不同的接收终端,各接收终端在此之前的接收状态可能各不相同,所以基于各接收终端的接收状态,更新复制得到的数据包中的序列号字段,获得与各接收终端对应的第二数据包。其中接收状态用于指示接收终端在此之前接收到的数据包的数量。

示例性地,数据中转服务器接收到一个序列号为5的第一数据包,共有接收终端1和接收终端2这两个接收终端。基于数据传输记录得知,接收终端1在此之前接收过5个数据包,接收终端2在此之前接收过2个数据包,则将发往接收终端1中的数据包的序列号改为6,将发往接收终端2的数据包的序列号改为3,得到与接收终端对应的两个第二数据包。

在一种可能的实现方式中,基于各个接收终端的会话进行第二数据包的传输,各个接收终端的会话相互独立。基于各个会话中记录的上下文信息,进行数据包中序列号字段的更新操作,基于该上下文信息可以确定各个接收终端接收过的数据包的数量。

步骤205、向各个接收终端发送对应的第二数据包。

数据中转服务器建立与各个接收终端的会话,基于各个接收终端的会话,向各个接收终端发送对应的第二数据包。其中,各个接收终端的会话相互独立。

在一种可能的实现方式中,参见图4,在步骤205后还执行步骤206,在发送数据传输超时的情况下,通过重传保证数据传输的可靠性。

步骤206、接收多个接收终端发送的第二反馈数据包,根据第二反馈数据包确定目标接收终端,向目标接收终端重新发送对应的第二数据包,该目标接收终端为多个接收终端中满足重发条件的接收终端。

在一种可能的实现方式中,数据中转服务器向接收终端发送第二数据包之后,各个接收终端会根据接收到的第二数据包向数据中转服务器发送第二反馈数据包,该第二反馈数据包用于指示各个接收终端对第二数据包的接收情况。

根据第二反馈数据包确定目标接收终端,向目标接收终端重新发送对应的第二数据包的过程包括但不限于:根据第二反馈数据包,确定重传概率;若各个接收终端对应的随机数与重传概率的关系满足重发条件,确定多个接收终端中的目标接收终端;向目标接收终端重新发送对应的第二数据包。

在确定目标接收终端的过程中,需要满足的重发条件为:接收终端对应的随机数不大于重传概率。针对每一个接收终端,确定一个[0,1]范围内的随机数,比较该随机数与重传概率。响应于随机数小于等于该重传概率,则向该接收终端重传异常数据包,否则放弃重传。示例性地,随机数可以用x表示。

在一种可能的实现方式中,基于与各个接收终端对应的会话,进行第二数据包和第二反馈数据包的传输。则根据第二反馈数据包,确定重传概率的过程包括但不限于:基于第二反馈数据包,确定发生第二数据包传输超时的会话的个数;基于第二数据包传输超时的会话的个数、会话总数和奖励系数,确定重传概率。

确定重传概率的过程包括:基于第二数据包接收超时的会话的个数、会话总数和奖励系数,确定第一取值,若第一取值为小于等于1的非负数,第一取值为重传概率;若第一取值大于1,则重传概率为1。

在一种可能的实现方式中,上述重传概率基于下述公式1进行确定。

其中,P

针对上述公式1,

例如,向10个接收终端发送数据包,假设该数据包的标识(i)为9。根据接收终端反馈回的反馈数据包,确定该数据包在7个接收终端处都发生了传输超时,则基于公式1,假设

在一种可能的实现方式中,数据传输终端接收到的第一是数据包为多个,例如数量为Y,响应于接收终端的数量为多个,则数据中转服务器基于各个接收终端的会话,向各个接收终端发送Y个第二数据包;数据中转服务器基于反馈的第二反馈数据包,确定其中一个会话中的Y个数据包中标识为i的数据包发生了传输超时,则确定其他会话中,该数据包i是否也发生传输超时。则将会话总数、数据包i传输超时的会话个数代入上述公式1,确定重传概率。确定各个接收终端的随机数,向满足重传条件的目标接收终端重新发送数据包i。

在一种可能的实现方式中,所有第二数据包丢失或者第二反馈数据包丢失,将会导致数据中转服务器未接收到第一反馈数据包,则认为第二数据包均发生了传输超时,认为接收终端未接收到第二数据包,数据中转服务器也向接收终端重新发送第二数据包。

在该种可能的实现方式中,接收终端接收到第二数据包后,对第二数据包进行解析,并将第二数据包添加到接收终端的第一队列中,以更新该第一队列。该第一队列即为接收终端已经接收到的数据包的队列。基于该更新后的第一队列,生成第二反馈数据包,将该第二反馈数据包发送给数据中转服务器,以指示数据中转服务器确定已经被接收的第二数据包。该过程中接收终端执行的步骤与下述步骤2中数据中转服务器接收到第一数据包后的步骤类似,在此不进行赘述。

在一种可能的实现方式中,在执行步骤201之后还可以执行下述步骤1-2。步骤1-2用于保证数据中转服务器接收到的数据包的可靠性。

步骤1、响应于接收终端的数量为多个,基于接收到的第一数据包向发送终端发送第一反馈数据包,第一反馈数据包用于指示已经接收到的数据包,并基于第一反馈数据包确定传输超时的数据包。

在一种可能的实现方式中,响应于第一数据包的数量为多个,第一数据包携带有序列号;基于多个第一数据包进行第一解析操作,得到第一解析结果,第一解析结果包括各个第一数据包的序列号;基于各个第一数据包的序列号,确定多个第一数据包为乱序接收,基于序列号对多个第一数据包进行排序;基于排序后的多个第一数据包,生成第一反馈数据包。其中,若多个第一数据包为顺序接收,则直接生成第一反馈数据包。

在一种可能的实现方式中,数据包在数据中转服务器中以队列形式进行存储。在该种情况下,若接收到一个第一数据包,则将该第一数据包添加到已接收队列中的相应位置。若接收到多个第一数据包,在对多个第一数据包进行排序后,按照多个第一数据包的序列号,将多个第一数据包添加到已接收队列的相应位置中。以实现对数据中转服务器中已接收队列的更新,基于更新后的已接收队列生成第二数据包。

参见图3示出的数据包的结构,示例性地,数据中转服务器中存在的已接收队列中存在序列号为1、2、4的数据包,接收到的第一数据包序列号为5、3,则将第一数据包按顺序排列为3、5;然后添加到已接收队列的相应位置以更新已接收队列,更新后的第一队列中数据包顺序为1、2、3、4、5。

其中,第二数据反馈包用于指示数据中转服务器接收到的数据包,且发送终端接收到第二反馈数据后,基于第一反馈数据包确定被成功接收的数据包以及传输超时的数据包。在一种可能的实现方式中,发送终端中存在发送队列,该发生传输超时的数据包在发送队列中。

在一种可能的实现方式中,由于网络的不稳定性可能导致数据包的丢失,即发送终端发送的数据包的数量多于数据中转服务器接收到的第一数据包的数量。发送终端基于接收到的第二数据反馈包,确定被成功接收的数据包,将被成功接收的数据包和发送终端中发送队列中的数据包进行比对,确定传输超时的数据包,认定传输超时的数据包发生了数据包丢失。

在一种可能的实现方式中,发送终端还基于第一反馈数据包,清除发送队列中已被成功接收的数据包,以减少发送终端的数据量。

步骤2、接收发送终端重新发送的重发数据包,该重发数据包为传输超时的数据包。

在一种可能的实现方式中,数据中转服务器向发送终端发送第一反馈数据包之后,数据中转服务器接收发送终端重新发送的重发数据包,该重发数据包为发送队列中传输超时的数据包,发送终端将第二反馈数据包与发送终端的发送队列进行对比,确定重发数据包;向数据中转服务器重新发送该重发数据包。在一种可能的实现方式中,第二反馈数据包在向发送终端发送的过程中发生丢失,发送终端也将执行重传操作。

在一种可能的实现方式中,在执行步骤202后执行步骤3,以实现对一对一传输场景的兼容。

步骤3、响应于接收终端的数量为一个,数据中转服务器将第一数据包发送给接收终端。

在该种可能的实现方式中,数据中转服务器不对第一数据包进行处理,直接对第一数据包进行转发操作,实现第一数据包的透传。接收终端在接收到第一数据包后,对第一数据包进行解析处理,更新接收终端的已接收队列,向发送终端发送反馈数据包。该过程接收终端执行的步骤与步骤1中数据中转服务器步骤类似,发送终端执行的步骤与步骤1、2中类似,本申请实施例在此不再赘述。

在该种可能的实现方式中,数据中转服务器对数据包进行了透传中转,即直接将接收到的数据包进行转发,处理逻辑简单,可以有效降低数据中转服务器的负载,以提高数据传输的效率。

在一种可能的实现方式中,参见图1示出的实施环境,本方案采用分段可靠UDP协议方案,则发送终端可以为RUDP终端,对应地,发送终端中可以存在RUDP发送模块。基于图1示出的实施环境,步骤201、步骤202、步骤2可以在数据接收模块执行,步骤203可以在RUDP策略控制模块进行,步骤1、步骤204、205、206可以在RUDP接收模块、RUDP发送模块中执行;步骤3可以在透传中转模块中进行。

本申请实施例提供的数据传输方法,采用了分段可靠UDP方案,提高了一个终端与多个终端(一对多)进行数据传输过程中,数据的有序性、完整性和可靠性。且将RUDP方案进行分段,将重传操作分散在发送终端和数据中转服务器,减少了发送终端的数据传输量,可以在数据中转服务器中更及时地发现数据包丢失情况,节省了数据重传过程中的流程,从整体上提高数据传输的效率。应用了新的重传算法,还提高了数据重传过程中的效率。

参见图5,本申请实施例提供了一种数据传输方法,以该方法由发送终端执行为例,该方法包括如下步骤501和步骤502。

步骤501,获取第一数据包,第一数据包的包头携带有接收终端的信息,且接收终端的数量为至少一个,第一数据包的包头长度基于接收终端的数量确定。

该第一数据包中会携带有发送终端需要发送的目标信息,以及接收该目标信息的接收终端的信息等。该接收终端的信息携带在第一数据包的包头中,该接收终端的数量为至少一个,该第一数据包的包头长度基于接收终端的数量确定。本申请实施例对目标信息内容不做限定,示例性地,该目标信息为信令/消息,例如,指示信息停止传输的指令;目标信息也可以是音视频数据。其中,信令/指令与音视频数据相比,对可靠性要求更高,但数据量更小。

发送终端基于要发送的目标信息生成数据包,向数据中转服务器发送生成的数据包。在发送终端中,发送的数据包构成发送队列。基于上述内容,数据包中携带有目标信息、接收终端的信息等多种内容。数据包携的包头带有接收终端的信息,且接收终端的数量为至少一个,数据包的包头长度基于接收终端的数量确定。参见图3,给出了一种适用于本申请实施环境的数据包的结构示意图。该步骤501的执行过程可参考图2所示的步骤201中发送终端所执行的相关功能描述,此处不再赘述。

步骤502,向数据中转服务器发送第一数据包,以通过数据中转服务器基于第一数据包向各个接收终端发送对应的第二数据包。

该步骤502的执行过程可参考图2所示的步骤201中发送终端所执行的相关功能描述,此处不再赘述。

参见图6,本申请实施例提供了一种数据传输方法,以该方法由接收终端执行为例,该方法包括如下步骤601和步骤602。

步骤601,接收数据中转服务器发送的第二数据包,第二数据包由数据中转服务器基于从发送终端接收到的第一数据包得到,第一数据包的包头携带有接收终端的信息,接收终端的数量为至少一个,第一数据包的包头长度基于接收终端的数量确定。

数据中转服务器建立与各个接收终端的会话,基于各个接收终端的会话,向各个接收终端发送对应的第二数据包,接收终端接收第二数据包。其中,各个接收终端的会话相互独立。该步骤601的执行过程可参考图2所示的步骤205中接收终端所执行的相关功能描述,此处不再赘述。该步骤601中对第一数据包的说明可以参见上述图2所示的步骤201中第一数据包的相关内容,在此不再赘述。

步骤602,向数据中转服务器发送第二反馈数据包,第二反馈数据包用于数据中转服务器确定满足重发条件的接收终端。

该步骤602的执行过程可参考图2所示的步骤205中接收终端所执行的相关功能描述,此处不再赘述。

参见图7,本申请实施例提供一种数据传输装置,该装置用于执行图2或图4所示的数据传输方法中的数据中转服务器所执行的功能,该装置包括但不限于以下模块:

数据接收模块701,用于接收发送终端发送的第一数据包,第一数据包携带有接收终端的信息;

解析模块702,用于对第一数据包的包头进行解析,得到接收终端的信息;

确定模块703,用于基于接收终端的信息,确定接收终端的数量;

获取模块704,用于响应于接收终端的数量为多个,基于第一数据包和接收终端的信息,获取发往各个接收终端的第二数据包;

第一发送模块705,用于向各个接收终端发送对应的第二数据包。

在一种可能的实现方式中,参见图8,装置还包括:

第二发送模块706,用于响应于接收终端的数量为多个,基于接收到的第一数据包向发送终端发送第一反馈数据包,第一反馈数据包用于指示已经接收到的数据包,并基于第一反馈数据包确定传输超时的数据包;

数据接收终端701,用于接收发送终端重新发送的重发数据包,重发数据包为传输超时的数据包。

在一种可能的实现方式中,第一发送模块705,还用于接收多个接收终端发送的第二反馈数据包,根据第二反馈数据包确定目标接收终端,向目标接收终端重新发送对应的第二数据包,目标接收终端为多个接收终端中满足重发条件的接收终端。

在一种可能的实现方式中,第一发送模块705,用于根据第二反馈数据包,确定重传概率;若各个接收终端对应的随机数与重传概率的关系满足重发条件,确定多个接收终端中的目标接收终端;向目标接收终端重新发送对应的第二数据包。

在一种可能的实现方式中,第一发送模块705,用于基于第二反馈数据包,确定发生第二数据包传输超时的会话的个数;基于第二数据包传输超时的会话的个数、会话总数和奖励系数,确定重传概率。

在一种可能的实现方式中,接收终端的信息包括接收终端的成员编码,一个成员编码对应一个接收终端,第一数据包的包头长度基于接收终端的成员编码的数量确定;确定模块703,用于将第一数据包的包头中携带的接收终端的成员编码的数量作为接收终端的数量。

在一种可能的实现方式中,参考值用于指示接收终端的数量,第一数据包的包头长度基于参考值确定;确定模块703,用于基于第一数据包的包头中携带的参考值确定接收终端的数量。

在一种可能的实现方式中,第一数据包的数量为多个,第一数据包携带有序列号;第二发送模块706,用于响应于接收终端的数量为多个,基于多个第一数据包进行第一解析操作,得到第一解析结果,第一解析结果包括各个第一数据包的序列号;基于各个第一数据包的序列号,确定多个第一数据包为乱序接收,基于序列号对多个第一数据包进行排序;基于排序后的多个第一数据包,生成第一反馈数据包。

在一种可能的实现方式中,第一数据包携带有序列号;获取模块704,用于响应于接收终端的数量为多个,基于第一数据包进行复制;基于多个接收终端的信息,确定各个接收终端对应的接收状态;基于各个接收终端对应的接收状态,更新复制得到的各数据包中携带的序列号,获取发往各个接收终端的第二数据包。

在一种可能的实现方式中,装置还包括,转发模块707,用于响应于接收终端的数量为一个,向接收终端发送第一数据包。

本申请实施例还提供了一种数据传输装置,该装置用于执行发送终端所执行的功能,参见图9,装置包括:

获取模块901,用于获取第一数据包,第一数据包的包头携带有接收终端的信息,且接收终端的数量为至少一个,第一数据包的包头长度基于接收终端的数据量确定;

发送模块902,用于向数据中转服务器发送第一数据包,以通过数据中转服务器基于第一数据包向各个接收终端发送对应的第二数据包。

在一种可能的实现方式中,装置还包括:

接收模块,用于接收数据中转服务器发送的第一反馈数据包,第一反馈数据包用于指示已经接收到的数据包;

确定模块,用于基于第一反馈数据包确定传输超时的数据包;

发送模块,还用于向数据中转服务器重新发送重发数据包,重发数据包为传输超时的数据包。

本申请实施例还提供了一种数据传输装置,该装置用于执行接收终端所执行的功能,参见图10,装置包括:

接收模块1001,用于接收数据中转服务器发送的第二数据包,第二数据包由数据中转服务器基于从发送终端接收到的第一数据包得到,第一数据包的包头携带有接收终端的信息,接收终端的数量为至少一个,第一数据包的包头长度基于接收终端的数量确定;

发送模块1002,用于向数据中转服务器发送第二反馈数据包,第二反馈数据包用于数据中转服务器确定满足重发条件的接收终端。

在一种可能的实现方式中,接收模块1001,还用于若满足重发条件,接收数据中转服务器重新发送的第二数据包。

图11是本申请实施例提供的一种服务器的结构示意图,该服务器可因配置或性能不同而产生比较大的差异,可以包括一个或多个处理器(Central Processing Units,CPU)1101和一个或多个存储器1102,其中,该一个或多个存储器1102中存储有至少一条计算机程序,该至少一条计算机程序由该一个或多个处理器1101加载并执行,以实现上述各个方法实施例提供的数据传输方法。当然,该服务器还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器还可以包括其他用于实现设备功能的部件,在此不做赘述。

图12是本申请实施例提供的一种终端1200的结构示意图。该终端1200可以是:智能手机、平板电脑、笔记本电脑或台式电脑。终端还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。

通常,终端1200包括有:处理器1201和存储器1202。

处理器1201可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1201可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器801也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。

存储器1202可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1202还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1202中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器1201所执行以实现本申请中方法实施例提供的数据传输方法。

在一些实施例中,终端还可选包括有:外围设备接口1203和至少一个外围设备。处理器1201、存储器1202和外围设备接口1203之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1203相连。具体地,外围设备包括:射频电路1204、显示屏1205、摄像头组件1206、音频电路1207、定位组件1208和电源1209中的至少一种。

外围设备接口1203可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器1201和存储器1202。在一些实施例中,处理器1201、存储器1202和外围设备接口1203被集成在同一芯片或电路板上;在一些其他实施例中,处理器1201、存储器1202和外围设备接口1203中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。

射频电路1204用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路1204通过电磁信号与通信网络以及其他通信设备进行通信。射频电路1204将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路1204包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路1204可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路1204还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。

显示屏1205用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏1205是触摸显示屏时,显示屏1205还具有采集在显示屏1205的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器1201进行处理。此时,显示屏1205还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏1205可以为一个,设置在终端的前面板;在另一些实施例中,显示屏1205可以为至少两个,分别设置在终端的不同表面或呈折叠设计;在另一些实施例中,显示屏1205可以是柔性显示屏,设置在终端的弯曲表面上或折叠面上。甚至,显示屏1205还可以设置成非矩形的不规则图形,也即异形屏。显示屏1205可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。

摄像头组件1206用于采集图像或视频。可选地,摄像头组件1206包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件1206还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。

音频电路1207可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器1201进行处理,或者输入至射频电路1204以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器1201或射频电路1204的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路1207还可以包括耳机插孔。

定位组件1208用于定位终端的当前地理位置,以实现导航或LBS(Location BasedService,基于位置的服务)。定位组件1208可以是基于美国的GPS(Global PositioningSystem,全球定位系统)、中国的北斗系统、俄罗斯的格雷纳斯系统或欧盟的伽利略系统的定位组件。

电源1209用于为终端中的各个组件进行供电。电源1209可以是交流电、直流电、一次性电池或可充电电池。当电源1209包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。

在一些实施例中,终端还包括有一个或多个传感器1210。该一个或多个传感器1210包括但不限于:加速度传感器1211、陀螺仪传感器1212、压力传感器1213、指纹传感器1214、光学传感器1215以及接近传感器1216。

加速度传感器1211可以检测以终端建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器1211可以用于检测重力加速度在三个坐标轴上的分量。处理器1201可以根据加速度传感器1211采集的重力加速度信号,控制显示屏1205以横向视图或纵向视图进行用户界面的显示。加速度传感器1211还可以用于游戏或者用户的运动数据的采集。

陀螺仪传感器1212可以检测终端的机体方向及转动角度,陀螺仪传感器1212可以与加速度传感器1211协同采集用户对终端的3D动作。处理器1201根据陀螺仪传感器1212采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。

压力传感器1213可以设置在终端的侧边框和/或显示屏1205的下层。当压力传感器1213设置在终端的侧边框时,可以检测用户对终端的握持信号,由处理器1201根据压力传感器1213采集的握持信号进行左右手识别或快捷操作。当压力传感器1213设置在显示屏1205的下层时,由处理器1201根据用户对显示屏1205的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。

指纹传感器1214用于采集用户的指纹,由处理器1201根据指纹传感器1214采集到的指纹识别用户的身份,或者,由指纹传感器1214根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器1201授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器1214可以被设置在终端的正面、背面或侧面。当终端上设置有物理按键或厂商Logo时,指纹传感器1214可以与物理按键或厂商Logo集成在一起。

光学传感器1215用于采集环境光强度。在一个实施例中,处理器1201可以根据光学传感器1215采集的环境光强度,控制显示屏1205的显示亮度。具体地,当环境光强度较高时,调高显示屏1205的显示亮度;当环境光强度较低时,调低显示屏1205的显示亮度。在另一个实施例中,处理器1201还可以根据光学传感器1215采集的环境光强度,动态调整摄像头组件1206的拍摄参数。

接近传感器1216,也称距离传感器,通常设置在终端的前面板。接近传感器1216用于采集用户与终端的正面之间的距离。在一个实施例中,当接近传感器1216检测到用户与终端的正面之间的距离逐渐变小时,由处理器1201控制显示屏1205从亮屏状态切换为息屏状态;当接近传感器1216检测到用户与终端的正面之间的距离逐渐变大时,由处理器1201控制显示屏1205从息屏状态切换为亮屏状态。

本领域技术人员可以理解,图12中示出的结构并不构成对终端的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。

在示例性实施例中,还提供了一种计算机设备,该计算机设备包括处理器和存储,该存储器中存储有至少一条计算机程序或指令。该至少一条计算机程序或指令由一个或者一个以上处理器加载并执行,以使该计算机设备实现上述任一种数据传输方法。

提供了一种数据传输系统,该系统包括:发送终端、数据中转服务器和接收终端;该发送终端用于执行图2或图4所述的数据传输方法中的发送终端所执行的功能;该数据中转服务器用于执行图2或图4所述的数据传输方法中的数据中转服务器所执行的功能;该接收终端用于执行图2或图4所述的数据传输方法中的接收终端所执行的功能。

在示例性实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有至少一条计算机程序或者指令,该至少一条计算机程序或指令由计算机设备的处理器加载并执行,以使计算机实现上述任一种数据传输方法。

在一种可能实现方式中,上述计算机可读存储介质可以是只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、只读光盘(Compact DiscRead-Only Memory,CD-ROM)、磁带、软盘和光数据存储设备等。

在示例性实施例中,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述任一种数据传输方法。

在示例性实施例中,本申请实施例所涉及的计算机程序可被部署在一个计算机设备上执行,或者在位于一个地点的多个计算机设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算机设备上执行,分布在多个地点且通过通信网络互连的多个计算机设备可以组成区块链系统。也即是,上述服务器和终端均可以作为区块链系统中的节点设备。

需要说明的是,本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以上示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。

以上所述仅为本申请的示例性实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

相关技术
  • 数据传输方法、系统、装置、计算机可读存储介质及设备
  • 数据传输方法、装置、设备、系统及可读存储介质
技术分类

06120113207760