CN109286593B - 传输重连的方法及装置、计算机设备及存储介质 - Google Patents

传输重连的方法及装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN109286593B
CN109286593B CN201710591179.6A CN201710591179A CN109286593B CN 109286593 B CN109286593 B CN 109286593B CN 201710591179 A CN201710591179 A CN 201710591179A CN 109286593 B CN109286593 B CN 109286593B
Authority
CN
China
Prior art keywords
communication
connection
reconnection
communication opposite
terminal
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
CN201710591179.6A
Other languages
English (en)
Other versions
CN109286593A (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201710591179.6A priority Critical patent/CN109286593B/zh
Publication of CN109286593A publication Critical patent/CN109286593A/zh
Application granted granted Critical
Publication of CN109286593B publication Critical patent/CN109286593B/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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • 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/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]

Abstract

一种传输重连的方法、装置、计算机设备以及存储介质,一个实施例的方法包括:在检测到与通信对端的通信连接异常时,与所述通信对端重新建立连接;在重新建立连接后,使用与所述通信对端首次通信连接时交换的密钥,与所述通信对端交换身份令牌;根据与所述通信对端交换的身份令牌验证所述通信对端的身份,并在身份验证成功后,继续通信连接异常前的传输过程。本实施例方案,在需要传输连续性的情况下,不仅可以自动进行网络连接的重连,而且可以确保重连后的对端就是重连之前的对端,从而同时确保了网络连接的稳定性和安全性。

Description

