CN113037762B - 通信方法、装置、设备及存储介质 - Google Patents

通信方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN113037762B
CN113037762B CN202110292890.8A CN202110292890A CN113037762B CN 113037762 B CN113037762 B CN 113037762B CN 202110292890 A CN202110292890 A CN 202110292890A CN 113037762 B CN113037762 B CN 113037762B
Authority
CN
China
Prior art keywords
protocol
connection
frame
user
identifier
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.)
Active
Application number
CN202110292890.8A
Other languages
English (en)
Other versions
CN113037762A (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.)
Bigo Technology Pte Ltd
Original Assignee
Guangzhou Baiguoyuan Information 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 Guangzhou Baiguoyuan Information Technology Co Ltd filed Critical Guangzhou Baiguoyuan Information Technology Co Ltd
Priority to CN202110292890.8A priority Critical patent/CN113037762B/zh
Publication of CN113037762A publication Critical patent/CN113037762A/zh
Application granted granted Critical
Publication of CN113037762B publication Critical patent/CN113037762B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明实施例公开了通信方法、装置、设备及存储介质。其中,应用于客户端的方法包括:根据待建立连接的多个协议的地址信息向服务端发送所述多个协议对应的连接建立请求,以与所述服务端建立对应的多个协议连接;通过所述多个协议连接向所述服务端发送携带有第一用户连接标识的用户连接通告帧,所述用户连接通告帧供所述服务端将对应的协议连接绑定至所述第一用户连接标识对应的第一多协议组,并在绑定成功后通过对应的协议连接向所述客户端发送服务反馈通告帧;接收所述服务端发送的服务反馈通告帧,以完成多协议组的连接建立。本发明实施例提供的技术方案,能够更好地适应动态变化的网络环境,改善通信效果。

Description

