首页 > 专利 > 上海斐讯数据通信技术有限公司 > 基于内核进行RTP数据收发的网关设备及其实现方法专利详情

基于内核进行RTP数据收发的网关设备及其实现方法   0    0

有效专利 查看PDF
专利申请流程有哪些步骤?
专利申请流程图
申请
申请号:指国家知识产权局受理一件专利申请时给予该专利申请的一个标示号码。唯一性原则。
申请日:提出专利申请之日。
2013-01-10
申请公布
申请公布指发明专利申请经初步审查合格后,自申请日(或优先权日)起18个月期满时的公布或根据申请人的请求提前进行的公布。
申请公布号:专利申请过程中,在尚未取得专利授权之前,国家专利局《专利公报》公开专利时的编号。
申请公布日:申请公开的日期,即在专利公报上予以公开的日期。
2014-12-17
授权
授权指对发明专利申请经实质审查没有发现驳回理由,授予发明专利权;或对实用新型或外观设计专利申请经初步审查没有发现驳回理由,授予实用新型专利权或外观设计专利权。
2018-01-02
预估到期
发明专利权的期限为二十年,实用新型专利权期限为十年,外观设计专利权期限为十五年,均自申请日起计算。专利届满后法律终止保护。
2033-01-10
基本信息
有效性 有效专利 专利类型 发明专利
申请号 CN201310009326.6 申请日 2013-01-10
公开/公告号 CN103179028B 公开/公告日 2018-01-02
授权日 2018-01-02 预估到期日 2033-01-10
申请年 2013年 公开/公告年 2018年
缴费截止日 2023-02-10
分类号 H04L12/66 主分类号 H04L12/66
是否联合申请 独立申请 文献类型号 B
独权数量 1 从权数量 7
权利要求数量 8 非专利引证数量 0
引用专利数量 1 被引证专利数量 0
非专利引证
引用专利 CN102685342A 被引证专利
专利权维持 5 专利申请国编码 CN
专利事件 事务标签 公开、实质审查、授权
申请人信息
申请人 第一申请人
专利权人 上海斐讯数据通信技术有限公司 当前专利权人 上海斐讯数据通信技术有限公司
发明人 庞骏、韩永华 第一发明人 庞骏
地址 上海市松江区广富林路4855弄20号、90号 邮编 201616
申请人数量 1 发明人数量 2
申请人所在省 上海市 申请人所在市 上海市松江区
代理人信息
代理机构
专利代理机构是经省专利管理局审核,国家知识产权局批准设立,可以接受委托人的委托,在委托权限范围内以委托人的名义办理专利申请或其他专利事务的服务机构。
杭州千克知识产权代理有限公司 代理人
专利代理师是代理他人进行专利申请和办理其他专利事务,取得一定资格的人。
周希良
摘要
本发明公开了基于内核进行RTP数据收发的网关设备,属于一种网络设备,网关设备包括一驱动模块,驱动模块包括RTP接收子模块以及RTP读取子模块;驱动模块与RTP应用程序的接口包括创建接口、修改接口以及关闭接口;RTP接收子模块分别与内核的socket和RTP读取子模块连接,RTP读取子模块与一DSP模块连接;驱动模块通过RTP接收子模块从内核的socket中接收网络RTP包,并将RTP包送入系统缓存队列;驱动模块通过RTP读取子模块从系统缓存队列中读取RTP包,并将RTP包发送到DSP模块。本发明的有益效果是:通过直接在内核层处理RTP的收发,而不需要频繁的通过系统调用来处理RTP包,减少了在应用层和内核之间的切换,大大减小RTP的转发时延,增强了语音模块的健壮性。
  • 摘要附图
    基于内核进行RTP数据收发的网关设备及其实现方法
  • 说明书附图:图1
    基于内核进行RTP数据收发的网关设备及其实现方法
  • 说明书附图:图2
    基于内核进行RTP数据收发的网关设备及其实现方法
