[发明专利]基于内核进行RTP数据收发的网关设备及其实现方法有效
申请号: | 201310009326.6 | 申请日: | 2013-01-10 |
公开(公告)号: | CN103179028B | 公开(公告)日: | 2018-01-02 |
发明(设计)人: | 庞骏;韩永华 | 申请(专利权)人: | 上海斐讯数据通信技术有限公司 |
主分类号: | H04L12/66 | 分类号: | H04L12/66 |
代理公司: | 杭州千克知识产权代理有限公司33246 | 代理人: | 周希良 |
地址: | 201616 上海市松*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 内核 进行 rtp 数据 收发 网关 设备 及其 实现 方法 | ||
技术领域
本发明涉及一种网络设备,尤其涉及一种基于内核进行RTP数据收发的网关设备。
背景技术
家庭网关的在宽带接入领域内的使用越来越多。芯片商一般都提供整体的解决方案,当前的方案多为Linux。对于语音接入这一块,芯片商只在应用层为设备商提供DSP/SLIC的API。对于媒体的转发实现,芯片商一般只提供了从应用层中获取DSP模块产生媒体和接收媒体的方法。具体的转发实现一般由设备商完成。
考虑到成本以及供货的原因,一般设备商要实现多个芯片商的方案。由于芯片商的方案各不相同,针对媒体的转发实现,总是会造成重复劳动。另外,更重要的一点是,由于在通话时,RTP包一般10ms/20ms一个,RTP在应用层的转发,将导致频繁的内核和应用层切换,影响系统的效率,特别是在WiFi或者三层转发等业务开启时,语音质量将严重受到影响。现有的方案都是在用户层创建socket 然后通过如select函数的轮询监听socket,然后通过系统调用取包,这样一来,在语音流通时,就有很多rtp包送往dsp以及从dsp收包发往网络。系统调用需要从用户空间陷入内核空间,处理完后,又需要返回用户空间,其中除了系统的syscall 服务例程的实际耗时外,陷入/返回过程和 syscall 处理程序(查系统调用表, 存储/恢复用户现场等)也需要花费一些时间, 这些时间加起来就是一个 syscall 的响应速度,所以过于频繁的调用syscall,就会导致响应速度降低,造成语音质量的削减。
发明内容
针对以上所述的技术问题,本发明提供了一种基于内核进行RTP数据收发的网关设备,以减少内核和应用层之间的频繁切换,提高系统的运行效率。
具体的技术方案如下所示:
基于内核进行RTP数据收发的网关设备,其中,
所述网关设备包括一驱动模块,所述驱动模块包括RTP接收子模块以及RTP读取子模块;所述驱动模块与RTP应用程序的接口包括创建接口、修改接口以及关闭接口;
所述RTP接收子模块分别与所述内核的socket和所述RTP读取子模块连接,所述RTP读取子模块与一DSP模块连接;
所述驱动模块通过所述RTP接收子模块从所述内核的socket中接收网络RTP包,并将所述RTP包送入系统缓存队列;所述驱动模块通过所述RTP读取子模块从所述系统缓存队列中读取所述RTP包,并将所述RTP包发送到所述DSP模块。
上述的基于内核进行RTP数据收发的网关设备,其中,
所述驱动模块还包括RTP发送子模块,所述RTP发送子模块与所述DSP模块连接;
所述驱动模块通过所述RTP发送子模块从所述DSP模块接收RTP净荷,并封装成IP包格式,并通过所述网关设备的物理接口向外发送。
上述的基于内核进行RTP数据收发的网关设备,其中,所述RTP接收子模块和所述RTP读取子模块通过数据队列同步锁同步操作。
上述的基于内核进行RTP数据收发的网关设备,其中,
所述创建接口用于接收所述RTP应用程序创建一个RTP流的指令,并设置所述RTP流参数;所述修改接口用于修改所述RTP流参数;所述关闭接口用于接收所述RTP应用程序关闭所述RTP流的指令,并释放系统资源。
上述的基于内核进行RTP数据收发的网关设备,其中,
所述参数包括DSP通道号、本地端口、本地IP、远端端口、远端IP以及媒体方向。
上述的基于内核进行RTP数据收发的网关设备,其中,所述驱动模块对所述RTP数据的收发同样适用于对RTCP数据的收发。
基于内核进行RTP数据收发的方法,其中,通过上述的网关设备进行RTP数据收发,所述方法具体包括如下步骤:
步骤S1. 在用户层通过所述RTP应用程序的创建接口,创建一RTP流,并在系统内核中创建与所述RTP流对应的RTP接收内核线程、RTP读取内核线程以及RTP发送内核线程;
步骤S2. 所述RTP接收内核线程从内核socket中接收RTP包,并将其送入系统缓存队列;
步骤S3. 所述RTP读取内核线程从所述系统缓存队列中读取所述RTP包,并利用DSP模块的接口,发送到所述DSP模块的消息队列中。
上述的基于内核进行RTP数据收发的方法,其中,所述方法还包括:
步骤S4. 所述RTP发送内核线程从所述DSP模块接收所述RTP净荷,并封装成IP包形式,从所述网关设备的物理接口发送出去。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海斐讯数据通信技术有限公司,未经上海斐讯数据通信技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310009326.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种室内阳台分体太阳能热水器系统
- 下一篇:一体化屋面整体集热器边框密封结构