【问题标题】:packet processing after tcp processing in linux kernellinux内核中tcp处理后的数据包处理
【发布时间】:2011-08-07 15:56:46
【问题描述】:

我想在数据包的 tcp 处理完成后和数据包被提供给用户空间(或添加到套接字接收队列)之前调用我的函数来处理用户数据。有没有办法在linux内核中做同样的事情? 谢谢

【问题讨论】:

    标签: sockets tcp queue packet


    【解决方案1】:

    首先,TCP 不会将数据包发送到用户空间。仅发送数据(字节)。如果你想拦截数据,你可以:

    • 编写您自己的内核代码并拦截系统调用(以及可能的内部 TCP 函数,例如 tcp_input
    • 使用允许您拦截数据包(及其所有标头)的 Netlink 套接字
    • 如果有,请使用 Divert 套接字(同上)
    • 使用原始套接字(您会获得数据包的副本,但您无法更改它们或阻止它们传播)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-07
      • 2014-04-09
      • 2015-05-09
      • 1970-01-01
      • 2015-07-27
      • 2015-09-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多