法律状态
序号 法律状态公告日 法律状态 法律状态信息
1 2020-11-20 专利权的转移 登记生效日: 2020.11.10 专利权人由上海斐讯数据通信技术有限公司变更为杭州吉吉知识产权运营有限公司 地址由201616 上海市松江区广富林路4855弄20号、90号变更为310000 浙江省杭州市滨江区西兴街道江淑路260号10242室
2 2018-01-02 授权
3 2014-12-17 实质审查的生效 IPC(主分类): H04L 12/66 专利申请号: 201310009326.6 申请日: 2013.01.10
4 2013-06-26 公开
权利要求
权利要求书是申请文件最核心的部分,是申请人向国家申请保护他的发明创造及划定保护范围的文件。
1.基于内核进行RTP数据收发的网关设备,其特征在于,
所述网关设备包括一驱动模块,所述驱动模块包括RTP接收子模块以及RTP读取子模块;所述驱动模块与RTP应用程序的接口包括创建接口、修改接口以及关闭接口;
所述RTP接收子模块分别与所述内核的socket和所述RTP读取子模块连接,所述RTP读取子模块与一DSP模块连接;所述RTP接收子模块和所述RTP读取子模块通过数据队列同步锁同步操作;
所述驱动模块通过所述RTP接收子模块从所述内核的socket中接收网络RTP包,并将所述RTP包送入系统缓存队列;所述驱动模块通过所述RTP读取子模块从所述系统缓存队列中读取所述RTP包,并将所述RTP包发送到所述DSP模块。

2.如权利要求1所述的基于内核进行RTP数据收发的网关设备,其特征在于,所述驱动模块还包括RTP发送子模块,所述RTP发送子模块与所述DSP模块连接;
所述驱动模块通过所述RTP发送子模块从所述DSP模块接收RTP净荷,封装成IP包格式,并通过所述网关设备的物理接口向外发送。

3.如权利要求1所述的基于内核进行RTP数据收发的网关设备,其特征在于,所述创建接口用于接收所述RTP应用程序创建一个RTP流的指令,并设置所述RTP流参数;所述修改接口用于修改所述RTP流参数;所述关闭接口用于接收所述RTP应用程序关闭所述RTP流的指令,并释放系统资源。

4.如权利要求3所述的基于内核进行RTP数据收发的网关设备,其特征在于,所述参数包括DSP通道号、本地端口、本地IP、远端端口、远端IP以及媒体方向。

5.如权利要求1至权利要求4任一项所述的基于内核进行RTP数据收发的网关设备,其特征在于,所述驱动模块对所述RTP数据的收发同样适用于对RTCP数据的收发。

6.基于内核进行RTP数据收发的方法,其特征在于,通过如上述权利要求1至5任一项所述的网关设备进行RTP数据收发,所述方法具体包括如下步骤:
步骤S
1.在用户层通过所述RTP应用程序的创建接口,创建一RTP流,并在系统内核中创建与所述RTP流对应的RTP接收内核线程、RTP读取内核线程以及RTP发送内核线程;
步骤S
2.所述RTP接收内核线程从内核socket中接收RTP包,并将其送入系统缓存队列;
所述步骤S2中还包括:
步骤S2.1所述RTP接收内核线程从内核socket中接收RTP包后,得到一数据队列同步锁;
步骤S2.2所述RTP接收内核线程将所述RTP包加入到缓存队列,并释放可用数据包信号量,同时释放所述数据队列同步锁;
步骤S
3.所述RTP读取内核线程从所述系统缓存队列中读取所述RTP包,并利用DSP模块的接口,发送到所述DSP模块的消息队列中;所述步骤S3中还包括:
步骤S3.1所述RTP读取内核线程不断尝试获得数据包信号量,当所述RTP读取内核线程不能获得所述数据包信号量,所述RTP读取内核线程睡眠,并被系统内核的定时器定时唤醒;
步骤S3.2当所述RTP读取内核线程获得所述数据包信号量,所述RTP读取内核就去拿所述数据队列同步锁,并在从所述缓存队列中获得RTP包后,释放所述数据队列同步锁。

7.如权利要求6所述的基于内核进行RTP数据收发的方法,其特征在于,所述方法还包括:
步骤S
4.所述RTP发送内核线程从所述DSP模块接收所述RTP净荷,并封装成IP包形式,从所述网关设备的物理接口发送出去。

