我修改了TCP数据包的IP标头,然后将其直接发送到netfilter NF_INET_LOCAL_OUT挂钩中。 TCP连接可以成功建立。不幸的是,设置了PSH标志的数据包不能被对等端很好地处理。但是,如果我让带有PSH的数据包通过默认的Linux堆栈,而其他数据包通过我的模块,则所有TCP数据包都会顺利通过。我可以知道使用PSH的数据包会如何处理吗?我该如何解决这个问题?谢谢。
最佳答案
我建议阅读有关PSH标志的following article。
设置了PSH标志的数据包的接收者有可能试图缓冲数据包,而不是仅仅推送它们,这就是导致错误的原因。
关于c - 处理TCP PSH,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16688424/