发明内容
本发明提供一种流媒体服务请求方法、装置和系统,用以提高媒体服务器的安全性,保护媒体服务器不容易受到攻击,避免了媒体服务器瘫痪、数据丢失等风险。
第一方面,本发明提供一种流媒体服务请求方法,包括:
网关设备与客户端建立安全套接层SSL隧道;
所述网关设备接收所述客户端通过所述SSL隧道传输的第一数据请求消息,所述第一数据请求消息为所述客户端根据SSL隧道封装协议对第二数据请求消息进行封装得到的,所述第二数据请求消息的目的互联网协议IP地址为媒体服务器的IP地址、目的端口号为所述媒体服务器的端口号,所述第一数据请求消息的目的IP地址为所述网关设备的IP地址、目的端口号为所述网关设备的端口号;
所述网关设备对所述第一数据请求消息进行SSL解封装,得到所述第二数据请求消息;
所述网关设备将所述第二数据请求消息发送给所述媒体服务器,以使所述媒体服务器根据所述第二数据请求消息将流媒体数据传输给所述客户端。
在第一方面的第一种可能的实现方式中,所述网关设备与客户端建立安全套接层SSL隧道包括:
所述网关设备接收所述客户端发送的SSL隧道建立请求;
所述网关设备根据所述SSL隧道建立请求,与所述客户端建立所述SSL隧道,并向所述客户端发送SSL隧道建立响应,所述SSL隧道建立响应包括所述网关设备的互联网协议IP地址和所述网关设备的端口号。
结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述网关设备接收所述客户端通过所述SSL隧道传输的第一数据请求消息之前,包括:
所述网关设备拦截所述客户端发送给所述媒体服务器的第一传输控制协议TCP连接建立请求,所述第一TCP连接建立请求是所述客户端经过网络地址转换NAT设备和所述客户端侧的防火墙发送给所述媒体服务器的,所述第一TCP连接建立请求的源IP地址为所述NAT设备转换后的公网IP地址、源端口号为所述NAT设备转换后的公网端口号、目的IP地址为所述媒体服务器的IP地址、目的端口号为所述媒体服务器的端口号;
所述网关设备根据所述第一TCP连接建立请求,通过所述NAT设备和所述客户端侧的防火墙向所述客户端返回第一TCP连接建立响应,以与所述客户端建立第一TCP连接,所述第一TCP连接建立响应包括所述公网IP地址和所述公网端口号,以使所述客户端侧的防火墙中生成包含所述公网IP地址、所述公网端口号、所述媒体服务器的IP地址和所述媒体服务器的端口号的记录,以使所述媒体服务器将所述流媒体数据直接传输给所述客户端。
结合第一方面的第二种可能实现的方式,在第一方面的第三种可能的实现方式中,所述第二数据请求消息的源IP地址为所述公网IP地址、源端口号为所述公网端口号。
结合第一方面或第一方面的第一种可能实现的方式或第一方面的第二种可能实现的方式或第一方面的第三种可能实现的方式,在第一方面的第四种可能实现的方式中,所述网关设备将所述第二数据请求消息发送给所述媒体服务器之前,包括:
所述网关设备根据所述第二数据请求消息,向所述媒体服务器发送第二TCP连接建立请求;
所述网关设备接收所述媒体服务器发送的第二TCP连接建立响应,以与所述媒体服务器建立第二TCP连接。
第二方面,本发明实施例还提供一种流媒体服务请求方法,包括:
客户端与网关设备之间建立安全套接层SSL隧道;
所述客户端生成用于向媒体服务器请求流媒体数据的第二数据请求消息,并根据SSL隧道封装协议对所述第二数据请求消息进行封装得到第一数据请求消息,所述第二数据请求消息的目的互联网协议IP地址为所述媒体服务器的IP地址、目的端口号为所述媒体服务器的端口号,所述第一数据请求消息的目的IP地址为所述网关设备的IP地址、目的端口号为所述网关设备的端口号;
所述客户端将所述第一数据请求消息通过所述SSL隧道发送给所述网关设备,以使所述网关设备从所述第一数据请求消息中获取所述第二数据请求消息并发送给所述媒体服务器;
所述客户端接收所述媒体服务器根据所述第二数据请求消息发送的所述流媒体数据。
在第二方面的第一种可能实现的方式中,所述客户端与网关设备之间建立安全套接层SSL隧道包括:
所述客户端向所述网关设备发送SSL隧道建立请求,以使所述网关设备与所述客户端建立所述SSL隧道;
所述客户端接收所述网关设备发送的SSL隧道建立响应,所述SSL隧道建立响应包括所述网关设备的IP地址和所述网关设备的端口号。
结合第二方面或第二方面的第一种可能实现的方式,在第二方面的第二种可能实现的方式中,所述客户端将所述第一数据请求消息通过所述SSL隧道发送给所述网关设备之前,包括:
所述客户端经过网络地址转换NAT设备和所述客户端侧的防火墙向所述媒体服务器发送第一传输控制协议TCP连接建立请求,所述第一TCP连接建立请求的源IP地址为所述NAT设备转换后的公网IP地址、源端口号为所述NAT设备转换后的公网端口号、目的IP地址为所述媒体服务器的IP地址、目的端口号为所述媒体服务器的端口号;
所述客户端接收所述网关设备通过所述NAT设备和所述客户端侧的防火墙发送的第一TCP连接建立响应,以与所述网关设备建立第一TCP连接,所述第一TCP连接建立响应是所述网关设备根据所拦截的所述第一TCP连接建立请求生成并返回的,所述第一TCP连接建立响应包括所述公网IP地址和所述公网端口号,以使所述客户端侧的防火墙中生成包含所述公网IP地址、所述公网端口号、所述媒体服务器的IP地址和所述媒体服务器的端口号的记录,以使所述媒体服务器将所述流媒体数据直接传输给所述客户端。
结合第二方面的第二种可能实现的方式,在第二方面的第三种可能实现的方式中,所述第二数据请求消息的源IP地址为所述公网IP地址、源端口号为所述公网端口号。
结合第二方面的第二种可能实现的方式或第二方面的第三种可能实现的方式,在第二方面的第四种可能实现的方式中,所述客户端经过NAT设备和所述客户端侧的防火墙向所述媒体服务器发送第一TCP连接建立请求之前,包括:
所述客户端向调度服务器发送用于请求获取所述媒体服务器的IP地址的获取请求消息,所述调度服务器存储有所述媒体服务器的IP地址;
所述客户端接收所述调度服务器发送的所述媒体服务器的IP地址。
第三方面,本发明实施例提供一种网关设备,包括:
建立单元,用于与客户端建立安全套接层SSL隧道;
接收单元,与所述建立单元连接,用于接收所述客户端通过所述SSL隧道传输的第一数据请求消息,所述第一数据请求消息为所述客户端根据SSL隧道封装协议对第二数据请求消息进行封装得到的,所述第二数据请求消息的目的IP地址为媒体服务器的IP地址、目的端口号为所述媒体服务器的端口号,所述第一数据请求消息的目的IP地址为所述网关设备的IP地址、目的端口号为所述网关设备的端口号;
解封装单元,与所述接收单元连接,用于对所述第一数据请求消息进行SSL解封装,得到所述第二数据请求消息;
发送单元,与所述解封装单元连接,用于将所述第二数据请求消息发送给所述媒体服务器,以使所述媒体服务器根据所述第二数据请求消息将流媒体数据传输给所述客户端。
在第三方面的第一种可能的实现方式中,所述建立单元具体用于接收所述客户端发送的SSL隧道建立请求,根据所述SSL隧道建立请求,与所述客户端建立所述SSL隧道,并向所述客户端发送SSL隧道建立响应,所述SSL隧道建立响应包括所述网关设备的互联网协议IP地址和所述网关设备的端口号。
结合第三方面或第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,所述接收单元还用于在接收所述客户端通过所述SSL隧道传输的所述第一数据请求消息之前,拦截所述客户端发送给所述媒体服务器的第一传输控制协议TCP连接建立请求,所述第一TCP连接建立请求是所述客户端经过网络地址转换NAT设备和所述客户端侧的防火墙发送给所述媒体服务器的,所述第一TCP连接建立请求的源IP地址为所述NAT设备转换后的公网IP地址、源端口号为所述NAT设备转换后的公网端口号、目的IP地址为所述媒体服务器的IP地址、目的端口号为所述媒体服务器的端口号;
所述建立单元还用于根据所述第一TCP连接建立请求,通过所述NAT设备和所述客户端侧的防火墙向所述客户端返回第一TCP连接建立响应,以与所述客户端建立第一TCP连接,所述第一TCP连接建立响应包括所述公网IP地址和所述公网端口号,以使所述客户端侧的防火墙中生成包含所述公网IP地址、所述公网端口号、所述媒体服务器的IP地址和所述媒体服务器的端口号的记录,以使所述媒体服务器将所述流媒体数据直接传输给所述客户端。
结合第三方面的第二种可能实现的方式,在第三方面的第三种可能的实现方式中,所述第二数据请求消息的源IP地址为所述公网IP地址、源端口号为所述公网端口号。
结合第三方面或第三方面的第一种可能实现的方式或第三方面的第二种可能实现的方式或第三方面的第三种可能实现的方式,在第三方面的第四种可能实现的方式中,所述发送单元还用于在将所述第二数据请求消息发送给所述媒体服务器之前,根据所述第二数据请求消息,向所述媒体服务器发送第二TCP连接建立请求;
所述建立单元还用于接收所述媒体服务器发送的第二TCP连接建立响应,以与所述媒体服务器建立第二TCP连接。
第四方面,本发明实施例提供一种客户端,包括:
建立单元,用于与网关设备之间建立安全套接层SSL隧道;
封装单元,用于生成用于向媒体服务器请求流媒体数据的第二数据请求消息,并根据SSL隧道封装协议对所述第二数据请求消息进行封装得到第一数据请求消息,所述第二数据请求消息的目的互联网协议IP地址为所述媒体服务器的IP地址、目的端口号为所述媒体服务器的端口号,所述第一数据请求消息的目的IP地址为所述网关设备的IP地址、目的端口号为所述网关设备的端口号;
发送单元,与所述建立单元和所述封装单元连接,用于将所述第一数据请求消息通过所述SSL隧道发送给所述网关设备,以使所述网关设备从所述第一数据请求消息中获取所述第二数据请求消息并发送给所述媒体服务器;
接收单元,与所述发送单元连接,用于接收所述媒体服务器根据所述第二数据请求消息发送的所述流媒体数据。
在第四方面的第一种可能实现的方式中,所述建立单元具体用于向所述网关设备发送SSL隧道建立请求,以使所述网关设备与所述客户端建立所述SSL隧道,接收所述网关设备发送的SSL隧道建立响应,以与所述网关设备建立所述SSL隧道。
结合第四方面或第四方面的第一种可能实现的方式,在第四方面的第二种可能实现的方式中,所述发送单元还用于在将所述第一数据请求消息通过所述SSL隧道发送给所述网关设备之前,经过网络地址转换NAT设备和所述客户端侧的防火墙向所述媒体服务器发送第一传输控制协议TCP连接建立请求,所述第一TCP连接建立请求的源IP地址为所述NAT设备转换后的公网IP地址、源端口号为所述NAT设备转换后的公网端口号、目的IP地址为所述媒体服务器的IP地址、目的端口号为所述媒体服务器的端口号;
所述建立单元还用于接收所述网关设备通过所述NAT设备和所述客户端侧的防火墙发送的第一TCP连接建立响应,以与所述网关设备建立第一TCP连接,所述第一TCP连接建立响应是所述网关设备根据所拦截的所述第一TCP连接建立请求生成并返回的,所述第一TCP连接建立响应包括所述公网IP地址和所述公网端口号,以使所述客户端侧的防火墙中生成包含所述公网IP地址、所述公网端口号、所述媒体服务器的IP地址和所述媒体服务器的端口号的记录,以使所述媒体服务器将所述流媒体数据直接传输给所述客户端。
结合第四方面的第二种可能实现的方式,在第四方面的第三种可能实现的方式中,所述第二数据请求消息的源IP地址为所述公网IP地址、源端口号为所述公网端口号。
结合第四方面的第二种可能实现的方式或第四方面的第三种可能实现的方式,在第四方面的第四种可能实现的方式中,所述发送单元还用于在经过所述NAT设备和所述客户端侧的防火墙向所述媒体服务器发送第一TCP连接建立请求之前,向调度服务器发送用于请求获取所述媒体服务器的IP地址的获取请求消息,所述调度服务器存储有所述媒体服务器的IP地址;
所述接收单元还用于接收所述调度服务器发送的所述媒体服务器的IP地址。
第五方面,本发明实施例提供一种流媒体服务请求系统,包括如上所述的网关设备,以及如上所述的客户端,所述网关设备与所述客户端通信连接。
本发明实施例提供流媒体服务请求方法、装置和系统,通过网关设备与客户端建立SSL隧道;网关设备接收客户端通过SSL隧道传输的第一数据请求消息,第一数据请求消息为客户端根据SSL隧道封装协议对第二数据请求消息进行封装得到的,网关设备对第一数据请求消息进行SSL解封装,得到第二数据请求消息;网关设备将第二数据请求消息发送给媒体服务器,以使媒体服务器根据第二数据请求消息将流媒体数据传输给客户端;从而安全的实现了客户端请求流媒体服务的过程。由于客户端通过SSL隧道访问媒体服务器采用的是网关设备的安全的端口号,使得媒体服务器的端口号没有直接暴露于客户端,从而保护媒体服务器不容易受到攻击,避免了媒体服务器因不法攻击瘫痪、数据丢失等风险。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明流媒体服务请求方法实施例一的流程图,如图1所示,本实施例的方法可以包括:
步骤101、网关设备与客户端建立SSL隧道。
其中,安全套接层(Secure Sockets Layer,简称为SSL)协议是基于公钥密码体制的网络安全协议,可用于在客户端和服务器之间建立一条安全通道,实现互联网上信息传送的保密性。SSL协议上层握手协议完成客户端与服务器间相互认证,协商加密算法与密钥。SSL协议下层记录协议建立在可靠的传输协议之上完成数据加密和鉴别。通过对称密码算法确保数据传输的机密性,通过哈希运算消息认证码(Hash-based Message Authentication Code,简称为HMAC)算法确保数据传输过程的完整性。由此可见,SSL协议确保了数据通信安全。
本实施例中,网关设备与客户端之间需要建立SSL隧道,以使网关设备与客户端之间可以通过SSL隧道传输信息。在一种可行的实现方式中,在网络配置时,即在网关设备与客户端之间配置建立好SSL隧道;在另一种可行的实现方式中,当客户端需要向媒体服务器请求流媒体服务时,客户端向网关设备发送建立SSL隧道请求消息,从而使网关设备与客户端之间建立SSL隧道。
步骤102、网关设备接收客户端通过SSL隧道传输的第一数据请求消息,第一数据请求消息为客户端根据SSL隧道封装协议对第二数据请求消息进行封装得到的,第二数据请求消息的目的IP地址为媒体服务器的IP地址、目的端口号为媒体服务器的端口号,第一数据请求消息的目的IP地址为网关设备的IP地址、目的端口号为网关设备的端口号。
具体地,在网关设备与客户端之间建立好SSL隧道后,当客户端需要向媒体服务器请求流媒体服务时,客户端会生成一个需要发送给流媒体服务器的第二数据请求消息,该第二数据请求消息的目的IP地址为媒体服务器的IP地址、目的端口号为媒体服务器的端口号,需要说明的是,第二数据请求消息可以为符合超文本传输协议(Hypertext Transport Protocol,简称为HTTP)的报文,所以第二数据请求消息对应的媒体服务器的端口号可以为80。
客户端在生成第二数据请求消息后,需要将第二数据请求消息通过SSL隧道传输至网关设备,则客户端需要根据SSL隧道封装协议对第二数据请求消息进行封装,得到第一数据请求消息,其中,第一数据请求消息的目的IP地址为网关设备的IP地址、目的端口号为网关设备的端口号,需要说明的,网关设备的端口号可以设置为安全的443;本领域普通技术人员可以理解,根据SSL隧道协议进行封装的过程和通过SSL隧道进行传输的过程均为现有技术,本发明在此不做详细介绍。
客户端将封装后的第一数据请求消息通过SSL隧道发送给网关设备,由于对第二数据请求消息进行封装的过程还包括一个加密过程,所以通过SSL隧道进行传输可以保证传输过程的安全性,相应地,网关设备接收SSL隧道传输的第一数据请求消息。
步骤103、网关设备对第一数据请求消息进行SSL解封装,得到第二数据请求消息。
具体地,网关设备对通过SSL隧道传输的第一数据请求消息进行SSL解封装,得到第二数据请求消息,需要说明的是,本领域普通技术人员可以理解,进行SSL解封装的过程为现有技术,本发明在此不做详细介绍。由于该SSL隧道为客户端与网关设备这两端之间的隧道,而且网关设备对第一数据请求消息进行解封装的过程还包括一个解密过程,因此,只有网关设备才能进行正确的解密,所以通过SSL隧道进行传输可以保证传输过程的安全性。
步骤104、网关设备将第二数据请求消息发送给媒体服务器,以使媒体服务器根据第二数据请求消息将流媒体数据传输给客户端。
具体地,网关设备对第一数据请求消息进行SSL解封装得到第二数据请求消息后,获得第二数据请求消息中的目的IP地址为媒体服务器的IP地址、目的端口号为媒体服务器的端口号,网关设备再将第二数据请求消息发送给该第二数据请求消息中目的IP地址和目的端口号对应的媒体服务器,以使媒体服务器根据第二数据请求消息将流媒体数据传输给客户端,从而完成客户端请求流媒体服务的过程。
本发明实施例一提供的流媒体服务请求方法,通过网关设备与客户端建立SSL隧道;网关设备接收客户端通过SSL隧道传输的第一数据请求消息,第一数据请求消息为客户端根据SSL隧道封装协议对第二数据请求消息进行封装得到的,网关设备对第一数据请求消息进行SSL解封装,得到第二数据请求消息;网关设备将第二数据请求消息发送给媒体服务器,以使媒体服务器根据第二数据请求消息将流媒体数据传输给客户端;从而安全的实现了客户端请求流媒体服务的过程。由于客户端通过SSL隧道访问媒体服务器采用的是网关设备的安全的端口号,使得媒体服务器的端口号没有直接暴露于客户端,从而保护媒体服务器不容易受到攻击,避免了媒体服务器因不法攻击瘫痪、数据丢失等风险。
图2为本发明流媒体服务请求方法实施例二的流程图,如图2所示,本实施例的方法可以包括:
步骤201、客户端与网关设备之间建立SSL隧道。
本实施例中,客户端与网关设备之间需要建立SSL隧道,以使网关设备与客户端之间可以通过SSL隧道传输信息。在一种可行的实现方式中,在网络配置时,即可在客户端与网关设备之间配置建立好SSL隧道;在另一种可行的实现方式中,当客户端需要向媒体服务器请求流媒体服务时,客户端向网关设备发送建立SSL隧道请求消息,从而使客户端与网关设备之间建立SSL隧道。
步骤202、客户端生成用于向媒体服务器请求流媒体数据的第二数据请求消息,并根据SSL隧道封装协议对第二数据请求消息进行封装得到第一数据请求消息;第二数据请求消息的目的IP地址为媒体服务器的IP地址、目的端口号为媒体服务器的端口号,第一数据请求消息的目的IP地址为网关设备的IP地址、目的端口号为网关设备的端口号。
具体地,在客户端与网关设备之间建立好SSL隧道后,当客户端需要向媒体服务器请求流媒体服务器时,客户端会生成用于向媒体服务器请求流媒体数据的第二数据请求消息,该第二数据请求消息的目的IP地址为媒体服务器的IP地址、目的端口号为媒体服务器的端口号,需要说明的是,第二数据请求消息可以为符合HTTP的报文,所以第二数据请求消息对应的媒体服务器的端口号可以为80。
客户端在生成第二数据请求消息后,需要将第二数据请求消息通过SSL隧道传输至网关设备,则客户端根据SSL隧道封装协议对第二数据请求消息进行封装得到第一数据请求消息,其中,第一数据请求消息的目的IP地址为网关设备的IP地址、目的端口号为网关设备的端口号,需要说明的,网关设备的端口号可以设置为安全的443;本领域普通技术人员可以理解,根据SSL隧道协议进行封装的过程和通过SSL隧道进行传输的过程均为现有技术,本发明在此不做详细介绍。
步骤203、客户端将第一数据请求消息通过SSL隧道发送给网关设备,以使网关设备从第一数据请求消息中获取第二数据请求消息并发送给媒体服务器。
在客户端得到第一数据请求消息后,将该第一数据请求消息通过SSL隧道发送给网关设备,由于对第二数据请求消息进行封装的过程还包括一个加密过程,所以通过SSL隧道进行传输可以保证传输过程的安全性,相应地,网关设备接收SSL隧道传输的第一数据请求消息,并对第一数据请求消息进行SSL解封装,以使网关设备从第一数据请求消息中获取第二数据请求消息并发送给媒体服务器。需要说明的是,本领域普通技术人员可以理解,进行SSL解封装过程为现有技术,本发明在此不做说细介绍。由于该SSL隧道为客户端与网关设备这两端之间的隧道,而且网关设备对第一数据请求消息进行解封装的过程还包括一个解密过程,因此,只有网关设备才能进行正确的解密,所以通过SSL隧道进行传输可以保证传输过程的安全性。
步骤204、客户端接收媒体服务器根据第二数据请求消息发送的流媒体数据。
具体地,媒体服务器接收到网关设备发送的第二数据请求消息后,媒体服务器根据第二数据请求消息将流媒体数据发送给该第二数据请求消息对应的客户端;相应地,客户端接收媒体服务器根据第二数据请求消息发送的流媒体数据,从而完成客户端请求流媒体服务的过程。
本发明实施例二提供的流媒体服务请求方法,通过客户端与网关设备之间建立安全套接层SSL隧道;客户端生成用于向媒体服务器请求流媒体数据的第二数据请求消息,并根据SSL隧道封装协议对第二数据请求消息进行封装得到第一数据请求消息;客户端将第一数据请求消息通过SSL隧道发送给网关设备,以使网关设备从第一数据请求消息中获取第二数据请求消息并发送给媒体服务器;客户端接收媒体服务器根据第二数据请求消息发送的流媒体数据;从而安全的实现了客户端请求流媒体服务的过程。由于客户端通过SSL隧道访问媒体服务器采用的是网关设备的安全的端口号,使得媒体服务器的端口号没有直接暴露于客户端,从而保护媒体服务器不容易受到攻击,避免了媒体服务器因不法攻击瘫痪、数据丢失等风险。
图3为本发明流媒体服务请求方法实施例三的流程图,如图3所示,本实施例的方法可以包括:
步骤301、媒体服务器接收网关设备发送的第二数据请求消息;第二数据请求消息是网关设备对客户端通过客户端与网关设备之间的SSL隧道发送的第一数据请求消息进行SSL解封装获得的,第二数据请求消息的目的IP地址为媒体服务器的IP地址、目的端口号为媒体服务器的端口号,第一数据请求消息的目的IP地址为网关设备的IP地址、目的端口号为网关设备的端口号。
本实施例中,客户端接收到客户端通过客户端与网关设备之间的SSL隧道发送的第一数据请求消息后,其中,第一数据请求消息的IP地址为网关设备的IP地址、目的端口号为网关设备的端口号,需要说明的,网关设备的端口号可以设置为安全的443;客户端对该第一数据请求消息进行SSL解封装,获得第二数据请求消息,其中,第二数据请求消息的目的IP地址为媒体服务器的IP地址、目的端口号为媒体服务器的端口号,需要说明的是,第二数据请求消息可以为符合HTTP的报文,所以第二数据请求消息对应的媒体服务器的端口号可以为80;客户端将第二数据请求消息发送给第二数据请求消息的目的IP地址和目的端口号对应的媒体服务器,相应地,媒体服务器接收网关设备发送的第二数据请求消息。
需要说明的是,本领域普通技术人员可以理解,通过SSL隧道传输的过程和根据SSL隧道协议进行解封装的过程均为现有技术,本发明在此不做详细介绍。由于该SSL隧道为客户端与网关设备这两端之间的隧道,而且网关设备对第一数据请求消息进行解封装的过程还包括一个解密过程,因此,只有网关设备才能进行正确的解密,所以通过SSL隧道进行传输可以保证传输过程的安全性。
步骤302、媒体服务器根据第二数据请求消息,向客户端发送流媒体数据。
具体地,媒体服务器接收到网关设备发送的第二数据请求消息后,媒体服务器根据第二数据请求消息将流媒体数据发送给该第二数据请求消息对应的客户端;相应地,客户端接收媒体服务器根据第二数据请求消息发送的流媒体数据,从而完成客户端请求流媒体服务的过程。
本发明实施例三提供的流媒体服务请求方法,通过媒体服务器接收网关设备发送的第二数据请求消息;第二数据请求消息是网关设备对客户端通过客户端与网关设备之间的SSL隧道发送的第一数据请求消息进行SSL解封装获得的,媒体服务器根据第二数据请求消息,向客户端发送流媒体数据;从而安全的实现了客户端请求流媒体服务的过程。由于客户端通过SSL隧道访问媒体服务器采用的是网关设备的安全的端口号,使得媒体服务器的端口号没有直接暴露于客户端,从而保护媒体服务器不容易受到攻击,避免了媒体服务器因不法攻击瘫痪、数据丢失等风险。
图4为本发明流媒体服务请求方法实施例四的流程图,如图4所示,本实施例的方法可以包括:
步骤401、客户端向网关设备发送SSL隧道建立请求,以使网关设备与客户端建立SSL隧道。
本实施例中,在客户端中配置有网关设备的IP地址和网关设备的端口号,因此客户端可以向该网关设备发送SSL隧道建立请求消息,以使网关设备与客户端建立SSL隧道,用以传输加密消息。
步骤402、网关设备接收客户端发送的SSL隧道建立请求;然后根据SSL隧道建立请求,向客户端发送SSL隧道建立响应,以与客户端建立SSL隧道。
步骤403、客户端接收网关设备发送的SSL隧道建立响应,以与网关设备建立SSL隧道。
需要说明的是,上述步骤401-步骤403中的SSL隧道建立过程可以理解为SSL协议握手过程,握手成功之后即建立了SSL隧道,其中,SSL协议具体握手过程描述如下:
(1)客户端(Client)发送Client Hello消息给网关设备(Server),Server回应Server Hello。这个过程建立的安全参数包括协议版本、“会话”标识、加密算法、压缩方法。另外,还交换2个随机数:ClientHello.random和ServerHello.random,用以计算“会话主密钥”。
(2)Hello消息发送完后,Server会发送它的证书或密钥交换信息,如果Server被认证,它会请求Client的证书,然后Server发送Hello-done消息以示握手协议完成。
(3)Server请求Client证书时,Client要返回证书或“没有证书”的提示,然后Client发送密钥交换消息。
(4)Server回答“握手完成”消息。
(5)握手协议完成后,Client和Server就可以传输加密数据。
需要说明的是,上述的Client可以相当于本实施例中的客户端,上述的Server可以相当于本实施例中的网关设备。
步骤404、客户端向调度服务器发送用于请求获取媒体服务器的IP地址的获取请求消息;然后接收调度服务器发送的媒体服务器的IP地址。
具体地,当客户端需要请求流媒体服务时,客户端向调度服务器发送用于请求获取媒体服务器的IP地址的获取请求消息,其中,调度服务器存储有媒体服务器的IP地址,以及管理着各媒体服务器的状态和性能等,当调度服务器接收到客户端发送的获取请求消息时,调度服务器将此时管理着的具有最优状态和性能的媒体服务器的IP地址发送给客户端,相应地,客户端接收调度服务器发送的媒体服务器的IP地址。
步骤405、客户端经过NAT设备和客户端侧的防火墙向媒体服务器发送第一TCP连接建立请求。
具体地,客户端向媒体服务器请求流媒体服务时,需要建立传输控制协议(Transmission Control Protocol,简称为TCP)连接,因此客户端经过网络地址转换(Network Address Translation,简称为NAT)设备和客户端侧的防火墙向媒体服务器发送第一TCP连接建立请求消息,经过NAT之后的第一TCP连接建立请求的源IP地址为NAT设备转换后的公网IP地址、源端口号为NAT设备转换后的公网端口号、目的IP地址为媒体服务器的IP地址、目的端口号为媒体服务器的端口号。需要说明的是,本实施例中,客户端的源IP地址为私网IP地址,所以经过NAT设备转化后,第一TCP连接建立请求的源IP地址为公网IP地址,此时,第一TCP连接建立请求才能通过互联网进行传输。需要说明的是,NAT设备可以设置在家庭网关(ResidentialGateway,简称为RGW)中以实现NAT功能。
步骤406、网关设备拦截客户端发送给媒体服务器的第一TCP连接建立请求;根据第一TCP连接建立请求,通过NAT设备和客户端侧的防火墙向客户端返回第一TCP连接建立响应,以与客户端建立第一TCP连接。
具体地,当第一TCP连接建立请求经过互联网到达媒体服务器侧前,先由第一链路交换机(Link Switch,简称为LSW)通过预先配置好的路由表项,将第一TCP连接建立请求发送给网关设备,网关设备直接拦截客户端发送给媒体服务器的第一TCP连接建立请求,并且不转发给媒体服务器,而是由网关设备作为媒体服务器的代理与客户端建立第一TCP连接;其中,第一TCP连接建立请求是客户端经过NAT设备和客户端侧的防火墙发送给媒体服务器的,第一TCP连接建立请求的源IP地址为NAT设备转换后的公网IP地址、源端口号为NAT设备转换后的公网端口号、目的IP地址为媒体服务器的IP地址、目的端口号为媒体服务器的端口号。
网关设备根据拦截到的第一TCP连接建立请求,通过NAT设备和客户端侧的防火墙向客户端返回第一TCP连接建立响应,以与客户端建立第一TCP连接,其中,由于网关设备作为媒体服务器的代理,所以第一TCP连接建立响应的源IP地址为媒体服务器的IP地址、源端口为媒体服务器的端口号,目的IP地址为公网IP地址、目的端口号为公网端口号。其中,第一TCP连接建立响应包括公网IP地址和公网端口号,以使客户端侧的防火墙中生成包含公网IP地址、公网端口号、媒体服务器的IP地址和媒体服务器的端口号的记录,以使媒体服务器将流媒体数据直接传输给客户端。
需要说明的是,第一TCP连接建立好后,客户端侧的防火墙即可生成包含公网IP地址、公网端口号、媒体服务器的IP地址和媒体服务器的端口号的记录,即说明,源IP地址为公网IP地址、源端口号为公网端口号以及目的IP地址为媒体服务器的IP地址、目的端口号为媒体服务器的端口号的数据均可通过客户端侧的防火墙,或者源IP地址为媒体服务器的IP地址、源端口号为媒体服务器的端口号以及目的IP地址为公网IP地址、目的端口号为公网端口号的数据均可通过客户端侧的防火墙,以使媒体服务器将流媒体数据直接传输给客户端。
步骤407、客户端接收网关设备通过NAT设备和客户端侧的防火墙发送的第一TCP连接建立响应,以与网关设备建立第一TCP连接。
具体地,客户端接收网关设备通过NAT设备和客户端侧的防火墙发送的第一TCP连接建立响应,以与网关设备建立第一TCP连接;其中,第一TCP连接建立响应是网关设备根据所拦截的第一TCP连接建立请求生成并返回的,第一TCP连接建立响应包括公网IP地址和公网端口号,以使客户端侧的防火墙中生成包含公网IP地址、公网端口号、媒体服务器的IP地址和媒体服务器的端口号的记录,以使媒体服务器将流媒体数据直接传输给客户端。同时,客户端接收到第一TCP连接建立响应,获取到公网IP地址和公网端口号,以使客户端通过SSL隧道向网关设备发送的所有信息的源IP地址设置为公网IP地址、源端口号设置为公网端口号。
需要说明的是,上述步骤405-步骤407中建立第一TCP连接的过程可以理解为三次握手过程,握手成功了即建立了第一TCP连接,其中,三次握手过程具体描述如下:
(1)第一次握手,建立连接时,客户端发送同步序列编号(SynchronizeSequence Numbers,简称为SYN)包到网关设备,并进入SYN SEND状态,等待网关设备确认;
(2)第二次握手,网关设备收到SYN包,必须确认客户端的确认字符(Acknowledgement,简称为ACK),同时网关设备也发送一个SYN包,即SYN+ACK包,此时网关设备进入SYN_RECV状态;
(3)第三次握手,客户端收到网关设备的SYN+ACK包,向网关设备发送确认包ACK,此包发送完毕,客户端和网关设备进入ESTABLISHED状态,完成三次握手。
需要说明的是,步骤401-步骤403建立SSL隧道的过程与步骤404-步骤407建立第一TCP连接的过程的先后顺序不做限定。
步骤408、客户端生成用于向媒体服务器请求流媒体数据的第二数据请求消息,并根据SSL隧道封装协议对第二数据请求消息进行封装得到第一数据请求消息;然后将第一数据请求消息通过SSL隧道发送给网关设备。
在客户端与网关设备之间建立SSL隧道并且客户端与网关设备之间建立第一TCP连接之后,客户端会生成用于向媒体服务器请求流媒体数据的第二数据请求消息,其中,第二数据请求消息的目的IP地址为媒体服务器的IP地址、目的端口号为媒体服务器的端口号,源IP地址为公网IP地址、源端口号为公网端口号。需要说明的是,第二数据请求消息可以为符合HTTP的报文,所以第二数据请求消息对应的媒体服务器的端口号可以为80。
客户端在生成第二数据请求消息后,需要将第二数据请求消息通过SSL隧道传输至网关设备,则客户端根据SSL隧道封装协议对第二数据请求消息进行封装得到第一数据请求消息,其中,第一数据请求消息的目的IP地址为网关设备的IP地址、目的端口号为网关设备的端口号,需要说明的,网关设备的端口号可以设置为安全的443;本领域普通技术人员可以理解,根据SSL隧道协议进行封装的过程和通过SSL隧道进行传输的过程均为现有技术,本发明在此不做详细介绍。
在客户端得到第一数据请求消息后,将该第一数据请求消息通过SSL隧道发送给网关设备,以使网关设备从第一数据请求消息中获取第二数据请求消息并发送给媒体服务器;由于对第二数据请求消息进行封装的过程还包括一个加密过程,所以通过SSL隧道进行传输可以保证传输过程的安全性。
步骤409、网关设备接收客户端通过SSL隧道传输的第一数据请求消息;对第一数据请求消息进行SSL解封装,得到第二数据请求消息;然后根据第二数据请求消息,向媒体服务器发送第二TCP连接建立请求。
具体地,网关设备接收客户端通过SSL隧道传输的第一数据请求消息,其中,第一数据请求消息为客户端根据SSL隧道封装协议对第二数据请求消息进行封装得到的,第一数据请求消息的目的IP地址为网关设备的IP地址、目的端口号为网关设备的端口号;网关设备对第一数据请求消息进行SSL解封装,得到第二数据请求消息,其中,第二数据请求消息的目的IP地址为媒体服务器的IP地址、目的端口号为媒体服务器的端口号,源IP地址为公网IP地址、源端口号为公网端口号;需要说明的是,本领域普通技术人员可以理解,进行SSL解封装过程为现有技术,本发明在此不做说细介绍。由于该SSL隧道为客户端与网关设备这两端之间的隧道,而且网关设备对第一数据请求消息进行解封装的过程还包括一个解密过程,因此,只有网关设备才能进行正确的解密,所以通过SSL隧道进行传输可以保证传输过程的安全性。
网关设备获得第二数据请求消息后,根据第二数据请求消息中的目的IP地址为媒体服务器的IP地址、目的端口号为媒体服务器的端口号,向第二数据请求消息中目的IP地址和目的端口号对应的媒体服务器发送第二TCP连接建立请求。
步骤410、媒体服务器接收网关设备发送的第二TCP连接建立请求;再根据第二TCP连接建立请求,与网关设备建立第二TCP连接,并向网关设备返回第二TCP连接建立响应。
步骤411、网关设备接收媒体服务器发送的第二TCP连接建立响应,以与媒体服务器建立第二TCP连接;然后将第二数据请求消息发送给媒体服务器。
本实施例中,需要说明的是,上述步骤409~步骤411中建立第二TCP连接的过程可以理解为三次握手过程,握手成功了即建立了第二TCP连接,其中,三次握手过程可以详细参见上述建立第一TCP连接时的相关记载,本发明在此不再赘述。
在网关设备与媒体服务器之间的第二TCP连接建立好后,网关设备通过该第二TCP连接向媒体服务器发送第二数据请求消息,以使媒体服务器根据第二数据请求消息将流媒体数据传输给客户端。
步骤412、媒体服务器接收网关设备发送的第二数据请求消息;然后根据公网IP地址和公网端口号,直接将流媒体数据发送给客户端侧的防火墙,以使客户端侧的防火墙通过NAT设备转发给客户端。
具体地,媒体服务器接收网关设备通过第二TCP连接发送的第二数据请求消息,其中,第二数据请求消息是网关设备对客户端通过客户端与网关设备之间的SSL隧道发送的第一数据请求消息进行SSL解封装获得的,第二数据请求消息的目的IP地址为媒体服务器的IP地址、目的端口号为媒体服务器的端口号,第一数据请求消息的目的IP地址为网关设备的IP地址、目的端口号为网关设备的端口号;并且第二数据请求消息的源IP地址为经过NAT设备转换后的公网IP地址、源端口号为经NAT设备转换后的公网端口号;客户端通过NAT设备与客户端侧的防火墙连接。
媒体服务器从第二数据请求消息中获取到第二数据请求消息中的源IP地址为公网IP地址、源端口号为公网端口号,从而根据该公网IP地址和公网端口号,直接将流媒体数据发送给客户端侧的防火墙,即,媒体服务器直接将流媒体数据发送给媒体服务器侧的第二LSW,第二LSW根据预先配置的路由表项将流媒体数据发送给第一LSW,第一LSW根据预先配置的路由表项将流媒体数据发送给客户端侧的防火墙,以使客户端侧的防火墙通过NAT设备转发给客户端;其中,客户端侧的防火墙生成有包含公网IP地址、公网端口号、媒体服务器的IP地址和媒体服务器的端口号的记录,由于流媒体数据对应的源IP地址为媒体服务器的IP地址、源端口号为媒体服务器的端口号,目的IP地址为公网IP地址、目的端口号为公网端口号,所以流媒体数据可以直接通过客户端侧的防火墙再发送给NAT设备,由NAT设备转发给客户端。
步骤413、客户端接收媒体服务器根据第二数据请求消息发送的流媒体数据。
具体地,客户端接收媒体服务器根据第二数据请求消息通过客户端侧的防火墙和NAT设备发送的流媒体数据,从而完成客户端请求流媒体服务的过程。
需要说明的是,客户端生成的第二数据请求消息经由网关设备发送至流媒体服务器,而流媒体服务器返回的流媒体数据不经过网关设备而直接传输至客户端,即实现了客户端与媒体服务器之间传输的第二数据请求消息和流媒体数据进行了分离;使得数据量较大的流媒体数据不需要经过网关设备的处理,从而降低了对网关设备性能的要求。而且客户端与网关设备之间的SSL隧道提供的面向连接的安全性对客户端发送给媒体服务器的第二数据请求消息进行了攻击防范和加密保护;同时要在客户端与网关设备之间建立SSL隧道时,客户端的浏览器即可实现SSL协议,不需要客户端单独安装SSL客户端,对客户端没有额外要求,进一步地,还大大降低了对网关设备的要求以及网络配置的复杂度。
本发明实施例四提供的流媒体服务请求消息,通过客户端向网关设备发送SSL隧道建立请求;网关设备接收客户端发送的SSL隧道建立请求,根据SSL隧道建立请求,向客户端发送SSL隧道建立响应,以与客户端建立SSL隧道;客户端接收网关设备发送的SSL隧道建立响应,以与网关设备建立SSL隧道;客户端向调度服务器发送用于请求获取媒体服务器的IP地址的获取请求消息,接收调度服务器发送的媒体服务器的IP地址;客户端经过NAT设备和客户端侧的防火墙向媒体服务器发送第一TCP连接建立请求;网关设备拦截客户端发送给媒体服务器的第一TCP连接建立请求,根据第一TCP连接建立请求,通过NAT设备和客户端侧的防火墙向客户端返回第一TCP连接建立响应,以与客户端建立第一TCP连接;客户端接收网关设备通过NAT设备和客户端侧的防火墙发送的第一TCP连接建立响应,以与网关设备建立第一TCP连接;客户端生成用于向媒体服务器请求流媒体数据的第二数据请求消息,并根据SSL隧道封装协议对第二数据请求消息进行封装得到第一数据请求消息,将第一数据请求消息通过SSL隧道发送给网关设备;网关设备接收客户端通过SSL隧道传输的第一数据请求消息,对第一数据请求消息进行SSL解封装,得到第二数据请求消息,根据第二数据请求消息,向媒体服务器发送第二TCP连接建立请求;媒体服务器接收网关设备发送的第二TCP连接建立请求,根据第二TCP连接建立请求,与网关设备建立第二TCP连接,并向网关设备返回第二TCP连接建立响应;网关设备接收媒体服务器发送的第二TCP连接建立响应,以与媒体服务器建立第二TCP连接;网关设备将第二数据请求消息发送给媒体服务器;媒体服务器接收网关设备发送的第二数据请求消息;媒体服务器根据公网IP地址和公网端口号,直接将流媒体数据发送给客户端侧的防火墙,以使客户端侧的防火墙通过NAT设备转发给客户端;客户端接收媒体服务器根据第二数据请求消息发送的流媒体数据;从而安全的实现了客户端请求流媒体服务的过程。由于客户端通过SSL隧道访问媒体服务器采用的是网关设备的安全的端口号,使得媒体服务器的端口号没有直接暴露于客户端,从而保护媒体服务器不容易受到攻击,避免了媒体服务器因不法攻击瘫痪、数据丢失等风险。进一步地,使得数据量较大的流媒体数据不需要经过网关设备的处理,从而降低了对网关设备性能的要求。
图5为本发明网关设备实施例一的结构示意图,如图5所示,本实施例的网关设备可以包括:建立单元11、接收单元12、解封装单元13和发送单元14,其中,建立单元11用于与客户端建立安全套接层SSL隧道;接收单元12与建立单元11连接,用于接收客户端通过与建立单元11建立的SSL隧道传输的第一数据请求消息,第一数据请求消息为客户端根据SSL隧道封装协议对第二数据请求消息进行封装得到的,第二数据请求消息的目的互联网协议IP地址为媒体服务器的IP地址、目的端口号为媒体服务器的端口号,第一数据请求消息的目的IP地址为网关设备的IP地址、目的端口号为网关设备的端口号;解封装单元13与接收单元12连接,用于对接收单元12接收到的第一数据请求消息进行SSL解封装,得到第二数据请求消息;发送单元14与解封装单元13连接,用于将解封装单元13解封装出的第二数据请求消息发送给媒体服务器,以使媒体服务器根据第二数据请求消息将流媒体数据传输给客户端。
本实施例的网关设备,可以用于执行图1所示方法实施例的技术方案,其实现原理类似,详细可以参见上述实施例中的记载,此处不再赘述。
本发明实施例一提供的网关设备,通过建立单元与客户端建立SSL隧道;接收单元接收客户端通过SSL隧道传输的第一数据请求消息,第一数据请求消息为客户端根据SSL隧道封装协议对第二数据请求消息进行封装得到的,解封装单元对第一数据请求消息进行SSL解封装,得到第二数据请求消息;发送单元将第二数据请求消息发送给媒体服务器,以使媒体服务器根据第二数据请求消息将流媒体数据传输给客户端;从而安全的实现了客户端请求流媒体服务的过程。由于客户端通过SSL隧道访问媒体服务器采用的是网关设备的安全的端口号,使得媒体服务器的端口号没有直接暴露于客户端,从而保护媒体服务器不容易受到攻击,避免了媒体服务器因不法攻击瘫痪、数据丢失等风险。
在本发明网关设备实施例二中,在图5所示网关设备结构的基础上,上述的建立单元11具体用于接收客户端发送的SSL隧道建立请求,根据SSL隧道建立请求,向客户端发送SSL隧道建立响应,以与客户端建立SSL隧道。
进一步地,上述的接收单元12还用于在接收客户端通过SSL隧道传输的第一数据请求消息之前,拦截客户端发送给媒体服务器的第一传输控制协议TCP连接建立请求,第一TCP连接建立请求是客户端经过网络地址转换NAT设备和客户端侧的防火墙发送给媒体服务器的,第一TCP连接建立请求的源IP地址为NAT设备转换后的公网IP地址、源端口号为NAT设备转换后的公网端口号、目的IP地址为媒体服务器的IP地址、目的端口号为媒体服务器的端口号。上述的建立单元11还用于根据第一TCP连接建立请求,通过NAT设备和客户端侧的防火墙向客户端返回第一TCP连接建立响应,以与客户端建立第一TCP连接,第一TCP连接建立响应包括公网IP地址和公网端口号,以使客户端侧的防火墙中生成包含公网IP地址、公网端口号、媒体服务器的IP地址和媒体服务器的端口号的记录,以使媒体服务器将流媒体数据直接传输给客户端。
进一步地,第二数据请求消息的源IP地址为公网IP地址、源端口号为公网端口号。上述的发送单元14还用于在将第二数据请求消息发送给媒体服务器之前,根据第二数据请求消息,向媒体服务器发送第二TCP连接建立请求。上述的建立单元11还用于在发送单元14将第二TCP连接建立请求给媒体服务器之后,接收媒体服务器发送的第二TCP连接建立响应,以与媒体服务器建立第二TCP连接。
本实施例的网关设备,可以用于执行图4所示方法实施例中网关设备所执行的技术方案,其实现原理类似,详细可以参见上述实施例中的记载,此处不再赘述。
本发明实施例二提供的网关设备,通过建立单元接收客户端发送的SSL隧道建立请求,根据SSL隧道建立请求,向客户端发送SSL隧道建立响应,以与客户端建立SSL隧道;接收单元拦截客户端发送给媒体服务器的第一TCP连接建立请求,建立单元根据第一TCP连接建立请求,通过NAT设备和客户端侧的防火墙向客户端返回第一TCP连接建立响应,以与客户端建立第一TCP连接;接收单元接收客户端通过SSL隧道传输的第一数据请求消息,对第一数据请求消息进行SSL解封装,得到第二数据请求消息,发送单元根据第二数据请求消息,向媒体服务器发送第二TCP连接建立请求;建立单元接收媒体服务器发送的第二TCP连接建立响应,以与媒体服务器建立第二TCP连接;发送单元将第二数据请求消息发送给媒体服务器,以使媒体服务器根据第二数据请求消息将流媒体数据传输给客户端;从而安全的实现了客户端请求流媒体服务的过程。由于客户端通过SSL隧道访问媒体服务器采用的是网关设备的安全的端口号,使得媒体服务器的端口号没有直接暴露于客户端,从而保护媒体服务器不容易受到攻击,避免了媒体服务器因不法攻击瘫痪、数据丢失等风险。进一步地,使得数据量较大的流媒体数据不需要经过网关设备的处理,从而降低了对网关设备性能的要求。
图6为本发明客户端实施例一的结构示意图,如图6所示,本实施例的客户端可以包括:建立单元21、封装单元22、发送单元23和接收单元24,其中,建立单元21用于与网关设备之间建立安全套接层SSL隧道;封装单元22用于生成用于向媒体服务器请求流媒体数据的第二数据请求消息,并根据SSL隧道封装协议对第二数据请求消息进行封装得到第一数据请求消息;第二数据请求消息的目的互联网协议IP地址为媒体服务器的IP地址、目的端口号为媒体服务器的端口号,第一数据请求消息的目的IP地址为网关设备的IP地址、目的端口号为网关设备的端口号;发送单元23与建立单元21和封装单元22连接,用于将封装单元22封装的第一数据请求消息通过建立单元21建立的SSL隧道发送给网关设备,以使网关设备从第一数据请求消息中获取第二数据请求消息并发送给媒体服务器;接收单元24与发送单元23连接,用于在发送单元23将第一数据请求消息发送给网关设备之后,接收媒体服务器根据第二数据请求消息发送的流媒体数据。
本实施例的客户端,可以用于执行图2所示方法实施例的技术方案,其实现原理类似,详细可以参见上述实施例中的记载,此处不再赘述。
本发明实施例一提供的客户端,通过建立单元与网关设备之间建立安全套接层SSL隧道;封装单元生成用于向媒体服务器请求流媒体数据的第二数据请求消息,并根据SSL隧道封装协议对第二数据请求消息进行封装得到第一数据请求消息;发送单元将第一数据请求消息通过SSL隧道发送给网关设备,以使网关设备从第一数据请求消息中获取第二数据请求消息并发送给媒体服务器;接收单元接收媒体服务器根据第二数据请求消息发送的流媒体数据;从而安全的实现了客户端请求流媒体服务的过程。由于客户端通过SSL隧道访问媒体服务器采用的是网关设备的安全的端口号,使得媒体服务器的端口号没有直接暴露于客户端,从而保护媒体服务器不容易受到攻击,避免了媒体服务器因不法攻击瘫痪、数据丢失等风险。
在本发明客户端实施例二中,在图6所示客户端结构的基础上,上述的建立单元21具体用于向网关设备发送SSL隧道建立请求,以使网关设备与客户端建立SSL隧道,接收网关设备发送的SSL隧道建立响应,以与网关设备建立SSL隧道。
进一步地,上述的发送单元23还用于在将第一数据请求消息通过SSL隧道发送给网关设备之前,经过网络地址转换NAT设备和客户端侧的防火墙向媒体服务器发送第一传输控制协议TCP连接建立请求,第一TCP连接建立请求的源IP地址为NAT设备转换后的公网IP地址、源端口号为NAT设备转换后的公网端口号、目的IP地址为媒体服务器的IP地址、目的端口号为媒体服务器的端口号。上述的建立单元21还用于在发送单元23将第一TCP连接建立请求发送给媒体服务器之后,接收网关设备通过NAT设备和客户端侧的防火墙发送的第一TCP连接建立响应,以与网关设备建立第一TCP连接,第一TCP连接建立响应是网关设备根据所拦截的第一TCP连接建立请求生成并返回的,第一TCP连接建立响应包括公网IP地址和公网端口号,以使客户端侧的防火墙中生成包含公网IP地址、公网端口号、媒体服务器的IP地址和媒体服务器的端口号的记录,以使媒体服务器将流媒体数据直接传输给客户端。
进一步地,第二数据请求消息的源IP地址为公网IP地址、源端口号为公网端口号。上述的发送单元23还用于在经过NAT设备和客户端侧的防火墙向媒体服务器发送第一TCP连接建立请求之前,向调度服务器发送用于请求获取媒体服务器的IP地址的获取请求消息,调度服务器存储有媒体服务器的IP地址。上述的接收单元24还用于在发送单元23将用于请求获取媒体服务器的IP地址的获取请求消息发送给调度服务器之后,接收调度服务器发送的媒体服务器的IP地址。
本实施例的客户端,可以用于执行图4所示方法实施例中客户端所执行的技术方案,其实现原理类似,详细可以参见上述实施例中的记载,此处不再赘述。
本发明实施例二提供的客户端,通过建立单元向网关设备发送SSL隧道建立请求,接收网关设备发送的SSL隧道建立响应,以与网关设备建立SSL隧道;发送单元向调度服务器发送用于请求获取媒体服务器的IP地址的获取请求消息;接收单元接收调度服务器发送的媒体服务器的IP地址;发送单元经过NAT设备和客户端侧的防火墙向媒体服务器发送第一TCP连接建立请求;建立单元接收网关设备通过NAT设备和客户端侧的防火墙发送的第一TCP连接建立响应,以与网关设备建立第一TCP连接;封装单元生成用于向媒体服务器请求流媒体数据的第二数据请求消息,并根据SSL隧道封装协议对第二数据请求消息进行封装得到第一数据请求消息;发送单元将第一数据请求消息通过SSL隧道发送给网关设备;接收单元接收媒体服务器根据第二数据请求消息发送的流媒体数据;从而安全的实现了客户端请求流媒体服务的过程。由于客户端通过SSL隧道访问媒体服务器采用的是网关设备的安全的端口号,使得媒体服务器的端口号没有直接暴露于客户端,从而保护媒体服务器不容易受到攻击,避免了媒体服务器因不法攻击瘫痪、数据丢失等风险。进一步地,使得数据量较大的流媒体数据不需要经过网关设备的处理,从而降低了对网关设备性能的要求。
图7为本发明媒体服务器实施例一的结构示意图,如图7所示,本实施例的媒体服务器可以包括:接收单元31和发送单元32,其中,接收单元31用于接收网关设备发送的第二数据请求消息;第二数据请求消息是网关设备对客户端通过客户端与网关设备之间的安全套接层SSL隧道发送的第一数据请求消息进行SSL解封装获得的,第二数据请求消息的目的互联网协议IP地址为媒体服务器的IP地址、目的端口号为媒体服务器的端口号,第一数据请求消息的目的IP地址为网关设备的IP地址、目的端口号为网关设备的端口号。发送单元32与接收单元31连接,用于根据接收单元31接收到的第二数据请求消息,向客户端发送流媒体数据。
本实施例的媒体服务器,可以用于执行图3所示方法实施例的技术方案,其实现原理类似,详细可以参见上述实施例中的记载,此处不再赘述。
本发明实施例一提供的媒体服务器,通过接收单元接收网关设备发送的第二数据请求消息;第二数据请求消息是网关设备对客户端通过客户端与网关设备之间的SSL隧道发送的第一数据请求消息进行SSL解封装获得的,发送单元根据第二数据请求消息,向客户端发送流媒体数据;从而安全的实现了客户端请求流媒体服务的过程。由于客户端通过SSL隧道访问媒体服务器采用的是网关设备的安全的端口号,使得媒体服务器的端口号没有直接暴露于客户端,从而保护媒体服务器不容易受到攻击,避免了媒体服务器因不法攻击瘫痪、数据丢失等风险。
图8为本发明媒体服务器实施例二的结构示意图,如图8所示,本实施例的媒体服务器在图7所示媒体服务器结构的基础上,还包括建立单元33,上述的接收单元31还用于在接收网关设备发送的第二数据请求消息之前,接收网关设备发送的第二TCP连接建立请求;建立单元33与接收单元31连接,用于根据接收单元31接收的第二TCP连接建立请求,与网关设备建立第二TCP连接,并向网关设备返回第二TCP连接建立响应。
进一步地,第二数据请求消息的源IP地址为经过网络地址转换NAT设备转换后的公网IP地址、源端口号为经NAT设备转换后的公网端口号;客户端通过NAT设备与客户端侧的防火墙连接。上述的发送单元32具体用于根据公网IP地址和公网端口号,直接将流媒体数据发送给客户端侧的防火墙,以使客户端侧的防火墙通过NAT设备转发给客户端;其中,客户端侧的防火墙生成有包含公网IP地址、公网端口号、媒体服务器的IP地址和媒体服务器的端口号的记录。
本实施例的媒体服务器,可以用于执行图4所示方法实施例中媒体服务器所执行的技术方案,其实现原理类似,详细可以参见上述实施例中的记载,此处不再赘述。
本发明实施例二提供的媒体服务器,通过接收单元接收网关设备发送的第二TCP连接建立请求;建立单元根据第二TCP连接建立请求,与网关设备建立第二TCP连接,并向网关设备返回第二TCP连接建立响应;接收单元接收网关设备发送的第二数据请求消息;发送单元根据公网IP地址和公网端口号,直接将流媒体数据发送给客户端侧的防火墙,以使客户端侧的防火墙通过NAT设备转发给客户端;从而安全的实现了客户端请求流媒体服务的过程。由于客户端通过SSL隧道访问媒体服务器采用的是网关设备的安全的端口号,使得媒体服务器的端口号没有直接暴露于客户端,从而保护媒体服务器不容易受到攻击,避免了媒体服务器因不法攻击瘫痪、数据丢失等风险。进一步地,使得数据量较大的流媒体数据不需要经过网关设备的处理,从而降低了对网关设备性能的要求。
图9为本发明流媒体服务请求系统实施例一的结构示意图,如图9所示,本实施例的流媒体服务请求系统可以包括:网关设备10、客户端20、媒体服务器30、调度服务器40、NAT设备50、防火墙60、互联网70、第一LSW80和第二LSW90,各设备之间的实线表示各设备之间的通信连接。其中,网关设备10可以采用本发明网关设备实施例一或实施例二的结构,其对应地,可以执行图1或图4所示方法实施例中的网关设备所执行的技术方案,其实现原理和技术效果类似,详细可以参见上述实施例中的记载,此处不再赘述。客户端20可以采用本发明客户端实施例一或实施例二的结构,其对应地,可以执行图2或图4所示方法实施例中的客户端所执行的技术方案,其实现原理和技术效果类似,详细可以参见上述实施例中的记载,此处不再赘述。媒体服务器30可以采用图7或图8所示媒体服务器的结构,其对应地,可以执行图3或图4所示方法实施例中的媒体服务器所执行的技术方案,其实现原理和技术效果类似,详细可以参见上述实施例中的记载,此处不再赘述。
需要说明的是,防火墙60为客户端20侧的防火墙,同时还可以在媒体服务器30与互联网70之间设置媒体服务器30侧的防火墙,其中网关设备10作为虚拟网关集成在媒体服务器30侧的防火墙中。还可以在客户端20与防火墙60之间设置一个RGW,由RGW实现NAT设备50的功能。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。