传输重连的方法及装置、计算机设备及存储介质
技术领域
本发明涉及网络信息技术领域,特别是涉及一种传输重连的方法、一种传输重连的装置、一种计算机设备以及一种计算机存储介质。
背景技术
随着网络通信技术的发展,网络应用已经成为人们日常生活和工作中不可或缺的一部分,网络应用不可避免地涉及到网络通信,例如用户终端与后台服务器之间的通信、不同的后台服务器之间的通信、不同的用户终端之间的通信。不同的用户终端的通信包括不同类型的终端客户端之间的通信,以及相同类型的一个终端客户端(例如手机客户端)与另一个终端客户端(例如PC客户端)之间的通信。然而,在网络通信的过程中,可能会出现由于网络状态不稳定等原因导致网络连接断开的情况,此时需要进行网络重连才能确保网络通信的正常进行。目前的网络重连较为常用的是TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议,又叫网络通讯协议)的重连机制。然而,TCP/IP的重连机制,本质上是重试三次握手的建立连接的过程,因此,在需要传输连续性的情况下,对通信的任何一端来说,并不能确保重连后的对端就是重连之前的对端,从而影响重连连接的安全性。
发明内容
基于此,有必要提供一种传输重连的方法、一种传输重连的装置、一种计算机设备以及一种计算机存储介质,以提高重连连接的安全性。
一种传输重连的方法,包括步骤:
在检测到与通信对端的通信连接异常时,与所述通信对端重新建立连接;
在重新建立连接后,使用与所述通信对端首次通信连接时交换的密钥,与所述通信对端交换身份令牌;
根据与所述通信对端交换的身份令牌验证所述通信对端的身份,并在身份验证成功后,继续通信连接异常前的传输过程。
一种传输重连的装置,包括:
异常检测模块,用于检测到与通信对端的通信连接状态;
重连模块,用于在异常检测模块检测到与通信对端的通信连接异常时,与所述通信对端重新建立连接;
身份令牌交换模块,用于在重新建立连接后,使用与所述通信对端首次通信连接时交换的密钥,与所述通信对端交换身份令牌;
身份验证模块,用于根据与所述通信对端交换的身份令牌验证所述通信对端的身份;
传输恢复模块,用于在所述身份验证模块的验证结果为验证成功后,继续通信连接异常前的传输过程。
一种计算机设备,包括存储介质、处理器以及存储在所述存储介质上并可在所述处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时实现如上所述的传输重连的方法的步骤。
一种计算机存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现如上所述的传输重连的方法的步骤。
基于如上所述的实施例中的方案,其在监测到与通信对端的通信连接异常时,自动启动重连机制以与通信对端重新建立连接,而且在重新建立连接后,使用与通信对端首次通信连接时交换的密钥与通信对端交换身份令牌,对重新建立连接后的通信对端进行身份验证,从而在需要传输连续性的情况下,不仅可以自动进行网络连接的重连,而且可以确保重连后的对端就是重连之前的对端,从而同时确保了网络连接的稳定性和安全性。
附图说明
图1是一个本实施例方案的工作环境的示意图;
图2是另一个本实施例方案的工作环境的示意图;
图3是一个实施例的终端/服务器的组成结构的示意图;
图4是一个实施例的传输重连的方法的流程示意图;
图5是一个应用示例中的自动重连的原理示意图;
图6是一个应用示例中的自动重连的终端的处理过程的原理示意图;
图7是一个应用示例中的自动重连的服务端的处理过程的原理示意图;
图8是另一个应用示例中的自动重连的流程示意图;
图9是一个实施例总的传输重连的装置的结构示意图。
具体实施方式
为了便于理解本发明,下面将参照相关附图对本发明进行更全面的描述。附图中给出了本发明的较佳的实施例。但是,本发明可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本发明的公开内容的理解更加透彻全面。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“或/及”包括一个或多个相关的所列项目的任意的和所有的组合。
图1示出了本发明一个实施例中的工作环境示意图,如图1所示,其工作环境涉及终端101与服务器102,终端101与服务器102通过网络进行连接,终端与服务器102之间可以通过网络进行网络数据的传输。在终端101与服务器102之间的通信连接出现异常时,终端101与服务器102可以重新建立连接,并在重新建立连接后交换密钥并根据密钥对对方的身份进行验证,并在身份验证通过后继续通信连接出现异常之前的通信传输过程。其中,该重新建立连接的请求可以由终端101发出,也可以由服务器102发出,由于服务器的性能和处理能力一般比客户端终端的要强,因此一般情况下可以由终端101发出重新建立连接的请求。
图2示出了另一个实施例的工作环境的示意图,如图2所示,其工作环境涉及第一终端201、第二终端202,在还可能涉及服务器203。第一终端201与服务器203之间、第二终端202与服务器203之间可以通过网络连接和通信,第一终端201与第二终端202之间也可以相互进行网络通信,第一终端201与第二终端202可以采用任何可能的网络进行通信,如局域网、互联网,第一终端201与第二终端202之间的物理连接可以是任何可能的方式,例如WiFi(Wireless Fidelity,一种无线互联技术)连接、网线连接、数据线连接等。第一终端201与第二终端202可以通过相互连接的网络进行网络通信,据此进行数据传输,例如第一终端201将自身的数据传输到第二终端202进行备份存储等。在第一终端201与第二终端202之间的通信连接出现异常时,终端201与终端202可以重新建立连接,并在重新建立连接后交换密钥并根据密钥对对方的身份进行验证,并在身份验证通过后继续通信连接出现异常之前的通信传输过程。其中,该重新建立连接的请求可以由第一终端201发出,也可以由第二终端202发出。第一终端201、第二终端202可以是任何不同形式、不同平台(如iOS、android、windows、mac)的终端,如智能手机、平板电脑、个人计算机(PC,personal computer)。考虑到不同类型终端的性能和处理能力不同,因此一般情况下可以性能和处理能力较弱的终端来发出重新建立连接的请求,如第一终端201为智能手机,而第二终端202为个人计算机时,可以将第二终端202作为服务端,由第一终端201发出重新建立连接的请求。
终端101/201/202、服务器102在一个实施例中的结构示意图如图3所示。该终端/服务器包括通过系统总线连接的处理器、非易失性存储介质、通信接口、电源接口和内存。其中,处理器提供计算和控制能力,支撑整个终端/服务器的运行。非易失性存储介质存储有操作系统和一种传输重连的装置的计算机应用程序,该传输重连的装置被处理器执行时用于实现一种传输重连的方法。存储器为非易失性存储介质中的传输重连的装置的运行提供环境,该存储器中可储存有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行一种传输重连的方法。网络接口用于与服务器或者其他终端进行网络连接和通信,电源接口用于与外部电源连接,外部电源通过该电源接口向终端/服务器供电。本领域技术人员可以理解,图3中示出的结构,仅仅是与实施例方案相关的部分结构的框图,并不构成对本实施例方案所应用于其上的终端/服务器的限定,具体的终端/服务器可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
图4示出了一个实施例的传输重连的方法的流程示意图,该方法可执行于一个通信连接中的任何一端。如图4所示,该实施例中的传输重连的方法包括步骤S401至步骤S403。
步骤S401:在检测到与通信对端的通信连接异常时,与所述通信对端重新建立连接。
步骤S402:在重新建立连接后,使用与所述通信对端首次通信连接时交换的密钥,与所述通信对端交换身份令牌;
步骤S403:根据与所述通信对端交换的身份令牌验证所述通信对端的身份,并在身份验证成功后,继续通信连接异常前的传输过程。
基于如上所述的实施例中的方案,其在监测到与通信对端的通信连接异常时,自动启动重连机制以与通信对端重新建立连接,而且在重新建立连接后,使用与通信对端首次通信连接时交换的密钥与通信对端交换身份令牌,对重新建立连接后的通信对端进行身份验证,从而在需要传输连续性的情况下,不仅可以自动进行网络连接的重连,而且可以确保重连后的对端就是重连之前的对端,从而同时确保了网络连接的稳定性和安全性。
在一个实施例中,上述步骤S401中涉及的对与通信对端的通信连接异常的检测,可以采用任何可能的方式进行。例如,在一个具体示例中,可以在与所述通信对端进行通信的延时时长超过预定超时时长时,确定与所述通信对端的连接异常。在另一个具体示例中,可以在与所述通信对端进行通信的过程中,在预定心跳包时长内未接收到通信对端的心跳包信号时,确定与所述通信对端的连接异常。在其他的具体示例中,也可以采用其他的方式来检测确定与通信对端的通信连接是否异常。
在监测到与通信对端的通信连接异常、与通信对端重新建立连接时,基于该方法的当前端的类型,如是客户端还是服务端,与通信对端重新建立连接时的处理可能会差异。
以当前端为通信连接的服务端,即通信对端为客户端为例,则在与通信对端重新建立连接时,当前端等待通信对端的重连连接请求,在接收到通信对端的重连连接请求后,与通信对端重新建立连接即可。
以当前端为通信连接的客户端,即通信对端为服务端为例,则在于通信对端重新建立连接时,可以采用下述方式进行:
向所述通信对端发送重连连接请求;
在间隔预定时间段之后,重复向所述通信对端发送所述重连连接请求,直至与所述通信对端成功建立连接或者发送重连连接请求的次数超过预定重发次数阈值。
其中,上述过程可以是在预定时间范围内进行,若是上述多次发送重连连接请求后仍未连接成功,且自检测到通信连接异常或者自首次发送重连连接请求后达到了该预定时间范围,则结束重连过程,不再进行重连。
在一个实施例中,上次每次重发重连连接请求之间的预定时间段,可以设置为相同,也可以有不同的设置。在一个具体应用示例中,每次重发重连连接请求之间的预定时间段与发送所述重连连接请求的次数对应。如首次发送重连连接请求之后,间隔第一预定时间段之后第二次发送重连连接请求,在第二次发送重连连接请求之后,间隔第二预定时间段之后第三次发送重连连接请求。后续的依次类推。其中,这些第一预定时间段、第二预定时间段、……可以互不相同,也可以是其中的某几个的数值相同。
在上述重新建立连接后,在步骤S402中使用与所述通信对端首次通信连接时交换的密钥,与所述通信对端交换身份令牌时,可以是通过密钥对身份令牌进行加密,以实现身份令牌的交换。在交换身份令牌之后,根据与所述通信对端交换的身份令牌验证所述通信对端的身份时,可以是通过身份令牌验证通信对端的身份的合法性,并验证该通信对端是否为通信连接异常之前进行通信传输的通信对端。
从而,在身份验证成功后,在步骤S403中,可以继续通信连接异常之前的传输过程,实现通信传输的连续性。
在一个实施例中,在身份验证不成功时,可以忽略该重连建立的通信连接。
在一个实施例中,在上述检测与通信对端的通信连接异常之前,还可以包括如下步骤:在首次与通信对端建立通信连接后,与通信对端交换密钥;用交换后的密钥与所述通信对端进行身份验证并交换身份令牌。
从而,需要进行网络通信的两个通信端,可以在首次建立通信连接之后,即可交换密钥,并基于密钥进行身份验证之后交换身份令牌,在后续出现通信连接异常时,在重新建立连接之后,可以基于该交换的密钥和身份令牌进行验证,以确定通信对端是通信连接异常之前进行通信传输的通信对端。
图5示出了一个应用示例中的自动重连的原理示意图。如图5所示,在设备A与设备B进行通信连接的过程中,设备A的传输层与设备B的传输层通过网络协议(如TCP/IP协议等)进行网络连接。在网络通信连接的过程中,以设备A为例,应用层需要传输给设备B的数据传给传输层后,经由传输层传输到设备B的传输层。设备A通过传输层获得设备B传输过来的数据后,由传输层传递到应用层进行应用。在设备A与设备B之间的通信连接出现异常时,会基于重连机制进行重连,恢复连接,以恢复之前的数据传输过程。
图6示出了一个应用示例中的自动重连的终端的处理过程的原理示意图,这里的终端是相对于服务端的一个相对的概念。如图6所示,终端的传输层在进行通信传输的过程中,在检测到与通信对端的通信连接发生异常时,会向应用层发出中断信号,终端的应用层接收到该中断信号后,开始进入重新建立连接的重试逻辑,通知传输层向服务端发送重连连接请求,并重试多次。在这多次重连连接的过程中,每两次之间重发重连连接请求之间的时间段可以设定为相同,也可以设定为不相同。通常情况下,开始发送重连连接请求的时间段的间隔可以设置为较短,而到后续的过程中 发送重连连接请求的时间段的间隔可以设置的相对较长。例如,在一个具体应用示例中,应用层可以在接收到该中断信号之后,依次间隔1秒、1秒、1秒、2秒、5秒、9秒、13秒、26秒、26秒和26秒,通过传输层向原来进行通信传输的网络地址(通常为IP(Internet Protocol,网络之间互联的协议)地址)和端口发送重连连接请求,以请求向服务端重新建立连接。即,应用层在接收到该终端信号之后,自动通过传输层向服务端(即终端的通信对端)发送重连连接请求,并在间隔1秒后,第一次重复向服务端发送重连连接请求,在间隔1秒后,第二次重复向服务端发送重连连接请求,再间隔1秒后,第三次重复向服务端发送重连连接请求,再间隔2秒后,第四次重复向服务端发送重连连接请求,再间隔5秒后,第五次重复向服务端发送重连连接请求,余下的以此类推。可以理解,在其他的具体的应用示例中,具体的重发的次数、时间间隔可以做不同的设定。
可以理解地,在重连连接请求的过程中,一旦已经与服务端重新建立了网络连接,则停止重发重连连接请求。当已经重发了预定次数的重发连接请求后,仍然未与服务端重新建立连接,则结束重连过程,不再进行重连,中断整个流程。另一方面,也可以设定有一个预定时间范围,当在该预定时间范围内仍未与服务端重新建立连接,则结束重连过程,不再进行重连,中断整个流程。
在重新建立连接之后,终端与服务端可以交换双方的密钥,并经过密钥交换双方的身份令牌并进行身份验证,身份验证通过后,可继续通信连接发生异常之前的流程。
其中,终端与服务端双方交换的密钥,可以是对称密钥,也可以是非对称密钥,本发明实施例可不做限定。
在一个具体示例中,以进行通信传输的双方为终端和后台服务器(如微信后台服务器)为例,其通信传输以及传输重连的方式可以是下述示例所述。
在终端登录后台服务器时,在终端登录成功即终端在后台服务器处于登录态时,终端与后台服务器均会获得各自在后续信息传输过程中对信息进行加密的密钥,该密钥可以是对称密钥,也可以是非对称密钥。在密钥是对称密钥时,该密钥可以由后台服务器来分发,也可以是由终端与服务器协商确定。在密钥是非对称密钥时,终端持有终端自身的终端私钥以及后台服务器分发的后台服务器公钥,并用后台服务器公钥对需要发送给后台服务器的数据进行加密,用自身的终端私钥对后台服务器发送过来的数据进行解密;而后台服务器持有后台服务器自身的后台服务器私钥以及终端的公钥,并用后台服务器私钥对终端发送过来的数据进行解密,用终端的公钥对需要发送给终端的数据进行加密。在其他的实施例中,终端和服务器之间也可以持有其他类型的密钥、以及采用其他的方式来获得各自所持有的密钥。
从而,在终端与后台服务器均持有各自的密钥后,可进一步基于各自持有的密钥来交换身份令牌,这里的身份令牌可以是指唯一确定终端或者后台服务器的身份的信息,以终端为微信客户端所在终端为例,其身份令牌可以包括微信号(用户标识),同时还可以包括有终端的相关信息(如终端物理标识)。当然,在其他实施例中,该身份令牌还可以是包含其他的不同类型的信息,只要能够唯一性确定终端的应用及终端即可。
在交换身份令牌时,以密钥为非对称密钥为例,身份令牌的交换方式可以是:终端将自身的身份令牌用后台服务器公钥加密后,传输至后台服务器,而后台服务器将自身的身份令牌用终端的公钥加密后,传输至终端。终端接收到后台服务器传输的加密数据后,用终端的公钥解密后获得后台服务器的身份令牌。后台服务器接收到终端传输的加密数据后,用后台服务器私钥进行解密,获得终端的身份令牌。
从而,在终端与后台服务器首次建立通信连接后,不仅交换了密钥,而且交换了身份令牌,建立了一个传输会话。从而在后续出现通信连接异常时,可以基于交换的密钥和身份令牌进行传输重连,以确保通信传输的稳定性和安全性。
一个示例中,后台服务器在检测到出现通信连接异常时,可发出中断信号(如可以由通信层发出),并重启与终端的通信连接相关的进程或线程,等待终端的重新连接。终端在检测到出现通信异常时,可发出中断信号(如可以由通信层发出),并开始进行重新进行连接的相关重试逻辑。
终端在进行重新建立连接的相关重试逻辑时,可以是在检测到通信连接异常时,自动通过传输层向原来进行通信传输的网络地址(如后台服务器的IP地址)和端口发送重连连接请求,并在间隔与首次发送重连请求对应的一个时间段(如1秒)后,再次向该网络地址和端口发送重连连接请求,并在间隔与第二次发送重连请求对应的一个时间段(如2秒)后,再次向该网络地址和端口发送重连连接请求。后续发送重连连接请求的方式以此类推,每次发送重连连接请求的间隔时间可与重复发送重连连接请求的次数对应。该间隔时间可以是事先设定好,也可以在重连过程中结合实际情况自由设定,如基于终端自身的网络状态或者性能状态来实时设定。当然,在其他实施例中,也可以采用其他的方式确定该间隔时间。
在发送重连连接请求的过程中,一旦已经与服务端重新建立了网络连接,则停止重发重连连接请求。当已经发送了预定次数的重发连接请求或者到达预定时间范围后,仍然未与服务端重新建立连接,则结束重连过程,不再进行重连,中断整个流程。对后台服务器而言,可以在等待一个时间段(该时间段可以与上述预定时间范围相同)仍未与该终端重新建立连接,则中断与终端之间的整个流程。
在重新建立连接之后,终端与服务端可以交换双方的密钥,并经过密钥交换双方的身份令牌并进行身份验证,交换密钥和交换身份令牌的方式可以与上述方式中的相同,身份验证通过后,可继续通信连接发生异常之前的流程。
在另一个具体示例中,本实施例方案也可以用于两个终端之间的通信传输的过程,使得两个终端之间的通信传输出现异常时,能够快速稳定地恢复连接,且能够确保连接的安全性。
目前的技术应用中,会涉及到各种不同的终端之间的通信传输过程,如用户USER1通过终端设备UE1上的应用程序与使用终端设备UE2上的应用程序的用户USER2进行通信,这里的终端设备UE1与终端设备UE2的设备类型和平台可能相同,也可能不相同。随着终端应用需求的增加,相同的应用也可能在不同的终端设备上登录使用,从而涉及到同一应用在不同终端设备上的交互,如用户USER1使用智能手机登录使用微信,同时使用PC机也登录统一账号的微信,此时,针对用户USER1的微信应用,智能手机与PC机之间需要进行通信连接来实现信息的同步。另一方面,由于PC机的终端设备的性能和处理能力一般优于智能手机,智能手机上的微信聊天记录会发送到PC机进行备份,在需要时PC机备份的微信聊天记录也会传输给智能手机进行显示和使用。以下就这种两个终端之间进行通信传输过程中的传输重连的示例进行说明。
在该示例中,进行通信传输的终端可以是使用任何平台(如mac、windows、iOS、android)的终端,终端的实际产品的形式也可以各种可能的形式,如智能手机、平板电脑、笔记本电脑、个人计算机、智能穿戴设备等等。两个终端之间可以采用任何可能的方式进行连接,如局域网内的连接、WiFi连接、互联网络连接、数据线(如USB(Universal SerialBus,通用串行总线)线)连接等,本实施例并不限定这两个终端之间的连接方式,只要这两个终端能够基于所采用的连接方式相互连接进行通信并进行数据传输即可。此外,在这两个终端的通信传输的机制中,其中一个终端主动发起连接请求,而另一个终端会被动接收连接请求。因此,在下述示例中,以主动发起连接请求的终端作为客户端诊断,而被动接收连接请求的终端作为服务端终端来进行说明。在实际技术应用中,对于一个终端来说,可以将其上的应用程序设定为是客户端,也可以设定为是服务端。
下述示例的通信传输过程以下述示例前提进行说明:进行通信传输的两个终端分别为智能手机和PC机,且同一用户在这两个终端上均登录微信,需要将智能手机上的微信聊天记录同步到PC机上,智能手机为客户端终端,而PC机为服务端终端。该示例下的自动重连的流程示意图如图8所示。可以理解,对于其他不同类型、不用应用程序的两个终端之间的通信传输过程与之相类似。
在用户USER使用智能手机登录微信应用的手机客户端A之后,手机客户端A会与微信的后台服务器进行通信连接,登录后台服务器并获得手机客户端A的密钥,该密钥可以是对称密钥。
类似地,用户USER使用智能手机登录微信的PC客户端B(可以理解,该PC客户端可以是一个独立的客户端,也可以是嵌入在其他应用程序如浏览器中的小工具)之后,PC客户端B会与微信的后台服务器进行通信连接,登录后台服务器并获得PC客户端B的密钥,该密钥可以是对称密钥。
手机客户端A和PC客户端B需要建立通信连接时,手机客户端A向PC客户端B发送连接请求,PC客户端B接收到该连接请求后,与手机客户端A建立通信连接,可以理解,该通信连接是手机客户端A和PC客户端B之间首次建立的通信连接。在首次建立该通信连接后,手机客户端A与PC客户端B之间交换密钥,通过交换密钥,手机客户端A和PC客户端B可以确定对需传输出去的数据进行加密时所采用的加密密钥、以及对接收到的接收数据进行解密时所采用的解密密钥。其中,加密密钥和解密密钥可以相同,即是对称密钥,也可以不相同。手机客户端A与PC客户端B可以采用任何可能的方式交换密钥,如二者均在同一个局域网内或者二者通过Wifi连接或者二者通过USB线连接等情况,手机客户端A与PC客户端B可以直接相互通信或协商来交换密钥。具体的相互通信或协商交换密钥的方式可以采用任何可能的方式进行。另一方面,手机客户端A与PC客户端B之间也可以利用安全通道来交换密钥,如通过微信的后台服务器来交换密钥,或者是通过建立的其他的安全通道来交换密钥。
手机客户端A与PC客户端B在交换密钥后,可以利用交换后的密钥交换身份令牌并进行身份验证,交换身份令牌并进行身份验证的方式可以与上述示例中相同或不同的方式进行,在交换身份令牌和身份验证成功后,标识着手机客户端A与PC客户端B之间建立了一个传输会话,从而可以基于指令执行相关的通信传输过程,如将手机客户端A的微信聊天记录备份到PC客户端B中。可以理解,在其他示例中,也可以是也可以是其他类型或数据的通信传输过程。
在通信传输的过程中,手机客户端A、PC客户端B会对二者之间的通信状态进行检测,来检测手机客户端A与PC客户端B之间的通信连接是否有发生异常。检测发现通信连接是否异常的方式,可以采用任何可能的方式进行,如通过规定业务超时时长,可以在与通信对端进行通信的延时时长超过预定超时时长时,确定与所述通信对端的连接异常。再例如,通过心跳包的方式,手机客户端A可定期向PC客户端发送心跳包,PC客户端在预定心跳包时长内未接收到通信对端的心跳包信号时,手机客户端A在指定时间内没有接收到PC客户端B基于心跳包的反馈信息或者没有接收到PC客户端B的业务反馈信息时,确定通信连接异常。
在发现通信连接异常后,PC客户端B等待手机客户端A的重连请求,同时可以保留或者缓存通信连接异常之前与手机客户端A之前的通信传输状态,以便于在通信连接恢复之后,能够尽快恢复之前的通信传输状态,以确保通信传输的稳定性。
对手机客户端A而言,其在发现通信连接异常后,立即启动通信层重连,并在规定时间内尽量多地进行通信层重连,直到满足重连结束条件。重连结束条件可以是连接成功、超过规定的总时长或者达到了预定重连次数阈值。
一个示例中,手机客户端A自动通过传输层向原来进行通信传输的PC客户端B的网络地址和端口发送重连连接请求,并在间隔与首次发送重连请求对应的一个时间段(如1秒)后,再次向该网络地址和端口发送重连连接请求,并在间隔与第二次发送重连请求对应的一个时间段(如2秒)后,再次向该网络地址和端口发送重连连接请求。后续发送重连连接请求的方式以此类推,每次发送重连连接请求的间隔时间可与发送重连连接请求的次数对应。该间隔时间可以是事先设定好,也可以在重连过程中结合实际情况自由设定,如基于终端自身的网络状态或者性能状态来实时设定。当然,在其他实施例中,也可以采用其他的方式确定该间隔时间。
在重发重连连接请求的过程中,一旦已经与PC客户端B重新建立了网络连接,手机客户端A停止重发重连连接请求。当已经满足重连结束条件且未与PC客户端B重新建立网络连接,则结束重连过程,不再进行重连,中断整个流程。
在重新建立连接之后,手机客户端A与服务客户端B交换双方的密钥,并经过密钥交换双方的身份令牌并进行身份验证,交换密钥和交换身份令牌的方式可以与上述方式中的相同,身份验证通过后,即通信对端合法且是通信连接异常之前进行通信传输的通信段,可继续通信连接发生异常之前的流程,继续进行微信聊天记录的备份。若身份验证未通过,则忽略掉已经建立的该通信连接。
基于与上述方法相同的思想,本发明实施例还提供一种传输重连的装置,图9示出了一个实施例中的传输重连的装置的结构示意图。如图9所示,该实施例中的装置包括:
异常检测模块901,用于检测到与通信对端的通信连接状态;
重连模块902,用于在异常检测模块检测到与通信对端的通信连接异常时,与所述通信对端重新建立连接;
身份令牌交换模块903,用于在重新建立连接后,使用与所述通信对端首次通信连接时交换的密钥,与所述通信对端交换身份令牌;
身份验证模块904,用于根据与所述通信对端交换的身份令牌验证所述通信对端的身份;
传输恢复模块905,用于在所述身份验证模块的验证结果为验证成功后,继续通信连接异常前的传输过程。
基于如上所述的实施例中的方案,其在监测到与通信对端的通信连接异常时,自动启动重连机制以与通信对端重新建立连接,而且在重新建立连接后,使用与通信对端首次通信连接时交换的密钥与通信对端交换身份令牌,对重新建立连接后的通信对端进行身份验证,从而在需要传输连续性的情况下,不仅可以自动进行网络连接的重连,而且可以确保重连后的对端就是重连之前的对端,从而同时确保了网络连接的稳定性和安全性。
在一个实施例中,异常检测模块901对与通信对端的通信连接异常的检测,可以采用任何可能的方式进行。例如,在一个具体示例中,异常检测模块901可以在与所述通信对端进行通信的延时时长超过预定超时时长时,确定与所述通信对端的连接异常。在另一个具体示例中,异常检测模块901可以在与所述通信对端进行通信的过程中,在预定心跳包时长内未接收到通信对端的心跳包信号时,确定与所述通信对端的连接异常。在其他的具体示例中,异常检测模块901也可以采用其他的方式来检测确定与通信对端的通信连接是否异常。
重连模块902在与通信对端重新建立连接时,基于该装置所处的当前端的类型,如是客户端还是服务端,与通信对端重新建立连接时的处理可能会差异。
以当前端为通信连接的服务端,即通信对端为客户端为例,则在与通信对端重新建立连接时,当前端等待通信对端的重连连接请求,在接收到通信对端的重连连接请求后,与通信对端重新建立连接即可。
以当前端为通信连接的客户端,即通信对端为服务端为例,该重连模块902可以包括:
连接请求模块9021,用于在异常检测模块检测到与通信对端的通信连接异常时,启动重连机制向所述通信对端发送重连连接请求;
请求重发模块9022,用于在间隔预定时间段之后,重复向所述通信对端发送所述重连连接请求,直至与所述通信对端成功建立连接或者发送重连连接请求的次数超过预定重发次数阈值。
其中,请求重发模块9022的上述重复发送重连连接请求的过程可以是在预定时间范围内进行,若是上述多次发送重连连接请求后仍未连接成功,且自检测到通信连接异常或者自首次发送重连连接请求后达到了该预定时间范围,则结束重连过程,不再进行重连。
在一个实施例中,上次每次重发重连连接请求之间的预定时间段,可以设置为相同,也可以有不同的设置。在一个具体应用示例中,每次重发重连连接请求之间的预定时间段与发送所述重连连接请求的次数对应。如首次发送重连连接请求之后,间隔第一预定时间段之后第二次发送重连连接请求,在第二次发送重连连接请求之后,间隔第二预定时间段之后第三次发送重连连接请求。后续的依次类推。其中,这些第一预定时间段、第二预定时间段、……可以互不相同,也可以是其中的某几个的数值相同。
在上述重新建立连接后,身份令牌交换模块903使用与所述通信对端首次通信连接时交换的密钥,与所述通信对端交换身份令牌时,可以是通过密钥对身份令牌进行加密,以实现身份令牌的交换。
在交换身份令牌之后,身份验证模块904根据与所述通信对端交换的身份令牌验证所述通信对端的身份时,可以是通过身份令牌验证通信对端的身份的合法性,并验证该通信对端是否为通信连接异常之前进行通信传输的通信对端。
从而,在身份验证模块904身份验证成功后,传输恢复模块905可以继续通信连接异常之前的传输过程,实现通信传输的连续性。
在一个实施例中,传输恢复模块905,还在身份验证模块904的验证结果为不成功时,忽略上述重连模块902重连建立的通信连接。
在一个实施例中,如图9所示,该传输重连的装置还可以包括:
信息交换模块900,用于在与通信对端建立通信连接后,与通信对端交换密钥,并用交换后的密钥与所述通信对端进行身份验证并交换身份令牌。
从而,需要进行网络通信的两个通信端,可以在首次建立通信连接之后,即可交换密钥,并基于密钥进行身份验证之后交换身份令牌,在后续出现通信连接异常时,在重新建立连接之后,可以基于该交换的密钥和身份令牌进行验证,以确定通信对端是通信连接异常之前进行通信传输的通信对端。
基于如上所述的示例,在一个实施例中还提供一种计算机设备,如图3所示,该计算机设备包括存储介质、处理器及存储在存储介质上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现如上述各实施例中的任意一种传输重连的方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性的计算机可读取存储介质中,如本发明实施例中,该程序可存储于计算机系统的存储介质中,并被该计算机系统中的至少一个处理器执行,以实现包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
据此,在一个实施例中还提供一种存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现如上述各实施例中的任意一种传输重连的方法。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种传输重连的方法,其特征在于,包括步骤:
在首次与通信对端建立通信连接后,与通信对端交换密钥;
用交换后的密钥与所述通信对端进行身份验证并交换身份令牌;
在检测到与通信对端的通信连接异常时,与所述通信对端重新建立连接;
在重新建立连接后,使用与所述通信对端首次通信连接时交换的密钥,与所述通信对端交换身份令牌;
根据与所述通信对端交换的身份令牌验证所述通信对端的身份,并在身份验证成功后,继续通信连接异常前的传输过程;
根据与所述通信对端交换的身份令牌验证所述通信对端的身份,包括:
根据与所述通信对端交换的身份令牌验证所述通信对端的身份的合法性,并验证所述通信对端是否为通信连接异常之前进行通信传输的通信对端。
2.根据权利要求1所述的传输重连的方法,其特征在于,所述通信对端为服务端,所述与所述通信对端重新建立连接的方式包括:
向所述通信对端发送重连连接请求;
在间隔预定时间段之后,重复向所述通信对端发送所述重连连接请求,直至与所述通信对端成功建立连接或者发送重连连接请求的次数超过预定重发次数阈值。
3.根据权利要求2所述的传输重连的方法,其特征在于,所述预定时间段与发送所述重连连接请求的次数对应。
4.根据权利要求1至3任意一项所述的传输重连的方法,其特征在于,与所述通信对端进行通信的延时时长超过预定超时时长时,确定与所述通信对端的连接异常。
5.根据权利要求1至3任意一项所述的传输重连的方法,其特征在于,在预定心跳包时长内未接收到所述通信对端的心跳包信号时,确定与所述通信对端的连接异常。
6.一种传输重连的装置,其特征在于,包括:
信息交换模块,用于在与通信对端建立通信连接后,与通信对端交换密钥,并用交换后的密钥与所述通信对端进行身份验证并交换身份令牌;
异常检测模块,用于检测到与通信对端的通信连接状态;
重连模块,用于在异常检测模块检测到与通信对端的通信连接异常时,与所述通信对端重新建立连接;
身份令牌交换模块,用于在重新建立连接后,使用与所述通信对端首次通信连接时交换的密钥,与所述通信对端交换身份令牌;
身份验证模块,用于根据与所述通信对端交换的身份令牌验证所述通信对端的身份;其中,根据与所述通信对端交换的身份令牌验证所述通信对端的身份的合法性,并验证所述通信对端是否为通信连接异常之前进行通信传输的通信对端
传输恢复模块,用于在所述身份验证模块的验证结果为验证成功后,继续通信连接异常前的传输过程。
7.根据权利要求6所述的传输重连的装置,其特征在于,所述通信对端为服务端,所述重连模块包括:
连接请求模块,用于在异常检测模块检测到与通信对端的通信连接异常时,启动重连机制向所述通信对端发送重连连接请求;
请求重发模块,用于在间隔预定时间段之后,重复向所述通信对端发送所述重连连接请求,直至与所述通信对端成功建立连接或者重复发送重连连接请求的次数超过预定重发次数阈值。
8.根据权利要求7所述的传输重连的装置,其特征在于,所述预定时间段与重发所述重连连接请求的次数对应。
9.一种计算机设备,包括存储介质、处理器以及存储在所述存储介质上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5任意一项所述的传输重连的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至5任意一项所述的传输重连的方法的步骤。
CN201710591179.6A 2017-07-19 2017-07-19 传输重连的方法及装置、计算机设备及存储介质 Active CN109286593B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710591179.6A CN109286593B (zh) 2017-07-19 2017-07-19 传输重连的方法及装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710591179.6A CN109286593B (zh) 2017-07-19 2017-07-19 传输重连的方法及装置、计算机设备及存储介质

