CN1735068A - 一种媒体传输流数据转发方法 - Google Patents
一种媒体传输流数据转发方法 Download PDFInfo
- Publication number
- CN1735068A CN1735068A CNA2004100580696A CN200410058069A CN1735068A CN 1735068 A CN1735068 A CN 1735068A CN A2004100580696 A CNA2004100580696 A CN A2004100580696A CN 200410058069 A CN200410058069 A CN 200410058069A CN 1735068 A CN1735068 A CN 1735068A
- Authority
- CN
- China
- Prior art keywords
- protocol package
- packet
- bag
- message
- forwarding
- 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
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种媒体传输流数据转发方法,包括下列三个并行的处理进程:媒体传输流接收、缓存及处理消息分发进程,传输协议包分析处理进程和数据包转发进程。采用本发明提出方法,媒体传输流的数据接收、处理和转发并行进行,这种方法效率高,同时实现了媒体传输流中多信源视音频媒体包和相关传输协议包的分流并行处理,使这两种类型数据包的处理彼此独立,只通过转发表进行联系,避免了由于分析处理实时性要求不高的传输协议包导致阻碍视音频媒体包的快速转发和引入较大延时和抖动。另外对多信源视音频媒体包引入了优先级的概念,使多信源视音频媒体包能够通过不同的优先级得以分流,然后根据优先级进行先后转发,增强了媒体传输流转发的灵活性。
Description
技术领域
本发明涉及多媒体数据通讯领域,特别涉及一种媒体传输流数据的处理方法。
背景技术
在多媒体数据通讯领域中,存在许多媒体传输流数据转发设备,比如流媒体服务器、媒体交换机等设备。它们主要负责将媒体传输流中指定信源的视音频媒体包转发给所有需要观看该媒体的终端,即信宿。
媒体传输流(如RTP/RTCP流等)是一种携带多信源视音频媒体包和相关传输协议包的传输流,其中多信源视音频媒体包占用主要带宽,转发和处理的实时性要求很高,但处理相对简单,不需要深入分析媒体包的具体内容,只需要根据媒体包的相关标识查找转发表,修改媒体包的目的标识然后转发输出;相关传输协议包主要携带一些媒体传输流的信源构成信息、信源媒体映射信息和媒体转发重定向信息等,这些协议包占用很少的带宽,转发和处理的实时性要求不高,有些甚至不用转发,但处理相对复杂,需要深入分析这些协议包的具体内容,提取相关信息,并利用这些信息维护转发表。
媒体传输流数据转发的通常方法如图1所示:首先从网络线路上实时接收媒体传输流,将当前接收到的还未处理的数据包送入接收缓冲区中;处理单元从接收缓冲区中取出一个数据包后,首先判断该数据包类型,如果是相关传输协议包,则深入分析该协议包的内容,提取相关信息,并利用这些信息维护转发表;如果是视音频媒体包,则根据媒体包中的相关标识查找转发表,如果需要转发则修改媒体包的目的标识然后转发输出;当这个数据包处理完后,处理单元从接收缓冲区中取出下一个数据包,并采用相同的方法进行处理。
上述媒体传输流数据转发的方法存在如下两个缺陷:
1.采用的是串行处理的机制。接收、处理和转发数据包等工作串行进行,效率低下,引起了媒体转发的瓶颈;而且没有通过区分媒体传输流中的视音频媒体包和相关传输协议包从而采用分流并行处理的方式,当分析处理一个实时性要求不是很高的相关传输协议包时,必然导致接收缓冲区中要求快速实时转发的多信源视音频媒体包的转发停滞,不利于媒体包的快速转发;另外由于相关传输协议包分析处理的占用时间较长和占用时间不同,在媒体传输流的转发过程中必然会增加媒体传输流的延时和抖动。
2.多信源的视音频媒体包没有优先级的概念。无法根据媒体包的优先级对它们进行先后转发。当转发优先级低的媒体包时,必然导致接收缓冲区中优先级高的媒体包的转发停滞,优先级高的媒体包相对于优先级低的媒体包无法实现优先快速转发,缺乏灵活性。
发明内容
本发明的目的就是提出一种高效、快速、灵活和延时抖动小的媒体传输流数据转发方法。
一种媒体传输流数据转发方法,包括下列三个并行的处理进程:
媒体传输流接收、缓存及处理消息分发进程,包括:
1.1接收媒体传输流,并将之送入接收缓冲区存储;
1.2从接收缓冲区中取出一个数据包,判断其是否为传输协议包;
1.3如果是则发送处理消息到相关传输协议包处理队列后回到步骤1.1;
1.4否则判断其是否为视音频媒体包,如果是则根据媒体包标识查询转发表,如果需要转发则发送转发消息到相应的媒体包转发队列中,回到步骤1.1;
1.5如果该数据包不是视音频媒体包或者是视音频媒体包但不需要转发,则丢弃该数据包后回到步骤1.1;
传输协议包分析处理进程,包括:
2.1查询传输协议包处理队列,如果有消息则取出;
2.2根据消息内容查找到接收缓冲区中对应的传输协议包,分析该协议包的内容,提取相关信息,并利用这些信息结合用户配置维护转发表;
2.3根据传输协议包的标识查询转发表,如果需要转发则发送转发消息到相应的传输协议包转发队列中,回到步骤2.1;
2.4否则丢弃该传输协议包后回到步骤2.1;
数据包转发进程,包括:
3.1查询媒体包转发队列和传输协议包转发队列,如果有消息则取出;
3.2根据消息内容查找并取出接收缓冲区中对应的数据包;
3.3根据数据包的相关标识查询转发表,修改数据包的目的标识并转发输出。
在上述方法中,还可以将视音频媒体包区分为不同的优先级进行处理:步骤1.4中,如果需要转发则根据该媒体包的优先级发送转发消息到对应优先级的媒体包转发队列中;上述数据包转发进程中,先处理优先级高的媒体包转发队列中的消息,后处理优先级低的媒体包转发队列中的消息。
采用本发明提出方法,媒体传输流的数据接收、处理和转发并行进行,这种方法效率高,同时实现了媒体传输流中多信源视音频媒体包和相关传输协议包的分流并行处理,使这两种类型数据包的处理彼此独立,只通过转发表进行联系,避免了由于分析处理实时性要求不高的传输协议包导致阻碍视音频媒体包的快速转发和引入较大延时和抖动。另外对多信源视音频媒体包引入了优先级的概念,使多信源视音频媒体包能够通过不同的优先级得以分流,然后根据优先级进行先后转发,增强了媒体传输流转发的灵活性。
附图说明
图1是现有技术中媒体传输流数据转发方法的流程图;
图2是本发明中媒体传输流接收、缓存及处理消息分发流程图;
图3是本发明中传输协议包分析处理流程图;
图4是本发明中数据包转发的流程图;
图5是本发明提出的数据转发方法的示意图;
图6是本发明的实施例中网络处理器中数据流向示意图;
图7是本发明的实施例中包描述子堆栈的示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。
图1在背景技术中已经进行过说明。
图2是本发明中媒体传输流接收、缓存及处理消息分发流程图,如图2所示,包括下列步骤:1、接收媒体传输流,并将之送入接收缓冲区存储;2、从接收缓冲区中取出一个数据包,判断其是否为传输协议包;3、如果是则发送处理消息到相关传输协议包处理队列后回到步骤1;4、否则判断其是否为视音频媒体包,如果是则根据媒体包标识查询转发表,如果需要转发则发送转发消息到相应的媒体包转发队列中,回到步骤1。5、如果该数据包不是视音频媒体包或者是视音频媒体包但不需要转发,则丢弃该数据包后回到步骤1。
图3是本发明中传输协议包分析处理流程图,如图3所示,包括:1、查询传输协议包处理队列,如果有消息则取出;2、根据消息内容查找到接收缓冲区中对应的传输协议包,分析该协议包的内容,提取相关信息,并利用这些信息结合用户配置维护转发表;3、根据传输协议包的标识查询转发表,如果需要转发则发送转发消息到相应的传输协议包转发队列中,回到步骤1;4、否则丢弃该传输协议包后回到步骤1。
图4是本发明中数据包转发的流程图,如图4所示,包括:1、查询媒体包转发队列和传输协议包转发队列,如果有消息则取出;2、根据消息内容查找并取出接收缓冲区中对应的数据包;3、根据数据包的相关标识查询转发表,修改数据包的目的标识并转发输出。
图5是本发明提出的数据转发方法的示意图,如图5所示,本发明提出的数据转发方法包括:1、输入媒体传输流进入处理单元1,该单元接收、缓存、分析数据包和处理消息分发。如果是传输协议包,则发送处理消息到传输协议包处理队列。如果是媒体包,则根据其相关标识查询转发表,当需要转发时,则根据其转发优先级发送转发消息到对应优先级的媒体包转发队列中,否则丢弃该媒体包;2、处理单元2查询传输协议包处理队列,如果有消息则取出,根据消息内容查找到接收缓冲区中对应的传输协议包,分析该协议包的内容,提取相关信息,并利用这些信息结合用户配置维护转发表。根据传输协议包的标识查询转发表,如果需要转发则发送转发消息到相应的传输协议包转发队列中;3、处理单元3查询媒体包转发队列和传输协议包转发队列,如果有消息则取出,根据消息内容查找并取出接收缓冲区中对应的数据包,根据数据包的相关标识查询转发表,修改数据包的目的标识并转发输出。
下面结合一个具体实施例来进一步说明本发明的详细实现。
网络处理器是一种高度集成的综合数据处理器,它提供高性能并行处理能力,广泛应用于各种网络通信中。这种处理器具有一个共同的特点:内部都具有通用处理器+多个转发引擎(每个转发引擎中又有多个硬件线程)的并行处理架构,通用处理器计算能力非常强,转发引擎的I/O处理能力非常强,具有强大的数据包吞吐能力,可以实现千兆的输入输出能力,但计算能力较弱。
由上面的分析可见:网络处理器内部的架构特点非常适合应用于实现本发明所描述的方法。我们可以让通用处理器负责控制平面,处理实时性要求不高的传输协议包,维护转发表;转发引擎负责根据媒体转发表将媒体包进行快速的转发。基于以上的分析,可以将媒体传输流在网络处理器中的流动分为两条路径,如图6所示,即快通道(fast path)和慢通道(slowpath),这两条路径分别对应了多信源视音频媒体包和相关传输协议包的处理过程。通常,快通道上的传输对象是媒体包,数据量大,到达频率高,但处理简单;而慢通道上的传输对象主要是协议包,到达频率低但处理量大(计算量大)。所以,在快通道上的处理单元通常由多个简单的转发引擎并行实现,而慢通道上的处理单元通常由具有强大计算能力的通用处理器实现。
下面具体描述一下基于网络处理器实现本发明所描述的方法的步骤:
1、引入包描述子的概念,创建和初始化包描述子堆栈。如图7所示,堆栈初始状态为压满许多可用的空闲包描述子资源,这些包描述子通过单向链表的方式进行管理,每个包描述子与包缓冲池中一块存储区域相对应,在媒体转发过程中,每个转发的媒体包与其中的一个包描述子相对应,包描述子资源的多少决定了媒体传输流转发设备在转发过程中最多可以缓存的媒体包数。采用这种方式的好处在于:当针对转发的媒体包进行分配和释放资源时,可以简单地通过包描述子出入链表的方式进行,可以快速高效地分配和管理存储资源;初始化每个包描述子指向的包缓冲池中的存储区域;创建和初始化转发引擎线程间的通讯邮箱;创建和初始化多个不同优先级的媒体包转发队列;创建传输协议包处理队列和转发队列。
2、转发引擎根据完成的任务分为输入微引擎和输出微引擎,分配多个微引擎线程处理线路输入,输入微引擎线程本着负荷分担的原则进行轮转调度,调度通过在线程间传递令牌的方式自动进行,一个输入微引擎线程处理完后,将令牌交给下一个输入微引擎线程,启动其工作。分配多个微引擎线程处理线路输出,其中一个输出微引擎线程作为其它输出微引擎线程的调度线程,调度线程负责根据优先级查询媒体包转发队列,当队列中有媒体包需要转发时,由它分配空闲的输出微引擎线程将该媒体包进行转发输出。采用这些机制的好处是可以充分利用网络处理器的多转发引擎架构和并行处理能力,提高媒体包的转发速度。
3、每个输入微引擎线程一次只能处理线路输入的数据包的最多64字节片段(我们称之为一个MPKT),当某个输入微引擎线程从线路接收到一个数据包的头一个MPKT时,它从包描述子资源堆栈中弹出一个空闲的包描述子,用该描述子来描述这个开始接收的数据包,该描述子指向包缓冲池中一块空闲的存储区域,将这个MPKT从输入FIFO中搬移到包描述子所指向的包缓冲池区域中,记录下一个将要接收的MPKT在包缓冲池中的存储偏移地址,发送启动消息(消息中包含该偏移地址参数,该启动消息即令牌)给下一个要被调度的微引擎线程,启动其工作,当该被调度的微引擎线程从线路接收完一个MPKT后,将这个MPKT从输入FIFO中搬移到包缓冲池中的存储偏移地址处,紧接着该数据包的上一个接收的MPKT存放。依此类推直到数据包被完整接收并搬移到包缓冲池中。接收媒体包最后一个MPKT的微引擎线程根据该数据包的类型发送消息到不同的处理队列中,消息的内容为该包描述子的存储地址以及与包相关的一些信息:如果是相关传输协议包,则发送消息到相关传输协议包处理队列中,由通用处理器分析处理该传输协议包,提取信息和维护转发表,并且由通用处理器查询转发表,如果该协议包需要转发则发送消息到传输协议包转发队列;如果是媒体包,根据它的标识查询转发表,如果需要转发,则根据媒体包的优先级发送消息到对应优先级的媒体包转发队列中。
4、输出微引擎调度线程查询不同优先级的媒体包转发队列和传输协议包转发队列,需要注意的是,在查询不同优先级的媒体包转发队列时,先处理优先级高的媒体包转发队列中的消息,后处理优先级低的媒体包转发队列中的消息。当有数据包需要转发时,向空闲的输出微引擎线程发送消息,启动其将该数据包转发输出,每个输出微引擎线程一次最多负责输出一个MPKT。输出微引擎线程根据数据包在缓冲池中的存储地址,结合包描述子中的其它相关标识信息查询转发表,修改数据包的目的标识,然后转发输出。
本发明的实施例充分利用网络处理器的内部架构特点,实现媒体包的快速转发,可以广泛地应用于多媒体数据通讯领域,比如流媒体服务器、媒体穿越防火墙交换机等设备,极大地提高这些设备的性能。
Claims (2)
1、一种媒体传输流数据转发方法,其特征在于,包括下列三个并行的处理进程:
媒体传输流接收、缓存及处理消息分发进程,包括:
1.1接收媒体传输流,并将之送入接收缓冲区存储;
1.2从接收缓冲区中取出一个数据包,判断其是否为传输协议包;
1.3如果是则发送处理消息到相关传输协议包处理队列后回到步骤1.1:
1.4否则判断其是否为视音频媒体包,如果是则根据媒体包标识查询转发表,如果需要转发则发送转发消息到相应的媒体包转发队列中,回到步骤1.1;
1.5如果该数据包不是视音频媒体包或者是视音频媒体包但不需要转发,则丢弃该数据包后回到步骤1.1;
传输协议包分析处理进程,包括:
2.1查询传输协议包处理队列,如果有消息则取出;
2.2根据消息内容查找到接收缓冲区中对应的传输协议包,分析该协议包的内容,提取相关信息,并利用这些信息结合用户配置维护转发表;
2.3根据传输协议包的标识查询转发表,如果需要转发则发送转发消息到相应的传输协议包转发队列中,回到步骤2.1;
2.4否则丢弃该传输协议包后回到步骤2.1;
数据包转发进程,包括:
3.1查询媒体包转发队列和传输协议包转发队列,如果有消息则取出;
3.2根据消息内容查找并取出接收缓冲区中对应的数据包;
3.3根据数据包的相关标识查询转发表,修改数据包的目的标识并转发输出。
2、根据权利要求1所述的媒体传输流数据转发方法,其特征在于:将视音频媒体包区分为不同的优先级,所述步骤1.4中,如果需要转发则根据该媒体包的优先级发送转发消息到对应优先级的媒体包转发队列中;所述数据包转发进程中,先处理优先级高的媒体包转发队列中的消息,后处理优先级低的媒体包转发队列中的消息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100580696A CN100417131C (zh) | 2004-08-11 | 2004-08-11 | 一种媒体传输流数据转发方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100580696A CN100417131C (zh) | 2004-08-11 | 2004-08-11 | 一种媒体传输流数据转发方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1735068A true CN1735068A (zh) | 2006-02-15 |
CN100417131C CN100417131C (zh) | 2008-09-03 |
Family
ID=36077269
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100580696A Expired - Fee Related CN100417131C (zh) | 2004-08-11 | 2004-08-11 | 一种媒体传输流数据转发方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100417131C (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100438442C (zh) * | 2006-04-25 | 2008-11-26 | 中国移动通信集团公司 | 媒体流分流系统及媒体流分流方法 |
WO2011017964A1 (zh) * | 2009-08-11 | 2011-02-17 | 中兴通讯股份有限公司 | 转发装置及方法 |
CN102495764A (zh) * | 2011-12-06 | 2012-06-13 | 曙光信息产业股份有限公司 | 数据分流的实现方法和装置 |
CN103036788A (zh) * | 2012-12-14 | 2013-04-10 | 上海斐讯数据通信技术有限公司 | 一种多接口网关设备数据发送实现方法 |
CN109547357A (zh) * | 2018-12-03 | 2019-03-29 | 郑州云海信息技术有限公司 | 一种存储系统中数据信息的传输方法、装置、设备及介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100408525B1 (ko) * | 2001-10-31 | 2003-12-06 | 삼성전자주식회사 | 네트워크에 적응적인 실시간 멀티미디어 스트리밍 시스템및 방법 |
US20040006636A1 (en) * | 2002-04-19 | 2004-01-08 | Oesterreicher Richard T. | Optimized digital media delivery engine |
CN1468001A (zh) * | 2002-06-27 | 2004-01-14 | 上海汉唐科技有限公司 | 基于因特网的媒体流自适应传输方法 |
CN1148931C (zh) * | 2002-09-29 | 2004-05-05 | 清华大学 | 基于实时传输协议和传输控制协议的流媒体传输实现方法 |
-
2004
- 2004-08-11 CN CNB2004100580696A patent/CN100417131C/zh not_active Expired - Fee Related
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100438442C (zh) * | 2006-04-25 | 2008-11-26 | 中国移动通信集团公司 | 媒体流分流系统及媒体流分流方法 |
WO2011017964A1 (zh) * | 2009-08-11 | 2011-02-17 | 中兴通讯股份有限公司 | 转发装置及方法 |
CN102495764A (zh) * | 2011-12-06 | 2012-06-13 | 曙光信息产业股份有限公司 | 数据分流的实现方法和装置 |
CN103036788A (zh) * | 2012-12-14 | 2013-04-10 | 上海斐讯数据通信技术有限公司 | 一种多接口网关设备数据发送实现方法 |
CN109547357A (zh) * | 2018-12-03 | 2019-03-29 | 郑州云海信息技术有限公司 | 一种存储系统中数据信息的传输方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN100417131C (zh) | 2008-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113728315A (zh) | 促进网络接口控制器(nic)中的有效消息匹配的系统和方法 | |
US6980552B1 (en) | Pipelined packet switching and queuing architecture | |
US7177956B2 (en) | Ingress processing optimization via traffic classification and grouping | |
US6831893B1 (en) | Apparatus and method for wire-speed classification and pre-processing of data packets in a full duplex network | |
US20060242313A1 (en) | Network content processor including packet engine | |
US9864633B2 (en) | Network processor having multicasting protocol | |
EP2208322B1 (en) | A grid router | |
CN1708959A (zh) | 软件和硬件包流转发的方法、路由器或交换机 | |
CN1396748A (zh) | 分组处理装置 | |
CN1846409A (zh) | 用于基于传输控制协议话务流特征进行超高速缓存查找的设备和方法 | |
Gu et al. | SABUL: A high performance data transfer protocol | |
CN1268097C (zh) | 一种实现报文分片组包的方法 | |
EP2575290A1 (en) | Packet Switching System and method for improving multicast performance in banked shared memory architectures | |
CN1735068A (zh) | 一种媒体传输流数据转发方法 | |
JP5382812B2 (ja) | データ圧縮転送システム、伝送装置及びそれらに用いるデータ圧縮転送方法 | |
US20040199650A1 (en) | System and methods for accelerating data delivery | |
US20040071144A1 (en) | Method and system for distributed single-stage scheduling | |
CN117015963A (zh) | 用于异构和加速计算系统的输入/输出缩放的服务器结构适配器 | |
Jani et al. | SCTP performance in data center environments | |
CN1694455A (zh) | 跨平台的端到端rtp协议栈设计方法 | |
CN116346953B (zh) | 一种用于实时数据传输的加速方法及装置 | |
CN1181653C (zh) | 一种网络交换设备有效获得回应报文的方法 | |
Apostolico et al. | Off-line compression by extensible motifs | |
Avudaiammal et al. | Implementation of packet classification algorithm in NetworkProcessor based router to enhance multimedia applications | |
Avudaiammal et al. | TTSS packet classification algorithm to enhance multimedia applications in network processor based router |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20080903 Termination date: 20170811 |
|
CF01 | Termination of patent right due to non-payment of annual fee |