Asb*_*arf 4 c sockets linux tcp linux-kernel
我在用户空间库,拦截套接字层调用,如socket(),connect(),accept(),等我只处理TCP套接字.
在内核空间中我有一个网络内核模块,它处理所有的TCP连接.我需要能够在驱动程序中识别用户空间库拦截了哪些套接字.
到目前为止,我一直在使用(Kernel)中我可以在User Space中设置的priority字段.但这是一个非常肮脏的黑客.struct socksetsockopt()
是否有任何类型的私人领域,struct sock我可以安全地使用和设置从用户空间通过setsockopt()?
谢谢.
实际上没有这样的"私有字段"选项可以仅由用户空间和内核代码使用.
使用该SO_PRIORITY选项似乎有点过于干扰,因为它可以改变堆栈处理数据包的方式,并且可能导致难以理解的结果.更安全的选择是将SO_RCVBUF或SO_SNDBUF值调整为通常默认值的一些小增量.Linux将传入的值加倍,但您可以从默认值中查找增量,并知道delta的存在是一个信号,表明这是您的"截获"套接字.
| 归档时间: |
|
| 查看次数: |
1057 次 |
| 最近记录: |