8.如权利要求6至权利要求7任一项所述的基于内核进行RTP数据收发的方法,同样适用于对RTCP数据的收发。
说明书

技术领域

[0001] 本发明涉及一种网络设备,尤其涉及一种基于内核进行RTP数据收发的网关设备。

背景技术

[0002] 家庭网关的在宽带接入领域内的使用越来越多。芯片商一般都提供整体的解决方案,当前的方案多为Linux。对于语音接入这一块,芯片商只在应用层为设备商提供DSP/SLIC的API。对于媒体的转发实现,芯片商一般只提供了从应用层中获取DSP模块产生媒体和接收媒体的方法。具体的转发实现一般由设备商完成。
[0003] 考虑到成本以及供货的原因,一般设备商要实现多个芯片商的方案。由于芯片商的方案各不相同,针对媒体的转发实现,总是会造成重复劳动。另外,更重要的一点是,由于在通话时,RTP包一般10ms/20ms一个,RTP在应用层的转发,将导致频繁的内核和应用层切换,影响系统的效率,特别是在WiFi或者三层转发等业务开启时,语音质量将严重受到影响。现有的方案都是在用户层创建socket 然后通过如select函数的轮询监听socket,然后通过系统调用取包,这样一来,在语音流通时,就有很多rtp包送往dsp以及从dsp收包发往网络。系统调用需要从用户空间陷入内核空间,处理完后,又需要返回用户空间,其中除了系统的syscall 服务例程的实际耗时外,陷入/返回过程和 syscall 处理程序(查系统调用表, 存储/恢复用户现场等)也需要花费一些时间, 这些时间加起来就是一个 syscall 的响应速度,所以过于频繁的调用syscall,就会导致响应速度降低,造成语音质量的削减。

发明内容

