gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 01:31:46 25 4
gpt4 key购买 nike

我想创建一个监听 TCP 套接字,在它从客户端接收到初始 SYN 数据包后,我可以控制它何时以第一个 SYN+ACK 响应客户端。

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

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

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

最佳答案

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

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

关于sockets - 我可以在 Linux 中使用原始套接字创建监听 TCP 套接字吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4323764/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com