通信方法、装置、设备及存储介质
技术领域
本发明实施例涉及通信技术领域,尤其涉及通信方法、装置、设备及存储介质。
背景技术
互联网络的复杂度近年来有爆炸式的增长,对于数据传输中的丢包检测、拥塞控制以及重传恢复等过程,均衍生出多种方法来对网络的动态变化进行适配,以提升数据传输效率,同时,也产生了多种传输协议以更好的适配复杂网络场景。
然而,不同的传输协议所适合的应用场景有所不同,现有的各种传输协议对于动态变化的网络环境均适应性较弱。
发明内容
本发明实施例提供了通信方法、装置、设备及存储介质,可以优化现有的通信方案。
第一方面,本发明实施例提供了一种通信方法,应用于客户端,所述方法包括:
根据待建立连接的多个协议的地址信息向服务端发送所述多个协议对应的连接建立请求,以与所述服务端建立对应的多个协议连接;
通过所述多个协议连接向所述服务端发送携带有第一用户连接标识的用户连接通告帧,所述用户连接通告帧供所述服务端将对应的协议连接绑定至所述第一用户连接标识对应的第一多协议组,并在绑定成功后通过对应的协议连接向所述客户端发送服务反馈通告帧;
接收所述服务端发送的服务反馈通告帧,以完成多协议组的连接建立。
第二方面,本发明实施例提供了一种通信方法,应用于服务端,所述方法包括:
接收客户端发送的多个协议的连接建立请求,并与所述客户端建立对应的多个协议连接,其中,所述客户端根据待建立连接的多个协议的地址信息向服务端发送所述连接建立请求;
接收所述客户端发送的用户连接通告帧,其中,所述客户端通过所述多个协议连接发送携带有第一用户连接标识的用户连接通告帧;
获取所述用户连接通告帧中的第一用户连接标识,并将对应的协议连接绑定至所述第一用户连接标识对应的第一多协议组;
在绑定成功后通过对应的协议连接向所述客户端发送服务反馈通告帧,以完成多协议组的连接建立。
第三方面,本发明实施例提供了一种通信装置,配置于客户端,该装置包括:
连接请求发送模块,用于根据待建立连接的多个协议的地址信息向服务端发送所述多个协议对应的连接建立请求,以与所述服务端建立对应的多个协议连接;
用户连接通告帧发送模块,用于通过所述多个协议连接向所述服务端发送携带有第一用户连接标识的用户连接通告帧,所述用户连接通告帧供所述服务端将对应的协议连接绑定至所述第一用户连接标识对应的第一多协议组,并在绑定成功后通过对应的协议连接向所述客户端发送服务反馈通告帧;
服务反馈通告帧接收模块,用于接收所述服务端发送的服务反馈通告帧,以完成多协议组的连接建立。
第四方面,本发明实施例提供了一种通信装置,配置于服务端,所述装置包括:
连接请求接收模块,用于接收客户端发送的多个协议的连接建立请求,并与所述客户端建立对应的多个协议连接,其中,所述客户端根据待建立连接的多个协议的地址信息向服务端发送所述连接建立请求;
用户连接通告帧接收模块,用于接收所述客户端发送的用户连接通告帧,其中,所述客户端通过所述多个协议连接发送携带有第一用户连接标识的用户连接通告帧;
协议连接绑定模块,用于获取所述用户连接通告帧中的第一用户连接标识,并将对应的协议连接绑定至所述第一用户连接标识对应的第一多协议组;
服务反馈通告帧发送模块,用于在绑定成功后通过对应的协议连接向所述客户端发送服务反馈通告帧,以完成多协议组的连接建立。
第五方面,本发明实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本发明实施例提供的通信方法。
第六方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例提供的通信方法。
本发明实施例中提供的通信方案,客户端根据待建立连接的多个协议的地址信息向服务端发送该多个协议对应的连接建立请求,以与服务端建立对应的多个协议连接,通过多个协议连接向服务端发送携带有第一用户连接标识的用户连接通告帧,服务端根据第一用户连接标识将对应的协议连接绑定至第一用户连接标识对应的第一多协议组,并在绑定成功后向客户端发送服务反馈通告帧,客户端接收服务端发送的服务反馈通告帧,完成多协议组的连接建立。通过采用上述技术方案,通过用户连接通告帧中的用户连接标识可以建立所建立的各协议连接之间的联系,由服务端将相同用户连接标识对应的协议连接绑定为一个多协议组,可以使得服务端和客户端能够基于多协议组中的多个协议连接进行数据传输,相比于单个传输协议对应的协议连接来说,能够更好地适应动态变化的网络环境,改善通信效果。
附图说明
图1为本发明实施例提供的一种通信方法所适用的应用场景的场景架构图;
图2为本发明实施例提供的一种通信方法的流程示意图;
图3为本发明实施例提供的又一种通信方法的流程示意图;
图4为本发明实施例提供的一种帧结构示意图;
图5为本发明实施例提供的另一种通信方法的流程示意图;
图6为本发明实施例提供的一种信令交互示意图;
图7为本发明实施例提供的一种通信装置的结构框图;
图8为本发明实施例提供的另一种通信装置的结构框图;
图9为本发明实施例提供的一种计算机设备的结构框图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。此外,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
图1为本发明实施例提供的一种通信方法所适用的应用场景的场景架构图。具体的,参考图1,该应用场景中可以包括客户端10和服务端20,客户端10也可理解为用户侧,服务端20也可理解为服务侧。客户端10和服务端20之间可以建立包含多个协议连接的多协议组连接,进而可基于多协议组连接进行数据传输。
图2为本发明实施例提供的一种通信方法的流程示意图,该方法可以由通信装置执行,其中该装置可由软件和/或硬件实现,一般可集成在作为客户端的计算机设备中。其中,该计算机设备可以包括如手机、智能穿戴设备、平板电脑、个人数字助理以及笔记本电脑等移动设备,还可以包括台式计算机等其他类型的设备,具体不做限定。如图2所示,该方法包括:
步骤201、根据待建立连接的多个协议的地址信息向服务端发送所述多个协议对应的连接建立请求,以与所述服务端建立对应的多个协议连接。
示例性的,所述多个协议可包括任意的通信协议,例如可包括可靠传输协议。可靠传输协议是在互联网络中,将数据在两端之间进行传输的控制协议,需要保证数据传输的完成可达及有序性。其中,可靠传输协议可包括传输控制协议(Transmission ControlProtocol,TCP)、基于用户数据包协议(User Datagram Protocol,UDP)的低时延的互联网传输层协议(Quick UDP Internet Connection,QUIC)、KCP以及基于UDP的数据传输协议(UDP-based Data Transfer Protocol,UDT)等,这里的KCP是一种快速可靠的自动重传请求(Automatic Repeat-reQuest,ARQ)网络传输协议(A Fast and Reliable ARQProtocol)。
示例性的,本发明实施例可在传输层和应用层之间增加多协议混合传输栈,利用该多协议混合传输栈实现本发明实施例所提供的通信方案。上述待建立连接的多个协议连接可以由应用层决定,也即可由客户端应用程序来确定,多协议混合传输栈从应用层获取待建立连接的多个协议的地址信息。一般的,这里的多个协议是由应用层的同一个应用程序确定的,换句话说,不同应用程序所确定的多个协议可以是相同的,也可以是不同的,可以全部不同,也可以部分不同,例如,应用程序a所确定的多个协议为A协议、B协议和C协议,应用程序b所确定的多个协议可以为A协议、B协议和C协议,可以为C协议、D协议和E协议,也可以是A协议、B协议和D协议等。其中,地址信息例如可包括网际协议(Internet Protocol,IP)地址以及端口信息(如端口号)等。客户端在获取到当前需要进行连接的多个协议的地址信息后,根据地址信息向服务端发送该多个协议中的各个协议分别对应的连接建立请求。需要说明的是,本发明实施例对各个协议分别对应的连接建立请求的发送时序以及发送时机等不做具体限定,可以顺序发送,也可同时发送,也可分批发送等。服务端在接收到客户端发送的连接建立请求后,返回应答信息,从而建立相应的协议连接。各个协议的协议连接建立过程、以及所涉及的连接建立请求和应答信息中的具体内容和格式等,均可遵照相应协议的规定,如TCP协议需要经过三次握手过程等,此处不做详细说明。
一般的,不考虑协议连接建立失败的特殊情况时,客户端所发送的连接建立请求的数量与所建立的协议连接的数量相同。也即,所建立的多个协议连接的数量小于或等于待建立连接的多个协议的数量。
需要说明的是,多协议混合传输栈在从应用层获取到待建立连接的多个协议的地址信息后,可以先确定该多个协议中是否存在已经建立协议连接的协议,若均已建立协议连接,则可直接执行步骤202,若部分已建立连接,则可根据未建立连接的协议的地址信息向服务端发送相应的连接建立请求,若均未建立连接,则根据该多个协议的地址信息向服务端发送相应的连接建立请求。
步骤202、通过所述多个协议连接向所述服务端发送携带有第一用户连接标识的用户连接通告帧,所述用户连接通告帧供所述服务端将对应的协议连接绑定至所述第一用户连接标识对应的第一多协议组,并在绑定成功后通过对应的协议连接向所述客户端发送服务反馈通告帧。
示例性的,由于多协议混合传输栈是本发明实施例新增的,需要自行设计客户端和服务端通过多协议混合传输栈进行交互时所传输的帧的帧结构,该帧结构中可包括帧头和帧负载,帧头中可包括帧长度、帧类型、用户连接标识以及帧序号标识等,还可包括标志位以及流标识等。其中,帧类型可包括数据帧、用户连接通告帧以及服务反馈通告帧,还可以包括其他类型,如负反馈帧等。数据帧可理解为用于承载传输数据的帧;用户连接通告帧的帧头中可包括用户连接标识,用户连接通告帧可理解为协议建连后客户端发送的帧,用于通告当前协议连接所属的多协议组,其中,用户连接标识与多协议组存在一对一的对应关系;服务反馈通告帧可理解为服务端接收到用户连接通告帧并将协议连接绑定至所属的多协议组后,向用户侧发送的确认帧;负反馈帧可理解为接收方在接收超时后向发送方发送的用于反馈接收超时情况的帧。
本步骤中,客户端通过前述所建立的多个协议连接向服务端发送携带有第一用户连接标识的用户连接通告帧,这里的第一用户连接标识用于表明通过多个协议连接向服务端发送的用户连接通告帧中携带的用户连接标识相同,第一用户连接标识的具体内容不做限定。第一用户连接标识可以由客户端确定,也可以由服务端确定,为了便于与其他客户端进行区分,一般可根据客户端对应的用户信息确定,如用户身份标识(Identification,ID)或当前应用程序的用户登录信息等,当然,也可以进行顺序编号,保证用户连接标识的唯一性即可。
一般的,通过所述多个协议连接中的每个协议连接分别向服务端发送用户连接通告帧,也即,每个协议连接均对应发送一个用户连接通告帧。可选的,所述多个协议连接中包括主协议连接和次协议连接,可将所述主协议连接对应的用户连接通告帧记为主协议用户连接通告帧,将所述从协议连接对应的用户连接通告帧记为从协议用户连接通告帧。主协议用户连接通告帧和从协议用户连接通告帧中的内容可以相同,也可以不同,具体根据实际需求设定。其中,主协议的选择可通过动态协商或预先约定等,具体不做限定。
需要说明的是,各个协议连接分别对应的用户连接通告帧的发送时序不做限定,可以顺序发送,也可同时发送,也可分批发送等,对每个协议连接对应的用户连接通告帧的发送时机也不做限定,可以在确认协议连接建立成功后立即发送,也可经过一定时长后再发送。一般的,当存在主协议连接时,主协议用户连接通告帧可优先发送。
示例性的,服务端在接收到客户端发送的用户连接通告帧后,可以获取用户连接通告帧中的第一用户连接标识,并查找服务端记录的用户连接标识和多协议组之间的对应关系,若当前不存在第一用户连接标识对应的多协议组,可以创建对应的第一多协议组,并将当前接收到的用户连接通告帧对应的协议连接加入第一多协议组,若已经存在第一用户连接标识对应的第一多协议组,则可将当前接收到的用户连接通告帧对应的协议连接加入该第一多协议组。
示例性的,服务端每成功绑定一个协议连接,即可通过该当前绑定成功的协议连接向客户端返回对应的服务反馈通告帧。例如,客户端通过协议连接A发送一个用户连接通告帧,服务端在将协议连接A绑定至相应的多协议组后,通过协议连接A向客户端返回对应的服务反馈通告帧。
步骤203、接收所述服务端发送的服务反馈通告帧,以完成多协议组的连接建立。
示例性的,客户端在接收到服务端通过某个协议连接发送的服务反馈通告帧后,可确认该协议连接已被成功绑定至多协议组中。一般的,在服务端已发送一个服务反馈通告帧的情况下,即可通过该绑定成功的协议连接进行数据传输以及对客户端的请求进行响应,而无需等待上述多个协议连接中的每个协议连接均绑定成功,可提高数据传输效率。在客户端接收到至少两个的服务反馈通告帧时,说明已经有至少两个协议连接被成功绑定至相应的多协议组,此时,客户端和服务端在进行数据帧发送时,可以根据实际的发送策略选择其中的单个协议连接进行传输或选择其中的两个或两个以上的协议连接进行传输,当选择至少两个协议连接进行传输时,可以交替传输(例如帧序号为单数的由一个协议连接传输,帧序号为双数的由另一个协议连接传输等),也可以同时冗余传输(也即不同的协议连接传输的数据帧相同)。对于网络上下行传输指标差异较大的场景,单一传输协议受到传输控制方法的限制,双边传输效率有限,本发明实施例中在上行(客户端向服务端发送)和下行(服务端向客户端发送)的传输时可以选择不同的协议连接,使得数据传输更加灵活和高效。
本发明实施例中提供的通信方法,客户端根据待建立连接的多个协议的地址信息向服务端发送该多个协议对应的连接建立请求,以与服务端建立对应的多个协议连接,通过多个协议连接向服务端发送携带有第一用户连接标识的用户连接通告帧,服务端根据第一用户连接标识将对应的协议连接绑定至第一用户连接标识对应的第一多协议组,并在绑定成功后向客户端发送服务反馈通告帧,客户端接收服务端发送的服务反馈通告帧,完成多协议组的连接建立。通过采用上述技术方案,可以基于现有的多种传输协议,提供多协议混合的传输方法,将传输过程与传输控制协议解耦,通过用户连接通告帧中的用户连接标识可以建立所建立的各协议连接之间的联系,由服务端将相同用户连接标识对应的协议连接绑定为一个多协议组,可以使得服务端和客户端能够基于多协议组中的多个协议连接进行数据传输,相比于单个传输协议对应的协议连接来说,能够更好地适应动态变化的复杂的网络环境,改善通信效果,提升网络数据传输性能及可靠性。
在一些实施例中,所述多个协议连接中包括主协议连接和次协议连接,所述通过所述多个协议连接分别向所述服务端发送携带有第一用户连接标识的用户连接通告帧,包括:确定当前的用户连接标识为第一用户连接标识;通过所述主协议连接和所述次协议连接依次分别向所述服务端发送携带有所述第一用户连接标识的用户连接通告帧,其中,将所述主协议连接对应的用户连接通告帧记为主协议用户连接通告帧,将所述从协议连接对应的用户连接通告帧记为从协议用户连接通告帧。这样设置的好处在于,由客户端来决定用户连接标识,无需等待服务端返回服务端确定的用户连接标识,使得次协议用户连接通告帧能够更及时地发送,提高多协议组建立成功的效率。
在一些实施例中,所述多个协议连接中包括主协议连接和次协议连接,所述通过所述多个协议连接分别向所述服务端发送携带有相同的用户连接标识的用户连接通告帧,包括:通过所述主协议连接向所述服务端发送用户连接标识待定的主协议用户连接通告帧,所述主协议用户连接通告帧供所述服务端确定第一用户连接标识并将所述主协议连接绑定至所述第一用户连接标识对应的第一多协议组;接收所述服务端返回的所述第一用户连接标识;通过所述次协议连接向所述服务端发送携带有所述第一用户连接标识的次协议用户连接通告帧,所述次协议用户连接通告帧供所述服务端将所述次协议连接绑定至所述第一多协议组。这样设置的好处在于,由服务端来统一确定用户连接标识,避免不同客户端使用同一用户连接标识的情况发生,保证通信的安全和准确性。可选的,在通过主协议连接向服务端发送用户连接标识待定的主协议用户连接通告帧时,主协议用户连接通告帧中的用户连接标识可以为空或为0,使得服务端得知需要服务端来决定该主协议连接对应的用户连接标识。
在一些实施例中,该方法还可包括:通过所述主协议连接与所述服务端进行密钥协商,得到第一密钥;利用所述第一密钥对后续发送的帧进行加密,和/或,利用所述第一密钥对后续接收的帧进行解密。这样设置的好处在于,可以进一步增强通信安全。其中,密钥协商的具体方式不做限定,例如可以是对称密钥协商或非对称密钥协商等等。后续发送的帧可包括通过主协议连接发送的数据帧,也可包括通过从协议连接发送的从协议用户连接通告帧,还可包括通过从协议连接发送的数据帧,在对帧进行加密时,可以选择帧结构中需要加密的字段,一般可以包括帧负载。
在一些实施例中,所述密钥协商可包括非对称密钥协商。非对称密钥协商可理解为基于非对称加密算法的密钥的协商或交换。非对称加密算法需要两个密钥,公开密钥(public key,简称公钥)和私有密钥(private key,简称私钥)。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。非对称加密体系不要求通信双方事先传递密钥或有任何约定就能完成保密通信,并且密钥管理方便,可实现防止假冒和抵赖,因此,更适合网络通信中的保密通信要求。本发明实施例中,所述主协议用户连接通告帧中包括所述客户端的第一私钥对应的第一公钥,所述主协议用户连接通告帧对应的服务反馈通告帧中包括所述服务端的第二私钥对应的第二公钥,所述第二公钥供所述客户端根据所述第一私钥和所述第二公钥计算所述第一密钥,所述第一公钥供所述服务端根据所述第二私钥和所述第一公钥计算第二密钥。也即,客户端和服务端之间可以利用主协议用户连接通告帧和对应的服务反馈通告帧来完成非对称密钥协商。这样设置的好处在于,可以将包含有第一公钥的用户连接通告帧视为主协议用户连接通告帧,则对应的协议连接为主协议连接,从而优化主协议选择的过程。其中,一般情况下,客户端计算得到的第一密钥和服务端计算得到的第二密钥相同。本发明实施例中所采用的非对称加密算法不做具体限定,例如可以是椭圆曲线迪菲-赫尔曼秘钥交换(Elliptic Curve Diffie–Hellman key Exchange,ECDH)等。
在一些实施例中,所述次协议用户连接通告帧的帧负载中包括采用所述第一密钥对所述第一用户连接标识进行加密后得到的第一加密用户连接标识;所述次协议用户连接通告帧供所述服务端采用所述第二密钥对所述第一加密用户连接标识进行解密,当解密得到的用户连接标识与所述次协议用户连接通告帧携带的第一用户连接标识一致时,将所述次协议连接绑定至所述第一多协议组。这样设置的好处在于,对用户连接标识进行加解密验证的操作,可以防止不同用户(也即不同客户端)的协议连接使用相同的用户连接标识进行绑定,例如,若其他恶意用户通过非正常途径获取到当前用户的第一用户连接标识时,冒用该第一用户连接标识来发送次协议用户连接通告帧,也即恶意用户发送携带有第一用户连接标识的次协议用户连接通告帧至服务端,由于要求帧负载中包含第一用户连接标识对应的第一加密用户连接标识,而恶意用户并不知道第一密钥是什么,因此,所生成的第一加密用户连接标识无法被服务端成功解密,或者即使解密成功后,得出的用户连接标识也不会与第一用户连接标识一致,从而可避免将恶意用户的协议连接绑定至第一多协议组,保证通信安全。
在一些实施例中,在所述接收所述服务端发送的服务反馈通告帧,以完成多协议组的连接建立之后,还包括:利用第一协议连接向所述服务端发送第一数据帧,其中,所述第一协议连接包含于所述第一多协议组中;在第一预设帧缓存队列中存储所述第一数据帧以及对应的第一已发送标识,其中,所述第一已发送标识中包括所述第一协议连接的身份信息;在满足第一预设重发条件时,从所述第一预设帧缓存队列中获取所述第一数据帧,并利用第二协议连接向所述服务端重发所述第一数据帧,其中,所述第二协议连接包含于所述第一多协议组中,所述第一已发送标识中不包括所述第二协议连接的身份信息。这样设置的好处在于,可以保证不会因为协议异常断开而导致数据丢失。
可选的,所述第一协议连接的数量为至少两个,包括数据传输阶段的主协议连接和至少一个次协议连接。需要说明的是,这里的主协议连接为数据传输阶段主要采用的协议连接,也即,主要采用主协议连接进行数据传输,次协议连接相对于主协议连接而言,可以用于数据的冗余传输。数据传输阶段中的主协议连接可以与多协议组的连接建立过程中采用的主协议连接相同,也可以不同,一般可以在多协议组连接建立完成后进行选定。例如,多协议组的连接建立过程中采用的主协议连接可以是TCP连接,多协议组的连接建立完成后,在进行数据传输时,可以将QUIC切换为主协议连接。可选的,在完成多协议组的连接建立之后,还包括:重新确定主协议连接。
示例性的,数据传输以帧为单位,每帧承载的数据量可通过协商或在具体实现时依据当前传输条件确定。数据在多协议混合传输栈中进行传输前,可以先打包为数据帧,数据帧中的帧序号可按照发送顺序单调递增。多协议混合传输栈可以根据当前的传输策略将需要传输的数据帧分配至相应的协议连接进行传输,假设当前需要传输的第一数据帧需要分配至第一协议连接,则可利用第一协议连接向服务端发送第一数据帧。对于第一多协议组中的各协议连接,一般都会有自己的发送缓存,多协议混合传输栈可以预先获知或预先配置各协议连接对应的发送缓存的大小,并维护多协议混合传输栈中的第一预设帧缓存队列,第一预设帧缓存队列的大小可以大于或等于各协议连接对应的最大的发送缓存的大小。在将第一数据帧发送完毕后,可以在第一预设帧缓存队列中存储第一数据帧以及对应的第一已发送标识,其中,第一已发送标识用于表示该第一数据帧已经由第一协议发送过。第一预设重发条件可以根据实际情况设置,例如可以是第一协议连接发生断开、或者发送速率过低甚至为0等异常情况,也可以是长时间未接收到服务端返回的确认接收信息等,如服务端可以在接收超时后向客户端发送负反馈帧,当客户端收到负反馈帧时,认为满足第一预设重发条件。
示例性的,在满足第一预设重发条件时,可认为需要重新发送第一数据帧,此时可以从第一预设帧缓存队列中获取第一数据帧,并分配给第一协议连接之外的第二协议连接进行传输,且第一已发送标识中不包括第二协议连接的身份信息,也就是说该第二协议连接未发送过第一数据帧。此外,在满足第一预设重发条件时,可能不仅需要重新发送第一数据帧,在第一数据帧之前的部分数据帧也可能并未被成功接收,此时,可以将第一数据帧之前的预设数量的数据帧也通过第二协议连接进行重发。其中,预设数量可根据实际情况设置,如可参考第一预设帧缓存队列的容量设置,例如可以将第一预设帧缓存队列中的数据帧均全部重新发送一次,即预设数量为第一预设帧缓存队列中存在的数据帧的数量。可选的,在接收到数据帧发送指示时,将第一预设帧缓存队列中最先存入的数据帧删除。
示例性的,假设第一预设帧缓存队列可容纳10帧数据,通过协议连接A已发送序号为1~10的数据帧,则1~10帧均需要放入第一预设帧缓存队列中,若协议连接A有信号告知可继续发送数据,且此时第11帧可完全放入协议连接A(也即多协议混合传输栈可以将第11帧分配至由连接A传输),则表明第1帧已完全发送完毕,可从第一预设帧缓存队列中移除;若发送第11帧后连接A失败断开,由于仅可感知第1帧发送完毕,则可从预发送队列中读取第2~11帧,并通过其他连接进行重传发送。
示例性的,当客户端和服务端之间存在多个传输流(例如视频通话场景中,图像为一个传输流,音频为一个传输流)时,不同的传输流中的数据帧可以通过第一多协议组中不同的协议连接进行传输,在传输过程中一个传输流所采用的协议连接也可以进行变更或与其他传输流进行互换等。另外,每个传输流中每个帧包含有帧序号标识,相同传输流的相同帧序号标识的帧也可以通过不同协议连接进行传输。
在一些实施例中,该方法还可包括:接收所述服务端发送的第二数据帧;获取所述第二数据帧中包括的第一帧序号标识,其中,所述第一帧序号标识用于表示所述第二数据帧在所属的第一数据流中的序号;当已接收的第三数据帧中所包含的所述第一数据流的第二帧序号标识与所述第一帧序号标识一致时,确定所述第二数据帧为冗余传输的数据帧。这样设置的好处在于,可以准确地识别出冗余传输的数据帧,进而进行相应的处理,例如将冗余传输的数据帧丢弃等。其中,第二数据帧一般通过与第一协议连接不同的其他协议连接接收。
图3为本发明实施例提供的又一种通信方法的流程示意图,该方法可以由通信装置执行,其中该装置可由软件和/或硬件实现,一般可集成在作为服务端的计算机设备中。其中,该计算机设备可以包括如服务器或服务器集群等设备,具体不做限定。如图3所示,该方法包括:
步骤301、接收客户端发送的多个协议的连接建立请求,并与所述客户端建立对应的多个协议连接,其中,所述客户端根据待建立连接的多个协议的地址信息向服务端发送所述连接建立请求。
步骤302、接收所述客户端发送的用户连接通告帧,其中,所述客户端通过所述多个协议连接发送携带有第一用户连接标识的用户连接通告帧。
步骤303、获取所述用户连接通告帧中的第一用户连接标识,并将对应的协议连接绑定至所述第一用户连接标识对应的第一多协议组。
步骤304、在绑定成功后通过对应的协议连接向所述客户端发送服务反馈通告帧,以完成多协议组的连接建立。
本发明实施例中提供的通信方法,服务端接收客户端发送的多个协议的连接建立请求,并与客户端建立对应的多个协议连接,随后接收客户端通过多个协议连接发送携带有第一用户连接标识的用户连接通告帧,获取用户连接通告帧中的第一用户连接标识,并将对应的协议连接绑定至第一多协议组,在绑定成功后通过对应的协议连接向客户端发送服务反馈通告帧,以完成多协议组的连接建立。通过采用上述技术方案,通过用户连接通告帧中的用户连接标识可以建立所建立的各协议连接之间的联系,由服务端将相同用户连接标识对应的协议连接绑定为一个多协议组,可以使得服务端和客户端能够基于多协议组中的多个协议连接进行数据传输,相比于单个传输协议对应的协议连接来说,能够更好地适应动态变化的网络环境,改善通信效果。
在一些实施例中,所述多个协议连接中包括主协议连接和次协议连接,将所述主协议连接对应的用户连接通告帧记为主协议用户连接通告帧,将所述从协议连接对应的用户连接通告帧记为从协议用户连接通告帧。
在一些实施例中,该方法还包括:通过所述主协议连接与所述客户端进行密钥协商,得到第二密钥;利用所述第二密钥对后续发送的帧进行加密,和/或,利用所述第二密钥对后续接收的帧进行解密。这样设置的好处在于,可以进一步增强通信安全。后续发送的帧可包括通过主协议连接发送的数据帧,还可包括通过从协议连接发送的数据帧,在对帧进行加密时,可以选择帧结构中需要加密的字段,一般可以包括帧负载。
在一些实施例中,所述密钥协商包括非对称密钥协商;所述主协议用户连接通告帧中包括所述客户端的第一私钥对应的第一公钥,所述主协议用户连接通告帧对应的服务反馈通告帧中包括所述服务端的第二私钥对应的第二公钥,所述第二公钥供所述客户端根据所述第一私钥和所述第二公钥计算第一密钥,所述第一公钥供所述服务端根据所述第二私钥和所述第一公钥计算所述第二密钥。
在一些实施例中,所述次协议用户连接通告帧的帧负载中包括采用所述第一密钥所述第一用户连接标识进行加密后得到的第一加密用户连接标识。获取所述用户连接通告帧中的第一用户连接标识,并将对应的协议连接绑定至所述第一用户连接标识对应的第一多协议组,包括:获取所述次协议用户连接通告帧中的第一加密用户连接标识;采用所述第二密钥对所述第一加密用户连接标识进行解密,当解密得到的用户连接标识与所述次协议用户连接通告帧携带的第一用户连接标识一致时,将所述次协议连接绑定至所述第一多协议组。这样设置的好处在于,对用户连接标识进行加解密验证的操作,可以防止不同用户的协议连接使用相同的用户连接标识进行绑定,保证通信安全性。
在一些实施例中,在所述完成多协议组的连接建立之后,还包括:利用第三协议连接向所述客户端发送第三数据帧,其中,所述第三协议连接包含于所述第一多协议组中;在第二预设帧缓存队列中存储所述第三数据帧以及对应的第三已发送标识,其中,所述第三已发送标识中包括所述第三协议连接的身份信息;在满足第二预设重发条件时,从所述第二预设帧缓存队列中获取所述第三数据帧,并利用第四协议连接向所述客户端重发所述第三数据帧,其中,所述第四协议连接包含于所述第一多协议组中,所述第三已发送标识中不包括所述第四协议连接的身份信息。这样设置的好处在于,可以保证不会因为协议异常断开而导致数据丢失。服务端向客户端发送数据帧的过程与客户端向服务端发送数据帧的过程类似,可参考上文相关内容,此处不再赘述。服务端的多协议混合传输栈中维护的第二预设帧缓存队列与第一预设帧缓存队列不同,但实现原理相似。第二预设重发条件可以与第一预设重发条件相同,也可不同,可根据实际需求设置。
在一些实施例中,该方法还可包括:计算当前用于数据帧发送的协议连接集合中每个协议连接对应的发送速率,其中,所述协议连接集合中包括主协议连接和至少一个次协议连接;当所述协议连接集合中的第五协议连接对应的第一发送速率与第六协议连接对应的第二发送速率的差值大于预设速度阈值时,将所述第五协议连接切换为新的数据传输阶段的主协议连接,其中,所述第五协议连接为所述协议连接集合中的发送速率最大的次协议连接,所述第六协议连接为所述协议连接集合中的切换前的数据传输阶段的主协议连接。这样设置的好处在于,可以依据协议连接对应的发送速率灵活地进行数据传输阶段的主协议连接的切换,保证数据传输效率。当第一发送速率与第二发送速率的差值大于预设速度阈值时,可以立即将第五协议连接切换为新的数据传输阶段的主协议连接,也可等待预设时长,若经过预设时长后,第一发送速率与第二发送速率的差值仍大于预设速度阈值,则可将第五协议连接切换为新的数据传输阶段的主协议连接。其中,发送速率的计算方式可以根据实际情况设置,本发明实施例不做限定。
示例性的,假设当前用于数据帧发送的协议连接集合中包含A、B和C三种协议连接,且主要选择协议A(也即数据传输阶段的主协议连接为A)进行传输,可以适当在一定间隔时间内,通过B和C发送冗余数据,并通过B和C的排空速率计算出协议对应的发送速率,若B的发送速率更高,则可以切换主要通过B进行数据发送,即将B切换为数据传输阶段的主协议连接,之后再对A和C进行定期速率探测。
示例性的,将所述协议连接集合中的任一协议连接记为当前协议连接,所述当前协议连接的发送速率通过以下方式计算:记录当前协议连接对应的第一时刻和第二时刻,其中,所述第一时刻为当前协议连接无法发送更多数据帧的时刻,所述第二时刻为在所述第一时刻之后当前协议连接继续发送数据帧直到再次无法发送更多数据帧的时刻;确定在所述第一时刻和所述第二时刻之间发送的数据量;根据所述数据量与第一时间差的商,得到发送速率,其中,所述第一时间差为所述第二时刻与所述第一时刻的差。例如,发送侧将协议连接发满(可理解为至无法发送更多数据),记录发满时间t1,当协议连接通告可继续发送时,记录时间t2,并再次发送至满,记录发送数据量d,可计算出排空速率约为s=d/(t2-t1),根据排空速率计算相应的发送速率,例如,可直接将排空速率确定为发送速率。
在一些实施例中,该方法还可包括:若当前接收到的主协议用户连接通告帧中包含的第二用户连接标识已存在对应的第二多协议组,则向所述客户端返回拒绝信息。这样设置的好处在于,当存在两个主协议连接想要使用相同的用户连接标识时,服务端可以及时发现并拒绝,避免错误地将不同用户的次要协议连接,与其他用户的主协议连接进行聚合绑定。进一步的,若当前接收到的主协议用户连接通告帧中包含的第二用户连接标识已存在对应的第二多协议组,说明两个约定的主协议连接使用了相同的用户连接标识,可以断开所有采用该相同用户连接标识的协议连接,或者,可以停止通过所有采用该相同用户连接标识的协议连接进行数据传输,保证数据安全,尤其适用于无密钥交互的方案。
为了便于进一步理解本发明实施例的技术方案,下面提供一种帧结构进行示意性说明。图4为本发明实施例提供的一种帧结构示意图,如图所示,该帧结构包括长度或帧长(Length)、类型或帧类型(Type)、标志位(Flags)、用户连接标识(ConnectionID)、流标识(Stream Identifier)、帧序号标识(Frame Identifier)以及帧负载(Frame Payload),还可包括其他预留位,如可记为reserve字段。
示例性的,用户连接标识用于表明当前多个协议连接,其所属的混合协议传输连接,将多个协议连接进行聚合。流标识用于表明当前数据传输所属的数据流,一条混合协议传输连接(也即一个多协议组的连接)可并发承载多个数据流(也即传输流),用户连接通告帧及服务反馈通告帧可以使用流标识为0,数据帧及负反馈帧(NACK帧)可以使用其所属数据流对应的流标识(可以大于或等于2)。帧序号标识用于表明当前数据帧在数据流中的序号,数据流中的帧序号按照发送顺序单调递增。
帧类型可包括数据帧、用户连接通告帧、服务反馈通告帧和负反馈帧。
示例性的,标志位可以有至少5种。分别为:FIN(结束标志),标志数据帧是否为数据流的结束;ENC(加密标志),标志当前帧是否为加密帧,加密帧可以对标志位之后(也即不包括长度、类型和标志位)的部分进行加密,并在标志位中标记ENC为加密帧;RST(终止标志),标志当前数据流已经被终止,无法再被继续接收;EXCHANGE(交换标志),用于用户连接通告帧及服务反馈通告帧,标示是否在通告帧中包含密钥交换信息;VERIFY(验证标志),在有密钥交换的混合协议传输栈连接中,用于标志次协议连接发送的用户连接通告帧是否包含验证用户连接标识信息,也即是否包含加密用户连接标识。
示例性的,数据帧的帧负载可以包含需要发送的数据,带有FIN、RST标志的数据帧可以不包含数据;带有EXCHANGE标志的用户连接通告帧及服务反馈通告帧需要包含密钥交换所需的公钥信息;带有VERIFY标志的用户连接通告帧需要包含验证用户连接标识信息。
其中,用户连接通告帧(可记为CH),可通过在标记位标志EXCHANGE表明通过该协议连接进行密钥交换,并同时申明此连接为主协议连接,若主协议连接完成了密钥交换,则次协议连接的CH帧需携带VERIFY标记,并在帧负载中携带待服务端验证的加密的用户连接标识。服务反馈通告帧(可记为SH),可通过标记EXCHANGE使用用户侧申明的主协议连接进行密钥交换,在需要服务侧生成用户连接标识时,将生成的用户连接标识放在帧负载中反馈给用户侧。
图5为本发明实施例提供的另一种通信方法的流程示意图,图6为本发明实施例提供的一种信令交互示意图,可结合图6进行理解。如图5所示,该方法包括:
步骤501、客户端根据待建立连接的多个协议的地址信息向服务端发送多个协议对应的连接建立请求。
步骤502、服务端对连接建立请求进行响应,与客户端端建立对应的多个协议连接。
步骤503、客户端通过主协议连接向服务端发送携带第一用户连接标识和第一公钥的主协议用户连接通告帧。
步骤504、服务端从主协议用户连接通告帧中获取第一用户连接标识,并建立第一多协议组,将主协议连接绑定至第一多协议组,通过主协议连接发送包含第二公钥的服务反馈通告帧。
示例性的,客户端在多协议组连接建立过程中,可以选择一个已建连的协议连接(称为连接A),发送带有EXCHANGE标识的CH帧,并在其中包含用户侧私钥a对应的公钥A;服务端接收到该CH帧后,查询是否已有在使用相同用户连接标识的多协议混合连接(也即是否存在使用相同用户连接标识的多协议组),若有则进行拒绝,若无则发送带有EXCHANGE标识的SH帧,并在其中包含服务端私钥b对应的公钥B,同时服务端可以使用公钥A和私钥b计算出密钥Q,并记录该用户连接标识使用密钥Q;客户端接收到前述SH帧后,可依据私钥a及公钥B同样计算出密钥Q,后续客户端及服务端可使用密钥Q对后续帧加密,并配置标记ENC表明为加密帧。
若有其他主协议连接发送的用户连接通告帧中的用户连接标识与当前已使用的某一个用户连接标识相同,则可以对该主协议连接直接进行拒绝,拒绝的方式可以是发送标志位中带有RST标志的服务反馈通告帧,并可在较短的一定时间(例如5到10秒)后断开连接。
步骤505、客户端根据服务反馈通告帧中的第二公钥和第一私钥计算第一密钥,采用第一密钥对第一用户连接标识进行加密后得到第一加密用户连接标识,通过次协议连接向服务端发送携带第一用户连接标识和第一加密用户连接标识的次协议用户连接通告帧。
步骤506、服务端采用第一公钥和第二私钥计算第二密钥,采用第二密钥对第一加密用户连接标识进行解密,当解密得到的用户连接标识与次协议用户连接通告帧携带的第一用户连接标识一致时,将次协议连接绑定至第一多协议组,并通过次协议连接发送服务反馈通告帧。
客户端通过主协议连接接收到带EXCHANGE标识的服务反馈通告帧后,可从次协议发送带VERIFY标记的次协议用户连接通告帧(也可称为非加密用户连接通告帧);在带VERIFY标记的次协议用户连接通告帧的帧负载中,携带使用密钥Q进行加密的verifyConnectionID(加密用户身份标识)信息;服务端接收到带VERIFY标记的次协议用户连接通告帧后,通过其中的ConnectionID信息查询其对应的主协议连接,并使用相应主协议连接交换的密钥Q对帧负载中加密的用户身份标识进行解密,若解密出用户身份标识一致,则表明可以与主协议连接进行聚合绑定,绑定后可以在传输过程中进行混合传输或冗余传输。
若有其他次要协议连接发送的带VERIFY标记的次协议用户连接通告帧中,用户身份标识与当前使用中的某一个相同,则使用该用户身份标识对应的密钥对非加密用户连接通告帧帧负载中加密的用户身份标识进行解密,由于每个用户通过非对称加密方法获得的密钥不同,因此不同用户即使发送相同的用户身份标识,也会在服务端解密失败,服务端发现使用用户身份标识对应的密钥Q解密失败后,则可对该次要协议连接进行拒绝。
需要说明的是,其他次协议连接的绑定过程与步骤505和步骤506类型,此处不再赘述,仅以上述一个次协议连接为例进行说明,次协议连接的数量具体不做限定。
步骤507、客户端利用第一协议连接向服务端发送第一数据帧,在第一预设帧缓存队列中存储第一数据帧以及对应的第一已发送标识,在满足第一预设重发条件时,从第一预设帧缓存队列中获取第一数据帧,并利用第二协议连接向所述服务端重发第一数据帧。
其中,客户端可以采用第一密钥对第一数据帧中的帧负载进行加密,服务端在接收到第一数据帧后,可以采用第二密钥对第一数据帧中的帧负载进行解密,进而得到相应的数据内容。本发明实施例对于数据帧中具体的数据内容不做限定,可以根据实际的应用场景决定,例如,对于直播场景或视频通话场景等,数据内容可包括图像数据和音频数据等,可以将不同类型的数据采用不同的传输流进行传输。不同的传输流可以选择不同的协议连接进行传输。
步骤508、服务端利用第三协议连接向客户端发送第三数据帧,在第二预设帧缓存队列中存储第三数据帧以及对应的第三已发送标识,在满足第二预设重发条件时,从第二预设帧缓存队列中获取第三数据帧,并利用第四协议连接向客户端重发所述第三数据帧。
其中,第一协议连接和第三协议连接可以理解为上行传输和下行传输分别采用的主协议了解,第一协议连接和第三协议连接可以不同,也即,上行和下行可以采用不同的协议连接进行数据传输。
其中,服务端可以采用第二密钥对第三数据帧中的帧负载进行加密,客户端在接收到第三数据帧后,可以采用第一密钥对第三数据帧中的帧负载进行解密,进而得到相应的数据内容。
步骤509、服务端计算当前用于数据帧发送的协议连接集合中每个协议连接对应的发送速率,当满足主协议连接切换要求时,进行主协议连接的切换。
本发明实施例提供的通信方法,通过用户连接标识对多个协议连接进行绑定,可实现自适应的混合多协议可靠传输,可以依据网络环境状况,选择最优的一种或多种可靠传输协议,并实现多种协议承载上的混合传输,可以突破使用单一传输协议的局限性,具有更强的网络自适应能力,且通过在应用层和传输层之间增加多协议混合协议栈来实现上述方法,将传输过程与传输控制协议解耦,对传输层中的各协议的传输不会产生影响,保证数据传输的稳定性,另外还提供的加解密机制,保证不同用户对应的协议连接不会被绑定至同一多协议组中,保证通信安全,在传输数据时也可采用加密机制,保证数据安全。
图7为本发明实施例提供的一种通信装置的结构框图,该装置可由软件和/或硬件实现,一般可集成在作为客户端的计算机设备中,可通过执行通信方法来进行通信。如图7所示,该装置包括:
连接请求发送模块701,用于根据待建立连接的多个协议的地址信息向服务端发送所述多个协议对应的连接建立请求,以与所述服务端建立对应的多个协议连接;
用户连接通告帧发送模块702,用于通过所述多个协议连接向所述服务端发送携带有第一用户连接标识的用户连接通告帧,所述用户连接通告帧供所述服务端将对应的协议连接绑定至所述第一用户连接标识对应的第一多协议组,并在绑定成功后通过对应的协议连接向所述客户端发送服务反馈通告帧;
服务反馈通告帧接收模块703,用于接收所述服务端发送的服务反馈通告帧,以完成多协议组的连接建立。
本发明实施例中提供的通信装置,客户端根据待建立连接的多个协议的地址信息向服务端发送该多个协议对应的连接建立请求,以与服务端建立对应的多个协议连接,通过多个协议连接向服务端发送携带有第一用户连接标识的用户连接通告帧,服务端根据第一用户连接标识将对应的协议连接绑定至第一用户连接标识对应的第一多协议组,并在绑定成功后向客户端发送服务反馈通告帧,客户端接收服务端发送的服务反馈通告帧,完成多协议组的连接建立。通过采用上述技术方案,可以基于现有的多种传输协议,提供多协议混合的传输方法,将传输过程与传输控制协议解耦,通过用户连接通告帧中的用户连接标识可以建立所建立的各协议连接之间的联系,由服务端将相同用户连接标识对应的协议连接绑定为一个多协议组,可以使得服务端和客户端能够基于多协议组中的多个协议连接进行数据传输,相比于单个传输协议对应的协议连接来说,能够更好地适应动态变化的复杂的网络环境,改善通信效果,提升网络数据传输性能及可靠性。
图8为本发明实施例提供的一种通信装置的结构框图,该装置可由软件和/或硬件实现,一般可集成在作为客户端的计算机设备中,可通过执行通信方法来进行通信。如图8所示,该装置包括:
连接请求接收模块801,用于接收客户端发送的多个协议的连接建立请求,并与所述客户端建立对应的多个协议连接,其中,所述客户端根据待建立连接的多个协议的地址信息向服务端发送所述连接建立请求;
用户连接通告帧接收模块802,用于接收所述客户端发送的用户连接通告帧,其中,所述客户端通过所述多个协议连接发送携带有第一用户连接标识的用户连接通告帧;
协议连接绑定模块803,用于获取所述用户连接通告帧中的第一用户连接标识,并将对应的协议连接绑定至所述第一用户连接标识对应的第一多协议组;
服务反馈通告帧发送模块804,用于在绑定成功后通过对应的协议连接向所述客户端发送服务反馈通告帧,以完成多协议组的连接建立。
本发明实施例中提供的通信装置,服务端接收客户端发送的多个协议的连接建立请求,并与客户端建立对应的多个协议连接,随后接收客户端通过多个协议连接发送携带有第一用户连接标识的用户连接通告帧,获取用户连接通告帧中的第一用户连接标识,并将对应的协议连接绑定至第一多协议组,在绑定成功后通过对应的协议连接向客户端发送服务反馈通告帧,以完成多协议组的连接建立。通过采用上述技术方案,通过用户连接通告帧中的用户连接标识可以建立所建立的各协议连接之间的联系,由服务端将相同用户连接标识对应的协议连接绑定为一个多协议组,可以使得服务端和客户端能够基于多协议组中的多个协议连接进行数据传输,相比于单个传输协议对应的协议连接来说,能够更好地适应动态变化的网络环境,改善通信效果。
本发明实施例提供了一种计算机设备,该计算机设备中可集成本发明实施例提供的通信装置。图9为本发明实施例提供的一种计算机设备的结构框图。计算机设备900包括存储器901、处理器902及存储在存储器901上并可在处理器902上运行的计算机程序,所述处理器902执行所述计算机程序时实现本发明实施例提供的通信方法。
本发明实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行本发明实施例提供的通信方法。
上述实施例中提供的通信装置、设备以及存储介质可执行本发明任意实施例所提供的通信方法,具备执行该方法相应的功能模块和有益效果。未在上述实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的通信方法。
注意,上述仅为本发明的较佳实施例。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由权利要求范围决定。