Publications (2)

Publication Number Publication Date
CN109286593A CN109286593A (zh) 2019-01-29
CN109286593B true CN109286593B (zh) 2021-04-09

Family

ID=65184045

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710591179.6A Active CN109286593B (zh) 2017-07-19 2017-07-19 传输重连的方法及装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN109286593B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220086037A1 (en) * 2019-01-17 2022-03-17 Telefonaktiebolaget Lm Ericsson (Publ) Technique for Connection Handling in a Distributed System

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109981164A (zh) * 2019-04-19 2019-07-05 深圳星联天通科技有限公司 卫星终端掉网自动重连方法、装置、卫星终端及存储介质
CN111083702A (zh) * 2019-11-20 2020-04-28 青岛海信智慧家居系统股份有限公司 一种智能家居的ZigBee设备管理的方法及装置
CN111371639B (zh) * 2020-02-21 2021-12-14 腾讯科技(深圳)有限公司 网络延时分析方法、装置、存储介质和计算机设备
CN111510492A (zh) * 2020-04-15 2020-08-07 矩阵元技术(深圳)有限公司 一种实现断线重连的数据处理方法、装置、设备及系统
CN111914149A (zh) * 2020-05-21 2020-11-10 北京大米科技有限公司 一种请求处理方法、装置、存储介质及电子设备
CN112333849B (zh) * 2020-06-19 2023-05-02 深圳Tcl新技术有限公司 设备连接断线处理方法、装置、移动终端及存储介质
CN113311774B (zh) * 2021-06-09 2023-02-28 中国第一汽车股份有限公司 一种驱动控制方法和系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101527708A (zh) * 2008-03-04 2009-09-09 华为技术有限公司 恢复连接的方法和装置
CN103401855A (zh) * 2013-07-24 2013-11-20 佳都新太科技股份有限公司 一种基于cap协议的预警应急联动机制实现框架
CN104580765A (zh) * 2015-01-16 2015-04-29 四川联友电讯技术有限公司 电话会议系统与会者断线重连身份验证方法
CN105407008A (zh) * 2015-12-17 2016-03-16 上海斐讯数据通信技术有限公司 Tcp连接断线的重连方法及系统、终端及服务器
EP3197101A1 (en) * 2014-09-19 2017-07-26 Panasonic Intellectual Property Management Co., Ltd. Connection method, connection system, portable terminal, and program

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101527708A (zh) * 2008-03-04 2009-09-09 华为技术有限公司 恢复连接的方法和装置
CN103401855A (zh) * 2013-07-24 2013-11-20 佳都新太科技股份有限公司 一种基于cap协议的预警应急联动机制实现框架
EP3197101A1 (en) * 2014-09-19 2017-07-26 Panasonic Intellectual Property Management Co., Ltd. Connection method, connection system, portable terminal, and program
CN104580765A (zh) * 2015-01-16 2015-04-29 四川联友电讯技术有限公司 电话会议系统与会者断线重连身份验证方法
CN105407008A (zh) * 2015-12-17 2016-03-16 上海斐讯数据通信技术有限公司 Tcp连接断线的重连方法及系统、终端及服务器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
孟祥波.《 路由器互连认证协议的设计与实现》.《中国优秀硕士学位论文全文数据库 信息科技辑》.2016,第2016卷(第3期),I139-268. *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220086037A1 (en) * 2019-01-17 2022-03-17 Telefonaktiebolaget Lm Ericsson (Publ) Technique for Connection Handling in a Distributed System

