我可以在Linux中使用原始套接字创建侦听TCP套接字吗?

我可以在Linux中使用原始套接字创建侦听TCP套接字吗?,第1张

概述我想创建一个侦听TCP套接字,我可以控制它在从客户端收到初始SYN数据包之后用第一个SYN ACK响应客户端. 我想这样做是为了引入一些延迟或忽略一些初始SYN数据包.我现在可以使用iptables做到这一点,但我想知道是否可以使用OS套接字接口完成. 请注意,如果我使用普通的TCP套接字,一旦服务器在套接字描述符上调用listen(), *** 作系统将在客户端连接到它时建立连接. 我想知道我是否可以使 我想创建一个侦听TCP套接字,我可以控制它在从客户端收到初始SYN数据包之后用第一个SYN ACK响应客户端.

我想这样做是为了引入一些延迟或忽略一些初始SYN数据包.我现在可以使用iptables做到这一点,但我想知道是否可以使用OS套接字接口完成.

请注意,如果我使用普通的TCP套接字,一旦服务器在套接字描述符上调用Listen(), *** 作系统将在客户端连接到它时建立连接.

我想知道我是否可以使用原始套接字来实现此行为.到目前为止,我所看到的关于原始套接字的所有示例都是关于活动套接字(客户端到服务器)而不是被动套接字(监听套接字).

解决方法 理论上,您可以在原始套接字上编写自己的TCP实现.但是,在原始套接字获取副本之前,内核仍将响应任何传入的TCP数据包.所以你必须通过使用iptables或其他东西阻止内核看到你感兴趣的数据包来解决这个问题.

我认为通过netfilter接口在内核模块中执行此 *** 作会更容易(这可能就是您已经在做的事情).您还可以查看libnetfilter_queue,如果您真的想在用户空间中执行此 *** 作,则可能会有效.

总结

以上是内存溢出为你收集整理的我可以在Linux中使用原始套接字创建侦听TCP套接字吗?全部内容,希望文章能够帮你解决我可以在Linux中使用原始套接字创建侦听TCP套接字吗?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1018391.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存