Claims (19)

1.一种通信方法,其特征在于,应用于客户端,所述方法包括:
根据待建立连接的多个协议的地址信息向服务端发送所述多个协议对应的连接建立请求,以与所述服务端建立对应的多个协议连接;
通过所述多个协议连接向所述服务端发送携带有第一用户连接标识的用户连接通告帧,所述用户连接通告帧供所述服务端将对应的协议连接绑定至所述第一用户连接标识对应的第一多协议组,并在绑定成功后通过对应的协议连接向所述客户端发送服务反馈通告帧;
接收所述服务端发送的服务反馈通告帧,以完成多协议组的连接建立;
所述接收所述服务端发送的服务反馈通告帧,以完成多协议组的连接建立之后,还包括:
利用第一协议连接向所述服务端发送第一数据帧,其中,所述第一协议连接包含于所述第一多协议组中;
在第一预设帧缓存队列中存储所述第一数据帧以及对应的第一已发送标识,其中,所述第一已发送标识中包括所述第一协议连接的身份信息;
在满足第一预设重发条件时,从所述第一预设帧缓存队列中获取所述第一数据帧,并利用第二协议连接向所述服务端重发所述第一数据帧,其中,所述第二协议连接包含于所述第一多协议组中,所述第一已发送标识中不包括所述第二协议连接的身份信息。
2.根据权利要求1所述的方法,其特征在于,所述多个协议连接中包括主协议连接和次协议连接,所述通过所述多个协议连接分别向所述服务端发送携带有第一用户连接标识的用户连接通告帧,包括:
确定当前的用户连接标识为第一用户连接标识;
通过所述主协议连接和所述次协议连接依次分别向所述服务端发送携带有所述第一用户连接标识的用户连接通告帧,其中,将所述主协议连接对应的用户连接通告帧记为主协议用户连接通告帧,将所述次协议连接对应的用户连接通告帧记为次协议用户连接通告帧。
3.根据权利要求1所述的方法,其特征在于,所述多个协议连接中包括主协议连接和次协议连接,所述通过所述多个协议连接分别向所述服务端发送携带有第一用户连接标识的用户连接通告帧,包括:
通过所述主协议连接向所述服务端发送用户连接标识待定的主协议用户连接通告帧,所述主协议用户连接通告帧供所述服务端确定第一用户连接标识并将所述主协议连接绑定至所述第一用户连接标识对应的第一多协议组;
接收所述服务端返回的所述第一用户连接标识;
通过所述次协议连接向所述服务端发送携带有所述第一用户连接标识的次协议用户连接通告帧,所述次协议用户连接通告帧供所述服务端将所述次协议连接绑定至所述第一多协议组。
4.根据权利要求2或3所述的方法,其特征在于,还包括:
通过所述主协议连接与所述服务端进行密钥协商,得到第一密钥;
利用所述第一密钥对后续发送的帧进行加密,和/或,利用所述第一密钥对后续接收的帧进行解密。
5.根据权利要求4所述的方法,其特征在于,所述密钥协商包括非对称密钥协商;所述主协议用户连接通告帧中包括所述客户端的第一私钥对应的第一公钥,所述主协议用户连接通告帧对应的服务反馈通告帧中包括所述服务端的第二私钥对应的第二公钥,所述第二公钥供所述客户端根据所述第一私钥和所述第二公钥计算所述第一密钥,所述第一公钥供所述服务端根据所述第二私钥和所述第一公钥计算第二密钥。
6.根据权利要求5所述的方法,其特征在于,所述次协议用户连接通告帧的帧负载中包括采用所述第一密钥对所述第一用户连接标识进行加密后得到的第一加密用户连接标识;所述次协议用户连接通告帧供所述服务端采用所述第二密钥对所述第一加密用户连接标识进行解密,当解密得到的用户连接标识与所述次协议用户连接通告帧携带的第一用户连接标识一致时,将所述次协议连接绑定至所述第一多协议组。
7.根据权利要求1所述的方法,其特征在于,所述第一协议连接的数量为至少两个,包括数据传输阶段的主协议连接和至少一个次协议连接。
8.根据权利要求1所述的方法,其特征在于,还包括:
接收所述服务端发送的第二数据帧;
获取所述第二数据帧中包括的第一帧序号标识,其中,所述第一帧序号标识用于表示所述第二数据帧在所属的第一数据流中的序号;
当已接收的第三数据帧中所包含的所述第一数据流的第二帧序号标识与所述第一帧序号标识一致时,确定所述第二数据帧为冗余传输的数据帧。
9.一种通信方法,其特征在于,应用于服务端,所述方法包括:
接收客户端发送的多个协议的连接建立请求,并与所述客户端建立对应的多个协议连接,其中,所述客户端根据待建立连接的多个协议的地址信息向服务端发送所述连接建立请求;
接收所述客户端发送的用户连接通告帧,其中,所述客户端通过所述多个协议连接发送携带有第一用户连接标识的用户连接通告帧;
获取所述用户连接通告帧中的第一用户连接标识,并将对应的协议连接绑定至所述第一用户连接标识对应的第一多协议组;
在绑定成功后通过对应的协议连接向所述客户端发送服务反馈通告帧,以完成多协议组的连接建立;
所述完成多协议组的连接建立之后,还包括:
利用第三协议连接向所述客户端发送第三数据帧,其中,所述第三协议连接包含于所述第一多协议组中;
在第二预设帧缓存队列中存储所述第三数据帧以及对应的第三已发送标识,其中,所述第三已发送标识中包括所述第三协议连接的身份信息;
在满足第二预设重发条件时,从所述第二预设帧缓存队列中获取所述第三数据帧,并利用第四协议连接向所述客户端重发所述第三数据帧,其中,所述第四协议连接包含于所述第一多协议组中,所述第三已发送标识中不包括所述第四协议连接的身份信息。
10.根据权利要求9所述的方法,其特征在于,所述多个协议连接中包括主协议连接和次协议连接,将所述主协议连接对应的用户连接通告帧记为主协议用户连接通告帧,将所述次协议连接对应的用户连接通告帧记为次协议用户连接通告帧。
11.根据权利要求10所述的方法,其特征在于,还包括:
通过所述主协议连接与所述客户端进行密钥协商,得到第二密钥;
利用所述第二密钥对后续发送的帧进行加密,和/或,利用所述第二密钥对后续接收的帧进行解密。
12.根据权利要求11所述的方法,其特征在于,所述密钥协商包括非对称密钥协商;所述主协议用户连接通告帧中包括所述客户端的第一私钥对应的第一公钥,所述主协议用户连接通告帧对应的服务反馈通告帧中包括所述服务端的第二私钥对应的第二公钥,所述第二公钥供所述客户端根据所述第一私钥和所述第二公钥计算第一密钥,所述第一公钥供所述服务端根据所述第二私钥和所述第一公钥计算所述第二密钥。
13.根据权利要求12所述的方法,其特征在于,所述次协议用户连接通告帧的帧负载中包括采用所述第一密钥所述第一用户连接标识进行加密后得到的第一加密用户连接标识;
所述获取所述用户连接通告帧中的第一用户连接标识,并将对应的协议连接绑定至所述第一用户连接标识对应的第一多协议组,包括:
获取所述次协议用户连接通告帧中的第一加密用户连接标识;
采用所述第二密钥对所述第一加密用户连接标识进行解密,当解密得到的用户连接标识与所述次协议用户连接通告帧携带的第一用户连接标识一致时,将所述次协议连接绑定至所述第一多协议组。
14.根据权利要求10所述的方法,其特征在于,还包括:
计算当前用于数据帧发送的协议连接集合中每个协议连接对应的发送速率,其中,所述协议连接集合中包括数据传输阶段的主协议连接和至少一个次协议连接;
当所述协议连接集合中的第五协议连接对应的第一发送速率与第六协议连接对应的第二发送速率的差值大于预设速度阈值时,将所述第五协议连接切换为新的数据传输阶段的主协议连接,其中,所述第五协议连接为所述协议连接集合中的发送速率最大的次协议连接,所述第六协议连接为所述协议连接集合中的切换前的数据传输阶段的主协议连接。
15.根据权利要求10所述的方法,其特征在于,还包括:
若当前接收到的主协议用户连接通告帧中包含的第二用户连接标识已存在对应的第二多协议组,则向所述客户端返回拒绝信息。
16.一种通信装置,其特征在于,配置于客户端,所述装置包括:
连接请求发送模块,用于根据待建立连接的多个协议的地址信息向服务端发送所述多个协议对应的连接建立请求,以与所述服务端建立对应的多个协议连接;
用户连接通告帧发送模块,用于通过所述多个协议连接向所述服务端发送携带有第一用户连接标识的用户连接通告帧,所述用户连接通告帧供所述服务端将对应的协议连接绑定至所述第一用户连接标识对应的第一多协议组,并在绑定成功后通过对应的协议连接向所述客户端发送服务反馈通告帧;
服务反馈通告帧接收模块,用于接收所述服务端发送的服务反馈通告帧,以完成多协议组的连接建立;
所述接收所述服务端发送的服务反馈通告帧,以完成多协议组的连接建立之后,利用第一协议连接向所述服务端发送第一数据帧,其中,所述第一协议连接包含于所述第一多协议组中;
在第一预设帧缓存队列中存储所述第一数据帧以及对应的第一已发送标识,其中,所述第一已发送标识中包括所述第一协议连接的身份信息;
在满足第一预设重发条件时,从所述第一预设帧缓存队列中获取所述第一数据帧,并利用第二协议连接向所述服务端重发所述第一数据帧,其中,所述第二协议连接包含于所述第一多协议组中,所述第一已发送标识中不包括所述第二协议连接的身份信息。
17.一种通信装置,其特征在于,配置于服务端,所述装置包括:
连接请求接收模块,用于接收客户端发送的多个协议的连接建立请求,并与所述客户端建立对应的多个协议连接,其中,所述客户端根据待建立连接的多个协议的地址信息向服务端发送所述连接建立请求;
用户连接通告帧接收模块,用于接收所述客户端发送的用户连接通告帧,其中,所述客户端通过所述多个协议连接发送携带有第一用户连接标识的用户连接通告帧;
协议连接绑定模块,用于获取所述用户连接通告帧中的第一用户连接标识,并将对应的协议连接绑定至所述第一用户连接标识对应的第一多协议组;
服务反馈通告帧发送模块,用于在绑定成功后通过对应的协议连接向所述客户端发送服务反馈通告帧,以完成多协议组的连接建立;
所述完成多协议组的连接建立之后,利用第三协议连接向所述客户端发送第三数据帧,其中,所述第三协议连接包含于所述第一多协议组中;
在第二预设帧缓存队列中存储所述第三数据帧以及对应的第三已发送标识,其中,所述第三已发送标识中包括所述第三协议连接的身份信息;
在满足第二预设重发条件时,从所述第二预设帧缓存队列中获取所述第三数据帧,并利用第四协议连接向所述客户端重发所述第三数据帧,其中,所述第四协议连接包含于所述第一多协议组中,所述第三已发送标识中不包括所述第四协议连接的身份信息。
18.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-15任一项所述的方法。
19.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-15中任一所述的方法。
CN202110292890.8A 2021-03-18 2021-03-18 通信方法、装置、设备及存储介质 Active CN113037762B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110292890.8A CN113037762B (zh) 2021-03-18 2021-03-18 通信方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110292890.8A CN113037762B (zh) 2021-03-18 2021-03-18 通信方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN113037762A CN113037762A (zh) 2021-06-25
CN113037762B true CN113037762B (zh) 2023-07-04

