• 【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                        |

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

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

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

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

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

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

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

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

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

    |                 系统基础服务提供者                          

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

     

  • 相关阅读:
    学习Swift -- 构造器(上)
    学习Swift -- 继承
    学习Swift -- 数组(Array)
    学习Swift--下标脚本
    学习Swift--方法
    学习Swift--属性
    Swift 类和结构体的简单认识
    dedecms代码研究二
    dedecms代码研究一
    PHP isset()与empty()的区别
  • 原文地址:https://www.cnblogs.com/vman/p/2190309.html
Copyright © 2020-2023  润新知