[0004] 针对以上所述的技术问题,本发明提供了一种基于内核进行RTP数据收发的网关设备,以减少内核和应用层之间的频繁切换,提高系统的运行效率。
[0005] 具体的技术方案如下所示:
[0006] 基于内核进行RTP数据收发的网关设备,其中,
[0007] 所述网关设备包括一驱动模块,所述驱动模块包括RTP接收子模块以及RTP读取子模块;所述驱动模块与RTP应用程序的接口包括创建接口、修改接口以及关闭接口;
[0008] 所述RTP接收子模块分别与所述内核的socket和所述RTP读取子模块连接,所述RTP读取子模块与一DSP模块连接;
[0009] 所述驱动模块通过所述RTP接收子模块从所述内核的socket中接收网络RTP包,并将所述RTP包送入系统缓存队列;所述驱动模块通过所述RTP读取子模块从所述系统缓存队列中读取所述RTP包,并将所述RTP包发送到所述DSP模块。
[0010] 上述的基于内核进行RTP数据收发的网关设备,其中,
[0011] 所述驱动模块还包括RTP发送子模块,所述RTP发送子模块与所述DSP模块连接;
[0012] 所述驱动模块通过所述RTP发送子模块从所述DSP模块接收RTP净荷,并封装成IP包格式,并通过所述网关设备的物理接口向外发送。
[0013] 上述的基于内核进行RTP数据收发的网关设备,其中,所述RTP接收子模块和所述RTP读取子模块通过数据队列同步锁同步操作。
[0014] 上述的基于内核进行RTP数据收发的网关设备,其中,
[0015] 所述创建接口用于接收所述RTP应用程序创建一个RTP流的指令,并设置所述RTP流参数;所述修改接口用于修改所述RTP流参数;所述关闭接口用于接收所述RTP应用程序关闭所述RTP流的指令,并释放系统资源。
[0016] 上述的基于内核进行RTP数据收发的网关设备,其中,
[0017] 所述参数包括DSP通道号、本地端口、本地IP、远端端口、远端IP以及媒体方向。
[0018] 上述的基于内核进行RTP数据收发的网关设备,其中,所述驱动模块对所述RTP数据的收发同样适用于对RTCP数据的收发。
[0019] 基于内核进行RTP数据收发的方法,其中,通过上述的网关设备进行RTP数据收发,所述方法具体包括如下步骤:
[0020] 步骤S1. 在用户层通过所述RTP应用程序的创建接口,创建一RTP流,并在系统内核中创建与所述RTP流对应的RTP接收内核线程、RTP读取内核线程以及RTP发送内核线程;
[0021] 步骤S2. 所述RTP接收内核线程从内核socket中接收RTP包,并将其送入系统缓存队列;
[0022] 步骤S3. 所述RTP读取内核线程从所述系统缓存队列中读取所述RTP包,并利用DSP模块的接口,发送到所述DSP模块的消息队列中。
[0023] 上述的基于内核进行RTP数据收发的方法,其中,所述方法还包括:
[0024] 步骤S4. 所述RTP发送内核线程从所述DSP模块接收所述RTP净荷,并封装成IP包形式,从所述网关设备的物理接口发送出去。
[0025] 上述的基于内核进行RTP数据收发的方法,其中,所述步骤S2中还包括:
[0026] 步骤S2.1 所述RTP接收内核线程从内核socket中接收RTP包后,得到一数据队列同步锁;
[0027] 步骤S2.2 所述RTP接收内核线程将所述RTP包加入到缓存队列,并释放可用数据包信号量,同时释放所述数据队列同步锁;
[0028] 所述步骤S3中还包括:
[0029] 步骤S3.1 所述RTP读取内核线程不断尝试获得数据包信号量,当所述RTP读取内核线程不能获得所述数据包信号量,所述RTP读取内核线程睡眠,并被系统内核的定时器定时唤醒;
[0030] 步骤S3.2 当所述RTP读取内核线程获得所述数据包信号量,所述RTP读取内核就去拿所述数据队列同步锁,并在从所述缓存队列中获得RTP包后,释放所述数据队列同步锁。
[0031] 上述的基于内核进行RTP数据收发的方法,同样适用于对RTCP数据的收发。
[0032] 本技术方案的有益效果是:通过直接在内核层处理RTP的收发,而不需要频繁的通过系统调用来处理RTP包,减少了在应用层和内核之间的切换,大大减小RTP的转发时延,增强了语音模块的健壮性。

实施方案

