zoukankan      html  css  js  c++  java
  • Libpacp 深度剖析

    Libpacp 深度剖析

    1. Libpacp 的工作原理

    ​ Libpcap的工作原理可以描述为,当一个数据包到达网卡时,通过网络分接口(即旁路机制)将数据包发给BPF过滤器,匹配通过的数据包可以被libpcap利用创建的套接字PF_PACKET从链路层驱动程序中获得。进而在用户空间提供独立于系统的用户级API接口。

    "流程示意图"

    一个数据包的捕捉分为三个主要部分:

    • 面向底层包捕获
    • 面向中间层的数据包过滤
    • 面向应用层的用户接口

    这与Linux操作系统对数据包的处理流程是相同的。

    网卡->网卡驱动->数据链路层->IP层->传输层->应用程序

    2. Libpcap的实现机制

    ​ 这里实现的包捕获机制是在数据链路层增加一个__旁路处理__,并不干扰系统自身的网路协议栈的处理,对发送和接收的数据包通过Linux内核做过滤和缓冲处理,最后直接传递给上层应用程序。因此libpcap在捕获到达网卡的数据包后绕开了传统linux协议栈处理,直接使用链路层PF_PACKET协议族原始套接字方式向用户空间传递报文。

  • 相关阅读:
    React Native商城项目实战08
    React Native商城项目实战07
    React Native商城项目实战05
    React Native商城项目实战06
    React Native商城项目实战04
    React Native商城项目实战03
    React Native商城项目实战02
    单选框input:radio
    myDate97用法
    STRUTS2配置动态页面
  • 原文地址:https://www.cnblogs.com/wangchaowei/p/8612177.html
Copyright © 2011-2022 走看看