NDIS中间层驱动和Sygate等NAT型代理软件的包处理顺序是如何的?
我用NDIS规范实现了在中间层包过滤的程序,使用NDIS-HOOK方式。NDIS-HOOK 的工作原理是直接替换 NDIS 的函数库中的函数地址,这样只要向 NDIS 的请求就会先经过我自己函数的处理,这样就非常简单,处理完转发给系统函数就可以了。调试发现从本机发送的所有数据包都会经过中间层驱动。现在在本机上装有Sygate服务器代理软件,另外一台主机通过本机共享上网连接,截包发现它通过代理出去的包没有经过中间层驱动,而是直接从本机连接Intenet的接口转发出去了。如果使用WinGate这种应用层的代理软件,共享上网时就会发现所有的包都会经过服务器的中间层驱动.不明白为何会这样,如何让Sygate转发的报文也经过中间层驱动了,我也不是很明白中间层驱动和协议栈中IP层和链路层到底是一个什么顺序关系,Sygate 的NAT转换是在什么时候进行的?