[0035] 下面结合附图和具体实施例对本发明作进一步说明,但不作为本发明的限定。
[0036] 如图1所示为本发明一种基于内核进行RTP数据收发的网关设备的系统结构图,其中,
[0037] 网关设备包括一驱动模块,驱动模块包括RTP接收子模块以及RTP读取子模块;驱动模块与RTP应用程序的接口包括创建接口、修改接口以及关闭接口;RTP接收子模块分别与内核的socket和RTP读取子模块连接,RTP读取子模块与一DSP模块连接;驱动模块通过RTP接收子模块从内核的socket中接收网络RTP包,并将RTP包送入系统缓存队列;驱动模块通过RTP读取子模块从系统缓存队列中读取出RTP包,并将RTP包发送到DSP模块的消息队列,由DSP芯片等设备对数据进行相应的解码还原处理。
[0038] 驱动模块还包括RTP发送子模块,RTP发送子模块与DSP模块连接。驱动模块通过RTP发送子模块从DSP模块中接收到RTP净荷,并封装成IP包格式,并通过网关设备的物理接口向外发送。
[0039] 本发明的技术原理是:操作系统如Linux的运行空间可分为内核空间与用户空间,它们各自运行在不同的级别中,逻辑上相互隔离。本发明通过直接在内核中调用socket等syscall的服务例程,就能将对RTP数据的收发从应用层迁移到内核中,同时统一针对RTP收发操作的接口,从而可以直接在内核层处理RTP的收发,而不需要频繁的通过系统调用来处理RTP包,减少了在应用层和内核之间的切换,大大减小RTP的转发时延,增强了语音模块的健壮性。
[0040] 上述的基于内核进行RTP数据收发的网关设备,其中,RTP接收子模块和RTP读取子模块通过数据队列同步锁同步操作。在模块初始化的时候,创建数据队列同步锁和可用数据包同步锁,当接收线程收到RTP包时就去拿数据队列同步锁,然后将收到的包加入到缓存数据队列,然后释放可用数据包信号量,然后释放数据队列同步锁。同时发包给DSP的线程会不断去拿可用数据包信号量,如果拿不到,进程睡眠,如果拿到可用数据包信号量,就去获得数据队列同步锁,然后去拿缓存数据队列里的包,最后释放数据队列同步锁。
[0041] 创建接口用于接收RTP应用程序创建一个RTP流的指令,并设置RTP流参数,该接口也需要返回的内部句柄;修改接口用于修改RTP流参数;关闭接口用于接收RTP应用程序关闭RTP流的指令,并释放系统资源。于上述技术方案的基础上,参数包括DSP通道号、本地端口、本地IP、远端端口、远端IP以及媒体方向。根据用户层传下来的方向的判断来决定是否收发数据包以及与DSP的交互。在一个具体实施例中,通过用户层创建ipline(ip流)的方式来抽象创建socket与内核线程,每个ip流对应一个ip流上下文(ipline context),ipline context 里包括socket 、dsp channel、localip、remoteip、ipline 方向,以及线程描述符等参数。每个ip流都有一个内核线程与之对应,每个内核线程为与之对应的ip流服务。当从DSP收到RTP净荷时,通过对应ipline context里DSP channel的socket,发往网络。
[0042] 上述的驱动模块对RTP数据的收发同样适用于对RTCP数据的收发。
[0043] 在某些应用中,需要RTP模块提供RFC2833事件包的接收功能,本发明的基于内核进行RTP数据收发的网关设备也提供了该功能。
[0044] 如图2所示为基于内核进行RTP数据收发的方法的流程示意图,通过采用上述的网关设备进行RTP数据收发,方法具体包括如下步骤:
[0045] 步骤S1. 在用户层通过RTP应用程序的创建接口,创建一RTP流,并在系统内核中创建与RTP流对应的RTP接收内核线程、RTP读取内核线程以及RTP发送内核线程;
[0046] 步骤S2. RTP接收内核线程从内核socket中接收RTP包,并将其送入系统缓存队列;
[0047] 步骤S3. RTP读取内核线程从系统缓存队列中读取RTP包,并利用DSP模块的接口,发送到DSP模块的消息队列中;
[0048] 步骤S4. RTP发送内核线程从DSP模块接收RTP净荷,并封装成IP包形式,从网关设备的物理接口发送出去。
[0049] 在步骤S2中还具体包括以下步骤:
[0050] 步骤S2.1 RTP接收内核线程从内核socket中接收RTP包后,得到一数据队列同步锁;
[0051] 步骤S2.2 RTP接收内核线程将RTP包加入到缓存队列,并释放可用数据包信号量,同时释放数据队列同步锁;
[0052] 在步骤S3中还具体包括以下步骤:
[0053] 步骤S3.1 RTP读取内核线程不断尝试获得数据包信号量,当RTP读取内核线程不能获得数据包信号量,RTP读取内核线程睡眠,并被系统内核的定时器定时唤醒;唤醒间隔时间设置为10ms。
[0054] 步骤S3.2 当RTP读取内核线程获得数据包信号量,RTP读取内核就去拿数据队列同步锁,并在从缓存队列中获得RTP包后,释放数据队列同步锁。
[0055] 上述的用于进行RTP数据收发的方法,同样适用于对RTCP数据的收发。
[0056] 以上仅为本发明较佳的实施例,并非因此限制本发明的实施方式及保护范围,对于本领域技术人员而言,应当能够意识到凡运用本发明说明书及图示内容所作出的等同替换和显而易见的变化所得到的方案,均应当包含在本发明的保护范围内。

附图说明

[0033] 图1为本发明实施例的一种基于内核进行RTP数据收发的网关设备的系统结构图;
[0034] 图2为本发明实施例的基于内核进行RTP数据收发的方法的流程示意图。
版权所有:盲专网 ©2023 zlpt.xyz  蜀ICP备2023003576号