c - 处理 TCP PSH

标签 c linux networking tcp netfilter

我修改了TCP数据包的IP头并直接在netfilter NF_INET_LOCAL_OUT钩子(Hook)中将它们发送出去。 TCP连接可以成功建立。不幸的是,带有PSH标志的数据包不能被对端很好地处理。但是,如果我让带有 PSH 的数据包通过默认的 Linux 堆栈,而其他数据包通过我的模块,则所有 TCP 数据包都会顺利通过。我可以知道带有PSH的数据包会发生什么情况吗?我该如何解决这个问题?谢谢。

最佳答案

我建议阅读following article关于 PSH 标志。

设置了 PSH 标志的数据包的接收者可能会尝试缓冲数据包,而不是仅仅通过推送数据包,这就是导致错误的原因。

关于c - 处理 TCP PSH,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16688424/

相关文章:

c - 卢阿 :new from C API

python - 如何正确运行 localtunnel v2

java - 为什么会出现 SocketException?

linux - 在集群中安装包

linux - Pumba 安装 - 在 Linux 终端上找不到命令

networking - 虚拟专用网

c - C 中的 fread fwrite fseek

c - C 中的变量不显示?

运行该程序时需要常量表达式错误

linux - redhat 4.1安装zeromq报错