Family

ID=76471585

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110292890.8A Active CN113037762B (zh) 2021-03-18 2021-03-18 通信方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN113037762B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5537417A (en) * 1993-01-29 1996-07-16 International Business Machines Corporation Kernel socket structure for concurrent multiple protocol access
WO2008145901A1 (fr) * 2007-04-24 2008-12-04 France Telecom Procede et dispositif d'interface entre les protocoles udp ou tcp et sctp
CN102164115A (zh) * 2010-02-22 2011-08-24 中国电信股份有限公司 多源混合文件传输方法和系统
US8711851B1 (en) * 2007-07-19 2014-04-29 American Megatrends, Inc. Multi-protocol data transfers
US10560431B1 (en) * 2016-12-05 2020-02-11 Amazon Technologies, Inc. Virtual private gateway for encrypted communication over dedicated physical link

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9113042B2 (en) * 2009-08-28 2015-08-18 Broadcom Corporation Multi-wireless device channel communications
CN102082807B (zh) * 2009-12-01 2014-11-05 突触计算机系统(上海)有限公司 基于多协议的文件传输方法及装置
EP2672671A1 (en) * 2012-06-04 2013-12-11 Thomson Licensing Data transmission using a multihoming protocol such as SCTP

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5537417A (en) * 1993-01-29 1996-07-16 International Business Machines Corporation Kernel socket structure for concurrent multiple protocol access
WO2008145901A1 (fr) * 2007-04-24 2008-12-04 France Telecom Procede et dispositif d'interface entre les protocoles udp ou tcp et sctp
US8711851B1 (en) * 2007-07-19 2014-04-29 American Megatrends, Inc. Multi-protocol data transfers
CN102164115A (zh) * 2010-02-22 2011-08-24 中国电信股份有限公司 多源混合文件传输方法和系统
US10560431B1 (en) * 2016-12-05 2020-02-11 Amazon Technologies, Inc. Virtual private gateway for encrypted communication over dedicated physical link

