一种媒体传输方法和设备的制造方法

文档序号:9870188阅读:347来源:国知局
一种媒体传输方法和设备的制造方法
【技术领域】
[0001]本发明涉及IP通信技术领域,尤其涉及一种媒体传输方法和设备。
【背景技术】
[0002]在VoIP (Voice ove IP ;IP承载语音)通信系统中,语音数据和视频媒体数据通常采用RTP(Real-Time Transport Protocol ;实时传输协议)进行实时传输,并使用RTCP(Real-Time Transport Control Protocol ;实时传输控制协议)对 RTP 数据包提供可靠性传输管理机制。RTP数据包和RTCP数据包依靠用户数据协议(User DatagramProtocol ;UDP)传输。而在RTP数据包和RTCP数据包分别采用不同的端口传输时,要求用于传输RTCP数据包的UDP端口号比用于传输RTP数据包的UDP端口号大1、且用于传输RTCP数据包的UDP端口号为奇数。
[0003]在企业网或者局域网应用场景中,出于网络安全方面的考虑,企业网或者局域网与公网之间部署防火墙。防火墙除了提供网络地址转换之外,还常常会对允许通过的报文类型和开放的端口范围进行限制。在实际应用中,由于防火墙的限制,导致RTP数据包和RTCP数据包不能正常进行。
[0004]因此在VoIP客户端与网络侧之间VoIP通信时,需要具备穿越防火墙的能力。对于如何穿越防火墙的问题,提出了几种不同的穿越方式。
[0005]例如:交互式连接建立(InteractiveConnectivity Establishment ;ICE)是一个协议族,包含STUN (Sess1n Traversal Utilities for NAT,网络地址转换会话传输应用程序)协议、TURN (Traversal Using Relay Network Address Translat1n ;通过 Relay方式穿越NAT)协议,用于解决各种NAT穿越问题。
[0006]在采用ICE/STUN协议穿越防火墙时,可以将通信双方用于传输RTP数据包和RTCP数据包的端口复用在同一个端口上,也就是说媒体网关将RTP/RTCP的端口固定地分配为80,媒体流以RTP/RTCP over TCP的形式从防火墙的443或80端口穿越。这样虽然能够支持VoIP通信中的媒体流和信令分离传输、且使用标准的ICE客户端,但是在实际应用中,这种方式只能保证穿越部分防火墙,例如:具有HTTP (Hyper Text Transport Protocol,超文本传输协议)代理功能的防火墙就无法穿越。因为具有HTTP代理功能的防火墙只允许HTTP类型的报文通过,具有HTTP代理功能的防火墙能够识别出IP(Internetwork Protocol,网际协议)包承载的上层协议数据包是不是HTTP协议数据包,如果不是HTTP协议数据包,则直接丢弃数据包。而采用RTCP/RTP协议数据包复用同一个端口,利用TCP (Transmiss1nControl Protocol,传输控制协议)连接方式穿越防火墙时,具有HTTP代理功能防火墙容易识别该数据包为非HTTP数据包而丢弃,造成媒体的数据包无法穿越防火墙。
[0007]进一步地,提出了 ICE/TURN解决方案,在VoIP客户端与网络侧之间部署TURN服务器作为媒体中继服务器,TURN服务器除了支持从协议默认端口 3478端口接收终端发送的TURN请求之外,还支持从443端口和80端口接收TURN请求。媒体通过RTP/RTCP overUDP over TURN over TCP 方式从 80 端口,或者通过 RTP/RTCP over UDP over TURN overTLS方式从443穿越防火墙,达到TURN服务器,由TURN服务器将媒体转发给对端。
[0008]这种方式虽然能够解决穿越所有防火墙的问题,但是依然存在以下问题:
[0009]1、系统中增加TURN服务器,造成媒体的数据包传输时延;
[0010]2、在媒体的数据包传输过程中,媒体的数据包封装次数过多,出现媒体的数据包的报头封装冗余,影响媒体传输效率;
[0011]3、TURN服务器和用户终端之间的TURN握手信令复杂,且每一个媒体都要进行单独握手协商建立中继通道,增加了媒体的数据包传输复杂度。

【发明内容】

