zoukankan      html  css  js  c++  java
  • 【WAN笔记No.1】TDI与SPI

    TDITransport  Driver  Interface 传输驱动程序接口

    |应用层|------exe程序,比如IE

    |表示层|-------ws2_32.dll——ws2_32.dllWindows Sockets应用程序接口,用于支持Internet和网络应用程序。在这一层中也存在HOOK API技术抓连接,实现容易功能简单。

    |会话层|-------SPI 是(Service Provider Interface)服务提供者接口,

    ------------------------user model------------------------

    ------------------------kernel model------------------

    |传输层|-------TDI(不能截获ICMP等协议的数据)

    |网络层|-------NDIS(可以截获所有的网络数据)实现起来较复杂。

    |链路层|-------设备驱动      

    |物理层|-------网卡

    TDITransport  Driver  Interface 传输驱动程序接口

    |应用层|------exe程序,比如IE

    |表示层|-------ws2_32.dll——ws2_32.dllWindows Sockets应用程序接口,用于支持Internet和网络应用程序。在这一层中也存在HOOK API技术抓连接,实现容易功能简单。

    |会话层|-------SPI 是(Service Provider Interface)服务提供者接口,

    ------------------------user model------------------------

    ------------------------kernel model------------------

    |传输层|-------TDI(不能截获ICMP等协议的数据)

    |网络层|-------NDIS(可以截获所有的网络数据)实现起来较复杂。

    |链路层|-------设备驱动      

    |物理层|-------网卡

     

    SPI的结构方式

    服务提供者有两种,一种是分层服务提供者,一种是基础服务提供者,我们的分层服务提供者必须调用基础服务提供者或者下面一层的分层服务器提供者,然后把请求提交到他上面的一层(上面的一层可能是另外一个分层服务提供者,也可能是ws2_32.dll)。而我们写的基础服务提供者必须调用系统基础服务提供者,然后把请求提交到ws2_32.dll。请注意,系统里可能不仅仅安装了我们的基础服务提供者,也安装了别人写的基础服务提供者。在安装多个分层服务提供者和多个基础服务提供者的情况下,这两者的组织方式是不同的

    如下图

    -----------------------------------------------------------------------------------------

    |                        ws2_32.dll                        |

    ----------------------------------------------------------------------------------------

    |我们的分层服务提供者|

    ----------------------------------------------------------------------------------------

    |别人的分层服务提供者|

    ----------------------------------------------------------------------------------------

    |别人的分层服务提供者|

    ----------------------------------------------------------------------------------------

    |别人的分层服务提供者| |别人的基础服务提供者| |我们的基础服务提供者

    ----------------------------------------------------------------------------------------

    |                 系统基础服务提供者                          

    ---------------------------------------------------

     

  • 相关阅读:
    四则运算
    Git工具学习整理
    java拦截器中使用的动态代理
    Java动态代理
    Git常用命令
    Maven学习
    ruby调用jenkins API使用
    c#认证考试第四章(国庆作业及其总结)
    C#认证考试第三章
    c#认证考试练习题目
  • 原文地址:https://www.cnblogs.com/vman/p/2190309.html
Copyright © 2011-2022 走看看