专利名称:一种媒体流穿越网络地址转换的方法
技术领域:
本发明涉及一种穿越网络地址转换的方法,特别涉及一种媒体流穿越网络地址转换的方法。
背景技术:
多媒体通讯协议都会涉及媒体流(视/音频流)的传输问题,而在IP网络上传输媒体流,使用用户数字报协议(UDP)承载比较合适。因此目前绝大多数多媒体通讯协议使用的都是UDP承载媒体流。而UDP是面向无连接的传榆层协议,因此网络地址转换(NAT)设备无法识别入向UDP包应该转发到私网内哪个终端上,所以由公网发送到私网的UDP包就会被NAT拒之门外。最终导致多媒体通讯的失败。
NAT设备地址转换方式分为静态NAT转挟、动态NAT转换和NAPT转换。目前针对前两种转换方式下多媒体通讯协议穿越NAT问题已经有解决方案静态NAT方案和动态NAT方案。
静态NAT方案其实现原理为在NAT上把需要进行多媒体通讯的终端的私网IP地址静态映射成公网IP地址,即NAT预先把公网IP地址留给了私网内的多媒体终端。
在静态NAT方案的基础上,业界推出了动态NAT方案解决方案当有多媒体通讯时(通过知名端口识别,如H.323协议的呼叫知名端口为1720),NAT动态的把某个公网IP地址分配给私网内进行多媒体通讯的终端,直到多媒体通讯结束。这种方案较静态NAT方案有一定的改进,但仍然不能节省公网IP地址资源。因为一旦某个公网IP地址被固定分配给某个私网终端了,那么在此终端的多媒体通讯结束前,其他终端是不能使用此公网IP地址的。
但针对NAPT转换方式下,多媒体通讯协议穿越NAT问题仍然没有解决方案。NAT设备旨在为节约公网IP地址资源而设计。但是现有解决方案中却无法做到私网内多个多媒体通讯终端复用一个公网IP地址。这在私网终端(或其他H.323节点)很多的情况下,势必造成公网IP地址的浪费,使NAT设备的主要功能——节约公网IP地址在多媒体应用的情况下失去意义。
发明内容
本发明所解决的技术问题在于提供了一种媒体流穿越网络地址转换的方法。以解决流媒体终端的私网地址和公网地址不是一一对应的情况下,如何将媒体流正确的发送到流媒体终端。
为解决上述技术问题,本发明提供了一种媒体流穿越网络地址转换的方法,本方法包括如下步骤步骤1、流媒体终端与流媒体服务器确定媒体流所使用的端口信息;步骤2、流媒体终端向流媒体服务器发送RTCP RR包,其中RTCP RR包中无消息体内容;步骤3、流媒体服务器根据收到的RTCP RR包,确定流媒体终端的IP地址及端口信息,并根据该流媒体终端的IP地址及端口信息,向流媒体终端反馈RTCP SR包信息;步骤4、流媒体终端接收到RTCP SR包信息后,向流媒体服务器发送请求消息;步骤5、流媒体服务器接收到请求消息后,返回成功响应,并采用所述步骤3中RTCP SR包所使用的目的IP地址及端口号向流媒体终端发送媒体流信息。
所述流媒体终端与流媒体服务器确定媒体流所使用的端口信息,可以是通过流媒体终端与流媒体服务器通过实时流协议,完成SET UP方法协商后确定的。
所述流媒体终端向流媒体服务器发送RTCP RR包的步骤,可以是流媒体终端依据所述步骤1所协商的端口信息以及实时流协议会话中的流媒体服务器的IP地址发送的。
所述向流媒体服务器发送请求消息的步骤,可以是通过实时流协议的PLAY方法发送请求消息的。
步骤1中所述RTCP RR包、步骤3、4中所述RTCP SR包、步骤5中所述的媒体流信息可以是基于用户数字报协议方式发送的。
本发明在不需要改动防火墙(FW)/NAT设备的情况下,实现协议的顺利穿越。使用本发明,用户无需购买任何新设备即可实现公网和私网之间的多媒体通讯,从而做到既解决多媒体通讯协议经过NAT后通讯失败问题,又可以做到公用一个公网IP地址,到达节省公网IP地址的目的。尤其是在流媒体终端的私网地址和公网地址不是一一对应的情况下,能利用流协议中RTCP(实时传输控制协议)包定时反馈的机制,来达到保持内外部地址之间的对应关系,从而将媒体流正确的发送到流媒体终端。
图1是本发明所述实施例的实施流程图。
具体实施例方式
由于NAT是一种地址转换技术,具有NAT技术的设备中保存内部地址、端口号与外部地址、端口号之间的对应关系。当IP数据包从NAT设备内部向外发送时,NAT设备依据保存的对应关系将IP数据包源地址及端口号从内部地址转换成外部地址及端口号。当数据包从NAT外部向内部发送时,NAT设备将IP数据包的目的地址从外部地址及端口号转换成内部地址及端口号。依据NAT设备的特点,在流媒体终端与流服务器完成RTSP(实时流协议)协议会话后,由流媒体终端依据协商好的媒体流端口信息,向流服务器发送数据包,流服务器收到媒体数据包后,即可向流媒体终端发送媒体流数据。流媒体收到媒体数据后即可进行媒体播放。
下面再结合附图具体描述本方法的实现,图1为本发明的实施流程图,如图所示,本发明的实施方式是步骤101、流媒体终端与流服务器通过RTSP协议,完成SET UP方法协商后,确定流媒体终端与流服务器所使用的端口信息。
步骤102、流媒体终端依据步骤1协商的端口信息以及RTSP会话中的流服务器IP地址,向流服务器发送基于UDP方式的RTCP RR包,其中RTCPRR包中无消息体内容。
步骤103、流媒体服务器根据收到的RTCP RR包,确定流媒体终端的IP地址及端口信息,并根据该流媒体终端的IP地址及端口信息,向流媒体终端反馈基于UDP方式的RTCP SR包信息。
步骤104、流媒体终端接收到RTCP SR包信息后,发送RTSP协议的PLAY方法。
步骤105、流服务器接收到请求消息后返回成功响应,并采用步骤103中RTCP SR包所使用的目的IP地址及端口号向流媒体播放终端发送基于UDP方式的媒体流信息。
权利要求
1.一种媒体流穿越网络地址转换的方法,其特征在于,包括如下步骤步骤1、流媒体终端与流媒体服务器确定媒体流所使用的端口信息;步骤2、流媒体终端向流媒体服务器发送RTCP RR包;步骤3、流媒体服务器根据收到的RTCP RR包,确定流媒体终端的IP地址及端口信息,并根据该流媒体终端的IP地址及端口信息,向流媒体终端反馈RTCP SR包信息;步骤4、流媒体终端接收到RTCP SR包信息后,向流媒体服务器发送请求消息;步骤5、流媒体服务器接收到请求消息后,返回成功响应,并采用所述步骤3中RTCP SR包所使用的目的IP地址及端口号向流媒体终端发送媒体流信息。
2.如权利要求1所述的方法,其特征在于,所述步骤1是通过流媒体终端与流媒体服务器通过实时流协议,完成SET UP方法协商后确定的。
3.如权利要求2所述的方法,其特征在于,所述流媒体终端向流媒体服务器发送RTCP RR包的步骤,是流媒体终端依据所述步骤1所协商的端口信息以及实时流协议会话中的流媒体服务器的IP地址发送的。
4.如权利要求1所述的方法,其特征在于,所述向流媒体服务器发送请求消息的步骤,是通过实时流协议的PLAY方法发送请求消息的。
5.如权利要求1所述的方法,其特征在于,步骤1中所述RTCP RR包、步骤3、4中所述RTCP SR包、步骤5中所述的媒体流信息是基于用户数字报协议方式发送的。
6.如权利要求1所述的方法,其特征在于,步骤2中所述RTCP RR包中无消息体内容。
全文摘要
本发明公开了一种媒体流穿越网络地址转换的方法,包括步骤1流媒体终端与流媒体服务器确定媒体流所使用的端口信息;步骤2流媒体终端向流媒体服务器发送RTCP RR包;步骤3流媒体服务器收到所述步骤2产生的RTCP RR包后,向流媒体终端反馈RTCP SR包信息;步骤4流媒体终端接收到RTCP SR包信息后,向流媒体服务器发送请求消息;步骤5流媒体服务器接收到请求消息后,返回成功响应,并采用所述步骤3中RTCP SR包所使用的目的IP地址及端口号向流媒体终端发送媒体流信息。本发明能是在流媒体终端的私网地址和公网地址不是一一对应的情况下,将媒体流正确的发送到流媒体终端。
文档编号H04L29/06GK1984029SQ20051013049
公开日2007年6月20日 申请日期2005年12月13日 优先权日2005年12月13日
发明者李凤军 申请人:中兴通讯股份有限公司