[发明专利]一种码流转发方法及系统有效
申请号: | 201510114280.3 | 申请日: | 2015-03-16 |
公开(公告)号: | CN104753928B | 公开(公告)日: | 2018-08-17 |
发明(设计)人: | 刘翔;张宝卿;陈卫东 | 申请(专利权)人: | 苏州科达科技股份有限公司 |
主分类号: | H04L29/06 | 分类号: | H04L29/06;H04L29/08 |
代理公司: | 北京三聚阳光知识产权代理有限公司 11250 | 代理人: | 张建纲 |
地址: | 215011 江苏*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据包 流转发 网络层 链路层 物理层 封装 过滤 数据包通过 钩子函数 回调函数 系统开销 硬件条件 传统的 解封装 协议栈 应用层 转发 发送 返回 | ||
1.一种码流转发方法,其特征在于,包括如下步骤:
物理层接收待转发数据包,并将所述数据包发送给链路层;
链路层对接收到的数据包进行解封装,并将解封装后的数据包发送给网络层;
网络层通过设置的钩子函数获取并过滤进入网络层的数据包,将过滤后的数据包发送给应用层;其中,所述钩子函数的处理过程为:在检测点获取所有进入网络层的数据包;过滤出所述数据包中的含有用户数据包协议的数据包;判断所述含有用户数据包协议的数据包内的第一目的端口与应用层指定的第二目的端口是否一致:若第一目的端口和第二目的端口一致,则将所述含有用户数据包协议的数据包发送到应用层;否则将所述含有用户数据包协议的数据包返回到协议栈;
应用层接收数据包并进行修改,并将修改后的数据包通过其注册的回调函数返回给网络层;
网络层将接收到的数据包发送给链路层;
链路层对接收到的数据包进行封装,并发送给物理层;
物理层将封装后的数据包进行发送。
2.根据权利要求1所述的码流转发方法,其特征在于,所述应用层接收数据包并进行修改,将修改后的数据包通过其注册的回调函数返回给网络层步骤中:
所述应用层通过用户空间对接收到的数据包进行修改,所述修改的内容包括数据包包头的目的地址和目的端口号。
3.根据权利要求1或2所述的码流转发方法,其特征在于,所述网络层通过设置的钩子函数获取并过滤进入网络层的数据包,将过滤后的数据包发送给应用层步骤之前还包括步骤:
在TCP/IP协议栈中的网络层注册所述钩子函数。
4.根据权利要求3所述的码流转发方法,其特征在于,所述在TCP/IP协议栈中的网络层注册所述钩子函数步骤中:
所述钩子函数在注册时优先级高于其他注册的钩子函数。
5.一种码流转发系统,其特征在于,包括:
物理层,包括:接收单元,用于接收待转发数据包并将所述数据包发送给链路层;发送单元,用于将链路层封装后的数据包进行发送;
链路层,包括:解封装单元,用于接收数据包并将所述数据包进行解封装后发送给网络层;封装单元,用于将数据包进行封装并发送给物理层;
网络层,包括:获取单元,用于通过设置的钩子函数获取并过滤进入网络层的数据包,将过滤后的数据包发送给应用层;返回数据发送单元,用于将应用层修改后返回的数据包发送给链路层;其中,所述获取单元包括:
获取子单元,在检测点获取所有进入网络层的数据包;
过滤子单元:过滤出所述数据包中的含有用户数据包协议的数据包;
判断子单元:判断所述含有用户数据包协议的数据包内的第一目的端口与应用层指定的第二目的端口是否一致:若第一目的端口和第二目的端口一致,则将所述含有用户数据包协议的数据包发送到应用层;否则将所述含有用户数据包协议的数据包返回到协议栈;
应用层,用于接收数据包并进行修改,将修改完成的数据包通过其注册的回调函数返回给网络层。
6.根据权利要求5所述的码流转发系统,其特征在于,所述应用层中:
所述应用层通过用户空间对接收到的数据包进行修改,所述修改的内容包括数据包包头的目的地址和目的端口号。
7.根据权利要求5或6所述的码流转发系统,其特征在于,所述网络层中:
在TCP/IP协议栈中的网络层注册所述钩子函数。
8.根据权利要求7所述的码流转发系统,其特征在于,所述网络层中:
所述钩子函数在注册时优先级高于其他注册的钩子函数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州科达科技股份有限公司,未经苏州科达科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510114280.3/1.html,转载请声明来源钻瓜专利网。