CN1929481A - 基于udp的流媒体穿越nat设备的方法 - Google Patents
基于udp的流媒体穿越nat设备的方法 Download PDFInfo
- Publication number
- CN1929481A CN1929481A CNA200610021989XA CN200610021989A CN1929481A CN 1929481 A CN1929481 A CN 1929481A CN A200610021989X A CNA200610021989X A CN A200610021989XA CN 200610021989 A CN200610021989 A CN 200610021989A CN 1929481 A CN1929481 A CN 1929481A
- Authority
- CN
- China
- Prior art keywords
- terminal
- port
- message
- udp
- media
- 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.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种IP通信方法。本发明提供了一种基于UDP的流媒体穿越NAT设备的方法,包括以下步骤:a终端扩展并向流媒体服务器发送RTSP请求消息,在RTSP请求消息中添加终端端口信息;b流媒体服务器获取终端端口信息,发出RTSP响应消息;c终端向服务器端口发送初始化MI消息;并启动定时器;d流媒体服务器分析接收到的初始化MI消息,获取终端的NAT设备上的公网出口IP地址与NAT设备端口信息,以及终端的私网IP地址与终端端口,生成映射表;e流媒体服务器根据映射表,向终端发送媒体流数据或交互RTCP数据。f终端向流媒体服务器发送维持MI消息,保持连接持续存活。本发明的有益效果是,在终端与流媒体服务器端作少量改造,就能实现UDP承载媒体流穿越防火墙。
Description
技术领域
本发明涉及一种IP通信方法,具体涉及一种在NAT/Firewall环境中的流媒体播放系统中流媒体穿越NAT设备的方法。
背景技术
流媒体技术是指从服务器通过网络向终端发送多媒体数据,终端边接收边播放的技术。流媒体技术一般要求视频和音频数据达到音视频连续、音视频同步、音视频清晰、音视频实时的效果。
实际应用中,要达到上述效果,允许有少量时延(几百毫秒),允许有一定百分比的数据丢包,但要求带宽有保障,尽可能保障较高的传输率。
流媒体技术中有3项关键技术:
(1)终端侧的音视频缓冲技术;(2)终端侧的音视频同步技术;(3)服务器侧的音视频媒体流控技术。
在流媒体穿越防火墙上,现有技术主要是采用TCP(传输控制协议)承载媒体流来实现。TCP有良好的确认机制和重传机制,并采用了拥塞控制与流控策略,从而成功解决网络拥塞和媒体发送与接收的速率匹配,有效避免数据丢包。但同时也牺牲了传输速率,使得传输数据量较大的流媒体应用(例如,点播高码率的片源)时,实时性大打折扣。
发明内容
本发明所要解决的技术问题是,提供一种容易实现的,且传输输率较高的流媒体穿越NAT设备的方法。
本发明为解决上述技术问题采用的技术方案是,基于UDP的流媒体穿越NAT设备的方法,包括以下步骤:
a终端扩展RTSP请求消息,在所述RTSP请求消息中添加终端端口信息;并将扩展后RTSP请求消息发送到流媒体服务器;
b流媒体服务器接收到RTSP请求消息,获取终端端口信息,向终端发出RTSP响应消息;所述RTSP响应消息包括有服务器IP地址与服务器端口信息;
c终端收到RTSP响应消息,获取服务器端口信息,向服务器端口发送初始化MI消息;并启动定时器;
d流媒体服务器分析接收到的初始化MI消息,获取终端的NAT设备上的公网出口IP地址与NAT设备端口信息,以及终端的私网IP地址与终端端口,生成映射表;
e流媒体服务器根据映射表,向终端的NAT设备端口发送媒体流数据或交互RTCP数据;
f终端向流媒体服务器发送维持MI消息,保持连接持续存活。
进一步的,步骤a中在RTSP请求消息的描述命令中的用户代理字段中进行扩展,在所述用户代理字段中填入终端与流媒体服务器的交互内容。
终端与流媒体服务器的交互内容包括:承载媒体流的类型;终端所处网络类型、终端端口信息。
终端端口包括:用于接收视频媒体流数据的端口、用于交互视频RTCP数据的端口、用于接收音频媒体流数据的端口、用于交互音频RTCP数据的端口。
服务器端口包括:用于下发音视频媒体流数据的端口、用于交互音视频媒体流数据的端口。
本发明的有益效果是,本发明所述流媒体穿越NAT设备的方法,仅在终端与流媒体服务器端作少量改造,就能实现UDP承载媒体流穿越防火墙,又能保障传输速率,从而保障实时性。
以下结合附图与实施例对本发明做进一步说明。
附图说明
图1为私网终端向公网服务器进行的点播流程;
图2为MI消息结构。
具体实施方式
如图1所示,终端向公网服务器进行的点播流程,采用UDP承载媒体流数据:
(1)终端在私网发起RTSP描述请求(Describe),该请求消息的用户代理(User-Agent)字段内容没有硬性要求,可以随便填。本发明在该字段中填入终端与服务器端交互的内容:
终端要求用来承载媒体流的类型:本实施例默认为UDP,同时允许取值为TCP,以便通过TCP来承载媒体流,从而向下兼容。
终端所处的网络类型:in表示私网,out表示公网,本发明针对终端处于私网的情况。
终端视频端口(video_port):端口号为5000、5001,终端准备用于接收视频媒体流的端口号为5000;终端准备用于交互视频通道RTCP消息的端口号为5001。本实施例中将终端视频端口取为5000、5001,实际也可以取为其它值,或动态选取。
终端音频端口(audio_port):端口号为5002、5003,终端准备用于接收音频媒体流的端口号为5002;终端准备用于交互音频通道RTCP消息的端口号为5003。一般audio_port的两个端口值与video_port的两个端口值是连续的4个端口值。
媒体流数据可采用两种形式传输:RTP数据或TS数据。终端均采用RTP端口接收媒体流,采用RTCP端口交互RTCP数据。
通过describe进行扩展,是为了告诉流媒体服务器,本终端目前处于私网中,需要进行防火墙穿越过程,在以后流程中通过MI消息过程获取端口信息。
采用该消息扩展,主要是:与终端处于公网的情形进行区别,因为终端处于公网时,无需穿越过程;describe消息是一种RTSP方法,它通过TCP传输,可以确保服务器很快收到,而以后的MI消息通过UDP承载,容易丢包重发造成时延。
(2)流媒体服务器收到终端发出的RTSP描述请求后,获取处于私网的4个终端端口后,向终端发出RTSP的响应(Reply ok)消息。
(3)终端收到RTSP的Reply ok消息后,向流媒体服务器发送RTSP建立连接请求消息。
(4)流媒体服务器收到RTSP建立连接请求(setup)消息,从setup消息的网络层头部获得终端的NAT设备的公网出口IP地址,从setup消息的传输层获得NAT设备端口信息;流媒体服务器向终端发出RTSP的Reply ok消息;
在Reply ok消息中,会携带流媒体服务器用于下发媒体流的服务器RTP端口与交互RTCP消息的服务器端口。一般流媒体服务器采用同一个RTP端口端口来下发视频媒体流与音频媒体流,同时采用相邻的另一端口来交互音频通道与视频通道的RTCP消息;因此,第(4)步与第(6)步中得到的端口值一般相同。本实施例的服务器端口取为7000、7001,实际中也可取为其它固定值。
(5)同上述(3),(6)同上述(4),因为终端的音频、视频连接是分别建立的。
(7)终端向流媒体服务器发出RTSP播放请求(play)消息。
(8)流媒体服务器收到终端发出的play消息后,向终端发出RTSP的响应(Reply ok)消息。
上述(1)-(8)步是普通的RTSP点播流程。
因为NAT设备一方面对从其私网向公网主动发起的连接通过并发连接表进行维系,另一方面也设置了连接维持时间;倘若在其连接维持时间内,其私网终端没有向公网发出消息,NAT设备就会主动关闭该连接,从而使得私网终端无法在原连接上接收来自公网的数据。TCP由于采用握手机制,不会受其影响;但本发明采用UDP承载,因此需要引入定时发送MI(MediaIndication,媒体指示)消息的办法保持UDP连接的持续存活。
如图2所示,描述的是MI消息结构。
MI消息用于向公网服务器传递私网侧的4个连续端口在其出口NAT设备上的公网IP地址与4个映射端口。
在MI消息结构中,各字段说明如下:
标识:固定填0xfdfefdfe;
长度:消息数据字节数,不包括标识字段和长度字段;
类型:1-初始化;2-维持;
私网IP地址:私网终端的私网IP地址;
私网端口:私网终端用于接收RTP媒体数据与交互RTCP消息的端口;
媒体类型:RTP视频 0x01;RTCP视频 0x02;RTP音频 0x03;RTCP音频 0x04;
方向:0-接收方向;1-发送方向;
保留:2字节保留字段,固定填0xfbfc。
(9)至(12)为四个终端端口向对应的服务器端口发送的初始化MI消息。
私网终端首先采用MI消息结构,构造基于UDP传送的MI消息,将其消息类型字段设置为初始化,将其方向设置为发送方向,同时在私网端口处设置私网终端用于发送MI消息的源端口,同时也是私网终端用于接收媒体或交互RTCP消息的端口,这4步中的端口值是连续的4个端口值,与第1步中的video_port和audio_port端口值是一致的。发送MI消息的同时,由于UDP无连接,为了确保有效工作,设置超时时间为5s,倘若超时时间到却还没有收到媒体流,就重发MI消息,直到收到媒体流。另外,启动MI消息发送的定时器,本实施例取为30s。
本实施例中,端口号为7000的服务器端口接收端口号为5000、5002的终端端口发出的初始化MI消息;端口号为7001的服务器端口接收端口号为5001、5003的终端端口发出的初始化MI消息。
在公网上的流媒体服务器在收到这些MI消息后,将其按MI消息结构进行解析,从UDP数据中得知私网终端用于接收媒体或交互RTCP消息的端口,从UDP报文头得知私网终端的私网IP地址与终端端口在其NAT设备出口处映射的公网出口IP地址与NAT设备的端口,组成1组映射表。根据私网端口的唯一性得到共4组映射表,该过程中会与第1步中收到的Describe消息里的video_port和audio_port端口值进行校验,二者一致才有效。
(13)至(16)步中,流媒体服务器分别向4组映射表的公网出口IP地址与NAT设备端口发送媒体流或交互RTCP消息。端口号为7000的服务器端口分别向端口号为5000的终端端口下发UDP视频媒体流;向端口号为5002的终端端口下发UDP音频媒体流;端口号为7000的服务器端口分别与端口号为5001、5003的终端端口交互视、音频通道的RTCP消息。
这里利用了NAT设备的工作原理,NAT设备会自动将收到的媒体流或RTCP消息转发到相应的私网终端的IP地址与终端端口。
(17)至(20)步中,与(9)至(12)相同,私网终端在其用于接收媒体或交互RTCP消息的端口处,定时向公网服务器发送MI消息。不同之处在于终端是发送的维持MI消息,即MI消息类型为维持,方向为接收方向。服务器在收到该MI消息后,得知消息类型为维持后,不作其它处理。本实施例中MI消息的定时时间间隔取为30s,实际应用中也可取为60s或120s,该值只要小于NAT设备的连接维持时间即可,一般NAT设备的连接维持时间会配置在5分钟到30分钟不等。
Claims (8)
1、基于UDP的流媒体穿越NAT设备的方法,其特征在于,包括以下步骤:
a终端扩展RTSP请求消息,在所述RTSP请求消息中添加终端端口信息;并将扩展后RTSP请求消息发送到流媒体服务器;
b流媒体服务器接收到RTSP请求消息,获取终端端口信息,向终端发出RTSP响应消息;所述RTSP响应消息包括有服务器IP地址与服务器端口信息;
c终端收到RTSP响应消息,获取服务器端口信息,向服务器端口发送初始化MI消息;并启动定时器;
d流媒体服务器分析接收到的初始化MI消息,获取终端的NAT设备上的公网出口IP地址与NAT设备端口信息,以及终端的私网IP地址与终端端口,生成映射表;
e流媒体服务器根据映射表,向终端的NAT设备端口发送媒体流数据或交互RTCP数据;
f终端向流媒体服务器发送维持MI消息,保持连接持续存活。
2、如权利要求1所述基于UDP的流媒体穿越NAT设备的方法,其特征在于,步骤a中在RTSP请求消息的描述命令中的用户代理字段中进行扩展,在所述用户代理字段中填入终端与流媒体服务器的交互内容。
3、如权利要求2所述基于UDP的流媒体穿越NAT设备的方法,其特征在于,所述终端与流媒体服务器的交互内容包括:承载媒体流的类型、终端所处网络类型、终端端口信息。
4、如权利要求1、2或3所述基于UDP的流媒体穿越NAT设备的方法,其特征在于,所述承载媒体流的类型为UDP;所述终端所处网络类型为内网;所述终端端口包括:用于接收视频媒体流数据的端口、用于交互视频RTCP数据的端口、用于接收音频媒体流数据的端口、用于交互音频RTCP数据的端口。
5、如权利要求1所述基于UDP的流媒体穿越NAT设备的方法,其特征在于,所述服务器端口包括:用于下发音视频媒体流数据的端口、用于交互音视频媒体流数据的端口。
6、如权利要求1所述基于UDP的流媒体穿越NAT设备的方法,其特征在于,步骤c中所述定时器设置的定时时间小于NAT设备的连接维持时间。
7、如权利要求1所述基于UDP的流媒体穿越NAT设备的方法,其特征在于,步骤d中流媒体服务器分析接收到的初始化MI消息,获取终端端口信息后,与步骤b中流媒体服务器从接收到RTSP请求消息中获取的终端端口信息相比较,如一致,生成映射表。
8、如权利要求1所述基于UDP的流媒体穿越NAT设备的方法,其特征在于,所述媒体流数据为RTP数据或TS数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA200610021989XA CN1929481A (zh) | 2006-09-30 | 2006-09-30 | 基于udp的流媒体穿越nat设备的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA200610021989XA CN1929481A (zh) | 2006-09-30 | 2006-09-30 | 基于udp的流媒体穿越nat设备的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1929481A true CN1929481A (zh) | 2007-03-14 |
Family
ID=37859266
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA200610021989XA Pending CN1929481A (zh) | 2006-09-30 | 2006-09-30 | 基于udp的流媒体穿越nat设备的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1929481A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101695025A (zh) * | 2009-11-05 | 2010-04-14 | 中国电信股份有限公司 | 下一代网络中媒体资源广播实现方法、系统和广播服务器 |
CN101094159B (zh) * | 2007-07-18 | 2010-06-09 | 中兴通讯股份有限公司 | 一种媒体流私网穿透的方法 |
CN101083628B (zh) * | 2007-07-20 | 2010-08-18 | 中兴通讯股份有限公司 | 一种动态转发媒体源的方法 |
CN101309203B (zh) * | 2007-05-17 | 2011-03-16 | 中兴通讯股份有限公司 | 一种网络媒体服务方法 |
CN101998116A (zh) * | 2009-08-31 | 2011-03-30 | 中国移动通信集团公司 | 一种多视角视频业务的实现方法、系统和设备 |
CN101729862B (zh) * | 2008-10-21 | 2011-12-28 | 中兴通讯股份有限公司 | 一种视频监控系统实现媒体穿越nat的方法和系统 |
CN101350825B (zh) * | 2008-08-22 | 2013-05-08 | 中兴通讯股份有限公司 | 网络地址转换穿越方法和系统、流媒体服务器、机顶盒 |
CN103379182A (zh) * | 2012-04-19 | 2013-10-30 | 阿里巴巴集团控股有限公司 | 数据传输方法和客户端 |
US9887910B2 (en) | 2015-01-13 | 2018-02-06 | National Chiao Tung University | Method for retransmitting packet, data server using the same, and packet retransmitting system |
CN110311840A (zh) * | 2019-07-31 | 2019-10-08 | 秒针信息技术有限公司 | 网络流量识别方法、装置、设备及存储介质 |
-
2006
- 2006-09-30 CN CNA200610021989XA patent/CN1929481A/zh active Pending
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101309203B (zh) * | 2007-05-17 | 2011-03-16 | 中兴通讯股份有限公司 | 一种网络媒体服务方法 |
CN101094159B (zh) * | 2007-07-18 | 2010-06-09 | 中兴通讯股份有限公司 | 一种媒体流私网穿透的方法 |
CN101083628B (zh) * | 2007-07-20 | 2010-08-18 | 中兴通讯股份有限公司 | 一种动态转发媒体源的方法 |
CN101350825B (zh) * | 2008-08-22 | 2013-05-08 | 中兴通讯股份有限公司 | 网络地址转换穿越方法和系统、流媒体服务器、机顶盒 |
CN101729862B (zh) * | 2008-10-21 | 2011-12-28 | 中兴通讯股份有限公司 | 一种视频监控系统实现媒体穿越nat的方法和系统 |
CN101998116A (zh) * | 2009-08-31 | 2011-03-30 | 中国移动通信集团公司 | 一种多视角视频业务的实现方法、系统和设备 |
CN101695025A (zh) * | 2009-11-05 | 2010-04-14 | 中国电信股份有限公司 | 下一代网络中媒体资源广播实现方法、系统和广播服务器 |
CN101695025B (zh) * | 2009-11-05 | 2015-02-11 | 中国电信股份有限公司 | 下一代网络中媒体资源广播实现方法、系统和广播服务器 |
CN103379182A (zh) * | 2012-04-19 | 2013-10-30 | 阿里巴巴集团控股有限公司 | 数据传输方法和客户端 |
US9887910B2 (en) | 2015-01-13 | 2018-02-06 | National Chiao Tung University | Method for retransmitting packet, data server using the same, and packet retransmitting system |
CN110311840A (zh) * | 2019-07-31 | 2019-10-08 | 秒针信息技术有限公司 | 网络流量识别方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1929481A (zh) | 基于udp的流媒体穿越nat设备的方法 | |
US10484445B2 (en) | Apparatus and method for transmitting multimedia data in a broadcast system | |
CN103581712B (zh) | 基于移动终端的多协议视频播放方法及系统 | |
US20050207443A1 (en) | Transmission apparatus and method, reception apparatus and method, communication system, recording medium, and program | |
EP2130346B1 (en) | Media stream setup in a group communication system | |
CN1906906A (zh) | 用于ip语音的最优无线承载电路配置 | |
KR20080068690A (ko) | 상보적 지정 파일을 이용하여 실시간전송프로토콜 출구스트리밍을 위한 방법 및 장치 | |
CN109168064B (zh) | 一种电子数据的同步显示方法和系统 | |
KR20190068513A (ko) | 단일 포트 또는 다중 포트에서 미디어 콘텐츠 전송 방법 및 장치 | |
EP3104597B1 (en) | Method and system for monitoring video with single path of video and multiple paths of audio | |
EP2472799B1 (en) | Method, apparatus and system for rapid acquisition of multicast realtime transport protocol sessions | |
CN1866929A (zh) | 提供实时通信连接的方法 | |
CN101854286B (zh) | 基于用户数据报协议的数据流发送、接收方法及装置 | |
CN106911699A (zh) | 一种基于rtp协议实现i帧重传的方法 | |
CN1148931C (zh) | 基于实时传输协议和传输控制协议的流媒体传输实现方法 | |
WO2018121584A1 (zh) | 一种数据流传输方法、装置、相关设备及存储介质 | |
CN101039234A (zh) | 一种分布式dhcp中继的实现方法 | |
CN1783835A (zh) | 一种在Internet网络中逐跳识别实时业务的方法 | |
CN106790030B (zh) | 多屏协同音频传输服务端、客户端、系统及其处理方法 | |
CN110446058B (zh) | 视频获取方法、系统、设备和计算机可读存储介质 | |
CN109698859B (zh) | 一种基于视联网的数据存储方法和装置 | |
CN101039319A (zh) | 一种基于tcp协议实时传输媒体数据的方法 | |
CN111245733A (zh) | 一种数据传输的方法和装置 | |
WO2015043170A1 (zh) | 端点信息交互处理方法、装置及远程呈现端点 | |
CN110086772B (zh) | 一种监控视频的获取方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20070314 |