Also Published As

Publication number Publication date
CN109286593A (zh) 2019-01-29

Similar Documents

Publication Publication Date Title
CN109286593B (zh) 传输重连的方法及装置、计算机设备及存储介质
EP2720438B1 (en) Method and system for negotiation based on IKE messages
EP1779632B1 (en) System and method for dynamically determining the role of a network device in a link authentication protocol exchange
US8762715B2 (en) Event triggered pairing of wireless communication devices based on time measurements
JP4357480B2 (ja) 無線通信認証プログラムおよび無線通信プログラム
KR101042745B1 (ko) 클라이언트 단말장치와 서버 사이의 세션 재설정을 위한시스템 및 방법
CN109167802B (zh) 防止会话劫持的方法、服务器以及终端
US9344417B2 (en) Authentication method and system
EP3602997B1 (en) Mutual authentication system
WO2016008344A1 (en) Wireless connection establishing methods and wireless connection establishing apparatuses
CN105337935A (zh) 一种建立客户端和服务端长连接的方法和装置
JP6704863B2 (ja) 無線ネットワークにおける高速、安全且つプライバシーフレンドリーなインターネット接続検出の方法
CN107277058B (zh) 一种基于bfd协议的接口认证方法及系统
CN107135228B (zh) 一种基于中心节点的认证系统与认证方法
US20170359178A1 (en) Network communication method having function of recovering terminal session
JP5472154B2 (ja) 通信端末、通信方法、及び通信プログラム
WO2016165429A1 (zh) 业务处理方法及装置、终端
JP6126062B2 (ja) ネットワーク装置及びネットワーク装置のmacアドレス認証方法
CN108616494B (zh) 基于多pdn连接的安全通话方法、装置及终端
CN108270613B (zh) 发送消息方法及网络设备
TWI641271B (zh) 一種存取認證方法、ue和存取設備
KR101730404B1 (ko) 네트워크 경로를 관리하는 방법 및 이를 수행하는 네트워크 엔티티
JP6272575B1 (ja) データ通信方法
CN110475034B (zh) 提高话机安全性的方法、用户端装置、服务器装置及系统
CN111367477B (zh) 3d打印装置及连接方法、数据处理装置及控制方法、介质

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