Also Published As

Publication number Publication date
CN113037762A (zh) 2021-06-25

Similar Documents

Publication Publication Date Title
US7984492B2 (en) Methods and apparatus for policy enforcement in a wireless communication system
US20100138649A1 (en) Transmission of packet data over a network with security protocol
US20190312938A1 (en) Data Transmission Method And Apparatus
US9319439B2 (en) Secured wireless session initiate framework
JP4608000B2 (ja) セキュアで帯域効率の良い暗号化同期方法
CN107612931B (zh) 多点会话方法及多点会话系统
US10630479B2 (en) Network communication method having function of recovering terminal session
CN114142995A (zh) 面向区块链中继通信网络的密钥安全分发方法及装置
CN113037762B (zh) 通信方法、装置、设备及存储介质
CN115883478B (zh) 一种多标识网络体系中安全高效的传输控制方法及系统
CN108900584B (zh) 内容分发网络的数据传输方法和系统
CN113645283B (zh) 一种多链路通信方法、装置、存储介质及电子设备
US20230269802A1 (en) Method, device and non-transistory machine-readable medium for non-internet protocol traffic communication by user-equipment-to user-equipment relay
CN108833063A (zh) 一种报文重传方法及装置
WO2018103437A1 (zh) 数据传输方法、装置和系统
EP3994862B1 (en) Packet acknowledgement techniques for improved network traffic management
JP4910956B2 (ja) 通信制御システム、端末、及び、プログラム
WO2010124549A1 (zh) 获取公钥的方法、装置和系统
CN113364816B (zh) 基于多通道交换协议的数据传输系统
KR101730405B1 (ko) 네트워크 경로를 관리하는 방법 및 이를 수행하는 네트워크 엔티티
CN114157707B (zh) 一种通信连接方法、装置及系统
EP4124117A1 (en) Service transmission method, communication device and storage medium
Xiao et al. A Secure and Efficient Transport Protocol for Multi-Identifier Network
CN117914525A (zh) 一种数据报文处理方法及系统
Lindskog et al. The design and message complexity of secure socket SCTP

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
TR01 Transfer of patent right

Effective date of registration: 20231010

Address after: 31a, 15 / F, building 30, maple mall, bangrang Road, Brazil, Singapore

Patentee after: Baiguoyuan Technology (Singapore) Co.,Ltd.

Address before: 511402 5-13 / F, West Tower, building C, 274 Xingtai Road, Shiqiao street, Panyu District, Guangzhou City, Guangdong Province

Patentee before: GUANGZHOU BAIGUOYUAN INFORMATION TECHNOLOGY Co.,Ltd.

TR01 Transfer of patent right