[发明专利]一种在驱动层判断TCP/IP包所属进程的方法有效

专利信息
申请号: 201010188864.2 申请日: 2010-05-31
公开(公告)号: CN101895529A 公开(公告)日: 2010-11-24
发明(设计)人: 郑明 申请(专利权)人: 上海网宿科技股份有限公司
主分类号: H04L29/06 分类号: H04L29/06;H04L29/08
代理公司: 上海专利商标事务所有限公司 31100 代理人: 施浩
地址: 200030 *** 国省代码: 上海;31
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 驱动 判断 tcp ip 所属 进程 方法
【说明书】:

技术领域

发明涉及数据包所属进程的判断方法,尤其涉及应用于网络防火墙软件、网络代理软件或者网络加速软件等领域的在驱动层判断TCP/IP包所属进程的方法。

背景技术

网络驱动接口规范的过滤驱动(NDIS filter,Network Driver InterfaceSpecification)位于Windows系统的内核驱动层,能够对数据链路层的包进行过滤和处理。

在网络技术中,需要能够在NDIS过滤驱动中准确区分TCP/IP包所属的进程。现有的方法是通过PsGetCurrentProcessId函数来获得当前活动的数据包所属的进程号。但是网络包的发送和接收存在一定的随机性,NDIS过滤驱动所在层和应用层逻辑上相隔也较远,导致用过滤驱动处理网络包时调用PsGetCurrentProcessId函数获得的PID不一定是当前活动的数据包所属进程号。。在实际测试中经常得到PID是0的结果,这显然不适合某些带有计费性质或者要求准确度的场合。

发明内容

本发明的目的在于解决上述问题,提供了一种在驱动层判断TCP/IP包所属进程的方法,能够实现在NDIS过滤驱动中准确区分包所属的进程。

本发明的技术方案为:本发明揭示了一种在驱动层判断TCP/IP包所属进程的方法,包括:

当某一程序使用Windows套接字接口时,通过某一进程加载分层服务提供者;

分层服务提供者获知该进程的标识号以及该进程打开的源端口;

分层服务提供者根据该进程的标识号判断是否是感兴趣的进程,如果是感兴趣的进程,则向一个专用地址和端口发送UDP通知包;

网络驱动接口规范的中间层驱动/过滤驱动收到UDP通知包,从中提取进程标识号、进程使用的协议、进程打开的源端口,并保存为关联表,然后丢弃UDP通知包;

当该中间层驱动/过滤驱动收到本机发出的其他TCP/IP包时,判断该TCP/IP包中是否包含与关联表中的内容一致的信息,并据此确定TCP/IP包所属的进程的标识号。

根据本发明的在驱动层判断TCP/IP包所属进程的方法的一实施例,在分层服务提供者获知进程打开的源端口的步骤中,其进一步包括:

分层服务提供者通过WSPConnect函数实现进程通过TCP连接远程端口,通过WSPSend函数实现进程通过TCP向远程端口发送数据包,通过WSPSendTo函数实现进程通过UDP向远程端口发送数据包,其中分层服务提供者通过WSPConnect函数、WSPSend函数以及WSPSendTo函数获知进程打开的源端口。

根据本发明的在驱动层判断TCP/IP包所属进程的方法的一实施例,该专用地址和端口是预先设置的。

根据本发明的在驱动层判断TCP/IP包所属进程的方法的一实施例,在判断该TCP/IP包中是否包含与关联表中的内容一致的信息的步骤中,其进一步包括:

通过比较协议、进程打开的源端口的内容来判断该TCP/IP包中是否包含与关联表中的内容一致的信息。

根据本发明的在驱动层判断TCP/IP包所属进程的方法的一实施例,该分层服务提供者是处于用户态应用层的动态链接库。

本发明对比现有技术有如下的有益效果:本发明通过分层服务提供者获知进程ID和进程打开的源端口,将用户感兴趣的进程的ID、协议和打开的源端口以UDP通知包的方式发送到一个专用的地址和端口,网络驱动接口规范的中间层驱动/过滤驱动通过这个专用的地址和端口获取进程ID、协议和打开的源端口等信息,并根据这些信息建立一张关联表,当后续收到本机发出的其他TCP/IP包时,只需判断TCP/IP包中是否包含与关联表中的内容相一致的信息,据此来确定TCP/IP包所属进程。

附图说明

图1是本发明的在驱动层判断TCP/IP包所属进程的方法的实施例的流程图。

图2示出了上述实施例的实现示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的描述。

图1示出了本发明的在驱动层判断TCP/IP包所属进程的方法的实施例,图2是其实现的示意图。请同时参见图1和图2,下面是对本实施例方法中各个步骤的详细描述。

步骤S10:当某一程序使用Windows套接字接口(WinSock API)时,通过某一进程加载分层服务提供者(LSP,Layered Transport Service Providers)。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海网宿科技股份有限公司,未经上海网宿科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201010188864.2/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top