[0012]有鉴于此,本发明实施例提供了一种媒体传输方法和设备,用于解决目前VoIP通信系统的媒体在穿越防火墙的过程中存在的传输复杂以及传输效率低等问题。
[0013]根据本发明的第一方面,提供了一种媒体传输方法,包括:
[0014]用户终端根据网络地址转换会话传输应用程序STUN的探测结果,确定为待传输的媒体建立用于穿越防火墙的传输隧道的隧道类型,其中,所述隧道类型至少包含了传输层安全TLS隧道类型、数据报传输层安全DTLS隧道类型中的一种或者多种;
[0015]所述用户终端根据确定的所述隧道类型,为所述隧道类型对应的传输隧道分配用户终端侧的第一端口号,并将所述隧道类型、所述第一端口号和隧道数据包的载荷格式信息发送给网络侧,使网络侧根据所述隧道类型为所述隧道类型对应的传输隧道分配网络侧的第二端口号,在所述第一端口号和所述第二端口号之间建立传输隧道;
[0016]所述用户终端接收所述网络侧通过建立的所述传输隧道传输的、按照所述隧道数据包的载荷格式信息封装的媒体的数据包。
[0017]结合本发明的第一方面可能的实施方式,在第一种可能的实施方式中,所述用户终端将所述隧道类型、所述第一端口号和隧道数据包的载荷格式信息发送给网络侧,包括:
[0018]所述用户终端将所述隧道类型、所述第一端口号和隧道数据包的载荷格式信息携带在会话描述协议SDP消息中发送给IP承载语音VoIP信令服务器,由VoIP信令服务器根据所述隧道类型为所述隧道类型对应的传输隧道分配网络侧的第二端口号,并将所述第二端口号发送给媒体网关和所述用户终端;
[0019]所述用户终端通过与所述媒体网关协商,在所述第一端口号和所述第二端口号之间建立传输隧道。
[0020]结合本发明的第一方面可能的实施方式,或者结合本发明的第一方面的第一种可能的实施方式,在第二种可能的实施方式中,所述用户终端根据STUN的探测结果,确定为待传输的媒体建立用于穿越防火墙的传输隧道的隧道类型,包括:
[0021]所述用户终端向STUN服务器发送由用户数据报协议UDP承载的地址收集请求,其中,所述地址收集请求用于获取防火墙分别为用于传输实时传输协议RTP数据包的端口和用于传输实时传输控制协议RTCP数据包的端口分配的公用地址;
[0022]所述用户终端在无法接收到STUN服务器返回的由UDP承载的地址收集响应时,确定为待传输的媒体建立用于穿越防火墙的传输隧道的隧道类型为TLS隧道类型。
[0023]结合本发明的第一方面可能的实施方式,或者结合本发明的第一方面的第一种可能的实施方式,或者结合本发明的第一方面的第二种可能的实施方式,在第三种可能的实施方式中,所述用户终端在所述第一端口号和所述第二端口号之间建立传输隧道,具体包括:
[0024]若所述用户终端确定的隧道类型为TLS隧道类型,则所述用户终端在所述第一端口号和所述第二端口号之间建立TLS隧道。
[0025]结合本发明的第一方面可能的实施方式,或者结合本发明的第一方面的第一种可能的实施方式,在第四种可能的实施方式中,用户终端根据STUN的探测结果,确定为待传输的媒体建立用于穿越防火墙的传输隧道的隧道类型,包括:
[0026]用户终端向STUN服务器发送由用户数据报协议UDP承载的地址收集请求,其中,所述地址收集请求用于获取防火墙分别为用于传输实时传输协议RTP数据包的端口和用于传输实时传输控制协议RTCP数据包的端口分配的公用地址;
[0027]所述用户终端在接收到STUN服务器返回的地址收集响应时,进一步通过所述用户终端的媒体端口向媒体网关对应的媒体端口发送媒体路径的STUN连通性检测请求,其中,所述STUN连通性检测请求用以确定用户终端发送的媒体的数据包是否可以直接到达所述媒体网关对应的媒体端口 ;
[0028]所述用户终端在尚未接收到所述媒体网关发送的STUN连通性检测响应时,确定为待传输的媒体建立用于穿越防火墙的传输隧道的隧道类型为DTLS隧道类型。
[0029]结合本发明的第一方面可能的实施方式,或者结合本发明的第一方面的第一种可能的实施方式,或者结合本发明的第一方面的第四种可能的实施方式,在第五种可能的实施方式中,所述用户终端建立包含了所述第一端口号和所述第二端口号的传输隧道,具体包括:
[0030]若所述用户终端确定的隧道类型为DTLS隧道类型,则所述用户终端在所述第一端口号和所述第二端口号之间建立DTLS隧道。
[0031]结合本发明的第一方面可能的实施方式,或者结合本发明的第一方面的第一种可能的实施方式,或者结合本发明的第一方面的第二种可能的实施方式,或者结合本发明的第一方面的第三种可能的实施方式,或者结合本发明的第一方面的第四种可能的实施方式,或者结合本发明的第一方面的第五种可能的实施方式,在第六种可能的实施方式中,通过以下方式按照所述隧道数据包的载荷格式信息封装媒体的数据包:
[0032]若隧道类型为TLS隧道类型,则将媒体的数据包中包含的RTP协议数据包/RTCP协议数据包与UDP协议数据包报头作为所述隧道数据包的载荷格式信息封装在TLS隧道数据包中;或
[0033]若隧道类型为DTLS隧道类型,则将媒体的数据包中包含的RTP协议数据包/RTCP协议数据包与UDP协议数据包报头作为所述隧道数据包的载荷格式信息封装在DTLS隧道数据包中。
[0034]结合本发明的第一方面的第六种可能的实施方式,在第七种可能的实施方式中,所述UDP协议数据包报头中包含的端口号分别为所述用户终端分配的媒体端口、所述媒体网关分配的媒体端口。
[0035]结合本发明的第一方面的第六种可能的实施方式,或者结合本发明的第一方面的第七种可能的实施方式,在第八种可能的实施方式中,所述媒体传输方法还包括:
[0036]所述用户终端对接收到的所述媒体数据包进行解封装,获取TLS隧道数据包/DTLS隧道数据包中的媒体的数据包;
[0037]根据所述TLS隧道数据包/DTLS隧道数据包中UDP协议数据包报头中包含的端口号,将所述媒体的数据包发送给媒体处理单元。
[0038]根据本发明的第二方面,提供了一种媒体传输设备,包括:
[0039]类型确定模块,用于根据网络地址转换会话传输应用程序STUN的探测结果,确定为待传输的媒体建立用于穿越防火墙的传输隧道的隧道类型,其中,所述隧道类型至少包含了传输层安全TLS隧道类型、数据报传输层安全DTLS隧道类型中的一种或者多种;
[0040]隧道建立模块,用于根据确定的所述隧道类型,为所述隧道类型对应的传输隧道分配用户终端侧的第一端口号,并将所述隧道类型、所述第一端口号和隧道数据包的载荷格式信息发送给网络侧,使网络侧根据所述隧道类型为所述隧道类型对应的传输隧道分配网络侧的第二端口号,在所述第一端口号和所述第二端口号之间建立传输隧道;
[0041]数据包接收模块,用于接收所述网络侧通过建立的所述传输隧道传输的、按照所述隧道数据包的载荷格式信息封装的媒体的数据包。
[0042]结合本发明的第二方面可能的实施方式,在第一种可能的实施方式中,所述隧道建立模块将所述隧道类型、所述第一端口号和隧道数据包的载荷格式信息发送给网络侧,具体用于:
[0043]将所述隧道类型、所述第一端口号和隧道数据包的载荷格式信息携带在会话描述协议SDP消息中发送给IP承载语音VoIP信令服务器,由VoIP信令服务器根据所述隧道类型为所述隧道类型对应的传输隧道分配网络侧的第二端口号,并将所述第二端口号发送给媒体网关和所述用户终端;
[0044]通过与所述媒体网关协商,在所述第一端口号和所述第二端口号之间建立传输隧道。
[0045]结合本发明的第二方面可能的实施方式,或者结合本发明的第二方面的第一种可能的实施方式,在第二种可能的实施方式中,所述类型确定模块根据STUN的探测结果,确定为待传输的媒体建立用于穿越防火墙的传输隧道的隧道类型,具体用于:
[0046]向STUN服务器发送由用户数据报协议UDP承载的地址收集请求,其中,所述地址收集请求用于获取防火墙分别为用于传输实时传输协议RTP数据包的端口和用于传输实时传输控制协议RTCP数据包的端口分配的公用地址;
[0047]在无法接收到STUN服务器返回的由UDP承载的地址收集响应时,确定为待传输的媒体建立用于穿越防火墙的传输隧道的隧道类型为TLS隧道类型。
[0048]结合本发明的第二方面可能的实施方式,或者结合本发明的第二方面的第一种可能的实施方式,或者结合本发明的第二方面的第二种可能的实施方式,在第三种可能的实施方式中,所述隧道建立模块在所述第一端口号和所述第二端口号之间建立传输隧道,具体用于:
[0049]若所述用户终端确定的隧道类型为TLS隧道类型,则所述用户终端在所述第一端口号和所述第二端口号之间建立TLS隧道。
[0050]结合本发明的第二方面可能的实施方式,或者结合本发明的第二方面的第一种可能的实施方式,在第四种可能的实施方式中,所述类型确定模块根据STUN的探测结果,确定为待传输的媒体建立用于穿越防火墙的传输隧道的隧道类型,具体用于:
[0051]向STUN服务器发送由用户数据报协议UDP承载的地址收集请求,其中,所述地址收集请求用于获取防火墙分别为用于传输实时传输协议RTP数据包的端口和用于传输实时传输控制协议RTCP数据包的端口分配的公用地址;
[0052]在接收到STUN服务器返回的地址收集响应时,进一步通过所述用户终端的媒体端口向媒体网关对应的媒体端口发送媒体路径的STUN连通性检测请求,其中,所述STUN连通性检测请求用以确定用户终端发送的媒体的数据包是否可以直接到达所述媒体网关对应的媒体端口;
[0053]在尚未接收到所述媒体网关发送的STUN连通性检测响应时,确定为待传输的媒体建立用于穿越防火墙的传输隧道的隧道类型为DTLS隧道类型。
[0054]结合本发明的第二方面可能的实施方式,或者结合本发明的第二方面的第一种可能的实施方式,或者结合本发明的第二方面的第四种可能的实施方式,在第五种可能的实施方式中,所述隧道建立模块建立包含了所述第一端口号和所述第二端口号的传输隧道
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1