CN103858389A - 一种传输会话的方法、客户端及Push服务器 - Google Patents
一种传输会话的方法、客户端及Push服务器 Download PDFInfo
- Publication number
- CN103858389A CN103858389A CN201380002735.1A CN201380002735A CN103858389A CN 103858389 A CN103858389 A CN 103858389A CN 201380002735 A CN201380002735 A CN 201380002735A CN 103858389 A CN103858389 A CN 103858389A
- Authority
- CN
- China
- Prior art keywords
- session
- client
- push server
- protocol
- transmission
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Computer And Data Communications (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开了一种在Push服务器中传输会话的方法、客户端、Push服务器,通过第一协议协商会话密钥,然后通过第二协议传输加密后的会话,将协商密钥和传输会话的过程分开,由此协商密钥和传输会话可以使用不同的协议,传输会话的过程可以使用资源消耗比协商密钥的资源消耗少的协议,从而可以降低Push服务器负载、降低客户端流量的消耗。
Description
技术领域
本发明属于通信领域,尤其涉及一种传输会话的方法、客户端及Push服务器。
背景技术
在移动应用中,比如:使用聊天消息的应用“华为天天聊”,用户与“华为天天聊”系统不会建立持久连接,如果A用户给B用户发送一个消息,因为A、B之间没有持久连接,所以无法立刻通知给B用户,除非B用户定期到“华为天天聊”系统查询。所以,需要一个第三方——推送(Push)系统。A、B都与Push服务器建立持久连接,当A发消息给B时,“华为天天聊”系统通知Push服务器,再由Push服务器通知用户B,B收到通知后,再向“华为天天聊”系统的服务器请求获得A发送的消息。这样可以在不同用户之间建立一个寻呼通道,每个应用系统的服务端不必建立持久的链接,而是使用这条寻呼通道来探知用户在线状态,并发送通知消息。
这个持久连接可以给多个应用系统共享使用,客户端只需要安装一个推送代理(PushAgent),在系统启动时,推送客户端PushAgent与Push服务器建立持久连接。PushAgent收到Push服务器的消息时,将消息转给指定的应用,各个应用可以调用PushAgent,向Push服务器发消息。
现有技术中,Push服务器和Push客户端之间一般采用安全套接层(SecureSockets Layer,SSL)/安全传输协议(Transport Layer Security,TLS)建立连接。在移动网络中,由于网络状态不稳定,连接可能会经常断开,当使用SSL/TLS进行连接时,需要频繁的请求证书,流量消耗大。
发明内容
本发明的目的在于提供一种传输会话的方法,旨在解决在Push服务器如何降低Push服务器的流量消耗。
第一方面,一种传输会话的方法,所述方法包括:
通过第一协议协商客户端和推送Push服务器之间进行通信的会话密钥;
当加密会话时,根据第二协议与Push服务器之间传输使用所述会话密钥加密后的会话。
结合第一方面,在第一方面的第一种可能的实现方式中,所述方法还包括:
在所述客户端和所述Push服务器的连接断开并重新连接后,若所述客户端和所述Push服务器的连接断开的时间长度小于或等于预设阈值,则当加密会话时,根据所述第二协议与所述Push服务器之间传输使用所述会话密钥加密后的会话。
结合第一方面或者第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述方法还包括:
在所述客户端和所述Push服务器的连接断开并重新连接后,若所述客户端和所述Push服务器的连接断开的时间长度大于所述预设阈值,则所述客户端和所述Push服务器通过所述第一协议重新协商会话密钥,当加密会话时,根据所述第二协议与所述Push服务器之间传输使用重新协商后的会话密钥加密后的会话。
结合第一方面或者第一方面的第一种可能的实现方式或者第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述第一协议为安全传输协议TLS,或者,安全套接层SSL;所述第二协议为传输控制协议TCP,或者,用户数据报协议UDP。
结合第一方面,在第一方面的第四种可能的实现方式中,所述根据第二协议与Push服务器之间传输使用所述会话密钥加密后的会话,包括:
根据第二协议将使用所述会话密钥加密后的会话传输到Push服务器;或者
根据第二协议接收Push服务器发送的使用所述会话密钥加密后的会话。
第二方面,一种传输会话的方法,所述方法包括:
通过第一协议协商推送Push服务器和客户端之间进行通信的会话密钥;
当加密会话时,根据第二协议与客户端之间传输使用所述会话密钥加密后的会话。
结合第二方面,在第二方面的第一种可能的实现方式中,所述方法还包括:
在所述Push服务器和所述客户端的连接断开并重新连接后,若所述Push服务器和所述客户端的连接断开的时间长度小于或者等于预设阈值,则当加密会话时,根据所述第二协议与所述客户端之间传输使用所述会话密钥加密后的会话。
结合第二方面或者第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述方法还包括:
在所述Push服务器和所述客户端的连接断开并重新连接后,若所述Push服务器和所述客户端的连接断开的时间长度大于所述预设阈值,则所述客户端和所述Push服务器通过所述第一协议重新协商会话密钥,当加密会话时,根据所述第二协议与所述客户端之间传输使用重新协商后的会话密钥加密后的会话。
结合第二方面,在第二方面的第三种可能的实现方式中,所述根据第二协议与客户端之间传输使用所述会话密钥加密后的会话,包括:
根据第二协议将使用所述会话密钥加密后的会话传输到客户端;或者
根据第二协议接收客户端发送的使用所述会话密钥加密后的会话。
第三方面,一种客户端,所述客户端包括:
协商单元,用于通过第一协议协商客户端和推送Push服务器之间进行通信的会话密钥;
传输单元,用于当加密会话时,根据第二协议与Push服务器之间传输使用所述会话密钥加密后的会话。
结合第三方面,在第三方面的第一种可能的实现方式中,所述客户端还包括:
第一处理单元,用于在所述客户端和所述Push服务器的连接断开并重新连接后,若所述客户端和所述Push服务器的连接断开的时间长度小于或等于预设阈值,则当加密会话时,根据所述第二协议与所述Push服务器之间传输使用所述会话密钥加密后的会话。
结合第三方面或者第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,所述客户端还包括:
所述客户端还包括:
第二处理单元,用于在所述客户端和所述Push服务器的连接断开并重新连接后,若所述客户端和所述Push服务器的连接断开的时间长度大于所述预设阈值,则所述客户端和所述Push服务器通过所述第一协议重新协商会话密钥,当加密会话时,根据所述第二协议与所述Push服务器之间传输使用重新协商后的会话密钥加密后的会话。
结合第三方面或者第三方面的第一种可能的实现方式或者第三方面的第二种可能的实现方式,在第三方面的第三种可能的实现方式中,所述第一协议为安全传输协议TLS,或者,安全套接层SSL;所述第二协议为传输控制协议TCP,或者,用户数据报协议UDP。
结合第三方面,在第三方面的第四种可能的实现方式中,所述传输单元具体用于:
根据第二协议将使用所述会话密钥加密后的会话传输到Push服务器;或者
根据第二协议接收Push服务器发送的使用所述会话密钥加密后的会话。
第四方面,一种Push服务器,所述Push服务器包括:
协商单元,用于通过第一协议协商推送Push服务器和客户端之间进行通信的会话密钥;
传输单元,用于当加密会话时,根据第二协议与客户端之间传输使用所述会话密钥加密后的会话。
结合第四方面,在第四方面的第一种可能的实现方式中,所述Push服务器还包括:
第一处理单元,用于在所述Push服务器和所述客户端的连接断开并重新连接后,若所述Push服务器和所述客户端的连接断开的时间长度小于或者等于预设阈值,则当加密会话时,根据所述第二协议与所述客户端之间传输使用所述会话密钥加密后的会话。
结合第四方面或者第四方面的第一种可能的实现方式,在第四方面的第二种可能的实现方式中,所述Push服务器还包括:
第二处理单元,用于在所述Push服务器和所述客户端的连接断开并重新连接后,若所述Push服务器和所述客户端的连接断开的时间长度大于所述预设阈值,则所述客户端和所述Push服务器通过所述第一协议重新协商会话密钥,当加密会话时,根据所述第二协议与所述客户端之间传输使用重新协商后的会话密钥加密后的会话。
结合第四方面,在第四方面的第三种可能的实现方式中,所述根据第二协议与客户端之间传输使用所述会话密钥加密后的会话,包括:
根据第二协议将使用所述会话密钥加密后的会话传输到客户端;或者
根据第二协议接收客户端发送的使用所述会话密钥加密后的会话。
与现有技术相比,本发明实施例,通过第一协议协商会话密钥,然后通过第二协议传输加密后的会话,将协商密钥和传输会话的过程分开,由此协商密钥和传输会话可以使用不同的协议,传输会话的过程可以使用资源消耗比协商密钥的资源消耗少的协议,从而可以降低Push服务器负载、降低客户端流量的消耗。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种在Push服务器中传输会话的方法流程图;
图2是本发明实施例提供的一种在Push服务器中传输会话的方法示意图;
图3是本发明实施例提供的一种传输会话的方法流程图;
图4是本发明实施例提供的一种传输会话的方法示意图;
图5是本发明实施例提供的一种在Push服务器中传输会话闪断后连接的方法示意图;
图6a是本发明实施例提供的一种客户端的结构图;
图6b是本发明实施例提供的一种客户端的结构图;
图7a是本发明实施例提供的一种服务器的结构图;
图7b是本发明实施例提供的一种服务器的结构图;
图8是本发明实施例提供的一种客户端的结构图;
图9是本发明实施例提供的一种Push服务器的结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
以下所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
参考图1,图1是本发明实施例提供的一种传输会话的方法流程图。如图1所示,所述方法包括:
步骤101,通过第一协议协商客户端和Push服务器之间进行通信的会话密钥;
具体的,第一协议包括但不限于安全传输协议(Transpot Layer Security,TLS),或者,安全套接层(Secure Sockets Layer,SSL)。
步骤102,当加密会话时,客户端根据第二协议与Push服务器之间传输使用所述会话密钥加密后的会话。
具体的,第二协议为传输控制协议(Transmission Control Protocol,TCP)或者,用户数据报协议(User Datagram Protocol,UDP)。
可选地,所述客户端根据第二协议与Push服务器之间传输使用所述会话密钥加密后的会话,包括:
客户端根据第二协议将使用所述会话密钥加密后的会话传输到Push服务器;或者
客户端根据第二协议接收Push服务器发送的使用所述会话密钥加密后的会话。
也就是说,当客户端和Push服务器之间需要传输加密会话时,可以使用步骤101中协商的会话密钥进行加解密。
本发明实施例,通过第一协议协商会话密钥,然后通过第二协议传输加密后的会话,将协商密钥和传输会话的过程分开,由此协商密钥和传输会话可以使用不同的协议,传输会话的过程可以使用资源消耗比协商密钥的资源消耗少的协议,从而可以降低Push服务器负载、降低客户端流量的消耗。
参考图2,图2是本发明实施例提供的一种传输会话的方法流程图。如图2所示,所述方法包括:
步骤201,通过第一协议协商客户端和Push服务器之间进行通信的会话密钥;
具体的,第一协议包括但不限于TLS,或者,SSL。
步骤202,当加密会话时,Push服务器根据第二协议与客户端之间传输使用所述会话密钥加密后的会话。
具体的,第二协议为TCP,或者,UDP。
可选地,所述Push服务器根据第二协议与客户端之间传输使用所述会话密钥加密后的会话,包括:
Push服务器根据第二协议将使用所述会话密钥加密后的会话传输到客户端;或者
Push服务器根据第二协议接收客户端发送的使用所述会话密钥加密后的会话。
本发明实施例,通过第一协议协商会话密钥,然后通过第二协议传输加密后的会话,将协商密钥和传输会话的过程分开,由此协商密钥和传输会话可以使用不同的协议,传输会话的过程可以使用资源消耗比协商密钥的资源消耗少的协议,从而可以降低Push服务器负载、降低客户端流量的消耗。
参考图3,图3是本发明实施例提供的一种传输会话的方法流程图。如图3所示,
步骤301,通过第一协议协商客户端和Push服务器之间进行通信的会话密钥;
具体的,所述客户端通过第一协议向Push服务器请求,所述请求中携带有两个全局唯一标识符(Universally Unique Identifier,UUID),其中一个是会话密钥SessionKey,另一个是作为加密的初始向量Ivec,使得所述Push服务器收到请求后,产生一个UUID作为消息终端标识(TerminalID),记录SessionKey、Ivec、TerminalID,并回应所述客户端,通知所述客户端上线请求时需要用的TerminalID。
具体的,参考图4,图4是本发明实施例提供的一种传输会话的方法示意图。
可选的,本发明实施例使用一种对称加密算法(Aadvanced EncryptionStandard,AES),需要客户端与Push服务器之间先协商会话密钥,在一端使用密钥加密,另外一端使用密钥解密。步骤401——步骤403是密钥协商的过程。
步骤401,客户端先通过第一协议向Push服务器发送请求,所述请求中携带两个UUID,一个作为会话密钥SessionKey,一个作为加密的初始向量IVec;
步骤402,Push服务器收到请求后,产生一个UUID作为消息TerminalID,并记录SessionKey、IVec、TerminalID记录下来;
步骤403,Push服务器回应所述客户端,并通知客户端上线请求时需要用的TerminalID。
在步骤301之后,执行步骤302。
步骤302,当加密会话时,客户端根据第二协议与Push服务器之间传输使用所述会话密钥加密后的会话;
具体的,所述客户端携带所述TerminalID登录所述Push服务器,使得所述Push服务器根据所述TerminalID获得DeviceID、SessionKey、Ivec,并使用所述SessionKey和所述Ivec解密登录,并给出响应;
其中,DeviceID是客户端上唯一ID,因为涉及隐私,不能在网络上明文传输,所以用TerminalID进行传输。在Push服务器数据库中记录TerminalID和DeviceID的对应关系。
所述客户端每隔指定时间发送心跳(heartbeat),使得所述Push服务器响应所述心跳。
所述客户端每隔指定时间(比如1分钟)发送心跳;
Push服务器给客户端心跳响应;
在后期的发送消息过程中,可以不定期的在请求中携带更改密钥的内容,Push服务器在发现请求中携带更改密钥的内容,则立刻更新自己的SessionKey/IVec。
其中,所述心跳是用于检测所述客户端和所述Push服务器是否连接,当客户端向所述Push服务器发送心跳,若未收到Push服务器返回的心跳响应,则检测所述客户端和所述Push服务器连接断开。
具体的,参考图4所示:
步骤404,客户端携带TermianlID登录Push服务器,登录消息需要用SessionKey/IVec做AES加密;
步骤405,Push服务器根据TerminalID获得DeviceID、SessionKey、IVec,使用SessionKey/IVec解密登录消息,并给出响应;
步骤406,客户端每隔指定时间(比如1分钟)发送心跳;
步骤407,Push服务器给所述客户端心跳响应;
步骤408,在后期的发消息过程中,不定期的在请求中携带更改密钥的内容,Push服务器在发现请求中携带更改密钥的内容,则更新自己的SessionKey/IVec。
在步骤302之后,执行步骤303。
步骤303,当所述客户端和所述Push服务器的连接断开并重新连接时,若所述客户端和所述Push服务器的连接断开的时间长度小于或等于预设阈值,则执行步骤304,若所述客户端和所述Push服务器的连接断开的时间长度大于预设阈值,则执行步骤305;
步骤304、当加密会话时,客户端根据所述第二协议与所述Push服务器之间传输使用所述会话密钥加密后的会话;
步骤305,所述客户端和所述Push服务器通过所述第一协议重新协商会话密钥,当加密会话时,根据所述第二协议与所述Push服务器之间传输使用重新协商后的会话密钥加密后的会话。
具体的,在移动互联网中,会经常出现连接闪断的情况,所以需要经常重连,如果每次都重新交换密钥,整个过程耗时长、流量大。
所以本步骤中,需要采用特别的重新连接的方法。客户端发现连接断开,则使用TerminalID直接连接Push服务器;Push服务器根据记录的TerminalID,如果客户端连接过,且断开的时间未超过预设阈值,则返回成功,否则返回失败,这时,客户端与服务端需要重新交互会话密钥;继续正常流程,向所述Push服务器发送心跳,Push服务器继续心跳响应。
具体的,参考图5,图5是本发明实施例提供的一种传输会话闪断后连接的方法示意图。
步骤501,客户端发现连接断开,则使用TerminalID直接连接Push服务器;
步骤502,Push服务器根据记录的TermianlID,如果客户端连接过,且断开的时间未超过预设阈值,则返回成功,执行步骤503和504,否则返回失败,当返回失败后,客户端与服务端需要重新交互会话密钥;
步骤503,继续正常流程,所述客户端发送心跳;
步骤504,所述Push服务器响应心跳。
本实施例中将会话传输过程分为两步,首先通过第一协议与Push服务器交换密钥,保证密钥不会泄露,后面的传输可以使用该密钥进行加密传输,所以安全性上与SSL/TLS一致,还可以通过第一协议更改密钥,进一步提升了传输的安全性;服务端可以设置密钥有效期,比如:24小时,在这个时间内,不必重新协商密钥;其次通过第二协议传输会话,可以根据会话的隐秘程度,选择是否对会话加密,使得客户端与Push服务器的交互具有更大的灵活性。
若第一协议是SSL,第二协议是TCP,从下表中可以看出,TCP与SSL建立连接耗时的测试,每次测试中200用户并发,供测试5次,然后取平均值,从测试结果看,TCP的耗时是SSL的38.5%。
1 | 2 | 3 | 4 | 5 | 平均 | |
TCP | 102890 | 134181 | 87341 | 119066 | 177999 | 124295.4 |
SSL | 276483 | 171173 | 256563 | 301897 | 605858 | 322394.8 |
单位:微秒(百万分之一秒)
并且,每次SSL重连的流量消耗约1.5K,TLS重连约900字节,TCP重连约120字节,因为在移动互联网中,闪断是很频繁的,重连次数很多,比如移动中切换小区、进入电梯等情况,根据统计,每天约30次左右。
心跳报文在Push服务器中占绝大多数,视业务系统的忙闲程度不同而不同,如果使用AES128加密,一个心跳使用一个字节,实测加密后的长度至少为91字节;如果用TCP,实测长度为60字节。每次心跳来回将节省62(2*(91-60))字节,如果每5分钟一次心跳,则一天约节约17K流量(62*1440/5)。如果全天开机,心跳周期5分钟,心跳周期5分钟,每天重连30次,则每30天节省的最少流量为735K((780*30+62*1440/5)*30)。
每建立一个SSL连接“物理内存+虚拟内存”消耗约100K,建立一个TCP链接消耗不足10K。如果使用TCP连接,对服务端内存消耗将减少10倍左右。加密过程的消耗与SSL/TLS类似,但是因为在本实施例中,心跳报文可以不加密,而心跳报文的数量是Push服务器中最多的报文,所以加密的开销也会降低。
使用第一协议协商会话密钥,第二协议传输会话可以节省Push服务器的负载和流量。
本发明实施例,通过第一协议协商会话密钥,然后通过第二协议传输加密后的会话,将协商密钥和传输会话的过程分开,由此协商密钥和传输会话可以使用不同的协议,可以在传输会话时使用TCP或者UDP协议取代SSL或者TLS协议,从而可以降低Push服务器负载、降低客户端流量的消耗。
参考图6a,图6a是本发明实施例提供的一种客户端的结构图。如图6a所示,所述客户端包括:
协商单元601,用于通过第一协议协商客户端和推送Push服务器之间进行通信的会话密钥;
具体的,第一协议包括但不限于TLS,或者,SSL。
传输单元602,用于当加密会话时,根据第二协议与Push服务器之间传输使用所述会话密钥加密后的会话。
具体的,第二协议为TCP或者,UDP。
可选地,所述传输单元602具体用于:
根据第二协议将使用所述会话密钥加密后的会话传输到Push服务器;或者
根据第二协议接收Push服务器发送的使用所述会话密钥加密后的会话。
也就是说,当客户端和Push服务器之间需要传输加密会话时,可以使用协商单元601中协商的会话密钥进行加解密。
本发明实施例,通过第一协议协商会话密钥,然后通过第二协议传输加密后的会话,将协商密钥和传输会话的过程分开,由此协商密钥和传输会话可以使用不同的协议,传输会话的过程可以使用资源消耗比协商密钥的资源消耗少的协议,从而可以降低Push服务器负载、降低客户端流量的消耗。
可选地,参考图6b,图6b是本发明实施例提供的一种客户端的结构图。所述客户端还包括:
第一处理单元603,用于在所述客户端和所述Push服务器的连接断开并重新连接后,若所述客户端和所述Push服务器的连接断开的时间长度小于或等于预设阈值,则当加密会话时,根据所述第二协议与所述Push服务器之间传输使用所述会话密钥加密后的会话。
第二处理单元604,用于在所述客户端和所述Push服务器的连接断开并重新连接后,若所述客户端和所述Push服务器的连接断开的时间长度大于所述预设阈值,则所述客户端和所述Push服务器通过所述第一协议重新协商会话密钥,当加密会话时,根据所述第二协议与所述Push服务器之间传输使用重新协商后的会话密钥加密后的会话。
具体的,参考图3的实施例的描述。
本发明实施例,通过第一协议协商会话密钥,然后通过第二协议传输加密后的会话,将协商密钥和传输会话的过程分开,由此协商密钥和传输会话可以使用不同的协议,可以在传输会话时使用TCP或者UDP协议取代SSL或者TLS协议,从而可以降低Push服务器负载、降低客户端流量的消耗。
参考图7a,图7a是本发明实施例提供的一种服务器的结构图。如图7a所示,所述服务器包括:
协商单元701,用于通过第一协议协商推送Push服务器和客户端之间进行通信的会话密钥;
具体的,第一协议包括但不限于TLS,或者,SSL。
传输单元702,用于当加密会话时,根据第二协议与客户端之间传输使用所述会话密钥加密后的会话。
具体的,第二协议为TCP,或者,UDP。
可选地,所述传输单元702,具体用于:
根据第二协议将使用所述会话密钥加密后的会话传输到客户端;或者
根据第二协议接收客户端发送的使用所述会话密钥加密后的会话。
本发明实施例,通过第一协议协商会话密钥,然后通过第二协议传输加密后的会话,将协商密钥和传输会话的过程分开,由此协商密钥和传输会话可以使用不同的协议,传输会话的过程可以使用资源消耗比协商密钥的资源消耗少的协议,从而可以降低Push服务器负载、降低客户端流量的消耗。
可选地,参考图7b,图7b是本发明实施例提供的一种服务器的结构图。所述客户端还包括:
第一处理单元703,用于在所述Push服务器和所述客户端的连接断开并重新连接后,若所述Push服务器和所述客户端的连接断开的时间长度小于或者等于预设阈值,则当加密会话时,根据所述第二协议与所述客户端之间传输使用所述会话密钥加密后的会话。
第二处理单元704,用于在所述Push服务器和所述客户端的连接断开并重新连接后,若所述Push服务器和所述客户端的连接断开的时间长度大于所述预设阈值,则所述客户端和所述Push服务器通过所述第一协议重新协商会话密钥,当加密会话时,根据所述第二协议与所述客户端之间传输使用重新协商后的会话密钥加密后的会话。
具体的,参考图3的实施例的描述。
本发明实施例,通过第一协议协商会话密钥,然后通过第二协议传输加密后的会话,将协商密钥和传输会话的过程分开,由此协商密钥和传输会话可以使用不同的协议,可以在传输会话时使用TCP或者UDP协议取代SSL或者TLS协议,从而可以降低Push服务器负载、降低客户端流量的消耗。
参考图8,图8是本发明实施例提供的一种客户端的结构图。参考图8,图8是本发明实施例提供的一种客户端800,本发明具体实施例并不对所述客户端800的具体实现做限定。所述客户端800包括:
处理器(processor)801,通信接口(Communications Interface)802,存储器(memory)803,总线804。
处理器801,通信接口802,存储器803通过总线804完成相互间的通信。
通信接口802,用于与Push服务器进行通信;
处理器801,用于执行存储在存储器803中的程序。
具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。
处理器801可能是一个中央处理器CPU,或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
存储器803,用于存放程序。存储器803可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory)。程序具体包括:
通过第一协议协商客户端和推送Push服务器之间进行通信的会话密钥;
当加密会话时,根据第二协议与Push服务器之间传输使用所述会话密钥加密后的会话。
所述程序还包括:
在所述客户端和所述Push服务器的连接断开并重新连接后,若所述客户端和所述Push服务器的连接断开的时间长度小于或等于预设阈值,则当加密会话时,根据所述第二协议与所述Push服务器之间传输使用所述会话密钥加密后的会话。
所述程序还包括:
在所述客户端和所述Push服务器的连接断开并重新连接后,若所述客户端和所述Push服务器的连接断开的时间长度大于所述预设阈值,则所述客户端和所述Push服务器通过所述第一协议重新协商会话密钥,当加密会话时,根据所述第二协议与所述Push服务器之间传输使用重新协商后的会话密钥加密后的会话。
所述第一协议为安全传输协议TLS,或者,安全套接层SSL;所述第二协议为传输控制协议TCP,或者,用户数据报协议UDP。
所述根据第二协议与Push服务器之间传输使用所述会话密钥加密后的会话,包括:
根据第二协议将使用所述会话密钥加密后的会话传输到Push服务器;或者
根据第二协议接收Push服务器发送的使用所述会话密钥加密后的会话。
本发明实施例,通过第一协议协商会话密钥,然后通过第二协议传输加密后的会话,将协商密钥和传输会话的过程分开,由此协商密钥和传输会话可以使用不同的协议,传输会话的过程可以使用资源消耗比协商密钥的资源消耗少的协议,从而可以降低Push服务器负载、降低客户端流量的消耗。
参考图9,图9是本发明实施例提供的一种Push服务器的装置结构图。参考图9,图9是本发明实施例提供的一种Push服务器900,本发明具体实施例并不对所述Push服务器900的具体实现做限定。所述Push服务器900包括:
处理器(processor)901,通信接口(Communications Interface)902,存储器(memory)903,总线904。
处理器901,通信接口902,存储器903通过总线904完成相互间的通信。
通信接口902,用于与客户端进行通信;
处理器901,用于执行存储在存储器903中的程序。
具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。
处理器901可能是一个中央处理器CPU,或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。
存储器903,用于存放程序。存储器903可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory)。程序具体包括:
通过第一协议协商推送Push服务器和客户端之间进行通信的会话密钥;
当加密会话时,根据第二协议与客户端之间传输使用所述会话密钥加密后的会话。
所述程序还包括:
在所述Push服务器和所述客户端的连接断开并重新连接后,若所述Push服务器和所述客户端的连接断开的时间长度小于或者等于预设阈值,则当加密会话时,根据所述第二协议与所述客户端之间传输使用所述会话密钥加密后的会话。
所述程序还包括:
在所述Push服务器和所述客户端的连接断开并重新连接后,若所述Push服务器和所述客户端的连接断开的时间长度大于所述预设阈值,则所述客户端和所述Push服务器通过所述第一协议重新协商会话密钥,当加密会话时,根据所述第二协议与所述客户端之间传输使用重新协商后的会话密钥加密后的会话。
所述根据第二协议与客户端之间传输使用所述会话密钥加密后的会话,包括:
根据第二协议将使用所述会话密钥加密后的会话传输到客户端;或者
根据第二协议接收客户端发送的使用所述会话密钥加密后的会话。
本发明实施例,通过第一协议协商会话密钥,然后通过第二协议传输加密后的会话,将协商密钥和传输会话的过程分开,由此协商密钥和传输会话可以使用不同的协议,传输会话的过程可以使用资源消耗比协商密钥的资源消耗少的协议,从而可以降低Push服务器负载、降低客户端流量的消耗。
以上所述仅为本发明的优选实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明要求包含范围之内。
Claims (18)
1.一种传输会话的方法,其特征在于,所述方法包括:
通过第一协议协商客户端和推送Push服务器之间进行通信的会话密钥;
当加密会话时,根据第二协议与Push服务器之间传输使用所述会话密钥加密后的会话。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述客户端和所述Push服务器的连接断开并重新连接后,若所述客户端和所述Push服务器的连接断开的时间长度小于或等于预设阈值,则当加密会话时,根据所述第二协议与所述Push服务器之间传输使用所述会话密钥加密后的会话。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
在所述客户端和所述Push服务器的连接断开并重新连接后,若所述客户端和所述Push服务器的连接断开的时间长度大于所述预设阈值,则所述客户端和所述Push服务器通过所述第一协议重新协商会话密钥,当加密会话时,根据所述第二协议与所述Push服务器之间传输使用重新协商后的会话密钥加密后的会话。
4.根据权利要求1-3任一所述的方法,其特征在于:
所述第一协议为安全传输协议TLS,或者,安全套接层SSL;所述第二协议为传输控制协议TCP,或者,用户数据报协议UDP。
5.根据权利要求1所述的方法,其特征在于,所述根据第二协议与Push服务器之间传输使用所述会话密钥加密后的会话,包括:
根据第二协议将使用所述会话密钥加密后的会话传输到Push服务器;或者
根据第二协议接收Push服务器发送的使用所述会话密钥加密后的会话。
6.一种传输会话的方法,其特征在于,所述方法包括:
通过第一协议协商推送Push服务器和客户端之间进行通信的会话密钥;
当加密会话时,根据第二协议与客户端之间传输使用所述会话密钥加密后的会话。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
在所述Push服务器和所述客户端的连接断开并重新连接后,若所述Push服务器和所述客户端的连接断开的时间长度小于或者等于预设阈值,则当加密会话时,根据所述第二协议与所述客户端之间传输使用所述会话密钥加密后的会话。
8.根据权利要求6或7所述的方法,其特征在于,所述方法还包括:
在所述Push服务器和所述客户端的连接断开并重新连接后,若所述Push服务器和所述客户端的连接断开的时间长度大于所述预设阈值,则所述客户端和所述Push服务器通过所述第一协议重新协商会话密钥,当加密会话时,根据所述第二协议与所述客户端之间传输使用重新协商后的会话密钥加密后的会话。
9.根据权利要求6所述的方法,其特征在于,所述根据第二协议与客户端之间传输使用所述会话密钥加密后的会话,包括:
根据第二协议将使用所述会话密钥加密后的会话传输到客户端;或者
根据第二协议接收客户端发送的使用所述会话密钥加密后的会话。
10.一种客户端,其特征在于,所述客户端包括:
协商单元,用于通过第一协议协商客户端和推送Push服务器之间进行通信的会话密钥;
传输单元,用于当加密会话时,根据第二协议与Push服务器之间传输使用所述会话密钥加密后的会话。
11.根据权利要求10所述的客户端,其特征在于,所述客户端还包括:
第一处理单元,用于在所述客户端和所述Push服务器的连接断开并重新连接后,若所述客户端和所述Push服务器的连接断开的时间长度小于或等于预设阈值,则当加密会话时,根据所述第二协议与所述Push服务器之间传输使用所述会话密钥加密后的会话。
12.根据权利要求10或11所述的客户端,其特征在于,所述客户端还包括:
第二处理单元,用于在所述客户端和所述Push服务器的连接断开并重新连接后,若所述客户端和所述Push服务器的连接断开的时间长度大于所述预设阈值,则所述客户端和所述Push服务器通过所述第一协议重新协商会话密钥,当加密会话时,根据所述第二协议与所述Push服务器之间传输使用重新协商后的会话密钥加密后的会话。
13.根据权利要求10-12任一所述的客户端,其特征在于:
所述第一协议为安全传输协议TLS,或者,安全套接层SSL;所述第二协议为传输控制协议TCP,或者,用户数据报协议UDP。
14.根据权利要求10所述的客户端,其特征在于,所述传输单元具体用于:
根据第二协议将使用所述会话密钥加密后的会话传输到Push服务器;或者
根据第二协议接收Push服务器发送的使用所述会话密钥加密后的会话。
15.一种Push服务器,其特征在于,所述Push服务器包括:
协商单元,用于通过第一协议协商推送Push服务器和客户端之间进行通信的会话密钥;
传输单元,用于当加密会话时,根据第二协议与客户端之间传输使用所述会话密钥加密后的会话。
16.根据权利要求15所述的Push服务器,其特征在于,所述Push服务器还包括:
第一处理单元,用于在所述Push服务器和所述客户端的连接断开并重新连接后,若所述Push服务器和所述客户端的连接断开的时间长度小于或者等于预设阈值,则当加密会话时,根据所述第二协议与所述客户端之间传输使用所述会话密钥加密后的会话。
17.根据权利要求15或16所述的Push服务器,其特征在于,所述Push服务器还包括:
第二处理单元,用于在所述Push服务器和所述客户端的连接断开并重新连接后,若所述Push服务器和所述客户端的连接断开的时间长度大于所述预设阈值,则所述客户端和所述Push服务器通过所述第一协议重新协商会话密钥,当加密会话时,根据所述第二协议与所述客户端之间传输使用重新协商后的会话密钥加密后的会话。
18.根据权利要求15所述的Push服务器,其特征在于,所述根据第二协议与客户端之间传输使用所述会话密钥加密后的会话,包括:
根据第二协议将使用所述会话密钥加密后的会话传输到客户端;或者
根据第二协议接收客户端发送的使用所述会话密钥加密后的会话。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013076583 | 2013-05-31 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103858389A true CN103858389A (zh) | 2014-06-11 |
CN103858389B CN103858389B (zh) | 2016-11-02 |
Family
ID=50864346
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380002735.1A Active CN103858389B (zh) | 2013-05-31 | 2013-05-31 | 一种传输会话的方法、客户端及Push服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103858389B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016155495A1 (zh) * | 2015-04-02 | 2016-10-06 | 阿里巴巴集团控股有限公司 | 数据交换方法、装置及设备 |
CN108400901A (zh) * | 2018-01-02 | 2018-08-14 | 深圳壹账通智能科技有限公司 | 应用的测试方法、终端设备及计算机可读存储介质 |
CN109474667A (zh) * | 2018-10-12 | 2019-03-15 | 广州雷迅创新科技有限公司 | 一种基于tcp和udp的无人机通信方法 |
CN111385287A (zh) * | 2020-02-20 | 2020-07-07 | 视联动力信息技术股份有限公司 | 一种业务系统的网络重连方法及装置 |
CN111800433A (zh) * | 2020-07-20 | 2020-10-20 | 延锋伟世通电子科技(上海)有限公司 | 节省服务器资源和终端流量的方法 |
CN117596076A (zh) * | 2024-01-18 | 2024-02-23 | 北京华耀科技有限公司 | 会话数据传输方法、系统、装置、设备和存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1787492A (zh) * | 2004-12-06 | 2006-06-14 | 北京掌迅互动信息技术有限公司 | 一种移动即时通信方法及其服务器和客户端的连接方式 |
CN101163145A (zh) * | 2007-11-13 | 2008-04-16 | 华为技术有限公司 | 一种传输数据包的方法及装置和协商密钥的方法 |
CN101515896A (zh) * | 2009-03-20 | 2009-08-26 | 成都市华为赛门铁克科技有限公司 | 安全套接字层协议报文转发方法、装置、系统及交换机 |
WO2011137781A1 (zh) * | 2010-07-14 | 2011-11-10 | 华为技术有限公司 | 业务通信的方法、系统、推送客户端和用户设备 |
CN102685768A (zh) * | 2011-03-08 | 2012-09-19 | 华为技术有限公司 | 心跳消息的处理方法、心跳周期的获取方法及接入网设备 |
WO2013012184A2 (ko) * | 2011-07-19 | 2013-01-24 | 에스케이텔레콤 주식회사 | 메시지 부하 분산을 위한 푸시 서비스 제공 시스템 및 그 방법 |
-
2013
- 2013-05-31 CN CN201380002735.1A patent/CN103858389B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1787492A (zh) * | 2004-12-06 | 2006-06-14 | 北京掌迅互动信息技术有限公司 | 一种移动即时通信方法及其服务器和客户端的连接方式 |
CN101163145A (zh) * | 2007-11-13 | 2008-04-16 | 华为技术有限公司 | 一种传输数据包的方法及装置和协商密钥的方法 |
CN101515896A (zh) * | 2009-03-20 | 2009-08-26 | 成都市华为赛门铁克科技有限公司 | 安全套接字层协议报文转发方法、装置、系统及交换机 |
WO2011137781A1 (zh) * | 2010-07-14 | 2011-11-10 | 华为技术有限公司 | 业务通信的方法、系统、推送客户端和用户设备 |
CN102685768A (zh) * | 2011-03-08 | 2012-09-19 | 华为技术有限公司 | 心跳消息的处理方法、心跳周期的获取方法及接入网设备 |
WO2013012184A2 (ko) * | 2011-07-19 | 2013-01-24 | 에스케이텔레콤 주식회사 | 메시지 부하 분산을 위한 푸시 서비스 제공 시스템 및 그 방법 |
Non-Patent Citations (1)
Title |
---|
张雷,金德: "基于Push通道客户端的智能心跳机制研究与优化", 《工业控制计算机》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016155495A1 (zh) * | 2015-04-02 | 2016-10-06 | 阿里巴巴集团控股有限公司 | 数据交换方法、装置及设备 |
CN106161224A (zh) * | 2015-04-02 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 数据交换方法、装置及设备 |
US10419212B2 (en) | 2015-04-02 | 2019-09-17 | Alibaba Group Holding Limited | Methods, systems, apparatuses, and devices for securing network communications using multiple security protocols |
CN108400901A (zh) * | 2018-01-02 | 2018-08-14 | 深圳壹账通智能科技有限公司 | 应用的测试方法、终端设备及计算机可读存储介质 |
CN109474667A (zh) * | 2018-10-12 | 2019-03-15 | 广州雷迅创新科技有限公司 | 一种基于tcp和udp的无人机通信方法 |
CN109474667B (zh) * | 2018-10-12 | 2021-05-25 | 广州雷迅创新科技股份有限公司 | 一种基于tcp和udp的无人机通信方法 |
CN111385287A (zh) * | 2020-02-20 | 2020-07-07 | 视联动力信息技术股份有限公司 | 一种业务系统的网络重连方法及装置 |
CN111800433A (zh) * | 2020-07-20 | 2020-10-20 | 延锋伟世通电子科技(上海)有限公司 | 节省服务器资源和终端流量的方法 |
CN117596076A (zh) * | 2024-01-18 | 2024-02-23 | 北京华耀科技有限公司 | 会话数据传输方法、系统、装置、设备和存储介质 |
CN117596076B (zh) * | 2024-01-18 | 2024-04-02 | 北京华耀科技有限公司 | 会话数据传输方法、系统、装置、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103858389B (zh) | 2016-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Kumar et al. | Implementation and analysis of QUIC for MQTT | |
CN103858389B (zh) | 一种传输会话的方法、客户端及Push服务器 | |
CN108401011B (zh) | 内容分发网络中握手请求的加速方法、设备及边缘节点 | |
CN105516080B (zh) | Tcp连接的处理方法、装置及系统 | |
EP2710776B1 (en) | Anonymous signalling | |
Tiloca et al. | Axiom: DTLS-based secure IoT group communication | |
CN103108037B (zh) | 一种通信方法,Web服务器及Web通信系统 | |
CN106657134B (zh) | 稳定通信的方法、系统、挖矿服务器和客户端 | |
CN111988323B (zh) | IPSec隧道建立方法、装置、网络系统及电子设备 | |
JP2008028996A (ja) | 通信システム、通信方法、およびプログラム | |
CN104539517A (zh) | 一种基于智能终端本地服务器的聊天方法及系统 | |
CN109104273A (zh) | 报文处理方法以及接收端服务器 | |
CN112152914A (zh) | 一种基于北斗短报文的即时通信方法以及系统 | |
WO2012106411A1 (en) | Methods and systems for enabling multiple accounts support | |
CN112437153A (zh) | 一种设备联动处理方法及装置 | |
CN103516766A (zh) | 一种客户端与应用服务器间进行通信的方法和系统 | |
CN113852595B (zh) | 一种嵌入式设备跨网段加密通信方法 | |
CN109831404B (zh) | 一种兼容多终端的即时通讯系统及方法 | |
US10630479B2 (en) | Network communication method having function of recovering terminal session | |
Thomson et al. | Generic event delivery using http push | |
CN103618665A (zh) | 一种向客户端推送消息的方法 | |
WO2013159492A1 (zh) | 信息上报与下载的方法及系统 | |
CN111866060A (zh) | 通信设备的tls连接方法、通信设备和通信系统 | |
CN116192927A (zh) | 基于SaaS服务的数据传输方法、装置、计算机设备和介质 | |
JP2023089118A (ja) | コアネットワークノード、及びその通信方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |