一种码流转发方法及系统的利记博彩app
【技术领域】
[0001] 本发明设及多媒体通信技术领域,具体设及一种码流转发方法及系统。
【背景技术】
[0002] 近年来,公安系统已经逐步建成了视频会议系统、视频监控系统、350M集群系统, 化及警务综合应用系统、PGIS警用地理信息系统、PKI/Pffl数字证书系统等多种系统,极大 地提高了公安机关各部口的工作效率,提升了公安系统的日常工作效率。扁平化视频指挥 调度系统是一项利用警用地理信息系统整合视频会议系统、视频监控系统、350M集群通信 系统、移动终端等各种音视频资源的可视指挥调度系统,扁平化视频指挥调度系统构建了 高效的指挥调度体系,整合、汇聚各类现有的及未来待建信息化系统的信息资源,实现了高 效的现代化指挥应用。扁平化视频指挥调度系统的总体框架如图1所示,其中,码流转发子 模块为系统的核屯、模块,通过码流转发模块可W实现各个子系统的互联互通,在应急指挥 调度时,需要实现各种音视频资源(视频会议、监控、350M手台、电话、手机、单兵)的快速调 度,对转发性能要求较高,所W通过一个高效的码流转发子模块实现媒体码流的转发很有 必要。
[0003] 目前大部分的码流转发机制都是采取socket技术进行应用层转发,采用该种技 术,需要经历接收和发送两个阶段。接收阶段,从网卡接收到帖数据的应用层,到链路层、IP 层、传输层、应用层共5层的解封装处理。发送阶段,又需要从应用层开始,经过传输层、IP 层、链路层、物理层共5层的封装处理。W上,完成一次完整的socket转发过程总共需要经 过10层的处理,系统开销比较大,码流转发的效率低下。
【发明内容】
[0004] 为此,本发明所要解决的技术问题在于现有技术中用于扁平化指挥调度系统的码 流转发方法需要的系统开销比较大,码流转发的效率低,从而提出一种码流转发方法及系 统。
[0005] 为解决上述技术问题,本发明的一种码流转发方法,包括如下步骤:
[0006] 物理层接收待转发数据包,并将所述数据包发送给链路层;
[0007] 链路层对接收到的数据包进行解封装,并将解封装后的数据包发送给网络层;
[000引网络层通过设置的钩子函数获取并过滤进入网络层的数据包,将过滤后的数据包 发送给应用层;
[0009] 应用层接收数据包并进行修改,并将修改后的数据包通过其注册的回调函数返回 给网络层;
[0010] 网络层将接收到的数据包发送给链路层;
[0011] 链路层对接收到的数据包进行封装,并发送给物理层;
[0012] 物理层将封装后的数据包进行发送。
[0013] 优选地,所述网络层通过设置的钩子函数获取并过滤进入网络层的数据包,将过 滤后的数据包发送给应用层步骤中所述钩子函数的处理过程为:
[0014] 在检测点获取所有进入网络层的数据包;
[0015] 过滤出所述数据包中的含有用户数据包协议的数据包;
[0016] 判断所述含有用户数据包协议的数据包内的第一目的端口与应用层指定的第二 目的端口是否一致;若第一目的端口和第二目的端口一致,则将所述含有用户数据包协议 的数据包发送到应用层;否则将所述含有用户数据包协议的数据包返回到协议找。
[0017] 优选地,所述应用层接收数据包并进行修改,将修改后的数据包通过其注册的回 调函数返回给网络层步骤中:
[0018] 所述应用层通过用户空间对接收到的数据包进行修改,所述修改的内容包括数据 包包头的目的地址和目的端口号。
[0019] 优选地,所述网络层通过设置的钩子函数获取并过滤进入网络层的数据包,将过 滤后的数据包发送给应用层步骤之前还包括步骤:
[0020] 在TCP/IP协议找中的网络层注册所述钩子函数。
[0021] 优选地,所述在TCP/IP协议找中的网络层注册所述钩子函数步骤中:
[0022] 所述钩子函数在注册时优先级高于其他注册的钩子函数。
[0023] 本发明还提供一种码流转发系统,包括:
[0024] 物理层,包括:接收单元,用于接收待转发数据包并将所述数据包发送给链路层; 发送单元,用于将链路层封装后的数据包进行发送;
[0025] 链路层,包括:解封装单元,用于接收数据包并将所述数据包进行解封装后发送给 网络层;封装单元,用于将数据包进行封装并发送给物理层;
[0026] 网络层,包括:获取单元,用于通过设置的钩子函数获取并过滤进入网络层的数据 包,将过滤后的数据包发送给应用层;返回数据发送单元,用于将应用层修改后返回的数据 包发送给链路层;
[0027] 应用层,用于接收数据包并进行修改,将修改完成的数据包通过其注册的回调函 数返回给网络层。
[0028] 优选地,所述获取单元包括:
[0029] 获取子单元,在检测点获取所有进入网络层的数据包;
[0030] 过滤子单元;过滤出所述数据包中的含有用户数据包协议的数据包;
[0031] 判断子单元;判断所述含有用户数据包协议的数据包内的第一目的端口与应用层 指定的第二目的端口是否一致:若第一目的端口和第二目的端口一致,则将所述含有用户 数据包协议的数据包发送到应用层;否则将所述含有用户数据包协议的数据包返回到协议 找。
[0032] 优选地,所述应用层中:
[0033] 所述应用层通过用户空间对接收到的数据包进行修改,所述修改的内容包括数据 包包头的目的地址和目的端口号。
[0034] 优选地,所述网络层中:
[0035] 在TCP/IP协议找中的网络层注册所述钩子函数。
[0036] 优选地,所述网络层中:
[0037] 所述钩子函数在注册时优先级高于其他注册的钩子函数。
[003引本发明的上述技术方案相比现有技术具有W下优点:
[0039] (1)本发明所述的一种码流转发方法及系统,通过物理层接收待转发数据包,链路 层对数据包进行解封装,再通过网络层设置的钩子函数获取并过滤进入网络层的数据包, 应用层接收过滤后的数据包并进行修改,修改后的数据包通过注册的回调函数返回给网络 层,在链路层对数据包进行封装,物理层对封装完的数据包进行发送。整个码流转发的过程 只需要共计7层的协议找开销,比传统的socket方式少了3层的系统开销。因此,在同样 硬件条件下,码流转发的效率得到了很大提升。
[0040] (2)本发明所述的一种码流转发方法及系统,通过在网络层设置钩子函数,对进入 网络层的数据包进行过滤,获取含有用户数据包协议的数据包,并判断所述含有用户数据 包协议的数据包内的第一目的端口和应用层指定的第二目的端口是否一致,若一致则将含 有用户数据包协议的数据包发送到应用层处理,实现了数据包在IP层的转发,从而省去了 传输层和应用层的系统开销,大大提高了传输效率。
【附图说明】
[0041] 为了使本发明的内容更容易被清楚的理解,下面根据本发明的具体实施例并结合 附图,对本发明作进一步详细的说明,其中
[0042] 图1扁平化视频指挥调度系统的总体框架图;
[0043] 图2是本发明一个实施例的一种码流转发方法流程图;
[0044] 图3是本发明一个实施例的一种码流转发模块的软件架构图;
[0045]图4是本发明一个实施例的一种码流转发子模块运行于扁平化视频指挥调度平 台中的示意图;
[0046]图5是本发明一个实施例的一种码流转发系统框架示意图。
【具体实施方式】
[0047] 实施例1
[0048] 本实施例提供一种码流转发方法,可用于如图1所示的扁平化可视应急指挥平台 的指挥调度子模块中,包括如下步骤,流程图如图2所示:
[0049] S1 ;物理层接收待转发数据包,并将所述数据包发送给链路层。物理层通过网卡接 收待转发数据包。
[0化0]S2;链路层对接收到的数据包进行解封装,并将解封装后的数据包发送给网络层。 [0化1] S3;网络层通过设置的钩子函数获取并过滤进入网络层的数据包,将过滤后的数 据包发送给应用层。
[0化2] 所述钩子函数的处理过程为:
[0化3] 在检测点获取所有进入网络层的数据包;
[0化4] 过滤出所述数据包中的含有用户数据包协议的数据包;
[0化5]判断所述含有用户数据包协议的数据包内的第一目的端口与应用层指定的第二 目的端口是否一致;若第一目的端口和第二目的端口一致,则将所述含有用户数据包协议 的数据包发送到应用层;否则将所述含有用户数据包协议的数据包返回到协议找。
[0化6] S4;应用层接收数据包并进行修改,将修改后的数据包通过注册的回调函数返回 给网络层。所述应用层通过用户空间对接收到的数据包进行修改,所述修改的内容包括数 据包包头的目的地址和目的端口号。其中,回调函数为包含指针的返回函数,根据需要定义 即可。
[0化7]S5 ;网络层将接收到的数据包发送给链路层
[0化引S6 ;链路层对接收到的数据包进行封装,并发送给物理层。
[0化9]S7 ;物理层将封装后的数据包进行发送。
[0060]在步骤S3之